Home » Archimedes archive » Acorn Computing » 1994 02 subscription disc.adf » 9402s » Laser/The/!EDITlaser/EDIT29

Laser/The/!EDITlaser/EDIT29

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 02 subscription disc.adf » 9402s
Filename: Laser/The/!EDITlaser/EDIT29
Read OK:
File size: 1FE1 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > EDIT29
   20REM by MAG & CAT
   30REM Acorn Computerating
   40REM ON ERROR PROCerror
   50MODE13
   60OFF
   70O$="OS_SpriteOp"
   80REMDIV Load in the Spritefile
   90sprites$="<EDITLASER$dir>.LASERfile"
  100file%=OPENIN(sprites$)
  110size%=EXT#file%+64
  120CLOSE#file%
  130 
  140REMMODDimension an AREA the SIZE of          MODthe file to store sprites in
  150DIM area% size%
  160area%!0=size%
  170 
  180REMEORInitialise area to load the            EORsprite definitions to
  190SYS O$,256+9,area%
  200 
  210REMORNow load the sprite definitions        ORto this area
  220SYS O$,256+10,area%,sprites$
  230 
  240REMDIVGRAB AREA
  250g$="grab"
  260size%=66000
  270DIM grab% size%
  280grab%!0=size%
  290grab%!8=16
  300SYS O$,256+9,grab%
  310a%=64
  320b%=64
  330c%=1280-64
  340d%=1024-64
  350 
  360REMDIV_____SET UP ONCE ONLY_________
  370PROCsprites
  380 
  390PROCdims
  400 
  410REMDIV------------------------------
  420 
  430 
  440 
  450PROCborder
  460 
  470PROCinit
  480 
  490PROCscreen
  500 
  510PROCstart
  520 
  530REMMOD---LOOP------
  540 
  550REPEAT
  560Z%=3-Z%:SYS6,112,Z%
  570IFz%>0:z%+=1:IFz%>=3z%=0
  580IFr%>0:r%+=1:IFr%>=4r%=0
  590PROCK
  600PROCP
  610SYS6,113,Z%
  620UNTIL0
  630 
  640END
  650 
  660REMEORSORT SPRITES OUT
  670DEFPROCsprites
  680DIM L%(7),M%(7)
  690DIM B%(1)
  700DIMS%(2)
  710DIMR%(2)
  720DIMW%(32)
  730FORI%=0TO7
  740PROCsetsprite("LASER"+STR$(I%),L%(I%),h%,w%)
  750PROCsetsprite("MIRROR"+STR$(I%),M%(I%),h%,w%)
  760NEXT
  770PROCsetsprite("BACKGROUND1",B%(1),h%,w%)
  780PROCsetsprite("REACTOR1",R%(1),h%,w%)
  790PROCsetsprite("DEADMIRROR",DM%,h%,w%)
  800PROCsetsprite("DEADZONE",DZ%,h%,w%)
  810FORI%=1TO2
  820PROCsetsprite("SQUARE"+STR$(I%),S%(I%),h%,w%)
  830NEXT
  840 
  850FORI%=1TO2
  860PROCsetsprite("WALL"+STR$(I%),W%(I%),h%,w%)
  870NEXT
  880ENDPROC
  890 
  900REMMODInit sprites
  910DEFPROCsetsprite(string$,RETURN value%,RETURN width%,RETURN height%)
  920SYS O$,256+24,area%,string$ TO,,value%
  930SYS O$,256+40,area%,string$ TO,,,width%,height%
  940ENDPROC
  950 
  960REMEORINIT
  970DEFPROCinit
  980RESTORE
  990z%=0
 1000r%=0
 1010wasX%=-200
 1020wasY%=-200
 1030wasU%=0
 1040U%=0
 1050wasA%=21
 1060wasB%=21
 1070wasC%=21
 1080wasD%=21
 1090F%=0
 1100f%=64
 1110X%=64:Y%=896
 1120FX%=X%+32:FY%=Y%+32
 1130G%=21
 1140C%=0
 1150BX%=64:BY%=64
 1160M%=64
 1170lev%=1
 1180FORI%=0TO7
 1190READFX%(I%),FY%(I%)
 1200FX%(I%)=FX%(I%)*f%:FY%(I%)=FY%(I%)*f%
 1210NEXT
 1220FORI%=0TO7
 1230READV%(I%)
 1240NEXT
 1250ENDPROC
 1260REMORDATA FOR FIRING OFFSETS
 1270DATA0,1,1,1,1,0,1,-1,0,-1,-1,-1,-1,0,-1,1
 1280REMORDATA FOR LASER OFFSETS
 1290DATA-20,-19,1,21,20,19,-1,-21
 1300 
 1310REMERRORSCREEN
 1320DEFPROCscreen
 1330FORJ%=2TO1STEP-1
 1340SYS6,112,J%
 1350COLOUR135:CLS
 1360SYS O$,512+34,area%,B%(lev%),BX%,BY%,0
 1370PRINTTAB(2,30)"L=LOAD DATA: D=SAVE DATA"
 1380COLOUR3:PRINTTAB(28,30)"laserEDIT":COLOUR63
 1390NEXT
 1400PROCplot_items
 1410PROCG
 1420ENDPROC
 1430 
 1440REMDIVSTART
 1450DEFPROCstart
 1460W%=0:Z%=1
 1470Q%=0
 1480H%=0
 1490PROCP
 1500ENDPROC
 1510 
 1520REMLINEDIMS
 1530DEFPROCdims
 1540DIMG%(319)
 1550DIMg%(319)
 1560maxmirrors%=50
 1570DIMMX%(maxmirrors%)
 1580DIMMY%(maxmirrors%)
 1590DIMFX%(7),FY%(7)
 1600DIMV%(7)
 1610ENDPROC
 1620 
 1630REMORKEYS
 1640DEFPROCK
 1650IFINKEY-98ORINKEY-26PROCM(-M%,0,-1)
 1660IFINKEY-67ORINKEY-122PROCM(M%,0,1)
 1670IFINKEY-80ORINKEY-58PROCM(0,M%,-20)
 1680IFINKEY-105ORINKEY-42PROCM(0,-M%,20)
 1690IFINKEY-3PROCC
 1700IFINKEY-66PROCR(7)
 1710IFINKEY-82PROCR(1)
 1720IFF%=0:IFINKEY-74PROCF
 1730IFINKEY-40PROCplonk(0)
 1740IFINKEY-49PROCplonk(1)
 1750IFINKEY-50PROCplonk(2)
 1760IFINKEY-18PROCplonk(3)
 1770IFINKEY-19PROCplonk(4)
 1780IFINKEY-20PROCplonk(5)
 1790IFINKEY-53PROCplonk(6)
 1800IFINKEY-37PROCplonk(7)
 1810IFINKEY-22PROCplonk(8)
 1820IFINKEY-39PROCplonk(9)
 1830IFINKEY-107ORINKEY-17PROCplonk(10)
 1840IFINKEY-108ORINKEY-34PROCplonk(11)
 1850IFINKEY-99PROCplonk(-1)
 1860IFINKEY-87SYS6,113,Z%:PROCplot_items:REMSYS6,113,3-Z%
 1870IFINKEY-51PROCdata
 1880ENDPROC
 1890 
 1900REMMODMOVEMENT
 1910DEFPROCM(x%,y%,g%)
 1920IFz%>0ENDPROC
 1930IFG%(G%+g%)=-2ENDPROC
 1940G%+=g%
 1950X%+=x%:Y%+=y%
 1960U%=(U%+1)MOD2
 1970z%=1
 1980ENDPROC
 1990 
 2000REMLINEDRAW THINGS TO SCREEN
 2010DEFPROCP
 2020  REMEORbackground
 2030SYS O$,&222,grab%,bg%,BX%,BY%,0
 2040 
 2050  REMEORalter mirror/dead mirror
 2060CASE Q% OF
 2070 WHEN 1:SYS O$,&222,area%,S%(lev%*2-1+U%),X%,Y%,0:IFg%(G%)=8SYS O$,&222,area%,DZ%,X%,Y%,8
 2080 SYS O$,&222,area%,M%(W%),X%,Y%,8:PROCG:Q%=0
 2090 WHEN 2:
 2100 IFG%(V%)=-1SYS O$,&222,area%,DM%,FX%-32,FY%-32,0
 2110 IFg%(V%)=8SYS O$,&222,area%,DM%,FX%-32,FY%-32,0:SYS O$,&222,area%,DZ%,FX%-32,FY%-32,8
 2120 PROCG:Q%=0:F%=0
 2130 
 2140ENDCASE
 2150 
 2160  REMEORcarrying mirror?
 2170CASE C% OF
 2180 WHEN 1:SYS O$,&222,area%,S%(lev%*2-1+U%),X%,Y%,0
 2190 IFg%(G%)=8SYS O$,&222,area%,DZ%,X%,Y%,8:G%(G%)=8
 2200 PROCG:C%=2
 2210 
 2220 WHEN 3:SYS O$,&222,area%,M%(W%),X%,Y%,8:PROCG:C%=0
 2230ENDCASE
 2240 
 2250  REMEORfire laser?
 2260CASE F% OF
 2270 WHEN 1:PROCL
 2280 WHEN 2:PROCW
 2290 WHEN 3:PROCH
 2300ENDCASE
 2310 
 2320  REMEORprint laser
 2330IFC%=2SYS O$,&222,area%,M%(W%),X%,Y%,8
 2340SYS O$,&222,area%,L%(W%),X%,Y%,8
 2350 
 2360REMPRINTTAB(0,0);G%;"  "TAB(4,0);G%(G%);"  "
 2370ENDPROC
 2380 
 2390REMDIVBORDER GRID DEFAULTS
 2400DEFPROCborder
 2410G%()=-1
 2420g%()=-1
 2430FORI%=0TO19
 2440G%(I%)=-2
 2450g%(I%)=-2
 2460G%(I%+300)=-2
 2470g%(I%+300)=-2
 2480NEXT
 2490 
 2500FORI%=0TO300STEP20
 2510G%(I%)=-2
 2520g%(I%)=-2
 2530G%(I%+19)=-2
 2540g%(I%+19)=-2
 2550NEXT
 2560ENDPROC
 2570 
 2580REMMODPLOT ITEMS TO SCREEN
 2590DEFPROCplot_items:PROCinit
 2600SYS6,15
 2610PRINTTAB(8,0)"LOAD FILE? ":yn$=GET$
 2620IFyn$<>"Y"PRINTTAB(8,0)SPC30:ENDPROC
 2630INPUTTAB(8,0)"WHAT Number? "name$
 2640PRINTTAB(8,0)SPC30
 2650name$="DATA"+name$
 2660FORu=2TO1STEP-1:SYS6,112,u:PRINTTAB(8,0)SPC30:PRINTTAB(8,0)name$:NEXT
 2670file1%=OPENIN(name$)
 2680px%=0:py%=896
 2690hadreactor%=0
 2700SYS O$,512+34,area%,B%(lev%),BX%,BY%,0
 2710FORJ%=21TO298
 2720px%+=64
 2730INPUT#file1%,data%
 2740IFJ%MOD20=0py%-=64:px%=0
 2750MOVEpx%,py%
 2760CASE data% OF
 2770 WHEN 0,1,2,3,4,5,6,7:SYS O$,&222,area%,M%(data%),px%,py%,8
 2780 WHEN8:SYS O$,&222,area%,DZ%,px%,py%,8
 2790 WHEN9:IFhadreactor%=0hadreactor%=1:SYS O$,&222,area%,R%(1),px%,py%-64,0:RX%=px%:RY%=py%-64:wasX%=RX%:wasY%=RY%:wasA%=J%:wasB%=J%+1:wasC%=J%+20:wasD%=J%+21:PROCwasU
 2800 WHEN10:SYS O$,&222,area%,W%(1),px%,py%,0
 2810 WHEN11:SYS O$,&222,area%,W%(2),px%,py%,0
 2820ENDCASE
 2830G%(J%)=data%
 2840NEXT
 2850CLOSE#file1%
 2860SYS O$,&222,area%,S%(1+U%),X%,Y%,0
 2870PROCG
 2880ENDPROC
 2890 
 2900REMDIVPLONK ITEMS
 2910DEFPROCplonk(p%)
 2920IFz%>0ORG%=21ENDPROC
 2930CASE p% OF
 2940 WHEN-1:SYS O$,&222,area%,S%(1+U%),X%,Y%,0
 2950 WHEN 0,1,2,3,4,5,6,7:SYS O$,&222,area%,S%(1+U%),X%,Y%,0:SYS O$,&222,area%,M%(p%),X%,Y%,8
 2960 WHEN8:SYS O$,&222,area%,S%(1+U%),X%,Y%,0:SYS O$,&222,area%,DZ%,X%,Y%,8
 2970 WHEN9:PROCplacereactor
 2980 WHEN10:SYS O$,&222,area%,W%(1),X%,Y%,0
 2990 WHEN11:SYS O$,&222,area%,W%(2),X%,Y%,0
 3000 
 3010ENDCASE
 3020G%(G%)=p%:PROCG
 3030ENDPROC
 3040REMERRORGRAB
 3050DEFPROCG
 3060SYS O$,256+16,grab%,g$,0,a%,b%,c%,d%
 3070SYS O$,256+24,grab%,g$ TO,,bg%
 3080SYS O$,256+40,grab%,g$ TO,,,width%,height%
 3090ENDPROC
 3100 
 3110REMEORROTATE
 3120DEFPROCR(w%)
 3130IFr%>0ENDPROC
 3140W%=(W%+w%)MOD8
 3150IFG%(G%)>-1ANDG%(G%)<8VDU7:Q%=1:G%(G%)=W%
 3160r%=1
 3170ENDPROC
 3180 
 3190REMDIVFIRE
 3200DEFPROCF
 3210IFG%(G%)=8ENDPROC
 3220F%=1
 3230D%=W%
 3240FX%=X%+32
 3250FY%=Y%+32
 3260V%=G%
 3270ENDPROC
 3280 
 3290REMLINECARRY MIRROR
 3300DEFPROCC
 3310CASE C% OF
 3320 WHEN 0:IFG%(G%)>-1ANDG%(G%)<8:C%=1:G%(G%)=-1:SOUND1,-15,200,1
 3330 
 3340 WHEN 2:IFG%(G%)=-1:C%=3:G%(G%)=W%:SOUND1,-15,100,1
 3350IFG%(G%)=8:C%=3:G%(G%)=W%:g%(G%)=8:SOUND1,-15,40,1
 3360 
 3370ENDCASE
 3380TIME=0:REPEATUNTILTIME>2
 3390ENDPROC
 3400 
 3410REMMODLASER FIRE!!
 3420DEFPROCL
 3430IFG%(V%)=-1:IFG%(V%+V%(D%))=-2:F%=2:ENDPROC
 3440IFG%(V%)=-1:IFG%(V%+V%(D%))=10:F%=2:ENDPROC
 3450IFG%(V%)=8:IFG%(V%+V%(D%))=-2:F%=2:ENDPROC
 3460IFG%(V%)=8:IFG%(V%+V%(D%))=10:F%=2:ENDPROC
 3470CASE G%(V%) OF
 3480 WHEN -1,8:PROCZ
 3490 WHEN0,1,2,3,4,5,6,7:PROCD
 3500 WHEN9:PROCY
 3510 WHEN10:F%=0
 3520 WHEN11:F%=0
 3530 
 3540ENDCASE
 3550ENDPROC
 3560 
 3570REMEORLASER HITS WALL/BORDER
 3580DEFPROCW
 3590REM DIVSTEPEXPLODE!
 3600F%=0
 3610ENDPROC
 3620 
 3630REMERRORDEFLECT LASER BY MIRROR
 3640DEFPROCD
 3650IFABS(G%(V%)-D%)<3ORABS(G%(V%)-D%)>5SOUND1,-15,0,4:F%=3:ENDPROC
 3660SOUND1,-15,150,2
 3670D%=(D%+2*(6-((D%+8-G%(V%))MOD8)))MOD8
 3680PROCZ
 3690ENDPROC
 3700 
 3710REMDIVDRAW LASER FIRE IN
 3720DEFPROCZ
 3730IFG%(V%+V%(D%))=-2:F%=2:ENDPROC
 3740GCOL3:MOVEFX%,FY%
 3750MOVEFX%,FY%:PLOT1,FX%(D%),FY%(D%)
 3760FX%+=FX%(D%):FY%+=FY%(D%)
 3770V%+=V%(D%)
 3780ENDPROC
 3790 
 3800REMMODHIT WRONG SIDE OF MIRROR
 3810DEFPROCH
 3820IFG%(V%)>-1ANDG%(V%)<8:G%(V%)=-1
 3830IFg%(V%)=8G%(V%)=8
 3840Q%=2
 3850ENDPROC
 3860 
 3870REMEORLASER HIT ON REACTOR
 3880DEFPROCY
 3890F%=0
 3900FORI=1TO4:SOUND1,-15,100+(I*12),1:WAIT:WAIT:NEXT
 3910ENDPROC
 3920DEFPROCplacereactor
 3930IFG%<39SYS O$,&222,area%,S%(1+U%),X%,Y%,0:ENDPROC
 3940IFG%MOD20=18SYS O$,&222,area%,S%(1+U%),X%,Y%,0:ENDPROC
 3945IFG%=41SYS O$,&222,area%,S%(1+U%),X%,Y%,0:ENDPROC
 3950 
 3960G%(wasA%)=-1
 3970G%(wasB%)=-1
 3980G%(wasC%)=-1
 3990G%(wasD%)=-1
 4000FORu=2TO1STEP-1:SYS6,112,u
 4010SYS O$,&222,area%,S%(1+wasU%),wasX%,wasY%,0
 4020SYS O$,&222,area%,S%(1+(wasU%+1)MOD2),wasX%,wasY%+64,0
 4030SYS O$,&222,area%,S%(1+wasU%),wasX%+64,wasY%+64,0
 4040SYS O$,&222,area%,S%(1+(wasU%+1)MOD2),wasX%+64,wasY%,0
 4050SYS O$,&222,area%,R%(1),X%,Y%,0:G%(G%+1)=9:G%(G%-20)=9:G%(G%-19)=9
 4060NEXT
 4070wasX%=X%:wasY%=Y%:wasU%=U%
 4080wasA%=G%
 4090wasB%=G%+1
 4100wasC%=G%-20
 4110wasD%=G%-19
 4120SYS6,15
 4130ENDPROC
 4140DEFPROCwasU
 4150IFJ%MOD2=1 AND J%DIV20MOD2=1wasU%=1
 4160IFJ%MOD2=0 AND J%DIV20MOD2=1wasU%=0
 4170IFJ%MOD2=1 AND J%DIV20MOD2=0wasU%=0
 4180IFJ%MOD2=0 AND J%DIV20MOD2=0wasU%=1
 4190ENDPROC
 4200 
 4210REMORPRINT OUT DATA NUMBERS
 4220DEFPROCdata
 4230SYS6,15
 4240SYS6,113,Z%
 4250PRINTTAB(8,0)"SAVE DATA? ":yn$=GET$
 4260IFyn$<>"Y"PRINTTAB(8,0)SPC30:ENDPROC
 4270PRINTTAB(8,0)SPC30:INPUTTAB(8,0)"WHAT Number? "name$
 4280FORu=2TO1STEP-1:SYS6,112,u:PRINTTAB(8,0)SPC30:NEXT
 4290name$="DATA"+name$
 4300file1%=OPENOUT(name$)
 4310FORJ%=21TO298
 4320PRINT#file1%,G%(J%)
 4330NEXT
 4340CLOSE#file1%
 4350SYS6,113,3-Z%
 4360ENDPROC
 4370 
 4380DEFPROCerror
 4390SYS6,112,1:SYS6,113,1
 4400IF ERR=222 PRINTTAB(0,0)"File not found:Run program again":CLOSE#file1%
 4410ENDPROC
 4420END
 4430ENDPROC

