Home » Archimedes archive » Acorn Computing » 1994 03.adf » 9403 » Reptiles/Reptiler

Reptiles/Reptiler

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 » 1994 03.adf » 9403
Filename: Reptiles/Reptiler
Read OK:
File size: 1AE4 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM Reptiler
   20REM Create Escher "RepTiles" picture
   30REM Jim Paterson
   40REM (c) Acorn Computing 1994
   50:
   60DIM drawfile% &80000,transform% 23
   70plength%=6000:DIM path% plength%-1
   80DIM pathstart%(10,2),pathlength%(10,2),pathcol%(10,2)
   90DIM path%(2):FOR I%=0 TO 2:path%(I%)=path%+I%*2000:NEXT
  100PROCloaddata
  110MODE15:OFF
  120PROCcreate_image
  130OSCLI("SAVE RepFile "+STR$~drawfile%+" "+STR$~P%)
  140OSCLI("SETTYPE RepFile AFF")
  150END
  160:
  170DATA parms,1500,90
  180DATA page,A4,L
  190DATA start,7,1,3
  200DATA move,0,0
  210DATA line,7,2
  220DATA line,10,0
  230DATA line,14,-8
  240DATA line,11,-13
  250DATA line,13,-15
  260DATA line,19,-17
  270DATA line,19,-15
  280DATA line,17,-13
  290DATA line,20,-10
  300DATA line,25,-14
  310DATA line,25,-18
  320DATA line,27,-24
  330DATA line,16,-21
  340DATA line,18,-28
  350DATA line,21,-27
  360DATA line,30,-30
  370DATA line,36,-39
  380DATA line,40,-42
  390DATA line,35,-44
  400DATA line,27,-33
  410DATA line,23,-35
  420DATA line,19,-35
  430DATA line,20,-40
  440DATA line,16,-46
  450DATA line,5,-41
  460DATA line,11,-41
  470DATA line,12,-37
  480DATA line,8,-32
  490DATA line,4,-29
  500DATA line,2,-26
  510DATA line,-2,-24
  520DATA line,0,-30
  530DATA line,-4,-32
  540DATA line,-6,-28
  550DATA line,-5,-26
  560DATA line,-6,-22
  570DATA line,-5,-18
  580DATA line,0,-19
  590DATA line,6,-25
  600DATA line,0,-14
  610DATA line,-10,-10
  620DATA line,-13,-4
  630DATA line,-15,-4
  640DATA line,-17,-2
  650DATA line,-15,2
  660DATA line,-13,2
  670DATA line,-8,-6
  680DATA line,0,-10
  690DATA line,2,-9
  700DATA closed
  710:
  720DATA start,-1,-1,-1
  730DATA move,18,-12
  740DATA line,20,-14
  750DATA move,19,-11
  760DATA line,21,-13
  770DATA move,10,-14
  780DATA line,13,-15
  790DATA move,19,-17
  800DATA line,21,-19
  810DATA move,19,-20
  820DATA line,17,-20
  830DATA line,16,-21
  840DATA move,18,-28
  850DATA line,15,-29
  860DATA move,19,-35
  870DATA line,19,-34
  880DATA line,20,-32
  890DATA move,35,-41
  900DATA line,36,-43
  910DATA move,36,-41
  920DATA line,38,-43
  930DATA move,8,-32
  940DATA line,8,-30
  950DATA move,-2,-24
  960DATA line,-3,-22
  970DATA move,-3,-30
  980DATA line,-5,-31
  990DATA move,-4,-28
 1000DATA line,-5,-29
 1010DATA move,6,-25
 1020DATA line,10,-29
 1030DATA move,0,-14
 1040DATA line,-1,-12
 1050DATA line,-4,-10
 1060DATA move,0,-10
 1070DATA line,4,-12
 1080DATA move,-8,-6
 1090DATA line,-9,-7
 1100DATA move,-15,2
 1110DATA line,-13,-1
 1120DATA move,-16,0
 1130DATA line,-14,-2
 1140:
 1150DATA move,9,-2
 1160DATA line,10,-6
 1170DATA line,10,-9
 1180DATA line,8,-11
 1190DATA move,6,-1
 1200DATA line,4,-3
 1210DATA line,4,-6
 1220DATA line,5,-9
 1230:
 1240DATA move,5,-7
 1250DATA curve,6,-8,6,-8,7,-12
 1260DATA curve,8,-15,9,-19,10,-22
 1270DATA curve,12,-28,14,-35,15,-40
 1280DATA curve,15,-41,14,-42,13,-42
 1290DATA move,8,-9
 1300DATA curve,7,-9,7,-11,8,-13
 1310DATA curve,9,-16,10,-18,11,-21
 1320DATA curve,13,-27,15,-34,16,-40
 1330DATA curve,16,-41,15,-42,14,-42
 1340DATA open
 1350:
 1360DATA start,8,8,8
 1370DATA move,10,-6
 1380DATA curve,11,-7,11,-9,10,-9
 1390DATA closed
 1400DATA start,8,8,8
 1410DATA move,4,-3
 1420DATA curve,3,-3,3,-5,4,-6
 1430DATA closed
 1440:
 1450DATA end
 1460:
 1470DEFPROCcreate_image
 1480$drawfile%="Draw":drawfile%!4=201:drawfile%!8=0
 1490$(drawfile%+12)="ArcDraw     "
 1500drawfile%!24=0:drawfile%!28=0
 1510drawfile%!32=pagel%:drawfile%!36=pageh%
 1520P%=drawfile%+40
 1530M%=Dmax%/SIZE+1
 1540FOR M=-M% TO M%
 1550  FOR N=-M% TO M%
 1560    X%=Xinc1%*M+Xinc2%*N:Y%=Yinc1%*M+Yinc2%*N
 1570    IF X%>=Xmin% AND X%<=Xmax% AND Y%>=Ymin% AND Y%<=Ymax% THEN
 1580      FOR J%=0 TO 2:PROCreptile(J%,X%,Y%):NEXT
 1590    ENDIF
 1600  NEXT
 1610NEXT
 1620ENDPROC
 1630:
 1640DEFPROCreptile(orient%,Xdisp%,Ydisp%)
 1650P%!0=6:grouplength%=P%+4:groupstart%=P%
 1660P%!8=0:P%!12=0:P%!16=0:P%!20=0
 1670$(P%+24)="            ":P%+=36
 1680FOR I%=0 TO pathno%-1
 1690  P%!0=2:P1%=pathlength%(I%,orient%):P%!4=P1%+&28
 1700  P%!8=0:P%!12=0:P%!16=0:P%!20=0
 1710  P%!24=pathcol%(I%,orient%):P%!28=0:P%!32=0:P%!36=&20100042:P%+=40
 1720  P0%=pathstart%(I%,orient%):K%=0
 1730  REPEAT
 1740    F%=P0%!K%:P%!K%=F%:K%+=4
 1750    CASE F% OF
 1760      WHEN 2,8:C%=1
 1770      WHEN 6:C%=3
 1780      WHEN 5,4,0:C%=0
 1790    ENDCASE
 1800    WHILE C%>0
 1810      X1%=P0%!K%:P%!K%=X1%+Xdisp%:K%+=4
 1820      Y1%=P0%!K%:P%!K%=Y1%+Ydisp%:K%+=4
 1830      C%-=1
 1840    ENDWHILE
 1850  UNTIL K%=P1%
 1860  IF pathcol%(I%,orient%)<>-1 THEN
 1870    SYS "ColourTrans_SetGCOL",pathcol%(I%,orient%),0,0,0,0
 1880    SYS "Draw_Fill",P%,0,0,0,0,0,0,0
 1890  ENDIF
 1900  SYS "ColourTrans_SetGCOL",0,0,0,0,0
 1910  SYS "Draw_Stroke",P%,0,0,0
 1920  P%+=P1%
 1930NEXT
 1940!grouplength%=P%-groupstart%
 1950ENDPROC
 1960:
 1970DEFPROCloaddata
 1980pathno%=0:P0%=path%(0):P1%=path%(1):P2%=path%(2):READ do$
 1990REPEAT
 2000  CASE do$ OF
 2010    WHEN "page":READ A$,B$:PROCpage(A$,B$)
 2020    WHEN "parms":READ A,B:PROCparms(A,B)
 2030    WHEN "start":READ A,B,C:PROCstart(A,B,C)
 2040    WHEN "move":READ B,C:PROCmove(B*SX,(B+C+C)*SY)
 2050    WHEN "line":READ B,C:PROCline(B*SX,(B+C+C)*SY)
 2060    WHEN "curve":READ B,C,D,E,F,G
 2070      PROCcurve(B*SX,(B+C+C)*SY,D*SX,(D+E+E)*SY,F*SX,(F+G+G)*SY)
 2080    WHEN "closed":PROCclosed
 2090    WHEN "open":PROCopen
 2100  ENDCASE
 2110  READ do$
 2120UNTIL do$="end"
 2130ENDPROC
 2140:
 2150DEFFNcolour(col%)
 2160LOCAL red%,grn%,blu%
 2170red%=&CC:grn%=&CC:blu%=&CC
 2180IF col%=-1 THEN =-1
 2190IF col%= 8 THEN = 0
 2200IF (col%AND1)>0 THEN red%=&FF
 2210IF (col%AND2)>0 THEN grn%=&FF
 2220IF (col%AND4)>0 THEN blu%=&FF
 2230=(red%<<8)+(grn%<<16)+(blu%<<24)
 2240:
 2250DEFPROCstart(col0%,col1%,col2%)
 2260pathstart%(pathno%,0)=P0%:pathcol%(pathno%,0)=FNcolour(col0%)
 2270pathstart%(pathno%,1)=P1%:pathcol%(pathno%,1)=FNcolour(col1%)
 2280pathstart%(pathno%,2)=P2%:pathcol%(pathno%,2)=FNcolour(col2%)
 2290ENDPROC
 2300:
 2310DEFPROCmove(X,Y)
 2320P0%!0=2:P0%!4=X*C0+Y*S0:P0%!8=X*S0-Y*C0:P0%+=12
 2330P1%!0=2:P1%!4=X*C1+Y*S1:P1%!8=X*S1-Y*C1:P1%+=12
 2340P2%!0=2:P2%!4=X*C2+Y*S2:P2%!8=X*S2-Y*C2:P2%+=12
 2350ENDPROC
 2360:
 2370DEFPROCcurve(X0,Y0,X1,Y1,X2,Y2)
 2380P0%!0=6:P0%!4=X0*C0+Y0*S0:P0%!8=X0*S0-Y0*C0
 2390P1%!0=6:P1%!4=X0*C1+Y0*S1:P1%!8=X0*S1-Y0*C1
 2400P2%!0=6:P2%!4=X0*C2+Y0*S2:P2%!8=X0*S2-Y0*C2
 2410P0%!12=X1*C0+Y1*S0:P0%!16=X1*S0-Y1*C0
 2420P1%!12=X1*C1+Y1*S1:P1%!16=X1*S1-Y1*C1
 2430P2%!12=X1*C2+Y1*S2:P2%!16=X1*S2-Y1*C2
 2440P0%!20=X2*C0+Y2*S0:P0%!24=X2*S0-Y2*C0
 2450P1%!20=X2*C1+Y2*S1:P1%!24=X2*S1-Y2*C1
 2460P2%!20=X2*C2+Y2*S2:P2%!24=X2*S2-Y2*C2
 2470P0%+=28:P1%+=28:P2%+=28
 2480ENDPROC
 2490:
 2500DEFPROCline(X,Y)
 2510P0%!0=8:P0%!4=X*C0+Y*S0:P0%!8=X*S0-Y*C0:P0%+=12
 2520P1%!0=8:P1%!4=X*C1+Y*S1:P1%!8=X*S1-Y*C1:P1%+=12
 2530P2%!0=8:P2%!4=X*C2+Y*S2:P2%!8=X*S2-Y*C2:P2%+=12
 2540ENDPROC
 2550:
 2560DEFPROCclosed
 2570P0%!0=5:P0%!4=0:P0%+=8:P1%!0=5:P1%!4=0:P1%+=8:P2%!0=5:P2%!4=0:P2%+=8
 2580pathlength%(pathno%,0)=P0%-pathstart%(pathno%,0)
 2590pathlength%(pathno%,1)=P1%-pathstart%(pathno%,1)
 2600pathlength%(pathno%,2)=P2%-pathstart%(pathno%,2):pathno%+=1
 2610ENDPROC
 2620:
 2630DEFPROCopen
 2640P0%!0=0:P0%+=4:P1%!0=0:P1%+=4:P2%!0=0:P2%+=4
 2650pathlength%(pathno%,0)=P0%-pathstart%(pathno%,0)
 2660pathlength%(pathno%,1)=P1%-pathstart%(pathno%,1)
 2670pathlength%(pathno%,2)=P2%-pathstart%(pathno%,2):pathno%+=1
 2680ENDPROC
 2690:
 2700DEFPROCpage(S$,O$)
 2710LA5Xcm=20.5:LA5Ycm=14.5
 2720CASE S$ OF
 2730  WHEN "A0":X=LA5Ycm*8:Y=LA5Xxm*4
 2740  WHEN "A1":X=LA5Xcm*4:Y=LA5Ycm*4
 2750  WHEN "A2":X=LA5Ycm*4:Y=LA5Xcm*2
 2760  WHEN "A3":X=LA5Xcm*2:Y=LA5Ycm*2
 2770  WHEN "A4":X=LA5Ycm*2:Y=LA5Xcm*1
 2780  WHEN "A5":X=LA5Xcm*1:Y=LA5Ycm*1
 2790ENDCASE
 2800IF O$="P" THEN SWAP X,Y
 2810pagel%=X*180/2.54:pageh%=Y*180/2.54:pagel%=pagel%*256:pageh%=pageh%*256
 2820Xmax%=pagel%+SIZE:Ymax%=pageh%+SIZE:Xmin%=-SIZE:Ymin%=-SIZE
 2830Dmax%=SQR(Xmax%*Xmax%+Ymax%*Ymax%)
 2840ENDPROC
 2850:
 2860DEFPROCparms(size%,angle%)
 2870R3=SQR(3):SY=size%:SX=size%*R3:SIZE=SX*60
 2880A0=RAD(angle%+0):A1=RAD(angle%+120):A2=RAD(angle%+240)
 2890C0=COS(A0):S0=SIN(A0):C1=COS(A1):S1=SIN(A1):C2=COS(A2):S2=SIN(A2)
 2900Xinc1%=SIZE*C0:Yinc1%=SIZE*S0
 2910Xinc2%=SIZE*C1:Yinc2%=SIZE*S1
 2920ENDPROC

