Home » Archimedes archive » Acorn Computing » 1993 06 Mega Disk.adf » 93_06 » Miscellany/Begin/MORPH3

Miscellany/Begin/MORPH3

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn Computing » 1993 06 Mega Disk.adf » 93_06
Filename: Miscellany/Begin/MORPH3
Read OK:
File size: 0F14 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM> MORPH3
   20REM by Mike Goldberg
   30REM (c) Acorn Computing
   40MODE 9
   50OFF:ON ERROR REPORT:PRINT" at ";ERL:END
   60PROCinit
   70PROCoriginal
   80PROCdraw1
   90PROCfx1(8,8,56)
  100PROCfx5(-8,4,32)
  110PROCfx5(16,-8,16)
  120PROCfx4(128,59,1)
  130PROCfx4(128,59,0)
  140PROCdefault
  150PROCfx1(-8,0,16)
  160PROCfx2(0,-8,32)
  170PROCfx2(0,8,32)
  180PROCfx2(8,0,16)
  190PROCfx2(-8,0,32)
  200PROCfx2(8,0,16)
  210PROCfx2(8,8,16)
  220PROCfx2(-8,0,32)
  230PROCfx2(0,-8,16)
  240PROCfx2(8,0,16)
  250PROCfx1(4,-4,32)
  260PROCfx3(4,4,32)
  270PROCfx3(-8,-8,16)
  280PROCfx1(0,16,8)
  290PROCfx3(-8,-8,32)
  300PROCfx3(4,4,64)
  310PROCfx5(8,0,32)
  320PROCfx5(-16,0,16)
  330PROCfx1(4,0,8)
  340PROCfx5(-16,0,32)
  350PROCfx5(16,0,32)
  360REM
  370PROCmorph1(2)
  380PROCmorph1(3)
  390PROCmorph1(4)
  400PROCmorph1(1)
  410END
  420
  430REM INIT
  440DEFPROCinit
  450mins%=60
  460DIMsin(mins%-1),cos(mins%-1)
  470FORI%=0TOmins%-1
  480sin(I%)=SINRAD(I%*(360/mins%))
  490cos(I%)=COSRAD(I%*(360/mins%))
  500NEXT
  510SYS6,112,2:CLS
  520SYS6,113,1:CLS:Z%=1
  530nodes%=12
  540N%=nodes%
  550DIMoriginX%(N%)
  560DIMoriginY%(N%)
  570DIMP%(nodes%)
  580DIMX%(nodes%),Y%(nodes%)
  590DIMoldX%(nodes%),oldY%(nodes%)
  600DIMmorphX%(nodes%),morphY%(nodes%)
  610DIMgot_it%(N%)
  620ENDPROC
  630
  640REM original shape defaultington
  650DEFPROCoriginal
  660PROCrestore(0)
  670FORI%=0TOnodes%
  680READX%(I%),Y%(I%)
  690NEXT
  700oldX%()=X%()
  710oldY%()=Y%()
  720ENDPROC
  730
  740REM DRAW 1st IMAGE
  750DEFPROCdraw1
  760GCOL2
  770MOVEX%(0),Y%(0)
  780FORI%=0TON%
  790DRAWX%(I%),Y%(I%)
  800NEXT
  810DRAWX%(0),Y%(0)
  820ENDPROC
  830
  840DEFPROCswitch:Z%=3-Z%:SYS6,112,Z%:SYS6,113,Z%:WAIT:CLS:ENDPROC
  880
  890REM FX1 You really move me!
  900DEFPROCfx1(x%,y%,t%)
  910FORJ%=1TOt%
  920PROCswitch
  930X%()+=x%
  940Y%()+=y%
  950PROCdraw1
  960NEXT
  970ENDPROC
  980
  990REM FX2 6-POINT Stretch
 1000DEFPROCfx2(x%,y%,t%)
 1010FORK%=1TOt%
 1020PROCswitch
 1030FORJ%=0TON%
 1040CASE J% OF
 1050WHEN0,3,6,7,9,10,12:
 1060 X%(J%)+=x%
 1070 Y%(J%)+=y%
 1080ENDCASE
 1090NEXT
 1100PROCdraw1
 1110NEXT
 1120ENDPROC
 1130
 1140REM FX3 INFLATE!
 1150DEFPROCfx3(x%,y%,t%)
 1160FORK%=1TOt%
 1170PROCswitch
 1180FORJ%=0TON%
 1190CASE J% OF
 1200WHEN2,3,4:Y%(J%)+=y%
 1210WHEN7,9,10,12,8,11:Y%(J%)-=y%
 1220WHEN0:X%(0)-=x%:Y%(0)-=y%
 1230WHEN1:X%(1)-=x%:Y%(1)+=y%
 1240WHEN5:X%(5)+=x%:Y%(5)+=y%
 1250WHEN6:X%(6)+=x%:Y%(6)-=y%
 1260ENDCASE
 1270NEXT
 1280PROCdraw1
 1290NEXT
 1300ENDPROC
 1310
 1320REM rotate
 1330DEFPROCfx4(R%,t%,all%)
 1340
 1350originX%()=X%()
 1360originY%()=Y%()
 1370
 1380FORK%=1TOt%
 1390PROCswitch
 1400FORJ%=0TON%
 1410IFall%=0THEN
 1420CASE J% OF
 1430WHEN1,2,3,4,5:
 1440X%(J%)=originX%(J%)+R%*sin(K%)
 1450Y%(J%)=originY%(J%)+R%*cos(K%)-R%
 1460ENDCASE
 1470ENDIF
 1480IFall%=1THEN
 1490X%(J%)=originX%(J%)+R%*sin(K%)
 1500Y%(J%)=originY%(J%)+R%*cos(K%)-R%
 1510ENDIF
 1520NEXT
 1530PROCdraw1
 1540NEXT
 1550ENDPROC
 1560
 1570REM reminder only
 1580FORI%=0TOmins%-1
 1590POINTX%+R%*sin(I%),Y%+R%*cos(I%)
 1600NEXT
 1610REM CROSS OVER
 1620DEFPROCfx5(x%,y%,t%)
 1630FORK%=1TOt%
 1640PROCswitch
 1650FORJ%=0TON%
 1660CASE J% OF
 1670WHEN0,1,2,10,11,12
 1680 X%(J%)+=x%
 1690 Y%(J%)+=y%
 1700WHEN4,5,6,7,8,9
 1710 X%(J%)-=x%
 1720 Y%(J%)+=y%
 1730ENDCASE
 1740NEXT
 1750PROCdraw1
 1760NEXT
 1770ENDPROC
 1780
 1790REM Return shape to original shape
 1800DEFPROCdefault
 1810nowX%=X%(0)
 1820nowY%=Y%(0)
 1830PROCoriginal
 1840X%()+=nowX%
 1850Y%()+=nowY%
 1860PROCdraw1
 1870ENDPROC
 1880
 1890REM MORPH1
 1900DEFPROCmorph1(R%)
 1910PROCrestore(R%)
 1920got_it%()=0
 1930FORI%=1TO12
 1940READmorphX%(I%),morphY%(I%)
 1950NEXT
 1960stop%=0
 1970REPEAT
 1980PROCswitch
 1990FORJ%=1TO12
 2000IFmorphX%(J%)<oldX%(J%)X%(J%)-=4:oldX%(J%)-=4
 2010IFmorphX%(J%)>oldX%(J%)X%(J%)+=4:oldX%(J%)+=4
 2020IFmorphY%(J%)<oldY%(J%)Y%(J%)-=4:oldY%(J%)-=4
 2030IFmorphY%(J%)>oldY%(J%)Y%(J%)+=4:oldY%(J%)+=4
 2040IFgot_it%(J%)=0:IFoldX%(J%)=morphX%(J%)ANDoldY%(J%)=morphY%(J%)stop%+=1:got_it%(J%)=1
 2050NEXT
 2060PROCdraw1
 2070UNTILstop%=N%
 2080ENDPROC
 2090
 2100REM == SHAPE DATA ==
 2110
 2120DEFPROCrestore(X%)
 2130CASE X% OF
 2140  WHEN 0 : RESTORE 2220
 2150  WHEN 1 : RESTORE 2240
 2160  WHEN 2 : RESTORE 2370
 2170  WHEN 3 : RESTORE 2510
 2180  WHEN 4 : RESTORE 2650
 2190  ENDCASE
 2200ENDPROC
 2210
 2220REM letter M
 2230DATA0,0
 2240DATA0,192
 2250DATA64,192
 2260DATA120,56
 2270DATA172,192
 2280DATA240,192
 2290DATA240,0
 2300DATA200,0
 2310DATA200,120
 2320DATA160,0
 2330DATA80,0
 2340DATA40,120
 2350DATA40,0
 2360
 2370REM letter I
 2380DATA0,192
 2390DATA40,192
 2400DATA40,96
 2410DATA40,88
 2420DATA40,80
 2430DATA40,72
 2440DATA40,64
 2450DATA40,56
 2460DATA40,48
 2470DATA40,40
 2480DATA40,32
 2490DATA40,0
 2500
 2510REM letter K
 2520DATA0,192
 2530DATA40,192
 2540DATA40,120
 2550DATA112,192
 2560DATA168,192
 2570DATA80,104
 2580DATA184,0
 2590DATA120,0
 2600DATA40,80
 2610DATA40,0
 2620DATA40,0
 2630DATA40,0
 2640
 2650REM letter E
 2660DATA0,192
 2670DATA160,192
 2680DATA160,152
 2690DATA40,152
 2700DATA40,112
 2710DATA120,112
 2720DATA120,80
 2730DATA40,80
 2740DATA40,40
 2750DATA160,40
 2760DATA160,0
 2770DATA160,0