� > EDIT29
� by MAG & CAT
� Acorn Computerating
(� ON ERROR PROCerror
2�13
<�
FO$="OS_SpriteOp"
P� Load in the Spritefile
Z(sprites$="<EDITLASER$dir>.LASERfile"
dfile%=�(sprites$)
nsize%=�#file%+64
x�#file%
� 
�J�Dimension an AREA the SIZE of          �the file to store sprites in
�� area% size%
�area%!0=size%
� 
�C�Initialise area to load the            �sprite definitions to
�ș O$,256+9,area%
� 
�:�Now load the sprite definitions        �to this area
�ș O$,256+10,area%,sprites$
� 
��GRAB AREA
�
g$="grab"
size%=66000
� grab% size%
grab%!0=size%
"grab%!8=16
,ș O$,256+9,grab%
6	a%=64
@	b%=64
Jc%=1280-64
Td%=1024-64
^ 
h$�_____SET UP ONCE ONLY_________
r�sprites
| 
�	�dims
� 
�$�------------------------------
� 
� 
� 
��border
� 
�	�init
� 
��screen
� 
�
�start
 
�---LOOP------
 
&�
0Z%=3-Z%:ș6,112,Z%
:�z%>0:z%+=1:�z%>=3z%=0
D�r%>0:r%+=1:�r%>=4r%=0
N�K
X�P
bș6,113,Z%
l�0
v 
��
� 
��SORT SPRITES OUT
�
��sprites
�� L%(7),M%(7)
�� B%(1)
�
�S%(2)
�
�R%(2)
��W%(32)
��I%=0�7
�*�setsprite("LASER"+�(I%),L%(I%),h%,w%)
�+�setsprite("MIRROR"+�(I%),M%(I%),h%,w%)
��
)�setsprite("BACKGROUND1",B%(1),h%,w%)
&�setsprite("REACTOR1",R%(1),h%,w%)
&�setsprite("DEADMIRROR",DM%,h%,w%)
 $�setsprite("DEADZONE",DZ%,h%,w%)
*�I%=1�2
4+�setsprite("SQUARE"+�(I%),S%(I%),h%,w%)
>�
H 
R�I%=1�2
\)�setsprite("WALL"+�(I%),W%(I%),h%,w%)
f�
p�
z 
��Init sprites
�4��setsprite(string$,� value%,� width%,� height%)
�(ș O$,256+24,area%,string$ �,,value%
�1ș O$,256+40,area%,string$ �,,,width%,height%
��
� 
�
�INIT
�
��init
��
�z%=0
�r%=0
�wasX%=-200
�wasY%=-200
wasU%=0
U%=0
wasA%=21
$wasB%=21
.wasC%=21
8wasD%=21
BF%=0
L	f%=64
VX%=64:Y%=896
`FX%=X%+32:FY%=Y%+32
j	G%=21
tC%=0
~BX%=64:BY%=64
�	M%=64
�
lev%=1
��I%=0�7
��FX%(I%),FY%(I%)
�)FX%(I%)=FX%(I%)*f%:FY%(I%)=FY%(I%)*f%
��
��I%=0�7
��V%(I%)
��
��
��DATA FOR FIRING OFFSETS
�*�0,1,1,1,1,0,1,-1,0,-1,-1,-1,-1,0,-1,1
�DATA FOR LASER OFFSETS

�-20,-19,1,21,20,19,-1,-21
 
�SCREEN
(��screen
2�J%=2�1�-1
<ș6,112,J%
F
�135:�
P)ș O$,512+34,area%,B%(lev%),BX%,BY%,0
Z%�2,30)"L=LOAD DATA: D=SAVE DATA"
d�3:�28,30)"laserEDIT":�63
n�
x�plot_items
��G
��
� 
��START
���start
�
W%=0:Z%=1
�Q%=0
�H%=0
��P
��
� 
�
�DIMS
�
��dims
�G%(319)
�g%(319)
maxmirrors%=50
"�MX%(maxmirrors%)
,�MY%(maxmirrors%)
6�FX%(7),FY%(7)
@
�V%(7)
J�
T 
^
�KEYS
h��K
r�-98��-26�M(-M%,0,-1)
|�-67��-122�M(M%,0,1)
��-80��-58�M(0,M%,-20)
��-105��-42�M(0,-M%,20)
�
�-3�C
��-66�R(7)
��-82�R(1)
��F%=0:�-74�F
��-40�plonk(0)
��-49�plonk(1)
��-50�plonk(2)
��-18�plonk(3)
��-19�plonk(4)
��-20�plonk(5)
��-53�plonk(6)
�-37�plonk(7)
�-22�plonk(8)
�-39�plonk(9)
&�-107��-17�plonk(10)
0�-108��-34�plonk(11)
:�-99�plonk(-1)
D.�-87ș6,113,Z%:�plot_items:�SYS6,113,3-Z%
N�-51�data
X�
b 
l�MOVEMENT
v��M(x%,y%,g%)
�
�z%>0�
��G%(G%+g%)=-2�
�
G%+=g%
�X%+=x%:Y%+=y%
�U%=(U%+1)�2
�z%=1
��
� 
��DRAW THINGS TO SCREEN
���P
�  �background
�"ș O$,&222,grab%,bg%,BX%,BY%,0
� 
   �alter mirror/dead mirror
Ȏ Q% �
W � 1:ș O$,&222,area%,S%(lev%*2-1+U%),X%,Y%,0:�g%(G%)=8ș O$,&222,area%,DZ%,X%,Y%,8
 , ș O$,&222,area%,M%(W%),X%,Y%,8:�G:Q%=0
*	 � 2:
43 �G%(V%)=-1ș O$,&222,area%,DM%,FX%-32,FY%-32,0
>W �g%(V%)=8ș O$,&222,area%,DM%,FX%-32,FY%-32,0:ș O$,&222,area%,DZ%,FX%-32,FY%-32,8
H �G:Q%=0:F%=0
R 
\�
f 
p  �carrying mirror?
zȎ C% �
�1 � 1:ș O$,&222,area%,S%(lev%*2-1+U%),X%,Y%,0
�3 �g%(G%)=8ș O$,&222,area%,DZ%,X%,Y%,8:G%(G%)=8
� �G:C%=2
� 
�0 � 3:ș O$,&222,area%,M%(W%),X%,Y%,8:�G:C%=0
��
� 
�  �fire laser?
�Ȏ F% �
� � 1:�L
� � 2:�W
� � 3:�H
��
	 
	  �print laser
	(�C%=2ș O$,&222,area%,M%(W%),X%,Y%,8
	$#ș O$,&222,area%,L%(W%),X%,Y%,8
	. 
	8.�PRINTTAB(0,0);G%;"  "TAB(4,0);G%(G%);"  "
	B�
	L 
	V�BORDER GRID DEFAULTS
	`��border
	jG%()=-1
	tg%()=-1
	~�I%=0�19
	�
G%(I%)=-2
	�
g%(I%)=-2
	�G%(I%+300)=-2
	�g%(I%+300)=-2
	��
	� 
	��I%=0�300�20
	�
G%(I%)=-2
	�
g%(I%)=-2
	�G%(I%+19)=-2
	�g%(I%+19)=-2
	��
�

 
�PLOT ITEMS TO SCREEN
��plot_items:�init
(
ș6,15
2�8,0)"LOAD FILE? ":yn$=�
<�yn$<>"Y"�8,0)�30:�
F�8,0)"WHAT Number? "name$
P
�8,0)�30
Zname$="DATA"+name$
d/�u=2�1�-1:ș6,112,u:�8,0)�30:�8,0)name$:�
nfile1%=�(name$)
xpx%=0:py%=896
�hadreactor%=0
�)ș O$,512+34,area%,B%(lev%),BX%,BY%,0
��J%=21�298
�px%+=64
��#file1%,data%
��J%�20=0py%-=64:px%=0
��px%,py%
�Ȏ data% �
�; � 0,1,2,3,4,5,6,7:ș O$,&222,area%,M%(data%),px%,py%,8
�& �8:ș O$,&222,area%,DZ%,px%,py%,8
� �9:�hadreactor%=0hadreactor%=1:ș O$,&222,area%,R%(1),px%,py%-64,0:RX%=px%:RY%=py%-64:wasX%=RX%:wasY%=RY%:wasA%=J%:wasB%=J%+1:wasC%=J%+20:wasD%=J%+21:�wasU
�) �10:ș O$,&222,area%,W%(1),px%,py%,0
�) �11:ș O$,&222,area%,W%(2),px%,py%,0
�
G%(J%)=data%
�
"�#file1%
,%ș O$,&222,area%,S%(1+U%),X%,Y%,0
6�G
@�
J 
T�PLONK ITEMS
^��plonk(p%)
h�z%>0�G%=21�
rȎ p% �
|* �-1:ș O$,&222,area%,S%(1+U%),X%,Y%,0
�X � 0,1,2,3,4,5,6,7:ș O$,&222,area%,S%(1+U%),X%,Y%,0:ș O$,&222,area%,M%(p%),X%,Y%,8
�F �8:ș O$,&222,area%,S%(1+U%),X%,Y%,0:ș O$,&222,area%,DZ%,X%,Y%,8
� �9:�placereactor
�' �10:ș O$,&222,area%,W%(1),X%,Y%,0
�' �11:ș O$,&222,area%,W%(2),X%,Y%,0
� 
��
�G%(G%)=p%:�G
��
�
�GRAB
���G
�'ș O$,256+16,grab%,g$,0,a%,b%,c%,d%
� ș O$,256+24,grab%,g$ �,,bg%
,ș O$,256+40,grab%,g$ �,,,width%,height%
�
 
