Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape32a_acorn_eu_1992_march.wav » ArachDe

ArachDe

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 » Personal collection » Acorn tapes » Electron_User » Electron_User_tape32a_acorn_eu_1992_march.wav
Filename: ArachDe
Read OK:
File size: 1AA3 bytes
Load address: FFFFFB43
Exec address: FFFF5B92
File contents
   10REM > <basicsave$dir>.ArachDesgn
   20REM by Steve Turnbull
   30REM (c) The Micro User
   40MODE4:ONERRORPROCq:REPORT:PRINT" at ";ERL:END
   50PROCinit:ONERRORPROCe
   60REPEAT
   70IFM%=0k$="M"+ck$+ss$
   80IFM%=1k$=FNm("Main","Object|Screen|Edit|File")
   90IFM%=2k$=FNm("Object","Bonuses|Hindrances")
  100IFM%=3k$=FNm("Screen","Clear|Delete|Insert|Restore")
  110IFM%=4k$=FNm("Edit","Energy|Data|Speed")
  120IFM%=5k$=FNm("File","Load|Save|Basic|New|Quit")
  130IFM%=6k$=FNm("Clear","All|Objects|Walls")
  140IFM%=7k$=FNm("Bonus","Player|Energy|Weapon|Teleport")
  150IFM%=8k$=FNm("Hindrance","Generator|Monster|Fungus|Barrier")
  160REPEAToM%=M%:K%=FNg(k$):IFK%>LENk$PROCnm
  170IFM%=0PROCm0:ELSEIFM%=1PROCm1:ELSEIFM%=2PROCm2:ELSEIFM%=3PROCm3:ELSEIFM%=4PROCm4:ELSEIFM%=5PROCm5:ELSEIFM%=6PROCm6:ELSEIFM%=7PROCm7:ELSEIFM%=8PROCm8
  180UNTILM%<>oM%:UNTILq%:PROCq:END
  190
  200DEFPROCe:PROCttl:tt%=0:IFERR=17IFNOTINKEY-1PROCnm:ENDPROC
  210ONERROROFF:PROCq:REPORT:PRINT" at ";ERL:END
  220
  230DEFPROCq:COLOUR128:COLOUR1:VDU26,12:*FX4
  240VDU23,1,1;0;0;0;:ENDPROC
  250
  260DEFPROCinit:q%=FALSE:VDU23,1,0;0;0;0;:*FX4,1
  270ms%=4:mb%=8:DIMs%(ms%+1),s$(ms%+1,mb%):H%=ASC".":xn%=126-H%
  280FORS%=1TOms%:ss$=ss$+STR$S%:NEXT:lx%=0:wx%=39:ty%=0:hy%=24:my%=31
  290X%=lx%+1:Y%=ty%+1:oX%=-1:oY%=-1:ww%=wx%:hw%=my%
  300VDU&8017;-1;-1;-1;-1;:B%=128
  310VDU&8117;&7E18;&FF7E;&7EFF;&187E;
  320VDU&8217;&0603;&1E0C;&180C;&6030;
  330VDU&8317;&B800;&FFFE;&B8FE;0;
  340VDU&8417;&81FF;&BDBD;&9999;&FF81;
  350VDU&8517;&3E00;&6E7E;&6E56;&7C;
  360VDU&8617;&3C42;&7EDB;&7E3C;&8142;
  370VDU&8717;&320C;&566C;&5C3A;&3068;
  380VDU&8817;&55AA;&55AA;&55AA;&55AA;
  390mi%=5:DIMm$(mi%):d$="|":ck$=CHR$136+CHR$137+CHR$138+CHR$139
  400READno%:num%=0:nun%=1:nux%=2:en=3:dt=4:sp=5:mx=sp:DIMo%(no%,mx),o$(no%)
  410FORO%=1TOno%:READo$(O%):FORI%=nun%TOmx:READo%(O%,I%):NEXT:NEXT
  420tt%=FALSE:ttl%=FALSE:o$(0)="Wall":mo%=30:ty=0:xp=1:yp=2:DIMob%(mo%,mx)
  430PROCrst(1):ENDPROC
  440
  450DATA 8
  460DATA Player,1,1,20,0,10
  470DATA Energy,0,20,50,0,20
  480DATA Weapon,0,5,10,0,10
  490DATA Teleport,0,5,10,0,10
  500DATA Generator,1,5,50,20,40
  510DATA Monster,0,4,10,0,10
  520DATA Fungus,0,8,5,0,10
  530DATA Barrier,0,30,40,0,20
  540
  550DEFPROCrst(Z%)es%=FALSE:L%=Z%:PROCdl(L%):PROCnm:ENDPROC
  560
  570DEFPROCcls(X%,Y%,U%,V%,C%)VDU28X%Y%+V%X%+U%Y%:ww%=U%:hw%=V%
  580IFC%>-1VDU17C%+128,17,1-C%,12:ELSEVDU26,17,128,17,1:ww%=wx%:hw%=my%
  590ENDPROC
  600
  610DEFFNc(X%,Y%)LOCALA%:A%=135:VDU31X%Y%:=(USR(&FFF4)AND&FF00)DIV256
  620
  630DEFPROCnm:M%=0:K%=0:PROCm("Level "+STR$L%+": Press 'M' for menu")
  640PROCcls(lx%,my%-6,wx%/3,5,0):oX%=-1:PROCnp(X%,Y%):ENDPROC
  650
  660DEFPROCdl(L%):PROCcls(lx%,ty%,wx%,hy%,1):es%=FALSE
  670PROCcls(lx%+1,ty%+1,wx%-2,hy%-2,0):PROCds(L%):ENDPROC
  680
  690DEFPROCds(L%)LOCALK%,Q%:PROCm("Drawing level "+STR$L%):PROCcls(0,0,0,0,-1)
  700K%=B%:FORQ%=1TOmb%:PROCdd(s$(L%,Q%)):NEXT:on=0:PROCdob(s$(L%,0)):ENDPROC
  710
  720DEFPROCdd(s$)LOCALP%:IFs$=""ENDPROC:ELSEFORP%=1TOLENs$
  730PRINTSTRING$(ASCMID$(s$,P%)-H%,CHR$K%);:K%=ABS(K%-B%-32):NEXT:ENDPROC
  740
  750DEFPROCdob(s$)LOCALL%,P%,Q%:IFs$=""ENDPROC:ELSEL%=LENs$:REPEAT
  760FORQ%=0TOmx:ob%(on,Q%)=FNv:NEXT
  770VDU31ob%(on,xp)ob%(on,yp)B%+ob%(on,ty):on=on+1:UNTILP%>=L%:ENDPROC
  780
  790DEFFNv:P%=P%+1:c$=MID$(s$,P%,1):IFc$<>"!"=ASCc$-H%
  800P%=P%+2:=xn%*(ASCMID$(s$,P%-1)-H%)+ASCMID$(s$,P%)-H%
  810
  820DEFPROCm(k$)PROCcls(lx%,my%,wx%,0,0):PROCcn(k$,0):ENDPROC
  830
  840DEFPROCcn(k$,Y%)PRINTTAB((ww%-LENk$)/2,Y%)k$;:ENDPROC
  850
  860DEFFNm(t$,m$)LOCALo$,M%,X%:m$=m$+d$:PROCt(t$):X%=(ww%-LENt$)/2:REPEAT
  870o$=o$+CHR$ASCm$:P%=INSTR(m$,d$):PRINTTAB(X%,M%)LEFT$(m$,P%-1);
  880m$=MID$(m$,P%+1):M%=M%+1:UNTILm$="":=o$
  890
  900DEFPROCt(t$)PROCm(""):PROCcls(lx%,my%-6,wx%/3,0,0):PROCcn(t$,0)
  910PROCcls(lx%,my%-5,wx%/3,5,1):ENDPROC
  920
  930DEFFNg(k$)LOCALI%:PROCcls(0,0,0,0,-1):C%=FNc(X%,Y%):k$=CHR$255+k$+CHR$13
  940PROCttl:REPEATVDUB%,8:I%=INSTR(k$,INKEY$4)-1:IFI%<1I%=0
  950VDU32,8:IFI%ELSEI%=INSTR(k$,INKEY$4)-1:IFI%<1I%=0
  960VDUC%,8:IFI%ELSEI%=INSTR(k$,INKEY$5)-1:IFI%<1I%=0
  970UNTILI%:PROCttl:VDUC%8:=I%
  980
  990DEFPROCttl
 1000IFtt%GCOL3,1:MOVEFNgx(ttx%),FNgy(tty%):DRAWFNgx(X%),FNgy(Y%):ttl%=NOTttl%
 1010ENDPROC
 1020
 1030DEFFNgx(X%)=X%*32+16
 1040DEFFNgy(Y%)=(my%-Y%)*32+16
 1050
 1060DEFPROCm0:IFK%=1K%=0:M%=1ELSEK%=K%-1
 1070IFK%<1ORK%>4ELSEIFINKEY-1IFC%=32es%=TRUE:VDUB%ELSEIFINKEY-2IFC%=B%es%=TRUE:VDU32
 1080IFK%=1IFX%>lx%+1X%=X%-1ELSEIFK%=2IFX%<wx%-1X%=X%+1
 1090IFK%=3IFY%<hy%-1Y%=Y%+1ELSEIFK%=4IFY%>ty%+1Y%=Y%-1
 1100IFK%>4PROCnw(K%-4)ELSEPROCnp(X%,Y%)
 1110K%=0:ENDPROC
 1120
 1130DEFPROCnw(K%)IFK%<>L%PROCsl(L%):L%=K%:PROCdl(L%)
 1140PROCnm:ENDPROC
 1150
 1160DEFPROCnp(X%,Y%)LOCALD%,O%:IFoX%=X%IFoY%=Y%ENDPROC:ELSEoX%=X%:oY%=Y%
 1170LOCALC%:VDU26:C%=FNc(X%,Y%):PROCcls(wx%/2,my%-5,wx%/2,3,ABS(C%<>32))
 1180IFC%=32ENDPROC:ELSEPROCcn(o$(C%-B%),0):IFC%=B%ENDPROC:ELSEO%=FNf(X%,Y%)
 1190PROCcn("Energy:"+STR$(ob%(O%,en)),1):PROCcn("Speed:"+STR$(ob%(O%,sp)),2)
 1200D%=ob%(O%,dt):IFob%(O%,ty)<>4PROCcn("Data:"+STR$D%,3):ENDPROC
 1210PROCcn("To: "+STR$(D%DIV64)+","+STR$(D%MOD64),3):ENDPROC
 1220
 1230DEFFNf(X%,Y%)LOCALO%:O%=-1:REPEAT
 1240O%=O%+1:UNTIL(X%=ob%(O%,xp)AND(Y%=ob%(O%,yp)))ORO%=on:IFO%=on=-1ELSE=O%
 1250
 1260DEFPROCsl(L%)IFes%es%=FALSE:ELSEENDPROC
 1270LOCALs$,C%,D%,E%,Q%,U%,V%:PROCm("Reading screen "+STR$L%)
 1280VDU26:E%=-1:C%=-1:FORQ%=1TOmb%:s$(L%,Q%)="":NEXT:Q%=1
 1290FORV%=ty%TOty%+hy%:FORU%=lx%TOlx%+wx%:D%=FNc(U%,V%):IFD%<>B%D%=32
 1300IFD%<>C%PROCfix:C%=D%ELSEIFE%>xn%PROCfix:ELSEE%=E%+1
 1310NEXT:NEXT:PROCfix:IFs$>""s$(L%,Q%)=s$
 1320s$(L%,0)=FNsob:ENDPROC
 1330
 1340DEFPROCfix:IFC%=-1s$=""ELSEs$=s$+CHR$(E%+H%)
 1350E%=1:IFLENs$>200s$(L%,Q%)=s$:s$="":Q%=Q%+1
 1360ENDPROC
 1370
 1380DEFFNsob:LOCALL%,O%,Q%,V%,s$:IFon=0=s$
 1390REPEATFORQ%=0TOmx:V%=ob%(O%,Q%):c$=""
 1400IFV%>xn%L%=0:REPEATL%=L%+1:V%=V%-xn%:UNTILV%<=xn%:c$="!"+CHR$(L%+H%)
 1410s$=s$+c$+CHR$(V%+H%):NEXT:O%=O%+1:UNTILO%=on:=s$
 1420
 1430DEFPROCer(t$)PROCm(t$):PROCw(300):PROCnm:ENDPROC
 1440
 1450DEFPROCw(T%)T%=T%+TIME:REPEATUNTILTIME>T%:ENDPROC
 1460
 1470DEFPROCm1:IFK%<>3ELSEIFC%=32ORC%=B%PROCnm:ENDPROC
 1480M%=K%+1:ENDPROC
 1490
 1500DEFPROCm2:M%=K%+6:ENDPROC
 1510
 1520DEFPROCm7
 1530DEFPROCm8:K%=K%+4
 1540LOCALN%:N%=o%(K%,num%)
 1550IFK%+B%=C%PROCdel(X%,Y%)ELSEIFC%=32IFN%<o%(K%,nux%)PROCadd(K%,X%,Y%)
 1560o%(K%,num%)=N%:PROCnm:ENDPROC
 1570
 1580DEFPROCtp:tt%=NOTtt%:IFtt%ttx%=X%:tty%=Y%:ttl%=FALSE:to%=on
 1590IFNOTtt%ob%(to%,dt)=X%*64+Y%
 1600ENDPROC
 1610
 1620DEFPROCdel(X%,Y%)LOCALL%,O%,P%:P%=FNf(X%,Y%):on=on-1:VDU32:N%=N%-1
 1630FORO%=P%TOon:FORL%=ty TOmx:ob%(O%,L%)=ob%(O%+1,L%):NEXT:NEXT
 1640es%=TRUE:ENDPROC
 1650
 1660DEFPROCadd(K%,X%,Y%)IFK%=4PROCtp:IFNOTtt%ENDPROC
 1670ob%(on,ty)=K%:ob%(on,xp)=X%:ob%(on,yp)=Y%:ob%(on,en)=o%(K%,en)
 1680ob%(on,sp)=o%(K%,sp):ob%(on,dt)=o%(K%,dt):N%=N%+1:on=on+1:VDUB%+K%
 1690es%=TRUE:ENDPROC
 1700
 1710DEFPROCm3:IFK%=1M%=6:ENDPROC
 1720IFK%=2PROCdls:ELSEIFK%=3PROCins:ELSEIFK%=4PROCres
 1730PROCnm:ENDPROC
 1740
 1750DEFPROCdls:LOCALQ%,S%:IFL%=ms%FORS%=0TOmb%:s$(L%,S%)="":NEXT:ELSEFORQ%=L%+1TOms%:FORS%=0TOmb%:s$(Q%-1,S%)=s$(Q%,S%):s$(Q%,S%)="":NEXT:NEXT
 1760PROCrst(L%):ENDPROC
 1770
 1780DEFPROCins:PROCsl(L%):IFs$(ms%,1)>""PROCer("All levels filled"):ENDPROC
 1790LOCALQ%,S%:FORQ%=ms%-1TOL%STEP-1:FORS%=0TOmb%:s$(Q%+1,S%)=s$(Q%,S%)
 1800s$(Q%,S%)="":NEXT:NEXT:PROCdl(L%):PROCsl(L%):ENDPROC
 1810
 1820DEFPROCres:PROCrst(L%):ENDPROC
 1830
 1840DEFPROCm4:LOCALO%:O%=FNf(X%,Y%):C%=C%-B%
 1850IFK%=1t$="Energy"ELSEIFK%=2t$="Data"ELSEt$="Speed"
 1860IFob%(O%,ty)=4ANDK%=3ELSEK%=en+K%-1:ob%(O%,K%)=FNed(t$,ob%(O%,K%),o%(C%,K%))
 1870PROCnm:ENDPROC
 1880
 1890DEFFNed(t$,V%,Q%)PROCt(t$):REPEATCLS:PRINTTAB(0,1)"Max = ";Q%
 1900INPUTTAB(0,3)":"t$:V%=VALt$:UNTILV%<=Q%:es%=TRUE:=V%
 1910
 1920DEFPROCm5:IFK%=1PROCld:ELSEIFK%=2PROCsv:PROCnm:ELSEIFK%=3PROCsp:PROCnm:ELSEIFK%=4PROCnew:ELSEq%=TRUE
 1930ENDPROC
 1940
 1950DEFPROCld:LOCALQ%,S%:f$=FNgf("Load screens")
 1960Z%=OPENINf$:IFZ%=0PROCer("Couldn't find file '"+f$+"'"):ENDPROC
 1970FORS%=1TOms%:FORQ%=0TOmb%:INPUT#Z%,s$(S%,Q%):NEXT:NEXT:CLOSE#Z%
 1980PROCrst(1):ENDPROC
 1990
 2000DEFPROCsv:LOCALQ%,S%:PROCsl(L%):f$=FNgf("Save screens")
 2010Z%=OPENOUTf$:IFZ%=0PROCer("Couldn't open file '"+f$+"'"):ENDPROC
 2020FORS%=1TOms%:FORQ%=0TOmb%:PRINT#Z%,s$(S%,Q%):NEXT:NEXT:CLOSE#Z%:ENDPROC
 2030
 2040DEFPROCsp:LOCALK%,P%,Q%,S%,N%:PROCsl(L%):f$=FNgf("Spool screens")
 2050Z%=OPENOUTf$:IFZ%=0PROCer("Couldn't open file '"+f$+"'"):ENDPROC
 2060N%=32000:S%=0:REPEATS%=S%+1:UNTILs$(S%,0)="":PROCnl:PROCo(STR$(S%-1))
 2070S%=1:REPEATP%=0:REPEATP%=P%+1:UNTILs$(S%,P%)="":PROCnl:PROCo(STR$P%)
 2080FORQ%=0TO P%-1:PROCnl:PROCo(s$(S%,Q%)):NEXT:S%=S%+1
 2090UNTILs$(S%,0)="":PROCo(CHR$13):CLOSE#Z%:ENDPROC
 2100
 2110DEFPROCnl:K%=0:PROCo(CHR$13+STR$N%+"DATA"):N%=N%+1:ENDPROC
 2120
 2130DEFPROCo(s$)IFs$=""ENDPROC
 2140LOCALL%:FORL%=1TOLENs$:PROCb(ASCMID$(s$,L%)):NEXT:ENDPROC
 2150
 2160DEFPROCb(B%)BPUT#Z%,B%:K%=K%+1:ENDPROC
 2170
 2180DEFFNgf(t$)PROCt(t$):INPUTTAB(0,2)":"t$:=t$
 2190
 2200DEFPROCnew:FORQ%=0TOms%:FORS%=0TOmb%:s$(Q%,S%)="":NEXT:NEXT:PROCrst(1)
 2210ENDPROC
 2220
 2230DEFPROCm6:LOCALS%:IFK%=1ORK%=2s$(L%,0)=""
 2240IFK%=1ORK%=3FORS%=1TOmb%:s$(L%,S%)="":NEXT
 2250PROCdl(L%):PROCcls(0,0,0,0,-1):PROCnm:ENDPROC

