Home » Personal collection » Acorn hard disk » misc » dcfprogs » Bounce/B11

Bounce/B11

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 hard disk » misc » dcfprogs
Filename: Bounce/B11
Read OK:
File size: 24A2 bytes
Load address: 0000
Exec address: 0000
Duplicates

There are 2 duplicate copies of this file in the archive:

File contents
   10REM Bounce
   20REM by Dominic Ford 1996
   30:
   40IF NOT ((?&78=45) AND (PAGE=&1D00)) THEN MODE 6
   50PROCinit
   60A$="DEL.1320,9999"+CHR$13+"GOTO90"+CHR$6+CHR$13:VDU21:FOR char=1 TO LEN(A$):OSCLI"FX138,0,"+STR$(ASC(MID$(A$,char,1))):NEXT
   70END
   80:
   90VDU 6,23,128,255,66,36,24,24,36,66,255,23,129,0,0,0,0,0,0,0,0,23,130,60,126,255,253,250,245,42,20,23,131,255,129,129,129,129,129,129,255,23,132,24,90,60,255,255,60,90,24
  100sound=TRUE:DIMcl%(3):cl%(0)=2:cl%(1)=5:cl%(2)=6
  110MODE1:VDU23,1,0;0;0;0;
  120REPEAT
  130PROCtitle
  140VDU 19,1,1,0,0,0,0,19,2,4,0,0,0,0
  150IFk$="K"ORk$="k"THENPROCkeys
  160IFk$=" "THENPROCgame
  170UNTILk$="Q"ORk$="q"
  180MODE6:END
  190:
  200DEFPROCgame
  210lev%=0:scr%=0:live%=3:?&BF8=25
  220REPEAT
  230PROClevel
  240IF live%=-1 THEN lev%=20
  250UNTIL lev%=20
  260IF live%=-1 THEN PROCgameover:ENDPROC
  270PROCcongrat
  280ENDPROC
  290:
  300DEFPROClevel
  310CLS
  320COLOUR 3:PRINTTAB(9,16)"Get Ready for Level ";lev%+1;"!"
  330FORc=0 TO 5
  340FORcol=0 TO 7:IF sound=TRUE THEN SOUND 1,-15,c*4+col*8+100,1
  350VDU 19,3,col,0,0,0
  360nt%=TIME+4
  370REPEAT UNTIL TIME>nt%
  380NEXT,:CLS
  390REPEAT
  400VDU 19,3,2,0,0,0
  410tim%=400:lev%=lev%+1:?&BF0=1:?&BF1=1
  420GCOL0,1:MOVE0,0:MOVE3000,0:PLOT85,0,3000:GCOL0,0:MOVE32,32:MOVE32,96:PLOT85,224,32:PLOT85,224,96:MOVE256,32:MOVE256,96:PLOT85,480,32:PLOT85,480,96:MOVE512,32:MOVE512,96:PLOT85,768,32:PLOT85,768,96
  430MOVE800,32:MOVE800,96:PLOT85,992,32:PLOT85,992,96:MOVE1024,32:MOVE1024,96:PLOT85,1248,32:PLOT85,1248,96:MOVE32,224:MOVE1248,224:PLOT85,32,992:PLOT85,1248,992
  440COLOUR3:PRINTTAB(1,1)CHR$131
  450?&73=(&14C0+&40*lev%)MOD256
  460?&74=(&14C0+&40*lev%)DIV256
  470COLOUR1:CALL&1A00
  480COLOUR3:PRINTTAB(1,29)"Score";TAB(8,29)"Lives";TAB(16,29)"Screen";TAB(25,29)"Time";TAB(32,29)"Money"
  490REPEAT
  500COLOUR3
  510PRINTTAB(2,30);scr%;TAB(11,30)live%;TAB(19,30)lev%;
  520PRINTTAB(27,30);tim%;" ";TAB(34,30);?&BF8;"0 "
  530REPEAT UNTIL TIME>nt%
  540nt%=TIME+8:CALL&AE9
  550IF?&BF9=0THENREPEAT UNTIL TIME>nt%:nt%=TIME+8:CALL&AE9:tim%=tim%-1
  560UNTIL tim%=-1 OR ?&BEF=1 OR ?&BF9=1
  570IF tim%<>-1 AND ?&BF9=0 THEN UNTIL TRUE:PROClevelfin:ENDPROC
  580live%=live%-1
  590IF live%=-1 THEN UNTIL TRUE:ENDPROC
  600CLS:COLOUR3:PRINTTAB(15,16);
  610IF?&BF9=0THENPRINT"Time Out!"ELSEPRINT"Lost Ball!"
  620FORc=0 TO 5:IF sound=TRUE THEN SOUND 1,-15,0,7
  630FORcol=0 TO 7
  640VDU 19,3,col,0,0,0
  650nt%=TIME+4
  660REPEAT UNTIL TIME>nt%
  670NEXT,:CLS:lev%=lev%-1
  680UNTIL FALSE
  690ENDPROC
  700:
  710DEFPROClevelfin
  720CLS:COLOUR 3
  730PRINTTAB(4,16);"Congratulations: Level Complete"
  740FORc=0 TO 5:IF sound=TRUE THEN SOUND 1,-15,4+c*48,10
  750FORcol=0 TO 7
  760VDU 19,3,col,0,0,0
  770nt%=TIME+4
  780REPEAT UNTIL TIME>nt%
  790NEXT,:CLS:?&BF8=(?&BF8)+10
  800ENDPROC
  810:
  820DEFPROCgameover
  830CLS:COLOUR 3
  840PRINTTAB(9,16)"That's it: Game Over!"
  850FORc=0 TO 5
  860FORcol=0 TO 7:IF sound=TRUE THEN SOUND 1,-15,150-(c*4+col*8),1
  870VDU 19,3,col,0,0,0
  880nt%=TIME+4
  890REPEAT UNTIL TIME>nt%
  900NEXT,:CLS
  910ENDPROC
  920:
  930DEFPROCcongrat
  940CLS:COLOUR 3
  950FORx=0 TO 5
  960PRINTTAB(4,16);"Congratulations: Game Complete!"
  970FORc=0 TO 5:IF sound=TRUE THEN SOUND 1,-15,4+c*48,10
  980FORcol=0 TO 7
  990VDU 19,3,col,0,0,0
 1000nt%=TIME+4
 1010REPEAT UNTIL TIME>nt%
 1020NEXT,,:CLS
 1030ENDPROC
 1040:
 1050DEFPROCtitle
 1060col=0:CLS
 1070CALL&A00:COLOUR2
 1080PRINTTAB(17,5)"BOUNCE";TAB(10,8)"by Dominic Ford 1996";TAB(12,14)"SPACE - Start";TAB(16,16)"Q - Quit";TAB(16,18)"S - Sound On/Off";TAB(16,20)"K - Change Keys";TAB(15,25);"Sound: ";:IFsound THEN PRINT"On "ELSEPRINT"Off"
 1090VDU 23,1,0;0;0;0;:*FX15,1
 1100REPEAT
 1110nt%=TIME+10:col=((col+1) MOD 3)
 1120VDU 19,1,cl%(col),0,0,0,0
 1130VDU 19,2,cl%((col+1) MOD 3),0,0,0,0
 1140VDU 19,3,cl%((col+2) MOD 3),0,0,0,0
 1150REPEAT UNTIL TIME>nt%
 1160k$=INKEY$(0)
 1170IFk$="S"ORk$="s"THENPROCsound
 1180UNTIL INSTR(" QqKk",k$)<>0 AND LEN(k$)<>0
 1190ENDPROC
 1200:
 1210DEFPROCsound
 1220IFsound THEN sound=FALSE ELSE sound=TRUE
 1230PRINTTAB(22,25);:IFsound THEN PRINT"On "ELSEPRINT"Off"
 1240ENDPROC
 1250:
 1260DEFPROCkeys
 1270VDU23,1,1,0;0;0;0;
 1280CLS:PRINT"Please select new keys:"''"Left:"'"Right:"'"Up:"'"Down:"'"Wall:"'"Clear:"
 1290FORk=0TO5:PRINTTAB(8,2+k);:k$=GET$:PRINTk$:?(&BFA+k)=ASC(k$):NEXT
 1300VDU23,1,0;0;0;0;:k$=""
 1310ENDPROC
 1320:
 1330REM Level Data
 1340DATA 18,2,2,3,3,4,3,5,3,6,3,7,3,8,3,8,8,9,9,10,9,11,9,12,9,13,9
 1350DATA 14,9,15,9,16,9,17,8,18,9,19,8,8,1,19,1,1,17,10,255
 1360:
 1370DATA 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0
 1380DATA 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,-999
 1390:
 1400DEFPROCinit
 1410IF NOT ((?&78=45) AND (PAGE=&1D00)) THEN PRINT'"Please Wait. . ."':*TAPE
 1420IF PAGE<>&1D00 THEN PROCreloc
 1430VDU 6,11,23,1,0;0;0;0;
 1440PRINT"Calculating sphere. . ."
 1450P%=&D00:p=0
 1460FORx=-78.75 TO 90 STEP 11.25
 1470FORy=22.5 TO 180 STEP 22.5:p=p+.78125
 1480[OPT 2
 1490EQUW INT(480*SIN(PI*(x-11.25)/180)*SIN(PI*y/180)+640)
 1500EQUW INT(60+(COS(PI*y/180)+1)*450)
 1510EQUW INT(480*SIN(PI*x/180)*SIN(PI*y/180)+640)
 1520EQUW INT(60+(COS(PI*y/180)+1)*450)
 1530]
 1540PRINTTAB(24,4)INT(p);"%"
 1550NEXT,
 1560VDU23,1,1;0;0;0;0;
 1570PRINT"Moving level data. . .":ad=&1500
 1580REPEAT
 1590READ d
 1600IF d<>-999 THEN ?ad=d:ad=ad+1
 1610IF d=255 THEN ad=(ad+&40) AND &FFC0
 1620IF d<>-999 THEN UNTIL FALSE
 1630UNTIL TRUE
 1640PRINT"Assembling code. . .":PROCassemble
 1650PRINT"Removing source code. . ."
 1660ENDPROC
 1670:
 1680DEFPROCassemble
 1690oswrch=&FFEE
 1700osbyte=&FFF4
 1710FOR pass=0 TO 2 STEP 2
 1720P%=&A00
 1730[OPT pass
 1740.sphere LDY#0:STYcol:LDA#&C:STA&71:LDA#&F8:STA&70:LDX#0
 1750.point LDAcol:CLC:ADC#1:AND#3:STAcol:LDA#18:JSRoswrch:LDA#0:JSRoswrch:LDYcol:TXA:LSR A:LSR A:LSR A:CLC:ADCseq,Y
 1760.colsub CMP #3:BCCcolgot:SEC:SBC#3:JMPcolsub
 1770.colgot CLC:ADC#1:JSRoswrch:LDY #0:TXA:AND#7:BEQnewxval
 1780LDA#25:JSRoswrch:LDA#4:JSRsendco:LDA#25:JSRoswrch:LDA#4:JSRsendco:LDA#25:JSRoswrch:LDA#85:JSRsendco:LDA#25:JSRoswrch:LDA#85:JSRsendco
 1790INX:LDA&70:CLC:ADC#8:STA&70:LDA&71:ADC#0:STA&71:CPX#128:BNEpoint:RTS
 1800.newxval LDA#25:JSRoswrch:LDA#4:JSRoswrch:LDA#128:JSRoswrch:LDA#2:JSRoswrch:LDA#192:JSRoswrch:LDA#3:JSRoswrch:LDY#8
 1810LDA#25:JSRoswrch:LDA#4:JSRsendco:LDA#25:JSRoswrch:LDA#85:JSRsendco
 1820INX:LDA&70:CLC:ADC#8:STA&70:LDA&71:ADC#0:STA&71:JMPpoint
 1830.sendco JSRoswrch:LDA(&70),Y:JSRoswrch:INY:LDA(&70),Y:JSRoswrch:INY:LDA(&70),Y:JSRoswrch:INY:LDA(&70),Y:INY:JMPoswrch
 1840.col EQUB 0
 1850.seq EQUB 1:EQUB 3:EQUB 2:EQUB 3
 1860]:P%=&AE9
 1870[OPTpass
 1880LDX#0
 1890.ballop LDAxball,X:CMPcx:BNEballon:LDAyball,X:CMPcy:BEQballoff
 1900.ballon LDA#17:JSRoswrch:LDA#2:JSRoswrch:LDA#31:JSRoswrch:LDAxball,X:JSRoswrch:LDAyball,X:JSRoswrch:LDA#129:JSRoswrch
 1910.balloff LDAyball,X:CMP#24:BEQdie:LDA#&28:STA&70:LDA#&11:STA&71:LDAxball,X:LDYyball,X:JSRgetad:AND#1:BNEnodown:INCyball,X:JMPdoneball
 1920.nodown LDAxball,X:CMP#1:BEQdie:LDAdir,X:CMP#0:BNEnoleft:LDA#&FF:STA&70:LDA#&10:STA&71:LDAxball,X:LDYyball,X:JSRgetad:AND#1:BNEnoleft:DECxball,X:JMPdoneball
 1930.die LDA#1:STAdead:RTS
 1940.noleft LDAxball,X:CMP#38:BEQdie:LDAdir,X:CMP#1:BNEnoright:LDA#1:STA&70:LDA#&11:STA&71:LDAxball,X:LDYyball,X:JSRgetad:AND#1:BNEnoright:INCxball,X:JMPdoneball
 1950.noright LDAdir,X:EOR#1:STAdir,X
 1960.doneball LDAxball,X:CMPcx:BNEballd:LDAyball,X:CMPcy:BEQnextball
 1970.balld LDA#31:JSRoswrch:LDAxball,X:JSRoswrch:LDAyball,X:JSRoswrch:LDA#130:JSRoswrch
 1980.nextball LDA#0:STA&70:LDA#&11:STA&71:LDAxball,X:LDYyball,X:JSRgetad:CMP#2:BNEnextballb:LDA#1:STAdead
 1990.nextballb JSRballcheck:INX:CPX#2:BNE ballopt:JMPcursor:.ballopt JMPballop
 2000]:P%=&1A00
 2010[OPT pass
 2020JMPsetup
 2030.getad CLC:ADC&70:STA&70:LDA&71:ADC#0:STA&71:TYA:ASL A:ASL A:ASL A:STA&72:LDY#0
 2040.getlop LDA&70:CLC:ADC&72:STA&70:LDA&71:ADC#0:STA&71:INY:CPY#5:BNEgetlop:LDY#0:LDA(&70),Y:RTS
 2050.cursor LDA#31:JSRoswrch:LDAcx:JSRoswrch:LDAcy:JSRoswrch:LDA#0:STA&70:LDA#&11:STA&71:LDAcx:LDYcy:JSRgetad:CMP#1:BEQblock:CMP#2:BEQspike:LDA#129:JSRoswrch:JMPcurdel
 2060.block LDA#17:JSRoswrch:LDA#1:JSRoswrch:LDA#128:JSRoswrch:JMPcurdel
 2070.spike LDA#17:JSRoswrch:LDA#1:JSRoswrch:LDA#132:JSRoswrch
 2080.curdel LDA#&81:LDX#0:LDY#0:JSRosbyte:BCCkeypro:.nomovet JMP nomove
 2090.keypro CPXkl:BNEnotkl:LDAcx:CMP#1:BEQ nomovet:DECcx:JMPnomovet
 2100.notkl CPXkr:BNEnotkr:LDAcx:CMP#38:BEQ nomove:INCcx:JMPnomovet
 2110.notkr CPXku:BNEnotku:LDAcy:CMP#1:BEQ nomove:DECcy:JMPnomovet
 2120.notku CPXkd:BNEnotkd:LDAcy:CMP#24:BEQ nomove:INCcy:JMPnomove
 2130.notkd CPXks:BNEnotks:LDAmon:CMP#5:BCC nomove:LDAcx:LDYcy:JSRgetclr:LDA(&70),Y:BNEnomove:LDA#1:STA(&70),Y:LDAmon:SEC:SBC#5:STAmon:JMPnomove
 2140.notks CPXkc:BNEnomove:LDAcx:LDYcy:JSRgetclr:CMP#1:BNEnomove:LDA#0:STA(&70),Y:INCmon
 2150.nomove LDA#31:JSRoswrch:LDAcx:JSRoswrch:LDAcy:JSRoswrch:LDA#17:JSRoswrch:LDA#3:JSRoswrch:LDA#131:JSRoswrch:LDA#&15:LDX#0:JMPosbyte
 2160.ballcheck LDAxball:CMPxball+1:BNEnohit:LDAyball:CMPyball+1:BNEnohit:LDA#1:STAhit
 2170.nohit RTS
 2180.setup LDY#0:STY&70:LDA#&11:STA&71:LDA#0
 2190.setlop STA(&70),Y:INY:BNEsetlop:INC&71:LDX&71:CPX#&15:BNEsetlop:STA&BF9:STA&BEF:LDA(&73),Y:TAX:INX:INY
 2200.polop LDA#31:JSRoswrch:LDA(&73),Y:PHA:JSRoswrch:INY:LDA(&73),Y:PHA:JSRoswrch:INY:STY&75:LDA#128:JSRoswrch:PLA:TAY:PLA:JSRgetclr:LDA#1:STA(&70),Y:LDY&75:DEX:BNE polop
 2210LDA#0:STA&BF2:STA&BF3:LDA(&73),Y:STA&BF4:INY:LDA(&73),Y:STA&BF6:INY:LDA(&73),Y:STA&BF5:INY:LDA(&73),Y:STA&BF7:INY:LDA(&73),Y:TAX:INY:CPX#0:BEQnospike
 2220.spklop LDA#31:JSRoswrch:LDA(&73),Y:PHA:JSRoswrch:INY:LDA(&73),Y:PHA:JSRoswrch:INY:STY&75:LDA#132:JSRoswrch:PLA:TAY:PLA:JSRgetclr:LDA#2:STA(&70),Y:LDY&75:DEX:BNE spklop
 2230.nospike RTS
 2240.getclr PHA:LDA#0:STA&70:LDA#&11:STA&71:PLA:JMPgetad
 2250]:PRINT~P%:P%=&BEF
 2260[OPT pass
 2270.hit EQUB 0
 2280.cx EQUB 0
 2290.cy EQUB 0
 2300.dir EQUW 0
 2310.xball EQUW 0
 2320.yball EQUW 0
 2330.mon EQUB 0
 2340.dead EQUB 0
 2350.kl EQUS "Z"
 2360.kr EQUS "X"
 2370.ku EQUS "K"
 2380.kd EQUS "M"
 2390.ks EQUS "L"
 2400.kc EQUS " "
 2410]
 2420NEXT
 2430ENDPROC
 2440:
 2450DEFPROCreloc
 2460PRINT"Relocating. . ."
 2470?&78=45
 2480HIMEM=&5800:newpage=&1D
 2490FOR pass=0 TO 2 STEP 2
 2500P%=&C00
 2510[OPTpass
 2520    LDY#0
 2530    STY&70
 2540    STY&72
 2550    LDA#newpage
 2560    SEC
 2570    SBC&18
 2580    STA&74
 2590    LDA&18
 2600    CMP#newpage
 2610    BCCad
 2620.sb STA&71
 2630    LDA#newpage
 2640    STA&73
 2650.m1 LDA(&70),Y
 2660    STA(&72),Y
 2670    INY
 2680    BNEm1
 2690    INC&71
 2700    INC&73
 2710    LDX&71
 2720    DEX
 2730    CPX&03
 2740    BCCm1
 2750    BCSem
 2760.ad LDA&03
 2770    STA&71
 2780    CLC
 2790    ADC&74
 2800    STA&73
 2810    LDA#0
 2820    LDY&02
 2830.m2 LDA(&70),Y
 2840    STA(&72),Y
 2850    DEY
 2860    CPY#&FF
 2870    BNEm2
 2880    DEC&71
 2890    DEC&73
 2900    LDA&73
 2910    CMP#(newpage-1)
 2920    BCSm2
 2930.em LDA&13
 2940    CLC
 2950    ADC&74
 2960    STA&13
 2970    STA&01
 2980    LDA#newpage
 2990    STA&18
 3000    RTS
 3010]
 3020NEXT
 3030VDU 21
 3040OSCLI"KEY 0""CALL&C00|MRUN|F|M""":OSCLI"FX 153,0,128"
 3050END
 3060ENDPROC