&�ROTATE
0��R(w%)
:
�r%>0�
DW%=(W%+w%)�8
N(�G%(G%)>-1�G%(G%)<8�7:Q%=1:G%(G%)=W%
Xr%=1
b�
l 
v
�FIRE
���F
��G%(G%)=8�
�F%=1
�	D%=W%
�
FX%=X%+32
�
FY%=Y%+32
�	V%=G%
��
� 
��CARRY MIRROR
���C
�Ȏ C% �
�8 � 0:�G%(G%)>-1�G%(G%)<8:C%=1:G%(G%)=-1:�1,-15,200,1

 

/ � 2:�G%(G%)=-1:C%=3:G%(G%)=W%:�1,-15,100,1

1�G%(G%)=8:C%=3:G%(G%)=W%:g%(G%)=8:�1,-15,40,1

  

*�

4
�=0:���>2

>�

H 

R�LASER FIRE!!

\��L

f'�G%(V%)=-1:�G%(V%+V%(D%))=-2:F%=2:�

p'�G%(V%)=-1:�G%(V%+V%(D%))=10:F%=2:�

z&�G%(V%)=8:�G%(V%+V%(D%))=-2:F%=2:�

�&�G%(V%)=8:�G%(V%+V%(D%))=10:F%=2:�

�Ȏ G%(V%) �

� � -1,8:�Z

� �0,1,2,3,4,5,6,7:�D

�
 �9:�Y

�
 �10:F%=0

�
 �11:F%=0

� 

��

��

� 

��LASER HITS WALL/BORDER

���W
� ��EXPLODE!
F%=0
�
$ 
.�DEFLECT LASER BY MIRROR
8��D
B3�(G%(V%)-D%)<3��(G%(V%)-D%)>5�1,-15,0,4:F%=3:�
L�1,-15,150,2
V%D%=(D%+2*(6-((D%+8-G%(V%))�8)))�8
`�Z
j�
t 
~�DRAW LASER FIRE IN
���Z
��G%(V%+V%(D%))=-2:F%=2:�
��3:�FX%,FY%
��FX%,FY%:�1,FX%(D%),FY%(D%)
�FX%+=FX%(D%):FY%+=FY%(D%)
�V%+=V%(D%)
��
� 
��HIT WRONG SIDE OF MIRROR
���H
�!�G%(V%)>-1�G%(V%)<8:G%(V%)=-1
��g%(V%)=8G%(V%)=8
Q%=2

�
 
�LASER HIT ON REACTOR
(��Y
2F%=0
<&�I=1�4:�1,-15,100+(I*12),1:Ȗ:Ȗ:�
F�
P��placereactor
Z-�G%<39ș O$,&222,area%,S%(1+U%),X%,Y%,0:�
d0�G%�20=18ș O$,&222,area%,S%(1+U%),X%,Y%,0:�
i-�G%=41ș O$,&222,area%,S%(1+U%),X%,Y%,0:�
n 
xG%(wasA%)=-1
�G%(wasB%)=-1
�G%(wasC%)=-1
�G%(wasD%)=-1
��u=2�1�-1:ș6,112,u
�.ș O$,&222,area%,S%(1+wasU%),wasX%,wasY%,0
�7ș O$,&222,area%,S%(1+(wasU%+1)�2),wasX%,wasY%+64,0
�4ș O$,&222,area%,S%(1+wasU%),wasX%+64,wasY%+64,0
�7ș O$,&222,area%,S%(1+(wasU%+1)�2),wasX%+64,wasY%,0
�Eș O$,&222,area%,R%(1),X%,Y%,0:G%(G%+1)=9:G%(G%-20)=9:G%(G%-19)=9
��
�wasX%=X%:wasY%=Y%:wasU%=U%
�wasA%=G%
�wasB%=G%+1
wasC%=G%-20
wasD%=G%-19

ș6,15
"�
,
��wasU
6�J%�2=1 � J%�20�2=1wasU%=1
@�J%�2=0 � J%�20�2=1wasU%=0
J�J%�2=1 � J%�20�2=0wasU%=0
T�J%�2=0 � J%�20�2=0wasU%=1
^�
h 
r�PRINT OUT DATA NUMBERS
|
��data
�
ș6,15
�ș6,113,Z%
��8,0)"SAVE DATA? ":yn$=�
��yn$<>"Y"�8,0)�30:�
�(�8,0)�30:�8,0)"WHAT Number? "name$
�#�u=2�1�-1:ș6,112,u:�8,0)�30:�
�name$="DATA"+name$
�file1%=�(name$)
��J%=21�298
��#file1%,G%(J%)
��
��#file1%
�ș6,113,3-Z%
�
 
��error
&ș6,112,1:ș6,113,1
0=� �=222 �0,0)"File not found:Run program again":�#file1%
:�
D�
N�
�
00000000  0d 00 0a 0e f4 20 3e 20  45 44 49 54 32 39 0d 00  |..... > EDIT29..|
00000010  14 12 f4 20 62 79 20 4d  41 47 20 26 20 43 41 54  |... by MAG & CAT|
00000020  0d 00 1e 19 f4 20 41 63  6f 72 6e 20 43 6f 6d 70  |..... Acorn Comp|
00000030  75 74 65 72 61 74 69 6e  67 0d 00 28 18 f4 20 4f  |uterating..(.. O|
00000040  4e 20 45 52 52 4f 52 20  50 52 4f 43 65 72 72 6f  |N ERROR PROCerro|
00000050  72 0d 00 32 07 eb 31 33  0d 00 3c 05 87 0d 00 46  |r..2..13..<....F|
00000060  14 4f 24 3d 22 4f 53 5f  53 70 72 69 74 65 4f 70  |.O$="OS_SpriteOp|
00000070  22 0d 00 50 1d f4 81 20  4c 6f 61 64 20 69 6e 20  |"..P... Load in |
00000080  74 68 65 20 53 70 72 69  74 65 66 69 6c 65 0d 00  |the Spritefile..|
00000090  5a 28 73 70 72 69 74 65  73 24 3d 22 3c 45 44 49  |Z(sprites$="<EDI|
000000a0  54 4c 41 53 45 52 24 64  69 72 3e 2e 4c 41 53 45  |TLASER$dir>.LASE|
000000b0  52 66 69 6c 65 22 0d 00  64 15 66 69 6c 65 25 3d  |Rfile"..d.file%=|
000000c0  8e 28 73 70 72 69 74 65  73 24 29 0d 00 6e 14 73  |.(sprites$)..n.s|
000000d0  69 7a 65 25 3d a2 23 66  69 6c 65 25 2b 36 34 0d  |ize%=.#file%+64.|
000000e0  00 78 0b d9 23 66 69 6c  65 25 0d 00 82 05 20 0d  |.x..#file%.... .|
000000f0  00 8c 4a f4 83 44 69 6d  65 6e 73 69 6f 6e 20 61  |..J..Dimension a|
00000100  6e 20 41 52 45 41 20 74  68 65 20 53 49 5a 45 20  |n AREA the SIZE |
00000110  6f 66 20 20 20 20 20 20  20 20 20 20 83 74 68 65  |of          .the|
00000120  20 66 69 6c 65 20 74 6f  20 73 74 6f 72 65 20 73  | file to store s|
00000130  70 72 69 74 65 73 20 69  6e 0d 00 96 11 de 20 61  |prites in..... a|
00000140  72 65 61 25 20 73 69 7a  65 25 0d 00 a0 11 61 72  |rea% size%....ar|
00000150  65 61 25 21 30 3d 73 69  7a 65 25 0d 00 aa 05 20  |ea%!0=size%.... |
00000160  0d 00 b4 43 f4 82 49 6e  69 74 69 61 6c 69 73 65  |...C..Initialise|
00000170  20 61 72 65 61 20 74 6f  20 6c 6f 61 64 20 74 68  | area to load th|
00000180  65 20 20 20 20 20 20 20  20 20 20 20 20 82 73 70  |e            .sp|
00000190  72 69 74 65 20 64 65 66  69 6e 69 74 69 6f 6e 73  |rite definitions|
000001a0  20 74 6f 0d 00 be 15 c8  99 20 4f 24 2c 32 35 36  | to...... O$,256|
000001b0  2b 39 2c 61 72 65 61 25  0d 00 c8 05 20 0d 00 d2  |+9,area%.... ...|
000001c0  3a f4 84 4e 6f 77 20 6c  6f 61 64 20 74 68 65 20  |:..Now load the |
000001d0  73 70 72 69 74 65 20 64  65 66 69 6e 69 74 69 6f  |sprite definitio|
000001e0  6e 73 20 20 20 20 20 20  20 20 84 74 6f 20 74 68  |ns        .to th|
000001f0  69 73 20 61 72 65 61 0d  00 dc 1f c8 99 20 4f 24  |is area...... O$|
00000200  2c 32 35 36 2b 31 30 2c  61 72 65 61 25 2c 73 70  |,256+10,area%,sp|
00000210  72 69 74 65 73 24 0d 00  e6 05 20 0d 00 f0 0f f4  |rites$.... .....|
00000220  81 47 52 41 42 20 41 52  45 41 0d 00 fa 0d 67 24  |.GRAB AREA....g$|
00000230  3d 22 67 72 61 62 22 0d  01 04 0f 73 69 7a 65 25  |="grab"....size%|
00000240  3d 36 36 30 30 30 0d 01  0e 11 de 20 67 72 61 62  |=66000..... grab|
00000250  25 20 73 69 7a 65 25 0d  01 18 11 67 72 61 62 25  |% size%....grab%|
00000260  21 30 3d 73 69 7a 65 25  0d 01 22 0e 67 72 61 62  |!0=size%..".grab|
00000270  25 21 38 3d 31 36 0d 01  2c 15 c8 99 20 4f 24 2c  |%!8=16..,... O$,|
00000280  32 35 36 2b 39 2c 67 72  61 62 25 0d 01 36 09 61  |256+9,grab%..6.a|
00000290  25 3d 36 34 0d 01 40 09  62 25 3d 36 34 0d 01 4a  |%=64..@.b%=64..J|
000002a0  0e 63 25 3d 31 32 38 30  2d 36 34 0d 01 54 0e 64  |.c%=1280-64..T.d|
000002b0  25 3d 31 30 32 34 2d 36  34 0d 01 5e 05 20 0d 01  |%=1024-64..^. ..|
000002c0  68 24 f4 81 5f 5f 5f 5f  5f 53 45 54 20 55 50 20  |h$.._____SET UP |
000002d0  4f 4e 43 45 20 4f 4e 4c  59 5f 5f 5f 5f 5f 5f 5f  |ONCE ONLY_______|
000002e0  5f 5f 0d 01 72 0c f2 73  70 72 69 74 65 73 0d 01  |__..r..sprites..|
000002f0  7c 05 20 0d 01 86 09 f2  64 69 6d 73 0d 01 90 05  ||. .....dims....|
00000300  20 0d 01 9a 24 f4 81 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ...$..---------|
00000310  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000320  2d 2d 2d 2d 2d 0d 01 a4  05 20 0d 01 ae 05 20 0d  |-----.... .... .|
00000330  01 b8 05 20 0d 01 c2 0b  f2 62 6f 72 64 65 72 0d  |... .....border.|
00000340  01 cc 05 20 0d 01 d6 09  f2 69 6e 69 74 0d 01 e0  |... .....init...|
00000350  05 20 0d 01 ea 0b f2 73  63 72 65 65 6e 0d 01 f4  |. .....screen...|
00000360  05 20 0d 01 fe 0a f2 73  74 61 72 74 0d 02 08 05  |. .....start....|
00000370  20 0d 02 12 13 f4 83 2d  2d 2d 4c 4f 4f 50 2d 2d  | ......---LOOP--|
00000380  2d 2d 2d 2d 0d 02 1c 05  20 0d 02 26 05 f5 0d 02  |----.... ..&....|
00000390  30 16 5a 25 3d 33 2d 5a  25 3a c8 99 36 2c 31 31  |0.Z%=3-Z%:..6,11|
000003a0  32 2c 5a 25 0d 02 3a 1a  e7 7a 25 3e 30 3a 7a 25  |2,Z%..:..z%>0:z%|
000003b0  2b 3d 31 3a e7 7a 25 3e  3d 33 7a 25 3d 30 0d 02  |+=1:.z%>=3z%=0..|
000003c0  44 1a e7 72 25 3e 30 3a  72 25 2b 3d 31 3a e7 72  |D..r%>0:r%+=1:.r|
000003d0  25 3e 3d 34 72 25 3d 30  0d 02 4e 06 f2 4b 0d 02  |%>=4r%=0..N..K..|
000003e0  58 06 f2 50 0d 02 62 0e  c8 99 36 2c 31 31 33 2c  |X..P..b...6,113,|
000003f0  5a 25 0d 02 6c 06 fd 30  0d 02 76 05 20 0d 02 80  |Z%..l..0..v. ...|
00000400  05 e0 0d 02 8a 05 20 0d  02 94 16 f4 82 53 4f 52  |...... ......SOR|
00000410  54 20 53 50 52 49 54 45  53 20 4f 55 54 0d 02 9e  |T SPRITES OUT...|
00000420  0d dd f2 73 70 72 69 74  65 73 0d 02 a8 11 de 20  |...sprites..... |
00000430  4c 25 28 37 29 2c 4d 25  28 37 29 0d 02 b2 0b de  |L%(7),M%(7).....|
00000440  20 42 25 28 31 29 0d 02  bc 0a de 53 25 28 32 29  | B%(1).....S%(2)|
00000450  0d 02 c6 0a de 52 25 28  32 29 0d 02 d0 0b de 57  |.....R%(2).....W|
00000460  25 28 33 32 29 0d 02 da  0b e3 49 25 3d 30 b8 37  |%(32).....I%=0.7|
00000470  0d 02 e4 2a f2 73 65 74  73 70 72 69 74 65 28 22  |...*.setsprite("|
00000480  4c 41 53 45 52 22 2b c3  28 49 25 29 2c 4c 25 28  |LASER"+.(I%),L%(|
00000490  49 25 29 2c 68 25 2c 77  25 29 0d 02 ee 2b f2 73  |I%),h%,w%)...+.s|
000004a0  65 74 73 70 72 69 74 65  28 22 4d 49 52 52 4f 52  |etsprite("MIRROR|
000004b0  22 2b c3 28 49 25 29 2c  4d 25 28 49 25 29 2c 68  |"+.(I%),M%(I%),h|
000004c0  25 2c 77 25 29 0d 02 f8  05 ed 0d 03 02 29 f2 73  |%,w%)........).s|
000004d0  65 74 73 70 72 69 74 65  28 22 42 41 43 4b 47 52  |etsprite("BACKGR|
000004e0  4f 55 4e 44 31 22 2c 42  25 28 31 29 2c 68 25 2c  |OUND1",B%(1),h%,|
000004f0  77 25 29 0d 03 0c 26 f2  73 65 74 73 70 72 69 74  |w%)...&.setsprit|
00000500  65 28 22 52 45 41 43 54  4f 52 31 22 2c 52 25 28  |e("REACTOR1",R%(|
00000510  31 29 2c 68 25 2c 77 25  29 0d 03 16 26 f2 73 65  |1),h%,w%)...&.se|
00000520  74 73 70 72 69 74 65 28  22 44 45 41 44 4d 49 52  |tsprite("DEADMIR|
00000530  52 4f 52 22 2c 44 4d 25  2c 68 25 2c 77 25 29 0d  |ROR",DM%,h%,w%).|
00000540  03 20 24 f2 73 65 74 73  70 72 69 74 65 28 22 44  |. $.setsprite("D|
00000550  45 41 44 5a 4f 4e 45 22  2c 44 5a 25 2c 68 25 2c  |EADZONE",DZ%,h%,|
00000560  77 25 29 0d 03 2a 0b e3  49 25 3d 31 b8 32 0d 03  |w%)..*..I%=1.2..|
00000570  34 2b f2 73 65 74 73 70  72 69 74 65 28 22 53 51  |4+.setsprite("SQ|
00000580  55 41 52 45 22 2b c3 28  49 25 29 2c 53 25 28 49  |UARE"+.(I%),S%(I|
00000590  25 29 2c 68 25 2c 77 25  29 0d 03 3e 05 ed 0d 03  |%),h%,w%)..>....|
000005a0  48 05 20 0d 03 52 0b e3  49 25 3d 31 b8 32 0d 03  |H. ..R..I%=1.2..|
000005b0  5c 29 f2 73 65 74 73 70  72 69 74 65 28 22 57 41  |\).setsprite("WA|
000005c0  4c 4c 22 2b c3 28 49 25  29 2c 57 25 28 49 25 29  |LL"+.(I%),W%(I%)|
000005d0  2c 68 25 2c 77 25 29 0d  03 66 05 ed 0d 03 70 05  |,h%,w%)..f....p.|
000005e0  e1 0d 03 7a 05 20 0d 03  84 12 f4 83 49 6e 69 74  |...z. ......Init|
000005f0  20 73 70 72 69 74 65 73  0d 03 8e 34 dd f2 73 65  | sprites...4..se|
00000600  74 73 70 72 69 74 65 28  73 74 72 69 6e 67 24 2c  |tsprite(string$,|
00000610  f8 20 76 61 6c 75 65 25  2c f8 20 77 69 64 74 68  |. value%,. width|
00000620  25 2c f8 20 68 65 69 67  68 74 25 29 0d 03 98 28  |%,. height%)...(|
00000630  c8 99 20 4f 24 2c 32 35  36 2b 32 34 2c 61 72 65  |.. O$,256+24,are|
00000640  61 25 2c 73 74 72 69 6e  67 24 20 b8 2c 2c 76 61  |a%,string$ .,,va|
00000650  6c 75 65 25 0d 03 a2 31  c8 99 20 4f 24 2c 32 35  |lue%...1.. O$,25|
00000660  36 2b 34 30 2c 61 72 65  61 25 2c 73 74 72 69 6e  |6+40,area%,strin|
00000670  67 24 20 b8 2c 2c 2c 77  69 64 74 68 25 2c 68 65  |g$ .,,,width%,he|
00000680  69 67 68 74 25 0d 03 ac  05 e1 0d 03 b6 05 20 0d  |ight%......... .|
00000690  03 c0 0a f4 82 49 4e 49  54 0d 03 ca 0a dd f2 69  |.....INIT......i|
000006a0  6e 69 74 0d 03 d4 05 f7  0d 03 de 08 7a 25 3d 30  |nit.........z%=0|
000006b0  0d 03 e8 08 72 25 3d 30  0d 03 f2 0e 77 61 73 58  |....r%=0....wasX|
000006c0  25 3d 2d 32 30 30 0d 03  fc 0e 77 61 73 59 25 3d  |%=-200....wasY%=|
000006d0  2d 32 30 30 0d 04 06 0b  77 61 73 55 25 3d 30 0d  |-200....wasU%=0.|
000006e0  04 10 08 55 25 3d 30 0d  04 1a 0c 77 61 73 41 25  |...U%=0....wasA%|
000006f0  3d 32 31 0d 04 24 0c 77  61 73 42 25 3d 32 31 0d  |=21..$.wasB%=21.|
00000700  04 2e 0c 77 61 73 43 25  3d 32 31 0d 04 38 0c 77  |...wasC%=21..8.w|
00000710  61 73 44 25 3d 32 31 0d  04 42 08 46 25 3d 30 0d  |asD%=21..B.F%=0.|
00000720  04 4c 09 66 25 3d 36 34  0d 04 56 10 58 25 3d 36  |.L.f%=64..V.X%=6|
00000730  34 3a 59 25 3d 38 39 36  0d 04 60 17 46 58 25 3d  |4:Y%=896..`.FX%=|
00000740  58 25 2b 33 32 3a 46 59  25 3d 59 25 2b 33 32 0d  |X%+32:FY%=Y%+32.|
00000750  04 6a 09 47 25 3d 32 31  0d 04 74 08 43 25 3d 30  |.j.G%=21..t.C%=0|
00000760  0d 04 7e 11 42 58 25 3d  36 34 3a 42 59 25 3d 36  |..~.BX%=64:BY%=6|
00000770  34 0d 04 88 09 4d 25 3d  36 34 0d 04 92 0a 6c 65  |4....M%=64....le|
00000780  76 25 3d 31 0d 04 9c 0b  e3 49 25 3d 30 b8 37 0d  |v%=1.....I%=0.7.|
00000790  04 a6 14 f3 46 58 25 28  49 25 29 2c 46 59 25 28  |....FX%(I%),FY%(|
000007a0  49 25 29 0d 04 b0 29 46  58 25 28 49 25 29 3d 46  |I%)...)FX%(I%)=F|
000007b0  58 25 28 49 25 29 2a 66  25 3a 46 59 25 28 49 25  |X%(I%)*f%:FY%(I%|
000007c0  29 3d 46 59 25 28 49 25  29 2a 66 25 0d 04 ba 05  |)=FY%(I%)*f%....|
000007d0  ed 0d 04 c4 0b e3 49 25  3d 30 b8 37 0d 04 ce 0b  |......I%=0.7....|
000007e0  f3 56 25 28 49 25 29 0d  04 d8 05 ed 0d 04 e2 05  |.V%(I%).........|
000007f0  e1 0d 04 ec 1d f4 84 44  41 54 41 20 46 4f 52 20  |.......DATA FOR |
00000800  46 49 52 49 4e 47 20 4f  46 46 53 45 54 53 0d 04  |FIRING OFFSETS..|
00000810  f6 2a dc 30 2c 31 2c 31  2c 31 2c 31 2c 30 2c 31  |.*.0,1,1,1,1,0,1|
00000820  2c 2d 31 2c 30 2c 2d 31  2c 2d 31 2c 2d 31 2c 2d  |,-1,0,-1,-1,-1,-|
00000830  31 2c 30 2c 2d 31 2c 31  0d 05 00 1c f4 84 44 41  |1,0,-1,1......DA|
00000840  54 41 20 46 4f 52 20 4c  41 53 45 52 20 4f 46 46  |TA FOR LASER OFF|
00000850  53 45 54 53 0d 05 0a 1e  dc 2d 32 30 2c 2d 31 39  |SETS.....-20,-19|
00000860  2c 31 2c 32 31 2c 32 30  2c 31 39 2c 2d 31 2c 2d  |,1,21,20,19,-1,-|
00000870  32 31 0d 05 14 05 20 0d  05 1e 0c f4 85 53 43 52  |21.... ......SCR|
00000880  45 45 4e 0d 05 28 0c dd  f2 73 63 72 65 65 6e 0d  |EEN..(...screen.|
00000890  05 32 0e e3 4a 25 3d 32  b8 31 88 2d 31 0d 05 3c  |.2..J%=2.1.-1..<|
000008a0  0e c8 99 36 2c 31 31 32  2c 4a 25 0d 05 46 0a fb  |...6,112,J%..F..|
000008b0  31 33 35 3a db 0d 05 50  29 c8 99 20 4f 24 2c 35  |135:...P).. O$,5|
000008c0  31 32 2b 33 34 2c 61 72  65 61 25 2c 42 25 28 6c  |12+34,area%,B%(l|
000008d0  65 76 25 29 2c 42 58 25  2c 42 59 25 2c 30 0d 05  |ev%),BX%,BY%,0..|
000008e0  5a 25 f1 8a 32 2c 33 30  29 22 4c 3d 4c 4f 41 44  |Z%..2,30)"L=LOAD|
000008f0  20 44 41 54 41 3a 20 44  3d 53 41 56 45 20 44 41  | DATA: D=SAVE DA|
00000900  54 41 22 0d 05 64 1e fb  33 3a f1 8a 32 38 2c 33  |TA"..d..3:..28,3|
00000910  30 29 22 6c 61 73 65 72  45 44 49 54 22 3a fb 36  |0)"laserEDIT":.6|
00000920  33 0d 05 6e 05 ed 0d 05  78 0f f2 70 6c 6f 74 5f  |3..n....x..plot_|
00000930  69 74 65 6d 73 0d 05 82  06 f2 47 0d 05 8c 05 e1  |items.....G.....|
00000940  0d 05 96 05 20 0d 05 a0  0b f4 81 53 54 41 52 54  |.... ......START|
00000950  0d 05 aa 0b dd f2 73 74  61 72 74 0d 05 b4 0d 57  |......start....W|
00000960  25 3d 30 3a 5a 25 3d 31  0d 05 be 08 51 25 3d 30  |%=0:Z%=1....Q%=0|
00000970  0d 05 c8 08 48 25 3d 30  0d 05 d2 06 f2 50 0d 05  |....H%=0.....P..|
00000980  dc 05 e1 0d 05 e6 05 20  0d 05 f0 0a f4 86 44 49  |....... ......DI|
00000990  4d 53 0d 05 fa 0a dd f2  64 69 6d 73 0d 06 04 0c  |MS......dims....|
000009a0  de 47 25 28 33 31 39 29  0d 06 0e 0c de 67 25 28  |.G%(319).....g%(|
000009b0  33 31 39 29 0d 06 18 12  6d 61 78 6d 69 72 72 6f  |319)....maxmirro|
000009c0  72 73 25 3d 35 30 0d 06  22 15 de 4d 58 25 28 6d  |rs%=50.."..MX%(m|
000009d0  61 78 6d 69 72 72 6f 72  73 25 29 0d 06 2c 15 de  |axmirrors%)..,..|
000009e0  4d 59 25 28 6d 61 78 6d  69 72 72 6f 72 73 25 29  |MY%(maxmirrors%)|
000009f0  0d 06 36 12 de 46 58 25  28 37 29 2c 46 59 25 28  |..6..FX%(7),FY%(|
00000a00  37 29 0d 06 40 0a de 56  25 28 37 29 0d 06 4a 05  |7)..@..V%(7)..J.|
00000a10  e1 0d 06 54 05 20 0d 06  5e 0a f4 84 4b 45 59 53  |...T. ..^...KEYS|
00000a20  0d 06 68 07 dd f2 4b 0d  06 72 1a e7 a6 2d 39 38  |..h...K..r...-98|
00000a30  84 a6 2d 32 36 f2 4d 28  2d 4d 25 2c 30 2c 2d 31  |..-26.M(-M%,0,-1|
00000a40  29 0d 06 7c 19 e7 a6 2d  36 37 84 a6 2d 31 32 32  |)..|...-67..-122|
00000a50  f2 4d 28 4d 25 2c 30 2c  31 29 0d 06 86 1a e7 a6  |.M(M%,0,1)......|
00000a60  2d 38 30 84 a6 2d 35 38  f2 4d 28 30 2c 4d 25 2c  |-80..-58.M(0,M%,|
00000a70  2d 32 30 29 0d 06 90 1b  e7 a6 2d 31 30 35 84 a6  |-20)......-105..|
00000a80  2d 34 32 f2 4d 28 30 2c  2d 4d 25 2c 32 30 29 0d  |-42.M(0,-M%,20).|
00000a90  06 9a 0a e7 a6 2d 33 f2  43 0d 06 a4 0e e7 a6 2d  |.....-3.C......-|
00000aa0  36 36 f2 52 28 37 29 0d  06 ae 0e e7 a6 2d 38 32  |66.R(7)......-82|
00000ab0  f2 52 28 31 29 0d 06 b8  11 e7 46 25 3d 30 3a e7  |.R(1).....F%=0:.|
00000ac0  a6 2d 37 34 f2 46 0d 06  c2 12 e7 a6 2d 34 30 f2  |.-74.F......-40.|
00000ad0  70 6c 6f 6e 6b 28 30 29  0d 06 cc 12 e7 a6 2d 34  |plonk(0)......-4|
00000ae0  39 f2 70 6c 6f 6e 6b 28  31 29 0d 06 d6 12 e7 a6  |9.plonk(1)......|
00000af0  2d 35 30 f2 70 6c 6f 6e  6b 28 32 29 0d 06 e0 12  |-50.plonk(2)....|
00000b00  e7 a6 2d 31 38 f2 70 6c  6f 6e 6b 28 33 29 0d 06  |..-18.plonk(3)..|
00000b10  ea 12 e7 a6 2d 31 39 f2  70 6c 6f 6e 6b 28 34 29  |....-19.plonk(4)|
00000b20  0d 06 f4 12 e7 a6 2d 32  30 f2 70 6c 6f 6e 6b 28  |......-20.plonk(|
00000b30  35 29 0d 06 fe 12 e7 a6  2d 35 33 f2 70 6c 6f 6e  |5)......-53.plon|
00000b40  6b 28 36 29 0d 07 08 12  e7 a6 2d 33 37 f2 70 6c  |k(6)......-37.pl|
00000b50  6f 6e 6b 28 37 29 0d 07  12 12 e7 a6 2d 32 32 f2  |onk(7)......-22.|
00000b60  70 6c 6f 6e 6b 28 38 29  0d 07 1c 12 e7 a6 2d 33  |plonk(8)......-3|
00000b70  39 f2 70 6c 6f 6e 6b 28  39 29 0d 07 26 19 e7 a6  |9.plonk(9)..&...|
00000b80  2d 31 30 37 84 a6 2d 31  37 f2 70 6c 6f 6e 6b 28  |-107..-17.plonk(|
00000b90  31 30 29 0d 07 30 19 e7  a6 2d 31 30 38 84 a6 2d  |10)..0...-108..-|
00000ba0  33 34 f2 70 6c 6f 6e 6b  28 31 31 29 0d 07 3a 13  |34.plonk(11)..:.|
00000bb0  e7 a6 2d 39 39 f2 70 6c  6f 6e 6b 28 2d 31 29 0d  |..-99.plonk(-1).|
00000bc0  07 44 2e e7 a6 2d 38 37  c8 99 36 2c 31 31 33 2c  |.D...-87..6,113,|
00000bd0  5a 25 3a f2 70 6c 6f 74  5f 69 74 65 6d 73 3a f4  |Z%:.plot_items:.|
00000be0  53 59 53 36 2c 31 31 33  2c 33 2d 5a 25 0d 07 4e  |SYS6,113,3-Z%..N|
00000bf0  0e e7 a6 2d 35 31 f2 64  61 74 61 0d 07 58 05 e1  |...-51.data..X..|
00000c00  0d 07 62 05 20 0d 07 6c  0e f4 83 4d 4f 56 45 4d  |..b. ..l...MOVEM|
00000c10  45 4e 54 0d 07 76 11 dd  f2 4d 28 78 25 2c 79 25  |ENT..v...M(x%,y%|
00000c20  2c 67 25 29 0d 07 80 0a  e7 7a 25 3e 30 e1 0d 07  |,g%).....z%>0...|
00000c30  8a 12 e7 47 25 28 47 25  2b 67 25 29 3d 2d 32 e1  |...G%(G%+g%)=-2.|
00000c40  0d 07 94 0a 47 25 2b 3d  67 25 0d 07 9e 11 58 25  |....G%+=g%....X%|
00000c50  2b 3d 78 25 3a 59 25 2b  3d 79 25 0d 07 a8 0f 55  |+=x%:Y%+=y%....U|
00000c60  25 3d 28 55 25 2b 31 29  83 32 0d 07 b2 08 7a 25  |%=(U%+1).2....z%|
00000c70  3d 31 0d 07 bc 05 e1 0d  07 c6 05 20 0d 07 d0 1b  |=1......... ....|
00000c80  f4 86 44 52 41 57 20 54  48 49 4e 47 53 20 54 4f  |..DRAW THINGS TO|
00000c90  20 53 43 52 45 45 4e 0d  07 da 07 dd f2 50 0d 07  | SCREEN......P..|
00000ca0  e4 12 20 20 f4 82 62 61  63 6b 67 72 6f 75 6e 64  |..  ..background|
00000cb0  0d 07 ee 22 c8 99 20 4f  24 2c 26 32 32 32 2c 67  |...".. O$,&222,g|
00000cc0  72 61 62 25 2c 62 67 25  2c 42 58 25 2c 42 59 25  |rab%,bg%,BX%,BY%|
00000cd0  2c 30 0d 07 f8 05 20 0d  08 02 20 20 20 f4 82 61  |,0.... ...   ..a|
00000ce0  6c 74 65 72 20 6d 69 72  72 6f 72 2f 64 65 61 64  |lter mirror/dead|
00000cf0  20 6d 69 72 72 6f 72 0d  08 0c 0b c8 8e 20 51 25  | mirror...... Q%|
00000d00  20 ca 0d 08 16 57 20 c9  20 31 3a c8 99 20 4f 24  | ....W . 1:.. O$|
00000d10  2c 26 32 32 32 2c 61 72  65 61 25 2c 53 25 28 6c  |,&222,area%,S%(l|
00000d20  65 76 25 2a 32 2d 31 2b  55 25 29 2c 58 25 2c 59  |ev%*2-1+U%),X%,Y|
00000d30  25 2c 30 3a e7 67 25 28  47 25 29 3d 38 c8 99 20  |%,0:.g%(G%)=8.. |
00000d40  4f 24 2c 26 32 32 32 2c  61 72 65 61 25 2c 44 5a  |O$,&222,area%,DZ|
00000d50  25 2c 58 25 2c 59 25 2c  38 0d 08 20 2c 20 c8 99  |%,X%,Y%,8.. , ..|
00000d60  20 4f 24 2c 26 32 32 32  2c 61 72 65 61 25 2c 4d  | O$,&222,area%,M|
00000d70  25 28 57 25 29 2c 58 25  2c 59 25 2c 38 3a f2 47  |%(W%),X%,Y%,8:.G|
00000d80  3a 51 25 3d 30 0d 08 2a  09 20 c9 20 32 3a 0d 08  |:Q%=0..*. . 2:..|
00000d90  34 33 20 e7 47 25 28 56  25 29 3d 2d 31 c8 99 20  |43 .G%(V%)=-1.. |
00000da0  4f 24 2c 26 32 32 32 2c  61 72 65 61 25 2c 44 4d  |O$,&222,area%,DM|
00000db0  25 2c 46 58 25 2d 33 32  2c 46 59 25 2d 33 32 2c  |%,FX%-32,FY%-32,|
00000dc0  30 0d 08 3e 57 20 e7 67  25 28 56 25 29 3d 38 c8  |0..>W .g%(V%)=8.|
00000dd0  99 20 4f 24 2c 26 32 32  32 2c 61 72 65 61 25 2c  |. O$,&222,area%,|
00000de0  44 4d 25 2c 46 58 25 2d  33 32 2c 46 59 25 2d 33  |DM%,FX%-32,FY%-3|
00000df0  32 2c 30 3a c8 99 20 4f  24 2c 26 32 32 32 2c 61  |2,0:.. O$,&222,a|
00000e00  72 65 61 25 2c 44 5a 25  2c 46 58 25 2d 33 32 2c  |rea%,DZ%,FX%-32,|
00000e10  46 59 25 2d 33 32 2c 38  0d 08 48 11 20 f2 47 3a  |FY%-32,8..H. .G:|
00000e20  51 25 3d 30 3a 46 25 3d  30 0d 08 52 05 20 0d 08  |Q%=0:F%=0..R. ..|
00000e30  5c 05 cb 0d 08 66 05 20  0d 08 70 18 20 20 f4 82  |\....f. ..p.  ..|
00000e40  63 61 72 72 79 69 6e 67  20 6d 69 72 72 6f 72 3f  |carrying mirror?|
00000e50  0d 08 7a 0b c8 8e 20 43  25 20 ca 0d 08 84 31 20  |..z... C% ....1 |
00000e60  c9 20 31 3a c8 99 20 4f  24 2c 26 32 32 32 2c 61  |. 1:.. O$,&222,a|
00000e70  72 65 61 25 2c 53 25 28  6c 65 76 25 2a 32 2d 31  |rea%,S%(lev%*2-1|
00000e80  2b 55 25 29 2c 58 25 2c  59 25 2c 30 0d 08 8e 33  |+U%),X%,Y%,0...3|
00000e90  20 e7 67 25 28 47 25 29  3d 38 c8 99 20 4f 24 2c  | .g%(G%)=8.. O$,|
00000ea0  26 32 32 32 2c 61 72 65  61 25 2c 44 5a 25 2c 58  |&222,area%,DZ%,X|
00000eb0  25 2c 59 25 2c 38 3a 47  25 28 47 25 29 3d 38 0d  |%,Y%,8:G%(G%)=8.|
00000ec0  08 98 0c 20 f2 47 3a 43  25 3d 32 0d 08 a2 05 20  |... .G:C%=2.... |
00000ed0  0d 08 ac 30 20 c9 20 33  3a c8 99 20 4f 24 2c 26  |...0 . 3:.. O$,&|
00000ee0  32 32 32 2c 61 72 65 61  25 2c 4d 25 28 57 25 29  |222,area%,M%(W%)|
00000ef0  2c 58 25 2c 59 25 2c 38  3a f2 47 3a 43 25 3d 30  |,X%,Y%,8:.G:C%=0|
00000f00  0d 08 b6 05 cb 0d 08 c0  05 20 0d 08 ca 13 20 20  |......... ....  |
00000f10  f4 82 66 69 72 65 20 6c  61 73 65 72 3f 0d 08 d4  |..fire laser?...|
00000f20  0b c8 8e 20 46 25 20 ca  0d 08 de 0b 20 c9 20 31  |... F% ..... . 1|
00000f30  3a f2 4c 0d 08 e8 0b 20  c9 20 32 3a f2 57 0d 08  |:.L.... . 2:.W..|
00000f40  f2 0b 20 c9 20 33 3a f2  48 0d 08 fc 05 cb 0d 09  |.. . 3:.H.......|
00000f50  06 05 20 0d 09 10 13 20  20 f4 82 70 72 69 6e 74  |.. ....  ..print|
00000f60  20 6c 61 73 65 72 0d 09  1a 28 e7 43 25 3d 32 c8  | laser...(.C%=2.|
00000f70  99 20 4f 24 2c 26 32 32  32 2c 61 72 65 61 25 2c  |. O$,&222,area%,|
00000f80  4d 25 28 57 25 29 2c 58  25 2c 59 25 2c 38 0d 09  |M%(W%),X%,Y%,8..|
00000f90  24 23 c8 99 20 4f 24 2c  26 32 32 32 2c 61 72 65  |$#.. O$,&222,are|
00000fa0  61 25 2c 4c 25 28 57 25  29 2c 58 25 2c 59 25 2c  |a%,L%(W%),X%,Y%,|
00000fb0  38 0d 09 2e 05 20 0d 09  38 2e f4 50 52 49 4e 54  |8.... ..8..PRINT|
00000fc0  54 41 42 28 30 2c 30 29  3b 47 25 3b 22 20 20 22  |TAB(0,0);G%;"  "|
00000fd0  54 41 42 28 34 2c 30 29  3b 47 25 28 47 25 29 3b  |TAB(4,0);G%(G%);|
00000fe0  22 20 20 22 0d 09 42 05  e1 0d 09 4c 05 20 0d 09  |"  "..B....L. ..|
00000ff0  56 1a f4 81 42 4f 52 44  45 52 20 47 52 49 44 20  |V...BORDER GRID |
00001000  44 45 46 41 55 4c 54 53  0d 09 60 0c dd f2 62 6f  |DEFAULTS..`...bo|
00001010  72 64 65 72 0d 09 6a 0b  47 25 28 29 3d 2d 31 0d  |rder..j.G%()=-1.|
00001020  09 74 0b 67 25 28 29 3d  2d 31 0d 09 7e 0c e3 49  |.t.g%()=-1..~..I|
00001030  25 3d 30 b8 31 39 0d 09  88 0d 47 25 28 49 25 29  |%=0.19....G%(I%)|
00001040  3d 2d 32 0d 09 92 0d 67  25 28 49 25 29 3d 2d 32  |=-2....g%(I%)=-2|
00001050  0d 09 9c 11 47 25 28 49  25 2b 33 30 30 29 3d 2d  |....G%(I%+300)=-|
00001060  32 0d 09 a6 11 67 25 28  49 25 2b 33 30 30 29 3d  |2....g%(I%+300)=|
00001070  2d 32 0d 09 b0 05 ed 0d  09 ba 05 20 0d 09 c4 10  |-2......... ....|
00001080  e3 49 25 3d 30 b8 33 30  30 88 32 30 0d 09 ce 0d  |.I%=0.300.20....|
00001090  47 25 28 49 25 29 3d 2d  32 0d 09 d8 0d 67 25 28  |G%(I%)=-2....g%(|
000010a0  49 25 29 3d 2d 32 0d 09  e2 10 47 25 28 49 25 2b  |I%)=-2....G%(I%+|
000010b0  31 39 29 3d 2d 32 0d 09  ec 10 67 25 28 49 25 2b  |19)=-2....g%(I%+|
000010c0  31 39 29 3d 2d 32 0d 09  f6 05 ed 0d 0a 00 05 e1  |19)=-2..........|
000010d0  0d 0a 0a 05 20 0d 0a 14  1a f4 83 50 4c 4f 54 20  |.... ......PLOT |
000010e0  49 54 45 4d 53 20 54 4f  20 53 43 52 45 45 4e 0d  |ITEMS TO SCREEN.|
000010f0  0a 1e 16 dd f2 70 6c 6f  74 5f 69 74 65 6d 73 3a  |.....plot_items:|
00001100  f2 69 6e 69 74 0d 0a 28  0a c8 99 36 2c 31 35 0d  |.init..(...6,15.|
00001110  0a 32 1d f1 8a 38 2c 30  29 22 4c 4f 41 44 20 46  |.2...8,0)"LOAD F|
00001120  49 4c 45 3f 20 22 3a 79  6e 24 3d be 0d 0a 3c 18  |ILE? ":yn$=...<.|
00001130  e7 79 6e 24 3c 3e 22 59  22 f1 8a 38 2c 30 29 89  |.yn$<>"Y"..8,0).|
00001140  33 30 3a e1 0d 0a 46 1e  e8 8a 38 2c 30 29 22 57  |30:...F...8,0)"W|
00001150  48 41 54 20 4e 75 6d 62  65 72 3f 20 22 6e 61 6d  |HAT Number? "nam|
00001160  65 24 0d 0a 50 0d f1 8a  38 2c 30 29 89 33 30 0d  |e$..P...8,0).30.|
00001170  0a 5a 16 6e 61 6d 65 24  3d 22 44 41 54 41 22 2b  |.Z.name$="DATA"+|
00001180  6e 61 6d 65 24 0d 0a 64  2f e3 75 3d 32 b8 31 88  |name$..d/.u=2.1.|
00001190  2d 31 3a c8 99 36 2c 31  31 32 2c 75 3a f1 8a 38  |-1:..6,112,u:..8|
000011a0  2c 30 29 89 33 30 3a f1  8a 38 2c 30 29 6e 61 6d  |,0).30:..8,0)nam|
000011b0  65 24 3a ed 0d 0a 6e 13  66 69 6c 65 31 25 3d 8e  |e$:...n.file1%=.|
000011c0  28 6e 61 6d 65 24 29 0d  0a 78 11 70 78 25 3d 30  |(name$)..x.px%=0|
000011d0  3a 70 79 25 3d 38 39 36  0d 0a 82 11 68 61 64 72  |:py%=896....hadr|
000011e0  65 61 63 74 6f 72 25 3d  30 0d 0a 8c 29 c8 99 20  |eactor%=0...).. |
000011f0  4f 24 2c 35 31 32 2b 33  34 2c 61 72 65 61 25 2c  |O$,512+34,area%,|
00001200  42 25 28 6c 65 76 25 29  2c 42 58 25 2c 42 59 25  |B%(lev%),BX%,BY%|
00001210  2c 30 0d 0a 96 0e e3 4a  25 3d 32 31 b8 32 39 38  |,0.....J%=21.298|
00001220  0d 0a a0 0b 70 78 25 2b  3d 36 34 0d 0a aa 12 e8  |....px%+=64.....|
00001230  23 66 69 6c 65 31 25 2c  64 61 74 61 25 0d 0a b4  |#file1%,data%...|
00001240  19 e7 4a 25 83 32 30 3d  30 70 79 25 2d 3d 36 34  |..J%.20=0py%-=64|
00001250  3a 70 78 25 3d 30 0d 0a  be 0c ec 70 78 25 2c 70  |:px%=0.....px%,p|
00001260  79 25 0d 0a c8 0e c8 8e  20 64 61 74 61 25 20 ca  |y%...... data% .|
00001270  0d 0a d2 3b 20 c9 20 30  2c 31 2c 32 2c 33 2c 34  |...; . 0,1,2,3,4|
00001280  2c 35 2c 36 2c 37 3a c8  99 20 4f 24 2c 26 32 32  |,5,6,7:.. O$,&22|
00001290  32 2c 61 72 65 61 25 2c  4d 25 28 64 61 74 61 25  |2,area%,M%(data%|
000012a0  29 2c 70 78 25 2c 70 79  25 2c 38 0d 0a dc 26 20  |),px%,py%,8...& |
000012b0  c9 38 3a c8 99 20 4f 24  2c 26 32 32 32 2c 61 72  |.8:.. O$,&222,ar|
000012c0  65 61 25 2c 44 5a 25 2c  70 78 25 2c 70 79 25 2c  |ea%,DZ%,px%,py%,|
000012d0  38 0d 0a e6 a0 20 c9 39  3a e7 68 61 64 72 65 61  |8.... .9:.hadrea|
000012e0  63 74 6f 72 25 3d 30 68  61 64 72 65 61 63 74 6f  |ctor%=0hadreacto|
000012f0  72 25 3d 31 3a c8 99 20  4f 24 2c 26 32 32 32 2c  |r%=1:.. O$,&222,|
00001300  61 72 65 61 25 2c 52 25  28 31 29 2c 70 78 25 2c  |area%,R%(1),px%,|
00001310  70 79 25 2d 36 34 2c 30  3a 52 58 25 3d 70 78 25  |py%-64,0:RX%=px%|
00001320  3a 52 59 25 3d 70 79 25  2d 36 34 3a 77 61 73 58  |:RY%=py%-64:wasX|
00001330  25 3d 52 58 25 3a 77 61  73 59 25 3d 52 59 25 3a  |%=RX%:wasY%=RY%:|
00001340  77 61 73 41 25 3d 4a 25  3a 77 61 73 42 25 3d 4a  |wasA%=J%:wasB%=J|
00001350  25 2b 31 3a 77 61 73 43  25 3d 4a 25 2b 32 30 3a  |%+1:wasC%=J%+20:|
00001360  77 61 73 44 25 3d 4a 25  2b 32 31 3a f2 77 61 73  |wasD%=J%+21:.was|
00001370  55 0d 0a f0 29 20 c9 31  30 3a c8 99 20 4f 24 2c  |U...) .10:.. O$,|
00001380  26 32 32 32 2c 61 72 65  61 25 2c 57 25 28 31 29  |&222,area%,W%(1)|
00001390  2c 70 78 25 2c 70 79 25  2c 30 0d 0a fa 29 20 c9  |,px%,py%,0...) .|
000013a0  31 31 3a c8 99 20 4f 24  2c 26 32 32 32 2c 61 72  |11:.. O$,&222,ar|
000013b0  65 61 25 2c 57 25 28 32  29 2c 70 78 25 2c 70 79  |ea%,W%(2),px%,py|
000013c0  25 2c 30 0d 0b 04 05 cb  0d 0b 0e 10 47 25 28 4a  |%,0.........G%(J|
000013d0  25 29 3d 64 61 74 61 25  0d 0b 18 05 ed 0d 0b 22  |%)=data%......."|
000013e0  0c d9 23 66 69 6c 65 31  25 0d 0b 2c 25 c8 99 20  |..#file1%..,%.. |
000013f0  4f 24 2c 26 32 32 32 2c  61 72 65 61 25 2c 53 25  |O$,&222,area%,S%|
00001400  28 31 2b 55 25 29 2c 58  25 2c 59 25 2c 30 0d 0b  |(1+U%),X%,Y%,0..|
00001410  36 06 f2 47 0d 0b 40 05  e1 0d 0b 4a 05 20 0d 0b  |6..G..@....J. ..|
00001420  54 11 f4 81 50 4c 4f 4e  4b 20 49 54 45 4d 53 0d  |T...PLONK ITEMS.|
00001430  0b 5e 0f dd f2 70 6c 6f  6e 6b 28 70 25 29 0d 0b  |.^...plonk(p%)..|
00001440  68 10 e7 7a 25 3e 30 84  47 25 3d 32 31 e1 0d 0b  |h..z%>0.G%=21...|
00001450  72 0b c8 8e 20 70 25 20  ca 0d 0b 7c 2a 20 c9 2d  |r... p% ...|* .-|
00001460  31 3a c8 99 20 4f 24 2c  26 32 32 32 2c 61 72 65  |1:.. O$,&222,are|
00001470  61 25 2c 53 25 28 31 2b  55 25 29 2c 58 25 2c 59  |a%,S%(1+U%),X%,Y|
00001480  25 2c 30 0d 0b 86 58 20  c9 20 30 2c 31 2c 32 2c  |%,0...X . 0,1,2,|
00001490  33 2c 34 2c 35 2c 36 2c  37 3a c8 99 20 4f 24 2c  |3,4,5,6,7:.. O$,|
000014a0  26 32 32 32 2c 61 72 65  61 25 2c 53 25 28 31 2b  |&222,area%,S%(1+|
000014b0  55 25 29 2c 58 25 2c 59  25 2c 30 3a c8 99 20 4f  |U%),X%,Y%,0:.. O|
000014c0  24 2c 26 32 32 32 2c 61  72 65 61 25 2c 4d 25 28  |$,&222,area%,M%(|
000014d0  70 25 29 2c 58 25 2c 59  25 2c 38 0d 0b 90 46 20  |p%),X%,Y%,8...F |
000014e0  c9 38 3a c8 99 20 4f 24  2c 26 32 32 32 2c 61 72  |.8:.. O$,&222,ar|
000014f0  65 61 25 2c 53 25 28 31  2b 55 25 29 2c 58 25 2c  |ea%,S%(1+U%),X%,|
00001500  59 25 2c 30 3a c8 99 20  4f 24 2c 26 32 32 32 2c  |Y%,0:.. O$,&222,|
00001510  61 72 65 61 25 2c 44 5a  25 2c 58 25 2c 59 25 2c  |area%,DZ%,X%,Y%,|
00001520  38 0d 0b 9a 15 20 c9 39  3a f2 70 6c 61 63 65 72  |8.... .9:.placer|
00001530  65 61 63 74 6f 72 0d 0b  a4 27 20 c9 31 30 3a c8  |eactor...' .10:.|
00001540  99 20 4f 24 2c 26 32 32  32 2c 61 72 65 61 25 2c  |. O$,&222,area%,|
00001550  57 25 28 31 29 2c 58 25  2c 59 25 2c 30 0d 0b ae  |W%(1),X%,Y%,0...|
00001560  27 20 c9 31 31 3a c8 99  20 4f 24 2c 26 32 32 32  |' .11:.. O$,&222|
00001570  2c 61 72 65 61 25 2c 57  25 28 32 29 2c 58 25 2c  |,area%,W%(2),X%,|
00001580  59 25 2c 30 0d 0b b8 05  20 0d 0b c2 05 cb 0d 0b  |Y%,0.... .......|
00001590  cc 10 47 25 28 47 25 29  3d 70 25 3a f2 47 0d 0b  |..G%(G%)=p%:.G..|
000015a0  d6 05 e1 0d 0b e0 0a f4  85 47 52 41 42 0d 0b ea  |.........GRAB...|
000015b0  07 dd f2 47 0d 0b f4 27  c8 99 20 4f 24 2c 32 35  |...G...'.. O$,25|
000015c0  36 2b 31 36 2c 67 72 61  62 25 2c 67 24 2c 30 2c  |6+16,grab%,g$,0,|
000015d0  61 25 2c 62 25 2c 63 25  2c 64 25 0d 0b fe 20 c8  |a%,b%,c%,d%... .|
000015e0  99 20 4f 24 2c 32 35 36  2b 32 34 2c 67 72 61 62  |. O$,256+24,grab|
000015f0  25 2c 67 24 20 b8 2c 2c  62 67 25 0d 0c 08 2c c8  |%,g$ .,,bg%...,.|
00001600  99 20 4f 24 2c 32 35 36  2b 34 30 2c 67 72 61 62  |. O$,256+40,grab|
00001610  25 2c 67 24 20 b8 2c 2c  2c 77 69 64 74 68 25 2c  |%,g$ .,,,width%,|
00001620  68 65 69 67 68 74 25 0d  0c 12 05 e1 0d 0c 1c 05  |height%.........|
00001630  20 0d 0c 26 0c f4 82 52  4f 54 41 54 45 0d 0c 30  | ..&...ROTATE..0|
00001640  0b dd f2 52 28 77 25 29  0d 0c 3a 0a e7 72 25 3e  |...R(w%)..:..r%>|
00001650  30 e1 0d 0c 44 10 57 25  3d 28 57 25 2b 77 25 29  |0...D.W%=(W%+w%)|
00001660  83 38 0d 0c 4e 28 e7 47  25 28 47 25 29 3e 2d 31  |.8..N(.G%(G%)>-1|
00001670  80 47 25 28 47 25 29 3c  38 ef 37 3a 51 25 3d 31  |.G%(G%)<8.7:Q%=1|
00001680  3a 47 25 28 47 25 29 3d  57 25 0d 0c 58 08 72 25  |:G%(G%)=W%..X.r%|
00001690  3d 31 0d 0c 62 05 e1 0d  0c 6c 05 20 0d 0c 76 0a  |=1..b....l. ..v.|
000016a0  f4 81 46 49 52 45 0d 0c  80 07 dd f2 46 0d 0c 8a  |..FIRE......F...|
000016b0  0e e7 47 25 28 47 25 29  3d 38 e1 0d 0c 94 08 46  |..G%(G%)=8.....F|
000016c0  25 3d 31 0d 0c 9e 09 44  25 3d 57 25 0d 0c a8 0d  |%=1....D%=W%....|
000016d0  46 58 25 3d 58 25 2b 33  32 0d 0c b2 0d 46 59 25  |FX%=X%+32....FY%|
000016e0  3d 59 25 2b 33 32 0d 0c  bc 09 56 25 3d 47 25 0d  |=Y%+32....V%=G%.|
000016f0  0c c6 05 e1 0d 0c d0 05  20 0d 0c da 12 f4 86 43  |........ ......C|
00001700  41 52 52 59 20 4d 49 52  52 4f 52 0d 0c e4 07 dd  |ARRY MIRROR.....|
00001710  f2 43 0d 0c ee 0b c8 8e  20 43 25 20 ca 0d 0c f8  |.C...... C% ....|
00001720  38 20 c9 20 30 3a e7 47  25 28 47 25 29 3e 2d 31  |8 . 0:.G%(G%)>-1|
00001730  80 47 25 28 47 25 29 3c  38 3a 43 25 3d 31 3a 47  |.G%(G%)<8:C%=1:G|
00001740  25 28 47 25 29 3d 2d 31  3a d4 31 2c 2d 31 35 2c  |%(G%)=-1:.1,-15,|
00001750  32 30 30 2c 31 0d 0d 02  05 20 0d 0d 0c 2f 20 c9  |200,1.... .../ .|
00001760  20 32 3a e7 47 25 28 47  25 29 3d 2d 31 3a 43 25  | 2:.G%(G%)=-1:C%|
00001770  3d 33 3a 47 25 28 47 25  29 3d 57 25 3a d4 31 2c  |=3:G%(G%)=W%:.1,|
00001780  2d 31 35 2c 31 30 30 2c  31 0d 0d 16 31 e7 47 25  |-15,100,1...1.G%|
00001790  28 47 25 29 3d 38 3a 43  25 3d 33 3a 47 25 28 47  |(G%)=8:C%=3:G%(G|
000017a0  25 29 3d 57 25 3a 67 25  28 47 25 29 3d 38 3a d4  |%)=W%:g%(G%)=8:.|
000017b0  31 2c 2d 31 35 2c 34 30  2c 31 0d 0d 20 05 20 0d  |1,-15,40,1.. . .|
000017c0  0d 2a 05 cb 0d 0d 34 0d  d1 3d 30 3a f5 fd 91 3e  |.*....4..=0:...>|
000017d0  32 0d 0d 3e 05 e1 0d 0d  48 05 20 0d 0d 52 12 f4  |2..>....H. ..R..|
000017e0  83 4c 41 53 45 52 20 46  49 52 45 21 21 0d 0d 5c  |.LASER FIRE!!..\|
000017f0  07 dd f2 4c 0d 0d 66 27  e7 47 25 28 56 25 29 3d  |...L..f'.G%(V%)=|
00001800  2d 31 3a e7 47 25 28 56  25 2b 56 25 28 44 25 29  |-1:.G%(V%+V%(D%)|
00001810  29 3d 2d 32 3a 46 25 3d  32 3a e1 0d 0d 70 27 e7  |)=-2:F%=2:...p'.|
00001820  47 25 28 56 25 29 3d 2d  31 3a e7 47 25 28 56 25  |G%(V%)=-1:.G%(V%|
00001830  2b 56 25 28 44 25 29 29  3d 31 30 3a 46 25 3d 32  |+V%(D%))=10:F%=2|
00001840  3a e1 0d 0d 7a 26 e7 47  25 28 56 25 29 3d 38 3a  |:...z&.G%(V%)=8:|
00001850  e7 47 25 28 56 25 2b 56  25 28 44 25 29 29 3d 2d  |.G%(V%+V%(D%))=-|
00001860  32 3a 46 25 3d 32 3a e1  0d 0d 84 26 e7 47 25 28  |2:F%=2:....&.G%(|
00001870  56 25 29 3d 38 3a e7 47  25 28 56 25 2b 56 25 28  |V%)=8:.G%(V%+V%(|
00001880  44 25 29 29 3d 31 30 3a  46 25 3d 32 3a e1 0d 0d  |D%))=10:F%=2:...|
00001890  8e 0f c8 8e 20 47 25 28  56 25 29 20 ca 0d 0d 98  |.... G%(V%) ....|
000018a0  0e 20 c9 20 2d 31 2c 38  3a f2 5a 0d 0d a2 18 20  |. . -1,8:.Z.... |
000018b0  c9 30 2c 31 2c 32 2c 33  2c 34 2c 35 2c 36 2c 37  |.0,1,2,3,4,5,6,7|
000018c0  3a f2 44 0d 0d ac 0a 20  c9 39 3a f2 59 0d 0d b6  |:.D.... .9:.Y...|
000018d0  0d 20 c9 31 30 3a 46 25  3d 30 0d 0d c0 0d 20 c9  |. .10:F%=0.... .|
000018e0  31 31 3a 46 25 3d 30 0d  0d ca 05 20 0d 0d d4 05  |11:F%=0.... ....|
000018f0  cb 0d 0d de 05 e1 0d 0d  e8 05 20 0d 0d f2 1c f4  |.......... .....|
00001900  82 4c 41 53 45 52 20 48  49 54 53 20 57 41 4c 4c  |.LASER HITS WALL|
00001910  2f 42 4f 52 44 45 52 0d  0d fc 07 dd f2 57 0d 0e  |/BORDER......W..|
00001920  06 10 f4 20 81 88 45 58  50 4c 4f 44 45 21 0d 0e  |... ..EXPLODE!..|
00001930  10 08 46 25 3d 30 0d 0e  1a 05 e1 0d 0e 24 05 20  |..F%=0.......$. |
00001940  0d 0e 2e 1d f4 85 44 45  46 4c 45 43 54 20 4c 41  |......DEFLECT LA|
00001950  53 45 52 20 42 59 20 4d  49 52 52 4f 52 0d 0e 38  |SER BY MIRROR..8|
00001960  07 dd f2 44 0d 0e 42 33  e7 94 28 47 25 28 56 25  |...D..B3..(G%(V%|
00001970  29 2d 44 25 29 3c 33 84  94 28 47 25 28 56 25 29  |)-D%)<3..(G%(V%)|
00001980  2d 44 25 29 3e 35 d4 31  2c 2d 31 35 2c 30 2c 34  |-D%)>5.1,-15,0,4|
00001990  3a 46 25 3d 33 3a e1 0d  0e 4c 10 d4 31 2c 2d 31  |:F%=3:...L..1,-1|
000019a0  35 2c 31 35 30 2c 32 0d  0e 56 25 44 25 3d 28 44  |5,150,2..V%D%=(D|
000019b0  25 2b 32 2a 28 36 2d 28  28 44 25 2b 38 2d 47 25  |%+2*(6-((D%+8-G%|
000019c0  28 56 25 29 29 83 38 29  29 29 83 38 0d 0e 60 06  |(V%)).8))).8..`.|
000019d0  f2 5a 0d 0e 6a 05 e1 0d  0e 74 05 20 0d 0e 7e 18  |.Z..j....t. ..~.|
000019e0  f4 81 44 52 41 57 20 4c  41 53 45 52 20 46 49 52  |..DRAW LASER FIR|
000019f0  45 20 49 4e 0d 0e 88 07  dd f2 5a 0d 0e 92 1c e7  |E IN......Z.....|
00001a00  47 25 28 56 25 2b 56 25  28 44 25 29 29 3d 2d 32  |G%(V%+V%(D%))=-2|
00001a10  3a 46 25 3d 32 3a e1 0d  0e 9c 0f e6 33 3a ec 46  |:F%=2:......3:.F|
00001a20  58 25 2c 46 59 25 0d 0e  a6 1f ec 46 58 25 2c 46  |X%,FY%.....FX%,F|
00001a30  59 25 3a f0 31 2c 46 58  25 28 44 25 29 2c 46 59  |Y%:.1,FX%(D%),FY|
00001a40  25 28 44 25 29 0d 0e b0  1d 46 58 25 2b 3d 46 58  |%(D%)....FX%+=FX|
00001a50  25 28 44 25 29 3a 46 59  25 2b 3d 46 59 25 28 44  |%(D%):FY%+=FY%(D|
00001a60  25 29 0d 0e ba 0e 56 25  2b 3d 56 25 28 44 25 29  |%)....V%+=V%(D%)|
00001a70  0d 0e c4 05 e1 0d 0e ce  05 20 0d 0e d8 1e f4 83  |......... ......|
00001a80  48 49 54 20 57 52 4f 4e  47 20 53 49 44 45 20 4f  |HIT WRONG SIDE O|
00001a90  46 20 4d 49 52 52 4f 52  0d 0e e2 07 dd f2 48 0d  |F MIRROR......H.|
00001aa0  0e ec 21 e7 47 25 28 56  25 29 3e 2d 31 80 47 25  |..!.G%(V%)>-1.G%|
00001ab0  28 56 25 29 3c 38 3a 47  25 28 56 25 29 3d 2d 31  |(V%)<8:G%(V%)=-1|
00001ac0  0d 0e f6 15 e7 67 25 28  56 25 29 3d 38 47 25 28  |.....g%(V%)=8G%(|
00001ad0  56 25 29 3d 38 0d 0f 00  08 51 25 3d 32 0d 0f 0a  |V%)=8....Q%=2...|
00001ae0  05 e1 0d 0f 14 05 20 0d  0f 1e 1a f4 82 4c 41 53  |...... ......LAS|
00001af0  45 52 20 48 49 54 20 4f  4e 20 52 45 41 43 54 4f  |ER HIT ON REACTO|
00001b00  52 0d 0f 28 07 dd f2 59  0d 0f 32 08 46 25 3d 30  |R..(...Y..2.F%=0|
00001b10  0d 0f 3c 26 e3 49 3d 31  b8 34 3a d4 31 2c 2d 31  |..<&.I=1.4:.1,-1|
00001b20  35 2c 31 30 30 2b 28 49  2a 31 32 29 2c 31 3a c8  |5,100+(I*12),1:.|
00001b30  96 3a c8 96 3a ed 0d 0f  46 05 e1 0d 0f 50 12 dd  |.:..:...F....P..|
00001b40  f2 70 6c 61 63 65 72 65  61 63 74 6f 72 0d 0f 5a  |.placereactor..Z|
00001b50  2d e7 47 25 3c 33 39 c8  99 20 4f 24 2c 26 32 32  |-.G%<39.. O$,&22|
00001b60  32 2c 61 72 65 61 25 2c  53 25 28 31 2b 55 25 29  |2,area%,S%(1+U%)|
00001b70  2c 58 25 2c 59 25 2c 30  3a e1 0d 0f 64 30 e7 47  |,X%,Y%,0:...d0.G|
00001b80  25 83 32 30 3d 31 38 c8  99 20 4f 24 2c 26 32 32  |%.20=18.. O$,&22|
00001b90  32 2c 61 72 65 61 25 2c  53 25 28 31 2b 55 25 29  |2,area%,S%(1+U%)|
00001ba0  2c 58 25 2c 59 25 2c 30  3a e1 0d 0f 69 2d e7 47  |,X%,Y%,0:...i-.G|
00001bb0  25 3d 34 31 c8 99 20 4f  24 2c 26 32 32 32 2c 61  |%=41.. O$,&222,a|
00001bc0  72 65 61 25 2c 53 25 28  31 2b 55 25 29 2c 58 25  |rea%,S%(1+U%),X%|
00001bd0  2c 59 25 2c 30 3a e1 0d  0f 6e 05 20 0d 0f 78 10  |,Y%,0:...n. ..x.|
00001be0  47 25 28 77 61 73 41 25  29 3d 2d 31 0d 0f 82 10  |G%(wasA%)=-1....|
00001bf0  47 25 28 77 61 73 42 25  29 3d 2d 31 0d 0f 8c 10  |G%(wasB%)=-1....|
00001c00  47 25 28 77 61 73 43 25  29 3d 2d 31 0d 0f 96 10  |G%(wasC%)=-1....|
00001c10  47 25 28 77 61 73 44 25  29 3d 2d 31 0d 0f a0 17  |G%(wasD%)=-1....|
00001c20  e3 75 3d 32 b8 31 88 2d  31 3a c8 99 36 2c 31 31  |.u=2.1.-1:..6,11|
00001c30  32 2c 75 0d 0f aa 2e c8  99 20 4f 24 2c 26 32 32  |2,u...... O$,&22|
00001c40  32 2c 61 72 65 61 25 2c  53 25 28 31 2b 77 61 73  |2,area%,S%(1+was|
00001c50  55 25 29 2c 77 61 73 58  25 2c 77 61 73 59 25 2c  |U%),wasX%,wasY%,|
00001c60  30 0d 0f b4 37 c8 99 20  4f 24 2c 26 32 32 32 2c  |0...7.. O$,&222,|
00001c70  61 72 65 61 25 2c 53 25  28 31 2b 28 77 61 73 55  |area%,S%(1+(wasU|
00001c80  25 2b 31 29 83 32 29 2c  77 61 73 58 25 2c 77 61  |%+1).2),wasX%,wa|
00001c90  73 59 25 2b 36 34 2c 30  0d 0f be 34 c8 99 20 4f  |sY%+64,0...4.. O|
00001ca0  24 2c 26 32 32 32 2c 61  72 65 61 25 2c 53 25 28  |$,&222,area%,S%(|
00001cb0  31 2b 77 61 73 55 25 29  2c 77 61 73 58 25 2b 36  |1+wasU%),wasX%+6|
00001cc0  34 2c 77 61 73 59 25 2b  36 34 2c 30 0d 0f c8 37  |4,wasY%+64,0...7|
00001cd0  c8 99 20 4f 24 2c 26 32  32 32 2c 61 72 65 61 25  |.. O$,&222,area%|
00001ce0  2c 53 25 28 31 2b 28 77  61 73 55 25 2b 31 29 83  |,S%(1+(wasU%+1).|
00001cf0  32 29 2c 77 61 73 58 25  2b 36 34 2c 77 61 73 59  |2),wasX%+64,wasY|
00001d00  25 2c 30 0d 0f d2 45 c8  99 20 4f 24 2c 26 32 32  |%,0...E.. O$,&22|
00001d10  32 2c 61 72 65 61 25 2c  52 25 28 31 29 2c 58 25  |2,area%,R%(1),X%|
00001d20  2c 59 25 2c 30 3a 47 25  28 47 25 2b 31 29 3d 39  |,Y%,0:G%(G%+1)=9|
00001d30  3a 47 25 28 47 25 2d 32  30 29 3d 39 3a 47 25 28  |:G%(G%-20)=9:G%(|
00001d40  47 25 2d 31 39 29 3d 39  0d 0f dc 05 ed 0d 0f e6  |G%-19)=9........|
00001d50  1e 77 61 73 58 25 3d 58  25 3a 77 61 73 59 25 3d  |.wasX%=X%:wasY%=|
00001d60  59 25 3a 77 61 73 55 25  3d 55 25 0d 0f f0 0c 77  |Y%:wasU%=U%....w|
00001d70  61 73 41 25 3d 47 25 0d  0f fa 0e 77 61 73 42 25  |asA%=G%....wasB%|
00001d80  3d 47 25 2b 31 0d 10 04  0f 77 61 73 43 25 3d 47  |=G%+1....wasC%=G|
00001d90  25 2d 32 30 0d 10 0e 0f  77 61 73 44 25 3d 47 25  |%-20....wasD%=G%|
00001da0  2d 31 39 0d 10 18 0a c8  99 36 2c 31 35 0d 10 22  |-19......6,15.."|
00001db0  05 e1 0d 10 2c 0a dd f2  77 61 73 55 0d 10 36 1e  |....,...wasU..6.|
00001dc0  e7 4a 25 83 32 3d 31 20  80 20 4a 25 81 32 30 83  |.J%.2=1 . J%.20.|
00001dd0  32 3d 31 77 61 73 55 25  3d 31 0d 10 40 1e e7 4a  |2=1wasU%=1..@..J|
00001de0  25 83 32 3d 30 20 80 20  4a 25 81 32 30 83 32 3d  |%.2=0 . J%.20.2=|
00001df0  31 77 61 73 55 25 3d 30  0d 10 4a 1e e7 4a 25 83  |1wasU%=0..J..J%.|
00001e00  32 3d 31 20 80 20 4a 25  81 32 30 83 32 3d 30 77  |2=1 . J%.20.2=0w|
00001e10  61 73 55 25 3d 30 0d 10  54 1e e7 4a 25 83 32 3d  |asU%=0..T..J%.2=|
00001e20  30 20 80 20 4a 25 81 32  30 83 32 3d 30 77 61 73  |0 . J%.20.2=0was|
00001e30  55 25 3d 31 0d 10 5e 05  e1 0d 10 68 05 20 0d 10  |U%=1..^....h. ..|
00001e40  72 1c f4 84 50 52 49 4e  54 20 4f 55 54 20 44 41  |r...PRINT OUT DA|
00001e50  54 41 20 4e 55 4d 42 45  52 53 0d 10 7c 0a dd f2  |TA NUMBERS..|...|
00001e60  64 61 74 61 0d 10 86 0a  c8 99 36 2c 31 35 0d 10  |data......6,15..|
00001e70  90 0e c8 99 36 2c 31 31  33 2c 5a 25 0d 10 9a 1d  |....6,113,Z%....|
00001e80  f1 8a 38 2c 30 29 22 53  41 56 45 20 44 41 54 41  |..8,0)"SAVE DATA|
00001e90  3f 20 22 3a 79 6e 24 3d  be 0d 10 a4 18 e7 79 6e  |? ":yn$=......yn|
00001ea0  24 3c 3e 22 59 22 f1 8a  38 2c 30 29 89 33 30 3a  |$<>"Y"..8,0).30:|
00001eb0  e1 0d 10 ae 28 f1 8a 38  2c 30 29 89 33 30 3a e8  |....(..8,0).30:.|
00001ec0  8a 38 2c 30 29 22 57 48  41 54 20 4e 75 6d 62 65  |.8,0)"WHAT Numbe|
00001ed0  72 3f 20 22 6e 61 6d 65  24 0d 10 b8 23 e3 75 3d  |r? "name$...#.u=|
00001ee0  32 b8 31 88 2d 31 3a c8  99 36 2c 31 31 32 2c 75  |2.1.-1:..6,112,u|
00001ef0  3a f1 8a 38 2c 30 29 89  33 30 3a ed 0d 10 c2 16  |:..8,0).30:.....|
00001f00  6e 61 6d 65 24 3d 22 44  41 54 41 22 2b 6e 61 6d  |name$="DATA"+nam|
00001f10  65 24 0d 10 cc 13 66 69  6c 65 31 25 3d ae 28 6e  |e$....file1%=.(n|
00001f20  61 6d 65 24 29 0d 10 d6  0e e3 4a 25 3d 32 31 b8  |ame$).....J%=21.|
00001f30  32 39 38 0d 10 e0 13 f1  23 66 69 6c 65 31 25 2c  |298.....#file1%,|
00001f40  47 25 28 4a 25 29 0d 10  ea 05 ed 0d 10 f4 0c d9  |G%(J%)..........|
00001f50  23 66 69 6c 65 31 25 0d  10 fe 10 c8 99 36 2c 31  |#file1%......6,1|
00001f60  31 33 2c 33 2d 5a 25 0d  11 08 05 e1 0d 11 12 05  |13,3-Z%.........|
00001f70  20 0d 11 1c 0b dd f2 65  72 72 6f 72 0d 11 26 17  | ......error..&.|
00001f80  c8 99 36 2c 31 31 32 2c  31 3a c8 99 36 2c 31 31  |..6,112,1:..6,11|
00001f90  33 2c 31 0d 11 30 3d e7  20 9f 3d 32 32 32 20 f1  |3,1..0=. .=222 .|
00001fa0  8a 30 2c 30 29 22 46 69  6c 65 20 6e 6f 74 20 66  |.0,0)"File not f|
00001fb0  6f 75 6e 64 3a 52 75 6e  20 70 72 6f 67 72 61 6d  |ound:Run program|
00001fc0  20 61 67 61 69 6e 22 3a  d9 23 66 69 6c 65 31 25  | again":.#file1%|
00001fd0  0d 11 3a 05 e1 0d 11 44  05 e0 0d 11 4e 05 e1 0d  |..:....D....N...|
00001fe0  ff                                                |.|
00001fe1