"� > <basicsave$dir>.ArachDesgn
� by Steve Turnbull
� (c) The Micro User
(�4:��q:�:�" at ";�:�
2�init:��e
<�
F�M%=0k$="M"+ck$+ss$
P0�M%=1k$=�m("Main","Object|Screen|Edit|File")
Z-�M%=2k$=�m("Object","Bonuses|Hindrances")
d6�M%=3k$=�m("Screen","Clear|Delete|Insert|Restore")
n*�M%=4k$=�m("Edit","Energy|Data|Speed")
x1�M%=5k$=�m("File","Load|Save|Basic|New|Quit")
�+�M%=6k$=�m("Clear","All|Objects|Walls")
�7�M%=7k$=�m("Bonus","Player|Energy|Weapon|Teleport")
�>�M%=8k$=�m("Hindrance","Generator|Monster|Fungus|Barrier")
� �oM%=M%:K%=�g(k$):�K%>�k$�nm
�\�M%=0�m0:��M%=1�m1:��M%=2�m2:��M%=3�m3:��M%=4�m4:��M%=5�m5:��M%=6�m6:��M%=7�m7:��M%=8�m8
��M%<>oM%:�q%:�q:�
�
�"��e:�ttl:tt%=0:�=17符-1�nm:�
�:�q:�:�" at ";�:�
�
���q:�128:�1:�26,12:*FX4
��23,1,1;0;0;0;:�
�
%��init:q%=�:�23,1,0;0;0;0;:*FX4,1
;ms%=4:mb%=8:�s%(ms%+1),s$(ms%+1,mb%):H%=�".":xn%=126-H%
<�S%=1�ms%:ss$=ss$+�S%:�:lx%=0:wx%=39:ty%=0:hy%=24:my%=31
"3X%=lx%+1:Y%=ty%+1:oX%=-1:oY%=-1:ww%=wx%:hw%=my%
,�&8017;-1;-1;-1;-1;:B%=128
6#�&8117;&7E18;&FF7E;&7EFF;&187E;
@#�&8217;&0603;&1E0C;&180C;&6030;
J�&8317;&B800;&FFFE;&B8FE;0;
T#�&8417;&81FF;&BDBD;&9999;&FF81;
^!�&8517;&3E00;&6E7E;&6E56;&7C;
h#�&8617;&3C42;&7EDB;&7E3C;&8142;
r#�&8717;&320C;&566C;&5C3A;&3068;
|#�&8817;&55AA;&55AA;&55AA;&55AA;
�1mi%=5:�m$(mi%):d$="|":ck$=�136+�137+�138+�139
�F�no%:num%=0:nun%=1:nux%=2:en=3:dt=4:sp=5:mx=sp:�o%(no%,mx),o$(no%)
�0�O%=1�no%:�o$(O%):�I%=nun%�mx:�o%(O%,I%):�:�
�@tt%=�:ttl%=�:o$(0)="Wall":mo%=30:ty=0:xp=1:yp=2:�ob%(mo%,mx)
�
�rst(1):�
�
�� 8
�� Player,1,1,20,0,10
�� Energy,0,20,50,0,20
�� Weapon,0,5,10,0,10
�� Teleport,0,5,10,0,10
�� Generator,1,5,50,20,40
�� Monster,0,4,10,0,10
� Fungus,0,8,5,0,10
� Barrier,0,30,40,0,20

&&��rst(Z%)es%=�:L%=Z%:�dl(L%):�nm:�
0
:8��cls(X%,Y%,U%,V%,C%)�28X%Y%+V%X%+U%Y%:ww%=U%:hw%=V%
D?�C%>-1�17C%+128,17,1-C%,12:��26,17,128,17,1:ww%=wx%:hw%=my%
N�
X
b6ݤc(X%,Y%)�A%:A%=135:�31X%Y%:=(�(&FFF4)�&FF00)�256
l
v:��nm:M%=0:K%=0:�m("Level "+�L%+": Press 'M' for menu")
�1�cls(lx%,my%-6,wx%/3,5,0):oX%=-1:�np(X%,Y%):�
�
�*��dl(L%):�cls(lx%,ty%,wx%,hy%,1):es%=�
�-�cls(lx%+1,ty%+1,wx%-2,hy%-2,0):�ds(L%):�
�
�<��ds(L%)�K%,Q%:�m("Drawing level "+�L%):�cls(0,0,0,0,-1)
�:K%=B%:�Q%=1�mb%:�dd(s$(L%,Q%)):�:on=0:�dob(s$(L%,0)):�
�
�"��dd(s$)�P%:�s$=""�:��P%=1��s$
�*�ė�s$,P%)-H%,�K%);:K%=�(K%-B%-32):�:�
�
�(��dob(s$)�L%,P%,Q%:�s$=""�:�L%=�s$:�
��Q%=0�mx:ob%(on,Q%)=�v:�
:�31ob%(on,xp)ob%(on,yp)B%+ob%(on,ty):on=on+1:�P%>=L%:�

,ݤv:P%=P%+1:c$=�s$,P%,1):�c$<>"!"=�c$-H%
 ,P%=P%+2:=xn%*(��s$,P%-1)-H%)+��s$,P%)-H%
