Home » Archimedes archive » Micro User » MU 1991-01.adf » PD-Stuff » !Impact/!RunImage

!Impact/!RunImage

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 » Micro User » MU 1991-01.adf » PD-Stuff
Filename: !Impact/!RunImage
Read OK:
File size: 4E7C bytes
Load address: 0000
Exec address: 0000
File contents
   10MOUSESTEP 2
   20MODE9
   30COLOUR1,&80,&80,&80
   40COLOUR2,&B0,&B0,&B0
   50COLOUR3,&00,&90,&10
   60COLOUR4,&E0,&00,&00
   70COLOUR5,&F0,&B0,&00
   80COLOUR6,&F0,&F0,&00
   90COLOUR7,&00,&40,&A0
  100COLOUR8,&00,&F0,&00
  110COLOUR9,&00,&B0,&60
  120COLOUR10,&40,&90,&F0
  130COLOUR11,&70,&00,&D0
  140COLOUR12,&B0,&70,&00
  150COLOUR13,&F0,&90,&00
  160COLOUR14,&E0,&00,&E0
  170COLOUR15,&F0,&F0,&F0
  171*CHANNELVOICE 1 StringLib-Soft
  180DIM code% &10000,screen% 23400,ballb% 8,batb% 84,bad1b% 100,bad2b% 100,tokb% 45
  190OSCLI("LOAD <Obey$Dir>.Screens "+STR$~screen%)
  200*SLOAD <Obey$Dir>.Sprites
  210VDU23,224,247,247,247,0,127,127,127,0
  220VDU23,225,247,247,247,0,126,126,126,0
  230VDU23,226,0,&7F,&7F,&7F,&7F,&7F,&7F,&7F
  240VDU23,227,0,&FF,&FF,&FF,&FF,&FF,&FF,&FF
  250VDU23,228,&80,&80,&80,0,0,0,0,0
  260VDU23,229,119,119,119,0,63,63,63,0
  270VDU23,1,0|
  280FOR pass=0 TO 2 STEP 2
  290P%=code%
  300[OPT pass
  310.score EQUD 0
  320.tempx EQUD 0
  330.framecount EQUD 0
  340.bounceadr EQUD bounce
  350.i1nadr EQUD i1n
  360.i1hadr EQUD i1h
  370.iconxadr EQUD iconxtable
  380.iconyadr EQUD iconytable
  390.bl1x     EQUD 0
  400.bl1y     EQUD 0
  410.bl2x     EQUD 0
  420.bl2y     EQUD 0
  430.mstop EQUD &1FD8000
  440.vdublk EQUD 149:EQUD -1
  450.vduout EQUD 0:EQUD 0
  460.ballXm EQUD 640
  470.ballYm EQUD 320
  480.batXm  EQUD 0
  490.batYm  EQUD 96
  500.bad1Xm EQUD 128
  510.bad1Ym EQUD 704
  520.bad2Xm EQUD 768
  530.bad2Ym EQUD 256
  540.tokXm  EQUD 0
  550.tokYm  EQUD 0
  560.tokabs   EQUD 0
  570.tokadr   EQUD to1
  580.tokbadr  EQUD tokb%
  590.ballabs EQUD 0
  600.balladr EQUD ball
  610.ballbadr EQUD ballb%
  620.batabs  EQUD 0
  630.batadr  EQUD bat
  640.batbadr  EQUD batb%
  650.b1adr   EQUD b1
  660.bl1adr  EQUD bl1
  670.ex1adr EQUD ex1
  680.ex2adr EQUD ex1
  690.bad1abs   EQUD 0
  700.bad1badr    EQUD bad1b%
  710.bad2abs   EQUD 0
  720.bad2badr    EQUD bad2b%
  730.blocksadr EQUD blocks
  740.screen EQUD screen%
  750.iconxtable EQUD 992
  760EQUD 1056
  770EQUD 1120
  780EQUD 992
  790EQUD 1056
  800EQUD 1120
  810EQUD 992
  820EQUD 1056
  830EQUD 1120
  840.iconytable EQUD 272
  850EQUD 272
  860EQUD 272
  870EQUD 208
  880EQUD 208
  890EQUD 208
  900EQUD 144
  910EQUD 144
  920EQUD 144
  930.Xmadr EQUD ballXm
  940.b1      EQUS "b1 "+CHR$0
  950.b2      EQUS "b2 "+CHR$0
  960.b3      EQUS "b3 "+CHR$0
  970.b4      EQUS "b4 "+CHR$0
  980.bl1     EQUS "bl4"+CHR$0
  990.bl2     EQUS "bl2"+CHR$0
 1000.bl3     EQUS "bl4"+CHR$0
 1010.bl4     EQUS "bl4"+CHR$0
 1020.ex1     EQUS "ex1"+CHR$0
 1030.ex2     EQUS "ex2"+CHR$0
 1040.ex3     EQUS "bx "+CHR$0
 1050.ex4     EQUS "bx "+CHR$0
 1060.bat     EQUS "ba1"+CHR$0
 1070.ba2    EQUS "ba2"+CHR$0
 1080.ba3    EQUS "ba3"+CHR$0
 1090.ba4    EQUS "ba4"+CHR$0
 1100.ba5    EQUS "ba5"+CHR$0
 1110.ba6    EQUS "ba6"+CHR$0
 1120.ball    EQUS "bal"+CHR$0
 1130.to1     EQUS "to1"+CHR$0
 1140.to2     EQUS "to2"+CHR$0
 1150.to3     EQUS "to3"+CHR$0
 1160.to4     EQUS "to4"+CHR$0
 1170.to5     EQUS "to3"+CHR$0
 1180.to6     EQUS "to2"+CHR$0
 1190.to7     EQUS "to1"+CHR$0
 1200.i1n     EQUS "i1n"+CHR$0
 1210.i2n     EQUS "i2n"+CHR$0
 1220.i3n     EQUS "i3n"+CHR$0
 1230.i4n     EQUS "i4n"+CHR$0
 1240.i5n     EQUS "i5n"+CHR$0
 1250.i6n     EQUS "i6n"+CHR$0
 1260.i7n     EQUS "i7n"+CHR$0
 1270.i8n     EQUS "i8n"+CHR$0
 1280.i9n     EQUS "i9n"+CHR$0
 1290.i1h      EQUS "i1h"+CHR$0
 1300.i2h      EQUS "i2h"+CHR$0
 1310.i3h      EQUS "i3h"+CHR$0
 1320.i4h      EQUS "i4h"+CHR$0
 1330.i5h      EQUS "i5h"+CHR$0
 1340.i6h      EQUS "i6h"+CHR$0
 1350.i7h      EQUS "i7h"+CHR$0
 1360.i8h      EQUS "i8h"+CHR$0
 1370.i9h      EQUS "i9h"+CHR$0
 1380.screenlevel EQUB 0
 1390.Ex1num EQUB 0
 1400.Ex2num EQUB 0
 1410.Blnum EQUB 0
 1420.BallVX EQUB 2
 1430.BallVY EQUB 16
 1440.Bad1VX EQUB 4
 1450.Bad1VY EQUB 4
 1460.Bad2VX EQUB 4
 1470.Bad2VY EQUB 4
 1480.Bad1frame EQUB 0
 1490.Bad2frame EQUB 1
 1500.Tokframe EQUB 0
 1510.Iconframe EQUB 255
 1520.Batframe EQUB 0
 1530.Hits EQUB 0 ;Hit counter
 1540.Balls EQUB 10
 1550.Pitch EQUB 0
 1560ALIGN
 1570.blocks EQUS STRING$(236,CHR$0)
 1580.bounce EQUS CHR$16+CHR$16+CHR$8+CHR$8+CHR$4+CHR$4+CHR$4+CHR$2+CHR$2+CHR$2+CHR$4+CHR$4+CHR$4+CHR$8+CHR$8+CHR$16
 1590EQUS STRING$(32,CHR$1)
 1600ALIGN
 1610.start STMFD R13!,{R0-R12,R14}
 1620 ADR R0,vdublk
 1630 ADR R1,vduout
 1640 SWI &31
 1650 LDR R0,vduout
 1660 STR R0,mstop
 1670BL setup
 1680B newball
 1690.positions STMFD R13!,{R14}
 1700LDR R2,balladr
 1710LDR R3,[R6,#0]
 1720LDR R4,[R6,#4]
 1730BL spriteplot ;Draw ball
 1740TST R12,#8 ;Test ex1flag
 1750LDRNEB R1,Ex1num
 1760LDRNE R2,ex1adr
 1770LDREQB R1,Bad1frame
 1780LDREQ R2,b1adr
 1790.drawbad1 ADD R2,R2,R1,LSL#2 ;Get bad1's address in R2
 1800LDR R3,[R6,#16]
 1810LDR R4,[R6,#20]
 1820BL spriteplot ;Draw bad1
 1830TST R12,#16 ;Test ex2flag
 1840LDRNEB R1,Ex2num
 1850LDRNE R2,ex2adr
 1860LDREQB R1,Bad2frame
 1870LDREQ R2,b1adr
 1880.drawbad2 ADD R2,R2,R1,LSL#2 ;Get bad2's address in R2
 1890LDR R3,[R6,#24]
 1900LDR R4,[R6,#28]
 1910BL spriteplot ;Draw bad2
 1920LDRB R1,Batframe
 1930LDR R2,batadr
 1940ADD R2,R2,R1,LSL#2
 1950LDR R3,[R6,#8]
 1960LDR R4,[R6,#12]
 1970BL spriteplot ;Draw bat
 1980TST R12,#8192 ;Iconflag
 1990BEQ dotok
 2000LDRB R1,Iconframe
 2010CMP R1,#255
 2020BEQ firsticon
 2030LDR R2,i1nadr
 2040ADD R2,R2,R1,LSL#2 ;Get normal icon address in R2
 2050LDR R5,iconxadr
 2060LDR R3,[R5,R1,LSL#2]
 2070LDR R5,iconyadr
 2080LDR R4,[R5,R1,LSL#2]
 2090BL spriteplot
 2100LDRB R1,Iconframe
 2110ADD R1,R1,#1
 2120CMP R1,#9
 2130.firsticon MOVEQ R1,#0
 2140STRB R1,Iconframe
 2150LDR R2,i1hadr
 2160ADD R2,R2,R1,LSL#2 ;Get highlighted icon address in R2
 2170LDR R5,iconxadr
 2180LDR R3,[R5,R1,LSL#2]
 2190LDR R5,iconyadr
 2200LDR R4,[R5,R1,LSL#2]
 2210BL spriteplot
 2220BIC R12,R12,#8192 ;Clear iconflag
 2230.dotok TST R12,#64 ;Test tokflag
 2240BEQ exitpos
 2250LDRB R1,Tokframe
 2260LDR R2,tokadr
 2270ADD R2,R2,R1,LSL#2 ;Get tok address in R2
 2280LDR R3,[R6,#32]
 2290LDR R4,[R6,#36]
 2300BL spriteplot ;Draw tok
 2310.exitpos LDMFD R13!,{R15}
 2320.loop LDR R0,framecount ;Main loop **********************
 2330ADD R0,R0,#1
 2340STR R0,framecount
 2350ANDS R0,R0,#7
 2360ORREQ R12,R12,#32768 ;Set frameflag
 2370BICNE R12,R12,#32768 ;Clear frameflag
 2380LDR R0,ballXm
 2390LDR R1,ballYm
 2400LDRB R2,BallVX
 2410LDRB R3,BallVY
 2420.ballcalc TST R12,#1 ;Test ballxdir
 2430SUBEQ R0,R0,R2
 2440ADDNE R0,R0,R2
 2450STR R0,ballXm
 2460TST R12,#2 ;Test ballydir
 2470SUBEQ R1,R1,R3
 2480ADDNE R1,R1,R3
 2490STR R1,ballYm
 2500BL batcalc
 2510STR R0,batXm
 2520TST R12,#8 ;Test ex1flag
 2530BNE doex1
 2540BEQ dobad1
 2550.bad2calc TST R12,#16 ;Ex2 flag
 2560BNE doex2
 2570BEQ dobad2
 2580.movetok TST R12,#64 ;Tokflag
 2590BEQ movedone
 2600LDRB R0,Tokframe
 2610LDR R2,tokYm
 2620BL tokcalc
 2630STRB R0,Tokframe
 2640STR R2,tokYm
 2650.movedone LDR R6,Xmadr
 2660BL getback ;Get shadow backgrounds
 2670BL positions ;New position for shadow sprites using X&Ys's
 2680BL scorecalc
 2690TST R12,#128
 2700BLNE beep
 2710MOV R0,#19
 2720SWI 6
 2730BL resback
 2740BL blocksub
 2750BL collisions
 2760TST R12,#131072
 2770BEQ extra
 2780LDRB R0,Balls
 2790SUB R0,R0,#1
 2800STRB R0,Balls
 2810ADD R0,R0,#30
 2820SWI 256+31:SWI 0:SWI 256+9:SWI 256+32
 2830LDRB R0,Balls
 2840CMP R0,#0
 2850BEQ gameover
 2860B newball
 2870.extra LDRB R0,Iconframe
 2880CMP R0,#0
 2890BNE noextra
 2900TST R12,#65536
 2910BEQ noextra
 2920MOV R0,#8
 2930STRB R0,BallVY
 2940.noextra LDRB R0,Hits
 2950CMP R0,#0
 2960BNE notfin
 2970LDRB R0,screenlevel
 2980ADD R0,R0,#1
 2990STRB R0,screenlevel
 3000BL setup
 3010B newball
 3020.notfin SWI &2C
 3030 BCC loop
 3040.exit LDMFD R13!,{R0-R12,R15}
 3050.batcalc MOV R0,#0
 3060BIC R12,R12,#65536
 3070SWI &1C ;Get mouseX,Y,B in R0,R1,R2
 3080;BIC R0,R0,#3
 3090CMP R0,#784
 3100MOVCS R0,#784
 3110CMP R2,#0
 3120ORRNE R12,R12,#65536
 3130TST R12,#32768
 3140BEQ batexit
 3150LDRB R3,Batframe
 3160TST R12,#262144 ;Updown flag
 3170ADDNE R3,R3,#1
 3180SUBEQ R3,R3,#1
 3190CMP R3,#5
 3200BICEQ R12,R12,#262144 ;Clear updown flag
 3210CMP R3,#0
 3220ORREQ R12,R12,#262144
 3230STRB R3,Batframe
 3240.batexit MOV R15,R14
 3250.spriteplot MOV R0,#34
 3260MOV R1,#0
 3270MOV R5,#8
 3280SWI &2E
 3290MOV R15,R14
 3300.collisions STMFD R13!,{R14}
 3310LDR R0,ballXm
 3320LDR R1,ballYm
 3330LDR R2,batXm
 3340LDR R3,batYm
 3350MOV R6,#108
 3360MOV R7,#24
 3370BL col
 3380BEQ missedbat
 3390SUB R4,R0,R2
 3400STR R4,tempx
 3410ADD R4,R4,#16
 3420LDR R6,bounceadr
 3430CMP R4,#64
 3440ORRGT R12,R12,#1 ;Pos ballxdir
 3450BICLE R12,R12,#1 ;Neg ballxdir
 3460LDRB R5,[R6,R4,LSR#3]
 3470STRB R5,BallVX
 3480SUB R5,R5,#1
 3490BIC R0,R0,R5
 3500STR R0,ballXm
 3510ORR R12,R12,#130 ;Pos ballydir & beep
 3520B blocksdone
 3530.missedbat TST R12,#4 ;Test blockflag
 3540BNE blocksdone
 3550MOV R4,#0
 3560STR R4,bl1x
 3570STR R4,bl2x
 3580TST R12,#1; Test ballxdir
 3590SUBEQ R2,R0,#32
 3600SUBNE R2,R0,#16
 3610TST R12,#2; Test ballydir
 3620SUBEQ R3,R1,#384
 3630SUBNE R3,R1,#368
 3640CMP R3,#0
 3650BMI blocksdone
 3660AND R6,R2,#63
 3670AND R7,R3,#31
 3680ORRS R8,R6,R7
 3690BEQ doxy
 3700CMP R6,#0
 3710BEQ dox
 3720CMP R7,#0
 3730BNE blocksdone
 3740.doy MOV R5,R3,LSR#5
 3750TST R12,#2 ;Test ballydir
 3760SUBEQ R5,R5,#1
 3770SUB R2,R0,#32
 3780MOV R4,R2,LSR#6
 3790BL bloc
 3800BEQ doy2
 3810STR R6,bl1x
 3820STR R7,bl1y
 3830ORR R12,R12,#4 ;Set blflag
 3840.doy2 SUB R2,R0,#16
 3850MOV R4,R2,LSR#6
 3860BL bloc
 3870BEQ ycalc
 3880STR R6,bl2x
 3890STR R7,bl2y
 3900ORR R12,R12,#4 ;Set blflag
 3910.ycalc TST R12,#4 ;Test blflag
 3920EORNE R12,R12,#2 ;Invert ballydir
 3930B blocksdone
 3940.dox MOV R4,R2,LSR#6
 3950TST R12,#1 ;Test ballxdir
 3960SUBEQ R4,R4,#1
 3970SUB R3,R1,#368
 3980MOV R5,R3,LSR#5
 3990BL bloc
 4000BEQ dox2
 4010STR R6,bl1x
 4020STR R7,bl1y
 4030ORR R12,R12,#4 ;Set blflag
 4040.dox2 SUB R3,R1,#384
 4050MOV R5,R3,LSR #5
 4060BL bloc
 4070BEQ xcalc
 4080STR R6,bl2x
 4090STR R7,bl2y
 4100ORR R12,R12,#4 ;Set blflag
 4110.xcalc TST R12,#4 ;Test blflag
 4120EORNE R12,R12,#1 ;Invert ballxdir
 4130B blocksdone
 4140.doxy MOV R4,R2,LSR#6
 4150TST R12,#1 ;Test ballxdir
 4160SUBEQ R4,R4,#1
 4170MOV R5,R3,LSR#5
 4180TST R12,#2 ;Test ballydir
 4190SUBNE R5,R5,#1
 4200BL bloc
 4210BEQ doxy2
 4220STR R6,bl1x
 4230STR R7,bl1y
 4240ORR R12,R12,#4 ;Set blflag
 4250.doxy2 MOV R5,R3,LSR#5
 4260TST R12,#2 ;Test ballydir
 4270SUBEQ R5,R5,#1
 4280MOV R4,R2,LSR#6
 4290TST R12,#1 ;Test ballxdir
 4300SUBNE R4,R4,#1
 4310BL bloc
 4320BNE okyar
 4330TST R12,#4 ;Test blflag
 4340EORNE R12,R12,#1 ;Invert ballxdir
 4350B xycalc
 4360.okyar STR R6,bl2x
 4370STR R7,bl2y
 4380TST R12,#4 ;Test blflag
 4390EORNE R12,R12,#1 ;Invert ballxdir
 4400EOR R12,R12,#2 ;Invert ballydir
 4410ORR R12,R12,#4 ;Set blflag
 4420.xycalc TST R12,#4 ;Test blflag
 4430BNE blocksdone
 4440MOV R4,R2,LSR#6
 4450MOV R5,R3,LSR#5
 4460TST R12,#1 ;Test ballxdir
 4470SUBEQ R4,R4,#1
 4480TST R12,#2 ;Test ballydir
 4490SUBEQ R5,R5,#1
 4500BL bloc
 4510BEQ blocksdone
 4520STR R6,bl1x
 4530STR R7,bl1y
 4540EOR R12,R12,#3 ;Invert X&Y dirs.
 4550ORR R12,R12,#4 ;Set blflag
 4560.blocksdone TST R12,#8 ;Test ex1flag
 4570BNE dobad2col
 4580LDR R2,bad1Xm
 4590LDR R3,bad1Ym
 4600MOV R6,#60
 4610MOV R7,#60
 4620BL col
 4630BEQ dobad2col
 4640ORR R12,R12,#136 ;Set ex1flag & beep
 4650MOV R7,#128
 4660STRB R7,Pitch
 4670EOR R12,R12,#2 ;Invert ballydir
 4680LDR R8,score
 4690ADD R8,R8,#100
 4700STR R8,score
 4710.dobad2col TST R12,#16 ;Test ex2flag
 4720BNE tokcol
 4730LDR R2,bad2Xm
 4740LDR R3,bad2Ym
 4750BL col
 4760BEQ tokcol
 4770LDR R8,score
 4780ADD R8,R8,#100
 4790STR R8,score
 4800ORR R12,R12,#144 ;Set ex2flag & beep
 4810MOV R7,#160
 4820STRB R7,Pitch
 4830EOR R12,R12,#2 ;Invert ballydir
 4840.tokcol TST R12,#64 ;Tokflag
 4850BEQ bounds
 4860LDR R2,tokYm
 4870CMP R2,#128
 4880BGT bounds
 4890LDR R2,tokXm
 4900LDR R3,batXm
 4910ADD R4,R2,#36
 4920ADD R5,R3,#108
 4930CMP R2,R5 ;Tokleft-batright
 4940BPL bounds
 4950CMP R3,R4 ;Batleft-tokright
 4960BPL bounds
 4970ORR R12,R12,#8192 ;Set iconflag
 4980BIC R12,R12,#64 ;Clear tokflag
 4990.bounds CMP R0,#32
 5000ORREQ R12,R12,#1 ;Pos. ballxdir
 5010CMP R0,#848
 5020BICEQ R12,R12,#1 ;Neg. ballxdir
 5030CMP R1,#0
 5040BNE testy
 5050ORR R12,R12,#2 ;Pos. ballydir
 5060SWI 256+7
 5070MOV R4,#16
 5080STRB R4,BallVY
 5090ORR R12,R12,#131072 ;Set ballflag
 5100.testy CMP R1,#976
 5110BICEQ R12,R12,#2 ;Neg. ballydir
 5120.colsdone LDMFD R13!,{R15}
 5130.tokcalc ADD R0,R0,#1
 5140CMP R0,#6
 5150MOVEQ R0,#0
 5160SUB R2,R2,#8
 5170CMP R2,#16
 5180BICLT R12,R12,#64 ;Clear tokflag
 5190MOV R15,R14
 5200.getback STMFD R13!,{R14}
 5210LDR R1,[R6,#0]
 5220LDR R2,[R6,#4]
 5230BL convert
 5240STR R0,ballabs
 5250LDR R1,ballbadr
 5260MOV R2,#2 ;Ball width
 5270MOV R3,#4 ;Ball height
 5280BL getb
 5290LDR R1,[R6,#8]
 5300LDR R2,[R6,#12]
 5310BL convert
 5320STR R0,batabs
 5330LDR R1,batbadr
 5340MOV R2,#14 ;Bat width
 5350MOV R3,#6 ;Bat height
 5360BL getb
 5370LDR R1,[R6,#16]
 5380LDR R2,[R6,#20]
 5390BL convert
 5400STR R0,bad1abs
 5410LDR R1,bad1badr
 5420MOV R2,#7 ;Bad width
 5430MOV R3,#14 ;Bad height
 5440BL getb
 5450LDR R1,[R6,#24]
 5460LDR R2,[R6,#28]
 5470BL convert
 5480STR R0,bad2abs
 5490LDR R1,bad2badr
 5500MOV R2,#7 ;Bad width
 5510MOV R3,#14 ;Bad height
 5520BL getb
 5530TST R12,#64 ;Tokflag
 5540BEQ getbexit
 5550LDR R1,[R6,#32]
 5560LDR R2,[R6,#36]
 5570BL convert
 5580STR R0,tokabs
 5590LDR R1,tokbadr
 5600MOV R2,#5 ;Tok width
 5610MOV R3,#9 ;Tok height
 5620BL getb
 5630.getbexit LDMFD R13!,{R15}
 5640.resback STMFD R13!,{R14}
 5650LDR R0,ballabs
 5660LDR R1,ballbadr
 5670MOV R2,#2 ;Ball width
 5680MOV R3,#4 ;Ball height
 5690BL resb
 5700LDR R0,batabs
 5710LDR R1,batbadr
 5720MOV R2,#14 ;Bat width
 5730MOV R3,#6 ;Bat height
 5740BL resb
 5750LDR R0,bad1abs
 5760LDR R1,bad1badr
 5770MOV R2,#7 ;Bad width
 5780MOV R3,#14 ;Bad height
 5790BL resb
 5800LDR R0,bad2abs
 5810LDR R1,bad2badr
 5820MOV R2,#7 ;Bad width
 5830MOV R3,#14 ;Bad height
 5840BL resb
 5850TST R12,#64 ;Tokflag
 5860BEQ resbexit
 5870LDR R0,tokabs
 5880LDR R1,tokbadr
 5890MOV R2,#5
 5900MOV R3,#9
 5910BL resb
 5920.resbexit LDMFD R13!,{R15}
 5930.convert MOV R0,R2,LSR#2
 5940RSB R0,R0,#255
 5950MOV R3,#160
 5960MUL R4,R3,R0
 5970ADD R0,R4,R1,LSR#3
 5980LDR R3,mstop
 5990ADD R0,R0,R3
 6000MOV R15,R14
 6010.getb MOV R4,#0
 6020MOV R5,#0 ;Zero counters
 6030.getbloop LDRB R7,[R0,R4]
 6040STRB R7,[R1],#1
 6050ADD R4,R4,#1
 6060CMP R2,R4
 6070BCS getbloop
 6080ADD R5,R5,#1
 6090CMP R3,R5
 6100SUBNE R0,R0,#160
 6110MOVNE R4,#0
 6120BNE getbloop
 6130MOV R15,R14
 6140.resb MOV R4,#0
 6150MOV R5,#0 ;Zero counters
 6160.resbloop LDRB R7,[R1],#1
 6170STRB R7,[R0,R4]
 6180ADD R4,R4,#1
 6190CMP R2,R4
 6200BCS resbloop
 6210ADD R5,R5,#1
 6220CMP R3,R5
 6230SUBNE R0,R0,#160
 6240MOVNE R4,#0
 6250BNE resbloop
 6260MOV R15,R14
 6270.blocksub STMFD R13!,{R14}
 6280LDRB R8,Hits
 6290BIC R12,R12,#4 ;Clear blflag
 6300LDR R2,bl1adr
 6310.trybl1 LDR R3,bl1x
 6320CMP R3,#0
 6330BEQ trybl2
 6340LDR R4,bl1y
 6350BL spriteplot
 6360SUB R8,R8,#1
 6370.trybl2 LDR R3,bl2x
 6380CMP R3,#0
 6390BEQ noblocks
 6400LDR R4,bl2y
 6410BL spriteplot
 6420SUB R8,R8,#1
 6430.noblocks STRB R8,Hits
 6440LDMFD R13!,{R15}
 6450.col ADD R4,R3,R7 ;R4=objtop
 6460ADD R5,R1,#16 ;R5=balltop
 6470CMP R1,R4 ;Ballbot-objtop
 6480BPL nocol
 6490CMP R3,R5 ;Objbot-balltop
 6500BPL nocol
 6510ADD R4,R2,R6 ;R4=objright
 6520ADD R5,R0,#16 ;R5=ballright
 6530CMP R0,R4 ;Ball left-obj right
 6540BPL nocol
 6550CMP R2,R5 ;Objleft-ballright
 6560BPL nocol
 6570ORR R12,R12,#32 ;Set colflag
 6580.nocol TST R12,#32 ;Colflag
 6590BIC R12,R12,#32 ;Clear colflag
 6600MOV R15,R14
 6610.bloc CMP R4,#0
 6620BMI retbloc
 6630CMP R4,#13
 6640BEQ retbloc
 6650CMP R5,#17
 6660BGT retbloc
 6670CMP R5,#0
 6680BMI retbloc
 6690LDR R6,blocksadr
 6700MOV R7,#13
 6710MLA R8,R7,R5,R6
 6720LDRB R7,[R8,R4]
 6730MOV R6,R7,LSR#4 ;R6=colour
 6740ANDS R7,R7,#15 ;R7=block type
 6750BEQ retbloc
 6760ORR R12,R12,#160 ;Set colflag & beep
 6770STRB R6,Pitch
 6780CMP R7,#15
 6790BEQ indest
 6800SUBS R7,R7,#1
 6810BNE indest
 6820STRB R7,[R8,R4]
 6830MOV R6,R4,LSL#6
 6840MOV R7,R5,LSL#5
 6850ADD R6,R6,#36
 6860ADD R7,R7,#384
 6870TST R12,#64
 6880BNE havetok
 6890TST R12,#32768 ;Frameflag
 6900ORRNE R12,R12,#64 ;Set tok flag
 6910STRNE R6,tokXm
 6920STRNE R7,tokYm
 6930.havetok LDR R8,score
 6940ADD R8,R8,#10
 6950STR R8,score
 6960.retbloc TST R12,#32 ;Colflag
 6970BIC R12,R12,#32 ;Clear colflag
 6980MOV R15,R14
 6990.indest ADD R6,R7,R6,LSR#4
 7000STRB R6,[R8,R4]
 7010MOV R6,#0
 7020TST R12,#32 ;Colflag
 7030BIC R12,R12,#32 ;Clear colflag
 7040MOV R15,R14
 7050.setup LDRB R0,screenlevel
 7060ADD R0,R0,#1
 7070ADR R1,framestring
 7080MOV R2,#4
 7090SWI &D5
 7100ADD R2,R2,#26
 7110STRB R2,form+1
 7120SWI 1
 7130.form EQUB 31:EQUB 0:EQUB 16:EQUB 17:EQUB 4:EQUB 9:EQUB 9:EQUB 9
 7140.framestring EQUD 0
 7150LDRB R0,screenlevel
 7160SWI 256+30:SWI 256+10:SWI 256+10:SWI 256+9
 7170MOV R6,#0 ;Zero Y counter
 7180MOV R7,#0 ;Zero hits counter
 7190MOV R1,#234
 7200LDR R2,screen
 7210MLA R3,R0,R1,R2 ;R3=pointer to first block
 7220LDR R4,blocksadr
 7230ADD R4,R4,#221
 7240.Cloop1 MOV R5,#0
 7250.Cloop2 LDRB R0,[R3],#1
 7260CMP R0,#1
 7270ADDGT R7,R7,#1 ;Increment hits
 7280SWI 256+17
 7290SWI 0
 7300SWI 256+226:SWI 256+227
 7310MOV R1,#1
 7320CMP R0,#2
 7330MOVEQ R1,#4
 7340CMP R0,#1
 7350MOVEQ R1,#15
 7360CMP R0,#0
 7370MOVEQ R1,R0
 7380ADD R1,R1,R0,LSL#4
 7390STRB R1,[R4],#1
 7400ADD R5,R5,#1
 7410CMP R5,#13
 7420BNE Cloop2
 7430SWI 3
 7440SWI 256+9
 7450SUB R4,R4,#26
 7460ADD R6,R6,#1
 7470CMP R6,#18
 7480BNE Cloop1
 7490SWI 256+17
 7500MOV R0,#15
 7510SWI 0
 7520STRB R7,Hits
 7530B iconreset
 7540.newball TST R12,#131072 ;Ball flag
 7550BLNE iconreset
 7560MOV R12,#6144 ;Zero flags
 7570ORR R12,R12,#262144
 7580MOV R0,#16
 7590STRB R0,BallVY
 7600BL batcalc
 7610TST R12,#65536
 7620BEQ wait
 7630BIC R12,R12,#65536 ;Clear buttonflag
 7640ORR R12,R12,#2 ;Pos ball Y dir
 7650MOV R0,#0
 7651STRB R0,BallVX
 7710STRB R0,Batframe
 7720B loop
 7730.wait STR R0,batXm
 7740ADD R0,R0,#40
 7750STR R0,ballXm
 7760MOV R1,#128
 7770STR R1,ballYm
 7780LDR R6,Xmadr
 7790BL getback
 7800BL positions
 7810MOV R0,#19
 7820SWI 6
 7830BL resback
 7840B newball
 7850.scorecalc LDR R0,score
 7860ADR R1,scorestring
 7870MOV R2,#8
 7880SWI &D8
 7890ADD R2,R2,#26
 7900STRB R2,format+1
 7910SWI 1
 7920.format EQUB 31:EQUB 0:EQUB 12:EQUB 17:EQUB 6:EQUB 9:EQUB 9:EQUB 9
 7930.scorestring EQUD 0:EQUD 0
 7940MOV R15,R14
 7950.gameover SWI 1
 7960EQUB 31:EQUB 9:EQUB 2:EQUB 71:EQUB 65:EQUB 77:EQUB 69:EQUB 32:EQUB 79:EQUB 86:EQUB 69:EQUB 82:EQUB 0:EQUB 0:EQUB 0:EQUB 0
 7970MOV R0,#5
 7980STRB R0,Balls
 7990.goloop BL batcalc
 8000TST R12,#65536
 8010BEQ goloop
 8020SWI 1
 8030EQUB 31:EQUB 30:EQUB 12:EQUB 48:EQUB 48:EQUB 48:EQUB 48:EQUB 48:EQUB 48:EQUB 48:EQUB 0:EQUB 0
 8040MOV R0,#0
 8050STR R0,score
 8060STRB R0,screenlevel
 8070LDR R2,balladr
 8080MOV R3,#968
 8090MOV R4,#720
 8100BL spriteplot
 8110ADD R3,R3,#32
 8120BL spriteplot
 8130ADD R3,R3,#32
 8140BL spriteplot
 8150ADD R3,R3,#32
 8160BL spriteplot
 8170ADD R3,R3,#32
 8180BL spriteplot
 8190BL setup
 8200B newball
 8210.doex1 TST R12,#32768 ;Frame flag
 8220BEQ bad2calc
 8230LDRB R0,Ex1num
 8240ADD R0,R0,#1
 8250ANDS R0,R0,#3
 8260STRB R0,Ex1num
 8270BNE bad2calc
 8280BIC R12,R12,#8 ;Clear ex1flag
 8290MOV R0,#128
 8300STR R0,bad1Xm
 8310MOV R0,#704
 8320STR R0,bad1Ym
 8330.ex1exit B bad2calc
 8340.doex2  TST R12,#32768 ;Frame flag
 8350BEQ movetok
 8360LDRB R0,Ex2num
 8370ADD R0,R0,#1
 8380ANDS R0,R0,#3
 8390STRB R0,Ex2num
 8400BNE movetok
 8410BIC R12,R12,#16 ;Clear ex2flag
 8420MOV R0,#768
 8430STR R0,bad2Xm
 8440MOV R0,#752
 8450STR R0,bad2Ym
 8460.ex2exit B movetok
 8470.dobad1 TST R12,#32768 ;Frameflag
 8480BEQ movebad1
 8490LDRB R0,Bad1frame
 8500ADD R0,R0,#1
 8510AND R0,R0,#3
 8520STRB R0,Bad1frame
 8530.movebad1 LDR R1,bad1Xm
 8540LDR R2,bad1Ym
 8550LDRB R3,Bad1VX
 8560LDRB R4,Bad1VY
 8570TST R12,#512 ;Bad1 xdir
 8580SUBEQ R1,R1,R3
 8590ADDNE R1,R1,R3
 8600TST R12,#1024 ;Bad1 ydir
 8610SUBEQ R2,R2,R4
 8620ADDNE R2,R2,R4
 8630STR R1,bad1Xm
 8640STR R2,bad1Ym
 8650CMP R1,#800
 8660BICEQ R12,R12,#512 ;Neg bad1xdir
 8670CMP R1,#32
 8680ORREQ R12,R12,#512 ;Pos bad1xdir
 8690CMP R2,#960
 8700BICEQ R12,R12,#1024 ;Neg bad1ydir
 8710CMP R2,#160
 8720ORREQ R12,R12,#1024 ;Pos bad1ydir
 8730B bad2calc
 8740.dobad2 TST R12,#32768 ;Frameflag
 8750BEQ movebad2
 8760LDRB R0,Bad2frame
 8770ADD R0,R0,#1
 8780AND R0,R0,#3
 8790STRB R0,Bad2frame
 8800.movebad2 LDR R1,bad2Xm
 8810LDR R2,bad2Ym
 8820LDRB R3,Bad2VX
 8830LDRB R4,Bad2VY
 8840TST R12,#2048 ;Bad2 xdir
 8850SUBEQ R1,R1,R3
 8860ADDNE R1,R1,R3
 8870TST R12,#4096 ;Bad2 ydir
 8880SUBEQ R2,R2,R4
 8890ADDNE R2,R2,R4
 8900STR R1,bad2Xm
 8910STR R2,bad2Ym
 8920CMP R1,#800
 8930BICEQ R12,R12,#2048 ;Neg bad2xdir
 8940CMP R1,#32
 8950ORREQ R12,R12,#2048 ;Pos bad2xdir
 8960CMP R2,#960
 8970BICEQ R12,R12,#4096 ;Neg bad2ydir
 8980CMP R2,#160
 8990ORREQ R12,R12,#4096 ;Pos bad2ydir
 9000B movetok
 9010.iconreset STMFD R13!,{R14}
 9020LDRB R1,Iconframe
 9030CMP R1,#255
 9040BEQ iconresetexit
 9050LDR R2,i1nadr
 9060ADD R2,R2,R1,LSL#2
 9070LDR R5,iconxadr
 9080LDR R3,[R5,R1,LSL#2]
 9090LDR R5,iconyadr
 9100LDR R4,[R5,R1,LSL#2]
 9110BL spriteplot
 9120MOV R0,#255
 9130STRB R0,Iconframe
 9140.iconresetexit LDMFD R13!,{R15}
 9150.beep SWI &42 ;Read time
 9151AND R1,R0,#60
 9160MOV R0,#213
 9170SWI 6
 9180SWI 256+7
 9190BIC R12,R12,#128 ;Beepflag
 9200MOV R15,R14
 9210]
 9220NEXTpass
 9221INPUT"Sound Y/N ",A$
 9222IF A$="N" OR A$="n" THEN  *AUDIO OFF
 9230COLOUR128:CLS:COLOUR13
 9240FORI%=0TO27:VDU224:NEXT:VDU228:PRINT
 9250FORI%=0TO27:VDU225:PRINTSTRING$(26,CHR$32);:VDU229,228:PRINT:NEXT
 9260GCOL5:MOVE900,376:DRAW900,1023:DRAW1279,1023
 9270GCOL13:RECTANGLE904,374,372,643:RECTANGLE908,378,364,635
 9280GCOL5:MOVE912,380:DRAW1268,380:DRAW1268,1007
 9290COLOUR13:PRINTTAB(30,10)"SCORE"
 9300COLOUR6:PRINTTAB(30,12)"0000000"
 9310COLOUR14:PRINTTAB(30,14)"FRAME"
 9320COLOUR4:PRINTTAB(30,16)"001"
 9330*SCHOOSE BAL
 9340PLOT&ED,968,720:PLOT&ED,1000,720:PLOT&ED,1032,720:PLOT&ED,1064,720:PLOT&ED,1096,720
 9350*SCHOOSE I1N
 9360PLOT&ED,992,272
 9370*SCHOOSE I2N
 9380PLOT&ED,1056,272
 9390*SCHOOSE I3N
 9400PLOT&ED,1120,272
 9410*SCHOOSE I4N
 9420PLOT&ED,992,208
 9430*SCHOOSE I5N
 9440PLOT&ED,1056,208
 9450*SCHOOSE I6N
 9460PLOT&ED,1120,208
 9470*SCHOOSE I7N
 9480PLOT&ED,992,144
 9490*SCHOOSE I8N
 9500PLOT&ED,1056,144
 9510*SCHOOSE I9N
 9520PLOT&ED,1120,144
 9530*SCHOOSE IMP
 9540PLOT&ED,928,820
 9550GCOL6:MOVE976,130:DRAW976,344:DRAW1192,344
 9560GCOL8:RECTANGLE980,130,212,212:RECTANGLE984,134,204,204
 9570GCOL6:MOVE988,138:DRAW1184,138:DRAW1184,334
 9590CALL start
 9600END

	ȗ� 2
�9
�1,&80,&80,&80
(�2,&B0,&B0,&B0
2�3,&00,&90,&10
<�4,&E0,&00,&00
F�5,&F0,&B0,&00
P�6,&F0,&F0,&00
Z�7,&00,&40,&A0
d�8,&00,&F0,&00
n�9,&00,&B0,&60
x�10,&40,&90,&F0
��11,&70,&00,&D0
��12,&B0,&70,&00
��13,&F0,&90,&00
��14,&E0,&00,&E0
��15,&F0,&F0,&F0
�"*CHANNELVOICE 1 StringLib-Soft
�Q� code% &10000,screen% 23400,ballb% 8,batb% 84,bad1b% 100,bad2b% 100,tokb% 45
�+�("LOAD <Obey$Dir>.Screens "+�~screen%)
�*SLOAD <Obey$Dir>.Sprites
�'�23,224,247,247,247,0,127,127,127,0
�'�23,225,247,247,247,0,126,126,126,0
�)�23,226,0,&7F,&7F,&7F,&7F,&7F,&7F,&7F
�)�23,227,0,&FF,&FF,&FF,&FF,&FF,&FF,&FF
�!�23,228,&80,&80,&80,0,0,0,0,0
$�23,229,119,119,119,0,63,63,63,0
�23,1,0|
� pass=0 � 2 � 2
"P%=code%
,
[OPT pass
6.score EQUD 0
@.tempx EQUD 0
J.framecount EQUD 0
T.bounceadr EQUD bounce
^.i1nadr EQUD i1n
h.i1hadr EQUD i1h
r.iconxadr EQUD iconxtable
|.iconyadr EQUD iconytable
�.bl1x     EQUD 0
�.bl1y     EQUD 0
�.bl2x     EQUD 0
�.bl2y     EQUD 0
�.mstop EQUD &1FD8000
�.vdublk EQUD 149:EQUD -1
�.vduout EQUD 0:EQUD 0
�.ballXm EQUD 640
�.ballYm EQUD 320
�.batXm  EQUD 0
�.batYm  EQUD 96
�.bad1Xm EQUD 128
�.bad1Ym EQUD 704
.bad2Xm EQUD 768
.bad2Ym EQUD 256
.tokXm  EQUD 0
&.tokYm  EQUD 0
0.tokabs   EQUD 0
:.tokadr   EQUD to1
D.tokbadr  EQUD tokb%
N.ballabs EQUD 0
X.balladr EQUD ball
b.ballbadr EQUD ballb%
l.batabs  EQUD 0
v.batadr  EQUD bat
�.batbadr  EQUD batb%
�.b1adr   EQUD b1
�.bl1adr  EQUD bl1
�.ex1adr EQUD ex1
�.ex2adr EQUD ex1
�.bad1abs   EQUD 0
�.bad1badr    EQUD bad1b%
�.bad2abs   EQUD 0
�.bad2badr    EQUD bad2b%
�.blocksadr EQUD blocks
�.screen EQUD screen%
�.iconxtable EQUD 992
�
EQUD 1056

EQUD 1120
EQUD 992

EQUD 1056
 
EQUD 1120
*EQUD 992
4
EQUD 1056
>
EQUD 1120
H.iconytable EQUD 272
REQUD 272
\EQUD 272
fEQUD 208
pEQUD 208
zEQUD 208
�EQUD 144
�EQUD 144
�EQUD 144
�.Xmadr EQUD ballXm
�.b1      EQUS "b1 "+�0
�.b2      EQUS "b2 "+�0
�.b3      EQUS "b3 "+�0
�.b4      EQUS "b4 "+�0
�.bl1     EQUS "bl4"+�0
�.bl2     EQUS "bl2"+�0
�.bl3     EQUS "bl4"+�0
�.bl4     EQUS "bl4"+�0
�.ex1     EQUS "ex1"+�0
.ex2     EQUS "ex2"+�0
.ex3     EQUS "bx "+�0
.ex4     EQUS "bx "+�0
$.bat     EQUS "ba1"+�0
..ba2    EQUS "ba2"+�0
8.ba3    EQUS "ba3"+�0
B.ba4    EQUS "ba4"+�0
L.ba5    EQUS "ba5"+�0
V.ba6    EQUS "ba6"+�0
`.ball    EQUS "bal"+�0
j.to1     EQUS "to1"+�0
t.to2     EQUS "to2"+�0
~.to3     EQUS "to3"+�0
�.to4     EQUS "to4"+�0
�.to5     EQUS "to3"+�0
�.to6     EQUS "to2"+�0
�.to7     EQUS "to1"+�0
�.i1n     EQUS "i1n"+�0
�.i2n     EQUS "i2n"+�0
�.i3n     EQUS "i3n"+�0
�.i4n     EQUS "i4n"+�0
�.i5n     EQUS "i5n"+�0
�.i6n     EQUS "i6n"+�0
�.i7n     EQUS "i7n"+�0
�.i8n     EQUS "i8n"+�0
.i9n     EQUS "i9n"+�0

.i1h      EQUS "i1h"+�0
.i2h      EQUS "i2h"+�0
.i3h      EQUS "i3h"+�0
(.i4h      EQUS "i4h"+�0
2.i5h      EQUS "i5h"+�0
<.i6h      EQUS "i6h"+�0
F.i7h      EQUS "i7h"+�0
P.i8h      EQUS "i8h"+�0
Z.i9h      EQUS "i9h"+�0
d.screenlevel EQUB 0
n.Ex1num EQUB 0
x.Ex2num EQUB 0
�.Blnum EQUB 0
�.BallVX EQUB 2
�.BallVY EQUB 16
�.Bad1VX EQUB 4
�.Bad1VY EQUB 4
�.Bad2VX EQUB 4
�.Bad2VY EQUB 4
�.Bad1frame EQUB 0
�.Bad2frame EQUB 1
�.Tokframe EQUB 0
�.Iconframe EQUB 255
�.Batframe EQUB 0
�.Hits EQUB 0 ;Hit counter
.Balls EQUB 10
.Pitch EQUB 0
	ALIGN
".blocks EQUS �236,�0)
,C.bounce EQUS �16+�16+�8+�8+�4+�4+�4+�2+�2+�2+�4+�4+�4+�8+�8+�16
6EQUS �32,�1)
@	ALIGN
J".start STMFD R13!,{R0-R12,R14}
T ADR R0,vdublk
^ ADR R1,vduout
h SWI &31
r LDR R0,vduout
| STR R0,mstop
�BL setup
�
B newball
�.positions STMFD R13!,{R14}
�LDR R2,balladr
�LDR R3,[R6,#0]
�LDR R4,[R6,#4]
�BL spriteplot ;Draw ball
�TST R12,#8 ;Test ex1flag
�LDRNEB R1,Ex1num
�LDRNE R2,ex1adr
�LDREQB R1,Bad1frame
�LDREQ R2,b1adr
�:.drawbad1 ADD R2,R2,R1,LSL#2 ;Get bad1's address in R2
LDR R3,[R6,#16]
LDR R4,[R6,#20]
BL spriteplot ;Draw bad1
&TST R12,#16 ;Test ex2flag
0LDRNEB R1,Ex2num
:LDRNE R2,ex2adr
DLDREQB R1,Bad2frame
NLDREQ R2,b1adr
X:.drawbad2 ADD R2,R2,R1,LSL#2 ;Get bad2's address in R2
bLDR R3,[R6,#24]
lLDR R4,[R6,#28]
vBL spriteplot ;Draw bad2
�LDRB R1,Batframe
�LDR R2,batadr
�ADD R2,R2,R1,LSL#2
�LDR R3,[R6,#8]
�LDR R4,[R6,#12]
�BL spriteplot ;Draw bat
�TST R12,#8192 ;Iconflag
�
BEQ dotok
�LDRB R1,Iconframe
�CMP R1,#255
�BEQ firsticon
�LDR R2,i1nadr
�5ADD R2,R2,R1,LSL#2 ;Get normal icon address in R2
LDR R5,iconxadr
LDR R3,[R5,R1,LSL#2]
LDR R5,iconyadr
 LDR R4,[R5,R1,LSL#2]
*BL spriteplot
4LDRB R1,Iconframe
>ADD R1,R1,#1
H
CMP R1,#9
R.firsticon �Q R1,#0
\STRB R1,Iconframe
fLDR R2,i1hadr
p:ADD R2,R2,R1,LSL#2 ;Get highlighted icon address in R2
zLDR R5,iconxadr
�LDR R3,[R5,R1,LSL#2]
�LDR R5,iconyadr
�LDR R4,[R5,R1,LSL#2]
�BL spriteplot
�%BIC R12,R12,#8192 ;Clear iconflag
�$.dotok TST R12,#64 ;Test tokflag
�BEQ exitpos
�LDRB R1,Tokframe
�LDR R2,tokadr
�-ADD R2,R2,R1,LSL#2 ;Get tok address in R2
�LDR R3,[R6,#32]
�LDR R4,[R6,#36]
�BL spriteplot ;Draw tok
	.exitpos LDMFD R13!,{R15}
	=.loop LDR R0,framecount ;Main loop **********************
	ADD R0,R0,#1
	$STR R0,framecount
	.�S R0,R0,#7
	8&�REQ R12,R12,#32768 ;Set frameflag
	B)BICNE R12,R12,#32768 ;Clear frameflag
	LLDR R0,ballXm
	VLDR R1,ballYm
	`LDRB R2,BallVX
	jLDRB R3,BallVY
	t'.ballcalc TST R12,#1 ;Test ballxdir
	~SUBEQ R0,R0,R2
	�ADDNE R0,R0,R2
	�STR R0,ballXm
	�TST R12,#2 ;Test ballydir
	�SUBEQ R1,R1,R3
	�ADDNE R1,R1,R3
	�STR R1,ballYm
	�BL batcalc
	�STR R0,batXm
	�TST R12,#8 ;Test ex1flag
	�
BNE doex1
	�BEQ dobad1
	�#.bad2calc TST R12,#16 ;Ex2 flag

BNE doex2

BEQ dobad2
!.movetok TST R12,#64 ;Tokflag
BEQ movedone
(LDRB R0,Tokframe
2LDR R2,tokYm
<BL tokcalc
FSTRB R0,Tokframe
PSTR R2,tokYm
Z.movedone LDR R6,Xmadr
d&BL getback ;Get shadow backgrounds
n>BL positions ;New position for shadow sprites using X&Ys's
xBL scorecalc
�TST R12,#128
�
BLNE beep
�MOV R0,#19
�	SWI 6
�BL resback
�BL blocksub
�BL collisions
�TST R12,#131072
�
BEQ extra
�LDRB R0,Balls
�SUB R0,R0,#1
�STRB R0,Balls
�ADD R0,R0,#30
)SWI 256+31:SWI 0:SWI 256+9:SWI 256+32
LDRB R0,Balls

CMP R0,#0
"BEQ gameover
,
B newball
6.extra LDRB R0,Iconframe
@
CMP R0,#0
JBNE noextra
TTST R12,#65536
^BEQ noextra
h
MOV R0,#8
rSTRB R0,BallVY
|.noextra LDRB R0,Hits
�
CMP R0,#0
�BNE notfin
�LDRB R0,screenlevel
�ADD R0,R0,#1
�STRB R0,screenlevel
�BL setup
�
B newball
�.notfin SWI &2C
�
 BCC loop
�!.exit LDMFD R13!,{R0-R12,R15}
�.batcalc MOV R0,#0
�BIC R12,R12,#65536
�'SWI &1C ;Get mouseX,Y,B in R0,R1,R2
;BIC R0,R0,#3
CMP R0,#784
MOVCS R0,#784
&
CMP R2,#0
0�RNE R12,R12,#65536
:TST R12,#32768
DBEQ batexit
NLDRB R3,Batframe
X TST R12,#262144 ;Updown flag
bADDNE R3,R3,#1
lSUBEQ R3,R3,#1
v
CMP R3,#5
�,BICEQ R12,R12,#262144 ;Clear updown flag
�
CMP R3,#0
��REQ R12,R12,#262144
�STRB R3,Batframe
�.batexit MOV R15,R14
�.spriteplot MOV R0,#34
�
MOV R1,#0
�
MOV R5,#8
�SWI &2E
�MOV R15,R14
� .collisions STMFD R13!,{R14}
�LDR R0,ballXm
�LDR R1,ballYm

LDR R2,batXm

LDR R3,batYm

MOV R6,#108

 MOV R7,#24

*
BL col

4BEQ missedbat

>SUB R4,R0,R2

HSTR R4,tempx

RADD R4,R4,#16

\LDR R6,bounceadr

fCMP R4,#64

p!�RGT R12,R12,#1 ;Pos ballxdir

z"BICLE R12,R12,#1 ;Neg ballxdir

�LDRB R5,[R6,R4,LSR#3]

�STRB R5,BallVX

�SUB R5,R5,#1

�BIC R0,R0,R5

�STR R0,ballXm

�(�R R12,R12,#130 ;Pos ballydir & beep

�B blocksdone

�).missedbat TST R12,#4 ;Test blockflag

�BNE blocksdone

�
MOV R4,#0

�STR R4,bl1x

�STR R4,bl2x

�TST R12,#1; Test ballxdir
SUBEQ R2,R0,#32
SUBNE R2,R0,#16
TST R12,#2; Test ballydir
$SUBEQ R3,R1,#384
.SUBNE R3,R1,#368
8
CMP R3,#0
BBMI blocksdone
L� R6,R2,#63
V� R7,R3,#31
`�RS R8,R6,R7
jBEQ doxy
t
CMP R6,#0
~BEQ dox
�
CMP R7,#0
�BNE blocksdone
�.doy MOV R5,R3,LSR#5
�TST R12,#2 ;Test ballydir
�SUBEQ R5,R5,#1
�SUB R2,R0,#32
�MOV R4,R2,LSR#6
�BL bloc
�BEQ doy2
�STR R6,bl1x
�STR R7,bl1y
��R R12,R12,#4 ;Set blflag
.doy2 SUB R2,R0,#16

MOV R4,R2,LSR#6
BL bloc

BEQ ycalc
(STR R6,bl2x
2STR R7,bl2y
<�R R12,R12,#4 ;Set blflag
F".ycalc TST R12,#4 ;Test blflag
P#�NE R12,R12,#2 ;Invert ballydir
ZB blocksdone
d.dox MOV R4,R2,LSR#6
nTST R12,#1 ;Test ballxdir
xSUBEQ R4,R4,#1
�SUB R3,R1,#368
�MOV R5,R3,LSR#5
�BL bloc
�BEQ dox2
�STR R6,bl1x
�STR R7,bl1y
��R R12,R12,#4 ;Set blflag
�.dox2 SUB R3,R1,#384
�MOV R5,R3,LSR #5
�BL bloc
�
BEQ xcalc
�STR R6,bl2x
�STR R7,bl2y
�R R12,R12,#4 ;Set blflag
".xcalc TST R12,#4 ;Test blflag
#�NE R12,R12,#1 ;Invert ballxdir
"B blocksdone
,.doxy MOV R4,R2,LSR#6
6TST R12,#1 ;Test ballxdir
@SUBEQ R4,R4,#1
JMOV R5,R3,LSR#5
TTST R12,#2 ;Test ballydir
^SUBNE R5,R5,#1
hBL bloc
r
BEQ doxy2
|STR R6,bl1x
�STR R7,bl1y
��R R12,R12,#4 ;Set blflag
�.doxy2 MOV R5,R3,LSR#5
�TST R12,#2 ;Test ballydir
�SUBEQ R5,R5,#1
�MOV R4,R2,LSR#6
�TST R12,#1 ;Test ballxdir
�SUBNE R4,R4,#1
�BL bloc
�
BNE okyar
�TST R12,#4 ;Test blflag
�#�NE R12,R12,#1 ;Invert ballxdir
�B xycalc
.okyar STR R6,bl2x
STR R7,bl2y
TST R12,#4 ;Test blflag
&#�NE R12,R12,#1 ;Invert ballxdir
0!� R12,R12,#2 ;Invert ballydir
:�R R12,R12,#4 ;Set blflag
D#.xycalc TST R12,#4 ;Test blflag
NBNE blocksdone
XMOV R4,R2,LSR#6
bMOV R5,R3,LSR#5
lTST R12,#1 ;Test ballxdir
vSUBEQ R4,R4,#1
�TST R12,#2 ;Test ballydir
�SUBEQ R5,R5,#1
�BL bloc
�BEQ blocksdone
�STR R6,bl1x
�STR R7,bl1y
�"� R12,R12,#3 ;Invert X&Y dirs.
��R R12,R12,#4 ;Set blflag
�(.blocksdone TST R12,#8 ;Test ex1flag
�BNE dobad2col
�LDR R2,bad1Xm
�LDR R3,bad1Ym
�MOV R6,#60
MOV R7,#60

BL col
BEQ dobad2col
 '�R R12,R12,#136 ;Set ex1flag & beep
*MOV R7,#128
4STRB R7,Pitch
>!� R12,R12,#2 ;Invert ballydir
HLDR R8,score
RADD R8,R8,#100
\STR R8,score
f(.dobad2col TST R12,#16 ;Test ex2flag
pBNE tokcol
zLDR R2,bad2Xm
�LDR R3,bad2Ym
�
BL col
�BEQ tokcol
�LDR R8,score
�ADD R8,R8,#100
�STR R8,score
�'�R R12,R12,#144 ;Set ex2flag & beep
�MOV R7,#160
�STRB R7,Pitch
�!� R12,R12,#2 ;Invert ballydir
� .tokcol TST R12,#64 ;Tokflag
�BEQ bounds
�LDR R2,tokYm
CMP R2,#128
BGT bounds
LDR R2,tokXm
$LDR R3,batXm
.ADD R4,R2,#36
8ADD R5,R3,#108
BCMP R2,R5 ;Tokleft-batright
LBPL bounds
VCMP R3,R4 ;Batleft-tokright
`BPL bounds
j"�R R12,R12,#8192 ;Set iconflag
t"BIC R12,R12,#64 ;Clear tokflag
~.bounds CMP R0,#32
�"�REQ R12,R12,#1 ;Pos. ballxdir
�CMP R0,#848
�#BICEQ R12,R12,#1 ;Neg. ballxdir
�
CMP R1,#0
�
BNE testy
� �R R12,R12,#2 ;Pos. ballydir
�
SWI 256+7
�MOV R4,#16
�STRB R4,BallVY
�$�R R12,R12,#131072 ;Set ballflag
�.testy CMP R1,#976
�#BICEQ R12,R12,#2 ;Neg. ballydir
.colsdone LDMFD R13!,{R15}

.tokcalc ADD R0,R0,#1

CMP R0,#6
�Q R0,#0
(SUB R2,R2,#8
2CMP R2,#16
<$BICLT R12,R12,#64 ;Clear tokflag
FMOV R15,R14
P.getback STMFD R13!,{R14}
ZLDR R1,[R6,#0]
dLDR R2,[R6,#4]
nBL convert
xSTR R0,ballabs
�LDR R1,ballbadr
�MOV R2,#2 ;Ball width
�MOV R3,#4 ;Ball height
�BL getb
�LDR R1,[R6,#8]
�LDR R2,[R6,#12]
�BL convert
�STR R0,batabs
�LDR R1,batbadr
�MOV R2,#14 ;Bat width
�MOV R3,#6 ;Bat height
�BL getb
�LDR R1,[R6,#16]
LDR R2,[R6,#20]
BL convert
STR R0,bad1abs
"LDR R1,bad1badr
,MOV R2,#7 ;Bad width
6MOV R3,#14 ;Bad height
@BL getb
JLDR R1,[R6,#24]
TLDR R2,[R6,#28]
^BL convert
hSTR R0,bad2abs
rLDR R1,bad2badr
|MOV R2,#7 ;Bad width
�MOV R3,#14 ;Bad height
�BL getb
�TST R12,#64 ;Tokflag
�BEQ getbexit
�LDR R1,[R6,#32]
�LDR R2,[R6,#36]
�BL convert
�STR R0,tokabs
�LDR R1,tokbadr
�MOV R2,#5 ;Tok width
�MOV R3,#9 ;Tok height
�BL getb
�.getbexit LDMFD R13!,{R15}
.resback STMFD R13!,{R14}
LDR R0,ballabs
LDR R1,ballbadr
&MOV R2,#2 ;Ball width
0MOV R3,#4 ;Ball height
:BL resb
DLDR R0,batabs
NLDR R1,batbadr
XMOV R2,#14 ;Bat width
bMOV R3,#6 ;Bat height
lBL resb
vLDR R0,bad1abs
�LDR R1,bad1badr
�MOV R2,#7 ;Bad width
�MOV R3,#14 ;Bad height
�BL resb
�LDR R0,bad2abs
�LDR R1,bad2badr
�MOV R2,#7 ;Bad width
�MOV R3,#14 ;Bad height
�BL resb
�TST R12,#64 ;Tokflag
�BEQ resbexit
�LDR R0,tokabs
�LDR R1,tokbadr

MOV R2,#5

MOV R3,#9
BL resb
 .resbexit LDMFD R13!,{R15}
*.convert MOV R0,R2,LSR#2
4RSB R0,R0,#255
>MOV R3,#160
HMUL R4,R3,R0
RADD R0,R4,R1,LSR#3
\LDR R3,mstop
fADD R0,R0,R3
pMOV R15,R14
z.getb MOV R4,#0
�MOV R5,#0 ;Zero counters
�.getbloop LDRB R7,[R0,R4]
�STRB R7,[R1],#1
�ADD R4,R4,#1
�
CMP R2,R4
�BCS getbloop
�ADD R5,R5,#1
�
CMP R3,R5
�SUBNE R0,R0,#160
�MOVNE R4,#0
�BNE getbloop
�MOV R15,R14
�.resb MOV R4,#0
MOV R5,#0 ;Zero counters
.resbloop LDRB R7,[R1],#1
STRB R7,[R0,R4]
$ADD R4,R4,#1
.
CMP R2,R4
8BCS resbloop
BADD R5,R5,#1
L
CMP R3,R5
VSUBNE R0,R0,#160
`MOVNE R4,#0
jBNE resbloop
tMOV R15,R14
~.blocksub STMFD R13!,{R14}
�LDRB R8,Hits
� BIC R12,R12,#4 ;Clear blflag
�LDR R2,bl1adr
�.trybl1 LDR R3,bl1x
�
CMP R3,#0
�BEQ trybl2
�LDR R4,bl1y
�BL spriteplot
�SUB R8,R8,#1
�.trybl2 LDR R3,bl2x
�
CMP R3,#0
�BEQ noblocks
LDR R4,bl2y

BL spriteplot
SUB R8,R8,#1
.noblocks STRB R8,Hits
(LDMFD R13!,{R15}
2 .col ADD R4,R3,R7 ;R4=objtop
<ADD R5,R1,#16 ;R5=balltop
FCMP R1,R4 ;Ballbot-objtop
P
BPL nocol
ZCMP R3,R5 ;Objbot-balltop
d
BPL nocol
nADD R4,R2,R6 ;R4=objright
xADD R5,R0,#16 ;R5=ballright
�"CMP R0,R4 ;Ball left-obj right
�
BPL nocol
� CMP R2,R5 ;Objleft-ballright
�
BPL nocol
��R R12,R12,#32 ;Set colflag
�.nocol TST R12,#32 ;Colflag
�"BIC R12,R12,#32 ;Clear colflag
�MOV R15,R14
�.bloc CMP R4,#0
�BMI retbloc
�CMP R4,#13
�BEQ retbloc
�CMP R5,#17
BGT retbloc

CMP R5,#0
BMI retbloc
"LDR R6,blocksadr
,MOV R7,#13
6MLA R8,R7,R5,R6
@LDRB R7,[R8,R4]
JMOV R6,R7,LSR#4 ;R6=colour
T�S R7,R7,#15 ;R7=block type
^BEQ retbloc
h'�R R12,R12,#160 ;Set colflag & beep
rSTRB R6,Pitch
|CMP R7,#15
�BEQ indest
�SUBS R7,R7,#1
�BNE indest
�STRB R7,[R8,R4]
�MOV R6,R4,LSL#6
�MOV R7,R5,LSL#5
�ADD R6,R6,#36
�ADD R7,R7,#384
�TST R12,#64
�BNE havetok
�TST R12,#32768 ;Frameflag
�"�RNE R12,R12,#64 ;Set tok flag
�STRNE R6,tokXm
STRNE R7,tokYm
.havetok LDR R8,score
ADD R8,R8,#10
&STR R8,score
0!.retbloc TST R12,#32 ;Colflag
:"BIC R12,R12,#32 ;Clear colflag
DMOV R15,R14
N.indest ADD R6,R7,R6,LSR#4
XSTRB R6,[R8,R4]
b
MOV R6,#0
lTST R12,#32 ;Colflag
v"BIC R12,R12,#32 ;Clear colflag
�MOV R15,R14
�.setup LDRB R0,screenlevel
�ADD R0,R0,#1
�ADR R1,framestring
�
MOV R2,#4
�SWI &D5
�ADD R2,R2,#26
�STRB R2,form+1
�	SWI 1
�D.form EQUB 31:EQUB 0:EQUB 16:EQUB 17:EQUB 4:EQUB 9:EQUB 9:EQUB 9
�.framestring EQUD 0
�LDRB R0,screenlevel
�.SWI 256+30:SWI 256+10:SWI 256+10:SWI 256+9
MOV R6,#0 ;Zero Y counter
 MOV R7,#0 ;Zero hits counter
MOV R1,#234
 LDR R2,screen
*.MLA R3,R0,R1,R2 ;R3=pointer to first block
4LDR R4,blocksadr
>ADD R4,R4,#221
H.Cloop1 MOV R5,#0
R.Cloop2 LDRB R0,[R3],#1
\
CMP R0,#1
f"ADDGT R7,R7,#1 ;Increment hits
pSWI 256+17
z	SWI 0
�SWI 256+226:SWI 256+227
�
MOV R1,#1
�
CMP R0,#2
��Q R1,#4
�
CMP R0,#1
�
�Q R1,#15
�
CMP R0,#0
��Q R1,R0
�ADD R1,R1,R0,LSL#4
�STRB R1,[R4],#1
�ADD R5,R5,#1
�CMP R5,#13
�BNE Cloop2
	SWI 3

SWI 256+9
SUB R4,R4,#26
$ADD R6,R6,#1
.CMP R6,#18
8BNE Cloop1
BSWI 256+17
LMOV R0,#15
V	SWI 0
`STRB R7,Hits
jB iconreset
t'.newball TST R12,#131072 ;Ball flag
~BLNE iconreset
�MOV R12,#6144 ;Zero flags
��R R12,R12,#262144
�MOV R0,#16
�STRB R0,BallVY
�BL batcalc
�TST R12,#65536
�BEQ wait
�(BIC R12,R12,#65536 ;Clear buttonflag
�!�R R12,R12,#2 ;Pos ball Y dir
�
MOV R0,#0
�STRB R0,BallVX
STRB R0,Batframe
(
B loop
2.wait STR R0,batXm
<ADD R0,R0,#40
FSTR R0,ballXm
PMOV R1,#128
ZSTR R1,ballYm
dLDR R6,Xmadr
nBL getback
xBL positions
�MOV R0,#19
�	SWI 6
�BL resback
�
B newball
�.scorecalc LDR R0,score
�ADR R1,scorestring
�
MOV R2,#8
�SWI &D8
�ADD R2,R2,#26
�STRB R2,format+1
�	SWI 1
�F.format EQUB 31:EQUB 0:EQUB 12:EQUB 17:EQUB 6:EQUB 9:EQUB 9:EQUB 9
�.scorestring EQUD 0:EQUD 0
MOV R15,R14
.gameover SWI 1
}EQUB 31:EQUB 9:EQUB 2:EQUB 71:EQUB 65:EQUB 77:EQUB 69:EQUB 32:EQUB 79:EQUB 86:EQUB 69:EQUB 82:EQUB 0:EQUB 0:EQUB 0:EQUB 0
"
MOV R0,#5
,STRB R0,Balls
6.goloop BL batcalc
@TST R12,#65536
JBEQ goloop
T	SWI 1
^aEQUB 31:EQUB 30:EQUB 12:EQUB 48:EQUB 48:EQUB 48:EQUB 48:EQUB 48:EQUB 48:EQUB 48:EQUB 0:EQUB 0
h
MOV R0,#0
rSTR R0,score
|STRB R0,screenlevel
�LDR R2,balladr
�MOV R3,#968
�MOV R4,#720
�BL spriteplot
�ADD R3,R3,#32
�BL spriteplot
�ADD R3,R3,#32
�BL spriteplot
�ADD R3,R3,#32
�BL spriteplot
�ADD R3,R3,#32
�BL spriteplot
�BL setup
 
B newball
 %.doex1 TST R12,#32768 ;Frame flag
 BEQ bad2calc
 &LDRB R0,Ex1num
 0ADD R0,R0,#1
 :�S R0,R0,#3
 DSTRB R0,Ex1num
 NBNE bad2calc
 X!BIC R12,R12,#8 ;Clear ex1flag
 bMOV R0,#128
 lSTR R0,bad1Xm
 vMOV R0,#704
 �STR R0,bad1Ym
 �.ex1exit B bad2calc
 �&.doex2  TST R12,#32768 ;Frame flag
 �BEQ movetok
 �LDRB R0,Ex2num
 �ADD R0,R0,#1
 ��S R0,R0,#3
 �STRB R0,Ex2num
 �BNE movetok
 �"BIC R12,R12,#16 ;Clear ex2flag
 �MOV R0,#768
 �STR R0,bad2Xm
 �MOV R0,#752
!STR R0,bad2Ym
!.ex2exit B movetok
!%.dobad1 TST R12,#32768 ;Frameflag
! BEQ movebad1
!*LDRB R0,Bad1frame
!4ADD R0,R0,#1
!>� R0,R0,#3
!HSTRB R0,Bad1frame
!R.movebad1 LDR R1,bad1Xm
!\LDR R2,bad1Ym
!fLDRB R3,Bad1VX
!pLDRB R4,Bad1VY
!zTST R12,#512 ;Bad1 xdir
!�SUBEQ R1,R1,R3
!�ADDNE R1,R1,R3
!�TST R12,#1024 ;Bad1 ydir
!�SUBEQ R2,R2,R4
!�ADDNE R2,R2,R4
!�STR R1,bad1Xm
!�STR R2,bad1Ym
!�CMP R1,#800
!�$BICEQ R12,R12,#512 ;Neg bad1xdir
!�CMP R1,#32
!�#�REQ R12,R12,#512 ;Pos bad1xdir
!�CMP R2,#960
!�%BICEQ R12,R12,#1024 ;Neg bad1ydir
"CMP R2,#160
"$�REQ R12,R12,#1024 ;Pos bad1ydir
"B bad2calc
"$%.dobad2 TST R12,#32768 ;Frameflag
".BEQ movebad2
"8LDRB R0,Bad2frame
"BADD R0,R0,#1
"L� R0,R0,#3
"VSTRB R0,Bad2frame
"`.movebad2 LDR R1,bad2Xm
"jLDR R2,bad2Ym
"tLDRB R3,Bad2VX
"~LDRB R4,Bad2VY
"�TST R12,#2048 ;Bad2 xdir
"�SUBEQ R1,R1,R3
"�ADDNE R1,R1,R3
"�TST R12,#4096 ;Bad2 ydir
"�SUBEQ R2,R2,R4
"�ADDNE R2,R2,R4
"�STR R1,bad2Xm
"�STR R2,bad2Ym
"�CMP R1,#800
"�%BICEQ R12,R12,#2048 ;Neg bad2xdir
"�CMP R1,#32
"�$�REQ R12,R12,#2048 ;Pos bad2xdir
#CMP R2,#960
#
%BICEQ R12,R12,#4096 ;Neg bad2ydir
#CMP R2,#160
#$�REQ R12,R12,#4096 ;Pos bad2ydir
#(
B movetok
#2.iconreset STMFD R13!,{R14}
#<LDRB R1,Iconframe
#FCMP R1,#255
#PBEQ iconresetexit
#ZLDR R2,i1nadr
#dADD R2,R2,R1,LSL#2
#nLDR R5,iconxadr
#xLDR R3,[R5,R1,LSL#2]
#�LDR R5,iconyadr
#�LDR R4,[R5,R1,LSL#2]
#�BL spriteplot
#�MOV R0,#255
#�STRB R0,Iconframe
#�#.iconresetexit LDMFD R13!,{R15}
#�.beep SWI &42 ;Read time
#�� R1,R0,#60
#�MOV R0,#213
#�	SWI 6
#�
SWI 256+7
#�BIC R12,R12,#128 ;Beepflag
#�MOV R15,R14
#�]
$	�pass
$�"Sound Y/N ",A$
$#� A$="N" � A$="n" �  *AUDIO OFF
$�128:�:�13
$�I%=0�27:�224:�:�228:�
$")�I%=0�27:�225:��26,�32);:�229,228:�:�
$,$�5:�900,376:�900,1023:�1279,1023
$6+�13:ȓ904,374,372,643:ȓ908,378,364,635
$@$�5:�912,380:�1268,380:�1268,1007
$J�13:�30,10)"SCORE"
$T�6:�30,12)"0000000"
$^�14:�30,14)"FRAME"
$h�4:�30,16)"001"
$r*SCHOOSE BAL
$|H�&ED,968,720:�&ED,1000,720:�&ED,1032,720:�&ED,1064,720:�&ED,1096,720
$�*SCHOOSE I1N
$��&ED,992,272
$�*SCHOOSE I2N
$��&ED,1056,272
$�*SCHOOSE I3N
$��&ED,1120,272
$�*SCHOOSE I4N
$��&ED,992,208
$�*SCHOOSE I5N
$��&ED,1056,208
$�*SCHOOSE I6N
$��&ED,1120,208
$�*SCHOOSE I7N
%�&ED,992,144
%*SCHOOSE I8N
%�&ED,1056,144
%&*SCHOOSE I9N
%0�&ED,1120,144
%:*SCHOOSE IMP
%D�&ED,928,820
%N"�6:�976,130:�976,344:�1192,344
%X*�8:ȓ980,130,212,212:ȓ984,134,204,204
%b#�6:�988,138:�1184,138:�1184,334
%v� start
%��
�
00000000  0d 00 0a 09 c8 97 88 20  32 0d 00 14 06 eb 39 0d  |....... 2.....9.|
00000010  00 1e 12 fb 31 2c 26 38  30 2c 26 38 30 2c 26 38  |....1,&80,&80,&8|
00000020  30 0d 00 28 12 fb 32 2c  26 42 30 2c 26 42 30 2c  |0..(..2,&B0,&B0,|
00000030  26 42 30 0d 00 32 12 fb  33 2c 26 30 30 2c 26 39  |&B0..2..3,&00,&9|
00000040  30 2c 26 31 30 0d 00 3c  12 fb 34 2c 26 45 30 2c  |0,&10..<..4,&E0,|
00000050  26 30 30 2c 26 30 30 0d  00 46 12 fb 35 2c 26 46  |&00,&00..F..5,&F|
00000060  30 2c 26 42 30 2c 26 30  30 0d 00 50 12 fb 36 2c  |0,&B0,&00..P..6,|
00000070  26 46 30 2c 26 46 30 2c  26 30 30 0d 00 5a 12 fb  |&F0,&F0,&00..Z..|
00000080  37 2c 26 30 30 2c 26 34  30 2c 26 41 30 0d 00 64  |7,&00,&40,&A0..d|
00000090  12 fb 38 2c 26 30 30 2c  26 46 30 2c 26 30 30 0d  |..8,&00,&F0,&00.|
000000a0  00 6e 12 fb 39 2c 26 30  30 2c 26 42 30 2c 26 36  |.n..9,&00,&B0,&6|
000000b0  30 0d 00 78 13 fb 31 30  2c 26 34 30 2c 26 39 30  |0..x..10,&40,&90|
000000c0  2c 26 46 30 0d 00 82 13  fb 31 31 2c 26 37 30 2c  |,&F0.....11,&70,|
000000d0  26 30 30 2c 26 44 30 0d  00 8c 13 fb 31 32 2c 26  |&00,&D0.....12,&|
000000e0  42 30 2c 26 37 30 2c 26  30 30 0d 00 96 13 fb 31  |B0,&70,&00.....1|
000000f0  33 2c 26 46 30 2c 26 39  30 2c 26 30 30 0d 00 a0  |3,&F0,&90,&00...|
00000100  13 fb 31 34 2c 26 45 30  2c 26 30 30 2c 26 45 30  |..14,&E0,&00,&E0|
00000110  0d 00 aa 13 fb 31 35 2c  26 46 30 2c 26 46 30 2c  |.....15,&F0,&F0,|
00000120  26 46 30 0d 00 ab 22 2a  43 48 41 4e 4e 45 4c 56  |&F0..."*CHANNELV|
00000130  4f 49 43 45 20 31 20 53  74 72 69 6e 67 4c 69 62  |OICE 1 StringLib|
00000140  2d 53 6f 66 74 0d 00 b4  51 de 20 63 6f 64 65 25  |-Soft...Q. code%|
00000150  20 26 31 30 30 30 30 2c  73 63 72 65 65 6e 25 20  | &10000,screen% |
00000160  32 33 34 30 30 2c 62 61  6c 6c 62 25 20 38 2c 62  |23400,ballb% 8,b|
00000170  61 74 62 25 20 38 34 2c  62 61 64 31 62 25 20 31  |atb% 84,bad1b% 1|
00000180  30 30 2c 62 61 64 32 62  25 20 31 30 30 2c 74 6f  |00,bad2b% 100,to|
00000190  6b 62 25 20 34 35 0d 00  be 2b ff 28 22 4c 4f 41  |kb% 45...+.("LOA|
000001a0  44 20 3c 4f 62 65 79 24  44 69 72 3e 2e 53 63 72  |D <Obey$Dir>.Scr|
000001b0  65 65 6e 73 20 22 2b c3  7e 73 63 72 65 65 6e 25  |eens "+.~screen%|
000001c0  29 0d 00 c8 1d 2a 53 4c  4f 41 44 20 3c 4f 62 65  |)....*SLOAD <Obe|
000001d0  79 24 44 69 72 3e 2e 53  70 72 69 74 65 73 0d 00  |y$Dir>.Sprites..|
000001e0  d2 27 ef 32 33 2c 32 32  34 2c 32 34 37 2c 32 34  |.'.23,224,247,24|
000001f0  37 2c 32 34 37 2c 30 2c  31 32 37 2c 31 32 37 2c  |7,247,0,127,127,|
00000200  31 32 37 2c 30 0d 00 dc  27 ef 32 33 2c 32 32 35  |127,0...'.23,225|
00000210  2c 32 34 37 2c 32 34 37  2c 32 34 37 2c 30 2c 31  |,247,247,247,0,1|
00000220  32 36 2c 31 32 36 2c 31  32 36 2c 30 0d 00 e6 29  |26,126,126,0...)|
00000230  ef 32 33 2c 32 32 36 2c  30 2c 26 37 46 2c 26 37  |.23,226,0,&7F,&7|
00000240  46 2c 26 37 46 2c 26 37  46 2c 26 37 46 2c 26 37  |F,&7F,&7F,&7F,&7|
00000250  46 2c 26 37 46 0d 00 f0  29 ef 32 33 2c 32 32 37  |F,&7F...).23,227|
00000260  2c 30 2c 26 46 46 2c 26  46 46 2c 26 46 46 2c 26  |,0,&FF,&FF,&FF,&|
00000270  46 46 2c 26 46 46 2c 26  46 46 2c 26 46 46 0d 00  |FF,&FF,&FF,&FF..|
00000280  fa 21 ef 32 33 2c 32 32  38 2c 26 38 30 2c 26 38  |.!.23,228,&80,&8|
00000290  30 2c 26 38 30 2c 30 2c  30 2c 30 2c 30 2c 30 0d  |0,&80,0,0,0,0,0.|
000002a0  01 04 24 ef 32 33 2c 32  32 39 2c 31 31 39 2c 31  |..$.23,229,119,1|
000002b0  31 39 2c 31 31 39 2c 30  2c 36 33 2c 36 33 2c 36  |19,119,0,63,63,6|
000002c0  33 2c 30 0d 01 0e 0c ef  32 33 2c 31 2c 30 7c 0d  |3,0.....23,1,0|.|
000002d0  01 18 14 e3 20 70 61 73  73 3d 30 20 b8 20 32 20  |.... pass=0 . 2 |
000002e0  88 20 32 0d 01 22 0c 50  25 3d 63 6f 64 65 25 0d  |. 2..".P%=code%.|
000002f0  01 2c 0d 5b 4f 50 54 20  70 61 73 73 0d 01 36 11  |.,.[OPT pass..6.|
00000300  2e 73 63 6f 72 65 20 45  51 55 44 20 30 0d 01 40  |.score EQUD 0..@|
00000310  11 2e 74 65 6d 70 78 20  45 51 55 44 20 30 0d 01  |..tempx EQUD 0..|
00000320  4a 16 2e 66 72 61 6d 65  63 6f 75 6e 74 20 45 51  |J..framecount EQ|
00000330  55 44 20 30 0d 01 54 1a  2e 62 6f 75 6e 63 65 61  |UD 0..T..bouncea|
00000340  64 72 20 45 51 55 44 20  62 6f 75 6e 63 65 0d 01  |dr EQUD bounce..|
00000350  5e 14 2e 69 31 6e 61 64  72 20 45 51 55 44 20 69  |^..i1nadr EQUD i|
00000360  31 6e 0d 01 68 14 2e 69  31 68 61 64 72 20 45 51  |1n..h..i1hadr EQ|
00000370  55 44 20 69 31 68 0d 01  72 1d 2e 69 63 6f 6e 78  |UD i1h..r..iconx|
00000380  61 64 72 20 45 51 55 44  20 69 63 6f 6e 78 74 61  |adr EQUD iconxta|
00000390  62 6c 65 0d 01 7c 1d 2e  69 63 6f 6e 79 61 64 72  |ble..|..iconyadr|
000003a0  20 45 51 55 44 20 69 63  6f 6e 79 74 61 62 6c 65  | EQUD iconytable|
000003b0  0d 01 86 14 2e 62 6c 31  78 20 20 20 20 20 45 51  |.....bl1x     EQ|
000003c0  55 44 20 30 0d 01 90 14  2e 62 6c 31 79 20 20 20  |UD 0.....bl1y   |
000003d0  20 20 45 51 55 44 20 30  0d 01 9a 14 2e 62 6c 32  |  EQUD 0.....bl2|
000003e0  78 20 20 20 20 20 45 51  55 44 20 30 0d 01 a4 14  |x     EQUD 0....|
000003f0  2e 62 6c 32 79 20 20 20  20 20 45 51 55 44 20 30  |.bl2y     EQUD 0|
00000400  0d 01 ae 18 2e 6d 73 74  6f 70 20 45 51 55 44 20  |.....mstop EQUD |
00000410  26 31 46 44 38 30 30 30  0d 01 b8 1c 2e 76 64 75  |&1FD8000.....vdu|
00000420  62 6c 6b 20 45 51 55 44  20 31 34 39 3a 45 51 55  |blk EQUD 149:EQU|
00000430  44 20 2d 31 0d 01 c2 19  2e 76 64 75 6f 75 74 20  |D -1.....vduout |
00000440  45 51 55 44 20 30 3a 45  51 55 44 20 30 0d 01 cc  |EQUD 0:EQUD 0...|
00000450  14 2e 62 61 6c 6c 58 6d  20 45 51 55 44 20 36 34  |..ballXm EQUD 64|
00000460  30 0d 01 d6 14 2e 62 61  6c 6c 59 6d 20 45 51 55  |0.....ballYm EQU|
00000470  44 20 33 32 30 0d 01 e0  12 2e 62 61 74 58 6d 20  |D 320.....batXm |
00000480  20 45 51 55 44 20 30 0d  01 ea 13 2e 62 61 74 59  | EQUD 0.....batY|
00000490  6d 20 20 45 51 55 44 20  39 36 0d 01 f4 14 2e 62  |m  EQUD 96.....b|
000004a0  61 64 31 58 6d 20 45 51  55 44 20 31 32 38 0d 01  |ad1Xm EQUD 128..|
000004b0  fe 14 2e 62 61 64 31 59  6d 20 45 51 55 44 20 37  |...bad1Ym EQUD 7|
000004c0  30 34 0d 02 08 14 2e 62  61 64 32 58 6d 20 45 51  |04.....bad2Xm EQ|
000004d0  55 44 20 37 36 38 0d 02  12 14 2e 62 61 64 32 59  |UD 768.....bad2Y|
000004e0  6d 20 45 51 55 44 20 32  35 36 0d 02 1c 12 2e 74  |m EQUD 256.....t|
000004f0  6f 6b 58 6d 20 20 45 51  55 44 20 30 0d 02 26 12  |okXm  EQUD 0..&.|
00000500  2e 74 6f 6b 59 6d 20 20  45 51 55 44 20 30 0d 02  |.tokYm  EQUD 0..|
00000510  30 14 2e 74 6f 6b 61 62  73 20 20 20 45 51 55 44  |0..tokabs   EQUD|
00000520  20 30 0d 02 3a 16 2e 74  6f 6b 61 64 72 20 20 20  | 0..:..tokadr   |
00000530  45 51 55 44 20 74 6f 31  0d 02 44 18 2e 74 6f 6b  |EQUD to1..D..tok|
00000540  62 61 64 72 20 20 45 51  55 44 20 74 6f 6b 62 25  |badr  EQUD tokb%|
00000550  0d 02 4e 13 2e 62 61 6c  6c 61 62 73 20 45 51 55  |..N..ballabs EQU|
00000560  44 20 30 0d 02 58 16 2e  62 61 6c 6c 61 64 72 20  |D 0..X..balladr |
00000570  45 51 55 44 20 62 61 6c  6c 0d 02 62 19 2e 62 61  |EQUD ball..b..ba|
00000580  6c 6c 62 61 64 72 20 45  51 55 44 20 62 61 6c 6c  |llbadr EQUD ball|
00000590  62 25 0d 02 6c 13 2e 62  61 74 61 62 73 20 20 45  |b%..l..batabs  E|
000005a0  51 55 44 20 30 0d 02 76  15 2e 62 61 74 61 64 72  |QUD 0..v..batadr|
000005b0  20 20 45 51 55 44 20 62  61 74 0d 02 80 18 2e 62  |  EQUD bat.....b|
000005c0  61 74 62 61 64 72 20 20  45 51 55 44 20 62 61 74  |atbadr  EQUD bat|
000005d0  62 25 0d 02 8a 14 2e 62  31 61 64 72 20 20 20 45  |b%.....b1adr   E|
000005e0  51 55 44 20 62 31 0d 02  94 15 2e 62 6c 31 61 64  |QUD b1.....bl1ad|
000005f0  72 20 20 45 51 55 44 20  62 6c 31 0d 02 9e 14 2e  |r  EQUD bl1.....|
00000600  65 78 31 61 64 72 20 45  51 55 44 20 65 78 31 0d  |ex1adr EQUD ex1.|
00000610  02 a8 14 2e 65 78 32 61  64 72 20 45 51 55 44 20  |....ex2adr EQUD |
00000620  65 78 31 0d 02 b2 15 2e  62 61 64 31 61 62 73 20  |ex1.....bad1abs |
00000630  20 20 45 51 55 44 20 30  0d 02 bc 1c 2e 62 61 64  |  EQUD 0.....bad|
00000640  31 62 61 64 72 20 20 20  20 45 51 55 44 20 62 61  |1badr    EQUD ba|
00000650  64 31 62 25 0d 02 c6 15  2e 62 61 64 32 61 62 73  |d1b%.....bad2abs|
00000660  20 20 20 45 51 55 44 20  30 0d 02 d0 1c 2e 62 61  |   EQUD 0.....ba|
00000670  64 32 62 61 64 72 20 20  20 20 45 51 55 44 20 62  |d2badr    EQUD b|
00000680  61 64 32 62 25 0d 02 da  1a 2e 62 6c 6f 63 6b 73  |ad2b%.....blocks|
00000690  61 64 72 20 45 51 55 44  20 62 6c 6f 63 6b 73 0d  |adr EQUD blocks.|
000006a0  02 e4 18 2e 73 63 72 65  65 6e 20 45 51 55 44 20  |....screen EQUD |
000006b0  73 63 72 65 65 6e 25 0d  02 ee 18 2e 69 63 6f 6e  |screen%.....icon|
000006c0  78 74 61 62 6c 65 20 45  51 55 44 20 39 39 32 0d  |xtable EQUD 992.|
000006d0  02 f8 0d 45 51 55 44 20  31 30 35 36 0d 03 02 0d  |...EQUD 1056....|
000006e0  45 51 55 44 20 31 31 32  30 0d 03 0c 0c 45 51 55  |EQUD 1120....EQU|
000006f0  44 20 39 39 32 0d 03 16  0d 45 51 55 44 20 31 30  |D 992....EQUD 10|
00000700  35 36 0d 03 20 0d 45 51  55 44 20 31 31 32 30 0d  |56.. .EQUD 1120.|
00000710  03 2a 0c 45 51 55 44 20  39 39 32 0d 03 34 0d 45  |.*.EQUD 992..4.E|
00000720  51 55 44 20 31 30 35 36  0d 03 3e 0d 45 51 55 44  |QUD 1056..>.EQUD|
00000730  20 31 31 32 30 0d 03 48  18 2e 69 63 6f 6e 79 74  | 1120..H..iconyt|
00000740  61 62 6c 65 20 45 51 55  44 20 32 37 32 0d 03 52  |able EQUD 272..R|
00000750  0c 45 51 55 44 20 32 37  32 0d 03 5c 0c 45 51 55  |.EQUD 272..\.EQU|
00000760  44 20 32 37 32 0d 03 66  0c 45 51 55 44 20 32 30  |D 272..f.EQUD 20|
00000770  38 0d 03 70 0c 45 51 55  44 20 32 30 38 0d 03 7a  |8..p.EQUD 208..z|
00000780  0c 45 51 55 44 20 32 30  38 0d 03 84 0c 45 51 55  |.EQUD 208....EQU|
00000790  44 20 31 34 34 0d 03 8e  0c 45 51 55 44 20 31 34  |D 144....EQUD 14|
000007a0  34 0d 03 98 0c 45 51 55  44 20 31 34 34 0d 03 a2  |4....EQUD 144...|
000007b0  16 2e 58 6d 61 64 72 20  45 51 55 44 20 62 61 6c  |..Xmadr EQUD bal|
000007c0  6c 58 6d 0d 03 ac 1a 2e  62 31 20 20 20 20 20 20  |lXm.....b1      |
000007d0  45 51 55 53 20 22 62 31  20 22 2b bd 30 0d 03 b6  |EQUS "b1 "+.0...|
000007e0  1a 2e 62 32 20 20 20 20  20 20 45 51 55 53 20 22  |..b2      EQUS "|
000007f0  62 32 20 22 2b bd 30 0d  03 c0 1a 2e 62 33 20 20  |b2 "+.0.....b3  |
00000800  20 20 20 20 45 51 55 53  20 22 62 33 20 22 2b bd  |    EQUS "b3 "+.|
00000810  30 0d 03 ca 1a 2e 62 34  20 20 20 20 20 20 45 51  |0.....b4      EQ|
00000820  55 53 20 22 62 34 20 22  2b bd 30 0d 03 d4 1a 2e  |US "b4 "+.0.....|
00000830  62 6c 31 20 20 20 20 20  45 51 55 53 20 22 62 6c  |bl1     EQUS "bl|
00000840  34 22 2b bd 30 0d 03 de  1a 2e 62 6c 32 20 20 20  |4"+.0.....bl2   |
00000850  20 20 45 51 55 53 20 22  62 6c 32 22 2b bd 30 0d  |  EQUS "bl2"+.0.|
00000860  03 e8 1a 2e 62 6c 33 20  20 20 20 20 45 51 55 53  |....bl3     EQUS|
00000870  20 22 62 6c 34 22 2b bd  30 0d 03 f2 1a 2e 62 6c  | "bl4"+.0.....bl|
00000880  34 20 20 20 20 20 45 51  55 53 20 22 62 6c 34 22  |4     EQUS "bl4"|
00000890  2b bd 30 0d 03 fc 1a 2e  65 78 31 20 20 20 20 20  |+.0.....ex1     |
000008a0  45 51 55 53 20 22 65 78  31 22 2b bd 30 0d 04 06  |EQUS "ex1"+.0...|
000008b0  1a 2e 65 78 32 20 20 20  20 20 45 51 55 53 20 22  |..ex2     EQUS "|
000008c0  65 78 32 22 2b bd 30 0d  04 10 1a 2e 65 78 33 20  |ex2"+.0.....ex3 |
000008d0  20 20 20 20 45 51 55 53  20 22 62 78 20 22 2b bd  |    EQUS "bx "+.|
000008e0  30 0d 04 1a 1a 2e 65 78  34 20 20 20 20 20 45 51  |0.....ex4     EQ|
000008f0  55 53 20 22 62 78 20 22  2b bd 30 0d 04 24 1a 2e  |US "bx "+.0..$..|
00000900  62 61 74 20 20 20 20 20  45 51 55 53 20 22 62 61  |bat     EQUS "ba|
00000910  31 22 2b bd 30 0d 04 2e  19 2e 62 61 32 20 20 20  |1"+.0.....ba2   |
00000920  20 45 51 55 53 20 22 62  61 32 22 2b bd 30 0d 04  | EQUS "ba2"+.0..|
00000930  38 19 2e 62 61 33 20 20  20 20 45 51 55 53 20 22  |8..ba3    EQUS "|
00000940  62 61 33 22 2b bd 30 0d  04 42 19 2e 62 61 34 20  |ba3"+.0..B..ba4 |
00000950  20 20 20 45 51 55 53 20  22 62 61 34 22 2b bd 30  |   EQUS "ba4"+.0|
00000960  0d 04 4c 19 2e 62 61 35  20 20 20 20 45 51 55 53  |..L..ba5    EQUS|
00000970  20 22 62 61 35 22 2b bd  30 0d 04 56 19 2e 62 61  | "ba5"+.0..V..ba|
00000980  36 20 20 20 20 45 51 55  53 20 22 62 61 36 22 2b  |6    EQUS "ba6"+|
00000990  bd 30 0d 04 60 1a 2e 62  61 6c 6c 20 20 20 20 45  |.0..`..ball    E|
000009a0  51 55 53 20 22 62 61 6c  22 2b bd 30 0d 04 6a 1a  |QUS "bal"+.0..j.|
000009b0  2e 74 6f 31 20 20 20 20  20 45 51 55 53 20 22 74  |.to1     EQUS "t|
000009c0  6f 31 22 2b bd 30 0d 04  74 1a 2e 74 6f 32 20 20  |o1"+.0..t..to2  |
000009d0  20 20 20 45 51 55 53 20  22 74 6f 32 22 2b bd 30  |   EQUS "to2"+.0|
000009e0  0d 04 7e 1a 2e 74 6f 33  20 20 20 20 20 45 51 55  |..~..to3     EQU|
000009f0  53 20 22 74 6f 33 22 2b  bd 30 0d 04 88 1a 2e 74  |S "to3"+.0.....t|
00000a00  6f 34 20 20 20 20 20 45  51 55 53 20 22 74 6f 34  |o4     EQUS "to4|
00000a10  22 2b bd 30 0d 04 92 1a  2e 74 6f 35 20 20 20 20  |"+.0.....to5    |
00000a20  20 45 51 55 53 20 22 74  6f 33 22 2b bd 30 0d 04  | EQUS "to3"+.0..|
00000a30  9c 1a 2e 74 6f 36 20 20  20 20 20 45 51 55 53 20  |...to6     EQUS |
00000a40  22 74 6f 32 22 2b bd 30  0d 04 a6 1a 2e 74 6f 37  |"to2"+.0.....to7|
00000a50  20 20 20 20 20 45 51 55  53 20 22 74 6f 31 22 2b  |     EQUS "to1"+|
00000a60  bd 30 0d 04 b0 1a 2e 69  31 6e 20 20 20 20 20 45  |.0.....i1n     E|
00000a70  51 55 53 20 22 69 31 6e  22 2b bd 30 0d 04 ba 1a  |QUS "i1n"+.0....|
00000a80  2e 69 32 6e 20 20 20 20  20 45 51 55 53 20 22 69  |.i2n     EQUS "i|
00000a90  32 6e 22 2b bd 30 0d 04  c4 1a 2e 69 33 6e 20 20  |2n"+.0.....i3n  |
00000aa0  20 20 20 45 51 55 53 20  22 69 33 6e 22 2b bd 30  |   EQUS "i3n"+.0|
00000ab0  0d 04 ce 1a 2e 69 34 6e  20 20 20 20 20 45 51 55  |.....i4n     EQU|
00000ac0  53 20 22 69 34 6e 22 2b  bd 30 0d 04 d8 1a 2e 69  |S "i4n"+.0.....i|
00000ad0  35 6e 20 20 20 20 20 45  51 55 53 20 22 69 35 6e  |5n     EQUS "i5n|
00000ae0  22 2b bd 30 0d 04 e2 1a  2e 69 36 6e 20 20 20 20  |"+.0.....i6n    |
00000af0  20 45 51 55 53 20 22 69  36 6e 22 2b bd 30 0d 04  | EQUS "i6n"+.0..|
00000b00  ec 1a 2e 69 37 6e 20 20  20 20 20 45 51 55 53 20  |...i7n     EQUS |
00000b10  22 69 37 6e 22 2b bd 30  0d 04 f6 1a 2e 69 38 6e  |"i7n"+.0.....i8n|
00000b20  20 20 20 20 20 45 51 55  53 20 22 69 38 6e 22 2b  |     EQUS "i8n"+|
00000b30  bd 30 0d 05 00 1a 2e 69  39 6e 20 20 20 20 20 45  |.0.....i9n     E|
00000b40  51 55 53 20 22 69 39 6e  22 2b bd 30 0d 05 0a 1b  |QUS "i9n"+.0....|
00000b50  2e 69 31 68 20 20 20 20  20 20 45 51 55 53 20 22  |.i1h      EQUS "|
00000b60  69 31 68 22 2b bd 30 0d  05 14 1b 2e 69 32 68 20  |i1h"+.0.....i2h |
00000b70  20 20 20 20 20 45 51 55  53 20 22 69 32 68 22 2b  |     EQUS "i2h"+|
00000b80  bd 30 0d 05 1e 1b 2e 69  33 68 20 20 20 20 20 20  |.0.....i3h      |
00000b90  45 51 55 53 20 22 69 33  68 22 2b bd 30 0d 05 28  |EQUS "i3h"+.0..(|
00000ba0  1b 2e 69 34 68 20 20 20  20 20 20 45 51 55 53 20  |..i4h      EQUS |
00000bb0  22 69 34 68 22 2b bd 30  0d 05 32 1b 2e 69 35 68  |"i4h"+.0..2..i5h|
00000bc0  20 20 20 20 20 20 45 51  55 53 20 22 69 35 68 22  |      EQUS "i5h"|
00000bd0  2b bd 30 0d 05 3c 1b 2e  69 36 68 20 20 20 20 20  |+.0..<..i6h     |
00000be0  20 45 51 55 53 20 22 69  36 68 22 2b bd 30 0d 05  | EQUS "i6h"+.0..|
00000bf0  46 1b 2e 69 37 68 20 20  20 20 20 20 45 51 55 53  |F..i7h      EQUS|
00000c00  20 22 69 37 68 22 2b bd  30 0d 05 50 1b 2e 69 38  | "i7h"+.0..P..i8|
00000c10  68 20 20 20 20 20 20 45  51 55 53 20 22 69 38 68  |h      EQUS "i8h|
00000c20  22 2b bd 30 0d 05 5a 1b  2e 69 39 68 20 20 20 20  |"+.0..Z..i9h    |
00000c30  20 20 45 51 55 53 20 22  69 39 68 22 2b bd 30 0d  |  EQUS "i9h"+.0.|
00000c40  05 64 17 2e 73 63 72 65  65 6e 6c 65 76 65 6c 20  |.d..screenlevel |
00000c50  45 51 55 42 20 30 0d 05  6e 12 2e 45 78 31 6e 75  |EQUB 0..n..Ex1nu|
00000c60  6d 20 45 51 55 42 20 30  0d 05 78 12 2e 45 78 32  |m EQUB 0..x..Ex2|
00000c70  6e 75 6d 20 45 51 55 42  20 30 0d 05 82 11 2e 42  |num EQUB 0.....B|
00000c80  6c 6e 75 6d 20 45 51 55  42 20 30 0d 05 8c 12 2e  |lnum EQUB 0.....|
00000c90  42 61 6c 6c 56 58 20 45  51 55 42 20 32 0d 05 96  |BallVX EQUB 2...|
00000ca0  13 2e 42 61 6c 6c 56 59  20 45 51 55 42 20 31 36  |..BallVY EQUB 16|
00000cb0  0d 05 a0 12 2e 42 61 64  31 56 58 20 45 51 55 42  |.....Bad1VX EQUB|
00000cc0  20 34 0d 05 aa 12 2e 42  61 64 31 56 59 20 45 51  | 4.....Bad1VY EQ|
00000cd0  55 42 20 34 0d 05 b4 12  2e 42 61 64 32 56 58 20  |UB 4.....Bad2VX |
00000ce0  45 51 55 42 20 34 0d 05  be 12 2e 42 61 64 32 56  |EQUB 4.....Bad2V|
00000cf0  59 20 45 51 55 42 20 34  0d 05 c8 15 2e 42 61 64  |Y EQUB 4.....Bad|
00000d00  31 66 72 61 6d 65 20 45  51 55 42 20 30 0d 05 d2  |1frame EQUB 0...|
00000d10  15 2e 42 61 64 32 66 72  61 6d 65 20 45 51 55 42  |..Bad2frame EQUB|
00000d20  20 31 0d 05 dc 14 2e 54  6f 6b 66 72 61 6d 65 20  | 1.....Tokframe |
00000d30  45 51 55 42 20 30 0d 05  e6 17 2e 49 63 6f 6e 66  |EQUB 0.....Iconf|
00000d40  72 61 6d 65 20 45 51 55  42 20 32 35 35 0d 05 f0  |rame EQUB 255...|
00000d50  14 2e 42 61 74 66 72 61  6d 65 20 45 51 55 42 20  |..Batframe EQUB |
00000d60  30 0d 05 fa 1d 2e 48 69  74 73 20 45 51 55 42 20  |0.....Hits EQUB |
00000d70  30 20 3b 48 69 74 20 63  6f 75 6e 74 65 72 0d 06  |0 ;Hit counter..|
00000d80  04 12 2e 42 61 6c 6c 73  20 45 51 55 42 20 31 30  |...Balls EQUB 10|
00000d90  0d 06 0e 11 2e 50 69 74  63 68 20 45 51 55 42 20  |.....Pitch EQUB |
00000da0  30 0d 06 18 09 41 4c 49  47 4e 0d 06 22 19 2e 62  |0....ALIGN.."..b|
00000db0  6c 6f 63 6b 73 20 45 51  55 53 20 c4 32 33 36 2c  |locks EQUS .236,|
00000dc0  bd 30 29 0d 06 2c 43 2e  62 6f 75 6e 63 65 20 45  |.0)..,C.bounce E|
00000dd0  51 55 53 20 bd 31 36 2b  bd 31 36 2b bd 38 2b bd  |QUS .16+.16+.8+.|
00000de0  38 2b bd 34 2b bd 34 2b  bd 34 2b bd 32 2b bd 32  |8+.4+.4+.4+.2+.2|
00000df0  2b bd 32 2b bd 34 2b bd  34 2b bd 34 2b bd 38 2b  |+.2+.4+.4+.4+.8+|
00000e00  bd 38 2b bd 31 36 0d 06  36 10 45 51 55 53 20 c4  |.8+.16..6.EQUS .|
00000e10  33 32 2c bd 31 29 0d 06  40 09 41 4c 49 47 4e 0d  |32,.1)..@.ALIGN.|
00000e20  06 4a 22 2e 73 74 61 72  74 20 53 54 4d 46 44 20  |.J".start STMFD |
00000e30  52 31 33 21 2c 7b 52 30  2d 52 31 32 2c 52 31 34  |R13!,{R0-R12,R14|
00000e40  7d 0d 06 54 12 20 41 44  52 20 52 30 2c 76 64 75  |}..T. ADR R0,vdu|
00000e50  62 6c 6b 0d 06 5e 12 20  41 44 52 20 52 31 2c 76  |blk..^. ADR R1,v|
00000e60  64 75 6f 75 74 0d 06 68  0c 20 53 57 49 20 26 33  |duout..h. SWI &3|
00000e70  31 0d 06 72 12 20 4c 44  52 20 52 30 2c 76 64 75  |1..r. LDR R0,vdu|
00000e80  6f 75 74 0d 06 7c 11 20  53 54 52 20 52 30 2c 6d  |out..|. STR R0,m|
00000e90  73 74 6f 70 0d 06 86 0c  42 4c 20 73 65 74 75 70  |stop....BL setup|
00000ea0  0d 06 90 0d 42 20 6e 65  77 62 61 6c 6c 0d 06 9a  |....B newball...|
00000eb0  1f 2e 70 6f 73 69 74 69  6f 6e 73 20 53 54 4d 46  |..positions STMF|
00000ec0  44 20 52 31 33 21 2c 7b  52 31 34 7d 0d 06 a4 12  |D R13!,{R14}....|
00000ed0  4c 44 52 20 52 32 2c 62  61 6c 6c 61 64 72 0d 06  |LDR R2,balladr..|
00000ee0  ae 12 4c 44 52 20 52 33  2c 5b 52 36 2c 23 30 5d  |..LDR R3,[R6,#0]|
00000ef0  0d 06 b8 12 4c 44 52 20  52 34 2c 5b 52 36 2c 23  |....LDR R4,[R6,#|
00000f00  34 5d 0d 06 c2 1c 42 4c  20 73 70 72 69 74 65 70  |4]....BL spritep|
00000f10  6c 6f 74 20 3b 44 72 61  77 20 62 61 6c 6c 0d 06  |lot ;Draw ball..|
00000f20  cc 1c 54 53 54 20 52 31  32 2c 23 38 20 3b 54 65  |..TST R12,#8 ;Te|
00000f30  73 74 20 65 78 31 66 6c  61 67 0d 06 d6 14 4c 44  |st ex1flag....LD|
00000f40  52 4e 45 42 20 52 31 2c  45 78 31 6e 75 6d 0d 06  |RNEB R1,Ex1num..|
00000f50  e0 13 4c 44 52 4e 45 20  52 32 2c 65 78 31 61 64  |..LDRNE R2,ex1ad|
00000f60  72 0d 06 ea 17 4c 44 52  45 51 42 20 52 31 2c 42  |r....LDREQB R1,B|
00000f70  61 64 31 66 72 61 6d 65  0d 06 f4 12 4c 44 52 45  |ad1frame....LDRE|
00000f80  51 20 52 32 2c 62 31 61  64 72 0d 06 fe 3a 2e 64  |Q R2,b1adr...:.d|
00000f90  72 61 77 62 61 64 31 20  41 44 44 20 52 32 2c 52  |rawbad1 ADD R2,R|
00000fa0  32 2c 52 31 2c 4c 53 4c  23 32 20 3b 47 65 74 20  |2,R1,LSL#2 ;Get |
00000fb0  62 61 64 31 27 73 20 61  64 64 72 65 73 73 20 69  |bad1's address i|
00000fc0  6e 20 52 32 0d 07 08 13  4c 44 52 20 52 33 2c 5b  |n R2....LDR R3,[|
00000fd0  52 36 2c 23 31 36 5d 0d  07 12 13 4c 44 52 20 52  |R6,#16]....LDR R|
00000fe0  34 2c 5b 52 36 2c 23 32  30 5d 0d 07 1c 1c 42 4c  |4,[R6,#20]....BL|
00000ff0  20 73 70 72 69 74 65 70  6c 6f 74 20 3b 44 72 61  | spriteplot ;Dra|
00001000  77 20 62 61 64 31 0d 07  26 1d 54 53 54 20 52 31  |w bad1..&.TST R1|
00001010  32 2c 23 31 36 20 3b 54  65 73 74 20 65 78 32 66  |2,#16 ;Test ex2f|
00001020  6c 61 67 0d 07 30 14 4c  44 52 4e 45 42 20 52 31  |lag..0.LDRNEB R1|
00001030  2c 45 78 32 6e 75 6d 0d  07 3a 13 4c 44 52 4e 45  |,Ex2num..:.LDRNE|
00001040  20 52 32 2c 65 78 32 61  64 72 0d 07 44 17 4c 44  | R2,ex2adr..D.LD|
00001050  52 45 51 42 20 52 31 2c  42 61 64 32 66 72 61 6d  |REQB R1,Bad2fram|
00001060  65 0d 07 4e 12 4c 44 52  45 51 20 52 32 2c 62 31  |e..N.LDREQ R2,b1|
00001070  61 64 72 0d 07 58 3a 2e  64 72 61 77 62 61 64 32  |adr..X:.drawbad2|
00001080  20 41 44 44 20 52 32 2c  52 32 2c 52 31 2c 4c 53  | ADD R2,R2,R1,LS|
00001090  4c 23 32 20 3b 47 65 74  20 62 61 64 32 27 73 20  |L#2 ;Get bad2's |
000010a0  61 64 64 72 65 73 73 20  69 6e 20 52 32 0d 07 62  |address in R2..b|
000010b0  13 4c 44 52 20 52 33 2c  5b 52 36 2c 23 32 34 5d  |.LDR R3,[R6,#24]|
000010c0  0d 07 6c 13 4c 44 52 20  52 34 2c 5b 52 36 2c 23  |..l.LDR R4,[R6,#|
000010d0  32 38 5d 0d 07 76 1c 42  4c 20 73 70 72 69 74 65  |28]..v.BL sprite|
000010e0  70 6c 6f 74 20 3b 44 72  61 77 20 62 61 64 32 0d  |plot ;Draw bad2.|
000010f0  07 80 14 4c 44 52 42 20  52 31 2c 42 61 74 66 72  |...LDRB R1,Batfr|
00001100  61 6d 65 0d 07 8a 11 4c  44 52 20 52 32 2c 62 61  |ame....LDR R2,ba|
00001110  74 61 64 72 0d 07 94 16  41 44 44 20 52 32 2c 52  |tadr....ADD R2,R|
00001120  32 2c 52 31 2c 4c 53 4c  23 32 0d 07 9e 12 4c 44  |2,R1,LSL#2....LD|
00001130  52 20 52 33 2c 5b 52 36  2c 23 38 5d 0d 07 a8 13  |R R3,[R6,#8]....|
00001140  4c 44 52 20 52 34 2c 5b  52 36 2c 23 31 32 5d 0d  |LDR R4,[R6,#12].|
00001150  07 b2 1b 42 4c 20 73 70  72 69 74 65 70 6c 6f 74  |...BL spriteplot|
00001160  20 3b 44 72 61 77 20 62  61 74 0d 07 bc 1b 54 53  | ;Draw bat....TS|
00001170  54 20 52 31 32 2c 23 38  31 39 32 20 3b 49 63 6f  |T R12,#8192 ;Ico|
00001180  6e 66 6c 61 67 0d 07 c6  0d 42 45 51 20 64 6f 74  |nflag....BEQ dot|
00001190  6f 6b 0d 07 d0 15 4c 44  52 42 20 52 31 2c 49 63  |ok....LDRB R1,Ic|
000011a0  6f 6e 66 72 61 6d 65 0d  07 da 0f 43 4d 50 20 52  |onframe....CMP R|
000011b0  31 2c 23 32 35 35 0d 07  e4 11 42 45 51 20 66 69  |1,#255....BEQ fi|
000011c0  72 73 74 69 63 6f 6e 0d  07 ee 11 4c 44 52 20 52  |rsticon....LDR R|
000011d0  32 2c 69 31 6e 61 64 72  0d 07 f8 35 41 44 44 20  |2,i1nadr...5ADD |
000011e0  52 32 2c 52 32 2c 52 31  2c 4c 53 4c 23 32 20 3b  |R2,R2,R1,LSL#2 ;|
000011f0  47 65 74 20 6e 6f 72 6d  61 6c 20 69 63 6f 6e 20  |Get normal icon |
00001200  61 64 64 72 65 73 73 20  69 6e 20 52 32 0d 08 02  |address in R2...|
00001210  13 4c 44 52 20 52 35 2c  69 63 6f 6e 78 61 64 72  |.LDR R5,iconxadr|
00001220  0d 08 0c 18 4c 44 52 20  52 33 2c 5b 52 35 2c 52  |....LDR R3,[R5,R|
00001230  31 2c 4c 53 4c 23 32 5d  0d 08 16 13 4c 44 52 20  |1,LSL#2]....LDR |
00001240  52 35 2c 69 63 6f 6e 79  61 64 72 0d 08 20 18 4c  |R5,iconyadr.. .L|
00001250  44 52 20 52 34 2c 5b 52  35 2c 52 31 2c 4c 53 4c  |DR R4,[R5,R1,LSL|
00001260  23 32 5d 0d 08 2a 11 42  4c 20 73 70 72 69 74 65  |#2]..*.BL sprite|
00001270  70 6c 6f 74 0d 08 34 15  4c 44 52 42 20 52 31 2c  |plot..4.LDRB R1,|
00001280  49 63 6f 6e 66 72 61 6d  65 0d 08 3e 10 41 44 44  |Iconframe..>.ADD|
00001290  20 52 31 2c 52 31 2c 23  31 0d 08 48 0d 43 4d 50  | R1,R1,#1..H.CMP|
000012a0  20 52 31 2c 23 39 0d 08  52 17 2e 66 69 72 73 74  | R1,#9..R..first|
000012b0  69 63 6f 6e 20 ec 51 20  52 31 2c 23 30 0d 08 5c  |icon .Q R1,#0..\|
000012c0  15 53 54 52 42 20 52 31  2c 49 63 6f 6e 66 72 61  |.STRB R1,Iconfra|
000012d0  6d 65 0d 08 66 11 4c 44  52 20 52 32 2c 69 31 68  |me..f.LDR R2,i1h|
000012e0  61 64 72 0d 08 70 3a 41  44 44 20 52 32 2c 52 32  |adr..p:ADD R2,R2|
000012f0  2c 52 31 2c 4c 53 4c 23  32 20 3b 47 65 74 20 68  |,R1,LSL#2 ;Get h|
00001300  69 67 68 6c 69 67 68 74  65 64 20 69 63 6f 6e 20  |ighlighted icon |
00001310  61 64 64 72 65 73 73 20  69 6e 20 52 32 0d 08 7a  |address in R2..z|
00001320  13 4c 44 52 20 52 35 2c  69 63 6f 6e 78 61 64 72  |.LDR R5,iconxadr|
00001330  0d 08 84 18 4c 44 52 20  52 33 2c 5b 52 35 2c 52  |....LDR R3,[R5,R|
00001340  31 2c 4c 53 4c 23 32 5d  0d 08 8e 13 4c 44 52 20  |1,LSL#2]....LDR |
00001350  52 35 2c 69 63 6f 6e 79  61 64 72 0d 08 98 18 4c  |R5,iconyadr....L|
00001360  44 52 20 52 34 2c 5b 52  35 2c 52 31 2c 4c 53 4c  |DR R4,[R5,R1,LSL|
00001370  23 32 5d 0d 08 a2 11 42  4c 20 73 70 72 69 74 65  |#2]....BL sprite|
00001380  70 6c 6f 74 0d 08 ac 25  42 49 43 20 52 31 32 2c  |plot...%BIC R12,|
00001390  52 31 32 2c 23 38 31 39  32 20 3b 43 6c 65 61 72  |R12,#8192 ;Clear|
000013a0  20 69 63 6f 6e 66 6c 61  67 0d 08 b6 24 2e 64 6f  | iconflag...$.do|
000013b0  74 6f 6b 20 54 53 54 20  52 31 32 2c 23 36 34 20  |tok TST R12,#64 |
000013c0  3b 54 65 73 74 20 74 6f  6b 66 6c 61 67 0d 08 c0  |;Test tokflag...|
000013d0  0f 42 45 51 20 65 78 69  74 70 6f 73 0d 08 ca 14  |.BEQ exitpos....|
000013e0  4c 44 52 42 20 52 31 2c  54 6f 6b 66 72 61 6d 65  |LDRB R1,Tokframe|
000013f0  0d 08 d4 11 4c 44 52 20  52 32 2c 74 6f 6b 61 64  |....LDR R2,tokad|
00001400  72 0d 08 de 2d 41 44 44  20 52 32 2c 52 32 2c 52  |r...-ADD R2,R2,R|
00001410  31 2c 4c 53 4c 23 32 20  3b 47 65 74 20 74 6f 6b  |1,LSL#2 ;Get tok|
00001420  20 61 64 64 72 65 73 73  20 69 6e 20 52 32 0d 08  | address in R2..|
00001430  e8 13 4c 44 52 20 52 33  2c 5b 52 36 2c 23 33 32  |..LDR R3,[R6,#32|
00001440  5d 0d 08 f2 13 4c 44 52  20 52 34 2c 5b 52 36 2c  |]....LDR R4,[R6,|
00001450  23 33 36 5d 0d 08 fc 1b  42 4c 20 73 70 72 69 74  |#36]....BL sprit|
00001460  65 70 6c 6f 74 20 3b 44  72 61 77 20 74 6f 6b 0d  |eplot ;Draw tok.|
00001470  09 06 1d 2e 65 78 69 74  70 6f 73 20 4c 44 4d 46  |....exitpos LDMF|
00001480  44 20 52 31 33 21 2c 7b  52 31 35 7d 0d 09 10 3d  |D R13!,{R15}...=|
00001490  2e 6c 6f 6f 70 20 4c 44  52 20 52 30 2c 66 72 61  |.loop LDR R0,fra|
000014a0  6d 65 63 6f 75 6e 74 20  3b 4d 61 69 6e 20 6c 6f  |mecount ;Main lo|
000014b0  6f 70 20 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |op *************|
000014c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 0d 09 1a 10 41 44 44  |*********....ADD|
000014d0  20 52 30 2c 52 30 2c 23  31 0d 09 24 15 53 54 52  | R0,R0,#1..$.STR|
000014e0  20 52 30 2c 66 72 61 6d  65 63 6f 75 6e 74 0d 09  | R0,framecount..|
000014f0  2e 0f 80 53 20 52 30 2c  52 30 2c 23 37 0d 09 38  |...S R0,R0,#7..8|
00001500  26 84 52 45 51 20 52 31  32 2c 52 31 32 2c 23 33  |&.REQ R12,R12,#3|
00001510  32 37 36 38 20 3b 53 65  74 20 66 72 61 6d 65 66  |2768 ;Set framef|
00001520  6c 61 67 0d 09 42 29 42  49 43 4e 45 20 52 31 32  |lag..B)BICNE R12|
00001530  2c 52 31 32 2c 23 33 32  37 36 38 20 3b 43 6c 65  |,R12,#32768 ;Cle|
00001540  61 72 20 66 72 61 6d 65  66 6c 61 67 0d 09 4c 11  |ar frameflag..L.|
00001550  4c 44 52 20 52 30 2c 62  61 6c 6c 58 6d 0d 09 56  |LDR R0,ballXm..V|
00001560  11 4c 44 52 20 52 31 2c  62 61 6c 6c 59 6d 0d 09  |.LDR R1,ballYm..|
00001570  60 12 4c 44 52 42 20 52  32 2c 42 61 6c 6c 56 58  |`.LDRB R2,BallVX|
00001580  0d 09 6a 12 4c 44 52 42  20 52 33 2c 42 61 6c 6c  |..j.LDRB R3,Ball|
00001590  56 59 0d 09 74 27 2e 62  61 6c 6c 63 61 6c 63 20  |VY..t'.ballcalc |
000015a0  54 53 54 20 52 31 32 2c  23 31 20 3b 54 65 73 74  |TST R12,#1 ;Test|
000015b0  20 62 61 6c 6c 78 64 69  72 0d 09 7e 12 53 55 42  | ballxdir..~.SUB|
000015c0  45 51 20 52 30 2c 52 30  2c 52 32 0d 09 88 12 41  |EQ R0,R0,R2....A|
000015d0  44 44 4e 45 20 52 30 2c  52 30 2c 52 32 0d 09 92  |DDNE R0,R0,R2...|
000015e0  11 53 54 52 20 52 30 2c  62 61 6c 6c 58 6d 0d 09  |.STR R0,ballXm..|
000015f0  9c 1d 54 53 54 20 52 31  32 2c 23 32 20 3b 54 65  |..TST R12,#2 ;Te|
00001600  73 74 20 62 61 6c 6c 79  64 69 72 0d 09 a6 12 53  |st ballydir....S|
00001610  55 42 45 51 20 52 31 2c  52 31 2c 52 33 0d 09 b0  |UBEQ R1,R1,R3...|
00001620  12 41 44 44 4e 45 20 52  31 2c 52 31 2c 52 33 0d  |.ADDNE R1,R1,R3.|
00001630  09 ba 11 53 54 52 20 52  31 2c 62 61 6c 6c 59 6d  |...STR R1,ballYm|
00001640  0d 09 c4 0e 42 4c 20 62  61 74 63 61 6c 63 0d 09  |....BL batcalc..|
00001650  ce 10 53 54 52 20 52 30  2c 62 61 74 58 6d 0d 09  |..STR R0,batXm..|
00001660  d8 1c 54 53 54 20 52 31  32 2c 23 38 20 3b 54 65  |..TST R12,#8 ;Te|
00001670  73 74 20 65 78 31 66 6c  61 67 0d 09 e2 0d 42 4e  |st ex1flag....BN|
00001680  45 20 64 6f 65 78 31 0d  09 ec 0e 42 45 51 20 64  |E doex1....BEQ d|
00001690  6f 62 61 64 31 0d 09 f6  23 2e 62 61 64 32 63 61  |obad1...#.bad2ca|
000016a0  6c 63 20 54 53 54 20 52  31 32 2c 23 31 36 20 3b  |lc TST R12,#16 ;|
000016b0  45 78 32 20 66 6c 61 67  0d 0a 00 0d 42 4e 45 20  |Ex2 flag....BNE |
000016c0  64 6f 65 78 32 0d 0a 0a  0e 42 45 51 20 64 6f 62  |doex2....BEQ dob|
000016d0  61 64 32 0d 0a 14 21 2e  6d 6f 76 65 74 6f 6b 20  |ad2...!.movetok |
000016e0  54 53 54 20 52 31 32 2c  23 36 34 20 3b 54 6f 6b  |TST R12,#64 ;Tok|
000016f0  66 6c 61 67 0d 0a 1e 10  42 45 51 20 6d 6f 76 65  |flag....BEQ move|
00001700  64 6f 6e 65 0d 0a 28 14  4c 44 52 42 20 52 30 2c  |done..(.LDRB R0,|
00001710  54 6f 6b 66 72 61 6d 65  0d 0a 32 10 4c 44 52 20  |Tokframe..2.LDR |
00001720  52 32 2c 74 6f 6b 59 6d  0d 0a 3c 0e 42 4c 20 74  |R2,tokYm..<.BL t|
00001730  6f 6b 63 61 6c 63 0d 0a  46 14 53 54 52 42 20 52  |okcalc..F.STRB R|
00001740  30 2c 54 6f 6b 66 72 61  6d 65 0d 0a 50 10 53 54  |0,Tokframe..P.ST|
00001750  52 20 52 32 2c 74 6f 6b  59 6d 0d 0a 5a 1a 2e 6d  |R R2,tokYm..Z..m|
00001760  6f 76 65 64 6f 6e 65 20  4c 44 52 20 52 36 2c 58  |ovedone LDR R6,X|
00001770  6d 61 64 72 0d 0a 64 26  42 4c 20 67 65 74 62 61  |madr..d&BL getba|
00001780  63 6b 20 3b 47 65 74 20  73 68 61 64 6f 77 20 62  |ck ;Get shadow b|
00001790  61 63 6b 67 72 6f 75 6e  64 73 0d 0a 6e 3e 42 4c  |ackgrounds..n>BL|
000017a0  20 70 6f 73 69 74 69 6f  6e 73 20 3b 4e 65 77 20  | positions ;New |
000017b0  70 6f 73 69 74 69 6f 6e  20 66 6f 72 20 73 68 61  |position for sha|
000017c0  64 6f 77 20 73 70 72 69  74 65 73 20 75 73 69 6e  |dow sprites usin|
000017d0  67 20 58 26 59 73 27 73  0d 0a 78 10 42 4c 20 73  |g X&Ys's..x.BL s|
000017e0  63 6f 72 65 63 61 6c 63  0d 0a 82 10 54 53 54 20  |corecalc....TST |
000017f0  52 31 32 2c 23 31 32 38  0d 0a 8c 0d 42 4c 4e 45  |R12,#128....BLNE|
00001800  20 62 65 65 70 0d 0a 96  0e 4d 4f 56 20 52 30 2c  | beep....MOV R0,|
00001810  23 31 39 0d 0a a0 09 53  57 49 20 36 0d 0a aa 0e  |#19....SWI 6....|
00001820  42 4c 20 72 65 73 62 61  63 6b 0d 0a b4 0f 42 4c  |BL resback....BL|
00001830  20 62 6c 6f 63 6b 73 75  62 0d 0a be 11 42 4c 20  | blocksub....BL |
00001840  63 6f 6c 6c 69 73 69 6f  6e 73 0d 0a c8 13 54 53  |collisions....TS|
00001850  54 20 52 31 32 2c 23 31  33 31 30 37 32 0d 0a d2  |T R12,#131072...|
00001860  0d 42 45 51 20 65 78 74  72 61 0d 0a dc 11 4c 44  |.BEQ extra....LD|
00001870  52 42 20 52 30 2c 42 61  6c 6c 73 0d 0a e6 10 53  |RB R0,Balls....S|
00001880  55 42 20 52 30 2c 52 30  2c 23 31 0d 0a f0 11 53  |UB R0,R0,#1....S|
00001890  54 52 42 20 52 30 2c 42  61 6c 6c 73 0d 0a fa 11  |TRB R0,Balls....|
000018a0  41 44 44 20 52 30 2c 52  30 2c 23 33 30 0d 0b 04  |ADD R0,R0,#30...|
000018b0  29 53 57 49 20 32 35 36  2b 33 31 3a 53 57 49 20  |)SWI 256+31:SWI |
000018c0  30 3a 53 57 49 20 32 35  36 2b 39 3a 53 57 49 20  |0:SWI 256+9:SWI |
000018d0  32 35 36 2b 33 32 0d 0b  0e 11 4c 44 52 42 20 52  |256+32....LDRB R|
000018e0  30 2c 42 61 6c 6c 73 0d  0b 18 0d 43 4d 50 20 52  |0,Balls....CMP R|
000018f0  30 2c 23 30 0d 0b 22 10  42 45 51 20 67 61 6d 65  |0,#0..".BEQ game|
00001900  6f 76 65 72 0d 0b 2c 0d  42 20 6e 65 77 62 61 6c  |over..,.B newbal|
00001910  6c 0d 0b 36 1c 2e 65 78  74 72 61 20 4c 44 52 42  |l..6..extra LDRB|
00001920  20 52 30 2c 49 63 6f 6e  66 72 61 6d 65 0d 0b 40  | R0,Iconframe..@|
00001930  0d 43 4d 50 20 52 30 2c  23 30 0d 0b 4a 0f 42 4e  |.CMP R0,#0..J.BN|
00001940  45 20 6e 6f 65 78 74 72  61 0d 0b 54 12 54 53 54  |E noextra..T.TST|
00001950  20 52 31 32 2c 23 36 35  35 33 36 0d 0b 5e 0f 42  | R12,#65536..^.B|
00001960  45 51 20 6e 6f 65 78 74  72 61 0d 0b 68 0d 4d 4f  |EQ noextra..h.MO|
00001970  56 20 52 30 2c 23 38 0d  0b 72 12 53 54 52 42 20  |V R0,#8..r.STRB |
00001980  52 30 2c 42 61 6c 6c 56  59 0d 0b 7c 19 2e 6e 6f  |R0,BallVY..|..no|
00001990  65 78 74 72 61 20 4c 44  52 42 20 52 30 2c 48 69  |extra LDRB R0,Hi|
000019a0  74 73 0d 0b 86 0d 43 4d  50 20 52 30 2c 23 30 0d  |ts....CMP R0,#0.|
000019b0  0b 90 0e 42 4e 45 20 6e  6f 74 66 69 6e 0d 0b 9a  |...BNE notfin...|
000019c0  17 4c 44 52 42 20 52 30  2c 73 63 72 65 65 6e 6c  |.LDRB R0,screenl|
000019d0  65 76 65 6c 0d 0b a4 10  41 44 44 20 52 30 2c 52  |evel....ADD R0,R|
000019e0  30 2c 23 31 0d 0b ae 17  53 54 52 42 20 52 30 2c  |0,#1....STRB R0,|
000019f0  73 63 72 65 65 6e 6c 65  76 65 6c 0d 0b b8 0c 42  |screenlevel....B|
00001a00  4c 20 73 65 74 75 70 0d  0b c2 0d 42 20 6e 65 77  |L setup....B new|
00001a10  62 61 6c 6c 0d 0b cc 13  2e 6e 6f 74 66 69 6e 20  |ball.....notfin |
00001a20  53 57 49 20 26 32 43 0d  0b d6 0d 20 42 43 43 20  |SWI &2C.... BCC |
00001a30  6c 6f 6f 70 0d 0b e0 21  2e 65 78 69 74 20 4c 44  |loop...!.exit LD|
00001a40  4d 46 44 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |MFD R13!,{R0-R12|
00001a50  2c 52 31 35 7d 0d 0b ea  16 2e 62 61 74 63 61 6c  |,R15}.....batcal|
00001a60  63 20 4d 4f 56 20 52 30  2c 23 30 0d 0b f4 16 42  |c MOV R0,#0....B|
00001a70  49 43 20 52 31 32 2c 52  31 32 2c 23 36 35 35 33  |IC R12,R12,#6553|
00001a80  36 0d 0b fe 27 53 57 49  20 26 31 43 20 3b 47 65  |6...'SWI &1C ;Ge|
00001a90  74 20 6d 6f 75 73 65 58  2c 59 2c 42 20 69 6e 20  |t mouseX,Y,B in |
00001aa0  52 30 2c 52 31 2c 52 32  0d 0c 08 11 3b 42 49 43  |R0,R1,R2....;BIC|
00001ab0  20 52 30 2c 52 30 2c 23  33 0d 0c 12 0f 43 4d 50  | R0,R0,#3....CMP|
00001ac0  20 52 30 2c 23 37 38 34  0d 0c 1c 11 4d 4f 56 43  | R0,#784....MOVC|
00001ad0  53 20 52 30 2c 23 37 38  34 0d 0c 26 0d 43 4d 50  |S R0,#784..&.CMP|
00001ae0  20 52 32 2c 23 30 0d 0c  30 17 84 52 4e 45 20 52  | R2,#0..0..RNE R|
00001af0  31 32 2c 52 31 32 2c 23  36 35 35 33 36 0d 0c 3a  |12,R12,#65536..:|
00001b00  12 54 53 54 20 52 31 32  2c 23 33 32 37 36 38 0d  |.TST R12,#32768.|
00001b10  0c 44 0f 42 45 51 20 62  61 74 65 78 69 74 0d 0c  |.D.BEQ batexit..|
00001b20  4e 14 4c 44 52 42 20 52  33 2c 42 61 74 66 72 61  |N.LDRB R3,Batfra|
00001b30  6d 65 0d 0c 58 20 54 53  54 20 52 31 32 2c 23 32  |me..X TST R12,#2|
00001b40  36 32 31 34 34 20 3b 55  70 64 6f 77 6e 20 66 6c  |62144 ;Updown fl|
00001b50  61 67 0d 0c 62 12 41 44  44 4e 45 20 52 33 2c 52  |ag..b.ADDNE R3,R|
00001b60  33 2c 23 31 0d 0c 6c 12  53 55 42 45 51 20 52 33  |3,#1..l.SUBEQ R3|
00001b70  2c 52 33 2c 23 31 0d 0c  76 0d 43 4d 50 20 52 33  |,R3,#1..v.CMP R3|
00001b80  2c 23 35 0d 0c 80 2c 42  49 43 45 51 20 52 31 32  |,#5...,BICEQ R12|
00001b90  2c 52 31 32 2c 23 32 36  32 31 34 34 20 3b 43 6c  |,R12,#262144 ;Cl|
00001ba0  65 61 72 20 75 70 64 6f  77 6e 20 66 6c 61 67 0d  |ear updown flag.|
00001bb0  0c 8a 0d 43 4d 50 20 52  33 2c 23 30 0d 0c 94 18  |...CMP R3,#0....|
00001bc0  84 52 45 51 20 52 31 32  2c 52 31 32 2c 23 32 36  |.REQ R12,R12,#26|
00001bd0  32 31 34 34 0d 0c 9e 14  53 54 52 42 20 52 33 2c  |2144....STRB R3,|
00001be0  42 61 74 66 72 61 6d 65  0d 0c a8 18 2e 62 61 74  |Batframe.....bat|
00001bf0  65 78 69 74 20 4d 4f 56  20 52 31 35 2c 52 31 34  |exit MOV R15,R14|
00001c00  0d 0c b2 1a 2e 73 70 72  69 74 65 70 6c 6f 74 20  |.....spriteplot |
00001c10  4d 4f 56 20 52 30 2c 23  33 34 0d 0c bc 0d 4d 4f  |MOV R0,#34....MO|
00001c20  56 20 52 31 2c 23 30 0d  0c c6 0d 4d 4f 56 20 52  |V R1,#0....MOV R|
00001c30  35 2c 23 38 0d 0c d0 0b  53 57 49 20 26 32 45 0d  |5,#8....SWI &2E.|
00001c40  0c da 0f 4d 4f 56 20 52  31 35 2c 52 31 34 0d 0c  |...MOV R15,R14..|
00001c50  e4 20 2e 63 6f 6c 6c 69  73 69 6f 6e 73 20 53 54  |. .collisions ST|
00001c60  4d 46 44 20 52 31 33 21  2c 7b 52 31 34 7d 0d 0c  |MFD R13!,{R14}..|
00001c70  ee 11 4c 44 52 20 52 30  2c 62 61 6c 6c 58 6d 0d  |..LDR R0,ballXm.|
00001c80  0c f8 11 4c 44 52 20 52  31 2c 62 61 6c 6c 59 6d  |...LDR R1,ballYm|
00001c90  0d 0d 02 10 4c 44 52 20  52 32 2c 62 61 74 58 6d  |....LDR R2,batXm|
00001ca0  0d 0d 0c 10 4c 44 52 20  52 33 2c 62 61 74 59 6d  |....LDR R3,batYm|
00001cb0  0d 0d 16 0f 4d 4f 56 20  52 36 2c 23 31 30 38 0d  |....MOV R6,#108.|
00001cc0  0d 20 0e 4d 4f 56 20 52  37 2c 23 32 34 0d 0d 2a  |. .MOV R7,#24..*|
00001cd0  0a 42 4c 20 63 6f 6c 0d  0d 34 11 42 45 51 20 6d  |.BL col..4.BEQ m|
00001ce0  69 73 73 65 64 62 61 74  0d 0d 3e 10 53 55 42 20  |issedbat..>.SUB |
00001cf0  52 34 2c 52 30 2c 52 32  0d 0d 48 10 53 54 52 20  |R4,R0,R2..H.STR |
00001d00  52 34 2c 74 65 6d 70 78  0d 0d 52 11 41 44 44 20  |R4,tempx..R.ADD |
00001d10  52 34 2c 52 34 2c 23 31  36 0d 0d 5c 14 4c 44 52  |R4,R4,#16..\.LDR|
00001d20  20 52 36 2c 62 6f 75 6e  63 65 61 64 72 0d 0d 66  | R6,bounceadr..f|
00001d30  0e 43 4d 50 20 52 34 2c  23 36 34 0d 0d 70 21 84  |.CMP R4,#64..p!.|
00001d40  52 47 54 20 52 31 32 2c  52 31 32 2c 23 31 20 3b  |RGT R12,R12,#1 ;|
00001d50  50 6f 73 20 62 61 6c 6c  78 64 69 72 0d 0d 7a 22  |Pos ballxdir..z"|
00001d60  42 49 43 4c 45 20 52 31  32 2c 52 31 32 2c 23 31  |BICLE R12,R12,#1|
00001d70  20 3b 4e 65 67 20 62 61  6c 6c 78 64 69 72 0d 0d  | ;Neg ballxdir..|
00001d80  84 19 4c 44 52 42 20 52  35 2c 5b 52 36 2c 52 34  |..LDRB R5,[R6,R4|
00001d90  2c 4c 53 52 23 33 5d 0d  0d 8e 12 53 54 52 42 20  |,LSR#3]....STRB |
00001da0  52 35 2c 42 61 6c 6c 56  58 0d 0d 98 10 53 55 42  |R5,BallVX....SUB|
00001db0  20 52 35 2c 52 35 2c 23  31 0d 0d a2 10 42 49 43  | R5,R5,#1....BIC|
00001dc0  20 52 30 2c 52 30 2c 52  35 0d 0d ac 11 53 54 52  | R0,R0,R5....STR|
00001dd0  20 52 30 2c 62 61 6c 6c  58 6d 0d 0d b6 28 84 52  | R0,ballXm...(.R|
00001de0  20 52 31 32 2c 52 31 32  2c 23 31 33 30 20 3b 50  | R12,R12,#130 ;P|
00001df0  6f 73 20 62 61 6c 6c 79  64 69 72 20 26 20 62 65  |os ballydir & be|
00001e00  65 70 0d 0d c0 10 42 20  62 6c 6f 63 6b 73 64 6f  |ep....B blocksdo|
00001e10  6e 65 0d 0d ca 29 2e 6d  69 73 73 65 64 62 61 74  |ne...).missedbat|
00001e20  20 54 53 54 20 52 31 32  2c 23 34 20 3b 54 65 73  | TST R12,#4 ;Tes|
00001e30  74 20 62 6c 6f 63 6b 66  6c 61 67 0d 0d d4 12 42  |t blockflag....B|
00001e40  4e 45 20 62 6c 6f 63 6b  73 64 6f 6e 65 0d 0d de  |NE blocksdone...|
00001e50  0d 4d 4f 56 20 52 34 2c  23 30 0d 0d e8 0f 53 54  |.MOV R4,#0....ST|
00001e60  52 20 52 34 2c 62 6c 31  78 0d 0d f2 0f 53 54 52  |R R4,bl1x....STR|
00001e70  20 52 34 2c 62 6c 32 78  0d 0d fc 1d 54 53 54 20  | R4,bl2x....TST |
00001e80  52 31 32 2c 23 31 3b 20  54 65 73 74 20 62 61 6c  |R12,#1; Test bal|
00001e90  6c 78 64 69 72 0d 0e 06  13 53 55 42 45 51 20 52  |lxdir....SUBEQ R|
00001ea0  32 2c 52 30 2c 23 33 32  0d 0e 10 13 53 55 42 4e  |2,R0,#32....SUBN|
00001eb0  45 20 52 32 2c 52 30 2c  23 31 36 0d 0e 1a 1d 54  |E R2,R0,#16....T|
00001ec0  53 54 20 52 31 32 2c 23  32 3b 20 54 65 73 74 20  |ST R12,#2; Test |
00001ed0  62 61 6c 6c 79 64 69 72  0d 0e 24 14 53 55 42 45  |ballydir..$.SUBE|
00001ee0  51 20 52 33 2c 52 31 2c  23 33 38 34 0d 0e 2e 14  |Q R3,R1,#384....|
00001ef0  53 55 42 4e 45 20 52 33  2c 52 31 2c 23 33 36 38  |SUBNE R3,R1,#368|
00001f00  0d 0e 38 0d 43 4d 50 20  52 33 2c 23 30 0d 0e 42  |..8.CMP R3,#0..B|
00001f10  12 42 4d 49 20 62 6c 6f  63 6b 73 64 6f 6e 65 0d  |.BMI blocksdone.|
00001f20  0e 4c 0f 80 20 52 36 2c  52 32 2c 23 36 33 0d 0e  |.L.. R6,R2,#63..|
00001f30  56 0f 80 20 52 37 2c 52  33 2c 23 33 31 0d 0e 60  |V.. R7,R3,#31..`|
00001f40  10 84 52 53 20 52 38 2c  52 36 2c 52 37 0d 0e 6a  |..RS R8,R6,R7..j|
00001f50  0c 42 45 51 20 64 6f 78  79 0d 0e 74 0d 43 4d 50  |.BEQ doxy..t.CMP|
00001f60  20 52 36 2c 23 30 0d 0e  7e 0b 42 45 51 20 64 6f  | R6,#0..~.BEQ do|
00001f70  78 0d 0e 88 0d 43 4d 50  20 52 37 2c 23 30 0d 0e  |x....CMP R7,#0..|
00001f80  92 12 42 4e 45 20 62 6c  6f 63 6b 73 64 6f 6e 65  |..BNE blocksdone|
00001f90  0d 0e 9c 18 2e 64 6f 79  20 4d 4f 56 20 52 35 2c  |.....doy MOV R5,|
00001fa0  52 33 2c 4c 53 52 23 35  0d 0e a6 1d 54 53 54 20  |R3,LSR#5....TST |
00001fb0  52 31 32 2c 23 32 20 3b  54 65 73 74 20 62 61 6c  |R12,#2 ;Test bal|
00001fc0  6c 79 64 69 72 0d 0e b0  12 53 55 42 45 51 20 52  |lydir....SUBEQ R|
00001fd0  35 2c 52 35 2c 23 31 0d  0e ba 11 53 55 42 20 52  |5,R5,#1....SUB R|
00001fe0  32 2c 52 30 2c 23 33 32  0d 0e c4 13 4d 4f 56 20  |2,R0,#32....MOV |
00001ff0  52 34 2c 52 32 2c 4c 53  52 23 36 0d 0e ce 0b 42  |R4,R2,LSR#6....B|
00002000  4c 20 62 6c 6f 63 0d 0e  d8 0c 42 45 51 20 64 6f  |L bloc....BEQ do|
00002010  79 32 0d 0e e2 0f 53 54  52 20 52 36 2c 62 6c 31  |y2....STR R6,bl1|
00002020  78 0d 0e ec 0f 53 54 52  20 52 37 2c 62 6c 31 79  |x....STR R7,bl1y|
00002030  0d 0e f6 1d 84 52 20 52  31 32 2c 52 31 32 2c 23  |.....R R12,R12,#|
00002040  34 20 3b 53 65 74 20 62  6c 66 6c 61 67 0d 0f 00  |4 ;Set blflag...|
00002050  17 2e 64 6f 79 32 20 53  55 42 20 52 32 2c 52 30  |..doy2 SUB R2,R0|
00002060  2c 23 31 36 0d 0f 0a 13  4d 4f 56 20 52 34 2c 52  |,#16....MOV R4,R|
00002070  32 2c 4c 53 52 23 36 0d  0f 14 0b 42 4c 20 62 6c  |2,LSR#6....BL bl|
00002080  6f 63 0d 0f 1e 0d 42 45  51 20 79 63 61 6c 63 0d  |oc....BEQ ycalc.|
00002090  0f 28 0f 53 54 52 20 52  36 2c 62 6c 32 78 0d 0f  |.(.STR R6,bl2x..|
000020a0  32 0f 53 54 52 20 52 37  2c 62 6c 32 79 0d 0f 3c  |2.STR R7,bl2y..<|
000020b0  1d 84 52 20 52 31 32 2c  52 31 32 2c 23 34 20 3b  |..R R12,R12,#4 ;|
000020c0  53 65 74 20 62 6c 66 6c  61 67 0d 0f 46 22 2e 79  |Set blflag..F".y|
000020d0  63 61 6c 63 20 54 53 54  20 52 31 32 2c 23 34 20  |calc TST R12,#4 |
000020e0  3b 54 65 73 74 20 62 6c  66 6c 61 67 0d 0f 50 23  |;Test blflag..P#|
000020f0  82 4e 45 20 52 31 32 2c  52 31 32 2c 23 32 20 3b  |.NE R12,R12,#2 ;|
00002100  49 6e 76 65 72 74 20 62  61 6c 6c 79 64 69 72 0d  |Invert ballydir.|
00002110  0f 5a 10 42 20 62 6c 6f  63 6b 73 64 6f 6e 65 0d  |.Z.B blocksdone.|
00002120  0f 64 18 2e 64 6f 78 20  4d 4f 56 20 52 34 2c 52  |.d..dox MOV R4,R|
00002130  32 2c 4c 53 52 23 36 0d  0f 6e 1d 54 53 54 20 52  |2,LSR#6..n.TST R|
00002140  31 32 2c 23 31 20 3b 54  65 73 74 20 62 61 6c 6c  |12,#1 ;Test ball|
00002150  78 64 69 72 0d 0f 78 12  53 55 42 45 51 20 52 34  |xdir..x.SUBEQ R4|
00002160  2c 52 34 2c 23 31 0d 0f  82 12 53 55 42 20 52 33  |,R4,#1....SUB R3|
00002170  2c 52 31 2c 23 33 36 38  0d 0f 8c 13 4d 4f 56 20  |,R1,#368....MOV |
00002180  52 35 2c 52 33 2c 4c 53  52 23 35 0d 0f 96 0b 42  |R5,R3,LSR#5....B|
00002190  4c 20 62 6c 6f 63 0d 0f  a0 0c 42 45 51 20 64 6f  |L bloc....BEQ do|
000021a0  78 32 0d 0f aa 0f 53 54  52 20 52 36 2c 62 6c 31  |x2....STR R6,bl1|
000021b0  78 0d 0f b4 0f 53 54 52  20 52 37 2c 62 6c 31 79  |x....STR R7,bl1y|
000021c0  0d 0f be 1d 84 52 20 52  31 32 2c 52 31 32 2c 23  |.....R R12,R12,#|
000021d0  34 20 3b 53 65 74 20 62  6c 66 6c 61 67 0d 0f c8  |4 ;Set blflag...|
000021e0  18 2e 64 6f 78 32 20 53  55 42 20 52 33 2c 52 31  |..dox2 SUB R3,R1|
000021f0  2c 23 33 38 34 0d 0f d2  14 4d 4f 56 20 52 35 2c  |,#384....MOV R5,|
00002200  52 33 2c 4c 53 52 20 23  35 0d 0f dc 0b 42 4c 20  |R3,LSR #5....BL |
00002210  62 6c 6f 63 0d 0f e6 0d  42 45 51 20 78 63 61 6c  |bloc....BEQ xcal|
00002220  63 0d 0f f0 0f 53 54 52  20 52 36 2c 62 6c 32 78  |c....STR R6,bl2x|
00002230  0d 0f fa 0f 53 54 52 20  52 37 2c 62 6c 32 79 0d  |....STR R7,bl2y.|
00002240  10 04 1d 84 52 20 52 31  32 2c 52 31 32 2c 23 34  |....R R12,R12,#4|
00002250  20 3b 53 65 74 20 62 6c  66 6c 61 67 0d 10 0e 22  | ;Set blflag..."|
00002260  2e 78 63 61 6c 63 20 54  53 54 20 52 31 32 2c 23  |.xcalc TST R12,#|
00002270  34 20 3b 54 65 73 74 20  62 6c 66 6c 61 67 0d 10  |4 ;Test blflag..|
00002280  18 23 82 4e 45 20 52 31  32 2c 52 31 32 2c 23 31  |.#.NE R12,R12,#1|
00002290  20 3b 49 6e 76 65 72 74  20 62 61 6c 6c 78 64 69  | ;Invert ballxdi|
000022a0  72 0d 10 22 10 42 20 62  6c 6f 63 6b 73 64 6f 6e  |r..".B blocksdon|
000022b0  65 0d 10 2c 19 2e 64 6f  78 79 20 4d 4f 56 20 52  |e..,..doxy MOV R|
000022c0  34 2c 52 32 2c 4c 53 52  23 36 0d 10 36 1d 54 53  |4,R2,LSR#6..6.TS|
000022d0  54 20 52 31 32 2c 23 31  20 3b 54 65 73 74 20 62  |T R12,#1 ;Test b|
000022e0  61 6c 6c 78 64 69 72 0d  10 40 12 53 55 42 45 51  |allxdir..@.SUBEQ|
000022f0  20 52 34 2c 52 34 2c 23  31 0d 10 4a 13 4d 4f 56  | R4,R4,#1..J.MOV|
00002300  20 52 35 2c 52 33 2c 4c  53 52 23 35 0d 10 54 1d  | R5,R3,LSR#5..T.|
00002310  54 53 54 20 52 31 32 2c  23 32 20 3b 54 65 73 74  |TST R12,#2 ;Test|
00002320  20 62 61 6c 6c 79 64 69  72 0d 10 5e 12 53 55 42  | ballydir..^.SUB|
00002330  4e 45 20 52 35 2c 52 35  2c 23 31 0d 10 68 0b 42  |NE R5,R5,#1..h.B|
00002340  4c 20 62 6c 6f 63 0d 10  72 0d 42 45 51 20 64 6f  |L bloc..r.BEQ do|
00002350  78 79 32 0d 10 7c 0f 53  54 52 20 52 36 2c 62 6c  |xy2..|.STR R6,bl|
00002360  31 78 0d 10 86 0f 53 54  52 20 52 37 2c 62 6c 31  |1x....STR R7,bl1|
00002370  79 0d 10 90 1d 84 52 20  52 31 32 2c 52 31 32 2c  |y.....R R12,R12,|
00002380  23 34 20 3b 53 65 74 20  62 6c 66 6c 61 67 0d 10  |#4 ;Set blflag..|
00002390  9a 1a 2e 64 6f 78 79 32  20 4d 4f 56 20 52 35 2c  |...doxy2 MOV R5,|
000023a0  52 33 2c 4c 53 52 23 35  0d 10 a4 1d 54 53 54 20  |R3,LSR#5....TST |
000023b0  52 31 32 2c 23 32 20 3b  54 65 73 74 20 62 61 6c  |R12,#2 ;Test bal|
000023c0  6c 79 64 69 72 0d 10 ae  12 53 55 42 45 51 20 52  |lydir....SUBEQ R|
000023d0  35 2c 52 35 2c 23 31 0d  10 b8 13 4d 4f 56 20 52  |5,R5,#1....MOV R|
000023e0  34 2c 52 32 2c 4c 53 52  23 36 0d 10 c2 1d 54 53  |4,R2,LSR#6....TS|
000023f0  54 20 52 31 32 2c 23 31  20 3b 54 65 73 74 20 62  |T R12,#1 ;Test b|
00002400  61 6c 6c 78 64 69 72 0d  10 cc 12 53 55 42 4e 45  |allxdir....SUBNE|
00002410  20 52 34 2c 52 34 2c 23  31 0d 10 d6 0b 42 4c 20  | R4,R4,#1....BL |
00002420  62 6c 6f 63 0d 10 e0 0d  42 4e 45 20 6f 6b 79 61  |bloc....BNE okya|
00002430  72 0d 10 ea 1b 54 53 54  20 52 31 32 2c 23 34 20  |r....TST R12,#4 |
00002440  3b 54 65 73 74 20 62 6c  66 6c 61 67 0d 10 f4 23  |;Test blflag...#|
00002450  82 4e 45 20 52 31 32 2c  52 31 32 2c 23 31 20 3b  |.NE R12,R12,#1 ;|
00002460  49 6e 76 65 72 74 20 62  61 6c 6c 78 64 69 72 0d  |Invert ballxdir.|
00002470  10 fe 0c 42 20 78 79 63  61 6c 63 0d 11 08 16 2e  |...B xycalc.....|
00002480  6f 6b 79 61 72 20 53 54  52 20 52 36 2c 62 6c 32  |okyar STR R6,bl2|
00002490  78 0d 11 12 0f 53 54 52  20 52 37 2c 62 6c 32 79  |x....STR R7,bl2y|
000024a0  0d 11 1c 1b 54 53 54 20  52 31 32 2c 23 34 20 3b  |....TST R12,#4 ;|
000024b0  54 65 73 74 20 62 6c 66  6c 61 67 0d 11 26 23 82  |Test blflag..&#.|
000024c0  4e 45 20 52 31 32 2c 52  31 32 2c 23 31 20 3b 49  |NE R12,R12,#1 ;I|
000024d0  6e 76 65 72 74 20 62 61  6c 6c 78 64 69 72 0d 11  |nvert ballxdir..|
000024e0  30 21 82 20 52 31 32 2c  52 31 32 2c 23 32 20 3b  |0!. R12,R12,#2 ;|
000024f0  49 6e 76 65 72 74 20 62  61 6c 6c 79 64 69 72 0d  |Invert ballydir.|
00002500  11 3a 1d 84 52 20 52 31  32 2c 52 31 32 2c 23 34  |.:..R R12,R12,#4|
00002510  20 3b 53 65 74 20 62 6c  66 6c 61 67 0d 11 44 23  | ;Set blflag..D#|
00002520  2e 78 79 63 61 6c 63 20  54 53 54 20 52 31 32 2c  |.xycalc TST R12,|
00002530  23 34 20 3b 54 65 73 74  20 62 6c 66 6c 61 67 0d  |#4 ;Test blflag.|
00002540  11 4e 12 42 4e 45 20 62  6c 6f 63 6b 73 64 6f 6e  |.N.BNE blocksdon|
00002550  65 0d 11 58 13 4d 4f 56  20 52 34 2c 52 32 2c 4c  |e..X.MOV R4,R2,L|
00002560  53 52 23 36 0d 11 62 13  4d 4f 56 20 52 35 2c 52  |SR#6..b.MOV R5,R|
00002570  33 2c 4c 53 52 23 35 0d  11 6c 1d 54 53 54 20 52  |3,LSR#5..l.TST R|
00002580  31 32 2c 23 31 20 3b 54  65 73 74 20 62 61 6c 6c  |12,#1 ;Test ball|
00002590  78 64 69 72 0d 11 76 12  53 55 42 45 51 20 52 34  |xdir..v.SUBEQ R4|
000025a0  2c 52 34 2c 23 31 0d 11  80 1d 54 53 54 20 52 31  |,R4,#1....TST R1|
000025b0  32 2c 23 32 20 3b 54 65  73 74 20 62 61 6c 6c 79  |2,#2 ;Test bally|
000025c0  64 69 72 0d 11 8a 12 53  55 42 45 51 20 52 35 2c  |dir....SUBEQ R5,|
000025d0  52 35 2c 23 31 0d 11 94  0b 42 4c 20 62 6c 6f 63  |R5,#1....BL bloc|
000025e0  0d 11 9e 12 42 45 51 20  62 6c 6f 63 6b 73 64 6f  |....BEQ blocksdo|
000025f0  6e 65 0d 11 a8 0f 53 54  52 20 52 36 2c 62 6c 31  |ne....STR R6,bl1|
00002600  78 0d 11 b2 0f 53 54 52  20 52 37 2c 62 6c 31 79  |x....STR R7,bl1y|
00002610  0d 11 bc 22 82 20 52 31  32 2c 52 31 32 2c 23 33  |...". R12,R12,#3|
00002620  20 3b 49 6e 76 65 72 74  20 58 26 59 20 64 69 72  | ;Invert X&Y dir|
00002630  73 2e 0d 11 c6 1d 84 52  20 52 31 32 2c 52 31 32  |s......R R12,R12|
00002640  2c 23 34 20 3b 53 65 74  20 62 6c 66 6c 61 67 0d  |,#4 ;Set blflag.|
00002650  11 d0 28 2e 62 6c 6f 63  6b 73 64 6f 6e 65 20 54  |..(.blocksdone T|
00002660  53 54 20 52 31 32 2c 23  38 20 3b 54 65 73 74 20  |ST R12,#8 ;Test |
00002670  65 78 31 66 6c 61 67 0d  11 da 11 42 4e 45 20 64  |ex1flag....BNE d|
00002680  6f 62 61 64 32 63 6f 6c  0d 11 e4 11 4c 44 52 20  |obad2col....LDR |
00002690  52 32 2c 62 61 64 31 58  6d 0d 11 ee 11 4c 44 52  |R2,bad1Xm....LDR|
000026a0  20 52 33 2c 62 61 64 31  59 6d 0d 11 f8 0e 4d 4f  | R3,bad1Ym....MO|
000026b0  56 20 52 36 2c 23 36 30  0d 12 02 0e 4d 4f 56 20  |V R6,#60....MOV |
000026c0  52 37 2c 23 36 30 0d 12  0c 0a 42 4c 20 63 6f 6c  |R7,#60....BL col|
000026d0  0d 12 16 11 42 45 51 20  64 6f 62 61 64 32 63 6f  |....BEQ dobad2co|
000026e0  6c 0d 12 20 27 84 52 20  52 31 32 2c 52 31 32 2c  |l.. '.R R12,R12,|
000026f0  23 31 33 36 20 3b 53 65  74 20 65 78 31 66 6c 61  |#136 ;Set ex1fla|
00002700  67 20 26 20 62 65 65 70  0d 12 2a 0f 4d 4f 56 20  |g & beep..*.MOV |
00002710  52 37 2c 23 31 32 38 0d  12 34 11 53 54 52 42 20  |R7,#128..4.STRB |
00002720  52 37 2c 50 69 74 63 68  0d 12 3e 21 82 20 52 31  |R7,Pitch..>!. R1|
00002730  32 2c 52 31 32 2c 23 32  20 3b 49 6e 76 65 72 74  |2,R12,#2 ;Invert|
00002740  20 62 61 6c 6c 79 64 69  72 0d 12 48 10 4c 44 52  | ballydir..H.LDR|
00002750  20 52 38 2c 73 63 6f 72  65 0d 12 52 12 41 44 44  | R8,score..R.ADD|
00002760  20 52 38 2c 52 38 2c 23  31 30 30 0d 12 5c 10 53  | R8,R8,#100..\.S|
00002770  54 52 20 52 38 2c 73 63  6f 72 65 0d 12 66 28 2e  |TR R8,score..f(.|
00002780  64 6f 62 61 64 32 63 6f  6c 20 54 53 54 20 52 31  |dobad2col TST R1|
00002790  32 2c 23 31 36 20 3b 54  65 73 74 20 65 78 32 66  |2,#16 ;Test ex2f|
000027a0  6c 61 67 0d 12 70 0e 42  4e 45 20 74 6f 6b 63 6f  |lag..p.BNE tokco|
000027b0  6c 0d 12 7a 11 4c 44 52  20 52 32 2c 62 61 64 32  |l..z.LDR R2,bad2|
000027c0  58 6d 0d 12 84 11 4c 44  52 20 52 33 2c 62 61 64  |Xm....LDR R3,bad|
000027d0  32 59 6d 0d 12 8e 0a 42  4c 20 63 6f 6c 0d 12 98  |2Ym....BL col...|
000027e0  0e 42 45 51 20 74 6f 6b  63 6f 6c 0d 12 a2 10 4c  |.BEQ tokcol....L|
000027f0  44 52 20 52 38 2c 73 63  6f 72 65 0d 12 ac 12 41  |DR R8,score....A|
00002800  44 44 20 52 38 2c 52 38  2c 23 31 30 30 0d 12 b6  |DD R8,R8,#100...|
00002810  10 53 54 52 20 52 38 2c  73 63 6f 72 65 0d 12 c0  |.STR R8,score...|
00002820  27 84 52 20 52 31 32 2c  52 31 32 2c 23 31 34 34  |'.R R12,R12,#144|
00002830  20 3b 53 65 74 20 65 78  32 66 6c 61 67 20 26 20  | ;Set ex2flag & |
00002840  62 65 65 70 0d 12 ca 0f  4d 4f 56 20 52 37 2c 23  |beep....MOV R7,#|
00002850  31 36 30 0d 12 d4 11 53  54 52 42 20 52 37 2c 50  |160....STRB R7,P|
00002860  69 74 63 68 0d 12 de 21  82 20 52 31 32 2c 52 31  |itch...!. R12,R1|
00002870  32 2c 23 32 20 3b 49 6e  76 65 72 74 20 62 61 6c  |2,#2 ;Invert bal|
00002880  6c 79 64 69 72 0d 12 e8  20 2e 74 6f 6b 63 6f 6c  |lydir... .tokcol|
00002890  20 54 53 54 20 52 31 32  2c 23 36 34 20 3b 54 6f  | TST R12,#64 ;To|
000028a0  6b 66 6c 61 67 0d 12 f2  0e 42 45 51 20 62 6f 75  |kflag....BEQ bou|
000028b0  6e 64 73 0d 12 fc 10 4c  44 52 20 52 32 2c 74 6f  |nds....LDR R2,to|
000028c0  6b 59 6d 0d 13 06 0f 43  4d 50 20 52 32 2c 23 31  |kYm....CMP R2,#1|
000028d0  32 38 0d 13 10 0e 42 47  54 20 62 6f 75 6e 64 73  |28....BGT bounds|
000028e0  0d 13 1a 10 4c 44 52 20  52 32 2c 74 6f 6b 58 6d  |....LDR R2,tokXm|
000028f0  0d 13 24 10 4c 44 52 20  52 33 2c 62 61 74 58 6d  |..$.LDR R3,batXm|
00002900  0d 13 2e 11 41 44 44 20  52 34 2c 52 32 2c 23 33  |....ADD R4,R2,#3|
00002910  36 0d 13 38 12 41 44 44  20 52 35 2c 52 33 2c 23  |6..8.ADD R5,R3,#|
00002920  31 30 38 0d 13 42 1f 43  4d 50 20 52 32 2c 52 35  |108..B.CMP R2,R5|
00002930  20 3b 54 6f 6b 6c 65 66  74 2d 62 61 74 72 69 67  | ;Tokleft-batrig|
00002940  68 74 0d 13 4c 0e 42 50  4c 20 62 6f 75 6e 64 73  |ht..L.BPL bounds|
00002950  0d 13 56 1f 43 4d 50 20  52 33 2c 52 34 20 3b 42  |..V.CMP R3,R4 ;B|
00002960  61 74 6c 65 66 74 2d 74  6f 6b 72 69 67 68 74 0d  |atleft-tokright.|
00002970  13 60 0e 42 50 4c 20 62  6f 75 6e 64 73 0d 13 6a  |.`.BPL bounds..j|
00002980  22 84 52 20 52 31 32 2c  52 31 32 2c 23 38 31 39  |".R R12,R12,#819|
00002990  32 20 3b 53 65 74 20 69  63 6f 6e 66 6c 61 67 0d  |2 ;Set iconflag.|
000029a0  13 74 22 42 49 43 20 52  31 32 2c 52 31 32 2c 23  |.t"BIC R12,R12,#|
000029b0  36 34 20 3b 43 6c 65 61  72 20 74 6f 6b 66 6c 61  |64 ;Clear tokfla|
000029c0  67 0d 13 7e 16 2e 62 6f  75 6e 64 73 20 43 4d 50  |g..~..bounds CMP|
000029d0  20 52 30 2c 23 33 32 0d  13 88 22 84 52 45 51 20  | R0,#32...".REQ |
000029e0  52 31 32 2c 52 31 32 2c  23 31 20 3b 50 6f 73 2e  |R12,R12,#1 ;Pos.|
000029f0  20 62 61 6c 6c 78 64 69  72 0d 13 92 0f 43 4d 50  | ballxdir....CMP|
00002a00  20 52 30 2c 23 38 34 38  0d 13 9c 23 42 49 43 45  | R0,#848...#BICE|
00002a10  51 20 52 31 32 2c 52 31  32 2c 23 31 20 3b 4e 65  |Q R12,R12,#1 ;Ne|
00002a20  67 2e 20 62 61 6c 6c 78  64 69 72 0d 13 a6 0d 43  |g. ballxdir....C|
00002a30  4d 50 20 52 31 2c 23 30  0d 13 b0 0d 42 4e 45 20  |MP R1,#0....BNE |
00002a40  74 65 73 74 79 0d 13 ba  20 84 52 20 52 31 32 2c  |testy... .R R12,|
00002a50  52 31 32 2c 23 32 20 3b  50 6f 73 2e 20 62 61 6c  |R12,#2 ;Pos. bal|
00002a60  6c 79 64 69 72 0d 13 c4  0d 53 57 49 20 32 35 36  |lydir....SWI 256|
00002a70  2b 37 0d 13 ce 0e 4d 4f  56 20 52 34 2c 23 31 36  |+7....MOV R4,#16|
00002a80  0d 13 d8 12 53 54 52 42  20 52 34 2c 42 61 6c 6c  |....STRB R4,Ball|
00002a90  56 59 0d 13 e2 24 84 52  20 52 31 32 2c 52 31 32  |VY...$.R R12,R12|
00002aa0  2c 23 31 33 31 30 37 32  20 3b 53 65 74 20 62 61  |,#131072 ;Set ba|
00002ab0  6c 6c 66 6c 61 67 0d 13  ec 16 2e 74 65 73 74 79  |llflag.....testy|
00002ac0  20 43 4d 50 20 52 31 2c  23 39 37 36 0d 13 f6 23  | CMP R1,#976...#|
00002ad0  42 49 43 45 51 20 52 31  32 2c 52 31 32 2c 23 32  |BICEQ R12,R12,#2|
00002ae0  20 3b 4e 65 67 2e 20 62  61 6c 6c 79 64 69 72 0d  | ;Neg. ballydir.|
00002af0  14 00 1e 2e 63 6f 6c 73  64 6f 6e 65 20 4c 44 4d  |....colsdone LDM|
00002b00  46 44 20 52 31 33 21 2c  7b 52 31 35 7d 0d 14 0a  |FD R13!,{R15}...|
00002b10  19 2e 74 6f 6b 63 61 6c  63 20 41 44 44 20 52 30  |..tokcalc ADD R0|
00002b20  2c 52 30 2c 23 31 0d 14  14 0d 43 4d 50 20 52 30  |,R0,#1....CMP R0|
00002b30  2c 23 36 0d 14 1e 0c ec  51 20 52 30 2c 23 30 0d  |,#6.....Q R0,#0.|
00002b40  14 28 10 53 55 42 20 52  32 2c 52 32 2c 23 38 0d  |.(.SUB R2,R2,#8.|
00002b50  14 32 0e 43 4d 50 20 52  32 2c 23 31 36 0d 14 3c  |.2.CMP R2,#16..<|
00002b60  24 42 49 43 4c 54 20 52  31 32 2c 52 31 32 2c 23  |$BICLT R12,R12,#|
00002b70  36 34 20 3b 43 6c 65 61  72 20 74 6f 6b 66 6c 61  |64 ;Clear tokfla|
00002b80  67 0d 14 46 0f 4d 4f 56  20 52 31 35 2c 52 31 34  |g..F.MOV R15,R14|
00002b90  0d 14 50 1d 2e 67 65 74  62 61 63 6b 20 53 54 4d  |..P..getback STM|
00002ba0  46 44 20 52 31 33 21 2c  7b 52 31 34 7d 0d 14 5a  |FD R13!,{R14}..Z|
00002bb0  12 4c 44 52 20 52 31 2c  5b 52 36 2c 23 30 5d 0d  |.LDR R1,[R6,#0].|
00002bc0  14 64 12 4c 44 52 20 52  32 2c 5b 52 36 2c 23 34  |.d.LDR R2,[R6,#4|
00002bd0  5d 0d 14 6e 0e 42 4c 20  63 6f 6e 76 65 72 74 0d  |]..n.BL convert.|
00002be0  14 78 12 53 54 52 20 52  30 2c 62 61 6c 6c 61 62  |.x.STR R0,ballab|
00002bf0  73 0d 14 82 13 4c 44 52  20 52 31 2c 62 61 6c 6c  |s....LDR R1,ball|
00002c00  62 61 64 72 0d 14 8c 19  4d 4f 56 20 52 32 2c 23  |badr....MOV R2,#|
00002c10  32 20 3b 42 61 6c 6c 20  77 69 64 74 68 0d 14 96  |2 ;Ball width...|
00002c20  1a 4d 4f 56 20 52 33 2c  23 34 20 3b 42 61 6c 6c  |.MOV R3,#4 ;Ball|
00002c30  20 68 65 69 67 68 74 0d  14 a0 0b 42 4c 20 67 65  | height....BL ge|
00002c40  74 62 0d 14 aa 12 4c 44  52 20 52 31 2c 5b 52 36  |tb....LDR R1,[R6|
00002c50  2c 23 38 5d 0d 14 b4 13  4c 44 52 20 52 32 2c 5b  |,#8]....LDR R2,[|
00002c60  52 36 2c 23 31 32 5d 0d  14 be 0e 42 4c 20 63 6f  |R6,#12]....BL co|
00002c70  6e 76 65 72 74 0d 14 c8  11 53 54 52 20 52 30 2c  |nvert....STR R0,|
00002c80  62 61 74 61 62 73 0d 14  d2 12 4c 44 52 20 52 31  |batabs....LDR R1|
00002c90  2c 62 61 74 62 61 64 72  0d 14 dc 19 4d 4f 56 20  |,batbadr....MOV |
00002ca0  52 32 2c 23 31 34 20 3b  42 61 74 20 77 69 64 74  |R2,#14 ;Bat widt|
00002cb0  68 0d 14 e6 19 4d 4f 56  20 52 33 2c 23 36 20 3b  |h....MOV R3,#6 ;|
00002cc0  42 61 74 20 68 65 69 67  68 74 0d 14 f0 0b 42 4c  |Bat height....BL|
00002cd0  20 67 65 74 62 0d 14 fa  13 4c 44 52 20 52 31 2c  | getb....LDR R1,|
00002ce0  5b 52 36 2c 23 31 36 5d  0d 15 04 13 4c 44 52 20  |[R6,#16]....LDR |
00002cf0  52 32 2c 5b 52 36 2c 23  32 30 5d 0d 15 0e 0e 42  |R2,[R6,#20]....B|
00002d00  4c 20 63 6f 6e 76 65 72  74 0d 15 18 12 53 54 52  |L convert....STR|
00002d10  20 52 30 2c 62 61 64 31  61 62 73 0d 15 22 13 4c  | R0,bad1abs..".L|
00002d20  44 52 20 52 31 2c 62 61  64 31 62 61 64 72 0d 15  |DR R1,bad1badr..|
00002d30  2c 18 4d 4f 56 20 52 32  2c 23 37 20 3b 42 61 64  |,.MOV R2,#7 ;Bad|
00002d40  20 77 69 64 74 68 0d 15  36 1a 4d 4f 56 20 52 33  | width..6.MOV R3|
00002d50  2c 23 31 34 20 3b 42 61  64 20 68 65 69 67 68 74  |,#14 ;Bad height|
00002d60  0d 15 40 0b 42 4c 20 67  65 74 62 0d 15 4a 13 4c  |..@.BL getb..J.L|
00002d70  44 52 20 52 31 2c 5b 52  36 2c 23 32 34 5d 0d 15  |DR R1,[R6,#24]..|
00002d80  54 13 4c 44 52 20 52 32  2c 5b 52 36 2c 23 32 38  |T.LDR R2,[R6,#28|
00002d90  5d 0d 15 5e 0e 42 4c 20  63 6f 6e 76 65 72 74 0d  |]..^.BL convert.|
00002da0  15 68 12 53 54 52 20 52  30 2c 62 61 64 32 61 62  |.h.STR R0,bad2ab|
00002db0  73 0d 15 72 13 4c 44 52  20 52 31 2c 62 61 64 32  |s..r.LDR R1,bad2|
00002dc0  62 61 64 72 0d 15 7c 18  4d 4f 56 20 52 32 2c 23  |badr..|.MOV R2,#|
00002dd0  37 20 3b 42 61 64 20 77  69 64 74 68 0d 15 86 1a  |7 ;Bad width....|
00002de0  4d 4f 56 20 52 33 2c 23  31 34 20 3b 42 61 64 20  |MOV R3,#14 ;Bad |
00002df0  68 65 69 67 68 74 0d 15  90 0b 42 4c 20 67 65 74  |height....BL get|
00002e00  62 0d 15 9a 18 54 53 54  20 52 31 32 2c 23 36 34  |b....TST R12,#64|
00002e10  20 3b 54 6f 6b 66 6c 61  67 0d 15 a4 10 42 45 51  | ;Tokflag....BEQ|
00002e20  20 67 65 74 62 65 78 69  74 0d 15 ae 13 4c 44 52  | getbexit....LDR|
00002e30  20 52 31 2c 5b 52 36 2c  23 33 32 5d 0d 15 b8 13  | R1,[R6,#32]....|
00002e40  4c 44 52 20 52 32 2c 5b  52 36 2c 23 33 36 5d 0d  |LDR R2,[R6,#36].|
00002e50  15 c2 0e 42 4c 20 63 6f  6e 76 65 72 74 0d 15 cc  |...BL convert...|
00002e60  11 53 54 52 20 52 30 2c  74 6f 6b 61 62 73 0d 15  |.STR R0,tokabs..|
00002e70  d6 12 4c 44 52 20 52 31  2c 74 6f 6b 62 61 64 72  |..LDR R1,tokbadr|
00002e80  0d 15 e0 18 4d 4f 56 20  52 32 2c 23 35 20 3b 54  |....MOV R2,#5 ;T|
00002e90  6f 6b 20 77 69 64 74 68  0d 15 ea 19 4d 4f 56 20  |ok width....MOV |
00002ea0  52 33 2c 23 39 20 3b 54  6f 6b 20 68 65 69 67 68  |R3,#9 ;Tok heigh|
00002eb0  74 0d 15 f4 0b 42 4c 20  67 65 74 62 0d 15 fe 1e  |t....BL getb....|
00002ec0  2e 67 65 74 62 65 78 69  74 20 4c 44 4d 46 44 20  |.getbexit LDMFD |
00002ed0  52 31 33 21 2c 7b 52 31  35 7d 0d 16 08 1d 2e 72  |R13!,{R15}.....r|
00002ee0  65 73 62 61 63 6b 20 53  54 4d 46 44 20 52 31 33  |esback STMFD R13|
00002ef0  21 2c 7b 52 31 34 7d 0d  16 12 12 4c 44 52 20 52  |!,{R14}....LDR R|
00002f00  30 2c 62 61 6c 6c 61 62  73 0d 16 1c 13 4c 44 52  |0,ballabs....LDR|
00002f10  20 52 31 2c 62 61 6c 6c  62 61 64 72 0d 16 26 19  | R1,ballbadr..&.|
00002f20  4d 4f 56 20 52 32 2c 23  32 20 3b 42 61 6c 6c 20  |MOV R2,#2 ;Ball |
00002f30  77 69 64 74 68 0d 16 30  1a 4d 4f 56 20 52 33 2c  |width..0.MOV R3,|
00002f40  23 34 20 3b 42 61 6c 6c  20 68 65 69 67 68 74 0d  |#4 ;Ball height.|
00002f50  16 3a 0b 42 4c 20 72 65  73 62 0d 16 44 11 4c 44  |.:.BL resb..D.LD|
00002f60  52 20 52 30 2c 62 61 74  61 62 73 0d 16 4e 12 4c  |R R0,batabs..N.L|
00002f70  44 52 20 52 31 2c 62 61  74 62 61 64 72 0d 16 58  |DR R1,batbadr..X|
00002f80  19 4d 4f 56 20 52 32 2c  23 31 34 20 3b 42 61 74  |.MOV R2,#14 ;Bat|
00002f90  20 77 69 64 74 68 0d 16  62 19 4d 4f 56 20 52 33  | width..b.MOV R3|
00002fa0  2c 23 36 20 3b 42 61 74  20 68 65 69 67 68 74 0d  |,#6 ;Bat height.|
00002fb0  16 6c 0b 42 4c 20 72 65  73 62 0d 16 76 12 4c 44  |.l.BL resb..v.LD|
00002fc0  52 20 52 30 2c 62 61 64  31 61 62 73 0d 16 80 13  |R R0,bad1abs....|
00002fd0  4c 44 52 20 52 31 2c 62  61 64 31 62 61 64 72 0d  |LDR R1,bad1badr.|
00002fe0  16 8a 18 4d 4f 56 20 52  32 2c 23 37 20 3b 42 61  |...MOV R2,#7 ;Ba|
00002ff0  64 20 77 69 64 74 68 0d  16 94 1a 4d 4f 56 20 52  |d width....MOV R|
00003000  33 2c 23 31 34 20 3b 42  61 64 20 68 65 69 67 68  |3,#14 ;Bad heigh|
00003010  74 0d 16 9e 0b 42 4c 20  72 65 73 62 0d 16 a8 12  |t....BL resb....|
00003020  4c 44 52 20 52 30 2c 62  61 64 32 61 62 73 0d 16  |LDR R0,bad2abs..|
00003030  b2 13 4c 44 52 20 52 31  2c 62 61 64 32 62 61 64  |..LDR R1,bad2bad|
00003040  72 0d 16 bc 18 4d 4f 56  20 52 32 2c 23 37 20 3b  |r....MOV R2,#7 ;|
00003050  42 61 64 20 77 69 64 74  68 0d 16 c6 1a 4d 4f 56  |Bad width....MOV|
00003060  20 52 33 2c 23 31 34 20  3b 42 61 64 20 68 65 69  | R3,#14 ;Bad hei|
00003070  67 68 74 0d 16 d0 0b 42  4c 20 72 65 73 62 0d 16  |ght....BL resb..|
00003080  da 18 54 53 54 20 52 31  32 2c 23 36 34 20 3b 54  |..TST R12,#64 ;T|
00003090  6f 6b 66 6c 61 67 0d 16  e4 10 42 45 51 20 72 65  |okflag....BEQ re|
000030a0  73 62 65 78 69 74 0d 16  ee 11 4c 44 52 20 52 30  |sbexit....LDR R0|
000030b0  2c 74 6f 6b 61 62 73 0d  16 f8 12 4c 44 52 20 52  |,tokabs....LDR R|
000030c0  31 2c 74 6f 6b 62 61 64  72 0d 17 02 0d 4d 4f 56  |1,tokbadr....MOV|
000030d0  20 52 32 2c 23 35 0d 17  0c 0d 4d 4f 56 20 52 33  | R2,#5....MOV R3|
000030e0  2c 23 39 0d 17 16 0b 42  4c 20 72 65 73 62 0d 17  |,#9....BL resb..|
000030f0  20 1e 2e 72 65 73 62 65  78 69 74 20 4c 44 4d 46  | ..resbexit LDMF|
00003100  44 20 52 31 33 21 2c 7b  52 31 35 7d 0d 17 2a 1c  |D R13!,{R15}..*.|
00003110  2e 63 6f 6e 76 65 72 74  20 4d 4f 56 20 52 30 2c  |.convert MOV R0,|
00003120  52 32 2c 4c 53 52 23 32  0d 17 34 12 52 53 42 20  |R2,LSR#2..4.RSB |
00003130  52 30 2c 52 30 2c 23 32  35 35 0d 17 3e 0f 4d 4f  |R0,R0,#255..>.MO|
00003140  56 20 52 33 2c 23 31 36  30 0d 17 48 10 4d 55 4c  |V R3,#160..H.MUL|
00003150  20 52 34 2c 52 33 2c 52  30 0d 17 52 16 41 44 44  | R4,R3,R0..R.ADD|
00003160  20 52 30 2c 52 34 2c 52  31 2c 4c 53 52 23 33 0d  | R0,R4,R1,LSR#3.|
00003170  17 5c 10 4c 44 52 20 52  33 2c 6d 73 74 6f 70 0d  |.\.LDR R3,mstop.|
00003180  17 66 10 41 44 44 20 52  30 2c 52 30 2c 52 33 0d  |.f.ADD R0,R0,R3.|
00003190  17 70 0f 4d 4f 56 20 52  31 35 2c 52 31 34 0d 17  |.p.MOV R15,R14..|
000031a0  7a 13 2e 67 65 74 62 20  4d 4f 56 20 52 34 2c 23  |z..getb MOV R4,#|
000031b0  30 0d 17 84 1c 4d 4f 56  20 52 35 2c 23 30 20 3b  |0....MOV R5,#0 ;|
000031c0  5a 65 72 6f 20 63 6f 75  6e 74 65 72 73 0d 17 8e  |Zero counters...|
000031d0  1d 2e 67 65 74 62 6c 6f  6f 70 20 4c 44 52 42 20  |..getbloop LDRB |
000031e0  52 37 2c 5b 52 30 2c 52  34 5d 0d 17 98 13 53 54  |R7,[R0,R4]....ST|
000031f0  52 42 20 52 37 2c 5b 52  31 5d 2c 23 31 0d 17 a2  |RB R7,[R1],#1...|
00003200  10 41 44 44 20 52 34 2c  52 34 2c 23 31 0d 17 ac  |.ADD R4,R4,#1...|
00003210  0d 43 4d 50 20 52 32 2c  52 34 0d 17 b6 10 42 43  |.CMP R2,R4....BC|
00003220  53 20 67 65 74 62 6c 6f  6f 70 0d 17 c0 10 41 44  |S getbloop....AD|
00003230  44 20 52 35 2c 52 35 2c  23 31 0d 17 ca 0d 43 4d  |D R5,R5,#1....CM|
00003240  50 20 52 33 2c 52 35 0d  17 d4 14 53 55 42 4e 45  |P R3,R5....SUBNE|
00003250  20 52 30 2c 52 30 2c 23  31 36 30 0d 17 de 0f 4d  | R0,R0,#160....M|
00003260  4f 56 4e 45 20 52 34 2c  23 30 0d 17 e8 10 42 4e  |OVNE R4,#0....BN|
00003270  45 20 67 65 74 62 6c 6f  6f 70 0d 17 f2 0f 4d 4f  |E getbloop....MO|
00003280  56 20 52 31 35 2c 52 31  34 0d 17 fc 13 2e 72 65  |V R15,R14.....re|
00003290  73 62 20 4d 4f 56 20 52  34 2c 23 30 0d 18 06 1c  |sb MOV R4,#0....|
000032a0  4d 4f 56 20 52 35 2c 23  30 20 3b 5a 65 72 6f 20  |MOV R5,#0 ;Zero |
000032b0  63 6f 75 6e 74 65 72 73  0d 18 10 1d 2e 72 65 73  |counters.....res|
000032c0  62 6c 6f 6f 70 20 4c 44  52 42 20 52 37 2c 5b 52  |bloop LDRB R7,[R|
000032d0  31 5d 2c 23 31 0d 18 1a  13 53 54 52 42 20 52 37  |1],#1....STRB R7|
000032e0  2c 5b 52 30 2c 52 34 5d  0d 18 24 10 41 44 44 20  |,[R0,R4]..$.ADD |
000032f0  52 34 2c 52 34 2c 23 31  0d 18 2e 0d 43 4d 50 20  |R4,R4,#1....CMP |
00003300  52 32 2c 52 34 0d 18 38  10 42 43 53 20 72 65 73  |R2,R4..8.BCS res|
00003310  62 6c 6f 6f 70 0d 18 42  10 41 44 44 20 52 35 2c  |bloop..B.ADD R5,|
00003320  52 35 2c 23 31 0d 18 4c  0d 43 4d 50 20 52 33 2c  |R5,#1..L.CMP R3,|
00003330  52 35 0d 18 56 14 53 55  42 4e 45 20 52 30 2c 52  |R5..V.SUBNE R0,R|
00003340  30 2c 23 31 36 30 0d 18  60 0f 4d 4f 56 4e 45 20  |0,#160..`.MOVNE |
00003350  52 34 2c 23 30 0d 18 6a  10 42 4e 45 20 72 65 73  |R4,#0..j.BNE res|
00003360  62 6c 6f 6f 70 0d 18 74  0f 4d 4f 56 20 52 31 35  |bloop..t.MOV R15|
00003370  2c 52 31 34 0d 18 7e 1e  2e 62 6c 6f 63 6b 73 75  |,R14..~..blocksu|
00003380  62 20 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 31  |b STMFD R13!,{R1|
00003390  34 7d 0d 18 88 10 4c 44  52 42 20 52 38 2c 48 69  |4}....LDRB R8,Hi|
000033a0  74 73 0d 18 92 20 42 49  43 20 52 31 32 2c 52 31  |ts... BIC R12,R1|
000033b0  32 2c 23 34 20 3b 43 6c  65 61 72 20 62 6c 66 6c  |2,#4 ;Clear blfl|
000033c0  61 67 0d 18 9c 11 4c 44  52 20 52 32 2c 62 6c 31  |ag....LDR R2,bl1|
000033d0  61 64 72 0d 18 a6 17 2e  74 72 79 62 6c 31 20 4c  |adr.....trybl1 L|
000033e0  44 52 20 52 33 2c 62 6c  31 78 0d 18 b0 0d 43 4d  |DR R3,bl1x....CM|
000033f0  50 20 52 33 2c 23 30 0d  18 ba 0e 42 45 51 20 74  |P R3,#0....BEQ t|
00003400  72 79 62 6c 32 0d 18 c4  0f 4c 44 52 20 52 34 2c  |rybl2....LDR R4,|
00003410  62 6c 31 79 0d 18 ce 11  42 4c 20 73 70 72 69 74  |bl1y....BL sprit|
00003420  65 70 6c 6f 74 0d 18 d8  10 53 55 42 20 52 38 2c  |eplot....SUB R8,|
00003430  52 38 2c 23 31 0d 18 e2  17 2e 74 72 79 62 6c 32  |R8,#1.....trybl2|
00003440  20 4c 44 52 20 52 33 2c  62 6c 32 78 0d 18 ec 0d  | LDR R3,bl2x....|
00003450  43 4d 50 20 52 33 2c 23  30 0d 18 f6 10 42 45 51  |CMP R3,#0....BEQ|
00003460  20 6e 6f 62 6c 6f 63 6b  73 0d 19 00 0f 4c 44 52  | noblocks....LDR|
00003470  20 52 34 2c 62 6c 32 79  0d 19 0a 11 42 4c 20 73  | R4,bl2y....BL s|
00003480  70 72 69 74 65 70 6c 6f  74 0d 19 14 10 53 55 42  |priteplot....SUB|
00003490  20 52 38 2c 52 38 2c 23  31 0d 19 1e 1a 2e 6e 6f  | R8,R8,#1.....no|
000034a0  62 6c 6f 63 6b 73 20 53  54 52 42 20 52 38 2c 48  |blocks STRB R8,H|
000034b0  69 74 73 0d 19 28 14 4c  44 4d 46 44 20 52 31 33  |its..(.LDMFD R13|
000034c0  21 2c 7b 52 31 35 7d 0d  19 32 20 2e 63 6f 6c 20  |!,{R15}..2 .col |
000034d0  41 44 44 20 52 34 2c 52  33 2c 52 37 20 3b 52 34  |ADD R4,R3,R7 ;R4|
000034e0  3d 6f 62 6a 74 6f 70 0d  19 3c 1d 41 44 44 20 52  |=objtop..<.ADD R|
000034f0  35 2c 52 31 2c 23 31 36  20 3b 52 35 3d 62 61 6c  |5,R1,#16 ;R5=bal|
00003500  6c 74 6f 70 0d 19 46 1d  43 4d 50 20 52 31 2c 52  |ltop..F.CMP R1,R|
00003510  34 20 3b 42 61 6c 6c 62  6f 74 2d 6f 62 6a 74 6f  |4 ;Ballbot-objto|
00003520  70 0d 19 50 0d 42 50 4c  20 6e 6f 63 6f 6c 0d 19  |p..P.BPL nocol..|
00003530  5a 1d 43 4d 50 20 52 33  2c 52 35 20 3b 4f 62 6a  |Z.CMP R3,R5 ;Obj|
00003540  62 6f 74 2d 62 61 6c 6c  74 6f 70 0d 19 64 0d 42  |bot-balltop..d.B|
00003550  50 4c 20 6e 6f 63 6f 6c  0d 19 6e 1d 41 44 44 20  |PL nocol..n.ADD |
00003560  52 34 2c 52 32 2c 52 36  20 3b 52 34 3d 6f 62 6a  |R4,R2,R6 ;R4=obj|
00003570  72 69 67 68 74 0d 19 78  1f 41 44 44 20 52 35 2c  |right..x.ADD R5,|
00003580  52 30 2c 23 31 36 20 3b  52 35 3d 62 61 6c 6c 72  |R0,#16 ;R5=ballr|
00003590  69 67 68 74 0d 19 82 22  43 4d 50 20 52 30 2c 52  |ight..."CMP R0,R|
000035a0  34 20 3b 42 61 6c 6c 20  6c 65 66 74 2d 6f 62 6a  |4 ;Ball left-obj|
000035b0  20 72 69 67 68 74 0d 19  8c 0d 42 50 4c 20 6e 6f  | right....BPL no|
000035c0  63 6f 6c 0d 19 96 20 43  4d 50 20 52 32 2c 52 35  |col... CMP R2,R5|
000035d0  20 3b 4f 62 6a 6c 65 66  74 2d 62 61 6c 6c 72 69  | ;Objleft-ballri|
000035e0  67 68 74 0d 19 a0 0d 42  50 4c 20 6e 6f 63 6f 6c  |ght....BPL nocol|
000035f0  0d 19 aa 1f 84 52 20 52  31 32 2c 52 31 32 2c 23  |.....R R12,R12,#|
00003600  33 32 20 3b 53 65 74 20  63 6f 6c 66 6c 61 67 0d  |32 ;Set colflag.|
00003610  19 b4 1f 2e 6e 6f 63 6f  6c 20 54 53 54 20 52 31  |....nocol TST R1|
00003620  32 2c 23 33 32 20 3b 43  6f 6c 66 6c 61 67 0d 19  |2,#32 ;Colflag..|
00003630  be 22 42 49 43 20 52 31  32 2c 52 31 32 2c 23 33  |."BIC R12,R12,#3|
00003640  32 20 3b 43 6c 65 61 72  20 63 6f 6c 66 6c 61 67  |2 ;Clear colflag|
00003650  0d 19 c8 0f 4d 4f 56 20  52 31 35 2c 52 31 34 0d  |....MOV R15,R14.|
00003660  19 d2 13 2e 62 6c 6f 63  20 43 4d 50 20 52 34 2c  |....bloc CMP R4,|
00003670  23 30 0d 19 dc 0f 42 4d  49 20 72 65 74 62 6c 6f  |#0....BMI retblo|
00003680  63 0d 19 e6 0e 43 4d 50  20 52 34 2c 23 31 33 0d  |c....CMP R4,#13.|
00003690  19 f0 0f 42 45 51 20 72  65 74 62 6c 6f 63 0d 19  |...BEQ retbloc..|
000036a0  fa 0e 43 4d 50 20 52 35  2c 23 31 37 0d 1a 04 0f  |..CMP R5,#17....|
000036b0  42 47 54 20 72 65 74 62  6c 6f 63 0d 1a 0e 0d 43  |BGT retbloc....C|
000036c0  4d 50 20 52 35 2c 23 30  0d 1a 18 0f 42 4d 49 20  |MP R5,#0....BMI |
000036d0  72 65 74 62 6c 6f 63 0d  1a 22 14 4c 44 52 20 52  |retbloc..".LDR R|
000036e0  36 2c 62 6c 6f 63 6b 73  61 64 72 0d 1a 2c 0e 4d  |6,blocksadr..,.M|
000036f0  4f 56 20 52 37 2c 23 31  33 0d 1a 36 13 4d 4c 41  |OV R7,#13..6.MLA|
00003700  20 52 38 2c 52 37 2c 52  35 2c 52 36 0d 1a 40 13  | R8,R7,R5,R6..@.|
00003710  4c 44 52 42 20 52 37 2c  5b 52 38 2c 52 34 5d 0d  |LDRB R7,[R8,R4].|
00003720  1a 4a 1e 4d 4f 56 20 52  36 2c 52 37 2c 4c 53 52  |.J.MOV R6,R7,LSR|
00003730  23 34 20 3b 52 36 3d 63  6f 6c 6f 75 72 0d 1a 54  |#4 ;R6=colour..T|
00003740  1f 80 53 20 52 37 2c 52  37 2c 23 31 35 20 3b 52  |..S R7,R7,#15 ;R|
00003750  37 3d 62 6c 6f 63 6b 20  74 79 70 65 0d 1a 5e 0f  |7=block type..^.|
00003760  42 45 51 20 72 65 74 62  6c 6f 63 0d 1a 68 27 84  |BEQ retbloc..h'.|
00003770  52 20 52 31 32 2c 52 31  32 2c 23 31 36 30 20 3b  |R R12,R12,#160 ;|
00003780  53 65 74 20 63 6f 6c 66  6c 61 67 20 26 20 62 65  |Set colflag & be|
00003790  65 70 0d 1a 72 11 53 54  52 42 20 52 36 2c 50 69  |ep..r.STRB R6,Pi|
000037a0  74 63 68 0d 1a 7c 0e 43  4d 50 20 52 37 2c 23 31  |tch..|.CMP R7,#1|
000037b0  35 0d 1a 86 0e 42 45 51  20 69 6e 64 65 73 74 0d  |5....BEQ indest.|
000037c0  1a 90 11 53 55 42 53 20  52 37 2c 52 37 2c 23 31  |...SUBS R7,R7,#1|
000037d0  0d 1a 9a 0e 42 4e 45 20  69 6e 64 65 73 74 0d 1a  |....BNE indest..|
000037e0  a4 13 53 54 52 42 20 52  37 2c 5b 52 38 2c 52 34  |..STRB R7,[R8,R4|
000037f0  5d 0d 1a ae 13 4d 4f 56  20 52 36 2c 52 34 2c 4c  |]....MOV R6,R4,L|
00003800  53 4c 23 36 0d 1a b8 13  4d 4f 56 20 52 37 2c 52  |SL#6....MOV R7,R|
00003810  35 2c 4c 53 4c 23 35 0d  1a c2 11 41 44 44 20 52  |5,LSL#5....ADD R|
00003820  36 2c 52 36 2c 23 33 36  0d 1a cc 12 41 44 44 20  |6,R6,#36....ADD |
00003830  52 37 2c 52 37 2c 23 33  38 34 0d 1a d6 0f 54 53  |R7,R7,#384....TS|
00003840  54 20 52 31 32 2c 23 36  34 0d 1a e0 0f 42 4e 45  |T R12,#64....BNE|
00003850  20 68 61 76 65 74 6f 6b  0d 1a ea 1d 54 53 54 20  | havetok....TST |
00003860  52 31 32 2c 23 33 32 37  36 38 20 3b 46 72 61 6d  |R12,#32768 ;Fram|
00003870  65 66 6c 61 67 0d 1a f4  22 84 52 4e 45 20 52 31  |eflag...".RNE R1|
00003880  32 2c 52 31 32 2c 23 36  34 20 3b 53 65 74 20 74  |2,R12,#64 ;Set t|
00003890  6f 6b 20 66 6c 61 67 0d  1a fe 12 53 54 52 4e 45  |ok flag....STRNE|
000038a0  20 52 36 2c 74 6f 6b 58  6d 0d 1b 08 12 53 54 52  | R6,tokXm....STR|
000038b0  4e 45 20 52 37 2c 74 6f  6b 59 6d 0d 1b 12 19 2e  |NE R7,tokYm.....|
000038c0  68 61 76 65 74 6f 6b 20  4c 44 52 20 52 38 2c 73  |havetok LDR R8,s|
000038d0  63 6f 72 65 0d 1b 1c 11  41 44 44 20 52 38 2c 52  |core....ADD R8,R|
000038e0  38 2c 23 31 30 0d 1b 26  10 53 54 52 20 52 38 2c  |8,#10..&.STR R8,|
000038f0  73 63 6f 72 65 0d 1b 30  21 2e 72 65 74 62 6c 6f  |score..0!.retblo|
00003900  63 20 54 53 54 20 52 31  32 2c 23 33 32 20 3b 43  |c TST R12,#32 ;C|
00003910  6f 6c 66 6c 61 67 0d 1b  3a 22 42 49 43 20 52 31  |olflag..:"BIC R1|
00003920  32 2c 52 31 32 2c 23 33  32 20 3b 43 6c 65 61 72  |2,R12,#32 ;Clear|
00003930  20 63 6f 6c 66 6c 61 67  0d 1b 44 0f 4d 4f 56 20  | colflag..D.MOV |
00003940  52 31 35 2c 52 31 34 0d  1b 4e 1e 2e 69 6e 64 65  |R15,R14..N..inde|
00003950  73 74 20 41 44 44 20 52  36 2c 52 37 2c 52 36 2c  |st ADD R6,R7,R6,|
00003960  4c 53 52 23 34 0d 1b 58  13 53 54 52 42 20 52 36  |LSR#4..X.STRB R6|
00003970  2c 5b 52 38 2c 52 34 5d  0d 1b 62 0d 4d 4f 56 20  |,[R8,R4]..b.MOV |
00003980  52 36 2c 23 30 0d 1b 6c  18 54 53 54 20 52 31 32  |R6,#0..l.TST R12|
00003990  2c 23 33 32 20 3b 43 6f  6c 66 6c 61 67 0d 1b 76  |,#32 ;Colflag..v|
000039a0  22 42 49 43 20 52 31 32  2c 52 31 32 2c 23 33 32  |"BIC R12,R12,#32|
000039b0  20 3b 43 6c 65 61 72 20  63 6f 6c 66 6c 61 67 0d  | ;Clear colflag.|
000039c0  1b 80 0f 4d 4f 56 20 52  31 35 2c 52 31 34 0d 1b  |...MOV R15,R14..|
000039d0  8a 1e 2e 73 65 74 75 70  20 4c 44 52 42 20 52 30  |...setup LDRB R0|
000039e0  2c 73 63 72 65 65 6e 6c  65 76 65 6c 0d 1b 94 10  |,screenlevel....|
000039f0  41 44 44 20 52 30 2c 52  30 2c 23 31 0d 1b 9e 16  |ADD R0,R0,#1....|
00003a00  41 44 52 20 52 31 2c 66  72 61 6d 65 73 74 72 69  |ADR R1,framestri|
00003a10  6e 67 0d 1b a8 0d 4d 4f  56 20 52 32 2c 23 34 0d  |ng....MOV R2,#4.|
00003a20  1b b2 0b 53 57 49 20 26  44 35 0d 1b bc 11 41 44  |...SWI &D5....AD|
00003a30  44 20 52 32 2c 52 32 2c  23 32 36 0d 1b c6 12 53  |D R2,R2,#26....S|
00003a40  54 52 42 20 52 32 2c 66  6f 72 6d 2b 31 0d 1b d0  |TRB R2,form+1...|
00003a50  09 53 57 49 20 31 0d 1b  da 44 2e 66 6f 72 6d 20  |.SWI 1...D.form |
00003a60  45 51 55 42 20 33 31 3a  45 51 55 42 20 30 3a 45  |EQUB 31:EQUB 0:E|
00003a70  51 55 42 20 31 36 3a 45  51 55 42 20 31 37 3a 45  |QUB 16:EQUB 17:E|
00003a80  51 55 42 20 34 3a 45 51  55 42 20 39 3a 45 51 55  |QUB 4:EQUB 9:EQU|
00003a90  42 20 39 3a 45 51 55 42  20 39 0d 1b e4 17 2e 66  |B 9:EQUB 9.....f|
00003aa0  72 61 6d 65 73 74 72 69  6e 67 20 45 51 55 44 20  |ramestring EQUD |
00003ab0  30 0d 1b ee 17 4c 44 52  42 20 52 30 2c 73 63 72  |0....LDRB R0,scr|
00003ac0  65 65 6e 6c 65 76 65 6c  0d 1b f8 2e 53 57 49 20  |eenlevel....SWI |
00003ad0  32 35 36 2b 33 30 3a 53  57 49 20 32 35 36 2b 31  |256+30:SWI 256+1|
00003ae0  30 3a 53 57 49 20 32 35  36 2b 31 30 3a 53 57 49  |0:SWI 256+10:SWI|
00003af0  20 32 35 36 2b 39 0d 1c  02 1d 4d 4f 56 20 52 36  | 256+9....MOV R6|
00003b00  2c 23 30 20 3b 5a 65 72  6f 20 59 20 63 6f 75 6e  |,#0 ;Zero Y coun|
00003b10  74 65 72 0d 1c 0c 20 4d  4f 56 20 52 37 2c 23 30  |ter... MOV R7,#0|
00003b20  20 3b 5a 65 72 6f 20 68  69 74 73 20 63 6f 75 6e  | ;Zero hits coun|
00003b30  74 65 72 0d 1c 16 0f 4d  4f 56 20 52 31 2c 23 32  |ter....MOV R1,#2|
00003b40  33 34 0d 1c 20 11 4c 44  52 20 52 32 2c 73 63 72  |34.. .LDR R2,scr|
00003b50  65 65 6e 0d 1c 2a 2e 4d  4c 41 20 52 33 2c 52 30  |een..*.MLA R3,R0|
00003b60  2c 52 31 2c 52 32 20 3b  52 33 3d 70 6f 69 6e 74  |,R1,R2 ;R3=point|
00003b70  65 72 20 74 6f 20 66 69  72 73 74 20 62 6c 6f 63  |er to first bloc|
00003b80  6b 0d 1c 34 14 4c 44 52  20 52 34 2c 62 6c 6f 63  |k..4.LDR R4,bloc|
00003b90  6b 73 61 64 72 0d 1c 3e  12 41 44 44 20 52 34 2c  |ksadr..>.ADD R4,|
00003ba0  52 34 2c 23 32 32 31 0d  1c 48 15 2e 43 6c 6f 6f  |R4,#221..H..Cloo|
00003bb0  70 31 20 4d 4f 56 20 52  35 2c 23 30 0d 1c 52 1b  |p1 MOV R5,#0..R.|
00003bc0  2e 43 6c 6f 6f 70 32 20  4c 44 52 42 20 52 30 2c  |.Cloop2 LDRB R0,|
00003bd0  5b 52 33 5d 2c 23 31 0d  1c 5c 0d 43 4d 50 20 52  |[R3],#1..\.CMP R|
00003be0  30 2c 23 31 0d 1c 66 22  41 44 44 47 54 20 52 37  |0,#1..f"ADDGT R7|
00003bf0  2c 52 37 2c 23 31 20 3b  49 6e 63 72 65 6d 65 6e  |,R7,#1 ;Incremen|
00003c00  74 20 68 69 74 73 0d 1c  70 0e 53 57 49 20 32 35  |t hits..p.SWI 25|
00003c10  36 2b 31 37 0d 1c 7a 09  53 57 49 20 30 0d 1c 84  |6+17..z.SWI 0...|
00003c20  1b 53 57 49 20 32 35 36  2b 32 32 36 3a 53 57 49  |.SWI 256+226:SWI|
00003c30  20 32 35 36 2b 32 32 37  0d 1c 8e 0d 4d 4f 56 20  | 256+227....MOV |
00003c40  52 31 2c 23 31 0d 1c 98  0d 43 4d 50 20 52 30 2c  |R1,#1....CMP R0,|
00003c50  23 32 0d 1c a2 0c ec 51  20 52 31 2c 23 34 0d 1c  |#2.....Q R1,#4..|
00003c60  ac 0d 43 4d 50 20 52 30  2c 23 31 0d 1c b6 0d ec  |..CMP R0,#1.....|
00003c70  51 20 52 31 2c 23 31 35  0d 1c c0 0d 43 4d 50 20  |Q R1,#15....CMP |
00003c80  52 30 2c 23 30 0d 1c ca  0c ec 51 20 52 31 2c 52  |R0,#0.....Q R1,R|
00003c90  30 0d 1c d4 16 41 44 44  20 52 31 2c 52 31 2c 52  |0....ADD R1,R1,R|
00003ca0  30 2c 4c 53 4c 23 34 0d  1c de 13 53 54 52 42 20  |0,LSL#4....STRB |
00003cb0  52 31 2c 5b 52 34 5d 2c  23 31 0d 1c e8 10 41 44  |R1,[R4],#1....AD|
00003cc0  44 20 52 35 2c 52 35 2c  23 31 0d 1c f2 0e 43 4d  |D R5,R5,#1....CM|
00003cd0  50 20 52 35 2c 23 31 33  0d 1c fc 0e 42 4e 45 20  |P R5,#13....BNE |
00003ce0  43 6c 6f 6f 70 32 0d 1d  06 09 53 57 49 20 33 0d  |Cloop2....SWI 3.|
00003cf0  1d 10 0d 53 57 49 20 32  35 36 2b 39 0d 1d 1a 11  |...SWI 256+9....|
00003d00  53 55 42 20 52 34 2c 52  34 2c 23 32 36 0d 1d 24  |SUB R4,R4,#26..$|
00003d10  10 41 44 44 20 52 36 2c  52 36 2c 23 31 0d 1d 2e  |.ADD R6,R6,#1...|
00003d20  0e 43 4d 50 20 52 36 2c  23 31 38 0d 1d 38 0e 42  |.CMP R6,#18..8.B|
00003d30  4e 45 20 43 6c 6f 6f 70  31 0d 1d 42 0e 53 57 49  |NE Cloop1..B.SWI|
00003d40  20 32 35 36 2b 31 37 0d  1d 4c 0e 4d 4f 56 20 52  | 256+17..L.MOV R|
00003d50  30 2c 23 31 35 0d 1d 56  09 53 57 49 20 30 0d 1d  |0,#15..V.SWI 0..|
00003d60  60 10 53 54 52 42 20 52  37 2c 48 69 74 73 0d 1d  |`.STRB R7,Hits..|
00003d70  6a 0f 42 20 69 63 6f 6e  72 65 73 65 74 0d 1d 74  |j.B iconreset..t|
00003d80  27 2e 6e 65 77 62 61 6c  6c 20 54 53 54 20 52 31  |'.newball TST R1|
00003d90  32 2c 23 31 33 31 30 37  32 20 3b 42 61 6c 6c 20  |2,#131072 ;Ball |
00003da0  66 6c 61 67 0d 1d 7e 12  42 4c 4e 45 20 69 63 6f  |flag..~.BLNE ico|
00003db0  6e 72 65 73 65 74 0d 1d  88 1d 4d 4f 56 20 52 31  |nreset....MOV R1|
00003dc0  32 2c 23 36 31 34 34 20  3b 5a 65 72 6f 20 66 6c  |2,#6144 ;Zero fl|
00003dd0  61 67 73 0d 1d 92 16 84  52 20 52 31 32 2c 52 31  |ags.....R R12,R1|
00003de0  32 2c 23 32 36 32 31 34  34 0d 1d 9c 0e 4d 4f 56  |2,#262144....MOV|
00003df0  20 52 30 2c 23 31 36 0d  1d a6 12 53 54 52 42 20  | R0,#16....STRB |
00003e00  52 30 2c 42 61 6c 6c 56  59 0d 1d b0 0e 42 4c 20  |R0,BallVY....BL |
00003e10  62 61 74 63 61 6c 63 0d  1d ba 12 54 53 54 20 52  |batcalc....TST R|
00003e20  31 32 2c 23 36 35 35 33  36 0d 1d c4 0c 42 45 51  |12,#65536....BEQ|
00003e30  20 77 61 69 74 0d 1d ce  28 42 49 43 20 52 31 32  | wait...(BIC R12|
00003e40  2c 52 31 32 2c 23 36 35  35 33 36 20 3b 43 6c 65  |,R12,#65536 ;Cle|
00003e50  61 72 20 62 75 74 74 6f  6e 66 6c 61 67 0d 1d d8  |ar buttonflag...|
00003e60  21 84 52 20 52 31 32 2c  52 31 32 2c 23 32 20 3b  |!.R R12,R12,#2 ;|
00003e70  50 6f 73 20 62 61 6c 6c  20 59 20 64 69 72 0d 1d  |Pos ball Y dir..|
00003e80  e2 0d 4d 4f 56 20 52 30  2c 23 30 0d 1d e3 12 53  |..MOV R0,#0....S|
00003e90  54 52 42 20 52 30 2c 42  61 6c 6c 56 58 0d 1e 1e  |TRB R0,BallVX...|
00003ea0  14 53 54 52 42 20 52 30  2c 42 61 74 66 72 61 6d  |.STRB R0,Batfram|
00003eb0  65 0d 1e 28 0a 42 20 6c  6f 6f 70 0d 1e 32 16 2e  |e..(.B loop..2..|
00003ec0  77 61 69 74 20 53 54 52  20 52 30 2c 62 61 74 58  |wait STR R0,batX|
00003ed0  6d 0d 1e 3c 11 41 44 44  20 52 30 2c 52 30 2c 23  |m..<.ADD R0,R0,#|
00003ee0  34 30 0d 1e 46 11 53 54  52 20 52 30 2c 62 61 6c  |40..F.STR R0,bal|
00003ef0  6c 58 6d 0d 1e 50 0f 4d  4f 56 20 52 31 2c 23 31  |lXm..P.MOV R1,#1|
00003f00  32 38 0d 1e 5a 11 53 54  52 20 52 31 2c 62 61 6c  |28..Z.STR R1,bal|
00003f10  6c 59 6d 0d 1e 64 10 4c  44 52 20 52 36 2c 58 6d  |lYm..d.LDR R6,Xm|
00003f20  61 64 72 0d 1e 6e 0e 42  4c 20 67 65 74 62 61 63  |adr..n.BL getbac|
00003f30  6b 0d 1e 78 10 42 4c 20  70 6f 73 69 74 69 6f 6e  |k..x.BL position|
00003f40  73 0d 1e 82 0e 4d 4f 56  20 52 30 2c 23 31 39 0d  |s....MOV R0,#19.|
00003f50  1e 8c 09 53 57 49 20 36  0d 1e 96 0e 42 4c 20 72  |...SWI 6....BL r|
00003f60  65 73 62 61 63 6b 0d 1e  a0 0d 42 20 6e 65 77 62  |esback....B newb|
00003f70  61 6c 6c 0d 1e aa 1b 2e  73 63 6f 72 65 63 61 6c  |all.....scorecal|
00003f80  63 20 4c 44 52 20 52 30  2c 73 63 6f 72 65 0d 1e  |c LDR R0,score..|
00003f90  b4 16 41 44 52 20 52 31  2c 73 63 6f 72 65 73 74  |..ADR R1,scorest|
00003fa0  72 69 6e 67 0d 1e be 0d  4d 4f 56 20 52 32 2c 23  |ring....MOV R2,#|
00003fb0  38 0d 1e c8 0b 53 57 49  20 26 44 38 0d 1e d2 11  |8....SWI &D8....|
00003fc0  41 44 44 20 52 32 2c 52  32 2c 23 32 36 0d 1e dc  |ADD R2,R2,#26...|
00003fd0  14 53 54 52 42 20 52 32  2c 66 6f 72 6d 61 74 2b  |.STRB R2,format+|
00003fe0  31 0d 1e e6 09 53 57 49  20 31 0d 1e f0 46 2e 66  |1....SWI 1...F.f|
00003ff0  6f 72 6d 61 74 20 45 51  55 42 20 33 31 3a 45 51  |ormat EQUB 31:EQ|
00004000  55 42 20 30 3a 45 51 55  42 20 31 32 3a 45 51 55  |UB 0:EQUB 12:EQU|
00004010  42 20 31 37 3a 45 51 55  42 20 36 3a 45 51 55 42  |B 17:EQUB 6:EQUB|
00004020  20 39 3a 45 51 55 42 20  39 3a 45 51 55 42 20 39  | 9:EQUB 9:EQUB 9|
00004030  0d 1e fa 1e 2e 73 63 6f  72 65 73 74 72 69 6e 67  |.....scorestring|
00004040  20 45 51 55 44 20 30 3a  45 51 55 44 20 30 0d 1f  | EQUD 0:EQUD 0..|
00004050  04 0f 4d 4f 56 20 52 31  35 2c 52 31 34 0d 1f 0e  |..MOV R15,R14...|
00004060  13 2e 67 61 6d 65 6f 76  65 72 20 53 57 49 20 31  |..gameover SWI 1|
00004070  0d 1f 18 7d 45 51 55 42  20 33 31 3a 45 51 55 42  |...}EQUB 31:EQUB|
00004080  20 39 3a 45 51 55 42 20  32 3a 45 51 55 42 20 37  | 9:EQUB 2:EQUB 7|
00004090  31 3a 45 51 55 42 20 36  35 3a 45 51 55 42 20 37  |1:EQUB 65:EQUB 7|
000040a0  37 3a 45 51 55 42 20 36  39 3a 45 51 55 42 20 33  |7:EQUB 69:EQUB 3|
000040b0  32 3a 45 51 55 42 20 37  39 3a 45 51 55 42 20 38  |2:EQUB 79:EQUB 8|
000040c0  36 3a 45 51 55 42 20 36  39 3a 45 51 55 42 20 38  |6:EQUB 69:EQUB 8|
000040d0  32 3a 45 51 55 42 20 30  3a 45 51 55 42 20 30 3a  |2:EQUB 0:EQUB 0:|
000040e0  45 51 55 42 20 30 3a 45  51 55 42 20 30 0d 1f 22  |EQUB 0:EQUB 0.."|
000040f0  0d 4d 4f 56 20 52 30 2c  23 35 0d 1f 2c 11 53 54  |.MOV R0,#5..,.ST|
00004100  52 42 20 52 30 2c 42 61  6c 6c 73 0d 1f 36 16 2e  |RB R0,Balls..6..|
00004110  67 6f 6c 6f 6f 70 20 42  4c 20 62 61 74 63 61 6c  |goloop BL batcal|
00004120  63 0d 1f 40 12 54 53 54  20 52 31 32 2c 23 36 35  |c..@.TST R12,#65|
00004130  35 33 36 0d 1f 4a 0e 42  45 51 20 67 6f 6c 6f 6f  |536..J.BEQ goloo|
00004140  70 0d 1f 54 09 53 57 49  20 31 0d 1f 5e 61 45 51  |p..T.SWI 1..^aEQ|
00004150  55 42 20 33 31 3a 45 51  55 42 20 33 30 3a 45 51  |UB 31:EQUB 30:EQ|
00004160  55 42 20 31 32 3a 45 51  55 42 20 34 38 3a 45 51  |UB 12:EQUB 48:EQ|
00004170  55 42 20 34 38 3a 45 51  55 42 20 34 38 3a 45 51  |UB 48:EQUB 48:EQ|
*
000041a0  55 42 20 30 3a 45 51 55  42 20 30 0d 1f 68 0d 4d  |UB 0:EQUB 0..h.M|
000041b0  4f 56 20 52 30 2c 23 30  0d 1f 72 10 53 54 52 20  |OV R0,#0..r.STR |
000041c0  52 30 2c 73 63 6f 72 65  0d 1f 7c 17 53 54 52 42  |R0,score..|.STRB|
000041d0  20 52 30 2c 73 63 72 65  65 6e 6c 65 76 65 6c 0d  | R0,screenlevel.|
000041e0  1f 86 12 4c 44 52 20 52  32 2c 62 61 6c 6c 61 64  |...LDR R2,ballad|
000041f0  72 0d 1f 90 0f 4d 4f 56  20 52 33 2c 23 39 36 38  |r....MOV R3,#968|
00004200  0d 1f 9a 0f 4d 4f 56 20  52 34 2c 23 37 32 30 0d  |....MOV R4,#720.|
00004210  1f a4 11 42 4c 20 73 70  72 69 74 65 70 6c 6f 74  |...BL spriteplot|
00004220  0d 1f ae 11 41 44 44 20  52 33 2c 52 33 2c 23 33  |....ADD R3,R3,#3|
00004230  32 0d 1f b8 11 42 4c 20  73 70 72 69 74 65 70 6c  |2....BL spritepl|
00004240  6f 74 0d 1f c2 11 41 44  44 20 52 33 2c 52 33 2c  |ot....ADD R3,R3,|
00004250  23 33 32 0d 1f cc 11 42  4c 20 73 70 72 69 74 65  |#32....BL sprite|
00004260  70 6c 6f 74 0d 1f d6 11  41 44 44 20 52 33 2c 52  |plot....ADD R3,R|
00004270  33 2c 23 33 32 0d 1f e0  11 42 4c 20 73 70 72 69  |3,#32....BL spri|
00004280  74 65 70 6c 6f 74 0d 1f  ea 11 41 44 44 20 52 33  |teplot....ADD R3|
00004290  2c 52 33 2c 23 33 32 0d  1f f4 11 42 4c 20 73 70  |,R3,#32....BL sp|
000042a0  72 69 74 65 70 6c 6f 74  0d 1f fe 0c 42 4c 20 73  |riteplot....BL s|
000042b0  65 74 75 70 0d 20 08 0d  42 20 6e 65 77 62 61 6c  |etup. ..B newbal|
000042c0  6c 0d 20 12 25 2e 64 6f  65 78 31 20 54 53 54 20  |l. .%.doex1 TST |
000042d0  52 31 32 2c 23 33 32 37  36 38 20 3b 46 72 61 6d  |R12,#32768 ;Fram|
000042e0  65 20 66 6c 61 67 0d 20  1c 10 42 45 51 20 62 61  |e flag. ..BEQ ba|
000042f0  64 32 63 61 6c 63 0d 20  26 12 4c 44 52 42 20 52  |d2calc. &.LDRB R|
00004300  30 2c 45 78 31 6e 75 6d  0d 20 30 10 41 44 44 20  |0,Ex1num. 0.ADD |
00004310  52 30 2c 52 30 2c 23 31  0d 20 3a 0f 80 53 20 52  |R0,R0,#1. :..S R|
00004320  30 2c 52 30 2c 23 33 0d  20 44 12 53 54 52 42 20  |0,R0,#3. D.STRB |
00004330  52 30 2c 45 78 31 6e 75  6d 0d 20 4e 10 42 4e 45  |R0,Ex1num. N.BNE|
00004340  20 62 61 64 32 63 61 6c  63 0d 20 58 21 42 49 43  | bad2calc. X!BIC|
00004350  20 52 31 32 2c 52 31 32  2c 23 38 20 3b 43 6c 65  | R12,R12,#8 ;Cle|
00004360  61 72 20 65 78 31 66 6c  61 67 0d 20 62 0f 4d 4f  |ar ex1flag. b.MO|
00004370  56 20 52 30 2c 23 31 32  38 0d 20 6c 11 53 54 52  |V R0,#128. l.STR|
00004380  20 52 30 2c 62 61 64 31  58 6d 0d 20 76 0f 4d 4f  | R0,bad1Xm. v.MO|
00004390  56 20 52 30 2c 23 37 30  34 0d 20 80 11 53 54 52  |V R0,#704. ..STR|
000043a0  20 52 30 2c 62 61 64 31  59 6d 0d 20 8a 17 2e 65  | R0,bad1Ym. ...e|
000043b0  78 31 65 78 69 74 20 42  20 62 61 64 32 63 61 6c  |x1exit B bad2cal|
000043c0  63 0d 20 94 26 2e 64 6f  65 78 32 20 20 54 53 54  |c. .&.doex2  TST|
000043d0  20 52 31 32 2c 23 33 32  37 36 38 20 3b 46 72 61  | R12,#32768 ;Fra|
000043e0  6d 65 20 66 6c 61 67 0d  20 9e 0f 42 45 51 20 6d  |me flag. ..BEQ m|
000043f0  6f 76 65 74 6f 6b 0d 20  a8 12 4c 44 52 42 20 52  |ovetok. ..LDRB R|
00004400  30 2c 45 78 32 6e 75 6d  0d 20 b2 10 41 44 44 20  |0,Ex2num. ..ADD |
00004410  52 30 2c 52 30 2c 23 31  0d 20 bc 0f 80 53 20 52  |R0,R0,#1. ...S R|
00004420  30 2c 52 30 2c 23 33 0d  20 c6 12 53 54 52 42 20  |0,R0,#3. ..STRB |
00004430  52 30 2c 45 78 32 6e 75  6d 0d 20 d0 0f 42 4e 45  |R0,Ex2num. ..BNE|
00004440  20 6d 6f 76 65 74 6f 6b  0d 20 da 22 42 49 43 20  | movetok. ."BIC |
00004450  52 31 32 2c 52 31 32 2c  23 31 36 20 3b 43 6c 65  |R12,R12,#16 ;Cle|
00004460  61 72 20 65 78 32 66 6c  61 67 0d 20 e4 0f 4d 4f  |ar ex2flag. ..MO|
00004470  56 20 52 30 2c 23 37 36  38 0d 20 ee 11 53 54 52  |V R0,#768. ..STR|
00004480  20 52 30 2c 62 61 64 32  58 6d 0d 20 f8 0f 4d 4f  | R0,bad2Xm. ..MO|
00004490  56 20 52 30 2c 23 37 35  32 0d 21 02 11 53 54 52  |V R0,#752.!..STR|
000044a0  20 52 30 2c 62 61 64 32  59 6d 0d 21 0c 16 2e 65  | R0,bad2Ym.!...e|
000044b0  78 32 65 78 69 74 20 42  20 6d 6f 76 65 74 6f 6b  |x2exit B movetok|
000044c0  0d 21 16 25 2e 64 6f 62  61 64 31 20 54 53 54 20  |.!.%.dobad1 TST |
000044d0  52 31 32 2c 23 33 32 37  36 38 20 3b 46 72 61 6d  |R12,#32768 ;Fram|
000044e0  65 66 6c 61 67 0d 21 20  10 42 45 51 20 6d 6f 76  |eflag.! .BEQ mov|
000044f0  65 62 61 64 31 0d 21 2a  15 4c 44 52 42 20 52 30  |ebad1.!*.LDRB R0|
00004500  2c 42 61 64 31 66 72 61  6d 65 0d 21 34 10 41 44  |,Bad1frame.!4.AD|
00004510  44 20 52 30 2c 52 30 2c  23 31 0d 21 3e 0e 80 20  |D R0,R0,#1.!>.. |
00004520  52 30 2c 52 30 2c 23 33  0d 21 48 15 53 54 52 42  |R0,R0,#3.!H.STRB|
00004530  20 52 30 2c 42 61 64 31  66 72 61 6d 65 0d 21 52  | R0,Bad1frame.!R|
00004540  1b 2e 6d 6f 76 65 62 61  64 31 20 4c 44 52 20 52  |..movebad1 LDR R|
00004550  31 2c 62 61 64 31 58 6d  0d 21 5c 11 4c 44 52 20  |1,bad1Xm.!\.LDR |
00004560  52 32 2c 62 61 64 31 59  6d 0d 21 66 12 4c 44 52  |R2,bad1Ym.!f.LDR|
00004570  42 20 52 33 2c 42 61 64  31 56 58 0d 21 70 12 4c  |B R3,Bad1VX.!p.L|
00004580  44 52 42 20 52 34 2c 42  61 64 31 56 59 0d 21 7a  |DRB R4,Bad1VY.!z|
00004590  1b 54 53 54 20 52 31 32  2c 23 35 31 32 20 3b 42  |.TST R12,#512 ;B|
000045a0  61 64 31 20 78 64 69 72  0d 21 84 12 53 55 42 45  |ad1 xdir.!..SUBE|
000045b0  51 20 52 31 2c 52 31 2c  52 33 0d 21 8e 12 41 44  |Q R1,R1,R3.!..AD|
000045c0  44 4e 45 20 52 31 2c 52  31 2c 52 33 0d 21 98 1c  |DNE R1,R1,R3.!..|
000045d0  54 53 54 20 52 31 32 2c  23 31 30 32 34 20 3b 42  |TST R12,#1024 ;B|
000045e0  61 64 31 20 79 64 69 72  0d 21 a2 12 53 55 42 45  |ad1 ydir.!..SUBE|
000045f0  51 20 52 32 2c 52 32 2c  52 34 0d 21 ac 12 41 44  |Q R2,R2,R4.!..AD|
00004600  44 4e 45 20 52 32 2c 52  32 2c 52 34 0d 21 b6 11  |DNE R2,R2,R4.!..|
00004610  53 54 52 20 52 31 2c 62  61 64 31 58 6d 0d 21 c0  |STR R1,bad1Xm.!.|
00004620  11 53 54 52 20 52 32 2c  62 61 64 31 59 6d 0d 21  |.STR R2,bad1Ym.!|
00004630  ca 0f 43 4d 50 20 52 31  2c 23 38 30 30 0d 21 d4  |..CMP R1,#800.!.|
00004640  24 42 49 43 45 51 20 52  31 32 2c 52 31 32 2c 23  |$BICEQ R12,R12,#|
00004650  35 31 32 20 3b 4e 65 67  20 62 61 64 31 78 64 69  |512 ;Neg bad1xdi|
00004660  72 0d 21 de 0e 43 4d 50  20 52 31 2c 23 33 32 0d  |r.!..CMP R1,#32.|
00004670  21 e8 23 84 52 45 51 20  52 31 32 2c 52 31 32 2c  |!.#.REQ R12,R12,|
00004680  23 35 31 32 20 3b 50 6f  73 20 62 61 64 31 78 64  |#512 ;Pos bad1xd|
00004690  69 72 0d 21 f2 0f 43 4d  50 20 52 32 2c 23 39 36  |ir.!..CMP R2,#96|
000046a0  30 0d 21 fc 25 42 49 43  45 51 20 52 31 32 2c 52  |0.!.%BICEQ R12,R|
000046b0  31 32 2c 23 31 30 32 34  20 3b 4e 65 67 20 62 61  |12,#1024 ;Neg ba|
000046c0  64 31 79 64 69 72 0d 22  06 0f 43 4d 50 20 52 32  |d1ydir."..CMP R2|
000046d0  2c 23 31 36 30 0d 22 10  24 84 52 45 51 20 52 31  |,#160.".$.REQ R1|
000046e0  32 2c 52 31 32 2c 23 31  30 32 34 20 3b 50 6f 73  |2,R12,#1024 ;Pos|
000046f0  20 62 61 64 31 79 64 69  72 0d 22 1a 0e 42 20 62  | bad1ydir."..B b|
00004700  61 64 32 63 61 6c 63 0d  22 24 25 2e 64 6f 62 61  |ad2calc."$%.doba|
00004710  64 32 20 54 53 54 20 52  31 32 2c 23 33 32 37 36  |d2 TST R12,#3276|
00004720  38 20 3b 46 72 61 6d 65  66 6c 61 67 0d 22 2e 10  |8 ;Frameflag."..|
00004730  42 45 51 20 6d 6f 76 65  62 61 64 32 0d 22 38 15  |BEQ movebad2."8.|
00004740  4c 44 52 42 20 52 30 2c  42 61 64 32 66 72 61 6d  |LDRB R0,Bad2fram|
00004750  65 0d 22 42 10 41 44 44  20 52 30 2c 52 30 2c 23  |e."B.ADD R0,R0,#|
00004760  31 0d 22 4c 0e 80 20 52  30 2c 52 30 2c 23 33 0d  |1."L.. R0,R0,#3.|
00004770  22 56 15 53 54 52 42 20  52 30 2c 42 61 64 32 66  |"V.STRB R0,Bad2f|
00004780  72 61 6d 65 0d 22 60 1b  2e 6d 6f 76 65 62 61 64  |rame."`..movebad|
00004790  32 20 4c 44 52 20 52 31  2c 62 61 64 32 58 6d 0d  |2 LDR R1,bad2Xm.|
000047a0  22 6a 11 4c 44 52 20 52  32 2c 62 61 64 32 59 6d  |"j.LDR R2,bad2Ym|
000047b0  0d 22 74 12 4c 44 52 42  20 52 33 2c 42 61 64 32  |."t.LDRB R3,Bad2|
000047c0  56 58 0d 22 7e 12 4c 44  52 42 20 52 34 2c 42 61  |VX."~.LDRB R4,Ba|
000047d0  64 32 56 59 0d 22 88 1c  54 53 54 20 52 31 32 2c  |d2VY."..TST R12,|
000047e0  23 32 30 34 38 20 3b 42  61 64 32 20 78 64 69 72  |#2048 ;Bad2 xdir|
000047f0  0d 22 92 12 53 55 42 45  51 20 52 31 2c 52 31 2c  |."..SUBEQ R1,R1,|
00004800  52 33 0d 22 9c 12 41 44  44 4e 45 20 52 31 2c 52  |R3."..ADDNE R1,R|
00004810  31 2c 52 33 0d 22 a6 1c  54 53 54 20 52 31 32 2c  |1,R3."..TST R12,|
00004820  23 34 30 39 36 20 3b 42  61 64 32 20 79 64 69 72  |#4096 ;Bad2 ydir|
00004830  0d 22 b0 12 53 55 42 45  51 20 52 32 2c 52 32 2c  |."..SUBEQ R2,R2,|
00004840  52 34 0d 22 ba 12 41 44  44 4e 45 20 52 32 2c 52  |R4."..ADDNE R2,R|
00004850  32 2c 52 34 0d 22 c4 11  53 54 52 20 52 31 2c 62  |2,R4."..STR R1,b|
00004860  61 64 32 58 6d 0d 22 ce  11 53 54 52 20 52 32 2c  |ad2Xm."..STR R2,|
00004870  62 61 64 32 59 6d 0d 22  d8 0f 43 4d 50 20 52 31  |bad2Ym."..CMP R1|
00004880  2c 23 38 30 30 0d 22 e2  25 42 49 43 45 51 20 52  |,#800.".%BICEQ R|
00004890  31 32 2c 52 31 32 2c 23  32 30 34 38 20 3b 4e 65  |12,R12,#2048 ;Ne|
000048a0  67 20 62 61 64 32 78 64  69 72 0d 22 ec 0e 43 4d  |g bad2xdir."..CM|
000048b0  50 20 52 31 2c 23 33 32  0d 22 f6 24 84 52 45 51  |P R1,#32.".$.REQ|
000048c0  20 52 31 32 2c 52 31 32  2c 23 32 30 34 38 20 3b  | R12,R12,#2048 ;|
000048d0  50 6f 73 20 62 61 64 32  78 64 69 72 0d 23 00 0f  |Pos bad2xdir.#..|
000048e0  43 4d 50 20 52 32 2c 23  39 36 30 0d 23 0a 25 42  |CMP R2,#960.#.%B|
000048f0  49 43 45 51 20 52 31 32  2c 52 31 32 2c 23 34 30  |ICEQ R12,R12,#40|
00004900  39 36 20 3b 4e 65 67 20  62 61 64 32 79 64 69 72  |96 ;Neg bad2ydir|
00004910  0d 23 14 0f 43 4d 50 20  52 32 2c 23 31 36 30 0d  |.#..CMP R2,#160.|
00004920  23 1e 24 84 52 45 51 20  52 31 32 2c 52 31 32 2c  |#.$.REQ R12,R12,|
00004930  23 34 30 39 36 20 3b 50  6f 73 20 62 61 64 32 79  |#4096 ;Pos bad2y|
00004940  64 69 72 0d 23 28 0d 42  20 6d 6f 76 65 74 6f 6b  |dir.#(.B movetok|
00004950  0d 23 32 1f 2e 69 63 6f  6e 72 65 73 65 74 20 53  |.#2..iconreset S|
00004960  54 4d 46 44 20 52 31 33  21 2c 7b 52 31 34 7d 0d  |TMFD R13!,{R14}.|
00004970  23 3c 15 4c 44 52 42 20  52 31 2c 49 63 6f 6e 66  |#<.LDRB R1,Iconf|
00004980  72 61 6d 65 0d 23 46 0f  43 4d 50 20 52 31 2c 23  |rame.#F.CMP R1,#|
00004990  32 35 35 0d 23 50 15 42  45 51 20 69 63 6f 6e 72  |255.#P.BEQ iconr|
000049a0  65 73 65 74 65 78 69 74  0d 23 5a 11 4c 44 52 20  |esetexit.#Z.LDR |
000049b0  52 32 2c 69 31 6e 61 64  72 0d 23 64 16 41 44 44  |R2,i1nadr.#d.ADD|
000049c0  20 52 32 2c 52 32 2c 52  31 2c 4c 53 4c 23 32 0d  | R2,R2,R1,LSL#2.|
000049d0  23 6e 13 4c 44 52 20 52  35 2c 69 63 6f 6e 78 61  |#n.LDR R5,iconxa|
000049e0  64 72 0d 23 78 18 4c 44  52 20 52 33 2c 5b 52 35  |dr.#x.LDR R3,[R5|
000049f0  2c 52 31 2c 4c 53 4c 23  32 5d 0d 23 82 13 4c 44  |,R1,LSL#2].#..LD|
00004a00  52 20 52 35 2c 69 63 6f  6e 79 61 64 72 0d 23 8c  |R R5,iconyadr.#.|
00004a10  18 4c 44 52 20 52 34 2c  5b 52 35 2c 52 31 2c 4c  |.LDR R4,[R5,R1,L|
00004a20  53 4c 23 32 5d 0d 23 96  11 42 4c 20 73 70 72 69  |SL#2].#..BL spri|
00004a30  74 65 70 6c 6f 74 0d 23  a0 0f 4d 4f 56 20 52 30  |teplot.#..MOV R0|
00004a40  2c 23 32 35 35 0d 23 aa  15 53 54 52 42 20 52 30  |,#255.#..STRB R0|
00004a50  2c 49 63 6f 6e 66 72 61  6d 65 0d 23 b4 23 2e 69  |,Iconframe.#.#.i|
00004a60  63 6f 6e 72 65 73 65 74  65 78 69 74 20 4c 44 4d  |conresetexit LDM|
00004a70  46 44 20 52 31 33 21 2c  7b 52 31 35 7d 0d 23 be  |FD R13!,{R15}.#.|
00004a80  1c 2e 62 65 65 70 20 53  57 49 20 26 34 32 20 3b  |..beep SWI &42 ;|
00004a90  52 65 61 64 20 74 69 6d  65 0d 23 bf 0f 80 20 52  |Read time.#... R|
00004aa0  31 2c 52 30 2c 23 36 30  0d 23 c8 0f 4d 4f 56 20  |1,R0,#60.#..MOV |
00004ab0  52 30 2c 23 32 31 33 0d  23 d2 09 53 57 49 20 36  |R0,#213.#..SWI 6|
00004ac0  0d 23 dc 0d 53 57 49 20  32 35 36 2b 37 0d 23 e6  |.#..SWI 256+7.#.|
00004ad0  1e 42 49 43 20 52 31 32  2c 52 31 32 2c 23 31 32  |.BIC R12,R12,#12|
00004ae0  38 20 3b 42 65 65 70 66  6c 61 67 0d 23 f0 0f 4d  |8 ;Beepflag.#..M|
00004af0  4f 56 20 52 31 35 2c 52  31 34 0d 23 fa 05 5d 0d  |OV R15,R14.#..].|
00004b00  24 04 09 ed 70 61 73 73  0d 24 05 14 e8 22 53 6f  |$...pass.$..."So|
00004b10  75 6e 64 20 59 2f 4e 20  22 2c 41 24 0d 24 06 23  |und Y/N ",A$.$.#|
00004b20  e7 20 41 24 3d 22 4e 22  20 84 20 41 24 3d 22 6e  |. A$="N" . A$="n|
00004b30  22 20 8c 20 20 2a 41 55  44 49 4f 20 4f 46 46 0d  |" .  *AUDIO OFF.|
00004b40  24 0e 0e fb 31 32 38 3a  db 3a fb 31 33 0d 24 18  |$...128:.:.13.$.|
00004b50  1a e3 49 25 3d 30 b8 32  37 3a ef 32 32 34 3a ed  |..I%=0.27:.224:.|
00004b60  3a ef 32 32 38 3a f1 0d  24 22 29 e3 49 25 3d 30  |:.228:..$").I%=0|
00004b70  b8 32 37 3a ef 32 32 35  3a f1 c4 32 36 2c bd 33  |.27:.225:..26,.3|
00004b80  32 29 3b 3a ef 32 32 39  2c 32 32 38 3a f1 3a ed  |2);:.229,228:.:.|
00004b90  0d 24 2c 24 e6 35 3a ec  39 30 30 2c 33 37 36 3a  |.$,$.5:.900,376:|
00004ba0  df 39 30 30 2c 31 30 32  33 3a df 31 32 37 39 2c  |.900,1023:.1279,|
00004bb0  31 30 32 33 0d 24 36 2b  e6 31 33 3a c8 93 39 30  |1023.$6+.13:..90|
00004bc0  34 2c 33 37 34 2c 33 37  32 2c 36 34 33 3a c8 93  |4,374,372,643:..|
00004bd0  39 30 38 2c 33 37 38 2c  33 36 34 2c 36 33 35 0d  |908,378,364,635.|
00004be0  24 40 24 e6 35 3a ec 39  31 32 2c 33 38 30 3a df  |$@$.5:.912,380:.|
00004bf0  31 32 36 38 2c 33 38 30  3a df 31 32 36 38 2c 31  |1268,380:.1268,1|
00004c00  30 30 37 0d 24 4a 17 fb  31 33 3a f1 8a 33 30 2c  |007.$J..13:..30,|
00004c10  31 30 29 22 53 43 4f 52  45 22 0d 24 54 18 fb 36  |10)"SCORE".$T..6|
00004c20  3a f1 8a 33 30 2c 31 32  29 22 30 30 30 30 30 30  |:..30,12)"000000|
00004c30  30 22 0d 24 5e 17 fb 31  34 3a f1 8a 33 30 2c 31  |0".$^..14:..30,1|
00004c40  34 29 22 46 52 41 4d 45  22 0d 24 68 14 fb 34 3a  |4)"FRAME".$h..4:|
00004c50  f1 8a 33 30 2c 31 36 29  22 30 30 31 22 0d 24 72  |..30,16)"001".$r|
00004c60  10 2a 53 43 48 4f 4f 53  45 20 42 41 4c 0d 24 7c  |.*SCHOOSE BAL.$||
00004c70  48 f0 26 45 44 2c 39 36  38 2c 37 32 30 3a f0 26  |H.&ED,968,720:.&|
00004c80  45 44 2c 31 30 30 30 2c  37 32 30 3a f0 26 45 44  |ED,1000,720:.&ED|
00004c90  2c 31 30 33 32 2c 37 32  30 3a f0 26 45 44 2c 31  |,1032,720:.&ED,1|
00004ca0  30 36 34 2c 37 32 30 3a  f0 26 45 44 2c 31 30 39  |064,720:.&ED,109|
00004cb0  36 2c 37 32 30 0d 24 86  10 2a 53 43 48 4f 4f 53  |6,720.$..*SCHOOS|
00004cc0  45 20 49 31 4e 0d 24 90  10 f0 26 45 44 2c 39 39  |E I1N.$...&ED,99|
00004cd0  32 2c 32 37 32 0d 24 9a  10 2a 53 43 48 4f 4f 53  |2,272.$..*SCHOOS|
00004ce0  45 20 49 32 4e 0d 24 a4  11 f0 26 45 44 2c 31 30  |E I2N.$...&ED,10|
00004cf0  35 36 2c 32 37 32 0d 24  ae 10 2a 53 43 48 4f 4f  |56,272.$..*SCHOO|
00004d00  53 45 20 49 33 4e 0d 24  b8 11 f0 26 45 44 2c 31  |SE I3N.$...&ED,1|
00004d10  31 32 30 2c 32 37 32 0d  24 c2 10 2a 53 43 48 4f  |120,272.$..*SCHO|
00004d20  4f 53 45 20 49 34 4e 0d  24 cc 10 f0 26 45 44 2c  |OSE I4N.$...&ED,|
00004d30  39 39 32 2c 32 30 38 0d  24 d6 10 2a 53 43 48 4f  |992,208.$..*SCHO|
00004d40  4f 53 45 20 49 35 4e 0d  24 e0 11 f0 26 45 44 2c  |OSE I5N.$...&ED,|
00004d50  31 30 35 36 2c 32 30 38  0d 24 ea 10 2a 53 43 48  |1056,208.$..*SCH|
00004d60  4f 4f 53 45 20 49 36 4e  0d 24 f4 11 f0 26 45 44  |OOSE I6N.$...&ED|
00004d70  2c 31 31 32 30 2c 32 30  38 0d 24 fe 10 2a 53 43  |,1120,208.$..*SC|
00004d80  48 4f 4f 53 45 20 49 37  4e 0d 25 08 10 f0 26 45  |HOOSE I7N.%...&E|
00004d90  44 2c 39 39 32 2c 31 34  34 0d 25 12 10 2a 53 43  |D,992,144.%..*SC|
00004da0  48 4f 4f 53 45 20 49 38  4e 0d 25 1c 11 f0 26 45  |HOOSE I8N.%...&E|
00004db0  44 2c 31 30 35 36 2c 31  34 34 0d 25 26 10 2a 53  |D,1056,144.%&.*S|
00004dc0  43 48 4f 4f 53 45 20 49  39 4e 0d 25 30 11 f0 26  |CHOOSE I9N.%0..&|
00004dd0  45 44 2c 31 31 32 30 2c  31 34 34 0d 25 3a 10 2a  |ED,1120,144.%:.*|
00004de0  53 43 48 4f 4f 53 45 20  49 4d 50 0d 25 44 10 f0  |SCHOOSE IMP.%D..|
00004df0  26 45 44 2c 39 32 38 2c  38 32 30 0d 25 4e 22 e6  |&ED,928,820.%N".|
00004e00  36 3a ec 39 37 36 2c 31  33 30 3a df 39 37 36 2c  |6:.976,130:.976,|
00004e10  33 34 34 3a df 31 31 39  32 2c 33 34 34 0d 25 58  |344:.1192,344.%X|
00004e20  2a e6 38 3a c8 93 39 38  30 2c 31 33 30 2c 32 31  |*.8:..980,130,21|
00004e30  32 2c 32 31 32 3a c8 93  39 38 34 2c 31 33 34 2c  |2,212:..984,134,|
00004e40  32 30 34 2c 32 30 34 0d  25 62 23 e6 36 3a ec 39  |204,204.%b#.6:.9|
00004e50  38 38 2c 31 33 38 3a df  31 31 38 34 2c 31 33 38  |88,138:.1184,138|
00004e60  3a df 31 31 38 34 2c 33  33 34 0d 25 76 0b d6 20  |:.1184,334.%v.. |
00004e70  73 74 61 72 74 0d 25 80  05 e0 0d ff              |start.%.....|
00004e7c