� Reptiler
&� Create Escher "RepTiles" picture
� Jim Paterson
(� (c) Acorn Computing 1994
2:
<$� drawfile% &80000,transform% 23
F$plength%=6000:� path% plength%-1
P7� pathstart%(10,2),pathlength%(10,2),pathcol%(10,2)
Z3� path%(2):� I%=0 � 2:path%(I%)=path%+I%*2000:�
d
�loaddata
n	�15:�
x�create_image
�+�("SAVE RepFile "+�~drawfile%+" "+�~P%)
��("SETTYPE RepFile AFF")
��
�:
�� parms,1500,90
�� page,A4,L
�� start,7,1,3
�� move,0,0
�� line,7,2
�� line,10,0
�� line,14,-8
�� line,11,-13
�� line,13,-15
� line,19,-17
� line,19,-15
� line,17,-13
"� line,20,-10
,� line,25,-14
6� line,25,-18
@� line,27,-24
J� line,16,-21
T� line,18,-28
^� line,21,-27
h� line,30,-30
r� line,36,-39
|� line,40,-42
�� line,35,-44
�� line,27,-33
�� line,23,-35
�� line,19,-35
�� line,20,-40
�� line,16,-46
�� line,5,-41
�� line,11,-41
�� line,12,-37
�� line,8,-32
�� line,4,-29
�� line,2,-26
�� line,-2,-24
� line,0,-30
� line,-4,-32
� line,-6,-28
&� line,-5,-26
0� line,-6,-22
:� line,-5,-18
D� line,0,-19
N� line,6,-25
X� line,0,-14
b� line,-10,-10
l� line,-13,-4
v� line,-15,-4
�� line,-17,-2
�� line,-15,2
�� line,-13,2
�� line,-8,-6
�� line,0,-10
�� line,2,-9
�� closed
�:
�� start,-1,-1,-1
�� move,18,-12
�� line,20,-14
�� move,19,-11
�� line,21,-13
� move,10,-14
� line,13,-15
� move,19,-17
 � line,21,-19
*� move,19,-20
4� line,17,-20
>� line,16,-21
H� move,18,-28
R� line,15,-29
\� move,19,-35
f� line,19,-34
p� line,20,-32
z� move,35,-41
�� line,36,-43
�� move,36,-41
�� line,38,-43
�� move,8,-32
�� line,8,-30
�� move,-2,-24
�� line,-3,-22
�� move,-3,-30
�� line,-5,-31
�� move,-4,-28
�� line,-5,-29
�� move,6,-25
�� line,10,-29
� move,0,-14
� line,-1,-12
� line,-4,-10
$� move,0,-10
.� line,4,-12
8� move,-8,-6
B� line,-9,-7
L� move,-15,2
V� line,-13,-1
`� move,-16,0
j� line,-14,-2
t:
~� move,9,-2
�� line,10,-6
�� line,10,-9
�� line,8,-11
�� move,6,-1
�� line,4,-3
�� line,4,-6
�� line,5,-9
�:
�� move,5,-7
�� curve,6,-8,6,-8,7,-12
�� curve,8,-15,9,-19,10,-22
� � curve,12,-28,14,-35,15,-40
 � curve,15,-41,14,-42,13,-42

� move,8,-9
� curve,7,-9,7,-11,8,-13
� curve,9,-16,10,-18,11,-21
( � curve,13,-27,15,-34,16,-40
2 � curve,16,-41,15,-42,14,-42
<
� open
F:
P� start,8,8,8
Z� move,10,-6
d� curve,11,-7,11,-9,10,-9
n� closed
x� start,8,8,8
�� move,4,-3
�� curve,3,-3,3,-5,4,-6
�� closed
�:
�	� end
�:
���create_image
�3$drawfile%="Draw":drawfile%!4=201:drawfile%!8=0
�"$(drawfile%+12)="ArcDraw     "
�!drawfile%!24=0:drawfile%!28=0
�+drawfile%!32=pagel%:drawfile%!36=pageh%
�P%=drawfile%+40
�M%=Dmax%/SIZE+1
� M=-M% � M%
  � N=-M% � M%
1    X%=Xinc1%*M+Xinc2%*N:Y%=Yinc1%*M+Yinc2%*N
"9    � X%>=Xmin% � X%<=Xmax% � Y%>=Ymin% � Y%<=Ymax% �
,)      � J%=0 � 2:�reptile(J%,X%,Y%):�
6	    �
@  �
J�
T�
^:
h$��reptile(orient%,Xdisp%,Ydisp%)
r+P%!0=6:grouplength%=P%+4:groupstart%=P%
|"P%!8=0:P%!12=0:P%!16=0:P%!20=0
�"$(P%+24)="            ":P%+=36
�� I%=0 � pathno%-1
�5  P%!0=2:P1%=pathlength%(I%,orient%):P%!4=P1%+&28
�$  P%!8=0:P%!12=0:P%!16=0:P%!20=0
�G  P%!24=pathcol%(I%,orient%):P%!28=0:P%!32=0:P%!36=&20100042:P%+=40
�%  P0%=pathstart%(I%,orient%):K%=0
�  �
�     F%=P0%!K%:P%!K%=F%:K%+=4
�    Ȏ F% �
�      � 2,8:C%=1
�      � 6:C%=3
�      � 5,4,0:C%=0
�	    �
    ȕ C%>0
+      X1%=P0%!K%:P%!K%=X1%+Xdisp%:K%+=4
+      Y1%=P0%!K%:P%!K%=Y1%+Ydisp%:K%+=4
&      C%-=1
0	    �
:  � K%=P1%
D"  � pathcol%(I%,orient%)<>-1 �
N=    ș "ColourTrans_SetGCOL",pathcol%(I%,orient%),0,0,0,0
X'    ș "Draw_Fill",P%,0,0,0,0,0,0,0
b  �
l(  ș "ColourTrans_SetGCOL",0,0,0,0,0
v  ș "Draw_Stroke",P%,0,0,0
�
  P%+=P1%
��
� !grouplength%=P%-groupstart%
��
�:
���loaddata
�:pathno%=0:P0%=path%(0):P1%=path%(1):P2%=path%(2):� do$
��
�  Ȏ do$ �
�%    � "page":� A$,B$:�page(A$,B$)
�#    � "parms":� A,B:�parms(A,B)
�'    � "start":� A,B,C:�start(A,B,C)
�-    � "move":� B,C:�move(B*SX,(B+C+C)*SY)
-    � "line":� B,C:�line(B*SX,(B+C+C)*SY)
    � "curve":� B,C,D,E,F,G
A      �curve(B*SX,(B+C+C)*SY,D*SX,(D+E+E)*SY,F*SX,(F+G+G)*SY)
     � "closed":�closed
*    � "open":�open
4  �
>  � do$
H� do$="end"
R�
\:
fݤcolour(col%)
p� red%,grn%,blu%
zred%=&CC:grn%=&CC:blu%=&CC
�� col%=-1 � =-1
�� col%= 8 � = 0
�� (col%�1)>0 � red%=&FF
�� (col%�2)>0 � grn%=&FF
�� (col%�4)>0 � blu%=&FF
�$=(red%<<8)+(grn%<<16)+(blu%<<24)
�:
���start(col0%,col1%,col2%)
�@pathstart%(pathno%,0)=P0%:pathcol%(pathno%,0)=�colour(col0%)
�@pathstart%(pathno%,1)=P1%:pathcol%(pathno%,1)=�colour(col1%)
�@pathstart%(pathno%,2)=P2%:pathcol%(pathno%,2)=�colour(col2%)
��
�:
	��move(X,Y)
	3P0%!0=2:P0%!4=X*C0+Y*S0:P0%!8=X*S0-Y*C0:P0%+=12
	3P1%!0=2:P1%!4=X*C1+Y*S1:P1%!8=X*S1-Y*C1:P1%+=12
	$3P2%!0=2:P2%!4=X*C2+Y*S2:P2%!8=X*S2-Y*C2:P2%+=12
	.�
	8:
	B��curve(X0,Y0,X1,Y1,X2,Y2)
	L/P0%!0=6:P0%!4=X0*C0+Y0*S0:P0%!8=X0*S0-Y0*C0
	V/P1%!0=6:P1%!4=X0*C1+Y0*S1:P1%!8=X0*S1-Y0*C1
	`/P2%!0=6:P2%!4=X0*C2+Y0*S2:P2%!8=X0*S2-Y0*C2
	j)P0%!12=X1*C0+Y1*S0:P0%!16=X1*S0-Y1*C0
	t)P1%!12=X1*C1+Y1*S1:P1%!16=X1*S1-Y1*C1
	~)P2%!12=X1*C2+Y1*S2:P2%!16=X1*S2-Y1*C2
	�)P0%!20=X2*C0+Y2*S0:P0%!24=X2*S0-Y2*C0
	�)P1%!20=X2*C1+Y2*S1:P1%!24=X2*S1-Y2*C1
	�)P2%!20=X2*C2+Y2*S2:P2%!24=X2*S2-Y2*C2
	�P0%+=28:P1%+=28:P2%+=28
	��
	�:
	���line(X,Y)
	�3P0%!0=8:P0%!4=X*C0+Y*S0:P0%!8=X*S0-Y*C0:P0%+=12
	�3P1%!0=8:P1%!4=X*C1+Y*S1:P1%!8=X*S1-Y*C1:P1%+=12
	�3P2%!0=8:P2%!4=X*C2+Y*S2:P2%!8=X*S2-Y*C2:P2%+=12
	��
	�:
��closed

HP0%!0=5:P0%!4=0:P0%+=8:P1%!0=5:P1%!4=0:P1%+=8:P2%!0=5:P2%!4=0:P2%+=8
4pathlength%(pathno%,0)=P0%-pathstart%(pathno%,0)
4pathlength%(pathno%,1)=P1%-pathstart%(pathno%,1)
(?pathlength%(pathno%,2)=P2%-pathstart%(pathno%,2):pathno%+=1
2�
<:
F
��open
P0P0%!0=0:P0%+=4:P1%!0=0:P1%+=4:P2%!0=0:P2%+=4
Z4pathlength%(pathno%,0)=P0%-pathstart%(pathno%,0)
d4pathlength%(pathno%,1)=P1%-pathstart%(pathno%,1)
n?pathlength%(pathno%,2)=P2%-pathstart%(pathno%,2):pathno%+=1
x�
�:
���page(S$,O$)
�LA5Xcm=20.5:LA5Ycm=14.5
�Ȏ S$ �
�"  � "A0":X=LA5Ycm*8:Y=LA5Xxm*4
�"  � "A1":X=LA5Xcm*4:Y=LA5Ycm*4
�"  � "A2":X=LA5Ycm*4:Y=LA5Xcm*2
�"  � "A3":X=LA5Xcm*2:Y=LA5Ycm*2
�"  � "A4":X=LA5Ycm*2:Y=LA5Xcm*1
�"  � "A5":X=LA5Xcm*1:Y=LA5Ycm*1
��
�� O$="P" � Ȕ X,Y
�Kpagel%=X*180/2.54:pageh%=Y*180/2.54:pagel%=pagel%*256:pageh%=pageh%*256
?Xmax%=pagel%+SIZE:Ymax%=pageh%+SIZE:Xmin%=-SIZE:Ymin%=-SIZE
$Dmax%=�(Xmax%*Xmax%+Ymax%*Ymax%)
�
":
,��parms(size%,angle%)
6+R3=�(3):SY=size%:SX=size%*R3:SIZE=SX*60
@4A0=�(angle%+0):A1=�(angle%+120):A2=�(angle%+240)
J9C0=�(A0):S0=�(A0):C1=�(A1):S1=�(A1):C2=�(A2):S2=�(A2)
T!Xinc1%=SIZE*C0:Yinc1%=SIZE*S0
^!Xinc2%=SIZE*C1:Yinc2%=SIZE*S1
h�
�
00000000  0d 00 0a 0e f4 20 52 65  70 74 69 6c 65 72 0d 00  |..... Reptiler..|
00000010  14 26 f4 20 43 72 65 61  74 65 20 45 73 63 68 65  |.&. Create Esche|
00000020  72 20 22 52 65 70 54 69  6c 65 73 22 20 70 69 63  |r "RepTiles" pic|
00000030  74 75 72 65 0d 00 1e 12  f4 20 4a 69 6d 20 50 61  |ture..... Jim Pa|
00000040  74 65 72 73 6f 6e 0d 00  28 1e f4 20 28 63 29 20  |terson..(.. (c) |
00000050  41 63 6f 72 6e 20 43 6f  6d 70 75 74 69 6e 67 20  |Acorn Computing |
00000060  31 39 39 34 0d 00 32 05  3a 0d 00 3c 24 de 20 64  |1994..2.:..<$. d|
00000070  72 61 77 66 69 6c 65 25  20 26 38 30 30 30 30 2c  |rawfile% &80000,|
00000080  74 72 61 6e 73 66 6f 72  6d 25 20 32 33 0d 00 46  |transform% 23..F|
00000090  24 70 6c 65 6e 67 74 68  25 3d 36 30 30 30 3a de  |$plength%=6000:.|
000000a0  20 70 61 74 68 25 20 70  6c 65 6e 67 74 68 25 2d  | path% plength%-|
000000b0  31 0d 00 50 37 de 20 70  61 74 68 73 74 61 72 74  |1..P7. pathstart|
000000c0  25 28 31 30 2c 32 29 2c  70 61 74 68 6c 65 6e 67  |%(10,2),pathleng|
000000d0  74 68 25 28 31 30 2c 32  29 2c 70 61 74 68 63 6f  |th%(10,2),pathco|
000000e0  6c 25 28 31 30 2c 32 29  0d 00 5a 33 de 20 70 61  |l%(10,2)..Z3. pa|
000000f0  74 68 25 28 32 29 3a e3  20 49 25 3d 30 20 b8 20  |th%(2):. I%=0 . |
00000100  32 3a 70 61 74 68 25 28  49 25 29 3d 70 61 74 68  |2:path%(I%)=path|
00000110  25 2b 49 25 2a 32 30 30  30 3a ed 0d 00 64 0d f2  |%+I%*2000:...d..|
00000120  6c 6f 61 64 64 61 74 61  0d 00 6e 09 eb 31 35 3a  |loaddata..n..15:|
00000130  87 0d 00 78 11 f2 63 72  65 61 74 65 5f 69 6d 61  |...x..create_ima|
00000140  67 65 0d 00 82 2b ff 28  22 53 41 56 45 20 52 65  |ge...+.("SAVE Re|
00000150  70 46 69 6c 65 20 22 2b  c3 7e 64 72 61 77 66 69  |pFile "+.~drawfi|
00000160  6c 65 25 2b 22 20 22 2b  c3 7e 50 25 29 0d 00 8c  |le%+" "+.~P%)...|
00000170  1c ff 28 22 53 45 54 54  59 50 45 20 52 65 70 46  |..("SETTYPE RepF|
00000180  69 6c 65 20 41 46 46 22  29 0d 00 96 05 e0 0d 00  |ile AFF").......|
00000190  a0 05 3a 0d 00 aa 13 dc  20 70 61 72 6d 73 2c 31  |..:..... parms,1|
000001a0  35 30 30 2c 39 30 0d 00  b4 0f dc 20 70 61 67 65  |500,90..... page|
000001b0  2c 41 34 2c 4c 0d 00 be  11 dc 20 73 74 61 72 74  |,A4,L..... start|
000001c0  2c 37 2c 31 2c 33 0d 00  c8 0e dc 20 6d 6f 76 65  |,7,1,3..... move|
000001d0  2c 30 2c 30 0d 00 d2 0e  dc 20 6c 69 6e 65 2c 37  |,0,0..... line,7|
000001e0  2c 32 0d 00 dc 0f dc 20  6c 69 6e 65 2c 31 30 2c  |,2..... line,10,|
000001f0  30 0d 00 e6 10 dc 20 6c  69 6e 65 2c 31 34 2c 2d  |0..... line,14,-|
00000200  38 0d 00 f0 11 dc 20 6c  69 6e 65 2c 31 31 2c 2d  |8..... line,11,-|
00000210  31 33 0d 00 fa 11 dc 20  6c 69 6e 65 2c 31 33 2c  |13..... line,13,|
00000220  2d 31 35 0d 01 04 11 dc  20 6c 69 6e 65 2c 31 39  |-15..... line,19|
00000230  2c 2d 31 37 0d 01 0e 11  dc 20 6c 69 6e 65 2c 31  |,-17..... line,1|
00000240  39 2c 2d 31 35 0d 01 18  11 dc 20 6c 69 6e 65 2c  |9,-15..... line,|
00000250  31 37 2c 2d 31 33 0d 01  22 11 dc 20 6c 69 6e 65  |17,-13..".. line|
00000260  2c 32 30 2c 2d 31 30 0d  01 2c 11 dc 20 6c 69 6e  |,20,-10..,.. lin|
00000270  65 2c 32 35 2c 2d 31 34  0d 01 36 11 dc 20 6c 69  |e,25,-14..6.. li|
00000280  6e 65 2c 32 35 2c 2d 31  38 0d 01 40 11 dc 20 6c  |ne,25,-18..@.. l|
00000290  69 6e 65 2c 32 37 2c 2d  32 34 0d 01 4a 11 dc 20  |ine,27,-24..J.. |
000002a0  6c 69 6e 65 2c 31 36 2c  2d 32 31 0d 01 54 11 dc  |line,16,-21..T..|
000002b0  20 6c 69 6e 65 2c 31 38  2c 2d 32 38 0d 01 5e 11  | line,18,-28..^.|
000002c0  dc 20 6c 69 6e 65 2c 32  31 2c 2d 32 37 0d 01 68  |. line,21,-27..h|
000002d0  11 dc 20 6c 69 6e 65 2c  33 30 2c 2d 33 30 0d 01  |.. line,30,-30..|
000002e0  72 11 dc 20 6c 69 6e 65  2c 33 36 2c 2d 33 39 0d  |r.. line,36,-39.|
000002f0  01 7c 11 dc 20 6c 69 6e  65 2c 34 30 2c 2d 34 32  |.|.. line,40,-42|
00000300  0d 01 86 11 dc 20 6c 69  6e 65 2c 33 35 2c 2d 34  |..... line,35,-4|
00000310  34 0d 01 90 11 dc 20 6c  69 6e 65 2c 32 37 2c 2d  |4..... line,27,-|
00000320  33 33 0d 01 9a 11 dc 20  6c 69 6e 65 2c 32 33 2c  |33..... line,23,|
00000330  2d 33 35 0d 01 a4 11 dc  20 6c 69 6e 65 2c 31 39  |-35..... line,19|
00000340  2c 2d 33 35 0d 01 ae 11  dc 20 6c 69 6e 65 2c 32  |,-35..... line,2|
00000350  30 2c 2d 34 30 0d 01 b8  11 dc 20 6c 69 6e 65 2c  |0,-40..... line,|
00000360  31 36 2c 2d 34 36 0d 01  c2 10 dc 20 6c 69 6e 65  |16,-46..... line|
00000370  2c 35 2c 2d 34 31 0d 01  cc 11 dc 20 6c 69 6e 65  |,5,-41..... line|
00000380  2c 31 31 2c 2d 34 31 0d  01 d6 11 dc 20 6c 69 6e  |,11,-41..... lin|
00000390  65 2c 31 32 2c 2d 33 37  0d 01 e0 10 dc 20 6c 69  |e,12,-37..... li|
000003a0  6e 65 2c 38 2c 2d 33 32  0d 01 ea 10 dc 20 6c 69  |ne,8,-32..... li|
000003b0  6e 65 2c 34 2c 2d 32 39  0d 01 f4 10 dc 20 6c 69  |ne,4,-29..... li|
000003c0  6e 65 2c 32 2c 2d 32 36  0d 01 fe 11 dc 20 6c 69  |ne,2,-26..... li|
000003d0  6e 65 2c 2d 32 2c 2d 32  34 0d 02 08 10 dc 20 6c  |ne,-2,-24..... l|
000003e0  69 6e 65 2c 30 2c 2d 33  30 0d 02 12 11 dc 20 6c  |ine,0,-30..... l|
000003f0  69 6e 65 2c 2d 34 2c 2d  33 32 0d 02 1c 11 dc 20  |ine,-4,-32..... |
00000400  6c 69 6e 65 2c 2d 36 2c  2d 32 38 0d 02 26 11 dc  |line,-6,-28..&..|
00000410  20 6c 69 6e 65 2c 2d 35  2c 2d 32 36 0d 02 30 11  | line,-5,-26..0.|
00000420  dc 20 6c 69 6e 65 2c 2d  36 2c 2d 32 32 0d 02 3a  |. line,-6,-22..:|
00000430  11 dc 20 6c 69 6e 65 2c  2d 35 2c 2d 31 38 0d 02  |.. line,-5,-18..|
00000440  44 10 dc 20 6c 69 6e 65  2c 30 2c 2d 31 39 0d 02  |D.. line,0,-19..|
00000450  4e 10 dc 20 6c 69 6e 65  2c 36 2c 2d 32 35 0d 02  |N.. line,6,-25..|
00000460  58 10 dc 20 6c 69 6e 65  2c 30 2c 2d 31 34 0d 02  |X.. line,0,-14..|
00000470  62 12 dc 20 6c 69 6e 65  2c 2d 31 30 2c 2d 31 30  |b.. line,-10,-10|
00000480  0d 02 6c 11 dc 20 6c 69  6e 65 2c 2d 31 33 2c 2d  |..l.. line,-13,-|
00000490  34 0d 02 76 11 dc 20 6c  69 6e 65 2c 2d 31 35 2c  |4..v.. line,-15,|
000004a0  2d 34 0d 02 80 11 dc 20  6c 69 6e 65 2c 2d 31 37  |-4..... line,-17|
000004b0  2c 2d 32 0d 02 8a 10 dc  20 6c 69 6e 65 2c 2d 31  |,-2..... line,-1|
000004c0  35 2c 32 0d 02 94 10 dc  20 6c 69 6e 65 2c 2d 31  |5,2..... line,-1|
000004d0  33 2c 32 0d 02 9e 10 dc  20 6c 69 6e 65 2c 2d 38  |3,2..... line,-8|
000004e0  2c 2d 36 0d 02 a8 10 dc  20 6c 69 6e 65 2c 30 2c  |,-6..... line,0,|
000004f0  2d 31 30 0d 02 b2 0f dc  20 6c 69 6e 65 2c 32 2c  |-10..... line,2,|
00000500  2d 39 0d 02 bc 0c dc 20  63 6c 6f 73 65 64 0d 02  |-9..... closed..|
00000510  c6 05 3a 0d 02 d0 14 dc  20 73 74 61 72 74 2c 2d  |..:..... start,-|
00000520  31 2c 2d 31 2c 2d 31 0d  02 da 11 dc 20 6d 6f 76  |1,-1,-1..... mov|
00000530  65 2c 31 38 2c 2d 31 32  0d 02 e4 11 dc 20 6c 69  |e,18,-12..... li|
00000540  6e 65 2c 32 30 2c 2d 31  34 0d 02 ee 11 dc 20 6d  |ne,20,-14..... m|
00000550  6f 76 65 2c 31 39 2c 2d  31 31 0d 02 f8 11 dc 20  |ove,19,-11..... |
00000560  6c 69 6e 65 2c 32 31 2c  2d 31 33 0d 03 02 11 dc  |line,21,-13.....|
00000570  20 6d 6f 76 65 2c 31 30  2c 2d 31 34 0d 03 0c 11  | move,10,-14....|
00000580  dc 20 6c 69 6e 65 2c 31  33 2c 2d 31 35 0d 03 16  |. line,13,-15...|
00000590  11 dc 20 6d 6f 76 65 2c  31 39 2c 2d 31 37 0d 03  |.. move,19,-17..|
000005a0  20 11 dc 20 6c 69 6e 65  2c 32 31 2c 2d 31 39 0d  | .. line,21,-19.|
000005b0  03 2a 11 dc 20 6d 6f 76  65 2c 31 39 2c 2d 32 30  |.*.. move,19,-20|
000005c0  0d 03 34 11 dc 20 6c 69  6e 65 2c 31 37 2c 2d 32  |..4.. line,17,-2|
000005d0  30 0d 03 3e 11 dc 20 6c  69 6e 65 2c 31 36 2c 2d  |0..>.. line,16,-|
000005e0  32 31 0d 03 48 11 dc 20  6d 6f 76 65 2c 31 38 2c  |21..H.. move,18,|
000005f0  2d 32 38 0d 03 52 11 dc  20 6c 69 6e 65 2c 31 35  |-28..R.. line,15|
00000600  2c 2d 32 39 0d 03 5c 11  dc 20 6d 6f 76 65 2c 31  |,-29..\.. move,1|
00000610  39 2c 2d 33 35 0d 03 66  11 dc 20 6c 69 6e 65 2c  |9,-35..f.. line,|
00000620  31 39 2c 2d 33 34 0d 03  70 11 dc 20 6c 69 6e 65  |19,-34..p.. line|
00000630  2c 32 30 2c 2d 33 32 0d  03 7a 11 dc 20 6d 6f 76  |,20,-32..z.. mov|
00000640  65 2c 33 35 2c 2d 34 31  0d 03 84 11 dc 20 6c 69  |e,35,-41..... li|
00000650  6e 65 2c 33 36 2c 2d 34  33 0d 03 8e 11 dc 20 6d  |ne,36,-43..... m|
00000660  6f 76 65 2c 33 36 2c 2d  34 31 0d 03 98 11 dc 20  |ove,36,-41..... |
00000670  6c 69 6e 65 2c 33 38 2c  2d 34 33 0d 03 a2 10 dc  |line,38,-43.....|
00000680  20 6d 6f 76 65 2c 38 2c  2d 33 32 0d 03 ac 10 dc  | move,8,-32.....|
00000690  20 6c 69 6e 65 2c 38 2c  2d 33 30 0d 03 b6 11 dc  | line,8,-30.....|
000006a0  20 6d 6f 76 65 2c 2d 32  2c 2d 32 34 0d 03 c0 11  | move,-2,-24....|
000006b0  dc 20 6c 69 6e 65 2c 2d  33 2c 2d 32 32 0d 03 ca  |. line,-3,-22...|
000006c0  11 dc 20 6d 6f 76 65 2c  2d 33 2c 2d 33 30 0d 03  |.. move,-3,-30..|
000006d0  d4 11 dc 20 6c 69 6e 65  2c 2d 35 2c 2d 33 31 0d  |... line,-5,-31.|
000006e0  03 de 11 dc 20 6d 6f 76  65 2c 2d 34 2c 2d 32 38  |.... move,-4,-28|
000006f0  0d 03 e8 11 dc 20 6c 69  6e 65 2c 2d 35 2c 2d 32  |..... line,-5,-2|
00000700  39 0d 03 f2 10 dc 20 6d  6f 76 65 2c 36 2c 2d 32  |9..... move,6,-2|
00000710  35 0d 03 fc 11 dc 20 6c  69 6e 65 2c 31 30 2c 2d  |5..... line,10,-|
00000720  32 39 0d 04 06 10 dc 20  6d 6f 76 65 2c 30 2c 2d  |29..... move,0,-|
00000730  31 34 0d 04 10 11 dc 20  6c 69 6e 65 2c 2d 31 2c  |14..... line,-1,|
00000740  2d 31 32 0d 04 1a 11 dc  20 6c 69 6e 65 2c 2d 34  |-12..... line,-4|
00000750  2c 2d 31 30 0d 04 24 10  dc 20 6d 6f 76 65 2c 30  |,-10..$.. move,0|
00000760  2c 2d 31 30 0d 04 2e 10  dc 20 6c 69 6e 65 2c 34  |,-10..... line,4|
00000770  2c 2d 31 32 0d 04 38 10  dc 20 6d 6f 76 65 2c 2d  |,-12..8.. move,-|
00000780  38 2c 2d 36 0d 04 42 10  dc 20 6c 69 6e 65 2c 2d  |8,-6..B.. line,-|
00000790  39 2c 2d 37 0d 04 4c 10  dc 20 6d 6f 76 65 2c 2d  |9,-7..L.. move,-|
000007a0  31 35 2c 32 0d 04 56 11  dc 20 6c 69 6e 65 2c 2d  |15,2..V.. line,-|
000007b0  31 33 2c 2d 31 0d 04 60  10 dc 20 6d 6f 76 65 2c  |13,-1..`.. move,|
000007c0  2d 31 36 2c 30 0d 04 6a  11 dc 20 6c 69 6e 65 2c  |-16,0..j.. line,|
000007d0  2d 31 34 2c 2d 32 0d 04  74 05 3a 0d 04 7e 0f dc  |-14,-2..t.:..~..|
000007e0  20 6d 6f 76 65 2c 39 2c  2d 32 0d 04 88 10 dc 20  | move,9,-2..... |
000007f0  6c 69 6e 65 2c 31 30 2c  2d 36 0d 04 92 10 dc 20  |line,10,-6..... |
00000800  6c 69 6e 65 2c 31 30 2c  2d 39 0d 04 9c 10 dc 20  |line,10,-9..... |
00000810  6c 69 6e 65 2c 38 2c 2d  31 31 0d 04 a6 0f dc 20  |line,8,-11..... |
00000820  6d 6f 76 65 2c 36 2c 2d  31 0d 04 b0 0f dc 20 6c  |move,6,-1..... l|
00000830  69 6e 65 2c 34 2c 2d 33  0d 04 ba 0f dc 20 6c 69  |ine,4,-3..... li|
00000840  6e 65 2c 34 2c 2d 36 0d  04 c4 0f dc 20 6c 69 6e  |ne,4,-6..... lin|
00000850  65 2c 35 2c 2d 39 0d 04  ce 05 3a 0d 04 d8 0f dc  |e,5,-9....:.....|
00000860  20 6d 6f 76 65 2c 35 2c  2d 37 0d 04 e2 1b dc 20  | move,5,-7..... |
00000870  63 75 72 76 65 2c 36 2c  2d 38 2c 36 2c 2d 38 2c  |curve,6,-8,6,-8,|
00000880  37 2c 2d 31 32 0d 04 ec  1e dc 20 63 75 72 76 65  |7,-12..... curve|
00000890  2c 38 2c 2d 31 35 2c 39  2c 2d 31 39 2c 31 30 2c  |,8,-15,9,-19,10,|
000008a0  2d 32 32 0d 04 f6 20 dc  20 63 75 72 76 65 2c 31  |-22... . curve,1|
000008b0  32 2c 2d 32 38 2c 31 34  2c 2d 33 35 2c 31 35 2c  |2,-28,14,-35,15,|
000008c0  2d 34 30 0d 05 00 20 dc  20 63 75 72 76 65 2c 31  |-40... . curve,1|
000008d0  35 2c 2d 34 31 2c 31 34  2c 2d 34 32 2c 31 33 2c  |5,-41,14,-42,13,|
000008e0  2d 34 32 0d 05 0a 0f dc  20 6d 6f 76 65 2c 38 2c  |-42..... move,8,|
000008f0  2d 39 0d 05 14 1c dc 20  63 75 72 76 65 2c 37 2c  |-9..... curve,7,|
00000900  2d 39 2c 37 2c 2d 31 31  2c 38 2c 2d 31 33 0d 05  |-9,7,-11,8,-13..|
00000910  1e 1f dc 20 63 75 72 76  65 2c 39 2c 2d 31 36 2c  |... curve,9,-16,|
00000920  31 30 2c 2d 31 38 2c 31  31 2c 2d 32 31 0d 05 28  |10,-18,11,-21..(|
00000930  20 dc 20 63 75 72 76 65  2c 31 33 2c 2d 32 37 2c  | . curve,13,-27,|
00000940  31 35 2c 2d 33 34 2c 31  36 2c 2d 34 30 0d 05 32  |15,-34,16,-40..2|
00000950  20 dc 20 63 75 72 76 65  2c 31 36 2c 2d 34 31 2c  | . curve,16,-41,|
00000960  31 35 2c 2d 34 32 2c 31  34 2c 2d 34 32 0d 05 3c  |15,-42,14,-42..<|
00000970  0a dc 20 6f 70 65 6e 0d  05 46 05 3a 0d 05 50 11  |.. open..F.:..P.|
00000980  dc 20 73 74 61 72 74 2c  38 2c 38 2c 38 0d 05 5a  |. start,8,8,8..Z|
00000990  10 dc 20 6d 6f 76 65 2c  31 30 2c 2d 36 0d 05 64  |.. move,10,-6..d|
000009a0  1d dc 20 63 75 72 76 65  2c 31 31 2c 2d 37 2c 31  |.. curve,11,-7,1|
000009b0  31 2c 2d 39 2c 31 30 2c  2d 39 0d 05 6e 0c dc 20  |1,-9,10,-9..n.. |
000009c0  63 6c 6f 73 65 64 0d 05  78 11 dc 20 73 74 61 72  |closed..x.. star|
000009d0  74 2c 38 2c 38 2c 38 0d  05 82 0f dc 20 6d 6f 76  |t,8,8,8..... mov|
000009e0  65 2c 34 2c 2d 33 0d 05  8c 1a dc 20 63 75 72 76  |e,4,-3..... curv|
000009f0  65 2c 33 2c 2d 33 2c 33  2c 2d 35 2c 34 2c 2d 36  |e,3,-3,3,-5,4,-6|
00000a00  0d 05 96 0c dc 20 63 6c  6f 73 65 64 0d 05 a0 05  |..... closed....|
00000a10  3a 0d 05 aa 09 dc 20 65  6e 64 0d 05 b4 05 3a 0d  |:..... end....:.|
00000a20  05 be 12 dd f2 63 72 65  61 74 65 5f 69 6d 61 67  |.....create_imag|
00000a30  65 0d 05 c8 33 24 64 72  61 77 66 69 6c 65 25 3d  |e...3$drawfile%=|
00000a40  22 44 72 61 77 22 3a 64  72 61 77 66 69 6c 65 25  |"Draw":drawfile%|
00000a50  21 34 3d 32 30 31 3a 64  72 61 77 66 69 6c 65 25  |!4=201:drawfile%|
00000a60  21 38 3d 30 0d 05 d2 22  24 28 64 72 61 77 66 69  |!8=0..."$(drawfi|
00000a70  6c 65 25 2b 31 32 29 3d  22 41 72 63 44 72 61 77  |le%+12)="ArcDraw|
00000a80  20 20 20 20 20 22 0d 05  dc 21 64 72 61 77 66 69  |     "...!drawfi|
00000a90  6c 65 25 21 32 34 3d 30  3a 64 72 61 77 66 69 6c  |le%!24=0:drawfil|
00000aa0  65 25 21 32 38 3d 30 0d  05 e6 2b 64 72 61 77 66  |e%!28=0...+drawf|
00000ab0  69 6c 65 25 21 33 32 3d  70 61 67 65 6c 25 3a 64  |ile%!32=pagel%:d|
00000ac0  72 61 77 66 69 6c 65 25  21 33 36 3d 70 61 67 65  |rawfile%!36=page|
00000ad0  68 25 0d 05 f0 13 50 25  3d 64 72 61 77 66 69 6c  |h%....P%=drawfil|
00000ae0  65 25 2b 34 30 0d 05 fa  13 4d 25 3d 44 6d 61 78  |e%+40....M%=Dmax|
00000af0  25 2f 53 49 5a 45 2b 31  0d 06 04 10 e3 20 4d 3d  |%/SIZE+1..... M=|
00000b00  2d 4d 25 20 b8 20 4d 25  0d 06 0e 12 20 20 e3 20  |-M% . M%....  . |
00000b10  4e 3d 2d 4d 25 20 b8 20  4d 25 0d 06 18 31 20 20  |N=-M% . M%...1  |
00000b20  20 20 58 25 3d 58 69 6e  63 31 25 2a 4d 2b 58 69  |  X%=Xinc1%*M+Xi|
00000b30  6e 63 32 25 2a 4e 3a 59  25 3d 59 69 6e 63 31 25  |nc2%*N:Y%=Yinc1%|
00000b40  2a 4d 2b 59 69 6e 63 32  25 2a 4e 0d 06 22 39 20  |*M+Yinc2%*N.."9 |
00000b50  20 20 20 e7 20 58 25 3e  3d 58 6d 69 6e 25 20 80  |   . X%>=Xmin% .|
00000b60  20 58 25 3c 3d 58 6d 61  78 25 20 80 20 59 25 3e  | X%<=Xmax% . Y%>|
00000b70  3d 59 6d 69 6e 25 20 80  20 59 25 3c 3d 59 6d 61  |=Ymin% . Y%<=Yma|
00000b80  78 25 20 8c 0d 06 2c 29  20 20 20 20 20 20 e3 20  |x% ...,)      . |
00000b90  4a 25 3d 30 20 b8 20 32  3a f2 72 65 70 74 69 6c  |J%=0 . 2:.reptil|
00000ba0  65 28 4a 25 2c 58 25 2c  59 25 29 3a ed 0d 06 36  |e(J%,X%,Y%):...6|
00000bb0  09 20 20 20 20 cd 0d 06  40 07 20 20 ed 0d 06 4a  |.    ...@.  ...J|
00000bc0  05 ed 0d 06 54 05 e1 0d  06 5e 05 3a 0d 06 68 24  |....T....^.:..h$|
00000bd0  dd f2 72 65 70 74 69 6c  65 28 6f 72 69 65 6e 74  |..reptile(orient|
00000be0  25 2c 58 64 69 73 70 25  2c 59 64 69 73 70 25 29  |%,Xdisp%,Ydisp%)|
00000bf0  0d 06 72 2b 50 25 21 30  3d 36 3a 67 72 6f 75 70  |..r+P%!0=6:group|
00000c00  6c 65 6e 67 74 68 25 3d  50 25 2b 34 3a 67 72 6f  |length%=P%+4:gro|
00000c10  75 70 73 74 61 72 74 25  3d 50 25 0d 06 7c 22 50  |upstart%=P%..|"P|
00000c20  25 21 38 3d 30 3a 50 25  21 31 32 3d 30 3a 50 25  |%!8=0:P%!12=0:P%|
00000c30  21 31 36 3d 30 3a 50 25  21 32 30 3d 30 0d 06 86  |!16=0:P%!20=0...|
00000c40  22 24 28 50 25 2b 32 34  29 3d 22 20 20 20 20 20  |"$(P%+24)="     |
00000c50  20 20 20 20 20 20 20 22  3a 50 25 2b 3d 33 36 0d  |       ":P%+=36.|
00000c60  06 90 16 e3 20 49 25 3d  30 20 b8 20 70 61 74 68  |.... I%=0 . path|
00000c70  6e 6f 25 2d 31 0d 06 9a  35 20 20 50 25 21 30 3d  |no%-1...5  P%!0=|
00000c80  32 3a 50 31 25 3d 70 61  74 68 6c 65 6e 67 74 68  |2:P1%=pathlength|
00000c90  25 28 49 25 2c 6f 72 69  65 6e 74 25 29 3a 50 25  |%(I%,orient%):P%|
00000ca0  21 34 3d 50 31 25 2b 26  32 38 0d 06 a4 24 20 20  |!4=P1%+&28...$  |
00000cb0  50 25 21 38 3d 30 3a 50  25 21 31 32 3d 30 3a 50  |P%!8=0:P%!12=0:P|
00000cc0  25 21 31 36 3d 30 3a 50  25 21 32 30 3d 30 0d 06  |%!16=0:P%!20=0..|
00000cd0  ae 47 20 20 50 25 21 32  34 3d 70 61 74 68 63 6f  |.G  P%!24=pathco|
00000ce0  6c 25 28 49 25 2c 6f 72  69 65 6e 74 25 29 3a 50  |l%(I%,orient%):P|
00000cf0  25 21 32 38 3d 30 3a 50  25 21 33 32 3d 30 3a 50  |%!28=0:P%!32=0:P|
00000d00  25 21 33 36 3d 26 32 30  31 30 30 30 34 32 3a 50  |%!36=&20100042:P|
00000d10  25 2b 3d 34 30 0d 06 b8  25 20 20 50 30 25 3d 70  |%+=40...%  P0%=p|
00000d20  61 74 68 73 74 61 72 74  25 28 49 25 2c 6f 72 69  |athstart%(I%,ori|
00000d30  65 6e 74 25 29 3a 4b 25  3d 30 0d 06 c2 07 20 20  |ent%):K%=0....  |
00000d40  f5 0d 06 cc 20 20 20 20  20 46 25 3d 50 30 25 21  |....     F%=P0%!|
00000d50  4b 25 3a 50 25 21 4b 25  3d 46 25 3a 4b 25 2b 3d  |K%:P%!K%=F%:K%+=|
00000d60  34 0d 06 d6 0f 20 20 20  20 c8 8e 20 46 25 20 ca  |4....    .. F% .|
00000d70  0d 06 e0 14 20 20 20 20  20 20 c9 20 32 2c 38 3a  |....      . 2,8:|
00000d80  43 25 3d 31 0d 06 ea 12  20 20 20 20 20 20 c9 20  |C%=1....      . |
00000d90  36 3a 43 25 3d 33 0d 06  f4 16 20 20 20 20 20 20  |6:C%=3....      |
00000da0  c9 20 35 2c 34 2c 30 3a  43 25 3d 30 0d 06 fe 09  |. 5,4,0:C%=0....|
00000db0  20 20 20 20 cb 0d 07 08  0f 20 20 20 20 c8 95 20  |    .....    .. |
00000dc0  43 25 3e 30 0d 07 12 2b  20 20 20 20 20 20 58 31  |C%>0...+      X1|
00000dd0  25 3d 50 30 25 21 4b 25  3a 50 25 21 4b 25 3d 58  |%=P0%!K%:P%!K%=X|
00000de0  31 25 2b 58 64 69 73 70  25 3a 4b 25 2b 3d 34 0d  |1%+Xdisp%:K%+=4.|
00000df0  07 1c 2b 20 20 20 20 20  20 59 31 25 3d 50 30 25  |..+      Y1%=P0%|
00000e00  21 4b 25 3a 50 25 21 4b  25 3d 59 31 25 2b 59 64  |!K%:P%!K%=Y1%+Yd|
00000e10  69 73 70 25 3a 4b 25 2b  3d 34 0d 07 26 0f 20 20  |isp%:K%+=4..&.  |
00000e20  20 20 20 20 43 25 2d 3d  31 0d 07 30 09 20 20 20  |    C%-=1..0.   |
00000e30  20 ce 0d 07 3a 0e 20 20  fd 20 4b 25 3d 50 31 25  | ...:.  . K%=P1%|
00000e40  0d 07 44 22 20 20 e7 20  70 61 74 68 63 6f 6c 25  |..D"  . pathcol%|
00000e50  28 49 25 2c 6f 72 69 65  6e 74 25 29 3c 3e 2d 31  |(I%,orient%)<>-1|
00000e60  20 8c 0d 07 4e 3d 20 20  20 20 c8 99 20 22 43 6f  | ...N=    .. "Co|
00000e70  6c 6f 75 72 54 72 61 6e  73 5f 53 65 74 47 43 4f  |lourTrans_SetGCO|
00000e80  4c 22 2c 70 61 74 68 63  6f 6c 25 28 49 25 2c 6f  |L",pathcol%(I%,o|
00000e90  72 69 65 6e 74 25 29 2c  30 2c 30 2c 30 2c 30 0d  |rient%),0,0,0,0.|
00000ea0  07 58 27 20 20 20 20 c8  99 20 22 44 72 61 77 5f  |.X'    .. "Draw_|
00000eb0  46 69 6c 6c 22 2c 50 25  2c 30 2c 30 2c 30 2c 30  |Fill",P%,0,0,0,0|
00000ec0  2c 30 2c 30 2c 30 0d 07  62 07 20 20 cd 0d 07 6c  |,0,0,0..b.  ...l|
00000ed0  28 20 20 c8 99 20 22 43  6f 6c 6f 75 72 54 72 61  |(  .. "ColourTra|
00000ee0  6e 73 5f 53 65 74 47 43  4f 4c 22 2c 30 2c 30 2c  |ns_SetGCOL",0,0,|
00000ef0  30 2c 30 2c 30 0d 07 76  1f 20 20 c8 99 20 22 44  |0,0,0..v.  .. "D|
00000f00  72 61 77 5f 53 74 72 6f  6b 65 22 2c 50 25 2c 30  |raw_Stroke",P%,0|
00000f10  2c 30 2c 30 0d 07 80 0d  20 20 50 25 2b 3d 50 31  |,0,0....  P%+=P1|
00000f20  25 0d 07 8a 05 ed 0d 07  94 20 21 67 72 6f 75 70  |%........ !group|
00000f30  6c 65 6e 67 74 68 25 3d  50 25 2d 67 72 6f 75 70  |length%=P%-group|
00000f40  73 74 61 72 74 25 0d 07  9e 05 e1 0d 07 a8 05 3a  |start%.........:|
00000f50  0d 07 b2 0e dd f2 6c 6f  61 64 64 61 74 61 0d 07  |......loaddata..|
00000f60  bc 3a 70 61 74 68 6e 6f  25 3d 30 3a 50 30 25 3d  |.:pathno%=0:P0%=|
00000f70  70 61 74 68 25 28 30 29  3a 50 31 25 3d 70 61 74  |path%(0):P1%=pat|
00000f80  68 25 28 31 29 3a 50 32  25 3d 70 61 74 68 25 28  |h%(1):P2%=path%(|
00000f90  32 29 3a f3 20 64 6f 24  0d 07 c6 05 f5 0d 07 d0  |2):. do$........|
00000fa0  0e 20 20 c8 8e 20 64 6f  24 20 ca 0d 07 da 25 20  |.  .. do$ ....% |
00000fb0  20 20 20 c9 20 22 70 61  67 65 22 3a f3 20 41 24  |   . "page":. A$|
00000fc0  2c 42 24 3a f2 70 61 67  65 28 41 24 2c 42 24 29  |,B$:.page(A$,B$)|
00000fd0  0d 07 e4 23 20 20 20 20  c9 20 22 70 61 72 6d 73  |...#    . "parms|
00000fe0  22 3a f3 20 41 2c 42 3a  f2 70 61 72 6d 73 28 41  |":. A,B:.parms(A|
00000ff0  2c 42 29 0d 07 ee 27 20  20 20 20 c9 20 22 73 74  |,B)...'    . "st|
00001000  61 72 74 22 3a f3 20 41  2c 42 2c 43 3a f2 73 74  |art":. A,B,C:.st|
00001010  61 72 74 28 41 2c 42 2c  43 29 0d 07 f8 2d 20 20  |art(A,B,C)...-  |
00001020  20 20 c9 20 22 6d 6f 76  65 22 3a f3 20 42 2c 43  |  . "move":. B,C|
00001030  3a f2 6d 6f 76 65 28 42  2a 53 58 2c 28 42 2b 43  |:.move(B*SX,(B+C|
00001040  2b 43 29 2a 53 59 29 0d  08 02 2d 20 20 20 20 c9  |+C)*SY)...-    .|
00001050  20 22 6c 69 6e 65 22 3a  f3 20 42 2c 43 3a f2 6c  | "line":. B,C:.l|
00001060  69 6e 65 28 42 2a 53 58  2c 28 42 2b 43 2b 43 29  |ine(B*SX,(B+C+C)|
00001070  2a 53 59 29 0d 08 0c 1f  20 20 20 20 c9 20 22 63  |*SY)....    . "c|
00001080  75 72 76 65 22 3a f3 20  42 2c 43 2c 44 2c 45 2c  |urve":. B,C,D,E,|
00001090  46 2c 47 0d 08 16 41 20  20 20 20 20 20 f2 63 75  |F,G...A      .cu|
000010a0  72 76 65 28 42 2a 53 58  2c 28 42 2b 43 2b 43 29  |rve(B*SX,(B+C+C)|
000010b0  2a 53 59 2c 44 2a 53 58  2c 28 44 2b 45 2b 45 29  |*SY,D*SX,(D+E+E)|
000010c0  2a 53 59 2c 46 2a 53 58  2c 28 46 2b 47 2b 47 29  |*SY,F*SX,(F+G+G)|
000010d0  2a 53 59 29 0d 08 20 1a  20 20 20 20 c9 20 22 63  |*SY).. .    . "c|
000010e0  6c 6f 73 65 64 22 3a f2  63 6c 6f 73 65 64 0d 08  |losed":.closed..|
000010f0  2a 16 20 20 20 20 c9 20  22 6f 70 65 6e 22 3a f2  |*.    . "open":.|
00001100  6f 70 65 6e 0d 08 34 07  20 20 cb 0d 08 3e 0b 20  |open..4.  ...>. |
00001110  20 f3 20 64 6f 24 0d 08  48 0f fd 20 64 6f 24 3d  | . do$..H.. do$=|
00001120  22 65 6e 64 22 0d 08 52  05 e1 0d 08 5c 05 3a 0d  |"end"..R....\.:.|
00001130  08 66 12 dd a4 63 6f 6c  6f 75 72 28 63 6f 6c 25  |.f...colour(col%|
00001140  29 0d 08 70 14 ea 20 72  65 64 25 2c 67 72 6e 25  |)..p.. red%,grn%|
00001150  2c 62 6c 75 25 0d 08 7a  1e 72 65 64 25 3d 26 43  |,blu%..z.red%=&C|
00001160  43 3a 67 72 6e 25 3d 26  43 43 3a 62 6c 75 25 3d  |C:grn%=&CC:blu%=|
00001170  26 43 43 0d 08 84 13 e7  20 63 6f 6c 25 3d 2d 31  |&CC..... col%=-1|
00001180  20 8c 20 3d 2d 31 0d 08  8e 13 e7 20 63 6f 6c 25  | . =-1..... col%|
00001190  3d 20 38 20 8c 20 3d 20  30 0d 08 98 1b e7 20 28  |= 8 . = 0..... (|
000011a0  63 6f 6c 25 80 31 29 3e  30 20 8c 20 72 65 64 25  |col%.1)>0 . red%|
000011b0  3d 26 46 46 0d 08 a2 1b  e7 20 28 63 6f 6c 25 80  |=&FF..... (col%.|
000011c0  32 29 3e 30 20 8c 20 67  72 6e 25 3d 26 46 46 0d  |2)>0 . grn%=&FF.|
000011d0  08 ac 1b e7 20 28 63 6f  6c 25 80 34 29 3e 30 20  |.... (col%.4)>0 |
000011e0  8c 20 62 6c 75 25 3d 26  46 46 0d 08 b6 24 3d 28  |. blu%=&FF...$=(|
000011f0  72 65 64 25 3c 3c 38 29  2b 28 67 72 6e 25 3c 3c  |red%<<8)+(grn%<<|
00001200  31 36 29 2b 28 62 6c 75  25 3c 3c 32 34 29 0d 08  |16)+(blu%<<24)..|
00001210  c0 05 3a 0d 08 ca 1e dd  f2 73 74 61 72 74 28 63  |..:......start(c|
00001220  6f 6c 30 25 2c 63 6f 6c  31 25 2c 63 6f 6c 32 25  |ol0%,col1%,col2%|
00001230  29 0d 08 d4 40 70 61 74  68 73 74 61 72 74 25 28  |)...@pathstart%(|
00001240  70 61 74 68 6e 6f 25 2c  30 29 3d 50 30 25 3a 70  |pathno%,0)=P0%:p|
00001250  61 74 68 63 6f 6c 25 28  70 61 74 68 6e 6f 25 2c  |athcol%(pathno%,|
00001260  30 29 3d a4 63 6f 6c 6f  75 72 28 63 6f 6c 30 25  |0)=.colour(col0%|
00001270  29 0d 08 de 40 70 61 74  68 73 74 61 72 74 25 28  |)...@pathstart%(|
00001280  70 61 74 68 6e 6f 25 2c  31 29 3d 50 31 25 3a 70  |pathno%,1)=P1%:p|
00001290  61 74 68 63 6f 6c 25 28  70 61 74 68 6e 6f 25 2c  |athcol%(pathno%,|
000012a0  31 29 3d a4 63 6f 6c 6f  75 72 28 63 6f 6c 31 25  |1)=.colour(col1%|
000012b0  29 0d 08 e8 40 70 61 74  68 73 74 61 72 74 25 28  |)...@pathstart%(|
000012c0  70 61 74 68 6e 6f 25 2c  32 29 3d 50 32 25 3a 70  |pathno%,2)=P2%:p|
000012d0  61 74 68 63 6f 6c 25 28  70 61 74 68 6e 6f 25 2c  |athcol%(pathno%,|
000012e0  32 29 3d a4 63 6f 6c 6f  75 72 28 63 6f 6c 32 25  |2)=.colour(col2%|
000012f0  29 0d 08 f2 05 e1 0d 08  fc 05 3a 0d 09 06 0f dd  |).........:.....|
00001300  f2 6d 6f 76 65 28 58 2c  59 29 0d 09 10 33 50 30  |.move(X,Y)...3P0|
00001310  25 21 30 3d 32 3a 50 30  25 21 34 3d 58 2a 43 30  |%!0=2:P0%!4=X*C0|
00001320  2b 59 2a 53 30 3a 50 30  25 21 38 3d 58 2a 53 30  |+Y*S0:P0%!8=X*S0|
00001330  2d 59 2a 43 30 3a 50 30  25 2b 3d 31 32 0d 09 1a  |-Y*C0:P0%+=12...|
00001340  33 50 31 25 21 30 3d 32  3a 50 31 25 21 34 3d 58  |3P1%!0=2:P1%!4=X|
00001350  2a 43 31 2b 59 2a 53 31  3a 50 31 25 21 38 3d 58  |*C1+Y*S1:P1%!8=X|
00001360  2a 53 31 2d 59 2a 43 31  3a 50 31 25 2b 3d 31 32  |*S1-Y*C1:P1%+=12|
00001370  0d 09 24 33 50 32 25 21  30 3d 32 3a 50 32 25 21  |..$3P2%!0=2:P2%!|
00001380  34 3d 58 2a 43 32 2b 59  2a 53 32 3a 50 32 25 21  |4=X*C2+Y*S2:P2%!|
00001390  38 3d 58 2a 53 32 2d 59  2a 43 32 3a 50 32 25 2b  |8=X*S2-Y*C2:P2%+|
000013a0  3d 31 32 0d 09 2e 05 e1  0d 09 38 05 3a 0d 09 42  |=12.......8.:..B|
000013b0  1e dd f2 63 75 72 76 65  28 58 30 2c 59 30 2c 58  |...curve(X0,Y0,X|
000013c0  31 2c 59 31 2c 58 32 2c  59 32 29 0d 09 4c 2f 50  |1,Y1,X2,Y2)..L/P|
000013d0  30 25 21 30 3d 36 3a 50  30 25 21 34 3d 58 30 2a  |0%!0=6:P0%!4=X0*|
000013e0  43 30 2b 59 30 2a 53 30  3a 50 30 25 21 38 3d 58  |C0+Y0*S0:P0%!8=X|
000013f0  30 2a 53 30 2d 59 30 2a  43 30 0d 09 56 2f 50 31  |0*S0-Y0*C0..V/P1|
00001400  25 21 30 3d 36 3a 50 31  25 21 34 3d 58 30 2a 43  |%!0=6:P1%!4=X0*C|
00001410  31 2b 59 30 2a 53 31 3a  50 31 25 21 38 3d 58 30  |1+Y0*S1:P1%!8=X0|
00001420  2a 53 31 2d 59 30 2a 43  31 0d 09 60 2f 50 32 25  |*S1-Y0*C1..`/P2%|
00001430  21 30 3d 36 3a 50 32 25  21 34 3d 58 30 2a 43 32  |!0=6:P2%!4=X0*C2|
00001440  2b 59 30 2a 53 32 3a 50  32 25 21 38 3d 58 30 2a  |+Y0*S2:P2%!8=X0*|
00001450  53 32 2d 59 30 2a 43 32  0d 09 6a 29 50 30 25 21  |S2-Y0*C2..j)P0%!|
00001460  31 32 3d 58 31 2a 43 30  2b 59 31 2a 53 30 3a 50  |12=X1*C0+Y1*S0:P|
00001470  30 25 21 31 36 3d 58 31  2a 53 30 2d 59 31 2a 43  |0%!16=X1*S0-Y1*C|
00001480  30 0d 09 74 29 50 31 25  21 31 32 3d 58 31 2a 43  |0..t)P1%!12=X1*C|
00001490  31 2b 59 31 2a 53 31 3a  50 31 25 21 31 36 3d 58  |1+Y1*S1:P1%!16=X|
000014a0  31 2a 53 31 2d 59 31 2a  43 31 0d 09 7e 29 50 32  |1*S1-Y1*C1..~)P2|
000014b0  25 21 31 32 3d 58 31 2a  43 32 2b 59 31 2a 53 32  |%!12=X1*C2+Y1*S2|
000014c0  3a 50 32 25 21 31 36 3d  58 31 2a 53 32 2d 59 31  |:P2%!16=X1*S2-Y1|
000014d0  2a 43 32 0d 09 88 29 50  30 25 21 32 30 3d 58 32  |*C2...)P0%!20=X2|
000014e0  2a 43 30 2b 59 32 2a 53  30 3a 50 30 25 21 32 34  |*C0+Y2*S0:P0%!24|
000014f0  3d 58 32 2a 53 30 2d 59  32 2a 43 30 0d 09 92 29  |=X2*S0-Y2*C0...)|
00001500  50 31 25 21 32 30 3d 58  32 2a 43 31 2b 59 32 2a  |P1%!20=X2*C1+Y2*|
00001510  53 31 3a 50 31 25 21 32  34 3d 58 32 2a 53 31 2d  |S1:P1%!24=X2*S1-|
00001520  59 32 2a 43 31 0d 09 9c  29 50 32 25 21 32 30 3d  |Y2*C1...)P2%!20=|
00001530  58 32 2a 43 32 2b 59 32  2a 53 32 3a 50 32 25 21  |X2*C2+Y2*S2:P2%!|
00001540  32 34 3d 58 32 2a 53 32  2d 59 32 2a 43 32 0d 09  |24=X2*S2-Y2*C2..|
00001550  a6 1b 50 30 25 2b 3d 32  38 3a 50 31 25 2b 3d 32  |..P0%+=28:P1%+=2|
00001560  38 3a 50 32 25 2b 3d 32  38 0d 09 b0 05 e1 0d 09  |8:P2%+=28.......|
00001570  ba 05 3a 0d 09 c4 0f dd  f2 6c 69 6e 65 28 58 2c  |..:......line(X,|
00001580  59 29 0d 09 ce 33 50 30  25 21 30 3d 38 3a 50 30  |Y)...3P0%!0=8:P0|
00001590  25 21 34 3d 58 2a 43 30  2b 59 2a 53 30 3a 50 30  |%!4=X*C0+Y*S0:P0|
000015a0  25 21 38 3d 58 2a 53 30  2d 59 2a 43 30 3a 50 30  |%!8=X*S0-Y*C0:P0|
000015b0  25 2b 3d 31 32 0d 09 d8  33 50 31 25 21 30 3d 38  |%+=12...3P1%!0=8|
000015c0  3a 50 31 25 21 34 3d 58  2a 43 31 2b 59 2a 53 31  |:P1%!4=X*C1+Y*S1|
000015d0  3a 50 31 25 21 38 3d 58  2a 53 31 2d 59 2a 43 31  |:P1%!8=X*S1-Y*C1|
000015e0  3a 50 31 25 2b 3d 31 32  0d 09 e2 33 50 32 25 21  |:P1%+=12...3P2%!|
000015f0  30 3d 38 3a 50 32 25 21  34 3d 58 2a 43 32 2b 59  |0=8:P2%!4=X*C2+Y|
00001600  2a 53 32 3a 50 32 25 21  38 3d 58 2a 53 32 2d 59  |*S2:P2%!8=X*S2-Y|
00001610  2a 43 32 3a 50 32 25 2b  3d 31 32 0d 09 ec 05 e1  |*C2:P2%+=12.....|
00001620  0d 09 f6 05 3a 0d 0a 00  0c dd f2 63 6c 6f 73 65  |....:......close|
00001630  64 0d 0a 0a 48 50 30 25  21 30 3d 35 3a 50 30 25  |d...HP0%!0=5:P0%|
00001640  21 34 3d 30 3a 50 30 25  2b 3d 38 3a 50 31 25 21  |!4=0:P0%+=8:P1%!|
00001650  30 3d 35 3a 50 31 25 21  34 3d 30 3a 50 31 25 2b  |0=5:P1%!4=0:P1%+|
00001660  3d 38 3a 50 32 25 21 30  3d 35 3a 50 32 25 21 34  |=8:P2%!0=5:P2%!4|
00001670  3d 30 3a 50 32 25 2b 3d  38 0d 0a 14 34 70 61 74  |=0:P2%+=8...4pat|
00001680  68 6c 65 6e 67 74 68 25  28 70 61 74 68 6e 6f 25  |hlength%(pathno%|
00001690  2c 30 29 3d 50 30 25 2d  70 61 74 68 73 74 61 72  |,0)=P0%-pathstar|
000016a0  74 25 28 70 61 74 68 6e  6f 25 2c 30 29 0d 0a 1e  |t%(pathno%,0)...|
000016b0  34 70 61 74 68 6c 65 6e  67 74 68 25 28 70 61 74  |4pathlength%(pat|
000016c0  68 6e 6f 25 2c 31 29 3d  50 31 25 2d 70 61 74 68  |hno%,1)=P1%-path|
000016d0  73 74 61 72 74 25 28 70  61 74 68 6e 6f 25 2c 31  |start%(pathno%,1|
000016e0  29 0d 0a 28 3f 70 61 74  68 6c 65 6e 67 74 68 25  |)..(?pathlength%|
000016f0  28 70 61 74 68 6e 6f 25  2c 32 29 3d 50 32 25 2d  |(pathno%,2)=P2%-|
00001700  70 61 74 68 73 74 61 72  74 25 28 70 61 74 68 6e  |pathstart%(pathn|
00001710  6f 25 2c 32 29 3a 70 61  74 68 6e 6f 25 2b 3d 31  |o%,2):pathno%+=1|
00001720  0d 0a 32 05 e1 0d 0a 3c  05 3a 0d 0a 46 0a dd f2  |..2....<.:..F...|
00001730  6f 70 65 6e 0d 0a 50 30  50 30 25 21 30 3d 30 3a  |open..P0P0%!0=0:|
00001740  50 30 25 2b 3d 34 3a 50  31 25 21 30 3d 30 3a 50  |P0%+=4:P1%!0=0:P|
00001750  31 25 2b 3d 34 3a 50 32  25 21 30 3d 30 3a 50 32  |1%+=4:P2%!0=0:P2|
00001760  25 2b 3d 34 0d 0a 5a 34  70 61 74 68 6c 65 6e 67  |%+=4..Z4pathleng|
00001770  74 68 25 28 70 61 74 68  6e 6f 25 2c 30 29 3d 50  |th%(pathno%,0)=P|
00001780  30 25 2d 70 61 74 68 73  74 61 72 74 25 28 70 61  |0%-pathstart%(pa|
00001790  74 68 6e 6f 25 2c 30 29  0d 0a 64 34 70 61 74 68  |thno%,0)..d4path|
000017a0  6c 65 6e 67 74 68 25 28  70 61 74 68 6e 6f 25 2c  |length%(pathno%,|
000017b0  31 29 3d 50 31 25 2d 70  61 74 68 73 74 61 72 74  |1)=P1%-pathstart|
000017c0  25 28 70 61 74 68 6e 6f  25 2c 31 29 0d 0a 6e 3f  |%(pathno%,1)..n?|
000017d0  70 61 74 68 6c 65 6e 67  74 68 25 28 70 61 74 68  |pathlength%(path|
000017e0  6e 6f 25 2c 32 29 3d 50  32 25 2d 70 61 74 68 73  |no%,2)=P2%-paths|
000017f0  74 61 72 74 25 28 70 61  74 68 6e 6f 25 2c 32 29  |tart%(pathno%,2)|
00001800  3a 70 61 74 68 6e 6f 25  2b 3d 31 0d 0a 78 05 e1  |:pathno%+=1..x..|
00001810  0d 0a 82 05 3a 0d 0a 8c  11 dd f2 70 61 67 65 28  |....:......page(|
00001820  53 24 2c 4f 24 29 0d 0a  96 1b 4c 41 35 58 63 6d  |S$,O$)....LA5Xcm|
00001830  3d 32 30 2e 35 3a 4c 41  35 59 63 6d 3d 31 34 2e  |=20.5:LA5Ycm=14.|
00001840  35 0d 0a a0 0b c8 8e 20  53 24 20 ca 0d 0a aa 22  |5...... S$ ...."|
00001850  20 20 c9 20 22 41 30 22  3a 58 3d 4c 41 35 59 63  |  . "A0":X=LA5Yc|
00001860  6d 2a 38 3a 59 3d 4c 41  35 58 78 6d 2a 34 0d 0a  |m*8:Y=LA5Xxm*4..|
00001870  b4 22 20 20 c9 20 22 41  31 22 3a 58 3d 4c 41 35  |."  . "A1":X=LA5|
00001880  58 63 6d 2a 34 3a 59 3d  4c 41 35 59 63 6d 2a 34  |Xcm*4:Y=LA5Ycm*4|
00001890  0d 0a be 22 20 20 c9 20  22 41 32 22 3a 58 3d 4c  |..."  . "A2":X=L|
000018a0  41 35 59 63 6d 2a 34 3a  59 3d 4c 41 35 58 63 6d  |A5Ycm*4:Y=LA5Xcm|
000018b0  2a 32 0d 0a c8 22 20 20  c9 20 22 41 33 22 3a 58  |*2..."  . "A3":X|
000018c0  3d 4c 41 35 58 63 6d 2a  32 3a 59 3d 4c 41 35 59  |=LA5Xcm*2:Y=LA5Y|
000018d0  63 6d 2a 32 0d 0a d2 22  20 20 c9 20 22 41 34 22  |cm*2..."  . "A4"|
000018e0  3a 58 3d 4c 41 35 59 63  6d 2a 32 3a 59 3d 4c 41  |:X=LA5Ycm*2:Y=LA|
000018f0  35 58 63 6d 2a 31 0d 0a  dc 22 20 20 c9 20 22 41  |5Xcm*1..."  . "A|
00001900  35 22 3a 58 3d 4c 41 35  58 63 6d 2a 31 3a 59 3d  |5":X=LA5Xcm*1:Y=|
00001910  4c 41 35 59 63 6d 2a 31  0d 0a e6 05 cb 0d 0a f0  |LA5Ycm*1........|
00001920  15 e7 20 4f 24 3d 22 50  22 20 8c 20 c8 94 20 58  |.. O$="P" . .. X|
00001930  2c 59 0d 0a fa 4b 70 61  67 65 6c 25 3d 58 2a 31  |,Y...Kpagel%=X*1|
00001940  38 30 2f 32 2e 35 34 3a  70 61 67 65 68 25 3d 59  |80/2.54:pageh%=Y|
00001950  2a 31 38 30 2f 32 2e 35  34 3a 70 61 67 65 6c 25  |*180/2.54:pagel%|
00001960  3d 70 61 67 65 6c 25 2a  32 35 36 3a 70 61 67 65  |=pagel%*256:page|
00001970  68 25 3d 70 61 67 65 68  25 2a 32 35 36 0d 0b 04  |h%=pageh%*256...|
00001980  3f 58 6d 61 78 25 3d 70  61 67 65 6c 25 2b 53 49  |?Xmax%=pagel%+SI|
00001990  5a 45 3a 59 6d 61 78 25  3d 70 61 67 65 68 25 2b  |ZE:Ymax%=pageh%+|
000019a0  53 49 5a 45 3a 58 6d 69  6e 25 3d 2d 53 49 5a 45  |SIZE:Xmin%=-SIZE|
000019b0  3a 59 6d 69 6e 25 3d 2d  53 49 5a 45 0d 0b 0e 24  |:Ymin%=-SIZE...$|
000019c0  44 6d 61 78 25 3d b6 28  58 6d 61 78 25 2a 58 6d  |Dmax%=.(Xmax%*Xm|
000019d0  61 78 25 2b 59 6d 61 78  25 2a 59 6d 61 78 25 29  |ax%+Ymax%*Ymax%)|
000019e0  0d 0b 18 05 e1 0d 0b 22  05 3a 0d 0b 2c 19 dd f2  |.......".:..,...|
000019f0  70 61 72 6d 73 28 73 69  7a 65 25 2c 61 6e 67 6c  |parms(size%,angl|
00001a00  65 25 29 0d 0b 36 2b 52  33 3d b6 28 33 29 3a 53  |e%)..6+R3=.(3):S|
00001a10  59 3d 73 69 7a 65 25 3a  53 58 3d 73 69 7a 65 25  |Y=size%:SX=size%|
00001a20  2a 52 33 3a 53 49 5a 45  3d 53 58 2a 36 30 0d 0b  |*R3:SIZE=SX*60..|
00001a30  40 34 41 30 3d b2 28 61  6e 67 6c 65 25 2b 30 29  |@4A0=.(angle%+0)|
00001a40  3a 41 31 3d b2 28 61 6e  67 6c 65 25 2b 31 32 30  |:A1=.(angle%+120|
00001a50  29 3a 41 32 3d b2 28 61  6e 67 6c 65 25 2b 32 34  |):A2=.(angle%+24|
00001a60  30 29 0d 0b 4a 39 43 30  3d 9b 28 41 30 29 3a 53  |0)..J9C0=.(A0):S|
00001a70  30 3d b5 28 41 30 29 3a  43 31 3d 9b 28 41 31 29  |0=.(A0):C1=.(A1)|
00001a80  3a 53 31 3d b5 28 41 31  29 3a 43 32 3d 9b 28 41  |:S1=.(A1):C2=.(A|
00001a90  32 29 3a 53 32 3d b5 28  41 32 29 0d 0b 54 21 58  |2):S2=.(A2)..T!X|
00001aa0  69 6e 63 31 25 3d 53 49  5a 45 2a 43 30 3a 59 69  |inc1%=SIZE*C0:Yi|
00001ab0  6e 63 31 25 3d 53 49 5a  45 2a 53 30 0d 0b 5e 21  |nc1%=SIZE*S0..^!|
00001ac0  58 69 6e 63 32 25 3d 53  49 5a 45 2a 43 31 3a 59  |Xinc2%=SIZE*C1:Y|
00001ad0  69 6e 63 32 25 3d 53 49  5a 45 2a 53 31 0d 0b 68  |inc2%=SIZE*S1..h|
00001ae0  05 e1 0d ff                                       |....|
00001ae4