*
4,��m(k$)�cls(lx%,my%,wx%,0,0):�cn(k$,0):�
>
H%��cn(k$,Y%)�(ww%-�k$)/2,Y%)k$;:�
R
\8ݤm(t$,m$)�o$,M%,X%:m$=m$+d$:�t(t$):X%=(ww%-�t$)/2:�
f,o$=o$+��m$:P%=�m$,d$):�X%,M%)�m$,P%-1);
p#m$=�m$,P%+1):M%=M%+1:�m$="":=o$
z
�5��t(t$)�m(""):�cls(lx%,my%-6,wx%/3,0,0):�cn(t$,0)
��cls(lx%,my%-5,wx%/3,5,1):�
�
�;ݤg(k$)�I%:�cls(0,0,0,0,-1):C%=�c(X%,Y%):k$=�255+k$+�13
�&�ttl:��B%,8:I%=�k$,�4)-1:�I%<1I%=0
�$�32,8:�I%�I%=�k$,�4)-1:�I%<1I%=0
�$�C%,8:�I%�I%=�k$,�5)-1:�I%<1I%=0
��I%:�ttl:�C%8:=I%
�
�	��ttl
�=�tt%�3,1:�gx(ttx%),�gy(tty%):ߤgx(X%),�gy(Y%):ttl%=�ttl%
��
�
ݤgx(X%)=X%*32+16
ݤgy(Y%)=(my%-Y%)*32+16