� Bounce
� by Dominic Ford 1996
:
(%� � ((?&78=45) � (�=&1D00)) � � 6
2	�init
<_A$="DEL.1320,9999"+�13+"GOTO90"+�6+�13:�21:� char=1 � �(A$):�"FX138,0,"+�(�(�A$,char,1))):�
F�
P:
Z�� 6,23,128,255,66,36,24,24,36,66,255,23,129,0,0,0,0,0,0,0,0,23,130,60,126,255,253,250,245,42,20,23,131,255,129,129,129,129,129,129,255,23,132,24,90,60,255,255,60,90,24
d.sound=�:�cl%(3):cl%(0)=2:cl%(1)=5:cl%(2)=6
n�1:�23,1,0;0;0;0;
x�
�
�title
�#� 19,1,1,0,0,0,0,19,2,4,0,0,0,0
��k$="K"�k$="k"��keys
��k$=" "��game
��k$="Q"�k$="q"
��6:�
�:
�
��game
�"lev%=0:scr%=0:live%=3:?&BF8=25
��
�
�level
�� live%=-1 � lev%=20
�
� lev%=20
� live%=-1 � �gameover:�
�congrat
�
":
,��level
6�
@0� 3:�9,16)"Get Ready for Level ";lev%+1;"!"
J�c=0 � 5
T2�col=0 � 7:� sound=� � � 1,-15,c*4+col*8+100,1
^� 19,3,col,0,0,0
hnt%=�+4
r
� � �>nt%
|�,:�
��
�� 19,3,2,0,0,0
�(tim%=400:lev%=lev%+1:?&BF0=1:?&BF1=1
���0,1:�0,0:�3000,0:�85,0,3000:�0,0:�32,32:�32,96:�85,224,32:�85,224,96:�256,32:�256,96:�85,480,32:�85,480,96:�512,32:�512,96:�85,768,32:�85,768,96
�}�800,32:�800,96:�85,992,32:�85,992,96:�1024,32:�1024,96:�85,1248,32:�85,1248,96:�32,224:�1248,224:�85,32,992:�85,1248,992
��3:�1,1)�131
�?&73=(&14C0+&40*lev%)�256
�?&74=(&14C0+&40*lev%)�256
�
�1:�&1A00
�P�3:�1,29)"Score";�8,29)"Lives";�16,29)"Screen";�25,29)"Time";�32,29)"Money"
��
��3
�*�2,30);scr%;�11,30)live%;�19,30)lev%;
(�27,30);tim%;" ";�34,30);?&BF8;"0 "

� � �>nt%
nt%=�+8:�&AE9
&0�?&BF9=0�� � �>nt%:nt%=�+8:�&AE9:tim%=tim%-1
0!� tim%=-1 � ?&BEF=1 � ?&BF9=1
:*� tim%<>-1 � ?&BF9=0 � � �:�levelfin:�
Dlive%=live%-1
N� live%=-1 � � �:�
X�:�3:�15,16);
b'�?&BF9=0��"Time Out!"��"Lost Ball!"
l$�c=0 � 5:� sound=� � � 1,-15,0,7
v�col=0 � 7
�� 19,3,col,0,0,0
�nt%=�+4
�
� � �>nt%
��,:�:lev%=lev%-1
�� �
��
�:
���levelfin
�	�:� 3
�-�4,16);"Congratulations: Level Complete"
�*�c=0 � 5:� sound=� � � 1,-15,4+c*48,10
��col=0 � 7
�� 19,3,col,0,0,0
nt%=�+4

� � �>nt%
�,:�:?&BF8=(?&BF8)+10
 �
*:
4��gameover
>	�:� 3
H"�9,16)"That's it: Game Over!"
R�c=0 � 5
\4�col=0 � 7:� sound=� � � 1,-15,150-(c*4+col*8),1
f� 19,3,col,0,0,0
pnt%=�+4
z
� � �>nt%
��,:�
��
�:
�
��congrat
�	�:� 3
��x=0 � 5
�-�4,16);"Congratulations: Game Complete!"
�*�c=0 � 5:� sound=� � � 1,-15,4+c*48,10
��col=0 � 7
�� 19,3,col,0,0,0
�nt%=�+4
�
� � �>nt%
�	�,,:�
�
:
��title
$col=0:�
.�&A00:�2
8��17,5)"BOUNCE";�10,8)"by Dominic Ford 1996";�12,14)"SPACE - Start";�16,16)"Q - Quit";�16,18)"S - Sound On/Off";�16,20)"K - Change Keys";�15,25);"Sound: ";:�sound � �"On "��"Off"
B� 23,1,0;0;0;0;:*FX15,1
L�
Vnt%=�+10:col=((col+1) � 3)
`� 19,1,cl%(col),0,0,0,0
j#� 19,2,cl%((col+1) � 3),0,0,0,0
t#� 19,3,cl%((col+2) � 3),0,0,0,0
~
� � �>nt%
�k$=�(0)
��k$="S"�k$="s"��sound
� � �" QqKk",k$)<>0 � �(k$)<>0
��
�:
���sound
��sound � sound=� � sound=�
�$�22,25);:�sound � �"On "��"Off"
��
�:
�
��keys
��23,1,1,0;0;0;0;
Q�:�"Please select new keys:"''"Left:"'"Right:"'"Up:"'"Down:"'"Wall:"'"Clear:"

/�k=0�5:�8,2+k);:k$=�:�k$:?(&BFA+k)=�(k$):�
�23,1,0;0;0;0;:k$=""
�
(:
2� Level Data
<@� 18,2,2,3,3,4,3,5,3,6,3,7,3,8,3,8,8,9,9,10,9,11,9,12,9,13,9
F8� 14,9,15,9,16,9,17,8,18,9,19,8,8,1,19,1,1,17,10,255
P:
ZC� 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0
d:� 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,-999
n:
x
��init
�=� � ((?&78=45) � (�=&1D00)) � �'"Please Wait. . ."':*TAPE
�� �<>&1D00 � �reloc
�� 6,11,23,1,0;0;0;0;
��"Calculating sphere. . ."
�P%=&D00:p=0
��x=-78.75 � 90 � 11.25
�#�y=22.5 � 180 � 22.5:p=p+.78125
�
[OPT 2
�1EQUW �(480*�(�*(x-11.25)/180)*�(�*y/180)+640)
�!EQUW �(60+(�(�*y/180)+1)*450)
�)EQUW �(480*�(�*x/180)*�(�*y/180)+640)
�!EQUW �(60+(�(�*y/180)+1)*450)
�]
�24,4)�(p);"%"
�,
�23,1,1;0;0;0;0;
"&�"Moving level data. . .":ad=&1500
,�
6� d
@� d<>-999 � ?ad=d:ad=ad+1
J!� d=255 � ad=(ad+&40) � &FFC0
T� d<>-999 � � �
^� �
h%�"Assembling code. . .":�assemble
r �"Removing source code. . ."
|�
�:
���assemble
�oswrch=&FFEE
�osbyte=&FFF4
�� pass=0 � 2 � 2
�P%=&A00
�
[OPT pass
�;.sphere LDY#0:STYcol:LDA#&C:STA&71:LDA#&F8:STA&70:LDX#0
�q.point LDAcol:CLC:ADC#1:�#3:STAcol:LDA#18:JSRoswrch:LDA#0:JSRoswrch:LDYcol:TXA:LSR A:LSR A:LSR A:CLC:ADCseq,Y
�0.colsub CMP #3:BCCcolgot:SEC:SBC#3:JMPcolsub
�9.colgot CLC:ADC#1:JSRoswrch:LDY #0:TXA:�#7:BEQnewxval
�LDA#25:JSRoswrch:LDA#4:JSRsendco:LDA#25:JSRoswrch:LDA#4:JSRsendco:LDA#25:JSRoswrch:LDA#85:JSRsendco:LDA#25:JSRoswrch:LDA#85:JSRsendco
�HINX:LDA&70:CLC:ADC#8:STA&70:LDA&71:ADC#0:STA&71:CPX#128:BNEpoint:RTS
w.newxval LDA#25:JSRoswrch:LDA#4:JSRoswrch:LDA#128:JSRoswrch:LDA#2:JSRoswrch:LDA#192:JSRoswrch:LDA#3:JSRoswrch:LDY#8
FLDA#25:JSRoswrch:LDA#4:JSRsendco:LDA#25:JSRoswrch:LDA#85:JSRsendco
<INX:LDA&70:CLC:ADC#8:STA&70:LDA&71:ADC#0:STA&71:JMPpoint
&y.sendco JSRoswrch:LDA(&70),Y:JSRoswrch:INY:LDA(&70),Y:JSRoswrch:INY:LDA(&70),Y:JSRoswrch:INY:LDA(&70),Y:INY:JMPoswrch
0.col EQUB 0
:$.seq EQUB 1:EQUB 3:EQUB 2:EQUB 3
D
]:P%=&AE9
N[OPTpass
X	LDX#0
bB.ballop LDAxball,X:CMPcx:BNEballon:LDAyball,X:CMPcy:BEQballoff
ly.ballon LDA#17:JSRoswrch:LDA#2:JSRoswrch:LDA#31:JSRoswrch:LDAxball,X:JSRoswrch:LDAyball,X:JSRoswrch:LDA#129:JSRoswrch
v�.balloff LDAyball,X:CMP#24:BEQdie:LDA#&28:STA&70:LDA#&11:STA&71:LDAxball,X:LDYyball,X:JSRgetad:�#1:BNEnodown:INCyball,X:JMPdoneball
��.nodown LDAxball,X:CMP#1:BEQdie:LDAdir,X:CMP#0:BNEnoleft:LDA#&FF:STA&70:LDA#&10:STA&71:LDAxball,X:LDYyball,X:JSRgetad:�#1:BNEnoleft:DECxball,X:JMPdoneball
�.die LDA#1:STAdead:RTS
��.noleft LDAxball,X:CMP#38:BEQdie:LDAdir,X:CMP#1:BNEnoright:LDA#1:STA&70:LDA#&11:STA&71:LDAxball,X:LDYyball,X:JSRgetad:�#1:BNEnoright:INCxball,X:JMPdoneball
�".noright LDAdir,X:�#1:STAdir,X
�D.doneball LDAxball,X:CMPcx:BNEballd:LDAyball,X:CMPcy:BEQnextball
�W.balld LDA#31:JSRoswrch:LDAxball,X:JSRoswrch:LDAyball,X:JSRoswrch:LDA#130:JSRoswrch
�i.nextball LDA#0:STA&70:LDA#&11:STA&71:LDAxball,X:LDYyball,X:JSRgetad:CMP#2:BNEnextballb:LDA#1:STAdead
�N.nextballb JSRballcheck:INX:CPX#2:BNE ballopt:JMPcursor:.ballopt JMPballop
�]:P%=&1A00
�
[OPT pass
�JMPsetup
�S.getad CLC:ADC&70:STA&70:LDA&71:ADC#0:STA&71:TYA:ASL A:ASL A:ASL A:STA&72:LDY#0
�a.getlop LDA&70:CLC:ADC&72:STA&70:LDA&71:ADC#0:STA&71:INY:CPY#5:BNEgetlop:LDY#0:LDA(&70),Y:RTS
�.cursor LDA#31:JSRoswrch:LDAcx:JSRoswrch:LDAcy:JSRoswrch:LDA#0:STA&70:LDA#&11:STA&71:LDAcx:LDYcy:JSRgetad:CMP#1:BEQblock:CMP#2:BEQspike:LDA#129:JSRoswrch:JMPcurdel
G.block LDA#17:JSRoswrch:LDA#1:JSRoswrch:LDA#128:JSRoswrch:JMPcurdel
=.spike LDA#17:JSRoswrch:LDA#1:JSRoswrch:LDA#132:JSRoswrch
 G.curdel LDA#&81:LDX#0:LDY#0:JSRosbyte:BCCkeypro:.nomovet JMP nomove
*C.keypro CPXkl:BNEnotkl:LDAcx:CMP#1:BEQ nomovet:DECcx:JMPnomovet
4B.notkl CPXkr:BNEnotkr:LDAcx:CMP#38:BEQ nomove:INCcx:JMPnomovet
>A.notkr CPXku:BNEnotku:LDAcy:CMP#1:BEQ nomove:DECcy:JMPnomovet
HA.notku CPXkd:BNEnotkd:LDAcy:CMP#24:BEQ nomove:INCcy:JMPnomove
R�.notkd CPXks:BNEnotks:LDAmon:CMP#5:BCC nomove:LDAcx:LDYcy:JSRgetclr:LDA(&70),Y:BNEnomove:LDA#1:STA(&70),Y:LDAmon:SEC:SBC#5:STAmon:JMPnomove
\X.notks CPXkc:BNEnomove:LDAcx:LDYcy:JSRgetclr:CMP#1:BNEnomove:LDA#0:STA(&70),Y:INCmon
f�.nomove LDA#31:JSRoswrch:LDAcx:JSRoswrch:LDAcy:JSRoswrch:LDA#17:JSRoswrch:LDA#3:JSRoswrch:LDA#131:JSRoswrch:LDA#&15:LDX#0:JMPosbyte
pU.ballcheck LDAxball:CMPxball+1:BNEnohit:LDAyball:CMPyball+1:BNEnohit:LDA#1:STAhit
z.nohit RTS
�,.setup LDY#0:STY&70:LDA#&11:STA&71:LDA#0
�k.setlop STA(&70),Y:INY:BNEsetlop:INC&71:LDX&71:CPX#&15:BNEsetlop:STA&BF9:STA&BEF:LDA(&73),Y:TAX:INX:INY
��.polop LDA#31:JSRoswrch:LDA(&73),Y:PHA:JSRoswrch:INY:LDA(&73),Y:PHA:JSRoswrch:INY:STY&75:LDA#128:JSRoswrch:PLA:TAY:PLA:JSRgetclr:LDA#1:STA(&70),Y:LDY&75:DEX:BNE polop
��LDA#0:STA&BF2:STA&BF3:LDA(&73),Y:STA&BF4:INY:LDA(&73),Y:STA&BF6:INY:LDA(&73),Y:STA&BF5:INY:LDA(&73),Y:STA&BF7:INY:LDA(&73),Y:TAX:INY:CPX#0:BEQnospike
��.spklop LDA#31:JSRoswrch:LDA(&73),Y:PHA:JSRoswrch:INY:LDA(&73),Y:PHA:JSRoswrch:INY:STY&75:LDA#132:JSRoswrch:PLA:TAY:PLA:JSRgetclr:LDA#2:STA(&70),Y:LDY&75:DEX:BNE spklop
�.nospike RTS
�8.getclr PHA:LDA#0:STA&70:LDA#&11:STA&71:PLA:JMPgetad
�]:�~P%:P%=&BEF
�
[OPT pass
�.hit EQUB 0
�.cx EQUB 0
�.cy EQUB 0
�.dir EQUW 0
	.xball EQUW 0
	.yball EQUW 0
	.mon EQUB 0
	$.dead EQUB 0
	..kl EQUS "Z"
	8.kr EQUS "X"
	B.ku EQUS "K"
	L.kd EQUS "M"
	V.ks EQUS "L"
	`.kc EQUS " "
	j]
	t�
	~�
	�:
	���reloc
	��"Relocating. . ."
	�?&78=45
	��=&5800:newpage=&1D
	�� pass=0 � 2 � 2
	�P%=&C00
	�[OPTpass
	�
    LDY#0
	�    STY&70
	�    STY&72
	�    LDA#newpage
    SEC

    SBC&18
    STA&74
    LDA&18
(    CMP#newpage
2
    BCCad
<.sb STA&71
F    LDA#newpage
P    STA&73
Z.m1 LDA(&70),Y
d    STA(&72),Y
n    INY
x
    BNEm1
�    INC&71
�    INC&73
�    LDX&71
�    DEX
�    CPX&03
�
    BCCm1
�
    BCSem
�.ad LDA&03
�    STA&71
�    CLC
�    ADC&74
�    STA&73
�
    LDA#0
    LDY&02
.m2 LDA(&70),Y
    STA(&72),Y
"    DEY
,    CPY#&FF
6
    BNEm2
@    DEC&71
J    DEC&73
T    LDA&73
^    CMP#(newpage-1)
h
    BCSm2
r.em LDA&13
|    CLC
�    ADC&74
�    STA&13
�    STA&01
�    LDA#newpage
�    STA&18
�    RTS
�]
��
�� 21
�1�"KEY 0""CALL&C00|MRUN|F|M""":�"FX 153,0,128"
��
��
�
00000000  0d 00 0a 0c f4 20 42 6f  75 6e 63 65 0d 00 14 1a  |..... Bounce....|
00000010  f4 20 62 79 20 44 6f 6d  69 6e 69 63 20 46 6f 72  |. by Dominic For|
00000020  64 20 31 39 39 36 0d 00  1e 05 3a 0d 00 28 25 e7  |d 1996....:..(%.|
00000030  20 ac 20 28 28 3f 26 37  38 3d 34 35 29 20 80 20  | . ((?&78=45) . |
00000040  28 90 3d 26 31 44 30 30  29 29 20 8c 20 eb 20 36  |(.=&1D00)) . . 6|
00000050  0d 00 32 09 f2 69 6e 69  74 0d 00 3c 5f 41 24 3d  |..2..init..<_A$=|
00000060  22 44 45 4c 2e 31 33 32  30 2c 39 39 39 39 22 2b  |"DEL.1320,9999"+|
00000070  bd 31 33 2b 22 47 4f 54  4f 39 30 22 2b bd 36 2b  |.13+"GOTO90"+.6+|
00000080  bd 31 33 3a ef 32 31 3a  e3 20 63 68 61 72 3d 31  |.13:.21:. char=1|
00000090  20 b8 20 a9 28 41 24 29  3a ff 22 46 58 31 33 38  | . .(A$):."FX138|
000000a0  2c 30 2c 22 2b c3 28 97  28 c1 41 24 2c 63 68 61  |,0,"+.(.(.A$,cha|
000000b0  72 2c 31 29 29 29 3a ed  0d 00 46 05 e0 0d 00 50  |r,1))):...F....P|
000000c0  05 3a 0d 00 5a ab ef 20  36 2c 32 33 2c 31 32 38  |.:..Z.. 6,23,128|
000000d0  2c 32 35 35 2c 36 36 2c  33 36 2c 32 34 2c 32 34  |,255,66,36,24,24|
000000e0  2c 33 36 2c 36 36 2c 32  35 35 2c 32 33 2c 31 32  |,36,66,255,23,12|
000000f0  39 2c 30 2c 30 2c 30 2c  30 2c 30 2c 30 2c 30 2c  |9,0,0,0,0,0,0,0,|
00000100  30 2c 32 33 2c 31 33 30  2c 36 30 2c 31 32 36 2c  |0,23,130,60,126,|
00000110  32 35 35 2c 32 35 33 2c  32 35 30 2c 32 34 35 2c  |255,253,250,245,|
00000120  34 32 2c 32 30 2c 32 33  2c 31 33 31 2c 32 35 35  |42,20,23,131,255|
00000130  2c 31 32 39 2c 31 32 39  2c 31 32 39 2c 31 32 39  |,129,129,129,129|
00000140  2c 31 32 39 2c 31 32 39  2c 32 35 35 2c 32 33 2c  |,129,129,255,23,|
00000150  31 33 32 2c 32 34 2c 39  30 2c 36 30 2c 32 35 35  |132,24,90,60,255|
00000160  2c 32 35 35 2c 36 30 2c  39 30 2c 32 34 0d 00 64  |,255,60,90,24..d|
00000170  2e 73 6f 75 6e 64 3d b9  3a de 63 6c 25 28 33 29  |.sound=.:.cl%(3)|
00000180  3a 63 6c 25 28 30 29 3d  32 3a 63 6c 25 28 31 29  |:cl%(0)=2:cl%(1)|
00000190  3d 35 3a 63 6c 25 28 32  29 3d 36 0d 00 6e 15 eb  |=5:cl%(2)=6..n..|
000001a0  31 3a ef 32 33 2c 31 2c  30 3b 30 3b 30 3b 30 3b  |1:.23,1,0;0;0;0;|
000001b0  0d 00 78 05 f5 0d 00 82  0a f2 74 69 74 6c 65 0d  |..x.......title.|
000001c0  00 8c 23 ef 20 31 39 2c  31 2c 31 2c 30 2c 30 2c  |..#. 19,1,1,0,0,|
000001d0  30 2c 30 2c 31 39 2c 32  2c 34 2c 30 2c 30 2c 30  |0,0,19,2,4,0,0,0|
000001e0  2c 30 0d 00 96 18 e7 6b  24 3d 22 4b 22 84 6b 24  |,0.....k$="K".k$|
000001f0  3d 22 6b 22 8c f2 6b 65  79 73 0d 00 a0 11 e7 6b  |="k"..keys.....k|
00000200  24 3d 22 20 22 8c f2 67  61 6d 65 0d 00 aa 12 fd  |$=" "..game.....|
00000210  6b 24 3d 22 51 22 84 6b  24 3d 22 71 22 0d 00 b4  |k$="Q".k$="q"...|
00000220  08 eb 36 3a e0 0d 00 be  05 3a 0d 00 c8 0a dd f2  |..6:.....:......|
00000230  67 61 6d 65 0d 00 d2 22  6c 65 76 25 3d 30 3a 73  |game..."lev%=0:s|
00000240  63 72 25 3d 30 3a 6c 69  76 65 25 3d 33 3a 3f 26  |cr%=0:live%=3:?&|
00000250  42 46 38 3d 32 35 0d 00  dc 05 f5 0d 00 e6 0a f2  |BF8=25..........|
00000260  6c 65 76 65 6c 0d 00 f0  18 e7 20 6c 69 76 65 25  |level..... live%|
00000270  3d 2d 31 20 8c 20 6c 65  76 25 3d 32 30 0d 00 fa  |=-1 . lev%=20...|
00000280  0d fd 20 6c 65 76 25 3d  32 30 0d 01 04 1c e7 20  |.. lev%=20..... |
00000290  6c 69 76 65 25 3d 2d 31  20 8c 20 f2 67 61 6d 65  |live%=-1 . .game|
000002a0  6f 76 65 72 3a e1 0d 01  0e 0c f2 63 6f 6e 67 72  |over:......congr|
000002b0  61 74 0d 01 18 05 e1 0d  01 22 05 3a 0d 01 2c 0b  |at.......".:..,.|
000002c0  dd f2 6c 65 76 65 6c 0d  01 36 05 db 0d 01 40 30  |..level..6....@0|
000002d0  fb 20 33 3a f1 8a 39 2c  31 36 29 22 47 65 74 20  |. 3:..9,16)"Get |
000002e0  52 65 61 64 79 20 66 6f  72 20 4c 65 76 65 6c 20  |Ready for Level |
000002f0  22 3b 6c 65 76 25 2b 31  3b 22 21 22 0d 01 4a 0c  |";lev%+1;"!"..J.|
00000300  e3 63 3d 30 20 b8 20 35  0d 01 54 32 e3 63 6f 6c  |.c=0 . 5..T2.col|
00000310  3d 30 20 b8 20 37 3a e7  20 73 6f 75 6e 64 3d b9  |=0 . 7:. sound=.|
00000320  20 8c 20 d4 20 31 2c 2d  31 35 2c 63 2a 34 2b 63  | . . 1,-15,c*4+c|
00000330  6f 6c 2a 38 2b 31 30 30  2c 31 0d 01 5e 14 ef 20  |ol*8+100,1..^.. |
00000340  31 39 2c 33 2c 63 6f 6c  2c 30 2c 30 2c 30 0d 01  |19,3,col,0,0,0..|
00000350  68 0b 6e 74 25 3d 91 2b  34 0d 01 72 0d f5 20 fd  |h.nt%=.+4..r.. .|
00000360  20 91 3e 6e 74 25 0d 01  7c 08 ed 2c 3a db 0d 01  | .>nt%..|..,:...|
00000370  86 05 f5 0d 01 90 12 ef  20 31 39 2c 33 2c 32 2c  |........ 19,3,2,|
00000380  30 2c 30 2c 30 0d 01 9a  28 74 69 6d 25 3d 34 30  |0,0,0...(tim%=40|
00000390  30 3a 6c 65 76 25 3d 6c  65 76 25 2b 31 3a 3f 26  |0:lev%=lev%+1:?&|
000003a0  42 46 30 3d 31 3a 3f 26  42 46 31 3d 31 0d 01 a4  |BF0=1:?&BF1=1...|
000003b0  95 e6 30 2c 31 3a ec 30  2c 30 3a ec 33 30 30 30  |..0,1:.0,0:.3000|
000003c0  2c 30 3a f0 38 35 2c 30  2c 33 30 30 30 3a e6 30  |,0:.85,0,3000:.0|
000003d0  2c 30 3a ec 33 32 2c 33  32 3a ec 33 32 2c 39 36  |,0:.32,32:.32,96|
000003e0  3a f0 38 35 2c 32 32 34  2c 33 32 3a f0 38 35 2c  |:.85,224,32:.85,|
000003f0  32 32 34 2c 39 36 3a ec  32 35 36 2c 33 32 3a ec  |224,96:.256,32:.|
00000400  32 35 36 2c 39 36 3a f0  38 35 2c 34 38 30 2c 33  |256,96:.85,480,3|
00000410  32 3a f0 38 35 2c 34 38  30 2c 39 36 3a ec 35 31  |2:.85,480,96:.51|
00000420  32 2c 33 32 3a ec 35 31  32 2c 39 36 3a f0 38 35  |2,32:.512,96:.85|
00000430  2c 37 36 38 2c 33 32 3a  f0 38 35 2c 37 36 38 2c  |,768,32:.85,768,|
00000440  39 36 0d 01 ae 7d ec 38  30 30 2c 33 32 3a ec 38  |96...}.800,32:.8|
00000450  30 30 2c 39 36 3a f0 38  35 2c 39 39 32 2c 33 32  |00,96:.85,992,32|
00000460  3a f0 38 35 2c 39 39 32  2c 39 36 3a ec 31 30 32  |:.85,992,96:.102|
00000470  34 2c 33 32 3a ec 31 30  32 34 2c 39 36 3a f0 38  |4,32:.1024,96:.8|
00000480  35 2c 31 32 34 38 2c 33  32 3a f0 38 35 2c 31 32  |5,1248,32:.85,12|
00000490  34 38 2c 39 36 3a ec 33  32 2c 32 32 34 3a ec 31  |48,96:.32,224:.1|
000004a0  32 34 38 2c 32 32 34 3a  f0 38 35 2c 33 32 2c 39  |248,224:.85,32,9|
000004b0  39 32 3a f0 38 35 2c 31  32 34 38 2c 39 39 32 0d  |92:.85,1248,992.|
000004c0  01 b8 11 fb 33 3a f1 8a  31 2c 31 29 bd 31 33 31  |....3:..1,1).131|
000004d0  0d 01 c2 1d 3f 26 37 33  3d 28 26 31 34 43 30 2b  |....?&73=(&14C0+|
000004e0  26 34 30 2a 6c 65 76 25  29 83 32 35 36 0d 01 cc  |&40*lev%).256...|
000004f0  1d 3f 26 37 34 3d 28 26  31 34 43 30 2b 26 34 30  |.?&74=(&14C0+&40|
00000500  2a 6c 65 76 25 29 81 32  35 36 0d 01 d6 0d fb 31  |*lev%).256.....1|
00000510  3a d6 26 31 41 30 30 0d  01 e0 50 fb 33 3a f1 8a  |:.&1A00...P.3:..|
00000520  31 2c 32 39 29 22 53 63  6f 72 65 22 3b 8a 38 2c  |1,29)"Score";.8,|
00000530  32 39 29 22 4c 69 76 65  73 22 3b 8a 31 36 2c 32  |29)"Lives";.16,2|
00000540  39 29 22 53 63 72 65 65  6e 22 3b 8a 32 35 2c 32  |9)"Screen";.25,2|
00000550  39 29 22 54 69 6d 65 22  3b 8a 33 32 2c 32 39 29  |9)"Time";.32,29)|
00000560  22 4d 6f 6e 65 79 22 0d  01 ea 05 f5 0d 01 f4 06  |"Money".........|
00000570  fb 33 0d 01 fe 2a f1 8a  32 2c 33 30 29 3b 73 63  |.3...*..2,30);sc|
00000580  72 25 3b 8a 31 31 2c 33  30 29 6c 69 76 65 25 3b  |r%;.11,30)live%;|
00000590  8a 31 39 2c 33 30 29 6c  65 76 25 3b 0d 02 08 28  |.19,30)lev%;...(|
000005a0  f1 8a 32 37 2c 33 30 29  3b 74 69 6d 25 3b 22 20  |..27,30);tim%;" |
000005b0  22 3b 8a 33 34 2c 33 30  29 3b 3f 26 42 46 38 3b  |";.34,30);?&BF8;|
000005c0  22 30 20 22 0d 02 12 0d  f5 20 fd 20 91 3e 6e 74  |"0 "..... . .>nt|
000005d0  25 0d 02 1c 11 6e 74 25  3d 91 2b 38 3a d6 26 41  |%....nt%=.+8:.&A|
000005e0  45 39 0d 02 26 30 e7 3f  26 42 46 39 3d 30 8c f5  |E9..&0.?&BF9=0..|
000005f0  20 fd 20 91 3e 6e 74 25  3a 6e 74 25 3d 91 2b 38  | . .>nt%:nt%=.+8|
00000600  3a d6 26 41 45 39 3a 74  69 6d 25 3d 74 69 6d 25  |:.&AE9:tim%=tim%|
00000610  2d 31 0d 02 30 21 fd 20  74 69 6d 25 3d 2d 31 20  |-1..0!. tim%=-1 |
00000620  84 20 3f 26 42 45 46 3d  31 20 84 20 3f 26 42 46  |. ?&BEF=1 . ?&BF|
00000630  39 3d 31 0d 02 3a 2a e7  20 74 69 6d 25 3c 3e 2d  |9=1..:*. tim%<>-|
00000640  31 20 80 20 3f 26 42 46  39 3d 30 20 8c 20 fd 20  |1 . ?&BF9=0 . . |
00000650  b9 3a f2 6c 65 76 65 6c  66 69 6e 3a e1 0d 02 44  |.:.levelfin:...D|
00000660  11 6c 69 76 65 25 3d 6c  69 76 65 25 2d 31 0d 02  |.live%=live%-1..|
00000670  4e 16 e7 20 6c 69 76 65  25 3d 2d 31 20 8c 20 fd  |N.. live%=-1 . .|
00000680  20 b9 3a e1 0d 02 58 12  db 3a fb 33 3a f1 8a 31  | .:...X..:.3:..1|
00000690  35 2c 31 36 29 3b 0d 02  62 27 e7 3f 26 42 46 39  |5,16);..b'.?&BF9|
000006a0  3d 30 8c f1 22 54 69 6d  65 20 4f 75 74 21 22 8b  |=0.."Time Out!".|
000006b0  f1 22 4c 6f 73 74 20 42  61 6c 6c 21 22 0d 02 6c  |."Lost Ball!"..l|
000006c0  24 e3 63 3d 30 20 b8 20  35 3a e7 20 73 6f 75 6e  |$.c=0 . 5:. soun|
000006d0  64 3d b9 20 8c 20 d4 20  31 2c 2d 31 35 2c 30 2c  |d=. . . 1,-15,0,|
000006e0  37 0d 02 76 0e e3 63 6f  6c 3d 30 20 b8 20 37 0d  |7..v..col=0 . 7.|
000006f0  02 80 14 ef 20 31 39 2c  33 2c 63 6f 6c 2c 30 2c  |.... 19,3,col,0,|
00000700  30 2c 30 0d 02 8a 0b 6e  74 25 3d 91 2b 34 0d 02  |0,0....nt%=.+4..|
00000710  94 0d f5 20 fd 20 91 3e  6e 74 25 0d 02 9e 14 ed  |... . .>nt%.....|
00000720  2c 3a db 3a 6c 65 76 25  3d 6c 65 76 25 2d 31 0d  |,:.:lev%=lev%-1.|
00000730  02 a8 07 fd 20 a3 0d 02  b2 05 e1 0d 02 bc 05 3a  |.... ..........:|
00000740  0d 02 c6 0e dd f2 6c 65  76 65 6c 66 69 6e 0d 02  |......levelfin..|
00000750  d0 09 db 3a fb 20 33 0d  02 da 2d f1 8a 34 2c 31  |...:. 3...-..4,1|
00000760  36 29 3b 22 43 6f 6e 67  72 61 74 75 6c 61 74 69  |6);"Congratulati|
00000770  6f 6e 73 3a 20 4c 65 76  65 6c 20 43 6f 6d 70 6c  |ons: Level Compl|
00000780  65 74 65 22 0d 02 e4 2a  e3 63 3d 30 20 b8 20 35  |ete"...*.c=0 . 5|
00000790  3a e7 20 73 6f 75 6e 64  3d b9 20 8c 20 d4 20 31  |:. sound=. . . 1|
000007a0  2c 2d 31 35 2c 34 2b 63  2a 34 38 2c 31 30 0d 02  |,-15,4+c*48,10..|
000007b0  ee 0e e3 63 6f 6c 3d 30  20 b8 20 37 0d 02 f8 14  |...col=0 . 7....|
000007c0  ef 20 31 39 2c 33 2c 63  6f 6c 2c 30 2c 30 2c 30  |. 19,3,col,0,0,0|
000007d0  0d 03 02 0b 6e 74 25 3d  91 2b 34 0d 03 0c 0d f5  |....nt%=.+4.....|
000007e0  20 fd 20 91 3e 6e 74 25  0d 03 16 19 ed 2c 3a db  | . .>nt%.....,:.|
000007f0  3a 3f 26 42 46 38 3d 28  3f 26 42 46 38 29 2b 31  |:?&BF8=(?&BF8)+1|
00000800  30 0d 03 20 05 e1 0d 03  2a 05 3a 0d 03 34 0e dd  |0.. ....*.:..4..|
00000810  f2 67 61 6d 65 6f 76 65  72 0d 03 3e 09 db 3a fb  |.gameover..>..:.|
00000820  20 33 0d 03 48 22 f1 8a  39 2c 31 36 29 22 54 68  | 3..H"..9,16)"Th|
00000830  61 74 27 73 20 69 74 3a  20 47 61 6d 65 20 4f 76  |at's it: Game Ov|
00000840  65 72 21 22 0d 03 52 0c  e3 63 3d 30 20 b8 20 35  |er!"..R..c=0 . 5|
00000850  0d 03 5c 34 e3 63 6f 6c  3d 30 20 b8 20 37 3a e7  |..\4.col=0 . 7:.|
00000860  20 73 6f 75 6e 64 3d b9  20 8c 20 d4 20 31 2c 2d  | sound=. . . 1,-|
00000870  31 35 2c 31 35 30 2d 28  63 2a 34 2b 63 6f 6c 2a  |15,150-(c*4+col*|
00000880  38 29 2c 31 0d 03 66 14  ef 20 31 39 2c 33 2c 63  |8),1..f.. 19,3,c|
00000890  6f 6c 2c 30 2c 30 2c 30  0d 03 70 0b 6e 74 25 3d  |ol,0,0,0..p.nt%=|
000008a0  91 2b 34 0d 03 7a 0d f5  20 fd 20 91 3e 6e 74 25  |.+4..z.. . .>nt%|
000008b0  0d 03 84 08 ed 2c 3a db  0d 03 8e 05 e1 0d 03 98  |.....,:.........|
000008c0  05 3a 0d 03 a2 0d dd f2  63 6f 6e 67 72 61 74 0d  |.:......congrat.|
000008d0  03 ac 09 db 3a fb 20 33  0d 03 b6 0c e3 78 3d 30  |....:. 3.....x=0|
000008e0  20 b8 20 35 0d 03 c0 2d  f1 8a 34 2c 31 36 29 3b  | . 5...-..4,16);|
000008f0  22 43 6f 6e 67 72 61 74  75 6c 61 74 69 6f 6e 73  |"Congratulations|
00000900  3a 20 47 61 6d 65 20 43  6f 6d 70 6c 65 74 65 21  |: Game Complete!|
00000910  22 0d 03 ca 2a e3 63 3d  30 20 b8 20 35 3a e7 20  |"...*.c=0 . 5:. |
00000920  73 6f 75 6e 64 3d b9 20  8c 20 d4 20 31 2c 2d 31  |sound=. . . 1,-1|
00000930  35 2c 34 2b 63 2a 34 38  2c 31 30 0d 03 d4 0e e3  |5,4+c*48,10.....|
00000940  63 6f 6c 3d 30 20 b8 20  37 0d 03 de 14 ef 20 31  |col=0 . 7..... 1|
00000950  39 2c 33 2c 63 6f 6c 2c  30 2c 30 2c 30 0d 03 e8  |9,3,col,0,0,0...|
00000960  0b 6e 74 25 3d 91 2b 34  0d 03 f2 0d f5 20 fd 20  |.nt%=.+4..... . |
00000970  91 3e 6e 74 25 0d 03 fc  09 ed 2c 2c 3a db 0d 04  |.>nt%.....,,:...|
00000980  06 05 e1 0d 04 10 05 3a  0d 04 1a 0b dd f2 74 69  |.......:......ti|
00000990  74 6c 65 0d 04 24 0b 63  6f 6c 3d 30 3a db 0d 04  |tle..$.col=0:...|
000009a0  2e 0c d6 26 41 30 30 3a  fb 32 0d 04 38 b6 f1 8a  |...&A00:.2..8...|
000009b0  31 37 2c 35 29 22 42 4f  55 4e 43 45 22 3b 8a 31  |17,5)"BOUNCE";.1|
000009c0  30 2c 38 29 22 62 79 20  44 6f 6d 69 6e 69 63 20  |0,8)"by Dominic |
000009d0  46 6f 72 64 20 31 39 39  36 22 3b 8a 31 32 2c 31  |Ford 1996";.12,1|
000009e0  34 29 22 53 50 41 43 45  20 2d 20 53 74 61 72 74  |4)"SPACE - Start|
000009f0  22 3b 8a 31 36 2c 31 36  29 22 51 20 2d 20 51 75  |";.16,16)"Q - Qu|
00000a00  69 74 22 3b 8a 31 36 2c  31 38 29 22 53 20 2d 20  |it";.16,18)"S - |
00000a10  53 6f 75 6e 64 20 4f 6e  2f 4f 66 66 22 3b 8a 31  |Sound On/Off";.1|
00000a20  36 2c 32 30 29 22 4b 20  2d 20 43 68 61 6e 67 65  |6,20)"K - Change|
00000a30  20 4b 65 79 73 22 3b 8a  31 35 2c 32 35 29 3b 22  | Keys";.15,25);"|
00000a40  53 6f 75 6e 64 3a 20 22  3b 3a e7 73 6f 75 6e 64  |Sound: ";:.sound|
00000a50  20 8c 20 f1 22 4f 6e 20  22 8b f1 22 4f 66 66 22  | . ."On ".."Off"|
00000a60  0d 04 42 1b ef 20 32 33  2c 31 2c 30 3b 30 3b 30  |..B.. 23,1,0;0;0|
00000a70  3b 30 3b 3a 2a 46 58 31  35 2c 31 0d 04 4c 05 f5  |;0;:*FX15,1..L..|
00000a80  0d 04 56 1e 6e 74 25 3d  91 2b 31 30 3a 63 6f 6c  |..V.nt%=.+10:col|
00000a90  3d 28 28 63 6f 6c 2b 31  29 20 83 20 33 29 0d 04  |=((col+1) . 3)..|
00000aa0  60 1b ef 20 31 39 2c 31  2c 63 6c 25 28 63 6f 6c  |`.. 19,1,cl%(col|
00000ab0  29 2c 30 2c 30 2c 30 2c  30 0d 04 6a 23 ef 20 31  |),0,0,0,0..j#. 1|
00000ac0  39 2c 32 2c 63 6c 25 28  28 63 6f 6c 2b 31 29 20  |9,2,cl%((col+1) |
00000ad0  83 20 33 29 2c 30 2c 30  2c 30 2c 30 0d 04 74 23  |. 3),0,0,0,0..t#|
00000ae0  ef 20 31 39 2c 33 2c 63  6c 25 28 28 63 6f 6c 2b  |. 19,3,cl%((col+|
00000af0  32 29 20 83 20 33 29 2c  30 2c 30 2c 30 2c 30 0d  |2) . 3),0,0,0,0.|
00000b00  04 7e 0d f5 20 fd 20 91  3e 6e 74 25 0d 04 88 0b  |.~.. . .>nt%....|
00000b10  6b 24 3d bf 28 30 29 0d  04 92 19 e7 6b 24 3d 22  |k$=.(0).....k$="|
00000b20  53 22 84 6b 24 3d 22 73  22 8c f2 73 6f 75 6e 64  |S".k$="s"..sound|
00000b30  0d 04 9c 20 fd 20 a7 22  20 51 71 4b 6b 22 2c 6b  |... . ." QqKk",k|
00000b40  24 29 3c 3e 30 20 80 20  a9 28 6b 24 29 3c 3e 30  |$)<>0 . .(k$)<>0|
00000b50  0d 04 a6 05 e1 0d 04 b0  05 3a 0d 04 ba 0b dd f2  |.........:......|
00000b60  73 6f 75 6e 64 0d 04 c4  1e e7 73 6f 75 6e 64 20  |sound.....sound |
00000b70  8c 20 73 6f 75 6e 64 3d  a3 20 8b 20 73 6f 75 6e  |. sound=. . soun|
00000b80  64 3d b9 0d 04 ce 24 f1  8a 32 32 2c 32 35 29 3b  |d=....$..22,25);|
00000b90  3a e7 73 6f 75 6e 64 20  8c 20 f1 22 4f 6e 20 22  |:.sound . ."On "|
00000ba0  8b f1 22 4f 66 66 22 0d  04 d8 05 e1 0d 04 e2 05  |.."Off".........|
00000bb0  3a 0d 04 ec 0a dd f2 6b  65 79 73 0d 04 f6 14 ef  |:......keys.....|
00000bc0  32 33 2c 31 2c 31 2c 30  3b 30 3b 30 3b 30 3b 0d  |23,1,1,0;0;0;0;.|
00000bd0  05 00 51 db 3a f1 22 50  6c 65 61 73 65 20 73 65  |..Q.:."Please se|
00000be0  6c 65 63 74 20 6e 65 77  20 6b 65 79 73 3a 22 27  |lect new keys:"'|
00000bf0  27 22 4c 65 66 74 3a 22  27 22 52 69 67 68 74 3a  |'"Left:"'"Right:|
00000c00  22 27 22 55 70 3a 22 27  22 44 6f 77 6e 3a 22 27  |"'"Up:"'"Down:"'|
00000c10  22 57 61 6c 6c 3a 22 27  22 43 6c 65 61 72 3a 22  |"Wall:"'"Clear:"|
00000c20  0d 05 0a 2f e3 6b 3d 30  b8 35 3a f1 8a 38 2c 32  |.../.k=0.5:..8,2|
00000c30  2b 6b 29 3b 3a 6b 24 3d  be 3a f1 6b 24 3a 3f 28  |+k);:k$=.:.k$:?(|
00000c40  26 42 46 41 2b 6b 29 3d  97 28 6b 24 29 3a ed 0d  |&BFA+k)=.(k$):..|
00000c50  05 14 18 ef 32 33 2c 31  2c 30 3b 30 3b 30 3b 30  |....23,1,0;0;0;0|
00000c60  3b 3a 6b 24 3d 22 22 0d  05 1e 05 e1 0d 05 28 05  |;:k$="".......(.|
00000c70  3a 0d 05 32 10 f4 20 4c  65 76 65 6c 20 44 61 74  |:..2.. Level Dat|
00000c80  61 0d 05 3c 40 dc 20 31  38 2c 32 2c 32 2c 33 2c  |a..<@. 18,2,2,3,|
00000c90  33 2c 34 2c 33 2c 35 2c  33 2c 36 2c 33 2c 37 2c  |3,4,3,5,3,6,3,7,|
00000ca0  33 2c 38 2c 33 2c 38 2c  38 2c 39 2c 39 2c 31 30  |3,8,3,8,8,9,9,10|
00000cb0  2c 39 2c 31 31 2c 39 2c  31 32 2c 39 2c 31 33 2c  |,9,11,9,12,9,13,|
00000cc0  39 0d 05 46 38 dc 20 31  34 2c 39 2c 31 35 2c 39  |9..F8. 14,9,15,9|
00000cd0  2c 31 36 2c 39 2c 31 37  2c 38 2c 31 38 2c 39 2c  |,16,9,17,8,18,9,|
00000ce0  31 39 2c 38 2c 38 2c 31  2c 31 39 2c 31 2c 31 2c  |19,8,8,1,19,1,1,|
00000cf0  31 37 2c 31 30 2c 32 35  35 0d 05 50 05 3a 0d 05  |17,10,255..P.:..|
00000d00  5a 43 dc 20 30 2c 32 35  35 2c 30 2c 32 35 35 2c  |ZC. 0,255,0,255,|
00000d10  30 2c 32 35 35 2c 30 2c  32 35 35 2c 30 2c 32 35  |0,255,0,255,0,25|
00000d20  35 2c 30 2c 32 35 35 2c  30 2c 32 35 35 2c 30 2c  |5,0,255,0,255,0,|
00000d30  32 35 35 2c 30 2c 32 35  35 2c 30 2c 32 35 35 2c  |255,0,255,0,255,|
00000d40  30 0d 05 64 3a dc 20 32  35 35 2c 30 2c 32 35 35  |0..d:. 255,0,255|
00000d50  2c 30 2c 32 35 35 2c 30  2c 32 35 35 2c 30 2c 32  |,0,255,0,255,0,2|
00000d60  35 35 2c 30 2c 32 35 35  2c 30 2c 32 35 35 2c 30  |55,0,255,0,255,0|
00000d70  2c 32 35 35 2c 30 2c 2d  39 39 39 0d 05 6e 05 3a  |,255,0,-999..n.:|
00000d80  0d 05 78 0a dd f2 69 6e  69 74 0d 05 82 3d e7 20  |..x...init...=. |
00000d90  ac 20 28 28 3f 26 37 38  3d 34 35 29 20 80 20 28  |. ((?&78=45) . (|
00000da0  90 3d 26 31 44 30 30 29  29 20 8c 20 f1 27 22 50  |.=&1D00)) . .'"P|
00000db0  6c 65 61 73 65 20 57 61  69 74 2e 20 2e 20 2e 22  |lease Wait. . ."|
00000dc0  27 3a 2a 54 41 50 45 0d  05 8c 17 e7 20 90 3c 3e  |':*TAPE..... .<>|
00000dd0  26 31 44 30 30 20 8c 20  f2 72 65 6c 6f 63 0d 05  |&1D00 . .reloc..|
00000de0  96 18 ef 20 36 2c 31 31  2c 32 33 2c 31 2c 30 3b  |... 6,11,23,1,0;|
00000df0  30 3b 30 3b 30 3b 0d 05  a0 1e f1 22 43 61 6c 63  |0;0;0;....."Calc|
00000e00  75 6c 61 74 69 6e 67 20  73 70 68 65 72 65 2e 20  |ulating sphere. |
00000e10  2e 20 2e 22 0d 05 aa 0f  50 25 3d 26 44 30 30 3a  |. ."....P%=&D00:|
00000e20  70 3d 30 0d 05 b4 1a e3  78 3d 2d 37 38 2e 37 35  |p=0.....x=-78.75|
00000e30  20 b8 20 39 30 20 88 20  31 31 2e 32 35 0d 05 be  | . 90 . 11.25...|
00000e40  23 e3 79 3d 32 32 2e 35  20 b8 20 31 38 30 20 88  |#.y=22.5 . 180 .|
00000e50  20 32 32 2e 35 3a 70 3d  70 2b 2e 37 38 31 32 35  | 22.5:p=p+.78125|
00000e60  0d 05 c8 0a 5b 4f 50 54  20 32 0d 05 d2 31 45 51  |....[OPT 2...1EQ|
00000e70  55 57 20 a8 28 34 38 30  2a b5 28 af 2a 28 78 2d  |UW .(480*.(.*(x-|
00000e80  31 31 2e 32 35 29 2f 31  38 30 29 2a b5 28 af 2a  |11.25)/180)*.(.*|
00000e90  79 2f 31 38 30 29 2b 36  34 30 29 0d 05 dc 21 45  |y/180)+640)...!E|
00000ea0  51 55 57 20 a8 28 36 30  2b 28 9b 28 af 2a 79 2f  |QUW .(60+(.(.*y/|
00000eb0  31 38 30 29 2b 31 29 2a  34 35 30 29 0d 05 e6 29  |180)+1)*450)...)|
00000ec0  45 51 55 57 20 a8 28 34  38 30 2a b5 28 af 2a 78  |EQUW .(480*.(.*x|
00000ed0  2f 31 38 30 29 2a b5 28  af 2a 79 2f 31 38 30 29  |/180)*.(.*y/180)|
00000ee0  2b 36 34 30 29 0d 05 f0  21 45 51 55 57 20 a8 28  |+640)...!EQUW .(|
00000ef0  36 30 2b 28 9b 28 af 2a  79 2f 31 38 30 29 2b 31  |60+(.(.*y/180)+1|
00000f00  29 2a 34 35 30 29 0d 05  fa 05 5d 0d 06 04 13 f1  |)*450)....].....|
00000f10  8a 32 34 2c 34 29 a8 28  70 29 3b 22 25 22 0d 06  |.24,4).(p);"%"..|
00000f20  0e 06 ed 2c 0d 06 18 14  ef 32 33 2c 31 2c 31 3b  |...,.....23,1,1;|
00000f30  30 3b 30 3b 30 3b 30 3b  0d 06 22 26 f1 22 4d 6f  |0;0;0;0;.."&."Mo|
00000f40  76 69 6e 67 20 6c 65 76  65 6c 20 64 61 74 61 2e  |ving level data.|
00000f50  20 2e 20 2e 22 3a 61 64  3d 26 31 35 30 30 0d 06  | . .":ad=&1500..|
00000f60  2c 05 f5 0d 06 36 07 f3  20 64 0d 06 40 1d e7 20  |,....6.. d..@.. |
00000f70  64 3c 3e 2d 39 39 39 20  8c 20 3f 61 64 3d 64 3a  |d<>-999 . ?ad=d:|
00000f80  61 64 3d 61 64 2b 31 0d  06 4a 21 e7 20 64 3d 32  |ad=ad+1..J!. d=2|
00000f90  35 35 20 8c 20 61 64 3d  28 61 64 2b 26 34 30 29  |55 . ad=(ad+&40)|
00000fa0  20 80 20 26 46 46 43 30  0d 06 54 13 e7 20 64 3c  | . &FFC0..T.. d<|
00000fb0  3e 2d 39 39 39 20 8c 20  fd 20 a3 0d 06 5e 07 fd  |>-999 . . ...^..|
00000fc0  20 b9 0d 06 68 25 f1 22  41 73 73 65 6d 62 6c 69  | ...h%."Assembli|
00000fd0  6e 67 20 63 6f 64 65 2e  20 2e 20 2e 22 3a f2 61  |ng code. . .":.a|
00000fe0  73 73 65 6d 62 6c 65 0d  06 72 20 f1 22 52 65 6d  |ssemble..r ."Rem|
00000ff0  6f 76 69 6e 67 20 73 6f  75 72 63 65 20 63 6f 64  |oving source cod|
00001000  65 2e 20 2e 20 2e 22 0d  06 7c 05 e1 0d 06 86 05  |e. . ."..|......|
00001010  3a 0d 06 90 0e dd f2 61  73 73 65 6d 62 6c 65 0d  |:......assemble.|
00001020  06 9a 10 6f 73 77 72 63  68 3d 26 46 46 45 45 0d  |...oswrch=&FFEE.|
00001030  06 a4 10 6f 73 62 79 74  65 3d 26 46 46 46 34 0d  |...osbyte=&FFF4.|
00001040  06 ae 14 e3 20 70 61 73  73 3d 30 20 b8 20 32 20  |.... pass=0 . 2 |
00001050  88 20 32 0d 06 b8 0b 50  25 3d 26 41 30 30 0d 06  |. 2....P%=&A00..|
00001060  c2 0d 5b 4f 50 54 20 70  61 73 73 0d 06 cc 3b 2e  |..[OPT pass...;.|
00001070  73 70 68 65 72 65 20 4c  44 59 23 30 3a 53 54 59  |sphere LDY#0:STY|
00001080  63 6f 6c 3a 4c 44 41 23  26 43 3a 53 54 41 26 37  |col:LDA#&C:STA&7|
00001090  31 3a 4c 44 41 23 26 46  38 3a 53 54 41 26 37 30  |1:LDA#&F8:STA&70|
000010a0  3a 4c 44 58 23 30 0d 06  d6 71 2e 70 6f 69 6e 74  |:LDX#0...q.point|
000010b0  20 4c 44 41 63 6f 6c 3a  43 4c 43 3a 41 44 43 23  | LDAcol:CLC:ADC#|
000010c0  31 3a 80 23 33 3a 53 54  41 63 6f 6c 3a 4c 44 41  |1:.#3:STAcol:LDA|
000010d0  23 31 38 3a 4a 53 52 6f  73 77 72 63 68 3a 4c 44  |#18:JSRoswrch:LD|
000010e0  41 23 30 3a 4a 53 52 6f  73 77 72 63 68 3a 4c 44  |A#0:JSRoswrch:LD|
000010f0  59 63 6f 6c 3a 54 58 41  3a 4c 53 52 20 41 3a 4c  |Ycol:TXA:LSR A:L|
00001100  53 52 20 41 3a 4c 53 52  20 41 3a 43 4c 43 3a 41  |SR A:LSR A:CLC:A|
00001110  44 43 73 65 71 2c 59 0d  06 e0 30 2e 63 6f 6c 73  |DCseq,Y...0.cols|
00001120  75 62 20 43 4d 50 20 23  33 3a 42 43 43 63 6f 6c  |ub CMP #3:BCCcol|
00001130  67 6f 74 3a 53 45 43 3a  53 42 43 23 33 3a 4a 4d  |got:SEC:SBC#3:JM|
00001140  50 63 6f 6c 73 75 62 0d  06 ea 39 2e 63 6f 6c 67  |Pcolsub...9.colg|
00001150  6f 74 20 43 4c 43 3a 41  44 43 23 31 3a 4a 53 52  |ot CLC:ADC#1:JSR|
00001160  6f 73 77 72 63 68 3a 4c  44 59 20 23 30 3a 54 58  |oswrch:LDY #0:TX|
00001170  41 3a 80 23 37 3a 42 45  51 6e 65 77 78 76 61 6c  |A:.#7:BEQnewxval|
00001180  0d 06 f4 89 4c 44 41 23  32 35 3a 4a 53 52 6f 73  |....LDA#25:JSRos|
00001190  77 72 63 68 3a 4c 44 41  23 34 3a 4a 53 52 73 65  |wrch:LDA#4:JSRse|
000011a0  6e 64 63 6f 3a 4c 44 41  23 32 35 3a 4a 53 52 6f  |ndco:LDA#25:JSRo|
000011b0  73 77 72 63 68 3a 4c 44  41 23 34 3a 4a 53 52 73  |swrch:LDA#4:JSRs|
000011c0  65 6e 64 63 6f 3a 4c 44  41 23 32 35 3a 4a 53 52  |endco:LDA#25:JSR|
000011d0  6f 73 77 72 63 68 3a 4c  44 41 23 38 35 3a 4a 53  |oswrch:LDA#85:JS|
000011e0  52 73 65 6e 64 63 6f 3a  4c 44 41 23 32 35 3a 4a  |Rsendco:LDA#25:J|
000011f0  53 52 6f 73 77 72 63 68  3a 4c 44 41 23 38 35 3a  |SRoswrch:LDA#85:|
00001200  4a 53 52 73 65 6e 64 63  6f 0d 06 fe 48 49 4e 58  |JSRsendco...HINX|
00001210  3a 4c 44 41 26 37 30 3a  43 4c 43 3a 41 44 43 23  |:LDA&70:CLC:ADC#|
00001220  38 3a 53 54 41 26 37 30  3a 4c 44 41 26 37 31 3a  |8:STA&70:LDA&71:|
00001230  41 44 43 23 30 3a 53 54  41 26 37 31 3a 43 50 58  |ADC#0:STA&71:CPX|
00001240  23 31 32 38 3a 42 4e 45  70 6f 69 6e 74 3a 52 54  |#128:BNEpoint:RT|
00001250  53 0d 07 08 77 2e 6e 65  77 78 76 61 6c 20 4c 44  |S...w.newxval LD|
00001260  41 23 32 35 3a 4a 53 52  6f 73 77 72 63 68 3a 4c  |A#25:JSRoswrch:L|
00001270  44 41 23 34 3a 4a 53 52  6f 73 77 72 63 68 3a 4c  |DA#4:JSRoswrch:L|
00001280  44 41 23 31 32 38 3a 4a  53 52 6f 73 77 72 63 68  |DA#128:JSRoswrch|
00001290  3a 4c 44 41 23 32 3a 4a  53 52 6f 73 77 72 63 68  |:LDA#2:JSRoswrch|
000012a0  3a 4c 44 41 23 31 39 32  3a 4a 53 52 6f 73 77 72  |:LDA#192:JSRoswr|
000012b0  63 68 3a 4c 44 41 23 33  3a 4a 53 52 6f 73 77 72  |ch:LDA#3:JSRoswr|
000012c0  63 68 3a 4c 44 59 23 38  0d 07 12 46 4c 44 41 23  |ch:LDY#8...FLDA#|
000012d0  32 35 3a 4a 53 52 6f 73  77 72 63 68 3a 4c 44 41  |25:JSRoswrch:LDA|
000012e0  23 34 3a 4a 53 52 73 65  6e 64 63 6f 3a 4c 44 41  |#4:JSRsendco:LDA|
000012f0  23 32 35 3a 4a 53 52 6f  73 77 72 63 68 3a 4c 44  |#25:JSRoswrch:LD|
00001300  41 23 38 35 3a 4a 53 52  73 65 6e 64 63 6f 0d 07  |A#85:JSRsendco..|
00001310  1c 3c 49 4e 58 3a 4c 44  41 26 37 30 3a 43 4c 43  |.<INX:LDA&70:CLC|
00001320  3a 41 44 43 23 38 3a 53  54 41 26 37 30 3a 4c 44  |:ADC#8:STA&70:LD|
00001330  41 26 37 31 3a 41 44 43  23 30 3a 53 54 41 26 37  |A&71:ADC#0:STA&7|
00001340  31 3a 4a 4d 50 70 6f 69  6e 74 0d 07 26 79 2e 73  |1:JMPpoint..&y.s|
00001350  65 6e 64 63 6f 20 4a 53  52 6f 73 77 72 63 68 3a  |endco JSRoswrch:|
00001360  4c 44 41 28 26 37 30 29  2c 59 3a 4a 53 52 6f 73  |LDA(&70),Y:JSRos|
00001370  77 72 63 68 3a 49 4e 59  3a 4c 44 41 28 26 37 30  |wrch:INY:LDA(&70|
00001380  29 2c 59 3a 4a 53 52 6f  73 77 72 63 68 3a 49 4e  |),Y:JSRoswrch:IN|
00001390  59 3a 4c 44 41 28 26 37  30 29 2c 59 3a 4a 53 52  |Y:LDA(&70),Y:JSR|
000013a0  6f 73 77 72 63 68 3a 49  4e 59 3a 4c 44 41 28 26  |oswrch:INY:LDA(&|
000013b0  37 30 29 2c 59 3a 49 4e  59 3a 4a 4d 50 6f 73 77  |70),Y:INY:JMPosw|
000013c0  72 63 68 0d 07 30 0f 2e  63 6f 6c 20 45 51 55 42  |rch..0..col EQUB|
000013d0  20 30 0d 07 3a 24 2e 73  65 71 20 45 51 55 42 20  | 0..:$.seq EQUB |
000013e0  31 3a 45 51 55 42 20 33  3a 45 51 55 42 20 32 3a  |1:EQUB 3:EQUB 2:|
000013f0  45 51 55 42 20 33 0d 07  44 0d 5d 3a 50 25 3d 26  |EQUB 3..D.]:P%=&|
00001400  41 45 39 0d 07 4e 0c 5b  4f 50 54 70 61 73 73 0d  |AE9..N.[OPTpass.|
00001410  07 58 09 4c 44 58 23 30  0d 07 62 42 2e 62 61 6c  |.X.LDX#0..bB.bal|
00001420  6c 6f 70 20 4c 44 41 78  62 61 6c 6c 2c 58 3a 43  |lop LDAxball,X:C|
00001430  4d 50 63 78 3a 42 4e 45  62 61 6c 6c 6f 6e 3a 4c  |MPcx:BNEballon:L|
00001440  44 41 79 62 61 6c 6c 2c  58 3a 43 4d 50 63 79 3a  |DAyball,X:CMPcy:|
00001450  42 45 51 62 61 6c 6c 6f  66 66 0d 07 6c 79 2e 62  |BEQballoff..ly.b|
00001460  61 6c 6c 6f 6e 20 4c 44  41 23 31 37 3a 4a 53 52  |allon LDA#17:JSR|
00001470  6f 73 77 72 63 68 3a 4c  44 41 23 32 3a 4a 53 52  |oswrch:LDA#2:JSR|
00001480  6f 73 77 72 63 68 3a 4c  44 41 23 33 31 3a 4a 53  |oswrch:LDA#31:JS|
00001490  52 6f 73 77 72 63 68 3a  4c 44 41 78 62 61 6c 6c  |Roswrch:LDAxball|
000014a0  2c 58 3a 4a 53 52 6f 73  77 72 63 68 3a 4c 44 41  |,X:JSRoswrch:LDA|
000014b0  79 62 61 6c 6c 2c 58 3a  4a 53 52 6f 73 77 72 63  |yball,X:JSRoswrc|
000014c0  68 3a 4c 44 41 23 31 32  39 3a 4a 53 52 6f 73 77  |h:LDA#129:JSRosw|
000014d0  72 63 68 0d 07 76 87 2e  62 61 6c 6c 6f 66 66 20  |rch..v..balloff |
000014e0  4c 44 41 79 62 61 6c 6c  2c 58 3a 43 4d 50 23 32  |LDAyball,X:CMP#2|
000014f0  34 3a 42 45 51 64 69 65  3a 4c 44 41 23 26 32 38  |4:BEQdie:LDA#&28|
00001500  3a 53 54 41 26 37 30 3a  4c 44 41 23 26 31 31 3a  |:STA&70:LDA#&11:|
00001510  53 54 41 26 37 31 3a 4c  44 41 78 62 61 6c 6c 2c  |STA&71:LDAxball,|
00001520  58 3a 4c 44 59 79 62 61  6c 6c 2c 58 3a 4a 53 52  |X:LDYyball,X:JSR|
00001530  67 65 74 61 64 3a 80 23  31 3a 42 4e 45 6e 6f 64  |getad:.#1:BNEnod|
00001540  6f 77 6e 3a 49 4e 43 79  62 61 6c 6c 2c 58 3a 4a  |own:INCyball,X:J|
00001550  4d 50 64 6f 6e 65 62 61  6c 6c 0d 07 80 9e 2e 6e  |MPdoneball.....n|
00001560  6f 64 6f 77 6e 20 4c 44  41 78 62 61 6c 6c 2c 58  |odown LDAxball,X|
00001570  3a 43 4d 50 23 31 3a 42  45 51 64 69 65 3a 4c 44  |:CMP#1:BEQdie:LD|
00001580  41 64 69 72 2c 58 3a 43  4d 50 23 30 3a 42 4e 45  |Adir,X:CMP#0:BNE|
00001590  6e 6f 6c 65 66 74 3a 4c  44 41 23 26 46 46 3a 53  |noleft:LDA#&FF:S|
000015a0  54 41 26 37 30 3a 4c 44  41 23 26 31 30 3a 53 54  |TA&70:LDA#&10:ST|
000015b0  41 26 37 31 3a 4c 44 41  78 62 61 6c 6c 2c 58 3a  |A&71:LDAxball,X:|
000015c0  4c 44 59 79 62 61 6c 6c  2c 58 3a 4a 53 52 67 65  |LDYyball,X:JSRge|
000015d0  74 61 64 3a 80 23 31 3a  42 4e 45 6e 6f 6c 65 66  |tad:.#1:BNEnolef|
000015e0  74 3a 44 45 43 78 62 61  6c 6c 2c 58 3a 4a 4d 50  |t:DECxball,X:JMP|
000015f0  64 6f 6e 65 62 61 6c 6c  0d 07 8a 1a 2e 64 69 65  |doneball.....die|
00001600  20 4c 44 41 23 31 3a 53  54 41 64 65 61 64 3a 52  | LDA#1:STAdead:R|
00001610  54 53 0d 07 94 9f 2e 6e  6f 6c 65 66 74 20 4c 44  |TS.....noleft LD|
00001620  41 78 62 61 6c 6c 2c 58  3a 43 4d 50 23 33 38 3a  |Axball,X:CMP#38:|
00001630  42 45 51 64 69 65 3a 4c  44 41 64 69 72 2c 58 3a  |BEQdie:LDAdir,X:|
00001640  43 4d 50 23 31 3a 42 4e  45 6e 6f 72 69 67 68 74  |CMP#1:BNEnoright|
00001650  3a 4c 44 41 23 31 3a 53  54 41 26 37 30 3a 4c 44  |:LDA#1:STA&70:LD|
00001660  41 23 26 31 31 3a 53 54  41 26 37 31 3a 4c 44 41  |A#&11:STA&71:LDA|
00001670  78 62 61 6c 6c 2c 58 3a  4c 44 59 79 62 61 6c 6c  |xball,X:LDYyball|
00001680  2c 58 3a 4a 53 52 67 65  74 61 64 3a 80 23 31 3a  |,X:JSRgetad:.#1:|
00001690  42 4e 45 6e 6f 72 69 67  68 74 3a 49 4e 43 78 62  |BNEnoright:INCxb|
000016a0  61 6c 6c 2c 58 3a 4a 4d  50 64 6f 6e 65 62 61 6c  |all,X:JMPdonebal|
000016b0  6c 0d 07 9e 22 2e 6e 6f  72 69 67 68 74 20 4c 44  |l...".noright LD|
000016c0  41 64 69 72 2c 58 3a 82  23 31 3a 53 54 41 64 69  |Adir,X:.#1:STAdi|
000016d0  72 2c 58 0d 07 a8 44 2e  64 6f 6e 65 62 61 6c 6c  |r,X...D.doneball|
000016e0  20 4c 44 41 78 62 61 6c  6c 2c 58 3a 43 4d 50 63  | LDAxball,X:CMPc|
000016f0  78 3a 42 4e 45 62 61 6c  6c 64 3a 4c 44 41 79 62  |x:BNEballd:LDAyb|
00001700  61 6c 6c 2c 58 3a 43 4d  50 63 79 3a 42 45 51 6e  |all,X:CMPcy:BEQn|
00001710  65 78 74 62 61 6c 6c 0d  07 b2 57 2e 62 61 6c 6c  |extball...W.ball|
00001720  64 20 4c 44 41 23 33 31  3a 4a 53 52 6f 73 77 72  |d LDA#31:JSRoswr|
00001730  63 68 3a 4c 44 41 78 62  61 6c 6c 2c 58 3a 4a 53  |ch:LDAxball,X:JS|
00001740  52 6f 73 77 72 63 68 3a  4c 44 41 79 62 61 6c 6c  |Roswrch:LDAyball|
00001750  2c 58 3a 4a 53 52 6f 73  77 72 63 68 3a 4c 44 41  |,X:JSRoswrch:LDA|
00001760  23 31 33 30 3a 4a 53 52  6f 73 77 72 63 68 0d 07  |#130:JSRoswrch..|
00001770  bc 69 2e 6e 65 78 74 62  61 6c 6c 20 4c 44 41 23  |.i.nextball LDA#|
00001780  30 3a 53 54 41 26 37 30  3a 4c 44 41 23 26 31 31  |0:STA&70:LDA#&11|
00001790  3a 53 54 41 26 37 31 3a  4c 44 41 78 62 61 6c 6c  |:STA&71:LDAxball|
000017a0  2c 58 3a 4c 44 59 79 62  61 6c 6c 2c 58 3a 4a 53  |,X:LDYyball,X:JS|
000017b0  52 67 65 74 61 64 3a 43  4d 50 23 32 3a 42 4e 45  |Rgetad:CMP#2:BNE|
000017c0  6e 65 78 74 62 61 6c 6c  62 3a 4c 44 41 23 31 3a  |nextballb:LDA#1:|
000017d0  53 54 41 64 65 61 64 0d  07 c6 4e 2e 6e 65 78 74  |STAdead...N.next|
000017e0  62 61 6c 6c 62 20 4a 53  52 62 61 6c 6c 63 68 65  |ballb JSRballche|
000017f0  63 6b 3a 49 4e 58 3a 43  50 58 23 32 3a 42 4e 45  |ck:INX:CPX#2:BNE|
00001800  20 62 61 6c 6c 6f 70 74  3a 4a 4d 50 63 75 72 73  | ballopt:JMPcurs|
00001810  6f 72 3a 2e 62 61 6c 6c  6f 70 74 20 4a 4d 50 62  |or:.ballopt JMPb|
00001820  61 6c 6c 6f 70 0d 07 d0  0e 5d 3a 50 25 3d 26 31  |allop....]:P%=&1|
00001830  41 30 30 0d 07 da 0d 5b  4f 50 54 20 70 61 73 73  |A00....[OPT pass|
00001840  0d 07 e4 0c 4a 4d 50 73  65 74 75 70 0d 07 ee 53  |....JMPsetup...S|
00001850  2e 67 65 74 61 64 20 43  4c 43 3a 41 44 43 26 37  |.getad CLC:ADC&7|
00001860  30 3a 53 54 41 26 37 30  3a 4c 44 41 26 37 31 3a  |0:STA&70:LDA&71:|
00001870  41 44 43 23 30 3a 53 54  41 26 37 31 3a 54 59 41  |ADC#0:STA&71:TYA|
00001880  3a 41 53 4c 20 41 3a 41  53 4c 20 41 3a 41 53 4c  |:ASL A:ASL A:ASL|
00001890  20 41 3a 53 54 41 26 37  32 3a 4c 44 59 23 30 0d  | A:STA&72:LDY#0.|
000018a0  07 f8 61 2e 67 65 74 6c  6f 70 20 4c 44 41 26 37  |..a.getlop LDA&7|
000018b0  30 3a 43 4c 43 3a 41 44  43 26 37 32 3a 53 54 41  |0:CLC:ADC&72:STA|
000018c0  26 37 30 3a 4c 44 41 26  37 31 3a 41 44 43 23 30  |&70:LDA&71:ADC#0|
000018d0  3a 53 54 41 26 37 31 3a  49 4e 59 3a 43 50 59 23  |:STA&71:INY:CPY#|
000018e0  35 3a 42 4e 45 67 65 74  6c 6f 70 3a 4c 44 59 23  |5:BNEgetlop:LDY#|
000018f0  30 3a 4c 44 41 28 26 37  30 29 2c 59 3a 52 54 53  |0:LDA(&70),Y:RTS|
00001900  0d 08 02 a7 2e 63 75 72  73 6f 72 20 4c 44 41 23  |.....cursor LDA#|
00001910  33 31 3a 4a 53 52 6f 73  77 72 63 68 3a 4c 44 41  |31:JSRoswrch:LDA|
00001920  63 78 3a 4a 53 52 6f 73  77 72 63 68 3a 4c 44 41  |cx:JSRoswrch:LDA|
00001930  63 79 3a 4a 53 52 6f 73  77 72 63 68 3a 4c 44 41  |cy:JSRoswrch:LDA|
00001940  23 30 3a 53 54 41 26 37  30 3a 4c 44 41 23 26 31  |#0:STA&70:LDA#&1|
00001950  31 3a 53 54 41 26 37 31  3a 4c 44 41 63 78 3a 4c  |1:STA&71:LDAcx:L|
00001960  44 59 63 79 3a 4a 53 52  67 65 74 61 64 3a 43 4d  |DYcy:JSRgetad:CM|
00001970  50 23 31 3a 42 45 51 62  6c 6f 63 6b 3a 43 4d 50  |P#1:BEQblock:CMP|
00001980  23 32 3a 42 45 51 73 70  69 6b 65 3a 4c 44 41 23  |#2:BEQspike:LDA#|
00001990  31 32 39 3a 4a 53 52 6f  73 77 72 63 68 3a 4a 4d  |129:JSRoswrch:JM|
000019a0  50 63 75 72 64 65 6c 0d  08 0c 47 2e 62 6c 6f 63  |Pcurdel...G.bloc|
000019b0  6b 20 4c 44 41 23 31 37  3a 4a 53 52 6f 73 77 72  |k LDA#17:JSRoswr|
000019c0  63 68 3a 4c 44 41 23 31  3a 4a 53 52 6f 73 77 72  |ch:LDA#1:JSRoswr|
000019d0  63 68 3a 4c 44 41 23 31  32 38 3a 4a 53 52 6f 73  |ch:LDA#128:JSRos|
000019e0  77 72 63 68 3a 4a 4d 50  63 75 72 64 65 6c 0d 08  |wrch:JMPcurdel..|
000019f0  16 3d 2e 73 70 69 6b 65  20 4c 44 41 23 31 37 3a  |.=.spike LDA#17:|
00001a00  4a 53 52 6f 73 77 72 63  68 3a 4c 44 41 23 31 3a  |JSRoswrch:LDA#1:|
00001a10  4a 53 52 6f 73 77 72 63  68 3a 4c 44 41 23 31 33  |JSRoswrch:LDA#13|
00001a20  32 3a 4a 53 52 6f 73 77  72 63 68 0d 08 20 47 2e  |2:JSRoswrch.. G.|
00001a30  63 75 72 64 65 6c 20 4c  44 41 23 26 38 31 3a 4c  |curdel LDA#&81:L|
00001a40  44 58 23 30 3a 4c 44 59  23 30 3a 4a 53 52 6f 73  |DX#0:LDY#0:JSRos|
00001a50  62 79 74 65 3a 42 43 43  6b 65 79 70 72 6f 3a 2e  |byte:BCCkeypro:.|
00001a60  6e 6f 6d 6f 76 65 74 20  4a 4d 50 20 6e 6f 6d 6f  |nomovet JMP nomo|
00001a70  76 65 0d 08 2a 43 2e 6b  65 79 70 72 6f 20 43 50  |ve..*C.keypro CP|
00001a80  58 6b 6c 3a 42 4e 45 6e  6f 74 6b 6c 3a 4c 44 41  |Xkl:BNEnotkl:LDA|
00001a90  63 78 3a 43 4d 50 23 31  3a 42 45 51 20 6e 6f 6d  |cx:CMP#1:BEQ nom|
00001aa0  6f 76 65 74 3a 44 45 43  63 78 3a 4a 4d 50 6e 6f  |ovet:DECcx:JMPno|
00001ab0  6d 6f 76 65 74 0d 08 34  42 2e 6e 6f 74 6b 6c 20  |movet..4B.notkl |
00001ac0  43 50 58 6b 72 3a 42 4e  45 6e 6f 74 6b 72 3a 4c  |CPXkr:BNEnotkr:L|
00001ad0  44 41 63 78 3a 43 4d 50  23 33 38 3a 42 45 51 20  |DAcx:CMP#38:BEQ |
00001ae0  6e 6f 6d 6f 76 65 3a 49  4e 43 63 78 3a 4a 4d 50  |nomove:INCcx:JMP|
00001af0  6e 6f 6d 6f 76 65 74 0d  08 3e 41 2e 6e 6f 74 6b  |nomovet..>A.notk|
00001b00  72 20 43 50 58 6b 75 3a  42 4e 45 6e 6f 74 6b 75  |r CPXku:BNEnotku|
00001b10  3a 4c 44 41 63 79 3a 43  4d 50 23 31 3a 42 45 51  |:LDAcy:CMP#1:BEQ|
00001b20  20 6e 6f 6d 6f 76 65 3a  44 45 43 63 79 3a 4a 4d  | nomove:DECcy:JM|
00001b30  50 6e 6f 6d 6f 76 65 74  0d 08 48 41 2e 6e 6f 74  |Pnomovet..HA.not|
00001b40  6b 75 20 43 50 58 6b 64  3a 42 4e 45 6e 6f 74 6b  |ku CPXkd:BNEnotk|
00001b50  64 3a 4c 44 41 63 79 3a  43 4d 50 23 32 34 3a 42  |d:LDAcy:CMP#24:B|
00001b60  45 51 20 6e 6f 6d 6f 76  65 3a 49 4e 43 63 79 3a  |EQ nomove:INCcy:|
00001b70  4a 4d 50 6e 6f 6d 6f 76  65 0d 08 52 8f 2e 6e 6f  |JMPnomove..R..no|
00001b80  74 6b 64 20 43 50 58 6b  73 3a 42 4e 45 6e 6f 74  |tkd CPXks:BNEnot|
00001b90  6b 73 3a 4c 44 41 6d 6f  6e 3a 43 4d 50 23 35 3a  |ks:LDAmon:CMP#5:|
00001ba0  42 43 43 20 6e 6f 6d 6f  76 65 3a 4c 44 41 63 78  |BCC nomove:LDAcx|
00001bb0  3a 4c 44 59 63 79 3a 4a  53 52 67 65 74 63 6c 72  |:LDYcy:JSRgetclr|
00001bc0  3a 4c 44 41 28 26 37 30  29 2c 59 3a 42 4e 45 6e  |:LDA(&70),Y:BNEn|
00001bd0  6f 6d 6f 76 65 3a 4c 44  41 23 31 3a 53 54 41 28  |omove:LDA#1:STA(|
00001be0  26 37 30 29 2c 59 3a 4c  44 41 6d 6f 6e 3a 53 45  |&70),Y:LDAmon:SE|
00001bf0  43 3a 53 42 43 23 35 3a  53 54 41 6d 6f 6e 3a 4a  |C:SBC#5:STAmon:J|
00001c00  4d 50 6e 6f 6d 6f 76 65  0d 08 5c 58 2e 6e 6f 74  |MPnomove..\X.not|
00001c10  6b 73 20 43 50 58 6b 63  3a 42 4e 45 6e 6f 6d 6f  |ks CPXkc:BNEnomo|
00001c20  76 65 3a 4c 44 41 63 78  3a 4c 44 59 63 79 3a 4a  |ve:LDAcx:LDYcy:J|
00001c30  53 52 67 65 74 63 6c 72  3a 43 4d 50 23 31 3a 42  |SRgetclr:CMP#1:B|
00001c40  4e 45 6e 6f 6d 6f 76 65  3a 4c 44 41 23 30 3a 53  |NEnomove:LDA#0:S|
00001c50  54 41 28 26 37 30 29 2c  59 3a 49 4e 43 6d 6f 6e  |TA(&70),Y:INCmon|
00001c60  0d 08 66 87 2e 6e 6f 6d  6f 76 65 20 4c 44 41 23  |..f..nomove LDA#|
00001c70  33 31 3a 4a 53 52 6f 73  77 72 63 68 3a 4c 44 41  |31:JSRoswrch:LDA|
00001c80  63 78 3a 4a 53 52 6f 73  77 72 63 68 3a 4c 44 41  |cx:JSRoswrch:LDA|
00001c90  63 79 3a 4a 53 52 6f 73  77 72 63 68 3a 4c 44 41  |cy:JSRoswrch:LDA|
00001ca0  23 31 37 3a 4a 53 52 6f  73 77 72 63 68 3a 4c 44  |#17:JSRoswrch:LD|
00001cb0  41 23 33 3a 4a 53 52 6f  73 77 72 63 68 3a 4c 44  |A#3:JSRoswrch:LD|
00001cc0  41 23 31 33 31 3a 4a 53  52 6f 73 77 72 63 68 3a  |A#131:JSRoswrch:|
00001cd0  4c 44 41 23 26 31 35 3a  4c 44 58 23 30 3a 4a 4d  |LDA#&15:LDX#0:JM|
00001ce0  50 6f 73 62 79 74 65 0d  08 70 55 2e 62 61 6c 6c  |Posbyte..pU.ball|
00001cf0  63 68 65 63 6b 20 4c 44  41 78 62 61 6c 6c 3a 43  |check LDAxball:C|
00001d00  4d 50 78 62 61 6c 6c 2b  31 3a 42 4e 45 6e 6f 68  |MPxball+1:BNEnoh|
00001d10  69 74 3a 4c 44 41 79 62  61 6c 6c 3a 43 4d 50 79  |it:LDAyball:CMPy|
00001d20  62 61 6c 6c 2b 31 3a 42  4e 45 6e 6f 68 69 74 3a  |ball+1:BNEnohit:|
00001d30  4c 44 41 23 31 3a 53 54  41 68 69 74 0d 08 7a 0e  |LDA#1:STAhit..z.|
00001d40  2e 6e 6f 68 69 74 20 52  54 53 0d 08 84 2c 2e 73  |.nohit RTS...,.s|
00001d50  65 74 75 70 20 4c 44 59  23 30 3a 53 54 59 26 37  |etup LDY#0:STY&7|
00001d60  30 3a 4c 44 41 23 26 31  31 3a 53 54 41 26 37 31  |0:LDA#&11:STA&71|
00001d70  3a 4c 44 41 23 30 0d 08  8e 6b 2e 73 65 74 6c 6f  |:LDA#0...k.setlo|
00001d80  70 20 53 54 41 28 26 37  30 29 2c 59 3a 49 4e 59  |p STA(&70),Y:INY|
00001d90  3a 42 4e 45 73 65 74 6c  6f 70 3a 49 4e 43 26 37  |:BNEsetlop:INC&7|
00001da0  31 3a 4c 44 58 26 37 31  3a 43 50 58 23 26 31 35  |1:LDX&71:CPX#&15|
00001db0  3a 42 4e 45 73 65 74 6c  6f 70 3a 53 54 41 26 42  |:BNEsetlop:STA&B|
00001dc0  46 39 3a 53 54 41 26 42  45 46 3a 4c 44 41 28 26  |F9:STA&BEF:LDA(&|
00001dd0  37 33 29 2c 59 3a 54 41  58 3a 49 4e 58 3a 49 4e  |73),Y:TAX:INX:IN|
00001de0  59 0d 08 98 aa 2e 70 6f  6c 6f 70 20 4c 44 41 23  |Y.....polop LDA#|
00001df0  33 31 3a 4a 53 52 6f 73  77 72 63 68 3a 4c 44 41  |31:JSRoswrch:LDA|
00001e00  28 26 37 33 29 2c 59 3a  50 48 41 3a 4a 53 52 6f  |(&73),Y:PHA:JSRo|
00001e10  73 77 72 63 68 3a 49 4e  59 3a 4c 44 41 28 26 37  |swrch:INY:LDA(&7|
00001e20  33 29 2c 59 3a 50 48 41  3a 4a 53 52 6f 73 77 72  |3),Y:PHA:JSRoswr|
00001e30  63 68 3a 49 4e 59 3a 53  54 59 26 37 35 3a 4c 44  |ch:INY:STY&75:LD|
00001e40  41 23 31 32 38 3a 4a 53  52 6f 73 77 72 63 68 3a  |A#128:JSRoswrch:|
00001e50  50 4c 41 3a 54 41 59 3a  50 4c 41 3a 4a 53 52 67  |PLA:TAY:PLA:JSRg|
00001e60  65 74 63 6c 72 3a 4c 44  41 23 31 3a 53 54 41 28  |etclr:LDA#1:STA(|
00001e70  26 37 30 29 2c 59 3a 4c  44 59 26 37 35 3a 44 45  |&70),Y:LDY&75:DE|
00001e80  58 3a 42 4e 45 20 70 6f  6c 6f 70 0d 08 a2 99 4c  |X:BNE polop....L|
00001e90  44 41 23 30 3a 53 54 41  26 42 46 32 3a 53 54 41  |DA#0:STA&BF2:STA|
00001ea0  26 42 46 33 3a 4c 44 41  28 26 37 33 29 2c 59 3a  |&BF3:LDA(&73),Y:|
00001eb0  53 54 41 26 42 46 34 3a  49 4e 59 3a 4c 44 41 28  |STA&BF4:INY:LDA(|
00001ec0  26 37 33 29 2c 59 3a 53  54 41 26 42 46 36 3a 49  |&73),Y:STA&BF6:I|
00001ed0  4e 59 3a 4c 44 41 28 26  37 33 29 2c 59 3a 53 54  |NY:LDA(&73),Y:ST|
00001ee0  41 26 42 46 35 3a 49 4e  59 3a 4c 44 41 28 26 37  |A&BF5:INY:LDA(&7|
00001ef0  33 29 2c 59 3a 53 54 41  26 42 46 37 3a 49 4e 59  |3),Y:STA&BF7:INY|
00001f00  3a 4c 44 41 28 26 37 33  29 2c 59 3a 54 41 58 3a  |:LDA(&73),Y:TAX:|
00001f10  49 4e 59 3a 43 50 58 23  30 3a 42 45 51 6e 6f 73  |INY:CPX#0:BEQnos|
00001f20  70 69 6b 65 0d 08 ac ac  2e 73 70 6b 6c 6f 70 20  |pike.....spklop |
00001f30  4c 44 41 23 33 31 3a 4a  53 52 6f 73 77 72 63 68  |LDA#31:JSRoswrch|
00001f40  3a 4c 44 41 28 26 37 33  29 2c 59 3a 50 48 41 3a  |:LDA(&73),Y:PHA:|
00001f50  4a 53 52 6f 73 77 72 63  68 3a 49 4e 59 3a 4c 44  |JSRoswrch:INY:LD|
00001f60  41 28 26 37 33 29 2c 59  3a 50 48 41 3a 4a 53 52  |A(&73),Y:PHA:JSR|
00001f70  6f 73 77 72 63 68 3a 49  4e 59 3a 53 54 59 26 37  |oswrch:INY:STY&7|
00001f80  35 3a 4c 44 41 23 31 33  32 3a 4a 53 52 6f 73 77  |5:LDA#132:JSRosw|
00001f90  72 63 68 3a 50 4c 41 3a  54 41 59 3a 50 4c 41 3a  |rch:PLA:TAY:PLA:|
00001fa0  4a 53 52 67 65 74 63 6c  72 3a 4c 44 41 23 32 3a  |JSRgetclr:LDA#2:|
00001fb0  53 54 41 28 26 37 30 29  2c 59 3a 4c 44 59 26 37  |STA(&70),Y:LDY&7|
00001fc0  35 3a 44 45 58 3a 42 4e  45 20 73 70 6b 6c 6f 70  |5:DEX:BNE spklop|
00001fd0  0d 08 b6 10 2e 6e 6f 73  70 69 6b 65 20 52 54 53  |.....nospike RTS|
00001fe0  0d 08 c0 38 2e 67 65 74  63 6c 72 20 50 48 41 3a  |...8.getclr PHA:|
00001ff0  4c 44 41 23 30 3a 53 54  41 26 37 30 3a 4c 44 41  |LDA#0:STA&70:LDA|
00002000  23 26 31 31 3a 53 54 41  26 37 31 3a 50 4c 41 3a  |#&11:STA&71:PLA:|
00002010  4a 4d 50 67 65 74 61 64  0d 08 ca 12 5d 3a f1 7e  |JMPgetad....]:.~|
00002020  50 25 3a 50 25 3d 26 42  45 46 0d 08 d4 0d 5b 4f  |P%:P%=&BEF....[O|
00002030  50 54 20 70 61 73 73 0d  08 de 0f 2e 68 69 74 20  |PT pass.....hit |
00002040  45 51 55 42 20 30 0d 08  e8 0e 2e 63 78 20 45 51  |EQUB 0.....cx EQ|
00002050  55 42 20 30 0d 08 f2 0e  2e 63 79 20 45 51 55 42  |UB 0.....cy EQUB|
00002060  20 30 0d 08 fc 0f 2e 64  69 72 20 45 51 55 57 20  | 0.....dir EQUW |
00002070  30 0d 09 06 11 2e 78 62  61 6c 6c 20 45 51 55 57  |0.....xball EQUW|
00002080  20 30 0d 09 10 11 2e 79  62 61 6c 6c 20 45 51 55  | 0.....yball EQU|
00002090  57 20 30 0d 09 1a 0f 2e  6d 6f 6e 20 45 51 55 42  |W 0.....mon EQUB|
000020a0  20 30 0d 09 24 10 2e 64  65 61 64 20 45 51 55 42  | 0..$..dead EQUB|
000020b0  20 30 0d 09 2e 10 2e 6b  6c 20 45 51 55 53 20 22  | 0.....kl EQUS "|
000020c0  5a 22 0d 09 38 10 2e 6b  72 20 45 51 55 53 20 22  |Z"..8..kr EQUS "|
000020d0  58 22 0d 09 42 10 2e 6b  75 20 45 51 55 53 20 22  |X"..B..ku EQUS "|
000020e0  4b 22 0d 09 4c 10 2e 6b  64 20 45 51 55 53 20 22  |K"..L..kd EQUS "|
000020f0  4d 22 0d 09 56 10 2e 6b  73 20 45 51 55 53 20 22  |M"..V..ks EQUS "|
00002100  4c 22 0d 09 60 10 2e 6b  63 20 45 51 55 53 20 22  |L"..`..kc EQUS "|
00002110  20 22 0d 09 6a 05 5d 0d  09 74 05 ed 0d 09 7e 05  | "..j.]..t....~.|
00002120  e1 0d 09 88 05 3a 0d 09  92 0b dd f2 72 65 6c 6f  |.....:......relo|
00002130  63 0d 09 9c 16 f1 22 52  65 6c 6f 63 61 74 69 6e  |c....."Relocatin|
00002140  67 2e 20 2e 20 2e 22 0d  09 a6 0b 3f 26 37 38 3d  |g. . ."....?&78=|
00002150  34 35 0d 09 b0 17 d3 3d  26 35 38 30 30 3a 6e 65  |45.....=&5800:ne|
00002160  77 70 61 67 65 3d 26 31  44 0d 09 ba 14 e3 20 70  |wpage=&1D..... p|
00002170  61 73 73 3d 30 20 b8 20  32 20 88 20 32 0d 09 c4  |ass=0 . 2 . 2...|
00002180  0b 50 25 3d 26 43 30 30  0d 09 ce 0c 5b 4f 50 54  |.P%=&C00....[OPT|
00002190  70 61 73 73 0d 09 d8 0d  20 20 20 20 4c 44 59 23  |pass....    LDY#|
000021a0  30 0d 09 e2 0e 20 20 20  20 53 54 59 26 37 30 0d  |0....    STY&70.|
000021b0  09 ec 0e 20 20 20 20 53  54 59 26 37 32 0d 09 f6  |...    STY&72...|
000021c0  13 20 20 20 20 4c 44 41  23 6e 65 77 70 61 67 65  |.    LDA#newpage|
000021d0  0d 0a 00 0b 20 20 20 20  53 45 43 0d 0a 0a 0e 20  |....    SEC.... |
000021e0  20 20 20 53 42 43 26 31  38 0d 0a 14 0e 20 20 20  |   SBC&18....   |
000021f0  20 53 54 41 26 37 34 0d  0a 1e 0e 20 20 20 20 4c  | STA&74....    L|
00002200  44 41 26 31 38 0d 0a 28  13 20 20 20 20 43 4d 50  |DA&18..(.    CMP|
00002210  23 6e 65 77 70 61 67 65  0d 0a 32 0d 20 20 20 20  |#newpage..2.    |
00002220  42 43 43 61 64 0d 0a 3c  0e 2e 73 62 20 53 54 41  |BCCad..<..sb STA|
00002230  26 37 31 0d 0a 46 13 20  20 20 20 4c 44 41 23 6e  |&71..F.    LDA#n|
00002240  65 77 70 61 67 65 0d 0a  50 0e 20 20 20 20 53 54  |ewpage..P.    ST|
00002250  41 26 37 33 0d 0a 5a 12  2e 6d 31 20 4c 44 41 28  |A&73..Z..m1 LDA(|
00002260  26 37 30 29 2c 59 0d 0a  64 12 20 20 20 20 53 54  |&70),Y..d.    ST|
00002270  41 28 26 37 32 29 2c 59  0d 0a 6e 0b 20 20 20 20  |A(&72),Y..n.    |
00002280  49 4e 59 0d 0a 78 0d 20  20 20 20 42 4e 45 6d 31  |INY..x.    BNEm1|
00002290  0d 0a 82 0e 20 20 20 20  49 4e 43 26 37 31 0d 0a  |....    INC&71..|
000022a0  8c 0e 20 20 20 20 49 4e  43 26 37 33 0d 0a 96 0e  |..    INC&73....|
000022b0  20 20 20 20 4c 44 58 26  37 31 0d 0a a0 0b 20 20  |    LDX&71....  |
000022c0  20 20 44 45 58 0d 0a aa  0e 20 20 20 20 43 50 58  |  DEX....    CPX|
000022d0  26 30 33 0d 0a b4 0d 20  20 20 20 42 43 43 6d 31  |&03....    BCCm1|
000022e0  0d 0a be 0d 20 20 20 20  42 43 53 65 6d 0d 0a c8  |....    BCSem...|
000022f0  0e 2e 61 64 20 4c 44 41  26 30 33 0d 0a d2 0e 20  |..ad LDA&03.... |
00002300  20 20 20 53 54 41 26 37  31 0d 0a dc 0b 20 20 20  |   STA&71....   |
00002310  20 43 4c 43 0d 0a e6 0e  20 20 20 20 41 44 43 26  | CLC....    ADC&|
00002320  37 34 0d 0a f0 0e 20 20  20 20 53 54 41 26 37 33  |74....    STA&73|
00002330  0d 0a fa 0d 20 20 20 20  4c 44 41 23 30 0d 0b 04  |....    LDA#0...|
00002340  0e 20 20 20 20 4c 44 59  26 30 32 0d 0b 0e 12 2e  |.    LDY&02.....|
00002350  6d 32 20 4c 44 41 28 26  37 30 29 2c 59 0d 0b 18  |m2 LDA(&70),Y...|
00002360  12 20 20 20 20 53 54 41  28 26 37 32 29 2c 59 0d  |.    STA(&72),Y.|
00002370  0b 22 0b 20 20 20 20 44  45 59 0d 0b 2c 0f 20 20  |.".    DEY..,.  |
00002380  20 20 43 50 59 23 26 46  46 0d 0b 36 0d 20 20 20  |  CPY#&FF..6.   |
00002390  20 42 4e 45 6d 32 0d 0b  40 0e 20 20 20 20 44 45  | BNEm2..@.    DE|
000023a0  43 26 37 31 0d 0b 4a 0e  20 20 20 20 44 45 43 26  |C&71..J.    DEC&|
000023b0  37 33 0d 0b 54 0e 20 20  20 20 4c 44 41 26 37 33  |73..T.    LDA&73|
000023c0  0d 0b 5e 17 20 20 20 20  43 4d 50 23 28 6e 65 77  |..^.    CMP#(new|
000023d0  70 61 67 65 2d 31 29 0d  0b 68 0d 20 20 20 20 42  |page-1)..h.    B|
000023e0  43 53 6d 32 0d 0b 72 0e  2e 65 6d 20 4c 44 41 26  |CSm2..r..em LDA&|
000023f0  31 33 0d 0b 7c 0b 20 20  20 20 43 4c 43 0d 0b 86  |13..|.    CLC...|
00002400  0e 20 20 20 20 41 44 43  26 37 34 0d 0b 90 0e 20  |.    ADC&74.... |
00002410  20 20 20 53 54 41 26 31  33 0d 0b 9a 0e 20 20 20  |   STA&13....   |
00002420  20 53 54 41 26 30 31 0d  0b a4 13 20 20 20 20 4c  | STA&01....    L|
00002430  44 41 23 6e 65 77 70 61  67 65 0d 0b ae 0e 20 20  |DA#newpage....  |
00002440  20 20 53 54 41 26 31 38  0d 0b b8 0b 20 20 20 20  |  STA&18....    |
00002450  52 54 53 0d 0b c2 05 5d  0d 0b cc 05 ed 0d 0b d6  |RTS....]........|
00002460  08 ef 20 32 31 0d 0b e0  31 ff 22 4b 45 59 20 30  |.. 21...1."KEY 0|
00002470  22 22 43 41 4c 4c 26 43  30 30 7c 4d 52 55 4e 7c  |""CALL&C00|MRUN||
00002480  46 7c 4d 22 22 22 3a ff  22 46 58 20 31 35 33 2c  |F|M""":."FX 153,|
00002490  30 2c 31 32 38 22 0d 0b  ea 05 e0 0d 0b f4 05 e1  |0,128"..........|
000024a0  0d ff                                             |..|
000024a2