Home » Archimedes archive » Archimedes World » AW-1993-04.adf » AWApril93 » !AWApril93/Goodies/Xacretan/!Xacretan/!RunImage

!AWApril93/Goodies/Xacretan/!Xacretan/!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 » Archimedes World » AW-1993-04.adf » AWApril93
Filename: !AWApril93/Goodies/Xacretan/!Xacretan/!RunImage
Read OK:
File size: 9C97 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM>!RunImage
   20PROCarm3detect
   30PROCwrite_detect
   40ON ERROR PROCerror
   50IF arm3%=TRUE THEN VOICES 4 ELSE VOICES 1
   60IF arm3%=TRUE THEN voice%=4 ELSE voice%=1
   70REM
   80REM vvvv If the game crashed remove this line vvvv
   90IF arm3%=FALSE THEN SYS "OS_UpdateMEMC",64,64
  100REM   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  110REM
  120IF arm3%=TRUE THEN dots%=80 ELSE dots%=25
  130PROCMusAsm
  140playing=TRUE:?Volume=0:CALL v_on
  150firsttime=TRUE
  160PROCsetup
  170PROCassemfade
  180PROCpink
  190PROCtitle
  200PROCgame
  210END
  220DEFPROCsetup
  230mul$=CHR$ 32+CHR$ 215+CHR$ 32
  240DIM DSX%(dots%),DSY%(dots%)
  250DIM DX%(dots%),DY%(dots%)
  260DIM left%(10),right%(10)
  270DIM scblock 8
  280lives=4
  290IF arm3%=TRUE THEN E%=8 ELSE E%=2
  300NA%=10
  310NB%=5
  320level=1
  330speed=2
  340bspeed=4
  350DIM block 8:!block=148:block!4=-1
  360A%=8:B%=39
  370DIM explodata 2048
  380OSCLI("PackLoad <Xacretan$Dir>.Explosions "+STR$~explodata)
  390DIM explostats 8*E%
  400FOR X%=0 TO (8*E%)-1 STEP 8
  410explostats!X%=0
  420explostats!(X%+4)=0
  430NEXT
  440DIM playerdata 320
  450DIM bulletdata 32
  460DIM scoredata 4096
  470DIM topdata 10*1024
  480P%=topdata
  490FOR Q%=0 TO 31
  500READ by%
  510FOR X%=0 TO 319
  520?P%=by%
  530P%+=1
  540NEXT,
  550DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  560DATA 0,1,2,3,44,45,46,47,208,209,210,211,252,253,254,255
  570OSCLI("PackLoad <Xacretan$Dir>.NoData "+STR$~scoredata)
  580OSCLI("Load <Xacretan$Dir>.Player "+STR$~playerdata)
  590OSCLI("Load <Xacretan$Dir>.Bullet "+STR$~bulletdata)
  600DIM blocks 32*32*(B%+1)
  610DIM aliens 16*16*12
  620DIM alienstats 4*4*(NA%+1)
  630DIM alienposes NA%*4
  640DIM alienpathdata 12*512
  650FOR X%=0 TO 11
  660OSCLI("Load <Xacretan$Dir>.Paths."+STR$(X%+1)+" "+STR$~(X%*512+alienpathdata))
  670NEXT
  680FOR X%=0 TO NA%-1
  690alienposes!(X%*4)=(X%+X%+0.5)*16
  700NEXT
  710R%=RND(A%)
  720FOR X%=alienstats TO alienstats+4*4*NA% STEP 4*4
  730X%!0=0
  740X%!4=0
  750X%!8=0
  760X%!12=0
  770NEXT
  780DIM scores 4*B%+1
  790FOR X%=0 TO B%*4 STEP 4
  800READ Y%
  810scores!X%=Y%
  820NEXT
  830 F%=OPENIN("<Xacretan$Dir>.HighScores")
  840DIM highscores(10)
  850DIM highname$(10)
  860FOR X%=1 TO 10
  870INPUT#F%,highname$(X%),highscores(X%)
  880 NEXT
  890 CLOSE#F%
  900OSCLI("PackLoad <Xacretan$Dir>.Blocks "+STR$~blocks)
  910OSCLI("PackLoad <Xacretan$Dir>.Aliens "+STR$~aliens)
  920DIM map 1024*3
  930FOR X%=map TO map+(3*1024-1):?X%=0
  940NEXT
  950DIM code 1024*5
  960DIM titlebit 16*1024
  970OSCLI("PackLoad <Xacretan$Dir>.TitBit "+STR$~titlebit)
  980MODE 15:SYS"OS_ReadVduVariables",block,block
  990screen1start=!block
 1000screen2start=screen1start+80*1024
 1010V%=RND(-TIME)
 1020FOR X%=0 TO 10
 1030left%(X%)=RND(12)-1
 1040right%(X%)=RND(12)-1
 1050NEXT
 1060ENDPROC
 1070DEFPROCassemble
 1080FOR pass=0 TO 2 STEP 2
 1090P%=code
 1100[OPT pass
 1110.go
 1120STMFD R13!,{R0-R12,R14}
 1130LDR R11,screenstart
 1140ADD R12,R11,#80*1024
 1150.mainloop
 1160STR R11,screenstart
 1170MOV R0,#19
 1180SWI "OS_Byte"
 1190MOV R0,#113
 1200MOV R1,#2
 1210SWI "OS_Byte"
 1220BL groundhitcheck
 1230BL checkhit
 1240BL ckdie
 1250BL movealiens
 1260BL scroll
 1270BL bullets
 1280BL alplot
 1290BL player
 1300BL expplot
 1310BL dotop
 1320BL doscore
 1330STR R12,screenstart
 1340MOV R0,#19
 1350SWI "OS_Byte"
 1360MOV R0,#113
 1370MOV R1,#1
 1380SWI "OS_Byte"
 1390BL groundhitcheck
 1400BL checkhit
 1410BL ckdie
 1420BL movealiens
 1430BL scroll
 1440BL bullets
 1450BL alplot
 1460BL player
 1470BL expplot
 1480BL dotop
 1490BL doscore
 1500LDR R5,mappos
 1510CMP R5,#10
 1520MOVLT R5,#1
 1530STRLT R5,endreason
 1540LDR R5,endreason
 1550CMP R5,#2
 1560BEQ dieroutine
 1570CMP R5,#0
 1580BNE end
 1590SWI "OS_ReadEscapeState"
 1600BCC mainloop
 1610.end
 1620LDMFD R13!,{R0-R12,PC}
 1630.damp:EQUD &FFF1
 1640.dpit:EQUD &1280
 1650.dieroutine
 1660MOV R0,#2
 1670LDR R1,damp
 1680LDR R2,dpit
 1690MOV R3,#&FE
 1700SWI "Sound_Control"
 1710MOV R10,#0
 1720LDR R9,playerx
 1730LDR R8,playery
 1740MOV R7,#320
 1750MUL R8,R7,R8
 1760ADD R0,R8,R9
 1770BL expinit
 1780ADD R0,R0,#16
 1790BL expinit
 1800ADD R0,R0,#17*320
 1810BL expinit
 1820SUB R0,R0,#16
 1830BL expinit
 1840SUB R0,R0,#8*320
 1850ADD R0,R0,#8
 1860MOV R6,R0
 1870.dieloop
 1880STR R11,screenstart
 1890MOV R0,#19
 1900SWI "OS_Byte"
 1910MOV R0,#113
 1920MOV R1,#2
 1930SWI "OS_Byte"
 1940BL groundhitcheck
 1950BL checkhit
 1960BL movealiens
 1970BL scroll
 1980BL bullets
 1990BL alplot
 2000BL expplot
 2010BL dotop
 2020BL doscore
 2030STR R12,screenstart
 2040MOV R0,#19
 2050SWI "OS_Byte"
 2060MOV R0,#113
 2070MOV R1,#1
 2080SWI "OS_Byte"
 2090BL groundhitcheck
 2100BL checkhit
 2110BL movealiens
 2120BL scroll
 2130BL bullets
 2140BL alplot
 2150BL expplot
 2160BL dotop
 2170BL doscore
 2180ADD R10,R10,#1
 2190CMP R10,#8
 2200MOVEQ R0,R6:BLEQ expinit
 2210CMP R10,#64
 2220BLT dieloop
 2230LDMFD R13!,{R0-R12,PC}
 2240.endreason:EQUD 0
 2250.topstart:EQUD topdata
 2260.dotop
 2270STMFD R13!,{R0-R12,R14}
 2280LDR R12,screenstart
 2290]
 2300IF arm3%=TRUE THEN
 2310[OPT pass
 2320LDR R11,topstart
 2330MOV R10,#0
 2340.toploop
 2350]:FOR Q%=0 TO 31:[OPT pass
 2360LDMIA R11!,{R0-R9}:STMIA R12!,{R0-R9}
 2370]:NEXT
 2380ELSE
 2390[OPT pass
 2400ADR R11,blankdata
 2410LDMIA R11!,{R0-R9}
 2420MOV R10,#0
 2430.toploop
 2440]:FOR Q%=0 TO 31:[OPT pass
 2450STMIA R12!,{R0-R9}
 2460]:NEXT
 2470ENDIF
 2480[OPT pass
 2490ADD R10,R10,#32
 2500CMP R10,#256
 2510BLT toploop
 2520LDMFD R13!,{R0-R12,PC}
 2530.screenstart:EQUD screen1start
 2540.blankdata:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
 2550.mapstart:EQUD map
 2560.blockstart:EQUD blocks
 2570.mappos:EQUD (3*1024)-80
 2580.offset:EQUD 0
 2590.scroll
 2600STMFD R13!,{R0-R12,R14}
 2610LDR R11,mapstart
 2620LDR R10,mappos
 2630ADD R11,R11,R10
 2640MOV R8,#0
 2650MOV R9,#0
 2660LDR R12,screenstart
 2670LDR R0,offset
 2680ADD R12,R12,R0
 2690.plotloop
 2700LDRB R10,[R11]
 2710MOV R5,#1024
 2720MUL R10,R5,R10
 2730LDR R5,blockstart
 2740ADD R10,R10,R5
 2750]:FOR Q%=1 TO 32:[OPT pass
 2760LDMIA R10!,{R0-R7}
 2770STMIA R12,{R0-R7}
 2780ADD R12,R12,#320
 2790]:NEXT:[OPT pass
 2800SUB R12,R12,#320*32
 2810ADD R12,R12,#32
 2820ADD R11,R11,#1
 2830ADD R9,R9,#1
 2840CMP R9,#10
 2850BLT plotloop
 2860MOV R9,#0
 2870ADD R12,R12,#320*31
 2880ADD R8,R8,#1
 2890CMP R8,#7
 2900BLT plotloop
 2910LDR R8,off2
 2920MOV R4,#0:STR R4,botcount
 2930.botbit
 2940MOV R9,#0
 2950LDRB R10,[R11]
 2960MOV R5,#1024
 2970MUL R10,R5,R10
 2980LDR R5,blockstart
 2990ADD R10,R10,R5
 3000STMFD R13!,{R12}
 3010.botloop
 3020LDMIA R10!,{R0-R7}
 3030STMIA R12,{R0-R7}
 3040ADD R12,R12,#320
 3050ADD R9,R9,#1
 3060CMP R9,R8
 3070BLT botloop
 3080LDMFD R13!,{R12}
 3090ADD R12,R12,#32
 3100ADD R11,R11,#1
 3110LDR R0,botcount
 3120ADD R0,R0,#1
 3130STR R0,botcount
 3140CMP R0,#10
 3150BNE botbit
 3160LDR R0,offset
 3170LDR R1,mappos
 3180LDR R2,off2
 3190ADD R0,R0,#320
 3200SUB R2,R2,#1
 3210CMP R0,#10240
 3220MOVEQ R0,#0
 3230MOVEQ R2,#32
 3240SUBEQ R1,R1,#10
 3250STR R1,mappos
 3260STR R0,offset
 3270STR R2,off2
 3280LDMFD R13!,{R0-R12,PC}
 3290.off2:EQUD 32
 3300.botcount:EQUD 0
 3310.doscore
 3320STMFD R13!,{R0-R12,R14}
 3330LDR R12,screenstart:ADD R12,R12,#160-(6*10)
 3340]:IF arm3%=FALSE THEN [OPT pass:ADD R12,R12,#8*320:]
 3350[OPT pass
 3360LDR R0,dispscore:LDR R3,score
 3370CMP R0,R3:ADDLT R0,R0,#2
 3380CMP R0,R3
 3390STR R3,dispscore
 3400STRLT R0,dispscore
 3410ADR R1,scorestring
 3420MOV R2,#8
 3430SWI "OS_ConvertCardinal3"
 3440CMP R2,#0
 3450BEQ over1
 3460MOV R3,#0
 3470MOV R0,#0
 3480ADR R1,printstring
 3490.scoreloop1
 3500STRB R0,[R1,R3]
 3510ADD R3,R3,#1
 3520CMP R3,R2
 3530BLT scoreloop1
 3540.over1
 3550MOV R4,#0
 3560ADR R2,scorestring
 3570.scoreloop2
 3580LDRB R0,[R2,R4]
 3590SUB R0,R0,#48
 3600STRB R0,[R1,R3]
 3610ADD R4,R4,#1
 3620ADD R3,R3,#1
 3630CMP R3,#8
 3640BLT scoreloop2
 3650ADR R10,printstring
 3660MOV R9,#2
 3670.scoreloop3
 3680MOV R11,R12
 3690LDRB R8,[R10,R9]
 3700LDR R7,scoredatastart
 3710MOV R0,#20*20
 3720MUL R0,R8,R0
 3730ADD R7,R7,R0
 3740]:FOR X=0 TO 19:[OPT pass
 3750LDMIA R7!,{R0-R4}
 3760STMIA R11,{R0-R4}
 3770ADD R11,R11,#320
 3780]:NEXT:[OPT pass
 3790ADD R12,R12,#20
 3800ADD R9,R9,#1
 3810CMP R9,#8
 3820BNE scoreloop3
 3830LDMFD R13!,{R0-R12,PC}
 3840.scorestring
 3850EQUD 0:EQUD 0:EQUD 0
 3860.printstring
 3870EQUD 0:EQUD 0:EQUD 0
 3880.dispscore:EQUD 0
 3890.score:EQUD 0
 3900.scoredatastart
 3910EQUD scoredata
 3920.scraddr:EQUD screenstart
 3930.bulletstart:EQUD bulletdata
 3940.bulletstatsstart:EQUD bulletstats
 3950.bullets
 3960STMFD R13!,{R0-R12,R14}
 3970LDR R12,scraddr
 3980LDR R12,[R12]
 3990LDR R11,bulletstart
 4000LDR R10,bulletstatsstart
 4010MOV R9,#0
 4020.bloop
 4030LDR R0,[R10]
 4040CMP R0,#0
 4050BEQ nobullet
 4060LDR R1,[R10,#4]
 4070MOV R2,#320
 4080MUL R2,R1,R2
 4090ADD R2,R2,R0
 4100ADD R2,R2,R12
 4110LDRB R3,[R11,#0]:STRB R3,[R2]
 4120LDRB R3,[R11,#1]:STRB R3,[R2,#1]:ADD R2,R2,#320
 4130LDRB R3,[R11,#2]:STRB R3,[R2]
 4140LDRB R3,[R11,#3]:STRB R3,[R2,#1]:ADD R2,R2,#320
 4150LDRB R3,[R11,#4]:STRB R3,[R2]
 4160LDRB R3,[R11,#5]:STRB R3,[R2,#1]:ADD R2,R2,#320
 4170LDRB R3,[R11,#6]:STRB R3,[R2]
 4180LDRB R3,[R11,#7]:STRB R3,[R2,#1]:ADD R2,R2,#320
 4190LDRB R3,[R11,#8]:STRB R3,[R2]
 4200LDRB R3,[R11,#9]:STRB R3,[R2,#1]:ADD R2,R2,#320
 4210LDRB R3,[R11,#10]:STRB R3,[R2]
 4220LDRB R3,[R11,#11]:STRB R3,[R2,#1]:ADD R2,R2,#320
 4230LDRB R3,[R11,#12]:STRB R3,[R2]
 4240LDRB R3,[R11,#13]:STRB R3,[R2,#1]:ADD R2,R2,#320
 4250LDRB R3,[R11,#14]:STRB R3,[R2]
 4260LDRB R3,[R11,#15]:STRB R3,[R2,#1]:ADD R2,R2,#320
 4270LDRB R3,[R11,#16]:STRB R3,[R2]
 4280LDRB R3,[R11,#17]:STRB R3,[R2,#1]
 4290SUB R1,R1,#bspeed:STR R1,[R10,#4]
 4300CMP R1,#24
 4310MOVLT R0,#0
 4320STR R0,[R10]
 4330.nobullet
 4340ADD R10,R10,#8
 4350ADD R9,R9,#1
 4360CMP R9,#NB%
 4370BLT bloop
 4380LDMFD R13!,{R0-R12,PC}
 4390.bulletstats
 4400EQUD 0:EQUD 0:
 4410EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:
 4420.playerdatastart:EQUD playerdata
 4430.player
 4440STMFD R13!,{R0-R12,R14}
 4450LDR R12,scraddr
 4460LDR R12,[R12]
 4470LDR R11,playerdatastart
 4480LDR R0,playerx
 4490LDR R1,playery
 4500MOV R2,#320
 4510MUL R2,R1,R2
 4520ADD R2,R2,R0
 4530ADD R2,R2,R12
 4540MOV R10,#0
 4550MOV R9,#0
 4560.pplotloop
 4570LDRB R3,[R11,R10]
 4580CMP R3,#0
 4590STRNEB R3,[R2,R9]
 4600ADD R10,R10,#1
 4610ADD R9,R9,#1
 4620CMP R9,#16
 4630BLT pplotloop
 4640MOV R9,#0
 4650ADD R2,R2,#320
 4660CMP R10,#16*17
 4670BLT pplotloop
 4680LDR R12,playerx
 4690LDR R11,playery
 4700MOV R0,#121
 4710CMP R12,#8
 4720BLE noleft
 4730MOV R1,#97 EOR &80
 4740SWI "OS_Byte"
 4750CMP R1,#&FF
 4760SUBEQ R12,R12,#speed
 4770.noleft
 4780CMP R12,#296
 4790BGE noright
 4800MOV R1,#66 EOR &80:SWI "OS_Byte"
 4810CMP R1,#&FF
 4820ADDEQ R12,R12,#speed
 4830.noright
 4840STR R12,playerx
 4850CMP R11,#222
 4860BGE nodown
 4870MOV R1,#104 EOR &80:SWI "OS_Byte"
 4880CMP R1,#&FF
 4890ADDEQ R11,R11,#speed
 4900.nodown
 4910CMP R11,#80
 4920BLE noup
 4930MOV R1,#79 EOR &80:SWI "OS_Byte"
 4940CMP R1,#&FF
 4950SUBEQ R11,R11,#speed
 4960.noup
 4970STR R11,playery
 4980MOV R1,#73 EOR &80:SWI "OS_Byte"
 4990LDR R5,return
 5000CMP R5,R1
 5010BEQ nofire
 5020STR R1,return
 5030CMP R1,#&FF
 5040BNE nofire
 5050ADR R10,bulletstats
 5060MOV R9,#0
 5070.findloop
 5080LDR R0,[R10,R9]
 5090CMP R0,#0
 5100BEQ foundfire
 5110ADD R9,R9,#8
 5120CMP R9,#8*5
 5130BLT findloop
 5140B nofire
 5150.foundfire
 5160ADD R12,R12,#7
 5170STR R12,[R10,R9]
 5180ADD R9,R9,#4
 5190STR R11,[R10,R9]
 5200MOV R0,#1
 5210]:IF arm3%=FALSE THEN
 5220[OPT pass
 5230ADR R1,bstring
 5240SWI "Sound_AttachNamedVoice"
 5250]
 5260ENDIF
 5270[OPT pass
 5280LDR R1,bamp
 5290LDR R2,bpit
 5300MOV R3,#&FE
 5310SWI "Sound_Control"
 5320.nofire
 5330LDMFD R13!,{R0-R12,PC}
 5340.playerx:EQUD (320/2)-8
 5350.playery:EQUD 200
 5360.bamp:EQUD &FFF1
 5370.bpit:EQUD &1128
 5380.bstring:EQUS "ZapMod"+CHR$ 0:ALIGN
 5390.return:EQUD 0
 5400.offpos:EQUD off2
 5410.gmapdata:EQUD map
 5420.gmappos:EQUD mappos
 5430.gscorestats:EQUD scores
 5440.gscorepos:EQUD score
 5450.groundhitcheck
 5460STMFD R13!,{R0-R12,R14}
 5470ADR R11,bulletstats
 5480LDR R12,scraddr
 5490LDR R12,[R12]
 5500MOV R10,#0
 5510LDR R9,offpos
 5520LDR R9,[R9]
 5530MOV R8,#32
 5540SUB R9,R8,R9
 5550LDR R8,gmappos:LDR R8,[R8]
 5560LDR R7,gmapdata
 5570LDR R6,gscorestats
 5580LDR R5,gscorepos
 5590.bcheckgroundloop
 5600LDR R0,[R11]
 5610CMP R0,#0
 5620BEQ gc_nobullet
 5630MOV R0,R0,LSR #5
 5640LDR R2,[R11,#4]
 5650ADD R2,R2,R9
 5660MOV R1,R2,LSR #5
 5670MOV R2,#10:MUL R2,R1,R2
 5680ADD R2,R2,R0
 5690ADD R2,R2,R7
 5700ADD R2,R2,R8
 5710LDRB R0,[R2]
 5720LDR R1,[R6,R0,LSL #2]
 5730CMP R1,#0
 5740BEQ gc_nobullet
 5750LDR R4,[R5]
 5760LDR R3,anddata
 5770AND R3,R3,R1
 5780ADD R4,R4,R3
 5790STR R4,[R5]
 5800MOV R1,R1,LSR #31
 5810ADD R1,R1,#1
 5820STRB R1,[R2]
 5830MOV R0,#0
 5840STR R0,[R11]
 5850STMFD R13!,{R0-R3}
 5860]:IF arm3%=FALSE THEN
 5870[OPT pass
 5880MOV R0,#1
 5890ADR R1,gstring
 5900SWI "Sound_AttachNamedVoice"
 5910]
 5920ELSE
 5930[OPT pass
 5940MOV R0,#2
 5950]
 5960ENDIF
 5970[OPT pass
 5980LDR R1,gamp
 5990LDR R2,gpit
 6000MOV R3,#&FE
 6010SWI "Sound_Control"
 6020LDMFD R13!,{R0-R3}
 6030.gc_nobullet
 6040ADD R10,R10,#1
 6050ADD R11,R11,#8
 6060CMP R10,#NB%
 6070BLT bcheckgroundloop
 6080LDMFD R13!,{R0-R12,PC}
 6090.dotdata:EQUD -1
 6100.gamp:EQUD &FFF1
 6110.gpit:EQUD &1380
 6120.gstring:EQUS "Explo1":EQUD 0:ALIGN
 6130.anddata:EQUD &FFFF
 6140.expdatastart:EQUD explodata
 6150.expstatsstart:EQUD explostats
 6160.expno:EQUD 0
 6170.expinit
 6180STMFD R13!,{R0-R12,R14}
 6190LDR R12,expno
 6200MOV R11,R12,LSL #3
 6210LDR R10,expstatsstart
 6220STR R0,[R10,R11]
 6230MOV R1,#0
 6240ADD R11,R11,#4
 6250STR R1,[R10,R11]
 6260ADD R12,R12,#1
 6270CMP R12,#E%
 6280MOVEQ R12,#0
 6290STR R12,expno
 6300]:IF arm3%=FALSE THEN
 6310[OPT pass
 6320MOV R0,#1
 6330ADR R1,estring
 6340SWI "Sound_AttachNamedVoice"
 6350]
 6360ELSE
 6370[OPT pass
 6380MOV R0,#3
 6390]
 6400ENDIF
 6410[OPT pass
 6420LDR R1,examp
 6430LDR R2,expit
 6440MOV R3,#&FE
 6450SWI "Sound_Control"
 6460LDMFD R13!,{R0-R12,PC}
 6470.expcount
 6480EQUD 0
 6490.expit:EQUD &1200
 6500.examp:EQUD &FFF1
 6510.estring:EQUS "Explo2":EQUD 0:ALIGN
 6520.exscraddr:EQUD screenstart
 6530.expplot
 6540STMFD R13!,{R0-R12,R14}
 6550LDR R12,expstatsstart
 6560LDR R7,exscraddr:LDR R7,[R7]
 6570MOV R11,#0
 6580LDR R8,expdatastart
 6590LDR R10,expcount
 6600ADD R10,R10,#1
 6610AND R10,R10,#3
 6620STR R10,expcount
 6630.exploop
 6640LDR R0,[R12,R11]
 6650ADD R11,R11,#4
 6660LDR R1,[R12,R11]
 6670CMP R10,#0:ADDEQ R1,R1,#1:STR R1,[R12,R11]
 6680CMP R1,#7
 6690BGT noexplo
 6700ADD R0,R0,R7
 6710MOV R9,#16*16
 6720MUL R9,R1,R9
 6730ADD R9,R9,R8
 6740MOV R5,#0
 6750.eploop
 6760]:FOR W%=0 TO 15:[OPT pass
 6770LDRB R2,[R9,#W%]:CMP R2,#0:STRNEB R2,[R0,#W%]
 6780]:NEXT:[OPT pass
 6790ADD R9,R9,#16
 6800ADD R0,R0,#320
 6810ADD R5,R5,#1
 6820CMP R5,#16
 6830BLT eploop
 6840.noexplo
 6850ADD R11,R11,#4
 6860CMP R11,#E%*8
 6870BLT exploop
 6880LDMFD R13!,{R0-R12,PC}
 6890.alpscstart
 6900EQUD screenstart
 6910.aldatastart
 6920EQUD aliens
 6930.alstats:EQUD alienstats
 6940.alplot
 6950STMFD R13!,{R0-R12,R14}
 6960LDR R12,alpscstart
 6970LDR R12,[R12]
 6980LDR R11,aldatastart
 6990LDR R10,alstats
 7000MOV R9,#0
 7010MOV R8,#320
 7020MOV R7,#16*16
 7030.alplotloop
 7040LDMIA R10!,{R0-R3}
 7050CMP R3,#0:BEQ noalien
 7060CMP R0,#0:BLT noalien
 7070CMP R0,#320-16:BGE noalien
 7080CMP R1,#0:BLT noalien
 7090CMP R1,#256-16:BGE noalien
 7100SUB R3,R3,#1
 7110MUL R3,R7,R3:ADD R3,R3,R11
 7120MUL R1,R8,R1
 7130ADD R0,R0,R1
 7140ADD R0,R0,R12
 7150MOV R6,#0
 7160.alloop
 7170]:FOR W%=0 TO 15:[OPT pass
 7180LDRB R1,[R3,#W%]:CMP R1,#0:STRNEB R1,[R0,#W%]
 7190]:NEXT:[OPT pass
 7200ADD R0,R0,#320
 7210ADD R3,R3,#16
 7220]:FOR W%=0 TO 15:[OPT pass
 7230LDRB R1,[R3,#W%]:CMP R1,#0:STRNEB R1,[R0,#W%]
 7240]:NEXT:[OPT pass
 7250ADD R0,R0,#320
 7260ADD R3,R3,#16
 7270ADD R6,R6,#2
 7280CMP R6,#16
 7290BLT alloop
 7300.noalien
 7310ADD R9,R9,#1
 7320CMP R9,#NA%
 7330BLT alplotloop
 7340LDMFD R13!,{R0-R12,PC}
 7350.ckbulletstatstart:EQUD bulletstats
 7360.ckalstats:EQUD alienstats
 7370.ckscorepos:EQUD score
 7380.checkhit
 7390STMFD R13!,{R0-R12,R14}
 7400LDR R12,ckbulletstatstart
 7410LDR R8,ckscorepos
 7420MOV R10,#0
 7430.ckloop1
 7440LDMIA R12!,{R0,R1}
 7450CMP R0,#0
 7460BEQ cknobullet
 7470LDR R11,ckalstats
 7480ADD R0,R0,#1
 7490MOV R9,#0
 7500.ckloop2
 7510LDMIA R11!,{R2-R5}
 7520CMP R5,#0
 7530BEQ nohit
 7540CMP R0,R2:BLT nohit
 7550CMP R1,R3:BLT nohit
 7560ADD R2,R2,#16
 7570CMP R0,R2:BGT nohit
 7580ADD R3,R3,#16
 7590CMP R1,R3:BGT nohit
 7600SUB R2,R2,#16
 7610SUB R3,R3,#16
 7620LDR R7,[R8]
 7630BL rand
 7640LDR R4,value
 7650AND R4,R4,#%111111
 7660ADD R7,R7,R4
 7670STR R7,[R8]
 7680SUB R11,R11,#4
 7690SUB R12,R12,#8
 7700MOV R5,#0
 7710STMIA R11!,{R5}
 7720STMIA R12!,{R5,R6}
 7730MOV R4,#320
 7740MUL R4,R3,R4
 7750ADD R4,R4,R2
 7760MOV R3,R0
 7770MOV R0,R4
 7780BL expinit
 7790MOV R0,R3
 7800.nohit
 7810ADD R9,R9,#1
 7820CMP R9,#NA%
 7830BLT ckloop2
 7840.cknobullet
 7850ADD R10,R10,#1
 7860CMP R10,#NB%
 7870BLT ckloop1
 7880LDMFD R13!,{R0-R12,PC}
 7890.rand
 7900STMFD R13!,{R0-R12,R14}
 7910LDR R0,rdata
 7920LDR R1,eor
 7930LDR R2,and
 7940]:FOR Q%=0 TO 7:[OPT pass
 7950ANDS R4,R0,R2
 7960EORNE R0,R0,R1
 7970ADD R0,R5,R0,ROR #31
 7980]:NEXT:[OPT pass
 7990STR R0,rdata
 8000MOV R5,R0,LSR #24
 8010STR R5,value
 8020LDMFD R13!,{R0-R12,PC}
 8030ALIGN
 8040.rdata
 8050EQUD TIME
 8060.eor
 8070EQUB 0
 8080EQUB &76
 8090EQUB &B5
 8100EQUB &53
 8110.and
 8120EQUB %10000000
 8130EQUB 0
 8140EQUB 0
 8150EQUB 0
 8160.value
 8170EQUD 0
 8180ALIGN
 8190.malienstats:EQUD alienstats
 8200.malienposes:EQUD alienposes
 8210.malienpathdata:EQUD alienpathdata
 8220.mcounter:EQUD 400
 8230.movealiens
 8240STMFD R13!,{R0-R12,R14}
 8250LDR R0,mcounter
 8260ADD R0,R0,#1
 8270CMP R0,#512
 8280MOVEQ R0,#0
 8290STR R0,mcounter
 8300BEQ newset
 8310LDR R12,malienstats
 8320MOV R11,#0
 8330LDR R10,malienpathdata
 8340MOV R6,#1
 8350.domove
 8360LDMIA R12,{R0-R3}
 8370ADD R2,R2,#1
 8380CMP R2,#512
 8390MOVEQ R3,#0
 8400CMP R3,#0
 8410BEQ mnoalien
 8420SUB R4,R3,#1
 8430MOV R9,#512
 8440MUL R4,R9,R4
 8450ADD R7,R4,R10
 8460LDRB R8,[R7]
 8470LDRB R9,[R7,R2]
 8480CMP R9,#1:SUBEQ R0,R0,R6,LSL R8:ADDEQ R1,R1,R6,LSL R8
 8490CMP R9,#2:ADDEQ R1,R1,R6,LSL R8
 8500CMP R9,#3:ADDEQ R0,R0,R6,LSL R8:ADDEQ R1,R1,R6,LSL R8
 8510CMP R9,#4:SUBEQ R0,R0,R6,LSL R8
 8520CMP R9,#6:ADDEQ R0,R0,R6,LSL R8
 8530CMP R9,#7:SUBEQ R0,R0,R6,LSL R8:SUBEQ R1,R1,R6,LSL R8
 8540CMP R9,#8:SUBEQ R1,R1,R6,LSL R8
 8550CMP R9,#9:ADDEQ R0,R0,R6,LSL R8:SUBEQ R1,R1,R6,LSL R8
 8560.mnoalien
 8570STMIA R12!,{R0-R3}
 8580ADD R11,R11,#1
 8590CMP R11,#NA%
 8600BLT domove
 8610LDMIA R13!,{R0-R12,PC}
 8620.mmappos:EQUD mappos
 8630.newset
 8640LDR R12,mmappos:LDR R12,[R12]
 8650CMP R12,#200
 8660LDMLTFD R13!,{R0-R12,PC}
 8670LDR R12,malienstats
 8680LDR R11,malienposes
 8690LDR R8,malienpathdata
 8700MOV R1,#0
 8710MOV R9,#0
 8720.again
 8730BL rand
 8740LDR R3,value
 8750AND R3,R3,#%1111
 8760CMP R3,#A%
 8770BGT again
 8780CMP R3,#0
 8790BEQ again
 8800MOV R4,#512
 8810SUB R5,R3,#1
 8820MUL R4,R5,R4
 8830LDRB R2,[R8,R4]
 8840MOV R10,#32
 8850MOV R10,R10,LSR R2
 8860MOV R2,#0
 8870.newloop
 8880LDR R0,[R11,R9,LSL #2]
 8890STMIA R12!,{R0-R3}
 8900ADD R2,R2,R10
 8910ADD R9,R9,#1
 8920CMP R9,#NA%
 8930BLT newloop
 8940LDMFD R13!,{R0-R12,PC}
 8950.ckplayerx:EQUD playerx
 8960.ckplayery:EQUD playery
 8970.ckendreason:EQUD endreason
 8980.ckdie
 8990STMFD R13!,{R0-R12,R14}
 9000LDR R12,malienstats
 9010LDR R11,ckplayerx:LDR R11,[R11]
 9020LDR R10,ckplayery:LDR R10,[R10]
 9030LDR R7,ckendreason
 9040ADD R10,R10,#16:ADD R11,R11,#1
 9050MOV R8,#2
 9060MOV R9,#0
 9070.pckloop1
 9080LDMIA R12!,{R0-R3}
 9090CMP R3,#0:BEQ nodie1
 9100CMP R11,R0:BLT nodie1
 9110CMP R10,R1:BLT nodie1
 9120ADD R1,R1,#16:CMP R10,R1:BGT nodie1
 9130ADD R0,R0,#16:CMP R11,R0:BGT nodie1
 9140STR R8,[R7]
 9150LDMFD R13!,{R0-R12,PC}
 9160.nodie1
 9170ADD R9,R9,#1:CMP R9,#NA%
 9180BLT pckloop1
 9190LDR R12,malienstats:MOV R9,#0
 9200ADD R11,R11,#14
 9210.pckloop2
 9220LDMIA R12!,{R0-R3}:CMP R3,#0:BEQ nodie2
 9230CMP R11,R0:BLT nodie2:CMP R10,R1:BLT nodie2
 9240ADD R1,R1,#16:CMP R10,R1:BGT nodie2
 9250ADD R0,R0,#16:CMP R11,R0:BGT nodie2
 9260STR R8,[R7]
 9270LDMFD R13!,{R0-R12,PC}
 9280.nodie2
 9290ADD R9,R9,#1:CMP R9,#NA%:BLT pckloop2
 9300LDR R12,malienstats:MOV R9,#0
 9310LDR R11,ckplayerx:LDR R11,[R11]:ADD R11,R11,#8
 9320LDR R10,ckplayery:LDR R10,[R10]:ADD R10,R10,#1
 9330.pckloop3
 9340LDMIA R12!,{R0-R3}:CMP R3,#0:BEQ nodie3
 9350CMP R11,R0:BLT nodie3:CMP R10,R1:BLT nodie3
 9360ADD R1,R1,#16:CMP R10,R1:BGT nodie3
 9370ADD R0,R0,#16:CMP R11,R0:BGT nodie3
 9380STR R8,[R7]
 9390LDMFD R13!,{R0-R12,PC}
 9400.nodie3
 9410ADD R9,R9,#1:CMP R9,#NA%:BLT pckloop3
 9420LDMFD R13!,{R0-R12,PC}
 9430]:NEXT
 9440ENDPROC
 9450DEFPROCgame
 9460REPEAT
 9470PROChighscores
 9480lives=4:level=1:NB%=5:A%=8
 9490IF pink%=TRUE THEN OSCLI("PackLoad <Xacretan$Dir>.Blocks "+STR$~blocks):pink%=FALSE
 9500PROCassemble
 9510OSCLI("Load <Xacretan$Dir>.Maps.1 "+STR$~map)
 9520OFF
 9530REPEAT
 9540FOR X%=0 TO 319 STEP 4
 9550FOR Y%=0 TO 16*320 STEP 320
 9560N%=X%+Y%
 9570topdata!N%=0
 9580NEXT,
 9590FOR X%=0 TO lives-1
 9600N%=0
 9610P%=X%*20
 9620FOR Q%=0 TO 16
 9630FOR B%=0 TO 15 STEP 4
 9640topdata!P%=playerdata!N%
 9650N%+=4
 9660P%+=4
 9670NEXT
 9680P%+=(320-16)
 9690NEXT
 9700NEXT
 9710FOR X%=0 TO NB%-1
 9720P%=640*3+X%*7+256
 9730FOR Q%=0 TO 7*2 STEP 2
 9740topdata!P%=(bulletdata!Q%) AND &FFFF0000
 9750P%+=320
 9760NEXT,
 9770*FX 112,1
 9780PROCstopmusic
 9790CLS
 9800*FX 113,1
 9810COLOUR 60
 9820PRINTTAB(15,10)"Zone ";level
 9830COLOUR 3 TINT 255
 9840PRINTTAB(11,17)" ";lives;" Ship";:IF lives<>1 THEN PRINT"s";
 9850PRINT" left."
 9860COLOUR 43
 9870PRINTTAB(7,25)"Press any key to play."
 9880OFF
 9890N=GET
 9900!playerx=(320/2)-8
 9910!playery=200
 9920!screenstart=screen2start
 9930CALL scroll:CALL player:CALL dotop:CALL doscore
 9940FOR X%=0 TO 80*1024 STEP 640
 9950?scblock=%10
 9960scblock!1=X%
 9970WAIT:SYS "OS_Word",22,scblock
 9980NEXT
 9990?scblock=%10
10000!screenstart=screen1start
10010CALL scroll:CALL player:CALL dotop:CALL doscore
10020?scblock=%10
10030scblock!1=0
10040SYS "OS_Word",22,scblock
10050CALL go
10060*FX 15,0
10070IF !endreason=1 THEN PROCnewlevel:GOTO 10150
10080T=TIME:REPEATUNTILTIME>T+100
10090!endreason=0
10100lives-=1
10110!mappos=!mappos+60
10120FOR X%=alienstats TO alienstats+4*4*NA% STEP 4
10130!X%=0
10140NEXT
10150*FX 112,2
10160CLS
10170*FX 112,1
10180FOR X%=0 TO 80*1024 STEP 640
10190?scblock=%10
10200scblock!1=X%
10210WAIT:SYS "OS_Word",22,scblock
10220NEXT
10230UNTIL lives=0 OR level=6
10240CLS
10250*FX 113,1
10260COLOUR 3 TINT 255
10270PRINTTAB(13,10)"Game Over."
10280COLOUR 30
10290PRINTTAB(10,12)"You scored ";!score
10300IF !score>highscores(10) THEN GOTO 10330
10310V=INKEY(10000)
10320UNTIL FALSE
10330X%=0:e%=FALSE
10340REPEAT
10350X%+=1
10360IF !score>highscores(X%) THEN e%=TRUE
10370UNTIL e%=TRUE
10380COLOUR 28 TINT 255
10390PRINTTAB(12,16)"Well done."
10400COLOUR 27 TINT 255
10410PRINTTAB(5,18)"Your score is ranked no. ";X%
10420COLOUR 47
10430INPUTTAB(0,22)"Please enter your name ";N$
10440IF LEN(N$)<1 THEN UNTIL FALSE
10450IF X%<10 THEN
10460FOR Y%=9 TO X% STEP -1
10470highname$(Y%+1)=highname$(Y%)
10480highscores(Y%+1)=highscores(Y%)
10490NEXT
10500ENDIF
10510highscores(X%)=!score
10520highname$(X%)=LEFT$(N$,14)
10530IF write%=FALSE THEN UNTILFALSE
10540 F%=OPENOUT("<Xacretan$Dir>.HighScores")
10550 IF F%<>0 THEN
10560 FOR X%=1 TO 10
10570 PRINT#F%,highname$(X%),highscores(X%)
10580 NEXT
10590 CLOSE#F%
10600 ENDIF
10610UNTIL FALSE
10620END
10630DEFPROCerror
10640*FX 15,1
10650*ALPHABET LATIN1
10660PROCstopmusic
10670VOICES 1
10680VOICE 1,"WaveSynth-Beep"
10690MODE 0
10700*RMKILL ZapMod
10710*RMKILL Explo1
10720*RMKILL Explo2
10730*RMKILL Wow
10740*RMKILL PackIt
10750IF ERR<>17 THEN
10760REPORT:PRINT" at line ";ERL:PRINT "Error number ";ERR
10770ENDIF
10780END
10790DATA 0
10800DATA 0
10810DATA 0
10820DATA 0
10830DATA 0
10840DATA 0
10850DATA 0
10860DATA 0
10870DATA 0
10880DATA 0
10890DATA 0
10900DATA 0
10910DATA 3
10920DATA 25
10930DATA 0
10940DATA &80000021
10950DATA &8000000A
10960DATA 7
10970DATA &80000032
10980DATA &8000004B
10990DATA &80000046
11000DATA 0
11010DATA 27
11020DATA 100
11030DATA 19
11040DATA 40
11050DATA 0
11060DATA 0
11070DATA 0
11080DATA 0
11090DATA 0
11100DATA 0
11110DATA 20
11120DATA 13
11130DATA 17
11140DATA 11
11150DATA 15
11160DATA&80000018
11170DATA&80000019
11180DATA&80000025
11190DEFPROCassemfade
11200X=RND(256)-1
11210Y=RND(256)-1
11220DIM fade 1024
11230FOR pass=0 TO 2 STEP 2
11240P%=fade
11250[OPT pass
11260STMFD R13!,{R14}
11270MOV R8,#1024
11280SUB R8,R8,#1
11290MOV R0,#1024
11300MOV R9,#5
11310MOV R10,#Y
11320MOV R11,#X
11330.fadeloop
11340MOV R1,#256
11350ADD R10,R10,#1
11360AND R10,R10,R8
11370.fadeloop2
11380MUL R12,R10,R9
11390ADD R10,R12,#1
11400AND R10,R10,R8
11410MUL R12,R11,R9
11420ADD R11,R12,#1
11430AND R11,R11,#255
11440LDR R2,get
11450ADD R2,R2,R10,LSL #8
11460ADD R2,R2,R11
11470LDR R3,put
11480ADD R3,R3,R10,LSL #8
11490ADD R3,R3,R11
11500LDR R12,length
11510CMP R10,R12
11520BGE fadeover
11530LDRB R12,[R2]
11540STRB R12,[R3]
11550.fadeover
11560SUB R1,R1,#1
11570TEQ R1,#0
11580BGT fadeloop2
11590SUB R0,R0,#1
11600TEQ R0,#0
11610BGT fadeloop
11620LDMFD R13!,{PC}
11630.get
11640EQUD screen2start
11650.put
11660EQUD screen1start
11670.length
11680EQUD 320
11690]
11700NEXT
11710ENDPROC
11720DEFPROCtitle
11730MODE 13
11740OFF
11750*FX 112,2
11760V=INKEY(100)
11770CLS
11780COLOUR 30
11790PRINTTAB(10,5)"BradSoft Software"
11800 COLOUR 27
11810PRINTTAB(1,7)"In association with Archimedes World"
11820COLOUR 7
11830PRINTTAB(14,10)"Presents"
11840CALL fade
11850V=INKEY(200)
11860COLOUR 15
11870PRINTTAB(11,15)"A game by Chris"
11880CALL fade
11890TIME=0
11900P1%=screen2start+160*320
11910P2%=titlebit
11920FOR X%=0 TO (320*51)-4 STEP 4
11930P1%!X%=P2%!X%
11940NEXT
11950V=INKEY(300-TIME)
11960CALL fade
11970V=INKEY(200)
11980*FX 112,1
11990GCOL 0 TINT 0
12000FOR X%=1024-(160*4+51*4) TO 1024-208 STEP 4
12010WAIT
12020RECTANGLE 0,X%,1280,204 TO 0,X%+4
12030LINE 0,X%,1280,X%
12040NEXT
12050ENDPROC
12060DEFPROChighscores
12070*FX 112,2
12080count%=0
12090IF firsttime=FALSE THEN CALL v_on:?Volume=0:playing=TRUE
12100REPEAT
12110CLS
12120P1%=screen2start
12130P2%=titlebit
12140FOR X%=0 TO (320*51)-1 STEP 4
12150P1%!X%=P2%!X%
12160NEXT
12170IF count%>0 THEN PROCcredits:GOTO 12110
12180COLOUR 43 TINT 255
12190PRINTTAB(8,8)"Best scores so far..."
12200IF firsttime=TRUE THEN CALL fade
12210FOR X%=1 TO 10
12220COLOUR 12 TINT(20*(10-X%))
12230PRINTTAB(8+((10-LEN(STR$(highscores(X%))))/2),X%+12);" ";highscores(X%)
12240COLOUR 48 TINT(20*(10-X%))
12250PRINTTAB(7+(X%=10),X%+12);" ";X%;")"
12260COLOUR 31 TINT(20*(10-X%))
12270PRINTTAB(17,X%+12);highname$(X%)
12280NEXT
12290X%=7*8*4
12300XS%=8*4*31-X%
12310Y%=1024-24*8*4
12320YS%=1024-12*8*4-Y%
12330FOR C%=3 TO 1 STEP -1
12340FOR T%=64*3 TO 0 STEP -64
12350GCOL C% TINT T%
12360RECTANGLE X%,Y%,XS%,YS%
12370X%-=4:Y%-=4
12380XS%+=8:YS%+=8
12390NEXT,
12400IF firsttime=TRUE THEN CALL fade
12410firsttime=FALSE
12420COLOUR 27 TINT 255
12430PRINTTAB(8,27)"Press any key to play."
12440CALL fade
12450*FX 15,1
12460REPEAT
12470count%+=1
12480FOR X%=0 TO 7
12490P%=aliens+16*16*left%(X%)
12500P2%=screen1start+8+320*(64+X%*24)
12510FOR V%=0 TO 15
12520FOR H%=0 TO 15 STEP 4
12530P2%!(H%+V%*320)=!P%
12540P%+=4
12550NEXT,
12560P%=aliens+16*16*right%(X%)
12570P2%=screen1start+(320-32)+320*(64+X%*24)
12580FOR V%=0 TO 15:FOR H%=0 TO 15 STEP 4
12590P2%!(H%+V%*320)=!P%
12600P%+=4
12610NEXT,,
12620V=INKEY(50)
12630IF V=ASC("Q") THEN V=0:*AUDIO OFF
12640IF V=ASC("S") THEN V=0:*AUDIO ON
12650FOR X%=7 TO 1 STEP -1
12660left%(X%)=left%(X%-1)
12670right%(X%)=right%(X%-1)
12680NEXT
12690left%(0)=RND(12)-1
12700right%(0)=RND(12)-1
12710UNTIL V>0 OR count%>20
12720UNTIL V>0
12730ENDPROC
12740DEFPROCnewlevel
12750S%=!score
12760NB%=NB%-1
12770IF level<3 THEN A%+=2
12780PROCassemble
12790!score=S%
12800!dispscore=S%
12810IF NB%<1 THEN NB%=1
12820COLOUR 3 TINT 255
12830PRINTTAB(15,12)"Well done."
12840COLOUR 63 TINT 255
12850PRINTTAB(13,15)"Zone Complete."
12860COLOUR 48 TINT 255
12870PRINTTAB(11,20)"Bonus = ";level;mul$;lives;mul$;"50"
12880VOICE voice%,"Wow"
12890SOUND voice%,-15,&1D00,0
12900!score=!score+level*lives*50
12910IF level=3 AND lives<4 THEN lives+=1
12920IF level=4 THEN CALL pinkcode:pink%=TRUE
12930REPEAT
12940WAIT:CALL doscore
12950UNTIL !dispscore=!score
12960level+=1
12970IF level>5 THEN GOTO 12990
12980OSCLI("Load <Xacretan$Dir>.Maps."+STR$(level)+" "+STR$~map)
12990*FX 15,1
13000V=INKEY(200)
13010IF level=6 THEN PROCendgame
13020ENDPROC
13030DEFPROCarm3detect
13040LOCAL ERROR:ON ERROR LOCAL arm3%=FALSE:ENDPROC
13050arm3%=TRUE:*CACHE ON
13060ENDPROC
13070DEFPROCwrite_detect
13080LOCAL ERROR:ON ERROR LOCAL write%=FALSE:ENDPROC
13090write%=TRUE
13100*SAVE "<Xacretan$Dir>.writetest" 8000 +1
13110*DEL. <Xacretan$Dir>.writetest
13120ENDPROC
13130DEFPROCcredits
13140COLOUR 15 TINT 255
13150PRINTTAB(6,8)"Coded by ";:COLOUR 3
13160PRINT"Chris Bradburne."
13170COLOUR 58:PRINTTAB(2,11)"Graphics by"
13180COLOUR 14
13190PRINTTAB(4,13)"Dave Wilkinson"
13200PRINTTAB(16,14)"and"
13210PRINTTAB(18,15)"Chris Bradburne"
13220COLOUR 54
13230PRINTTAB(4,17)"Featuring flowers by Andy."
13240COLOUR 44
13250PRINTTAB(6,20)"� 1992 Archimedes World."
13260COLOUR 23
13270PRINTTAB(2,23)"All sounds sampled with Armadeus."
13280COLOUR 11
13290PRINTTAB(4,27)"Music played with Coconizer."
13300CALL fade
13310K=INKEY(750)
13320count%=0
13330ENDPROC
13340DEFPROCendgame
13350!endreason=0
13360*FX 112,2
13370CLS
13380CALL fade
13390*FX 112,1
13400RESTORE 13910
13410FOR R%=1 TO 18
13420CLS
13430FOR D%=1 TO 3
13440READ pos%,p$
13450COLOUR RND(63) TINT 255
13460PRINTTAB(20-(LEN(p$)/2),pos%)p$
13470NEXT
13480FOR AB%=1 TO 5
13490C%=RND(63)
13500GCOL 3,C% TINT 255
13510X%=RND(300)-150+640:Y%=-5
13520OX1%=X%
13530OY1%=Y%
13540YS%=RND(15)+30
13550XS%=RND(10)-5
13560REPEAT
13570OX2%=OX1%:OY2%=OY1%
13580OX1%=X%:OY1%=Y%
13590X%+=XS%
13600Y%+=YS%
13610MOVE X%,Y%
13620DRAW OX1%,OY1%
13630DRAW OX2%,OY2%
13640YS%-=1
13650WAIT
13660UNTIL YS%<-10
13670MOVE OX1%,OY1%
13680DRAW X%,Y%
13690VOICE voice%,"Explo2"
13700SOUND voice%,-15,&2000,0
13710FOR Q%=0 TO dots%
13720DSX%(Q%)=RND(26)-13
13730DSY%(Q%)=RND(25)-5
13740DX%(Q%)=X%
13750DY%(Q%)=Y%
13760POINT DX%(Q%),DY%(Q%)
13770NEXT
13780FOR T%=255 TO 0 STEP -8
13790GCOL 3,C% TINT T%
13800WAIT
13810FOR Q%=0 TO dots%
13820POINT DX%(Q%),DY%(Q%)
13830DX%(Q%)+=DSX%(Q%)
13840DY%(Q%)+=DSY%(Q%)
13850DSY%(Q%)-=1
13860POINT DX%(Q%),DY%(Q%)
13870NEXT,
13880FOR Q%=0 TO dots%:POINT DX%(Q%),DY%(Q%):NEXT
13890NEXT,
13900lives=0:ENDPROC
13910DATA 0,""
13920DATA 0,""
13930DATA 0,""
13940DATA 0,""
13950DATA 15,"Well Done."
13960DATA 0,""
13970DATA 10,"You have finished"
13980DATA 15,"Xacretan."
13990DATA 0,""
14000DATA 10,"You are one of the few,"
14010DATA 15,"The elite, the dedicated,"
14020DATA 20,"the unbeatable."
14030DATA 15,"But you have suffered."
14040DATA 0,""
14050DATA 0,""
14060DATA 13,"Suffered for the cause"
14070DATA 17,"you thought worthy."
14080DATA 0,""
14090DATA 10,"And was it all worth it?"
14100DATA 0,""
14110DATA 0,""
14120DATA 15,"Probably not!"
14130DATA 0,""
14140DATA 0,""
14150DATA 0,""
14160DATA 0,""
14170DATA 0,""
14180DATA 10,"And now a word from"
14190DATA 15,"the programmer himself,"
14200DATA 20,"Chris Bradburne,"
14210DATA 10,"I'd just like to thank"
14220DATA 15,"all those who made this"
14230DATA 20,"game possible."
14240DATA 15,"And Archimedes World"
14250DATA 18,"for publishing it."
14260DATA 0,""
14270DATA 13,"And I would like to"
14280DATA 17,"thank YOU for playing it."
14290DATA 0,""
14300DATA 0,""
14310DATA 0,""
14320DATA 0,""
14330DATA 15,"You have now finally reached"
14340DATA 0,""
14350DATA 0,""
14360DATA 15,"THE END."
14370DATA 0,""
14380DATA 0,""
14390DATA 15,"THE END."
14400DATA 0,""
14410DATA 0,""
14420DATA 0,""
14430DATA 0,""
14440DATA 0,""
14450DEFPROCMusAsm
14460DIM mcode 128000,L%-1
14470FOR p=%1000 TO %1010 STEP 2
14480P%=mcode
14490PROC_Music
14500NEXT p
14510end%=Track+pointer
14520ENDPROC
14530DEF PROC_Music
14540IF p=%1000 THEN
14550maxinst=32
14560DIM nam$(2002),byt%(2002),loc$(2002),sort%(maxinst),sort$(maxinst)
14570sort$(2)="�"
14580top%=0
14590f%=OPENIN "<Xacretan$Dir>.location"
14600WHILE NOT EOF#f%
14610top%+=1:nam$(top%)=GET$#f%:INPUT#f%,byt%(top%):loc$(top%)=GET$#f%
14620ENDWHILE
14630CLOSE#f%
14640a$="<Xacretan$Dir>.XacTune"
14650f%=OPENIN a$
14660b1=BGET#f%:b2=BGET#f%:b3=BGET#f%:b4=BGET#f%:b5=BGET#f%:b6=BGET#f%
14670CLOSE#f%
14680IF b4=0 AND b5>0 THEN Vocs=b6 ELSE Vocs=b1     :
14690PROC_MusicASM
14700A%=mcode:B%=Track-1:CALL Track                  :
14710A%=ufin:B%=L%-1   :CALL Track                  :
14720ENDPROC
14730ELSE
14740PROC_MusicASM
14750ENDIF
14760OSCLI "PackLoad "+a$+" "+STR$~Track
14770FOR i%=0 TO 9*12-1          :
14780n%=i% +4*12                 :
14790f%=440*(2^((n%-46)/12))     :
14800Ftable!(i%*4)=(f%/(1000000/us))*65536 :
14810NEXT i%
14820pointer=Track!32                                 :
14830FOR i%=1 TO Track?21
14840Track!(i%*32+ 0)=pointer
14850len=Track!(i%*32+ 4)
14860vol=Track!(i%*32+ 8)
14870rat=Track!(i%*32+12)
14880ren=Track!(i%*32+16)
14890na$=$(Track+i%*32+20)
14900FOR j%=1 TO top%:IF na$<>nam$(j%) THEN NEXT:INPUT'" -> "na$:$(Track+i%*32+20)=na$:PRINT STRING$(30,CHR$8);:GOTO 14900
14910IF len>byt%(j%) THEN len=byt%(j%):Track!(i%*32+4)=len
14920sort$(i%)=loc$(j%):sort%(i%)=i%
14930pointer+=len+gap
14940IF Track+pointer>=L% ERROR ERL,"More than "+STR$pointer+" bytes sample data: Assembler limit reached"
14950NEXT i%
14960REPEAT
14970flag%=0
14980FOR i%=1 TO Track?21-1
14990IF sort$(i%)>sort$(i%+1) THEN SWAP sort$(i%),sort$(i%+1):SWAP sort%(i%),sort%(i%+1):flag%=1
15000NEXT i%
15010UNTIL flag%=0
15020FOR i%=1 TO Track?21
15030s=sort%(i%)
15040na$=$(Track+s*32+20):adr=Track+Track!(s*32):len=Track!(s*32+4)
15050fu$="<Xacretan$Dir>.Inst"+sort$(i%)+"."+na$
15060f=OPENIN fu$
15070IF f THEN
15080$(adr+len)=STRING$(gap-1,CHR$0)
15090SYS "OS_GBPB",4,f,adr,len:CLOSE#f
15100ELSE
15110disc=(ASCsort$(i%)-65) DIV 2 +1
15120GOTO 15060
15130ENDIF
15140NEXT i%
15150ENDPROC
15160DEF PROC_MusicASM
15170gap=16
15180us =48
15190[OPT p
15200.v_on
15210mov   r12,r14
15220mov   r0,#2                
15230mov   r1,#208              
15240mov   r2,#us               
15250mov   r3,#0                
15260mov   r4,#0                
15270swi   "Sound_Configure"
15280mov   r0,#Vocs             
15290mov   r1,#0                
15300mov   r2,#0
15310mov   r3,#0
15320mov   r4,#0
15330swi   "Sound_Configure"
15340adr   r0,VoiceBase
15350mov   r1,#0                     
15360swi   "Sound_InstallVoice"
15370str   r1,Vslot                  
15380adr   r2,Vstereos-4*4*(Vocs=8)
15390mov   r0,#1
15400.vimage
15410ldr   r1,[r2],#4
15420swi   "Sound_Stereo"            
15430add   r0,r0,#1
15440cmp   r0,#Vocs
15450bLs   vimage
15460mov   r0,#Vocs
15470.vset
15480adr   r1,Vname
15490swi   "Sound_AttachNamedVoice"  
15500mov   r1,#&170
15510mov   r2,#50               
15520mov   r3,#255
15530swi   "Sound_Control"      
15540subS  r0,r0,#1
15550bNe   vset
15560bl    vabsolut
15570bl    v_reset
15580mov   r0,#16               
15590FNadr (1,vinter)
15600adr   r2,Head              
15610swi   "OS_Claim"
15620mov   r0,#14               
15630mov   r1,#4                
15640swi   "OS_Byte"
15650mov   r0,#Vocs             
15660mov   r1,#0
15670mov   r2,#0
15680mov   r3,#0
15690mov   r4,#0
15700swi   "Sound_Configure"    
15710mov   r0,#0                
15720swi   "Sound_Volume"
15730mov   r0,r0,lsl#1          
15740rsb   r0,r0,#254
15750str   r0,Volume            
15760mov   pc,r12
15770.vabsolut
15780FNadr (10,Track)
15790ldr   r1,[r10,#24]         
15800add   r1,r10,r1
15810str   r1,[r10,#24]
15820ldr   r2,[r10,#28]         
15830add   r2,r10,r2
15840str   r2,[r10,#28]
15850ldrB  r1,[r10,#21]         
15860.vall
15870ldr   r2,[r10,r1,lsl#5]    
15880add   r2,r10,r2
15890str   r2,[r10,r1,lsl#5]    
15900subS  r1,r1,#1
15910bNe   vall
15920ldr   r0,[pc]              
15930str   r0,vabsolut          
15940mov   pc,r14
15950.v_reset
15960FNadr (10,Track)
15970mov   r1,#64
15980str   r1,Registers+0       
15990ldr   r2,[r10,#24]
16000str   r2,Registers+8       
16010ldrB  r2,[r2]
16020ldr   r3,[r10,#28]
16030add   r3,r3,r2,lsl#10-(Vocs=8)
16040str   r3,Registers+4       
16050adr   r11,Head
16060mov   r1,#0:mov r2,#0:mov r3,#0:mov r4,#0
16070mov   r5,#0:mov r6,#0:mov r7,#0:mov r8,#0
16080mov   r0,#Vocs
16090.vall
16100stmia r11!,{r1-r8}         
16110subS  r0,r0,#1
16120bNe   vall
16130mov   pc,r14
16140.v_off
16150mov   r0,#13               
16160mov   r1,#4                
16170swi   "OS_Byte"
16180mov   r0,#16               
16190adr   r1,vinter
16200adr   r2,Head
16210swi   "OS_Release"
16220ldr   r1,Vslot
16230swi   "Sound_RemoveVoice"  
16240mov   r0,#1
16250mov   r1,#1
16260swi   "Sound_AttachVoice"  
16270mov   pc,r14
16280.Vstereos
16290dcd -50      
16300dcd -20
16310dcd  20
16320dcd  50
16330dcd-126      
16340dcd -90
16350dcd -54
16360dcd -18
16370dcd  18
16380dcd  54
16390dcd  90
16400dcd 126
16410.Vslot dcd 0
16420.VoiceBase
16430b     vfill                
16440b     vfill                
16450b     vfill                
16460ldmfd r13!,{pc}            
16470ldmfd r13!,{pc}            
16480ldmfd r13!,{pc}            
16490ldmfd r13!,{pc}            
16500dcd   Vname-VoiceBase      
16510.Vname dcb "Cocoplex"+CHR$0
16520align
16530.vfill
16540teqP  pc,#(1<<27) OR %10   
16550adr   r8,Head              
16560add   r8,r8,r7,lsl#5       
16570ldmIa r8,{r1-r6}           
16580ldr   r0,Volume
16590add   r5,r5,r0             
16600.vfilloop
16610]:FOR n=1 TO gap:[OPT p     
16620ldrB  r0,[r3,r1,lsr#16]    
16630subS  r0,r0,r5             
16640movMi r0,#0
16650strB  r0,[r12],r11         
16660add   r1,r1,r2             
16670]:NEXT:[OPT p
16680cmp   r4,r1,lsr#16         
16690movLs r1,r6                
16700cmp   r1,#0                
16710movEq r2,#0                
16720cmp   r12,r10              
16730bLo   vfilloop             
16740stmIa r8,{r1-r2}           
16750mov   r0,#%00001000        
16760teqP  pc,#(0<<27) OR %10   
16770ldmfd r13!,{pc}
16780.Head
16790dcd 0                      
16800dcd 0                      
16810dcd 0                      
16820dcd 0                      
16830dcd 0                      
16840dcd 0                      
16850dcd 0                      
16860dcd 0                      
16870dcb STRING$(3*32-4*32*(Vocs=8),CHR$0)    
16880.Volume       dcd 0         
16890.veffects
16900ldr   r4,[r12,#4]          
16910cmp   r4,#0                
16920movEq pc,r14
16930ldr   r3,[r12,#24]         
16940mov   r10,r14              
16950andS  r2,r3,#&ff           
16960blNe  v_volup
16970andS  r2,r3,#&ff <<8       
16980movNe r2,r2,lsr#8
16990blNe  v_voldown
17000andS  r2,r3,#&ff <<16      
17010movNe r2,r2,lsr#16
17020blNe  v_arcup
17030andS  r2,r3,#&ff <<24      
17040movNe r2,r2,lsr#24
17050blNe  v_arcdown
17060mov   r14,r10              
17070ldr   r1,[r12,#28]         
17080andS  r2,r1,#&ff           
17090movEq pc,r14               
17100and   r3,r1,#&ff00         
17110ldr   r3,[pc,r3,lsr#6]     
17120add   pc,pc,r3
17130dcd   v_arpeggio-vof1      
17140.vof1
17150dcd   v_slideup-vof1       
17160dcd   v_slidedown-vof1     
17170dcd   v_volup-vof1         
17180dcd   v_voldown-vof1       
17190dcd   v_arcup-vof1         
17200dcd   v_arcdown-vof1       
17210.v_arpeggio
17220mov   r1,r1,lsr#24         
17230cmp   r0,#1                
17240cmpNe r0,#4                
17250addEq r1,r1,r2,lsr#4       
17260cmp   r0,#2                
17270cmpNe r0,#5                
17280andEq r2,r2,#&0f           
17290addEq r1,r1,r2
17300ldr   r1,[r11,r1,lsl#2]    
17310str   r1,[r12,#4]          
17320mov   pc,r14
17330.v_slideup
17340add   r1,r4,r2,lsl#6       
17350cmp   r1,#&18800           
17360strLt r1,[r12,#4]
17370mov   pc,r14
17380.v_slidedown
17390sub   r1,r4,r2,lsl#6       
17400cmp   r1,#&3340            
17410strGt r1,[r12,#4]
17420mov   pc,r14
17430.v_volup
17440cmp   r0,#1                
17450movNe pc,r14
17460ldr   r1,[r12,#16]         
17470subS  r1,r1,r2
17480strPl r1,[r12,#16]         
17490mov   pc,r14
17500.v_voldown
17510cmp   r0,#1
17520movNe pc,r14
17530ldr   r1,[r12,#16]
17540add   r1,r1,r2
17550cmp   r1,#255
17560strLs r1,[r12,#16]         
17570mov   pc,r14
17580.v_arcup
17590addS  r1,r4,r2,lsl#4       
17600strPl r1,[r12,#4]
17610mov   pc,r14
17620.v_arcdown
17630subS  r1,r4,r2,lsl#4       
17640strPl r1,[r12,#4]
17650mov   pc,r14
17660.fx1
17670adr   r12,Head+0*32
17680b     fx4+4
17690.fx2
17700adr   r12,Head+1*32
17710b     fx4+4
17720.fx3
17730adr   r12,Head+2*32
17740b     fx4+4
17750.fx4
17760adr   r12,Head+3*32
17770mov   r0,#1
17780strB  r0,[r12,#30]         
17790adr   r10,Track
17800adr   r11,Ftable
17810b     vrule
17820.vinter
17830stmfd r13!,{r1-r11}        
17840adr   r11,Ftable           
17850ldmDb r11,{r0,r1}          
17860add   r0,r0,#1             
17870cmp   r0,r1                
17880movHs r0,#0                
17890str   r0,[r11,#-8]         
17900bHs   vplay                
17910bl    veffects             
17920add   r12,r12,#32
17930bl    veffects             
17940add   r12,r12,#32
17950bl    veffects             
17960add   r12,r12,#32
17970bl    veffects             
17980]
17990IF Vocs=8 THEN
18000[OPT p
18010add   r12,r12,#32
18020bl    veffects             
18030add   r12,r12,#32
18040bl    veffects             
18050add   r12,r12,#32
18060bl    veffects             
18070add   r12,r12,#32
18080bl    veffects             
18090]
18100ENDIF
18110[OPT p
18120ldmfd r13!,{r1-r11,pc}     
18130.vplay
18140adr   r6,Registers
18150ldmIa r6,{r7-r9}           
18160adr   r10,Track
18170bl    vchannel             
18180add   r12,r12,#32
18190bl    vchannel             
18200add   r12,r12,#32
18210bl    vchannel             
18220add   r12,r12,#32
18230bl    vchannel             
18240]
18250IF Vocs=8 THEN
18260[OPT p
18270add   r12,r12,#32
18280bl    vchannel             
18290add   r12,r12,#32
18300bl    vchannel             
18310add   r12,r12,#32
18320bl    vchannel             
18330add   r12,r12,#32
18340bl    vchannel             
18350]
18360ENDIF
18370[OPT p
18380subS  r7,r7,#1             
18390stmNeIa r6,{r7-r8}         
18400ldmNeFd r13!,{r1-r11,pc}   
18410mov   r7,#64               
18420ldrB  r0,[r9,#1]!          
18430cmp   r0,#&ff              
18440ldrEq r9,[r10,#24]         
18450ldrEqB 0,[r9]              
18460ldr   r8,[r10,#28]         
18470add   r8,r8,r0,lsl#10-(Vocs=8)    
18480stmIa r6,{r7-r9}
18490ldmfd r13!,{r1-r11,pc}     
18500.vchannel
18510ldr   r1,[r8],#4           
18520ldrB  r2,[r12,#30]         
18530cmp   r2,#0
18540bEq   vrule                
18550ldr   r2,[r12,#4]
18560cmp   r2,#0                
18570strEqB 2,[r12,#30]         
18580mov   pc,r14
18590.vrule
18600movS  r0,r1,lsr#24         
18610bEq   vcomms               
18620strB  r0,[r12,#31]         
18630ldr   r0,[r11,r0,lsl#2]    
18640str   r0,[r12,#4]          
18650andS  r0,r1,#&ff <<16      
18660ldrEq r0,[r12,#20]         
18670strEq r0,[r12,#00]         
18680bEq   vcomms
18690add   r2,r10,r0,lsr#11     
18700ldmIa r2,{r0,r2-r5}        
18710str   r0,[r12,# 8]         
18720str   r3,[r12,#16]         
18730movS  r0,r4,lsl#16         
18740addNe r2,r4,r5             
18750movNe r4,r0                
18760str   r0,[r12,# 0]         
18770str   r2,[r12,#12]         
18780str   r4,[r12,#20]         
18790.vcomms
18800and   r0,r1,#&0f <<8       
18810and   r2,r1,#&ff           
18820ldr   r3,[pc,r0,lsr#6]     
18830add   pc,pc,r3
18840dcd   vef-vof2             
18850.vof2
18860dcd   vef-vof2             
18870dcd   vef-vof2             
18880dcd   vef-vof2             
18890dcd   vef-vof2             
18900dcd   vef-vof2             
18910dcd   vef-vof2             
18920dcd   vstereopos-vof2      
18930dcd   vautovolup-vof2      
18940dcd   vautovoldown-vof2    
18950dcd   vautoarcup-vof2      
18960dcd   vautoarcdown-vof2    
18970dcd   vsetvol-vof2         
18980dcd   vpattbreak-vof2      
18990dcd   vnop-vof2            
19000dcd   vsetspeed-vof2       
19010.vef                        
19020strB  r2,[r12,#28]         
19030mov   r0,r0,lsr#8
19040strB  r0,[r12,#29]         
19050.vnop
19060mov   pc,r14               
19070.vstereopos
19080adr   r0,Head              
19090sub   r0,r12,r0
19100mov   r0,r0,lsr#3          
19110cmp   r0,#7*4
19120movEq r1,   #&60           
19130addNe r1,r0,#&64           
19140mov   r1,r1,lsl#24
19150orr   r1,r1,r2
19160mov   r2,#&3400000
19170str   r1,[r2]
19180]
19190IF Vocs=4 THEN
19200[OPT p
19210cmp   r0,#3*4              
19220subEq r1,r1,#&10<<24
19230addNe r1,r1,#&10<<24       
19240str   r1,[r2]
19250]
19260ENDIF
19270[OPT p
19280mov   pc,r14
19290.vautovolup
19300strB  r2,[r12,#24]
19310mov   pc,r14
19320.vautovoldown
19330strB  r2,[r12,#25]
19340mov   pc,r14
19350.vautoarcup
19360strB  r2,[r12,#26]
19370mov   pc,r14
19380.vautoarcdown
19390strB  r2,[r12,#27]
19400mov   pc,r14
19410.vsetvol
19420str   r2,[r12,#16]         
19430mov   pc,r14
19440.vpattbreak
19450mov   r7,#1                
19460mov   pc,r14
19470.vsetspeed
19480str   r2,Vspeed            
19490mov   pc,r14
19500.Registers    dcd 64        
19510dcd 00        
19520dcd 00        
19530.Vcount       dcd 0         
19540.Vspeed       dcd 6         
19550.Ftable       ]:P%+=9*12*4:[OPT p
19560.Track
19570mov   r2,#0
19580.uall
19590str   r2,[r0],#4
19600cmp   r0,r1
19610bLo   uall
19620mov   pc,r14
19630.ufin
19640]:ENDPROC
196502er ADR (only forwards)
19660DEF FNadr(r%,dest%)
19670dis%=dest%-P%-8
19680IF p=%1000 THEN
19690d0%=0 :d1%=0
19700ELSE
19710IF dis% AND &f THEN
19720d0%=dis% AND &000FF
19730d1%=dis% AND &FFF00
19740ELSE
19750d0%=dis% AND &00FFF
19760d1%=dis% AND &FF000
19770ENDIF
19780ENDIF
19790[OPT p
19800add r%,pc,#d1%
19810add r%,r%,#d0%
19820]=""
19830DEFPROCstopmusic
19840IF playing<>TRUE THEN ENDPROC
19850FOR X=0 TO 255 STEP 2
19860?Volume=X
19870WAIT
19880NEXT
19890CALL v_off
19900playing=FALSE
19910IF arm3%=TRUE THEN
19920VOICES 4
19930VOICE 1,"ZapMod"
19940VOICE 2,"Explo1"
19950VOICE 3,"Explo2"
19960ELSE
19970VOICES 1
19980ENDIF
19990ENDPROC
20000DEFPROCpink
20010 pink%=FALSE
20020 DIM pinkcode 512
20030FOR pass=0 TO 2 STEP 2
20040 P%=pinkcode
20050 [OPT pass
20060 LDR R10,pinkblockstart
20070 MOV R11,#0
20080 .pinkloop
20090 LDRB R0,[R10]
20100 CMP R0,#67
20110 BLE pinkover
20120 CMP R0,#72
20130 BGE pinkover
20140 ADD R0,R0,#188-68
20150 STRB R0,[R10]
20160 .pinkover
20170 ADD R10,R10,#1
20180 ADD R11,R11,#1
20190 CMP R11,#40*32*32
20200 BNE pinkloop
20210 MOV PC,R14
20220 .pinkblockstart:EQUD blocks
20230 ]:NEXT
20240 ENDPROC

�>!RunImage
�arm3detect
�write_detect
(� � �error
2� arm3%=� � Ƞ 4 � Ƞ 1
<#� arm3%=� � voice%=4 � voice%=1
F�
P4� vvvv If the game crashed remove this line vvvv
Z(� arm3%=� � ș "OS_UpdateMEMC",64,64
d0�   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
n�
x#� arm3%=� � dots%=80 � dots%=25
��MusAsm
�playing=�:?Volume=0:� v_on
�firsttime=�
�
�setup
��assemfade
�	�pink
�
�title
�	�game
��
���setup
�mul$=� 32+� 215+� 32
�� DSX%(dots%),DSY%(dots%)
�� DX%(dots%),DY%(dots%)
� left%(10),right%(10)
� scblock 8
lives=4
"� arm3%=� � E%=8 � E%=2
,
NA%=10
6	NB%=5
@level=1
Jspeed=2
Tbspeed=4
^#� block 8:!block=148:block!4=-1
hA%=8:B%=39
r� explodata 2048
|8�("PackLoad <Xacretan$Dir>.Explosions "+�~explodata)
�� explostats 8*E%
�� X%=0 � (8*E%)-1 � 8
�explostats!X%=0
�explostats!(X%+4)=0
��
�� playerdata 320
�� bulletdata 32
�� scoredata 4096
�� topdata 10*1024
�P%=topdata
�� Q%=0 � 31
�	� by%
�� X%=0 � 319
?P%=by%
	P%+=1
�,
&%� 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
09� 0,1,2,3,44,45,46,47,208,209,210,211,252,253,254,255
:4�("PackLoad <Xacretan$Dir>.NoData "+�~scoredata)
D1�("Load <Xacretan$Dir>.Player "+�~playerdata)
N1�("Load <Xacretan$Dir>.Bullet "+�~bulletdata)
X� blocks 32*32*(B%+1)
b� aliens 16*16*12
l� alienstats 4*4*(NA%+1)
v� alienposes NA%*4
�� alienpathdata 12*512
�� X%=0 � 11
�H�("Load <Xacretan$Dir>.Paths."+�(X%+1)+" "+�~(X%*512+alienpathdata))
��
�� X%=0 � NA%-1
�$alienposes!(X%*4)=(X%+X%+0.5)*16
��
�R%=�(A%)
�.� X%=alienstats � alienstats+4*4*NA% � 4*4
�
X%!0=0
�
X%!4=0
�
X%!8=0
�X%!12=0
�
� scores 4*B%+1
� X%=0 � B%*4 � 4
 � Y%
*scores!X%=Y%
4�
>& F%=�("<Xacretan$Dir>.HighScores")
H� highscores(10)
R� highname$(10)
\� X%=1 � 10
f%�#F%,highname$(X%),highscores(X%)
p �
z	 �#F%
�1�("PackLoad <Xacretan$Dir>.Blocks "+�~blocks)
�1�("PackLoad <Xacretan$Dir>.Aliens "+�~aliens)
�� map 1024*3
�#� X%=map � map+(3*1024-1):?X%=0
��
�� code 1024*5
�� titlebit 16*1024
�3�("PackLoad <Xacretan$Dir>.TitBit "+�~titlebit)
�,� 15:ș"OS_ReadVduVariables",block,block
�screen1start=!block
�%screen2start=screen1start+80*1024
�V%=�(-�)
�� X%=0 � 10
left%(X%)=�(12)-1
right%(X%)=�(12)-1
�
$�
.��assemble
8� pass=0 � 2 � 2
BP%=code
L
[OPT pass
V.go
`STMFD R13!,{R0-R12,R14}
jLDR R11,screenstart
tADD R12,R11,#80*1024
~
.mainloop
�STR R11,screenstart
�MOV R0,#19
�SWI "OS_Byte"
�MOV R0,#113
�
MOV R1,#2
�SWI "OS_Byte"
�BL groundhitcheck
�BL checkhit
�BL ckdie
�BL movealiens
�
BL scroll
�BL bullets

BL alplot


BL player
BL expplot
BL dotop
(BL doscore
2STR R12,screenstart
<MOV R0,#19
FSWI "OS_Byte"
PMOV R0,#113
Z
MOV R1,#1
dSWI "OS_Byte"
nBL groundhitcheck
xBL checkhit
�BL ckdie
�BL movealiens
�
BL scroll
�BL bullets
�
BL alplot
�
BL player
�BL expplot
�BL dotop
�BL doscore
�LDR R5,mappos
�CMP R5,#10
�MOVLT R5,#1
�STRLT R5,endreason
LDR R5,endreason

CMP R5,#2
BEQ dieroutine
"
CMP R5,#0
,BNE end
6SWI "OS_ReadEscapeState"
@BCC mainloop
J.end
TLDMFD R13!,{R0-R12,PC}
^.damp:EQUD &FFF1
h.dpit:EQUD &1280
r.dieroutine
|
MOV R0,#2
�LDR R1,damp
�LDR R2,dpit
�MOV R3,#&FE
�SWI "Sound_Control"
�MOV R10,#0
�LDR R9,playerx
�LDR R8,playery
�MOV R7,#320
�MUL R8,R7,R8
�ADD R0,R8,R9
�BL expinit
�ADD R0,R0,#16
�BL expinit
ADD R0,R0,#17*320
BL expinit
SUB R0,R0,#16
&BL expinit
0SUB R0,R0,#8*320
:ADD R0,R0,#8
D
MOV R6,R0
N.dieloop
XSTR R11,screenstart
bMOV R0,#19
lSWI "OS_Byte"
vMOV R0,#113
�
MOV R1,#2
�SWI "OS_Byte"
�BL groundhitcheck
�BL checkhit
�BL movealiens
�
BL scroll
�BL bullets
�
BL alplot
�BL expplot
�BL dotop
�BL doscore
�STR R12,screenstart
�MOV R0,#19
SWI "OS_Byte"
MOV R0,#113

MOV R1,#1
 SWI "OS_Byte"
*BL groundhitcheck
4BL checkhit
>BL movealiens
H
BL scroll
RBL bullets
\
BL alplot
fBL expplot
pBL dotop
zBL doscore
�ADD R10,R10,#1
�CMP R10,#8
��Q R0,R6:BLEQ expinit
�CMP R10,#64
�BLT dieloop
�LDMFD R13!,{R0-R12,PC}
�.endreason:EQUD 0
�.topstart:EQUD topdata
�
.dotop
�STMFD R13!,{R0-R12,R14}
�LDR R12,screenstart
�]
�� arm3%=� �
	
[OPT pass
	LDR R11,topstart
	MOV R10,#0
	$.toploop
	.]:� Q%=0 � 31:[OPT pass
	8)LDMIA R11!,{R0-R9}:STMIA R12!,{R0-R9}
	B]:�
	L�
	V
[OPT pass
	`ADR R11,blankdata
	jLDMIA R11!,{R0-R9}
	tMOV R10,#0
	~.toploop
	�]:� Q%=0 � 31:[OPT pass
	�STMIA R12!,{R0-R9}
	�]:�
	��
	�
[OPT pass
	�ADD R10,R10,#32
	�CMP R10,#256
	�BLT toploop
	�LDMFD R13!,{R0-R12,PC}
	�".screenstart:EQUD screen1start
	�T.blankdata:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
	�.mapstart:EQUD map
.blockstart:EQUD blocks

.mappos:EQUD (3*1024)-80
.offset:EQUD 0
.scroll
(STMFD R13!,{R0-R12,R14}
2LDR R11,mapstart
<LDR R10,mappos
FADD R11,R11,R10
P
MOV R8,#0
Z
MOV R9,#0
dLDR R12,screenstart
nLDR R0,offset
xADD R12,R12,R0
�
.plotloop
�LDRB R10,[R11]
�MOV R5,#1024
�MUL R10,R5,R10
�LDR R5,blockstart
�ADD R10,R10,R5
�]:� Q%=1 � 32:[OPT pass
�LDMIA R10!,{R0-R7}
�STMIA R12,{R0-R7}
�ADD R12,R12,#320
�]:�:[OPT pass
�SUB R12,R12,#320*32
�ADD R12,R12,#32
ADD R11,R11,#1
ADD R9,R9,#1
CMP R9,#10
"BLT plotloop
,
MOV R9,#0
6ADD R12,R12,#320*31
@ADD R8,R8,#1
J
CMP R8,#7
TBLT plotloop
^LDR R8,off2
hMOV R4,#0:STR R4,botcount
r.botbit
|
MOV R9,#0
�LDRB R10,[R11]
�MOV R5,#1024
�MUL R10,R5,R10
�LDR R5,blockstart
�ADD R10,R10,R5
�STMFD R13!,{R12}
�.botloop
�LDMIA R10!,{R0-R7}
�STMIA R12,{R0-R7}
�ADD R12,R12,#320
�ADD R9,R9,#1
�
CMP R9,R8
�BLT botloop
LDMFD R13!,{R12}
ADD R12,R12,#32
ADD R11,R11,#1
&LDR R0,botcount
0ADD R0,R0,#1
:STR R0,botcount
DCMP R0,#10
NBNE botbit
XLDR R0,offset
bLDR R1,mappos
lLDR R2,off2
vADD R0,R0,#320
�SUB R2,R2,#1
�CMP R0,#10240
��Q R0,#0
�
�Q R2,#32
�SUBEQ R1,R1,#10
�STR R1,mappos
�STR R0,offset
�STR R2,off2
�LDMFD R13!,{R0-R12,PC}
�.off2:EQUD 32
�.botcount:EQUD 0
�.doscore
�STMFD R13!,{R0-R12,R14}

/LDR R12,screenstart:ADD R12,R12,#160-(6*10)

0]:� arm3%=� � [OPT pass:ADD R12,R12,#8*320:]


[OPT pass

 !LDR R0,dispscore:LDR R3,score

*CMP R0,R3:ADDLT R0,R0,#2

4
CMP R0,R3

>STR R3,dispscore

HSTRLT R0,dispscore

RADR R1,scorestring

\
MOV R2,#8

fSWI "OS_ConvertCardinal3"

p
CMP R2,#0

z
BEQ over1

�
MOV R3,#0

�
MOV R0,#0

�ADR R1,printstring

�.scoreloop1

�STRB R0,[R1,R3]

�ADD R3,R3,#1

�
CMP R3,R2

�BLT scoreloop1

�
.over1

�
MOV R4,#0

�ADR R2,scorestring

�.scoreloop2

�LDRB R0,[R2,R4]
SUB R0,R0,#48
STRB R0,[R1,R3]
ADD R4,R4,#1
$ADD R3,R3,#1
.
CMP R3,#8
8BLT scoreloop2
BADR R10,printstring
L
MOV R9,#2
V.scoreloop3
`MOV R11,R12
jLDRB R8,[R10,R9]
tLDR R7,scoredatastart
~MOV R0,#20*20
�MUL R0,R8,R0
�ADD R7,R7,R0
�]:� X=0 � 19:[OPT pass
�LDMIA R7!,{R0-R4}
�STMIA R11,{R0-R4}
�ADD R11,R11,#320
�]:�:[OPT pass
�ADD R12,R12,#20
�ADD R9,R9,#1
�
CMP R9,#8
�BNE scoreloop3
�LDMFD R13!,{R0-R12,PC}
.scorestring

EQUD 0:EQUD 0:EQUD 0
.printstring
EQUD 0:EQUD 0:EQUD 0
(.dispscore:EQUD 0
2.score:EQUD 0
<.scoredatastart
FEQUD scoredata
P.scraddr:EQUD screenstart
Z .bulletstart:EQUD bulletdata
d&.bulletstatsstart:EQUD bulletstats
n.bullets
xSTMFD R13!,{R0-R12,R14}
�LDR R12,scraddr
�LDR R12,[R12]
�LDR R11,bulletstart
�LDR R10,bulletstatsstart
�
MOV R9,#0
�
.bloop
�LDR R0,[R10]
�
CMP R0,#0
�BEQ nobullet
�LDR R1,[R10,#4]
�MOV R2,#320
�MUL R2,R1,R2
�ADD R2,R2,R0
ADD R2,R2,R12
!LDRB R3,[R11,#0]:STRB R3,[R2]
3LDRB R3,[R11,#1]:STRB R3,[R2,#1]:ADD R2,R2,#320
"!LDRB R3,[R11,#2]:STRB R3,[R2]
,3LDRB R3,[R11,#3]:STRB R3,[R2,#1]:ADD R2,R2,#320
6!LDRB R3,[R11,#4]:STRB R3,[R2]
@3LDRB R3,[R11,#5]:STRB R3,[R2,#1]:ADD R2,R2,#320
J!LDRB R3,[R11,#6]:STRB R3,[R2]
T3LDRB R3,[R11,#7]:STRB R3,[R2,#1]:ADD R2,R2,#320
^!LDRB R3,[R11,#8]:STRB R3,[R2]
h3LDRB R3,[R11,#9]:STRB R3,[R2,#1]:ADD R2,R2,#320
r"LDRB R3,[R11,#10]:STRB R3,[R2]
|4LDRB R3,[R11,#11]:STRB R3,[R2,#1]:ADD R2,R2,#320
�"LDRB R3,[R11,#12]:STRB R3,[R2]
�4LDRB R3,[R11,#13]:STRB R3,[R2,#1]:ADD R2,R2,#320
�"LDRB R3,[R11,#14]:STRB R3,[R2]
�4LDRB R3,[R11,#15]:STRB R3,[R2,#1]:ADD R2,R2,#320
�"LDRB R3,[R11,#16]:STRB R3,[R2]
�%LDRB R3,[R11,#17]:STRB R3,[R2,#1]
�%SUB R1,R1,#bspeed:STR R1,[R10,#4]
�CMP R1,#24
�MOVLT R0,#0
�STR R0,[R10]
�
.nobullet
�ADD R10,R10,#8
�ADD R9,R9,#1
CMP R9,#NB%

BLT bloop
LDMFD R13!,{R0-R12,PC}
&.bulletstats
0EQUD 0:EQUD 0:
:<EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:
D$.playerdatastart:EQUD playerdata
N.player
XSTMFD R13!,{R0-R12,R14}
bLDR R12,scraddr
lLDR R12,[R12]
vLDR R11,playerdatastart
�LDR R0,playerx
�LDR R1,playery
�MOV R2,#320
�MUL R2,R1,R2
�ADD R2,R2,R0
�ADD R2,R2,R12
�MOV R10,#0
�
MOV R9,#0
�.pplotloop
�LDRB R3,[R11,R10]
�
CMP R3,#0
�STRNEB R3,[R2,R9]
�ADD R10,R10,#1
ADD R9,R9,#1
CMP R9,#16
BLT pplotloop
 
MOV R9,#0
*ADD R2,R2,#320
4CMP R10,#16*17
>BLT pplotloop
HLDR R12,playerx
RLDR R11,playery
\MOV R0,#121
fCMP R12,#8
pBLE noleft
zMOV R1,#97 � &80
�SWI "OS_Byte"
�CMP R1,#&FF
�SUBEQ R12,R12,#speed
�.noleft
�CMP R12,#296
�BGE noright
�"MOV R1,#66 � &80:SWI "OS_Byte"
�CMP R1,#&FF
�ADDEQ R12,R12,#speed
�.noright
�STR R12,playerx
�CMP R11,#222
�BGE nodown
#MOV R1,#104 � &80:SWI "OS_Byte"
CMP R1,#&FF
ADDEQ R11,R11,#speed
$.nodown
.CMP R11,#80
8BLE noup
B"MOV R1,#79 � &80:SWI "OS_Byte"
LCMP R1,#&FF
VSUBEQ R11,R11,#speed
`	.noup
jSTR R11,playery
t"MOV R1,#73 � &80:SWI "OS_Byte"
~LDR R5,return
�
CMP R5,R1
�BEQ nofire
�STR R1,return
�CMP R1,#&FF
�BNE nofire
�ADR R10,bulletstats
�
MOV R9,#0
�
.findloop
�LDR R0,[R10,R9]
�
CMP R0,#0
�BEQ foundfire
�ADD R9,R9,#8
CMP R9,#8*5

BLT findloop
B nofire
.foundfire
(ADD R12,R12,#7
2STR R12,[R10,R9]
<ADD R9,R9,#4
FSTR R11,[R10,R9]
P
MOV R0,#1
Z]:� arm3%=� �
d
[OPT pass
nADR R1,bstring
x SWI "Sound_AttachNamedVoice"
�]
��
�
[OPT pass
�LDR R1,bamp
�LDR R2,bpit
�MOV R3,#&FE
�SWI "Sound_Control"
�.nofire
�LDMFD R13!,{R0-R12,PC}
�.playerx:EQUD (320/2)-8
�.playery:EQUD 200
�.bamp:EQUD &FFF1
�.bpit:EQUD &1128
$.bstring:EQUS "ZapMod"+� 0:ALIGN
.return:EQUD 0
.offpos:EQUD off2
".gmapdata:EQUD map
,.gmappos:EQUD mappos
6.gscorestats:EQUD scores
@.gscorepos:EQUD score
J.groundhitcheck
TSTMFD R13!,{R0-R12,R14}
^ADR R11,bulletstats
hLDR R12,scraddr
rLDR R12,[R12]
|MOV R10,#0
�LDR R9,offpos
�LDR R9,[R9]
�MOV R8,#32
�SUB R9,R8,R9
�LDR R8,gmappos:LDR R8,[R8]
�LDR R7,gmapdata
�LDR R6,gscorestats
�LDR R5,gscorepos
�.bcheckgroundloop
�LDR R0,[R11]
�
CMP R0,#0
�BEQ gc_nobullet
�MOV R0,R0,LSR #5
LDR R2,[R11,#4]
ADD R2,R2,R9
MOV R1,R2,LSR #5
&MOV R2,#10:MUL R2,R1,R2
0ADD R2,R2,R0
:ADD R2,R2,R7
DADD R2,R2,R8
NLDRB R0,[R2]
XLDR R1,[R6,R0,LSL #2]
b
CMP R1,#0
lBEQ gc_nobullet
vLDR R4,[R5]
�LDR R3,anddata
�� R3,R3,R1
�ADD R4,R4,R3
�STR R4,[R5]
�MOV R1,R1,LSR #31
�ADD R1,R1,#1
�STRB R1,[R2]
�
MOV R0,#0
�STR R0,[R11]
�STMFD R13!,{R0-R3}
�]:� arm3%=� �
�
[OPT pass
�
MOV R0,#1
ADR R1,gstring
 SWI "Sound_AttachNamedVoice"
]
 �
*
[OPT pass
4
MOV R0,#2
>]
H�
R
[OPT pass
\LDR R1,gamp
fLDR R2,gpit
pMOV R3,#&FE
zSWI "Sound_Control"
�LDMFD R13!,{R0-R3}
�.gc_nobullet
�ADD R10,R10,#1
�ADD R11,R11,#8
�CMP R10,#NB%
�BLT bcheckgroundloop
�LDMFD R13!,{R0-R12,PC}
�.dotdata:EQUD -1
�.gamp:EQUD &FFF1
�.gpit:EQUD &1380
�'.gstring:EQUS "Explo1":EQUD 0:ALIGN
�.anddata:EQUD &FFFF
� .expdatastart:EQUD explodata
".expstatsstart:EQUD explostats
.expno:EQUD 0
.expinit
$STMFD R13!,{R0-R12,R14}
.LDR R12,expno
8MOV R11,R12,LSL #3
BLDR R10,expstatsstart
LSTR R0,[R10,R11]
V
MOV R1,#0
`ADD R11,R11,#4
jSTR R1,[R10,R11]
tADD R12,R12,#1
~CMP R12,#E%
�
�Q R12,#0
�STR R12,expno
�]:� arm3%=� �
�
[OPT pass
�
MOV R0,#1
�ADR R1,estring
� SWI "Sound_AttachNamedVoice"
�]
��
�
[OPT pass
�
MOV R0,#3
�]
�


[OPT pass
LDR R1,examp
LDR R2,expit
(MOV R3,#&FE
2SWI "Sound_Control"
<LDMFD R13!,{R0-R12,PC}
F
.expcount
P
EQUD 0
Z.expit:EQUD &1200
d.examp:EQUD &FFF1
n'.estring:EQUS "Explo2":EQUD 0:ALIGN
x.exscraddr:EQUD screenstart
�.expplot
�STMFD R13!,{R0-R12,R14}
�LDR R12,expstatsstart
� LDR R7,exscraddr:LDR R7,[R7]
�MOV R11,#0
�LDR R8,expdatastart
�LDR R10,expcount
�ADD R10,R10,#1
�� R10,R10,#3
�STR R10,expcount
�.exploop
�LDR R0,[R12,R11]
�ADD R11,R11,#4
LDR R1,[R12,R11]
.CMP R10,#0:ADDEQ R1,R1,#1:STR R1,[R12,R11]

CMP R1,#7
"BGT noexplo
,ADD R0,R0,R7
6MOV R9,#16*16
@MUL R9,R1,R9
JADD R9,R9,R8
T
MOV R5,#0
^.eploop
h]:� W%=0 � 15:[OPT pass
r1LDRB R2,[R9,#W%]:CMP R2,#0:STRNEB R2,[R0,#W%]
|]:�:[OPT pass
�ADD R9,R9,#16
�ADD R0,R0,#320
�ADD R5,R5,#1
�CMP R5,#16
�BLT eploop
�.noexplo
�ADD R11,R11,#4
�CMP R11,#E%*8
�BLT exploop
�LDMFD R13!,{R0-R12,PC}
�.alpscstart
�EQUD screenstart
�.aldatastart
EQUD aliens
.alstats:EQUD alienstats
.alplot
&STMFD R13!,{R0-R12,R14}
0LDR R12,alpscstart
:LDR R12,[R12]
DLDR R11,aldatastart
NLDR R10,alstats
X
MOV R9,#0
bMOV R8,#320
lMOV R7,#16*16
v.alplotloop
�LDMIA R10!,{R0-R3}
�CMP R3,#0:BEQ noalien
�CMP R0,#0:BLT noalien
�CMP R0,#320-16:BGE noalien
�CMP R1,#0:BLT noalien
�CMP R1,#256-16:BGE noalien
�SUB R3,R3,#1
�MUL R3,R7,R3:ADD R3,R3,R11
�MUL R1,R8,R1
�ADD R0,R0,R1
�ADD R0,R0,R12
�
MOV R6,#0
�.alloop
]:� W%=0 � 15:[OPT pass
1LDRB R1,[R3,#W%]:CMP R1,#0:STRNEB R1,[R0,#W%]
]:�:[OPT pass
 ADD R0,R0,#320
*ADD R3,R3,#16
4]:� W%=0 � 15:[OPT pass
>1LDRB R1,[R3,#W%]:CMP R1,#0:STRNEB R1,[R0,#W%]
H]:�:[OPT pass
RADD R0,R0,#320
\ADD R3,R3,#16
fADD R6,R6,#2
pCMP R6,#16
zBLT alloop
�.noalien
�ADD R9,R9,#1
�CMP R9,#NA%
�BLT alplotloop
�LDMFD R13!,{R0-R12,PC}
�'.ckbulletstatstart:EQUD bulletstats
�.ckalstats:EQUD alienstats
�.ckscorepos:EQUD score
�
.checkhit
�STMFD R13!,{R0-R12,R14}
�LDR R12,ckbulletstatstart
�LDR R8,ckscorepos
�MOV R10,#0
.ckloop1
LDMIA R12!,{R0,R1}

CMP R0,#0
$BEQ cknobullet
.LDR R11,ckalstats
8ADD R0,R0,#1
B
MOV R9,#0
L.ckloop2
VLDMIA R11!,{R2-R5}
`
CMP R5,#0
j
BEQ nohit
tCMP R0,R2:BLT nohit
~CMP R1,R3:BLT nohit
�ADD R2,R2,#16
�CMP R0,R2:BGT nohit
�ADD R3,R3,#16
�CMP R1,R3:BGT nohit
�SUB R2,R2,#16
�SUB R3,R3,#16
�LDR R7,[R8]
�BL rand
�LDR R4,value
�� R4,R4,#%111111
�ADD R7,R7,R4
�STR R7,[R8]
SUB R11,R11,#4

SUB R12,R12,#8

MOV R5,#0
STMIA R11!,{R5}
(STMIA R12!,{R5,R6}
2MOV R4,#320
<MUL R4,R3,R4
FADD R4,R4,R2
P
MOV R3,R0
Z
MOV R0,R4
dBL expinit
n
MOV R0,R3
x
.nohit
�ADD R9,R9,#1
�CMP R9,#NA%
�BLT ckloop2
�.cknobullet
�ADD R10,R10,#1
�CMP R10,#NB%
�BLT ckloop1
�LDMFD R13!,{R0-R12,PC}
�	.rand
�STMFD R13!,{R0-R12,R14}
�LDR R0,rdata
�LDR R1,eor
�LDR R2,and
]:� Q%=0 � 7:[OPT pass
�S R4,R0,R2
�NE R0,R0,R1
"ADD R0,R5,R0,ROR #31
,]:�:[OPT pass
6STR R0,rdata
@MOV R5,R0,LSR #24
JSTR R5,value
TLDMFD R13!,{R0-R12,PC}
^	ALIGN
h
.rdata
r
EQUD �
|.eor
�
EQUB 0
�EQUB &76
�EQUB &B5
�EQUB &53
�.and
�EQUB %10000000
�
EQUB 0
�
EQUB 0
�
EQUB 0
�
.value
�
EQUD 0
�	ALIGN
� .malienstats:EQUD alienstats
  .malienposes:EQUD alienposes
 &.malienpathdata:EQUD alienpathdata
 .mcounter:EQUD 400
 &.movealiens
 0STMFD R13!,{R0-R12,R14}
 :LDR R0,mcounter
 DADD R0,R0,#1
 NCMP R0,#512
 X�Q R0,#0
 bSTR R0,mcounter
 lBEQ newset
 vLDR R12,malienstats
 �MOV R11,#0
 �LDR R10,malienpathdata
 �
MOV R6,#1
 �.domove
 �LDMIA R12,{R0-R3}
 �ADD R2,R2,#1
 �CMP R2,#512
 ��Q R3,#0
 �
CMP R3,#0
 �BEQ mnoalien
 �SUB R4,R3,#1
 �MOV R9,#512
 �MUL R4,R9,R4
!ADD R7,R4,R10
!LDRB R8,[R7]
!LDRB R9,[R7,R2]
! 9CMP R9,#1:SUBEQ R0,R0,R6,LSL R8:ADDEQ R1,R1,R6,LSL R8
!*#CMP R9,#2:ADDEQ R1,R1,R6,LSL R8
!49CMP R9,#3:ADDEQ R0,R0,R6,LSL R8:ADDEQ R1,R1,R6,LSL R8
!>#CMP R9,#4:SUBEQ R0,R0,R6,LSL R8
!H#CMP R9,#6:ADDEQ R0,R0,R6,LSL R8
!R9CMP R9,#7:SUBEQ R0,R0,R6,LSL R8:SUBEQ R1,R1,R6,LSL R8
!\#CMP R9,#8:SUBEQ R1,R1,R6,LSL R8
!f9CMP R9,#9:ADDEQ R0,R0,R6,LSL R8:SUBEQ R1,R1,R6,LSL R8
!p
.mnoalien
!zSTMIA R12!,{R0-R3}
!�ADD R11,R11,#1
!�CMP R11,#NA%
!�BLT domove
!�LDMIA R13!,{R0-R12,PC}
!�.mmappos:EQUD mappos
!�.newset
!�!LDR R12,mmappos:LDR R12,[R12]
!�CMP R12,#200
!�LDMLTFD R13!,{R0-R12,PC}
!�LDR R12,malienstats
!�LDR R11,malienposes
!�LDR R8,malienpathdata
!�
MOV R1,#0
"
MOV R9,#0
"
.again
"BL rand
"$LDR R3,value
".� R3,R3,#%1111
"8CMP R3,#A%
"B
BGT again
"L
CMP R3,#0
"V
BEQ again
"`MOV R4,#512
"jSUB R5,R3,#1
"tMUL R4,R5,R4
"~LDRB R2,[R8,R4]
"�MOV R10,#32
"�MOV R10,R10,LSR R2
"�
MOV R2,#0
"�.newloop
"�LDR R0,[R11,R9,LSL #2]
"�STMIA R12!,{R0-R3}
"�ADD R2,R2,R10
"�ADD R9,R9,#1
"�CMP R9,#NA%
"�BLT newloop
"�LDMFD R13!,{R0-R12,PC}
"�.ckplayerx:EQUD playerx
#.ckplayery:EQUD playery
#
.ckendreason:EQUD endreason
#
.ckdie
#STMFD R13!,{R0-R12,R14}
#(LDR R12,malienstats
#2#LDR R11,ckplayerx:LDR R11,[R11]
#<#LDR R10,ckplayery:LDR R10,[R10]
#FLDR R7,ckendreason
#P"ADD R10,R10,#16:ADD R11,R11,#1
#Z
MOV R8,#2
#d
MOV R9,#0
#n
.pckloop1
#xLDMIA R12!,{R0-R3}
#�CMP R3,#0:BEQ nodie1
#�CMP R11,R0:BLT nodie1
#�CMP R10,R1:BLT nodie1
#�'ADD R1,R1,#16:CMP R10,R1:BGT nodie1
#�'ADD R0,R0,#16:CMP R11,R0:BGT nodie1
#�STR R8,[R7]
#�LDMFD R13!,{R0-R12,PC}
#�.nodie1
#�ADD R9,R9,#1:CMP R9,#NA%
#�BLT pckloop1
#�!LDR R12,malienstats:MOV R9,#0
#�ADD R11,R11,#14
#�
.pckloop2
$+LDMIA R12!,{R0-R3}:CMP R3,#0:BEQ nodie2
$/CMP R11,R0:BLT nodie2:CMP R10,R1:BLT nodie2
$'ADD R1,R1,#16:CMP R10,R1:BGT nodie2
$"'ADD R0,R0,#16:CMP R11,R0:BGT nodie2
$,STR R8,[R7]
$6LDMFD R13!,{R0-R12,PC}
$@.nodie2
$J)ADD R9,R9,#1:CMP R9,#NA%:BLT pckloop2
$T!LDR R12,malienstats:MOV R9,#0
$^2LDR R11,ckplayerx:LDR R11,[R11]:ADD R11,R11,#8
$h2LDR R10,ckplayery:LDR R10,[R10]:ADD R10,R10,#1
$r
.pckloop3
$|+LDMIA R12!,{R0-R3}:CMP R3,#0:BEQ nodie3
$�/CMP R11,R0:BLT nodie3:CMP R10,R1:BLT nodie3
$�'ADD R1,R1,#16:CMP R10,R1:BGT nodie3
$�'ADD R0,R0,#16:CMP R11,R0:BGT nodie3
$�STR R8,[R7]
$�LDMFD R13!,{R0-R12,PC}
$�.nodie3
$�)ADD R9,R9,#1:CMP R9,#NA%:BLT pckloop3
$�LDMFD R13!,{R0-R12,PC}
$�]:�
$��
$�
��game
$��
$��highscores
%lives=4:level=1:NB%=5:A%=8
%E� pink%=� � �("PackLoad <Xacretan$Dir>.Blocks "+�~blocks):pink%=�
%
�assemble
%&*�("Load <Xacretan$Dir>.Maps.1 "+�~map)
%0�
%:�
%D� X%=0 � 319 � 4
%N� Y%=0 � 16*320 � 320
%XN%=X%+Y%
%btopdata!N%=0
%l�,
%v� X%=0 � lives-1
%�N%=0
%�P%=X%*20
%�� Q%=0 � 16
%�� B%=0 � 15 � 4
%�topdata!P%=playerdata!N%
%�	N%+=4
%�	P%+=4
%��
%�P%+=(320-16)
%��
%��
%�� X%=0 � NB%-1
%�P%=640*3+X%*7+256
&� Q%=0 � 7*2 � 2
&*topdata!P%=(bulletdata!Q%) � &FFFF0000
&P%+=320
& �,
&*
*FX 112,1
&4�stopmusic
&>�
&H
*FX 113,1
&R� 60
&\�15,10)"Zone ";level
&f� 3 Ȝ 255
&p1�11,17)" ";lives;" Ship";:� lives<>1 � �"s";
&z
�" left."
&�� 43
&�#�7,25)"Press any key to play."
&��
&�N=�
&�!playerx=(320/2)-8
&�!playery=200
&�!screenstart=screen2start
&�'� scroll:� player:� dotop:� doscore
&�� X%=0 � 80*1024 � 640
&�?scblock=%10
&�scblock!1=X%
&�Ȗ:ș "OS_Word",22,scblock
&��
'?scblock=%10
'!screenstart=screen1start
''� scroll:� player:� dotop:� doscore
'$?scblock=%10
'.scblock!1=0
'8ș "OS_Word",22,scblock
'B� go
'L*FX 15,0
'V%� !endreason=1 � �newlevel:� �tfg
'`T=�:���>T+100
'j!endreason=0
'tlives-=1
'~!mappos=!mappos+60
'�,� X%=alienstats � alienstats+4*4*NA% � 4
'�	!X%=0
'��
'�
*FX 112,2
'��
'�
*FX 112,1
'�� X%=0 � 80*1024 � 640
'�?scblock=%10
'�scblock!1=X%
'�Ȗ:ș "OS_Word",22,scblock
'��
'�� lives=0 � level=6
(�
(

*FX 113,1
(� 3 Ȝ 255
(�13,10)"Game Over."
((� 30
(2 �10,12)"You scored ";!score
(<$� !score>highscores(10) � � �DZh
(FV=�(10000)
(P� �
(Z
X%=0:e%=�
(d�
(n	X%+=1
(x"� !score>highscores(X%) � e%=�
(�
� e%=�
(�� 28 Ȝ 255
(��12,16)"Well done."
(�� 27 Ȝ 255
(�)�5,18)"Your score is ranked no. ";X%
(�� 47
(�'�0,22)"Please enter your name ";N$
(�� �(N$)<1 � � �
(�
� X%<10 �
(�� Y%=9 � X% � -1
(�!highname$(Y%+1)=highname$(Y%)
(�#highscores(Y%+1)=highscores(Y%)
(��
)�
)highscores(X%)=!score
)highname$(X%)=�N$,14)
)"� write%=� � ��
),& F%=�("<Xacretan$Dir>.HighScores")
)6 � F%<>0 �
)@ � X%=1 � 10
)J& �#F%,highname$(X%),highscores(X%)
)T �
)^	 �#F%
)h �
)r� �
)|�
)���error
)�*FX 15,1
)�*ALPHABET LATIN1
)��stopmusic
)�Ƞ 1
)�ȡ 1,"WaveSynth-Beep"
)�� 0
)�*RMKILL ZapMod
)�*RMKILL Explo1
)�*RMKILL Explo2
)�*RMKILL Wow
)�*RMKILL PackIt
)�
� �<>17 �
*(�:�" at line ";�:� "Error number ";�
*�
*�
*&� 0
*0� 0
*:� 0
*D� 0
*N� 0
*X� 0
*b� 0
*l� 0
*v� 0
*�� 0
*�� 0
*�� 0
*�� 3
*�� 25
*�� 0
*�� &80000021
*�� &8000000A
*�� 7
*�� &80000032
*�� &8000004B
*�� &80000046
*�� 0
+� 27
+	� 100
+� 19
+ � 40
+*� 0
+4� 0
+>� 0
+H� 0
+R� 0
+\� 0
+f� 20
+p� 13
+z� 17
+�� 11
+�� 15
+��&80000018
+��&80000019
+��&80000025
+���assemfade
+�X=�(256)-1
+�Y=�(256)-1
+�� fade 1024
+�� pass=0 � 2 � 2
+�P%=fade
+�
[OPT pass
+�STMFD R13!,{R14}
,MOV R8,#1024
,SUB R8,R8,#1
,MOV R0,#1024
,$
MOV R9,#5
,.MOV R10,#Y
,8MOV R11,#X
,B
.fadeloop
,LMOV R1,#256
,VADD R10,R10,#1
,`� R10,R10,R8
,j.fadeloop2
,tMUL R12,R10,R9
,~ADD R10,R12,#1
,�� R10,R10,R8
,�MUL R12,R11,R9
,�ADD R11,R12,#1
,�� R11,R11,#255
,�LDR R2,get
,�ADD R2,R2,R10,LSL #8
,�ADD R2,R2,R11
,�LDR R3,put
,�ADD R3,R3,R10,LSL #8
,�ADD R3,R3,R11
,�LDR R12,length
,�CMP R10,R12
-BGE fadeover
-
LDRB R12,[R2]
-STRB R12,[R3]
-
.fadeover
-(SUB R1,R1,#1
-2
TEQ R1,#0
-<BGT fadeloop2
-FSUB R0,R0,#1
-P
TEQ R0,#0
-ZBGT fadeloop
-dLDMFD R13!,{PC}
-n.get
-xEQUD screen2start
-�.put
-�EQUD screen1start
-�.length
-�EQUD 320
-�]
-��
-��
-���title
-�� 13
-��
-�
*FX 112,2
-�V=�(100)
-��
.� 30
.�10,5)"BradSoft Software"
.	 � 27
."0�1,7)"In association with Archimedes World"
.,� 7
.6�14,10)"Presents"
.@
� fade
.JV=�(200)
.T� 15
.^�11,15)"A game by Chris"
.h
� fade
.r�=0
.|P1%=screen2start+160*320
.�P2%=titlebit
.�� X%=0 � (320*51)-4 � 4
.�P1%!X%=P2%!X%
.��
.�V=�(300-�)
.�
� fade
.�V=�(200)
.�
*FX 112,1
.�� 0 Ȝ 0
.�)� X%=1024-(160*4+51*4) � 1024-208 � 4
.�Ȗ
.�ȓ 0,X%,1280,204 � 0,X%+4
.�� 0,X%,1280,X%
/�
/�
/��highscores
/&
*FX 112,2
/0count%=0
/:.� firsttime=� � � v_on:?Volume=0:playing=�
/D�
/N�
/XP1%=screen2start
/bP2%=titlebit
/l� X%=0 � (320*51)-1 � 4
/vP1%!X%=P2%!X%
/��
/� � count%>0 � �credits:� �DNo
/�� 43 Ȝ 255
/�!�8,8)"Best scores so far..."
/�� firsttime=� � � fade
/�� X%=1 � 10
/�� 12 Ȝ(20*(10-X%))
/�?�8+((10-�(�(highscores(X%))))/2),X%+12);" ";highscores(X%)
/�� 48 Ȝ(20*(10-X%))
/�!�7+(X%=10),X%+12);" ";X%;")"
/�� 31 Ȝ(20*(10-X%))
/��17,X%+12);highname$(X%)
/��
0X%=7*8*4
0XS%=8*4*31-X%
0Y%=1024-24*8*4
0 YS%=1024-12*8*4-Y%
0*� C%=3 � 1 � -1
04� T%=64*3 � 0 � -64
0>� C% Ȝ T%
0Hȓ X%,Y%,XS%,YS%
0RX%-=4:Y%-=4
0\XS%+=8:YS%+=8
0f�,
0p� firsttime=� � � fade
0zfirsttime=�
0�� 27 Ȝ 255
0�#�8,27)"Press any key to play."
0�
� fade
0�*FX 15,1
0��
0�
count%+=1
0�� X%=0 � 7
0�P%=aliens+16*16*left%(X%)
0�%P2%=screen1start+8+320*(64+X%*24)
0�� V%=0 � 15
0�� H%=0 � 15 � 4
0�P2%!(H%+V%*320)=!P%
0�	P%+=4
1�,
1P%=aliens+16*16*right%(X%)
1,P2%=screen1start+(320-32)+320*(64+X%*24)
1$� V%=0 � 15:� H%=0 � 15 � 4
1.P2%!(H%+V%*320)=!P%
18	P%+=4
1B�,,
1LV=�(50)
1V� V=�("Q") � V=0:*AUDIO OFF
1`� V=�("S") � V=0:*AUDIO ON
1j� X%=7 � 1 � -1
1tleft%(X%)=left%(X%-1)
1~right%(X%)=right%(X%-1)
1��
1�left%(0)=�(12)-1
1�right%(0)=�(12)-1
1�� V>0 � count%>20
1�	� V>0
1��
1���newlevel
1�
S%=!score
1�
NB%=NB%-1
1�� level<3 � A%+=2
1�
�assemble
1�
!score=S%
2!dispscore=S%
2
� NB%<1 � NB%=1
2� 3 Ȝ 255
2�15,12)"Well done."
2(� 63 Ȝ 255
22�13,15)"Zone Complete."
2<� 48 Ȝ 255
2F1�11,20)"Bonus = ";level;mul$;lives;mul$;"50"
2Pȡ voice%,"Wow"
2Z� voice%,-15,&1D00,0
2d !score=!score+level*lives*50
2n"� level=3 � lives<4 � lives+=1
2x"� level=4 � � pinkcode:pink%=�
2��
2�Ȗ:� doscore
2�� !dispscore=!score
2�level+=1
2�� level>5 � � �t~r
2�5�("Load <Xacretan$Dir>.Maps."+�(level)+" "+�~map)
2�*FX 15,1
2�V=�(200)
2�� level=6 � �endgame
2��
2���arm3detect
2�� �:� � � arm3%=�:�
2�arm3%=�:*CACHE ON
3�
3��write_detect
3� �:� � � write%=�:�
3"write%=�
3,,*SAVE "<Xacretan$Dir>.writetest" 8000 +1
36"*DEL. <Xacretan$Dir>.writetest
3@�
3J
��credits
3T� 15 Ȝ 255
3^�6,8)"Coded by ";:� 3
3h�"Chris Bradburne."
3r� 58:�2,11)"Graphics by"
3|� 14
3��4,13)"Dave Wilkinson"
3��16,14)"and"
3��18,15)"Chris Bradburne"
3�� 54
3�'�4,17)"Featuring flowers by Andy."
3�� 44
3�%�6,20)"� 1992 Archimedes World."
3�� 23
3�.�2,23)"All sounds sampled with Armadeus."
3�� 11
3�)�4,27)"Music played with Coconizer."
3�
� fade
3�K=�(750)
4count%=0
4�
4
��endgame
4&!endreason=0
40
*FX 112,2
4:�
4D
� fade
4N
*FX 112,1
4X
� �DVv
4b� R%=1 � 18
4l�
4v� D%=1 � 3
4�
� pos%,p$
4�� �(63) Ȝ 255
4��20-(�(p$)/2),pos%)p$
4��
4�� AB%=1 � 5
4�C%=�(63)
4�� 3,C% Ȝ 255
4�X%=�(300)-150+640:Y%=-5
4�OX1%=X%
4�OY1%=Y%
4�YS%=�(15)+30
4�XS%=�(10)-5
4��
5OX2%=OX1%:OY2%=OY1%
5OX1%=X%:OY1%=Y%
5X%+=XS%
5 Y%+=YS%
5*� X%,Y%
54� OX1%,OY1%
5>� OX2%,OY2%
5H
YS%-=1
5RȖ
5\
� YS%<-10
5f� OX1%,OY1%
5p� X%,Y%
5zȡ voice%,"Explo2"
5�� voice%,-15,&2000,0
5�� Q%=0 � dots%
5�DSX%(Q%)=�(26)-13
5�DSY%(Q%)=�(25)-5
5�DX%(Q%)=X%
5�DY%(Q%)=Y%
5�Ȓ DX%(Q%),DY%(Q%)
5��
5�� T%=255 � 0 � -8
5�� 3,C% Ȝ T%
5�Ȗ
5�� Q%=0 � dots%
5�Ȓ DX%(Q%),DY%(Q%)
6DX%(Q%)+=DSX%(Q%)
6DY%(Q%)+=DSY%(Q%)
6DSY%(Q%)-=1
6$Ȓ DX%(Q%),DY%(Q%)
6.�,
68'� Q%=0 � dots%:Ȓ DX%(Q%),DY%(Q%):�
6B�,
6L
lives=0:�
6V
� 0,""
6`
� 0,""
6j
� 0,""
6t
� 0,""
6~� 15,"Well Done."
6�
� 0,""
6�� 10,"You have finished"
6�� 15,"Xacretan."
6�
� 0,""
6�"� 10,"You are one of the few,"
6�$� 15,"The elite, the dedicated,"
6�� 20,"the unbeatable."
6�!� 15,"But you have suffered."
6�
� 0,""
6�
� 0,""
6�!� 13,"Suffered for the cause"
6�� 17,"you thought worthy."
7
� 0,""
7
#� 10,"And was it all worth it?"
7
� 0,""
7
� 0,""
7(� 15,"Probably not!"
72
� 0,""
7<
� 0,""
7F
� 0,""
7P
� 0,""
7Z
� 0,""
7d� 10,"And now a word from"
7n"� 15,"the programmer himself,"
7x� 20,"Chris Bradburne,"
7�!� 10,"I'd just like to thank"
7�"� 15,"all those who made this"
7�� 20,"game possible."
7�� 15,"And Archimedes World"
7�� 18,"for publishing it."
7�
� 0,""
7�� 13,"And I would like to"
7�$� 17,"thank YOU for playing it."
7�
� 0,""
7�
� 0,""
7�
� 0,""
7�
� 0,""
7�'� 15,"You have now finally reached"
8
� 0,""
8
� 0,""
8� 15,"THE END."
8"
� 0,""
8,
� 0,""
86� 15,"THE END."
8@
� 0,""
8J
� 0,""
8T
� 0,""
8^
� 0,""
8h
� 0,""
8r��MusAsm
8|� mcode 128000,L%-1
8�� p=%1000 � %1010 � 2
8�P%=mcode
8��_Music
8�� p
8�end%=Track+pointer
8��
8�
� �_Music
8�� p=%1000 �
8�maxinst=32
8�D� nam$(2002),byt%(2002),loc$(2002),sort%(maxinst),sort$(maxinst)
8�sort$(2)="�"
8�
top%=0
8�"f%=� "<Xacretan$Dir>.location"
9
ȕ � �#f%
9;top%+=1:nam$(top%)=�#f%:�#f%,byt%(top%):loc$(top%)=�#f%
9�
9&�#f%
90a$="<Xacretan$Dir>.XacTune"
9:f%=� a$
9D3b1=�#f%:b2=�#f%:b3=�#f%:b4=�#f%:b5=�#f%:b6=�#f%
9N�#f%
9X+� b4=0 � b5>0 � Vocs=b6 � Vocs=b1     :
9b�_MusicASM
9l2A%=mcode:B%=Track-1:� Track                  :
9v1A%=ufin:B%=L%-1   :� Track                  :
9��
9��
9��_MusicASM
9��
9� � "PackLoad "+a$+" "+�~Track
9�� i%=0 � 9*12-1          :
9�!n%=i% +4*12                 :
9�!f%=440*(2^((n%-46)/12))     :
9�+Ftable!(i%*4)=(f%/(1000000/us))*65536 :
9�� i%
9�6pointer=Track!32                                 :
9�� i%=1 � Track?21
9�Track!(i%*32+ 0)=pointer
:len=Track!(i%*32+ 4)
:vol=Track!(i%*32+ 8)
:rat=Track!(i%*32+12)
: ren=Track!(i%*32+16)
:*na$=$(Track+i%*32+20)
:4Y� j%=1 � top%:� na$<>nam$(j%) � �:�'" -> "na$:$(Track+i%*32+20)=na$:� �30,�8);:� �Ttz
:>5� len>byt%(j%) � len=byt%(j%):Track!(i%*32+4)=len
:H#sort$(i%)=loc$(j%):sort%(i%)=i%
:Rpointer+=len+gap
:\_� Track+pointer>=L% � �,"More than "+�pointer+" bytes sample data: Assembler limit reached"
:f� i%
:p�
:zflag%=0
:�� i%=1 � Track?21-1
:�W� sort$(i%)>sort$(i%+1) � Ȕ sort$(i%),sort$(i%+1):Ȕ sort%(i%),sort%(i%+1):flag%=1
:�� i%
:�
� flag%=0
:�� i%=1 � Track?21
:�s=sort%(i%)
:�Bna$=$(Track+s*32+20):adr=Track+Track!(s*32):len=Track!(s*32+4)
:�/fu$="<Xacretan$Dir>.Inst"+sort$(i%)+"."+na$
:�f=� fu$
:�	� f �
:�$(adr+len)=�gap-1,�0)
:� ș "OS_GBPB",4,f,adr,len:�#f
:��
;disc=(�sort$(i%)-65) � 2 +1
;
� �dTz
;�
;$� i%
;.�
;8� �_MusicASM
;B
gap=16
;L
us =48
;V
[OPT p
;`	.v_on
;jmov   r12,r14
;tmov   r0,#2                
;~mov   r1,#208              
;�mov   r2,#us               
;�mov   r3,#0                
;�mov   r4,#0                
;�swi   "Sound_Configure"
;�mov   r0,#Vocs             
;�mov   r1,#0                
;�mov   r2,#0
;�mov   r3,#0
;�mov   r4,#0
;�swi   "Sound_Configure"
;�adr   r0,VoiceBase
;�$mov   r1,#0                     
<swi   "Sound_InstallVoice"
<
$str   r1,Vslot                  
<"adr   r2,Vstereos-4*4*(Vocs=8)
<mov   r0,#1
<(.vimage
<2ldr   r1,[r2],#4
<<$swi   "Sound_Stereo"            
<Fadd   r0,r0,#1
<Pcmp   r0,#Vocs
<ZbLs   vimage
<dmov   r0,#Vocs
<n	.vset
<xadr   r1,Vname
<�$swi   "Sound_AttachNamedVoice"  
<�mov   r1,#&170
<�mov   r2,#50               
<�mov   r3,#255
<�swi   "Sound_Control"      
<�subS  r0,r0,#1
<�bNe   vset
<�bl    vabsolut
<�bl    v_reset
<�mov   r0,#16               
<��adr (1,vinter)
<�adr   r2,Head              
<�swi   "OS_Claim"
=mov   r0,#14               
=mov   r1,#4                
=swi   "OS_Byte"
="mov   r0,#Vocs             
=,mov   r1,#0
=6mov   r2,#0
=@mov   r3,#0
=Jmov   r4,#0
=Tswi   "Sound_Configure"    
=^mov   r0,#0                
=hswi   "Sound_Volume"
=rmov   r0,r0,lsl#1          
=|rsb   r0,r0,#254
=�str   r0,Volume            
=�mov   pc,r12
=�
.vabsolut
=��adr (10,Track)
=�ldr   r1,[r10,#24]         
=�add   r1,r10,r1
=�str   r1,[r10,#24]
=�ldr   r2,[r10,#28]         
=�add   r2,r10,r2
=�str   r2,[r10,#28]
=�ldrB  r1,[r10,#21]         
=�	.vall
=�ldr   r2,[r10,r1,lsl#5]    
>add   r2,r10,r2
>str   r2,[r10,r1,lsl#5]    
>subS  r1,r1,#1
>&bNe   vall
>0ldr   r0,[pc]              
>:str   r0,vabsolut          
>Dmov   pc,r14
>N.v_reset
>X�adr (10,Track)
>bmov   r1,#64
>lstr   r1,Registers+0       
>vldr   r2,[r10,#24]
>�str   r2,Registers+8       
>�ldrB  r2,[r2]
>�ldr   r3,[r10,#28]
>�"add   r3,r3,r2,lsl#10-(Vocs=8)
>�str   r3,Registers+4       
>�adr   r11,Head
>�-mov   r1,#0:mov r2,#0:mov r3,#0:mov r4,#0
>�-mov   r5,#0:mov r6,#0:mov r7,#0:mov r8,#0
>�mov   r0,#Vocs
>�	.vall
>�stmia r11!,{r1-r8}         
>�subS  r0,r0,#1
>�bNe   vall
?mov   pc,r14
?
.v_off
?mov   r0,#13               
? mov   r1,#4                
?*swi   "OS_Byte"
?4mov   r0,#16               
?>adr   r1,vinter
?Hadr   r2,Head
?Rswi   "OS_Release"
?\ldr   r1,Vslot
?fswi   "Sound_RemoveVoice"  
?pmov   r0,#1
?zmov   r1,#1
?�swi   "Sound_AttachVoice"  
?�mov   pc,r14
?�
.Vstereos
?�dcd -50      
?�dcd -20
?�dcd  20
?�dcd  50
?�dcd-126      
?�dcd -90
?�dcd -54
?�dcd -18
?�dcd  18
?�dcd  54
@dcd  90
@dcd 126
@.Vslot dcd 0
@$.VoiceBase
@.b     vfill                
@8b     vfill                
@Bb     vfill                
@Lldmfd r13!,{pc}            
@Vldmfd r13!,{pc}            
@`ldmfd r13!,{pc}            
@jldmfd r13!,{pc}            
@tdcd   Vname-VoiceBase      
@~.Vname dcb "Cocoplex"+�0
@�	align
@�
.vfill
@�teqP  pc,#(1<<27) � %10   
@�adr   r8,Head              
@�add   r8,r8,r7,lsl#5       
@�ldmIa r8,{r1-r6}           
@�ldr   r0,Volume
@�add   r5,r5,r0             
@�
.vfilloop
@�]:� n=1 � gap:[OPT p     
@�ldrB  r0,[r3,r1,lsr#16]    
@�subS  r0,r0,r5             
AmovMi r0,#0
A
strB  r0,[r12],r11         
Aadd   r1,r1,r2             
A]:�:[OPT p
A(cmp   r4,r1,lsr#16         
A2movLs r1,r6                
A<cmp   r1,#0                
AFmovEq r2,#0                
APcmp   r12,r10              
AZbLo   vfilloop             
AdstmIa r8,{r1-r2}           
Anmov   r0,#%00001000        
AxteqP  pc,#(0<<27) � %10   
A�ldmfd r13!,{pc}
A�	.Head
A�dcd 0                      
A�dcd 0                      
A�dcd 0                      
A�dcd 0                      
A�dcd 0                      
A�dcd 0                      
A�dcd 0                      
A�dcd 0                      
A�#dcb �3*32-4*32*(Vocs=8),�0)    
A� .Volume       dcd 0         
A�
.veffects
Bldr   r4,[r12,#4]          
Bcmp   r4,#0                
BmovEq pc,r14
B"ldr   r3,[r12,#24]         
B,mov   r10,r14              
B6andS  r2,r3,#&ff           
B@blNe  v_volup
BJandS  r2,r3,#&ff <<8       
BTmovNe r2,r2,lsr#8
B^blNe  v_voldown
BhandS  r2,r3,#&ff <<16      
BrmovNe r2,r2,lsr#16
B|blNe  v_arcup
B�andS  r2,r3,#&ff <<24      
B�movNe r2,r2,lsr#24
B�blNe  v_arcdown
B�mov   r14,r10              
B�ldr   r1,[r12,#28]         
B�andS  r2,r1,#&ff           
B�movEq pc,r14               
B�and   r3,r1,#&ff00         
B�ldr   r3,[pc,r3,lsr#6]     
B�add   pc,pc,r3
B�dcd   v_arpeggio-vof1      
B�	.vof1
B�dcd   v_slideup-vof1       
Cdcd   v_slidedown-vof1     
Cdcd   v_volup-vof1         
Cdcd   v_voldown-vof1       
C&dcd   v_arcup-vof1         
C0dcd   v_arcdown-vof1       
C:.v_arpeggio
CDmov   r1,r1,lsr#24         
CNcmp   r0,#1                
CXcmpNe r0,#4                
CbaddEq r1,r1,r2,lsr#4       
Clcmp   r0,#2                
CvcmpNe r0,#5                
C�andEq r2,r2,#&0f           
C�addEq r1,r1,r2
C�ldr   r1,[r11,r1,lsl#2]    
C�str   r1,[r12,#4]          
C�mov   pc,r14
C�.v_slideup
C�add   r1,r4,r2,lsl#6       
C�cmp   r1,#&18800           
C�strLt r1,[r12,#4]
C�mov   pc,r14
C�.v_slidedown
C�sub   r1,r4,r2,lsl#6       
C�cmp   r1,#&3340            
DstrGt r1,[r12,#4]
Dmov   pc,r14
D.v_volup
D cmp   r0,#1                
D*movNe pc,r14
D4ldr   r1,[r12,#16]         
D>subS  r1,r1,r2
DHstrPl r1,[r12,#16]         
DRmov   pc,r14
D\.v_voldown
Dfcmp   r0,#1
DpmovNe pc,r14
Dzldr   r1,[r12,#16]
D�add   r1,r1,r2
D�cmp   r1,#255
D�strLs r1,[r12,#16]         
D�mov   pc,r14
D�.v_arcup
D�addS  r1,r4,r2,lsl#4       
D�strPl r1,[r12,#4]
D�mov   pc,r14
D�.v_arcdown
D�subS  r1,r4,r2,lsl#4       
D�strPl r1,[r12,#4]
D�mov   pc,r14
D�.fx1
Eadr   r12,Head+0*32
Eb     fx4+4
E.fx2
E$adr   r12,Head+1*32
E.b     fx4+4
E8.fx3
EBadr   r12,Head+2*32
ELb     fx4+4
EV.fx4
E`adr   r12,Head+3*32
Ejmov   r0,#1
EtstrB  r0,[r12,#30]         
E~adr   r10,Track
E�adr   r11,Ftable
E�b     vrule
E�.vinter
E�stmfd r13!,{r1-r11}        
E�adr   r11,Ftable           
E�ldmDb r11,{r0,r1}          
E�add   r0,r0,#1             
E�cmp   r0,r1                
E�movHs r0,#0                
E�str   r0,[r11,#-8]         
E�bHs   vplay                
E�bl    veffects             
Fadd   r12,r12,#32
F
bl    veffects             
Fadd   r12,r12,#32
Fbl    veffects             
F(add   r12,r12,#32
F2bl    veffects             
F<]
FF� Vocs=8 �
FP
[OPT p
FZadd   r12,r12,#32
Fdbl    veffects             
Fnadd   r12,r12,#32
Fxbl    veffects             
F�add   r12,r12,#32
F�bl    veffects             
F�add   r12,r12,#32
F�bl    veffects             
F�]
F��
F�
[OPT p
F�ldmfd r13!,{r1-r11,pc}     
F�
.vplay
F�adr   r6,Registers
F�ldmIa r6,{r7-r9}           
F�adr   r10,Track
F�bl    vchannel             
Gadd   r12,r12,#32
Gbl    vchannel             
Gadd   r12,r12,#32
G"bl    vchannel             
G,add   r12,r12,#32
G6bl    vchannel             
G@]
GJ� Vocs=8 �
GT
[OPT p
G^add   r12,r12,#32
Ghbl    vchannel             
Gradd   r12,r12,#32
G|bl    vchannel             
G�add   r12,r12,#32
G�bl    vchannel             
G�add   r12,r12,#32
G�bl    vchannel             
G�]
G��
G�
[OPT p
G�subS  r7,r7,#1             
G�stmNeIa r6,{r7-r8}         
G�ldmNeFd r13!,{r1-r11,pc}   
G�mov   r7,#64               
G�ldrB  r0,[r9,#1]!          
G�cmp   r0,#&ff              
HldrEq r9,[r10,#24]         
HldrEqB 0,[r9]              
Hldr   r8,[r10,#28]         
H&&add   r8,r8,r0,lsl#10-(Vocs=8)    
H0stmIa r6,{r7-r9}
H:ldmfd r13!,{r1-r11,pc}     
HD
.vchannel
HNldr   r1,[r8],#4           
HXldrB  r2,[r12,#30]         
Hbcmp   r2,#0
HlbEq   vrule                
Hvldr   r2,[r12,#4]
H�cmp   r2,#0                
H�strEqB 2,[r12,#30]         
H�mov   pc,r14
H�
.vrule
H�movS  r0,r1,lsr#24         
H�bEq   vcomms               
H�strB  r0,[r12,#31]         
H�ldr   r0,[r11,r0,lsl#2]    
H�str   r0,[r12,#4]          
H�andS  r0,r1,#&ff <<16      
H�ldrEq r0,[r12,#20]         
H�strEq r0,[r12,#00]         
H�bEq   vcomms
Iadd   r2,r10,r0,lsr#11     
IldmIa r2,{r0,r2-r5}        
Istr   r0,[r12,# 8]         
I str   r3,[r12,#16]         
I*movS  r0,r4,lsl#16         
I4addNe r2,r4,r5             
I>movNe r4,r0                
IHstr   r0,[r12,# 0]         
IRstr   r2,[r12,#12]         
I\str   r4,[r12,#20]         
If.vcomms
Ipand   r0,r1,#&0f <<8       
Izand   r2,r1,#&ff           
I�ldr   r3,[pc,r0,lsr#6]     
I�add   pc,pc,r3
I�dcd   vef-vof2             
I�	.vof2
I�dcd   vef-vof2             
I�dcd   vef-vof2             
I�dcd   vef-vof2             
I�dcd   vef-vof2             
I�dcd   vef-vof2             
I�dcd   vef-vof2             
I�dcd   vstereopos-vof2      
I�dcd   vautovolup-vof2      
I�dcd   vautovoldown-vof2    
Jdcd   vautoarcup-vof2      
Jdcd   vautoarcdown-vof2    
Jdcd   vsetvol-vof2         
J$dcd   vpattbreak-vof2      
J.dcd   vnop-vof2            
J8dcd   vsetspeed-vof2       
JB .vef                        
JLstrB  r2,[r12,#28]         
JVmov   r0,r0,lsr#8
J`strB  r0,[r12,#29]         
Jj	.vnop
Jtmov   pc,r14               
J~.vstereopos
J�adr   r0,Head              
J�sub   r0,r12,r0
J�mov   r0,r0,lsr#3          
J�cmp   r0,#7*4
J�movEq r1,   #&60           
J�addNe r1,r0,#&64           
J�mov   r1,r1,lsl#24
J�orr   r1,r1,r2
J�mov   r2,#&3400000
J�str   r1,[r2]
J�]
J�� Vocs=4 �
K
[OPT p
K
cmp   r0,#3*4              
KsubEq r1,r1,#&10<<24
KaddNe r1,r1,#&10<<24       
K(str   r1,[r2]
K2]
K<�
KF
[OPT p
KPmov   pc,r14
KZ.vautovolup
KdstrB  r2,[r12,#24]
Knmov   pc,r14
Kx.vautovoldown
K�strB  r2,[r12,#25]
K�mov   pc,r14
K�.vautoarcup
K�strB  r2,[r12,#26]
K�mov   pc,r14
K�.vautoarcdown
K�strB  r2,[r12,#27]
K�mov   pc,r14
K�.vsetvol
K�str   r2,[r12,#16]         
K�mov   pc,r14
K�.vpattbreak
K�mov   r7,#1                
Lmov   pc,r14
L.vsetspeed
Lstr   r2,Vspeed            
L"mov   pc,r14
L, .Registers    dcd 64        
L6dcd 00        
L@dcd 00        
LJ .Vcount       dcd 0         
LT .Vspeed       dcd 6         
L^%.Ftable       ]:P%+=9*12*4:[OPT p
Lh
.Track
Lrmov   r2,#0
L|	.uall
L�str   r2,[r0],#4
L�cmp   r0,r1
L�bLo   uall
L�mov   pc,r14
L�	.ufin
L�]:�
L�2er ADR (only forwards)
L�� �adr(r%,dest%)
L�dis%=dest%-P%-8
L�� p=%1000 �
L�d0%=0 :d1%=0
L��
L�� dis% � &f �
Md0%=dis% � &000FF
Md1%=dis% � &FFF00
M�
M&d0%=dis% � &00FFF
M0d1%=dis% � &FF000
M:�
MD�
MN
[OPT p
MXadd r%,pc,#d1%
Mbadd r%,r%,#d0%
Ml]=""
Mv��stopmusic
M�� playing<>� � �
M�� X=0 � 255 � 2
M�
?Volume=X
M�Ȗ
M��
M�� v_off
M�
playing=�
M�� arm3%=� �
M�Ƞ 4
M�ȡ 1,"ZapMod"
M�ȡ 2,"Explo1"
M�ȡ 3,"Explo2"
M��
NȠ 1
N�
N�
N 
��pink
N* pink%=�
N4 � pinkcode 512
N>� pass=0 � 2 � 2
NH P%=pinkcode
NR [OPT pass
N\ LDR R10,pinkblockstart
Nf MOV R11,#0
Np .pinkloop
Nz LDRB R0,[R10]
N� CMP R0,#67
N� BLE pinkover
N� CMP R0,#72
N� BGE pinkover
N� ADD R0,R0,#188-68
N� STRB R0,[R10]
N� .pinkover
N� ADD R10,R10,#1
N� ADD R11,R11,#1
N� CMP R11,#40*32*32
N� BNE pinkloop
N� MOV PC,R14
N�  .pinkblockstart:EQUD blocks
O ]:�
O �
�
00000000  0d 00 0a 0f f4 3e 21 52  75 6e 49 6d 61 67 65 0d  |.....>!RunImage.|
00000010  00 14 0f f2 61 72 6d 33  64 65 74 65 63 74 0d 00  |....arm3detect..|
00000020  1e 11 f2 77 72 69 74 65  5f 64 65 74 65 63 74 0d  |...write_detect.|
00000030  00 28 0e ee 20 85 20 f2  65 72 72 6f 72 0d 00 32  |.(.. . .error..2|
00000040  1b e7 20 61 72 6d 33 25  3d b9 20 8c 20 c8 a0 20  |.. arm3%=. . .. |
00000050  34 20 8b 20 c8 a0 20 31  0d 00 3c 23 e7 20 61 72  |4 . .. 1..<#. ar|
00000060  6d 33 25 3d b9 20 8c 20  76 6f 69 63 65 25 3d 34  |m3%=. . voice%=4|
00000070  20 8b 20 76 6f 69 63 65  25 3d 31 0d 00 46 05 f4  | . voice%=1..F..|
00000080  0d 00 50 34 f4 20 76 76  76 76 20 49 66 20 74 68  |..P4. vvvv If th|
00000090  65 20 67 61 6d 65 20 63  72 61 73 68 65 64 20 72  |e game crashed r|
000000a0  65 6d 6f 76 65 20 74 68  69 73 20 6c 69 6e 65 20  |emove this line |
000000b0  76 76 76 76 0d 00 5a 28  e7 20 61 72 6d 33 25 3d  |vvvv..Z(. arm3%=|
000000c0  a3 20 8c 20 c8 99 20 22  4f 53 5f 55 70 64 61 74  |. . .. "OS_Updat|
000000d0  65 4d 45 4d 43 22 2c 36  34 2c 36 34 0d 00 64 30  |eMEMC",64,64..d0|
000000e0  f4 20 20 20 5e 5e 5e 5e  5e 5e 5e 5e 5e 5e 5e 5e  |.   ^^^^^^^^^^^^|
000000f0  5e 5e 5e 5e 5e 5e 5e 5e  5e 5e 5e 5e 5e 5e 5e 5e  |^^^^^^^^^^^^^^^^|
00000100  5e 5e 5e 5e 5e 5e 5e 5e  5e 5e 5e 5e 0d 00 6e 05  |^^^^^^^^^^^^..n.|
00000110  f4 0d 00 78 23 e7 20 61  72 6d 33 25 3d b9 20 8c  |...x#. arm3%=. .|
00000120  20 64 6f 74 73 25 3d 38  30 20 8b 20 64 6f 74 73  | dots%=80 . dots|
00000130  25 3d 32 35 0d 00 82 0b  f2 4d 75 73 41 73 6d 0d  |%=25.....MusAsm.|
00000140  00 8c 1e 70 6c 61 79 69  6e 67 3d b9 3a 3f 56 6f  |...playing=.:?Vo|
00000150  6c 75 6d 65 3d 30 3a d6  20 76 5f 6f 6e 0d 00 96  |lume=0:. v_on...|
00000160  0f 66 69 72 73 74 74 69  6d 65 3d b9 0d 00 a0 0a  |.firsttime=.....|
00000170  f2 73 65 74 75 70 0d 00  aa 0e f2 61 73 73 65 6d  |.setup.....assem|
00000180  66 61 64 65 0d 00 b4 09  f2 70 69 6e 6b 0d 00 be  |fade.....pink...|
00000190  0a f2 74 69 74 6c 65 0d  00 c8 09 f2 67 61 6d 65  |..title.....game|
000001a0  0d 00 d2 05 e0 0d 00 dc  0b dd f2 73 65 74 75 70  |...........setup|
000001b0  0d 00 e6 18 6d 75 6c 24  3d bd 20 33 32 2b bd 20  |....mul$=. 32+. |
000001c0  32 31 35 2b bd 20 33 32  0d 00 f0 1d de 20 44 53  |215+. 32..... DS|
000001d0  58 25 28 64 6f 74 73 25  29 2c 44 53 59 25 28 64  |X%(dots%),DSY%(d|
000001e0  6f 74 73 25 29 0d 00 fa  1b de 20 44 58 25 28 64  |ots%)..... DX%(d|
000001f0  6f 74 73 25 29 2c 44 59  25 28 64 6f 74 73 25 29  |ots%),DY%(dots%)|
00000200  0d 01 04 1a de 20 6c 65  66 74 25 28 31 30 29 2c  |..... left%(10),|
00000210  72 69 67 68 74 25 28 31  30 29 0d 01 0e 0f de 20  |right%(10)..... |
00000220  73 63 62 6c 6f 63 6b 20  38 0d 01 18 0b 6c 69 76  |scblock 8....liv|
00000230  65 73 3d 34 0d 01 22 1b  e7 20 61 72 6d 33 25 3d  |es=4..".. arm3%=|
00000240  b9 20 8c 20 45 25 3d 38  20 8b 20 45 25 3d 32 0d  |. . E%=8 . E%=2.|
00000250  01 2c 0a 4e 41 25 3d 31  30 0d 01 36 09 4e 42 25  |.,.NA%=10..6.NB%|
00000260  3d 35 0d 01 40 0b 6c 65  76 65 6c 3d 31 0d 01 4a  |=5..@.level=1..J|
00000270  0b 73 70 65 65 64 3d 32  0d 01 54 0c 62 73 70 65  |.speed=2..T.bspe|
00000280  65 64 3d 34 0d 01 5e 23  de 20 62 6c 6f 63 6b 20  |ed=4..^#. block |
00000290  38 3a 21 62 6c 6f 63 6b  3d 31 34 38 3a 62 6c 6f  |8:!block=148:blo|
000002a0  63 6b 21 34 3d 2d 31 0d  01 68 0e 41 25 3d 38 3a  |ck!4=-1..h.A%=8:|
000002b0  42 25 3d 33 39 0d 01 72  14 de 20 65 78 70 6c 6f  |B%=39..r.. explo|
000002c0  64 61 74 61 20 32 30 34  38 0d 01 7c 38 ff 28 22  |data 2048..|8.("|
000002d0  50 61 63 6b 4c 6f 61 64  20 3c 58 61 63 72 65 74  |PackLoad <Xacret|
000002e0  61 6e 24 44 69 72 3e 2e  45 78 70 6c 6f 73 69 6f  |an$Dir>.Explosio|
000002f0  6e 73 20 22 2b c3 7e 65  78 70 6c 6f 64 61 74 61  |ns "+.~explodata|
00000300  29 0d 01 86 15 de 20 65  78 70 6c 6f 73 74 61 74  |)..... explostat|
00000310  73 20 38 2a 45 25 0d 01  90 19 e3 20 58 25 3d 30  |s 8*E%..... X%=0|
00000320  20 b8 20 28 38 2a 45 25  29 2d 31 20 88 20 38 0d  | . (8*E%)-1 . 8.|
00000330  01 9a 13 65 78 70 6c 6f  73 74 61 74 73 21 58 25  |...explostats!X%|
00000340  3d 30 0d 01 a4 17 65 78  70 6c 6f 73 74 61 74 73  |=0....explostats|
00000350  21 28 58 25 2b 34 29 3d  30 0d 01 ae 05 ed 0d 01  |!(X%+4)=0.......|
00000360  b8 14 de 20 70 6c 61 79  65 72 64 61 74 61 20 33  |... playerdata 3|
00000370  32 30 0d 01 c2 13 de 20  62 75 6c 6c 65 74 64 61  |20..... bulletda|
00000380  74 61 20 33 32 0d 01 cc  14 de 20 73 63 6f 72 65  |ta 32..... score|
00000390  64 61 74 61 20 34 30 39  36 0d 01 d6 15 de 20 74  |data 4096..... t|
000003a0  6f 70 64 61 74 61 20 31  30 2a 31 30 32 34 0d 01  |opdata 10*1024..|
000003b0  e0 0e 50 25 3d 74 6f 70  64 61 74 61 0d 01 ea 0f  |..P%=topdata....|
000003c0  e3 20 51 25 3d 30 20 b8  20 33 31 0d 01 f4 09 f3  |. Q%=0 . 31.....|
000003d0  20 62 79 25 0d 01 fe 10  e3 20 58 25 3d 30 20 b8  | by%..... X%=0 .|
000003e0  20 33 31 39 0d 02 08 0b  3f 50 25 3d 62 79 25 0d  | 319....?P%=by%.|
000003f0  02 12 09 50 25 2b 3d 31  0d 02 1c 06 ed 2c 0d 02  |...P%+=1.....,..|
00000400  26 25 dc 20 30 2c 30 2c  30 2c 30 2c 30 2c 30 2c  |&%. 0,0,0,0,0,0,|
00000410  30 2c 30 2c 30 2c 30 2c  30 2c 30 2c 30 2c 30 2c  |0,0,0,0,0,0,0,0,|
00000420  30 2c 30 0d 02 30 39 dc  20 30 2c 31 2c 32 2c 33  |0,0..09. 0,1,2,3|
00000430  2c 34 34 2c 34 35 2c 34  36 2c 34 37 2c 32 30 38  |,44,45,46,47,208|
00000440  2c 32 30 39 2c 32 31 30  2c 32 31 31 2c 32 35 32  |,209,210,211,252|
00000450  2c 32 35 33 2c 32 35 34  2c 32 35 35 0d 02 3a 34  |,253,254,255..:4|
00000460  ff 28 22 50 61 63 6b 4c  6f 61 64 20 3c 58 61 63  |.("PackLoad <Xac|
00000470  72 65 74 61 6e 24 44 69  72 3e 2e 4e 6f 44 61 74  |retan$Dir>.NoDat|
00000480  61 20 22 2b c3 7e 73 63  6f 72 65 64 61 74 61 29  |a "+.~scoredata)|
00000490  0d 02 44 31 ff 28 22 4c  6f 61 64 20 3c 58 61 63  |..D1.("Load <Xac|
000004a0  72 65 74 61 6e 24 44 69  72 3e 2e 50 6c 61 79 65  |retan$Dir>.Playe|
000004b0  72 20 22 2b c3 7e 70 6c  61 79 65 72 64 61 74 61  |r "+.~playerdata|
000004c0  29 0d 02 4e 31 ff 28 22  4c 6f 61 64 20 3c 58 61  |)..N1.("Load <Xa|
000004d0  63 72 65 74 61 6e 24 44  69 72 3e 2e 42 75 6c 6c  |cretan$Dir>.Bull|
000004e0  65 74 20 22 2b c3 7e 62  75 6c 6c 65 74 64 61 74  |et "+.~bulletdat|
000004f0  61 29 0d 02 58 19 de 20  62 6c 6f 63 6b 73 20 33  |a)..X.. blocks 3|
00000500  32 2a 33 32 2a 28 42 25  2b 31 29 0d 02 62 15 de  |2*32*(B%+1)..b..|
00000510  20 61 6c 69 65 6e 73 20  31 36 2a 31 36 2a 31 32  | aliens 16*16*12|
00000520  0d 02 6c 1c de 20 61 6c  69 65 6e 73 74 61 74 73  |..l.. alienstats|
00000530  20 34 2a 34 2a 28 4e 41  25 2b 31 29 0d 02 76 16  | 4*4*(NA%+1)..v.|
00000540  de 20 61 6c 69 65 6e 70  6f 73 65 73 20 4e 41 25  |. alienposes NA%|
00000550  2a 34 0d 02 80 1a de 20  61 6c 69 65 6e 70 61 74  |*4..... alienpat|
00000560  68 64 61 74 61 20 31 32  2a 35 31 32 0d 02 8a 0f  |hdata 12*512....|
00000570  e3 20 58 25 3d 30 20 b8  20 31 31 0d 02 94 48 ff  |. X%=0 . 11...H.|
00000580  28 22 4c 6f 61 64 20 3c  58 61 63 72 65 74 61 6e  |("Load <Xacretan|
00000590  24 44 69 72 3e 2e 50 61  74 68 73 2e 22 2b c3 28  |$Dir>.Paths."+.(|
000005a0  58 25 2b 31 29 2b 22 20  22 2b c3 7e 28 58 25 2a  |X%+1)+" "+.~(X%*|
000005b0  35 31 32 2b 61 6c 69 65  6e 70 61 74 68 64 61 74  |512+alienpathdat|
000005c0  61 29 29 0d 02 9e 05 ed  0d 02 a8 12 e3 20 58 25  |a)).......... X%|
000005d0  3d 30 20 b8 20 4e 41 25  2d 31 0d 02 b2 24 61 6c  |=0 . NA%-1...$al|
000005e0  69 65 6e 70 6f 73 65 73  21 28 58 25 2a 34 29 3d  |ienposes!(X%*4)=|
000005f0  28 58 25 2b 58 25 2b 30  2e 35 29 2a 31 36 0d 02  |(X%+X%+0.5)*16..|
00000600  bc 05 ed 0d 02 c6 0c 52  25 3d b3 28 41 25 29 0d  |.......R%=.(A%).|
00000610  02 d0 2e e3 20 58 25 3d  61 6c 69 65 6e 73 74 61  |.... X%=aliensta|
00000620  74 73 20 b8 20 61 6c 69  65 6e 73 74 61 74 73 2b  |ts . alienstats+|
00000630  34 2a 34 2a 4e 41 25 20  88 20 34 2a 34 0d 02 da  |4*4*NA% . 4*4...|
00000640  0a 58 25 21 30 3d 30 0d  02 e4 0a 58 25 21 34 3d  |.X%!0=0....X%!4=|
00000650  30 0d 02 ee 0a 58 25 21  38 3d 30 0d 02 f8 0b 58  |0....X%!8=0....X|
00000660  25 21 31 32 3d 30 0d 03  02 05 ed 0d 03 0c 13 de  |%!12=0..........|
00000670  20 73 63 6f 72 65 73 20  34 2a 42 25 2b 31 0d 03  | scores 4*B%+1..|
00000680  16 15 e3 20 58 25 3d 30  20 b8 20 42 25 2a 34 20  |... X%=0 . B%*4 |
00000690  88 20 34 0d 03 20 08 f3  20 59 25 0d 03 2a 10 73  |. 4.. .. Y%..*.s|
000006a0  63 6f 72 65 73 21 58 25  3d 59 25 0d 03 34 05 ed  |cores!X%=Y%..4..|
000006b0  0d 03 3e 26 20 46 25 3d  8e 28 22 3c 58 61 63 72  |..>& F%=.("<Xacr|
000006c0  65 74 61 6e 24 44 69 72  3e 2e 48 69 67 68 53 63  |etan$Dir>.HighSc|
000006d0  6f 72 65 73 22 29 0d 03  48 14 de 20 68 69 67 68  |ores")..H.. high|
000006e0  73 63 6f 72 65 73 28 31  30 29 0d 03 52 13 de 20  |scores(10)..R.. |
000006f0  68 69 67 68 6e 61 6d 65  24 28 31 30 29 0d 03 5c  |highname$(10)..\|
00000700  0f e3 20 58 25 3d 31 20  b8 20 31 30 0d 03 66 25  |.. X%=1 . 10..f%|
00000710  e8 23 46 25 2c 68 69 67  68 6e 61 6d 65 24 28 58  |.#F%,highname$(X|
00000720  25 29 2c 68 69 67 68 73  63 6f 72 65 73 28 58 25  |%),highscores(X%|
00000730  29 0d 03 70 06 20 ed 0d  03 7a 09 20 d9 23 46 25  |)..p. ...z. .#F%|
00000740  0d 03 84 31 ff 28 22 50  61 63 6b 4c 6f 61 64 20  |...1.("PackLoad |
00000750  3c 58 61 63 72 65 74 61  6e 24 44 69 72 3e 2e 42  |<Xacretan$Dir>.B|
00000760  6c 6f 63 6b 73 20 22 2b  c3 7e 62 6c 6f 63 6b 73  |locks "+.~blocks|
00000770  29 0d 03 8e 31 ff 28 22  50 61 63 6b 4c 6f 61 64  |)...1.("PackLoad|
00000780  20 3c 58 61 63 72 65 74  61 6e 24 44 69 72 3e 2e  | <Xacretan$Dir>.|
00000790  41 6c 69 65 6e 73 20 22  2b c3 7e 61 6c 69 65 6e  |Aliens "+.~alien|
000007a0  73 29 0d 03 98 10 de 20  6d 61 70 20 31 30 32 34  |s)..... map 1024|
000007b0  2a 33 0d 03 a2 23 e3 20  58 25 3d 6d 61 70 20 b8  |*3...#. X%=map .|
000007c0  20 6d 61 70 2b 28 33 2a  31 30 32 34 2d 31 29 3a  | map+(3*1024-1):|
000007d0  3f 58 25 3d 30 0d 03 ac  05 ed 0d 03 b6 11 de 20  |?X%=0.......... |
000007e0  63 6f 64 65 20 31 30 32  34 2a 35 0d 03 c0 16 de  |code 1024*5.....|
000007f0  20 74 69 74 6c 65 62 69  74 20 31 36 2a 31 30 32  | titlebit 16*102|
00000800  34 0d 03 ca 33 ff 28 22  50 61 63 6b 4c 6f 61 64  |4...3.("PackLoad|
00000810  20 3c 58 61 63 72 65 74  61 6e 24 44 69 72 3e 2e  | <Xacretan$Dir>.|
00000820  54 69 74 42 69 74 20 22  2b c3 7e 74 69 74 6c 65  |TitBit "+.~title|
00000830  62 69 74 29 0d 03 d4 2c  eb 20 31 35 3a c8 99 22  |bit)...,. 15:.."|
00000840  4f 53 5f 52 65 61 64 56  64 75 56 61 72 69 61 62  |OS_ReadVduVariab|
00000850  6c 65 73 22 2c 62 6c 6f  63 6b 2c 62 6c 6f 63 6b  |les",block,block|
00000860  0d 03 de 17 73 63 72 65  65 6e 31 73 74 61 72 74  |....screen1start|
00000870  3d 21 62 6c 6f 63 6b 0d  03 e8 25 73 63 72 65 65  |=!block...%scree|
00000880  6e 32 73 74 61 72 74 3d  73 63 72 65 65 6e 31 73  |n2start=screen1s|
00000890  74 61 72 74 2b 38 30 2a  31 30 32 34 0d 03 f2 0c  |tart+80*1024....|
000008a0  56 25 3d b3 28 2d 91 29  0d 03 fc 0f e3 20 58 25  |V%=.(-.)..... X%|
000008b0  3d 30 20 b8 20 31 30 0d  04 06 15 6c 65 66 74 25  |=0 . 10....left%|
000008c0  28 58 25 29 3d b3 28 31  32 29 2d 31 0d 04 10 16  |(X%)=.(12)-1....|
000008d0  72 69 67 68 74 25 28 58  25 29 3d b3 28 31 32 29  |right%(X%)=.(12)|
000008e0  2d 31 0d 04 1a 05 ed 0d  04 24 05 e1 0d 04 2e 0e  |-1.......$......|
000008f0  dd f2 61 73 73 65 6d 62  6c 65 0d 04 38 14 e3 20  |..assemble..8.. |
00000900  70 61 73 73 3d 30 20 b8  20 32 20 88 20 32 0d 04  |pass=0 . 2 . 2..|
00000910  42 0b 50 25 3d 63 6f 64  65 0d 04 4c 0d 5b 4f 50  |B.P%=code..L.[OP|
00000920  54 20 70 61 73 73 0d 04  56 07 2e 67 6f 0d 04 60  |T pass..V..go..`|
00000930  1b 53 54 4d 46 44 20 52  31 33 21 2c 7b 52 30 2d  |.STMFD R13!,{R0-|
00000940  52 31 32 2c 52 31 34 7d  0d 04 6a 17 4c 44 52 20  |R12,R14}..j.LDR |
00000950  52 31 31 2c 73 63 72 65  65 6e 73 74 61 72 74 0d  |R11,screenstart.|
00000960  04 74 18 41 44 44 20 52  31 32 2c 52 31 31 2c 23  |.t.ADD R12,R11,#|
00000970  38 30 2a 31 30 32 34 0d  04 7e 0d 2e 6d 61 69 6e  |80*1024..~..main|
00000980  6c 6f 6f 70 0d 04 88 17  53 54 52 20 52 31 31 2c  |loop....STR R11,|
00000990  73 63 72 65 65 6e 73 74  61 72 74 0d 04 92 0e 4d  |screenstart....M|
000009a0  4f 56 20 52 30 2c 23 31  39 0d 04 9c 11 53 57 49  |OV R0,#19....SWI|
000009b0  20 22 4f 53 5f 42 79 74  65 22 0d 04 a6 0f 4d 4f  | "OS_Byte"....MO|
000009c0  56 20 52 30 2c 23 31 31  33 0d 04 b0 0d 4d 4f 56  |V R0,#113....MOV|
000009d0  20 52 31 2c 23 32 0d 04  ba 11 53 57 49 20 22 4f  | R1,#2....SWI "O|
000009e0  53 5f 42 79 74 65 22 0d  04 c4 15 42 4c 20 67 72  |S_Byte"....BL gr|
000009f0  6f 75 6e 64 68 69 74 63  68 65 63 6b 0d 04 ce 0f  |oundhitcheck....|
00000a00  42 4c 20 63 68 65 63 6b  68 69 74 0d 04 d8 0c 42  |BL checkhit....B|
00000a10  4c 20 63 6b 64 69 65 0d  04 e2 11 42 4c 20 6d 6f  |L ckdie....BL mo|
00000a20  76 65 61 6c 69 65 6e 73  0d 04 ec 0d 42 4c 20 73  |vealiens....BL s|
00000a30  63 72 6f 6c 6c 0d 04 f6  0e 42 4c 20 62 75 6c 6c  |croll....BL bull|
00000a40  65 74 73 0d 05 00 0d 42  4c 20 61 6c 70 6c 6f 74  |ets....BL alplot|
00000a50  0d 05 0a 0d 42 4c 20 70  6c 61 79 65 72 0d 05 14  |....BL player...|
00000a60  0e 42 4c 20 65 78 70 70  6c 6f 74 0d 05 1e 0c 42  |.BL expplot....B|
00000a70  4c 20 64 6f 74 6f 70 0d  05 28 0e 42 4c 20 64 6f  |L dotop..(.BL do|
00000a80  73 63 6f 72 65 0d 05 32  17 53 54 52 20 52 31 32  |score..2.STR R12|
00000a90  2c 73 63 72 65 65 6e 73  74 61 72 74 0d 05 3c 0e  |,screenstart..<.|
00000aa0  4d 4f 56 20 52 30 2c 23  31 39 0d 05 46 11 53 57  |MOV R0,#19..F.SW|
00000ab0  49 20 22 4f 53 5f 42 79  74 65 22 0d 05 50 0f 4d  |I "OS_Byte"..P.M|
00000ac0  4f 56 20 52 30 2c 23 31  31 33 0d 05 5a 0d 4d 4f  |OV R0,#113..Z.MO|
00000ad0  56 20 52 31 2c 23 31 0d  05 64 11 53 57 49 20 22  |V R1,#1..d.SWI "|
00000ae0  4f 53 5f 42 79 74 65 22  0d 05 6e 15 42 4c 20 67  |OS_Byte"..n.BL g|
00000af0  72 6f 75 6e 64 68 69 74  63 68 65 63 6b 0d 05 78  |roundhitcheck..x|
00000b00  0f 42 4c 20 63 68 65 63  6b 68 69 74 0d 05 82 0c  |.BL checkhit....|
00000b10  42 4c 20 63 6b 64 69 65  0d 05 8c 11 42 4c 20 6d  |BL ckdie....BL m|
00000b20  6f 76 65 61 6c 69 65 6e  73 0d 05 96 0d 42 4c 20  |ovealiens....BL |
00000b30  73 63 72 6f 6c 6c 0d 05  a0 0e 42 4c 20 62 75 6c  |scroll....BL bul|
00000b40  6c 65 74 73 0d 05 aa 0d  42 4c 20 61 6c 70 6c 6f  |lets....BL alplo|
00000b50  74 0d 05 b4 0d 42 4c 20  70 6c 61 79 65 72 0d 05  |t....BL player..|
00000b60  be 0e 42 4c 20 65 78 70  70 6c 6f 74 0d 05 c8 0c  |..BL expplot....|
00000b70  42 4c 20 64 6f 74 6f 70  0d 05 d2 0e 42 4c 20 64  |BL dotop....BL d|
00000b80  6f 73 63 6f 72 65 0d 05  dc 11 4c 44 52 20 52 35  |oscore....LDR R5|
00000b90  2c 6d 61 70 70 6f 73 0d  05 e6 0e 43 4d 50 20 52  |,mappos....CMP R|
00000ba0  35 2c 23 31 30 0d 05 f0  0f 4d 4f 56 4c 54 20 52  |5,#10....MOVLT R|
00000bb0  35 2c 23 31 0d 05 fa 16  53 54 52 4c 54 20 52 35  |5,#1....STRLT R5|
00000bc0  2c 65 6e 64 72 65 61 73  6f 6e 0d 06 04 14 4c 44  |,endreason....LD|
00000bd0  52 20 52 35 2c 65 6e 64  72 65 61 73 6f 6e 0d 06  |R R5,endreason..|
00000be0  0e 0d 43 4d 50 20 52 35  2c 23 32 0d 06 18 12 42  |..CMP R5,#2....B|
00000bf0  45 51 20 64 69 65 72 6f  75 74 69 6e 65 0d 06 22  |EQ dieroutine.."|
00000c00  0d 43 4d 50 20 52 35 2c  23 30 0d 06 2c 0b 42 4e  |.CMP R5,#0..,.BN|
00000c10  45 20 65 6e 64 0d 06 36  1c 53 57 49 20 22 4f 53  |E end..6.SWI "OS|
00000c20  5f 52 65 61 64 45 73 63  61 70 65 53 74 61 74 65  |_ReadEscapeState|
00000c30  22 0d 06 40 10 42 43 43  20 6d 61 69 6e 6c 6f 6f  |"..@.BCC mainloo|
00000c40  70 0d 06 4a 08 2e 65 6e  64 0d 06 54 1a 4c 44 4d  |p..J..end..T.LDM|
00000c50  46 44 20 52 31 33 21 2c  7b 52 30 2d 52 31 32 2c  |FD R13!,{R0-R12,|
00000c60  50 43 7d 0d 06 5e 14 2e  64 61 6d 70 3a 45 51 55  |PC}..^..damp:EQU|
00000c70  44 20 26 46 46 46 31 0d  06 68 14 2e 64 70 69 74  |D &FFF1..h..dpit|
00000c80  3a 45 51 55 44 20 26 31  32 38 30 0d 06 72 0f 2e  |:EQUD &1280..r..|
00000c90  64 69 65 72 6f 75 74 69  6e 65 0d 06 7c 0d 4d 4f  |dieroutine..|.MO|
00000ca0  56 20 52 30 2c 23 32 0d  06 86 0f 4c 44 52 20 52  |V R0,#2....LDR R|
00000cb0  31 2c 64 61 6d 70 0d 06  90 0f 4c 44 52 20 52 32  |1,damp....LDR R2|
00000cc0  2c 64 70 69 74 0d 06 9a  0f 4d 4f 56 20 52 33 2c  |,dpit....MOV R3,|
00000cd0  23 26 46 45 0d 06 a4 17  53 57 49 20 22 53 6f 75  |#&FE....SWI "Sou|
00000ce0  6e 64 5f 43 6f 6e 74 72  6f 6c 22 0d 06 ae 0e 4d  |nd_Control"....M|
00000cf0  4f 56 20 52 31 30 2c 23  30 0d 06 b8 12 4c 44 52  |OV R10,#0....LDR|
00000d00  20 52 39 2c 70 6c 61 79  65 72 78 0d 06 c2 12 4c  | R9,playerx....L|
00000d10  44 52 20 52 38 2c 70 6c  61 79 65 72 79 0d 06 cc  |DR R8,playery...|
00000d20  0f 4d 4f 56 20 52 37 2c  23 33 32 30 0d 06 d6 10  |.MOV R7,#320....|
00000d30  4d 55 4c 20 52 38 2c 52  37 2c 52 38 0d 06 e0 10  |MUL R8,R7,R8....|
00000d40  41 44 44 20 52 30 2c 52  38 2c 52 39 0d 06 ea 0e  |ADD R0,R8,R9....|
00000d50  42 4c 20 65 78 70 69 6e  69 74 0d 06 f4 11 41 44  |BL expinit....AD|
00000d60  44 20 52 30 2c 52 30 2c  23 31 36 0d 06 fe 0e 42  |D R0,R0,#16....B|
00000d70  4c 20 65 78 70 69 6e 69  74 0d 07 08 15 41 44 44  |L expinit....ADD|
00000d80  20 52 30 2c 52 30 2c 23  31 37 2a 33 32 30 0d 07  | R0,R0,#17*320..|
00000d90  12 0e 42 4c 20 65 78 70  69 6e 69 74 0d 07 1c 11  |..BL expinit....|
00000da0  53 55 42 20 52 30 2c 52  30 2c 23 31 36 0d 07 26  |SUB R0,R0,#16..&|
00000db0  0e 42 4c 20 65 78 70 69  6e 69 74 0d 07 30 14 53  |.BL expinit..0.S|
00000dc0  55 42 20 52 30 2c 52 30  2c 23 38 2a 33 32 30 0d  |UB R0,R0,#8*320.|
00000dd0  07 3a 10 41 44 44 20 52  30 2c 52 30 2c 23 38 0d  |.:.ADD R0,R0,#8.|
00000de0  07 44 0d 4d 4f 56 20 52  36 2c 52 30 0d 07 4e 0c  |.D.MOV R6,R0..N.|
00000df0  2e 64 69 65 6c 6f 6f 70  0d 07 58 17 53 54 52 20  |.dieloop..X.STR |
00000e00  52 31 31 2c 73 63 72 65  65 6e 73 74 61 72 74 0d  |R11,screenstart.|
00000e10  07 62 0e 4d 4f 56 20 52  30 2c 23 31 39 0d 07 6c  |.b.MOV R0,#19..l|
00000e20  11 53 57 49 20 22 4f 53  5f 42 79 74 65 22 0d 07  |.SWI "OS_Byte"..|
00000e30  76 0f 4d 4f 56 20 52 30  2c 23 31 31 33 0d 07 80  |v.MOV R0,#113...|
00000e40  0d 4d 4f 56 20 52 31 2c  23 32 0d 07 8a 11 53 57  |.MOV R1,#2....SW|
00000e50  49 20 22 4f 53 5f 42 79  74 65 22 0d 07 94 15 42  |I "OS_Byte"....B|
00000e60  4c 20 67 72 6f 75 6e 64  68 69 74 63 68 65 63 6b  |L groundhitcheck|
00000e70  0d 07 9e 0f 42 4c 20 63  68 65 63 6b 68 69 74 0d  |....BL checkhit.|
00000e80  07 a8 11 42 4c 20 6d 6f  76 65 61 6c 69 65 6e 73  |...BL movealiens|
00000e90  0d 07 b2 0d 42 4c 20 73  63 72 6f 6c 6c 0d 07 bc  |....BL scroll...|
00000ea0  0e 42 4c 20 62 75 6c 6c  65 74 73 0d 07 c6 0d 42  |.BL bullets....B|
00000eb0  4c 20 61 6c 70 6c 6f 74  0d 07 d0 0e 42 4c 20 65  |L alplot....BL e|
00000ec0  78 70 70 6c 6f 74 0d 07  da 0c 42 4c 20 64 6f 74  |xpplot....BL dot|
00000ed0  6f 70 0d 07 e4 0e 42 4c  20 64 6f 73 63 6f 72 65  |op....BL doscore|
00000ee0  0d 07 ee 17 53 54 52 20  52 31 32 2c 73 63 72 65  |....STR R12,scre|
00000ef0  65 6e 73 74 61 72 74 0d  07 f8 0e 4d 4f 56 20 52  |enstart....MOV R|
00000f00  30 2c 23 31 39 0d 08 02  11 53 57 49 20 22 4f 53  |0,#19....SWI "OS|
00000f10  5f 42 79 74 65 22 0d 08  0c 0f 4d 4f 56 20 52 30  |_Byte"....MOV R0|
00000f20  2c 23 31 31 33 0d 08 16  0d 4d 4f 56 20 52 31 2c  |,#113....MOV R1,|
00000f30  23 31 0d 08 20 11 53 57  49 20 22 4f 53 5f 42 79  |#1.. .SWI "OS_By|
00000f40  74 65 22 0d 08 2a 15 42  4c 20 67 72 6f 75 6e 64  |te"..*.BL ground|
00000f50  68 69 74 63 68 65 63 6b  0d 08 34 0f 42 4c 20 63  |hitcheck..4.BL c|
00000f60  68 65 63 6b 68 69 74 0d  08 3e 11 42 4c 20 6d 6f  |heckhit..>.BL mo|
00000f70  76 65 61 6c 69 65 6e 73  0d 08 48 0d 42 4c 20 73  |vealiens..H.BL s|
00000f80  63 72 6f 6c 6c 0d 08 52  0e 42 4c 20 62 75 6c 6c  |croll..R.BL bull|
00000f90  65 74 73 0d 08 5c 0d 42  4c 20 61 6c 70 6c 6f 74  |ets..\.BL alplot|
00000fa0  0d 08 66 0e 42 4c 20 65  78 70 70 6c 6f 74 0d 08  |..f.BL expplot..|
00000fb0  70 0c 42 4c 20 64 6f 74  6f 70 0d 08 7a 0e 42 4c  |p.BL dotop..z.BL|
00000fc0  20 64 6f 73 63 6f 72 65  0d 08 84 12 41 44 44 20  | doscore....ADD |
00000fd0  52 31 30 2c 52 31 30 2c  23 31 0d 08 8e 0e 43 4d  |R10,R10,#1....CM|
00000fe0  50 20 52 31 30 2c 23 38  0d 08 98 19 ec 51 20 52  |P R10,#8.....Q R|
00000ff0  30 2c 52 36 3a 42 4c 45  51 20 65 78 70 69 6e 69  |0,R6:BLEQ expini|
00001000  74 0d 08 a2 0f 43 4d 50  20 52 31 30 2c 23 36 34  |t....CMP R10,#64|
00001010  0d 08 ac 0f 42 4c 54 20  64 69 65 6c 6f 6f 70 0d  |....BLT dieloop.|
00001020  08 b6 1a 4c 44 4d 46 44  20 52 31 33 21 2c 7b 52  |...LDMFD R13!,{R|
00001030  30 2d 52 31 32 2c 50 43  7d 0d 08 c0 15 2e 65 6e  |0-R12,PC}.....en|
00001040  64 72 65 61 73 6f 6e 3a  45 51 55 44 20 30 0d 08  |dreason:EQUD 0..|
00001050  ca 1a 2e 74 6f 70 73 74  61 72 74 3a 45 51 55 44  |...topstart:EQUD|
00001060  20 74 6f 70 64 61 74 61  0d 08 d4 0a 2e 64 6f 74  | topdata.....dot|
00001070  6f 70 0d 08 de 1b 53 54  4d 46 44 20 52 31 33 21  |op....STMFD R13!|
00001080  2c 7b 52 30 2d 52 31 32  2c 52 31 34 7d 0d 08 e8  |,{R0-R12,R14}...|
00001090  17 4c 44 52 20 52 31 32  2c 73 63 72 65 65 6e 73  |.LDR R12,screens|
000010a0  74 61 72 74 0d 08 f2 05  5d 0d 08 fc 0f e7 20 61  |tart....]..... a|
000010b0  72 6d 33 25 3d b9 20 8c  0d 09 06 0d 5b 4f 50 54  |rm3%=. .....[OPT|
000010c0  20 70 61 73 73 0d 09 10  14 4c 44 52 20 52 31 31  | pass....LDR R11|
000010d0  2c 74 6f 70 73 74 61 72  74 0d 09 1a 0e 4d 4f 56  |,topstart....MOV|
000010e0  20 52 31 30 2c 23 30 0d  09 24 0c 2e 74 6f 70 6c  | R10,#0..$..topl|
000010f0  6f 6f 70 0d 09 2e 1b 5d  3a e3 20 51 25 3d 30 20  |oop....]:. Q%=0 |
00001100  b8 20 33 31 3a 5b 4f 50  54 20 70 61 73 73 0d 09  |. 31:[OPT pass..|
00001110  38 29 4c 44 4d 49 41 20  52 31 31 21 2c 7b 52 30  |8)LDMIA R11!,{R0|
00001120  2d 52 39 7d 3a 53 54 4d  49 41 20 52 31 32 21 2c  |-R9}:STMIA R12!,|
00001130  7b 52 30 2d 52 39 7d 0d  09 42 07 5d 3a ed 0d 09  |{R0-R9}..B.]:...|
00001140  4c 05 cc 0d 09 56 0d 5b  4f 50 54 20 70 61 73 73  |L....V.[OPT pass|
00001150  0d 09 60 15 41 44 52 20  52 31 31 2c 62 6c 61 6e  |..`.ADR R11,blan|
00001160  6b 64 61 74 61 0d 09 6a  16 4c 44 4d 49 41 20 52  |kdata..j.LDMIA R|
00001170  31 31 21 2c 7b 52 30 2d  52 39 7d 0d 09 74 0e 4d  |11!,{R0-R9}..t.M|
00001180  4f 56 20 52 31 30 2c 23  30 0d 09 7e 0c 2e 74 6f  |OV R10,#0..~..to|
00001190  70 6c 6f 6f 70 0d 09 88  1b 5d 3a e3 20 51 25 3d  |ploop....]:. Q%=|
000011a0  30 20 b8 20 33 31 3a 5b  4f 50 54 20 70 61 73 73  |0 . 31:[OPT pass|
000011b0  0d 09 92 16 53 54 4d 49  41 20 52 31 32 21 2c 7b  |....STMIA R12!,{|
000011c0  52 30 2d 52 39 7d 0d 09  9c 07 5d 3a ed 0d 09 a6  |R0-R9}....]:....|
000011d0  05 cd 0d 09 b0 0d 5b 4f  50 54 20 70 61 73 73 0d  |......[OPT pass.|
000011e0  09 ba 13 41 44 44 20 52  31 30 2c 52 31 30 2c 23  |...ADD R10,R10,#|
000011f0  33 32 0d 09 c4 10 43 4d  50 20 52 31 30 2c 23 32  |32....CMP R10,#2|
00001200  35 36 0d 09 ce 0f 42 4c  54 20 74 6f 70 6c 6f 6f  |56....BLT toploo|
00001210  70 0d 09 d8 1a 4c 44 4d  46 44 20 52 31 33 21 2c  |p....LDMFD R13!,|
00001220  7b 52 30 2d 52 31 32 2c  50 43 7d 0d 09 e2 22 2e  |{R0-R12,PC}...".|
00001230  73 63 72 65 65 6e 73 74  61 72 74 3a 45 51 55 44  |screenstart:EQUD|
00001240  20 73 63 72 65 65 6e 31  73 74 61 72 74 0d 09 ec  | screen1start...|
00001250  54 2e 62 6c 61 6e 6b 64  61 74 61 3a 45 51 55 44  |T.blankdata:EQUD|
00001260  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
00001270  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
00001280  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
00001290  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
000012a0  30 0d 09 f6 16 2e 6d 61  70 73 74 61 72 74 3a 45  |0.....mapstart:E|
000012b0  51 55 44 20 6d 61 70 0d  0a 00 1b 2e 62 6c 6f 63  |QUD map.....bloc|
000012c0  6b 73 74 61 72 74 3a 45  51 55 44 20 62 6c 6f 63  |kstart:EQUD bloc|
000012d0  6b 73 0d 0a 0a 1c 2e 6d  61 70 70 6f 73 3a 45 51  |ks.....mappos:EQ|
000012e0  55 44 20 28 33 2a 31 30  32 34 29 2d 38 30 0d 0a  |UD (3*1024)-80..|
000012f0  14 12 2e 6f 66 66 73 65  74 3a 45 51 55 44 20 30  |...offset:EQUD 0|
00001300  0d 0a 1e 0b 2e 73 63 72  6f 6c 6c 0d 0a 28 1b 53  |.....scroll..(.S|
00001310  54 4d 46 44 20 52 31 33  21 2c 7b 52 30 2d 52 31  |TMFD R13!,{R0-R1|
00001320  32 2c 52 31 34 7d 0d 0a  32 14 4c 44 52 20 52 31  |2,R14}..2.LDR R1|
00001330  31 2c 6d 61 70 73 74 61  72 74 0d 0a 3c 12 4c 44  |1,mapstart..<.LD|
00001340  52 20 52 31 30 2c 6d 61  70 70 6f 73 0d 0a 46 13  |R R10,mappos..F.|
00001350  41 44 44 20 52 31 31 2c  52 31 31 2c 52 31 30 0d  |ADD R11,R11,R10.|
00001360  0a 50 0d 4d 4f 56 20 52  38 2c 23 30 0d 0a 5a 0d  |.P.MOV R8,#0..Z.|
00001370  4d 4f 56 20 52 39 2c 23  30 0d 0a 64 17 4c 44 52  |MOV R9,#0..d.LDR|
00001380  20 52 31 32 2c 73 63 72  65 65 6e 73 74 61 72 74  | R12,screenstart|
00001390  0d 0a 6e 11 4c 44 52 20  52 30 2c 6f 66 66 73 65  |..n.LDR R0,offse|
000013a0  74 0d 0a 78 12 41 44 44  20 52 31 32 2c 52 31 32  |t..x.ADD R12,R12|
000013b0  2c 52 30 0d 0a 82 0d 2e  70 6c 6f 74 6c 6f 6f 70  |,R0.....plotloop|
000013c0  0d 0a 8c 12 4c 44 52 42  20 52 31 30 2c 5b 52 31  |....LDRB R10,[R1|
000013d0  31 5d 0d 0a 96 10 4d 4f  56 20 52 35 2c 23 31 30  |1]....MOV R5,#10|
000013e0  32 34 0d 0a a0 12 4d 55  4c 20 52 31 30 2c 52 35  |24....MUL R10,R5|
000013f0  2c 52 31 30 0d 0a aa 15  4c 44 52 20 52 35 2c 62  |,R10....LDR R5,b|
00001400  6c 6f 63 6b 73 74 61 72  74 0d 0a b4 12 41 44 44  |lockstart....ADD|
00001410  20 52 31 30 2c 52 31 30  2c 52 35 0d 0a be 1b 5d  | R10,R10,R5....]|
00001420  3a e3 20 51 25 3d 31 20  b8 20 33 32 3a 5b 4f 50  |:. Q%=1 . 32:[OP|
00001430  54 20 70 61 73 73 0d 0a  c8 16 4c 44 4d 49 41 20  |T pass....LDMIA |
00001440  52 31 30 21 2c 7b 52 30  2d 52 37 7d 0d 0a d2 15  |R10!,{R0-R7}....|
00001450  53 54 4d 49 41 20 52 31  32 2c 7b 52 30 2d 52 37  |STMIA R12,{R0-R7|
00001460  7d 0d 0a dc 14 41 44 44  20 52 31 32 2c 52 31 32  |}....ADD R12,R12|
00001470  2c 23 33 32 30 0d 0a e6  11 5d 3a ed 3a 5b 4f 50  |,#320....]:.:[OP|
00001480  54 20 70 61 73 73 0d 0a  f0 17 53 55 42 20 52 31  |T pass....SUB R1|
00001490  32 2c 52 31 32 2c 23 33  32 30 2a 33 32 0d 0a fa  |2,R12,#320*32...|
000014a0  13 41 44 44 20 52 31 32  2c 52 31 32 2c 23 33 32  |.ADD R12,R12,#32|
000014b0  0d 0b 04 12 41 44 44 20  52 31 31 2c 52 31 31 2c  |....ADD R11,R11,|
000014c0  23 31 0d 0b 0e 10 41 44  44 20 52 39 2c 52 39 2c  |#1....ADD R9,R9,|
000014d0  23 31 0d 0b 18 0e 43 4d  50 20 52 39 2c 23 31 30  |#1....CMP R9,#10|
000014e0  0d 0b 22 10 42 4c 54 20  70 6c 6f 74 6c 6f 6f 70  |..".BLT plotloop|
000014f0  0d 0b 2c 0d 4d 4f 56 20  52 39 2c 23 30 0d 0b 36  |..,.MOV R9,#0..6|
00001500  17 41 44 44 20 52 31 32  2c 52 31 32 2c 23 33 32  |.ADD R12,R12,#32|
00001510  30 2a 33 31 0d 0b 40 10  41 44 44 20 52 38 2c 52  |0*31..@.ADD R8,R|
00001520  38 2c 23 31 0d 0b 4a 0d  43 4d 50 20 52 38 2c 23  |8,#1..J.CMP R8,#|
00001530  37 0d 0b 54 10 42 4c 54  20 70 6c 6f 74 6c 6f 6f  |7..T.BLT plotloo|
00001540  70 0d 0b 5e 0f 4c 44 52  20 52 38 2c 6f 66 66 32  |p..^.LDR R8,off2|
00001550  0d 0b 68 1d 4d 4f 56 20  52 34 2c 23 30 3a 53 54  |..h.MOV R4,#0:ST|
00001560  52 20 52 34 2c 62 6f 74  63 6f 75 6e 74 0d 0b 72  |R R4,botcount..r|
00001570  0b 2e 62 6f 74 62 69 74  0d 0b 7c 0d 4d 4f 56 20  |..botbit..|.MOV |
00001580  52 39 2c 23 30 0d 0b 86  12 4c 44 52 42 20 52 31  |R9,#0....LDRB R1|
00001590  30 2c 5b 52 31 31 5d 0d  0b 90 10 4d 4f 56 20 52  |0,[R11]....MOV R|
000015a0  35 2c 23 31 30 32 34 0d  0b 9a 12 4d 55 4c 20 52  |5,#1024....MUL R|
000015b0  31 30 2c 52 35 2c 52 31  30 0d 0b a4 15 4c 44 52  |10,R5,R10....LDR|
000015c0  20 52 35 2c 62 6c 6f 63  6b 73 74 61 72 74 0d 0b  | R5,blockstart..|
000015d0  ae 12 41 44 44 20 52 31  30 2c 52 31 30 2c 52 35  |..ADD R10,R10,R5|
000015e0  0d 0b b8 14 53 54 4d 46  44 20 52 31 33 21 2c 7b  |....STMFD R13!,{|
000015f0  52 31 32 7d 0d 0b c2 0c  2e 62 6f 74 6c 6f 6f 70  |R12}.....botloop|
00001600  0d 0b cc 16 4c 44 4d 49  41 20 52 31 30 21 2c 7b  |....LDMIA R10!,{|
00001610  52 30 2d 52 37 7d 0d 0b  d6 15 53 54 4d 49 41 20  |R0-R7}....STMIA |
00001620  52 31 32 2c 7b 52 30 2d  52 37 7d 0d 0b e0 14 41  |R12,{R0-R7}....A|
00001630  44 44 20 52 31 32 2c 52  31 32 2c 23 33 32 30 0d  |DD R12,R12,#320.|
00001640  0b ea 10 41 44 44 20 52  39 2c 52 39 2c 23 31 0d  |...ADD R9,R9,#1.|
00001650  0b f4 0d 43 4d 50 20 52  39 2c 52 38 0d 0b fe 0f  |...CMP R9,R8....|
00001660  42 4c 54 20 62 6f 74 6c  6f 6f 70 0d 0c 08 14 4c  |BLT botloop....L|
00001670  44 4d 46 44 20 52 31 33  21 2c 7b 52 31 32 7d 0d  |DMFD R13!,{R12}.|
00001680  0c 12 13 41 44 44 20 52  31 32 2c 52 31 32 2c 23  |...ADD R12,R12,#|
00001690  33 32 0d 0c 1c 12 41 44  44 20 52 31 31 2c 52 31  |32....ADD R11,R1|
000016a0  31 2c 23 31 0d 0c 26 13  4c 44 52 20 52 30 2c 62  |1,#1..&.LDR R0,b|
000016b0  6f 74 63 6f 75 6e 74 0d  0c 30 10 41 44 44 20 52  |otcount..0.ADD R|
000016c0  30 2c 52 30 2c 23 31 0d  0c 3a 13 53 54 52 20 52  |0,R0,#1..:.STR R|
000016d0  30 2c 62 6f 74 63 6f 75  6e 74 0d 0c 44 0e 43 4d  |0,botcount..D.CM|
000016e0  50 20 52 30 2c 23 31 30  0d 0c 4e 0e 42 4e 45 20  |P R0,#10..N.BNE |
000016f0  62 6f 74 62 69 74 0d 0c  58 11 4c 44 52 20 52 30  |botbit..X.LDR R0|
00001700  2c 6f 66 66 73 65 74 0d  0c 62 11 4c 44 52 20 52  |,offset..b.LDR R|
00001710  31 2c 6d 61 70 70 6f 73  0d 0c 6c 0f 4c 44 52 20  |1,mappos..l.LDR |
00001720  52 32 2c 6f 66 66 32 0d  0c 76 12 41 44 44 20 52  |R2,off2..v.ADD R|
00001730  30 2c 52 30 2c 23 33 32  30 0d 0c 80 10 53 55 42  |0,R0,#320....SUB|
00001740  20 52 32 2c 52 32 2c 23  31 0d 0c 8a 11 43 4d 50  | R2,R2,#1....CMP|
00001750  20 52 30 2c 23 31 30 32  34 30 0d 0c 94 0c ec 51  | R0,#10240.....Q|
00001760  20 52 30 2c 23 30 0d 0c  9e 0d ec 51 20 52 32 2c  | R0,#0.....Q R2,|
00001770  23 33 32 0d 0c a8 13 53  55 42 45 51 20 52 31 2c  |#32....SUBEQ R1,|
00001780  52 31 2c 23 31 30 0d 0c  b2 11 53 54 52 20 52 31  |R1,#10....STR R1|
00001790  2c 6d 61 70 70 6f 73 0d  0c bc 11 53 54 52 20 52  |,mappos....STR R|
000017a0  30 2c 6f 66 66 73 65 74  0d 0c c6 0f 53 54 52 20  |0,offset....STR |
000017b0  52 32 2c 6f 66 66 32 0d  0c d0 1a 4c 44 4d 46 44  |R2,off2....LDMFD|
000017c0  20 52 31 33 21 2c 7b 52  30 2d 52 31 32 2c 50 43  | R13!,{R0-R12,PC|
000017d0  7d 0d 0c da 11 2e 6f 66  66 32 3a 45 51 55 44 20  |}.....off2:EQUD |
000017e0  33 32 0d 0c e4 14 2e 62  6f 74 63 6f 75 6e 74 3a  |32.....botcount:|
000017f0  45 51 55 44 20 30 0d 0c  ee 0c 2e 64 6f 73 63 6f  |EQUD 0.....dosco|
00001800  72 65 0d 0c f8 1b 53 54  4d 46 44 20 52 31 33 21  |re....STMFD R13!|
00001810  2c 7b 52 30 2d 52 31 32  2c 52 31 34 7d 0d 0d 02  |,{R0-R12,R14}...|
00001820  2f 4c 44 52 20 52 31 32  2c 73 63 72 65 65 6e 73  |/LDR R12,screens|
00001830  74 61 72 74 3a 41 44 44  20 52 31 32 2c 52 31 32  |tart:ADD R12,R12|
00001840  2c 23 31 36 30 2d 28 36  2a 31 30 29 0d 0d 0c 30  |,#160-(6*10)...0|
00001850  5d 3a e7 20 61 72 6d 33  25 3d a3 20 8c 20 5b 4f  |]:. arm3%=. . [O|
00001860  50 54 20 70 61 73 73 3a  41 44 44 20 52 31 32 2c  |PT pass:ADD R12,|
00001870  52 31 32 2c 23 38 2a 33  32 30 3a 5d 0d 0d 16 0d  |R12,#8*320:]....|
00001880  5b 4f 50 54 20 70 61 73  73 0d 0d 20 21 4c 44 52  |[OPT pass.. !LDR|
00001890  20 52 30 2c 64 69 73 70  73 63 6f 72 65 3a 4c 44  | R0,dispscore:LD|
000018a0  52 20 52 33 2c 73 63 6f  72 65 0d 0d 2a 1c 43 4d  |R R3,score..*.CM|
000018b0  50 20 52 30 2c 52 33 3a  41 44 44 4c 54 20 52 30  |P R0,R3:ADDLT R0|
000018c0  2c 52 30 2c 23 32 0d 0d  34 0d 43 4d 50 20 52 30  |,R0,#2..4.CMP R0|
000018d0  2c 52 33 0d 0d 3e 14 53  54 52 20 52 33 2c 64 69  |,R3..>.STR R3,di|
000018e0  73 70 73 63 6f 72 65 0d  0d 48 16 53 54 52 4c 54  |spscore..H.STRLT|
000018f0  20 52 30 2c 64 69 73 70  73 63 6f 72 65 0d 0d 52  | R0,dispscore..R|
00001900  16 41 44 52 20 52 31 2c  73 63 6f 72 65 73 74 72  |.ADR R1,scorestr|
00001910  69 6e 67 0d 0d 5c 0d 4d  4f 56 20 52 32 2c 23 38  |ing..\.MOV R2,#8|
00001920  0d 0d 66 1d 53 57 49 20  22 4f 53 5f 43 6f 6e 76  |..f.SWI "OS_Conv|
00001930  65 72 74 43 61 72 64 69  6e 61 6c 33 22 0d 0d 70  |ertCardinal3"..p|
00001940  0d 43 4d 50 20 52 32 2c  23 30 0d 0d 7a 0d 42 45  |.CMP R2,#0..z.BE|
00001950  51 20 6f 76 65 72 31 0d  0d 84 0d 4d 4f 56 20 52  |Q over1....MOV R|
00001960  33 2c 23 30 0d 0d 8e 0d  4d 4f 56 20 52 30 2c 23  |3,#0....MOV R0,#|
00001970  30 0d 0d 98 16 41 44 52  20 52 31 2c 70 72 69 6e  |0....ADR R1,prin|
00001980  74 73 74 72 69 6e 67 0d  0d a2 0f 2e 73 63 6f 72  |tstring.....scor|
00001990  65 6c 6f 6f 70 31 0d 0d  ac 13 53 54 52 42 20 52  |eloop1....STRB R|
000019a0  30 2c 5b 52 31 2c 52 33  5d 0d 0d b6 10 41 44 44  |0,[R1,R3]....ADD|
000019b0  20 52 33 2c 52 33 2c 23  31 0d 0d c0 0d 43 4d 50  | R3,R3,#1....CMP|
000019c0  20 52 33 2c 52 32 0d 0d  ca 12 42 4c 54 20 73 63  | R3,R2....BLT sc|
000019d0  6f 72 65 6c 6f 6f 70 31  0d 0d d4 0a 2e 6f 76 65  |oreloop1.....ove|
000019e0  72 31 0d 0d de 0d 4d 4f  56 20 52 34 2c 23 30 0d  |r1....MOV R4,#0.|
000019f0  0d e8 16 41 44 52 20 52  32 2c 73 63 6f 72 65 73  |...ADR R2,scores|
00001a00  74 72 69 6e 67 0d 0d f2  0f 2e 73 63 6f 72 65 6c  |tring.....scorel|
00001a10  6f 6f 70 32 0d 0d fc 13  4c 44 52 42 20 52 30 2c  |oop2....LDRB R0,|
00001a20  5b 52 32 2c 52 34 5d 0d  0e 06 11 53 55 42 20 52  |[R2,R4]....SUB R|
00001a30  30 2c 52 30 2c 23 34 38  0d 0e 10 13 53 54 52 42  |0,R0,#48....STRB|
00001a40  20 52 30 2c 5b 52 31 2c  52 33 5d 0d 0e 1a 10 41  | R0,[R1,R3]....A|
00001a50  44 44 20 52 34 2c 52 34  2c 23 31 0d 0e 24 10 41  |DD R4,R4,#1..$.A|
00001a60  44 44 20 52 33 2c 52 33  2c 23 31 0d 0e 2e 0d 43  |DD R3,R3,#1....C|
00001a70  4d 50 20 52 33 2c 23 38  0d 0e 38 12 42 4c 54 20  |MP R3,#8..8.BLT |
00001a80  73 63 6f 72 65 6c 6f 6f  70 32 0d 0e 42 17 41 44  |scoreloop2..B.AD|
00001a90  52 20 52 31 30 2c 70 72  69 6e 74 73 74 72 69 6e  |R R10,printstrin|
00001aa0  67 0d 0e 4c 0d 4d 4f 56  20 52 39 2c 23 32 0d 0e  |g..L.MOV R9,#2..|
00001ab0  56 0f 2e 73 63 6f 72 65  6c 6f 6f 70 33 0d 0e 60  |V..scoreloop3..`|
00001ac0  0f 4d 4f 56 20 52 31 31  2c 52 31 32 0d 0e 6a 14  |.MOV R11,R12..j.|
00001ad0  4c 44 52 42 20 52 38 2c  5b 52 31 30 2c 52 39 5d  |LDRB R8,[R10,R9]|
00001ae0  0d 0e 74 19 4c 44 52 20  52 37 2c 73 63 6f 72 65  |..t.LDR R7,score|
00001af0  64 61 74 61 73 74 61 72  74 0d 0e 7e 11 4d 4f 56  |datastart..~.MOV|
00001b00  20 52 30 2c 23 32 30 2a  32 30 0d 0e 88 10 4d 55  | R0,#20*20....MU|
00001b10  4c 20 52 30 2c 52 38 2c  52 30 0d 0e 92 10 41 44  |L R0,R8,R0....AD|
00001b20  44 20 52 37 2c 52 37 2c  52 30 0d 0e 9c 1a 5d 3a  |D R7,R7,R0....]:|
00001b30  e3 20 58 3d 30 20 b8 20  31 39 3a 5b 4f 50 54 20  |. X=0 . 19:[OPT |
00001b40  70 61 73 73 0d 0e a6 15  4c 44 4d 49 41 20 52 37  |pass....LDMIA R7|
00001b50  21 2c 7b 52 30 2d 52 34  7d 0d 0e b0 15 53 54 4d  |!,{R0-R4}....STM|
00001b60  49 41 20 52 31 31 2c 7b  52 30 2d 52 34 7d 0d 0e  |IA R11,{R0-R4}..|
00001b70  ba 14 41 44 44 20 52 31  31 2c 52 31 31 2c 23 33  |..ADD R11,R11,#3|
00001b80  32 30 0d 0e c4 11 5d 3a  ed 3a 5b 4f 50 54 20 70  |20....]:.:[OPT p|
00001b90  61 73 73 0d 0e ce 13 41  44 44 20 52 31 32 2c 52  |ass....ADD R12,R|
00001ba0  31 32 2c 23 32 30 0d 0e  d8 10 41 44 44 20 52 39  |12,#20....ADD R9|
00001bb0  2c 52 39 2c 23 31 0d 0e  e2 0d 43 4d 50 20 52 39  |,R9,#1....CMP R9|
00001bc0  2c 23 38 0d 0e ec 12 42  4e 45 20 73 63 6f 72 65  |,#8....BNE score|
00001bd0  6c 6f 6f 70 33 0d 0e f6  1a 4c 44 4d 46 44 20 52  |loop3....LDMFD R|
00001be0  31 33 21 2c 7b 52 30 2d  52 31 32 2c 50 43 7d 0d  |13!,{R0-R12,PC}.|
00001bf0  0f 00 10 2e 73 63 6f 72  65 73 74 72 69 6e 67 0d  |....scorestring.|
00001c00  0f 0a 18 45 51 55 44 20  30 3a 45 51 55 44 20 30  |...EQUD 0:EQUD 0|
00001c10  3a 45 51 55 44 20 30 0d  0f 14 10 2e 70 72 69 6e  |:EQUD 0.....prin|
00001c20  74 73 74 72 69 6e 67 0d  0f 1e 18 45 51 55 44 20  |tstring....EQUD |
00001c30  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 0d  |0:EQUD 0:EQUD 0.|
00001c40  0f 28 15 2e 64 69 73 70  73 63 6f 72 65 3a 45 51  |.(..dispscore:EQ|
00001c50  55 44 20 30 0d 0f 32 11  2e 73 63 6f 72 65 3a 45  |UD 0..2..score:E|
00001c60  51 55 44 20 30 0d 0f 3c  13 2e 73 63 6f 72 65 64  |QUD 0..<..scored|
00001c70  61 74 61 73 74 61 72 74  0d 0f 46 12 45 51 55 44  |atastart..F.EQUD|
00001c80  20 73 63 6f 72 65 64 61  74 61 0d 0f 50 1d 2e 73  | scoredata..P..s|
00001c90  63 72 61 64 64 72 3a 45  51 55 44 20 73 63 72 65  |craddr:EQUD scre|
00001ca0  65 6e 73 74 61 72 74 0d  0f 5a 20 2e 62 75 6c 6c  |enstart..Z .bull|
00001cb0  65 74 73 74 61 72 74 3a  45 51 55 44 20 62 75 6c  |etstart:EQUD bul|
00001cc0  6c 65 74 64 61 74 61 0d  0f 64 26 2e 62 75 6c 6c  |letdata..d&.bull|
00001cd0  65 74 73 74 61 74 73 73  74 61 72 74 3a 45 51 55  |etstatsstart:EQU|
00001ce0  44 20 62 75 6c 6c 65 74  73 74 61 74 73 0d 0f 6e  |D bulletstats..n|
00001cf0  0c 2e 62 75 6c 6c 65 74  73 0d 0f 78 1b 53 54 4d  |..bullets..x.STM|
00001d00  46 44 20 52 31 33 21 2c  7b 52 30 2d 52 31 32 2c  |FD R13!,{R0-R12,|
00001d10  52 31 34 7d 0d 0f 82 13  4c 44 52 20 52 31 32 2c  |R14}....LDR R12,|
00001d20  73 63 72 61 64 64 72 0d  0f 8c 11 4c 44 52 20 52  |scraddr....LDR R|
00001d30  31 32 2c 5b 52 31 32 5d  0d 0f 96 17 4c 44 52 20  |12,[R12]....LDR |
00001d40  52 31 31 2c 62 75 6c 6c  65 74 73 74 61 72 74 0d  |R11,bulletstart.|
00001d50  0f a0 1c 4c 44 52 20 52  31 30 2c 62 75 6c 6c 65  |...LDR R10,bulle|
00001d60  74 73 74 61 74 73 73 74  61 72 74 0d 0f aa 0d 4d  |tstatsstart....M|
00001d70  4f 56 20 52 39 2c 23 30  0d 0f b4 0a 2e 62 6c 6f  |OV R9,#0.....blo|
00001d80  6f 70 0d 0f be 10 4c 44  52 20 52 30 2c 5b 52 31  |op....LDR R0,[R1|
00001d90  30 5d 0d 0f c8 0d 43 4d  50 20 52 30 2c 23 30 0d  |0]....CMP R0,#0.|
00001da0  0f d2 10 42 45 51 20 6e  6f 62 75 6c 6c 65 74 0d  |...BEQ nobullet.|
00001db0  0f dc 13 4c 44 52 20 52  31 2c 5b 52 31 30 2c 23  |...LDR R1,[R10,#|
00001dc0  34 5d 0d 0f e6 0f 4d 4f  56 20 52 32 2c 23 33 32  |4]....MOV R2,#32|
00001dd0  30 0d 0f f0 10 4d 55 4c  20 52 32 2c 52 31 2c 52  |0....MUL R2,R1,R|
00001de0  32 0d 0f fa 10 41 44 44  20 52 32 2c 52 32 2c 52  |2....ADD R2,R2,R|
00001df0  30 0d 10 04 11 41 44 44  20 52 32 2c 52 32 2c 52  |0....ADD R2,R2,R|
00001e00  31 32 0d 10 0e 21 4c 44  52 42 20 52 33 2c 5b 52  |12...!LDRB R3,[R|
00001e10  31 31 2c 23 30 5d 3a 53  54 52 42 20 52 33 2c 5b  |11,#0]:STRB R3,[|
00001e20  52 32 5d 0d 10 18 33 4c  44 52 42 20 52 33 2c 5b  |R2]...3LDRB R3,[|
00001e30  52 31 31 2c 23 31 5d 3a  53 54 52 42 20 52 33 2c  |R11,#1]:STRB R3,|
00001e40  5b 52 32 2c 23 31 5d 3a  41 44 44 20 52 32 2c 52  |[R2,#1]:ADD R2,R|
00001e50  32 2c 23 33 32 30 0d 10  22 21 4c 44 52 42 20 52  |2,#320.."!LDRB R|
00001e60  33 2c 5b 52 31 31 2c 23  32 5d 3a 53 54 52 42 20  |3,[R11,#2]:STRB |
00001e70  52 33 2c 5b 52 32 5d 0d  10 2c 33 4c 44 52 42 20  |R3,[R2]..,3LDRB |
00001e80  52 33 2c 5b 52 31 31 2c  23 33 5d 3a 53 54 52 42  |R3,[R11,#3]:STRB|
00001e90  20 52 33 2c 5b 52 32 2c  23 31 5d 3a 41 44 44 20  | R3,[R2,#1]:ADD |
00001ea0  52 32 2c 52 32 2c 23 33  32 30 0d 10 36 21 4c 44  |R2,R2,#320..6!LD|
00001eb0  52 42 20 52 33 2c 5b 52  31 31 2c 23 34 5d 3a 53  |RB R3,[R11,#4]:S|
00001ec0  54 52 42 20 52 33 2c 5b  52 32 5d 0d 10 40 33 4c  |TRB R3,[R2]..@3L|
00001ed0  44 52 42 20 52 33 2c 5b  52 31 31 2c 23 35 5d 3a  |DRB R3,[R11,#5]:|
00001ee0  53 54 52 42 20 52 33 2c  5b 52 32 2c 23 31 5d 3a  |STRB R3,[R2,#1]:|
00001ef0  41 44 44 20 52 32 2c 52  32 2c 23 33 32 30 0d 10  |ADD R2,R2,#320..|
00001f00  4a 21 4c 44 52 42 20 52  33 2c 5b 52 31 31 2c 23  |J!LDRB R3,[R11,#|
00001f10  36 5d 3a 53 54 52 42 20  52 33 2c 5b 52 32 5d 0d  |6]:STRB R3,[R2].|
00001f20  10 54 33 4c 44 52 42 20  52 33 2c 5b 52 31 31 2c  |.T3LDRB R3,[R11,|
00001f30  23 37 5d 3a 53 54 52 42  20 52 33 2c 5b 52 32 2c  |#7]:STRB R3,[R2,|
00001f40  23 31 5d 3a 41 44 44 20  52 32 2c 52 32 2c 23 33  |#1]:ADD R2,R2,#3|
00001f50  32 30 0d 10 5e 21 4c 44  52 42 20 52 33 2c 5b 52  |20..^!LDRB R3,[R|
00001f60  31 31 2c 23 38 5d 3a 53  54 52 42 20 52 33 2c 5b  |11,#8]:STRB R3,[|
00001f70  52 32 5d 0d 10 68 33 4c  44 52 42 20 52 33 2c 5b  |R2]..h3LDRB R3,[|
00001f80  52 31 31 2c 23 39 5d 3a  53 54 52 42 20 52 33 2c  |R11,#9]:STRB R3,|
00001f90  5b 52 32 2c 23 31 5d 3a  41 44 44 20 52 32 2c 52  |[R2,#1]:ADD R2,R|
00001fa0  32 2c 23 33 32 30 0d 10  72 22 4c 44 52 42 20 52  |2,#320..r"LDRB R|
00001fb0  33 2c 5b 52 31 31 2c 23  31 30 5d 3a 53 54 52 42  |3,[R11,#10]:STRB|
00001fc0  20 52 33 2c 5b 52 32 5d  0d 10 7c 34 4c 44 52 42  | R3,[R2]..|4LDRB|
00001fd0  20 52 33 2c 5b 52 31 31  2c 23 31 31 5d 3a 53 54  | R3,[R11,#11]:ST|
00001fe0  52 42 20 52 33 2c 5b 52  32 2c 23 31 5d 3a 41 44  |RB R3,[R2,#1]:AD|
00001ff0  44 20 52 32 2c 52 32 2c  23 33 32 30 0d 10 86 22  |D R2,R2,#320..."|
00002000  4c 44 52 42 20 52 33 2c  5b 52 31 31 2c 23 31 32  |LDRB R3,[R11,#12|
00002010  5d 3a 53 54 52 42 20 52  33 2c 5b 52 32 5d 0d 10  |]:STRB R3,[R2]..|
00002020  90 34 4c 44 52 42 20 52  33 2c 5b 52 31 31 2c 23  |.4LDRB R3,[R11,#|
00002030  31 33 5d 3a 53 54 52 42  20 52 33 2c 5b 52 32 2c  |13]:STRB R3,[R2,|
00002040  23 31 5d 3a 41 44 44 20  52 32 2c 52 32 2c 23 33  |#1]:ADD R2,R2,#3|
00002050  32 30 0d 10 9a 22 4c 44  52 42 20 52 33 2c 5b 52  |20..."LDRB R3,[R|
00002060  31 31 2c 23 31 34 5d 3a  53 54 52 42 20 52 33 2c  |11,#14]:STRB R3,|
00002070  5b 52 32 5d 0d 10 a4 34  4c 44 52 42 20 52 33 2c  |[R2]...4LDRB R3,|
00002080  5b 52 31 31 2c 23 31 35  5d 3a 53 54 52 42 20 52  |[R11,#15]:STRB R|
00002090  33 2c 5b 52 32 2c 23 31  5d 3a 41 44 44 20 52 32  |3,[R2,#1]:ADD R2|
000020a0  2c 52 32 2c 23 33 32 30  0d 10 ae 22 4c 44 52 42  |,R2,#320..."LDRB|
000020b0  20 52 33 2c 5b 52 31 31  2c 23 31 36 5d 3a 53 54  | R3,[R11,#16]:ST|
000020c0  52 42 20 52 33 2c 5b 52  32 5d 0d 10 b8 25 4c 44  |RB R3,[R2]...%LD|
000020d0  52 42 20 52 33 2c 5b 52  31 31 2c 23 31 37 5d 3a  |RB R3,[R11,#17]:|
000020e0  53 54 52 42 20 52 33 2c  5b 52 32 2c 23 31 5d 0d  |STRB R3,[R2,#1].|
000020f0  10 c2 25 53 55 42 20 52  31 2c 52 31 2c 23 62 73  |..%SUB R1,R1,#bs|
00002100  70 65 65 64 3a 53 54 52  20 52 31 2c 5b 52 31 30  |peed:STR R1,[R10|
00002110  2c 23 34 5d 0d 10 cc 0e  43 4d 50 20 52 31 2c 23  |,#4]....CMP R1,#|
00002120  32 34 0d 10 d6 0f 4d 4f  56 4c 54 20 52 30 2c 23  |24....MOVLT R0,#|
00002130  30 0d 10 e0 10 53 54 52  20 52 30 2c 5b 52 31 30  |0....STR R0,[R10|
00002140  5d 0d 10 ea 0d 2e 6e 6f  62 75 6c 6c 65 74 0d 10  |].....nobullet..|
00002150  f4 12 41 44 44 20 52 31  30 2c 52 31 30 2c 23 38  |..ADD R10,R10,#8|
00002160  0d 10 fe 10 41 44 44 20  52 39 2c 52 39 2c 23 31  |....ADD R9,R9,#1|
00002170  0d 11 08 0f 43 4d 50 20  52 39 2c 23 4e 42 25 0d  |....CMP R9,#NB%.|
00002180  11 12 0d 42 4c 54 20 62  6c 6f 6f 70 0d 11 1c 1a  |...BLT bloop....|
00002190  4c 44 4d 46 44 20 52 31  33 21 2c 7b 52 30 2d 52  |LDMFD R13!,{R0-R|
000021a0  31 32 2c 50 43 7d 0d 11  26 10 2e 62 75 6c 6c 65  |12,PC}..&..bulle|
000021b0  74 73 74 61 74 73 0d 11  30 12 45 51 55 44 20 30  |tstats..0.EQUD 0|
000021c0  3a 45 51 55 44 20 30 3a  0d 11 3a 3c 45 51 55 44  |:EQUD 0:..:<EQUD|
000021d0  20 30 3a 45 51 55 44 20  30 3a 45 51 55 44 20 30  | 0:EQUD 0:EQUD 0|
000021e0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 30 3a 45  |:EQUD 0:EQUD 0:E|
000021f0  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
00002200  44 20 30 3a 0d 11 44 24  2e 70 6c 61 79 65 72 64  |D 0:..D$.playerd|
00002210  61 74 61 73 74 61 72 74  3a 45 51 55 44 20 70 6c  |atastart:EQUD pl|
00002220  61 79 65 72 64 61 74 61  0d 11 4e 0b 2e 70 6c 61  |ayerdata..N..pla|
00002230  79 65 72 0d 11 58 1b 53  54 4d 46 44 20 52 31 33  |yer..X.STMFD R13|
00002240  21 2c 7b 52 30 2d 52 31  32 2c 52 31 34 7d 0d 11  |!,{R0-R12,R14}..|
00002250  62 13 4c 44 52 20 52 31  32 2c 73 63 72 61 64 64  |b.LDR R12,scradd|
00002260  72 0d 11 6c 11 4c 44 52  20 52 31 32 2c 5b 52 31  |r..l.LDR R12,[R1|
00002270  32 5d 0d 11 76 1b 4c 44  52 20 52 31 31 2c 70 6c  |2]..v.LDR R11,pl|
00002280  61 79 65 72 64 61 74 61  73 74 61 72 74 0d 11 80  |ayerdatastart...|
00002290  12 4c 44 52 20 52 30 2c  70 6c 61 79 65 72 78 0d  |.LDR R0,playerx.|
000022a0  11 8a 12 4c 44 52 20 52  31 2c 70 6c 61 79 65 72  |...LDR R1,player|
000022b0  79 0d 11 94 0f 4d 4f 56  20 52 32 2c 23 33 32 30  |y....MOV R2,#320|
000022c0  0d 11 9e 10 4d 55 4c 20  52 32 2c 52 31 2c 52 32  |....MUL R2,R1,R2|
000022d0  0d 11 a8 10 41 44 44 20  52 32 2c 52 32 2c 52 30  |....ADD R2,R2,R0|
000022e0  0d 11 b2 11 41 44 44 20  52 32 2c 52 32 2c 52 31  |....ADD R2,R2,R1|
000022f0  32 0d 11 bc 0e 4d 4f 56  20 52 31 30 2c 23 30 0d  |2....MOV R10,#0.|
00002300  11 c6 0d 4d 4f 56 20 52  39 2c 23 30 0d 11 d0 0e  |...MOV R9,#0....|
00002310  2e 70 70 6c 6f 74 6c 6f  6f 70 0d 11 da 15 4c 44  |.pplotloop....LD|
00002320  52 42 20 52 33 2c 5b 52  31 31 2c 52 31 30 5d 0d  |RB R3,[R11,R10].|
00002330  11 e4 0d 43 4d 50 20 52  33 2c 23 30 0d 11 ee 15  |...CMP R3,#0....|
00002340  53 54 52 4e 45 42 20 52  33 2c 5b 52 32 2c 52 39  |STRNEB R3,[R2,R9|
00002350  5d 0d 11 f8 12 41 44 44  20 52 31 30 2c 52 31 30  |]....ADD R10,R10|
00002360  2c 23 31 0d 12 02 10 41  44 44 20 52 39 2c 52 39  |,#1....ADD R9,R9|
00002370  2c 23 31 0d 12 0c 0e 43  4d 50 20 52 39 2c 23 31  |,#1....CMP R9,#1|
00002380  36 0d 12 16 11 42 4c 54  20 70 70 6c 6f 74 6c 6f  |6....BLT pplotlo|
00002390  6f 70 0d 12 20 0d 4d 4f  56 20 52 39 2c 23 30 0d  |op.. .MOV R9,#0.|
000023a0  12 2a 12 41 44 44 20 52  32 2c 52 32 2c 23 33 32  |.*.ADD R2,R2,#32|
000023b0  30 0d 12 34 12 43 4d 50  20 52 31 30 2c 23 31 36  |0..4.CMP R10,#16|
000023c0  2a 31 37 0d 12 3e 11 42  4c 54 20 70 70 6c 6f 74  |*17..>.BLT pplot|
000023d0  6c 6f 6f 70 0d 12 48 13  4c 44 52 20 52 31 32 2c  |loop..H.LDR R12,|
000023e0  70 6c 61 79 65 72 78 0d  12 52 13 4c 44 52 20 52  |playerx..R.LDR R|
000023f0  31 31 2c 70 6c 61 79 65  72 79 0d 12 5c 0f 4d 4f  |11,playery..\.MO|
00002400  56 20 52 30 2c 23 31 32  31 0d 12 66 0e 43 4d 50  |V R0,#121..f.CMP|
00002410  20 52 31 32 2c 23 38 0d  12 70 0e 42 4c 45 20 6e  | R12,#8..p.BLE n|
00002420  6f 6c 65 66 74 0d 12 7a  14 4d 4f 56 20 52 31 2c  |oleft..z.MOV R1,|
00002430  23 39 37 20 82 20 26 38  30 0d 12 84 11 53 57 49  |#97 . &80....SWI|
00002440  20 22 4f 53 5f 42 79 74  65 22 0d 12 8e 0f 43 4d  | "OS_Byte"....CM|
00002450  50 20 52 31 2c 23 26 46  46 0d 12 98 18 53 55 42  |P R1,#&FF....SUB|
00002460  45 51 20 52 31 32 2c 52  31 32 2c 23 73 70 65 65  |EQ R12,R12,#spee|
00002470  64 0d 12 a2 0b 2e 6e 6f  6c 65 66 74 0d 12 ac 10  |d.....noleft....|
00002480  43 4d 50 20 52 31 32 2c  23 32 39 36 0d 12 b6 0f  |CMP R12,#296....|
00002490  42 47 45 20 6e 6f 72 69  67 68 74 0d 12 c0 22 4d  |BGE noright..."M|
000024a0  4f 56 20 52 31 2c 23 36  36 20 82 20 26 38 30 3a  |OV R1,#66 . &80:|
000024b0  53 57 49 20 22 4f 53 5f  42 79 74 65 22 0d 12 ca  |SWI "OS_Byte"...|
000024c0  0f 43 4d 50 20 52 31 2c  23 26 46 46 0d 12 d4 18  |.CMP R1,#&FF....|
000024d0  41 44 44 45 51 20 52 31  32 2c 52 31 32 2c 23 73  |ADDEQ R12,R12,#s|
000024e0  70 65 65 64 0d 12 de 0c  2e 6e 6f 72 69 67 68 74  |peed.....noright|
000024f0  0d 12 e8 13 53 54 52 20  52 31 32 2c 70 6c 61 79  |....STR R12,play|
00002500  65 72 78 0d 12 f2 10 43  4d 50 20 52 31 31 2c 23  |erx....CMP R11,#|
00002510  32 32 32 0d 12 fc 0e 42  47 45 20 6e 6f 64 6f 77  |222....BGE nodow|
00002520  6e 0d 13 06 23 4d 4f 56  20 52 31 2c 23 31 30 34  |n...#MOV R1,#104|
00002530  20 82 20 26 38 30 3a 53  57 49 20 22 4f 53 5f 42  | . &80:SWI "OS_B|
00002540  79 74 65 22 0d 13 10 0f  43 4d 50 20 52 31 2c 23  |yte"....CMP R1,#|
00002550  26 46 46 0d 13 1a 18 41  44 44 45 51 20 52 31 31  |&FF....ADDEQ R11|
00002560  2c 52 31 31 2c 23 73 70  65 65 64 0d 13 24 0b 2e  |,R11,#speed..$..|
00002570  6e 6f 64 6f 77 6e 0d 13  2e 0f 43 4d 50 20 52 31  |nodown....CMP R1|
00002580  31 2c 23 38 30 0d 13 38  0c 42 4c 45 20 6e 6f 75  |1,#80..8.BLE nou|
00002590  70 0d 13 42 22 4d 4f 56  20 52 31 2c 23 37 39 20  |p..B"MOV R1,#79 |
000025a0  82 20 26 38 30 3a 53 57  49 20 22 4f 53 5f 42 79  |. &80:SWI "OS_By|
000025b0  74 65 22 0d 13 4c 0f 43  4d 50 20 52 31 2c 23 26  |te"..L.CMP R1,#&|
000025c0  46 46 0d 13 56 18 53 55  42 45 51 20 52 31 31 2c  |FF..V.SUBEQ R11,|
000025d0  52 31 31 2c 23 73 70 65  65 64 0d 13 60 09 2e 6e  |R11,#speed..`..n|
000025e0  6f 75 70 0d 13 6a 13 53  54 52 20 52 31 31 2c 70  |oup..j.STR R11,p|
000025f0  6c 61 79 65 72 79 0d 13  74 22 4d 4f 56 20 52 31  |layery..t"MOV R1|
00002600  2c 23 37 33 20 82 20 26  38 30 3a 53 57 49 20 22  |,#73 . &80:SWI "|
00002610  4f 53 5f 42 79 74 65 22  0d 13 7e 11 4c 44 52 20  |OS_Byte"..~.LDR |
00002620  52 35 2c 72 65 74 75 72  6e 0d 13 88 0d 43 4d 50  |R5,return....CMP|
00002630  20 52 35 2c 52 31 0d 13  92 0e 42 45 51 20 6e 6f  | R5,R1....BEQ no|
00002640  66 69 72 65 0d 13 9c 11  53 54 52 20 52 31 2c 72  |fire....STR R1,r|
00002650  65 74 75 72 6e 0d 13 a6  0f 43 4d 50 20 52 31 2c  |eturn....CMP R1,|
00002660  23 26 46 46 0d 13 b0 0e  42 4e 45 20 6e 6f 66 69  |#&FF....BNE nofi|
00002670  72 65 0d 13 ba 17 41 44  52 20 52 31 30 2c 62 75  |re....ADR R10,bu|
00002680  6c 6c 65 74 73 74 61 74  73 0d 13 c4 0d 4d 4f 56  |lletstats....MOV|
00002690  20 52 39 2c 23 30 0d 13  ce 0d 2e 66 69 6e 64 6c  | R9,#0.....findl|
000026a0  6f 6f 70 0d 13 d8 13 4c  44 52 20 52 30 2c 5b 52  |oop....LDR R0,[R|
000026b0  31 30 2c 52 39 5d 0d 13  e2 0d 43 4d 50 20 52 30  |10,R9]....CMP R0|
000026c0  2c 23 30 0d 13 ec 11 42  45 51 20 66 6f 75 6e 64  |,#0....BEQ found|
000026d0  66 69 72 65 0d 13 f6 10  41 44 44 20 52 39 2c 52  |fire....ADD R9,R|
000026e0  39 2c 23 38 0d 14 00 0f  43 4d 50 20 52 39 2c 23  |9,#8....CMP R9,#|
000026f0  38 2a 35 0d 14 0a 10 42  4c 54 20 66 69 6e 64 6c  |8*5....BLT findl|
00002700  6f 6f 70 0d 14 14 0c 42  20 6e 6f 66 69 72 65 0d  |oop....B nofire.|
00002710  14 1e 0e 2e 66 6f 75 6e  64 66 69 72 65 0d 14 28  |....foundfire..(|
00002720  12 41 44 44 20 52 31 32  2c 52 31 32 2c 23 37 0d  |.ADD R12,R12,#7.|
00002730  14 32 14 53 54 52 20 52  31 32 2c 5b 52 31 30 2c  |.2.STR R12,[R10,|
00002740  52 39 5d 0d 14 3c 10 41  44 44 20 52 39 2c 52 39  |R9]..<.ADD R9,R9|
00002750  2c 23 34 0d 14 46 14 53  54 52 20 52 31 31 2c 5b  |,#4..F.STR R11,[|
00002760  52 31 30 2c 52 39 5d 0d  14 50 0d 4d 4f 56 20 52  |R10,R9]..P.MOV R|
00002770  30 2c 23 31 0d 14 5a 11  5d 3a e7 20 61 72 6d 33  |0,#1..Z.]:. arm3|
00002780  25 3d a3 20 8c 0d 14 64  0d 5b 4f 50 54 20 70 61  |%=. ...d.[OPT pa|
00002790  73 73 0d 14 6e 12 41 44  52 20 52 31 2c 62 73 74  |ss..n.ADR R1,bst|
000027a0  72 69 6e 67 0d 14 78 20  53 57 49 20 22 53 6f 75  |ring..x SWI "Sou|
000027b0  6e 64 5f 41 74 74 61 63  68 4e 61 6d 65 64 56 6f  |nd_AttachNamedVo|
000027c0  69 63 65 22 0d 14 82 05  5d 0d 14 8c 05 cd 0d 14  |ice"....].......|
000027d0  96 0d 5b 4f 50 54 20 70  61 73 73 0d 14 a0 0f 4c  |..[OPT pass....L|
000027e0  44 52 20 52 31 2c 62 61  6d 70 0d 14 aa 0f 4c 44  |DR R1,bamp....LD|
000027f0  52 20 52 32 2c 62 70 69  74 0d 14 b4 0f 4d 4f 56  |R R2,bpit....MOV|
00002800  20 52 33 2c 23 26 46 45  0d 14 be 17 53 57 49 20  | R3,#&FE....SWI |
00002810  22 53 6f 75 6e 64 5f 43  6f 6e 74 72 6f 6c 22 0d  |"Sound_Control".|
00002820  14 c8 0b 2e 6e 6f 66 69  72 65 0d 14 d2 1a 4c 44  |....nofire....LD|
00002830  4d 46 44 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |MFD R13!,{R0-R12|
00002840  2c 50 43 7d 0d 14 dc 1b  2e 70 6c 61 79 65 72 78  |,PC}.....playerx|
00002850  3a 45 51 55 44 20 28 33  32 30 2f 32 29 2d 38 0d  |:EQUD (320/2)-8.|
00002860  14 e6 15 2e 70 6c 61 79  65 72 79 3a 45 51 55 44  |....playery:EQUD|
00002870  20 32 30 30 0d 14 f0 14  2e 62 61 6d 70 3a 45 51  | 200.....bamp:EQ|
00002880  55 44 20 26 46 46 46 31  0d 14 fa 14 2e 62 70 69  |UD &FFF1.....bpi|
00002890  74 3a 45 51 55 44 20 26  31 31 32 38 0d 15 04 24  |t:EQUD &1128...$|
000028a0  2e 62 73 74 72 69 6e 67  3a 45 51 55 53 20 22 5a  |.bstring:EQUS "Z|
000028b0  61 70 4d 6f 64 22 2b bd  20 30 3a 41 4c 49 47 4e  |apMod"+. 0:ALIGN|
000028c0  0d 15 0e 12 2e 72 65 74  75 72 6e 3a 45 51 55 44  |.....return:EQUD|
000028d0  20 30 0d 15 18 15 2e 6f  66 66 70 6f 73 3a 45 51  | 0.....offpos:EQ|
000028e0  55 44 20 6f 66 66 32 0d  15 22 16 2e 67 6d 61 70  |UD off2.."..gmap|
000028f0  64 61 74 61 3a 45 51 55  44 20 6d 61 70 0d 15 2c  |data:EQUD map..,|
00002900  18 2e 67 6d 61 70 70 6f  73 3a 45 51 55 44 20 6d  |..gmappos:EQUD m|
00002910  61 70 70 6f 73 0d 15 36  1c 2e 67 73 63 6f 72 65  |appos..6..gscore|
00002920  73 74 61 74 73 3a 45 51  55 44 20 73 63 6f 72 65  |stats:EQUD score|
00002930  73 0d 15 40 19 2e 67 73  63 6f 72 65 70 6f 73 3a  |s..@..gscorepos:|
00002940  45 51 55 44 20 73 63 6f  72 65 0d 15 4a 13 2e 67  |EQUD score..J..g|
00002950  72 6f 75 6e 64 68 69 74  63 68 65 63 6b 0d 15 54  |roundhitcheck..T|
00002960  1b 53 54 4d 46 44 20 52  31 33 21 2c 7b 52 30 2d  |.STMFD R13!,{R0-|
00002970  52 31 32 2c 52 31 34 7d  0d 15 5e 17 41 44 52 20  |R12,R14}..^.ADR |
00002980  52 31 31 2c 62 75 6c 6c  65 74 73 74 61 74 73 0d  |R11,bulletstats.|
00002990  15 68 13 4c 44 52 20 52  31 32 2c 73 63 72 61 64  |.h.LDR R12,scrad|
000029a0  64 72 0d 15 72 11 4c 44  52 20 52 31 32 2c 5b 52  |dr..r.LDR R12,[R|
000029b0  31 32 5d 0d 15 7c 0e 4d  4f 56 20 52 31 30 2c 23  |12]..|.MOV R10,#|
000029c0  30 0d 15 86 11 4c 44 52  20 52 39 2c 6f 66 66 70  |0....LDR R9,offp|
000029d0  6f 73 0d 15 90 0f 4c 44  52 20 52 39 2c 5b 52 39  |os....LDR R9,[R9|
000029e0  5d 0d 15 9a 0e 4d 4f 56  20 52 38 2c 23 33 32 0d  |]....MOV R8,#32.|
000029f0  15 a4 10 53 55 42 20 52  39 2c 52 38 2c 52 39 0d  |...SUB R9,R8,R9.|
00002a00  15 ae 1e 4c 44 52 20 52  38 2c 67 6d 61 70 70 6f  |...LDR R8,gmappo|
00002a10  73 3a 4c 44 52 20 52 38  2c 5b 52 38 5d 0d 15 b8  |s:LDR R8,[R8]...|
00002a20  13 4c 44 52 20 52 37 2c  67 6d 61 70 64 61 74 61  |.LDR R7,gmapdata|
00002a30  0d 15 c2 16 4c 44 52 20  52 36 2c 67 73 63 6f 72  |....LDR R6,gscor|
00002a40  65 73 74 61 74 73 0d 15  cc 14 4c 44 52 20 52 35  |estats....LDR R5|
00002a50  2c 67 73 63 6f 72 65 70  6f 73 0d 15 d6 15 2e 62  |,gscorepos.....b|
00002a60  63 68 65 63 6b 67 72 6f  75 6e 64 6c 6f 6f 70 0d  |checkgroundloop.|
00002a70  15 e0 10 4c 44 52 20 52  30 2c 5b 52 31 31 5d 0d  |...LDR R0,[R11].|
00002a80  15 ea 0d 43 4d 50 20 52  30 2c 23 30 0d 15 f4 13  |...CMP R0,#0....|
00002a90  42 45 51 20 67 63 5f 6e  6f 62 75 6c 6c 65 74 0d  |BEQ gc_nobullet.|
00002aa0  15 fe 14 4d 4f 56 20 52  30 2c 52 30 2c 4c 53 52  |...MOV R0,R0,LSR|
00002ab0  20 23 35 0d 16 08 13 4c  44 52 20 52 32 2c 5b 52  | #5....LDR R2,[R|
00002ac0  31 31 2c 23 34 5d 0d 16  12 10 41 44 44 20 52 32  |11,#4]....ADD R2|
00002ad0  2c 52 32 2c 52 39 0d 16  1c 14 4d 4f 56 20 52 31  |,R2,R9....MOV R1|
00002ae0  2c 52 32 2c 4c 53 52 20  23 35 0d 16 26 1b 4d 4f  |,R2,LSR #5..&.MO|
00002af0  56 20 52 32 2c 23 31 30  3a 4d 55 4c 20 52 32 2c  |V R2,#10:MUL R2,|
00002b00  52 31 2c 52 32 0d 16 30  10 41 44 44 20 52 32 2c  |R1,R2..0.ADD R2,|
00002b10  52 32 2c 52 30 0d 16 3a  10 41 44 44 20 52 32 2c  |R2,R0..:.ADD R2,|
00002b20  52 32 2c 52 37 0d 16 44  10 41 44 44 20 52 32 2c  |R2,R7..D.ADD R2,|
00002b30  52 32 2c 52 38 0d 16 4e  10 4c 44 52 42 20 52 30  |R2,R8..N.LDRB R0|
00002b40  2c 5b 52 32 5d 0d 16 58  19 4c 44 52 20 52 31 2c  |,[R2]..X.LDR R1,|
00002b50  5b 52 36 2c 52 30 2c 4c  53 4c 20 23 32 5d 0d 16  |[R6,R0,LSL #2]..|
00002b60  62 0d 43 4d 50 20 52 31  2c 23 30 0d 16 6c 13 42  |b.CMP R1,#0..l.B|
00002b70  45 51 20 67 63 5f 6e 6f  62 75 6c 6c 65 74 0d 16  |EQ gc_nobullet..|
00002b80  76 0f 4c 44 52 20 52 34  2c 5b 52 35 5d 0d 16 80  |v.LDR R4,[R5]...|
00002b90  12 4c 44 52 20 52 33 2c  61 6e 64 64 61 74 61 0d  |.LDR R3,anddata.|
00002ba0  16 8a 0e 80 20 52 33 2c  52 33 2c 52 31 0d 16 94  |.... R3,R3,R1...|
00002bb0  10 41 44 44 20 52 34 2c  52 34 2c 52 33 0d 16 9e  |.ADD R4,R4,R3...|
00002bc0  0f 53 54 52 20 52 34 2c  5b 52 35 5d 0d 16 a8 15  |.STR R4,[R5]....|
00002bd0  4d 4f 56 20 52 31 2c 52  31 2c 4c 53 52 20 23 33  |MOV R1,R1,LSR #3|
00002be0  31 0d 16 b2 10 41 44 44  20 52 31 2c 52 31 2c 23  |1....ADD R1,R1,#|
00002bf0  31 0d 16 bc 10 53 54 52  42 20 52 31 2c 5b 52 32  |1....STRB R1,[R2|
00002c00  5d 0d 16 c6 0d 4d 4f 56  20 52 30 2c 23 30 0d 16  |]....MOV R0,#0..|
00002c10  d0 10 53 54 52 20 52 30  2c 5b 52 31 31 5d 0d 16  |..STR R0,[R11]..|
00002c20  da 16 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 30  |..STMFD R13!,{R0|
00002c30  2d 52 33 7d 0d 16 e4 11  5d 3a e7 20 61 72 6d 33  |-R3}....]:. arm3|
00002c40  25 3d a3 20 8c 0d 16 ee  0d 5b 4f 50 54 20 70 61  |%=. .....[OPT pa|
00002c50  73 73 0d 16 f8 0d 4d 4f  56 20 52 30 2c 23 31 0d  |ss....MOV R0,#1.|
00002c60  17 02 12 41 44 52 20 52  31 2c 67 73 74 72 69 6e  |...ADR R1,gstrin|
00002c70  67 0d 17 0c 20 53 57 49  20 22 53 6f 75 6e 64 5f  |g... SWI "Sound_|
00002c80  41 74 74 61 63 68 4e 61  6d 65 64 56 6f 69 63 65  |AttachNamedVoice|
00002c90  22 0d 17 16 05 5d 0d 17  20 05 cc 0d 17 2a 0d 5b  |"....].. ....*.[|
00002ca0  4f 50 54 20 70 61 73 73  0d 17 34 0d 4d 4f 56 20  |OPT pass..4.MOV |
00002cb0  52 30 2c 23 32 0d 17 3e  05 5d 0d 17 48 05 cd 0d  |R0,#2..>.]..H...|
00002cc0  17 52 0d 5b 4f 50 54 20  70 61 73 73 0d 17 5c 0f  |.R.[OPT pass..\.|
00002cd0  4c 44 52 20 52 31 2c 67  61 6d 70 0d 17 66 0f 4c  |LDR R1,gamp..f.L|
00002ce0  44 52 20 52 32 2c 67 70  69 74 0d 17 70 0f 4d 4f  |DR R2,gpit..p.MO|
00002cf0  56 20 52 33 2c 23 26 46  45 0d 17 7a 17 53 57 49  |V R3,#&FE..z.SWI|
00002d00  20 22 53 6f 75 6e 64 5f  43 6f 6e 74 72 6f 6c 22  | "Sound_Control"|
00002d10  0d 17 84 16 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |....LDMFD R13!,{|
00002d20  52 30 2d 52 33 7d 0d 17  8e 10 2e 67 63 5f 6e 6f  |R0-R3}.....gc_no|
00002d30  62 75 6c 6c 65 74 0d 17  98 12 41 44 44 20 52 31  |bullet....ADD R1|
00002d40  30 2c 52 31 30 2c 23 31  0d 17 a2 12 41 44 44 20  |0,R10,#1....ADD |
00002d50  52 31 31 2c 52 31 31 2c  23 38 0d 17 ac 10 43 4d  |R11,R11,#8....CM|
00002d60  50 20 52 31 30 2c 23 4e  42 25 0d 17 b6 18 42 4c  |P R10,#NB%....BL|
00002d70  54 20 62 63 68 65 63 6b  67 72 6f 75 6e 64 6c 6f  |T bcheckgroundlo|
00002d80  6f 70 0d 17 c0 1a 4c 44  4d 46 44 20 52 31 33 21  |op....LDMFD R13!|
00002d90  2c 7b 52 30 2d 52 31 32  2c 50 43 7d 0d 17 ca 14  |,{R0-R12,PC}....|
00002da0  2e 64 6f 74 64 61 74 61  3a 45 51 55 44 20 2d 31  |.dotdata:EQUD -1|
00002db0  0d 17 d4 14 2e 67 61 6d  70 3a 45 51 55 44 20 26  |.....gamp:EQUD &|
00002dc0  46 46 46 31 0d 17 de 14  2e 67 70 69 74 3a 45 51  |FFF1.....gpit:EQ|
00002dd0  55 44 20 26 31 33 38 30  0d 17 e8 27 2e 67 73 74  |UD &1380...'.gst|
00002de0  72 69 6e 67 3a 45 51 55  53 20 22 45 78 70 6c 6f  |ring:EQUS "Explo|
00002df0  31 22 3a 45 51 55 44 20  30 3a 41 4c 49 47 4e 0d  |1":EQUD 0:ALIGN.|
00002e00  17 f2 17 2e 61 6e 64 64  61 74 61 3a 45 51 55 44  |....anddata:EQUD|
00002e10  20 26 46 46 46 46 0d 17  fc 20 2e 65 78 70 64 61  | &FFFF... .expda|
00002e20  74 61 73 74 61 72 74 3a  45 51 55 44 20 65 78 70  |tastart:EQUD exp|
00002e30  6c 6f 64 61 74 61 0d 18  06 22 2e 65 78 70 73 74  |lodata...".expst|
00002e40  61 74 73 73 74 61 72 74  3a 45 51 55 44 20 65 78  |atsstart:EQUD ex|
00002e50  70 6c 6f 73 74 61 74 73  0d 18 10 11 2e 65 78 70  |plostats.....exp|
00002e60  6e 6f 3a 45 51 55 44 20  30 0d 18 1a 0c 2e 65 78  |no:EQUD 0.....ex|
00002e70  70 69 6e 69 74 0d 18 24  1b 53 54 4d 46 44 20 52  |pinit..$.STMFD R|
00002e80  31 33 21 2c 7b 52 30 2d  52 31 32 2c 52 31 34 7d  |13!,{R0-R12,R14}|
00002e90  0d 18 2e 11 4c 44 52 20  52 31 32 2c 65 78 70 6e  |....LDR R12,expn|
00002ea0  6f 0d 18 38 16 4d 4f 56  20 52 31 31 2c 52 31 32  |o..8.MOV R11,R12|
00002eb0  2c 4c 53 4c 20 23 33 0d  18 42 19 4c 44 52 20 52  |,LSL #3..B.LDR R|
00002ec0  31 30 2c 65 78 70 73 74  61 74 73 73 74 61 72 74  |10,expstatsstart|
00002ed0  0d 18 4c 14 53 54 52 20  52 30 2c 5b 52 31 30 2c  |..L.STR R0,[R10,|
00002ee0  52 31 31 5d 0d 18 56 0d  4d 4f 56 20 52 31 2c 23  |R11]..V.MOV R1,#|
00002ef0  30 0d 18 60 12 41 44 44  20 52 31 31 2c 52 31 31  |0..`.ADD R11,R11|
00002f00  2c 23 34 0d 18 6a 14 53  54 52 20 52 31 2c 5b 52  |,#4..j.STR R1,[R|
00002f10  31 30 2c 52 31 31 5d 0d  18 74 12 41 44 44 20 52  |10,R11]..t.ADD R|
00002f20  31 32 2c 52 31 32 2c 23  31 0d 18 7e 0f 43 4d 50  |12,R12,#1..~.CMP|
00002f30  20 52 31 32 2c 23 45 25  0d 18 88 0d ec 51 20 52  | R12,#E%.....Q R|
00002f40  31 32 2c 23 30 0d 18 92  11 53 54 52 20 52 31 32  |12,#0....STR R12|
00002f50  2c 65 78 70 6e 6f 0d 18  9c 11 5d 3a e7 20 61 72  |,expno....]:. ar|
00002f60  6d 33 25 3d a3 20 8c 0d  18 a6 0d 5b 4f 50 54 20  |m3%=. .....[OPT |
00002f70  70 61 73 73 0d 18 b0 0d  4d 4f 56 20 52 30 2c 23  |pass....MOV R0,#|
00002f80  31 0d 18 ba 12 41 44 52  20 52 31 2c 65 73 74 72  |1....ADR R1,estr|
00002f90  69 6e 67 0d 18 c4 20 53  57 49 20 22 53 6f 75 6e  |ing... SWI "Soun|
00002fa0  64 5f 41 74 74 61 63 68  4e 61 6d 65 64 56 6f 69  |d_AttachNamedVoi|
00002fb0  63 65 22 0d 18 ce 05 5d  0d 18 d8 05 cc 0d 18 e2  |ce"....]........|
00002fc0  0d 5b 4f 50 54 20 70 61  73 73 0d 18 ec 0d 4d 4f  |.[OPT pass....MO|
00002fd0  56 20 52 30 2c 23 33 0d  18 f6 05 5d 0d 19 00 05  |V R0,#3....]....|
00002fe0  cd 0d 19 0a 0d 5b 4f 50  54 20 70 61 73 73 0d 19  |.....[OPT pass..|
00002ff0  14 10 4c 44 52 20 52 31  2c 65 78 61 6d 70 0d 19  |..LDR R1,examp..|
00003000  1e 10 4c 44 52 20 52 32  2c 65 78 70 69 74 0d 19  |..LDR R2,expit..|
00003010  28 0f 4d 4f 56 20 52 33  2c 23 26 46 45 0d 19 32  |(.MOV R3,#&FE..2|
00003020  17 53 57 49 20 22 53 6f  75 6e 64 5f 43 6f 6e 74  |.SWI "Sound_Cont|
00003030  72 6f 6c 22 0d 19 3c 1a  4c 44 4d 46 44 20 52 31  |rol"..<.LDMFD R1|
00003040  33 21 2c 7b 52 30 2d 52  31 32 2c 50 43 7d 0d 19  |3!,{R0-R12,PC}..|
00003050  46 0d 2e 65 78 70 63 6f  75 6e 74 0d 19 50 0a 45  |F..expcount..P.E|
00003060  51 55 44 20 30 0d 19 5a  15 2e 65 78 70 69 74 3a  |QUD 0..Z..expit:|
00003070  45 51 55 44 20 26 31 32  30 30 0d 19 64 15 2e 65  |EQUD &1200..d..e|
00003080  78 61 6d 70 3a 45 51 55  44 20 26 46 46 46 31 0d  |xamp:EQUD &FFF1.|
00003090  19 6e 27 2e 65 73 74 72  69 6e 67 3a 45 51 55 53  |.n'.estring:EQUS|
000030a0  20 22 45 78 70 6c 6f 32  22 3a 45 51 55 44 20 30  | "Explo2":EQUD 0|
000030b0  3a 41 4c 49 47 4e 0d 19  78 1f 2e 65 78 73 63 72  |:ALIGN..x..exscr|
000030c0  61 64 64 72 3a 45 51 55  44 20 73 63 72 65 65 6e  |addr:EQUD screen|
000030d0  73 74 61 72 74 0d 19 82  0c 2e 65 78 70 70 6c 6f  |start.....expplo|
000030e0  74 0d 19 8c 1b 53 54 4d  46 44 20 52 31 33 21 2c  |t....STMFD R13!,|
000030f0  7b 52 30 2d 52 31 32 2c  52 31 34 7d 0d 19 96 19  |{R0-R12,R14}....|
00003100  4c 44 52 20 52 31 32 2c  65 78 70 73 74 61 74 73  |LDR R12,expstats|
00003110  73 74 61 72 74 0d 19 a0  20 4c 44 52 20 52 37 2c  |start... LDR R7,|
00003120  65 78 73 63 72 61 64 64  72 3a 4c 44 52 20 52 37  |exscraddr:LDR R7|
00003130  2c 5b 52 37 5d 0d 19 aa  0e 4d 4f 56 20 52 31 31  |,[R7]....MOV R11|
00003140  2c 23 30 0d 19 b4 17 4c  44 52 20 52 38 2c 65 78  |,#0....LDR R8,ex|
00003150  70 64 61 74 61 73 74 61  72 74 0d 19 be 14 4c 44  |pdatastart....LD|
00003160  52 20 52 31 30 2c 65 78  70 63 6f 75 6e 74 0d 19  |R R10,expcount..|
00003170  c8 12 41 44 44 20 52 31  30 2c 52 31 30 2c 23 31  |..ADD R10,R10,#1|
00003180  0d 19 d2 10 80 20 52 31  30 2c 52 31 30 2c 23 33  |..... R10,R10,#3|
00003190  0d 19 dc 14 53 54 52 20  52 31 30 2c 65 78 70 63  |....STR R10,expc|
000031a0  6f 75 6e 74 0d 19 e6 0c  2e 65 78 70 6c 6f 6f 70  |ount.....exploop|
000031b0  0d 19 f0 14 4c 44 52 20  52 30 2c 5b 52 31 32 2c  |....LDR R0,[R12,|
000031c0  52 31 31 5d 0d 19 fa 12  41 44 44 20 52 31 31 2c  |R11]....ADD R11,|
000031d0  52 31 31 2c 23 34 0d 1a  04 14 4c 44 52 20 52 31  |R11,#4....LDR R1|
000031e0  2c 5b 52 31 32 2c 52 31  31 5d 0d 1a 0e 2e 43 4d  |,[R12,R11]....CM|
000031f0  50 20 52 31 30 2c 23 30  3a 41 44 44 45 51 20 52  |P R10,#0:ADDEQ R|
00003200  31 2c 52 31 2c 23 31 3a  53 54 52 20 52 31 2c 5b  |1,R1,#1:STR R1,[|
00003210  52 31 32 2c 52 31 31 5d  0d 1a 18 0d 43 4d 50 20  |R12,R11]....CMP |
00003220  52 31 2c 23 37 0d 1a 22  0f 42 47 54 20 6e 6f 65  |R1,#7..".BGT noe|
00003230  78 70 6c 6f 0d 1a 2c 10  41 44 44 20 52 30 2c 52  |xplo..,.ADD R0,R|
00003240  30 2c 52 37 0d 1a 36 11  4d 4f 56 20 52 39 2c 23  |0,R7..6.MOV R9,#|
00003250  31 36 2a 31 36 0d 1a 40  10 4d 55 4c 20 52 39 2c  |16*16..@.MUL R9,|
00003260  52 31 2c 52 39 0d 1a 4a  10 41 44 44 20 52 39 2c  |R1,R9..J.ADD R9,|
00003270  52 39 2c 52 38 0d 1a 54  0d 4d 4f 56 20 52 35 2c  |R9,R8..T.MOV R5,|
00003280  23 30 0d 1a 5e 0b 2e 65  70 6c 6f 6f 70 0d 1a 68  |#0..^..eploop..h|
00003290  1b 5d 3a e3 20 57 25 3d  30 20 b8 20 31 35 3a 5b  |.]:. W%=0 . 15:[|
000032a0  4f 50 54 20 70 61 73 73  0d 1a 72 31 4c 44 52 42  |OPT pass..r1LDRB|
000032b0  20 52 32 2c 5b 52 39 2c  23 57 25 5d 3a 43 4d 50  | R2,[R9,#W%]:CMP|
000032c0  20 52 32 2c 23 30 3a 53  54 52 4e 45 42 20 52 32  | R2,#0:STRNEB R2|
000032d0  2c 5b 52 30 2c 23 57 25  5d 0d 1a 7c 11 5d 3a ed  |,[R0,#W%]..|.]:.|
000032e0  3a 5b 4f 50 54 20 70 61  73 73 0d 1a 86 11 41 44  |:[OPT pass....AD|
000032f0  44 20 52 39 2c 52 39 2c  23 31 36 0d 1a 90 12 41  |D R9,R9,#16....A|
00003300  44 44 20 52 30 2c 52 30  2c 23 33 32 30 0d 1a 9a  |DD R0,R0,#320...|
00003310  10 41 44 44 20 52 35 2c  52 35 2c 23 31 0d 1a a4  |.ADD R5,R5,#1...|
00003320  0e 43 4d 50 20 52 35 2c  23 31 36 0d 1a ae 0e 42  |.CMP R5,#16....B|
00003330  4c 54 20 65 70 6c 6f 6f  70 0d 1a b8 0c 2e 6e 6f  |LT eploop.....no|
00003340  65 78 70 6c 6f 0d 1a c2  12 41 44 44 20 52 31 31  |explo....ADD R11|
00003350  2c 52 31 31 2c 23 34 0d  1a cc 11 43 4d 50 20 52  |,R11,#4....CMP R|
00003360  31 31 2c 23 45 25 2a 38  0d 1a d6 0f 42 4c 54 20  |11,#E%*8....BLT |
00003370  65 78 70 6c 6f 6f 70 0d  1a e0 1a 4c 44 4d 46 44  |exploop....LDMFD|
00003380  20 52 31 33 21 2c 7b 52  30 2d 52 31 32 2c 50 43  | R13!,{R0-R12,PC|
00003390  7d 0d 1a ea 0f 2e 61 6c  70 73 63 73 74 61 72 74  |}.....alpscstart|
000033a0  0d 1a f4 14 45 51 55 44  20 73 63 72 65 65 6e 73  |....EQUD screens|
000033b0  74 61 72 74 0d 1a fe 10  2e 61 6c 64 61 74 61 73  |tart.....aldatas|
000033c0  74 61 72 74 0d 1b 08 0f  45 51 55 44 20 61 6c 69  |tart....EQUD ali|
000033d0  65 6e 73 0d 1b 12 1c 2e  61 6c 73 74 61 74 73 3a  |ens.....alstats:|
000033e0  45 51 55 44 20 61 6c 69  65 6e 73 74 61 74 73 0d  |EQUD alienstats.|
000033f0  1b 1c 0b 2e 61 6c 70 6c  6f 74 0d 1b 26 1b 53 54  |....alplot..&.ST|
00003400  4d 46 44 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |MFD R13!,{R0-R12|
00003410  2c 52 31 34 7d 0d 1b 30  16 4c 44 52 20 52 31 32  |,R14}..0.LDR R12|
00003420  2c 61 6c 70 73 63 73 74  61 72 74 0d 1b 3a 11 4c  |,alpscstart..:.L|
00003430  44 52 20 52 31 32 2c 5b  52 31 32 5d 0d 1b 44 17  |DR R12,[R12]..D.|
00003440  4c 44 52 20 52 31 31 2c  61 6c 64 61 74 61 73 74  |LDR R11,aldatast|
00003450  61 72 74 0d 1b 4e 13 4c  44 52 20 52 31 30 2c 61  |art..N.LDR R10,a|
00003460  6c 73 74 61 74 73 0d 1b  58 0d 4d 4f 56 20 52 39  |lstats..X.MOV R9|
00003470  2c 23 30 0d 1b 62 0f 4d  4f 56 20 52 38 2c 23 33  |,#0..b.MOV R8,#3|
00003480  32 30 0d 1b 6c 11 4d 4f  56 20 52 37 2c 23 31 36  |20..l.MOV R7,#16|
00003490  2a 31 36 0d 1b 76 0f 2e  61 6c 70 6c 6f 74 6c 6f  |*16..v..alplotlo|
000034a0  6f 70 0d 1b 80 16 4c 44  4d 49 41 20 52 31 30 21  |op....LDMIA R10!|
000034b0  2c 7b 52 30 2d 52 33 7d  0d 1b 8a 19 43 4d 50 20  |,{R0-R3}....CMP |
000034c0  52 33 2c 23 30 3a 42 45  51 20 6e 6f 61 6c 69 65  |R3,#0:BEQ noalie|
000034d0  6e 0d 1b 94 19 43 4d 50  20 52 30 2c 23 30 3a 42  |n....CMP R0,#0:B|
000034e0  4c 54 20 6e 6f 61 6c 69  65 6e 0d 1b 9e 1e 43 4d  |LT noalien....CM|
000034f0  50 20 52 30 2c 23 33 32  30 2d 31 36 3a 42 47 45  |P R0,#320-16:BGE|
00003500  20 6e 6f 61 6c 69 65 6e  0d 1b a8 19 43 4d 50 20  | noalien....CMP |
00003510  52 31 2c 23 30 3a 42 4c  54 20 6e 6f 61 6c 69 65  |R1,#0:BLT noalie|
00003520  6e 0d 1b b2 1e 43 4d 50  20 52 31 2c 23 32 35 36  |n....CMP R1,#256|
00003530  2d 31 36 3a 42 47 45 20  6e 6f 61 6c 69 65 6e 0d  |-16:BGE noalien.|
00003540  1b bc 10 53 55 42 20 52  33 2c 52 33 2c 23 31 0d  |...SUB R3,R3,#1.|
00003550  1b c6 1e 4d 55 4c 20 52  33 2c 52 37 2c 52 33 3a  |...MUL R3,R7,R3:|
00003560  41 44 44 20 52 33 2c 52  33 2c 52 31 31 0d 1b d0  |ADD R3,R3,R11...|
00003570  10 4d 55 4c 20 52 31 2c  52 38 2c 52 31 0d 1b da  |.MUL R1,R8,R1...|
00003580  10 41 44 44 20 52 30 2c  52 30 2c 52 31 0d 1b e4  |.ADD R0,R0,R1...|
00003590  11 41 44 44 20 52 30 2c  52 30 2c 52 31 32 0d 1b  |.ADD R0,R0,R12..|
000035a0  ee 0d 4d 4f 56 20 52 36  2c 23 30 0d 1b f8 0b 2e  |..MOV R6,#0.....|
000035b0  61 6c 6c 6f 6f 70 0d 1c  02 1b 5d 3a e3 20 57 25  |alloop....]:. W%|
000035c0  3d 30 20 b8 20 31 35 3a  5b 4f 50 54 20 70 61 73  |=0 . 15:[OPT pas|
000035d0  73 0d 1c 0c 31 4c 44 52  42 20 52 31 2c 5b 52 33  |s...1LDRB R1,[R3|
000035e0  2c 23 57 25 5d 3a 43 4d  50 20 52 31 2c 23 30 3a  |,#W%]:CMP R1,#0:|
000035f0  53 54 52 4e 45 42 20 52  31 2c 5b 52 30 2c 23 57  |STRNEB R1,[R0,#W|
00003600  25 5d 0d 1c 16 11 5d 3a  ed 3a 5b 4f 50 54 20 70  |%]....]:.:[OPT p|
00003610  61 73 73 0d 1c 20 12 41  44 44 20 52 30 2c 52 30  |ass.. .ADD R0,R0|
00003620  2c 23 33 32 30 0d 1c 2a  11 41 44 44 20 52 33 2c  |,#320..*.ADD R3,|
00003630  52 33 2c 23 31 36 0d 1c  34 1b 5d 3a e3 20 57 25  |R3,#16..4.]:. W%|
00003640  3d 30 20 b8 20 31 35 3a  5b 4f 50 54 20 70 61 73  |=0 . 15:[OPT pas|
00003650  73 0d 1c 3e 31 4c 44 52  42 20 52 31 2c 5b 52 33  |s..>1LDRB R1,[R3|
00003660  2c 23 57 25 5d 3a 43 4d  50 20 52 31 2c 23 30 3a  |,#W%]:CMP R1,#0:|
00003670  53 54 52 4e 45 42 20 52  31 2c 5b 52 30 2c 23 57  |STRNEB R1,[R0,#W|
00003680  25 5d 0d 1c 48 11 5d 3a  ed 3a 5b 4f 50 54 20 70  |%]..H.]:.:[OPT p|
00003690  61 73 73 0d 1c 52 12 41  44 44 20 52 30 2c 52 30  |ass..R.ADD R0,R0|
000036a0  2c 23 33 32 30 0d 1c 5c  11 41 44 44 20 52 33 2c  |,#320..\.ADD R3,|
000036b0  52 33 2c 23 31 36 0d 1c  66 10 41 44 44 20 52 36  |R3,#16..f.ADD R6|
000036c0  2c 52 36 2c 23 32 0d 1c  70 0e 43 4d 50 20 52 36  |,R6,#2..p.CMP R6|
000036d0  2c 23 31 36 0d 1c 7a 0e  42 4c 54 20 61 6c 6c 6f  |,#16..z.BLT allo|
000036e0  6f 70 0d 1c 84 0c 2e 6e  6f 61 6c 69 65 6e 0d 1c  |op.....noalien..|
000036f0  8e 10 41 44 44 20 52 39  2c 52 39 2c 23 31 0d 1c  |..ADD R9,R9,#1..|
00003700  98 0f 43 4d 50 20 52 39  2c 23 4e 41 25 0d 1c a2  |..CMP R9,#NA%...|
00003710  12 42 4c 54 20 61 6c 70  6c 6f 74 6c 6f 6f 70 0d  |.BLT alplotloop.|
00003720  1c ac 1a 4c 44 4d 46 44  20 52 31 33 21 2c 7b 52  |...LDMFD R13!,{R|
00003730  30 2d 52 31 32 2c 50 43  7d 0d 1c b6 27 2e 63 6b  |0-R12,PC}...'.ck|
00003740  62 75 6c 6c 65 74 73 74  61 74 73 74 61 72 74 3a  |bulletstatstart:|
00003750  45 51 55 44 20 62 75 6c  6c 65 74 73 74 61 74 73  |EQUD bulletstats|
00003760  0d 1c c0 1e 2e 63 6b 61  6c 73 74 61 74 73 3a 45  |.....ckalstats:E|
00003770  51 55 44 20 61 6c 69 65  6e 73 74 61 74 73 0d 1c  |QUD alienstats..|
00003780  ca 1a 2e 63 6b 73 63 6f  72 65 70 6f 73 3a 45 51  |...ckscorepos:EQ|
00003790  55 44 20 73 63 6f 72 65  0d 1c d4 0d 2e 63 68 65  |UD score.....che|
000037a0  63 6b 68 69 74 0d 1c de  1b 53 54 4d 46 44 20 52  |ckhit....STMFD R|
000037b0  31 33 21 2c 7b 52 30 2d  52 31 32 2c 52 31 34 7d  |13!,{R0-R12,R14}|
000037c0  0d 1c e8 1d 4c 44 52 20  52 31 32 2c 63 6b 62 75  |....LDR R12,ckbu|
000037d0  6c 6c 65 74 73 74 61 74  73 74 61 72 74 0d 1c f2  |lletstatstart...|
000037e0  15 4c 44 52 20 52 38 2c  63 6b 73 63 6f 72 65 70  |.LDR R8,ckscorep|
000037f0  6f 73 0d 1c fc 0e 4d 4f  56 20 52 31 30 2c 23 30  |os....MOV R10,#0|
00003800  0d 1d 06 0c 2e 63 6b 6c  6f 6f 70 31 0d 1d 10 16  |.....ckloop1....|
00003810  4c 44 4d 49 41 20 52 31  32 21 2c 7b 52 30 2c 52  |LDMIA R12!,{R0,R|
00003820  31 7d 0d 1d 1a 0d 43 4d  50 20 52 30 2c 23 30 0d  |1}....CMP R0,#0.|
00003830  1d 24 12 42 45 51 20 63  6b 6e 6f 62 75 6c 6c 65  |.$.BEQ cknobulle|
00003840  74 0d 1d 2e 15 4c 44 52  20 52 31 31 2c 63 6b 61  |t....LDR R11,cka|
00003850  6c 73 74 61 74 73 0d 1d  38 10 41 44 44 20 52 30  |lstats..8.ADD R0|
00003860  2c 52 30 2c 23 31 0d 1d  42 0d 4d 4f 56 20 52 39  |,R0,#1..B.MOV R9|
00003870  2c 23 30 0d 1d 4c 0c 2e  63 6b 6c 6f 6f 70 32 0d  |,#0..L..ckloop2.|
00003880  1d 56 16 4c 44 4d 49 41  20 52 31 31 21 2c 7b 52  |.V.LDMIA R11!,{R|
00003890  32 2d 52 35 7d 0d 1d 60  0d 43 4d 50 20 52 35 2c  |2-R5}..`.CMP R5,|
000038a0  23 30 0d 1d 6a 0d 42 45  51 20 6e 6f 68 69 74 0d  |#0..j.BEQ nohit.|
000038b0  1d 74 17 43 4d 50 20 52  30 2c 52 32 3a 42 4c 54  |.t.CMP R0,R2:BLT|
000038c0  20 6e 6f 68 69 74 0d 1d  7e 17 43 4d 50 20 52 31  | nohit..~.CMP R1|
000038d0  2c 52 33 3a 42 4c 54 20  6e 6f 68 69 74 0d 1d 88  |,R3:BLT nohit...|
000038e0  11 41 44 44 20 52 32 2c  52 32 2c 23 31 36 0d 1d  |.ADD R2,R2,#16..|
000038f0  92 17 43 4d 50 20 52 30  2c 52 32 3a 42 47 54 20  |..CMP R0,R2:BGT |
00003900  6e 6f 68 69 74 0d 1d 9c  11 41 44 44 20 52 33 2c  |nohit....ADD R3,|
00003910  52 33 2c 23 31 36 0d 1d  a6 17 43 4d 50 20 52 31  |R3,#16....CMP R1|
00003920  2c 52 33 3a 42 47 54 20  6e 6f 68 69 74 0d 1d b0  |,R3:BGT nohit...|
00003930  11 53 55 42 20 52 32 2c  52 32 2c 23 31 36 0d 1d  |.SUB R2,R2,#16..|
00003940  ba 11 53 55 42 20 52 33  2c 52 33 2c 23 31 36 0d  |..SUB R3,R3,#16.|
00003950  1d c4 0f 4c 44 52 20 52  37 2c 5b 52 38 5d 0d 1d  |...LDR R7,[R8]..|
00003960  ce 0b 42 4c 20 72 61 6e  64 0d 1d d8 10 4c 44 52  |..BL rand....LDR|
00003970  20 52 34 2c 76 61 6c 75  65 0d 1d e2 14 80 20 52  | R4,value..... R|
00003980  34 2c 52 34 2c 23 25 31  31 31 31 31 31 0d 1d ec  |4,R4,#%111111...|
00003990  10 41 44 44 20 52 37 2c  52 37 2c 52 34 0d 1d f6  |.ADD R7,R7,R4...|
000039a0  0f 53 54 52 20 52 37 2c  5b 52 38 5d 0d 1e 00 12  |.STR R7,[R8]....|
000039b0  53 55 42 20 52 31 31 2c  52 31 31 2c 23 34 0d 1e  |SUB R11,R11,#4..|
000039c0  0a 12 53 55 42 20 52 31  32 2c 52 31 32 2c 23 38  |..SUB R12,R12,#8|
000039d0  0d 1e 14 0d 4d 4f 56 20  52 35 2c 23 30 0d 1e 1e  |....MOV R5,#0...|
000039e0  13 53 54 4d 49 41 20 52  31 31 21 2c 7b 52 35 7d  |.STMIA R11!,{R5}|
000039f0  0d 1e 28 16 53 54 4d 49  41 20 52 31 32 21 2c 7b  |..(.STMIA R12!,{|
00003a00  52 35 2c 52 36 7d 0d 1e  32 0f 4d 4f 56 20 52 34  |R5,R6}..2.MOV R4|
00003a10  2c 23 33 32 30 0d 1e 3c  10 4d 55 4c 20 52 34 2c  |,#320..<.MUL R4,|
00003a20  52 33 2c 52 34 0d 1e 46  10 41 44 44 20 52 34 2c  |R3,R4..F.ADD R4,|
00003a30  52 34 2c 52 32 0d 1e 50  0d 4d 4f 56 20 52 33 2c  |R4,R2..P.MOV R3,|
00003a40  52 30 0d 1e 5a 0d 4d 4f  56 20 52 30 2c 52 34 0d  |R0..Z.MOV R0,R4.|
00003a50  1e 64 0e 42 4c 20 65 78  70 69 6e 69 74 0d 1e 6e  |.d.BL expinit..n|
00003a60  0d 4d 4f 56 20 52 30 2c  52 33 0d 1e 78 0a 2e 6e  |.MOV R0,R3..x..n|
00003a70  6f 68 69 74 0d 1e 82 10  41 44 44 20 52 39 2c 52  |ohit....ADD R9,R|
00003a80  39 2c 23 31 0d 1e 8c 0f  43 4d 50 20 52 39 2c 23  |9,#1....CMP R9,#|
00003a90  4e 41 25 0d 1e 96 0f 42  4c 54 20 63 6b 6c 6f 6f  |NA%....BLT ckloo|
00003aa0  70 32 0d 1e a0 0f 2e 63  6b 6e 6f 62 75 6c 6c 65  |p2.....cknobulle|
00003ab0  74 0d 1e aa 12 41 44 44  20 52 31 30 2c 52 31 30  |t....ADD R10,R10|
00003ac0  2c 23 31 0d 1e b4 10 43  4d 50 20 52 31 30 2c 23  |,#1....CMP R10,#|
00003ad0  4e 42 25 0d 1e be 0f 42  4c 54 20 63 6b 6c 6f 6f  |NB%....BLT ckloo|
00003ae0  70 31 0d 1e c8 1a 4c 44  4d 46 44 20 52 31 33 21  |p1....LDMFD R13!|
00003af0  2c 7b 52 30 2d 52 31 32  2c 50 43 7d 0d 1e d2 09  |,{R0-R12,PC}....|
00003b00  2e 72 61 6e 64 0d 1e dc  1b 53 54 4d 46 44 20 52  |.rand....STMFD R|
00003b10  31 33 21 2c 7b 52 30 2d  52 31 32 2c 52 31 34 7d  |13!,{R0-R12,R14}|
00003b20  0d 1e e6 10 4c 44 52 20  52 30 2c 72 64 61 74 61  |....LDR R0,rdata|
00003b30  0d 1e f0 0e 4c 44 52 20  52 31 2c 65 6f 72 0d 1e  |....LDR R1,eor..|
00003b40  fa 0e 4c 44 52 20 52 32  2c 61 6e 64 0d 1f 04 1a  |..LDR R2,and....|
00003b50  5d 3a e3 20 51 25 3d 30  20 b8 20 37 3a 5b 4f 50  |]:. Q%=0 . 7:[OP|
00003b60  54 20 70 61 73 73 0d 1f  0e 0f 80 53 20 52 34 2c  |T pass.....S R4,|
00003b70  52 30 2c 52 32 0d 1f 18  10 82 4e 45 20 52 30 2c  |R0,R2.....NE R0,|
00003b80  52 30 2c 52 31 0d 1f 22  18 41 44 44 20 52 30 2c  |R0,R1..".ADD R0,|
00003b90  52 35 2c 52 30 2c 52 4f  52 20 23 33 31 0d 1f 2c  |R5,R0,ROR #31..,|
00003ba0  11 5d 3a ed 3a 5b 4f 50  54 20 70 61 73 73 0d 1f  |.]:.:[OPT pass..|
00003bb0  36 10 53 54 52 20 52 30  2c 72 64 61 74 61 0d 1f  |6.STR R0,rdata..|
00003bc0  40 15 4d 4f 56 20 52 35  2c 52 30 2c 4c 53 52 20  |@.MOV R5,R0,LSR |
00003bd0  23 32 34 0d 1f 4a 10 53  54 52 20 52 35 2c 76 61  |#24..J.STR R5,va|
00003be0  6c 75 65 0d 1f 54 1a 4c  44 4d 46 44 20 52 31 33  |lue..T.LDMFD R13|
00003bf0  21 2c 7b 52 30 2d 52 31  32 2c 50 43 7d 0d 1f 5e  |!,{R0-R12,PC}..^|
00003c00  09 41 4c 49 47 4e 0d 1f  68 0a 2e 72 64 61 74 61  |.ALIGN..h..rdata|
00003c10  0d 1f 72 0a 45 51 55 44  20 91 0d 1f 7c 08 2e 65  |..r.EQUD ...|..e|
00003c20  6f 72 0d 1f 86 0a 45 51  55 42 20 30 0d 1f 90 0c  |or....EQUB 0....|
00003c30  45 51 55 42 20 26 37 36  0d 1f 9a 0c 45 51 55 42  |EQUB &76....EQUB|
00003c40  20 26 42 35 0d 1f a4 0c  45 51 55 42 20 26 35 33  | &B5....EQUB &53|
00003c50  0d 1f ae 08 2e 61 6e 64  0d 1f b8 12 45 51 55 42  |.....and....EQUB|
00003c60  20 25 31 30 30 30 30 30  30 30 0d 1f c2 0a 45 51  | %10000000....EQ|
00003c70  55 42 20 30 0d 1f cc 0a  45 51 55 42 20 30 0d 1f  |UB 0....EQUB 0..|
00003c80  d6 0a 45 51 55 42 20 30  0d 1f e0 0a 2e 76 61 6c  |..EQUB 0.....val|
00003c90  75 65 0d 1f ea 0a 45 51  55 44 20 30 0d 1f f4 09  |ue....EQUD 0....|
00003ca0  41 4c 49 47 4e 0d 1f fe  20 2e 6d 61 6c 69 65 6e  |ALIGN... .malien|
00003cb0  73 74 61 74 73 3a 45 51  55 44 20 61 6c 69 65 6e  |stats:EQUD alien|
00003cc0  73 74 61 74 73 0d 20 08  20 2e 6d 61 6c 69 65 6e  |stats. . .malien|
00003cd0  70 6f 73 65 73 3a 45 51  55 44 20 61 6c 69 65 6e  |poses:EQUD alien|
00003ce0  70 6f 73 65 73 0d 20 12  26 2e 6d 61 6c 69 65 6e  |poses. .&.malien|
00003cf0  70 61 74 68 64 61 74 61  3a 45 51 55 44 20 61 6c  |pathdata:EQUD al|
00003d00  69 65 6e 70 61 74 68 64  61 74 61 0d 20 1c 16 2e  |ienpathdata. ...|
00003d10  6d 63 6f 75 6e 74 65 72  3a 45 51 55 44 20 34 30  |mcounter:EQUD 40|
00003d20  30 0d 20 26 0f 2e 6d 6f  76 65 61 6c 69 65 6e 73  |0. &..movealiens|
00003d30  0d 20 30 1b 53 54 4d 46  44 20 52 31 33 21 2c 7b  |. 0.STMFD R13!,{|
00003d40  52 30 2d 52 31 32 2c 52  31 34 7d 0d 20 3a 13 4c  |R0-R12,R14}. :.L|
00003d50  44 52 20 52 30 2c 6d 63  6f 75 6e 74 65 72 0d 20  |DR R0,mcounter. |
00003d60  44 10 41 44 44 20 52 30  2c 52 30 2c 23 31 0d 20  |D.ADD R0,R0,#1. |
00003d70  4e 0f 43 4d 50 20 52 30  2c 23 35 31 32 0d 20 58  |N.CMP R0,#512. X|
00003d80  0c ec 51 20 52 30 2c 23  30 0d 20 62 13 53 54 52  |..Q R0,#0. b.STR|
00003d90  20 52 30 2c 6d 63 6f 75  6e 74 65 72 0d 20 6c 0e  | R0,mcounter. l.|
00003da0  42 45 51 20 6e 65 77 73  65 74 0d 20 76 17 4c 44  |BEQ newset. v.LD|
00003db0  52 20 52 31 32 2c 6d 61  6c 69 65 6e 73 74 61 74  |R R12,malienstat|
00003dc0  73 0d 20 80 0e 4d 4f 56  20 52 31 31 2c 23 30 0d  |s. ..MOV R11,#0.|
00003dd0  20 8a 1a 4c 44 52 20 52  31 30 2c 6d 61 6c 69 65  | ..LDR R10,malie|
00003de0  6e 70 61 74 68 64 61 74  61 0d 20 94 0d 4d 4f 56  |npathdata. ..MOV|
00003df0  20 52 36 2c 23 31 0d 20  9e 0b 2e 64 6f 6d 6f 76  | R6,#1. ...domov|
00003e00  65 0d 20 a8 15 4c 44 4d  49 41 20 52 31 32 2c 7b  |e. ..LDMIA R12,{|
00003e10  52 30 2d 52 33 7d 0d 20  b2 10 41 44 44 20 52 32  |R0-R3}. ..ADD R2|
00003e20  2c 52 32 2c 23 31 0d 20  bc 0f 43 4d 50 20 52 32  |,R2,#1. ..CMP R2|
00003e30  2c 23 35 31 32 0d 20 c6  0c ec 51 20 52 33 2c 23  |,#512. ...Q R3,#|
00003e40  30 0d 20 d0 0d 43 4d 50  20 52 33 2c 23 30 0d 20  |0. ..CMP R3,#0. |
00003e50  da 10 42 45 51 20 6d 6e  6f 61 6c 69 65 6e 0d 20  |..BEQ mnoalien. |
00003e60  e4 10 53 55 42 20 52 34  2c 52 33 2c 23 31 0d 20  |..SUB R4,R3,#1. |
00003e70  ee 0f 4d 4f 56 20 52 39  2c 23 35 31 32 0d 20 f8  |..MOV R9,#512. .|
00003e80  10 4d 55 4c 20 52 34 2c  52 39 2c 52 34 0d 21 02  |.MUL R4,R9,R4.!.|
00003e90  11 41 44 44 20 52 37 2c  52 34 2c 52 31 30 0d 21  |.ADD R7,R4,R10.!|
00003ea0  0c 10 4c 44 52 42 20 52  38 2c 5b 52 37 5d 0d 21  |..LDRB R8,[R7].!|
00003eb0  16 13 4c 44 52 42 20 52  39 2c 5b 52 37 2c 52 32  |..LDRB R9,[R7,R2|
00003ec0  5d 0d 21 20 39 43 4d 50  20 52 39 2c 23 31 3a 53  |].! 9CMP R9,#1:S|
00003ed0  55 42 45 51 20 52 30 2c  52 30 2c 52 36 2c 4c 53  |UBEQ R0,R0,R6,LS|
00003ee0  4c 20 52 38 3a 41 44 44  45 51 20 52 31 2c 52 31  |L R8:ADDEQ R1,R1|
00003ef0  2c 52 36 2c 4c 53 4c 20  52 38 0d 21 2a 23 43 4d  |,R6,LSL R8.!*#CM|
00003f00  50 20 52 39 2c 23 32 3a  41 44 44 45 51 20 52 31  |P R9,#2:ADDEQ R1|
00003f10  2c 52 31 2c 52 36 2c 4c  53 4c 20 52 38 0d 21 34  |,R1,R6,LSL R8.!4|
00003f20  39 43 4d 50 20 52 39 2c  23 33 3a 41 44 44 45 51  |9CMP R9,#3:ADDEQ|
00003f30  20 52 30 2c 52 30 2c 52  36 2c 4c 53 4c 20 52 38  | R0,R0,R6,LSL R8|
00003f40  3a 41 44 44 45 51 20 52  31 2c 52 31 2c 52 36 2c  |:ADDEQ R1,R1,R6,|
00003f50  4c 53 4c 20 52 38 0d 21  3e 23 43 4d 50 20 52 39  |LSL R8.!>#CMP R9|
00003f60  2c 23 34 3a 53 55 42 45  51 20 52 30 2c 52 30 2c  |,#4:SUBEQ R0,R0,|
00003f70  52 36 2c 4c 53 4c 20 52  38 0d 21 48 23 43 4d 50  |R6,LSL R8.!H#CMP|
00003f80  20 52 39 2c 23 36 3a 41  44 44 45 51 20 52 30 2c  | R9,#6:ADDEQ R0,|
00003f90  52 30 2c 52 36 2c 4c 53  4c 20 52 38 0d 21 52 39  |R0,R6,LSL R8.!R9|
00003fa0  43 4d 50 20 52 39 2c 23  37 3a 53 55 42 45 51 20  |CMP R9,#7:SUBEQ |
00003fb0  52 30 2c 52 30 2c 52 36  2c 4c 53 4c 20 52 38 3a  |R0,R0,R6,LSL R8:|
00003fc0  53 55 42 45 51 20 52 31  2c 52 31 2c 52 36 2c 4c  |SUBEQ R1,R1,R6,L|
00003fd0  53 4c 20 52 38 0d 21 5c  23 43 4d 50 20 52 39 2c  |SL R8.!\#CMP R9,|
00003fe0  23 38 3a 53 55 42 45 51  20 52 31 2c 52 31 2c 52  |#8:SUBEQ R1,R1,R|
00003ff0  36 2c 4c 53 4c 20 52 38  0d 21 66 39 43 4d 50 20  |6,LSL R8.!f9CMP |
00004000  52 39 2c 23 39 3a 41 44  44 45 51 20 52 30 2c 52  |R9,#9:ADDEQ R0,R|
00004010  30 2c 52 36 2c 4c 53 4c  20 52 38 3a 53 55 42 45  |0,R6,LSL R8:SUBE|
00004020  51 20 52 31 2c 52 31 2c  52 36 2c 4c 53 4c 20 52  |Q R1,R1,R6,LSL R|
00004030  38 0d 21 70 0d 2e 6d 6e  6f 61 6c 69 65 6e 0d 21  |8.!p..mnoalien.!|
00004040  7a 16 53 54 4d 49 41 20  52 31 32 21 2c 7b 52 30  |z.STMIA R12!,{R0|
00004050  2d 52 33 7d 0d 21 84 12  41 44 44 20 52 31 31 2c  |-R3}.!..ADD R11,|
00004060  52 31 31 2c 23 31 0d 21  8e 10 43 4d 50 20 52 31  |R11,#1.!..CMP R1|
00004070  31 2c 23 4e 41 25 0d 21  98 0e 42 4c 54 20 64 6f  |1,#NA%.!..BLT do|
00004080  6d 6f 76 65 0d 21 a2 1a  4c 44 4d 49 41 20 52 31  |move.!..LDMIA R1|
00004090  33 21 2c 7b 52 30 2d 52  31 32 2c 50 43 7d 0d 21  |3!,{R0-R12,PC}.!|
000040a0  ac 18 2e 6d 6d 61 70 70  6f 73 3a 45 51 55 44 20  |...mmappos:EQUD |
000040b0  6d 61 70 70 6f 73 0d 21  b6 0b 2e 6e 65 77 73 65  |mappos.!...newse|
000040c0  74 0d 21 c0 21 4c 44 52  20 52 31 32 2c 6d 6d 61  |t.!.!LDR R12,mma|
000040d0  70 70 6f 73 3a 4c 44 52  20 52 31 32 2c 5b 52 31  |ppos:LDR R12,[R1|
000040e0  32 5d 0d 21 ca 10 43 4d  50 20 52 31 32 2c 23 32  |2].!..CMP R12,#2|
000040f0  30 30 0d 21 d4 1c 4c 44  4d 4c 54 46 44 20 52 31  |00.!..LDMLTFD R1|
00004100  33 21 2c 7b 52 30 2d 52  31 32 2c 50 43 7d 0d 21  |3!,{R0-R12,PC}.!|
00004110  de 17 4c 44 52 20 52 31  32 2c 6d 61 6c 69 65 6e  |..LDR R12,malien|
00004120  73 74 61 74 73 0d 21 e8  17 4c 44 52 20 52 31 31  |stats.!..LDR R11|
00004130  2c 6d 61 6c 69 65 6e 70  6f 73 65 73 0d 21 f2 19  |,malienposes.!..|
00004140  4c 44 52 20 52 38 2c 6d  61 6c 69 65 6e 70 61 74  |LDR R8,malienpat|
00004150  68 64 61 74 61 0d 21 fc  0d 4d 4f 56 20 52 31 2c  |hdata.!..MOV R1,|
00004160  23 30 0d 22 06 0d 4d 4f  56 20 52 39 2c 23 30 0d  |#0."..MOV R9,#0.|
00004170  22 10 0a 2e 61 67 61 69  6e 0d 22 1a 0b 42 4c 20  |"...again."..BL |
00004180  72 61 6e 64 0d 22 24 10  4c 44 52 20 52 33 2c 76  |rand."$.LDR R3,v|
00004190  61 6c 75 65 0d 22 2e 12  80 20 52 33 2c 52 33 2c  |alue."... R3,R3,|
000041a0  23 25 31 31 31 31 0d 22  38 0e 43 4d 50 20 52 33  |#%1111."8.CMP R3|
000041b0  2c 23 41 25 0d 22 42 0d  42 47 54 20 61 67 61 69  |,#A%."B.BGT agai|
000041c0  6e 0d 22 4c 0d 43 4d 50  20 52 33 2c 23 30 0d 22  |n."L.CMP R3,#0."|
000041d0  56 0d 42 45 51 20 61 67  61 69 6e 0d 22 60 0f 4d  |V.BEQ again."`.M|
000041e0  4f 56 20 52 34 2c 23 35  31 32 0d 22 6a 10 53 55  |OV R4,#512."j.SU|
000041f0  42 20 52 35 2c 52 33 2c  23 31 0d 22 74 10 4d 55  |B R5,R3,#1."t.MU|
00004200  4c 20 52 34 2c 52 35 2c  52 34 0d 22 7e 13 4c 44  |L R4,R5,R4."~.LD|
00004210  52 42 20 52 32 2c 5b 52  38 2c 52 34 5d 0d 22 88  |RB R2,[R8,R4].".|
00004220  0f 4d 4f 56 20 52 31 30  2c 23 33 32 0d 22 92 16  |.MOV R10,#32."..|
00004230  4d 4f 56 20 52 31 30 2c  52 31 30 2c 4c 53 52 20  |MOV R10,R10,LSR |
00004240  52 32 0d 22 9c 0d 4d 4f  56 20 52 32 2c 23 30 0d  |R2."..MOV R2,#0.|
00004250  22 a6 0c 2e 6e 65 77 6c  6f 6f 70 0d 22 b0 1a 4c  |"...newloop."..L|
00004260  44 52 20 52 30 2c 5b 52  31 31 2c 52 39 2c 4c 53  |DR R0,[R11,R9,LS|
00004270  4c 20 23 32 5d 0d 22 ba  16 53 54 4d 49 41 20 52  |L #2]."..STMIA R|
00004280  31 32 21 2c 7b 52 30 2d  52 33 7d 0d 22 c4 11 41  |12!,{R0-R3}."..A|
00004290  44 44 20 52 32 2c 52 32  2c 52 31 30 0d 22 ce 10  |DD R2,R2,R10."..|
000042a0  41 44 44 20 52 39 2c 52  39 2c 23 31 0d 22 d8 0f  |ADD R9,R9,#1."..|
000042b0  43 4d 50 20 52 39 2c 23  4e 41 25 0d 22 e2 0f 42  |CMP R9,#NA%."..B|
000042c0  4c 54 20 6e 65 77 6c 6f  6f 70 0d 22 ec 1a 4c 44  |LT newloop."..LD|
000042d0  4d 46 44 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |MFD R13!,{R0-R12|
000042e0  2c 50 43 7d 0d 22 f6 1b  2e 63 6b 70 6c 61 79 65  |,PC}."...ckplaye|
000042f0  72 78 3a 45 51 55 44 20  70 6c 61 79 65 72 78 0d  |rx:EQUD playerx.|
00004300  23 00 1b 2e 63 6b 70 6c  61 79 65 72 79 3a 45 51  |#...ckplayery:EQ|
00004310  55 44 20 70 6c 61 79 65  72 79 0d 23 0a 1f 2e 63  |UD playery.#...c|
00004320  6b 65 6e 64 72 65 61 73  6f 6e 3a 45 51 55 44 20  |kendreason:EQUD |
00004330  65 6e 64 72 65 61 73 6f  6e 0d 23 14 0a 2e 63 6b  |endreason.#...ck|
00004340  64 69 65 0d 23 1e 1b 53  54 4d 46 44 20 52 31 33  |die.#..STMFD R13|
00004350  21 2c 7b 52 30 2d 52 31  32 2c 52 31 34 7d 0d 23  |!,{R0-R12,R14}.#|
00004360  28 17 4c 44 52 20 52 31  32 2c 6d 61 6c 69 65 6e  |(.LDR R12,malien|
00004370  73 74 61 74 73 0d 23 32  23 4c 44 52 20 52 31 31  |stats.#2#LDR R11|
00004380  2c 63 6b 70 6c 61 79 65  72 78 3a 4c 44 52 20 52  |,ckplayerx:LDR R|
00004390  31 31 2c 5b 52 31 31 5d  0d 23 3c 23 4c 44 52 20  |11,[R11].#<#LDR |
000043a0  52 31 30 2c 63 6b 70 6c  61 79 65 72 79 3a 4c 44  |R10,ckplayery:LD|
000043b0  52 20 52 31 30 2c 5b 52  31 30 5d 0d 23 46 16 4c  |R R10,[R10].#F.L|
000043c0  44 52 20 52 37 2c 63 6b  65 6e 64 72 65 61 73 6f  |DR R7,ckendreaso|
000043d0  6e 0d 23 50 22 41 44 44  20 52 31 30 2c 52 31 30  |n.#P"ADD R10,R10|
000043e0  2c 23 31 36 3a 41 44 44  20 52 31 31 2c 52 31 31  |,#16:ADD R11,R11|
000043f0  2c 23 31 0d 23 5a 0d 4d  4f 56 20 52 38 2c 23 32  |,#1.#Z.MOV R8,#2|
00004400  0d 23 64 0d 4d 4f 56 20  52 39 2c 23 30 0d 23 6e  |.#d.MOV R9,#0.#n|
00004410  0d 2e 70 63 6b 6c 6f 6f  70 31 0d 23 78 16 4c 44  |..pckloop1.#x.LD|
00004420  4d 49 41 20 52 31 32 21  2c 7b 52 30 2d 52 33 7d  |MIA R12!,{R0-R3}|
00004430  0d 23 82 18 43 4d 50 20  52 33 2c 23 30 3a 42 45  |.#..CMP R3,#0:BE|
00004440  51 20 6e 6f 64 69 65 31  0d 23 8c 19 43 4d 50 20  |Q nodie1.#..CMP |
00004450  52 31 31 2c 52 30 3a 42  4c 54 20 6e 6f 64 69 65  |R11,R0:BLT nodie|
00004460  31 0d 23 96 19 43 4d 50  20 52 31 30 2c 52 31 3a  |1.#..CMP R10,R1:|
00004470  42 4c 54 20 6e 6f 64 69  65 31 0d 23 a0 27 41 44  |BLT nodie1.#.'AD|
00004480  44 20 52 31 2c 52 31 2c  23 31 36 3a 43 4d 50 20  |D R1,R1,#16:CMP |
00004490  52 31 30 2c 52 31 3a 42  47 54 20 6e 6f 64 69 65  |R10,R1:BGT nodie|
000044a0  31 0d 23 aa 27 41 44 44  20 52 30 2c 52 30 2c 23  |1.#.'ADD R0,R0,#|
000044b0  31 36 3a 43 4d 50 20 52  31 31 2c 52 30 3a 42 47  |16:CMP R11,R0:BG|
000044c0  54 20 6e 6f 64 69 65 31  0d 23 b4 0f 53 54 52 20  |T nodie1.#..STR |
000044d0  52 38 2c 5b 52 37 5d 0d  23 be 1a 4c 44 4d 46 44  |R8,[R7].#..LDMFD|
000044e0  20 52 31 33 21 2c 7b 52  30 2d 52 31 32 2c 50 43  | R13!,{R0-R12,PC|
000044f0  7d 0d 23 c8 0b 2e 6e 6f  64 69 65 31 0d 23 d2 1c  |}.#...nodie1.#..|
00004500  41 44 44 20 52 39 2c 52  39 2c 23 31 3a 43 4d 50  |ADD R9,R9,#1:CMP|
00004510  20 52 39 2c 23 4e 41 25  0d 23 dc 10 42 4c 54 20  | R9,#NA%.#..BLT |
00004520  70 63 6b 6c 6f 6f 70 31  0d 23 e6 21 4c 44 52 20  |pckloop1.#.!LDR |
00004530  52 31 32 2c 6d 61 6c 69  65 6e 73 74 61 74 73 3a  |R12,malienstats:|
00004540  4d 4f 56 20 52 39 2c 23  30 0d 23 f0 13 41 44 44  |MOV R9,#0.#..ADD|
00004550  20 52 31 31 2c 52 31 31  2c 23 31 34 0d 23 fa 0d  | R11,R11,#14.#..|
00004560  2e 70 63 6b 6c 6f 6f 70  32 0d 24 04 2b 4c 44 4d  |.pckloop2.$.+LDM|
00004570  49 41 20 52 31 32 21 2c  7b 52 30 2d 52 33 7d 3a  |IA R12!,{R0-R3}:|
00004580  43 4d 50 20 52 33 2c 23  30 3a 42 45 51 20 6e 6f  |CMP R3,#0:BEQ no|
00004590  64 69 65 32 0d 24 0e 2f  43 4d 50 20 52 31 31 2c  |die2.$./CMP R11,|
000045a0  52 30 3a 42 4c 54 20 6e  6f 64 69 65 32 3a 43 4d  |R0:BLT nodie2:CM|
000045b0  50 20 52 31 30 2c 52 31  3a 42 4c 54 20 6e 6f 64  |P R10,R1:BLT nod|
000045c0  69 65 32 0d 24 18 27 41  44 44 20 52 31 2c 52 31  |ie2.$.'ADD R1,R1|
000045d0  2c 23 31 36 3a 43 4d 50  20 52 31 30 2c 52 31 3a  |,#16:CMP R10,R1:|
000045e0  42 47 54 20 6e 6f 64 69  65 32 0d 24 22 27 41 44  |BGT nodie2.$"'AD|
000045f0  44 20 52 30 2c 52 30 2c  23 31 36 3a 43 4d 50 20  |D R0,R0,#16:CMP |
00004600  52 31 31 2c 52 30 3a 42  47 54 20 6e 6f 64 69 65  |R11,R0:BGT nodie|
00004610  32 0d 24 2c 0f 53 54 52  20 52 38 2c 5b 52 37 5d  |2.$,.STR R8,[R7]|
00004620  0d 24 36 1a 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |.$6.LDMFD R13!,{|
00004630  52 30 2d 52 31 32 2c 50  43 7d 0d 24 40 0b 2e 6e  |R0-R12,PC}.$@..n|
00004640  6f 64 69 65 32 0d 24 4a  29 41 44 44 20 52 39 2c  |odie2.$J)ADD R9,|
00004650  52 39 2c 23 31 3a 43 4d  50 20 52 39 2c 23 4e 41  |R9,#1:CMP R9,#NA|
00004660  25 3a 42 4c 54 20 70 63  6b 6c 6f 6f 70 32 0d 24  |%:BLT pckloop2.$|
00004670  54 21 4c 44 52 20 52 31  32 2c 6d 61 6c 69 65 6e  |T!LDR R12,malien|
00004680  73 74 61 74 73 3a 4d 4f  56 20 52 39 2c 23 30 0d  |stats:MOV R9,#0.|
00004690  24 5e 32 4c 44 52 20 52  31 31 2c 63 6b 70 6c 61  |$^2LDR R11,ckpla|
000046a0  79 65 72 78 3a 4c 44 52  20 52 31 31 2c 5b 52 31  |yerx:LDR R11,[R1|
000046b0  31 5d 3a 41 44 44 20 52  31 31 2c 52 31 31 2c 23  |1]:ADD R11,R11,#|
000046c0  38 0d 24 68 32 4c 44 52  20 52 31 30 2c 63 6b 70  |8.$h2LDR R10,ckp|
000046d0  6c 61 79 65 72 79 3a 4c  44 52 20 52 31 30 2c 5b  |layery:LDR R10,[|
000046e0  52 31 30 5d 3a 41 44 44  20 52 31 30 2c 52 31 30  |R10]:ADD R10,R10|
000046f0  2c 23 31 0d 24 72 0d 2e  70 63 6b 6c 6f 6f 70 33  |,#1.$r..pckloop3|
00004700  0d 24 7c 2b 4c 44 4d 49  41 20 52 31 32 21 2c 7b  |.$|+LDMIA R12!,{|
00004710  52 30 2d 52 33 7d 3a 43  4d 50 20 52 33 2c 23 30  |R0-R3}:CMP R3,#0|
00004720  3a 42 45 51 20 6e 6f 64  69 65 33 0d 24 86 2f 43  |:BEQ nodie3.$./C|
00004730  4d 50 20 52 31 31 2c 52  30 3a 42 4c 54 20 6e 6f  |MP R11,R0:BLT no|
00004740  64 69 65 33 3a 43 4d 50  20 52 31 30 2c 52 31 3a  |die3:CMP R10,R1:|
00004750  42 4c 54 20 6e 6f 64 69  65 33 0d 24 90 27 41 44  |BLT nodie3.$.'AD|
00004760  44 20 52 31 2c 52 31 2c  23 31 36 3a 43 4d 50 20  |D R1,R1,#16:CMP |
00004770  52 31 30 2c 52 31 3a 42  47 54 20 6e 6f 64 69 65  |R10,R1:BGT nodie|
00004780  33 0d 24 9a 27 41 44 44  20 52 30 2c 52 30 2c 23  |3.$.'ADD R0,R0,#|
00004790  31 36 3a 43 4d 50 20 52  31 31 2c 52 30 3a 42 47  |16:CMP R11,R0:BG|
000047a0  54 20 6e 6f 64 69 65 33  0d 24 a4 0f 53 54 52 20  |T nodie3.$..STR |
000047b0  52 38 2c 5b 52 37 5d 0d  24 ae 1a 4c 44 4d 46 44  |R8,[R7].$..LDMFD|
000047c0  20 52 31 33 21 2c 7b 52  30 2d 52 31 32 2c 50 43  | R13!,{R0-R12,PC|
000047d0  7d 0d 24 b8 0b 2e 6e 6f  64 69 65 33 0d 24 c2 29  |}.$...nodie3.$.)|
000047e0  41 44 44 20 52 39 2c 52  39 2c 23 31 3a 43 4d 50  |ADD R9,R9,#1:CMP|
000047f0  20 52 39 2c 23 4e 41 25  3a 42 4c 54 20 70 63 6b  | R9,#NA%:BLT pck|
00004800  6c 6f 6f 70 33 0d 24 cc  1a 4c 44 4d 46 44 20 52  |loop3.$..LDMFD R|
00004810  31 33 21 2c 7b 52 30 2d  52 31 32 2c 50 43 7d 0d  |13!,{R0-R12,PC}.|
00004820  24 d6 07 5d 3a ed 0d 24  e0 05 e1 0d 24 ea 0a dd  |$..]:..$....$...|
00004830  f2 67 61 6d 65 0d 24 f4  05 f5 0d 24 fe 0f f2 68  |.game.$....$...h|
00004840  69 67 68 73 63 6f 72 65  73 0d 25 08 1e 6c 69 76  |ighscores.%..liv|
00004850  65 73 3d 34 3a 6c 65 76  65 6c 3d 31 3a 4e 42 25  |es=4:level=1:NB%|
00004860  3d 35 3a 41 25 3d 38 0d  25 12 45 e7 20 70 69 6e  |=5:A%=8.%.E. pin|
00004870  6b 25 3d b9 20 8c 20 ff  28 22 50 61 63 6b 4c 6f  |k%=. . .("PackLo|
00004880  61 64 20 3c 58 61 63 72  65 74 61 6e 24 44 69 72  |ad <Xacretan$Dir|
00004890  3e 2e 42 6c 6f 63 6b 73  20 22 2b c3 7e 62 6c 6f  |>.Blocks "+.~blo|
000048a0  63 6b 73 29 3a 70 69 6e  6b 25 3d a3 0d 25 1c 0d  |cks):pink%=..%..|
000048b0  f2 61 73 73 65 6d 62 6c  65 0d 25 26 2a ff 28 22  |.assemble.%&*.("|
000048c0  4c 6f 61 64 20 3c 58 61  63 72 65 74 61 6e 24 44  |Load <Xacretan$D|
000048d0  69 72 3e 2e 4d 61 70 73  2e 31 20 22 2b c3 7e 6d  |ir>.Maps.1 "+.~m|
000048e0  61 70 29 0d 25 30 05 87  0d 25 3a 05 f5 0d 25 44  |ap).%0...%:...%D|
000048f0  14 e3 20 58 25 3d 30 20  b8 20 33 31 39 20 88 20  |.. X%=0 . 319 . |
00004900  34 0d 25 4e 19 e3 20 59  25 3d 30 20 b8 20 31 36  |4.%N.. Y%=0 . 16|
00004910  2a 33 32 30 20 88 20 33  32 30 0d 25 58 0c 4e 25  |*320 . 320.%X.N%|
00004920  3d 58 25 2b 59 25 0d 25  62 10 74 6f 70 64 61 74  |=X%+Y%.%b.topdat|
00004930  61 21 4e 25 3d 30 0d 25  6c 06 ed 2c 0d 25 76 14  |a!N%=0.%l..,.%v.|
00004940  e3 20 58 25 3d 30 20 b8  20 6c 69 76 65 73 2d 31  |. X%=0 . lives-1|
00004950  0d 25 80 08 4e 25 3d 30  0d 25 8a 0c 50 25 3d 58  |.%..N%=0.%..P%=X|
00004960  25 2a 32 30 0d 25 94 0f  e3 20 51 25 3d 30 20 b8  |%*20.%... Q%=0 .|
00004970  20 31 36 0d 25 9e 13 e3  20 42 25 3d 30 20 b8 20  | 16.%... B%=0 . |
00004980  31 35 20 88 20 34 0d 25  a8 1c 74 6f 70 64 61 74  |15 . 4.%..topdat|
00004990  61 21 50 25 3d 70 6c 61  79 65 72 64 61 74 61 21  |a!P%=playerdata!|
000049a0  4e 25 0d 25 b2 09 4e 25  2b 3d 34 0d 25 bc 09 50  |N%.%..N%+=4.%..P|
000049b0  25 2b 3d 34 0d 25 c6 05  ed 0d 25 d0 10 50 25 2b  |%+=4.%....%..P%+|
000049c0  3d 28 33 32 30 2d 31 36  29 0d 25 da 05 ed 0d 25  |=(320-16).%....%|
000049d0  e4 05 ed 0d 25 ee 12 e3  20 58 25 3d 30 20 b8 20  |....%... X%=0 . |
000049e0  4e 42 25 2d 31 0d 25 f8  15 50 25 3d 36 34 30 2a  |NB%-1.%..P%=640*|
000049f0  33 2b 58 25 2a 37 2b 32  35 36 0d 26 02 14 e3 20  |3+X%*7+256.&... |
00004a00  51 25 3d 30 20 b8 20 37  2a 32 20 88 20 32 0d 26  |Q%=0 . 7*2 . 2.&|
00004a10  0c 2a 74 6f 70 64 61 74  61 21 50 25 3d 28 62 75  |.*topdata!P%=(bu|
00004a20  6c 6c 65 74 64 61 74 61  21 51 25 29 20 80 20 26  |lletdata!Q%) . &|
00004a30  46 46 46 46 30 30 30 30  0d 26 16 0b 50 25 2b 3d  |FFFF0000.&..P%+=|
00004a40  33 32 30 0d 26 20 06 ed  2c 0d 26 2a 0d 2a 46 58  |320.& ..,.&*.*FX|
00004a50  20 31 31 32 2c 31 0d 26  34 0e f2 73 74 6f 70 6d  | 112,1.&4..stopm|
00004a60  75 73 69 63 0d 26 3e 05  db 0d 26 48 0d 2a 46 58  |usic.&>...&H.*FX|
00004a70  20 31 31 33 2c 31 0d 26  52 08 fb 20 36 30 0d 26  | 113,1.&R.. 60.&|
00004a80  5c 19 f1 8a 31 35 2c 31  30 29 22 5a 6f 6e 65 20  |\...15,10)"Zone |
00004a90  22 3b 6c 65 76 65 6c 0d  26 66 0e fb 20 33 20 c8  |";level.&f.. 3 .|
00004aa0  9c 20 32 35 35 0d 26 70  31 f1 8a 31 31 2c 31 37  |. 255.&p1..11,17|
00004ab0  29 22 20 22 3b 6c 69 76  65 73 3b 22 20 53 68 69  |)" ";lives;" Shi|
00004ac0  70 22 3b 3a e7 20 6c 69  76 65 73 3c 3e 31 20 8c  |p";:. lives<>1 .|
00004ad0  20 f1 22 73 22 3b 0d 26  7a 0d f1 22 20 6c 65 66  | ."s";.&z.." lef|
00004ae0  74 2e 22 0d 26 84 08 fb  20 34 33 0d 26 8e 23 f1  |t.".&... 43.&.#.|
00004af0  8a 37 2c 32 35 29 22 50  72 65 73 73 20 61 6e 79  |.7,25)"Press any|
00004b00  20 6b 65 79 20 74 6f 20  70 6c 61 79 2e 22 0d 26  | key to play.".&|
00004b10  98 05 87 0d 26 a2 07 4e  3d a5 0d 26 ac 16 21 70  |....&..N=..&..!p|
00004b20  6c 61 79 65 72 78 3d 28  33 32 30 2f 32 29 2d 38  |layerx=(320/2)-8|
00004b30  0d 26 b6 10 21 70 6c 61  79 65 72 79 3d 32 30 30  |.&..!playery=200|
00004b40  0d 26 c0 1d 21 73 63 72  65 65 6e 73 74 61 72 74  |.&..!screenstart|
00004b50  3d 73 63 72 65 65 6e 32  73 74 61 72 74 0d 26 ca  |=screen2start.&.|
00004b60  27 d6 20 73 63 72 6f 6c  6c 3a d6 20 70 6c 61 79  |'. scroll:. play|
00004b70  65 72 3a d6 20 64 6f 74  6f 70 3a d6 20 64 6f 73  |er:. dotop:. dos|
00004b80  63 6f 72 65 0d 26 d4 1a  e3 20 58 25 3d 30 20 b8  |core.&... X%=0 .|
00004b90  20 38 30 2a 31 30 32 34  20 88 20 36 34 30 0d 26  | 80*1024 . 640.&|
00004ba0  de 10 3f 73 63 62 6c 6f  63 6b 3d 25 31 30 0d 26  |..?scblock=%10.&|
00004bb0  e8 10 73 63 62 6c 6f 63  6b 21 31 3d 58 25 0d 26  |..scblock!1=X%.&|
00004bc0  f2 1e c8 96 3a c8 99 20  22 4f 53 5f 57 6f 72 64  |....:.. "OS_Word|
00004bd0  22 2c 32 32 2c 73 63 62  6c 6f 63 6b 0d 26 fc 05  |",22,scblock.&..|
00004be0  ed 0d 27 06 10 3f 73 63  62 6c 6f 63 6b 3d 25 31  |..'..?scblock=%1|
00004bf0  30 0d 27 10 1d 21 73 63  72 65 65 6e 73 74 61 72  |0.'..!screenstar|
00004c00  74 3d 73 63 72 65 65 6e  31 73 74 61 72 74 0d 27  |t=screen1start.'|
00004c10  1a 27 d6 20 73 63 72 6f  6c 6c 3a d6 20 70 6c 61  |.'. scroll:. pla|
00004c20  79 65 72 3a d6 20 64 6f  74 6f 70 3a d6 20 64 6f  |yer:. dotop:. do|
00004c30  73 63 6f 72 65 0d 27 24  10 3f 73 63 62 6c 6f 63  |score.'$.?scbloc|
00004c40  6b 3d 25 31 30 0d 27 2e  0f 73 63 62 6c 6f 63 6b  |k=%10.'..scblock|
00004c50  21 31 3d 30 0d 27 38 1b  c8 99 20 22 4f 53 5f 57  |!1=0.'8... "OS_W|
00004c60  6f 72 64 22 2c 32 32 2c  73 63 62 6c 6f 63 6b 0d  |ord",22,scblock.|
00004c70  27 42 08 d6 20 67 6f 0d  27 4c 0c 2a 46 58 20 31  |'B.. go.'L.*FX 1|
00004c80  35 2c 30 0d 27 56 25 e7  20 21 65 6e 64 72 65 61  |5,0.'V%. !endrea|
00004c90  73 6f 6e 3d 31 20 8c 20  f2 6e 65 77 6c 65 76 65  |son=1 . .newleve|
00004ca0  6c 3a e5 20 8d 74 66 67  0d 27 60 11 54 3d 91 3a  |l:. .tfg.'`.T=.:|
00004cb0  f5 fd 91 3e 54 2b 31 30  30 0d 27 6a 10 21 65 6e  |...>T+100.'j.!en|
00004cc0  64 72 65 61 73 6f 6e 3d  30 0d 27 74 0c 6c 69 76  |dreason=0.'t.liv|
00004cd0  65 73 2d 3d 31 0d 27 7e  16 21 6d 61 70 70 6f 73  |es-=1.'~.!mappos|
00004ce0  3d 21 6d 61 70 70 6f 73  2b 36 30 0d 27 88 2c e3  |=!mappos+60.'.,.|
00004cf0  20 58 25 3d 61 6c 69 65  6e 73 74 61 74 73 20 b8  | X%=alienstats .|
00004d00  20 61 6c 69 65 6e 73 74  61 74 73 2b 34 2a 34 2a  | alienstats+4*4*|
00004d10  4e 41 25 20 88 20 34 0d  27 92 09 21 58 25 3d 30  |NA% . 4.'..!X%=0|
00004d20  0d 27 9c 05 ed 0d 27 a6  0d 2a 46 58 20 31 31 32  |.'....'..*FX 112|
00004d30  2c 32 0d 27 b0 05 db 0d  27 ba 0d 2a 46 58 20 31  |,2.'....'..*FX 1|
00004d40  31 32 2c 31 0d 27 c4 1a  e3 20 58 25 3d 30 20 b8  |12,1.'... X%=0 .|
00004d50  20 38 30 2a 31 30 32 34  20 88 20 36 34 30 0d 27  | 80*1024 . 640.'|
00004d60  ce 10 3f 73 63 62 6c 6f  63 6b 3d 25 31 30 0d 27  |..?scblock=%10.'|
00004d70  d8 10 73 63 62 6c 6f 63  6b 21 31 3d 58 25 0d 27  |..scblock!1=X%.'|
00004d80  e2 1e c8 96 3a c8 99 20  22 4f 53 5f 57 6f 72 64  |....:.. "OS_Word|
00004d90  22 2c 32 32 2c 73 63 62  6c 6f 63 6b 0d 27 ec 05  |",22,scblock.'..|
00004da0  ed 0d 27 f6 17 fd 20 6c  69 76 65 73 3d 30 20 84  |..'... lives=0 .|
00004db0  20 6c 65 76 65 6c 3d 36  0d 28 00 05 db 0d 28 0a  | level=6.(....(.|
00004dc0  0d 2a 46 58 20 31 31 33  2c 31 0d 28 14 0e fb 20  |.*FX 113,1.(... |
00004dd0  33 20 c8 9c 20 32 35 35  0d 28 1e 18 f1 8a 31 33  |3 .. 255.(....13|
00004de0  2c 31 30 29 22 47 61 6d  65 20 4f 76 65 72 2e 22  |,10)"Game Over."|
00004df0  0d 28 28 08 fb 20 33 30  0d 28 32 20 f1 8a 31 30  |.((.. 30.(2 ..10|
00004e00  2c 31 32 29 22 59 6f 75  20 73 63 6f 72 65 64 20  |,12)"You scored |
00004e10  22 3b 21 73 63 6f 72 65  0d 28 3c 24 e7 20 21 73  |";!score.(<$. !s|
00004e20  63 6f 72 65 3e 68 69 67  68 73 63 6f 72 65 73 28  |core>highscores(|
00004e30  31 30 29 20 8c 20 e5 20  8d 44 5a 68 0d 28 46 0e  |10) . . .DZh.(F.|
00004e40  56 3d a6 28 31 30 30 30  30 29 0d 28 50 07 fd 20  |V=.(10000).(P.. |
00004e50  a3 0d 28 5a 0d 58 25 3d  30 3a 65 25 3d a3 0d 28  |..(Z.X%=0:e%=..(|
00004e60  64 05 f5 0d 28 6e 09 58  25 2b 3d 31 0d 28 78 22  |d...(n.X%+=1.(x"|
00004e70  e7 20 21 73 63 6f 72 65  3e 68 69 67 68 73 63 6f  |. !score>highsco|
00004e80  72 65 73 28 58 25 29 20  8c 20 65 25 3d b9 0d 28  |res(X%) . e%=..(|
00004e90  82 0a fd 20 65 25 3d b9  0d 28 8c 0f fb 20 32 38  |... e%=..(... 28|
00004ea0  20 c8 9c 20 32 35 35 0d  28 96 18 f1 8a 31 32 2c  | .. 255.(....12,|
00004eb0  31 36 29 22 57 65 6c 6c  20 64 6f 6e 65 2e 22 0d  |16)"Well done.".|
00004ec0  28 a0 0f fb 20 32 37 20  c8 9c 20 32 35 35 0d 28  |(... 27 .. 255.(|
00004ed0  aa 29 f1 8a 35 2c 31 38  29 22 59 6f 75 72 20 73  |.)..5,18)"Your s|
00004ee0  63 6f 72 65 20 69 73 20  72 61 6e 6b 65 64 20 6e  |core is ranked n|
00004ef0  6f 2e 20 22 3b 58 25 0d  28 b4 08 fb 20 34 37 0d  |o. ";X%.(... 47.|
00004f00  28 be 27 e8 8a 30 2c 32  32 29 22 50 6c 65 61 73  |(.'..0,22)"Pleas|
00004f10  65 20 65 6e 74 65 72 20  79 6f 75 72 20 6e 61 6d  |e enter your nam|
00004f20  65 20 22 3b 4e 24 0d 28  c8 13 e7 20 a9 28 4e 24  |e ";N$.(... .(N$|
00004f30  29 3c 31 20 8c 20 fd 20  a3 0d 28 d2 0d e7 20 58  |)<1 . . ..(... X|
00004f40  25 3c 31 30 20 8c 0d 28  dc 14 e3 20 59 25 3d 39  |%<10 ..(... Y%=9|
00004f50  20 b8 20 58 25 20 88 20  2d 31 0d 28 e6 21 68 69  | . X% . -1.(.!hi|
00004f60  67 68 6e 61 6d 65 24 28  59 25 2b 31 29 3d 68 69  |ghname$(Y%+1)=hi|
00004f70  67 68 6e 61 6d 65 24 28  59 25 29 0d 28 f0 23 68  |ghname$(Y%).(.#h|
00004f80  69 67 68 73 63 6f 72 65  73 28 59 25 2b 31 29 3d  |ighscores(Y%+1)=|
00004f90  68 69 67 68 73 63 6f 72  65 73 28 59 25 29 0d 28  |highscores(Y%).(|
00004fa0  fa 05 ed 0d 29 04 05 cd  0d 29 0e 19 68 69 67 68  |....)....)..high|
00004fb0  73 63 6f 72 65 73 28 58  25 29 3d 21 73 63 6f 72  |scores(X%)=!scor|
00004fc0  65 0d 29 18 19 68 69 67  68 6e 61 6d 65 24 28 58  |e.)..highname$(X|
00004fd0  25 29 3d c0 4e 24 2c 31  34 29 0d 29 22 13 e7 20  |%)=.N$,14).)".. |
00004fe0  77 72 69 74 65 25 3d a3  20 8c 20 fd a3 0d 29 2c  |write%=. . ...),|
00004ff0  26 20 46 25 3d ae 28 22  3c 58 61 63 72 65 74 61  |& F%=.("<Xacreta|
00005000  6e 24 44 69 72 3e 2e 48  69 67 68 53 63 6f 72 65  |n$Dir>.HighScore|
00005010  73 22 29 0d 29 36 0e 20  e7 20 46 25 3c 3e 30 20  |s").)6. . F%<>0 |
00005020  8c 0d 29 40 10 20 e3 20  58 25 3d 31 20 b8 20 31  |..)@. . X%=1 . 1|
00005030  30 0d 29 4a 26 20 f1 23  46 25 2c 68 69 67 68 6e  |0.)J& .#F%,highn|
00005040  61 6d 65 24 28 58 25 29  2c 68 69 67 68 73 63 6f  |ame$(X%),highsco|
00005050  72 65 73 28 58 25 29 0d  29 54 06 20 ed 0d 29 5e  |res(X%).)T. ..)^|
00005060  09 20 d9 23 46 25 0d 29  68 06 20 cd 0d 29 72 07  |. .#F%.)h. ..)r.|
00005070  fd 20 a3 0d 29 7c 05 e0  0d 29 86 0b dd f2 65 72  |. ..)|...)....er|
00005080  72 6f 72 0d 29 90 0c 2a  46 58 20 31 35 2c 31 0d  |ror.)..*FX 15,1.|
00005090  29 9a 14 2a 41 4c 50 48  41 42 45 54 20 4c 41 54  |)..*ALPHABET LAT|
000050a0  49 4e 31 0d 29 a4 0e f2  73 74 6f 70 6d 75 73 69  |IN1.)...stopmusi|
000050b0  63 0d 29 ae 08 c8 a0 20  31 0d 29 b8 19 c8 a1 20  |c.).... 1.).... |
000050c0  31 2c 22 57 61 76 65 53  79 6e 74 68 2d 42 65 65  |1,"WaveSynth-Bee|
000050d0  70 22 0d 29 c2 07 eb 20  30 0d 29 cc 12 2a 52 4d  |p".)... 0.)..*RM|
000050e0  4b 49 4c 4c 20 5a 61 70  4d 6f 64 0d 29 d6 12 2a  |KILL ZapMod.)..*|
000050f0  52 4d 4b 49 4c 4c 20 45  78 70 6c 6f 31 0d 29 e0  |RMKILL Explo1.).|
00005100  12 2a 52 4d 4b 49 4c 4c  20 45 78 70 6c 6f 32 0d  |.*RMKILL Explo2.|
00005110  29 ea 0f 2a 52 4d 4b 49  4c 4c 20 57 6f 77 0d 29  |)..*RMKILL Wow.)|
00005120  f4 12 2a 52 4d 4b 49 4c  4c 20 50 61 63 6b 49 74  |..*RMKILL PackIt|
00005130  0d 29 fe 0d e7 20 9f 3c  3e 31 37 20 8c 0d 2a 08  |.)... .<>17 ..*.|
00005140  28 f6 3a f1 22 20 61 74  20 6c 69 6e 65 20 22 3b  |(.:." at line ";|
00005150  9e 3a f1 20 22 45 72 72  6f 72 20 6e 75 6d 62 65  |.:. "Error numbe|
00005160  72 20 22 3b 9f 0d 2a 12  05 cd 0d 2a 1c 05 e0 0d  |r ";..*....*....|
00005170  2a 26 07 dc 20 30 0d 2a  30 07 dc 20 30 0d 2a 3a  |*&.. 0.*0.. 0.*:|
00005180  07 dc 20 30 0d 2a 44 07  dc 20 30 0d 2a 4e 07 dc  |.. 0.*D.. 0.*N..|
00005190  20 30 0d 2a 58 07 dc 20  30 0d 2a 62 07 dc 20 30  | 0.*X.. 0.*b.. 0|
000051a0  0d 2a 6c 07 dc 20 30 0d  2a 76 07 dc 20 30 0d 2a  |.*l.. 0.*v.. 0.*|
000051b0  80 07 dc 20 30 0d 2a 8a  07 dc 20 30 0d 2a 94 07  |... 0.*... 0.*..|
000051c0  dc 20 30 0d 2a 9e 07 dc  20 33 0d 2a a8 08 dc 20  |. 0.*... 3.*... |
000051d0  32 35 0d 2a b2 07 dc 20  30 0d 2a bc 0f dc 20 26  |25.*... 0.*... &|
000051e0  38 30 30 30 30 30 32 31  0d 2a c6 0f dc 20 26 38  |80000021.*... &8|
000051f0  30 30 30 30 30 30 41 0d  2a d0 07 dc 20 37 0d 2a  |000000A.*... 7.*|
00005200  da 0f dc 20 26 38 30 30  30 30 30 33 32 0d 2a e4  |... &80000032.*.|
00005210  0f dc 20 26 38 30 30 30  30 30 34 42 0d 2a ee 0f  |.. &8000004B.*..|
00005220  dc 20 26 38 30 30 30 30  30 34 36 0d 2a f8 07 dc  |. &80000046.*...|
00005230  20 30 0d 2b 02 08 dc 20  32 37 0d 2b 0c 09 dc 20  | 0.+... 27.+... |
00005240  31 30 30 0d 2b 16 08 dc  20 31 39 0d 2b 20 08 dc  |100.+... 19.+ ..|
00005250  20 34 30 0d 2b 2a 07 dc  20 30 0d 2b 34 07 dc 20  | 40.+*.. 0.+4.. |
00005260  30 0d 2b 3e 07 dc 20 30  0d 2b 48 07 dc 20 30 0d  |0.+>.. 0.+H.. 0.|
00005270  2b 52 07 dc 20 30 0d 2b  5c 07 dc 20 30 0d 2b 66  |+R.. 0.+\.. 0.+f|
00005280  08 dc 20 32 30 0d 2b 70  08 dc 20 31 33 0d 2b 7a  |.. 20.+p.. 13.+z|
00005290  08 dc 20 31 37 0d 2b 84  08 dc 20 31 31 0d 2b 8e  |.. 17.+... 11.+.|
000052a0  08 dc 20 31 35 0d 2b 98  0e dc 26 38 30 30 30 30  |.. 15.+...&80000|
000052b0  30 31 38 0d 2b a2 0e dc  26 38 30 30 30 30 30 31  |018.+...&8000001|
000052c0  39 0d 2b ac 0e dc 26 38  30 30 30 30 30 32 35 0d  |9.+...&80000025.|
000052d0  2b b6 0f dd f2 61 73 73  65 6d 66 61 64 65 0d 2b  |+....assemfade.+|
000052e0  c0 0e 58 3d b3 28 32 35  36 29 2d 31 0d 2b ca 0e  |..X=.(256)-1.+..|
000052f0  59 3d b3 28 32 35 36 29  2d 31 0d 2b d4 0f de 20  |Y=.(256)-1.+... |
00005300  66 61 64 65 20 31 30 32  34 0d 2b de 14 e3 20 70  |fade 1024.+... p|
00005310  61 73 73 3d 30 20 b8 20  32 20 88 20 32 0d 2b e8  |ass=0 . 2 . 2.+.|
00005320  0b 50 25 3d 66 61 64 65  0d 2b f2 0d 5b 4f 50 54  |.P%=fade.+..[OPT|
00005330  20 70 61 73 73 0d 2b fc  14 53 54 4d 46 44 20 52  | pass.+..STMFD R|
00005340  31 33 21 2c 7b 52 31 34  7d 0d 2c 06 10 4d 4f 56  |13!,{R14}.,..MOV|
00005350  20 52 38 2c 23 31 30 32  34 0d 2c 10 10 53 55 42  | R8,#1024.,..SUB|
00005360  20 52 38 2c 52 38 2c 23  31 0d 2c 1a 10 4d 4f 56  | R8,R8,#1.,..MOV|
00005370  20 52 30 2c 23 31 30 32  34 0d 2c 24 0d 4d 4f 56  | R0,#1024.,$.MOV|
00005380  20 52 39 2c 23 35 0d 2c  2e 0e 4d 4f 56 20 52 31  | R9,#5.,..MOV R1|
00005390  30 2c 23 59 0d 2c 38 0e  4d 4f 56 20 52 31 31 2c  |0,#Y.,8.MOV R11,|
000053a0  23 58 0d 2c 42 0d 2e 66  61 64 65 6c 6f 6f 70 0d  |#X.,B..fadeloop.|
000053b0  2c 4c 0f 4d 4f 56 20 52  31 2c 23 32 35 36 0d 2c  |,L.MOV R1,#256.,|
000053c0  56 12 41 44 44 20 52 31  30 2c 52 31 30 2c 23 31  |V.ADD R10,R10,#1|
000053d0  0d 2c 60 10 80 20 52 31  30 2c 52 31 30 2c 52 38  |.,`.. R10,R10,R8|
000053e0  0d 2c 6a 0e 2e 66 61 64  65 6c 6f 6f 70 32 0d 2c  |.,j..fadeloop2.,|
000053f0  74 12 4d 55 4c 20 52 31  32 2c 52 31 30 2c 52 39  |t.MUL R12,R10,R9|
00005400  0d 2c 7e 12 41 44 44 20  52 31 30 2c 52 31 32 2c  |.,~.ADD R10,R12,|
00005410  23 31 0d 2c 88 10 80 20  52 31 30 2c 52 31 30 2c  |#1.,... R10,R10,|
00005420  52 38 0d 2c 92 12 4d 55  4c 20 52 31 32 2c 52 31  |R8.,..MUL R12,R1|
00005430  31 2c 52 39 0d 2c 9c 12  41 44 44 20 52 31 31 2c  |1,R9.,..ADD R11,|
00005440  52 31 32 2c 23 31 0d 2c  a6 12 80 20 52 31 31 2c  |R12,#1.,... R11,|
00005450  52 31 31 2c 23 32 35 35  0d 2c b0 0e 4c 44 52 20  |R11,#255.,..LDR |
00005460  52 32 2c 67 65 74 0d 2c  ba 18 41 44 44 20 52 32  |R2,get.,..ADD R2|
00005470  2c 52 32 2c 52 31 30 2c  4c 53 4c 20 23 38 0d 2c  |,R2,R10,LSL #8.,|
00005480  c4 11 41 44 44 20 52 32  2c 52 32 2c 52 31 31 0d  |..ADD R2,R2,R11.|
00005490  2c ce 0e 4c 44 52 20 52  33 2c 70 75 74 0d 2c d8  |,..LDR R3,put.,.|
000054a0  18 41 44 44 20 52 33 2c  52 33 2c 52 31 30 2c 4c  |.ADD R3,R3,R10,L|
000054b0  53 4c 20 23 38 0d 2c e2  11 41 44 44 20 52 33 2c  |SL #8.,..ADD R3,|
000054c0  52 33 2c 52 31 31 0d 2c  ec 12 4c 44 52 20 52 31  |R3,R11.,..LDR R1|
000054d0  32 2c 6c 65 6e 67 74 68  0d 2c f6 0f 43 4d 50 20  |2,length.,..CMP |
000054e0  52 31 30 2c 52 31 32 0d  2d 00 10 42 47 45 20 66  |R10,R12.-..BGE f|
000054f0  61 64 65 6f 76 65 72 0d  2d 0a 11 4c 44 52 42 20  |adeover.-..LDRB |
00005500  52 31 32 2c 5b 52 32 5d  0d 2d 14 11 53 54 52 42  |R12,[R2].-..STRB|
00005510  20 52 31 32 2c 5b 52 33  5d 0d 2d 1e 0d 2e 66 61  | R12,[R3].-...fa|
00005520  64 65 6f 76 65 72 0d 2d  28 10 53 55 42 20 52 31  |deover.-(.SUB R1|
00005530  2c 52 31 2c 23 31 0d 2d  32 0d 54 45 51 20 52 31  |,R1,#1.-2.TEQ R1|
00005540  2c 23 30 0d 2d 3c 11 42  47 54 20 66 61 64 65 6c  |,#0.-<.BGT fadel|
00005550  6f 6f 70 32 0d 2d 46 10  53 55 42 20 52 30 2c 52  |oop2.-F.SUB R0,R|
00005560  30 2c 23 31 0d 2d 50 0d  54 45 51 20 52 30 2c 23  |0,#1.-P.TEQ R0,#|
00005570  30 0d 2d 5a 10 42 47 54  20 66 61 64 65 6c 6f 6f  |0.-Z.BGT fadeloo|
00005580  70 0d 2d 64 13 4c 44 4d  46 44 20 52 31 33 21 2c  |p.-d.LDMFD R13!,|
00005590  7b 50 43 7d 0d 2d 6e 08  2e 67 65 74 0d 2d 78 15  |{PC}.-n..get.-x.|
000055a0  45 51 55 44 20 73 63 72  65 65 6e 32 73 74 61 72  |EQUD screen2star|
000055b0  74 0d 2d 82 08 2e 70 75  74 0d 2d 8c 15 45 51 55  |t.-...put.-..EQU|
000055c0  44 20 73 63 72 65 65 6e  31 73 74 61 72 74 0d 2d  |D screen1start.-|
000055d0  96 0b 2e 6c 65 6e 67 74  68 0d 2d a0 0c 45 51 55  |...length.-..EQU|
000055e0  44 20 33 32 30 0d 2d aa  05 5d 0d 2d b4 05 ed 0d  |D 320.-..].-....|
000055f0  2d be 05 e1 0d 2d c8 0b  dd f2 74 69 74 6c 65 0d  |-....-....title.|
00005600  2d d2 08 eb 20 31 33 0d  2d dc 05 87 0d 2d e6 0d  |-... 13.-....-..|
00005610  2a 46 58 20 31 31 32 2c  32 0d 2d f0 0c 56 3d a6  |*FX 112,2.-..V=.|
00005620  28 31 30 30 29 0d 2d fa  05 db 0d 2e 04 08 fb 20  |(100).-........ |
00005630  33 30 0d 2e 0e 1e f1 8a  31 30 2c 35 29 22 42 72  |30......10,5)"Br|
00005640  61 64 53 6f 66 74 20 53  6f 66 74 77 61 72 65 22  |adSoft Software"|
00005650  0d 2e 18 09 20 fb 20 32  37 0d 2e 22 30 f1 8a 31  |.... . 27.."0..1|
00005660  2c 37 29 22 49 6e 20 61  73 73 6f 63 69 61 74 69  |,7)"In associati|
00005670  6f 6e 20 77 69 74 68 20  41 72 63 68 69 6d 65 64  |on with Archimed|
00005680  65 73 20 57 6f 72 6c 64  22 0d 2e 2c 07 fb 20 37  |es World"..,.. 7|
00005690  0d 2e 36 16 f1 8a 31 34  2c 31 30 29 22 50 72 65  |..6...14,10)"Pre|
000056a0  73 65 6e 74 73 22 0d 2e  40 0a d6 20 66 61 64 65  |sents"..@.. fade|
000056b0  0d 2e 4a 0c 56 3d a6 28  32 30 30 29 0d 2e 54 08  |..J.V=.(200)..T.|
000056c0  fb 20 31 35 0d 2e 5e 1d  f1 8a 31 31 2c 31 35 29  |. 15..^...11,15)|
000056d0  22 41 20 67 61 6d 65 20  62 79 20 43 68 72 69 73  |"A game by Chris|
000056e0  22 0d 2e 68 0a d6 20 66  61 64 65 0d 2e 72 07 d1  |"..h.. fade..r..|
000056f0  3d 30 0d 2e 7c 1c 50 31  25 3d 73 63 72 65 65 6e  |=0..|.P1%=screen|
00005700  32 73 74 61 72 74 2b 31  36 30 2a 33 32 30 0d 2e  |2start+160*320..|
00005710  86 10 50 32 25 3d 74 69  74 6c 65 62 69 74 0d 2e  |..P2%=titlebit..|
00005720  90 1b e3 20 58 25 3d 30  20 b8 20 28 33 32 30 2a  |... X%=0 . (320*|
00005730  35 31 29 2d 34 20 88 20  34 0d 2e 9a 11 50 31 25  |51)-4 . 4....P1%|
00005740  21 58 25 3d 50 32 25 21  58 25 0d 2e a4 05 ed 0d  |!X%=P2%!X%......|
00005750  2e ae 0e 56 3d a6 28 33  30 30 2d 91 29 0d 2e b8  |...V=.(300-.)...|
00005760  0a d6 20 66 61 64 65 0d  2e c2 0c 56 3d a6 28 32  |.. fade....V=.(2|
00005770  30 30 29 0d 2e cc 0d 2a  46 58 20 31 31 32 2c 31  |00)....*FX 112,1|
00005780  0d 2e d6 0c e6 20 30 20  c8 9c 20 30 0d 2e e0 29  |..... 0 .. 0...)|
00005790  e3 20 58 25 3d 31 30 32  34 2d 28 31 36 30 2a 34  |. X%=1024-(160*4|
000057a0  2b 35 31 2a 34 29 20 b8  20 31 30 32 34 2d 32 30  |+51*4) . 1024-20|
000057b0  38 20 88 20 34 0d 2e ea  06 c8 96 0d 2e f4 1d c8  |8 . 4...........|
000057c0  93 20 30 2c 58 25 2c 31  32 38 30 2c 32 30 34 20  |. 0,X%,1280,204 |
000057d0  b8 20 30 2c 58 25 2b 34  0d 2e fe 12 86 20 30 2c  |. 0,X%+4..... 0,|
000057e0  58 25 2c 31 32 38 30 2c  58 25 0d 2f 08 05 ed 0d  |X%,1280,X%./....|
000057f0  2f 12 05 e1 0d 2f 1c 10  dd f2 68 69 67 68 73 63  |/..../....highsc|
00005800  6f 72 65 73 0d 2f 26 0d  2a 46 58 20 31 31 32 2c  |ores./&.*FX 112,|
00005810  32 0d 2f 30 0c 63 6f 75  6e 74 25 3d 30 0d 2f 3a  |2./0.count%=0./:|
00005820  2e e7 20 66 69 72 73 74  74 69 6d 65 3d a3 20 8c  |.. firsttime=. .|
00005830  20 d6 20 76 5f 6f 6e 3a  3f 56 6f 6c 75 6d 65 3d  | . v_on:?Volume=|
00005840  30 3a 70 6c 61 79 69 6e  67 3d b9 0d 2f 44 05 f5  |0:playing=../D..|
00005850  0d 2f 4e 05 db 0d 2f 58  14 50 31 25 3d 73 63 72  |./N.../X.P1%=scr|
00005860  65 65 6e 32 73 74 61 72  74 0d 2f 62 10 50 32 25  |een2start./b.P2%|
00005870  3d 74 69 74 6c 65 62 69  74 0d 2f 6c 1b e3 20 58  |=titlebit./l.. X|
00005880  25 3d 30 20 b8 20 28 33  32 30 2a 35 31 29 2d 31  |%=0 . (320*51)-1|
00005890  20 88 20 34 0d 2f 76 11  50 31 25 21 58 25 3d 50  | . 4./v.P1%!X%=P|
000058a0  32 25 21 58 25 0d 2f 80  05 ed 0d 2f 8a 20 e7 20  |2%!X%./..../. . |
000058b0  63 6f 75 6e 74 25 3e 30  20 8c 20 f2 63 72 65 64  |count%>0 . .cred|
000058c0  69 74 73 3a e5 20 8d 44  4e 6f 0d 2f 94 0f fb 20  |its:. .DNo./... |
000058d0  34 33 20 c8 9c 20 32 35  35 0d 2f 9e 21 f1 8a 38  |43 .. 255./.!..8|
000058e0  2c 38 29 22 42 65 73 74  20 73 63 6f 72 65 73 20  |,8)"Best scores |
000058f0  73 6f 20 66 61 72 2e 2e  2e 22 0d 2f a8 1a e7 20  |so far..."./... |
00005900  66 69 72 73 74 74 69 6d  65 3d b9 20 8c 20 d6 20  |firsttime=. . . |
00005910  66 61 64 65 0d 2f b2 0f  e3 20 58 25 3d 31 20 b8  |fade./... X%=1 .|
00005920  20 31 30 0d 2f bc 17 fb  20 31 32 20 c8 9c 28 32  | 10./... 12 ..(2|
00005930  30 2a 28 31 30 2d 58 25  29 29 0d 2f c6 3f f1 8a  |0*(10-X%))./.?..|
00005940  38 2b 28 28 31 30 2d a9  28 c3 28 68 69 67 68 73  |8+((10-.(.(highs|
00005950  63 6f 72 65 73 28 58 25  29 29 29 29 2f 32 29 2c  |cores(X%))))/2),|
00005960  58 25 2b 31 32 29 3b 22  20 22 3b 68 69 67 68 73  |X%+12);" ";highs|
00005970  63 6f 72 65 73 28 58 25  29 0d 2f d0 17 fb 20 34  |cores(X%)./... 4|
00005980  38 20 c8 9c 28 32 30 2a  28 31 30 2d 58 25 29 29  |8 ..(20*(10-X%))|
00005990  0d 2f da 21 f1 8a 37 2b  28 58 25 3d 31 30 29 2c  |./.!..7+(X%=10),|
000059a0  58 25 2b 31 32 29 3b 22  20 22 3b 58 25 3b 22 29  |X%+12);" ";X%;")|
000059b0  22 0d 2f e4 17 fb 20 33  31 20 c8 9c 28 32 30 2a  |"./... 31 ..(20*|
000059c0  28 31 30 2d 58 25 29 29  0d 2f ee 1d f1 8a 31 37  |(10-X%))./....17|
000059d0  2c 58 25 2b 31 32 29 3b  68 69 67 68 6e 61 6d 65  |,X%+12);highname|
000059e0  24 28 58 25 29 0d 2f f8  05 ed 0d 30 02 0c 58 25  |$(X%)./....0..X%|
000059f0  3d 37 2a 38 2a 34 0d 30  0c 11 58 53 25 3d 38 2a  |=7*8*4.0..XS%=8*|
00005a00  34 2a 33 31 2d 58 25 0d  30 16 12 59 25 3d 31 30  |4*31-X%.0..Y%=10|
00005a10  32 34 2d 32 34 2a 38 2a  34 0d 30 20 16 59 53 25  |24-24*8*4.0 .YS%|
00005a20  3d 31 30 32 34 2d 31 32  2a 38 2a 34 2d 59 25 0d  |=1024-12*8*4-Y%.|
00005a30  30 2a 13 e3 20 43 25 3d  33 20 b8 20 31 20 88 20  |0*.. C%=3 . 1 . |
00005a40  2d 31 0d 30 34 17 e3 20  54 25 3d 36 34 2a 33 20  |-1.04.. T%=64*3 |
00005a50  b8 20 30 20 88 20 2d 36  34 0d 30 3e 0e e6 20 43  |. 0 . -64.0>.. C|
00005a60  25 20 c8 9c 20 54 25 0d  30 48 14 c8 93 20 58 25  |% .. T%.0H... X%|
00005a70  2c 59 25 2c 58 53 25 2c  59 53 25 0d 30 52 0f 58  |,Y%,XS%,YS%.0R.X|
00005a80  25 2d 3d 34 3a 59 25 2d  3d 34 0d 30 5c 11 58 53  |%-=4:Y%-=4.0\.XS|
00005a90  25 2b 3d 38 3a 59 53 25  2b 3d 38 0d 30 66 06 ed  |%+=8:YS%+=8.0f..|
00005aa0  2c 0d 30 70 1a e7 20 66  69 72 73 74 74 69 6d 65  |,.0p.. firsttime|
00005ab0  3d b9 20 8c 20 d6 20 66  61 64 65 0d 30 7a 0f 66  |=. . . fade.0z.f|
00005ac0  69 72 73 74 74 69 6d 65  3d a3 0d 30 84 0f fb 20  |irsttime=..0... |
00005ad0  32 37 20 c8 9c 20 32 35  35 0d 30 8e 23 f1 8a 38  |27 .. 255.0.#..8|
00005ae0  2c 32 37 29 22 50 72 65  73 73 20 61 6e 79 20 6b  |,27)"Press any k|
00005af0  65 79 20 74 6f 20 70 6c  61 79 2e 22 0d 30 98 0a  |ey to play.".0..|
00005b00  d6 20 66 61 64 65 0d 30  a2 0c 2a 46 58 20 31 35  |. fade.0..*FX 15|
00005b10  2c 31 0d 30 ac 05 f5 0d  30 b6 0d 63 6f 75 6e 74  |,1.0....0..count|
00005b20  25 2b 3d 31 0d 30 c0 0e  e3 20 58 25 3d 30 20 b8  |%+=1.0... X%=0 .|
00005b30  20 37 0d 30 ca 1d 50 25  3d 61 6c 69 65 6e 73 2b  | 7.0..P%=aliens+|
00005b40  31 36 2a 31 36 2a 6c 65  66 74 25 28 58 25 29 0d  |16*16*left%(X%).|
00005b50  30 d4 25 50 32 25 3d 73  63 72 65 65 6e 31 73 74  |0.%P2%=screen1st|
00005b60  61 72 74 2b 38 2b 33 32  30 2a 28 36 34 2b 58 25  |art+8+320*(64+X%|
00005b70  2a 32 34 29 0d 30 de 0f  e3 20 56 25 3d 30 20 b8  |*24).0... V%=0 .|
00005b80  20 31 35 0d 30 e8 13 e3  20 48 25 3d 30 20 b8 20  | 15.0... H%=0 . |
00005b90  31 35 20 88 20 34 0d 30  f2 17 50 32 25 21 28 48  |15 . 4.0..P2%!(H|
00005ba0  25 2b 56 25 2a 33 32 30  29 3d 21 50 25 0d 30 fc  |%+V%*320)=!P%.0.|
00005bb0  09 50 25 2b 3d 34 0d 31  06 06 ed 2c 0d 31 10 1e  |.P%+=4.1...,.1..|
00005bc0  50 25 3d 61 6c 69 65 6e  73 2b 31 36 2a 31 36 2a  |P%=aliens+16*16*|
00005bd0  72 69 67 68 74 25 28 58  25 29 0d 31 1a 2c 50 32  |right%(X%).1.,P2|
00005be0  25 3d 73 63 72 65 65 6e  31 73 74 61 72 74 2b 28  |%=screen1start+(|
00005bf0  33 32 30 2d 33 32 29 2b  33 32 30 2a 28 36 34 2b  |320-32)+320*(64+|
00005c00  58 25 2a 32 34 29 0d 31  24 1f e3 20 56 25 3d 30  |X%*24).1$.. V%=0|
00005c10  20 b8 20 31 35 3a e3 20  48 25 3d 30 20 b8 20 31  | . 15:. H%=0 . 1|
00005c20  35 20 88 20 34 0d 31 2e  17 50 32 25 21 28 48 25  |5 . 4.1..P2%!(H%|
00005c30  2b 56 25 2a 33 32 30 29  3d 21 50 25 0d 31 38 09  |+V%*320)=!P%.18.|
00005c40  50 25 2b 3d 34 0d 31 42  07 ed 2c 2c 0d 31 4c 0b  |P%+=4.1B..,,.1L.|
00005c50  56 3d a6 28 35 30 29 0d  31 56 1f e7 20 56 3d 97  |V=.(50).1V.. V=.|
00005c60  28 22 51 22 29 20 8c 20  56 3d 30 3a 2a 41 55 44  |("Q") . V=0:*AUD|
00005c70  49 4f 20 4f 46 46 0d 31  60 1e e7 20 56 3d 97 28  |IO OFF.1`.. V=.(|
00005c80  22 53 22 29 20 8c 20 56  3d 30 3a 2a 41 55 44 49  |"S") . V=0:*AUDI|
00005c90  4f 20 4f 4e 0d 31 6a 13  e3 20 58 25 3d 37 20 b8  |O ON.1j.. X%=7 .|
00005ca0  20 31 20 88 20 2d 31 0d  31 74 19 6c 65 66 74 25  | 1 . -1.1t.left%|
00005cb0  28 58 25 29 3d 6c 65 66  74 25 28 58 25 2d 31 29  |(X%)=left%(X%-1)|
00005cc0  0d 31 7e 1b 72 69 67 68  74 25 28 58 25 29 3d 72  |.1~.right%(X%)=r|
00005cd0  69 67 68 74 25 28 58 25  2d 31 29 0d 31 88 05 ed  |ight%(X%-1).1...|
00005ce0  0d 31 92 14 6c 65 66 74  25 28 30 29 3d b3 28 31  |.1..left%(0)=.(1|
00005cf0  32 29 2d 31 0d 31 9c 15  72 69 67 68 74 25 28 30  |2)-1.1..right%(0|
00005d00  29 3d b3 28 31 32 29 2d  31 0d 31 a6 15 fd 20 56  |)=.(12)-1.1... V|
00005d10  3e 30 20 84 20 63 6f 75  6e 74 25 3e 32 30 0d 31  |>0 . count%>20.1|
00005d20  b0 09 fd 20 56 3e 30 0d  31 ba 05 e1 0d 31 c4 0e  |... V>0.1....1..|
00005d30  dd f2 6e 65 77 6c 65 76  65 6c 0d 31 ce 0d 53 25  |..newlevel.1..S%|
00005d40  3d 21 73 63 6f 72 65 0d  31 d8 0d 4e 42 25 3d 4e  |=!score.1..NB%=N|
00005d50  42 25 2d 31 0d 31 e2 15  e7 20 6c 65 76 65 6c 3c  |B%-1.1... level<|
00005d60  33 20 8c 20 41 25 2b 3d  32 0d 31 ec 0d f2 61 73  |3 . A%+=2.1...as|
00005d70  73 65 6d 62 6c 65 0d 31  f6 0d 21 73 63 6f 72 65  |semble.1..!score|
00005d80  3d 53 25 0d 32 00 11 21  64 69 73 70 73 63 6f 72  |=S%.2..!dispscor|
00005d90  65 3d 53 25 0d 32 0a 13  e7 20 4e 42 25 3c 31 20  |e=S%.2... NB%<1 |
00005da0  8c 20 4e 42 25 3d 31 0d  32 14 0e fb 20 33 20 c8  |. NB%=1.2... 3 .|
00005db0  9c 20 32 35 35 0d 32 1e  18 f1 8a 31 35 2c 31 32  |. 255.2....15,12|
00005dc0  29 22 57 65 6c 6c 20 64  6f 6e 65 2e 22 0d 32 28  |)"Well done.".2(|
00005dd0  0f fb 20 36 33 20 c8 9c  20 32 35 35 0d 32 32 1c  |.. 63 .. 255.22.|
00005de0  f1 8a 31 33 2c 31 35 29  22 5a 6f 6e 65 20 43 6f  |..13,15)"Zone Co|
00005df0  6d 70 6c 65 74 65 2e 22  0d 32 3c 0f fb 20 34 38  |mplete.".2<.. 48|
00005e00  20 c8 9c 20 32 35 35 0d  32 46 31 f1 8a 31 31 2c  | .. 255.2F1..11,|
00005e10  32 30 29 22 42 6f 6e 75  73 20 3d 20 22 3b 6c 65  |20)"Bonus = ";le|
00005e20  76 65 6c 3b 6d 75 6c 24  3b 6c 69 76 65 73 3b 6d  |vel;mul$;lives;m|
00005e30  75 6c 24 3b 22 35 30 22  0d 32 50 13 c8 a1 20 76  |ul$;"50".2P... v|
00005e40  6f 69 63 65 25 2c 22 57  6f 77 22 0d 32 5a 18 d4  |oice%,"Wow".2Z..|
00005e50  20 76 6f 69 63 65 25 2c  2d 31 35 2c 26 31 44 30  | voice%,-15,&1D0|
00005e60  30 2c 30 0d 32 64 20 21  73 63 6f 72 65 3d 21 73  |0,0.2d !score=!s|
00005e70  63 6f 72 65 2b 6c 65 76  65 6c 2a 6c 69 76 65 73  |core+level*lives|
00005e80  2a 35 30 0d 32 6e 22 e7  20 6c 65 76 65 6c 3d 33  |*50.2n". level=3|
00005e90  20 80 20 6c 69 76 65 73  3c 34 20 8c 20 6c 69 76  | . lives<4 . liv|
00005ea0  65 73 2b 3d 31 0d 32 78  22 e7 20 6c 65 76 65 6c  |es+=1.2x". level|
00005eb0  3d 34 20 8c 20 d6 20 70  69 6e 6b 63 6f 64 65 3a  |=4 . . pinkcode:|
00005ec0  70 69 6e 6b 25 3d b9 0d  32 82 05 f5 0d 32 8c 10  |pink%=..2....2..|
00005ed0  c8 96 3a d6 20 64 6f 73  63 6f 72 65 0d 32 96 17  |..:. doscore.2..|
00005ee0  fd 20 21 64 69 73 70 73  63 6f 72 65 3d 21 73 63  |. !dispscore=!sc|
00005ef0  6f 72 65 0d 32 a0 0c 6c  65 76 65 6c 2b 3d 31 0d  |ore.2..level+=1.|
00005f00  32 aa 16 e7 20 6c 65 76  65 6c 3e 35 20 8c 20 e5  |2... level>5 . .|
00005f10  20 8d 74 7e 72 0d 32 b4  35 ff 28 22 4c 6f 61 64  | .t~r.2.5.("Load|
00005f20  20 3c 58 61 63 72 65 74  61 6e 24 44 69 72 3e 2e  | <Xacretan$Dir>.|
00005f30  4d 61 70 73 2e 22 2b c3  28 6c 65 76 65 6c 29 2b  |Maps."+.(level)+|
00005f40  22 20 22 2b c3 7e 6d 61  70 29 0d 32 be 0c 2a 46  |" "+.~map).2..*F|
00005f50  58 20 31 35 2c 31 0d 32  c8 0c 56 3d a6 28 32 30  |X 15,1.2..V=.(20|
00005f60  30 29 0d 32 d2 18 e7 20  6c 65 76 65 6c 3d 36 20  |0).2... level=6 |
00005f70  8c 20 f2 65 6e 64 67 61  6d 65 0d 32 dc 05 e1 0d  |. .endgame.2....|
00005f80  32 e6 10 dd f2 61 72 6d  33 64 65 74 65 63 74 0d  |2....arm3detect.|
00005f90  32 f0 17 ea 20 85 3a ee  20 85 20 ea 20 61 72 6d  |2... .:. . . arm|
00005fa0  33 25 3d a3 3a e1 0d 32  fa 15 61 72 6d 33 25 3d  |3%=.:..2..arm3%=|
00005fb0  b9 3a 2a 43 41 43 48 45  20 4f 4e 0d 33 04 05 e1  |.:*CACHE ON.3...|
00005fc0  0d 33 0e 12 dd f2 77 72  69 74 65 5f 64 65 74 65  |.3....write_dete|
00005fd0  63 74 0d 33 18 18 ea 20  85 3a ee 20 85 20 ea 20  |ct.3... .:. . . |
00005fe0  77 72 69 74 65 25 3d a3  3a e1 0d 33 22 0c 77 72  |write%=.:..3".wr|
00005ff0  69 74 65 25 3d b9 0d 33  2c 2c 2a 53 41 56 45 20  |ite%=..3,,*SAVE |
00006000  22 3c 58 61 63 72 65 74  61 6e 24 44 69 72 3e 2e  |"<Xacretan$Dir>.|
00006010  77 72 69 74 65 74 65 73  74 22 20 38 30 30 30 20  |writetest" 8000 |
00006020  2b 31 0d 33 36 22 2a 44  45 4c 2e 20 3c 58 61 63  |+1.36"*DEL. <Xac|
00006030  72 65 74 61 6e 24 44 69  72 3e 2e 77 72 69 74 65  |retan$Dir>.write|
00006040  74 65 73 74 0d 33 40 05  e1 0d 33 4a 0d dd f2 63  |test.3@...3J...c|
00006050  72 65 64 69 74 73 0d 33  54 0f fb 20 31 35 20 c8  |redits.3T.. 15 .|
00006060  9c 20 32 35 35 0d 33 5e  1a f1 8a 36 2c 38 29 22  |. 255.3^...6,8)"|
00006070  43 6f 64 65 64 20 62 79  20 22 3b 3a fb 20 33 0d  |Coded by ";:. 3.|
00006080  33 68 17 f1 22 43 68 72  69 73 20 42 72 61 64 62  |3h.."Chris Bradb|
00006090  75 72 6e 65 2e 22 0d 33  72 1d fb 20 35 38 3a f1  |urne.".3r.. 58:.|
000060a0  8a 32 2c 31 31 29 22 47  72 61 70 68 69 63 73 20  |.2,11)"Graphics |
000060b0  62 79 22 0d 33 7c 08 fb  20 31 34 0d 33 86 1b f1  |by".3|.. 14.3...|
000060c0  8a 34 2c 31 33 29 22 44  61 76 65 20 57 69 6c 6b  |.4,13)"Dave Wilk|
000060d0  69 6e 73 6f 6e 22 0d 33  90 11 f1 8a 31 36 2c 31  |inson".3....16,1|
000060e0  34 29 22 61 6e 64 22 0d  33 9a 1d f1 8a 31 38 2c  |4)"and".3....18,|
000060f0  31 35 29 22 43 68 72 69  73 20 42 72 61 64 62 75  |15)"Chris Bradbu|
00006100  72 6e 65 22 0d 33 a4 08  fb 20 35 34 0d 33 ae 27  |rne".3... 54.3.'|
00006110  f1 8a 34 2c 31 37 29 22  46 65 61 74 75 72 69 6e  |..4,17)"Featurin|
00006120  67 20 66 6c 6f 77 65 72  73 20 62 79 20 41 6e 64  |g flowers by And|
00006130  79 2e 22 0d 33 b8 08 fb  20 34 34 0d 33 c2 25 f1  |y.".3... 44.3.%.|
00006140  8a 36 2c 32 30 29 22 a9  20 31 39 39 32 20 41 72  |.6,20)". 1992 Ar|
00006150  63 68 69 6d 65 64 65 73  20 57 6f 72 6c 64 2e 22  |chimedes World."|
00006160  0d 33 cc 08 fb 20 32 33  0d 33 d6 2e f1 8a 32 2c  |.3... 23.3....2,|
00006170  32 33 29 22 41 6c 6c 20  73 6f 75 6e 64 73 20 73  |23)"All sounds s|
00006180  61 6d 70 6c 65 64 20 77  69 74 68 20 41 72 6d 61  |ampled with Arma|
00006190  64 65 75 73 2e 22 0d 33  e0 08 fb 20 31 31 0d 33  |deus.".3... 11.3|
000061a0  ea 29 f1 8a 34 2c 32 37  29 22 4d 75 73 69 63 20  |.)..4,27)"Music |
000061b0  70 6c 61 79 65 64 20 77  69 74 68 20 43 6f 63 6f  |played with Coco|
000061c0  6e 69 7a 65 72 2e 22 0d  33 f4 0a d6 20 66 61 64  |nizer.".3... fad|
000061d0  65 0d 33 fe 0c 4b 3d a6  28 37 35 30 29 0d 34 08  |e.3..K=.(750).4.|
000061e0  0c 63 6f 75 6e 74 25 3d  30 0d 34 12 05 e1 0d 34  |.count%=0.4....4|
000061f0  1c 0d dd f2 65 6e 64 67  61 6d 65 0d 34 26 10 21  |....endgame.4&.!|
00006200  65 6e 64 72 65 61 73 6f  6e 3d 30 0d 34 30 0d 2a  |endreason=0.40.*|
00006210  46 58 20 31 31 32 2c 32  0d 34 3a 05 db 0d 34 44  |FX 112,2.4:...4D|
00006220  0a d6 20 66 61 64 65 0d  34 4e 0d 2a 46 58 20 31  |.. fade.4N.*FX 1|
00006230  31 32 2c 31 0d 34 58 0a  f7 20 8d 44 56 76 0d 34  |12,1.4X.. .DVv.4|
00006240  62 0f e3 20 52 25 3d 31  20 b8 20 31 38 0d 34 6c  |b.. R%=1 . 18.4l|
00006250  05 db 0d 34 76 0e e3 20  44 25 3d 31 20 b8 20 33  |...4v.. D%=1 . 3|
00006260  0d 34 80 0d f3 20 70 6f  73 25 2c 70 24 0d 34 8a  |.4... pos%,p$.4.|
00006270  12 fb 20 b3 28 36 33 29  20 c8 9c 20 32 35 35 0d  |.. .(63) .. 255.|
00006280  34 94 1a f1 8a 32 30 2d  28 a9 28 70 24 29 2f 32  |4....20-(.(p$)/2|
00006290  29 2c 70 6f 73 25 29 70  24 0d 34 9e 05 ed 0d 34  |),pos%)p$.4....4|
000062a0  a8 0f e3 20 41 42 25 3d  31 20 b8 20 35 0d 34 b2  |... AB%=1 . 5.4.|
000062b0  0c 43 25 3d b3 28 36 33  29 0d 34 bc 11 e6 20 33  |.C%=.(63).4... 3|
000062c0  2c 43 25 20 c8 9c 20 32  35 35 0d 34 c6 1b 58 25  |,C% .. 255.4..X%|
000062d0  3d b3 28 33 30 30 29 2d  31 35 30 2b 36 34 30 3a  |=.(300)-150+640:|
000062e0  59 25 3d 2d 35 0d 34 d0  0b 4f 58 31 25 3d 58 25  |Y%=-5.4..OX1%=X%|
000062f0  0d 34 da 0b 4f 59 31 25  3d 59 25 0d 34 e4 10 59  |.4..OY1%=Y%.4..Y|
00006300  53 25 3d b3 28 31 35 29  2b 33 30 0d 34 ee 0f 58  |S%=.(15)+30.4..X|
00006310  53 25 3d b3 28 31 30 29  2d 35 0d 34 f8 05 f5 0d  |S%=.(10)-5.4....|
00006320  35 02 17 4f 58 32 25 3d  4f 58 31 25 3a 4f 59 32  |5..OX2%=OX1%:OY2|
00006330  25 3d 4f 59 31 25 0d 35  0c 13 4f 58 31 25 3d 58  |%=OY1%.5..OX1%=X|
00006340  25 3a 4f 59 31 25 3d 59  25 0d 35 16 0b 58 25 2b  |%:OY1%=Y%.5..X%+|
00006350  3d 58 53 25 0d 35 20 0b  59 25 2b 3d 59 53 25 0d  |=XS%.5 .Y%+=YS%.|
00006360  35 2a 0b ec 20 58 25 2c  59 25 0d 35 34 0f df 20  |5*.. X%,Y%.54.. |
00006370  4f 58 31 25 2c 4f 59 31  25 0d 35 3e 0f df 20 4f  |OX1%,OY1%.5>.. O|
00006380  58 32 25 2c 4f 59 32 25  0d 35 48 0a 59 53 25 2d  |X2%,OY2%.5H.YS%-|
00006390  3d 31 0d 35 52 06 c8 96  0d 35 5c 0d fd 20 59 53  |=1.5R....5\.. YS|
000063a0  25 3c 2d 31 30 0d 35 66  0f ec 20 4f 58 31 25 2c  |%<-10.5f.. OX1%,|
000063b0  4f 59 31 25 0d 35 70 0b  df 20 58 25 2c 59 25 0d  |OY1%.5p.. X%,Y%.|
000063c0  35 7a 16 c8 a1 20 76 6f  69 63 65 25 2c 22 45 78  |5z... voice%,"Ex|
000063d0  70 6c 6f 32 22 0d 35 84  18 d4 20 76 6f 69 63 65  |plo2".5... voice|
000063e0  25 2c 2d 31 35 2c 26 32  30 30 30 2c 30 0d 35 8e  |%,-15,&2000,0.5.|
000063f0  12 e3 20 51 25 3d 30 20  b8 20 64 6f 74 73 25 0d  |.. Q%=0 . dots%.|
00006400  35 98 15 44 53 58 25 28  51 25 29 3d b3 28 32 36  |5..DSX%(Q%)=.(26|
00006410  29 2d 31 33 0d 35 a2 14  44 53 59 25 28 51 25 29  |)-13.5..DSY%(Q%)|
00006420  3d b3 28 32 35 29 2d 35  0d 35 ac 0e 44 58 25 28  |=.(25)-5.5..DX%(|
00006430  51 25 29 3d 58 25 0d 35  b6 0e 44 59 25 28 51 25  |Q%)=X%.5..DY%(Q%|
00006440  29 3d 59 25 0d 35 c0 16  c8 92 20 44 58 25 28 51  |)=Y%.5.... DX%(Q|
00006450  25 29 2c 44 59 25 28 51  25 29 0d 35 ca 05 ed 0d  |%),DY%(Q%).5....|
00006460  35 d4 15 e3 20 54 25 3d  32 35 35 20 b8 20 30 20  |5... T%=255 . 0 |
00006470  88 20 2d 38 0d 35 de 10  e6 20 33 2c 43 25 20 c8  |. -8.5... 3,C% .|
00006480  9c 20 54 25 0d 35 e8 06  c8 96 0d 35 f2 12 e3 20  |. T%.5.....5... |
00006490  51 25 3d 30 20 b8 20 64  6f 74 73 25 0d 35 fc 16  |Q%=0 . dots%.5..|
000064a0  c8 92 20 44 58 25 28 51  25 29 2c 44 59 25 28 51  |.. DX%(Q%),DY%(Q|
000064b0  25 29 0d 36 06 15 44 58  25 28 51 25 29 2b 3d 44  |%).6..DX%(Q%)+=D|
000064c0  53 58 25 28 51 25 29 0d  36 10 15 44 59 25 28 51  |SX%(Q%).6..DY%(Q|
000064d0  25 29 2b 3d 44 53 59 25  28 51 25 29 0d 36 1a 0f  |%)+=DSY%(Q%).6..|
000064e0  44 53 59 25 28 51 25 29  2d 3d 31 0d 36 24 16 c8  |DSY%(Q%)-=1.6$..|
000064f0  92 20 44 58 25 28 51 25  29 2c 44 59 25 28 51 25  |. DX%(Q%),DY%(Q%|
00006500  29 0d 36 2e 06 ed 2c 0d  36 38 27 e3 20 51 25 3d  |).6...,.68'. Q%=|
00006510  30 20 b8 20 64 6f 74 73  25 3a c8 92 20 44 58 25  |0 . dots%:.. DX%|
00006520  28 51 25 29 2c 44 59 25  28 51 25 29 3a ed 0d 36  |(Q%),DY%(Q%):..6|
00006530  42 06 ed 2c 0d 36 4c 0d  6c 69 76 65 73 3d 30 3a  |B..,.6L.lives=0:|
00006540  e1 0d 36 56 0a dc 20 30  2c 22 22 0d 36 60 0a dc  |..6V.. 0,"".6`..|
00006550  20 30 2c 22 22 0d 36 6a  0a dc 20 30 2c 22 22 0d  | 0,"".6j.. 0,"".|
00006560  36 74 0a dc 20 30 2c 22  22 0d 36 7e 15 dc 20 31  |6t.. 0,"".6~.. 1|
00006570  35 2c 22 57 65 6c 6c 20  44 6f 6e 65 2e 22 0d 36  |5,"Well Done.".6|
00006580  88 0a dc 20 30 2c 22 22  0d 36 92 1c dc 20 31 30  |... 0,"".6... 10|
00006590  2c 22 59 6f 75 20 68 61  76 65 20 66 69 6e 69 73  |,"You have finis|
000065a0  68 65 64 22 0d 36 9c 14  dc 20 31 35 2c 22 58 61  |hed".6... 15,"Xa|
000065b0  63 72 65 74 61 6e 2e 22  0d 36 a6 0a dc 20 30 2c  |cretan.".6... 0,|
000065c0  22 22 0d 36 b0 22 dc 20  31 30 2c 22 59 6f 75 20  |"".6.". 10,"You |
000065d0  61 72 65 20 6f 6e 65 20  6f 66 20 74 68 65 20 66  |are one of the f|
000065e0  65 77 2c 22 0d 36 ba 24  dc 20 31 35 2c 22 54 68  |ew,".6.$. 15,"Th|
000065f0  65 20 65 6c 69 74 65 2c  20 74 68 65 20 64 65 64  |e elite, the ded|
00006600  69 63 61 74 65 64 2c 22  0d 36 c4 1a dc 20 32 30  |icated,".6... 20|
00006610  2c 22 74 68 65 20 75 6e  62 65 61 74 61 62 6c 65  |,"the unbeatable|
00006620  2e 22 0d 36 ce 21 dc 20  31 35 2c 22 42 75 74 20  |.".6.!. 15,"But |
00006630  79 6f 75 20 68 61 76 65  20 73 75 66 66 65 72 65  |you have suffere|
00006640  64 2e 22 0d 36 d8 0a dc  20 30 2c 22 22 0d 36 e2  |d.".6... 0,"".6.|
00006650  0a dc 20 30 2c 22 22 0d  36 ec 21 dc 20 31 33 2c  |.. 0,"".6.!. 13,|
00006660  22 53 75 66 66 65 72 65  64 20 66 6f 72 20 74 68  |"Suffered for th|
00006670  65 20 63 61 75 73 65 22  0d 36 f6 1e dc 20 31 37  |e cause".6... 17|
00006680  2c 22 79 6f 75 20 74 68  6f 75 67 68 74 20 77 6f  |,"you thought wo|
00006690  72 74 68 79 2e 22 0d 37  00 0a dc 20 30 2c 22 22  |rthy.".7... 0,""|
000066a0  0d 37 0a 23 dc 20 31 30  2c 22 41 6e 64 20 77 61  |.7.#. 10,"And wa|
000066b0  73 20 69 74 20 61 6c 6c  20 77 6f 72 74 68 20 69  |s it all worth i|
000066c0  74 3f 22 0d 37 14 0a dc  20 30 2c 22 22 0d 37 1e  |t?".7... 0,"".7.|
000066d0  0a dc 20 30 2c 22 22 0d  37 28 18 dc 20 31 35 2c  |.. 0,"".7(.. 15,|
000066e0  22 50 72 6f 62 61 62 6c  79 20 6e 6f 74 21 22 0d  |"Probably not!".|
000066f0  37 32 0a dc 20 30 2c 22  22 0d 37 3c 0a dc 20 30  |72.. 0,"".7<.. 0|
00006700  2c 22 22 0d 37 46 0a dc  20 30 2c 22 22 0d 37 50  |,"".7F.. 0,"".7P|
00006710  0a dc 20 30 2c 22 22 0d  37 5a 0a dc 20 30 2c 22  |.. 0,"".7Z.. 0,"|
00006720  22 0d 37 64 1e dc 20 31  30 2c 22 41 6e 64 20 6e  |".7d.. 10,"And n|
00006730  6f 77 20 61 20 77 6f 72  64 20 66 72 6f 6d 22 0d  |ow a word from".|
00006740  37 6e 22 dc 20 31 35 2c  22 74 68 65 20 70 72 6f  |7n". 15,"the pro|
00006750  67 72 61 6d 6d 65 72 20  68 69 6d 73 65 6c 66 2c  |grammer himself,|
00006760  22 0d 37 78 1b dc 20 32  30 2c 22 43 68 72 69 73  |".7x.. 20,"Chris|
00006770  20 42 72 61 64 62 75 72  6e 65 2c 22 0d 37 82 21  | Bradburne,".7.!|
00006780  dc 20 31 30 2c 22 49 27  64 20 6a 75 73 74 20 6c  |. 10,"I'd just l|
00006790  69 6b 65 20 74 6f 20 74  68 61 6e 6b 22 0d 37 8c  |ike to thank".7.|
000067a0  22 dc 20 31 35 2c 22 61  6c 6c 20 74 68 6f 73 65  |". 15,"all those|
000067b0  20 77 68 6f 20 6d 61 64  65 20 74 68 69 73 22 0d  | who made this".|
000067c0  37 96 19 dc 20 32 30 2c  22 67 61 6d 65 20 70 6f  |7... 20,"game po|
000067d0  73 73 69 62 6c 65 2e 22  0d 37 a0 1f dc 20 31 35  |ssible.".7... 15|
000067e0  2c 22 41 6e 64 20 41 72  63 68 69 6d 65 64 65 73  |,"And Archimedes|
000067f0  20 57 6f 72 6c 64 22 0d  37 aa 1d dc 20 31 38 2c  | World".7... 18,|
00006800  22 66 6f 72 20 70 75 62  6c 69 73 68 69 6e 67 20  |"for publishing |
00006810  69 74 2e 22 0d 37 b4 0a  dc 20 30 2c 22 22 0d 37  |it.".7... 0,"".7|
00006820  be 1e dc 20 31 33 2c 22  41 6e 64 20 49 20 77 6f  |... 13,"And I wo|
00006830  75 6c 64 20 6c 69 6b 65  20 74 6f 22 0d 37 c8 24  |uld like to".7.$|
00006840  dc 20 31 37 2c 22 74 68  61 6e 6b 20 59 4f 55 20  |. 17,"thank YOU |
00006850  66 6f 72 20 70 6c 61 79  69 6e 67 20 69 74 2e 22  |for playing it."|
00006860  0d 37 d2 0a dc 20 30 2c  22 22 0d 37 dc 0a dc 20  |.7... 0,"".7... |
00006870  30 2c 22 22 0d 37 e6 0a  dc 20 30 2c 22 22 0d 37  |0,"".7... 0,"".7|
00006880  f0 0a dc 20 30 2c 22 22  0d 37 fa 27 dc 20 31 35  |... 0,"".7.'. 15|
00006890  2c 22 59 6f 75 20 68 61  76 65 20 6e 6f 77 20 66  |,"You have now f|
000068a0  69 6e 61 6c 6c 79 20 72  65 61 63 68 65 64 22 0d  |inally reached".|
000068b0  38 04 0a dc 20 30 2c 22  22 0d 38 0e 0a dc 20 30  |8... 0,"".8... 0|
000068c0  2c 22 22 0d 38 18 13 dc  20 31 35 2c 22 54 48 45  |,"".8... 15,"THE|
000068d0  20 45 4e 44 2e 22 0d 38  22 0a dc 20 30 2c 22 22  | END.".8".. 0,""|
000068e0  0d 38 2c 0a dc 20 30 2c  22 22 0d 38 36 13 dc 20  |.8,.. 0,"".86.. |
000068f0  31 35 2c 22 54 48 45 20  45 4e 44 2e 22 0d 38 40  |15,"THE END.".8@|
00006900  0a dc 20 30 2c 22 22 0d  38 4a 0a dc 20 30 2c 22  |.. 0,"".8J.. 0,"|
00006910  22 0d 38 54 0a dc 20 30  2c 22 22 0d 38 5e 0a dc  |".8T.. 0,"".8^..|
00006920  20 30 2c 22 22 0d 38 68  0a dc 20 30 2c 22 22 0d  | 0,"".8h.. 0,"".|
00006930  38 72 0c dd f2 4d 75 73  41 73 6d 0d 38 7c 17 de  |8r...MusAsm.8|..|
00006940  20 6d 63 6f 64 65 20 31  32 38 30 30 30 2c 4c 25  | mcode 128000,L%|
00006950  2d 31 0d 38 86 19 e3 20  70 3d 25 31 30 30 30 20  |-1.8... p=%1000 |
00006960  b8 20 25 31 30 31 30 20  88 20 32 0d 38 90 0c 50  |. %1010 . 2.8..P|
00006970  25 3d 6d 63 6f 64 65 0d  38 9a 0b f2 5f 4d 75 73  |%=mcode.8..._Mus|
00006980  69 63 0d 38 a4 07 ed 20  70 0d 38 ae 16 65 6e 64  |ic.8... p.8..end|
00006990  25 3d 54 72 61 63 6b 2b  70 6f 69 6e 74 65 72 0d  |%=Track+pointer.|
000069a0  38 b8 05 e1 0d 38 c2 0d  dd 20 f2 5f 4d 75 73 69  |8....8... ._Musi|
000069b0  63 0d 38 cc 0f e7 20 70  3d 25 31 30 30 30 20 8c  |c.8... p=%1000 .|
000069c0  0d 38 d6 0e 6d 61 78 69  6e 73 74 3d 33 32 0d 38  |.8..maxinst=32.8|
000069d0  e0 44 de 20 6e 61 6d 24  28 32 30 30 32 29 2c 62  |.D. nam$(2002),b|
000069e0  79 74 25 28 32 30 30 32  29 2c 6c 6f 63 24 28 32  |yt%(2002),loc$(2|
000069f0  30 30 32 29 2c 73 6f 72  74 25 28 6d 61 78 69 6e  |002),sort%(maxin|
00006a00  73 74 29 2c 73 6f 72 74  24 28 6d 61 78 69 6e 73  |st),sort$(maxins|
00006a10  74 29 0d 38 ea 10 73 6f  72 74 24 28 32 29 3d 22  |t).8..sort$(2)="|
00006a20  b1 22 0d 38 f4 0a 74 6f  70 25 3d 30 0d 38 fe 22  |.".8..top%=0.8."|
00006a30  66 25 3d 8e 20 22 3c 58  61 63 72 65 74 61 6e 24  |f%=. "<Xacretan$|
00006a40  44 69 72 3e 2e 6c 6f 63  61 74 69 6f 6e 22 0d 39  |Dir>.location".9|
00006a50  08 0d c8 95 20 ac 20 c5  23 66 25 0d 39 12 3b 74  |.... . .#f%.9.;t|
00006a60  6f 70 25 2b 3d 31 3a 6e  61 6d 24 28 74 6f 70 25  |op%+=1:nam$(top%|
00006a70  29 3d be 23 66 25 3a e8  23 66 25 2c 62 79 74 25  |)=.#f%:.#f%,byt%|
00006a80  28 74 6f 70 25 29 3a 6c  6f 63 24 28 74 6f 70 25  |(top%):loc$(top%|
00006a90  29 3d be 23 66 25 0d 39  1c 05 ce 0d 39 26 08 d9  |)=.#f%.9....9&..|
00006aa0  23 66 25 0d 39 30 1f 61  24 3d 22 3c 58 61 63 72  |#f%.90.a$="<Xacr|
00006ab0  65 74 61 6e 24 44 69 72  3e 2e 58 61 63 54 75 6e  |etan$Dir>.XacTun|
00006ac0  65 22 0d 39 3a 0b 66 25  3d 8e 20 61 24 0d 39 44  |e".9:.f%=. a$.9D|
00006ad0  33 62 31 3d 9a 23 66 25  3a 62 32 3d 9a 23 66 25  |3b1=.#f%:b2=.#f%|
00006ae0  3a 62 33 3d 9a 23 66 25  3a 62 34 3d 9a 23 66 25  |:b3=.#f%:b4=.#f%|
00006af0  3a 62 35 3d 9a 23 66 25  3a 62 36 3d 9a 23 66 25  |:b5=.#f%:b6=.#f%|
00006b00  0d 39 4e 08 d9 23 66 25  0d 39 58 2b e7 20 62 34  |.9N..#f%.9X+. b4|
00006b10  3d 30 20 80 20 62 35 3e  30 20 8c 20 56 6f 63 73  |=0 . b5>0 . Vocs|
00006b20  3d 62 36 20 8b 20 56 6f  63 73 3d 62 31 20 20 20  |=b6 . Vocs=b1   |
00006b30  20 20 3a 0d 39 62 0e f2  5f 4d 75 73 69 63 41 53  |  :.9b.._MusicAS|
00006b40  4d 0d 39 6c 32 41 25 3d  6d 63 6f 64 65 3a 42 25  |M.9l2A%=mcode:B%|
00006b50  3d 54 72 61 63 6b 2d 31  3a d6 20 54 72 61 63 6b  |=Track-1:. Track|
00006b60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006b70  20 20 3a 0d 39 76 31 41  25 3d 75 66 69 6e 3a 42  |  :.9v1A%=ufin:B|
00006b80  25 3d 4c 25 2d 31 20 20  20 3a d6 20 54 72 61 63  |%=L%-1   :. Trac|
00006b90  6b 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |k               |
00006ba0  20 20 20 3a 0d 39 80 05  e1 0d 39 8a 05 cc 0d 39  |   :.9....9....9|
00006bb0  94 0e f2 5f 4d 75 73 69  63 41 53 4d 0d 39 9e 05  |..._MusicASM.9..|
00006bc0  cd 0d 39 a8 20 ff 20 22  50 61 63 6b 4c 6f 61 64  |..9. . "PackLoad|
00006bd0  20 22 2b 61 24 2b 22 20  22 2b c3 7e 54 72 61 63  | "+a$+" "+.~Trac|
00006be0  6b 0d 39 b2 1e e3 20 69  25 3d 30 20 b8 20 39 2a  |k.9... i%=0 . 9*|
00006bf0  31 32 2d 31 20 20 20 20  20 20 20 20 20 20 3a 0d  |12-1          :.|
00006c00  39 bc 21 6e 25 3d 69 25  20 2b 34 2a 31 32 20 20  |9.!n%=i% +4*12  |
00006c10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3a  |               :|
00006c20  0d 39 c6 21 66 25 3d 34  34 30 2a 28 32 5e 28 28  |.9.!f%=440*(2^((|
00006c30  6e 25 2d 34 36 29 2f 31  32 29 29 20 20 20 20 20  |n%-46)/12))     |
00006c40  3a 0d 39 d0 2b 46 74 61  62 6c 65 21 28 69 25 2a  |:.9.+Ftable!(i%*|
00006c50  34 29 3d 28 66 25 2f 28  31 30 30 30 30 30 30 2f  |4)=(f%/(1000000/|
00006c60  75 73 29 29 2a 36 35 35  33 36 20 3a 0d 39 da 08  |us))*65536 :.9..|
00006c70  ed 20 69 25 0d 39 e4 36  70 6f 69 6e 74 65 72 3d  |. i%.9.6pointer=|
00006c80  54 72 61 63 6b 21 33 32  20 20 20 20 20 20 20 20  |Track!32        |
00006c90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006ca0  20 20 20 20 20 20 20 20  20 3a 0d 39 ee 15 e3 20  |         :.9... |
00006cb0  69 25 3d 31 20 b8 20 54  72 61 63 6b 3f 32 31 0d  |i%=1 . Track?21.|
00006cc0  39 f8 1c 54 72 61 63 6b  21 28 69 25 2a 33 32 2b  |9..Track!(i%*32+|
00006cd0  20 30 29 3d 70 6f 69 6e  74 65 72 0d 3a 02 18 6c  | 0)=pointer.:..l|
00006ce0  65 6e 3d 54 72 61 63 6b  21 28 69 25 2a 33 32 2b  |en=Track!(i%*32+|
00006cf0  20 34 29 0d 3a 0c 18 76  6f 6c 3d 54 72 61 63 6b  | 4).:..vol=Track|
00006d00  21 28 69 25 2a 33 32 2b  20 38 29 0d 3a 16 18 72  |!(i%*32+ 8).:..r|
00006d10  61 74 3d 54 72 61 63 6b  21 28 69 25 2a 33 32 2b  |at=Track!(i%*32+|
00006d20  31 32 29 0d 3a 20 18 72  65 6e 3d 54 72 61 63 6b  |12).: .ren=Track|
00006d30  21 28 69 25 2a 33 32 2b  31 36 29 0d 3a 2a 19 6e  |!(i%*32+16).:*.n|
00006d40  61 24 3d 24 28 54 72 61  63 6b 2b 69 25 2a 33 32  |a$=$(Track+i%*32|
00006d50  2b 32 30 29 0d 3a 34 59  e3 20 6a 25 3d 31 20 b8  |+20).:4Y. j%=1 .|
00006d60  20 74 6f 70 25 3a e7 20  6e 61 24 3c 3e 6e 61 6d  | top%:. na$<>nam|
00006d70  24 28 6a 25 29 20 8c 20  ed 3a e8 27 22 20 2d 3e  |$(j%) . .:.'" ->|
00006d80  20 22 6e 61 24 3a 24 28  54 72 61 63 6b 2b 69 25  | "na$:$(Track+i%|
00006d90  2a 33 32 2b 32 30 29 3d  6e 61 24 3a f1 20 c4 33  |*32+20)=na$:. .3|
00006da0  30 2c bd 38 29 3b 3a e5  20 8d 54 74 7a 0d 3a 3e  |0,.8);:. .Ttz.:>|
00006db0  35 e7 20 6c 65 6e 3e 62  79 74 25 28 6a 25 29 20  |5. len>byt%(j%) |
00006dc0  8c 20 6c 65 6e 3d 62 79  74 25 28 6a 25 29 3a 54  |. len=byt%(j%):T|
00006dd0  72 61 63 6b 21 28 69 25  2a 33 32 2b 34 29 3d 6c  |rack!(i%*32+4)=l|
00006de0  65 6e 0d 3a 48 23 73 6f  72 74 24 28 69 25 29 3d  |en.:H#sort$(i%)=|
00006df0  6c 6f 63 24 28 6a 25 29  3a 73 6f 72 74 25 28 69  |loc$(j%):sort%(i|
00006e00  25 29 3d 69 25 0d 3a 52  14 70 6f 69 6e 74 65 72  |%)=i%.:R.pointer|
00006e10  2b 3d 6c 65 6e 2b 67 61  70 0d 3a 5c 5f e7 20 54  |+=len+gap.:\_. T|
00006e20  72 61 63 6b 2b 70 6f 69  6e 74 65 72 3e 3d 4c 25  |rack+pointer>=L%|
00006e30  20 85 20 9e 2c 22 4d 6f  72 65 20 74 68 61 6e 20  | . .,"More than |
00006e40  22 2b c3 70 6f 69 6e 74  65 72 2b 22 20 62 79 74  |"+.pointer+" byt|
00006e50  65 73 20 73 61 6d 70 6c  65 20 64 61 74 61 3a 20  |es sample data: |
00006e60  41 73 73 65 6d 62 6c 65  72 20 6c 69 6d 69 74 20  |Assembler limit |
00006e70  72 65 61 63 68 65 64 22  0d 3a 66 08 ed 20 69 25  |reached".:f.. i%|
00006e80  0d 3a 70 05 f5 0d 3a 7a  0b 66 6c 61 67 25 3d 30  |.:p...:z.flag%=0|
00006e90  0d 3a 84 17 e3 20 69 25  3d 31 20 b8 20 54 72 61  |.:... i%=1 . Tra|
00006ea0  63 6b 3f 32 31 2d 31 0d  3a 8e 57 e7 20 73 6f 72  |ck?21-1.:.W. sor|
00006eb0  74 24 28 69 25 29 3e 73  6f 72 74 24 28 69 25 2b  |t$(i%)>sort$(i%+|
00006ec0  31 29 20 8c 20 c8 94 20  73 6f 72 74 24 28 69 25  |1) . .. sort$(i%|
00006ed0  29 2c 73 6f 72 74 24 28  69 25 2b 31 29 3a c8 94  |),sort$(i%+1):..|
00006ee0  20 73 6f 72 74 25 28 69  25 29 2c 73 6f 72 74 25  | sort%(i%),sort%|
00006ef0  28 69 25 2b 31 29 3a 66  6c 61 67 25 3d 31 0d 3a  |(i%+1):flag%=1.:|
00006f00  98 08 ed 20 69 25 0d 3a  a2 0d fd 20 66 6c 61 67  |... i%.:... flag|
00006f10  25 3d 30 0d 3a ac 15 e3  20 69 25 3d 31 20 b8 20  |%=0.:... i%=1 . |
00006f20  54 72 61 63 6b 3f 32 31  0d 3a b6 0f 73 3d 73 6f  |Track?21.:..s=so|
00006f30  72 74 25 28 69 25 29 0d  3a c0 42 6e 61 24 3d 24  |rt%(i%).:.Bna$=$|
00006f40  28 54 72 61 63 6b 2b 73  2a 33 32 2b 32 30 29 3a  |(Track+s*32+20):|
00006f50  61 64 72 3d 54 72 61 63  6b 2b 54 72 61 63 6b 21  |adr=Track+Track!|
00006f60  28 73 2a 33 32 29 3a 6c  65 6e 3d 54 72 61 63 6b  |(s*32):len=Track|
00006f70  21 28 73 2a 33 32 2b 34  29 0d 3a ca 2f 66 75 24  |!(s*32+4).:./fu$|
00006f80  3d 22 3c 58 61 63 72 65  74 61 6e 24 44 69 72 3e  |="<Xacretan$Dir>|
00006f90  2e 49 6e 73 74 22 2b 73  6f 72 74 24 28 69 25 29  |.Inst"+sort$(i%)|
00006fa0  2b 22 2e 22 2b 6e 61 24  0d 3a d4 0b 66 3d 8e 20  |+"."+na$.:..f=. |
00006fb0  66 75 24 0d 3a de 09 e7  20 66 20 8c 0d 3a e8 19  |fu$.:... f ..:..|
00006fc0  24 28 61 64 72 2b 6c 65  6e 29 3d c4 67 61 70 2d  |$(adr+len)=.gap-|
00006fd0  31 2c bd 30 29 0d 3a f2  20 c8 99 20 22 4f 53 5f  |1,.0).:. .. "OS_|
00006fe0  47 42 50 42 22 2c 34 2c  66 2c 61 64 72 2c 6c 65  |GBPB",4,f,adr,le|
00006ff0  6e 3a d9 23 66 0d 3a fc  05 cc 0d 3b 06 1f 64 69  |n:.#f.:....;..di|
00007000  73 63 3d 28 97 73 6f 72  74 24 28 69 25 29 2d 36  |sc=(.sort$(i%)-6|
00007010  35 29 20 81 20 32 20 2b  31 0d 3b 10 0a e5 20 8d  |5) . 2 +1.;... .|
00007020  64 54 7a 0d 3b 1a 05 cd  0d 3b 24 08 ed 20 69 25  |dTz.;....;$.. i%|
00007030  0d 3b 2e 05 e1 0d 3b 38  10 dd 20 f2 5f 4d 75 73  |.;....;8.. ._Mus|
00007040  69 63 41 53 4d 0d 3b 42  0a 67 61 70 3d 31 36 0d  |icASM.;B.gap=16.|
00007050  3b 4c 0a 75 73 20 3d 34  38 0d 3b 56 0a 5b 4f 50  |;L.us =48.;V.[OP|
00007060  54 20 70 0d 3b 60 09 2e  76 5f 6f 6e 0d 3b 6a 11  |T p.;`..v_on.;j.|
00007070  6d 6f 76 20 20 20 72 31  32 2c 72 31 34 0d 3b 74  |mov   r12,r14.;t|
00007080  1f 6d 6f 76 20 20 20 72  30 2c 23 32 20 20 20 20  |.mov   r0,#2    |
00007090  20 20 20 20 20 20 20 20  20 20 20 20 0d 3b 7e 1f  |            .;~.|
000070a0  6d 6f 76 20 20 20 72 31  2c 23 32 30 38 20 20 20  |mov   r1,#208   |
000070b0  20 20 20 20 20 20 20 20  20 20 20 0d 3b 88 1f 6d  |           .;..m|
000070c0  6f 76 20 20 20 72 32 2c  23 75 73 20 20 20 20 20  |ov   r2,#us     |
000070d0  20 20 20 20 20 20 20 20  20 20 0d 3b 92 1f 6d 6f  |          .;..mo|
000070e0  76 20 20 20 72 33 2c 23  30 20 20 20 20 20 20 20  |v   r3,#0       |
000070f0  20 20 20 20 20 20 20 20  20 0d 3b 9c 1f 6d 6f 76  |         .;..mov|
00007100  20 20 20 72 34 2c 23 30  20 20 20 20 20 20 20 20  |   r4,#0        |
00007110  20 20 20 20 20 20 20 20  0d 3b a6 1b 73 77 69 20  |        .;..swi |
00007120  20 20 22 53 6f 75 6e 64  5f 43 6f 6e 66 69 67 75  |  "Sound_Configu|
00007130  72 65 22 0d 3b b0 1f 6d  6f 76 20 20 20 72 30 2c  |re".;..mov   r0,|
00007140  23 56 6f 63 73 20 20 20  20 20 20 20 20 20 20 20  |#Vocs           |
00007150  20 20 0d 3b ba 1f 6d 6f  76 20 20 20 72 31 2c 23  |  .;..mov   r1,#|
00007160  30 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0               |
00007170  20 0d 3b c4 0f 6d 6f 76  20 20 20 72 32 2c 23 30  | .;..mov   r2,#0|
00007180  0d 3b ce 0f 6d 6f 76 20  20 20 72 33 2c 23 30 0d  |.;..mov   r3,#0.|
00007190  3b d8 0f 6d 6f 76 20 20  20 72 34 2c 23 30 0d 3b  |;..mov   r4,#0.;|
000071a0  e2 1b 73 77 69 20 20 20  22 53 6f 75 6e 64 5f 43  |..swi   "Sound_C|
000071b0  6f 6e 66 69 67 75 72 65  22 0d 3b ec 16 61 64 72  |onfigure".;..adr|
000071c0  20 20 20 72 30 2c 56 6f  69 63 65 42 61 73 65 0d  |   r0,VoiceBase.|
000071d0  3b f6 24 6d 6f 76 20 20  20 72 31 2c 23 30 20 20  |;.$mov   r1,#0  |
000071e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000071f0  20 20 20 0d 3c 00 1e 73  77 69 20 20 20 22 53 6f  |   .<..swi   "So|
00007200  75 6e 64 5f 49 6e 73 74  61 6c 6c 56 6f 69 63 65  |und_InstallVoice|
00007210  22 0d 3c 0a 24 73 74 72  20 20 20 72 31 2c 56 73  |".<.$str   r1,Vs|
00007220  6c 6f 74 20 20 20 20 20  20 20 20 20 20 20 20 20  |lot             |
00007230  20 20 20 20 20 0d 3c 14  22 61 64 72 20 20 20 72  |     .<."adr   r|
00007240  32 2c 56 73 74 65 72 65  6f 73 2d 34 2a 34 2a 28  |2,Vstereos-4*4*(|
00007250  56 6f 63 73 3d 38 29 0d  3c 1e 0f 6d 6f 76 20 20  |Vocs=8).<..mov  |
00007260  20 72 30 2c 23 31 0d 3c  28 0b 2e 76 69 6d 61 67  | r0,#1.<(..vimag|
00007270  65 0d 3c 32 14 6c 64 72  20 20 20 72 31 2c 5b 72  |e.<2.ldr   r1,[r|
00007280  32 5d 2c 23 34 0d 3c 3c  24 73 77 69 20 20 20 22  |2],#4.<<$swi   "|
00007290  53 6f 75 6e 64 5f 53 74  65 72 65 6f 22 20 20 20  |Sound_Stereo"   |
000072a0  20 20 20 20 20 20 20 20  20 0d 3c 46 12 61 64 64  |         .<F.add|
000072b0  20 20 20 72 30 2c 72 30  2c 23 31 0d 3c 50 12 63  |   r0,r0,#1.<P.c|
000072c0  6d 70 20 20 20 72 30 2c  23 56 6f 63 73 0d 3c 5a  |mp   r0,#Vocs.<Z|
000072d0  10 62 4c 73 20 20 20 76  69 6d 61 67 65 0d 3c 64  |.bLs   vimage.<d|
000072e0  12 6d 6f 76 20 20 20 72  30 2c 23 56 6f 63 73 0d  |.mov   r0,#Vocs.|
000072f0  3c 6e 09 2e 76 73 65 74  0d 3c 78 12 61 64 72 20  |<n..vset.<x.adr |
00007300  20 20 72 31 2c 56 6e 61  6d 65 0d 3c 82 24 73 77  |  r1,Vname.<.$sw|
00007310  69 20 20 20 22 53 6f 75  6e 64 5f 41 74 74 61 63  |i   "Sound_Attac|
00007320  68 4e 61 6d 65 64 56 6f  69 63 65 22 20 20 0d 3c  |hNamedVoice"  .<|
00007330  8c 12 6d 6f 76 20 20 20  72 31 2c 23 26 31 37 30  |..mov   r1,#&170|
00007340  0d 3c 96 1f 6d 6f 76 20  20 20 72 32 2c 23 35 30  |.<..mov   r2,#50|
00007350  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 0d  |               .|
00007360  3c a0 11 6d 6f 76 20 20  20 72 33 2c 23 32 35 35  |<..mov   r3,#255|
00007370  0d 3c aa 1f 73 77 69 20  20 20 22 53 6f 75 6e 64  |.<..swi   "Sound|
00007380  5f 43 6f 6e 74 72 6f 6c  22 20 20 20 20 20 20 0d  |_Control"      .|
00007390  3c b4 12 73 75 62 53 20  20 72 30 2c 72 30 2c 23  |<..subS  r0,r0,#|
000073a0  31 0d 3c be 0e 62 4e 65  20 20 20 76 73 65 74 0d  |1.<..bNe   vset.|
000073b0  3c c8 12 62 6c 20 20 20  20 76 61 62 73 6f 6c 75  |<..bl    vabsolu|
000073c0  74 0d 3c d2 11 62 6c 20  20 20 20 76 5f 72 65 73  |t.<..bl    v_res|
000073d0  65 74 0d 3c dc 1f 6d 6f  76 20 20 20 72 30 2c 23  |et.<..mov   r0,#|
000073e0  31 36 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |16              |
000073f0  20 0d 3c e6 13 a4 61 64  72 20 28 31 2c 76 69 6e  | .<...adr (1,vin|
00007400  74 65 72 29 0d 3c f0 1f  61 64 72 20 20 20 72 32  |ter).<..adr   r2|
00007410  2c 48 65 61 64 20 20 20  20 20 20 20 20 20 20 20  |,Head           |
00007420  20 20 20 0d 3c fa 14 73  77 69 20 20 20 22 4f 53  |   .<..swi   "OS|
00007430  5f 43 6c 61 69 6d 22 0d  3d 04 1f 6d 6f 76 20 20  |_Claim".=..mov  |
00007440  20 72 30 2c 23 31 34 20  20 20 20 20 20 20 20 20  | r0,#14         |
00007450  20 20 20 20 20 20 0d 3d  0e 1f 6d 6f 76 20 20 20  |      .=..mov   |
00007460  72 31 2c 23 34 20 20 20  20 20 20 20 20 20 20 20  |r1,#4           |
00007470  20 20 20 20 20 0d 3d 18  13 73 77 69 20 20 20 22  |     .=..swi   "|
00007480  4f 53 5f 42 79 74 65 22  0d 3d 22 1f 6d 6f 76 20  |OS_Byte".=".mov |
00007490  20 20 72 30 2c 23 56 6f  63 73 20 20 20 20 20 20  |  r0,#Vocs      |
000074a0  20 20 20 20 20 20 20 0d  3d 2c 0f 6d 6f 76 20 20  |       .=,.mov  |
000074b0  20 72 31 2c 23 30 0d 3d  36 0f 6d 6f 76 20 20 20  | r1,#0.=6.mov   |
000074c0  72 32 2c 23 30 0d 3d 40  0f 6d 6f 76 20 20 20 72  |r2,#0.=@.mov   r|
000074d0  33 2c 23 30 0d 3d 4a 0f  6d 6f 76 20 20 20 72 34  |3,#0.=J.mov   r4|
000074e0  2c 23 30 0d 3d 54 1f 73  77 69 20 20 20 22 53 6f  |,#0.=T.swi   "So|
000074f0  75 6e 64 5f 43 6f 6e 66  69 67 75 72 65 22 20 20  |und_Configure"  |
00007500  20 20 0d 3d 5e 1f 6d 6f  76 20 20 20 72 30 2c 23  |  .=^.mov   r0,#|
00007510  30 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0               |
00007520  20 0d 3d 68 18 73 77 69  20 20 20 22 53 6f 75 6e  | .=h.swi   "Soun|
00007530  64 5f 56 6f 6c 75 6d 65  22 0d 3d 72 1f 6d 6f 76  |d_Volume".=r.mov|
00007540  20 20 20 72 30 2c 72 30  2c 6c 73 6c 23 31 20 20  |   r0,r0,lsl#1  |
00007550  20 20 20 20 20 20 20 20  0d 3d 7c 14 72 73 62 20  |        .=|.rsb |
00007560  20 20 72 30 2c 72 30 2c  23 32 35 34 0d 3d 86 1f  |  r0,r0,#254.=..|
00007570  73 74 72 20 20 20 72 30  2c 56 6f 6c 75 6d 65 20  |str   r0,Volume |
00007580  20 20 20 20 20 20 20 20  20 20 20 0d 3d 90 10 6d  |           .=..m|
00007590  6f 76 20 20 20 70 63 2c  72 31 32 0d 3d 9a 0d 2e  |ov   pc,r12.=...|
000075a0  76 61 62 73 6f 6c 75 74  0d 3d a4 13 a4 61 64 72  |vabsolut.=...adr|
000075b0  20 28 31 30 2c 54 72 61  63 6b 29 0d 3d ae 1f 6c  | (10,Track).=..l|
000075c0  64 72 20 20 20 72 31 2c  5b 72 31 30 2c 23 32 34  |dr   r1,[r10,#24|
000075d0  5d 20 20 20 20 20 20 20  20 20 0d 3d b8 13 61 64  |]         .=..ad|
000075e0  64 20 20 20 72 31 2c 72  31 30 2c 72 31 0d 3d c2  |d   r1,r10,r1.=.|
000075f0  16 73 74 72 20 20 20 72  31 2c 5b 72 31 30 2c 23  |.str   r1,[r10,#|
00007600  32 34 5d 0d 3d cc 1f 6c  64 72 20 20 20 72 32 2c  |24].=..ldr   r2,|
00007610  5b 72 31 30 2c 23 32 38  5d 20 20 20 20 20 20 20  |[r10,#28]       |
00007620  20 20 0d 3d d6 13 61 64  64 20 20 20 72 32 2c 72  |  .=..add   r2,r|
00007630  31 30 2c 72 32 0d 3d e0  16 73 74 72 20 20 20 72  |10,r2.=..str   r|
00007640  32 2c 5b 72 31 30 2c 23  32 38 5d 0d 3d ea 1f 6c  |2,[r10,#28].=..l|
00007650  64 72 42 20 20 72 31 2c  5b 72 31 30 2c 23 32 31  |drB  r1,[r10,#21|
00007660  5d 20 20 20 20 20 20 20  20 20 0d 3d f4 09 2e 76  |]         .=...v|
00007670  61 6c 6c 0d 3d fe 1f 6c  64 72 20 20 20 72 32 2c  |all.=..ldr   r2,|
00007680  5b 72 31 30 2c 72 31 2c  6c 73 6c 23 35 5d 20 20  |[r10,r1,lsl#5]  |
00007690  20 20 0d 3e 08 13 61 64  64 20 20 20 72 32 2c 72  |  .>..add   r2,r|
000076a0  31 30 2c 72 32 0d 3e 12  1f 73 74 72 20 20 20 72  |10,r2.>..str   r|
000076b0  32 2c 5b 72 31 30 2c 72  31 2c 6c 73 6c 23 35 5d  |2,[r10,r1,lsl#5]|
000076c0  20 20 20 20 0d 3e 1c 12  73 75 62 53 20 20 72 31  |    .>..subS  r1|
000076d0  2c 72 31 2c 23 31 0d 3e  26 0e 62 4e 65 20 20 20  |,r1,#1.>&.bNe   |
000076e0  76 61 6c 6c 0d 3e 30 1f  6c 64 72 20 20 20 72 30  |vall.>0.ldr   r0|
000076f0  2c 5b 70 63 5d 20 20 20  20 20 20 20 20 20 20 20  |,[pc]           |
00007700  20 20 20 0d 3e 3a 1f 73  74 72 20 20 20 72 30 2c  |   .>:.str   r0,|
00007710  76 61 62 73 6f 6c 75 74  20 20 20 20 20 20 20 20  |vabsolut        |
00007720  20 20 0d 3e 44 10 6d 6f  76 20 20 20 70 63 2c 72  |  .>D.mov   pc,r|
00007730  31 34 0d 3e 4e 0c 2e 76  5f 72 65 73 65 74 0d 3e  |14.>N..v_reset.>|
00007740  58 13 a4 61 64 72 20 28  31 30 2c 54 72 61 63 6b  |X..adr (10,Track|
00007750  29 0d 3e 62 10 6d 6f 76  20 20 20 72 31 2c 23 36  |).>b.mov   r1,#6|
00007760  34 0d 3e 6c 1f 73 74 72  20 20 20 72 31 2c 52 65  |4.>l.str   r1,Re|
00007770  67 69 73 74 65 72 73 2b  30 20 20 20 20 20 20 20  |gisters+0       |
00007780  0d 3e 76 16 6c 64 72 20  20 20 72 32 2c 5b 72 31  |.>v.ldr   r2,[r1|
00007790  30 2c 23 32 34 5d 0d 3e  80 1f 73 74 72 20 20 20  |0,#24].>..str   |
000077a0  72 32 2c 52 65 67 69 73  74 65 72 73 2b 38 20 20  |r2,Registers+8  |
000077b0  20 20 20 20 20 0d 3e 8a  11 6c 64 72 42 20 20 72  |     .>..ldrB  r|
000077c0  32 2c 5b 72 32 5d 0d 3e  94 16 6c 64 72 20 20 20  |2,[r2].>..ldr   |
000077d0  72 33 2c 5b 72 31 30 2c  23 32 38 5d 0d 3e 9e 22  |r3,[r10,#28].>."|
000077e0  61 64 64 20 20 20 72 33  2c 72 33 2c 72 32 2c 6c  |add   r3,r3,r2,l|
000077f0  73 6c 23 31 30 2d 28 56  6f 63 73 3d 38 29 0d 3e  |sl#10-(Vocs=8).>|
00007800  a8 1f 73 74 72 20 20 20  72 33 2c 52 65 67 69 73  |..str   r3,Regis|
00007810  74 65 72 73 2b 34 20 20  20 20 20 20 20 0d 3e b2  |ters+4       .>.|
00007820  12 61 64 72 20 20 20 72  31 31 2c 48 65 61 64 0d  |.adr   r11,Head.|
00007830  3e bc 2d 6d 6f 76 20 20  20 72 31 2c 23 30 3a 6d  |>.-mov   r1,#0:m|
00007840  6f 76 20 72 32 2c 23 30  3a 6d 6f 76 20 72 33 2c  |ov r2,#0:mov r3,|
00007850  23 30 3a 6d 6f 76 20 72  34 2c 23 30 0d 3e c6 2d  |#0:mov r4,#0.>.-|
00007860  6d 6f 76 20 20 20 72 35  2c 23 30 3a 6d 6f 76 20  |mov   r5,#0:mov |
00007870  72 36 2c 23 30 3a 6d 6f  76 20 72 37 2c 23 30 3a  |r6,#0:mov r7,#0:|
00007880  6d 6f 76 20 72 38 2c 23  30 0d 3e d0 12 6d 6f 76  |mov r8,#0.>..mov|
00007890  20 20 20 72 30 2c 23 56  6f 63 73 0d 3e da 09 2e  |   r0,#Vocs.>...|
000078a0  76 61 6c 6c 0d 3e e4 1f  73 74 6d 69 61 20 72 31  |vall.>..stmia r1|
000078b0  31 21 2c 7b 72 31 2d 72  38 7d 20 20 20 20 20 20  |1!,{r1-r8}      |
000078c0  20 20 20 0d 3e ee 12 73  75 62 53 20 20 72 30 2c  |   .>..subS  r0,|
000078d0  72 30 2c 23 31 0d 3e f8  0e 62 4e 65 20 20 20 76  |r0,#1.>..bNe   v|
000078e0  61 6c 6c 0d 3f 02 10 6d  6f 76 20 20 20 70 63 2c  |all.?..mov   pc,|
000078f0  72 31 34 0d 3f 0c 0a 2e  76 5f 6f 66 66 0d 3f 16  |r14.?...v_off.?.|
00007900  1f 6d 6f 76 20 20 20 72  30 2c 23 31 33 20 20 20  |.mov   r0,#13   |
00007910  20 20 20 20 20 20 20 20  20 20 20 20 0d 3f 20 1f  |            .? .|
00007920  6d 6f 76 20 20 20 72 31  2c 23 34 20 20 20 20 20  |mov   r1,#4     |
00007930  20 20 20 20 20 20 20 20  20 20 20 0d 3f 2a 13 73  |           .?*.s|
00007940  77 69 20 20 20 22 4f 53  5f 42 79 74 65 22 0d 3f  |wi   "OS_Byte".?|
00007950  34 1f 6d 6f 76 20 20 20  72 30 2c 23 31 36 20 20  |4.mov   r0,#16  |
00007960  20 20 20 20 20 20 20 20  20 20 20 20 20 0d 3f 3e  |             .?>|
00007970  13 61 64 72 20 20 20 72  31 2c 76 69 6e 74 65 72  |.adr   r1,vinter|
00007980  0d 3f 48 11 61 64 72 20  20 20 72 32 2c 48 65 61  |.?H.adr   r2,Hea|
00007990  64 0d 3f 52 16 73 77 69  20 20 20 22 4f 53 5f 52  |d.?R.swi   "OS_R|
000079a0  65 6c 65 61 73 65 22 0d  3f 5c 12 6c 64 72 20 20  |elease".?\.ldr  |
000079b0  20 72 31 2c 56 73 6c 6f  74 0d 3f 66 1f 73 77 69  | r1,Vslot.?f.swi|
000079c0  20 20 20 22 53 6f 75 6e  64 5f 52 65 6d 6f 76 65  |   "Sound_Remove|
000079d0  56 6f 69 63 65 22 20 20  0d 3f 70 0f 6d 6f 76 20  |Voice"  .?p.mov |
000079e0  20 20 72 30 2c 23 31 0d  3f 7a 0f 6d 6f 76 20 20  |  r0,#1.?z.mov  |
000079f0  20 72 31 2c 23 31 0d 3f  84 1f 73 77 69 20 20 20  | r1,#1.?..swi   |
00007a00  22 53 6f 75 6e 64 5f 41  74 74 61 63 68 56 6f 69  |"Sound_AttachVoi|
00007a10  63 65 22 20 20 0d 3f 8e  10 6d 6f 76 20 20 20 70  |ce"  .?..mov   p|
00007a20  63 2c 72 31 34 0d 3f 98  0d 2e 56 73 74 65 72 65  |c,r14.?...Vstere|
00007a30  6f 73 0d 3f a2 11 64 63  64 20 2d 35 30 20 20 20  |os.?..dcd -50   |
00007a40  20 20 20 0d 3f ac 0b 64  63 64 20 2d 32 30 0d 3f  |   .?..dcd -20.?|
00007a50  b6 0b 64 63 64 20 20 32  30 0d 3f c0 0b 64 63 64  |..dcd  20.?..dcd|
00007a60  20 20 35 30 0d 3f ca 11  64 63 64 2d 31 32 36 20  |  50.?..dcd-126 |
00007a70  20 20 20 20 20 0d 3f d4  0b 64 63 64 20 2d 39 30  |     .?..dcd -90|
00007a80  0d 3f de 0b 64 63 64 20  2d 35 34 0d 3f e8 0b 64  |.?..dcd -54.?..d|
00007a90  63 64 20 2d 31 38 0d 3f  f2 0b 64 63 64 20 20 31  |cd -18.?..dcd  1|
00007aa0  38 0d 3f fc 0b 64 63 64  20 20 35 34 0d 40 06 0b  |8.?..dcd  54.@..|
00007ab0  64 63 64 20 20 39 30 0d  40 10 0b 64 63 64 20 31  |dcd  90.@..dcd 1|
00007ac0  32 36 0d 40 1a 10 2e 56  73 6c 6f 74 20 64 63 64  |26.@...Vslot dcd|
00007ad0  20 30 0d 40 24 0e 2e 56  6f 69 63 65 42 61 73 65  | 0.@$..VoiceBase|
00007ae0  0d 40 2e 1f 62 20 20 20  20 20 76 66 69 6c 6c 20  |.@..b     vfill |
00007af0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 0d  |               .|
00007b00  40 38 1f 62 20 20 20 20  20 76 66 69 6c 6c 20 20  |@8.b     vfill  |
00007b10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 0d 40  |              .@|
00007b20  42 1f 62 20 20 20 20 20  76 66 69 6c 6c 20 20 20  |B.b     vfill   |
00007b30  20 20 20 20 20 20 20 20  20 20 20 20 20 0d 40 4c  |             .@L|
00007b40  1f 6c 64 6d 66 64 20 72  31 33 21 2c 7b 70 63 7d  |.ldmfd r13!,{pc}|
00007b50  20 20 20 20 20 20 20 20  20 20 20 20 0d 40 56 1f  |            .@V.|
00007b60  6c 64 6d 66 64 20 72 31  33 21 2c 7b 70 63 7d 20  |ldmfd r13!,{pc} |
00007b70  20 20 20 20 20 20 20 20  20 20 20 0d 40 60 1f 6c  |           .@`.l|
00007b80  64 6d 66 64 20 72 31 33  21 2c 7b 70 63 7d 20 20  |dmfd r13!,{pc}  |
00007b90  20 20 20 20 20 20 20 20  20 20 0d 40 6a 1f 6c 64  |          .@j.ld|
00007ba0  6d 66 64 20 72 31 33 21  2c 7b 70 63 7d 20 20 20  |mfd r13!,{pc}   |
00007bb0  20 20 20 20 20 20 20 20  20 0d 40 74 1f 64 63 64  |         .@t.dcd|
00007bc0  20 20 20 56 6e 61 6d 65  2d 56 6f 69 63 65 42 61  |   Vname-VoiceBa|
00007bd0  73 65 20 20 20 20 20 20  0d 40 7e 1c 2e 56 6e 61  |se      .@~..Vna|
00007be0  6d 65 20 64 63 62 20 22  43 6f 63 6f 70 6c 65 78  |me dcb "Cocoplex|
00007bf0  22 2b bd 30 0d 40 88 09  61 6c 69 67 6e 0d 40 92  |"+.0.@..align.@.|
00007c00  0a 2e 76 66 69 6c 6c 0d  40 9c 1e 74 65 71 50 20  |..vfill.@..teqP |
00007c10  20 70 63 2c 23 28 31 3c  3c 32 37 29 20 84 20 25  | pc,#(1<<27) . %|
00007c20  31 30 20 20 20 0d 40 a6  1f 61 64 72 20 20 20 72  |10   .@..adr   r|
00007c30  38 2c 48 65 61 64 20 20  20 20 20 20 20 20 20 20  |8,Head          |
00007c40  20 20 20 20 0d 40 b0 1f  61 64 64 20 20 20 72 38  |    .@..add   r8|
00007c50  2c 72 38 2c 72 37 2c 6c  73 6c 23 35 20 20 20 20  |,r8,r7,lsl#5    |
00007c60  20 20 20 0d 40 ba 1f 6c  64 6d 49 61 20 72 38 2c  |   .@..ldmIa r8,|
00007c70  7b 72 31 2d 72 36 7d 20  20 20 20 20 20 20 20 20  |{r1-r6}         |
00007c80  20 20 0d 40 c4 13 6c 64  72 20 20 20 72 30 2c 56  |  .@..ldr   r0,V|
00007c90  6f 6c 75 6d 65 0d 40 ce  1f 61 64 64 20 20 20 72  |olume.@..add   r|
00007ca0  35 2c 72 35 2c 72 30 20  20 20 20 20 20 20 20 20  |5,r5,r0         |
00007cb0  20 20 20 20 0d 40 d8 0d  2e 76 66 69 6c 6c 6f 6f  |    .@...vfilloo|
00007cc0  70 0d 40 e2 1d 5d 3a e3  20 6e 3d 31 20 b8 20 67  |p.@..]:. n=1 . g|
00007cd0  61 70 3a 5b 4f 50 54 20  70 20 20 20 20 20 0d 40  |ap:[OPT p     .@|
00007ce0  ec 1f 6c 64 72 42 20 20  72 30 2c 5b 72 33 2c 72  |..ldrB  r0,[r3,r|
00007cf0  31 2c 6c 73 72 23 31 36  5d 20 20 20 20 0d 40 f6  |1,lsr#16]    .@.|
00007d00  1f 73 75 62 53 20 20 72  30 2c 72 30 2c 72 35 20  |.subS  r0,r0,r5 |
00007d10  20 20 20 20 20 20 20 20  20 20 20 20 0d 41 00 0f  |            .A..|
00007d20  6d 6f 76 4d 69 20 72 30  2c 23 30 0d 41 0a 1f 73  |movMi r0,#0.A..s|
00007d30  74 72 42 20 20 72 30 2c  5b 72 31 32 5d 2c 72 31  |trB  r0,[r12],r1|
00007d40  31 20 20 20 20 20 20 20  20 20 0d 41 14 1f 61 64  |1         .A..ad|
00007d50  64 20 20 20 72 31 2c 72  31 2c 72 32 20 20 20 20  |d   r1,r1,r2    |
00007d60  20 20 20 20 20 20 20 20  20 0d 41 1e 0e 5d 3a ed  |         .A..]:.|
00007d70  3a 5b 4f 50 54 20 70 0d  41 28 1f 63 6d 70 20 20  |:[OPT p.A(.cmp  |
00007d80  20 72 34 2c 72 31 2c 6c  73 72 23 31 36 20 20 20  | r4,r1,lsr#16   |
00007d90  20 20 20 20 20 20 0d 41  32 1f 6d 6f 76 4c 73 20  |      .A2.movLs |
00007da0  72 31 2c 72 36 20 20 20  20 20 20 20 20 20 20 20  |r1,r6           |
00007db0  20 20 20 20 20 0d 41 3c  1f 63 6d 70 20 20 20 72  |     .A<.cmp   r|
00007dc0  31 2c 23 30 20 20 20 20  20 20 20 20 20 20 20 20  |1,#0            |
00007dd0  20 20 20 20 0d 41 46 1f  6d 6f 76 45 71 20 72 32  |    .AF.movEq r2|
00007de0  2c 23 30 20 20 20 20 20  20 20 20 20 20 20 20 20  |,#0             |
00007df0  20 20 20 0d 41 50 1f 63  6d 70 20 20 20 72 31 32  |   .AP.cmp   r12|
00007e00  2c 72 31 30 20 20 20 20  20 20 20 20 20 20 20 20  |,r10            |
00007e10  20 20 0d 41 5a 1f 62 4c  6f 20 20 20 76 66 69 6c  |  .AZ.bLo   vfil|
00007e20  6c 6f 6f 70 20 20 20 20  20 20 20 20 20 20 20 20  |loop            |
00007e30  20 0d 41 64 1f 73 74 6d  49 61 20 72 38 2c 7b 72  | .Ad.stmIa r8,{r|
00007e40  31 2d 72 32 7d 20 20 20  20 20 20 20 20 20 20 20  |1-r2}           |
00007e50  0d 41 6e 1f 6d 6f 76 20  20 20 72 30 2c 23 25 30  |.An.mov   r0,#%0|
00007e60  30 30 30 31 30 30 30 20  20 20 20 20 20 20 20 0d  |0001000        .|
00007e70  41 78 1e 74 65 71 50 20  20 70 63 2c 23 28 30 3c  |Ax.teqP  pc,#(0<|
00007e80  3c 32 37 29 20 84 20 25  31 30 20 20 20 0d 41 82  |<27) . %10   .A.|
00007e90  13 6c 64 6d 66 64 20 72  31 33 21 2c 7b 70 63 7d  |.ldmfd r13!,{pc}|
00007ea0  0d 41 8c 09 2e 48 65 61  64 0d 41 96 1f 64 63 64  |.A...Head.A..dcd|
00007eb0  20 30 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | 0              |
00007ec0  20 20 20 20 20 20 20 20  0d 41 a0 1f 64 63 64 20  |        .A..dcd |
00007ed0  30 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0               |
00007ee0  20 20 20 20 20 20 20 0d  41 aa 1f 64 63 64 20 30  |       .A..dcd 0|
00007ef0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007f00  20 20 20 20 20 20 0d 41  b4 1f 64 63 64 20 30 20  |      .A..dcd 0 |
00007f10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007f20  20 20 20 20 20 0d 41 be  1f 64 63 64 20 30 20 20  |     .A..dcd 0  |
00007f30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007f40  20 20 20 20 0d 41 c8 1f  64 63 64 20 30 20 20 20  |    .A..dcd 0   |
00007f50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007f60  20 20 20 0d 41 d2 1f 64  63 64 20 30 20 20 20 20  |   .A..dcd 0    |
00007f70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007f80  20 20 0d 41 dc 1f 64 63  64 20 30 20 20 20 20 20  |  .A..dcd 0     |
00007f90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007fa0  20 0d 41 e6 23 64 63 62  20 c4 33 2a 33 32 2d 34  | .A.#dcb .3*32-4|
00007fb0  2a 33 32 2a 28 56 6f 63  73 3d 38 29 2c bd 30 29  |*32*(Vocs=8),.0)|
00007fc0  20 20 20 20 0d 41 f0 20  2e 56 6f 6c 75 6d 65 20  |    .A. .Volume |
00007fd0  20 20 20 20 20 20 64 63  64 20 30 20 20 20 20 20  |      dcd 0     |
00007fe0  20 20 20 20 0d 41 fa 0d  2e 76 65 66 66 65 63 74  |    .A...veffect|
00007ff0  73 0d 42 04 1f 6c 64 72  20 20 20 72 34 2c 5b 72  |s.B..ldr   r4,[r|
00008000  31 32 2c 23 34 5d 20 20  20 20 20 20 20 20 20 20  |12,#4]          |
00008010  0d 42 0e 1f 63 6d 70 20  20 20 72 34 2c 23 30 20  |.B..cmp   r4,#0 |
00008020  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 0d  |               .|
00008030  42 18 10 6d 6f 76 45 71  20 70 63 2c 72 31 34 0d  |B..movEq pc,r14.|
00008040  42 22 1f 6c 64 72 20 20  20 72 33 2c 5b 72 31 32  |B".ldr   r3,[r12|
00008050  2c 23 32 34 5d 20 20 20  20 20 20 20 20 20 0d 42  |,#24]         .B|
00008060  2c 1f 6d 6f 76 20 20 20  72 31 30 2c 72 31 34 20  |,.mov   r10,r14 |
00008070  20 20 20 20 20 20 20 20  20 20 20 20 20 0d 42 36  |             .B6|
00008080  1f 61 6e 64 53 20 20 72  32 2c 72 33 2c 23 26 66  |.andS  r2,r3,#&f|
00008090  66 20 20 20 20 20 20 20  20 20 20 20 0d 42 40 11  |f           .B@.|
000080a0  62 6c 4e 65 20 20 76 5f  76 6f 6c 75 70 0d 42 4a  |blNe  v_volup.BJ|
000080b0  1f 61 6e 64 53 20 20 72  32 2c 72 33 2c 23 26 66  |.andS  r2,r3,#&f|
000080c0  66 20 3c 3c 38 20 20 20  20 20 20 20 0d 42 54 15  |f <<8       .BT.|
000080d0  6d 6f 76 4e 65 20 72 32  2c 72 32 2c 6c 73 72 23  |movNe r2,r2,lsr#|
000080e0  38 0d 42 5e 13 62 6c 4e  65 20 20 76 5f 76 6f 6c  |8.B^.blNe  v_vol|
000080f0  64 6f 77 6e 0d 42 68 1f  61 6e 64 53 20 20 72 32  |down.Bh.andS  r2|
00008100  2c 72 33 2c 23 26 66 66  20 3c 3c 31 36 20 20 20  |,r3,#&ff <<16   |
00008110  20 20 20 0d 42 72 16 6d  6f 76 4e 65 20 72 32 2c  |   .Br.movNe r2,|
00008120  72 32 2c 6c 73 72 23 31  36 0d 42 7c 11 62 6c 4e  |r2,lsr#16.B|.blN|
00008130  65 20 20 76 5f 61 72 63  75 70 0d 42 86 1f 61 6e  |e  v_arcup.B..an|
00008140  64 53 20 20 72 32 2c 72  33 2c 23 26 66 66 20 3c  |dS  r2,r3,#&ff <|
00008150  3c 32 34 20 20 20 20 20  20 0d 42 90 16 6d 6f 76  |<24      .B..mov|
00008160  4e 65 20 72 32 2c 72 32  2c 6c 73 72 23 32 34 0d  |Ne r2,r2,lsr#24.|
00008170  42 9a 13 62 6c 4e 65 20  20 76 5f 61 72 63 64 6f  |B..blNe  v_arcdo|
00008180  77 6e 0d 42 a4 1f 6d 6f  76 20 20 20 72 31 34 2c  |wn.B..mov   r14,|
00008190  72 31 30 20 20 20 20 20  20 20 20 20 20 20 20 20  |r10             |
000081a0  20 0d 42 ae 1f 6c 64 72  20 20 20 72 31 2c 5b 72  | .B..ldr   r1,[r|
000081b0  31 32 2c 23 32 38 5d 20  20 20 20 20 20 20 20 20  |12,#28]         |
000081c0  0d 42 b8 1f 61 6e 64 53  20 20 72 32 2c 72 31 2c  |.B..andS  r2,r1,|
000081d0  23 26 66 66 20 20 20 20  20 20 20 20 20 20 20 0d  |#&ff           .|
000081e0  42 c2 1f 6d 6f 76 45 71  20 70 63 2c 72 31 34 20  |B..movEq pc,r14 |
000081f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 0d 42  |              .B|
00008200  cc 1f 61 6e 64 20 20 20  72 33 2c 72 31 2c 23 26  |..and   r3,r1,#&|
00008210  66 66 30 30 20 20 20 20  20 20 20 20 20 0d 42 d6  |ff00         .B.|
00008220  1f 6c 64 72 20 20 20 72  33 2c 5b 70 63 2c 72 33  |.ldr   r3,[pc,r3|
00008230  2c 6c 73 72 23 36 5d 20  20 20 20 20 0d 42 e0 12  |,lsr#6]     .B..|
00008240  61 64 64 20 20 20 70 63  2c 70 63 2c 72 33 0d 42  |add   pc,pc,r3.B|
00008250  ea 1f 64 63 64 20 20 20  76 5f 61 72 70 65 67 67  |..dcd   v_arpegg|
00008260  69 6f 2d 76 6f 66 31 20  20 20 20 20 20 0d 42 f4  |io-vof1      .B.|
00008270  09 2e 76 6f 66 31 0d 42  fe 1f 64 63 64 20 20 20  |..vof1.B..dcd   |
00008280  76 5f 73 6c 69 64 65 75  70 2d 76 6f 66 31 20 20  |v_slideup-vof1  |
00008290  20 20 20 20 20 0d 43 08  1f 64 63 64 20 20 20 76  |     .C..dcd   v|
000082a0  5f 73 6c 69 64 65 64 6f  77 6e 2d 76 6f 66 31 20  |_slidedown-vof1 |
000082b0  20 20 20 20 0d 43 12 1f  64 63 64 20 20 20 76 5f  |    .C..dcd   v_|
000082c0  76 6f 6c 75 70 2d 76 6f  66 31 20 20 20 20 20 20  |volup-vof1      |
000082d0  20 20 20 0d 43 1c 1f 64  63 64 20 20 20 76 5f 76  |   .C..dcd   v_v|
000082e0  6f 6c 64 6f 77 6e 2d 76  6f 66 31 20 20 20 20 20  |oldown-vof1     |
000082f0  20 20 0d 43 26 1f 64 63  64 20 20 20 76 5f 61 72  |  .C&.dcd   v_ar|
00008300  63 75 70 2d 76 6f 66 31  20 20 20 20 20 20 20 20  |cup-vof1        |
00008310  20 0d 43 30 1f 64 63 64  20 20 20 76 5f 61 72 63  | .C0.dcd   v_arc|
00008320  64 6f 77 6e 2d 76 6f 66  31 20 20 20 20 20 20 20  |down-vof1       |
00008330  0d 43 3a 0f 2e 76 5f 61  72 70 65 67 67 69 6f 0d  |.C:..v_arpeggio.|
00008340  43 44 1f 6d 6f 76 20 20  20 72 31 2c 72 31 2c 6c  |CD.mov   r1,r1,l|
00008350  73 72 23 32 34 20 20 20  20 20 20 20 20 20 0d 43  |sr#24         .C|
00008360  4e 1f 63 6d 70 20 20 20  72 30 2c 23 31 20 20 20  |N.cmp   r0,#1   |
00008370  20 20 20 20 20 20 20 20  20 20 20 20 20 0d 43 58  |             .CX|
00008380  1f 63 6d 70 4e 65 20 72  30 2c 23 34 20 20 20 20  |.cmpNe r0,#4    |
00008390  20 20 20 20 20 20 20 20  20 20 20 20 0d 43 62 1f  |            .Cb.|
000083a0  61 64 64 45 71 20 72 31  2c 72 31 2c 72 32 2c 6c  |addEq r1,r1,r2,l|
000083b0  73 72 23 34 20 20 20 20  20 20 20 0d 43 6c 1f 63  |sr#4       .Cl.c|
000083c0  6d 70 20 20 20 72 30 2c  23 32 20 20 20 20 20 20  |mp   r0,#2      |
000083d0  20 20 20 20 20 20 20 20  20 20 0d 43 76 1f 63 6d  |          .Cv.cm|
000083e0  70 4e 65 20 72 30 2c 23  35 20 20 20 20 20 20 20  |pNe r0,#5       |
000083f0  20 20 20 20 20 20 20 20  20 0d 43 80 1f 61 6e 64  |         .C..and|
00008400  45 71 20 72 32 2c 72 32  2c 23 26 30 66 20 20 20  |Eq r2,r2,#&0f   |
00008410  20 20 20 20 20 20 20 20  0d 43 8a 12 61 64 64 45  |        .C..addE|
00008420  71 20 72 31 2c 72 31 2c  72 32 0d 43 94 1f 6c 64  |q r1,r1,r2.C..ld|
00008430  72 20 20 20 72 31 2c 5b  72 31 31 2c 72 31 2c 6c  |r   r1,[r11,r1,l|
00008440  73 6c 23 32 5d 20 20 20  20 0d 43 9e 1f 73 74 72  |sl#2]    .C..str|
00008450  20 20 20 72 31 2c 5b 72  31 32 2c 23 34 5d 20 20  |   r1,[r12,#4]  |
00008460  20 20 20 20 20 20 20 20  0d 43 a8 10 6d 6f 76 20  |        .C..mov |
00008470  20 20 70 63 2c 72 31 34  0d 43 b2 0e 2e 76 5f 73  |  pc,r14.C...v_s|
00008480  6c 69 64 65 75 70 0d 43  bc 1f 61 64 64 20 20 20  |lideup.C..add   |
00008490  72 31 2c 72 34 2c 72 32  2c 6c 73 6c 23 36 20 20  |r1,r4,r2,lsl#6  |
000084a0  20 20 20 20 20 0d 43 c6  1f 63 6d 70 20 20 20 72  |     .C..cmp   r|
000084b0  31 2c 23 26 31 38 38 30  30 20 20 20 20 20 20 20  |1,#&18800       |
000084c0  20 20 20 20 0d 43 d0 15  73 74 72 4c 74 20 72 31  |    .C..strLt r1|
000084d0  2c 5b 72 31 32 2c 23 34  5d 0d 43 da 10 6d 6f 76  |,[r12,#4].C..mov|
000084e0  20 20 20 70 63 2c 72 31  34 0d 43 e4 10 2e 76 5f  |   pc,r14.C...v_|
000084f0  73 6c 69 64 65 64 6f 77  6e 0d 43 ee 1f 73 75 62  |slidedown.C..sub|
00008500  20 20 20 72 31 2c 72 34  2c 72 32 2c 6c 73 6c 23  |   r1,r4,r2,lsl#|
00008510  36 20 20 20 20 20 20 20  0d 43 f8 1f 63 6d 70 20  |6       .C..cmp |
00008520  20 20 72 31 2c 23 26 33  33 34 30 20 20 20 20 20  |  r1,#&3340     |
00008530  20 20 20 20 20 20 20 0d  44 02 15 73 74 72 47 74  |       .D..strGt|
00008540  20 72 31 2c 5b 72 31 32  2c 23 34 5d 0d 44 0c 10  | r1,[r12,#4].D..|
00008550  6d 6f 76 20 20 20 70 63  2c 72 31 34 0d 44 16 0c  |mov   pc,r14.D..|
00008560  2e 76 5f 76 6f 6c 75 70  0d 44 20 1f 63 6d 70 20  |.v_volup.D .cmp |
00008570  20 20 72 30 2c 23 31 20  20 20 20 20 20 20 20 20  |  r0,#1         |
00008580  20 20 20 20 20 20 20 0d  44 2a 10 6d 6f 76 4e 65  |       .D*.movNe|
00008590  20 70 63 2c 72 31 34 0d  44 34 1f 6c 64 72 20 20  | pc,r14.D4.ldr  |
000085a0  20 72 31 2c 5b 72 31 32  2c 23 31 36 5d 20 20 20  | r1,[r12,#16]   |
000085b0  20 20 20 20 20 20 0d 44  3e 12 73 75 62 53 20 20  |      .D>.subS  |
000085c0  72 31 2c 72 31 2c 72 32  0d 44 48 1f 73 74 72 50  |r1,r1,r2.DH.strP|
000085d0  6c 20 72 31 2c 5b 72 31  32 2c 23 31 36 5d 20 20  |l r1,[r12,#16]  |
000085e0  20 20 20 20 20 20 20 0d  44 52 10 6d 6f 76 20 20  |       .DR.mov  |
000085f0  20 70 63 2c 72 31 34 0d  44 5c 0e 2e 76 5f 76 6f  | pc,r14.D\..v_vo|
00008600  6c 64 6f 77 6e 0d 44 66  0f 63 6d 70 20 20 20 72  |ldown.Df.cmp   r|
00008610  30 2c 23 31 0d 44 70 10  6d 6f 76 4e 65 20 70 63  |0,#1.Dp.movNe pc|
00008620  2c 72 31 34 0d 44 7a 16  6c 64 72 20 20 20 72 31  |,r14.Dz.ldr   r1|
00008630  2c 5b 72 31 32 2c 23 31  36 5d 0d 44 84 12 61 64  |,[r12,#16].D..ad|
00008640  64 20 20 20 72 31 2c 72  31 2c 72 32 0d 44 8e 11  |d   r1,r1,r2.D..|
00008650  63 6d 70 20 20 20 72 31  2c 23 32 35 35 0d 44 98  |cmp   r1,#255.D.|
00008660  1f 73 74 72 4c 73 20 72  31 2c 5b 72 31 32 2c 23  |.strLs r1,[r12,#|
00008670  31 36 5d 20 20 20 20 20  20 20 20 20 0d 44 a2 10  |16]         .D..|
00008680  6d 6f 76 20 20 20 70 63  2c 72 31 34 0d 44 ac 0c  |mov   pc,r14.D..|
00008690  2e 76 5f 61 72 63 75 70  0d 44 b6 1f 61 64 64 53  |.v_arcup.D..addS|
000086a0  20 20 72 31 2c 72 34 2c  72 32 2c 6c 73 6c 23 34  |  r1,r4,r2,lsl#4|
000086b0  20 20 20 20 20 20 20 0d  44 c0 15 73 74 72 50 6c  |       .D..strPl|
000086c0  20 72 31 2c 5b 72 31 32  2c 23 34 5d 0d 44 ca 10  | r1,[r12,#4].D..|
000086d0  6d 6f 76 20 20 20 70 63  2c 72 31 34 0d 44 d4 0e  |mov   pc,r14.D..|
000086e0  2e 76 5f 61 72 63 64 6f  77 6e 0d 44 de 1f 73 75  |.v_arcdown.D..su|
000086f0  62 53 20 20 72 31 2c 72  34 2c 72 32 2c 6c 73 6c  |bS  r1,r4,r2,lsl|
00008700  23 34 20 20 20 20 20 20  20 0d 44 e8 15 73 74 72  |#4       .D..str|
00008710  50 6c 20 72 31 2c 5b 72  31 32 2c 23 34 5d 0d 44  |Pl r1,[r12,#4].D|
00008720  f2 10 6d 6f 76 20 20 20  70 63 2c 72 31 34 0d 44  |..mov   pc,r14.D|
00008730  fc 08 2e 66 78 31 0d 45  06 17 61 64 72 20 20 20  |...fx1.E..adr   |
00008740  72 31 32 2c 48 65 61 64  2b 30 2a 33 32 0d 45 10  |r12,Head+0*32.E.|
00008750  0f 62 20 20 20 20 20 66  78 34 2b 34 0d 45 1a 08  |.b     fx4+4.E..|
00008760  2e 66 78 32 0d 45 24 17  61 64 72 20 20 20 72 31  |.fx2.E$.adr   r1|
00008770  32 2c 48 65 61 64 2b 31  2a 33 32 0d 45 2e 0f 62  |2,Head+1*32.E..b|
00008780  20 20 20 20 20 66 78 34  2b 34 0d 45 38 08 2e 66  |     fx4+4.E8..f|
00008790  78 33 0d 45 42 17 61 64  72 20 20 20 72 31 32 2c  |x3.EB.adr   r12,|
000087a0  48 65 61 64 2b 32 2a 33  32 0d 45 4c 0f 62 20 20  |Head+2*32.EL.b  |
000087b0  20 20 20 66 78 34 2b 34  0d 45 56 08 2e 66 78 34  |   fx4+4.EV..fx4|
000087c0  0d 45 60 17 61 64 72 20  20 20 72 31 32 2c 48 65  |.E`.adr   r12,He|
000087d0  61 64 2b 33 2a 33 32 0d  45 6a 0f 6d 6f 76 20 20  |ad+3*32.Ej.mov  |
000087e0  20 72 30 2c 23 31 0d 45  74 1f 73 74 72 42 20 20  | r0,#1.Et.strB  |
000087f0  72 30 2c 5b 72 31 32 2c  23 33 30 5d 20 20 20 20  |r0,[r12,#30]    |
00008800  20 20 20 20 20 0d 45 7e  13 61 64 72 20 20 20 72  |     .E~.adr   r|
00008810  31 30 2c 54 72 61 63 6b  0d 45 88 14 61 64 72 20  |10,Track.E..adr |
00008820  20 20 72 31 31 2c 46 74  61 62 6c 65 0d 45 92 0f  |  r11,Ftable.E..|
00008830  62 20 20 20 20 20 76 72  75 6c 65 0d 45 9c 0b 2e  |b     vrule.E...|
00008840  76 69 6e 74 65 72 0d 45  a6 1f 73 74 6d 66 64 20  |vinter.E..stmfd |
00008850  72 31 33 21 2c 7b 72 31  2d 72 31 31 7d 20 20 20  |r13!,{r1-r11}   |
00008860  20 20 20 20 20 0d 45 b0  1f 61 64 72 20 20 20 72  |     .E..adr   r|
00008870  31 31 2c 46 74 61 62 6c  65 20 20 20 20 20 20 20  |11,Ftable       |
00008880  20 20 20 20 0d 45 ba 1f  6c 64 6d 44 62 20 72 31  |    .E..ldmDb r1|
00008890  31 2c 7b 72 30 2c 72 31  7d 20 20 20 20 20 20 20  |1,{r0,r1}       |
000088a0  20 20 20 0d 45 c4 1f 61  64 64 20 20 20 72 30 2c  |   .E..add   r0,|
000088b0  72 30 2c 23 31 20 20 20  20 20 20 20 20 20 20 20  |r0,#1           |
000088c0  20 20 0d 45 ce 1f 63 6d  70 20 20 20 72 30 2c 72  |  .E..cmp   r0,r|
000088d0  31 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |1               |
000088e0  20 0d 45 d8 1f 6d 6f 76  48 73 20 72 30 2c 23 30  | .E..movHs r0,#0|
000088f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008900  0d 45 e2 1f 73 74 72 20  20 20 72 30 2c 5b 72 31  |.E..str   r0,[r1|
00008910  31 2c 23 2d 38 5d 20 20  20 20 20 20 20 20 20 0d  |1,#-8]         .|
00008920  45 ec 1f 62 48 73 20 20  20 76 70 6c 61 79 20 20  |E..bHs   vplay  |
00008930  20 20 20 20 20 20 20 20  20 20 20 20 20 20 0d 45  |              .E|
00008940  f6 1f 62 6c 20 20 20 20  76 65 66 66 65 63 74 73  |..bl    veffects|
00008950  20 20 20 20 20 20 20 20  20 20 20 20 20 0d 46 00  |             .F.|
00008960  15 61 64 64 20 20 20 72  31 32 2c 72 31 32 2c 23  |.add   r12,r12,#|
00008970  33 32 0d 46 0a 1f 62 6c  20 20 20 20 76 65 66 66  |32.F..bl    veff|
00008980  65 63 74 73 20 20 20 20  20 20 20 20 20 20 20 20  |ects            |
00008990  20 0d 46 14 15 61 64 64  20 20 20 72 31 32 2c 72  | .F..add   r12,r|
000089a0  31 32 2c 23 33 32 0d 46  1e 1f 62 6c 20 20 20 20  |12,#32.F..bl    |
000089b0  76 65 66 66 65 63 74 73  20 20 20 20 20 20 20 20  |veffects        |
000089c0  20 20 20 20 20 0d 46 28  15 61 64 64 20 20 20 72  |     .F(.add   r|
000089d0  31 32 2c 72 31 32 2c 23  33 32 0d 46 32 1f 62 6c  |12,r12,#32.F2.bl|
000089e0  20 20 20 20 76 65 66 66  65 63 74 73 20 20 20 20  |    veffects    |
000089f0  20 20 20 20 20 20 20 20  20 0d 46 3c 05 5d 0d 46  |         .F<.].F|
00008a00  46 0e e7 20 56 6f 63 73  3d 38 20 8c 0d 46 50 0a  |F.. Vocs=8 ..FP.|
00008a10  5b 4f 50 54 20 70 0d 46  5a 15 61 64 64 20 20 20  |[OPT p.FZ.add   |
00008a20  72 31 32 2c 72 31 32 2c  23 33 32 0d 46 64 1f 62  |r12,r12,#32.Fd.b|
00008a30  6c 20 20 20 20 76 65 66  66 65 63 74 73 20 20 20  |l    veffects   |
00008a40  20 20 20 20 20 20 20 20  20 20 0d 46 6e 15 61 64  |          .Fn.ad|
00008a50  64 20 20 20 72 31 32 2c  72 31 32 2c 23 33 32 0d  |d   r12,r12,#32.|
00008a60  46 78 1f 62 6c 20 20 20  20 76 65 66 66 65 63 74  |Fx.bl    veffect|
00008a70  73 20 20 20 20 20 20 20  20 20 20 20 20 20 0d 46  |s             .F|
00008a80  82 15 61 64 64 20 20 20  72 31 32 2c 72 31 32 2c  |..add   r12,r12,|
00008a90  23 33 32 0d 46 8c 1f 62  6c 20 20 20 20 76 65 66  |#32.F..bl    vef|
00008aa0  66 65 63 74 73 20 20 20  20 20 20 20 20 20 20 20  |fects           |
00008ab0  20 20 0d 46 96 15 61 64  64 20 20 20 72 31 32 2c  |  .F..add   r12,|
00008ac0  72 31 32 2c 23 33 32 0d  46 a0 1f 62 6c 20 20 20  |r12,#32.F..bl   |
00008ad0  20 76 65 66 66 65 63 74  73 20 20 20 20 20 20 20  | veffects       |
00008ae0  20 20 20 20 20 20 0d 46  aa 05 5d 0d 46 b4 05 cd  |      .F..].F...|
00008af0  0d 46 be 0a 5b 4f 50 54  20 70 0d 46 c8 1f 6c 64  |.F..[OPT p.F..ld|
00008b00  6d 66 64 20 72 31 33 21  2c 7b 72 31 2d 72 31 31  |mfd r13!,{r1-r11|
00008b10  2c 70 63 7d 20 20 20 20  20 0d 46 d2 0a 2e 76 70  |,pc}     .F...vp|
00008b20  6c 61 79 0d 46 dc 16 61  64 72 20 20 20 72 36 2c  |lay.F..adr   r6,|
00008b30  52 65 67 69 73 74 65 72  73 0d 46 e6 1f 6c 64 6d  |Registers.F..ldm|
00008b40  49 61 20 72 36 2c 7b 72  37 2d 72 39 7d 20 20 20  |Ia r6,{r7-r9}   |
00008b50  20 20 20 20 20 20 20 20  0d 46 f0 13 61 64 72 20  |        .F..adr |
00008b60  20 20 72 31 30 2c 54 72  61 63 6b 0d 46 fa 1f 62  |  r10,Track.F..b|
00008b70  6c 20 20 20 20 76 63 68  61 6e 6e 65 6c 20 20 20  |l    vchannel   |
00008b80  20 20 20 20 20 20 20 20  20 20 0d 47 04 15 61 64  |          .G..ad|
00008b90  64 20 20 20 72 31 32 2c  72 31 32 2c 23 33 32 0d  |d   r12,r12,#32.|
00008ba0  47 0e 1f 62 6c 20 20 20  20 76 63 68 61 6e 6e 65  |G..bl    vchanne|
00008bb0  6c 20 20 20 20 20 20 20  20 20 20 20 20 20 0d 47  |l             .G|
00008bc0  18 15 61 64 64 20 20 20  72 31 32 2c 72 31 32 2c  |..add   r12,r12,|
00008bd0  23 33 32 0d 47 22 1f 62  6c 20 20 20 20 76 63 68  |#32.G".bl    vch|
00008be0  61 6e 6e 65 6c 20 20 20  20 20 20 20 20 20 20 20  |annel           |
00008bf0  20 20 0d 47 2c 15 61 64  64 20 20 20 72 31 32 2c  |  .G,.add   r12,|
00008c00  72 31 32 2c 23 33 32 0d  47 36 1f 62 6c 20 20 20  |r12,#32.G6.bl   |
00008c10  20 76 63 68 61 6e 6e 65  6c 20 20 20 20 20 20 20  | vchannel       |
00008c20  20 20 20 20 20 20 0d 47  40 05 5d 0d 47 4a 0e e7  |      .G@.].GJ..|
00008c30  20 56 6f 63 73 3d 38 20  8c 0d 47 54 0a 5b 4f 50  | Vocs=8 ..GT.[OP|
00008c40  54 20 70 0d 47 5e 15 61  64 64 20 20 20 72 31 32  |T p.G^.add   r12|
00008c50  2c 72 31 32 2c 23 33 32  0d 47 68 1f 62 6c 20 20  |,r12,#32.Gh.bl  |
00008c60  20 20 76 63 68 61 6e 6e  65 6c 20 20 20 20 20 20  |  vchannel      |
00008c70  20 20 20 20 20 20 20 0d  47 72 15 61 64 64 20 20  |       .Gr.add  |
00008c80  20 72 31 32 2c 72 31 32  2c 23 33 32 0d 47 7c 1f  | r12,r12,#32.G|.|
00008c90  62 6c 20 20 20 20 76 63  68 61 6e 6e 65 6c 20 20  |bl    vchannel  |
00008ca0  20 20 20 20 20 20 20 20  20 20 20 0d 47 86 15 61  |           .G..a|
00008cb0  64 64 20 20 20 72 31 32  2c 72 31 32 2c 23 33 32  |dd   r12,r12,#32|
00008cc0  0d 47 90 1f 62 6c 20 20  20 20 76 63 68 61 6e 6e  |.G..bl    vchann|
00008cd0  65 6c 20 20 20 20 20 20  20 20 20 20 20 20 20 0d  |el             .|
00008ce0  47 9a 15 61 64 64 20 20  20 72 31 32 2c 72 31 32  |G..add   r12,r12|
00008cf0  2c 23 33 32 0d 47 a4 1f  62 6c 20 20 20 20 76 63  |,#32.G..bl    vc|
00008d00  68 61 6e 6e 65 6c 20 20  20 20 20 20 20 20 20 20  |hannel          |
00008d10  20 20 20 0d 47 ae 05 5d  0d 47 b8 05 cd 0d 47 c2  |   .G..].G....G.|
00008d20  0a 5b 4f 50 54 20 70 0d  47 cc 1f 73 75 62 53 20  |.[OPT p.G..subS |
00008d30  20 72 37 2c 72 37 2c 23  31 20 20 20 20 20 20 20  | r7,r7,#1       |
00008d40  20 20 20 20 20 20 0d 47  d6 1f 73 74 6d 4e 65 49  |      .G..stmNeI|
00008d50  61 20 72 36 2c 7b 72 37  2d 72 38 7d 20 20 20 20  |a r6,{r7-r8}    |
00008d60  20 20 20 20 20 0d 47 e0  1f 6c 64 6d 4e 65 46 64  |     .G..ldmNeFd|
00008d70  20 72 31 33 21 2c 7b 72  31 2d 72 31 31 2c 70 63  | r13!,{r1-r11,pc|
00008d80  7d 20 20 20 0d 47 ea 1f  6d 6f 76 20 20 20 72 37  |}   .G..mov   r7|
00008d90  2c 23 36 34 20 20 20 20  20 20 20 20 20 20 20 20  |,#64            |
00008da0  20 20 20 0d 47 f4 1f 6c  64 72 42 20 20 72 30 2c  |   .G..ldrB  r0,|
00008db0  5b 72 39 2c 23 31 5d 21  20 20 20 20 20 20 20 20  |[r9,#1]!        |
00008dc0  20 20 0d 47 fe 1f 63 6d  70 20 20 20 72 30 2c 23  |  .G..cmp   r0,#|
00008dd0  26 66 66 20 20 20 20 20  20 20 20 20 20 20 20 20  |&ff             |
00008de0  20 0d 48 08 1f 6c 64 72  45 71 20 72 39 2c 5b 72  | .H..ldrEq r9,[r|
00008df0  31 30 2c 23 32 34 5d 20  20 20 20 20 20 20 20 20  |10,#24]         |
00008e00  0d 48 12 1f 6c 64 72 45  71 42 20 30 2c 5b 72 39  |.H..ldrEqB 0,[r9|
00008e10  5d 20 20 20 20 20 20 20  20 20 20 20 20 20 20 0d  |]              .|
00008e20  48 1c 1f 6c 64 72 20 20  20 72 38 2c 5b 72 31 30  |H..ldr   r8,[r10|
00008e30  2c 23 32 38 5d 20 20 20  20 20 20 20 20 20 0d 48  |,#28]         .H|
00008e40  26 26 61 64 64 20 20 20  72 38 2c 72 38 2c 72 30  |&&add   r8,r8,r0|
00008e50  2c 6c 73 6c 23 31 30 2d  28 56 6f 63 73 3d 38 29  |,lsl#10-(Vocs=8)|
00008e60  20 20 20 20 0d 48 30 14  73 74 6d 49 61 20 72 36  |    .H0.stmIa r6|
00008e70  2c 7b 72 37 2d 72 39 7d  0d 48 3a 1f 6c 64 6d 66  |,{r7-r9}.H:.ldmf|
00008e80  64 20 72 31 33 21 2c 7b  72 31 2d 72 31 31 2c 70  |d r13!,{r1-r11,p|
00008e90  63 7d 20 20 20 20 20 0d  48 44 0d 2e 76 63 68 61  |c}     .HD..vcha|
00008ea0  6e 6e 65 6c 0d 48 4e 1f  6c 64 72 20 20 20 72 31  |nnel.HN.ldr   r1|
00008eb0  2c 5b 72 38 5d 2c 23 34  20 20 20 20 20 20 20 20  |,[r8],#4        |
00008ec0  20 20 20 0d 48 58 1f 6c  64 72 42 20 20 72 32 2c  |   .HX.ldrB  r2,|
00008ed0  5b 72 31 32 2c 23 33 30  5d 20 20 20 20 20 20 20  |[r12,#30]       |
00008ee0  20 20 0d 48 62 0f 63 6d  70 20 20 20 72 32 2c 23  |  .Hb.cmp   r2,#|
00008ef0  30 0d 48 6c 1f 62 45 71  20 20 20 76 72 75 6c 65  |0.Hl.bEq   vrule|
00008f00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008f10  0d 48 76 15 6c 64 72 20  20 20 72 32 2c 5b 72 31  |.Hv.ldr   r2,[r1|
00008f20  32 2c 23 34 5d 0d 48 80  1f 63 6d 70 20 20 20 72  |2,#4].H..cmp   r|
00008f30  32 2c 23 30 20 20 20 20  20 20 20 20 20 20 20 20  |2,#0            |
00008f40  20 20 20 20 0d 48 8a 1f  73 74 72 45 71 42 20 32  |    .H..strEqB 2|
00008f50  2c 5b 72 31 32 2c 23 33  30 5d 20 20 20 20 20 20  |,[r12,#30]      |
00008f60  20 20 20 0d 48 94 10 6d  6f 76 20 20 20 70 63 2c  |   .H..mov   pc,|
00008f70  72 31 34 0d 48 9e 0a 2e  76 72 75 6c 65 0d 48 a8  |r14.H...vrule.H.|
00008f80  1f 6d 6f 76 53 20 20 72  30 2c 72 31 2c 6c 73 72  |.movS  r0,r1,lsr|
00008f90  23 32 34 20 20 20 20 20  20 20 20 20 0d 48 b2 1f  |#24         .H..|
00008fa0  62 45 71 20 20 20 76 63  6f 6d 6d 73 20 20 20 20  |bEq   vcomms    |
00008fb0  20 20 20 20 20 20 20 20  20 20 20 0d 48 bc 1f 73  |           .H..s|
00008fc0  74 72 42 20 20 72 30 2c  5b 72 31 32 2c 23 33 31  |trB  r0,[r12,#31|
00008fd0  5d 20 20 20 20 20 20 20  20 20 0d 48 c6 1f 6c 64  |]         .H..ld|
00008fe0  72 20 20 20 72 30 2c 5b  72 31 31 2c 72 30 2c 6c  |r   r0,[r11,r0,l|
00008ff0  73 6c 23 32 5d 20 20 20  20 0d 48 d0 1f 73 74 72  |sl#2]    .H..str|
00009000  20 20 20 72 30 2c 5b 72  31 32 2c 23 34 5d 20 20  |   r0,[r12,#4]  |
00009010  20 20 20 20 20 20 20 20  0d 48 da 1f 61 6e 64 53  |        .H..andS|
00009020  20 20 72 30 2c 72 31 2c  23 26 66 66 20 3c 3c 31  |  r0,r1,#&ff <<1|
00009030  36 20 20 20 20 20 20 0d  48 e4 1f 6c 64 72 45 71  |6      .H..ldrEq|
00009040  20 72 30 2c 5b 72 31 32  2c 23 32 30 5d 20 20 20  | r0,[r12,#20]   |
00009050  20 20 20 20 20 20 0d 48  ee 1f 73 74 72 45 71 20  |      .H..strEq |
00009060  72 30 2c 5b 72 31 32 2c  23 30 30 5d 20 20 20 20  |r0,[r12,#00]    |
00009070  20 20 20 20 20 0d 48 f8  10 62 45 71 20 20 20 76  |     .H..bEq   v|
00009080  63 6f 6d 6d 73 0d 49 02  1f 61 64 64 20 20 20 72  |comms.I..add   r|
00009090  32 2c 72 31 30 2c 72 30  2c 6c 73 72 23 31 31 20  |2,r10,r0,lsr#11 |
000090a0  20 20 20 20 0d 49 0c 1f  6c 64 6d 49 61 20 72 32  |    .I..ldmIa r2|
000090b0  2c 7b 72 30 2c 72 32 2d  72 35 7d 20 20 20 20 20  |,{r0,r2-r5}     |
000090c0  20 20 20 0d 49 16 1f 73  74 72 20 20 20 72 30 2c  |   .I..str   r0,|
000090d0  5b 72 31 32 2c 23 20 38  5d 20 20 20 20 20 20 20  |[r12,# 8]       |
000090e0  20 20 0d 49 20 1f 73 74  72 20 20 20 72 33 2c 5b  |  .I .str   r3,[|
000090f0  72 31 32 2c 23 31 36 5d  20 20 20 20 20 20 20 20  |r12,#16]        |
00009100  20 0d 49 2a 1f 6d 6f 76  53 20 20 72 30 2c 72 34  | .I*.movS  r0,r4|
00009110  2c 6c 73 6c 23 31 36 20  20 20 20 20 20 20 20 20  |,lsl#16         |
00009120  0d 49 34 1f 61 64 64 4e  65 20 72 32 2c 72 34 2c  |.I4.addNe r2,r4,|
00009130  72 35 20 20 20 20 20 20  20 20 20 20 20 20 20 0d  |r5             .|
00009140  49 3e 1f 6d 6f 76 4e 65  20 72 34 2c 72 30 20 20  |I>.movNe r4,r0  |
00009150  20 20 20 20 20 20 20 20  20 20 20 20 20 20 0d 49  |              .I|
00009160  48 1f 73 74 72 20 20 20  72 30 2c 5b 72 31 32 2c  |H.str   r0,[r12,|
00009170  23 20 30 5d 20 20 20 20  20 20 20 20 20 0d 49 52  |# 0]         .IR|
00009180  1f 73 74 72 20 20 20 72  32 2c 5b 72 31 32 2c 23  |.str   r2,[r12,#|
00009190  31 32 5d 20 20 20 20 20  20 20 20 20 0d 49 5c 1f  |12]         .I\.|
000091a0  73 74 72 20 20 20 72 34  2c 5b 72 31 32 2c 23 32  |str   r4,[r12,#2|
000091b0  30 5d 20 20 20 20 20 20  20 20 20 0d 49 66 0b 2e  |0]         .If..|
000091c0  76 63 6f 6d 6d 73 0d 49  70 1f 61 6e 64 20 20 20  |vcomms.Ip.and   |
000091d0  72 30 2c 72 31 2c 23 26  30 66 20 3c 3c 38 20 20  |r0,r1,#&0f <<8  |
000091e0  20 20 20 20 20 0d 49 7a  1f 61 6e 64 20 20 20 72  |     .Iz.and   r|
000091f0  32 2c 72 31 2c 23 26 66  66 20 20 20 20 20 20 20  |2,r1,#&ff       |
00009200  20 20 20 20 0d 49 84 1f  6c 64 72 20 20 20 72 33  |    .I..ldr   r3|
00009210  2c 5b 70 63 2c 72 30 2c  6c 73 72 23 36 5d 20 20  |,[pc,r0,lsr#6]  |
00009220  20 20 20 0d 49 8e 12 61  64 64 20 20 20 70 63 2c  |   .I..add   pc,|
00009230  70 63 2c 72 33 0d 49 98  1f 64 63 64 20 20 20 76  |pc,r3.I..dcd   v|
00009240  65 66 2d 76 6f 66 32 20  20 20 20 20 20 20 20 20  |ef-vof2         |
00009250  20 20 20 20 0d 49 a2 09  2e 76 6f 66 32 0d 49 ac  |    .I...vof2.I.|
00009260  1f 64 63 64 20 20 20 76  65 66 2d 76 6f 66 32 20  |.dcd   vef-vof2 |
00009270  20 20 20 20 20 20 20 20  20 20 20 20 0d 49 b6 1f  |            .I..|
00009280  64 63 64 20 20 20 76 65  66 2d 76 6f 66 32 20 20  |dcd   vef-vof2  |
00009290  20 20 20 20 20 20 20 20  20 20 20 0d 49 c0 1f 64  |           .I..d|
000092a0  63 64 20 20 20 76 65 66  2d 76 6f 66 32 20 20 20  |cd   vef-vof2   |
000092b0  20 20 20 20 20 20 20 20  20 20 0d 49 ca 1f 64 63  |          .I..dc|
000092c0  64 20 20 20 76 65 66 2d  76 6f 66 32 20 20 20 20  |d   vef-vof2    |
000092d0  20 20 20 20 20 20 20 20  20 0d 49 d4 1f 64 63 64  |         .I..dcd|
000092e0  20 20 20 76 65 66 2d 76  6f 66 32 20 20 20 20 20  |   vef-vof2     |
000092f0  20 20 20 20 20 20 20 20  0d 49 de 1f 64 63 64 20  |        .I..dcd |
00009300  20 20 76 65 66 2d 76 6f  66 32 20 20 20 20 20 20  |  vef-vof2      |
00009310  20 20 20 20 20 20 20 0d  49 e8 1f 64 63 64 20 20  |       .I..dcd  |
00009320  20 76 73 74 65 72 65 6f  70 6f 73 2d 76 6f 66 32  | vstereopos-vof2|
00009330  20 20 20 20 20 20 0d 49  f2 1f 64 63 64 20 20 20  |      .I..dcd   |
00009340  76 61 75 74 6f 76 6f 6c  75 70 2d 76 6f 66 32 20  |vautovolup-vof2 |
00009350  20 20 20 20 20 0d 49 fc  1f 64 63 64 20 20 20 76  |     .I..dcd   v|
00009360  61 75 74 6f 76 6f 6c 64  6f 77 6e 2d 76 6f 66 32  |autovoldown-vof2|
00009370  20 20 20 20 0d 4a 06 1f  64 63 64 20 20 20 76 61  |    .J..dcd   va|
00009380  75 74 6f 61 72 63 75 70  2d 76 6f 66 32 20 20 20  |utoarcup-vof2   |
00009390  20 20 20 0d 4a 10 1f 64  63 64 20 20 20 76 61 75  |   .J..dcd   vau|
000093a0  74 6f 61 72 63 64 6f 77  6e 2d 76 6f 66 32 20 20  |toarcdown-vof2  |
000093b0  20 20 0d 4a 1a 1f 64 63  64 20 20 20 76 73 65 74  |  .J..dcd   vset|
000093c0  76 6f 6c 2d 76 6f 66 32  20 20 20 20 20 20 20 20  |vol-vof2        |
000093d0  20 0d 4a 24 1f 64 63 64  20 20 20 76 70 61 74 74  | .J$.dcd   vpatt|
000093e0  62 72 65 61 6b 2d 76 6f  66 32 20 20 20 20 20 20  |break-vof2      |
000093f0  0d 4a 2e 1f 64 63 64 20  20 20 76 6e 6f 70 2d 76  |.J..dcd   vnop-v|
00009400  6f 66 32 20 20 20 20 20  20 20 20 20 20 20 20 0d  |of2            .|
00009410  4a 38 1f 64 63 64 20 20  20 76 73 65 74 73 70 65  |J8.dcd   vsetspe|
00009420  65 64 2d 76 6f 66 32 20  20 20 20 20 20 20 0d 4a  |ed-vof2       .J|
00009430  42 20 2e 76 65 66 20 20  20 20 20 20 20 20 20 20  |B .vef          |
00009440  20 20 20 20 20 20 20 20  20 20 20 20 20 20 0d 4a  |              .J|
00009450  4c 1f 73 74 72 42 20 20  72 32 2c 5b 72 31 32 2c  |L.strB  r2,[r12,|
00009460  23 32 38 5d 20 20 20 20  20 20 20 20 20 0d 4a 56  |#28]         .JV|
00009470  15 6d 6f 76 20 20 20 72  30 2c 72 30 2c 6c 73 72  |.mov   r0,r0,lsr|
00009480  23 38 0d 4a 60 1f 73 74  72 42 20 20 72 30 2c 5b  |#8.J`.strB  r0,[|
00009490  72 31 32 2c 23 32 39 5d  20 20 20 20 20 20 20 20  |r12,#29]        |
000094a0  20 0d 4a 6a 09 2e 76 6e  6f 70 0d 4a 74 1f 6d 6f  | .Jj..vnop.Jt.mo|
000094b0  76 20 20 20 70 63 2c 72  31 34 20 20 20 20 20 20  |v   pc,r14      |
000094c0  20 20 20 20 20 20 20 20  20 0d 4a 7e 0f 2e 76 73  |         .J~..vs|
000094d0  74 65 72 65 6f 70 6f 73  0d 4a 88 1f 61 64 72 20  |tereopos.J..adr |
000094e0  20 20 72 30 2c 48 65 61  64 20 20 20 20 20 20 20  |  r0,Head       |
000094f0  20 20 20 20 20 20 20 0d  4a 92 13 73 75 62 20 20  |       .J..sub  |
00009500  20 72 30 2c 72 31 32 2c  72 30 0d 4a 9c 1f 6d 6f  | r0,r12,r0.J..mo|
00009510  76 20 20 20 72 30 2c 72  30 2c 6c 73 72 23 33 20  |v   r0,r0,lsr#3 |
00009520  20 20 20 20 20 20 20 20  20 0d 4a a6 11 63 6d 70  |         .J..cmp|
00009530  20 20 20 72 30 2c 23 37  2a 34 0d 4a b0 1f 6d 6f  |   r0,#7*4.J..mo|
00009540  76 45 71 20 72 31 2c 20  20 20 23 26 36 30 20 20  |vEq r1,   #&60  |
00009550  20 20 20 20 20 20 20 20  20 0d 4a ba 1f 61 64 64  |         .J..add|
00009560  4e 65 20 72 31 2c 72 30  2c 23 26 36 34 20 20 20  |Ne r1,r0,#&64   |
00009570  20 20 20 20 20 20 20 20  0d 4a c4 16 6d 6f 76 20  |        .J..mov |
00009580  20 20 72 31 2c 72 31 2c  6c 73 6c 23 32 34 0d 4a  |  r1,r1,lsl#24.J|
00009590  ce 12 6f 72 72 20 20 20  72 31 2c 72 31 2c 72 32  |..orr   r1,r1,r2|
000095a0  0d 4a d8 16 6d 6f 76 20  20 20 72 32 2c 23 26 33  |.J..mov   r2,#&3|
000095b0  34 30 30 30 30 30 0d 4a  e2 11 73 74 72 20 20 20  |400000.J..str   |
000095c0  72 31 2c 5b 72 32 5d 0d  4a ec 05 5d 0d 4a f6 0e  |r1,[r2].J..].J..|
000095d0  e7 20 56 6f 63 73 3d 34  20 8c 0d 4b 00 0a 5b 4f  |. Vocs=4 ..K..[O|
000095e0  50 54 20 70 0d 4b 0a 1f  63 6d 70 20 20 20 72 30  |PT p.K..cmp   r0|
000095f0  2c 23 33 2a 34 20 20 20  20 20 20 20 20 20 20 20  |,#3*4           |
00009600  20 20 20 0d 4b 14 18 73  75 62 45 71 20 72 31 2c  |   .K..subEq r1,|
00009610  72 31 2c 23 26 31 30 3c  3c 32 34 0d 4b 1e 1f 61  |r1,#&10<<24.K..a|
00009620  64 64 4e 65 20 72 31 2c  72 31 2c 23 26 31 30 3c  |ddNe r1,r1,#&10<|
00009630  3c 32 34 20 20 20 20 20  20 20 0d 4b 28 11 73 74  |<24       .K(.st|
00009640  72 20 20 20 72 31 2c 5b  72 32 5d 0d 4b 32 05 5d  |r   r1,[r2].K2.]|
00009650  0d 4b 3c 05 cd 0d 4b 46  0a 5b 4f 50 54 20 70 0d  |.K<...KF.[OPT p.|
00009660  4b 50 10 6d 6f 76 20 20  20 70 63 2c 72 31 34 0d  |KP.mov   pc,r14.|
00009670  4b 5a 0f 2e 76 61 75 74  6f 76 6f 6c 75 70 0d 4b  |KZ..vautovolup.K|
00009680  64 16 73 74 72 42 20 20  72 32 2c 5b 72 31 32 2c  |d.strB  r2,[r12,|
00009690  23 32 34 5d 0d 4b 6e 10  6d 6f 76 20 20 20 70 63  |#24].Kn.mov   pc|
000096a0  2c 72 31 34 0d 4b 78 11  2e 76 61 75 74 6f 76 6f  |,r14.Kx..vautovo|
000096b0  6c 64 6f 77 6e 0d 4b 82  16 73 74 72 42 20 20 72  |ldown.K..strB  r|
000096c0  32 2c 5b 72 31 32 2c 23  32 35 5d 0d 4b 8c 10 6d  |2,[r12,#25].K..m|
000096d0  6f 76 20 20 20 70 63 2c  72 31 34 0d 4b 96 0f 2e  |ov   pc,r14.K...|
000096e0  76 61 75 74 6f 61 72 63  75 70 0d 4b a0 16 73 74  |vautoarcup.K..st|
000096f0  72 42 20 20 72 32 2c 5b  72 31 32 2c 23 32 36 5d  |rB  r2,[r12,#26]|
00009700  0d 4b aa 10 6d 6f 76 20  20 20 70 63 2c 72 31 34  |.K..mov   pc,r14|
00009710  0d 4b b4 11 2e 76 61 75  74 6f 61 72 63 64 6f 77  |.K...vautoarcdow|
00009720  6e 0d 4b be 16 73 74 72  42 20 20 72 32 2c 5b 72  |n.K..strB  r2,[r|
00009730  31 32 2c 23 32 37 5d 0d  4b c8 10 6d 6f 76 20 20  |12,#27].K..mov  |
00009740  20 70 63 2c 72 31 34 0d  4b d2 0c 2e 76 73 65 74  | pc,r14.K...vset|
00009750  76 6f 6c 0d 4b dc 1f 73  74 72 20 20 20 72 32 2c  |vol.K..str   r2,|
00009760  5b 72 31 32 2c 23 31 36  5d 20 20 20 20 20 20 20  |[r12,#16]       |
00009770  20 20 0d 4b e6 10 6d 6f  76 20 20 20 70 63 2c 72  |  .K..mov   pc,r|
00009780  31 34 0d 4b f0 0f 2e 76  70 61 74 74 62 72 65 61  |14.K...vpattbrea|
00009790  6b 0d 4b fa 1f 6d 6f 76  20 20 20 72 37 2c 23 31  |k.K..mov   r7,#1|
000097a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000097b0  0d 4c 04 10 6d 6f 76 20  20 20 70 63 2c 72 31 34  |.L..mov   pc,r14|
000097c0  0d 4c 0e 0e 2e 76 73 65  74 73 70 65 65 64 0d 4c  |.L...vsetspeed.L|
000097d0  18 1f 73 74 72 20 20 20  72 32 2c 56 73 70 65 65  |..str   r2,Vspee|
000097e0  64 20 20 20 20 20 20 20  20 20 20 20 20 0d 4c 22  |d            .L"|
000097f0  10 6d 6f 76 20 20 20 70  63 2c 72 31 34 0d 4c 2c  |.mov   pc,r14.L,|
00009800  20 2e 52 65 67 69 73 74  65 72 73 20 20 20 20 64  | .Registers    d|
00009810  63 64 20 36 34 20 20 20  20 20 20 20 20 0d 4c 36  |cd 64        .L6|
00009820  12 64 63 64 20 30 30 20  20 20 20 20 20 20 20 0d  |.dcd 00        .|
00009830  4c 40 12 64 63 64 20 30  30 20 20 20 20 20 20 20  |L@.dcd 00       |
00009840  20 0d 4c 4a 20 2e 56 63  6f 75 6e 74 20 20 20 20  | .LJ .Vcount    |
00009850  20 20 20 64 63 64 20 30  20 20 20 20 20 20 20 20  |   dcd 0        |
00009860  20 0d 4c 54 20 2e 56 73  70 65 65 64 20 20 20 20  | .LT .Vspeed    |
00009870  20 20 20 64 63 64 20 36  20 20 20 20 20 20 20 20  |   dcd 6        |
00009880  20 0d 4c 5e 25 2e 46 74  61 62 6c 65 20 20 20 20  | .L^%.Ftable    |
00009890  20 20 20 5d 3a 50 25 2b  3d 39 2a 31 32 2a 34 3a  |   ]:P%+=9*12*4:|
000098a0  5b 4f 50 54 20 70 0d 4c  68 0a 2e 54 72 61 63 6b  |[OPT p.Lh..Track|
000098b0  0d 4c 72 0f 6d 6f 76 20  20 20 72 32 2c 23 30 0d  |.Lr.mov   r2,#0.|
000098c0  4c 7c 09 2e 75 61 6c 6c  0d 4c 86 14 73 74 72 20  |L|..uall.L..str |
000098d0  20 20 72 32 2c 5b 72 30  5d 2c 23 34 0d 4c 90 0f  |  r2,[r0],#4.L..|
000098e0  63 6d 70 20 20 20 72 30  2c 72 31 0d 4c 9a 0e 62  |cmp   r0,r1.L..b|
000098f0  4c 6f 20 20 20 75 61 6c  6c 0d 4c a4 10 6d 6f 76  |Lo   uall.L..mov|
00009900  20 20 20 70 63 2c 72 31  34 0d 4c ae 09 2e 75 66  |   pc,r14.L...uf|
00009910  69 6e 0d 4c b8 07 5d 3a  e1 0d 4c c2 1b 32 65 72  |in.L..]:..L..2er|
00009920  20 41 44 52 20 28 6f 6e  6c 79 20 66 6f 72 77 61  | ADR (only forwa|
00009930  72 64 73 29 0d 4c cc 14  dd 20 a4 61 64 72 28 72  |rds).L... .adr(r|
00009940  25 2c 64 65 73 74 25 29  0d 4c d6 13 64 69 73 25  |%,dest%).L..dis%|
00009950  3d 64 65 73 74 25 2d 50  25 2d 38 0d 4c e0 0f e7  |=dest%-P%-8.L...|
00009960  20 70 3d 25 31 30 30 30  20 8c 0d 4c ea 10 64 30  | p=%1000 ..L..d0|
00009970  25 3d 30 20 3a 64 31 25  3d 30 0d 4c f4 05 cc 0d  |%=0 :d1%=0.L....|
00009980  4c fe 11 e7 20 64 69 73  25 20 80 20 26 66 20 8c  |L... dis% . &f .|
00009990  0d 4d 08 15 64 30 25 3d  64 69 73 25 20 80 20 26  |.M..d0%=dis% . &|
000099a0  30 30 30 46 46 0d 4d 12  15 64 31 25 3d 64 69 73  |000FF.M..d1%=dis|
000099b0  25 20 80 20 26 46 46 46  30 30 0d 4d 1c 05 cc 0d  |% . &FFF00.M....|
000099c0  4d 26 15 64 30 25 3d 64  69 73 25 20 80 20 26 30  |M&.d0%=dis% . &0|
000099d0  30 46 46 46 0d 4d 30 15  64 31 25 3d 64 69 73 25  |0FFF.M0.d1%=dis%|
000099e0  20 80 20 26 46 46 30 30  30 0d 4d 3a 05 cd 0d 4d  | . &FF000.M:...M|
000099f0  44 05 cd 0d 4d 4e 0a 5b  4f 50 54 20 70 0d 4d 58  |D...MN.[OPT p.MX|
00009a00  12 61 64 64 20 72 25 2c  70 63 2c 23 64 31 25 0d  |.add r%,pc,#d1%.|
00009a10  4d 62 12 61 64 64 20 72  25 2c 72 25 2c 23 64 30  |Mb.add r%,r%,#d0|
00009a20  25 0d 4d 6c 08 5d 3d 22  22 0d 4d 76 0f dd f2 73  |%.Ml.]="".Mv...s|
00009a30  74 6f 70 6d 75 73 69 63  0d 4d 80 14 e7 20 70 6c  |topmusic.M... pl|
00009a40  61 79 69 6e 67 3c 3e b9  20 8c 20 e1 0d 4d 8a 13  |aying<>. . ..M..|
00009a50  e3 20 58 3d 30 20 b8 20  32 35 35 20 88 20 32 0d  |. X=0 . 255 . 2.|
00009a60  4d 94 0d 3f 56 6f 6c 75  6d 65 3d 58 0d 4d 9e 06  |M..?Volume=X.M..|
00009a70  c8 96 0d 4d a8 05 ed 0d  4d b2 0b d6 20 76 5f 6f  |...M....M... v_o|
00009a80  66 66 0d 4d bc 0d 70 6c  61 79 69 6e 67 3d a3 0d  |ff.M..playing=..|
00009a90  4d c6 0f e7 20 61 72 6d  33 25 3d b9 20 8c 0d 4d  |M... arm3%=. ..M|
00009aa0  d0 08 c8 a0 20 34 0d 4d  da 11 c8 a1 20 31 2c 22  |.... 4.M.... 1,"|
00009ab0  5a 61 70 4d 6f 64 22 0d  4d e4 11 c8 a1 20 32 2c  |ZapMod".M.... 2,|
00009ac0  22 45 78 70 6c 6f 31 22  0d 4d ee 11 c8 a1 20 33  |"Explo1".M.... 3|
00009ad0  2c 22 45 78 70 6c 6f 32  22 0d 4d f8 05 cc 0d 4e  |,"Explo2".M....N|
00009ae0  02 08 c8 a0 20 31 0d 4e  0c 05 cd 0d 4e 16 05 e1  |.... 1.N....N...|
00009af0  0d 4e 20 0a dd f2 70 69  6e 6b 0d 4e 2a 0c 20 70  |.N ...pink.N*. p|
00009b00  69 6e 6b 25 3d a3 0d 4e  34 13 20 de 20 70 69 6e  |ink%=..N4. . pin|
00009b10  6b 63 6f 64 65 20 35 31  32 0d 4e 3e 14 e3 20 70  |kcode 512.N>.. p|
00009b20  61 73 73 3d 30 20 b8 20  32 20 88 20 32 0d 4e 48  |ass=0 . 2 . 2.NH|
00009b30  10 20 50 25 3d 70 69 6e  6b 63 6f 64 65 0d 4e 52  |. P%=pinkcode.NR|
00009b40  0e 20 5b 4f 50 54 20 70  61 73 73 0d 4e 5c 1b 20  |. [OPT pass.N\. |
00009b50  4c 44 52 20 52 31 30 2c  70 69 6e 6b 62 6c 6f 63  |LDR R10,pinkbloc|
00009b60  6b 73 74 61 72 74 0d 4e  66 0f 20 4d 4f 56 20 52  |kstart.Nf. MOV R|
00009b70  31 31 2c 23 30 0d 4e 70  0e 20 2e 70 69 6e 6b 6c  |11,#0.Np. .pinkl|
00009b80  6f 6f 70 0d 4e 7a 12 20  4c 44 52 42 20 52 30 2c  |oop.Nz. LDRB R0,|
00009b90  5b 52 31 30 5d 0d 4e 84  0f 20 43 4d 50 20 52 30  |[R10].N.. CMP R0|
00009ba0  2c 23 36 37 0d 4e 8e 11  20 42 4c 45 20 70 69 6e  |,#67.N.. BLE pin|
00009bb0  6b 6f 76 65 72 0d 4e 98  0f 20 43 4d 50 20 52 30  |kover.N.. CMP R0|
00009bc0  2c 23 37 32 0d 4e a2 11  20 42 47 45 20 70 69 6e  |,#72.N.. BGE pin|
00009bd0  6b 6f 76 65 72 0d 4e ac  16 20 41 44 44 20 52 30  |kover.N.. ADD R0|
00009be0  2c 52 30 2c 23 31 38 38  2d 36 38 0d 4e b6 12 20  |,R0,#188-68.N.. |
00009bf0  53 54 52 42 20 52 30 2c  5b 52 31 30 5d 0d 4e c0  |STRB R0,[R10].N.|
00009c00  0e 20 2e 70 69 6e 6b 6f  76 65 72 0d 4e ca 13 20  |. .pinkover.N.. |
00009c10  41 44 44 20 52 31 30 2c  52 31 30 2c 23 31 0d 4e  |ADD R10,R10,#1.N|
00009c20  d4 13 20 41 44 44 20 52  31 31 2c 52 31 31 2c 23  |.. ADD R11,R11,#|
00009c30  31 0d 4e de 16 20 43 4d  50 20 52 31 31 2c 23 34  |1.N.. CMP R11,#4|
00009c40  30 2a 33 32 2a 33 32 0d  4e e8 11 20 42 4e 45 20  |0*32*32.N.. BNE |
00009c50  70 69 6e 6b 6c 6f 6f 70  0d 4e f2 0f 20 4d 4f 56  |pinkloop.N.. MOV|
00009c60  20 50 43 2c 52 31 34 0d  4e fc 20 20 2e 70 69 6e  | PC,R14.N.  .pin|
00009c70  6b 62 6c 6f 63 6b 73 74  61 72 74 3a 45 51 55 44  |kblockstart:EQUD|
00009c80  20 62 6c 6f 63 6b 73 0d  4f 06 08 20 5d 3a ed 0d  | blocks.O.. ]:..|
00009c90  4f 10 06 20 e1 0d ff                              |O.. ...|
00009c97