$��m0:�K%=1K%=0:M%=1�K%=K%-1
.6�K%<1�K%>4��-1�C%=32es%=�:�B%��-2�C%=B%es%=�:�32
8/�K%=1�X%>lx%+1X%=X%-1��K%=2�X%<wx%-1X%=X%+1
B/�K%=3�Y%<hy%-1Y%=Y%+1��K%=4�Y%>ty%+1Y%=Y%-1
L�K%>4�nw(K%-4)��np(X%,Y%)
V
K%=0:�
`
j(��nw(K%)�K%<>L%�sl(L%):L%=K%:�dl(L%)
t	�nm:�
~
�4��np(X%,Y%)�D%,O%:�oX%=X%�oY%=Y%�:�oX%=X%:oY%=Y%
�<�C%:�26:C%=�c(X%,Y%):�cls(wx%/2,my%-5,wx%/2,3,�(C%<>32))
�3�C%=32�:��cn(o$(C%-B%),0):�C%=B%�:�O%=�f(X%,Y%)
�@�cn("Energy:"+�(ob%(O%,en)),1):�cn("Speed:"+�(ob%(O%,sp)),2)
�4D%=ob%(O%,dt):�ob%(O%,ty)<>4�cn("Data:"+�D%,3):�
�)�cn("To: "+�(D%�64)+","+�(D%�64),3):�
�
�ݤf(X%,Y%)�O%:O%=-1:�
�@O%=O%+1:�(X%=ob%(O%,xp)�(Y%=ob%(O%,yp)))�O%=on:�O%=on=-1�=O%
�
���sl(L%)�es%es%=�:��
�3�s$,C%,D%,E%,Q%,U%,V%:�m("Reading screen "+�L%)
1�26:E%=-1:C%=-1:�Q%=1�mb%:s$(L%,Q%)="":�:Q%=1

=�V%=ty%�ty%+hy%:�U%=lx%�lx%+wx%:D%=�c(U%,V%):�D%<>B%D%=32
*�D%<>C%�fix:C%=D%��E%>xn%�fix:�E%=E%+1
�:�:�fix:�s$>""s$(L%,Q%)=s$
(s$(L%,0)=�sob:�
2
<$��fix:�C%=-1s$=""�s$=s$+�(E%+H%)
F+E%=1:�s$>200s$(L%,Q%)=s$:s$="":Q%=Q%+1
P�
Z
d"ݤsob:�L%,O%,Q%,V%,s$:�on=0=s$
n!��Q%=0�mx:V%=ob%(O%,Q%):c$=""
x;�V%>xn%L%=0:�L%=L%+1:V%=V%-xn%:�V%<=xn%:c$="!"+�(L%+H%)
�*s$=s$+c$+�(V%+H%):�:O%=O%+1:�O%=on:=s$
�
� ��er(t$)�m(t$):�w(300):�nm:�
�
���w(T%)T%=T%+�:���>T%:�
�
�!��m1:�K%<>3��C%=32�C%=B%�nm:�
�
M%=K%+1:�
�
���m2:M%=K%+6:�
�
���m7
���m8:K%=K%+4
�N%:N%=o%(K%,num%)
<�K%+B%=C%�del(X%,Y%)��C%=32�N%<o%(K%,nux%)�add(K%,X%,Y%)
o%(K%,num%)=N%:�nm:�
"
,3��tp:tt%=�tt%:�tt%ttx%=X%:tty%=Y%:ttl%=�:to%=on
6�tt%ob%(to%,dt)=X%*64+Y%
@�
J
T:��del(X%,Y%)�L%,O%,P%:P%=�f(X%,Y%):on=on-1:�32:N%=N%-1
^4�O%=P%�on:�L%=ty �mx:ob%(O%,L%)=ob%(O%+1,L%):�:�
hes%=�:�
r
|"��add(K%,X%,Y%)�K%=4�tp:�tt%�
�Bob%(on,ty)=K%:ob%(on,xp)=X%:ob%(on,yp)=Y%:ob%(on,en)=o%(K%,en)
�Dob%(on,sp)=o%(K%,sp):ob%(on,dt)=o%(K%,dt):N%=N%+1:on=on+1:�B%+K%
�es%=�:�
�
���m3:�K%=1M%=6:�
�#�K%=2�dls:��K%=3�ins:��K%=4�res
�	�nm:�
�
�o��dls:�Q%,S%:�L%=ms%�S%=0�mb%:s$(L%,S%)="":�:��Q%=L%+1�ms%:�S%=0�mb%:s$(Q%-1,S%)=s$(Q%,S%):s$(Q%,S%)="":�:�
��rst(L%):�
�
�9��ins:�sl(L%):�s$(ms%,1)>""�er("All levels filled"):�
�:�Q%,S%:�Q%=ms%-1�L%�-1:�S%=0�mb%:s$(Q%+1,S%)=s$(Q%,S%)
&s$(Q%,S%)="":�:�:�dl(L%):�sl(L%):�

��res:�rst(L%):�
&
0"��m4:�O%:O%=�f(X%,Y%):C%=C%-B%
:.�K%=1t$="Energy"��K%=2t$="Data"�t$="Speed"
DI�ob%(O%,ty)=4�K%=3�K%=en+K%-1:ob%(O%,K%)=�ed(t$,ob%(O%,K%),o%(C%,K%))
N	�nm:�
X
b-ݤed(t$,V%,Q%)�t(t$):��:�0,1)"Max = ";Q%
l(�0,3)":"t$:V%=�t$:�V%<=Q%:es%=�:=V%
v
�>��m5:�K%=1�ld:��K%=2�sv:�nm:��K%=3�sp:�nm:��K%=4�new:�q%=�
��
�
�&��ld:�Q%,S%:f$=�gf("Load screens")
�4Z%=�f$:�Z%=0�er("Couldn't find file '"+f$+"'"):�
�/�S%=1�ms%:�Q%=0�mb%:�#Z%,s$(S%,Q%):�:�:�#Z%
�
�rst(1):�
�
�.��sv:�Q%,S%:�sl(L%):f$=�gf("Save screens")
�4Z%=�f$:�Z%=0�er("Couldn't open file '"+f$+"'"):�
�1�S%=1�ms%:�Q%=0�mb%:�#Z%,s$(S%,Q%):�:�:�#Z%:�
�
�8��sp:�K%,P%,Q%,S%,N%:�sl(L%):f$=�gf("Spool screens")
4Z%=�f$:�Z%=0�er("Couldn't open file '"+f$+"'"):�
7N%=32000:S%=0:�S%=S%+1:�s$(S%,0)="":�nl:�o(�(S%-1))
1S%=1:�P%=0:�P%=P%+1:�s$(S%,P%)="":�nl:�o(�P%)
 +�Q%=0� P%-1:�nl:�o(s$(S%,Q%)):�:S%=S%+1
*�s$(S%,0)="":�o(�13):�#Z%:�
4
>*��nl:K%=0:�o(�13+�N%+"DATA"):N%=N%+1:�
H
R��o(s$)�s$=""�
\"�L%:�L%=1��s$:�b(��s$,L%)):�:�
f
p��b(B%)�#Z%,B%:K%=K%+1:�
z
�"ݤgf(t$)�t(t$):�0,2)":"t$:=t$
�
�6��new:�Q%=0�ms%:�S%=0�mb%:s$(Q%,S%)="":�:�:�rst(1)
��
�
�"��m6:�S%:�K%=1�K%=2s$(L%,0)=""
�&�K%=1�K%=3�S%=1�mb%:s$(L%,S%)="":�
�"�dl(L%):�cls(0,0,0,0,-1):�nm:�
�
00000000  0d 00 0a 22 f4 20 3e 20  3c 62 61 73 69 63 73 61  |...". > <basicsa|
00000010  76 65 24 64 69 72 3e 2e  41 72 61 63 68 44 65 73  |ve$dir>.ArachDes|
00000020  67 6e 0d 00 14 17 f4 20  62 79 20 53 74 65 76 65  |gn..... by Steve|
00000030  20 54 75 72 6e 62 75 6c  6c 0d 00 1e 18 f4 20 28  | Turnbull..... (|
00000040  63 29 20 54 68 65 20 4d  69 63 72 6f 20 55 73 65  |c) The Micro Use|
00000050  72 0d 00 28 19 eb 34 3a  ee 85 f2 71 3a f6 3a f1  |r..(..4:...q:.:.|
00000060  22 20 61 74 20 22 3b 9e  3a e0 0d 00 32 0e f2 69  |" at ";.:...2..i|
00000070  6e 69 74 3a ee 85 f2 65  0d 00 3c 05 f5 0d 00 46  |nit:...e..<....F|
00000080  17 e7 4d 25 3d 30 6b 24  3d 22 4d 22 2b 63 6b 24  |..M%=0k$="M"+ck$|
00000090  2b 73 73 24 0d 00 50 30  e7 4d 25 3d 31 6b 24 3d  |+ss$..P0.M%=1k$=|
000000a0  a4 6d 28 22 4d 61 69 6e  22 2c 22 4f 62 6a 65 63  |.m("Main","Objec|
000000b0  74 7c 53 63 72 65 65 6e  7c 45 64 69 74 7c 46 69  |t|Screen|Edit|Fi|
000000c0  6c 65 22 29 0d 00 5a 2d  e7 4d 25 3d 32 6b 24 3d  |le")..Z-.M%=2k$=|
000000d0  a4 6d 28 22 4f 62 6a 65  63 74 22 2c 22 42 6f 6e  |.m("Object","Bon|
000000e0  75 73 65 73 7c 48 69 6e  64 72 61 6e 63 65 73 22  |uses|Hindrances"|
000000f0  29 0d 00 64 36 e7 4d 25  3d 33 6b 24 3d a4 6d 28  |)..d6.M%=3k$=.m(|
00000100  22 53 63 72 65 65 6e 22  2c 22 43 6c 65 61 72 7c  |"Screen","Clear||
00000110  44 65 6c 65 74 65 7c 49  6e 73 65 72 74 7c 52 65  |Delete|Insert|Re|
00000120  73 74 6f 72 65 22 29 0d  00 6e 2a e7 4d 25 3d 34  |store")..n*.M%=4|
00000130  6b 24 3d a4 6d 28 22 45  64 69 74 22 2c 22 45 6e  |k$=.m("Edit","En|
00000140  65 72 67 79 7c 44 61 74  61 7c 53 70 65 65 64 22  |ergy|Data|Speed"|
00000150  29 0d 00 78 31 e7 4d 25  3d 35 6b 24 3d a4 6d 28  |)..x1.M%=5k$=.m(|
00000160  22 46 69 6c 65 22 2c 22  4c 6f 61 64 7c 53 61 76  |"File","Load|Sav|
00000170  65 7c 42 61 73 69 63 7c  4e 65 77 7c 51 75 69 74  |e|Basic|New|Quit|
00000180  22 29 0d 00 82 2b e7 4d  25 3d 36 6b 24 3d a4 6d  |")...+.M%=6k$=.m|
00000190  28 22 43 6c 65 61 72 22  2c 22 41 6c 6c 7c 4f 62  |("Clear","All|Ob|
000001a0  6a 65 63 74 73 7c 57 61  6c 6c 73 22 29 0d 00 8c  |jects|Walls")...|
000001b0  37 e7 4d 25 3d 37 6b 24  3d a4 6d 28 22 42 6f 6e  |7.M%=7k$=.m("Bon|
000001c0  75 73 22 2c 22 50 6c 61  79 65 72 7c 45 6e 65 72  |us","Player|Ener|
000001d0  67 79 7c 57 65 61 70 6f  6e 7c 54 65 6c 65 70 6f  |gy|Weapon|Telepo|
000001e0  72 74 22 29 0d 00 96 3e  e7 4d 25 3d 38 6b 24 3d  |rt")...>.M%=8k$=|
000001f0  a4 6d 28 22 48 69 6e 64  72 61 6e 63 65 22 2c 22  |.m("Hindrance","|
00000200  47 65 6e 65 72 61 74 6f  72 7c 4d 6f 6e 73 74 65  |Generator|Monste|
00000210  72 7c 46 75 6e 67 75 73  7c 42 61 72 72 69 65 72  |r|Fungus|Barrier|
00000220  22 29 0d 00 a0 20 f5 6f  4d 25 3d 4d 25 3a 4b 25  |")... .oM%=M%:K%|
00000230  3d a4 67 28 6b 24 29 3a  e7 4b 25 3e a9 6b 24 f2  |=.g(k$):.K%>.k$.|
00000240  6e 6d 0d 00 aa 5c e7 4d  25 3d 30 f2 6d 30 3a 8b  |nm...\.M%=0.m0:.|
00000250  e7 4d 25 3d 31 f2 6d 31  3a 8b e7 4d 25 3d 32 f2  |.M%=1.m1:..M%=2.|
00000260  6d 32 3a 8b e7 4d 25 3d  33 f2 6d 33 3a 8b e7 4d  |m2:..M%=3.m3:..M|
00000270  25 3d 34 f2 6d 34 3a 8b  e7 4d 25 3d 35 f2 6d 35  |%=4.m4:..M%=5.m5|
00000280  3a 8b e7 4d 25 3d 36 f2  6d 36 3a 8b e7 4d 25 3d  |:..M%=6.m6:..M%=|
00000290  37 f2 6d 37 3a 8b e7 4d  25 3d 38 f2 6d 38 0d 00  |7.m7:..M%=8.m8..|
000002a0  b4 15 fd 4d 25 3c 3e 6f  4d 25 3a fd 71 25 3a f2  |...M%<>oM%:.q%:.|
000002b0  71 3a e0 0d 00 be 04 0d  00 c8 22 dd f2 65 3a f2  |q:........"..e:.|
000002c0  74 74 6c 3a 74 74 25 3d  30 3a e7 9f 3d 31 37 e7  |ttl:tt%=0:..=17.|
000002d0  ac a6 2d 31 f2 6e 6d 3a  e1 0d 00 d2 18 ee 85 87  |..-1.nm:........|
000002e0  3a f2 71 3a f6 3a f1 22  20 61 74 20 22 3b 9e 3a  |:.q:.:." at ";.:|
000002f0  e0 0d 00 dc 04 0d 00 e6  1b dd f2 71 3a fb 31 32  |...........q:.12|
00000300  38 3a fb 31 3a ef 32 36  2c 31 32 3a 2a 46 58 34  |8:.1:.26,12:*FX4|
00000310  0d 00 f0 14 ef 32 33 2c  31 2c 31 3b 30 3b 30 3b  |.....23,1,1;0;0;|
00000320  30 3b 3a e1 0d 00 fa 04  0d 01 04 25 dd f2 69 6e  |0;:........%..in|
00000330  69 74 3a 71 25 3d a3 3a  ef 32 33 2c 31 2c 30 3b  |it:q%=.:.23,1,0;|
00000340  30 3b 30 3b 30 3b 3a 2a  46 58 34 2c 31 0d 01 0e  |0;0;0;:*FX4,1...|
00000350  3b 6d 73 25 3d 34 3a 6d  62 25 3d 38 3a de 73 25  |;ms%=4:mb%=8:.s%|
00000360  28 6d 73 25 2b 31 29 2c  73 24 28 6d 73 25 2b 31  |(ms%+1),s$(ms%+1|
00000370  2c 6d 62 25 29 3a 48 25  3d 97 22 2e 22 3a 78 6e  |,mb%):H%=.".":xn|
00000380  25 3d 31 32 36 2d 48 25  0d 01 18 3c e3 53 25 3d  |%=126-H%...<.S%=|
00000390  31 b8 6d 73 25 3a 73 73  24 3d 73 73 24 2b c3 53  |1.ms%:ss$=ss$+.S|
000003a0  25 3a ed 3a 6c 78 25 3d  30 3a 77 78 25 3d 33 39  |%:.:lx%=0:wx%=39|
000003b0  3a 74 79 25 3d 30 3a 68  79 25 3d 32 34 3a 6d 79  |:ty%=0:hy%=24:my|
000003c0  25 3d 33 31 0d 01 22 33  58 25 3d 6c 78 25 2b 31  |%=31.."3X%=lx%+1|
000003d0  3a 59 25 3d 74 79 25 2b  31 3a 6f 58 25 3d 2d 31  |:Y%=ty%+1:oX%=-1|
000003e0  3a 6f 59 25 3d 2d 31 3a  77 77 25 3d 77 78 25 3a  |:oY%=-1:ww%=wx%:|
000003f0  68 77 25 3d 6d 79 25 0d  01 2c 1e ef 26 38 30 31  |hw%=my%..,..&801|
00000400  37 3b 2d 31 3b 2d 31 3b  2d 31 3b 2d 31 3b 3a 42  |7;-1;-1;-1;-1;:B|
00000410  25 3d 31 32 38 0d 01 36  23 ef 26 38 31 31 37 3b  |%=128..6#.&8117;|
00000420  26 37 45 31 38 3b 26 46  46 37 45 3b 26 37 45 46  |&7E18;&FF7E;&7EF|
00000430  46 3b 26 31 38 37 45 3b  0d 01 40 23 ef 26 38 32  |F;&187E;..@#.&82|
00000440  31 37 3b 26 30 36 30 33  3b 26 31 45 30 43 3b 26  |17;&0603;&1E0C;&|
00000450  31 38 30 43 3b 26 36 30  33 30 3b 0d 01 4a 1f ef  |180C;&6030;..J..|
00000460  26 38 33 31 37 3b 26 42  38 30 30 3b 26 46 46 46  |&8317;&B800;&FFF|
00000470  45 3b 26 42 38 46 45 3b  30 3b 0d 01 54 23 ef 26  |E;&B8FE;0;..T#.&|
00000480  38 34 31 37 3b 26 38 31  46 46 3b 26 42 44 42 44  |8417;&81FF;&BDBD|
00000490  3b 26 39 39 39 39 3b 26  46 46 38 31 3b 0d 01 5e  |;&9999;&FF81;..^|
000004a0  21 ef 26 38 35 31 37 3b  26 33 45 30 30 3b 26 36  |!.&8517;&3E00;&6|
000004b0  45 37 45 3b 26 36 45 35  36 3b 26 37 43 3b 0d 01  |E7E;&6E56;&7C;..|
000004c0  68 23 ef 26 38 36 31 37  3b 26 33 43 34 32 3b 26  |h#.&8617;&3C42;&|
000004d0  37 45 44 42 3b 26 37 45  33 43 3b 26 38 31 34 32  |7EDB;&7E3C;&8142|
000004e0  3b 0d 01 72 23 ef 26 38  37 31 37 3b 26 33 32 30  |;..r#.&8717;&320|
000004f0  43 3b 26 35 36 36 43 3b  26 35 43 33 41 3b 26 33  |C;&566C;&5C3A;&3|
00000500  30 36 38 3b 0d 01 7c 23  ef 26 38 38 31 37 3b 26  |068;..|#.&8817;&|
00000510  35 35 41 41 3b 26 35 35  41 41 3b 26 35 35 41 41  |55AA;&55AA;&55AA|
00000520  3b 26 35 35 41 41 3b 0d  01 86 31 6d 69 25 3d 35  |;&55AA;...1mi%=5|
00000530  3a de 6d 24 28 6d 69 25  29 3a 64 24 3d 22 7c 22  |:.m$(mi%):d$="|"|
00000540  3a 63 6b 24 3d bd 31 33  36 2b bd 31 33 37 2b bd  |:ck$=.136+.137+.|
00000550  31 33 38 2b bd 31 33 39  0d 01 90 46 f3 6e 6f 25  |138+.139...F.no%|
00000560  3a 6e 75 6d 25 3d 30 3a  6e 75 6e 25 3d 31 3a 6e  |:num%=0:nun%=1:n|
00000570  75 78 25 3d 32 3a 65 6e  3d 33 3a 64 74 3d 34 3a  |ux%=2:en=3:dt=4:|
00000580  73 70 3d 35 3a 6d 78 3d  73 70 3a de 6f 25 28 6e  |sp=5:mx=sp:.o%(n|
00000590  6f 25 2c 6d 78 29 2c 6f  24 28 6e 6f 25 29 0d 01  |o%,mx),o$(no%)..|
000005a0  9a 30 e3 4f 25 3d 31 b8  6e 6f 25 3a f3 6f 24 28  |.0.O%=1.no%:.o$(|
000005b0  4f 25 29 3a e3 49 25 3d  6e 75 6e 25 b8 6d 78 3a  |O%):.I%=nun%.mx:|
000005c0  f3 6f 25 28 4f 25 2c 49  25 29 3a ed 3a ed 0d 01  |.o%(O%,I%):.:...|
000005d0  a4 40 74 74 25 3d a3 3a  74 74 6c 25 3d a3 3a 6f  |.@tt%=.:ttl%=.:o|
000005e0  24 28 30 29 3d 22 57 61  6c 6c 22 3a 6d 6f 25 3d  |$(0)="Wall":mo%=|
000005f0  33 30 3a 74 79 3d 30 3a  78 70 3d 31 3a 79 70 3d  |30:ty=0:xp=1:yp=|
00000600  32 3a de 6f 62 25 28 6d  6f 25 2c 6d 78 29 0d 01  |2:.ob%(mo%,mx)..|
00000610  ae 0d f2 72 73 74 28 31  29 3a e1 0d 01 b8 04 0d  |...rst(1):......|
00000620  01 c2 07 dc 20 38 0d 01  cc 18 dc 20 50 6c 61 79  |.... 8..... Play|
00000630  65 72 2c 31 2c 31 2c 32  30 2c 30 2c 31 30 0d 01  |er,1,1,20,0,10..|
00000640  d6 19 dc 20 45 6e 65 72  67 79 2c 30 2c 32 30 2c  |... Energy,0,20,|
00000650  35 30 2c 30 2c 32 30 0d  01 e0 18 dc 20 57 65 61  |50,0,20..... Wea|
00000660  70 6f 6e 2c 30 2c 35 2c  31 30 2c 30 2c 31 30 0d  |pon,0,5,10,0,10.|
00000670  01 ea 1a dc 20 54 65 6c  65 70 6f 72 74 2c 30 2c  |.... Teleport,0,|
00000680  35 2c 31 30 2c 30 2c 31  30 0d 01 f4 1c dc 20 47  |5,10,0,10..... G|
00000690  65 6e 65 72 61 74 6f 72  2c 31 2c 35 2c 35 30 2c  |enerator,1,5,50,|
000006a0  32 30 2c 34 30 0d 01 fe  19 dc 20 4d 6f 6e 73 74  |20,40..... Monst|
000006b0  65 72 2c 30 2c 34 2c 31  30 2c 30 2c 31 30 0d 02  |er,0,4,10,0,10..|
000006c0  08 17 dc 20 46 75 6e 67  75 73 2c 30 2c 38 2c 35  |... Fungus,0,8,5|
000006d0  2c 30 2c 31 30 0d 02 12  1a dc 20 42 61 72 72 69  |,0,10..... Barri|
000006e0  65 72 2c 30 2c 33 30 2c  34 30 2c 30 2c 32 30 0d  |er,0,30,40,0,20.|
000006f0  02 1c 04 0d 02 26 26 dd  f2 72 73 74 28 5a 25 29  |.....&&..rst(Z%)|
00000700  65 73 25 3d a3 3a 4c 25  3d 5a 25 3a f2 64 6c 28  |es%=.:L%=Z%:.dl(|
00000710  4c 25 29 3a f2 6e 6d 3a  e1 0d 02 30 04 0d 02 3a  |L%):.nm:...0...:|
00000720  38 dd f2 63 6c 73 28 58  25 2c 59 25 2c 55 25 2c  |8..cls(X%,Y%,U%,|
00000730  56 25 2c 43 25 29 ef 32  38 58 25 59 25 2b 56 25  |V%,C%).28X%Y%+V%|
00000740  58 25 2b 55 25 59 25 3a  77 77 25 3d 55 25 3a 68  |X%+U%Y%:ww%=U%:h|
00000750  77 25 3d 56 25 0d 02 44  3f e7 43 25 3e 2d 31 ef  |w%=V%..D?.C%>-1.|
00000760  31 37 43 25 2b 31 32 38  2c 31 37 2c 31 2d 43 25  |17C%+128,17,1-C%|
00000770  2c 31 32 3a 8b ef 32 36  2c 31 37 2c 31 32 38 2c  |,12:..26,17,128,|
00000780  31 37 2c 31 3a 77 77 25  3d 77 78 25 3a 68 77 25  |17,1:ww%=wx%:hw%|
00000790  3d 6d 79 25 0d 02 4e 05  e1 0d 02 58 04 0d 02 62  |=my%..N....X...b|
000007a0  36 dd a4 63 28 58 25 2c  59 25 29 ea 41 25 3a 41  |6..c(X%,Y%).A%:A|
000007b0  25 3d 31 33 35 3a ef 33  31 58 25 59 25 3a 3d 28  |%=135:.31X%Y%:=(|
000007c0  ba 28 26 46 46 46 34 29  80 26 46 46 30 30 29 81  |.(&FFF4).&FF00).|
000007d0  32 35 36 0d 02 6c 04 0d  02 76 3a dd f2 6e 6d 3a  |256..l...v:..nm:|
000007e0  4d 25 3d 30 3a 4b 25 3d  30 3a f2 6d 28 22 4c 65  |M%=0:K%=0:.m("Le|
000007f0  76 65 6c 20 22 2b c3 4c  25 2b 22 3a 20 50 72 65  |vel "+.L%+": Pre|
00000800  73 73 20 27 4d 27 20 66  6f 72 20 6d 65 6e 75 22  |ss 'M' for menu"|
00000810  29 0d 02 80 31 f2 63 6c  73 28 6c 78 25 2c 6d 79  |)...1.cls(lx%,my|
00000820  25 2d 36 2c 77 78 25 2f  33 2c 35 2c 30 29 3a 6f  |%-6,wx%/3,5,0):o|
00000830  58 25 3d 2d 31 3a f2 6e  70 28 58 25 2c 59 25 29  |X%=-1:.np(X%,Y%)|
00000840  3a e1 0d 02 8a 04 0d 02  94 2a dd f2 64 6c 28 4c  |:........*..dl(L|
00000850  25 29 3a f2 63 6c 73 28  6c 78 25 2c 74 79 25 2c  |%):.cls(lx%,ty%,|
00000860  77 78 25 2c 68 79 25 2c  31 29 3a 65 73 25 3d a3  |wx%,hy%,1):es%=.|
00000870  0d 02 9e 2d f2 63 6c 73  28 6c 78 25 2b 31 2c 74  |...-.cls(lx%+1,t|
00000880  79 25 2b 31 2c 77 78 25  2d 32 2c 68 79 25 2d 32  |y%+1,wx%-2,hy%-2|
00000890  2c 30 29 3a f2 64 73 28  4c 25 29 3a e1 0d 02 a8  |,0):.ds(L%):....|
000008a0  04 0d 02 b2 3c dd f2 64  73 28 4c 25 29 ea 4b 25  |....<..ds(L%).K%|
000008b0  2c 51 25 3a f2 6d 28 22  44 72 61 77 69 6e 67 20  |,Q%:.m("Drawing |
000008c0  6c 65 76 65 6c 20 22 2b  c3 4c 25 29 3a f2 63 6c  |level "+.L%):.cl|
000008d0  73 28 30 2c 30 2c 30 2c  30 2c 2d 31 29 0d 02 bc  |s(0,0,0,0,-1)...|
000008e0  3a 4b 25 3d 42 25 3a e3  51 25 3d 31 b8 6d 62 25  |:K%=B%:.Q%=1.mb%|
000008f0  3a f2 64 64 28 73 24 28  4c 25 2c 51 25 29 29 3a  |:.dd(s$(L%,Q%)):|
00000900  ed 3a 6f 6e 3d 30 3a f2  64 6f 62 28 73 24 28 4c  |.:on=0:.dob(s$(L|
00000910  25 2c 30 29 29 3a e1 0d  02 c6 04 0d 02 d0 22 dd  |%,0)):........".|
00000920  f2 64 64 28 73 24 29 ea  50 25 3a e7 73 24 3d 22  |.dd(s$).P%:.s$="|
00000930  22 e1 3a 8b e3 50 25 3d  31 b8 a9 73 24 0d 02 da  |".:..P%=1..s$...|
00000940  2a f1 c4 97 c1 73 24 2c  50 25 29 2d 48 25 2c bd  |*....s$,P%)-H%,.|
00000950  4b 25 29 3b 3a 4b 25 3d  94 28 4b 25 2d 42 25 2d  |K%);:K%=.(K%-B%-|
00000960  33 32 29 3a ed 3a e1 0d  02 e4 04 0d 02 ee 28 dd  |32):.:........(.|
00000970  f2 64 6f 62 28 73 24 29  ea 4c 25 2c 50 25 2c 51  |.dob(s$).L%,P%,Q|
00000980  25 3a e7 73 24 3d 22 22  e1 3a 8b 4c 25 3d a9 73  |%:.s$="".:.L%=.s|
00000990  24 3a f5 0d 02 f8 1c e3  51 25 3d 30 b8 6d 78 3a  |$:......Q%=0.mx:|
000009a0  6f 62 25 28 6f 6e 2c 51  25 29 3d a4 76 3a ed 0d  |ob%(on,Q%)=.v:..|
000009b0  03 02 3a ef 33 31 6f 62  25 28 6f 6e 2c 78 70 29  |..:.31ob%(on,xp)|
000009c0  6f 62 25 28 6f 6e 2c 79  70 29 42 25 2b 6f 62 25  |ob%(on,yp)B%+ob%|
000009d0  28 6f 6e 2c 74 79 29 3a  6f 6e 3d 6f 6e 2b 31 3a  |(on,ty):on=on+1:|
000009e0  fd 50 25 3e 3d 4c 25 3a  e1 0d 03 0c 04 0d 03 16  |.P%>=L%:........|
000009f0  2c dd a4 76 3a 50 25 3d  50 25 2b 31 3a 63 24 3d  |,..v:P%=P%+1:c$=|
00000a00  c1 73 24 2c 50 25 2c 31  29 3a e7 63 24 3c 3e 22  |.s$,P%,1):.c$<>"|
00000a10  21 22 3d 97 63 24 2d 48  25 0d 03 20 2c 50 25 3d  |!"=.c$-H%.. ,P%=|
00000a20  50 25 2b 32 3a 3d 78 6e  25 2a 28 97 c1 73 24 2c  |P%+2:=xn%*(..s$,|
00000a30  50 25 2d 31 29 2d 48 25  29 2b 97 c1 73 24 2c 50  |P%-1)-H%)+..s$,P|
00000a40  25 29 2d 48 25 0d 03 2a  04 0d 03 34 2c dd f2 6d  |%)-H%..*...4,..m|
00000a50  28 6b 24 29 f2 63 6c 73  28 6c 78 25 2c 6d 79 25  |(k$).cls(lx%,my%|
00000a60  2c 77 78 25 2c 30 2c 30  29 3a f2 63 6e 28 6b 24  |,wx%,0,0):.cn(k$|
00000a70  2c 30 29 3a e1 0d 03 3e  04 0d 03 48 25 dd f2 63  |,0):...>...H%..c|
00000a80  6e 28 6b 24 2c 59 25 29  f1 8a 28 77 77 25 2d a9  |n(k$,Y%)..(ww%-.|
00000a90  6b 24 29 2f 32 2c 59 25  29 6b 24 3b 3a e1 0d 03  |k$)/2,Y%)k$;:...|
00000aa0  52 04 0d 03 5c 38 dd a4  6d 28 74 24 2c 6d 24 29  |R...\8..m(t$,m$)|
00000ab0  ea 6f 24 2c 4d 25 2c 58  25 3a 6d 24 3d 6d 24 2b  |.o$,M%,X%:m$=m$+|
00000ac0  64 24 3a f2 74 28 74 24  29 3a 58 25 3d 28 77 77  |d$:.t(t$):X%=(ww|
00000ad0  25 2d a9 74 24 29 2f 32  3a f5 0d 03 66 2c 6f 24  |%-.t$)/2:...f,o$|
00000ae0  3d 6f 24 2b bd 97 6d 24  3a 50 25 3d a7 6d 24 2c  |=o$+..m$:P%=.m$,|
00000af0  64 24 29 3a f1 8a 58 25  2c 4d 25 29 c0 6d 24 2c  |d$):..X%,M%).m$,|
00000b00  50 25 2d 31 29 3b 0d 03  70 23 6d 24 3d c1 6d 24  |P%-1);..p#m$=.m$|
00000b10  2c 50 25 2b 31 29 3a 4d  25 3d 4d 25 2b 31 3a fd  |,P%+1):M%=M%+1:.|
00000b20  6d 24 3d 22 22 3a 3d 6f  24 0d 03 7a 04 0d 03 84  |m$="":=o$..z....|
00000b30  35 dd f2 74 28 74 24 29  f2 6d 28 22 22 29 3a f2  |5..t(t$).m(""):.|
00000b40  63 6c 73 28 6c 78 25 2c  6d 79 25 2d 36 2c 77 78  |cls(lx%,my%-6,wx|
00000b50  25 2f 33 2c 30 2c 30 29  3a f2 63 6e 28 74 24 2c  |%/3,0,0):.cn(t$,|
00000b60  30 29 0d 03 8e 1f f2 63  6c 73 28 6c 78 25 2c 6d  |0).....cls(lx%,m|
00000b70  79 25 2d 35 2c 77 78 25  2f 33 2c 35 2c 31 29 3a  |y%-5,wx%/3,5,1):|
00000b80  e1 0d 03 98 04 0d 03 a2  3b dd a4 67 28 6b 24 29  |........;..g(k$)|
00000b90  ea 49 25 3a f2 63 6c 73  28 30 2c 30 2c 30 2c 30  |.I%:.cls(0,0,0,0|
00000ba0  2c 2d 31 29 3a 43 25 3d  a4 63 28 58 25 2c 59 25  |,-1):C%=.c(X%,Y%|
00000bb0  29 3a 6b 24 3d bd 32 35  35 2b 6b 24 2b bd 31 33  |):k$=.255+k$+.13|
00000bc0  0d 03 ac 26 f2 74 74 6c  3a f5 ef 42 25 2c 38 3a  |...&.ttl:..B%,8:|
00000bd0  49 25 3d a7 6b 24 2c bf  34 29 2d 31 3a e7 49 25  |I%=.k$,.4)-1:.I%|
00000be0  3c 31 49 25 3d 30 0d 03  b6 24 ef 33 32 2c 38 3a  |<1I%=0...$.32,8:|
00000bf0  e7 49 25 8b 49 25 3d a7  6b 24 2c bf 34 29 2d 31  |.I%.I%=.k$,.4)-1|
00000c00  3a e7 49 25 3c 31 49 25  3d 30 0d 03 c0 24 ef 43  |:.I%<1I%=0...$.C|
00000c10  25 2c 38 3a e7 49 25 8b  49 25 3d a7 6b 24 2c bf  |%,8:.I%.I%=.k$,.|
00000c20  35 29 2d 31 3a e7 49 25  3c 31 49 25 3d 30 0d 03  |5)-1:.I%<1I%=0..|
00000c30  ca 15 fd 49 25 3a f2 74  74 6c 3a ef 43 25 38 3a  |...I%:.ttl:.C%8:|
00000c40  3d 49 25 0d 03 d4 04 0d  03 de 09 dd f2 74 74 6c  |=I%..........ttl|
00000c50  0d 03 e8 3d e7 74 74 25  e6 33 2c 31 3a ec a4 67  |...=.tt%.3,1:..g|
00000c60  78 28 74 74 78 25 29 2c  a4 67 79 28 74 74 79 25  |x(ttx%),.gy(tty%|
00000c70  29 3a df a4 67 78 28 58  25 29 2c a4 67 79 28 59  |):..gx(X%),.gy(Y|
00000c80  25 29 3a 74 74 6c 25 3d  ac 74 74 6c 25 0d 03 f2  |%):ttl%=.ttl%...|
00000c90  05 e1 0d 03 fc 04 0d 04  06 15 dd a4 67 78 28 58  |............gx(X|
00000ca0  25 29 3d 58 25 2a 33 32  2b 31 36 0d 04 10 1b dd  |%)=X%*32+16.....|
00000cb0  a4 67 79 28 59 25 29 3d  28 6d 79 25 2d 59 25 29  |.gy(Y%)=(my%-Y%)|
00000cc0  2a 33 32 2b 31 36 0d 04  1a 04 0d 04 24 1f dd f2  |*32+16......$...|
00000cd0  6d 30 3a e7 4b 25 3d 31  4b 25 3d 30 3a 4d 25 3d  |m0:.K%=1K%=0:M%=|
00000ce0  31 8b 4b 25 3d 4b 25 2d  31 0d 04 2e 36 e7 4b 25  |1.K%=K%-1...6.K%|
00000cf0  3c 31 84 4b 25 3e 34 8b  e7 a6 2d 31 e7 43 25 3d  |<1.K%>4...-1.C%=|
00000d00  33 32 65 73 25 3d b9 3a  ef 42 25 8b e7 a6 2d 32  |32es%=.:.B%...-2|
00000d10  e7 43 25 3d 42 25 65 73  25 3d b9 3a ef 33 32 0d  |.C%=B%es%=.:.32.|
00000d20  04 38 2f e7 4b 25 3d 31  e7 58 25 3e 6c 78 25 2b  |.8/.K%=1.X%>lx%+|
00000d30  31 58 25 3d 58 25 2d 31  8b e7 4b 25 3d 32 e7 58  |1X%=X%-1..K%=2.X|
00000d40  25 3c 77 78 25 2d 31 58  25 3d 58 25 2b 31 0d 04  |%<wx%-1X%=X%+1..|
00000d50  42 2f e7 4b 25 3d 33 e7  59 25 3c 68 79 25 2d 31  |B/.K%=3.Y%<hy%-1|
00000d60  59 25 3d 59 25 2b 31 8b  e7 4b 25 3d 34 e7 59 25  |Y%=Y%+1..K%=4.Y%|
00000d70  3e 74 79 25 2b 31 59 25  3d 59 25 2d 31 0d 04 4c  |>ty%+1Y%=Y%-1..L|
00000d80  1d e7 4b 25 3e 34 f2 6e  77 28 4b 25 2d 34 29 8b  |..K%>4.nw(K%-4).|
00000d90  f2 6e 70 28 58 25 2c 59  25 29 0d 04 56 0a 4b 25  |.np(X%,Y%)..V.K%|
00000da0  3d 30 3a e1 0d 04 60 04  0d 04 6a 28 dd f2 6e 77  |=0:...`...j(..nw|
00000db0  28 4b 25 29 e7 4b 25 3c  3e 4c 25 f2 73 6c 28 4c  |(K%).K%<>L%.sl(L|
00000dc0  25 29 3a 4c 25 3d 4b 25  3a f2 64 6c 28 4c 25 29  |%):L%=K%:.dl(L%)|
00000dd0  0d 04 74 09 f2 6e 6d 3a  e1 0d 04 7e 04 0d 04 88  |..t..nm:...~....|
00000de0  34 dd f2 6e 70 28 58 25  2c 59 25 29 ea 44 25 2c  |4..np(X%,Y%).D%,|
00000df0  4f 25 3a e7 6f 58 25 3d  58 25 e7 6f 59 25 3d 59  |O%:.oX%=X%.oY%=Y|
00000e00  25 e1 3a 8b 6f 58 25 3d  58 25 3a 6f 59 25 3d 59  |%.:.oX%=X%:oY%=Y|
00000e10  25 0d 04 92 3c ea 43 25  3a ef 32 36 3a 43 25 3d  |%...<.C%:.26:C%=|
00000e20  a4 63 28 58 25 2c 59 25  29 3a f2 63 6c 73 28 77  |.c(X%,Y%):.cls(w|
00000e30  78 25 2f 32 2c 6d 79 25  2d 35 2c 77 78 25 2f 32  |x%/2,my%-5,wx%/2|
00000e40  2c 33 2c 94 28 43 25 3c  3e 33 32 29 29 0d 04 9c  |,3,.(C%<>32))...|
00000e50  33 e7 43 25 3d 33 32 e1  3a 8b f2 63 6e 28 6f 24  |3.C%=32.:..cn(o$|
00000e60  28 43 25 2d 42 25 29 2c  30 29 3a e7 43 25 3d 42  |(C%-B%),0):.C%=B|
00000e70  25 e1 3a 8b 4f 25 3d a4  66 28 58 25 2c 59 25 29  |%.:.O%=.f(X%,Y%)|
00000e80  0d 04 a6 40 f2 63 6e 28  22 45 6e 65 72 67 79 3a  |...@.cn("Energy:|
00000e90  22 2b c3 28 6f 62 25 28  4f 25 2c 65 6e 29 29 2c  |"+.(ob%(O%,en)),|
00000ea0  31 29 3a f2 63 6e 28 22  53 70 65 65 64 3a 22 2b  |1):.cn("Speed:"+|
00000eb0  c3 28 6f 62 25 28 4f 25  2c 73 70 29 29 2c 32 29  |.(ob%(O%,sp)),2)|
00000ec0  0d 04 b0 34 44 25 3d 6f  62 25 28 4f 25 2c 64 74  |...4D%=ob%(O%,dt|
00000ed0  29 3a e7 6f 62 25 28 4f  25 2c 74 79 29 3c 3e 34  |):.ob%(O%,ty)<>4|
00000ee0  f2 63 6e 28 22 44 61 74  61 3a 22 2b c3 44 25 2c  |.cn("Data:"+.D%,|
00000ef0  33 29 3a e1 0d 04 ba 29  f2 63 6e 28 22 54 6f 3a  |3):....).cn("To:|
00000f00  20 22 2b c3 28 44 25 81  36 34 29 2b 22 2c 22 2b  | "+.(D%.64)+","+|
00000f10  c3 28 44 25 83 36 34 29  2c 33 29 3a e1 0d 04 c4  |.(D%.64),3):....|
00000f20  04 0d 04 ce 19 dd a4 66  28 58 25 2c 59 25 29 ea  |.......f(X%,Y%).|
00000f30  4f 25 3a 4f 25 3d 2d 31  3a f5 0d 04 d8 40 4f 25  |O%:O%=-1:....@O%|
00000f40  3d 4f 25 2b 31 3a fd 28  58 25 3d 6f 62 25 28 4f  |=O%+1:.(X%=ob%(O|
00000f50  25 2c 78 70 29 80 28 59  25 3d 6f 62 25 28 4f 25  |%,xp).(Y%=ob%(O%|
00000f60  2c 79 70 29 29 29 84 4f  25 3d 6f 6e 3a e7 4f 25  |,yp))).O%=on:.O%|
00000f70  3d 6f 6e 3d 2d 31 8b 3d  4f 25 0d 04 e2 04 0d 04  |=on=-1.=O%......|
00000f80  ec 18 dd f2 73 6c 28 4c  25 29 e7 65 73 25 65 73  |....sl(L%).es%es|
00000f90  25 3d a3 3a 8b e1 0d 04  f6 33 ea 73 24 2c 43 25  |%=.:.....3.s$,C%|
00000fa0  2c 44 25 2c 45 25 2c 51  25 2c 55 25 2c 56 25 3a  |,D%,E%,Q%,U%,V%:|
00000fb0  f2 6d 28 22 52 65 61 64  69 6e 67 20 73 63 72 65  |.m("Reading scre|
00000fc0  65 6e 20 22 2b c3 4c 25  29 0d 05 00 31 ef 32 36  |en "+.L%)...1.26|
00000fd0  3a 45 25 3d 2d 31 3a 43  25 3d 2d 31 3a e3 51 25  |:E%=-1:C%=-1:.Q%|
00000fe0  3d 31 b8 6d 62 25 3a 73  24 28 4c 25 2c 51 25 29  |=1.mb%:s$(L%,Q%)|
00000ff0  3d 22 22 3a ed 3a 51 25  3d 31 0d 05 0a 3d e3 56  |="":.:Q%=1...=.V|
00001000  25 3d 74 79 25 b8 74 79  25 2b 68 79 25 3a e3 55  |%=ty%.ty%+hy%:.U|
00001010  25 3d 6c 78 25 b8 6c 78  25 2b 77 78 25 3a 44 25  |%=lx%.lx%+wx%:D%|
00001020  3d a4 63 28 55 25 2c 56  25 29 3a e7 44 25 3c 3e  |=.c(U%,V%):.D%<>|
00001030  42 25 44 25 3d 33 32 0d  05 14 2a e7 44 25 3c 3e  |B%D%=32...*.D%<>|
00001040  43 25 f2 66 69 78 3a 43  25 3d 44 25 8b e7 45 25  |C%.fix:C%=D%..E%|
00001050  3e 78 6e 25 f2 66 69 78  3a 8b 45 25 3d 45 25 2b  |>xn%.fix:.E%=E%+|
00001060  31 0d 05 1e 1f ed 3a ed  3a f2 66 69 78 3a e7 73  |1.....:.:.fix:.s|
00001070  24 3e 22 22 73 24 28 4c  25 2c 51 25 29 3d 73 24  |$>""s$(L%,Q%)=s$|
00001080  0d 05 28 13 73 24 28 4c  25 2c 30 29 3d a4 73 6f  |..(.s$(L%,0)=.so|
00001090  62 3a e1 0d 05 32 04 0d  05 3c 24 dd f2 66 69 78  |b:...2...<$..fix|
000010a0  3a e7 43 25 3d 2d 31 73  24 3d 22 22 8b 73 24 3d  |:.C%=-1s$="".s$=|
000010b0  73 24 2b bd 28 45 25 2b  48 25 29 0d 05 46 2b 45  |s$+.(E%+H%)..F+E|
000010c0  25 3d 31 3a e7 a9 73 24  3e 32 30 30 73 24 28 4c  |%=1:..s$>200s$(L|
000010d0  25 2c 51 25 29 3d 73 24  3a 73 24 3d 22 22 3a 51  |%,Q%)=s$:s$="":Q|
000010e0  25 3d 51 25 2b 31 0d 05  50 05 e1 0d 05 5a 04 0d  |%=Q%+1..P....Z..|
000010f0  05 64 22 dd a4 73 6f 62  3a ea 4c 25 2c 4f 25 2c  |.d"..sob:.L%,O%,|
00001100  51 25 2c 56 25 2c 73 24  3a e7 6f 6e 3d 30 3d 73  |Q%,V%,s$:.on=0=s|
00001110  24 0d 05 6e 21 f5 e3 51  25 3d 30 b8 6d 78 3a 56  |$..n!..Q%=0.mx:V|
00001120  25 3d 6f 62 25 28 4f 25  2c 51 25 29 3a 63 24 3d  |%=ob%(O%,Q%):c$=|
00001130  22 22 0d 05 78 3b e7 56  25 3e 78 6e 25 4c 25 3d  |""..x;.V%>xn%L%=|
00001140  30 3a f5 4c 25 3d 4c 25  2b 31 3a 56 25 3d 56 25  |0:.L%=L%+1:V%=V%|
00001150  2d 78 6e 25 3a fd 56 25  3c 3d 78 6e 25 3a 63 24  |-xn%:.V%<=xn%:c$|
00001160  3d 22 21 22 2b bd 28 4c  25 2b 48 25 29 0d 05 82  |="!"+.(L%+H%)...|
00001170  2a 73 24 3d 73 24 2b 63  24 2b bd 28 56 25 2b 48  |*s$=s$+c$+.(V%+H|
00001180  25 29 3a ed 3a 4f 25 3d  4f 25 2b 31 3a fd 4f 25  |%):.:O%=O%+1:.O%|
00001190  3d 6f 6e 3a 3d 73 24 0d  05 8c 04 0d 05 96 20 dd  |=on:=s$....... .|
000011a0  f2 65 72 28 74 24 29 f2  6d 28 74 24 29 3a f2 77  |.er(t$).m(t$):.w|
000011b0  28 33 30 30 29 3a f2 6e  6d 3a e1 0d 05 a0 04 0d  |(300):.nm:......|
000011c0  05 aa 1b dd f2 77 28 54  25 29 54 25 3d 54 25 2b  |.....w(T%)T%=T%+|
000011d0  91 3a f5 fd 91 3e 54 25  3a e1 0d 05 b4 04 0d 05  |.:...>T%:.......|
000011e0  be 21 dd f2 6d 31 3a e7  4b 25 3c 3e 33 8b e7 43  |.!..m1:.K%<>3..C|
000011f0  25 3d 33 32 84 43 25 3d  42 25 f2 6e 6d 3a e1 0d  |%=32.C%=B%.nm:..|
00001200  05 c8 0d 4d 25 3d 4b 25  2b 31 3a e1 0d 05 d2 04  |...M%=K%+1:.....|
00001210  0d 05 dc 12 dd f2 6d 32  3a 4d 25 3d 4b 25 2b 36  |......m2:M%=K%+6|
00001220  3a e1 0d 05 e6 04 0d 05  f0 08 dd f2 6d 37 0d 05  |:...........m7..|
00001230  fa 10 dd f2 6d 38 3a 4b  25 3d 4b 25 2b 34 0d 06  |....m8:K%=K%+4..|
00001240  04 16 ea 4e 25 3a 4e 25  3d 6f 25 28 4b 25 2c 6e  |...N%:N%=o%(K%,n|
00001250  75 6d 25 29 0d 06 0e 3c  e7 4b 25 2b 42 25 3d 43  |um%)...<.K%+B%=C|
00001260  25 f2 64 65 6c 28 58 25  2c 59 25 29 8b e7 43 25  |%.del(X%,Y%)..C%|
00001270  3d 33 32 e7 4e 25 3c 6f  25 28 4b 25 2c 6e 75 78  |=32.N%<o%(K%,nux|
00001280  25 29 f2 61 64 64 28 4b  25 2c 58 25 2c 59 25 29  |%).add(K%,X%,Y%)|
00001290  0d 06 18 18 6f 25 28 4b  25 2c 6e 75 6d 25 29 3d  |....o%(K%,num%)=|
000012a0  4e 25 3a f2 6e 6d 3a e1  0d 06 22 04 0d 06 2c 33  |N%:.nm:..."...,3|
000012b0  dd f2 74 70 3a 74 74 25  3d ac 74 74 25 3a e7 74  |..tp:tt%=.tt%:.t|
000012c0  74 25 74 74 78 25 3d 58  25 3a 74 74 79 25 3d 59  |t%ttx%=X%:tty%=Y|
000012d0  25 3a 74 74 6c 25 3d a3  3a 74 6f 25 3d 6f 6e 0d  |%:ttl%=.:to%=on.|
000012e0  06 36 1d e7 ac 74 74 25  6f 62 25 28 74 6f 25 2c  |.6...tt%ob%(to%,|
000012f0  64 74 29 3d 58 25 2a 36  34 2b 59 25 0d 06 40 05  |dt)=X%*64+Y%..@.|
00001300  e1 0d 06 4a 04 0d 06 54  3a dd f2 64 65 6c 28 58  |...J...T:..del(X|
00001310  25 2c 59 25 29 ea 4c 25  2c 4f 25 2c 50 25 3a 50  |%,Y%).L%,O%,P%:P|
00001320  25 3d a4 66 28 58 25 2c  59 25 29 3a 6f 6e 3d 6f  |%=.f(X%,Y%):on=o|
00001330  6e 2d 31 3a ef 33 32 3a  4e 25 3d 4e 25 2d 31 0d  |n-1:.32:N%=N%-1.|
00001340  06 5e 34 e3 4f 25 3d 50  25 b8 6f 6e 3a e3 4c 25  |.^4.O%=P%.on:.L%|
00001350  3d 74 79 20 b8 6d 78 3a  6f 62 25 28 4f 25 2c 4c  |=ty .mx:ob%(O%,L|
00001360  25 29 3d 6f 62 25 28 4f  25 2b 31 2c 4c 25 29 3a  |%)=ob%(O%+1,L%):|
00001370  ed 3a ed 0d 06 68 0b 65  73 25 3d b9 3a e1 0d 06  |.:...h.es%=.:...|
00001380  72 04 0d 06 7c 22 dd f2  61 64 64 28 4b 25 2c 58  |r...|"..add(K%,X|
00001390  25 2c 59 25 29 e7 4b 25  3d 34 f2 74 70 3a e7 ac  |%,Y%).K%=4.tp:..|
000013a0  74 74 25 e1 0d 06 86 42  6f 62 25 28 6f 6e 2c 74  |tt%....Bob%(on,t|
000013b0  79 29 3d 4b 25 3a 6f 62  25 28 6f 6e 2c 78 70 29  |y)=K%:ob%(on,xp)|
000013c0  3d 58 25 3a 6f 62 25 28  6f 6e 2c 79 70 29 3d 59  |=X%:ob%(on,yp)=Y|
000013d0  25 3a 6f 62 25 28 6f 6e  2c 65 6e 29 3d 6f 25 28  |%:ob%(on,en)=o%(|
000013e0  4b 25 2c 65 6e 29 0d 06  90 44 6f 62 25 28 6f 6e  |K%,en)...Dob%(on|
000013f0  2c 73 70 29 3d 6f 25 28  4b 25 2c 73 70 29 3a 6f  |,sp)=o%(K%,sp):o|
00001400  62 25 28 6f 6e 2c 64 74  29 3d 6f 25 28 4b 25 2c  |b%(on,dt)=o%(K%,|
00001410  64 74 29 3a 4e 25 3d 4e  25 2b 31 3a 6f 6e 3d 6f  |dt):N%=N%+1:on=o|
00001420  6e 2b 31 3a ef 42 25 2b  4b 25 0d 06 9a 0b 65 73  |n+1:.B%+K%....es|
00001430  25 3d b9 3a e1 0d 06 a4  04 0d 06 ae 14 dd f2 6d  |%=.:...........m|
00001440  33 3a e7 4b 25 3d 31 4d  25 3d 36 3a e1 0d 06 b8  |3:.K%=1M%=6:....|
00001450  23 e7 4b 25 3d 32 f2 64  6c 73 3a 8b e7 4b 25 3d  |#.K%=2.dls:..K%=|
00001460  33 f2 69 6e 73 3a 8b e7  4b 25 3d 34 f2 72 65 73  |3.ins:..K%=4.res|
00001470  0d 06 c2 09 f2 6e 6d 3a  e1 0d 06 cc 04 0d 06 d6  |.....nm:........|
00001480  6f dd f2 64 6c 73 3a ea  51 25 2c 53 25 3a e7 4c  |o..dls:.Q%,S%:.L|
00001490  25 3d 6d 73 25 e3 53 25  3d 30 b8 6d 62 25 3a 73  |%=ms%.S%=0.mb%:s|
000014a0  24 28 4c 25 2c 53 25 29  3d 22 22 3a ed 3a 8b e3  |$(L%,S%)="":.:..|
000014b0  51 25 3d 4c 25 2b 31 b8  6d 73 25 3a e3 53 25 3d  |Q%=L%+1.ms%:.S%=|
000014c0  30 b8 6d 62 25 3a 73 24  28 51 25 2d 31 2c 53 25  |0.mb%:s$(Q%-1,S%|
000014d0  29 3d 73 24 28 51 25 2c  53 25 29 3a 73 24 28 51  |)=s$(Q%,S%):s$(Q|
000014e0  25 2c 53 25 29 3d 22 22  3a ed 3a ed 0d 06 e0 0e  |%,S%)="":.:.....|
000014f0  f2 72 73 74 28 4c 25 29  3a e1 0d 06 ea 04 0d 06  |.rst(L%):.......|
00001500  f4 39 dd f2 69 6e 73 3a  f2 73 6c 28 4c 25 29 3a  |.9..ins:.sl(L%):|
00001510  e7 73 24 28 6d 73 25 2c  31 29 3e 22 22 f2 65 72  |.s$(ms%,1)>"".er|
00001520  28 22 41 6c 6c 20 6c 65  76 65 6c 73 20 66 69 6c  |("All levels fil|
00001530  6c 65 64 22 29 3a e1 0d  06 fe 3a ea 51 25 2c 53  |led"):....:.Q%,S|
00001540  25 3a e3 51 25 3d 6d 73  25 2d 31 b8 4c 25 88 2d  |%:.Q%=ms%-1.L%.-|
00001550  31 3a e3 53 25 3d 30 b8  6d 62 25 3a 73 24 28 51  |1:.S%=0.mb%:s$(Q|
00001560  25 2b 31 2c 53 25 29 3d  73 24 28 51 25 2c 53 25  |%+1,S%)=s$(Q%,S%|
00001570  29 0d 07 08 26 73 24 28  51 25 2c 53 25 29 3d 22  |)...&s$(Q%,S%)="|
00001580  22 3a ed 3a ed 3a f2 64  6c 28 4c 25 29 3a f2 73  |":.:.:.dl(L%):.s|
00001590  6c 28 4c 25 29 3a e1 0d  07 12 04 0d 07 1c 14 dd  |l(L%):..........|
000015a0  f2 72 65 73 3a f2 72 73  74 28 4c 25 29 3a e1 0d  |.res:.rst(L%):..|
000015b0  07 26 04 0d 07 30 22 dd  f2 6d 34 3a ea 4f 25 3a  |.&...0"..m4:.O%:|
000015c0  4f 25 3d a4 66 28 58 25  2c 59 25 29 3a 43 25 3d  |O%=.f(X%,Y%):C%=|
000015d0  43 25 2d 42 25 0d 07 3a  2e e7 4b 25 3d 31 74 24  |C%-B%..:..K%=1t$|
000015e0  3d 22 45 6e 65 72 67 79  22 8b e7 4b 25 3d 32 74  |="Energy"..K%=2t|
000015f0  24 3d 22 44 61 74 61 22  8b 74 24 3d 22 53 70 65  |$="Data".t$="Spe|
00001600  65 64 22 0d 07 44 49 e7  6f 62 25 28 4f 25 2c 74  |ed"..DI.ob%(O%,t|
00001610  79 29 3d 34 80 4b 25 3d  33 8b 4b 25 3d 65 6e 2b  |y)=4.K%=3.K%=en+|
00001620  4b 25 2d 31 3a 6f 62 25  28 4f 25 2c 4b 25 29 3d  |K%-1:ob%(O%,K%)=|
00001630  a4 65 64 28 74 24 2c 6f  62 25 28 4f 25 2c 4b 25  |.ed(t$,ob%(O%,K%|
00001640  29 2c 6f 25 28 43 25 2c  4b 25 29 29 0d 07 4e 09  |),o%(C%,K%))..N.|
00001650  f2 6e 6d 3a e1 0d 07 58  04 0d 07 62 2d dd a4 65  |.nm:...X...b-..e|
00001660  64 28 74 24 2c 56 25 2c  51 25 29 f2 74 28 74 24  |d(t$,V%,Q%).t(t$|
00001670  29 3a f5 db 3a f1 8a 30  2c 31 29 22 4d 61 78 20  |):..:..0,1)"Max |
00001680  3d 20 22 3b 51 25 0d 07  6c 28 e8 8a 30 2c 33 29  |= ";Q%..l(..0,3)|
00001690  22 3a 22 74 24 3a 56 25  3d bb 74 24 3a fd 56 25  |":"t$:V%=.t$:.V%|
000016a0  3c 3d 51 25 3a 65 73 25  3d b9 3a 3d 56 25 0d 07  |<=Q%:es%=.:=V%..|
000016b0  76 04 0d 07 80 3e dd f2  6d 35 3a e7 4b 25 3d 31  |v....>..m5:.K%=1|
000016c0  f2 6c 64 3a 8b e7 4b 25  3d 32 f2 73 76 3a f2 6e  |.ld:..K%=2.sv:.n|
000016d0  6d 3a 8b e7 4b 25 3d 33  f2 73 70 3a f2 6e 6d 3a  |m:..K%=3.sp:.nm:|
000016e0  8b e7 4b 25 3d 34 f2 6e  65 77 3a 8b 71 25 3d b9  |..K%=4.new:.q%=.|
000016f0  0d 07 8a 05 e1 0d 07 94  04 0d 07 9e 26 dd f2 6c  |............&..l|
00001700  64 3a ea 51 25 2c 53 25  3a 66 24 3d a4 67 66 28  |d:.Q%,S%:f$=.gf(|
00001710  22 4c 6f 61 64 20 73 63  72 65 65 6e 73 22 29 0d  |"Load screens").|
00001720  07 a8 34 5a 25 3d 8e 66  24 3a e7 5a 25 3d 30 f2  |..4Z%=.f$:.Z%=0.|
00001730  65 72 28 22 43 6f 75 6c  64 6e 27 74 20 66 69 6e  |er("Couldn't fin|
00001740  64 20 66 69 6c 65 20 27  22 2b 66 24 2b 22 27 22  |d file '"+f$+"'"|
00001750  29 3a e1 0d 07 b2 2f e3  53 25 3d 31 b8 6d 73 25  |):..../.S%=1.ms%|
00001760  3a e3 51 25 3d 30 b8 6d  62 25 3a e8 23 5a 25 2c  |:.Q%=0.mb%:.#Z%,|
00001770  73 24 28 53 25 2c 51 25  29 3a ed 3a ed 3a d9 23  |s$(S%,Q%):.:.:.#|
00001780  5a 25 0d 07 bc 0d f2 72  73 74 28 31 29 3a e1 0d  |Z%.....rst(1):..|
00001790  07 c6 04 0d 07 d0 2e dd  f2 73 76 3a ea 51 25 2c  |.........sv:.Q%,|
000017a0  53 25 3a f2 73 6c 28 4c  25 29 3a 66 24 3d a4 67  |S%:.sl(L%):f$=.g|
000017b0  66 28 22 53 61 76 65 20  73 63 72 65 65 6e 73 22  |f("Save screens"|
000017c0  29 0d 07 da 34 5a 25 3d  ae 66 24 3a e7 5a 25 3d  |)...4Z%=.f$:.Z%=|
000017d0  30 f2 65 72 28 22 43 6f  75 6c 64 6e 27 74 20 6f  |0.er("Couldn't o|
000017e0  70 65 6e 20 66 69 6c 65  20 27 22 2b 66 24 2b 22  |pen file '"+f$+"|
000017f0  27 22 29 3a e1 0d 07 e4  31 e3 53 25 3d 31 b8 6d  |'"):....1.S%=1.m|
00001800  73 25 3a e3 51 25 3d 30  b8 6d 62 25 3a f1 23 5a  |s%:.Q%=0.mb%:.#Z|
00001810  25 2c 73 24 28 53 25 2c  51 25 29 3a ed 3a ed 3a  |%,s$(S%,Q%):.:.:|
00001820  d9 23 5a 25 3a e1 0d 07  ee 04 0d 07 f8 38 dd f2  |.#Z%:........8..|
00001830  73 70 3a ea 4b 25 2c 50  25 2c 51 25 2c 53 25 2c  |sp:.K%,P%,Q%,S%,|
00001840  4e 25 3a f2 73 6c 28 4c  25 29 3a 66 24 3d a4 67  |N%:.sl(L%):f$=.g|
00001850  66 28 22 53 70 6f 6f 6c  20 73 63 72 65 65 6e 73  |f("Spool screens|
00001860  22 29 0d 08 02 34 5a 25  3d ae 66 24 3a e7 5a 25  |")...4Z%=.f$:.Z%|
00001870  3d 30 f2 65 72 28 22 43  6f 75 6c 64 6e 27 74 20  |=0.er("Couldn't |
00001880  6f 70 65 6e 20 66 69 6c  65 20 27 22 2b 66 24 2b  |open file '"+f$+|
00001890  22 27 22 29 3a e1 0d 08  0c 37 4e 25 3d 33 32 30  |"'"):....7N%=320|
000018a0  30 30 3a 53 25 3d 30 3a  f5 53 25 3d 53 25 2b 31  |00:S%=0:.S%=S%+1|
000018b0  3a fd 73 24 28 53 25 2c  30 29 3d 22 22 3a f2 6e  |:.s$(S%,0)="":.n|
000018c0  6c 3a f2 6f 28 c3 28 53  25 2d 31 29 29 0d 08 16  |l:.o(.(S%-1))...|
000018d0  31 53 25 3d 31 3a f5 50  25 3d 30 3a f5 50 25 3d  |1S%=1:.P%=0:.P%=|
000018e0  50 25 2b 31 3a fd 73 24  28 53 25 2c 50 25 29 3d  |P%+1:.s$(S%,P%)=|
000018f0  22 22 3a f2 6e 6c 3a f2  6f 28 c3 50 25 29 0d 08  |"":.nl:.o(.P%)..|
00001900  20 2b e3 51 25 3d 30 b8  20 50 25 2d 31 3a f2 6e  | +.Q%=0. P%-1:.n|
00001910  6c 3a f2 6f 28 73 24 28  53 25 2c 51 25 29 29 3a  |l:.o(s$(S%,Q%)):|
00001920  ed 3a 53 25 3d 53 25 2b  31 0d 08 2a 1f fd 73 24  |.:S%=S%+1..*..s$|
00001930  28 53 25 2c 30 29 3d 22  22 3a f2 6f 28 bd 31 33  |(S%,0)="":.o(.13|
00001940  29 3a d9 23 5a 25 3a e1  0d 08 34 04 0d 08 3e 2a  |):.#Z%:...4...>*|
00001950  dd f2 6e 6c 3a 4b 25 3d  30 3a f2 6f 28 bd 31 33  |..nl:K%=0:.o(.13|
00001960  2b c3 4e 25 2b 22 44 41  54 41 22 29 3a 4e 25 3d  |+.N%+"DATA"):N%=|
00001970  4e 25 2b 31 3a e1 0d 08  48 04 0d 08 52 12 dd f2  |N%+1:...H...R...|
00001980  6f 28 73 24 29 e7 73 24  3d 22 22 e1 0d 08 5c 22  |o(s$).s$=""...\"|
00001990  ea 4c 25 3a e3 4c 25 3d  31 b8 a9 73 24 3a f2 62  |.L%:.L%=1..s$:.b|
000019a0  28 97 c1 73 24 2c 4c 25  29 29 3a ed 3a e1 0d 08  |(..s$,L%)):.:...|
000019b0  66 04 0d 08 70 1c dd f2  62 28 42 25 29 d5 23 5a  |f...p...b(B%).#Z|
000019c0  25 2c 42 25 3a 4b 25 3d  4b 25 2b 31 3a e1 0d 08  |%,B%:K%=K%+1:...|
000019d0  7a 04 0d 08 84 22 dd a4  67 66 28 74 24 29 f2 74  |z...."..gf(t$).t|
000019e0  28 74 24 29 3a e8 8a 30  2c 32 29 22 3a 22 74 24  |(t$):..0,2)":"t$|
000019f0  3a 3d 74 24 0d 08 8e 04  0d 08 98 36 dd f2 6e 65  |:=t$.......6..ne|
00001a00  77 3a e3 51 25 3d 30 b8  6d 73 25 3a e3 53 25 3d  |w:.Q%=0.ms%:.S%=|
00001a10  30 b8 6d 62 25 3a 73 24  28 51 25 2c 53 25 29 3d  |0.mb%:s$(Q%,S%)=|
00001a20  22 22 3a ed 3a ed 3a f2  72 73 74 28 31 29 0d 08  |"":.:.:.rst(1)..|
00001a30  a2 05 e1 0d 08 ac 04 0d  08 b6 22 dd f2 6d 36 3a  |.........."..m6:|
00001a40  ea 53 25 3a e7 4b 25 3d  31 84 4b 25 3d 32 73 24  |.S%:.K%=1.K%=2s$|
00001a50  28 4c 25 2c 30 29 3d 22  22 0d 08 c0 26 e7 4b 25  |(L%,0)=""...&.K%|
00001a60  3d 31 84 4b 25 3d 33 e3  53 25 3d 31 b8 6d 62 25  |=1.K%=3.S%=1.mb%|
00001a70  3a 73 24 28 4c 25 2c 53  25 29 3d 22 22 3a ed 0d  |:s$(L%,S%)="":..|
00001a80  08 ca 22 f2 64 6c 28 4c  25 29 3a f2 63 6c 73 28  |..".dl(L%):.cls(|
00001a90  30 2c 30 2c 30 2c 30 2c  2d 31 29 3a f2 6e 6d 3a  |0,0,0,0,-1):.nm:|
00001aa0  e1 0d ff                                          |...|
00001aa3
ArachDe.m0
ArachDe.m1
ArachDe.m2
ArachDe.m4
ArachDe.m5