�> MORPH3
� by Mike Goldberg
� (c) Acorn Computing
(� 9
2�:� � �:�" at ";�:�
<	�init
F
�original
P
�draw1
Z�fx1(8,8,56)
d�fx5(-8,4,32)
n�fx5(16,-8,16)
x�fx4(128,59,1)
��fx4(128,59,0)
��default
��fx1(-8,0,16)
��fx2(0,-8,32)
��fx2(0,8,32)
��fx2(8,0,16)
��fx2(-8,0,32)
��fx2(8,0,16)
��fx2(8,8,16)
��fx2(-8,0,32)
��fx2(0,-8,16)
��fx2(8,0,16)
��fx1(4,-4,32)
�fx3(4,4,32)
�fx3(-8,-8,16)
�fx1(0,16,8)
"�fx3(-8,-8,32)
,�fx3(4,4,64)
6�fx5(8,0,32)
@�fx5(-16,0,16)
J�fx1(4,0,8)
T�fx5(-16,0,32)
^�fx5(16,0,32)
h�
r�morph1(2)
|�morph1(3)
��morph1(4)
��morph1(1)
��
�
�
� INIT
�
��init
�mins%=60
��sin(mins%-1),cos(mins%-1)
��I%=0�mins%-1
�sin(I%)=��(I%*(360/mins%))
�cos(I%)=��(I%*(360/mins%))
��
�ș6,112,2:�
ș6,113,1:�:Z%=1

nodes%=12

N%=nodes%
&�originX%(N%)
0�originY%(N%)
:�P%(nodes%)
D�X%(nodes%),Y%(nodes%)
N �oldX%(nodes%),oldY%(nodes%)
X$�morphX%(nodes%),morphY%(nodes%)
b�got_it%(N%)
l�
v
�"� original shape defaultington
���original
��restore(0)
��I%=0�nodes%
��X%(I%),Y%(I%)
��
�oldX%()=X%()
�oldY%()=Y%()
��
�
�� DRAW 1st IMAGE
���draw1
��2
�X%(0),Y%(0)
�I%=0�N%
�X%(I%),Y%(I%)
 �
*�X%(0),Y%(0)
4�
>
H1��switch:Z%=3-Z%:ș6,112,Z%:ș6,113,Z%:Ȗ:�:�
p
z� FX1 You really move me!
���fx1(x%,y%,t%)
��J%=1�t%
��switch
�X%()+=x%
�Y%()+=y%
�
�draw1
��
��
�
�� FX2 6-POINT Stretch
���fx2(x%,y%,t%)
��K%=1�t%
��switch
�J%=0�N%
Ȏ J% �
�0,3,6,7,9,10,12:
$ X%(J%)+=x%
. Y%(J%)+=y%
8�
B�
L
�draw1
V�
`�
j
t� FX3 INFLATE!
~��fx3(x%,y%,t%)
��K%=1�t%
��switch
��J%=0�N%
�Ȏ J% �
��2,3,4:Y%(J%)+=y%
��7,9,10,12,8,11:Y%(J%)-=y%
��0:X%(0)-=x%:Y%(0)-=y%
��1:X%(1)-=x%:Y%(1)+=y%
��5:X%(5)+=x%:Y%(5)+=y%
��6:X%(6)+=x%:Y%(6)-=y%
��
��

�draw1

�
�

(� rotate
2��fx4(R%,t%,all%)
<
ForiginX%()=X%()
PoriginY%()=Y%()
Z
d�K%=1�t%
n�switch
x�J%=0�N%
��all%=0�
�Ȏ J% �
��1,2,3,4,5:
�"X%(J%)=originX%(J%)+R%*sin(K%)
�%Y%(J%)=originY%(J%)+R%*cos(K%)-R%
��
��
��all%=1�
�"X%(J%)=originX%(J%)+R%*sin(K%)
�%Y%(J%)=originY%(J%)+R%*cos(K%)-R%
��
��
�
�draw1
�
�

"� reminder only
,�I%=0�mins%-1
6!ȒX%+R%*sin(I%),Y%+R%*cos(I%)
@�
J� CROSS OVER
T��fx5(x%,y%,t%)
^�K%=1�t%
h�switch
r�J%=0�N%
|Ȏ J% �
��0,1,2,10,11,12
� X%(J%)+=x%
� Y%(J%)+=y%
��4,5,6,7,8,9
� X%(J%)-=x%
� Y%(J%)+=y%
��
��
�
�draw1
��
��
�
�$� Return shape to original shape

��default
nowX%=X%(0)
nowY%=Y%(0)
&
�original
0X%()+=nowX%
:Y%()+=nowY%
D
�draw1
N�
X
b� MORPH1
l��morph1(R%)
v�restore(R%)
�got_it%()=0
��I%=1�12
��morphX%(I%),morphY%(I%)
��
�stop%=0
��
��switch
��J%=1�12
�0�morphX%(J%)<oldX%(J%)X%(J%)-=4:oldX%(J%)-=4
�0�morphX%(J%)>oldX%(J%)X%(J%)+=4:oldX%(J%)+=4
�0�morphY%(J%)<oldY%(J%)Y%(J%)-=4:oldY%(J%)-=4
�0�morphY%(J%)>oldY%(J%)Y%(J%)+=4:oldY%(J%)+=4
�U�got_it%(J%)=0:�oldX%(J%)=morphX%(J%)�oldY%(J%)=morphY%(J%)stop%+=1:got_it%(J%)=1
�

�draw1

�stop%=N%
 �
*
4� == SHAPE DATA ==
>
H��restore(X%)
RȎ X% �
\  � 0 : � �tlH
f  � 1 : � �d@H
p  � 2 : � �DBI
z  � 3 : � �dNI
�  � 4 : � �DZJ
�  �
��
�
�� letter M
��0,0
�
�0,192
��64,192
��120,56
��172,192
��240,192
�
�240,0
�
�200,0
	�200,120
	
�160,0
		�80,0
	$�40,120
	.	�40,0
	8
	B� letter I
	L
�0,192
	V�40,192
	`
�40,96
	j
�40,88
	t
�40,80
	~
�40,72
	�
�40,64
	�
�40,56
	�
�40,48
	�
�40,40
	�
�40,32
	�	�40,0
	�
	�� letter K
	�
�0,192
	��40,192
	��40,120
	��112,192
�168,192

�80,104

�184,0

�120,0
(
�40,80
2	�40,0
<	�40,0
F	�40,0
P
Z� letter E
d
�0,192
n�160,192
x�160,152
��40,152
��40,112
��120,112
��120,80
�
�40,80
�
�40,40
��160,40
�
�160,0
�
�160,0
�
00000000  0d 00 0a 0d f4 3e 20 4d  4f 52 50 48 33 0d 00 14  |.....> MORPH3...|
00000010  16 f4 20 62 79 20 4d 69  6b 65 20 47 6f 6c 64 62  |.. by Mike Goldb|
00000020  65 72 67 0d 00 1e 19 f4  20 28 63 29 20 41 63 6f  |erg..... (c) Aco|
00000030  72 6e 20 43 6f 6d 70 75  74 69 6e 67 0d 00 28 07  |rn Computing..(.|
00000040  eb 20 39 0d 00 32 17 87  3a ee 20 85 20 f6 3a f1  |. 9..2..:. . .:.|
00000050  22 20 61 74 20 22 3b 9e  3a e0 0d 00 3c 09 f2 69  |" at ";.:...<..i|
00000060  6e 69 74 0d 00 46 0d f2  6f 72 69 67 69 6e 61 6c  |nit..F..original|
00000070  0d 00 50 0a f2 64 72 61  77 31 0d 00 5a 10 f2 66  |..P..draw1..Z..f|
00000080  78 31 28 38 2c 38 2c 35  36 29 0d 00 64 11 f2 66  |x1(8,8,56)..d..f|
00000090  78 35 28 2d 38 2c 34 2c  33 32 29 0d 00 6e 12 f2  |x5(-8,4,32)..n..|
000000a0  66 78 35 28 31 36 2c 2d  38 2c 31 36 29 0d 00 78  |fx5(16,-8,16)..x|
000000b0  12 f2 66 78 34 28 31 32  38 2c 35 39 2c 31 29 0d  |..fx4(128,59,1).|
000000c0  00 82 12 f2 66 78 34 28  31 32 38 2c 35 39 2c 30  |....fx4(128,59,0|
000000d0  29 0d 00 8c 0c f2 64 65  66 61 75 6c 74 0d 00 96  |).....default...|
000000e0  11 f2 66 78 31 28 2d 38  2c 30 2c 31 36 29 0d 00  |..fx1(-8,0,16)..|
000000f0  a0 11 f2 66 78 32 28 30  2c 2d 38 2c 33 32 29 0d  |...fx2(0,-8,32).|
00000100  00 aa 10 f2 66 78 32 28  30 2c 38 2c 33 32 29 0d  |....fx2(0,8,32).|
00000110  00 b4 10 f2 66 78 32 28  38 2c 30 2c 31 36 29 0d  |....fx2(8,0,16).|
00000120  00 be 11 f2 66 78 32 28  2d 38 2c 30 2c 33 32 29  |....fx2(-8,0,32)|
00000130  0d 00 c8 10 f2 66 78 32  28 38 2c 30 2c 31 36 29  |.....fx2(8,0,16)|
00000140  0d 00 d2 10 f2 66 78 32  28 38 2c 38 2c 31 36 29  |.....fx2(8,8,16)|
00000150  0d 00 dc 11 f2 66 78 32  28 2d 38 2c 30 2c 33 32  |.....fx2(-8,0,32|
00000160  29 0d 00 e6 11 f2 66 78  32 28 30 2c 2d 38 2c 31  |).....fx2(0,-8,1|
00000170  36 29 0d 00 f0 10 f2 66  78 32 28 38 2c 30 2c 31  |6).....fx2(8,0,1|
00000180  36 29 0d 00 fa 11 f2 66  78 31 28 34 2c 2d 34 2c  |6).....fx1(4,-4,|
00000190  33 32 29 0d 01 04 10 f2  66 78 33 28 34 2c 34 2c  |32).....fx3(4,4,|
000001a0  33 32 29 0d 01 0e 12 f2  66 78 33 28 2d 38 2c 2d  |32).....fx3(-8,-|
000001b0  38 2c 31 36 29 0d 01 18  10 f2 66 78 31 28 30 2c  |8,16).....fx1(0,|
000001c0  31 36 2c 38 29 0d 01 22  12 f2 66 78 33 28 2d 38  |16,8).."..fx3(-8|
000001d0  2c 2d 38 2c 33 32 29 0d  01 2c 10 f2 66 78 33 28  |,-8,32)..,..fx3(|
000001e0  34 2c 34 2c 36 34 29 0d  01 36 10 f2 66 78 35 28  |4,4,64)..6..fx5(|
000001f0  38 2c 30 2c 33 32 29 0d  01 40 12 f2 66 78 35 28  |8,0,32)..@..fx5(|
00000200  2d 31 36 2c 30 2c 31 36  29 0d 01 4a 0f f2 66 78  |-16,0,16)..J..fx|
00000210  31 28 34 2c 30 2c 38 29  0d 01 54 12 f2 66 78 35  |1(4,0,8)..T..fx5|
00000220  28 2d 31 36 2c 30 2c 33  32 29 0d 01 5e 11 f2 66  |(-16,0,32)..^..f|
00000230  78 35 28 31 36 2c 30 2c  33 32 29 0d 01 68 05 f4  |x5(16,0,32)..h..|
00000240  0d 01 72 0e f2 6d 6f 72  70 68 31 28 32 29 0d 01  |..r..morph1(2)..|
00000250  7c 0e f2 6d 6f 72 70 68  31 28 33 29 0d 01 86 0e  ||..morph1(3)....|
00000260  f2 6d 6f 72 70 68 31 28  34 29 0d 01 90 0e f2 6d  |.morph1(4).....m|
00000270  6f 72 70 68 31 28 31 29  0d 01 9a 05 e0 0d 01 a4  |orph1(1)........|
00000280  04 0d 01 ae 0a f4 20 49  4e 49 54 0d 01 b8 0a dd  |...... INIT.....|
00000290  f2 69 6e 69 74 0d 01 c2  0c 6d 69 6e 73 25 3d 36  |.init....mins%=6|
000002a0  30 0d 01 cc 1e de 73 69  6e 28 6d 69 6e 73 25 2d  |0.....sin(mins%-|
000002b0  31 29 2c 63 6f 73 28 6d  69 6e 73 25 2d 31 29 0d  |1),cos(mins%-1).|
000002c0  01 d6 11 e3 49 25 3d 30  b8 6d 69 6e 73 25 2d 31  |....I%=0.mins%-1|
000002d0  0d 01 e0 1e 73 69 6e 28  49 25 29 3d b5 b2 28 49  |....sin(I%)=..(I|
000002e0  25 2a 28 33 36 30 2f 6d  69 6e 73 25 29 29 0d 01  |%*(360/mins%))..|
000002f0  ea 1e 63 6f 73 28 49 25  29 3d 9b b2 28 49 25 2a  |..cos(I%)=..(I%*|
00000300  28 33 36 30 2f 6d 69 6e  73 25 29 29 0d 01 f4 05  |(360/mins%))....|
00000310  ed 0d 01 fe 0f c8 99 36  2c 31 31 32 2c 32 3a db  |.......6,112,2:.|
00000320  0d 02 08 14 c8 99 36 2c  31 31 33 2c 31 3a db 3a  |......6,113,1:.:|
00000330  5a 25 3d 31 0d 02 12 0d  6e 6f 64 65 73 25 3d 31  |Z%=1....nodes%=1|
00000340  32 0d 02 1c 0d 4e 25 3d  6e 6f 64 65 73 25 0d 02  |2....N%=nodes%..|
00000350  26 11 de 6f 72 69 67 69  6e 58 25 28 4e 25 29 0d  |&..originX%(N%).|
00000360  02 30 11 de 6f 72 69 67  69 6e 59 25 28 4e 25 29  |.0..originY%(N%)|
00000370  0d 02 3a 0f de 50 25 28  6e 6f 64 65 73 25 29 0d  |..:..P%(nodes%).|
00000380  02 44 1a de 58 25 28 6e  6f 64 65 73 25 29 2c 59  |.D..X%(nodes%),Y|
00000390  25 28 6e 6f 64 65 73 25  29 0d 02 4e 20 de 6f 6c  |%(nodes%)..N .ol|
000003a0  64 58 25 28 6e 6f 64 65  73 25 29 2c 6f 6c 64 59  |dX%(nodes%),oldY|
000003b0  25 28 6e 6f 64 65 73 25  29 0d 02 58 24 de 6d 6f  |%(nodes%)..X$.mo|
000003c0  72 70 68 58 25 28 6e 6f  64 65 73 25 29 2c 6d 6f  |rphX%(nodes%),mo|
000003d0  72 70 68 59 25 28 6e 6f  64 65 73 25 29 0d 02 62  |rphY%(nodes%)..b|
000003e0  10 de 67 6f 74 5f 69 74  25 28 4e 25 29 0d 02 6c  |..got_it%(N%)..l|
000003f0  05 e1 0d 02 76 04 0d 02  80 22 f4 20 6f 72 69 67  |....v....". orig|
00000400  69 6e 61 6c 20 73 68 61  70 65 20 64 65 66 61 75  |inal shape defau|
00000410  6c 74 69 6e 67 74 6f 6e  0d 02 8a 0e dd f2 6f 72  |ltington......or|
00000420  69 67 69 6e 61 6c 0d 02  94 0f f2 72 65 73 74 6f  |iginal.....resto|
00000430  72 65 28 30 29 0d 02 9e  10 e3 49 25 3d 30 b8 6e  |re(0).....I%=0.n|
00000440  6f 64 65 73 25 0d 02 a8  12 f3 58 25 28 49 25 29  |odes%.....X%(I%)|
00000450  2c 59 25 28 49 25 29 0d  02 b2 05 ed 0d 02 bc 10  |,Y%(I%).........|
00000460  6f 6c 64 58 25 28 29 3d  58 25 28 29 0d 02 c6 10  |oldX%()=X%()....|
00000470  6f 6c 64 59 25 28 29 3d  59 25 28 29 0d 02 d0 05  |oldY%()=Y%()....|
00000480  e1 0d 02 da 04 0d 02 e4  14 f4 20 44 52 41 57 20  |.......... DRAW |
00000490  31 73 74 20 49 4d 41 47  45 0d 02 ee 0b dd f2 64  |1st IMAGE......d|
000004a0  72 61 77 31 0d 02 f8 06  e6 32 0d 03 02 10 ec 58  |raw1.....2.....X|
000004b0  25 28 30 29 2c 59 25 28  30 29 0d 03 0c 0c e3 49  |%(0),Y%(0).....I|
000004c0  25 3d 30 b8 4e 25 0d 03  16 12 df 58 25 28 49 25  |%=0.N%.....X%(I%|
000004d0  29 2c 59 25 28 49 25 29  0d 03 20 05 ed 0d 03 2a  |),Y%(I%).. ....*|
000004e0  10 df 58 25 28 30 29 2c  59 25 28 30 29 0d 03 34  |..X%(0),Y%(0)..4|
000004f0  05 e1 0d 03 3e 04 0d 03  48 31 dd f2 73 77 69 74  |....>...H1..swit|
00000500  63 68 3a 5a 25 3d 33 2d  5a 25 3a c8 99 36 2c 31  |ch:Z%=3-Z%:..6,1|
00000510  31 32 2c 5a 25 3a c8 99  36 2c 31 31 33 2c 5a 25  |12,Z%:..6,113,Z%|
00000520  3a c8 96 3a db 3a e1 0d  03 70 04 0d 03 7a 1d f4  |:..:.:...p...z..|
00000530  20 46 58 31 20 59 6f 75  20 72 65 61 6c 6c 79 20  | FX1 You really |
00000540  6d 6f 76 65 20 6d 65 21  0d 03 84 13 dd f2 66 78  |move me!......fx|
00000550  31 28 78 25 2c 79 25 2c  74 25 29 0d 03 8e 0c e3  |1(x%,y%,t%).....|
00000560  4a 25 3d 31 b8 74 25 0d  03 98 0b f2 73 77 69 74  |J%=1.t%.....swit|
00000570  63 68 0d 03 a2 0c 58 25  28 29 2b 3d 78 25 0d 03  |ch....X%()+=x%..|
00000580  ac 0c 59 25 28 29 2b 3d  79 25 0d 03 b6 0a f2 64  |..Y%()+=y%.....d|
00000590  72 61 77 31 0d 03 c0 05  ed 0d 03 ca 05 e1 0d 03  |raw1............|
000005a0  d4 04 0d 03 de 19 f4 20  46 58 32 20 36 2d 50 4f  |....... FX2 6-PO|
000005b0  49 4e 54 20 53 74 72 65  74 63 68 0d 03 e8 13 dd  |INT Stretch.....|
000005c0  f2 66 78 32 28 78 25 2c  79 25 2c 74 25 29 0d 03  |.fx2(x%,y%,t%)..|
000005d0  f2 0c e3 4b 25 3d 31 b8  74 25 0d 03 fc 0b f2 73  |...K%=1.t%.....s|
000005e0  77 69 74 63 68 0d 04 06  0c e3 4a 25 3d 30 b8 4e  |witch.....J%=0.N|
000005f0  25 0d 04 10 0b c8 8e 20  4a 25 20 ca 0d 04 1a 15  |%...... J% .....|
00000600  c9 30 2c 33 2c 36 2c 37  2c 39 2c 31 30 2c 31 32  |.0,3,6,7,9,10,12|
00000610  3a 0d 04 24 0f 20 58 25  28 4a 25 29 2b 3d 78 25  |:..$. X%(J%)+=x%|
00000620  0d 04 2e 0f 20 59 25 28  4a 25 29 2b 3d 79 25 0d  |.... Y%(J%)+=y%.|
00000630  04 38 05 cb 0d 04 42 05  ed 0d 04 4c 0a f2 64 72  |.8....B....L..dr|
00000640  61 77 31 0d 04 56 05 ed  0d 04 60 05 e1 0d 04 6a  |aw1..V....`....j|
00000650  04 0d 04 74 12 f4 20 46  58 33 20 49 4e 46 4c 41  |...t.. FX3 INFLA|
00000660  54 45 21 0d 04 7e 13 dd  f2 66 78 33 28 78 25 2c  |TE!..~...fx3(x%,|
00000670  79 25 2c 74 25 29 0d 04  88 0c e3 4b 25 3d 31 b8  |y%,t%).....K%=1.|
00000680  74 25 0d 04 92 0b f2 73  77 69 74 63 68 0d 04 9c  |t%.....switch...|
00000690  0c e3 4a 25 3d 30 b8 4e  25 0d 04 a6 0b c8 8e 20  |..J%=0.N%...... |
000006a0  4a 25 20 ca 0d 04 b0 15  c9 32 2c 33 2c 34 3a 59  |J% ......2,3,4:Y|
000006b0  25 28 4a 25 29 2b 3d 79  25 0d 04 ba 1e c9 37 2c  |%(J%)+=y%.....7,|
000006c0  39 2c 31 30 2c 31 32 2c  38 2c 31 31 3a 59 25 28  |9,10,12,8,11:Y%(|
000006d0  4a 25 29 2d 3d 79 25 0d  04 c4 1a c9 30 3a 58 25  |J%)-=y%.....0:X%|
000006e0  28 30 29 2d 3d 78 25 3a  59 25 28 30 29 2d 3d 79  |(0)-=x%:Y%(0)-=y|
000006f0  25 0d 04 ce 1a c9 31 3a  58 25 28 31 29 2d 3d 78  |%.....1:X%(1)-=x|
00000700  25 3a 59 25 28 31 29 2b  3d 79 25 0d 04 d8 1a c9  |%:Y%(1)+=y%.....|
00000710  35 3a 58 25 28 35 29 2b  3d 78 25 3a 59 25 28 35  |5:X%(5)+=x%:Y%(5|
00000720  29 2b 3d 79 25 0d 04 e2  1a c9 36 3a 58 25 28 36  |)+=y%.....6:X%(6|
00000730  29 2b 3d 78 25 3a 59 25  28 36 29 2d 3d 79 25 0d  |)+=x%:Y%(6)-=y%.|
00000740  04 ec 05 cb 0d 04 f6 05  ed 0d 05 00 0a f2 64 72  |..............dr|
00000750  61 77 31 0d 05 0a 05 ed  0d 05 14 05 e1 0d 05 1e  |aw1.............|
00000760  04 0d 05 28 0c f4 20 72  6f 74 61 74 65 0d 05 32  |...(.. rotate..2|
00000770  15 dd f2 66 78 34 28 52  25 2c 74 25 2c 61 6c 6c  |...fx4(R%,t%,all|
00000780  25 29 0d 05 3c 04 0d 05  46 13 6f 72 69 67 69 6e  |%)..<...F.origin|
00000790  58 25 28 29 3d 58 25 28  29 0d 05 50 13 6f 72 69  |X%()=X%()..P.ori|
000007a0  67 69 6e 59 25 28 29 3d  59 25 28 29 0d 05 5a 04  |ginY%()=Y%()..Z.|
000007b0  0d 05 64 0c e3 4b 25 3d  31 b8 74 25 0d 05 6e 0b  |..d..K%=1.t%..n.|
000007c0  f2 73 77 69 74 63 68 0d  05 78 0c e3 4a 25 3d 30  |.switch..x..J%=0|
000007d0  b8 4e 25 0d 05 82 0c e7  61 6c 6c 25 3d 30 8c 0d  |.N%.....all%=0..|
000007e0  05 8c 0b c8 8e 20 4a 25  20 ca 0d 05 96 0f c9 31  |..... J% ......1|
000007f0  2c 32 2c 33 2c 34 2c 35  3a 0d 05 a0 22 58 25 28  |,2,3,4,5:..."X%(|
00000800  4a 25 29 3d 6f 72 69 67  69 6e 58 25 28 4a 25 29  |J%)=originX%(J%)|
00000810  2b 52 25 2a 73 69 6e 28  4b 25 29 0d 05 aa 25 59  |+R%*sin(K%)...%Y|
00000820  25 28 4a 25 29 3d 6f 72  69 67 69 6e 59 25 28 4a  |%(J%)=originY%(J|
00000830  25 29 2b 52 25 2a 63 6f  73 28 4b 25 29 2d 52 25  |%)+R%*cos(K%)-R%|
00000840  0d 05 b4 05 cb 0d 05 be  05 cd 0d 05 c8 0c e7 61  |...............a|
00000850  6c 6c 25 3d 31 8c 0d 05  d2 22 58 25 28 4a 25 29  |ll%=1...."X%(J%)|
00000860  3d 6f 72 69 67 69 6e 58  25 28 4a 25 29 2b 52 25  |=originX%(J%)+R%|
00000870  2a 73 69 6e 28 4b 25 29  0d 05 dc 25 59 25 28 4a  |*sin(K%)...%Y%(J|
00000880  25 29 3d 6f 72 69 67 69  6e 59 25 28 4a 25 29 2b  |%)=originY%(J%)+|
00000890  52 25 2a 63 6f 73 28 4b  25 29 2d 52 25 0d 05 e6  |R%*cos(K%)-R%...|
000008a0  05 cd 0d 05 f0 05 ed 0d  05 fa 0a f2 64 72 61 77  |............draw|
000008b0  31 0d 06 04 05 ed 0d 06  0e 05 e1 0d 06 18 04 0d  |1...............|
000008c0  06 22 13 f4 20 72 65 6d  69 6e 64 65 72 20 6f 6e  |.".. reminder on|
000008d0  6c 79 0d 06 2c 11 e3 49  25 3d 30 b8 6d 69 6e 73  |ly..,..I%=0.mins|
000008e0  25 2d 31 0d 06 36 21 c8  92 58 25 2b 52 25 2a 73  |%-1..6!..X%+R%*s|
000008f0  69 6e 28 49 25 29 2c 59  25 2b 52 25 2a 63 6f 73  |in(I%),Y%+R%*cos|
00000900  28 49 25 29 0d 06 40 05  ed 0d 06 4a 10 f4 20 43  |(I%)..@....J.. C|
00000910  52 4f 53 53 20 4f 56 45  52 0d 06 54 13 dd f2 66  |ROSS OVER..T...f|
00000920  78 35 28 78 25 2c 79 25  2c 74 25 29 0d 06 5e 0c  |x5(x%,y%,t%)..^.|
00000930  e3 4b 25 3d 31 b8 74 25  0d 06 68 0b f2 73 77 69  |.K%=1.t%..h..swi|
00000940  74 63 68 0d 06 72 0c e3  4a 25 3d 30 b8 4e 25 0d  |tch..r..J%=0.N%.|
00000950  06 7c 0b c8 8e 20 4a 25  20 ca 0d 06 86 13 c9 30  |.|... J% ......0|
00000960  2c 31 2c 32 2c 31 30 2c  31 31 2c 31 32 0d 06 90  |,1,2,10,11,12...|
00000970  0f 20 58 25 28 4a 25 29  2b 3d 78 25 0d 06 9a 0f  |. X%(J%)+=x%....|
00000980  20 59 25 28 4a 25 29 2b  3d 79 25 0d 06 a4 10 c9  | Y%(J%)+=y%.....|
00000990  34 2c 35 2c 36 2c 37 2c  38 2c 39 0d 06 ae 0f 20  |4,5,6,7,8,9.... |
000009a0  58 25 28 4a 25 29 2d 3d  78 25 0d 06 b8 0f 20 59  |X%(J%)-=x%.... Y|
000009b0  25 28 4a 25 29 2b 3d 79  25 0d 06 c2 05 cb 0d 06  |%(J%)+=y%.......|
000009c0  cc 05 ed 0d 06 d6 0a f2  64 72 61 77 31 0d 06 e0  |........draw1...|
000009d0  05 ed 0d 06 ea 05 e1 0d  06 f4 04 0d 06 fe 24 f4  |..............$.|
000009e0  20 52 65 74 75 72 6e 20  73 68 61 70 65 20 74 6f  | Return shape to|
000009f0  20 6f 72 69 67 69 6e 61  6c 20 73 68 61 70 65 0d  | original shape.|
00000a00  07 08 0d dd f2 64 65 66  61 75 6c 74 0d 07 12 0f  |.....default....|
00000a10  6e 6f 77 58 25 3d 58 25  28 30 29 0d 07 1c 0f 6e  |nowX%=X%(0)....n|
00000a20  6f 77 59 25 3d 59 25 28  30 29 0d 07 26 0d f2 6f  |owY%=Y%(0)..&..o|
00000a30  72 69 67 69 6e 61 6c 0d  07 30 0f 58 25 28 29 2b  |riginal..0.X%()+|
00000a40  3d 6e 6f 77 58 25 0d 07  3a 0f 59 25 28 29 2b 3d  |=nowX%..:.Y%()+=|
00000a50  6e 6f 77 59 25 0d 07 44  0a f2 64 72 61 77 31 0d  |nowY%..D..draw1.|
00000a60  07 4e 05 e1 0d 07 58 04  0d 07 62 0c f4 20 4d 4f  |.N....X...b.. MO|
00000a70  52 50 48 31 0d 07 6c 10  dd f2 6d 6f 72 70 68 31  |RPH1..l...morph1|
00000a80  28 52 25 29 0d 07 76 10  f2 72 65 73 74 6f 72 65  |(R%)..v..restore|
00000a90  28 52 25 29 0d 07 80 0f  67 6f 74 5f 69 74 25 28  |(R%)....got_it%(|
00000aa0  29 3d 30 0d 07 8a 0c e3  49 25 3d 31 b8 31 32 0d  |)=0.....I%=1.12.|
00000ab0  07 94 1c f3 6d 6f 72 70  68 58 25 28 49 25 29 2c  |....morphX%(I%),|
00000ac0  6d 6f 72 70 68 59 25 28  49 25 29 0d 07 9e 05 ed  |morphY%(I%).....|
00000ad0  0d 07 a8 0b 73 74 6f 70  25 3d 30 0d 07 b2 05 f5  |....stop%=0.....|
00000ae0  0d 07 bc 0b f2 73 77 69  74 63 68 0d 07 c6 0c e3  |.....switch.....|
00000af0  4a 25 3d 31 b8 31 32 0d  07 d0 30 e7 6d 6f 72 70  |J%=1.12...0.morp|
00000b00  68 58 25 28 4a 25 29 3c  6f 6c 64 58 25 28 4a 25  |hX%(J%)<oldX%(J%|
00000b10  29 58 25 28 4a 25 29 2d  3d 34 3a 6f 6c 64 58 25  |)X%(J%)-=4:oldX%|
00000b20  28 4a 25 29 2d 3d 34 0d  07 da 30 e7 6d 6f 72 70  |(J%)-=4...0.morp|
00000b30  68 58 25 28 4a 25 29 3e  6f 6c 64 58 25 28 4a 25  |hX%(J%)>oldX%(J%|
00000b40  29 58 25 28 4a 25 29 2b  3d 34 3a 6f 6c 64 58 25  |)X%(J%)+=4:oldX%|
00000b50  28 4a 25 29 2b 3d 34 0d  07 e4 30 e7 6d 6f 72 70  |(J%)+=4...0.morp|
00000b60  68 59 25 28 4a 25 29 3c  6f 6c 64 59 25 28 4a 25  |hY%(J%)<oldY%(J%|
00000b70  29 59 25 28 4a 25 29 2d  3d 34 3a 6f 6c 64 59 25  |)Y%(J%)-=4:oldY%|
00000b80  28 4a 25 29 2d 3d 34 0d  07 ee 30 e7 6d 6f 72 70  |(J%)-=4...0.morp|
00000b90  68 59 25 28 4a 25 29 3e  6f 6c 64 59 25 28 4a 25  |hY%(J%)>oldY%(J%|
00000ba0  29 59 25 28 4a 25 29 2b  3d 34 3a 6f 6c 64 59 25  |)Y%(J%)+=4:oldY%|
00000bb0  28 4a 25 29 2b 3d 34 0d  07 f8 55 e7 67 6f 74 5f  |(J%)+=4...U.got_|
00000bc0  69 74 25 28 4a 25 29 3d  30 3a e7 6f 6c 64 58 25  |it%(J%)=0:.oldX%|
00000bd0  28 4a 25 29 3d 6d 6f 72  70 68 58 25 28 4a 25 29  |(J%)=morphX%(J%)|
00000be0  80 6f 6c 64 59 25 28 4a  25 29 3d 6d 6f 72 70 68  |.oldY%(J%)=morph|
00000bf0  59 25 28 4a 25 29 73 74  6f 70 25 2b 3d 31 3a 67  |Y%(J%)stop%+=1:g|
00000c00  6f 74 5f 69 74 25 28 4a  25 29 3d 31 0d 08 02 05  |ot_it%(J%)=1....|
00000c10  ed 0d 08 0c 0a f2 64 72  61 77 31 0d 08 16 0d fd  |......draw1.....|
00000c20  73 74 6f 70 25 3d 4e 25  0d 08 20 05 e1 0d 08 2a  |stop%=N%.. ....*|
00000c30  04 0d 08 34 16 f4 20 3d  3d 20 53 48 41 50 45 20  |...4.. == SHAPE |
00000c40  44 41 54 41 20 3d 3d 0d  08 3e 04 0d 08 48 11 dd  |DATA ==..>...H..|
00000c50  f2 72 65 73 74 6f 72 65  28 58 25 29 0d 08 52 0b  |.restore(X%)..R.|
00000c60  c8 8e 20 58 25 20 ca 0d  08 5c 12 20 20 c9 20 30  |.. X% ...\.  . 0|
00000c70  20 3a 20 f7 20 8d 74 6c  48 0d 08 66 12 20 20 c9  | : . .tlH..f.  .|
00000c80  20 31 20 3a 20 f7 20 8d  64 40 48 0d 08 70 12 20  | 1 : . .d@H..p. |
00000c90  20 c9 20 32 20 3a 20 f7  20 8d 44 42 49 0d 08 7a  | . 2 : . .DBI..z|
00000ca0  12 20 20 c9 20 33 20 3a  20 f7 20 8d 64 4e 49 0d  |.  . 3 : . .dNI.|
00000cb0  08 84 12 20 20 c9 20 34  20 3a 20 f7 20 8d 44 5a  |...  . 4 : . .DZ|
00000cc0  4a 0d 08 8e 07 20 20 cb  0d 08 98 05 e1 0d 08 a2  |J....  .........|
00000cd0  04 0d 08 ac 0e f4 20 6c  65 74 74 65 72 20 4d 0d  |...... letter M.|
00000ce0  08 b6 08 dc 30 2c 30 0d  08 c0 0a dc 30 2c 31 39  |....0,0.....0,19|
00000cf0  32 0d 08 ca 0b dc 36 34  2c 31 39 32 0d 08 d4 0b  |2.....64,192....|
00000d00  dc 31 32 30 2c 35 36 0d  08 de 0c dc 31 37 32 2c  |.120,56.....172,|
00000d10  31 39 32 0d 08 e8 0c dc  32 34 30 2c 31 39 32 0d  |192.....240,192.|
00000d20  08 f2 0a dc 32 34 30 2c  30 0d 08 fc 0a dc 32 30  |....240,0.....20|
00000d30  30 2c 30 0d 09 06 0c dc  32 30 30 2c 31 32 30 0d  |0,0.....200,120.|
00000d40  09 10 0a dc 31 36 30 2c  30 0d 09 1a 09 dc 38 30  |....160,0.....80|
00000d50  2c 30 0d 09 24 0b dc 34  30 2c 31 32 30 0d 09 2e  |,0..$..40,120...|
00000d60  09 dc 34 30 2c 30 0d 09  38 04 0d 09 42 0e f4 20  |..40,0..8...B.. |
00000d70  6c 65 74 74 65 72 20 49  0d 09 4c 0a dc 30 2c 31  |letter I..L..0,1|
00000d80  39 32 0d 09 56 0b dc 34  30 2c 31 39 32 0d 09 60  |92..V..40,192..`|
00000d90  0a dc 34 30 2c 39 36 0d  09 6a 0a dc 34 30 2c 38  |..40,96..j..40,8|
00000da0  38 0d 09 74 0a dc 34 30  2c 38 30 0d 09 7e 0a dc  |8..t..40,80..~..|
00000db0  34 30 2c 37 32 0d 09 88  0a dc 34 30 2c 36 34 0d  |40,72.....40,64.|
00000dc0  09 92 0a dc 34 30 2c 35  36 0d 09 9c 0a dc 34 30  |....40,56.....40|
00000dd0  2c 34 38 0d 09 a6 0a dc  34 30 2c 34 30 0d 09 b0  |,48.....40,40...|
00000de0  0a dc 34 30 2c 33 32 0d  09 ba 09 dc 34 30 2c 30  |..40,32.....40,0|
00000df0  0d 09 c4 04 0d 09 ce 0e  f4 20 6c 65 74 74 65 72  |......... letter|
00000e00  20 4b 0d 09 d8 0a dc 30  2c 31 39 32 0d 09 e2 0b  | K.....0,192....|
00000e10  dc 34 30 2c 31 39 32 0d  09 ec 0b dc 34 30 2c 31  |.40,192.....40,1|
00000e20  32 30 0d 09 f6 0c dc 31  31 32 2c 31 39 32 0d 0a  |20.....112,192..|
00000e30  00 0c dc 31 36 38 2c 31  39 32 0d 0a 0a 0b dc 38  |...168,192.....8|
00000e40  30 2c 31 30 34 0d 0a 14  0a dc 31 38 34 2c 30 0d  |0,104.....184,0.|
00000e50  0a 1e 0a dc 31 32 30 2c  30 0d 0a 28 0a dc 34 30  |....120,0..(..40|
00000e60  2c 38 30 0d 0a 32 09 dc  34 30 2c 30 0d 0a 3c 09  |,80..2..40,0..<.|
00000e70  dc 34 30 2c 30 0d 0a 46  09 dc 34 30 2c 30 0d 0a  |.40,0..F..40,0..|
00000e80  50 04 0d 0a 5a 0e f4 20  6c 65 74 74 65 72 20 45  |P...Z.. letter E|
00000e90  0d 0a 64 0a dc 30 2c 31  39 32 0d 0a 6e 0c dc 31  |..d..0,192..n..1|
00000ea0  36 30 2c 31 39 32 0d 0a  78 0c dc 31 36 30 2c 31  |60,192..x..160,1|
00000eb0  35 32 0d 0a 82 0b dc 34  30 2c 31 35 32 0d 0a 8c  |52.....40,152...|
00000ec0  0b dc 34 30 2c 31 31 32  0d 0a 96 0c dc 31 32 30  |..40,112.....120|
00000ed0  2c 31 31 32 0d 0a a0 0b  dc 31 32 30 2c 38 30 0d  |,112.....120,80.|
00000ee0  0a aa 0a dc 34 30 2c 38  30 0d 0a b4 0a dc 34 30  |....40,80.....40|
00000ef0  2c 34 30 0d 0a be 0b dc  31 36 30 2c 34 30 0d 0a  |,40.....160,40..|
00000f00  c8 0a dc 31 36 30 2c 30  0d 0a d2 0a dc 31 36 30  |...160,0.....160|
00000f10  2c 30 0d ff                                       |,0..|
00000f14