Home » Archimedes archive » Acorn User » AU 1997-08 A.adf » !IronLord/Iron6

!IronLord/Iron6

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1997-08 A.adf
Filename: !IronLord/Iron6
Read OK:
File size: 590D bytes
Load address: FFFFFB46
Exec address: 1A15390E
File contents
   10REM >:IronLord.!IronLord.Iron6
   20REM (C) 1990 UBI soft.
   30REM Archimedes version by Cygnus Software Engineering Ltd.
   40:
   50VC%=0
   60ON ERROR PROCerror:END
   70:
   80space%=&153C:DIM code% space%,TSP% &5CFC,GSP% &5494,TAB% &2100,PP% &372B,BSC% &7D00,TA%(4),PL%(5,5)
   90:
  100OSCLI"Load <IronLord$Dir>.LabySkull "+STR$~PP%
  110OSCLI"IronLoad <IronLord$Dir>.LabyCave "+STR$~BSC%
  120OSCLI"IronLoad <IronLord$Dir>.LabyTables "+STR$~TAB%
  130!TSP%=&5CFC:OSCLI"IronLoad <IronLord$Dir>.LabySpr1 "+STR$~(TSP%+4)
  140!GSP%=&5484:OSCLI"IronLoad <IronLord$Dir>.LabySpr2 "+STR$~(GSP%+4)
  150left%=225:right%=194:down%=232:up%=207:fire%=201:pause%=224
  160TA%(0)=&346:TA%(1)=&A28:TA%(2)=&D1D:TA%(3)=&1482:TA%(4)=&17BF
  170FOR I%=0 TO 5:FOR J%=0 TO 5:READ PL%(I%,J%):NEXT:NEXT
  180PROCasm:SYS"Sound_QInit":FORI%=1TO8:SYS"Sound_AttachVoice",I%,0:NEXT:SYS"Sound_Configure",1,0,100
  190!energy=720:!enerpt=&63A:!tabadd=TAB%+24:ML%=0:DEAD%=FALSE
  200:
  210REPEAT:PROClaby:UNTIL !level=6 OR DEAD%
  220PROCrect(240,260,800,352):WW%=24:WXC%=640:WYC%=432:GCOL1
  230IF DEAD% THEN
  240 PROCwpr("You slump to the ground, drained of all your energy. As the world turns into a grey fog, you curse your evil uncle for one last time. You are dead.")
  250 CALL fade_in:PROCmouse:CALL fade_out:VDU4:COLOUR128:SYS"OS_Byte",112,2:CLS:SYS"OS_Byte",112,1:CLS:VDU5:*FX 113,1
  270 ON ERROR OFF:CHAIN"<IronLord$Dir>.Iron7"
  280ELSE
  290 PROCwpr("As the last of his demon cohorts is destroyed your uncle utters a scream of despair. His body falls to the ground, devoid of life, but from somewhere far away the sound of his screaming continues ...")
  300 CALL fade_in:PROCmouse:CALL fade_out:*FX 113,1
  310 OSCLI"IronLoad <IronLord$Dir>.Win "+STR$~S%
  320 *IronFadeIn 24
  330 PROCmouse:*IronFadeOut
  340ENDIF:*FX21
  350MODE0:OFF:CALLHIMEM+&214:PRINT"Thank you for playing Iron Lord.":*FX20
  360END
  370:
  380DEF PROClaby
  390!pal=0:pal!4=0:RESTORE 710:FOR B%=24 TO 47:READ pal?B%:NEXT
  400SYS"OS_Byte",112,1:SYS"OS_Byte",113,1:CLG:CALL unpack:GCOL 11:RECTANGLE FILL 1224,32,28,736:GCOL 15:RECTANGLE FILL 1232,40,12,!energy:A%=200:B%=S%:C%=T%:CALL copy
  410VDU26:IF !keys<>0 FOR I%=1 TO !keys:SYS"OS_SpriteOp",290,TSP%,"t38",I%*32-32,32:NEXT:SYS"OS_Byte",112,2:FOR I%=1 TO !keys:SYS"OS_SpriteOp",290,TSP%,"t38",I%*32-32,32:NEXT:SYS"OS_Byte",112,1
  420VDU24,444;268;760;564;:ORIGIN 384,268:SYS"OS_Claim",&10,enevent,0:VC%=1:VOICES2:VOICE1,"IronEffect-Footstep"
  430REPEAT:FOR C%=0 TO 5:?(pal+C%*3+6)=((PL%(!level,C%)>>4) AND 240)+16:?(pal+C%*3+7)=(PL%(!level,C%) AND 240)+16:?(pal+C%*3+8)=((PL%(!level,C%)<<4) AND 240)+16:NEXT
  440R%=USR(MoveLaby):*FX 21
  450*FX 13,4
  460IF R%=0 !level-=1:!tabadd=TAB%+TA%(!level)
  470IF R% AND 1 !level+=1:!tabadd=TAB%+24+&580*!level
  480UNTIL R%=2 OR R%=4
  490ORIGIN 0,128:VDU 24,0;0;1279;799;:SYS"OS_Release",&10,enevent,0:VC%=0
  500IF R%=4 RESTORE 810:DEAD%=TRUE:ENDPROC
  510:
  520VOICES8:VOICE1,"Percussion-Medium":VOICE2,"IronEffect-Hurt":VOICE3,"IronEffect-Hurt":VOICE4,"IronEffect-Splat":VOICE5,"Percussion-Soft":VOICE6,"IronEffect-Splat"
  530VDU4:COLOUR128:SYS"OS_Byte",112,2:CLS:SYS"OS_Byte",112,1:CLS:VDU5:*FX 113,1
  540RESTORE 730:FOR B%=0 TO 47:READ pal?B%:NEXT:A%=200:B%=BSC%:C%=S%:CALL copy
  550IF !level<>ML% OSCLI"IronLoad <IronLord$Dir>.LabySpr2_"+STR$(!level)+" "+STR$~(GSP%+&3C18):ML%=!level
  560SYS"OS_SpriteOp",290,GSP%,"46",480,512:A%=200:B%=S%:C%=BSC%:CALL copy
  570GCOL11:RECTANGLE FILL 272,16,736,28:GCOL2:RECTANGLE FILL 280,24,!energy,12:GCOL11
  580P%=aliens:Q%=aveltab:FOR I%=0 TO 3+!level:!P%=RND(800)+200:P%!4=RND(300)+400:P%!8=204:SYS"OS_SpriteOp",290,GSP%,"51",!P%,P%!4,8:V%=RND(&180):IF !P%<640 V%+=&500 ELSE V%=-&500-V%
  590!Q%=V%:V%=RND(&20):IF RND(2)=1 V%+=&50 ELSE V%-=&50
  600Q%!4=V%:P%+=12:Q%+=8:NEXT:FOR I%=0 TO 8 STEP 4:aflag!I%=0:NEXT
  610!mant=600:mant!8=8:!manb=600:manb!8=28:!drop=0:!shot=0:FOR I%=0 TO 96 STEP 12:bombs!I%=0:NEXT:!fiflag=0:eyes!8=188:!eyedel=125:!dropdel=200:IF !level=1 OR !level=2 OR !level=5 eyes!4=696 ELSE eyes!4=664
  620SYS"OS_SpriteOp",290,GSP%,"2",600,180,8:SYS"OS_SpriteOp",290,GSP%,"7",600,100,8:C%=T%:CALL copy:CALL fade_in:SYS"OS_Claim",&10,flipevent,0:VC%=2:!bank=2:R%=USR(zap):*FX 21
  630*FX 13,4
  640SYS"OS_Release",&10,flipevent,0:VC%=0:IF !bank<0 !bank=NOT !bank
  650CALL fade_out:?(levtab+!level)=1:!level+=1:!tabadd=TAB%+24+&580*!level:!sword=0:RESTORE 820:SYS"OS_Byte",112,!bank EOR 3:IF R% DEAD%=TRUE
  660ENDPROC
  670:
  680DATA &046,&068,&08A,&0AC,&6A8,&024,&064,&086,&0A8,&0CA,&6A8,&042,&713,&835,&A68,&B9A,&B9A,&402
  690DATA &700,&922,&A55,&C88,&B9A,&400,&640,&962,&B94,&EC8,&B9A,&521,&555,&777,&888,&AAA,&B9A,&333
  700:
  710DATA 112,80,0,144,112,48,176,144,80,208,176,112,240,208,144,176,176,176,112,112,112,80,0,0
  720:
  730DATA 0,0,0,48,0,0,80,0,0,112,48,0,144,80,48,176,112,80,112,80,0,144,112,0,176,144,0,208,176,0,208,144,112,208,176,144,80,80,80,112,112,112,144,144,144,240,240,240
  740:
  750DEF PROCmouse:*FX 21,9
  760REPEAT:MOUSE MX%,MY%,B%:UNTIL B%=0:REPEAT:MOUSE MX%,MY%,B%:UNTIL B%<>0:ENDPROC
  770:
  780DEF PROCrect(X%,Y%,W%,D%)
  790READ N%:FOR L%=1 TO N%:READ C%:GCOL C%:RECTANGLE X%,Y%,W%,D%:X%+=4:Y%+=4:W%-=8:D%-=8:NEXT:READ C%:GCOL C%:RECTANGLE FILL X%,Y%,W%,D%:ENDPROC
  800:
  810DATA 3,9,10,11,12
  820DATA 3,4,5,10,11
  830:
  840DEF PROCwpr(S$):LOCAL T$,P%,Y%:T$=S$:Y%=0
  850REPEAT
  860 IF LENT$>WW% THEN
  870  P%=WW%+1:WHILE MID$(T$,P%,1)<>" ":P%-=1:ENDWHILE
  880  T$=RIGHT$(T$,LEN(T$)-P%)
  890 ELSE
  900  T$=""
  910 ENDIF
  920 Y%+=1
  930UNTIL T$=""
  940Y%=WYC%+Y%*18
  950REPEAT:T$=""
  960 IF LENS$>WW% THEN
  970  P%=WW%+1:WHILE MID$(S$,P%,1)<>" ":P%-=1:ENDWHILE
  980  T$=RIGHT$(S$,LEN(S$)-P%):S$=LEFT$(S$,P%-1)
  990 ENDIF
 1000 MOVE WXC%-16*LENS$,Y%:PRINTS$:Y%-=36:S$=T$
 1010UNTIL S$="":ENDPROC
 1020:
 1030DEF PROCasm
 1040sp=13:link=14:OS_WriteI=&100
 1050FOR o%=0 TO 2 STEP 2
 1060P%=code%
 1070[OPT o%
 1080.fade_in
 1090STMFD (sp)!,{link}:MOV R5,#240
 1100.fdilp MOV R3,#2:BL delay:BL chpal:SUBS R5,R5,#16:BPL fdilp
 1110LDMFD (sp)!,{PC}
 1120.fade_out
 1130STMFD (sp)!,{link}:MOV R5,#0
 1140.fdolp MOV R3,#2:BL delay:BL chpal:ADD R5,R5,#16:CMP R5,#256:BNE fdolp
 1150LDMFD (sp)!,{PC}
 1160.pal EQUS STRING$(48,CHR$0)
 1170.pblk EQUD &1000:EQUB 0
 1180\ Wait for R3 frame syncs
 1190.delay MOV R0,#19
 1200.dellp SWI "OS_Byte":SUBS R3,R3,#1:BNE dellp:MOV PC,link
 1210\ Set palette
 1220.chpal MOV R0,#12:ADR R1,pblk:MOV R2,#15:ADR R3,pal+48
 1230.chplp STRB R2,[R1]:LDRB R4,[R3,#-1]!:SUBS R4,R4,R5:MOVMI R4,#0:STRB R4,[R1,#4]:LDRB R4,[R3,#-1]!:SUBS R4,R4,R5:MOVMI R4,#0:STRB R4,[R1,#3]:LDRB R4,[R3,#-1]!:SUBS R4,R4,R5:MOVMI R4,#0:STRB R4,[R1,#2]:SWI "OS_Word":SUBS R2,R2,#1:BPL chplp:MOV PC,link
 1240\ Copy screen
 1250.zapcopy MOV R0,#176:LDR R1,from
 1260.copy
 1270LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:SUBS R0,R0,#1:BNE copy:MOV PC,link
 1280\
 1290.from EQUD BSC%
 1300\
 1310.enevent TEQ R0,#4:MOVNES PC,link:STMFD (sp)!,{R0-R3,link}
 1320LDR R0,enerct:CMP R0,#0:BPL decing:ADDS R0,R0,#1:STR R0,enerct:LDMPLFD (sp)!,{R0-R3,PC}^
 1330LDR R0,energy:ADD R0,R0,#4:CMP R0,#724:LDMEQFD (sp)!,{R0-R3,PC}^:STR R0,energy
 1340LDR R0,enerpt:SUB R0,R0,#160:STR R0,enerpt:LDR R1,sadd:LDR R2,tadd:MOV R3,#&FF:STRB R3,[R1,R0]:STRB R3,[R2,R0]:ADD R0,R0,#1:STRB R3,[R1,R0]:STRB R3,[R2,R0]:LDMFD (sp)!,{R0-R3,PC}^
 1350.decing SUBS R0,R0,#1:MOVMI R0,#149:STR R0,enerct:LDMPLFD (sp)!,{R0-R3,PC}^
 1360LDR R0,energy:SUBS R0,R0,#4:LDMMIFD (sp)!,{R0-R3,PC}^:STR R0,energy
 1370LDR R0,enerpt:LDR R1,sadd:LDR R2,tadd:MOV R3,#&BB:STRB R3,[R1,R0]:STRB R3,[R2,R0]:ADD R0,R0,#1:STRB R3,[R1,R0]:STRB R3,[R2,R0]:ADD R0,R0,#159:STR R0,enerpt:LDMFD (sp)!,{R0-R3,PC}^
 1380\
 1390.reduce STMFD (sp)!,{R0-R4}:LDR R0,manhitCA:LDR R1,stepPD:SWI "Sound_ControlPacked":LDR R0,enerpt:ADD R0,R0,#160:STR R0,enerpt:MOV R0,#4:LDR R4,energy:ADD R1,R4,#280:MOV R2,#24:SWI "OS_Plot":MOV R0,#1:MOV R1,#0:MOV R2,#12:SWI "OS_Plot"
 1400MOV R0,#112:LDR R3,bank:CMP R3,#0:MVNMI R3,R3:EOR R1,R3,#3:SWI "OS_Byte":MOV R0,#1:MOV R1,#0:MVN R2,#11:SWI "OS_Plot":MOV R0,#112:MOV R1,R3:SWI "OS_Byte":SUBS R4,R4,#4:STR R4,energy:LDMFD (sp)!,{R0-R4}:MOVPL PC,link:MOV R0,#&FF:LDMFD (sp)!,{PC}
 1410\
 1420.tabadd EQUD TAB%
 1430.tspadd EQUD TSP%
 1440.mspadd EQUD TSP%+&4560
 1450.mntb EQUD dman
 1460.mna EQUD 0
 1470.keys EQUD 0
 1480.energy EQUD 0
 1490.enerpt EQUD 0
 1500.enerct EQUD 149
 1510.sword EQUD 0
 1520.manhitCA EQUD &1FF0003
 1530.stepCA EQUD &1500001
 1540.stepPD EQUD &12000
 1550.doorCA EQUD &17F0002
 1560.doorPD EQUD &12550
 1570]
 1580dman=P%:uman=P%+32:rman=P%+64:lman=P%+96:eman=P%+128:FOR I%=0 TO 36:!P%=TSP%+&1A04+I%*&12C:P%+=4:NEXT
 1590[OPT o%
 1600\Move in labyrinth
 1610.MoveLaby STMFD (sp)!,{link}:LDR R10,tabadd:MOV R11,#52:MOV R12,#44
 1620MOV R0,#2:STR R0,bank:MOV R0,#255:STR R0,mna:BL DrawLaby:BL fade_in:MOV R3,#20:BL delay:ADR R0,eman:STR R0,mntb:MOV R6,#16
 1630.emanlp STR R6,mna:BL DrawLaby:MOV R3,#2:BL delay:SUBS R6,R6,#4:BPL emanlp
 1640MOV R0,#21:ADR R1,rmouse:SWI "OS_Word":MOV R0,#21:MOV R1,#9:SWI "OS_Byte":MOV R0,#14:MOV R1,#4:SWI "OS_Byte"
 1650ADR R0,dman:STR R0,mntb
 1660.dok
 1670LDR R2,mna:ADD R2,R2,#4:CMP R2,#32:MOVEQ R2,#0:STR R2,mna:TST R2,#15:BNE skipstep
 1680LDR R0,stepCA:LDR R1,stepPD:EOR R1,R1,#&550:STR R1,stepPD:SWI "Sound_ControlPacked"
 1690.skipstep BL DrawLaby
 1700.klp LDR R0,energy:CMP R0,#4:BLT dead:BL tstkey:TST R6,#16:BLNE rtn:TST R6,#1:BNE ml:TST R6,#2:BNE mr:TST R6,#8:BNE mu:TST R6,#4:BEQ klp
 1710.md ADR R0,dman:STR R0,mntb:TEQ R12,#60:BNE mdd:ADD R1,R10,#90:CMP R11,#56:SUBHI R1,R1,#1:LDRB R0,[R1]:CMP R0,#18:BLS mdd:CMP R11,#56:BNE clld:CMP R0,#28:BLS clld:CMP R0,#32:BHI mdd:CMP R0,#29:BHI clld
 1720.mdd ADD R12,R12,#4:TEQ R12,#64:BNE dok:MOV R12,#0:ADD R10,R10,#22:B dok
 1730.ml ADR R0,lman:STR R0,mntb:TEQ R11,#56:BNE mll:ADD R1,R10,#67:LDRB R0,[R1]:CMP R0,#18:BHI clld
 1740.mll ADD R11,R11,#4:TEQ R11,#64:BNE dok:MOV R11,#0:SUB R10,R10,#1:B dok
 1750.mr ADR R0,rman:STR R0,mntb:TEQ R11,#56:BNE mrr:ADD R1,R10,#68:LDRB R0,[R1]:CMP R0,#18:BHI clld
 1760.mrr SUBS R11,R11,#4:BPL dok:MOV R11,#60:ADD R10,R10,#1:B dok
 1770.mu ADR R0,uman:STR R0,mntb:TEQ R12,#0:BNE muu:ADD R1,R10,#46:CMP R11,#56:SUBHI R1,R1,#1:LDRB R0,[R1]:CMP R0,#18:BLS muu:CMP R11,#56:BNE clld:CMP R0,#28:BLS clld:CMP R0,#32:BHI muu:CMP R0,#29:BHI clld
 1780.muu SUBS R12,R12,#4:BPL dok:MOV R12,#60:SUB R10,R10,#22:B dok
 1790.clld MOV R0,#0:STR R0,mna:BL DrawLaby:B klp
 1800.rtn LDR R2,keys:TEQ R2,#0:BEQ nokey:TEQ R12,#0:ADDEQ R1,R10,#46:BEQ cdr:TEQ R12,#60:BNE nokey:ADD R1,R10,#90
 1810.cdr LDRB R0,[R1]:TEQ R0,#32:MOVNE PC,link:MOV R0,#7:STRB R0,[R1],#22:STRB R0,[R1],#1:STRB R0,[R1],#-22:MOV R0,#29:STRB R0,[R1]:SUB R2,R2,#1:STR R2,keys
 1820MOV R0,#2:ADR R1,doorvoice:SWI "Sound_AttachNamedVoice":LDR R0,doorCA:LDR R1,doorPD:SWI "Sound_ControlPacked"
 1830SWI OS_WriteI+26:MOV R0,#34:ADD R0,R0,#512:LDR R1,tspadd:MOV R3,R2,LSL#5:LDR R2,ttab:MOV R4,#32:MOV R5,#0:SWI "OS_SpriteOp"
 1840STMFD (sp)!,{R0-R2}:MOV R0,#112:LDR R1,bank:SWI "OS_Byte":LDMFD (sp)!,{R0-R2}:SWI "OS_SpriteOp":ADR R0,rewin:MOV R1,#14:SWI "OS_WriteN":B finrtn
 1850.nokey CMP R12,#4:MOVLS PC,link:CMP R12,#52:MOVHI PC,link:ADD R1,R10,#69:CMP R11,#8:BLS ctb:CMP R11,#28:MOVLS PC,link:SUB R1,R1,#1
 1860.ctb LDRB R0,[R1]:TEQ R0,#8:BEQ da:TEQ R0,#9:BEQ ua:TEQ R0,#16:BEQ en:TEQ R0,#17:BEQ sw:TEQ R0,#18:MOVNE PC,link
 1870.ky ADD R2,R2,#1:STR R2,keys:MOV R0,#15:STRB R0,[R1]
 1880MOV R0,#2:ADR R1,clangvoice:SWI "Sound_AttachNamedVoice":LDR R0,doorCA:LDR R1,doorPD:EOR R1,R1,#&F50:SWI "Sound_ControlPacked"
 1890SWI OS_WriteI+26:MOV R0,#34:ADD R0,R0,#512:SUBS R3,R2,#1:LDR R1,tspadd:ADR R2,ttab:LDR R2,[R2,#152]:MOV R3,R3,LSL#5:MOV R4,#32:MOV R5,#0:SWI "OS_SpriteOp"
 1900STMFD (sp)!,{R0-R2}:MOV R0,#112:LDR R1,bank:SWI "OS_Byte":LDMFD (sp)!,{R0-R2}:SWI "OS_SpriteOp":ADR R0,rewin:MOV R1,#14:SWI "OS_WriteN":B finrtn
 1910.ua LDR R0,level:ADR R1,levtab:LDRB R0,[R1,R0]:LDR R1,sword:ORRS R0,R0,R1,LSL#1:MOVEQ PC,link
 1920.deman STMFD (sp)!,{R0}:ADR R0,eman:STR R0,mntb:MOV R6,#0
 1930.demanlp STR R6,mna:BL DrawLaby:MOV R3,#2:BL delay:ADD R6,R6,#4:CMP R6,#20:BNE demanlp:MOV R0,#255:STR R0,mna:BL DrawLaby:MOV R3,#4:BL delay:BL fade_out:LDMFD (sp)!,{R0,PC}
 1940.da MOV R0,#0:B deman
 1950.rmouse EQUB 3:EQUW 640:EQUW 400:ALIGN
 1960.en MVN R0,#45:STR R0,enerct:MOV R0,#15:STRB R0,[R1]
 1970MOV R0,#2:ADR R1,boingvoice:SWI "Sound_AttachNamedVoice":LDR R0,doorCA:LDR R1,doorPD:ORR R1,R1,#&1000:SWI "Sound_ControlPacked":B finrtn
 1980.sw MOV R0,#1:STR R0,sword:MOV R0,#15:STRB R0,[R1]
 1990MOV R0,#2:ADR R1,clangvoice:SWI "Sound_AttachNamedVoice":LDR R0,doorCA:LDR R1,doorPD:SWI "Sound_ControlPacked"
 2000SWI OS_WriteI+26:MOV R0,#34:ADD R0,R0,#512:LDR R1,tspadd:ADR R2,ttab:LDR R2,[R2,#148]:MOV R3,#1216:MOV R4,#32:MOV R5,#0:SWI "OS_SpriteOp"
 2010STMFD (sp)!,{R0-R2}:MOV R0,#112:LDR R1,bank:SWI "OS_Byte":LDMFD (sp)!,{R0-R2}:SWI "OS_SpriteOp":ADR R0,rewin:MOV R1,#14:SWI "OS_WriteN"
 2020.finrtn TEQ R6,#16:MOVNE PC,link:STMFD (sp)!,{R6,link}:BL DrawLaby:LDMFD (sp)!,{R6,PC}
 2030.dead MOV R0,#2:ADR R1,hurtvoice:SWI "Sound_AttachNamedVoice":LDR R0,doorCA:LDR R1,doorPD:SWI "Sound_ControlPacked":MOV R0,#4:B deman
 2040.rewin EQUB 24:EQUW 444:EQUW 268:EQUW 760:EQUW 564:EQUB 29:EQUW 384:EQUW 268:ALIGN
 2050.bank EQUD 2
 2060.level EQUD 0
 2070.levtab EQUD 0:EQUD 0
 2080.doorvoice EQUS "IronEffect-Door":EQUB 0:ALIGN
 2090.clangvoice EQUS "IronEffect-Clang1":EQUB 0
 2100.boingvoice EQUS "IronEffect-ArrowMiss":EQUB 0:ALIGN
 2110.hurtvoice EQUS "IronEffect-Hurt":EQUB 0:ALIGN
 2120]
 2130ttab=P%:FOR I%=0 TO 38:!P%=TSP%+16+I%*172:P%+=4:NEXT
 2140[OPT o%
 2150\Draw labyrinth
 2160.DrawLaby
 2170MOV R3,R11:ADD R4,R12,#256:MOV R0,#112:LDR R1,bank:SWI "OS_Byte":MOV R0,#34:ADD R0,R0,#512:LDR R1,tspadd:MOV R5,#0:MOV R6,#6:MOV R7,R10:ADR R8,ttab
 2180.dll1 MOV R9,#6
 2190.dll2 LDRB R2,[R7],#1:LDR R2,[R8,R2,LSL#2]:SWI "OS_SpriteOp":ADD R3,R3,#64:SUBS R9,R9,#1:BNE dll2:SUB R3,R3,#384:SUB R4,R4,#64:ADD R7,R7,#16:SUBS R6,R6,#1:BNE dll1
 2200LDR R1,tspadd:LDR R2,mspadd:MOV R3,#60:MOV R4,#0:MOV R5,#8:SWI "OS_SpriteOp":LDR R2,mntb:LDR R6,mna:TEQ R6,#255:BEQ noman:LDR R2,[R2,R6]:MOV R3,#184:MOV R4,#124:SWI "OS_SpriteOp"
 2210.noman MOV R0,#19:SWI "OS_Byte":MOV R0,#113:LDR R1,bank:EOR R3,R1,#3:SWI "OS_Byte":STR R3,bank
 2220MOV PC,link
 2230\
 2240.tstkey SWI "OS_ReadEscapeState":LDMCSFD (sp)!,{PC}
 2250MOV R6,#0:MOV R0,#121:MOV R1,#pause%:SWI "OS_Byte":TEQ R1,#0:BNE pause
 2260MOV R1,#left%:SWI "OS_Byte":TEQ R1,#0:ORRNE R6,R6,#1:MOV R1,#right%:SWI "OS_Byte":TEQ R1,#0:ORRNE R6,R6,#2:MOV R1,#down%:SWI "OS_Byte":TEQ R1,#0:ORRNE R6,R6,#4:MOV R1,#up%:SWI "OS_Byte":TEQ R1,#0:ORRNE R6,R6,#8
 2270LDR R1,lastcomb:STR R6,lastcomb:EORS R1,R1,R6:LDREQ R6,lastkey:BEQ gtkey:ANDS R2,R1,R6:MOVNE R6,R2:BNE gtkey:LDR R2,lastkey:TST R1,R2:MOVEQ R6,R2
 2280.gtkey ANDS R1,R6,#1:ANDEQS R1,R6,#2:ANDEQS R1,R6,#4:ANDEQS R1,R6,#8:MOVNE R6,R1:STR R6,lastkey
 2290MOV R1,#fire%:SWI "OS_Byte":TEQ R1,#0:ORRNE R6,R6,#16:TEQ R6,#0:MOVNE PC,link
 2300SWI "OS_Mouse":TST R2,#4:BEQ mrtn:SUBS R3,R0,#640:RSBMI R3,R3,#0:SUBS R4,R1,#400:RSBMI R4,R4,#0:CMP R3,#1:MOVLS R3,#0:CMP R4,#1:MOVLS R4,#0:CMP R3,R4:BEQ nomov:BHI xgt:CMP R1,#400:ORRLT R6,R6,#4:ORRGT R6,R6,#8:B mrtn
 2310.xgt CMP R0,#640:ORRLT R6,R6,#1:ORRGT R6,R6,#2:B mrtn
 2320.nomov LDR R6,lastmkey
 2330.mrtn STR R6,lastmkey:TST R2,#3:ORRNE R6,R6,#16:MOV R0,#21:ADR R1,rmouse:SWI "OS_Word":MOV PC,link
 2340.pause MOV R0,#13:MOV R1,#4:SWI "OS_Byte":MOV R0,#121
 2350.relpause MOV R1,#pause%:SWI "OS_Byte":TEQ R1,#0:BNE relpause
 2360.unpause MOV R1,#pause%:SWI "OS_Byte":TEQ R1,#0:BEQ unpause
 2370.finpause MOV R1,#pause%:SWI "OS_Byte":TEQ R1,#0:BNE finpause
 2380MOV R0,#14:MOV R1,#4:SWI "OS_Byte":MOV PC,link
 2390\
 2400.lastkey EQUD 0
 2410.lastmkey EQUD 0
 2420.lastcomb EQUD 0
 2430.gspadd EQUD GSP%
 2440.sadd EQUD S%
 2450.tadd EQUD T%
 2460\*****************************************************
 2470\
 2480]
 2490eyes=P%:!P%=544:P%!4=664:P%+=12
 2500drop=P%:!P%=0:P%+=12
 2510bombs=P%:FOR I%=0 TO 8:!P%=0:P%+=12:NEXT
 2520aliens=P%:FOR I%=0 TO 8:!P%=0:P%+=12:NEXT
 2530mant=P%:!P%=0:P%!4=180:P%+=12
 2540manb=P%:!P%=0:P%!4=100:P%+=12
 2550shot=P%:!P%=0:P%+=12
 2560[OPT o%
 2570\
 2580.random EQUD 38771
 2590.rconst EQUD &1D872B41
 2600.fiflag EQUD 0
 2610.eyedel EQUD 0
 2620.dropdel EQUD 0
 2630.aflag EQUD 0:EQUD 0:EQUD 0
 2640\
 2650.zap STMFD (sp)!,{link}
 2660MOV R0,#19:SWI "OS_Byte":MOV R0,#14:MOV R1,#4:SWI "OS_Byte"
 2670.zaplp MOV R0,#19:SWI "OS_Byte":LDR R1,bank:CMP R1,#0:BMI zaplp:MOV R0,#113:SWI "OS_Byte":STR R1,bank:MOV R3,R1:MOV R0,#112:SWI "OS_Byte"
 2680ADR R0,sadd-4:LDR R2,[R0,R3,LSL#2]:BL zapcopy
 2690\plot
 2700MOV R12,#23:ADR R11,eyes-12:ADR R10,sprtab:MOV R0,#34:ADD R0,R0,#512:LDR R1,gspadd:MOV R5,#8
 2710.plotlp LDR R3,[R11,#12]!:TEQ R3,#0:BEQ plnext:LDR R4,[R11,#4]:LDR R2,[R11,#8]:AND R2,R2,#1020:LDR R2,[R10,R2]:SWI "OS_SpriteOp"
 2720.plnext SUBS R12,R12,#1:BNE plotlp
 2730\blink eyes
 2740ADR R12,eyes:LDR R0,eyedel:SUBS R0,R0,#1:BPL noblink:LDR R1,[R12,#8]:ADD R1,R1,#2:TEQ R1,#204:BNE nfbl:MOV R1,#188:LDR R0,random:AND R0,R0,#255
 2750.nfbl STR R1,[R12,#8]
 2760.noblink STR R0,eyedel
 2770\move drop
 2780ADD R12,R12,#12:LDR R0,dropdel:SUBS R0,R0,#1:STR R0,dropdel:BEQ stdrop:BPL nodrop
 2790LDR R1,[R12,#8]:ADD R1,R1,#2:TEQ R1,#184:BEQ dropfin:CMP R1,#108:BLT enddrop:LDR R2,[R12,#4]:CMP R2,#120:BLE drgnd:SUB R2,R2,#12:STR R2,[R12,#4]:TEQ R1,#144:MOVEQ R1,#108:B chkdrp
 2800.stdrop MOV R1,#588:STR R1,[R12]:MOV R1,#512:STR R1,[R12,#4]:MOV R1,#88:STR R1,[R12,#8]:B nodrop
 2810.dropfin MOV R2,#0:STR R2,[R12]:LDR R0,random:AND R0,R0,#255:STR R0,dropdel:B nodrop
 2820.drgnd CMP R1,#144:BGT chkdrp:LDR R0,drsplatCA:LDR R1,drsplatPD:SWI "Sound_ControlPacked":MOV R1,#144
 2830.chkdrp ADR R11,mant:MOV R10,#2:MOV R9,#16:MOV R8,#64:MOV R7,#88:BL checkcoll:BEQ dmhit:ADD R11,R11,#12:MOV R10,#2:MOV R9,#16:MOV R8,#80:MOV R7,#88:BL checkcoll:BNE enddrop
 2840.dmhit CMP R1,#144:MOVLT R1,#144:BL reduce
 2850.enddrop STR R1,[R12,#8]
 2860.nodrop
 2870\move bombs
 2880MOV R6,#9
 2890.bomblp LDR R0,[R12,#12]!:TEQ R0,#0:BEQ nobomb:LDR R1,[R12,#8]:ADD R1,R1,#2:CMP R1,#236:BGT chkbomb:MOVEQ R1,#220:LDR R0,[R12,#4]:SUB R0,R0,#12:STR R0,[R12,#4]:CMP R0,#120:BGT chkbomb:LDR R0,bsmshCA:LDR R1,shotPD:SWI "Sound_ControlPacked":MOV R1,#236
 2900.chkbomb ADR R11,mant:MOV R10,#2:MOV R9,#11:MOV R8,#64:MOV R7,#88:BL checkcoll:BEQ bmhit:ADD R11,R11,#12:MOV R10,#2:MOV R9,#11:MOV R8,#80:MOV R7,#88:BL checkcoll:BNE finbomb
 2910.bmhit CMP R1,#236:MOVLT R1,#236:BL reduce
 2920.finbomb STR R1,[R12,#8]:CMP R1,#252:MOVEQ R0,#0:STREQ R0,[R12]
 2930.nobomb SUBS R6,R6,#1:BNE bomblp
 2940\move shot
 2950ADR R12,shot:LDR R0,[R12]:TEQ R0,#0:BEQ noshot:LDR R0,[R12,#8]:CMP R0,#72:BGE bnging:LDR R0,[R12,#4]:ADD R0,R0,#16:STR R0,[R12,#4]:CMP R0,#800:BGE stopshot
 2960ADR R11,aliens:ADR R6,aflag:MOV R5,#9
 2970.saclp LDRB R0,[R6,R5]:CMP R0,#2:BGE nacc:LDR R0,[R11]:TEQ R0,#0:BEQ nacc
 2980MOV R10,#14:MOV R9,#5:MOV R8,#64:MOV R7,#76:BL checkcoll:BNE nacc
 2990LDR R0,hitCA:LDR R1,hitPD:LDRB R2,[R6,R5]:EOR R1,R1,R2,LSL#11:SWI "Sound_ControlPacked"
 3000ADD R2,R2,#1:STRB R2,[R6,R5]:LDR R0,[R11]:SUB R0,R0,#8:STR R0,[R12]:LDR R0,[R11,#4]:STR R0,[R12,#4]:MOV R0,#68
 3010.bnging ADD R0,R0,#4:STR R0,[R12,#8]:CMP R0,#88:BNE noshot
 3020.stopshot MOV R0,#0:STR R0,[R12]:B noshot
 3030.nacc ADD R11,R11,#12:SUBS R5,R5,#1:BNE saclp
 3040\move aliens
 3050.noshot ADR R11,aveltab:ADR R12,aliens:MOV R10,#9:LDR R9,random:LDR R8,rconst:MOV R7,#0:ADR R6,aflag
 3060.aloop LDR R0,[R12]:TEQ R0,#0:BEQ nextal:MOV R7,#1:LDRB R1,[R6,R10]:CMP R1,#2:BEQ fall:BGT crsh
 3070LDR R1,[R12,#8]:ADD R1,R1,#2:CMP R1,#220:MOVEQ R1,#204:STR R1,[R12,#8]:MOVS R9,R9,LSL#1:EORCS R9,R9,R8:STR R9,random:LDR R1,[R11]:ADD R0,R0,R1,ASR#7:STR R0,[R12]:CMP R1,#0:BPL sklb:CMP R0,#60:ADDLT R1,R1,#64:B skrb
 3080.sklb CMP R0,#1136:SUBGT R1,R1,#64
 3090.skrb RSBS R2,R0,#600:MOVPL R3,R2:MVNMI R3,R2:CMP R3,#320:ADDGT R1,R1,R2,ASR#3:ADD R1,R1,R9,ASR#27:STR R1,[R11]
 3100LDR R0,[R12,#4]:LDR R1,[R11,#4]:ADD R0,R0,R1,ASR#6:STR R0,[R12,#4]:RSB R2,R0,#560:ADD R1,R1,R2:ADD R1,R1,R9,ASR#28:STR R1,[R11,#4]
 3110LDR R0,[R12,#-&6C]:TEQ R0,#0:BNE nextal:AND R0,R9,#255:CMP R0,#250:BLT nextal:LDR R0,[R12]:ADD R0,R0,#20:STR R0,[R12,#-&6C]:LDR R0,[R12,#4]:STR R0,[R12,#-&68]:MOV R0,#220:STR R0,[R12,#-&64]:B nextal
 3120.fall LDR R2,[R12,#4]:SUB R2,R2,#24:STR R2,[R12,#4]:CMP R2,#120:BGT nextal:MOV R0,#156:STR R0,[R12,#8]:STRB R0,[R6,R10]:LDR R0,splatCA:LDR R1,splatPD:SWI "Sound_ControlPacked"
 3130.crsh LDR R0,[R12,#8]:ADD R0,R0,#2:STR R0,[R12,#8]:CMP R0,#184:MOVEQ R0,#0:STREQ R0,[R12]
 3140.nextal ADD R11,R11,#8:ADD R12,R12,#12:SUBS R10,R10,#1:BNE aloop
 3150TEQ R7,#0:MOVEQ R0,#0:LDMEQFD (sp)!,{PC}
 3160\move man
 3170LDR R0,fiflag:TEQ R0,#0:BNE zfiring:BL tstkey:TST R6,#16:BLNE zfire:TST R6,#1:BNE zml:TST R6,#2:BNE zmr:MOV R0,#8:STR R0,[R12,#8]:B zaplp
 3180.zmr LDR R1,[R12]:CMP R1,#960:BGE zaplp:ADD R1,R1,#8:STR R1,[R12]:STR R1,[R12,#12]:LDR R1,[R12,#20]:ADD R1,R1,#4:CMP R1,#56:MOVEQ R1,#28:STR R1,[R12,#20]
 3190.znoar LDR R1,[R12,#8]:TEQ R1,#16:BEQ zaplp:ADD R1,R1,#4:STR R1,[R12,#8]:B zaplp
 3200.zml LDR R1,[R12]:CMP R1,#180:BLE zaplp:SUB R1,R1,#8:STR R1,[R12]:STR R1,[R12,#12]:LDR R1,[R12,#20]:SUB R1,R1,#4:CMP R1,#24:MOVEQ R1,#52:STR R1,[R12,#20]
 3210.znoal LDR R1,[R12,#8]:TEQ R1,#0:BEQ zaplp:SUB R1,R1,#4:STR R1,[R12,#8]:B zaplp
 3220.zfire LDR R0,[R12,#24]:TEQ R0,#0:MOVNE PC,link:MOV R0,#1:STR R0,fiflag:MOV R0,#20:STR R0,[R12,#8]:LDR R0,shotCA:LDR R1,shotPD:SWI "Sound_ControlPacked":B zaplp
 3230.zfiring ADD R0,R0,#1:STR R0,fiflag:CMP R0,#5:BEQ zshoot:BHI zshot:TEQ R0,#3:BNE zaplp:MOV R0,#24:STR R0,[R12,#8]:B zaplp
 3240.zshoot LDR R1,[R12]:ADD R1,R1,#44:STR R1,[R12,#24]:MOV R1,#272:STR R1,[R12,#28]:MOV R1,#56:STR R1,[R12,#32]:B zaplp
 3250.zshot LDR R0,[R12,#32]:ADD R0,R0,#4:STR R0,[R12,#32]:TEQ R0,#68:BNE zaplp
 3260MOV R0,#0:STR R0,fiflag:MOV R0,#8:STR R0,[R12,#8]:B zaplp
 3270]
 3280aveltab=P%:P%+=72
 3290sprtab=P%:Q%=GSP%+16:FOR I%=0 TO 63:!P%=Q%:Q%+=!Q%:P%+=4:NEXT
 3300[OPT o%
 3310.shotCA EQUD &17F0001
 3320.shotPD EQUD &142000
 3330.hitCA EQUD &17F0002
 3340.hitPD EQUD &12F00
 3350.splatCA EQUD &17F0004
 3360.splatPD EQUD &12550
 3370.bsmshCA EQUD &17F0005
 3380.drsplatCA EQUD &17F0006
 3390.drsplatPD EQUD &11F00
 3400\
 3410\Collison detector
 3420\R12 - Object doing hitting, R11 - Object being hit
 3430\R10 - Height of hitter(1s), R9 - Width of hitter(1s)
 3440\R8  - Height of hittee(4s), R7 - Width of hittee(4s)
 3450\Returns EQ if hit, NE if not
 3460\
 3470.checkcoll STMFD (sp)!,{R0-R6,link}
 3480MOV R0,#43:ADD R0,R0,#512:LDR R1,gspadd:ADR R3,sprtab
 3490SUB R4,R10,#1:LDR R6,[R11,#4]:LDR R5,[R12,#4]:SUB R6,R5,R6:ADD R6,R6,R10,LSL#2
 3500LDR R10,[R11,#8]:AND R10,R10,#1020:LDR R10,[R3,R10]:LDR R14,[R12,#8]:AND R14,R14,#1020:LDR R14,[R3,R14]
 3510.colcy SUBS R6,R6,#4:BMI fincoll:CMP R6,R8:BGE colcny
 3520SUB R3,R9,#1:LDR R5,[R11]:LDR R2,[R12]:SUB R5,R2,R5:ADD R5,R5,R9,LSL#2
 3530.colcx SUBS R5,R5,#4:BMI colcny:CMP R5,R7:BGE colcnx
 3540STMFD (sp)!,{R5}:MOV R2,R14:SWI "OS_SpriteOp":TEQ R5,#1:LDMFD (sp)!,{R5}:BNE colcnx:STMFD (sp)!,{R3-R5}:MOV R2,R10:MOV R3,R5,LSR#2:MOV R4,R6,LSR#2:SWI "OS_SpriteOp":TEQ R5,#1:LDMFD (sp)!,{R3-R5}:BEQ fincoll
 3550.colcnx SUBS R3,R3,#1:BPL colcx
 3560.colcny SUBS R4,R4,#1:BPL colcy
 3570.fincoll LDMFD (sp)!,{R0-R6,PC}
 3580\
 3590.flipevent CMP R0,#4:MOVNES PC,link:STMFD (sp)!,{R0,link}
 3600LDR R0,bank:MVN R0,R0:STR R0,bank:LDMFD (sp)!,{R0,PC}^
 3610\
 3620.unpack STMFD (sp)!,{link}
 3630LDR R1,length:LDR R10,scradd:LDR R11,picdat:ADD R12,R11,#256:ADD R0,R11,#512:MOV R4,#0
 3640.upl LDRB R2,[R0],#1:BL print:SUBS R1,R1,#1:BNE upl
 3650LDMFD (sp)!,{PC}
 3660\
 3670.print
 3680STMFD (sp)!,{link}
 3690LDRB R3,[R11,R2]:TEQ R3,R2:BEQ storeit
 3700STMFD (sp)!,{R2}
 3710MOV R2,R3:BL print
 3720LDMFD (sp)!,{R2}
 3730LDRB R2,[R12,R2]:BL print
 3740LDMFD (sp)!,{PC}
 3750.storeit
 3760EORS R4,R4,#1
 3770MOVNE R5,R2
 3780ORREQ R5,R5,R2,LSL#4
 3790STREQB R5,[R10],#1
 3800LDMFD (sp)!,{PC}
 3810\
 3820.picdat EQUD PP%
 3830.length EQUD &352B
 3840.scradd EQUD S%
 3850]
 3860IF P%>(code%+space%) MODE 15:PRINT"Not enough code space.":END
 3870NEXT
 3880ENDPROC
 3890:
 3900DEF PROCerror:ON ERROR OFF
 3910IF VC%=1 OSCLI"FX 13,4":SYS"OS_Release",&10,enevent,0:VC%=0
 3920IF VC%=2 OSCLI"FX 13,4":SYS"OS_Release",&10,flipevent,0:VC%=0
 3930MODE 15:OFF:CALLHIMEM+&214
 3940*FX 20
 3950IF ERR=17 PRINT"Goodbye." ELSE PRINT"Iron Lord has stopped because of a fatal error :-"''REPORT$
 3960ENDPROC

 � >:IronLord.!IronLord.Iron6
� (C) 1990 UBI soft.
<� Archimedes version by Cygnus Software Engineering Ltd.
(:
2	VC%=0
<� � �error:�
F:
Pespace%=&153C:� code% space%,TSP% &5CFC,GSP% &5494,TAB% &2100,PP% &372B,BSC% &7D00,TA%(4),PL%(5,5)
Z:
d+�"Load <IronLord$Dir>.LabySkull "+�~PP%
n/�"IronLoad <IronLord$Dir>.LabyCave "+�~BSC%
x1�"IronLoad <IronLord$Dir>.LabyTables "+�~TAB%
�?!TSP%=&5CFC:�"IronLoad <IronLord$Dir>.LabySpr1 "+�~(TSP%+4)
�?!GSP%=&5484:�"IronLoad <IronLord$Dir>.LabySpr2 "+�~(GSP%+4)
�?left%=225:right%=194:down%=232:up%=207:fire%=201:pause%=224
�ATA%(0)=&346:TA%(1)=&A28:TA%(2)=&D1D:TA%(3)=&1482:TA%(4)=&17BF
�*� I%=0 � 5:� J%=0 � 5:� PL%(I%,J%):�:�
�Y�asm:ș"Sound_QInit":�I%=1�8:ș"Sound_AttachVoice",I%,0:�:ș"Sound_Configure",1,0,100
�:!energy=720:!enerpt=&63A:!tabadd=TAB%+24:ML%=0:DEAD%=�
�:
��:�laby:� !level=6 � DEAD%
�6�rect(240,260,800,352):WW%=24:WXC%=640:WYC%=432:�1
�
� DEAD% �
� �wpr("You slump to the ground, drained of all your energy. As the world turns into a grey fog, you curse your evil uncle for one last time. You are dead.")
�] � fade_in:�mouse:� fade_out:�4:�128:ș"OS_Byte",112,2:�:ș"OS_Byte",112,1:�:�5:*FX 113,1
" � � �:�"<IronLord$Dir>.Iron7"
�
"� �wpr("As the last of his demon cohorts is destroyed your uncle utters a scream of despair. His body falls to the ground, devoid of life, but from somewhere far away the sound of his screaming continues ...")
,* � fade_in:�mouse:� fade_out:*FX 113,1
6) �"IronLoad <IronLord$Dir>.Win "+�~S%
@ *IronFadeIn 24
J �mouse:*IronFadeOut
T�:*FX21
^:�0:�:֓+&214:�"Thank you for playing Iron Lord.":*FX20
h�
r:
|� �laby
�1!pal=0:pal!4=0:� �dFB:� B%=24 � 47:� pal?B%:�
��ș"OS_Byte",112,1:ș"OS_Byte",113,1:�:� unpack:� 11:ȓ Ȑ 1224,32,28,736:� 15:ȓ Ȑ 1232,40,12,!energy:A%=200:B%=S%:C%=T%:� copy
���26:� !keys<>0 � I%=1 � !keys:ș"OS_SpriteOp",290,TSP%,"t38",I%*32-32,32:�:ș"OS_Byte",112,2:� I%=1 � !keys:ș"OS_SpriteOp",290,TSP%,"t38",I%*32-32,32:�:ș"OS_Byte",112,1
�b�24,444;268;760;564;:ȑ 384,268:ș"OS_Claim",&10,enevent,0:VC%=1:Ƞ2:ȡ1,"IronEffect-Footstep"
���:� C%=0 � 5:?(pal+C%*3+6)=((PL%(!level,C%)>>4) � 240)+16:?(pal+C%*3+7)=(PL%(!level,C%) � 240)+16:?(pal+C%*3+8)=((PL%(!level,C%)<<4) � 240)+16:�
�R%=�(MoveLaby):*FX 21
�*FX 13,4
�-� R%=0 !level-=1:!tabadd=TAB%+TA%(!level)
�2� R% � 1 !level+=1:!tabadd=TAB%+24+&580*!level
�� R%=2 � R%=4
�Bȑ 0,128:� 24,0;0;1279;799;:ș"OS_Release",&10,enevent,0:VC%=0
�� R%=4 � �TjC:DEAD%=�:�
�:
�Ƞ8:ȡ1,"Percussion-Medium":ȡ2,"IronEffect-Hurt":ȡ3,"IronEffect-Hurt":ȡ4,"IronEffect-Splat":ȡ5,"Percussion-Soft":ȡ6,"IronEffect-Splat"
@�4:�128:ș"OS_Byte",112,2:�:ș"OS_Byte",112,1:�:�5:*FX 113,1
=� �dZB:� B%=0 � 47:� pal?B%:�:A%=200:B%=BSC%:C%=S%:� copy
&^� !level<>ML% �"IronLoad <IronLord$Dir>.LabySpr2_"+�(!level)+" "+�~(GSP%+&3C18):ML%=!level
0Eș"OS_SpriteOp",290,GSP%,"46",480,512:A%=200:B%=S%:C%=BSC%:� copy
::�11:ȓ Ȑ 272,16,736,28:�2:ȓ Ȑ 280,24,!energy,12:�11
D�P%=aliens:Q%=aveltab:� I%=0 � 3+!level:!P%=�(800)+200:P%!4=�(300)+400:P%!8=204:ș"OS_SpriteOp",290,GSP%,"51",!P%,P%!4,8:V%=�(&180):� !P%<640 V%+=&500 � V%=-&500-V%
N/!Q%=V%:V%=�(&20):� �(2)=1 V%+=&50 � V%-=&50
X6Q%!4=V%:P%+=12:Q%+=8:�:� I%=0 � 8 � 4:aflag!I%=0:�
b�!mant=600:mant!8=8:!manb=600:manb!8=28:!drop=0:!shot=0:� I%=0 � 96 � 12:bombs!I%=0:�:!fiflag=0:eyes!8=188:!eyedel=125:!dropdel=200:� !level=1 � !level=2 � !level=5 eyes!4=696 � eyes!4=664
l�ș"OS_SpriteOp",290,GSP%,"2",600,180,8:ș"OS_SpriteOp",290,GSP%,"7",600,100,8:C%=T%:� copy:� fade_in:ș"OS_Claim",&10,flipevent,0:VC%=2:!bank=2:R%=�(zap):*FX 21
v*FX 13,4
�@ș"OS_Release",&10,flipevent,0:VC%=0:� !bank<0 !bank=� !bank
�~� fade_out:?(levtab+!level)=1:!level+=1:!tabadd=TAB%+24+&580*!level:!sword=0:� �TtC:ș"OS_Byte",112,!bank � 3:� R% DEAD%=�
��
�:
�_� &046,&068,&08A,&0AC,&6A8,&024,&064,&086,&0A8,&0CA,&6A8,&042,&713,&835,&A68,&B9A,&B9A,&402
�_� &700,&922,&A55,&C88,&B9A,&400,&640,&962,&B94,&EC8,&B9A,&521,&555,&777,&888,&AAA,&B9A,&333
�:
�[� 112,80,0,144,112,48,176,144,80,208,176,112,240,208,144,176,176,176,112,112,112,80,0,0
�:
ڣ� 0,0,0,48,0,0,80,0,0,112,48,0,144,80,48,176,112,80,112,80,0,144,112,0,176,144,0,208,176,0,208,144,112,208,176,144,80,80,80,112,112,112,144,144,144,240,240,240
�:
�� �mouse:*FX 21,9
�4�:ȗ MX%,MY%,B%:� B%=0:�:ȗ MX%,MY%,B%:� B%<>0:�
:
� �rect(X%,Y%,W%,D%)
e� N%:� L%=1 � N%:� C%:� C%:ȓ X%,Y%,W%,D%:X%+=4:Y%+=4:W%-=8:D%-=8:�:� C%:� C%:ȓ Ȑ X%,Y%,W%,D%:�
 :
*� 3,9,10,11,12
4� 3,4,5,10,11
>:
H$� �wpr(S$):� T$,P%,Y%:T$=S$:Y%=0
R�
\ � �T$>WW% �
f(  P%=WW%+1:ȕ �T$,P%,1)<>" ":P%-=1:�
p  T$=�T$,�(T$)-P%)
z �
�  T$=""
� �
�
 Y%+=1
�� T$=""
�Y%=WYC%+Y%*18
��:T$=""
� � �S$>WW% �
�(  P%=WW%+1:ȕ �S$,P%,1)<>" ":P%-=1:�
�#  T$=�S$,�(S$)-P%):S$=�S$,P%-1)
� �
�& � WXC%-16*�S$,Y%:�S$:Y%-=36:S$=T$
�
� S$="":�
�:

� �asm
 sp=13:link=14:OS_WriteI=&100
� o%=0 � 2 � 2
$P%=code%
.[OPT o%
8.fade_in
B"STMFD (sp)!,{link}:MOV R5,#240
L?.fdilp MOV R3,#2:BL delay:BL chpal:SUBS R5,R5,#16:BPL fdilp
VLDMFD (sp)!,{PC}
`
.fade_out
j STMFD (sp)!,{link}:MOV R5,#0
tJ.fdolp MOV R3,#2:BL delay:BL chpal:ADD R5,R5,#16:CMP R5,#256:BNE fdolp
~LDMFD (sp)!,{PC}
�.pal EQUS �48,�0)
�.pblk EQUD &1000:EQUB 0
�\ Wait for R3 frame syncs
�.delay MOV R0,#19
�<.dellp SWI "OS_Byte":SUBS R3,R3,#1:BNE dellp:MOV PC,link
�\ Set palette
�:.chpal MOV R0,#12:ADR R1,pblk:MOV R2,#15:ADR R3,pal+48
�.chplp STRB R2,[R1]:LDRB R4,[R3,#-1]!:SUBS R4,R4,R5:MOVMI R4,#0:STRB R4,[R1,#4]:LDRB R4,[R3,#-1]!:SUBS R4,R4,R5:MOVMI R4,#0:STRB R4,[R1,#3]:LDRB R4,[R3,#-1]!:SUBS R4,R4,R5:MOVMI R4,#0:STRB R4,[R1,#2]:SWI "OS_Word":SUBS R2,R2,#1:BPL chplp:MOV PC,link
�\ Copy screen
�$.zapcopy MOV R0,#176:LDR R1,from
�	.copy
��LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:SUBS R0,R0,#1:BNE copy:MOV PC,link
\

.from EQUD BSC%
\
>.enevent TEQ R0,#4:MOVNES PC,link:STMFD (sp)!,{R0-R3,link}
(\LDR R0,enerct:CMP R0,#0:BPL decing:ADDS R0,R0,#1:STR R0,enerct:LDMPLFD (sp)!,{R0-R3,PC}^
2RLDR R0,energy:ADD R0,R0,#4:CMP R0,#724:LDMEQFD (sp)!,{R0-R3,PC}^:STR R0,energy
<�LDR R0,enerpt:SUB R0,R0,#160:STR R0,enerpt:LDR R1,sadd:LDR R2,tadd:MOV R3,#&FF:STRB R3,[R1,R0]:STRB R3,[R2,R0]:ADD R0,R0,#1:STRB R3,[R1,R0]:STRB R3,[R2,R0]:LDMFD (sp)!,{R0-R3,PC}^
FO.decing SUBS R0,R0,#1:MOVMI R0,#149:STR R0,enerct:LDMPLFD (sp)!,{R0-R3,PC}^
PGLDR R0,energy:SUBS R0,R0,#4:LDMMIFD (sp)!,{R0-R3,PC}^:STR R0,energy
Z�LDR R0,enerpt:LDR R1,sadd:LDR R2,tadd:MOV R3,#&BB:STRB R3,[R1,R0]:STRB R3,[R2,R0]:ADD R0,R0,#1:STRB R3,[R1,R0]:STRB R3,[R2,R0]:ADD R0,R0,#159:STR R0,enerpt:LDMFD (sp)!,{R0-R3,PC}^
d\
n�.reduce STMFD (sp)!,{R0-R4}:LDR R0,manhitCA:LDR R1,stepPD:SWI "Sound_ControlPacked":LDR R0,enerpt:ADD R0,R0,#160:STR R0,enerpt:MOV R0,#4:LDR R4,energy:ADD R1,R4,#280:MOV R2,#24:SWI "OS_Plot":MOV R0,#1:MOV R1,#0:MOV R2,#12:SWI "OS_Plot"
x�MOV R0,#112:LDR R3,bank:CMP R3,#0:MVNMI R3,R3:� R1,R3,#3:SWI "OS_Byte":MOV R0,#1:MOV R1,#0:MVN R2,#11:SWI "OS_Plot":MOV R0,#112:MOV R1,R3:SWI "OS_Byte":SUBS R4,R4,#4:STR R4,energy:LDMFD (sp)!,{R0-R4}:MOVPL PC,link:MOV R0,#&FF:LDMFD (sp)!,{PC}
�\
�.tabadd EQUD TAB%
�.tspadd EQUD TSP%
�.mspadd EQUD TSP%+&4560
�.mntb EQUD dman
�.mna EQUD 0
�.keys EQUD 0
�.energy EQUD 0
�.enerpt EQUD 0
�.enerct EQUD 149
�.sword EQUD 0
�.manhitCA EQUD &1FF0003
�.stepCA EQUD &1500001
.stepPD EQUD &12000
.doorCA EQUD &17F0002
.doorPD EQUD &12550
"]
,cdman=P%:uman=P%+32:rman=P%+64:lman=P%+96:eman=P%+128:� I%=0 � 36:!P%=TSP%+&1A04+I%*&12C:P%+=4:�
6[OPT o%
@\Move in labyrinth
JG.MoveLaby STMFD (sp)!,{link}:LDR R10,tabadd:MOV R11,#52:MOV R12,#44
T~MOV R0,#2:STR R0,bank:MOV R0,#255:STR R0,mna:BL DrawLaby:BL fade_in:MOV R3,#20:BL delay:ADR R0,eman:STR R0,mntb:MOV R6,#16
^N.emanlp STR R6,mna:BL DrawLaby:MOV R3,#2:BL delay:SUBS R6,R6,#4:BPL emanlp
hpMOV R0,#21:ADR R1,rmouse:SWI "OS_Word":MOV R0,#21:MOV R1,#9:SWI "OS_Byte":MOV R0,#14:MOV R1,#4:SWI "OS_Byte"
rADR R0,dman:STR R0,mntb
|.dok
�RLDR R2,mna:ADD R2,R2,#4:CMP R2,#32:�Q R2,#0:STR R2,mna:TST R2,#15:BNE skipstep
�ULDR R0,stepCA:LDR R1,stepPD:� R1,R1,#&550:STR R1,stepPD:SWI "Sound_ControlPacked"
�.skipstep BL DrawLaby
��.klp LDR R0,energy:CMP R0,#4:BLT dead:BL tstkey:TST R6,#16:BLNE rtn:TST R6,#1:BNE ml:TST R6,#2:BNE mr:TST R6,#8:BNE mu:TST R6,#4:BEQ klp
��.md ADR R0,dman:STR R0,mntb:TEQ R12,#60:BNE mdd:ADD R1,R10,#90:CMP R11,#56:SUBHI R1,R1,#1:LDRB R0,[R1]:CMP R0,#18:BLS mdd:CMP R11,#56:BNE clld:CMP R0,#28:BLS clld:CMP R0,#32:BHI mdd:CMP R0,#29:BHI clld
�L.mdd ADD R12,R12,#4:TEQ R12,#64:BNE dok:MOV R12,#0:ADD R10,R10,#22:B dok
�c.ml ADR R0,lman:STR R0,mntb:TEQ R11,#56:BNE mll:ADD R1,R10,#67:LDRB R0,[R1]:CMP R0,#18:BHI clld
�K.mll ADD R11,R11,#4:TEQ R11,#64:BNE dok:MOV R11,#0:SUB R10,R10,#1:B dok
�c.mr ADR R0,rman:STR R0,mntb:TEQ R11,#56:BNE mrr:ADD R1,R10,#68:LDRB R0,[R1]:CMP R0,#18:BHI clld
�A.mrr SUBS R11,R11,#4:BPL dok:MOV R11,#60:ADD R10,R10,#1:B dok
��.mu ADR R0,uman:STR R0,mntb:TEQ R12,#0:BNE muu:ADD R1,R10,#46:CMP R11,#56:SUBHI R1,R1,#1:LDRB R0,[R1]:CMP R0,#18:BLS muu:CMP R11,#56:BNE clld:CMP R0,#28:BLS clld:CMP R0,#32:BHI muu:CMP R0,#29:BHI clld
�B.muu SUBS R12,R12,#4:BPL dok:MOV R12,#60:SUB R10,R10,#22:B dok
�0.clld MOV R0,#0:STR R0,mna:BL DrawLaby:B klp
q.rtn LDR R2,keys:TEQ R2,#0:BEQ nokey:TEQ R12,#0:ADDEQ R1,R10,#46:BEQ cdr:TEQ R12,#60:BNE nokey:ADD R1,R10,#90
�.cdr LDRB R0,[R1]:TEQ R0,#32:MOVNE PC,link:MOV R0,#7:STRB R0,[R1],#22:STRB R0,[R1],#1:STRB R0,[R1],#-22:MOV R0,#29:STRB R0,[R1]:SUB R2,R2,#1:STR R2,keys
qMOV R0,#2:ADR R1,doorvoice:SWI "Sound_AttachNamedVoice":LDR R0,doorCA:LDR R1,doorPD:SWI "Sound_ControlPacked"
&SWI OS_WriteI+26:MOV R0,#34:ADD R0,R0,#512:LDR R1,tspadd:MOV R3,R2,LSL#5:LDR R2,ttab:MOV R4,#32:MOV R5,#0:SWI "OS_SpriteOp"
0�STMFD (sp)!,{R0-R2}:MOV R0,#112:LDR R1,bank:SWI "OS_Byte":LDMFD (sp)!,{R0-R2}:SWI "OS_SpriteOp":ADR R0,rewin:MOV R1,#14:SWI "OS_WriteN":B finrtn
:�.nokey CMP R12,#4:MOVLS PC,link:CMP R12,#52:MOVHI PC,link:ADD R1,R10,#69:CMP R11,#8:BLS ctb:CMP R11,#28:MOVLS PC,link:SUB R1,R1,#1
Dt.ctb LDRB R0,[R1]:TEQ R0,#8:BEQ da:TEQ R0,#9:BEQ ua:TEQ R0,#16:BEQ en:TEQ R0,#17:BEQ sw:TEQ R0,#18:MOVNE PC,link
N8.ky ADD R2,R2,#1:STR R2,keys:MOV R0,#15:STRB R0,[R1]
X�MOV R0,#2:ADR R1,clangvoice:SWI "Sound_AttachNamedVoice":LDR R0,doorCA:LDR R1,doorPD:� R1,R1,#&F50:SWI "Sound_ControlPacked"
b�SWI OS_WriteI+26:MOV R0,#34:ADD R0,R0,#512:SUBS R3,R2,#1:LDR R1,tspadd:ADR R2,ttab:LDR R2,[R2,#152]:MOV R3,R3,LSL#5:MOV R4,#32:MOV R5,#0:SWI "OS_SpriteOp"
l�STMFD (sp)!,{R0-R2}:MOV R0,#112:LDR R1,bank:SWI "OS_Byte":LDMFD (sp)!,{R0-R2}:SWI "OS_SpriteOp":ADR R0,rewin:MOV R1,#14:SWI "OS_WriteN":B finrtn
v].ua LDR R0,level:ADR R1,levtab:LDRB R0,[R1,R0]:LDR R1,sword:�RS R0,R0,R1,LSL#1:�Q PC,link
�=.deman STMFD (sp)!,{R0}:ADR R0,eman:STR R0,mntb:MOV R6,#0
��.demanlp STR R6,mna:BL DrawLaby:MOV R3,#2:BL delay:ADD R6,R6,#4:CMP R6,#20:BNE demanlp:MOV R0,#255:STR R0,mna:BL DrawLaby:MOV R3,#4:BL delay:BL fade_out:LDMFD (sp)!,{R0,PC}
�.da MOV R0,#0:B deman
�*.rmouse EQUB 3:EQUW 640:EQUW 400:ALIGN
�8.en MVN R0,#45:STR R0,enerct:MOV R0,#15:STRB R0,[R1]
��MOV R0,#2:ADR R1,boingvoice:SWI "Sound_AttachNamedVoice":LDR R0,doorCA:LDR R1,doorPD:�R R1,R1,#&1000:SWI "Sound_ControlPacked":B finrtn
�6.sw MOV R0,#1:STR R0,sword:MOV R0,#15:STRB R0,[R1]
�rMOV R0,#2:ADR R1,clangvoice:SWI "Sound_AttachNamedVoice":LDR R0,doorCA:LDR R1,doorPD:SWI "Sound_ControlPacked"
ЍSWI OS_WriteI+26:MOV R0,#34:ADD R0,R0,#512:LDR R1,tspadd:ADR R2,ttab:LDR R2,[R2,#148]:MOV R3,#1216:MOV R4,#32:MOV R5,#0:SWI "OS_SpriteOp"
ڋSTMFD (sp)!,{R0-R2}:MOV R0,#112:LDR R1,bank:SWI "OS_Byte":LDMFD (sp)!,{R0-R2}:SWI "OS_SpriteOp":ADR R0,rewin:MOV R1,#14:SWI "OS_WriteN"
�Z.finrtn TEQ R6,#16:MOVNE PC,link:STMFD (sp)!,{R6,link}:BL DrawLaby:LDMFD (sp)!,{R6,PC}
�.dead MOV R0,#2:ADR R1,hurtvoice:SWI "Sound_AttachNamedVoice":LDR R0,doorCA:LDR R1,doorPD:SWI "Sound_ControlPacked":MOV R0,#4:B deman
�V.rewin EQUB 24:EQUW 444:EQUW 268:EQUW 760:EQUW 564:EQUB 29:EQUW 384:EQUW 268:ALIGN
.bank EQUD 2
.level EQUD 0
.levtab EQUD 0:EQUD 0
 2.doorvoice EQUS "IronEffect-Door":EQUB 0:ALIGN
*/.clangvoice EQUS "IronEffect-Clang1":EQUB 0
48.boingvoice EQUS "IronEffect-ArrowMiss":EQUB 0:ALIGN
>2.hurtvoice EQUS "IronEffect-Hurt":EQUB 0:ALIGN
H]
R2ttab=P%:� I%=0 � 38:!P%=TSP%+16+I%*172:P%+=4:�
\[OPT o%
f\Draw labyrinth
p
.DrawLaby
z�MOV R3,R11:ADD R4,R12,#256:MOV R0,#112:LDR R1,bank:SWI "OS_Byte":MOV R0,#34:ADD R0,R0,#512:LDR R1,tspadd:MOV R5,#0:MOV R6,#6:MOV R7,R10:ADR R8,ttab
�.dll1 MOV R9,#6
��.dll2 LDRB R2,[R7],#1:LDR R2,[R8,R2,LSL#2]:SWI "OS_SpriteOp":ADD R3,R3,#64:SUBS R9,R9,#1:BNE dll2:SUB R3,R3,#384:SUB R4,R4,#64:ADD R7,R7,#16:SUBS R6,R6,#1:BNE dll1
��LDR R1,tspadd:LDR R2,mspadd:MOV R3,#60:MOV R4,#0:MOV R5,#8:SWI "OS_SpriteOp":LDR R2,mntb:LDR R6,mna:TEQ R6,#255:BEQ noman:LDR R2,[R2,R6]:MOV R3,#184:MOV R4,#124:SWI "OS_SpriteOp"
�`.noman MOV R0,#19:SWI "OS_Byte":MOV R0,#113:LDR R1,bank:� R3,R1,#3:SWI "OS_Byte":STR R3,bank
�MOV PC,link
�\
�7.tstkey SWI "OS_ReadEscapeState":LDMCSFD (sp)!,{PC}
�JMOV R6,#0:MOV R0,#121:MOV R1,#pause%:SWI "OS_Byte":TEQ R1,#0:BNE pause
��MOV R1,#left%:SWI "OS_Byte":TEQ R1,#0:�RNE R6,R6,#1:MOV R1,#right%:SWI "OS_Byte":TEQ R1,#0:�RNE R6,R6,#2:MOV R1,#down%:SWI "OS_Byte":TEQ R1,#0:�RNE R6,R6,#4:MOV R1,#up%:SWI "OS_Byte":TEQ R1,#0:�RNE R6,R6,#8
ގLDR R1,lastcomb:STR R6,lastcomb:�S R1,R1,R6:LDREQ R6,lastkey:BEQ gtkey:�S R2,R1,R6:MOVNE R6,R2:BNE gtkey:LDR R2,lastkey:TST R1,R2:�Q R6,R2
�[.gtkey �S R1,R6,#1:�EQS R1,R6,#2:�EQS R1,R6,#4:�EQS R1,R6,#8:MOVNE R6,R1:STR R6,lastkey
�PMOV R1,#fire%:SWI "OS_Byte":TEQ R1,#0:�RNE R6,R6,#16:TEQ R6,#0:MOVNE PC,link
��SWI "OS_Mouse":TST R2,#4:BEQ mrtn:SUBS R3,R0,#640:RSBMI R3,R3,#0:SUBS R4,R1,#400:RSBMI R4,R4,#0:CMP R3,#1:MOVLS R3,#0:CMP R4,#1:MOVLS R4,#0:CMP R3,R4:BEQ nomov:BHI xgt:CMP R1,#400:�RLT R6,R6,#4:�RGT R6,R6,#8:B mrtn
	7.xgt CMP R0,#640:�RLT R6,R6,#1:�RGT R6,R6,#2:B mrtn
	.nomov LDR R6,lastmkey
	e.mrtn STR R6,lastmkey:TST R2,#3:�RNE R6,R6,#16:MOV R0,#21:ADR R1,rmouse:SWI "OS_Word":MOV PC,link
	$9.pause MOV R0,#13:MOV R1,#4:SWI "OS_Byte":MOV R0,#121
	.A.relpause MOV R1,#pause%:SWI "OS_Byte":TEQ R1,#0:BNE relpause
	8?.unpause MOV R1,#pause%:SWI "OS_Byte":TEQ R1,#0:BEQ unpause
	BA.finpause MOV R1,#pause%:SWI "OS_Byte":TEQ R1,#0:BNE finpause
	L2MOV R0,#14:MOV R1,#4:SWI "OS_Byte":MOV PC,link
	V\
	`.lastkey EQUD 0
	j.lastmkey EQUD 0
	t.lastcomb EQUD 0
	~.gspadd EQUD GSP%
	�.sadd EQUD S%
	�.tadd EQUD T%
	�:\*****************************************************
	�\
	�]
	�#eyes=P%:!P%=544:P%!4=664:P%+=12
	�drop=P%:!P%=0:P%+=12
	�&bombs=P%:� I%=0 � 8:!P%=0:P%+=12:�
	�'aliens=P%:� I%=0 � 8:!P%=0:P%+=12:�
	�!mant=P%:!P%=0:P%!4=180:P%+=12
	�!manb=P%:!P%=0:P%!4=100:P%+=12
	�shot=P%:!P%=0:P%+=12
[OPT o%

\
.random EQUD 38771
.rconst EQUD &1D872B41
(.fiflag EQUD 0
2.eyedel EQUD 0
<.dropdel EQUD 0
F.aflag EQUD 0:EQUD 0:EQUD 0
P\
Z.zap STMFD (sp)!,{link}
d?MOV R0,#19:SWI "OS_Byte":MOV R0,#14:MOV R1,#4:SWI "OS_Byte"
n�.zaplp MOV R0,#19:SWI "OS_Byte":LDR R1,bank:CMP R1,#0:BMI zaplp:MOV R0,#113:SWI "OS_Byte":STR R1,bank:MOV R3,R1:MOV R0,#112:SWI "OS_Byte"
x1ADR R0,sadd-4:LDR R2,[R0,R3,LSL#2]:BL zapcopy
�	\plot
�`MOV R12,#23:ADR R11,eyes-12:ADR R10,sprtab:MOV R0,#34:ADD R0,R0,#512:LDR R1,gspadd:MOV R5,#8
��.plotlp LDR R3,[R11,#12]!:TEQ R3,#0:BEQ plnext:LDR R4,[R11,#4]:LDR R2,[R11,#8]:� R2,R2,#1020:LDR R2,[R10,R2]:SWI "OS_SpriteOp"
�&.plnext SUBS R12,R12,#1:BNE plotlp
�\blink eyes
��ADR R12,eyes:LDR R0,eyedel:SUBS R0,R0,#1:BPL noblink:LDR R1,[R12,#8]:ADD R1,R1,#2:TEQ R1,#204:BNE nfbl:MOV R1,#188:LDR R0,random:� R0,R0,#255
�.nfbl STR R1,[R12,#8]
�.noblink STR R0,eyedel
�\move drop
�UADD R12,R12,#12:LDR R0,dropdel:SUBS R0,R0,#1:STR R0,dropdel:BEQ stdrop:BPL nodrop
�LDR R1,[R12,#8]:ADD R1,R1,#2:TEQ R1,#184:BEQ dropfin:CMP R1,#108:BLT enddrop:LDR R2,[R12,#4]:CMP R2,#120:BLE drgnd:SUB R2,R2,#12:STR R2,[R12,#4]:TEQ R1,#144:�Q R1,#108:B chkdrp
�d.stdrop MOV R1,#588:STR R1,[R12]:MOV R1,#512:STR R1,[R12,#4]:MOV R1,#88:STR R1,[R12,#8]:B nodrop
�V.dropfin MOV R2,#0:STR R2,[R12]:LDR R0,random:� R0,R0,#255:STR R0,dropdel:B nodrop
i.drgnd CMP R1,#144:BGT chkdrp:LDR R0,drsplatCA:LDR R1,drsplatPD:SWI "Sound_ControlPacked":MOV R1,#144
�.chkdrp ADR R11,mant:MOV R10,#2:MOV R9,#16:MOV R8,#64:MOV R7,#88:BL checkcoll:BEQ dmhit:ADD R11,R11,#12:MOV R10,#2:MOV R9,#16:MOV R8,#80:MOV R7,#88:BL checkcoll:BNE enddrop
..dmhit CMP R1,#144:MOVLT R1,#144:BL reduce
".enddrop STR R1,[R12,#8]
,.nodrop
6\move bombs
@
MOV R6,#9
J�.bomblp LDR R0,[R12,#12]!:TEQ R0,#0:BEQ nobomb:LDR R1,[R12,#8]:ADD R1,R1,#2:CMP R1,#236:BGT chkbomb:�Q R1,#220:LDR R0,[R12,#4]:SUB R0,R0,#12:STR R0,[R12,#4]:CMP R0,#120:BGT chkbomb:LDR R0,bsmshCA:LDR R1,shotPD:SWI "Sound_ControlPacked":MOV R1,#236
T�.chkbomb ADR R11,mant:MOV R10,#2:MOV R9,#11:MOV R8,#64:MOV R7,#88:BL checkcoll:BEQ bmhit:ADD R11,R11,#12:MOV R10,#2:MOV R9,#11:MOV R8,#80:MOV R7,#88:BL checkcoll:BNE finbomb
^..bmhit CMP R1,#236:MOVLT R1,#236:BL reduce
h@.finbomb STR R1,[R12,#8]:CMP R1,#252:�Q R0,#0:STREQ R0,[R12]
r$.nobomb SUBS R6,R6,#1:BNE bomblp
|\move shot
��ADR R12,shot:LDR R0,[R12]:TEQ R0,#0:BEQ noshot:LDR R0,[R12,#8]:CMP R0,#72:BGE bnging:LDR R0,[R12,#4]:ADD R0,R0,#16:STR R0,[R12,#4]:CMP R0,#800:BGE stopshot
�)ADR R11,aliens:ADR R6,aflag:MOV R5,#9
�M.saclp LDRB R0,[R6,R5]:CMP R0,#2:BGE nacc:LDR R0,[R11]:TEQ R0,#0:BEQ nacc
�EMOV R10,#14:MOV R9,#5:MOV R8,#64:MOV R7,#76:BL checkcoll:BNE nacc
�YLDR R0,hitCA:LDR R1,hitPD:LDRB R2,[R6,R5]:� R1,R1,R2,LSL#11:SWI "Sound_ControlPacked"
�rADD R2,R2,#1:STRB R2,[R6,R5]:LDR R0,[R11]:SUB R0,R0,#8:STR R0,[R12]:LDR R0,[R11,#4]:STR R0,[R12,#4]:MOV R0,#68
�>.bnging ADD R0,R0,#4:STR R0,[R12,#8]:CMP R0,#88:BNE noshot
�-.stopshot MOV R0,#0:STR R0,[R12]:B noshot
�1.nacc ADD R11,R11,#12:SUBS R5,R5,#1:BNE saclp
�\move aliens
�h.noshot ADR R11,aveltab:ADR R12,aliens:MOV R10,#9:LDR R9,random:LDR R8,rconst:MOV R7,#0:ADR R6,aflag
�c.aloop LDR R0,[R12]:TEQ R0,#0:BEQ nextal:MOV R7,#1:LDRB R1,[R6,R10]:CMP R1,#2:BEQ fall:BGT crsh
��LDR R1,[R12,#8]:ADD R1,R1,#2:CMP R1,#220:�Q R1,#204:STR R1,[R12,#8]:MOVS R9,R9,LSL#1:�CS R9,R9,R8:STR R9,random:LDR R1,[R11]:ADD R0,R0,R1,ASR#7:STR R0,[R12]:CMP R1,#0:BPL sklb:CMP R0,#60:ADDLT R1,R1,#64:B skrb
&.sklb CMP R0,#1136:SUBGT R1,R1,#64
s.skrb RSBS R2,R0,#600:MOVPL R3,R2:MVNMI R3,R2:CMP R3,#320:ADDGT R1,R1,R2,ASR#3:ADD R1,R1,R9,ASR#27:STR R1,[R11]
�LDR R0,[R12,#4]:LDR R1,[R11,#4]:ADD R0,R0,R1,ASR#6:STR R0,[R12,#4]:RSB R2,R0,#560:ADD R1,R1,R2:ADD R1,R1,R9,ASR#28:STR R1,[R11,#4]
&�LDR R0,[R12,#-&6C]:TEQ R0,#0:BNE nextal:� R0,R9,#255:CMP R0,#250:BLT nextal:LDR R0,[R12]:ADD R0,R0,#20:STR R0,[R12,#-&6C]:LDR R0,[R12,#4]:STR R0,[R12,#-&68]:MOV R0,#220:STR R0,[R12,#-&64]:B nextal
0�.fall LDR R2,[R12,#4]:SUB R2,R2,#24:STR R2,[R12,#4]:CMP R2,#120:BGT nextal:MOV R0,#156:STR R0,[R12,#8]:STRB R0,[R6,R10]:LDR R0,splatCA:LDR R1,splatPD:SWI "Sound_ControlPacked"
:Z.crsh LDR R0,[R12,#8]:ADD R0,R0,#2:STR R0,[R12,#8]:CMP R0,#184:�Q R0,#0:STREQ R0,[R12]
DD.nextal ADD R11,R11,#8:ADD R12,R12,#12:SUBS R10,R10,#1:BNE aloop
N)TEQ R7,#0:�Q R0,#0:LDMEQFD (sp)!,{PC}
X
\move man
b�LDR R0,fiflag:TEQ R0,#0:BNE zfiring:BL tstkey:TST R6,#16:BLNE zfire:TST R6,#1:BNE zml:TST R6,#2:BNE zmr:MOV R0,#8:STR R0,[R12,#8]:B zaplp
l�.zmr LDR R1,[R12]:CMP R1,#960:BGE zaplp:ADD R1,R1,#8:STR R1,[R12]:STR R1,[R12,#12]:LDR R1,[R12,#20]:ADD R1,R1,#4:CMP R1,#56:�Q R1,#28:STR R1,[R12,#20]
vT.znoar LDR R1,[R12,#8]:TEQ R1,#16:BEQ zaplp:ADD R1,R1,#4:STR R1,[R12,#8]:B zaplp
��.zml LDR R1,[R12]:CMP R1,#180:BLE zaplp:SUB R1,R1,#8:STR R1,[R12]:STR R1,[R12,#12]:LDR R1,[R12,#20]:SUB R1,R1,#4:CMP R1,#24:�Q R1,#52:STR R1,[R12,#20]
�S.znoal LDR R1,[R12,#8]:TEQ R1,#0:BEQ zaplp:SUB R1,R1,#4:STR R1,[R12,#8]:B zaplp
��.zfire LDR R0,[R12,#24]:TEQ R0,#0:MOVNE PC,link:MOV R0,#1:STR R0,fiflag:MOV R0,#20:STR R0,[R12,#8]:LDR R0,shotCA:LDR R1,shotPD:SWI "Sound_ControlPacked":B zaplp
�}.zfiring ADD R0,R0,#1:STR R0,fiflag:CMP R0,#5:BEQ zshoot:BHI zshot:TEQ R0,#3:BNE zaplp:MOV R0,#24:STR R0,[R12,#8]:B zaplp
�x.zshoot LDR R1,[R12]:ADD R1,R1,#44:STR R1,[R12,#24]:MOV R1,#272:STR R1,[R12,#28]:MOV R1,#56:STR R1,[R12,#32]:B zaplp
�N.zshot LDR R0,[R12,#32]:ADD R0,R0,#4:STR R0,[R12,#32]:TEQ R0,#68:BNE zaplp
�=MOV R0,#0:STR R0,fiflag:MOV R0,#8:STR R0,[R12,#8]:B zaplp
�]
�aveltab=P%:P%+=72
�;sprtab=P%:Q%=GSP%+16:� I%=0 � 63:!P%=Q%:Q%+=!Q%:P%+=4:�
�[OPT o%
�.shotCA EQUD &17F0001
�.shotPD EQUD &142000

.hitCA EQUD &17F0002

.hitPD EQUD &12F00

.splatCA EQUD &17F0004

 .splatPD EQUD &12550

*.bsmshCA EQUD &17F0005

4.drsplatCA EQUD &17F0006

>.drsplatPD EQUD &11F00

H\

R\Collison detector

\7\R12 - Object doing hitting, R11 - Object being hit

f9\R10 - Height of hitter(1s), R9 - Width of hitter(1s)

p9\R8  - Height of hittee(4s), R7 - Width of hittee(4s)

z!\Returns EQ if hit, NE if not

�\

�'.checkcoll STMFD (sp)!,{R0-R6,link}

�9MOV R0,#43:ADD R0,R0,#512:LDR R1,gspadd:ADR R3,sprtab

�RSUB R4,R10,#1:LDR R6,[R11,#4]:LDR R5,[R12,#4]:SUB R6,R5,R6:ADD R6,R6,R10,LSL#2

�gLDR R10,[R11,#8]:� R10,R10,#1020:LDR R10,[R3,R10]:LDR R14,[R12,#8]:� R14,R14,#1020:LDR R14,[R3,R14]

�9.colcy SUBS R6,R6,#4:BMI fincoll:CMP R6,R8:BGE colcny

�JSUB R3,R9,#1:LDR R5,[R11]:LDR R2,[R12]:SUB R5,R2,R5:ADD R5,R5,R9,LSL#2

�8.colcx SUBS R5,R5,#4:BMI colcny:CMP R5,R7:BGE colcnx

��STMFD (sp)!,{R5}:MOV R2,R14:SWI "OS_SpriteOp":TEQ R5,#1:LDMFD (sp)!,{R5}:BNE colcnx:STMFD (sp)!,{R3-R5}:MOV R2,R10:MOV R3,R5,LSR#2:MOV R4,R6,LSR#2:SWI "OS_SpriteOp":TEQ R5,#1:LDMFD (sp)!,{R3-R5}:BEQ fincoll

�#.colcnx SUBS R3,R3,#1:BPL colcx

�#.colcny SUBS R4,R4,#1:BPL colcy

�#.fincoll LDMFD (sp)!,{R0-R6,PC}

�\
=.flipevent CMP R0,#4:MOVNES PC,link:STMFD (sp)!,{R0,link}
:LDR R0,bank:MVN R0,R0:STR R0,bank:LDMFD (sp)!,{R0,PC}^
\
$.unpack STMFD (sp)!,{link}
.ZLDR R1,length:LDR R10,scradd:LDR R11,picdat:ADD R12,R11,#256:ADD R0,R11,#512:MOV R4,#0
87.upl LDRB R2,[R0],#1:BL print:SUBS R1,R1,#1:BNE upl
BLDMFD (sp)!,{PC}
L\
V
.print
`STMFD (sp)!,{link}
j*LDRB R3,[R11,R2]:TEQ R3,R2:BEQ storeit
tSTMFD (sp)!,{R2}
~MOV R2,R3:BL print
�LDMFD (sp)!,{R2}
�LDRB R2,[R12,R2]:BL print
�LDMFD (sp)!,{PC}
�.storeit
��S R4,R4,#1
�MOVNE R5,R2
��REQ R5,R5,R2,LSL#4
�STREQB R5,[R10],#1
�LDMFD (sp)!,{PC}
�\
�.picdat EQUD PP%
�.length EQUD &352B
.scradd EQUD S%

]
8� P%>(code%+space%) � 15:�"Not enough code space.":�
�
(�
2:
<� �error:� � �
F9� VC%=1 �"FX 13,4":ș"OS_Release",&10,enevent,0:VC%=0
P;� VC%=2 �"FX 13,4":ș"OS_Release",&10,flipevent,0:VC%=0
Z� 15:�:֓+&214
d
*FX 20
nQ� �=17 �"Goodbye." � �"Iron Lord has stopped because of a fatal error :-"''�$
x�
�
00000000  0d 00 0a 20 f4 20 3e 3a  49 72 6f 6e 4c 6f 72 64  |... . >:IronLord|
00000010  2e 21 49 72 6f 6e 4c 6f  72 64 2e 49 72 6f 6e 36  |.!IronLord.Iron6|
00000020  0d 00 14 18 f4 20 28 43  29 20 31 39 39 30 20 55  |..... (C) 1990 U|
00000030  42 49 20 73 6f 66 74 2e  0d 00 1e 3c f4 20 41 72  |BI soft....<. Ar|
00000040  63 68 69 6d 65 64 65 73  20 76 65 72 73 69 6f 6e  |chimedes version|
00000050  20 62 79 20 43 79 67 6e  75 73 20 53 6f 66 74 77  | by Cygnus Softw|
00000060  61 72 65 20 45 6e 67 69  6e 65 65 72 69 6e 67 20  |are Engineering |
00000070  4c 74 64 2e 0d 00 28 05  3a 0d 00 32 09 56 43 25  |Ltd...(.:..2.VC%|
00000080  3d 30 0d 00 3c 10 ee 20  85 20 f2 65 72 72 6f 72  |=0..<.. . .error|
00000090  3a e0 0d 00 46 05 3a 0d  00 50 65 73 70 61 63 65  |:...F.:..Pespace|
000000a0  25 3d 26 31 35 33 43 3a  de 20 63 6f 64 65 25 20  |%=&153C:. code% |
000000b0  73 70 61 63 65 25 2c 54  53 50 25 20 26 35 43 46  |space%,TSP% &5CF|
000000c0  43 2c 47 53 50 25 20 26  35 34 39 34 2c 54 41 42  |C,GSP% &5494,TAB|
000000d0  25 20 26 32 31 30 30 2c  50 50 25 20 26 33 37 32  |% &2100,PP% &372|
000000e0  42 2c 42 53 43 25 20 26  37 44 30 30 2c 54 41 25  |B,BSC% &7D00,TA%|
000000f0  28 34 29 2c 50 4c 25 28  35 2c 35 29 0d 00 5a 05  |(4),PL%(5,5)..Z.|
00000100  3a 0d 00 64 2b ff 22 4c  6f 61 64 20 3c 49 72 6f  |:..d+."Load <Iro|
00000110  6e 4c 6f 72 64 24 44 69  72 3e 2e 4c 61 62 79 53  |nLord$Dir>.LabyS|
00000120  6b 75 6c 6c 20 22 2b c3  7e 50 50 25 0d 00 6e 2f  |kull "+.~PP%..n/|
00000130  ff 22 49 72 6f 6e 4c 6f  61 64 20 3c 49 72 6f 6e  |."IronLoad <Iron|
00000140  4c 6f 72 64 24 44 69 72  3e 2e 4c 61 62 79 43 61  |Lord$Dir>.LabyCa|
00000150  76 65 20 22 2b c3 7e 42  53 43 25 0d 00 78 31 ff  |ve "+.~BSC%..x1.|
00000160  22 49 72 6f 6e 4c 6f 61  64 20 3c 49 72 6f 6e 4c  |"IronLoad <IronL|
00000170  6f 72 64 24 44 69 72 3e  2e 4c 61 62 79 54 61 62  |ord$Dir>.LabyTab|
00000180  6c 65 73 20 22 2b c3 7e  54 41 42 25 0d 00 82 3f  |les "+.~TAB%...?|
00000190  21 54 53 50 25 3d 26 35  43 46 43 3a ff 22 49 72  |!TSP%=&5CFC:."Ir|
000001a0  6f 6e 4c 6f 61 64 20 3c  49 72 6f 6e 4c 6f 72 64  |onLoad <IronLord|
000001b0  24 44 69 72 3e 2e 4c 61  62 79 53 70 72 31 20 22  |$Dir>.LabySpr1 "|
000001c0  2b c3 7e 28 54 53 50 25  2b 34 29 0d 00 8c 3f 21  |+.~(TSP%+4)...?!|
000001d0  47 53 50 25 3d 26 35 34  38 34 3a ff 22 49 72 6f  |GSP%=&5484:."Iro|
000001e0  6e 4c 6f 61 64 20 3c 49  72 6f 6e 4c 6f 72 64 24  |nLoad <IronLord$|
000001f0  44 69 72 3e 2e 4c 61 62  79 53 70 72 32 20 22 2b  |Dir>.LabySpr2 "+|
00000200  c3 7e 28 47 53 50 25 2b  34 29 0d 00 96 3f 6c 65  |.~(GSP%+4)...?le|
00000210  66 74 25 3d 32 32 35 3a  72 69 67 68 74 25 3d 31  |ft%=225:right%=1|
00000220  39 34 3a 64 6f 77 6e 25  3d 32 33 32 3a 75 70 25  |94:down%=232:up%|
00000230  3d 32 30 37 3a 66 69 72  65 25 3d 32 30 31 3a 70  |=207:fire%=201:p|
00000240  61 75 73 65 25 3d 32 32  34 0d 00 a0 41 54 41 25  |ause%=224...ATA%|
00000250  28 30 29 3d 26 33 34 36  3a 54 41 25 28 31 29 3d  |(0)=&346:TA%(1)=|
00000260  26 41 32 38 3a 54 41 25  28 32 29 3d 26 44 31 44  |&A28:TA%(2)=&D1D|
00000270  3a 54 41 25 28 33 29 3d  26 31 34 38 32 3a 54 41  |:TA%(3)=&1482:TA|
00000280  25 28 34 29 3d 26 31 37  42 46 0d 00 aa 2a e3 20  |%(4)=&17BF...*. |
00000290  49 25 3d 30 20 b8 20 35  3a e3 20 4a 25 3d 30 20  |I%=0 . 5:. J%=0 |
000002a0  b8 20 35 3a f3 20 50 4c  25 28 49 25 2c 4a 25 29  |. 5:. PL%(I%,J%)|
000002b0  3a ed 3a ed 0d 00 b4 59  f2 61 73 6d 3a c8 99 22  |:.:....Y.asm:.."|
000002c0  53 6f 75 6e 64 5f 51 49  6e 69 74 22 3a e3 49 25  |Sound_QInit":.I%|
000002d0  3d 31 b8 38 3a c8 99 22  53 6f 75 6e 64 5f 41 74  |=1.8:.."Sound_At|
000002e0  74 61 63 68 56 6f 69 63  65 22 2c 49 25 2c 30 3a  |tachVoice",I%,0:|
000002f0  ed 3a c8 99 22 53 6f 75  6e 64 5f 43 6f 6e 66 69  |.:.."Sound_Confi|
00000300  67 75 72 65 22 2c 31 2c  30 2c 31 30 30 0d 00 be  |gure",1,0,100...|
00000310  3a 21 65 6e 65 72 67 79  3d 37 32 30 3a 21 65 6e  |:!energy=720:!en|
00000320  65 72 70 74 3d 26 36 33  41 3a 21 74 61 62 61 64  |erpt=&63A:!tabad|
00000330  64 3d 54 41 42 25 2b 32  34 3a 4d 4c 25 3d 30 3a  |d=TAB%+24:ML%=0:|
00000340  44 45 41 44 25 3d a3 0d  00 c8 05 3a 0d 00 d2 1e  |DEAD%=.....:....|
00000350  f5 3a f2 6c 61 62 79 3a  fd 20 21 6c 65 76 65 6c  |.:.laby:. !level|
00000360  3d 36 20 84 20 44 45 41  44 25 0d 00 dc 36 f2 72  |=6 . DEAD%...6.r|
00000370  65 63 74 28 32 34 30 2c  32 36 30 2c 38 30 30 2c  |ect(240,260,800,|
00000380  33 35 32 29 3a 57 57 25  3d 32 34 3a 57 58 43 25  |352):WW%=24:WXC%|
00000390  3d 36 34 30 3a 57 59 43  25 3d 34 33 32 3a e6 31  |=640:WYC%=432:.1|
000003a0  0d 00 e6 0d e7 20 44 45  41 44 25 20 8c 0d 00 f0  |..... DEAD% ....|
000003b0  a0 20 f2 77 70 72 28 22  59 6f 75 20 73 6c 75 6d  |. .wpr("You slum|
000003c0  70 20 74 6f 20 74 68 65  20 67 72 6f 75 6e 64 2c  |p to the ground,|
000003d0  20 64 72 61 69 6e 65 64  20 6f 66 20 61 6c 6c 20  | drained of all |
000003e0  79 6f 75 72 20 65 6e 65  72 67 79 2e 20 41 73 20  |your energy. As |
000003f0  74 68 65 20 77 6f 72 6c  64 20 74 75 72 6e 73 20  |the world turns |
00000400  69 6e 74 6f 20 61 20 67  72 65 79 20 66 6f 67 2c  |into a grey fog,|
00000410  20 79 6f 75 20 63 75 72  73 65 20 79 6f 75 72 20  | you curse your |
00000420  65 76 69 6c 20 75 6e 63  6c 65 20 66 6f 72 20 6f  |evil uncle for o|
00000430  6e 65 20 6c 61 73 74 20  74 69 6d 65 2e 20 59 6f  |ne last time. Yo|
00000440  75 20 61 72 65 20 64 65  61 64 2e 22 29 0d 00 fa  |u are dead.")...|
00000450  5d 20 d6 20 66 61 64 65  5f 69 6e 3a f2 6d 6f 75  |] . fade_in:.mou|
00000460  73 65 3a d6 20 66 61 64  65 5f 6f 75 74 3a ef 34  |se:. fade_out:.4|
00000470  3a fb 31 32 38 3a c8 99  22 4f 53 5f 42 79 74 65  |:.128:.."OS_Byte|
00000480  22 2c 31 31 32 2c 32 3a  db 3a c8 99 22 4f 53 5f  |",112,2:.:.."OS_|
00000490  42 79 74 65 22 2c 31 31  32 2c 31 3a db 3a ef 35  |Byte",112,1:.:.5|
000004a0  3a 2a 46 58 20 31 31 33  2c 31 0d 01 0e 22 20 ee  |:*FX 113,1..." .|
000004b0  20 85 20 87 3a d7 22 3c  49 72 6f 6e 4c 6f 72 64  | . .:."<IronLord|
000004c0  24 44 69 72 3e 2e 49 72  6f 6e 37 22 0d 01 18 05  |$Dir>.Iron7"....|
000004d0  cc 0d 01 22 d4 20 f2 77  70 72 28 22 41 73 20 74  |...". .wpr("As t|
000004e0  68 65 20 6c 61 73 74 20  6f 66 20 68 69 73 20 64  |he last of his d|
000004f0  65 6d 6f 6e 20 63 6f 68  6f 72 74 73 20 69 73 20  |emon cohorts is |
00000500  64 65 73 74 72 6f 79 65  64 20 79 6f 75 72 20 75  |destroyed your u|
00000510  6e 63 6c 65 20 75 74 74  65 72 73 20 61 20 73 63  |ncle utters a sc|
00000520  72 65 61 6d 20 6f 66 20  64 65 73 70 61 69 72 2e  |ream of despair.|
00000530  20 48 69 73 20 62 6f 64  79 20 66 61 6c 6c 73 20  | His body falls |
00000540  74 6f 20 74 68 65 20 67  72 6f 75 6e 64 2c 20 64  |to the ground, d|
00000550  65 76 6f 69 64 20 6f 66  20 6c 69 66 65 2c 20 62  |evoid of life, b|
00000560  75 74 20 66 72 6f 6d 20  73 6f 6d 65 77 68 65 72  |ut from somewher|
00000570  65 20 66 61 72 20 61 77  61 79 20 74 68 65 20 73  |e far away the s|
00000580  6f 75 6e 64 20 6f 66 20  68 69 73 20 73 63 72 65  |ound of his scre|
00000590  61 6d 69 6e 67 20 63 6f  6e 74 69 6e 75 65 73 20  |aming continues |
000005a0  2e 2e 2e 22 29 0d 01 2c  2a 20 d6 20 66 61 64 65  |...")..,* . fade|
000005b0  5f 69 6e 3a f2 6d 6f 75  73 65 3a d6 20 66 61 64  |_in:.mouse:. fad|
000005c0  65 5f 6f 75 74 3a 2a 46  58 20 31 31 33 2c 31 0d  |e_out:*FX 113,1.|
000005d0  01 36 29 20 ff 22 49 72  6f 6e 4c 6f 61 64 20 3c  |.6) ."IronLoad <|
000005e0  49 72 6f 6e 4c 6f 72 64  24 44 69 72 3e 2e 57 69  |IronLord$Dir>.Wi|
000005f0  6e 20 22 2b c3 7e 53 25  0d 01 40 13 20 2a 49 72  |n "+.~S%..@. *Ir|
00000600  6f 6e 46 61 64 65 49 6e  20 32 34 0d 01 4a 18 20  |onFadeIn 24..J. |
00000610  f2 6d 6f 75 73 65 3a 2a  49 72 6f 6e 46 61 64 65  |.mouse:*IronFade|
00000620  4f 75 74 0d 01 54 0b cd  3a 2a 46 58 32 31 0d 01  |Out..T..:*FX21..|
00000630  5e 3a eb 30 3a 87 3a d6  93 2b 26 32 31 34 3a f1  |^:.0:.:..+&214:.|
00000640  22 54 68 61 6e 6b 20 79  6f 75 20 66 6f 72 20 70  |"Thank you for p|
00000650  6c 61 79 69 6e 67 20 49  72 6f 6e 20 4c 6f 72 64  |laying Iron Lord|
00000660  2e 22 3a 2a 46 58 32 30  0d 01 68 05 e0 0d 01 72  |.":*FX20..h....r|
00000670  05 3a 0d 01 7c 0b dd 20  f2 6c 61 62 79 0d 01 86  |.:..|.. .laby...|
00000680  31 21 70 61 6c 3d 30 3a  70 61 6c 21 34 3d 30 3a  |1!pal=0:pal!4=0:|
00000690  f7 20 8d 64 46 42 3a e3  20 42 25 3d 32 34 20 b8  |. .dFB:. B%=24 .|
000006a0  20 34 37 3a f3 20 70 61  6c 3f 42 25 3a ed 0d 01  | 47:. pal?B%:...|
000006b0  90 84 c8 99 22 4f 53 5f  42 79 74 65 22 2c 31 31  |...."OS_Byte",11|
000006c0  32 2c 31 3a c8 99 22 4f  53 5f 42 79 74 65 22 2c  |2,1:.."OS_Byte",|
000006d0  31 31 33 2c 31 3a da 3a  d6 20 75 6e 70 61 63 6b  |113,1:.:. unpack|
000006e0  3a e6 20 31 31 3a c8 93  20 c8 90 20 31 32 32 34  |:. 11:.. .. 1224|
000006f0  2c 33 32 2c 32 38 2c 37  33 36 3a e6 20 31 35 3a  |,32,28,736:. 15:|
00000700  c8 93 20 c8 90 20 31 32  33 32 2c 34 30 2c 31 32  |.. .. 1232,40,12|
00000710  2c 21 65 6e 65 72 67 79  3a 41 25 3d 32 30 30 3a  |,!energy:A%=200:|
00000720  42 25 3d 53 25 3a 43 25  3d 54 25 3a d6 20 63 6f  |B%=S%:C%=T%:. co|
00000730  70 79 0d 01 9a ae ef 32  36 3a e7 20 21 6b 65 79  |py.....26:. !key|
00000740  73 3c 3e 30 20 e3 20 49  25 3d 31 20 b8 20 21 6b  |s<>0 . I%=1 . !k|
00000750  65 79 73 3a c8 99 22 4f  53 5f 53 70 72 69 74 65  |eys:.."OS_Sprite|
00000760  4f 70 22 2c 32 39 30 2c  54 53 50 25 2c 22 74 33  |Op",290,TSP%,"t3|
00000770  38 22 2c 49 25 2a 33 32  2d 33 32 2c 33 32 3a ed  |8",I%*32-32,32:.|
00000780  3a c8 99 22 4f 53 5f 42  79 74 65 22 2c 31 31 32  |:.."OS_Byte",112|
00000790  2c 32 3a e3 20 49 25 3d  31 20 b8 20 21 6b 65 79  |,2:. I%=1 . !key|
000007a0  73 3a c8 99 22 4f 53 5f  53 70 72 69 74 65 4f 70  |s:.."OS_SpriteOp|
000007b0  22 2c 32 39 30 2c 54 53  50 25 2c 22 74 33 38 22  |",290,TSP%,"t38"|
000007c0  2c 49 25 2a 33 32 2d 33  32 2c 33 32 3a ed 3a c8  |,I%*32-32,32:.:.|
000007d0  99 22 4f 53 5f 42 79 74  65 22 2c 31 31 32 2c 31  |."OS_Byte",112,1|
000007e0  0d 01 a4 62 ef 32 34 2c  34 34 34 3b 32 36 38 3b  |...b.24,444;268;|
000007f0  37 36 30 3b 35 36 34 3b  3a c8 91 20 33 38 34 2c  |760;564;:.. 384,|
00000800  32 36 38 3a c8 99 22 4f  53 5f 43 6c 61 69 6d 22  |268:.."OS_Claim"|
00000810  2c 26 31 30 2c 65 6e 65  76 65 6e 74 2c 30 3a 56  |,&10,enevent,0:V|
00000820  43 25 3d 31 3a c8 a0 32  3a c8 a1 31 2c 22 49 72  |C%=1:..2:..1,"Ir|
00000830  6f 6e 45 66 66 65 63 74  2d 46 6f 6f 74 73 74 65  |onEffect-Footste|
00000840  70 22 0d 01 ae 94 f5 3a  e3 20 43 25 3d 30 20 b8  |p".....:. C%=0 .|
00000850  20 35 3a 3f 28 70 61 6c  2b 43 25 2a 33 2b 36 29  | 5:?(pal+C%*3+6)|
00000860  3d 28 28 50 4c 25 28 21  6c 65 76 65 6c 2c 43 25  |=((PL%(!level,C%|
00000870  29 3e 3e 34 29 20 80 20  32 34 30 29 2b 31 36 3a  |)>>4) . 240)+16:|
00000880  3f 28 70 61 6c 2b 43 25  2a 33 2b 37 29 3d 28 50  |?(pal+C%*3+7)=(P|
00000890  4c 25 28 21 6c 65 76 65  6c 2c 43 25 29 20 80 20  |L%(!level,C%) . |
000008a0  32 34 30 29 2b 31 36 3a  3f 28 70 61 6c 2b 43 25  |240)+16:?(pal+C%|
000008b0  2a 33 2b 38 29 3d 28 28  50 4c 25 28 21 6c 65 76  |*3+8)=((PL%(!lev|
000008c0  65 6c 2c 43 25 29 3c 3c  34 29 20 80 20 32 34 30  |el,C%)<<4) . 240|
000008d0  29 2b 31 36 3a ed 0d 01  b8 19 52 25 3d ba 28 4d  |)+16:.....R%=.(M|
000008e0  6f 76 65 4c 61 62 79 29  3a 2a 46 58 20 32 31 0d  |oveLaby):*FX 21.|
000008f0  01 c2 0c 2a 46 58 20 31  33 2c 34 0d 01 cc 2d e7  |...*FX 13,4...-.|
00000900  20 52 25 3d 30 20 21 6c  65 76 65 6c 2d 3d 31 3a  | R%=0 !level-=1:|
00000910  21 74 61 62 61 64 64 3d  54 41 42 25 2b 54 41 25  |!tabadd=TAB%+TA%|
00000920  28 21 6c 65 76 65 6c 29  0d 01 d6 32 e7 20 52 25  |(!level)...2. R%|
00000930  20 80 20 31 20 21 6c 65  76 65 6c 2b 3d 31 3a 21  | . 1 !level+=1:!|
00000940  74 61 62 61 64 64 3d 54  41 42 25 2b 32 34 2b 26  |tabadd=TAB%+24+&|
00000950  35 38 30 2a 21 6c 65 76  65 6c 0d 01 e0 11 fd 20  |580*!level..... |
00000960  52 25 3d 32 20 84 20 52  25 3d 34 0d 01 ea 42 c8  |R%=2 . R%=4...B.|
00000970  91 20 30 2c 31 32 38 3a  ef 20 32 34 2c 30 3b 30  |. 0,128:. 24,0;0|
00000980  3b 31 32 37 39 3b 37 39  39 3b 3a c8 99 22 4f 53  |;1279;799;:.."OS|
00000990  5f 52 65 6c 65 61 73 65  22 2c 26 31 30 2c 65 6e  |_Release",&10,en|
000009a0  65 76 65 6e 74 2c 30 3a  56 43 25 3d 30 0d 01 f4  |event,0:VC%=0...|
000009b0  1b e7 20 52 25 3d 34 20  f7 20 8d 54 6a 43 3a 44  |.. R%=4 . .TjC:D|
000009c0  45 41 44 25 3d b9 3a e1  0d 01 fe 05 3a 0d 02 08  |EAD%=.:.....:...|
000009d0  8f c8 a0 38 3a c8 a1 31  2c 22 50 65 72 63 75 73  |...8:..1,"Percus|
000009e0  73 69 6f 6e 2d 4d 65 64  69 75 6d 22 3a c8 a1 32  |sion-Medium":..2|
000009f0  2c 22 49 72 6f 6e 45 66  66 65 63 74 2d 48 75 72  |,"IronEffect-Hur|
00000a00  74 22 3a c8 a1 33 2c 22  49 72 6f 6e 45 66 66 65  |t":..3,"IronEffe|
00000a10  63 74 2d 48 75 72 74 22  3a c8 a1 34 2c 22 49 72  |ct-Hurt":..4,"Ir|
00000a20  6f 6e 45 66 66 65 63 74  2d 53 70 6c 61 74 22 3a  |onEffect-Splat":|
00000a30  c8 a1 35 2c 22 50 65 72  63 75 73 73 69 6f 6e 2d  |..5,"Percussion-|
00000a40  53 6f 66 74 22 3a c8 a1  36 2c 22 49 72 6f 6e 45  |Soft":..6,"IronE|
00000a50  66 66 65 63 74 2d 53 70  6c 61 74 22 0d 02 12 40  |ffect-Splat"...@|
00000a60  ef 34 3a fb 31 32 38 3a  c8 99 22 4f 53 5f 42 79  |.4:.128:.."OS_By|
00000a70  74 65 22 2c 31 31 32 2c  32 3a db 3a c8 99 22 4f  |te",112,2:.:.."O|
00000a80  53 5f 42 79 74 65 22 2c  31 31 32 2c 31 3a db 3a  |S_Byte",112,1:.:|
00000a90  ef 35 3a 2a 46 58 20 31  31 33 2c 31 0d 02 1c 3d  |.5:*FX 113,1...=|
00000aa0  f7 20 8d 64 5a 42 3a e3  20 42 25 3d 30 20 b8 20  |. .dZB:. B%=0 . |
00000ab0  34 37 3a f3 20 70 61 6c  3f 42 25 3a ed 3a 41 25  |47:. pal?B%:.:A%|
00000ac0  3d 32 30 30 3a 42 25 3d  42 53 43 25 3a 43 25 3d  |=200:B%=BSC%:C%=|
00000ad0  53 25 3a d6 20 63 6f 70  79 0d 02 26 5e e7 20 21  |S%:. copy..&^. !|
00000ae0  6c 65 76 65 6c 3c 3e 4d  4c 25 20 ff 22 49 72 6f  |level<>ML% ."Iro|
00000af0  6e 4c 6f 61 64 20 3c 49  72 6f 6e 4c 6f 72 64 24  |nLoad <IronLord$|
00000b00  44 69 72 3e 2e 4c 61 62  79 53 70 72 32 5f 22 2b  |Dir>.LabySpr2_"+|
00000b10  c3 28 21 6c 65 76 65 6c  29 2b 22 20 22 2b c3 7e  |.(!level)+" "+.~|
00000b20  28 47 53 50 25 2b 26 33  43 31 38 29 3a 4d 4c 25  |(GSP%+&3C18):ML%|
00000b30  3d 21 6c 65 76 65 6c 0d  02 30 45 c8 99 22 4f 53  |=!level..0E.."OS|
00000b40  5f 53 70 72 69 74 65 4f  70 22 2c 32 39 30 2c 47  |_SpriteOp",290,G|
00000b50  53 50 25 2c 22 34 36 22  2c 34 38 30 2c 35 31 32  |SP%,"46",480,512|
00000b60  3a 41 25 3d 32 30 30 3a  42 25 3d 53 25 3a 43 25  |:A%=200:B%=S%:C%|
00000b70  3d 42 53 43 25 3a d6 20  63 6f 70 79 0d 02 3a 3a  |=BSC%:. copy..::|
00000b80  e6 31 31 3a c8 93 20 c8  90 20 32 37 32 2c 31 36  |.11:.. .. 272,16|
00000b90  2c 37 33 36 2c 32 38 3a  e6 32 3a c8 93 20 c8 90  |,736,28:.2:.. ..|
00000ba0  20 32 38 30 2c 32 34 2c  21 65 6e 65 72 67 79 2c  | 280,24,!energy,|
00000bb0  31 32 3a e6 31 31 0d 02  44 a7 50 25 3d 61 6c 69  |12:.11..D.P%=ali|
00000bc0  65 6e 73 3a 51 25 3d 61  76 65 6c 74 61 62 3a e3  |ens:Q%=aveltab:.|
00000bd0  20 49 25 3d 30 20 b8 20  33 2b 21 6c 65 76 65 6c  | I%=0 . 3+!level|
00000be0  3a 21 50 25 3d b3 28 38  30 30 29 2b 32 30 30 3a  |:!P%=.(800)+200:|
00000bf0  50 25 21 34 3d b3 28 33  30 30 29 2b 34 30 30 3a  |P%!4=.(300)+400:|
00000c00  50 25 21 38 3d 32 30 34  3a c8 99 22 4f 53 5f 53  |P%!8=204:.."OS_S|
00000c10  70 72 69 74 65 4f 70 22  2c 32 39 30 2c 47 53 50  |priteOp",290,GSP|
00000c20  25 2c 22 35 31 22 2c 21  50 25 2c 50 25 21 34 2c  |%,"51",!P%,P%!4,|
00000c30  38 3a 56 25 3d b3 28 26  31 38 30 29 3a e7 20 21  |8:V%=.(&180):. !|
00000c40  50 25 3c 36 34 30 20 56  25 2b 3d 26 35 30 30 20  |P%<640 V%+=&500 |
00000c50  8b 20 56 25 3d 2d 26 35  30 30 2d 56 25 0d 02 4e  |. V%=-&500-V%..N|
00000c60  2f 21 51 25 3d 56 25 3a  56 25 3d b3 28 26 32 30  |/!Q%=V%:V%=.(&20|
00000c70  29 3a e7 20 b3 28 32 29  3d 31 20 56 25 2b 3d 26  |):. .(2)=1 V%+=&|
00000c80  35 30 20 8b 20 56 25 2d  3d 26 35 30 0d 02 58 36  |50 . V%-=&50..X6|
00000c90  51 25 21 34 3d 56 25 3a  50 25 2b 3d 31 32 3a 51  |Q%!4=V%:P%+=12:Q|
00000ca0  25 2b 3d 38 3a ed 3a e3  20 49 25 3d 30 20 b8 20  |%+=8:.:. I%=0 . |
00000cb0  38 20 88 20 34 3a 61 66  6c 61 67 21 49 25 3d 30  |8 . 4:aflag!I%=0|
00000cc0  3a ed 0d 02 62 bf 21 6d  61 6e 74 3d 36 30 30 3a  |:...b.!mant=600:|
00000cd0  6d 61 6e 74 21 38 3d 38  3a 21 6d 61 6e 62 3d 36  |mant!8=8:!manb=6|
00000ce0  30 30 3a 6d 61 6e 62 21  38 3d 32 38 3a 21 64 72  |00:manb!8=28:!dr|
00000cf0  6f 70 3d 30 3a 21 73 68  6f 74 3d 30 3a e3 20 49  |op=0:!shot=0:. I|
00000d00  25 3d 30 20 b8 20 39 36  20 88 20 31 32 3a 62 6f  |%=0 . 96 . 12:bo|
00000d10  6d 62 73 21 49 25 3d 30  3a ed 3a 21 66 69 66 6c  |mbs!I%=0:.:!fifl|
00000d20  61 67 3d 30 3a 65 79 65  73 21 38 3d 31 38 38 3a  |ag=0:eyes!8=188:|
00000d30  21 65 79 65 64 65 6c 3d  31 32 35 3a 21 64 72 6f  |!eyedel=125:!dro|
00000d40  70 64 65 6c 3d 32 30 30  3a e7 20 21 6c 65 76 65  |pdel=200:. !leve|
00000d50  6c 3d 31 20 84 20 21 6c  65 76 65 6c 3d 32 20 84  |l=1 . !level=2 .|
00000d60  20 21 6c 65 76 65 6c 3d  35 20 65 79 65 73 21 34  | !level=5 eyes!4|
00000d70  3d 36 39 36 20 8b 20 65  79 65 73 21 34 3d 36 36  |=696 . eyes!4=66|
00000d80  34 0d 02 6c a4 c8 99 22  4f 53 5f 53 70 72 69 74  |4..l..."OS_Sprit|
00000d90  65 4f 70 22 2c 32 39 30  2c 47 53 50 25 2c 22 32  |eOp",290,GSP%,"2|
00000da0  22 2c 36 30 30 2c 31 38  30 2c 38 3a c8 99 22 4f  |",600,180,8:.."O|
00000db0  53 5f 53 70 72 69 74 65  4f 70 22 2c 32 39 30 2c  |S_SpriteOp",290,|
00000dc0  47 53 50 25 2c 22 37 22  2c 36 30 30 2c 31 30 30  |GSP%,"7",600,100|
00000dd0  2c 38 3a 43 25 3d 54 25  3a d6 20 63 6f 70 79 3a  |,8:C%=T%:. copy:|
00000de0  d6 20 66 61 64 65 5f 69  6e 3a c8 99 22 4f 53 5f  |. fade_in:.."OS_|
00000df0  43 6c 61 69 6d 22 2c 26  31 30 2c 66 6c 69 70 65  |Claim",&10,flipe|
00000e00  76 65 6e 74 2c 30 3a 56  43 25 3d 32 3a 21 62 61  |vent,0:VC%=2:!ba|
00000e10  6e 6b 3d 32 3a 52 25 3d  ba 28 7a 61 70 29 3a 2a  |nk=2:R%=.(zap):*|
00000e20  46 58 20 32 31 0d 02 76  0c 2a 46 58 20 31 33 2c  |FX 21..v.*FX 13,|
00000e30  34 0d 02 80 40 c8 99 22  4f 53 5f 52 65 6c 65 61  |4...@.."OS_Relea|
00000e40  73 65 22 2c 26 31 30 2c  66 6c 69 70 65 76 65 6e  |se",&10,flipeven|
00000e50  74 2c 30 3a 56 43 25 3d  30 3a e7 20 21 62 61 6e  |t,0:VC%=0:. !ban|
00000e60  6b 3c 30 20 21 62 61 6e  6b 3d ac 20 21 62 61 6e  |k<0 !bank=. !ban|
00000e70  6b 0d 02 8a 7e d6 20 66  61 64 65 5f 6f 75 74 3a  |k...~. fade_out:|
00000e80  3f 28 6c 65 76 74 61 62  2b 21 6c 65 76 65 6c 29  |?(levtab+!level)|
00000e90  3d 31 3a 21 6c 65 76 65  6c 2b 3d 31 3a 21 74 61  |=1:!level+=1:!ta|
00000ea0  62 61 64 64 3d 54 41 42  25 2b 32 34 2b 26 35 38  |badd=TAB%+24+&58|
00000eb0  30 2a 21 6c 65 76 65 6c  3a 21 73 77 6f 72 64 3d  |0*!level:!sword=|
00000ec0  30 3a f7 20 8d 54 74 43  3a c8 99 22 4f 53 5f 42  |0:. .TtC:.."OS_B|
00000ed0  79 74 65 22 2c 31 31 32  2c 21 62 61 6e 6b 20 82  |yte",112,!bank .|
00000ee0  20 33 3a e7 20 52 25 20  44 45 41 44 25 3d b9 0d  | 3:. R% DEAD%=..|
00000ef0  02 94 05 e1 0d 02 9e 05  3a 0d 02 a8 5f dc 20 26  |........:..._. &|
00000f00  30 34 36 2c 26 30 36 38  2c 26 30 38 41 2c 26 30  |046,&068,&08A,&0|
00000f10  41 43 2c 26 36 41 38 2c  26 30 32 34 2c 26 30 36  |AC,&6A8,&024,&06|
00000f20  34 2c 26 30 38 36 2c 26  30 41 38 2c 26 30 43 41  |4,&086,&0A8,&0CA|
00000f30  2c 26 36 41 38 2c 26 30  34 32 2c 26 37 31 33 2c  |,&6A8,&042,&713,|
00000f40  26 38 33 35 2c 26 41 36  38 2c 26 42 39 41 2c 26  |&835,&A68,&B9A,&|
00000f50  42 39 41 2c 26 34 30 32  0d 02 b2 5f dc 20 26 37  |B9A,&402..._. &7|
00000f60  30 30 2c 26 39 32 32 2c  26 41 35 35 2c 26 43 38  |00,&922,&A55,&C8|
00000f70  38 2c 26 42 39 41 2c 26  34 30 30 2c 26 36 34 30  |8,&B9A,&400,&640|
00000f80  2c 26 39 36 32 2c 26 42  39 34 2c 26 45 43 38 2c  |,&962,&B94,&EC8,|
00000f90  26 42 39 41 2c 26 35 32  31 2c 26 35 35 35 2c 26  |&B9A,&521,&555,&|
00000fa0  37 37 37 2c 26 38 38 38  2c 26 41 41 41 2c 26 42  |777,&888,&AAA,&B|
00000fb0  39 41 2c 26 33 33 33 0d  02 bc 05 3a 0d 02 c6 5b  |9A,&333....:...[|
00000fc0  dc 20 31 31 32 2c 38 30  2c 30 2c 31 34 34 2c 31  |. 112,80,0,144,1|
00000fd0  31 32 2c 34 38 2c 31 37  36 2c 31 34 34 2c 38 30  |12,48,176,144,80|
00000fe0  2c 32 30 38 2c 31 37 36  2c 31 31 32 2c 32 34 30  |,208,176,112,240|
00000ff0  2c 32 30 38 2c 31 34 34  2c 31 37 36 2c 31 37 36  |,208,144,176,176|
00001000  2c 31 37 36 2c 31 31 32  2c 31 31 32 2c 31 31 32  |,176,112,112,112|
00001010  2c 38 30 2c 30 2c 30 0d  02 d0 05 3a 0d 02 da a3  |,80,0,0....:....|
00001020  dc 20 30 2c 30 2c 30 2c  34 38 2c 30 2c 30 2c 38  |. 0,0,0,48,0,0,8|
00001030  30 2c 30 2c 30 2c 31 31  32 2c 34 38 2c 30 2c 31  |0,0,0,112,48,0,1|
00001040  34 34 2c 38 30 2c 34 38  2c 31 37 36 2c 31 31 32  |44,80,48,176,112|
00001050  2c 38 30 2c 31 31 32 2c  38 30 2c 30 2c 31 34 34  |,80,112,80,0,144|
00001060  2c 31 31 32 2c 30 2c 31  37 36 2c 31 34 34 2c 30  |,112,0,176,144,0|
00001070  2c 32 30 38 2c 31 37 36  2c 30 2c 32 30 38 2c 31  |,208,176,0,208,1|
00001080  34 34 2c 31 31 32 2c 32  30 38 2c 31 37 36 2c 31  |44,112,208,176,1|
00001090  34 34 2c 38 30 2c 38 30  2c 38 30 2c 31 31 32 2c  |44,80,80,80,112,|
000010a0  31 31 32 2c 31 31 32 2c  31 34 34 2c 31 34 34 2c  |112,112,144,144,|
000010b0  31 34 34 2c 32 34 30 2c  32 34 30 2c 32 34 30 0d  |144,240,240,240.|
000010c0  02 e4 05 3a 0d 02 ee 15  dd 20 f2 6d 6f 75 73 65  |...:..... .mouse|
000010d0  3a 2a 46 58 20 32 31 2c  39 0d 02 f8 34 f5 3a c8  |:*FX 21,9...4.:.|
000010e0  97 20 4d 58 25 2c 4d 59  25 2c 42 25 3a fd 20 42  |. MX%,MY%,B%:. B|
000010f0  25 3d 30 3a f5 3a c8 97  20 4d 58 25 2c 4d 59 25  |%=0:.:.. MX%,MY%|
00001100  2c 42 25 3a fd 20 42 25  3c 3e 30 3a e1 0d 03 02  |,B%:. B%<>0:....|
00001110  05 3a 0d 03 0c 18 dd 20  f2 72 65 63 74 28 58 25  |.:..... .rect(X%|
00001120  2c 59 25 2c 57 25 2c 44  25 29 0d 03 16 65 f3 20  |,Y%,W%,D%)...e. |
00001130  4e 25 3a e3 20 4c 25 3d  31 20 b8 20 4e 25 3a f3  |N%:. L%=1 . N%:.|
00001140  20 43 25 3a e6 20 43 25  3a c8 93 20 58 25 2c 59  | C%:. C%:.. X%,Y|
00001150  25 2c 57 25 2c 44 25 3a  58 25 2b 3d 34 3a 59 25  |%,W%,D%:X%+=4:Y%|
00001160  2b 3d 34 3a 57 25 2d 3d  38 3a 44 25 2d 3d 38 3a  |+=4:W%-=8:D%-=8:|
00001170  ed 3a f3 20 43 25 3a e6  20 43 25 3a c8 93 20 c8  |.:. C%:. C%:.. .|
00001180  90 20 58 25 2c 59 25 2c  57 25 2c 44 25 3a e1 0d  |. X%,Y%,W%,D%:..|
00001190  03 20 05 3a 0d 03 2a 12  dc 20 33 2c 39 2c 31 30  |. .:..*.. 3,9,10|
000011a0  2c 31 31 2c 31 32 0d 03  34 11 dc 20 33 2c 34 2c  |,11,12..4.. 3,4,|
000011b0  35 2c 31 30 2c 31 31 0d  03 3e 05 3a 0d 03 48 24  |5,10,11..>.:..H$|
000011c0  dd 20 f2 77 70 72 28 53  24 29 3a ea 20 54 24 2c  |. .wpr(S$):. T$,|
000011d0  50 25 2c 59 25 3a 54 24  3d 53 24 3a 59 25 3d 30  |P%,Y%:T$=S$:Y%=0|
000011e0  0d 03 52 05 f5 0d 03 5c  10 20 e7 20 a9 54 24 3e  |..R....\. . .T$>|
000011f0  57 57 25 20 8c 0d 03 66  28 20 20 50 25 3d 57 57  |WW% ...f(  P%=WW|
00001200  25 2b 31 3a c8 95 20 c1  54 24 2c 50 25 2c 31 29  |%+1:.. .T$,P%,1)|
00001210  3c 3e 22 20 22 3a 50 25  2d 3d 31 3a ce 0d 03 70  |<>" ":P%-=1:...p|
00001220  16 20 20 54 24 3d c2 54  24 2c a9 28 54 24 29 2d  |.  T$=.T$,.(T$)-|
00001230  50 25 29 0d 03 7a 06 20  cc 0d 03 84 0b 20 20 54  |P%)..z. .....  T|
00001240  24 3d 22 22 0d 03 8e 06  20 cd 0d 03 98 0a 20 59  |$="".... ..... Y|
00001250  25 2b 3d 31 0d 03 a2 0b  fd 20 54 24 3d 22 22 0d  |%+=1..... T$="".|
00001260  03 ac 11 59 25 3d 57 59  43 25 2b 59 25 2a 31 38  |...Y%=WYC%+Y%*18|
00001270  0d 03 b6 0b f5 3a 54 24  3d 22 22 0d 03 c0 10 20  |.....:T$="".... |
00001280  e7 20 a9 53 24 3e 57 57  25 20 8c 0d 03 ca 28 20  |. .S$>WW% ....( |
00001290  20 50 25 3d 57 57 25 2b  31 3a c8 95 20 c1 53 24  | P%=WW%+1:.. .S$|
000012a0  2c 50 25 2c 31 29 3c 3e  22 20 22 3a 50 25 2d 3d  |,P%,1)<>" ":P%-=|
000012b0  31 3a ce 0d 03 d4 23 20  20 54 24 3d c2 53 24 2c  |1:....#  T$=.S$,|
000012c0  a9 28 53 24 29 2d 50 25  29 3a 53 24 3d c0 53 24  |.(S$)-P%):S$=.S$|
000012d0  2c 50 25 2d 31 29 0d 03  de 06 20 cd 0d 03 e8 26  |,P%-1).... ....&|
000012e0  20 ec 20 57 58 43 25 2d  31 36 2a a9 53 24 2c 59  | . WXC%-16*.S$,Y|
000012f0  25 3a f1 53 24 3a 59 25  2d 3d 33 36 3a 53 24 3d  |%:.S$:Y%-=36:S$=|
00001300  54 24 0d 03 f2 0d fd 20  53 24 3d 22 22 3a e1 0d  |T$..... S$="":..|
00001310  03 fc 05 3a 0d 04 06 0a  dd 20 f2 61 73 6d 0d 04  |...:..... .asm..|
00001320  10 20 73 70 3d 31 33 3a  6c 69 6e 6b 3d 31 34 3a  |. sp=13:link=14:|
00001330  4f 53 5f 57 72 69 74 65  49 3d 26 31 30 30 0d 04  |OS_WriteI=&100..|
00001340  1a 12 e3 20 6f 25 3d 30  20 b8 20 32 20 88 20 32  |... o%=0 . 2 . 2|
00001350  0d 04 24 0c 50 25 3d 63  6f 64 65 25 0d 04 2e 0b  |..$.P%=code%....|
00001360  5b 4f 50 54 20 6f 25 0d  04 38 0c 2e 66 61 64 65  |[OPT o%..8..fade|
00001370  5f 69 6e 0d 04 42 22 53  54 4d 46 44 20 28 73 70  |_in..B"STMFD (sp|
00001380  29 21 2c 7b 6c 69 6e 6b  7d 3a 4d 4f 56 20 52 35  |)!,{link}:MOV R5|
00001390  2c 23 32 34 30 0d 04 4c  3f 2e 66 64 69 6c 70 20  |,#240..L?.fdilp |
000013a0  4d 4f 56 20 52 33 2c 23  32 3a 42 4c 20 64 65 6c  |MOV R3,#2:BL del|
000013b0  61 79 3a 42 4c 20 63 68  70 61 6c 3a 53 55 42 53  |ay:BL chpal:SUBS|
000013c0  20 52 35 2c 52 35 2c 23  31 36 3a 42 50 4c 20 66  | R5,R5,#16:BPL f|
000013d0  64 69 6c 70 0d 04 56 14  4c 44 4d 46 44 20 28 73  |dilp..V.LDMFD (s|
000013e0  70 29 21 2c 7b 50 43 7d  0d 04 60 0d 2e 66 61 64  |p)!,{PC}..`..fad|
000013f0  65 5f 6f 75 74 0d 04 6a  20 53 54 4d 46 44 20 28  |e_out..j STMFD (|
00001400  73 70 29 21 2c 7b 6c 69  6e 6b 7d 3a 4d 4f 56 20  |sp)!,{link}:MOV |
00001410  52 35 2c 23 30 0d 04 74  4a 2e 66 64 6f 6c 70 20  |R5,#0..tJ.fdolp |
00001420  4d 4f 56 20 52 33 2c 23  32 3a 42 4c 20 64 65 6c  |MOV R3,#2:BL del|
00001430  61 79 3a 42 4c 20 63 68  70 61 6c 3a 41 44 44 20  |ay:BL chpal:ADD |
00001440  52 35 2c 52 35 2c 23 31  36 3a 43 4d 50 20 52 35  |R5,R5,#16:CMP R5|
00001450  2c 23 32 35 36 3a 42 4e  45 20 66 64 6f 6c 70 0d  |,#256:BNE fdolp.|
00001460  04 7e 14 4c 44 4d 46 44  20 28 73 70 29 21 2c 7b  |.~.LDMFD (sp)!,{|
00001470  50 43 7d 0d 04 88 15 2e  70 61 6c 20 45 51 55 53  |PC}.....pal EQUS|
00001480  20 c4 34 38 2c bd 30 29  0d 04 92 1b 2e 70 62 6c  | .48,.0).....pbl|
00001490  6b 20 45 51 55 44 20 26  31 30 30 30 3a 45 51 55  |k EQUD &1000:EQU|
000014a0  42 20 30 0d 04 9c 1d 5c  20 57 61 69 74 20 66 6f  |B 0....\ Wait fo|
000014b0  72 20 52 33 20 66 72 61  6d 65 20 73 79 6e 63 73  |r R3 frame syncs|
000014c0  0d 04 a6 15 2e 64 65 6c  61 79 20 4d 4f 56 20 52  |.....delay MOV R|
000014d0  30 2c 23 31 39 0d 04 b0  3c 2e 64 65 6c 6c 70 20  |0,#19...<.dellp |
000014e0  53 57 49 20 22 4f 53 5f  42 79 74 65 22 3a 53 55  |SWI "OS_Byte":SU|
000014f0  42 53 20 52 33 2c 52 33  2c 23 31 3a 42 4e 45 20  |BS R3,R3,#1:BNE |
00001500  64 65 6c 6c 70 3a 4d 4f  56 20 50 43 2c 6c 69 6e  |dellp:MOV PC,lin|
00001510  6b 0d 04 ba 11 5c 20 53  65 74 20 70 61 6c 65 74  |k....\ Set palet|
00001520  74 65 0d 04 c4 3a 2e 63  68 70 61 6c 20 4d 4f 56  |te...:.chpal MOV|
00001530  20 52 30 2c 23 31 32 3a  41 44 52 20 52 31 2c 70  | R0,#12:ADR R1,p|
00001540  62 6c 6b 3a 4d 4f 56 20  52 32 2c 23 31 35 3a 41  |blk:MOV R2,#15:A|
00001550  44 52 20 52 33 2c 70 61  6c 2b 34 38 0d 04 ce fd  |DR R3,pal+48....|
00001560  2e 63 68 70 6c 70 20 53  54 52 42 20 52 32 2c 5b  |.chplp STRB R2,[|
00001570  52 31 5d 3a 4c 44 52 42  20 52 34 2c 5b 52 33 2c  |R1]:LDRB R4,[R3,|
00001580  23 2d 31 5d 21 3a 53 55  42 53 20 52 34 2c 52 34  |#-1]!:SUBS R4,R4|
00001590  2c 52 35 3a 4d 4f 56 4d  49 20 52 34 2c 23 30 3a  |,R5:MOVMI R4,#0:|
000015a0  53 54 52 42 20 52 34 2c  5b 52 31 2c 23 34 5d 3a  |STRB R4,[R1,#4]:|
000015b0  4c 44 52 42 20 52 34 2c  5b 52 33 2c 23 2d 31 5d  |LDRB R4,[R3,#-1]|
000015c0  21 3a 53 55 42 53 20 52  34 2c 52 34 2c 52 35 3a  |!:SUBS R4,R4,R5:|
000015d0  4d 4f 56 4d 49 20 52 34  2c 23 30 3a 53 54 52 42  |MOVMI R4,#0:STRB|
000015e0  20 52 34 2c 5b 52 31 2c  23 33 5d 3a 4c 44 52 42  | R4,[R1,#3]:LDRB|
000015f0  20 52 34 2c 5b 52 33 2c  23 2d 31 5d 21 3a 53 55  | R4,[R3,#-1]!:SU|
00001600  42 53 20 52 34 2c 52 34  2c 52 35 3a 4d 4f 56 4d  |BS R4,R4,R5:MOVM|
00001610  49 20 52 34 2c 23 30 3a  53 54 52 42 20 52 34 2c  |I R4,#0:STRB R4,|
00001620  5b 52 31 2c 23 32 5d 3a  53 57 49 20 22 4f 53 5f  |[R1,#2]:SWI "OS_|
00001630  57 6f 72 64 22 3a 53 55  42 53 20 52 32 2c 52 32  |Word":SUBS R2,R2|
00001640  2c 23 31 3a 42 50 4c 20  63 68 70 6c 70 3a 4d 4f  |,#1:BPL chplp:MO|
00001650  56 20 50 43 2c 6c 69 6e  6b 0d 04 d8 11 5c 20 43  |V PC,link....\ C|
00001660  6f 70 79 20 73 63 72 65  65 6e 0d 04 e2 24 2e 7a  |opy screen...$.z|
00001670  61 70 63 6f 70 79 20 4d  4f 56 20 52 30 2c 23 31  |apcopy MOV R0,#1|
00001680  37 36 3a 4c 44 52 20 52  31 2c 66 72 6f 6d 0d 04  |76:LDR R1,from..|
00001690  ec 09 2e 63 6f 70 79 0d  04 f6 be 4c 44 4d 49 41  |...copy....LDMIA|
000016a0  20 52 31 21 2c 7b 52 33  2d 52 31 32 7d 3a 53 54  | R1!,{R3-R12}:ST|
000016b0  4d 49 41 20 52 32 21 2c  7b 52 33 2d 52 31 32 7d  |MIA R2!,{R3-R12}|
000016c0  3a 4c 44 4d 49 41 20 52  31 21 2c 7b 52 33 2d 52  |:LDMIA R1!,{R3-R|
000016d0  31 32 7d 3a 53 54 4d 49  41 20 52 32 21 2c 7b 52  |12}:STMIA R2!,{R|
000016e0  33 2d 52 31 32 7d 3a 4c  44 4d 49 41 20 52 31 21  |3-R12}:LDMIA R1!|
000016f0  2c 7b 52 33 2d 52 31 32  7d 3a 53 54 4d 49 41 20  |,{R3-R12}:STMIA |
00001700  52 32 21 2c 7b 52 33 2d  52 31 32 7d 3a 4c 44 4d  |R2!,{R3-R12}:LDM|
00001710  49 41 20 52 31 21 2c 7b  52 33 2d 52 31 32 7d 3a  |IA R1!,{R3-R12}:|
00001720  53 54 4d 49 41 20 52 32  21 2c 7b 52 33 2d 52 31  |STMIA R2!,{R3-R1|
00001730  32 7d 3a 53 55 42 53 20  52 30 2c 52 30 2c 23 31  |2}:SUBS R0,R0,#1|
00001740  3a 42 4e 45 20 63 6f 70  79 3a 4d 4f 56 20 50 43  |:BNE copy:MOV PC|
00001750  2c 6c 69 6e 6b 0d 05 00  05 5c 0d 05 0a 13 2e 66  |,link....\.....f|
00001760  72 6f 6d 20 45 51 55 44  20 42 53 43 25 0d 05 14  |rom EQUD BSC%...|
00001770  05 5c 0d 05 1e 3e 2e 65  6e 65 76 65 6e 74 20 54  |.\...>.enevent T|
00001780  45 51 20 52 30 2c 23 34  3a 4d 4f 56 4e 45 53 20  |EQ R0,#4:MOVNES |
00001790  50 43 2c 6c 69 6e 6b 3a  53 54 4d 46 44 20 28 73  |PC,link:STMFD (s|
000017a0  70 29 21 2c 7b 52 30 2d  52 33 2c 6c 69 6e 6b 7d  |p)!,{R0-R3,link}|
000017b0  0d 05 28 5c 4c 44 52 20  52 30 2c 65 6e 65 72 63  |..(\LDR R0,enerc|
000017c0  74 3a 43 4d 50 20 52 30  2c 23 30 3a 42 50 4c 20  |t:CMP R0,#0:BPL |
000017d0  64 65 63 69 6e 67 3a 41  44 44 53 20 52 30 2c 52  |decing:ADDS R0,R|
000017e0  30 2c 23 31 3a 53 54 52  20 52 30 2c 65 6e 65 72  |0,#1:STR R0,ener|
000017f0  63 74 3a 4c 44 4d 50 4c  46 44 20 28 73 70 29 21  |ct:LDMPLFD (sp)!|
00001800  2c 7b 52 30 2d 52 33 2c  50 43 7d 5e 0d 05 32 52  |,{R0-R3,PC}^..2R|
00001810  4c 44 52 20 52 30 2c 65  6e 65 72 67 79 3a 41 44  |LDR R0,energy:AD|
00001820  44 20 52 30 2c 52 30 2c  23 34 3a 43 4d 50 20 52  |D R0,R0,#4:CMP R|
00001830  30 2c 23 37 32 34 3a 4c  44 4d 45 51 46 44 20 28  |0,#724:LDMEQFD (|
00001840  73 70 29 21 2c 7b 52 30  2d 52 33 2c 50 43 7d 5e  |sp)!,{R0-R3,PC}^|
00001850  3a 53 54 52 20 52 30 2c  65 6e 65 72 67 79 0d 05  |:STR R0,energy..|
00001860  3c b7 4c 44 52 20 52 30  2c 65 6e 65 72 70 74 3a  |<.LDR R0,enerpt:|
00001870  53 55 42 20 52 30 2c 52  30 2c 23 31 36 30 3a 53  |SUB R0,R0,#160:S|
00001880  54 52 20 52 30 2c 65 6e  65 72 70 74 3a 4c 44 52  |TR R0,enerpt:LDR|
00001890  20 52 31 2c 73 61 64 64  3a 4c 44 52 20 52 32 2c  | R1,sadd:LDR R2,|
000018a0  74 61 64 64 3a 4d 4f 56  20 52 33 2c 23 26 46 46  |tadd:MOV R3,#&FF|
000018b0  3a 53 54 52 42 20 52 33  2c 5b 52 31 2c 52 30 5d  |:STRB R3,[R1,R0]|
000018c0  3a 53 54 52 42 20 52 33  2c 5b 52 32 2c 52 30 5d  |:STRB R3,[R2,R0]|
000018d0  3a 41 44 44 20 52 30 2c  52 30 2c 23 31 3a 53 54  |:ADD R0,R0,#1:ST|
000018e0  52 42 20 52 33 2c 5b 52  31 2c 52 30 5d 3a 53 54  |RB R3,[R1,R0]:ST|
000018f0  52 42 20 52 33 2c 5b 52  32 2c 52 30 5d 3a 4c 44  |RB R3,[R2,R0]:LD|
00001900  4d 46 44 20 28 73 70 29  21 2c 7b 52 30 2d 52 33  |MFD (sp)!,{R0-R3|
00001910  2c 50 43 7d 5e 0d 05 46  4f 2e 64 65 63 69 6e 67  |,PC}^..FO.decing|
00001920  20 53 55 42 53 20 52 30  2c 52 30 2c 23 31 3a 4d  | SUBS R0,R0,#1:M|
00001930  4f 56 4d 49 20 52 30 2c  23 31 34 39 3a 53 54 52  |OVMI R0,#149:STR|
00001940  20 52 30 2c 65 6e 65 72  63 74 3a 4c 44 4d 50 4c  | R0,enerct:LDMPL|
00001950  46 44 20 28 73 70 29 21  2c 7b 52 30 2d 52 33 2c  |FD (sp)!,{R0-R3,|
00001960  50 43 7d 5e 0d 05 50 47  4c 44 52 20 52 30 2c 65  |PC}^..PGLDR R0,e|
00001970  6e 65 72 67 79 3a 53 55  42 53 20 52 30 2c 52 30  |nergy:SUBS R0,R0|
00001980  2c 23 34 3a 4c 44 4d 4d  49 46 44 20 28 73 70 29  |,#4:LDMMIFD (sp)|
00001990  21 2c 7b 52 30 2d 52 33  2c 50 43 7d 5e 3a 53 54  |!,{R0-R3,PC}^:ST|
000019a0  52 20 52 30 2c 65 6e 65  72 67 79 0d 05 5a b7 4c  |R R0,energy..Z.L|
000019b0  44 52 20 52 30 2c 65 6e  65 72 70 74 3a 4c 44 52  |DR R0,enerpt:LDR|
000019c0  20 52 31 2c 73 61 64 64  3a 4c 44 52 20 52 32 2c  | R1,sadd:LDR R2,|
000019d0  74 61 64 64 3a 4d 4f 56  20 52 33 2c 23 26 42 42  |tadd:MOV R3,#&BB|
000019e0  3a 53 54 52 42 20 52 33  2c 5b 52 31 2c 52 30 5d  |:STRB R3,[R1,R0]|
000019f0  3a 53 54 52 42 20 52 33  2c 5b 52 32 2c 52 30 5d  |:STRB R3,[R2,R0]|
00001a00  3a 41 44 44 20 52 30 2c  52 30 2c 23 31 3a 53 54  |:ADD R0,R0,#1:ST|
00001a10  52 42 20 52 33 2c 5b 52  31 2c 52 30 5d 3a 53 54  |RB R3,[R1,R0]:ST|
00001a20  52 42 20 52 33 2c 5b 52  32 2c 52 30 5d 3a 41 44  |RB R3,[R2,R0]:AD|
00001a30  44 20 52 30 2c 52 30 2c  23 31 35 39 3a 53 54 52  |D R0,R0,#159:STR|
00001a40  20 52 30 2c 65 6e 65 72  70 74 3a 4c 44 4d 46 44  | R0,enerpt:LDMFD|
00001a50  20 28 73 70 29 21 2c 7b  52 30 2d 52 33 2c 50 43  | (sp)!,{R0-R3,PC|
00001a60  7d 5e 0d 05 64 05 5c 0d  05 6e ef 2e 72 65 64 75  |}^..d.\..n..redu|
00001a70  63 65 20 53 54 4d 46 44  20 28 73 70 29 21 2c 7b  |ce STMFD (sp)!,{|
00001a80  52 30 2d 52 34 7d 3a 4c  44 52 20 52 30 2c 6d 61  |R0-R4}:LDR R0,ma|
00001a90  6e 68 69 74 43 41 3a 4c  44 52 20 52 31 2c 73 74  |nhitCA:LDR R1,st|
00001aa0  65 70 50 44 3a 53 57 49  20 22 53 6f 75 6e 64 5f  |epPD:SWI "Sound_|
00001ab0  43 6f 6e 74 72 6f 6c 50  61 63 6b 65 64 22 3a 4c  |ControlPacked":L|
00001ac0  44 52 20 52 30 2c 65 6e  65 72 70 74 3a 41 44 44  |DR R0,enerpt:ADD|
00001ad0  20 52 30 2c 52 30 2c 23  31 36 30 3a 53 54 52 20  | R0,R0,#160:STR |
00001ae0  52 30 2c 65 6e 65 72 70  74 3a 4d 4f 56 20 52 30  |R0,enerpt:MOV R0|
00001af0  2c 23 34 3a 4c 44 52 20  52 34 2c 65 6e 65 72 67  |,#4:LDR R4,energ|
00001b00  79 3a 41 44 44 20 52 31  2c 52 34 2c 23 32 38 30  |y:ADD R1,R4,#280|
00001b10  3a 4d 4f 56 20 52 32 2c  23 32 34 3a 53 57 49 20  |:MOV R2,#24:SWI |
00001b20  22 4f 53 5f 50 6c 6f 74  22 3a 4d 4f 56 20 52 30  |"OS_Plot":MOV R0|
00001b30  2c 23 31 3a 4d 4f 56 20  52 31 2c 23 30 3a 4d 4f  |,#1:MOV R1,#0:MO|
00001b40  56 20 52 32 2c 23 31 32  3a 53 57 49 20 22 4f 53  |V R2,#12:SWI "OS|
00001b50  5f 50 6c 6f 74 22 0d 05  78 f6 4d 4f 56 20 52 30  |_Plot"..x.MOV R0|
00001b60  2c 23 31 31 32 3a 4c 44  52 20 52 33 2c 62 61 6e  |,#112:LDR R3,ban|
00001b70  6b 3a 43 4d 50 20 52 33  2c 23 30 3a 4d 56 4e 4d  |k:CMP R3,#0:MVNM|
00001b80  49 20 52 33 2c 52 33 3a  82 20 52 31 2c 52 33 2c  |I R3,R3:. R1,R3,|
00001b90  23 33 3a 53 57 49 20 22  4f 53 5f 42 79 74 65 22  |#3:SWI "OS_Byte"|
00001ba0  3a 4d 4f 56 20 52 30 2c  23 31 3a 4d 4f 56 20 52  |:MOV R0,#1:MOV R|
00001bb0  31 2c 23 30 3a 4d 56 4e  20 52 32 2c 23 31 31 3a  |1,#0:MVN R2,#11:|
00001bc0  53 57 49 20 22 4f 53 5f  50 6c 6f 74 22 3a 4d 4f  |SWI "OS_Plot":MO|
00001bd0  56 20 52 30 2c 23 31 31  32 3a 4d 4f 56 20 52 31  |V R0,#112:MOV R1|
00001be0  2c 52 33 3a 53 57 49 20  22 4f 53 5f 42 79 74 65  |,R3:SWI "OS_Byte|
00001bf0  22 3a 53 55 42 53 20 52  34 2c 52 34 2c 23 34 3a  |":SUBS R4,R4,#4:|
00001c00  53 54 52 20 52 34 2c 65  6e 65 72 67 79 3a 4c 44  |STR R4,energy:LD|
00001c10  4d 46 44 20 28 73 70 29  21 2c 7b 52 30 2d 52 34  |MFD (sp)!,{R0-R4|
00001c20  7d 3a 4d 4f 56 50 4c 20  50 43 2c 6c 69 6e 6b 3a  |}:MOVPL PC,link:|
00001c30  4d 4f 56 20 52 30 2c 23  26 46 46 3a 4c 44 4d 46  |MOV R0,#&FF:LDMF|
00001c40  44 20 28 73 70 29 21 2c  7b 50 43 7d 0d 05 82 05  |D (sp)!,{PC}....|
00001c50  5c 0d 05 8c 15 2e 74 61  62 61 64 64 20 45 51 55  |\.....tabadd EQU|
00001c60  44 20 54 41 42 25 0d 05  96 15 2e 74 73 70 61 64  |D TAB%.....tspad|
00001c70  64 20 45 51 55 44 20 54  53 50 25 0d 05 a0 1b 2e  |d EQUD TSP%.....|
00001c80  6d 73 70 61 64 64 20 45  51 55 44 20 54 53 50 25  |mspadd EQUD TSP%|
00001c90  2b 26 34 35 36 30 0d 05  aa 13 2e 6d 6e 74 62 20  |+&4560.....mntb |
00001ca0  45 51 55 44 20 64 6d 61  6e 0d 05 b4 0f 2e 6d 6e  |EQUD dman.....mn|
00001cb0  61 20 45 51 55 44 20 30  0d 05 be 10 2e 6b 65 79  |a EQUD 0.....key|
00001cc0  73 20 45 51 55 44 20 30  0d 05 c8 12 2e 65 6e 65  |s EQUD 0.....ene|
00001cd0  72 67 79 20 45 51 55 44  20 30 0d 05 d2 12 2e 65  |rgy EQUD 0.....e|
00001ce0  6e 65 72 70 74 20 45 51  55 44 20 30 0d 05 dc 14  |nerpt EQUD 0....|
00001cf0  2e 65 6e 65 72 63 74 20  45 51 55 44 20 31 34 39  |.enerct EQUD 149|
00001d00  0d 05 e6 11 2e 73 77 6f  72 64 20 45 51 55 44 20  |.....sword EQUD |
00001d10  30 0d 05 f0 1b 2e 6d 61  6e 68 69 74 43 41 20 45  |0.....manhitCA E|
00001d20  51 55 44 20 26 31 46 46  30 30 30 33 0d 05 fa 19  |QUD &1FF0003....|
00001d30  2e 73 74 65 70 43 41 20  45 51 55 44 20 26 31 35  |.stepCA EQUD &15|
00001d40  30 30 30 30 31 0d 06 04  17 2e 73 74 65 70 50 44  |00001.....stepPD|
00001d50  20 45 51 55 44 20 26 31  32 30 30 30 0d 06 0e 19  | EQUD &12000....|
00001d60  2e 64 6f 6f 72 43 41 20  45 51 55 44 20 26 31 37  |.doorCA EQUD &17|
00001d70  46 30 30 30 32 0d 06 18  17 2e 64 6f 6f 72 50 44  |F0002.....doorPD|
00001d80  20 45 51 55 44 20 26 31  32 35 35 30 0d 06 22 05  | EQUD &12550..".|
00001d90  5d 0d 06 2c 63 64 6d 61  6e 3d 50 25 3a 75 6d 61  |]..,cdman=P%:uma|
00001da0  6e 3d 50 25 2b 33 32 3a  72 6d 61 6e 3d 50 25 2b  |n=P%+32:rman=P%+|
00001db0  36 34 3a 6c 6d 61 6e 3d  50 25 2b 39 36 3a 65 6d  |64:lman=P%+96:em|
00001dc0  61 6e 3d 50 25 2b 31 32  38 3a e3 20 49 25 3d 30  |an=P%+128:. I%=0|
00001dd0  20 b8 20 33 36 3a 21 50  25 3d 54 53 50 25 2b 26  | . 36:!P%=TSP%+&|
00001de0  31 41 30 34 2b 49 25 2a  26 31 32 43 3a 50 25 2b  |1A04+I%*&12C:P%+|
00001df0  3d 34 3a ed 0d 06 36 0b  5b 4f 50 54 20 6f 25 0d  |=4:...6.[OPT o%.|
00001e00  06 40 16 5c 4d 6f 76 65  20 69 6e 20 6c 61 62 79  |.@.\Move in laby|
00001e10  72 69 6e 74 68 0d 06 4a  47 2e 4d 6f 76 65 4c 61  |rinth..JG.MoveLa|
00001e20  62 79 20 53 54 4d 46 44  20 28 73 70 29 21 2c 7b  |by STMFD (sp)!,{|
00001e30  6c 69 6e 6b 7d 3a 4c 44  52 20 52 31 30 2c 74 61  |link}:LDR R10,ta|
00001e40  62 61 64 64 3a 4d 4f 56  20 52 31 31 2c 23 35 32  |badd:MOV R11,#52|
00001e50  3a 4d 4f 56 20 52 31 32  2c 23 34 34 0d 06 54 7e  |:MOV R12,#44..T~|
00001e60  4d 4f 56 20 52 30 2c 23  32 3a 53 54 52 20 52 30  |MOV R0,#2:STR R0|
00001e70  2c 62 61 6e 6b 3a 4d 4f  56 20 52 30 2c 23 32 35  |,bank:MOV R0,#25|
00001e80  35 3a 53 54 52 20 52 30  2c 6d 6e 61 3a 42 4c 20  |5:STR R0,mna:BL |
00001e90  44 72 61 77 4c 61 62 79  3a 42 4c 20 66 61 64 65  |DrawLaby:BL fade|
00001ea0  5f 69 6e 3a 4d 4f 56 20  52 33 2c 23 32 30 3a 42  |_in:MOV R3,#20:B|
00001eb0  4c 20 64 65 6c 61 79 3a  41 44 52 20 52 30 2c 65  |L delay:ADR R0,e|
00001ec0  6d 61 6e 3a 53 54 52 20  52 30 2c 6d 6e 74 62 3a  |man:STR R0,mntb:|
00001ed0  4d 4f 56 20 52 36 2c 23  31 36 0d 06 5e 4e 2e 65  |MOV R6,#16..^N.e|
00001ee0  6d 61 6e 6c 70 20 53 54  52 20 52 36 2c 6d 6e 61  |manlp STR R6,mna|
00001ef0  3a 42 4c 20 44 72 61 77  4c 61 62 79 3a 4d 4f 56  |:BL DrawLaby:MOV|
00001f00  20 52 33 2c 23 32 3a 42  4c 20 64 65 6c 61 79 3a  | R3,#2:BL delay:|
00001f10  53 55 42 53 20 52 36 2c  52 36 2c 23 34 3a 42 50  |SUBS R6,R6,#4:BP|
00001f20  4c 20 65 6d 61 6e 6c 70  0d 06 68 70 4d 4f 56 20  |L emanlp..hpMOV |
00001f30  52 30 2c 23 32 31 3a 41  44 52 20 52 31 2c 72 6d  |R0,#21:ADR R1,rm|
00001f40  6f 75 73 65 3a 53 57 49  20 22 4f 53 5f 57 6f 72  |ouse:SWI "OS_Wor|
00001f50  64 22 3a 4d 4f 56 20 52  30 2c 23 32 31 3a 4d 4f  |d":MOV R0,#21:MO|
00001f60  56 20 52 31 2c 23 39 3a  53 57 49 20 22 4f 53 5f  |V R1,#9:SWI "OS_|
00001f70  42 79 74 65 22 3a 4d 4f  56 20 52 30 2c 23 31 34  |Byte":MOV R0,#14|
00001f80  3a 4d 4f 56 20 52 31 2c  23 34 3a 53 57 49 20 22  |:MOV R1,#4:SWI "|
00001f90  4f 53 5f 42 79 74 65 22  0d 06 72 1b 41 44 52 20  |OS_Byte"..r.ADR |
00001fa0  52 30 2c 64 6d 61 6e 3a  53 54 52 20 52 30 2c 6d  |R0,dman:STR R0,m|
00001fb0  6e 74 62 0d 06 7c 08 2e  64 6f 6b 0d 06 86 52 4c  |ntb..|..dok...RL|
00001fc0  44 52 20 52 32 2c 6d 6e  61 3a 41 44 44 20 52 32  |DR R2,mna:ADD R2|
00001fd0  2c 52 32 2c 23 34 3a 43  4d 50 20 52 32 2c 23 33  |,R2,#4:CMP R2,#3|
00001fe0  32 3a ec 51 20 52 32 2c  23 30 3a 53 54 52 20 52  |2:.Q R2,#0:STR R|
00001ff0  32 2c 6d 6e 61 3a 54 53  54 20 52 32 2c 23 31 35  |2,mna:TST R2,#15|
00002000  3a 42 4e 45 20 73 6b 69  70 73 74 65 70 0d 06 90  |:BNE skipstep...|
00002010  55 4c 44 52 20 52 30 2c  73 74 65 70 43 41 3a 4c  |ULDR R0,stepCA:L|
00002020  44 52 20 52 31 2c 73 74  65 70 50 44 3a 82 20 52  |DR R1,stepPD:. R|
00002030  31 2c 52 31 2c 23 26 35  35 30 3a 53 54 52 20 52  |1,R1,#&550:STR R|
00002040  31 2c 73 74 65 70 50 44  3a 53 57 49 20 22 53 6f  |1,stepPD:SWI "So|
00002050  75 6e 64 5f 43 6f 6e 74  72 6f 6c 50 61 63 6b 65  |und_ControlPacke|
00002060  64 22 0d 06 9a 19 2e 73  6b 69 70 73 74 65 70 20  |d".....skipstep |
00002070  42 4c 20 44 72 61 77 4c  61 62 79 0d 06 a4 8c 2e  |BL DrawLaby.....|
00002080  6b 6c 70 20 4c 44 52 20  52 30 2c 65 6e 65 72 67  |klp LDR R0,energ|
00002090  79 3a 43 4d 50 20 52 30  2c 23 34 3a 42 4c 54 20  |y:CMP R0,#4:BLT |
000020a0  64 65 61 64 3a 42 4c 20  74 73 74 6b 65 79 3a 54  |dead:BL tstkey:T|
000020b0  53 54 20 52 36 2c 23 31  36 3a 42 4c 4e 45 20 72  |ST R6,#16:BLNE r|
000020c0  74 6e 3a 54 53 54 20 52  36 2c 23 31 3a 42 4e 45  |tn:TST R6,#1:BNE|
000020d0  20 6d 6c 3a 54 53 54 20  52 36 2c 23 32 3a 42 4e  | ml:TST R6,#2:BN|
000020e0  45 20 6d 72 3a 54 53 54  20 52 36 2c 23 38 3a 42  |E mr:TST R6,#8:B|
000020f0  4e 45 20 6d 75 3a 54 53  54 20 52 36 2c 23 34 3a  |NE mu:TST R6,#4:|
00002100  42 45 51 20 6b 6c 70 0d  06 ae cd 2e 6d 64 20 41  |BEQ klp.....md A|
00002110  44 52 20 52 30 2c 64 6d  61 6e 3a 53 54 52 20 52  |DR R0,dman:STR R|
00002120  30 2c 6d 6e 74 62 3a 54  45 51 20 52 31 32 2c 23  |0,mntb:TEQ R12,#|
00002130  36 30 3a 42 4e 45 20 6d  64 64 3a 41 44 44 20 52  |60:BNE mdd:ADD R|
00002140  31 2c 52 31 30 2c 23 39  30 3a 43 4d 50 20 52 31  |1,R10,#90:CMP R1|
00002150  31 2c 23 35 36 3a 53 55  42 48 49 20 52 31 2c 52  |1,#56:SUBHI R1,R|
00002160  31 2c 23 31 3a 4c 44 52  42 20 52 30 2c 5b 52 31  |1,#1:LDRB R0,[R1|
00002170  5d 3a 43 4d 50 20 52 30  2c 23 31 38 3a 42 4c 53  |]:CMP R0,#18:BLS|
00002180  20 6d 64 64 3a 43 4d 50  20 52 31 31 2c 23 35 36  | mdd:CMP R11,#56|
00002190  3a 42 4e 45 20 63 6c 6c  64 3a 43 4d 50 20 52 30  |:BNE clld:CMP R0|
000021a0  2c 23 32 38 3a 42 4c 53  20 63 6c 6c 64 3a 43 4d  |,#28:BLS clld:CM|
000021b0  50 20 52 30 2c 23 33 32  3a 42 48 49 20 6d 64 64  |P R0,#32:BHI mdd|
000021c0  3a 43 4d 50 20 52 30 2c  23 32 39 3a 42 48 49 20  |:CMP R0,#29:BHI |
000021d0  63 6c 6c 64 0d 06 b8 4c  2e 6d 64 64 20 41 44 44  |clld...L.mdd ADD|
000021e0  20 52 31 32 2c 52 31 32  2c 23 34 3a 54 45 51 20  | R12,R12,#4:TEQ |
000021f0  52 31 32 2c 23 36 34 3a  42 4e 45 20 64 6f 6b 3a  |R12,#64:BNE dok:|
00002200  4d 4f 56 20 52 31 32 2c  23 30 3a 41 44 44 20 52  |MOV R12,#0:ADD R|
00002210  31 30 2c 52 31 30 2c 23  32 32 3a 42 20 64 6f 6b  |10,R10,#22:B dok|
00002220  0d 06 c2 63 2e 6d 6c 20  41 44 52 20 52 30 2c 6c  |...c.ml ADR R0,l|
00002230  6d 61 6e 3a 53 54 52 20  52 30 2c 6d 6e 74 62 3a  |man:STR R0,mntb:|
00002240  54 45 51 20 52 31 31 2c  23 35 36 3a 42 4e 45 20  |TEQ R11,#56:BNE |
00002250  6d 6c 6c 3a 41 44 44 20  52 31 2c 52 31 30 2c 23  |mll:ADD R1,R10,#|
00002260  36 37 3a 4c 44 52 42 20  52 30 2c 5b 52 31 5d 3a  |67:LDRB R0,[R1]:|
00002270  43 4d 50 20 52 30 2c 23  31 38 3a 42 48 49 20 63  |CMP R0,#18:BHI c|
00002280  6c 6c 64 0d 06 cc 4b 2e  6d 6c 6c 20 41 44 44 20  |lld...K.mll ADD |
00002290  52 31 31 2c 52 31 31 2c  23 34 3a 54 45 51 20 52  |R11,R11,#4:TEQ R|
000022a0  31 31 2c 23 36 34 3a 42  4e 45 20 64 6f 6b 3a 4d  |11,#64:BNE dok:M|
000022b0  4f 56 20 52 31 31 2c 23  30 3a 53 55 42 20 52 31  |OV R11,#0:SUB R1|
000022c0  30 2c 52 31 30 2c 23 31  3a 42 20 64 6f 6b 0d 06  |0,R10,#1:B dok..|
000022d0  d6 63 2e 6d 72 20 41 44  52 20 52 30 2c 72 6d 61  |.c.mr ADR R0,rma|
000022e0  6e 3a 53 54 52 20 52 30  2c 6d 6e 74 62 3a 54 45  |n:STR R0,mntb:TE|
000022f0  51 20 52 31 31 2c 23 35  36 3a 42 4e 45 20 6d 72  |Q R11,#56:BNE mr|
00002300  72 3a 41 44 44 20 52 31  2c 52 31 30 2c 23 36 38  |r:ADD R1,R10,#68|
00002310  3a 4c 44 52 42 20 52 30  2c 5b 52 31 5d 3a 43 4d  |:LDRB R0,[R1]:CM|
00002320  50 20 52 30 2c 23 31 38  3a 42 48 49 20 63 6c 6c  |P R0,#18:BHI cll|
00002330  64 0d 06 e0 41 2e 6d 72  72 20 53 55 42 53 20 52  |d...A.mrr SUBS R|
00002340  31 31 2c 52 31 31 2c 23  34 3a 42 50 4c 20 64 6f  |11,R11,#4:BPL do|
00002350  6b 3a 4d 4f 56 20 52 31  31 2c 23 36 30 3a 41 44  |k:MOV R11,#60:AD|
00002360  44 20 52 31 30 2c 52 31  30 2c 23 31 3a 42 20 64  |D R10,R10,#1:B d|
00002370  6f 6b 0d 06 ea cc 2e 6d  75 20 41 44 52 20 52 30  |ok.....mu ADR R0|
00002380  2c 75 6d 61 6e 3a 53 54  52 20 52 30 2c 6d 6e 74  |,uman:STR R0,mnt|
00002390  62 3a 54 45 51 20 52 31  32 2c 23 30 3a 42 4e 45  |b:TEQ R12,#0:BNE|
000023a0  20 6d 75 75 3a 41 44 44  20 52 31 2c 52 31 30 2c  | muu:ADD R1,R10,|
000023b0  23 34 36 3a 43 4d 50 20  52 31 31 2c 23 35 36 3a  |#46:CMP R11,#56:|
000023c0  53 55 42 48 49 20 52 31  2c 52 31 2c 23 31 3a 4c  |SUBHI R1,R1,#1:L|
000023d0  44 52 42 20 52 30 2c 5b  52 31 5d 3a 43 4d 50 20  |DRB R0,[R1]:CMP |
000023e0  52 30 2c 23 31 38 3a 42  4c 53 20 6d 75 75 3a 43  |R0,#18:BLS muu:C|
000023f0  4d 50 20 52 31 31 2c 23  35 36 3a 42 4e 45 20 63  |MP R11,#56:BNE c|
00002400  6c 6c 64 3a 43 4d 50 20  52 30 2c 23 32 38 3a 42  |lld:CMP R0,#28:B|
00002410  4c 53 20 63 6c 6c 64 3a  43 4d 50 20 52 30 2c 23  |LS clld:CMP R0,#|
00002420  33 32 3a 42 48 49 20 6d  75 75 3a 43 4d 50 20 52  |32:BHI muu:CMP R|
00002430  30 2c 23 32 39 3a 42 48  49 20 63 6c 6c 64 0d 06  |0,#29:BHI clld..|
00002440  f4 42 2e 6d 75 75 20 53  55 42 53 20 52 31 32 2c  |.B.muu SUBS R12,|
00002450  52 31 32 2c 23 34 3a 42  50 4c 20 64 6f 6b 3a 4d  |R12,#4:BPL dok:M|
00002460  4f 56 20 52 31 32 2c 23  36 30 3a 53 55 42 20 52  |OV R12,#60:SUB R|
00002470  31 30 2c 52 31 30 2c 23  32 32 3a 42 20 64 6f 6b  |10,R10,#22:B dok|
00002480  0d 06 fe 30 2e 63 6c 6c  64 20 4d 4f 56 20 52 30  |...0.clld MOV R0|
00002490  2c 23 30 3a 53 54 52 20  52 30 2c 6d 6e 61 3a 42  |,#0:STR R0,mna:B|
000024a0  4c 20 44 72 61 77 4c 61  62 79 3a 42 20 6b 6c 70  |L DrawLaby:B klp|
000024b0  0d 07 08 71 2e 72 74 6e  20 4c 44 52 20 52 32 2c  |...q.rtn LDR R2,|
000024c0  6b 65 79 73 3a 54 45 51  20 52 32 2c 23 30 3a 42  |keys:TEQ R2,#0:B|
000024d0  45 51 20 6e 6f 6b 65 79  3a 54 45 51 20 52 31 32  |EQ nokey:TEQ R12|
000024e0  2c 23 30 3a 41 44 44 45  51 20 52 31 2c 52 31 30  |,#0:ADDEQ R1,R10|
000024f0  2c 23 34 36 3a 42 45 51  20 63 64 72 3a 54 45 51  |,#46:BEQ cdr:TEQ|
00002500  20 52 31 32 2c 23 36 30  3a 42 4e 45 20 6e 6f 6b  | R12,#60:BNE nok|
00002510  65 79 3a 41 44 44 20 52  31 2c 52 31 30 2c 23 39  |ey:ADD R1,R10,#9|
00002520  30 0d 07 12 9c 2e 63 64  72 20 4c 44 52 42 20 52  |0.....cdr LDRB R|
00002530  30 2c 5b 52 31 5d 3a 54  45 51 20 52 30 2c 23 33  |0,[R1]:TEQ R0,#3|
00002540  32 3a 4d 4f 56 4e 45 20  50 43 2c 6c 69 6e 6b 3a  |2:MOVNE PC,link:|
00002550  4d 4f 56 20 52 30 2c 23  37 3a 53 54 52 42 20 52  |MOV R0,#7:STRB R|
00002560  30 2c 5b 52 31 5d 2c 23  32 32 3a 53 54 52 42 20  |0,[R1],#22:STRB |
00002570  52 30 2c 5b 52 31 5d 2c  23 31 3a 53 54 52 42 20  |R0,[R1],#1:STRB |
00002580  52 30 2c 5b 52 31 5d 2c  23 2d 32 32 3a 4d 4f 56  |R0,[R1],#-22:MOV|
00002590  20 52 30 2c 23 32 39 3a  53 54 52 42 20 52 30 2c  | R0,#29:STRB R0,|
000025a0  5b 52 31 5d 3a 53 55 42  20 52 32 2c 52 32 2c 23  |[R1]:SUB R2,R2,#|
000025b0  31 3a 53 54 52 20 52 32  2c 6b 65 79 73 0d 07 1c  |1:STR R2,keys...|
000025c0  71 4d 4f 56 20 52 30 2c  23 32 3a 41 44 52 20 52  |qMOV R0,#2:ADR R|
000025d0  31 2c 64 6f 6f 72 76 6f  69 63 65 3a 53 57 49 20  |1,doorvoice:SWI |
000025e0  22 53 6f 75 6e 64 5f 41  74 74 61 63 68 4e 61 6d  |"Sound_AttachNam|
000025f0  65 64 56 6f 69 63 65 22  3a 4c 44 52 20 52 30 2c  |edVoice":LDR R0,|
00002600  64 6f 6f 72 43 41 3a 4c  44 52 20 52 31 2c 64 6f  |doorCA:LDR R1,do|
00002610  6f 72 50 44 3a 53 57 49  20 22 53 6f 75 6e 64 5f  |orPD:SWI "Sound_|
00002620  43 6f 6e 74 72 6f 6c 50  61 63 6b 65 64 22 0d 07  |ControlPacked"..|
00002630  26 7f 53 57 49 20 4f 53  5f 57 72 69 74 65 49 2b  |&.SWI OS_WriteI+|
00002640  32 36 3a 4d 4f 56 20 52  30 2c 23 33 34 3a 41 44  |26:MOV R0,#34:AD|
00002650  44 20 52 30 2c 52 30 2c  23 35 31 32 3a 4c 44 52  |D R0,R0,#512:LDR|
00002660  20 52 31 2c 74 73 70 61  64 64 3a 4d 4f 56 20 52  | R1,tspadd:MOV R|
00002670  33 2c 52 32 2c 4c 53 4c  23 35 3a 4c 44 52 20 52  |3,R2,LSL#5:LDR R|
00002680  32 2c 74 74 61 62 3a 4d  4f 56 20 52 34 2c 23 33  |2,ttab:MOV R4,#3|
00002690  32 3a 4d 4f 56 20 52 35  2c 23 30 3a 53 57 49 20  |2:MOV R5,#0:SWI |
000026a0  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 0d 07 30  |"OS_SpriteOp"..0|
000026b0  94 53 54 4d 46 44 20 28  73 70 29 21 2c 7b 52 30  |.STMFD (sp)!,{R0|
000026c0  2d 52 32 7d 3a 4d 4f 56  20 52 30 2c 23 31 31 32  |-R2}:MOV R0,#112|
000026d0  3a 4c 44 52 20 52 31 2c  62 61 6e 6b 3a 53 57 49  |:LDR R1,bank:SWI|
000026e0  20 22 4f 53 5f 42 79 74  65 22 3a 4c 44 4d 46 44  | "OS_Byte":LDMFD|
000026f0  20 28 73 70 29 21 2c 7b  52 30 2d 52 32 7d 3a 53  | (sp)!,{R0-R2}:S|
00002700  57 49 20 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |WI "OS_SpriteOp"|
00002710  3a 41 44 52 20 52 30 2c  72 65 77 69 6e 3a 4d 4f  |:ADR R0,rewin:MO|
00002720  56 20 52 31 2c 23 31 34  3a 53 57 49 20 22 4f 53  |V R1,#14:SWI "OS|
00002730  5f 57 72 69 74 65 4e 22  3a 42 20 66 69 6e 72 74  |_WriteN":B finrt|
00002740  6e 0d 07 3a 86 2e 6e 6f  6b 65 79 20 43 4d 50 20  |n..:..nokey CMP |
00002750  52 31 32 2c 23 34 3a 4d  4f 56 4c 53 20 50 43 2c  |R12,#4:MOVLS PC,|
00002760  6c 69 6e 6b 3a 43 4d 50  20 52 31 32 2c 23 35 32  |link:CMP R12,#52|
00002770  3a 4d 4f 56 48 49 20 50  43 2c 6c 69 6e 6b 3a 41  |:MOVHI PC,link:A|
00002780  44 44 20 52 31 2c 52 31  30 2c 23 36 39 3a 43 4d  |DD R1,R10,#69:CM|
00002790  50 20 52 31 31 2c 23 38  3a 42 4c 53 20 63 74 62  |P R11,#8:BLS ctb|
000027a0  3a 43 4d 50 20 52 31 31  2c 23 32 38 3a 4d 4f 56  |:CMP R11,#28:MOV|
000027b0  4c 53 20 50 43 2c 6c 69  6e 6b 3a 53 55 42 20 52  |LS PC,link:SUB R|
000027c0  31 2c 52 31 2c 23 31 0d  07 44 74 2e 63 74 62 20  |1,R1,#1..Dt.ctb |
000027d0  4c 44 52 42 20 52 30 2c  5b 52 31 5d 3a 54 45 51  |LDRB R0,[R1]:TEQ|
000027e0  20 52 30 2c 23 38 3a 42  45 51 20 64 61 3a 54 45  | R0,#8:BEQ da:TE|
000027f0  51 20 52 30 2c 23 39 3a  42 45 51 20 75 61 3a 54  |Q R0,#9:BEQ ua:T|
00002800  45 51 20 52 30 2c 23 31  36 3a 42 45 51 20 65 6e  |EQ R0,#16:BEQ en|
00002810  3a 54 45 51 20 52 30 2c  23 31 37 3a 42 45 51 20  |:TEQ R0,#17:BEQ |
00002820  73 77 3a 54 45 51 20 52  30 2c 23 31 38 3a 4d 4f  |sw:TEQ R0,#18:MO|
00002830  56 4e 45 20 50 43 2c 6c  69 6e 6b 0d 07 4e 38 2e  |VNE PC,link..N8.|
00002840  6b 79 20 41 44 44 20 52  32 2c 52 32 2c 23 31 3a  |ky ADD R2,R2,#1:|
00002850  53 54 52 20 52 32 2c 6b  65 79 73 3a 4d 4f 56 20  |STR R2,keys:MOV |
00002860  52 30 2c 23 31 35 3a 53  54 52 42 20 52 30 2c 5b  |R0,#15:STRB R0,[|
00002870  52 31 5d 0d 07 58 80 4d  4f 56 20 52 30 2c 23 32  |R1]..X.MOV R0,#2|
00002880  3a 41 44 52 20 52 31 2c  63 6c 61 6e 67 76 6f 69  |:ADR R1,clangvoi|
00002890  63 65 3a 53 57 49 20 22  53 6f 75 6e 64 5f 41 74  |ce:SWI "Sound_At|
000028a0  74 61 63 68 4e 61 6d 65  64 56 6f 69 63 65 22 3a  |tachNamedVoice":|
000028b0  4c 44 52 20 52 30 2c 64  6f 6f 72 43 41 3a 4c 44  |LDR R0,doorCA:LD|
000028c0  52 20 52 31 2c 64 6f 6f  72 50 44 3a 82 20 52 31  |R R1,doorPD:. R1|
000028d0  2c 52 31 2c 23 26 46 35  30 3a 53 57 49 20 22 53  |,R1,#&F50:SWI "S|
000028e0  6f 75 6e 64 5f 43 6f 6e  74 72 6f 6c 50 61 63 6b  |ound_ControlPack|
000028f0  65 64 22 0d 07 62 9e 53  57 49 20 4f 53 5f 57 72  |ed"..b.SWI OS_Wr|
00002900  69 74 65 49 2b 32 36 3a  4d 4f 56 20 52 30 2c 23  |iteI+26:MOV R0,#|
00002910  33 34 3a 41 44 44 20 52  30 2c 52 30 2c 23 35 31  |34:ADD R0,R0,#51|
00002920  32 3a 53 55 42 53 20 52  33 2c 52 32 2c 23 31 3a  |2:SUBS R3,R2,#1:|
00002930  4c 44 52 20 52 31 2c 74  73 70 61 64 64 3a 41 44  |LDR R1,tspadd:AD|
00002940  52 20 52 32 2c 74 74 61  62 3a 4c 44 52 20 52 32  |R R2,ttab:LDR R2|
00002950  2c 5b 52 32 2c 23 31 35  32 5d 3a 4d 4f 56 20 52  |,[R2,#152]:MOV R|
00002960  33 2c 52 33 2c 4c 53 4c  23 35 3a 4d 4f 56 20 52  |3,R3,LSL#5:MOV R|
00002970  34 2c 23 33 32 3a 4d 4f  56 20 52 35 2c 23 30 3a  |4,#32:MOV R5,#0:|
00002980  53 57 49 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  |SWI "OS_SpriteOp|
00002990  22 0d 07 6c 94 53 54 4d  46 44 20 28 73 70 29 21  |"..l.STMFD (sp)!|
000029a0  2c 7b 52 30 2d 52 32 7d  3a 4d 4f 56 20 52 30 2c  |,{R0-R2}:MOV R0,|
000029b0  23 31 31 32 3a 4c 44 52  20 52 31 2c 62 61 6e 6b  |#112:LDR R1,bank|
000029c0  3a 53 57 49 20 22 4f 53  5f 42 79 74 65 22 3a 4c  |:SWI "OS_Byte":L|
000029d0  44 4d 46 44 20 28 73 70  29 21 2c 7b 52 30 2d 52  |DMFD (sp)!,{R0-R|
000029e0  32 7d 3a 53 57 49 20 22  4f 53 5f 53 70 72 69 74  |2}:SWI "OS_Sprit|
000029f0  65 4f 70 22 3a 41 44 52  20 52 30 2c 72 65 77 69  |eOp":ADR R0,rewi|
00002a00  6e 3a 4d 4f 56 20 52 31  2c 23 31 34 3a 53 57 49  |n:MOV R1,#14:SWI|
00002a10  20 22 4f 53 5f 57 72 69  74 65 4e 22 3a 42 20 66  | "OS_WriteN":B f|
00002a20  69 6e 72 74 6e 0d 07 76  5d 2e 75 61 20 4c 44 52  |inrtn..v].ua LDR|
00002a30  20 52 30 2c 6c 65 76 65  6c 3a 41 44 52 20 52 31  | R0,level:ADR R1|
00002a40  2c 6c 65 76 74 61 62 3a  4c 44 52 42 20 52 30 2c  |,levtab:LDRB R0,|
00002a50  5b 52 31 2c 52 30 5d 3a  4c 44 52 20 52 31 2c 73  |[R1,R0]:LDR R1,s|
00002a60  77 6f 72 64 3a 84 52 53  20 52 30 2c 52 30 2c 52  |word:.RS R0,R0,R|
00002a70  31 2c 4c 53 4c 23 31 3a  ec 51 20 50 43 2c 6c 69  |1,LSL#1:.Q PC,li|
00002a80  6e 6b 0d 07 80 3d 2e 64  65 6d 61 6e 20 53 54 4d  |nk...=.deman STM|
00002a90  46 44 20 28 73 70 29 21  2c 7b 52 30 7d 3a 41 44  |FD (sp)!,{R0}:AD|
00002aa0  52 20 52 30 2c 65 6d 61  6e 3a 53 54 52 20 52 30  |R R0,eman:STR R0|
00002ab0  2c 6d 6e 74 62 3a 4d 4f  56 20 52 36 2c 23 30 0d  |,mntb:MOV R6,#0.|
00002ac0  07 8a b0 2e 64 65 6d 61  6e 6c 70 20 53 54 52 20  |....demanlp STR |
00002ad0  52 36 2c 6d 6e 61 3a 42  4c 20 44 72 61 77 4c 61  |R6,mna:BL DrawLa|
00002ae0  62 79 3a 4d 4f 56 20 52  33 2c 23 32 3a 42 4c 20  |by:MOV R3,#2:BL |
00002af0  64 65 6c 61 79 3a 41 44  44 20 52 36 2c 52 36 2c  |delay:ADD R6,R6,|
00002b00  23 34 3a 43 4d 50 20 52  36 2c 23 32 30 3a 42 4e  |#4:CMP R6,#20:BN|
00002b10  45 20 64 65 6d 61 6e 6c  70 3a 4d 4f 56 20 52 30  |E demanlp:MOV R0|
00002b20  2c 23 32 35 35 3a 53 54  52 20 52 30 2c 6d 6e 61  |,#255:STR R0,mna|
00002b30  3a 42 4c 20 44 72 61 77  4c 61 62 79 3a 4d 4f 56  |:BL DrawLaby:MOV|
00002b40  20 52 33 2c 23 34 3a 42  4c 20 64 65 6c 61 79 3a  | R3,#4:BL delay:|
00002b50  42 4c 20 66 61 64 65 5f  6f 75 74 3a 4c 44 4d 46  |BL fade_out:LDMF|
00002b60  44 20 28 73 70 29 21 2c  7b 52 30 2c 50 43 7d 0d  |D (sp)!,{R0,PC}.|
00002b70  07 94 19 2e 64 61 20 4d  4f 56 20 52 30 2c 23 30  |....da MOV R0,#0|
00002b80  3a 42 20 64 65 6d 61 6e  0d 07 9e 2a 2e 72 6d 6f  |:B deman...*.rmo|
00002b90  75 73 65 20 45 51 55 42  20 33 3a 45 51 55 57 20  |use EQUB 3:EQUW |
00002ba0  36 34 30 3a 45 51 55 57  20 34 30 30 3a 41 4c 49  |640:EQUW 400:ALI|
00002bb0  47 4e 0d 07 a8 38 2e 65  6e 20 4d 56 4e 20 52 30  |GN...8.en MVN R0|
00002bc0  2c 23 34 35 3a 53 54 52  20 52 30 2c 65 6e 65 72  |,#45:STR R0,ener|
00002bd0  63 74 3a 4d 4f 56 20 52  30 2c 23 31 35 3a 53 54  |ct:MOV R0,#15:ST|
00002be0  52 42 20 52 30 2c 5b 52  31 5d 0d 07 b2 8b 4d 4f  |RB R0,[R1]....MO|
00002bf0  56 20 52 30 2c 23 32 3a  41 44 52 20 52 31 2c 62  |V R0,#2:ADR R1,b|
00002c00  6f 69 6e 67 76 6f 69 63  65 3a 53 57 49 20 22 53  |oingvoice:SWI "S|
00002c10  6f 75 6e 64 5f 41 74 74  61 63 68 4e 61 6d 65 64  |ound_AttachNamed|
00002c20  56 6f 69 63 65 22 3a 4c  44 52 20 52 30 2c 64 6f  |Voice":LDR R0,do|
00002c30  6f 72 43 41 3a 4c 44 52  20 52 31 2c 64 6f 6f 72  |orCA:LDR R1,door|
00002c40  50 44 3a 84 52 20 52 31  2c 52 31 2c 23 26 31 30  |PD:.R R1,R1,#&10|
00002c50  30 30 3a 53 57 49 20 22  53 6f 75 6e 64 5f 43 6f  |00:SWI "Sound_Co|
00002c60  6e 74 72 6f 6c 50 61 63  6b 65 64 22 3a 42 20 66  |ntrolPacked":B f|
00002c70  69 6e 72 74 6e 0d 07 bc  36 2e 73 77 20 4d 4f 56  |inrtn...6.sw MOV|
00002c80  20 52 30 2c 23 31 3a 53  54 52 20 52 30 2c 73 77  | R0,#1:STR R0,sw|
00002c90  6f 72 64 3a 4d 4f 56 20  52 30 2c 23 31 35 3a 53  |ord:MOV R0,#15:S|
00002ca0  54 52 42 20 52 30 2c 5b  52 31 5d 0d 07 c6 72 4d  |TRB R0,[R1]...rM|
00002cb0  4f 56 20 52 30 2c 23 32  3a 41 44 52 20 52 31 2c  |OV R0,#2:ADR R1,|
00002cc0  63 6c 61 6e 67 76 6f 69  63 65 3a 53 57 49 20 22  |clangvoice:SWI "|
00002cd0  53 6f 75 6e 64 5f 41 74  74 61 63 68 4e 61 6d 65  |Sound_AttachName|
00002ce0  64 56 6f 69 63 65 22 3a  4c 44 52 20 52 30 2c 64  |dVoice":LDR R0,d|
00002cf0  6f 6f 72 43 41 3a 4c 44  52 20 52 31 2c 64 6f 6f  |oorCA:LDR R1,doo|
00002d00  72 50 44 3a 53 57 49 20  22 53 6f 75 6e 64 5f 43  |rPD:SWI "Sound_C|
00002d10  6f 6e 74 72 6f 6c 50 61  63 6b 65 64 22 0d 07 d0  |ontrolPacked"...|
00002d20  8d 53 57 49 20 4f 53 5f  57 72 69 74 65 49 2b 32  |.SWI OS_WriteI+2|
00002d30  36 3a 4d 4f 56 20 52 30  2c 23 33 34 3a 41 44 44  |6:MOV R0,#34:ADD|
00002d40  20 52 30 2c 52 30 2c 23  35 31 32 3a 4c 44 52 20  | R0,R0,#512:LDR |
00002d50  52 31 2c 74 73 70 61 64  64 3a 41 44 52 20 52 32  |R1,tspadd:ADR R2|
00002d60  2c 74 74 61 62 3a 4c 44  52 20 52 32 2c 5b 52 32  |,ttab:LDR R2,[R2|
00002d70  2c 23 31 34 38 5d 3a 4d  4f 56 20 52 33 2c 23 31  |,#148]:MOV R3,#1|
00002d80  32 31 36 3a 4d 4f 56 20  52 34 2c 23 33 32 3a 4d  |216:MOV R4,#32:M|
00002d90  4f 56 20 52 35 2c 23 30  3a 53 57 49 20 22 4f 53  |OV R5,#0:SWI "OS|
00002da0  5f 53 70 72 69 74 65 4f  70 22 0d 07 da 8b 53 54  |_SpriteOp"....ST|
00002db0  4d 46 44 20 28 73 70 29  21 2c 7b 52 30 2d 52 32  |MFD (sp)!,{R0-R2|
00002dc0  7d 3a 4d 4f 56 20 52 30  2c 23 31 31 32 3a 4c 44  |}:MOV R0,#112:LD|
00002dd0  52 20 52 31 2c 62 61 6e  6b 3a 53 57 49 20 22 4f  |R R1,bank:SWI "O|
00002de0  53 5f 42 79 74 65 22 3a  4c 44 4d 46 44 20 28 73  |S_Byte":LDMFD (s|
00002df0  70 29 21 2c 7b 52 30 2d  52 32 7d 3a 53 57 49 20  |p)!,{R0-R2}:SWI |
00002e00  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 3a 41 44  |"OS_SpriteOp":AD|
00002e10  52 20 52 30 2c 72 65 77  69 6e 3a 4d 4f 56 20 52  |R R0,rewin:MOV R|
00002e20  31 2c 23 31 34 3a 53 57  49 20 22 4f 53 5f 57 72  |1,#14:SWI "OS_Wr|
00002e30  69 74 65 4e 22 0d 07 e4  5a 2e 66 69 6e 72 74 6e  |iteN"...Z.finrtn|
00002e40  20 54 45 51 20 52 36 2c  23 31 36 3a 4d 4f 56 4e  | TEQ R6,#16:MOVN|
00002e50  45 20 50 43 2c 6c 69 6e  6b 3a 53 54 4d 46 44 20  |E PC,link:STMFD |
00002e60  28 73 70 29 21 2c 7b 52  36 2c 6c 69 6e 6b 7d 3a  |(sp)!,{R6,link}:|
00002e70  42 4c 20 44 72 61 77 4c  61 62 79 3a 4c 44 4d 46  |BL DrawLaby:LDMF|
00002e80  44 20 28 73 70 29 21 2c  7b 52 36 2c 50 43 7d 0d  |D (sp)!,{R6,PC}.|
00002e90  07 ee 89 2e 64 65 61 64  20 4d 4f 56 20 52 30 2c  |....dead MOV R0,|
00002ea0  23 32 3a 41 44 52 20 52  31 2c 68 75 72 74 76 6f  |#2:ADR R1,hurtvo|
00002eb0  69 63 65 3a 53 57 49 20  22 53 6f 75 6e 64 5f 41  |ice:SWI "Sound_A|
00002ec0  74 74 61 63 68 4e 61 6d  65 64 56 6f 69 63 65 22  |ttachNamedVoice"|
00002ed0  3a 4c 44 52 20 52 30 2c  64 6f 6f 72 43 41 3a 4c  |:LDR R0,doorCA:L|
00002ee0  44 52 20 52 31 2c 64 6f  6f 72 50 44 3a 53 57 49  |DR R1,doorPD:SWI|
00002ef0  20 22 53 6f 75 6e 64 5f  43 6f 6e 74 72 6f 6c 50  | "Sound_ControlP|
00002f00  61 63 6b 65 64 22 3a 4d  4f 56 20 52 30 2c 23 34  |acked":MOV R0,#4|
00002f10  3a 42 20 64 65 6d 61 6e  0d 07 f8 56 2e 72 65 77  |:B deman...V.rew|
00002f20  69 6e 20 45 51 55 42 20  32 34 3a 45 51 55 57 20  |in EQUB 24:EQUW |
00002f30  34 34 34 3a 45 51 55 57  20 32 36 38 3a 45 51 55  |444:EQUW 268:EQU|
00002f40  57 20 37 36 30 3a 45 51  55 57 20 35 36 34 3a 45  |W 760:EQUW 564:E|
00002f50  51 55 42 20 32 39 3a 45  51 55 57 20 33 38 34 3a  |QUB 29:EQUW 384:|
00002f60  45 51 55 57 20 32 36 38  3a 41 4c 49 47 4e 0d 08  |EQUW 268:ALIGN..|
00002f70  02 10 2e 62 61 6e 6b 20  45 51 55 44 20 32 0d 08  |...bank EQUD 2..|
00002f80  0c 11 2e 6c 65 76 65 6c  20 45 51 55 44 20 30 0d  |...level EQUD 0.|
00002f90  08 16 19 2e 6c 65 76 74  61 62 20 45 51 55 44 20  |....levtab EQUD |
00002fa0  30 3a 45 51 55 44 20 30  0d 08 20 32 2e 64 6f 6f  |0:EQUD 0.. 2.doo|
00002fb0  72 76 6f 69 63 65 20 45  51 55 53 20 22 49 72 6f  |rvoice EQUS "Iro|
00002fc0  6e 45 66 66 65 63 74 2d  44 6f 6f 72 22 3a 45 51  |nEffect-Door":EQ|
00002fd0  55 42 20 30 3a 41 4c 49  47 4e 0d 08 2a 2f 2e 63  |UB 0:ALIGN..*/.c|
00002fe0  6c 61 6e 67 76 6f 69 63  65 20 45 51 55 53 20 22  |langvoice EQUS "|
00002ff0  49 72 6f 6e 45 66 66 65  63 74 2d 43 6c 61 6e 67  |IronEffect-Clang|
00003000  31 22 3a 45 51 55 42 20  30 0d 08 34 38 2e 62 6f  |1":EQUB 0..48.bo|
00003010  69 6e 67 76 6f 69 63 65  20 45 51 55 53 20 22 49  |ingvoice EQUS "I|
00003020  72 6f 6e 45 66 66 65 63  74 2d 41 72 72 6f 77 4d  |ronEffect-ArrowM|
00003030  69 73 73 22 3a 45 51 55  42 20 30 3a 41 4c 49 47  |iss":EQUB 0:ALIG|
00003040  4e 0d 08 3e 32 2e 68 75  72 74 76 6f 69 63 65 20  |N..>2.hurtvoice |
00003050  45 51 55 53 20 22 49 72  6f 6e 45 66 66 65 63 74  |EQUS "IronEffect|
00003060  2d 48 75 72 74 22 3a 45  51 55 42 20 30 3a 41 4c  |-Hurt":EQUB 0:AL|
00003070  49 47 4e 0d 08 48 05 5d  0d 08 52 32 74 74 61 62  |IGN..H.]..R2ttab|
00003080  3d 50 25 3a e3 20 49 25  3d 30 20 b8 20 33 38 3a  |=P%:. I%=0 . 38:|
00003090  21 50 25 3d 54 53 50 25  2b 31 36 2b 49 25 2a 31  |!P%=TSP%+16+I%*1|
000030a0  37 32 3a 50 25 2b 3d 34  3a ed 0d 08 5c 0b 5b 4f  |72:P%+=4:...\.[O|
000030b0  50 54 20 6f 25 0d 08 66  13 5c 44 72 61 77 20 6c  |PT o%..f.\Draw l|
000030c0  61 62 79 72 69 6e 74 68  0d 08 70 0d 2e 44 72 61  |abyrinth..p..Dra|
000030d0  77 4c 61 62 79 0d 08 7a  97 4d 4f 56 20 52 33 2c  |wLaby..z.MOV R3,|
000030e0  52 31 31 3a 41 44 44 20  52 34 2c 52 31 32 2c 23  |R11:ADD R4,R12,#|
000030f0  32 35 36 3a 4d 4f 56 20  52 30 2c 23 31 31 32 3a  |256:MOV R0,#112:|
00003100  4c 44 52 20 52 31 2c 62  61 6e 6b 3a 53 57 49 20  |LDR R1,bank:SWI |
00003110  22 4f 53 5f 42 79 74 65  22 3a 4d 4f 56 20 52 30  |"OS_Byte":MOV R0|
00003120  2c 23 33 34 3a 41 44 44  20 52 30 2c 52 30 2c 23  |,#34:ADD R0,R0,#|
00003130  35 31 32 3a 4c 44 52 20  52 31 2c 74 73 70 61 64  |512:LDR R1,tspad|
00003140  64 3a 4d 4f 56 20 52 35  2c 23 30 3a 4d 4f 56 20  |d:MOV R5,#0:MOV |
00003150  52 36 2c 23 36 3a 4d 4f  56 20 52 37 2c 52 31 30  |R6,#6:MOV R7,R10|
00003160  3a 41 44 52 20 52 38 2c  74 74 61 62 0d 08 84 13  |:ADR R8,ttab....|
00003170  2e 64 6c 6c 31 20 4d 4f  56 20 52 39 2c 23 36 0d  |.dll1 MOV R9,#6.|
00003180  08 8e a7 2e 64 6c 6c 32  20 4c 44 52 42 20 52 32  |....dll2 LDRB R2|
00003190  2c 5b 52 37 5d 2c 23 31  3a 4c 44 52 20 52 32 2c  |,[R7],#1:LDR R2,|
000031a0  5b 52 38 2c 52 32 2c 4c  53 4c 23 32 5d 3a 53 57  |[R8,R2,LSL#2]:SW|
000031b0  49 20 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 3a  |I "OS_SpriteOp":|
000031c0  41 44 44 20 52 33 2c 52  33 2c 23 36 34 3a 53 55  |ADD R3,R3,#64:SU|
000031d0  42 53 20 52 39 2c 52 39  2c 23 31 3a 42 4e 45 20  |BS R9,R9,#1:BNE |
000031e0  64 6c 6c 32 3a 53 55 42  20 52 33 2c 52 33 2c 23  |dll2:SUB R3,R3,#|
000031f0  33 38 34 3a 53 55 42 20  52 34 2c 52 34 2c 23 36  |384:SUB R4,R4,#6|
00003200  34 3a 41 44 44 20 52 37  2c 52 37 2c 23 31 36 3a  |4:ADD R7,R7,#16:|
00003210  53 55 42 53 20 52 36 2c  52 36 2c 23 31 3a 42 4e  |SUBS R6,R6,#1:BN|
00003220  45 20 64 6c 6c 31 0d 08  98 b6 4c 44 52 20 52 31  |E dll1....LDR R1|
00003230  2c 74 73 70 61 64 64 3a  4c 44 52 20 52 32 2c 6d  |,tspadd:LDR R2,m|
00003240  73 70 61 64 64 3a 4d 4f  56 20 52 33 2c 23 36 30  |spadd:MOV R3,#60|
00003250  3a 4d 4f 56 20 52 34 2c  23 30 3a 4d 4f 56 20 52  |:MOV R4,#0:MOV R|
00003260  35 2c 23 38 3a 53 57 49  20 22 4f 53 5f 53 70 72  |5,#8:SWI "OS_Spr|
00003270  69 74 65 4f 70 22 3a 4c  44 52 20 52 32 2c 6d 6e  |iteOp":LDR R2,mn|
00003280  74 62 3a 4c 44 52 20 52  36 2c 6d 6e 61 3a 54 45  |tb:LDR R6,mna:TE|
00003290  51 20 52 36 2c 23 32 35  35 3a 42 45 51 20 6e 6f  |Q R6,#255:BEQ no|
000032a0  6d 61 6e 3a 4c 44 52 20  52 32 2c 5b 52 32 2c 52  |man:LDR R2,[R2,R|
000032b0  36 5d 3a 4d 4f 56 20 52  33 2c 23 31 38 34 3a 4d  |6]:MOV R3,#184:M|
000032c0  4f 56 20 52 34 2c 23 31  32 34 3a 53 57 49 20 22  |OV R4,#124:SWI "|
000032d0  4f 53 5f 53 70 72 69 74  65 4f 70 22 0d 08 a2 60  |OS_SpriteOp"...`|
000032e0  2e 6e 6f 6d 61 6e 20 4d  4f 56 20 52 30 2c 23 31  |.noman MOV R0,#1|
000032f0  39 3a 53 57 49 20 22 4f  53 5f 42 79 74 65 22 3a  |9:SWI "OS_Byte":|
00003300  4d 4f 56 20 52 30 2c 23  31 31 33 3a 4c 44 52 20  |MOV R0,#113:LDR |
00003310  52 31 2c 62 61 6e 6b 3a  82 20 52 33 2c 52 31 2c  |R1,bank:. R3,R1,|
00003320  23 33 3a 53 57 49 20 22  4f 53 5f 42 79 74 65 22  |#3:SWI "OS_Byte"|
00003330  3a 53 54 52 20 52 33 2c  62 61 6e 6b 0d 08 ac 0f  |:STR R3,bank....|
00003340  4d 4f 56 20 50 43 2c 6c  69 6e 6b 0d 08 b6 05 5c  |MOV PC,link....\|
00003350  0d 08 c0 37 2e 74 73 74  6b 65 79 20 53 57 49 20  |...7.tstkey SWI |
00003360  22 4f 53 5f 52 65 61 64  45 73 63 61 70 65 53 74  |"OS_ReadEscapeSt|
00003370  61 74 65 22 3a 4c 44 4d  43 53 46 44 20 28 73 70  |ate":LDMCSFD (sp|
00003380  29 21 2c 7b 50 43 7d 0d  08 ca 4a 4d 4f 56 20 52  |)!,{PC}...JMOV R|
00003390  36 2c 23 30 3a 4d 4f 56  20 52 30 2c 23 31 32 31  |6,#0:MOV R0,#121|
000033a0  3a 4d 4f 56 20 52 31 2c  23 70 61 75 73 65 25 3a  |:MOV R1,#pause%:|
000033b0  53 57 49 20 22 4f 53 5f  42 79 74 65 22 3a 54 45  |SWI "OS_Byte":TE|
000033c0  51 20 52 31 2c 23 30 3a  42 4e 45 20 70 61 75 73  |Q R1,#0:BNE paus|
000033d0  65 0d 08 d4 d2 4d 4f 56  20 52 31 2c 23 6c 65 66  |e....MOV R1,#lef|
000033e0  74 25 3a 53 57 49 20 22  4f 53 5f 42 79 74 65 22  |t%:SWI "OS_Byte"|
000033f0  3a 54 45 51 20 52 31 2c  23 30 3a 84 52 4e 45 20  |:TEQ R1,#0:.RNE |
00003400  52 36 2c 52 36 2c 23 31  3a 4d 4f 56 20 52 31 2c  |R6,R6,#1:MOV R1,|
00003410  23 72 69 67 68 74 25 3a  53 57 49 20 22 4f 53 5f  |#right%:SWI "OS_|
00003420  42 79 74 65 22 3a 54 45  51 20 52 31 2c 23 30 3a  |Byte":TEQ R1,#0:|
00003430  84 52 4e 45 20 52 36 2c  52 36 2c 23 32 3a 4d 4f  |.RNE R6,R6,#2:MO|
00003440  56 20 52 31 2c 23 64 6f  77 6e 25 3a 53 57 49 20  |V R1,#down%:SWI |
00003450  22 4f 53 5f 42 79 74 65  22 3a 54 45 51 20 52 31  |"OS_Byte":TEQ R1|
00003460  2c 23 30 3a 84 52 4e 45  20 52 36 2c 52 36 2c 23  |,#0:.RNE R6,R6,#|
00003470  34 3a 4d 4f 56 20 52 31  2c 23 75 70 25 3a 53 57  |4:MOV R1,#up%:SW|
00003480  49 20 22 4f 53 5f 42 79  74 65 22 3a 54 45 51 20  |I "OS_Byte":TEQ |
00003490  52 31 2c 23 30 3a 84 52  4e 45 20 52 36 2c 52 36  |R1,#0:.RNE R6,R6|
000034a0  2c 23 38 0d 08 de 8e 4c  44 52 20 52 31 2c 6c 61  |,#8....LDR R1,la|
000034b0  73 74 63 6f 6d 62 3a 53  54 52 20 52 36 2c 6c 61  |stcomb:STR R6,la|
000034c0  73 74 63 6f 6d 62 3a 82  53 20 52 31 2c 52 31 2c  |stcomb:.S R1,R1,|
000034d0  52 36 3a 4c 44 52 45 51  20 52 36 2c 6c 61 73 74  |R6:LDREQ R6,last|
000034e0  6b 65 79 3a 42 45 51 20  67 74 6b 65 79 3a 80 53  |key:BEQ gtkey:.S|
000034f0  20 52 32 2c 52 31 2c 52  36 3a 4d 4f 56 4e 45 20  | R2,R1,R6:MOVNE |
00003500  52 36 2c 52 32 3a 42 4e  45 20 67 74 6b 65 79 3a  |R6,R2:BNE gtkey:|
00003510  4c 44 52 20 52 32 2c 6c  61 73 74 6b 65 79 3a 54  |LDR R2,lastkey:T|
00003520  53 54 20 52 31 2c 52 32  3a ec 51 20 52 36 2c 52  |ST R1,R2:.Q R6,R|
00003530  32 0d 08 e8 5b 2e 67 74  6b 65 79 20 80 53 20 52  |2...[.gtkey .S R|
00003540  31 2c 52 36 2c 23 31 3a  80 45 51 53 20 52 31 2c  |1,R6,#1:.EQS R1,|
00003550  52 36 2c 23 32 3a 80 45  51 53 20 52 31 2c 52 36  |R6,#2:.EQS R1,R6|
00003560  2c 23 34 3a 80 45 51 53  20 52 31 2c 52 36 2c 23  |,#4:.EQS R1,R6,#|
00003570  38 3a 4d 4f 56 4e 45 20  52 36 2c 52 31 3a 53 54  |8:MOVNE R6,R1:ST|
00003580  52 20 52 36 2c 6c 61 73  74 6b 65 79 0d 08 f2 50  |R R6,lastkey...P|
00003590  4d 4f 56 20 52 31 2c 23  66 69 72 65 25 3a 53 57  |MOV R1,#fire%:SW|
000035a0  49 20 22 4f 53 5f 42 79  74 65 22 3a 54 45 51 20  |I "OS_Byte":TEQ |
000035b0  52 31 2c 23 30 3a 84 52  4e 45 20 52 36 2c 52 36  |R1,#0:.RNE R6,R6|
000035c0  2c 23 31 36 3a 54 45 51  20 52 36 2c 23 30 3a 4d  |,#16:TEQ R6,#0:M|
000035d0  4f 56 4e 45 20 50 43 2c  6c 69 6e 6b 0d 08 fc da  |OVNE PC,link....|
000035e0  53 57 49 20 22 4f 53 5f  4d 6f 75 73 65 22 3a 54  |SWI "OS_Mouse":T|
000035f0  53 54 20 52 32 2c 23 34  3a 42 45 51 20 6d 72 74  |ST R2,#4:BEQ mrt|
00003600  6e 3a 53 55 42 53 20 52  33 2c 52 30 2c 23 36 34  |n:SUBS R3,R0,#64|
00003610  30 3a 52 53 42 4d 49 20  52 33 2c 52 33 2c 23 30  |0:RSBMI R3,R3,#0|
00003620  3a 53 55 42 53 20 52 34  2c 52 31 2c 23 34 30 30  |:SUBS R4,R1,#400|
00003630  3a 52 53 42 4d 49 20 52  34 2c 52 34 2c 23 30 3a  |:RSBMI R4,R4,#0:|
00003640  43 4d 50 20 52 33 2c 23  31 3a 4d 4f 56 4c 53 20  |CMP R3,#1:MOVLS |
00003650  52 33 2c 23 30 3a 43 4d  50 20 52 34 2c 23 31 3a  |R3,#0:CMP R4,#1:|
00003660  4d 4f 56 4c 53 20 52 34  2c 23 30 3a 43 4d 50 20  |MOVLS R4,#0:CMP |
00003670  52 33 2c 52 34 3a 42 45  51 20 6e 6f 6d 6f 76 3a  |R3,R4:BEQ nomov:|
00003680  42 48 49 20 78 67 74 3a  43 4d 50 20 52 31 2c 23  |BHI xgt:CMP R1,#|
00003690  34 30 30 3a 84 52 4c 54  20 52 36 2c 52 36 2c 23  |400:.RLT R6,R6,#|
000036a0  34 3a 84 52 47 54 20 52  36 2c 52 36 2c 23 38 3a  |4:.RGT R6,R6,#8:|
000036b0  42 20 6d 72 74 6e 0d 09  06 37 2e 78 67 74 20 43  |B mrtn...7.xgt C|
000036c0  4d 50 20 52 30 2c 23 36  34 30 3a 84 52 4c 54 20  |MP R0,#640:.RLT |
000036d0  52 36 2c 52 36 2c 23 31  3a 84 52 47 54 20 52 36  |R6,R6,#1:.RGT R6|
000036e0  2c 52 36 2c 23 32 3a 42  20 6d 72 74 6e 0d 09 10  |,R6,#2:B mrtn...|
000036f0  1a 2e 6e 6f 6d 6f 76 20  4c 44 52 20 52 36 2c 6c  |..nomov LDR R6,l|
00003700  61 73 74 6d 6b 65 79 0d  09 1a 65 2e 6d 72 74 6e  |astmkey...e.mrtn|
00003710  20 53 54 52 20 52 36 2c  6c 61 73 74 6d 6b 65 79  | STR R6,lastmkey|
00003720  3a 54 53 54 20 52 32 2c  23 33 3a 84 52 4e 45 20  |:TST R2,#3:.RNE |
00003730  52 36 2c 52 36 2c 23 31  36 3a 4d 4f 56 20 52 30  |R6,R6,#16:MOV R0|
00003740  2c 23 32 31 3a 41 44 52  20 52 31 2c 72 6d 6f 75  |,#21:ADR R1,rmou|
00003750  73 65 3a 53 57 49 20 22  4f 53 5f 57 6f 72 64 22  |se:SWI "OS_Word"|
00003760  3a 4d 4f 56 20 50 43 2c  6c 69 6e 6b 0d 09 24 39  |:MOV PC,link..$9|
00003770  2e 70 61 75 73 65 20 4d  4f 56 20 52 30 2c 23 31  |.pause MOV R0,#1|
00003780  33 3a 4d 4f 56 20 52 31  2c 23 34 3a 53 57 49 20  |3:MOV R1,#4:SWI |
00003790  22 4f 53 5f 42 79 74 65  22 3a 4d 4f 56 20 52 30  |"OS_Byte":MOV R0|
000037a0  2c 23 31 32 31 0d 09 2e  41 2e 72 65 6c 70 61 75  |,#121...A.relpau|
000037b0  73 65 20 4d 4f 56 20 52  31 2c 23 70 61 75 73 65  |se MOV R1,#pause|
000037c0  25 3a 53 57 49 20 22 4f  53 5f 42 79 74 65 22 3a  |%:SWI "OS_Byte":|
000037d0  54 45 51 20 52 31 2c 23  30 3a 42 4e 45 20 72 65  |TEQ R1,#0:BNE re|
000037e0  6c 70 61 75 73 65 0d 09  38 3f 2e 75 6e 70 61 75  |lpause..8?.unpau|
000037f0  73 65 20 4d 4f 56 20 52  31 2c 23 70 61 75 73 65  |se MOV R1,#pause|
00003800  25 3a 53 57 49 20 22 4f  53 5f 42 79 74 65 22 3a  |%:SWI "OS_Byte":|
00003810  54 45 51 20 52 31 2c 23  30 3a 42 45 51 20 75 6e  |TEQ R1,#0:BEQ un|
00003820  70 61 75 73 65 0d 09 42  41 2e 66 69 6e 70 61 75  |pause..BA.finpau|
00003830  73 65 20 4d 4f 56 20 52  31 2c 23 70 61 75 73 65  |se MOV R1,#pause|
00003840  25 3a 53 57 49 20 22 4f  53 5f 42 79 74 65 22 3a  |%:SWI "OS_Byte":|
00003850  54 45 51 20 52 31 2c 23  30 3a 42 4e 45 20 66 69  |TEQ R1,#0:BNE fi|
00003860  6e 70 61 75 73 65 0d 09  4c 32 4d 4f 56 20 52 30  |npause..L2MOV R0|
00003870  2c 23 31 34 3a 4d 4f 56  20 52 31 2c 23 34 3a 53  |,#14:MOV R1,#4:S|
00003880  57 49 20 22 4f 53 5f 42  79 74 65 22 3a 4d 4f 56  |WI "OS_Byte":MOV|
00003890  20 50 43 2c 6c 69 6e 6b  0d 09 56 05 5c 0d 09 60  | PC,link..V.\..`|
000038a0  13 2e 6c 61 73 74 6b 65  79 20 45 51 55 44 20 30  |..lastkey EQUD 0|
000038b0  0d 09 6a 14 2e 6c 61 73  74 6d 6b 65 79 20 45 51  |..j..lastmkey EQ|
000038c0  55 44 20 30 0d 09 74 14  2e 6c 61 73 74 63 6f 6d  |UD 0..t..lastcom|
000038d0  62 20 45 51 55 44 20 30  0d 09 7e 15 2e 67 73 70  |b EQUD 0..~..gsp|
000038e0  61 64 64 20 45 51 55 44  20 47 53 50 25 0d 09 88  |add EQUD GSP%...|
000038f0  11 2e 73 61 64 64 20 45  51 55 44 20 53 25 0d 09  |..sadd EQUD S%..|
00003900  92 11 2e 74 61 64 64 20  45 51 55 44 20 54 25 0d  |...tadd EQUD T%.|
00003910  09 9c 3a 5c 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..:\************|
00003920  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00003940  2a 2a 2a 2a 2a 2a 2a 2a  2a 0d 09 a6 05 5c 0d 09  |*********....\..|
00003950  b0 05 5d 0d 09 ba 23 65  79 65 73 3d 50 25 3a 21  |..]...#eyes=P%:!|
00003960  50 25 3d 35 34 34 3a 50  25 21 34 3d 36 36 34 3a  |P%=544:P%!4=664:|
00003970  50 25 2b 3d 31 32 0d 09  c4 18 64 72 6f 70 3d 50  |P%+=12....drop=P|
00003980  25 3a 21 50 25 3d 30 3a  50 25 2b 3d 31 32 0d 09  |%:!P%=0:P%+=12..|
00003990  ce 26 62 6f 6d 62 73 3d  50 25 3a e3 20 49 25 3d  |.&bombs=P%:. I%=|
000039a0  30 20 b8 20 38 3a 21 50  25 3d 30 3a 50 25 2b 3d  |0 . 8:!P%=0:P%+=|
000039b0  31 32 3a ed 0d 09 d8 27  61 6c 69 65 6e 73 3d 50  |12:....'aliens=P|
000039c0  25 3a e3 20 49 25 3d 30  20 b8 20 38 3a 21 50 25  |%:. I%=0 . 8:!P%|
000039d0  3d 30 3a 50 25 2b 3d 31  32 3a ed 0d 09 e2 21 6d  |=0:P%+=12:....!m|
000039e0  61 6e 74 3d 50 25 3a 21  50 25 3d 30 3a 50 25 21  |ant=P%:!P%=0:P%!|
000039f0  34 3d 31 38 30 3a 50 25  2b 3d 31 32 0d 09 ec 21  |4=180:P%+=12...!|
00003a00  6d 61 6e 62 3d 50 25 3a  21 50 25 3d 30 3a 50 25  |manb=P%:!P%=0:P%|
00003a10  21 34 3d 31 30 30 3a 50  25 2b 3d 31 32 0d 09 f6  |!4=100:P%+=12...|
00003a20  18 73 68 6f 74 3d 50 25  3a 21 50 25 3d 30 3a 50  |.shot=P%:!P%=0:P|
00003a30  25 2b 3d 31 32 0d 0a 00  0b 5b 4f 50 54 20 6f 25  |%+=12....[OPT o%|
00003a40  0d 0a 0a 05 5c 0d 0a 14  16 2e 72 61 6e 64 6f 6d  |....\.....random|
00003a50  20 45 51 55 44 20 33 38  37 37 31 0d 0a 1e 1a 2e  | EQUD 38771.....|
00003a60  72 63 6f 6e 73 74 20 45  51 55 44 20 26 31 44 38  |rconst EQUD &1D8|
00003a70  37 32 42 34 31 0d 0a 28  12 2e 66 69 66 6c 61 67  |72B41..(..fiflag|
00003a80  20 45 51 55 44 20 30 0d  0a 32 12 2e 65 79 65 64  | EQUD 0..2..eyed|
00003a90  65 6c 20 45 51 55 44 20  30 0d 0a 3c 13 2e 64 72  |el EQUD 0..<..dr|
00003aa0  6f 70 64 65 6c 20 45 51  55 44 20 30 0d 0a 46 1f  |opdel EQUD 0..F.|
00003ab0  2e 61 66 6c 61 67 20 45  51 55 44 20 30 3a 45 51  |.aflag EQUD 0:EQ|
00003ac0  55 44 20 30 3a 45 51 55  44 20 30 0d 0a 50 05 5c  |UD 0:EQUD 0..P.\|
00003ad0  0d 0a 5a 1b 2e 7a 61 70  20 53 54 4d 46 44 20 28  |..Z..zap STMFD (|
00003ae0  73 70 29 21 2c 7b 6c 69  6e 6b 7d 0d 0a 64 3f 4d  |sp)!,{link}..d?M|
00003af0  4f 56 20 52 30 2c 23 31  39 3a 53 57 49 20 22 4f  |OV R0,#19:SWI "O|
00003b00  53 5f 42 79 74 65 22 3a  4d 4f 56 20 52 30 2c 23  |S_Byte":MOV R0,#|
00003b10  31 34 3a 4d 4f 56 20 52  31 2c 23 34 3a 53 57 49  |14:MOV R1,#4:SWI|
00003b20  20 22 4f 53 5f 42 79 74  65 22 0d 0a 6e 8d 2e 7a  | "OS_Byte"..n..z|
00003b30  61 70 6c 70 20 4d 4f 56  20 52 30 2c 23 31 39 3a  |aplp MOV R0,#19:|
00003b40  53 57 49 20 22 4f 53 5f  42 79 74 65 22 3a 4c 44  |SWI "OS_Byte":LD|
00003b50  52 20 52 31 2c 62 61 6e  6b 3a 43 4d 50 20 52 31  |R R1,bank:CMP R1|
00003b60  2c 23 30 3a 42 4d 49 20  7a 61 70 6c 70 3a 4d 4f  |,#0:BMI zaplp:MO|
00003b70  56 20 52 30 2c 23 31 31  33 3a 53 57 49 20 22 4f  |V R0,#113:SWI "O|
00003b80  53 5f 42 79 74 65 22 3a  53 54 52 20 52 31 2c 62  |S_Byte":STR R1,b|
00003b90  61 6e 6b 3a 4d 4f 56 20  52 33 2c 52 31 3a 4d 4f  |ank:MOV R3,R1:MO|
00003ba0  56 20 52 30 2c 23 31 31  32 3a 53 57 49 20 22 4f  |V R0,#112:SWI "O|
00003bb0  53 5f 42 79 74 65 22 0d  0a 78 31 41 44 52 20 52  |S_Byte"..x1ADR R|
00003bc0  30 2c 73 61 64 64 2d 34  3a 4c 44 52 20 52 32 2c  |0,sadd-4:LDR R2,|
00003bd0  5b 52 30 2c 52 33 2c 4c  53 4c 23 32 5d 3a 42 4c  |[R0,R3,LSL#2]:BL|
00003be0  20 7a 61 70 63 6f 70 79  0d 0a 82 09 5c 70 6c 6f  | zapcopy....\plo|
00003bf0  74 0d 0a 8c 60 4d 4f 56  20 52 31 32 2c 23 32 33  |t...`MOV R12,#23|
00003c00  3a 41 44 52 20 52 31 31  2c 65 79 65 73 2d 31 32  |:ADR R11,eyes-12|
00003c10  3a 41 44 52 20 52 31 30  2c 73 70 72 74 61 62 3a  |:ADR R10,sprtab:|
00003c20  4d 4f 56 20 52 30 2c 23  33 34 3a 41 44 44 20 52  |MOV R0,#34:ADD R|
00003c30  30 2c 52 30 2c 23 35 31  32 3a 4c 44 52 20 52 31  |0,R0,#512:LDR R1|
00003c40  2c 67 73 70 61 64 64 3a  4d 4f 56 20 52 35 2c 23  |,gspadd:MOV R5,#|
00003c50  38 0d 0a 96 82 2e 70 6c  6f 74 6c 70 20 4c 44 52  |8.....plotlp LDR|
00003c60  20 52 33 2c 5b 52 31 31  2c 23 31 32 5d 21 3a 54  | R3,[R11,#12]!:T|
00003c70  45 51 20 52 33 2c 23 30  3a 42 45 51 20 70 6c 6e  |EQ R3,#0:BEQ pln|
00003c80  65 78 74 3a 4c 44 52 20  52 34 2c 5b 52 31 31 2c  |ext:LDR R4,[R11,|
00003c90  23 34 5d 3a 4c 44 52 20  52 32 2c 5b 52 31 31 2c  |#4]:LDR R2,[R11,|
00003ca0  23 38 5d 3a 80 20 52 32  2c 52 32 2c 23 31 30 32  |#8]:. R2,R2,#102|
00003cb0  30 3a 4c 44 52 20 52 32  2c 5b 52 31 30 2c 52 32  |0:LDR R2,[R10,R2|
00003cc0  5d 3a 53 57 49 20 22 4f  53 5f 53 70 72 69 74 65  |]:SWI "OS_Sprite|
00003cd0  4f 70 22 0d 0a a0 26 2e  70 6c 6e 65 78 74 20 53  |Op"...&.plnext S|
00003ce0  55 42 53 20 52 31 32 2c  52 31 32 2c 23 31 3a 42  |UBS R12,R12,#1:B|
00003cf0  4e 45 20 70 6c 6f 74 6c  70 0d 0a aa 0f 5c 62 6c  |NE plotlp....\bl|
00003d00  69 6e 6b 20 65 79 65 73  0d 0a b4 91 41 44 52 20  |ink eyes....ADR |
00003d10  52 31 32 2c 65 79 65 73  3a 4c 44 52 20 52 30 2c  |R12,eyes:LDR R0,|
00003d20  65 79 65 64 65 6c 3a 53  55 42 53 20 52 30 2c 52  |eyedel:SUBS R0,R|
00003d30  30 2c 23 31 3a 42 50 4c  20 6e 6f 62 6c 69 6e 6b  |0,#1:BPL noblink|
00003d40  3a 4c 44 52 20 52 31 2c  5b 52 31 32 2c 23 38 5d  |:LDR R1,[R12,#8]|
00003d50  3a 41 44 44 20 52 31 2c  52 31 2c 23 32 3a 54 45  |:ADD R1,R1,#2:TE|
00003d60  51 20 52 31 2c 23 32 30  34 3a 42 4e 45 20 6e 66  |Q R1,#204:BNE nf|
00003d70  62 6c 3a 4d 4f 56 20 52  31 2c 23 31 38 38 3a 4c  |bl:MOV R1,#188:L|
00003d80  44 52 20 52 30 2c 72 61  6e 64 6f 6d 3a 80 20 52  |DR R0,random:. R|
00003d90  30 2c 52 30 2c 23 32 35  35 0d 0a be 19 2e 6e 66  |0,R0,#255.....nf|
00003da0  62 6c 20 53 54 52 20 52  31 2c 5b 52 31 32 2c 23  |bl STR R1,[R12,#|
00003db0  38 5d 0d 0a c8 1a 2e 6e  6f 62 6c 69 6e 6b 20 53  |8].....noblink S|
00003dc0  54 52 20 52 30 2c 65 79  65 64 65 6c 0d 0a d2 0e  |TR R0,eyedel....|
00003dd0  5c 6d 6f 76 65 20 64 72  6f 70 0d 0a dc 55 41 44  |\move drop...UAD|
00003de0  44 20 52 31 32 2c 52 31  32 2c 23 31 32 3a 4c 44  |D R12,R12,#12:LD|
00003df0  52 20 52 30 2c 64 72 6f  70 64 65 6c 3a 53 55 42  |R R0,dropdel:SUB|
00003e00  53 20 52 30 2c 52 30 2c  23 31 3a 53 54 52 20 52  |S R0,R0,#1:STR R|
00003e10  30 2c 64 72 6f 70 64 65  6c 3a 42 45 51 20 73 74  |0,dropdel:BEQ st|
00003e20  64 72 6f 70 3a 42 50 4c  20 6e 6f 64 72 6f 70 0d  |drop:BPL nodrop.|
00003e30  0a e6 b4 4c 44 52 20 52  31 2c 5b 52 31 32 2c 23  |...LDR R1,[R12,#|
00003e40  38 5d 3a 41 44 44 20 52  31 2c 52 31 2c 23 32 3a  |8]:ADD R1,R1,#2:|
00003e50  54 45 51 20 52 31 2c 23  31 38 34 3a 42 45 51 20  |TEQ R1,#184:BEQ |
00003e60  64 72 6f 70 66 69 6e 3a  43 4d 50 20 52 31 2c 23  |dropfin:CMP R1,#|
00003e70  31 30 38 3a 42 4c 54 20  65 6e 64 64 72 6f 70 3a  |108:BLT enddrop:|
00003e80  4c 44 52 20 52 32 2c 5b  52 31 32 2c 23 34 5d 3a  |LDR R2,[R12,#4]:|
00003e90  43 4d 50 20 52 32 2c 23  31 32 30 3a 42 4c 45 20  |CMP R2,#120:BLE |
00003ea0  64 72 67 6e 64 3a 53 55  42 20 52 32 2c 52 32 2c  |drgnd:SUB R2,R2,|
00003eb0  23 31 32 3a 53 54 52 20  52 32 2c 5b 52 31 32 2c  |#12:STR R2,[R12,|
00003ec0  23 34 5d 3a 54 45 51 20  52 31 2c 23 31 34 34 3a  |#4]:TEQ R1,#144:|
00003ed0  ec 51 20 52 31 2c 23 31  30 38 3a 42 20 63 68 6b  |.Q R1,#108:B chk|
00003ee0  64 72 70 0d 0a f0 64 2e  73 74 64 72 6f 70 20 4d  |drp...d.stdrop M|
00003ef0  4f 56 20 52 31 2c 23 35  38 38 3a 53 54 52 20 52  |OV R1,#588:STR R|
00003f00  31 2c 5b 52 31 32 5d 3a  4d 4f 56 20 52 31 2c 23  |1,[R12]:MOV R1,#|
00003f10  35 31 32 3a 53 54 52 20  52 31 2c 5b 52 31 32 2c  |512:STR R1,[R12,|
00003f20  23 34 5d 3a 4d 4f 56 20  52 31 2c 23 38 38 3a 53  |#4]:MOV R1,#88:S|
00003f30  54 52 20 52 31 2c 5b 52  31 32 2c 23 38 5d 3a 42  |TR R1,[R12,#8]:B|
00003f40  20 6e 6f 64 72 6f 70 0d  0a fa 56 2e 64 72 6f 70  | nodrop...V.drop|
00003f50  66 69 6e 20 4d 4f 56 20  52 32 2c 23 30 3a 53 54  |fin MOV R2,#0:ST|
00003f60  52 20 52 32 2c 5b 52 31  32 5d 3a 4c 44 52 20 52  |R R2,[R12]:LDR R|
00003f70  30 2c 72 61 6e 64 6f 6d  3a 80 20 52 30 2c 52 30  |0,random:. R0,R0|
00003f80  2c 23 32 35 35 3a 53 54  52 20 52 30 2c 64 72 6f  |,#255:STR R0,dro|
00003f90  70 64 65 6c 3a 42 20 6e  6f 64 72 6f 70 0d 0b 04  |pdel:B nodrop...|
00003fa0  69 2e 64 72 67 6e 64 20  43 4d 50 20 52 31 2c 23  |i.drgnd CMP R1,#|
00003fb0  31 34 34 3a 42 47 54 20  63 68 6b 64 72 70 3a 4c  |144:BGT chkdrp:L|
00003fc0  44 52 20 52 30 2c 64 72  73 70 6c 61 74 43 41 3a  |DR R0,drsplatCA:|
00003fd0  4c 44 52 20 52 31 2c 64  72 73 70 6c 61 74 50 44  |LDR R1,drsplatPD|
00003fe0  3a 53 57 49 20 22 53 6f  75 6e 64 5f 43 6f 6e 74  |:SWI "Sound_Cont|
00003ff0  72 6f 6c 50 61 63 6b 65  64 22 3a 4d 4f 56 20 52  |rolPacked":MOV R|
00004000  31 2c 23 31 34 34 0d 0b  0e b0 2e 63 68 6b 64 72  |1,#144.....chkdr|
00004010  70 20 41 44 52 20 52 31  31 2c 6d 61 6e 74 3a 4d  |p ADR R11,mant:M|
00004020  4f 56 20 52 31 30 2c 23  32 3a 4d 4f 56 20 52 39  |OV R10,#2:MOV R9|
00004030  2c 23 31 36 3a 4d 4f 56  20 52 38 2c 23 36 34 3a  |,#16:MOV R8,#64:|
00004040  4d 4f 56 20 52 37 2c 23  38 38 3a 42 4c 20 63 68  |MOV R7,#88:BL ch|
00004050  65 63 6b 63 6f 6c 6c 3a  42 45 51 20 64 6d 68 69  |eckcoll:BEQ dmhi|
00004060  74 3a 41 44 44 20 52 31  31 2c 52 31 31 2c 23 31  |t:ADD R11,R11,#1|
00004070  32 3a 4d 4f 56 20 52 31  30 2c 23 32 3a 4d 4f 56  |2:MOV R10,#2:MOV|
00004080  20 52 39 2c 23 31 36 3a  4d 4f 56 20 52 38 2c 23  | R9,#16:MOV R8,#|
00004090  38 30 3a 4d 4f 56 20 52  37 2c 23 38 38 3a 42 4c  |80:MOV R7,#88:BL|
000040a0  20 63 68 65 63 6b 63 6f  6c 6c 3a 42 4e 45 20 65  | checkcoll:BNE e|
000040b0  6e 64 64 72 6f 70 0d 0b  18 2e 2e 64 6d 68 69 74  |nddrop.....dmhit|
000040c0  20 43 4d 50 20 52 31 2c  23 31 34 34 3a 4d 4f 56  | CMP R1,#144:MOV|
000040d0  4c 54 20 52 31 2c 23 31  34 34 3a 42 4c 20 72 65  |LT R1,#144:BL re|
000040e0  64 75 63 65 0d 0b 22 1c  2e 65 6e 64 64 72 6f 70  |duce.."..enddrop|
000040f0  20 53 54 52 20 52 31 2c  5b 52 31 32 2c 23 38 5d  | STR R1,[R12,#8]|
00004100  0d 0b 2c 0b 2e 6e 6f 64  72 6f 70 0d 0b 36 0f 5c  |..,..nodrop..6.\|
00004110  6d 6f 76 65 20 62 6f 6d  62 73 0d 0b 40 0d 4d 4f  |move bombs..@.MO|
00004120  56 20 52 36 2c 23 39 0d  0b 4a fb 2e 62 6f 6d 62  |V R6,#9..J..bomb|
00004130  6c 70 20 4c 44 52 20 52  30 2c 5b 52 31 32 2c 23  |lp LDR R0,[R12,#|
00004140  31 32 5d 21 3a 54 45 51  20 52 30 2c 23 30 3a 42  |12]!:TEQ R0,#0:B|
00004150  45 51 20 6e 6f 62 6f 6d  62 3a 4c 44 52 20 52 31  |EQ nobomb:LDR R1|
00004160  2c 5b 52 31 32 2c 23 38  5d 3a 41 44 44 20 52 31  |,[R12,#8]:ADD R1|
00004170  2c 52 31 2c 23 32 3a 43  4d 50 20 52 31 2c 23 32  |,R1,#2:CMP R1,#2|
00004180  33 36 3a 42 47 54 20 63  68 6b 62 6f 6d 62 3a ec  |36:BGT chkbomb:.|
00004190  51 20 52 31 2c 23 32 32  30 3a 4c 44 52 20 52 30  |Q R1,#220:LDR R0|
000041a0  2c 5b 52 31 32 2c 23 34  5d 3a 53 55 42 20 52 30  |,[R12,#4]:SUB R0|
000041b0  2c 52 30 2c 23 31 32 3a  53 54 52 20 52 30 2c 5b  |,R0,#12:STR R0,[|
000041c0  52 31 32 2c 23 34 5d 3a  43 4d 50 20 52 30 2c 23  |R12,#4]:CMP R0,#|
000041d0  31 32 30 3a 42 47 54 20  63 68 6b 62 6f 6d 62 3a  |120:BGT chkbomb:|
000041e0  4c 44 52 20 52 30 2c 62  73 6d 73 68 43 41 3a 4c  |LDR R0,bsmshCA:L|
000041f0  44 52 20 52 31 2c 73 68  6f 74 50 44 3a 53 57 49  |DR R1,shotPD:SWI|
00004200  20 22 53 6f 75 6e 64 5f  43 6f 6e 74 72 6f 6c 50  | "Sound_ControlP|
00004210  61 63 6b 65 64 22 3a 4d  4f 56 20 52 31 2c 23 32  |acked":MOV R1,#2|
00004220  33 36 0d 0b 54 b1 2e 63  68 6b 62 6f 6d 62 20 41  |36..T..chkbomb A|
00004230  44 52 20 52 31 31 2c 6d  61 6e 74 3a 4d 4f 56 20  |DR R11,mant:MOV |
00004240  52 31 30 2c 23 32 3a 4d  4f 56 20 52 39 2c 23 31  |R10,#2:MOV R9,#1|
00004250  31 3a 4d 4f 56 20 52 38  2c 23 36 34 3a 4d 4f 56  |1:MOV R8,#64:MOV|
00004260  20 52 37 2c 23 38 38 3a  42 4c 20 63 68 65 63 6b  | R7,#88:BL check|
00004270  63 6f 6c 6c 3a 42 45 51  20 62 6d 68 69 74 3a 41  |coll:BEQ bmhit:A|
00004280  44 44 20 52 31 31 2c 52  31 31 2c 23 31 32 3a 4d  |DD R11,R11,#12:M|
00004290  4f 56 20 52 31 30 2c 23  32 3a 4d 4f 56 20 52 39  |OV R10,#2:MOV R9|
000042a0  2c 23 31 31 3a 4d 4f 56  20 52 38 2c 23 38 30 3a  |,#11:MOV R8,#80:|
000042b0  4d 4f 56 20 52 37 2c 23  38 38 3a 42 4c 20 63 68  |MOV R7,#88:BL ch|
000042c0  65 63 6b 63 6f 6c 6c 3a  42 4e 45 20 66 69 6e 62  |eckcoll:BNE finb|
000042d0  6f 6d 62 0d 0b 5e 2e 2e  62 6d 68 69 74 20 43 4d  |omb..^..bmhit CM|
000042e0  50 20 52 31 2c 23 32 33  36 3a 4d 4f 56 4c 54 20  |P R1,#236:MOVLT |
000042f0  52 31 2c 23 32 33 36 3a  42 4c 20 72 65 64 75 63  |R1,#236:BL reduc|
00004300  65 0d 0b 68 40 2e 66 69  6e 62 6f 6d 62 20 53 54  |e..h@.finbomb ST|
00004310  52 20 52 31 2c 5b 52 31  32 2c 23 38 5d 3a 43 4d  |R R1,[R12,#8]:CM|
00004320  50 20 52 31 2c 23 32 35  32 3a ec 51 20 52 30 2c  |P R1,#252:.Q R0,|
00004330  23 30 3a 53 54 52 45 51  20 52 30 2c 5b 52 31 32  |#0:STREQ R0,[R12|
00004340  5d 0d 0b 72 24 2e 6e 6f  62 6f 6d 62 20 53 55 42  |]..r$.nobomb SUB|
00004350  53 20 52 36 2c 52 36 2c  23 31 3a 42 4e 45 20 62  |S R6,R6,#1:BNE b|
00004360  6f 6d 62 6c 70 0d 0b 7c  0e 5c 6d 6f 76 65 20 73  |omblp..|.\move s|
00004370  68 6f 74 0d 0b 86 9f 41  44 52 20 52 31 32 2c 73  |hot....ADR R12,s|
00004380  68 6f 74 3a 4c 44 52 20  52 30 2c 5b 52 31 32 5d  |hot:LDR R0,[R12]|
00004390  3a 54 45 51 20 52 30 2c  23 30 3a 42 45 51 20 6e  |:TEQ R0,#0:BEQ n|
000043a0  6f 73 68 6f 74 3a 4c 44  52 20 52 30 2c 5b 52 31  |oshot:LDR R0,[R1|
000043b0  32 2c 23 38 5d 3a 43 4d  50 20 52 30 2c 23 37 32  |2,#8]:CMP R0,#72|
000043c0  3a 42 47 45 20 62 6e 67  69 6e 67 3a 4c 44 52 20  |:BGE bnging:LDR |
000043d0  52 30 2c 5b 52 31 32 2c  23 34 5d 3a 41 44 44 20  |R0,[R12,#4]:ADD |
000043e0  52 30 2c 52 30 2c 23 31  36 3a 53 54 52 20 52 30  |R0,R0,#16:STR R0|
000043f0  2c 5b 52 31 32 2c 23 34  5d 3a 43 4d 50 20 52 30  |,[R12,#4]:CMP R0|
00004400  2c 23 38 30 30 3a 42 47  45 20 73 74 6f 70 73 68  |,#800:BGE stopsh|
00004410  6f 74 0d 0b 90 29 41 44  52 20 52 31 31 2c 61 6c  |ot...)ADR R11,al|
00004420  69 65 6e 73 3a 41 44 52  20 52 36 2c 61 66 6c 61  |iens:ADR R6,afla|
00004430  67 3a 4d 4f 56 20 52 35  2c 23 39 0d 0b 9a 4d 2e  |g:MOV R5,#9...M.|
00004440  73 61 63 6c 70 20 4c 44  52 42 20 52 30 2c 5b 52  |saclp LDRB R0,[R|
00004450  36 2c 52 35 5d 3a 43 4d  50 20 52 30 2c 23 32 3a  |6,R5]:CMP R0,#2:|
00004460  42 47 45 20 6e 61 63 63  3a 4c 44 52 20 52 30 2c  |BGE nacc:LDR R0,|
00004470  5b 52 31 31 5d 3a 54 45  51 20 52 30 2c 23 30 3a  |[R11]:TEQ R0,#0:|
00004480  42 45 51 20 6e 61 63 63  0d 0b a4 45 4d 4f 56 20  |BEQ nacc...EMOV |
00004490  52 31 30 2c 23 31 34 3a  4d 4f 56 20 52 39 2c 23  |R10,#14:MOV R9,#|
000044a0  35 3a 4d 4f 56 20 52 38  2c 23 36 34 3a 4d 4f 56  |5:MOV R8,#64:MOV|
000044b0  20 52 37 2c 23 37 36 3a  42 4c 20 63 68 65 63 6b  | R7,#76:BL check|
000044c0  63 6f 6c 6c 3a 42 4e 45  20 6e 61 63 63 0d 0b ae  |coll:BNE nacc...|
000044d0  59 4c 44 52 20 52 30 2c  68 69 74 43 41 3a 4c 44  |YLDR R0,hitCA:LD|
000044e0  52 20 52 31 2c 68 69 74  50 44 3a 4c 44 52 42 20  |R R1,hitPD:LDRB |
000044f0  52 32 2c 5b 52 36 2c 52  35 5d 3a 82 20 52 31 2c  |R2,[R6,R5]:. R1,|
00004500  52 31 2c 52 32 2c 4c 53  4c 23 31 31 3a 53 57 49  |R1,R2,LSL#11:SWI|
00004510  20 22 53 6f 75 6e 64 5f  43 6f 6e 74 72 6f 6c 50  | "Sound_ControlP|
00004520  61 63 6b 65 64 22 0d 0b  b8 72 41 44 44 20 52 32  |acked"...rADD R2|
00004530  2c 52 32 2c 23 31 3a 53  54 52 42 20 52 32 2c 5b  |,R2,#1:STRB R2,[|
00004540  52 36 2c 52 35 5d 3a 4c  44 52 20 52 30 2c 5b 52  |R6,R5]:LDR R0,[R|
00004550  31 31 5d 3a 53 55 42 20  52 30 2c 52 30 2c 23 38  |11]:SUB R0,R0,#8|
00004560  3a 53 54 52 20 52 30 2c  5b 52 31 32 5d 3a 4c 44  |:STR R0,[R12]:LD|
00004570  52 20 52 30 2c 5b 52 31  31 2c 23 34 5d 3a 53 54  |R R0,[R11,#4]:ST|
00004580  52 20 52 30 2c 5b 52 31  32 2c 23 34 5d 3a 4d 4f  |R R0,[R12,#4]:MO|
00004590  56 20 52 30 2c 23 36 38  0d 0b c2 3e 2e 62 6e 67  |V R0,#68...>.bng|
000045a0  69 6e 67 20 41 44 44 20  52 30 2c 52 30 2c 23 34  |ing ADD R0,R0,#4|
000045b0  3a 53 54 52 20 52 30 2c  5b 52 31 32 2c 23 38 5d  |:STR R0,[R12,#8]|
000045c0  3a 43 4d 50 20 52 30 2c  23 38 38 3a 42 4e 45 20  |:CMP R0,#88:BNE |
000045d0  6e 6f 73 68 6f 74 0d 0b  cc 2d 2e 73 74 6f 70 73  |noshot...-.stops|
000045e0  68 6f 74 20 4d 4f 56 20  52 30 2c 23 30 3a 53 54  |hot MOV R0,#0:ST|
000045f0  52 20 52 30 2c 5b 52 31  32 5d 3a 42 20 6e 6f 73  |R R0,[R12]:B nos|
00004600  68 6f 74 0d 0b d6 31 2e  6e 61 63 63 20 41 44 44  |hot...1.nacc ADD|
00004610  20 52 31 31 2c 52 31 31  2c 23 31 32 3a 53 55 42  | R11,R11,#12:SUB|
00004620  53 20 52 35 2c 52 35 2c  23 31 3a 42 4e 45 20 73  |S R5,R5,#1:BNE s|
00004630  61 63 6c 70 0d 0b e0 10  5c 6d 6f 76 65 20 61 6c  |aclp....\move al|
00004640  69 65 6e 73 0d 0b ea 68  2e 6e 6f 73 68 6f 74 20  |iens...h.noshot |
00004650  41 44 52 20 52 31 31 2c  61 76 65 6c 74 61 62 3a  |ADR R11,aveltab:|
00004660  41 44 52 20 52 31 32 2c  61 6c 69 65 6e 73 3a 4d  |ADR R12,aliens:M|
00004670  4f 56 20 52 31 30 2c 23  39 3a 4c 44 52 20 52 39  |OV R10,#9:LDR R9|
00004680  2c 72 61 6e 64 6f 6d 3a  4c 44 52 20 52 38 2c 72  |,random:LDR R8,r|
00004690  63 6f 6e 73 74 3a 4d 4f  56 20 52 37 2c 23 30 3a  |const:MOV R7,#0:|
000046a0  41 44 52 20 52 36 2c 61  66 6c 61 67 0d 0b f4 63  |ADR R6,aflag...c|
000046b0  2e 61 6c 6f 6f 70 20 4c  44 52 20 52 30 2c 5b 52  |.aloop LDR R0,[R|
000046c0  31 32 5d 3a 54 45 51 20  52 30 2c 23 30 3a 42 45  |12]:TEQ R0,#0:BE|
000046d0  51 20 6e 65 78 74 61 6c  3a 4d 4f 56 20 52 37 2c  |Q nextal:MOV R7,|
000046e0  23 31 3a 4c 44 52 42 20  52 31 2c 5b 52 36 2c 52  |#1:LDRB R1,[R6,R|
000046f0  31 30 5d 3a 43 4d 50 20  52 31 2c 23 32 3a 42 45  |10]:CMP R1,#2:BE|
00004700  51 20 66 61 6c 6c 3a 42  47 54 20 63 72 73 68 0d  |Q fall:BGT crsh.|
00004710  0b fe d5 4c 44 52 20 52  31 2c 5b 52 31 32 2c 23  |...LDR R1,[R12,#|
00004720  38 5d 3a 41 44 44 20 52  31 2c 52 31 2c 23 32 3a  |8]:ADD R1,R1,#2:|
00004730  43 4d 50 20 52 31 2c 23  32 32 30 3a ec 51 20 52  |CMP R1,#220:.Q R|
00004740  31 2c 23 32 30 34 3a 53  54 52 20 52 31 2c 5b 52  |1,#204:STR R1,[R|
00004750  31 32 2c 23 38 5d 3a 4d  4f 56 53 20 52 39 2c 52  |12,#8]:MOVS R9,R|
00004760  39 2c 4c 53 4c 23 31 3a  82 43 53 20 52 39 2c 52  |9,LSL#1:.CS R9,R|
00004770  39 2c 52 38 3a 53 54 52  20 52 39 2c 72 61 6e 64  |9,R8:STR R9,rand|
00004780  6f 6d 3a 4c 44 52 20 52  31 2c 5b 52 31 31 5d 3a  |om:LDR R1,[R11]:|
00004790  41 44 44 20 52 30 2c 52  30 2c 52 31 2c 41 53 52  |ADD R0,R0,R1,ASR|
000047a0  23 37 3a 53 54 52 20 52  30 2c 5b 52 31 32 5d 3a  |#7:STR R0,[R12]:|
000047b0  43 4d 50 20 52 31 2c 23  30 3a 42 50 4c 20 73 6b  |CMP R1,#0:BPL sk|
000047c0  6c 62 3a 43 4d 50 20 52  30 2c 23 36 30 3a 41 44  |lb:CMP R0,#60:AD|
000047d0  44 4c 54 20 52 31 2c 52  31 2c 23 36 34 3a 42 20  |DLT R1,R1,#64:B |
000047e0  73 6b 72 62 0d 0c 08 26  2e 73 6b 6c 62 20 43 4d  |skrb...&.sklb CM|
000047f0  50 20 52 30 2c 23 31 31  33 36 3a 53 55 42 47 54  |P R0,#1136:SUBGT|
00004800  20 52 31 2c 52 31 2c 23  36 34 0d 0c 12 73 2e 73  | R1,R1,#64...s.s|
00004810  6b 72 62 20 52 53 42 53  20 52 32 2c 52 30 2c 23  |krb RSBS R2,R0,#|
00004820  36 30 30 3a 4d 4f 56 50  4c 20 52 33 2c 52 32 3a  |600:MOVPL R3,R2:|
00004830  4d 56 4e 4d 49 20 52 33  2c 52 32 3a 43 4d 50 20  |MVNMI R3,R2:CMP |
00004840  52 33 2c 23 33 32 30 3a  41 44 44 47 54 20 52 31  |R3,#320:ADDGT R1|
00004850  2c 52 31 2c 52 32 2c 41  53 52 23 33 3a 41 44 44  |,R1,R2,ASR#3:ADD|
00004860  20 52 31 2c 52 31 2c 52  39 2c 41 53 52 23 32 37  | R1,R1,R9,ASR#27|
00004870  3a 53 54 52 20 52 31 2c  5b 52 31 31 5d 0d 0c 1c  |:STR R1,[R11]...|
00004880  86 4c 44 52 20 52 30 2c  5b 52 31 32 2c 23 34 5d  |.LDR R0,[R12,#4]|
00004890  3a 4c 44 52 20 52 31 2c  5b 52 31 31 2c 23 34 5d  |:LDR R1,[R11,#4]|
000048a0  3a 41 44 44 20 52 30 2c  52 30 2c 52 31 2c 41 53  |:ADD R0,R0,R1,AS|
000048b0  52 23 36 3a 53 54 52 20  52 30 2c 5b 52 31 32 2c  |R#6:STR R0,[R12,|
000048c0  23 34 5d 3a 52 53 42 20  52 32 2c 52 30 2c 23 35  |#4]:RSB R2,R0,#5|
000048d0  36 30 3a 41 44 44 20 52  31 2c 52 31 2c 52 32 3a  |60:ADD R1,R1,R2:|
000048e0  41 44 44 20 52 31 2c 52  31 2c 52 39 2c 41 53 52  |ADD R1,R1,R9,ASR|
000048f0  23 32 38 3a 53 54 52 20  52 31 2c 5b 52 31 31 2c  |#28:STR R1,[R11,|
00004900  23 34 5d 0d 0c 26 c8 4c  44 52 20 52 30 2c 5b 52  |#4]..&.LDR R0,[R|
00004910  31 32 2c 23 2d 26 36 43  5d 3a 54 45 51 20 52 30  |12,#-&6C]:TEQ R0|
00004920  2c 23 30 3a 42 4e 45 20  6e 65 78 74 61 6c 3a 80  |,#0:BNE nextal:.|
00004930  20 52 30 2c 52 39 2c 23  32 35 35 3a 43 4d 50 20  | R0,R9,#255:CMP |
00004940  52 30 2c 23 32 35 30 3a  42 4c 54 20 6e 65 78 74  |R0,#250:BLT next|
00004950  61 6c 3a 4c 44 52 20 52  30 2c 5b 52 31 32 5d 3a  |al:LDR R0,[R12]:|
00004960  41 44 44 20 52 30 2c 52  30 2c 23 32 30 3a 53 54  |ADD R0,R0,#20:ST|
00004970  52 20 52 30 2c 5b 52 31  32 2c 23 2d 26 36 43 5d  |R R0,[R12,#-&6C]|
00004980  3a 4c 44 52 20 52 30 2c  5b 52 31 32 2c 23 34 5d  |:LDR R0,[R12,#4]|
00004990  3a 53 54 52 20 52 30 2c  5b 52 31 32 2c 23 2d 26  |:STR R0,[R12,#-&|
000049a0  36 38 5d 3a 4d 4f 56 20  52 30 2c 23 32 32 30 3a  |68]:MOV R0,#220:|
000049b0  53 54 52 20 52 30 2c 5b  52 31 32 2c 23 2d 26 36  |STR R0,[R12,#-&6|
000049c0  34 5d 3a 42 20 6e 65 78  74 61 6c 0d 0c 30 b3 2e  |4]:B nextal..0..|
000049d0  66 61 6c 6c 20 4c 44 52  20 52 32 2c 5b 52 31 32  |fall LDR R2,[R12|
000049e0  2c 23 34 5d 3a 53 55 42  20 52 32 2c 52 32 2c 23  |,#4]:SUB R2,R2,#|
000049f0  32 34 3a 53 54 52 20 52  32 2c 5b 52 31 32 2c 23  |24:STR R2,[R12,#|
00004a00  34 5d 3a 43 4d 50 20 52  32 2c 23 31 32 30 3a 42  |4]:CMP R2,#120:B|
00004a10  47 54 20 6e 65 78 74 61  6c 3a 4d 4f 56 20 52 30  |GT nextal:MOV R0|
00004a20  2c 23 31 35 36 3a 53 54  52 20 52 30 2c 5b 52 31  |,#156:STR R0,[R1|
00004a30  32 2c 23 38 5d 3a 53 54  52 42 20 52 30 2c 5b 52  |2,#8]:STRB R0,[R|
00004a40  36 2c 52 31 30 5d 3a 4c  44 52 20 52 30 2c 73 70  |6,R10]:LDR R0,sp|
00004a50  6c 61 74 43 41 3a 4c 44  52 20 52 31 2c 73 70 6c  |latCA:LDR R1,spl|
00004a60  61 74 50 44 3a 53 57 49  20 22 53 6f 75 6e 64 5f  |atPD:SWI "Sound_|
00004a70  43 6f 6e 74 72 6f 6c 50  61 63 6b 65 64 22 0d 0c  |ControlPacked"..|
00004a80  3a 5a 2e 63 72 73 68 20  4c 44 52 20 52 30 2c 5b  |:Z.crsh LDR R0,[|
00004a90  52 31 32 2c 23 38 5d 3a  41 44 44 20 52 30 2c 52  |R12,#8]:ADD R0,R|
00004aa0  30 2c 23 32 3a 53 54 52  20 52 30 2c 5b 52 31 32  |0,#2:STR R0,[R12|
00004ab0  2c 23 38 5d 3a 43 4d 50  20 52 30 2c 23 31 38 34  |,#8]:CMP R0,#184|
00004ac0  3a ec 51 20 52 30 2c 23  30 3a 53 54 52 45 51 20  |:.Q R0,#0:STREQ |
00004ad0  52 30 2c 5b 52 31 32 5d  0d 0c 44 44 2e 6e 65 78  |R0,[R12]..DD.nex|
00004ae0  74 61 6c 20 41 44 44 20  52 31 31 2c 52 31 31 2c  |tal ADD R11,R11,|
00004af0  23 38 3a 41 44 44 20 52  31 32 2c 52 31 32 2c 23  |#8:ADD R12,R12,#|
00004b00  31 32 3a 53 55 42 53 20  52 31 30 2c 52 31 30 2c  |12:SUBS R10,R10,|
00004b10  23 31 3a 42 4e 45 20 61  6c 6f 6f 70 0d 0c 4e 29  |#1:BNE aloop..N)|
00004b20  54 45 51 20 52 37 2c 23  30 3a ec 51 20 52 30 2c  |TEQ R7,#0:.Q R0,|
00004b30  23 30 3a 4c 44 4d 45 51  46 44 20 28 73 70 29 21  |#0:LDMEQFD (sp)!|
00004b40  2c 7b 50 43 7d 0d 0c 58  0d 5c 6d 6f 76 65 20 6d  |,{PC}..X.\move m|
00004b50  61 6e 0d 0c 62 8d 4c 44  52 20 52 30 2c 66 69 66  |an..b.LDR R0,fif|
00004b60  6c 61 67 3a 54 45 51 20  52 30 2c 23 30 3a 42 4e  |lag:TEQ R0,#0:BN|
00004b70  45 20 7a 66 69 72 69 6e  67 3a 42 4c 20 74 73 74  |E zfiring:BL tst|
00004b80  6b 65 79 3a 54 53 54 20  52 36 2c 23 31 36 3a 42  |key:TST R6,#16:B|
00004b90  4c 4e 45 20 7a 66 69 72  65 3a 54 53 54 20 52 36  |LNE zfire:TST R6|
00004ba0  2c 23 31 3a 42 4e 45 20  7a 6d 6c 3a 54 53 54 20  |,#1:BNE zml:TST |
00004bb0  52 36 2c 23 32 3a 42 4e  45 20 7a 6d 72 3a 4d 4f  |R6,#2:BNE zmr:MO|
00004bc0  56 20 52 30 2c 23 38 3a  53 54 52 20 52 30 2c 5b  |V R0,#8:STR R0,[|
00004bd0  52 31 32 2c 23 38 5d 3a  42 20 7a 61 70 6c 70 0d  |R12,#8]:B zaplp.|
00004be0  0c 6c 9a 2e 7a 6d 72 20  4c 44 52 20 52 31 2c 5b  |.l..zmr LDR R1,[|
00004bf0  52 31 32 5d 3a 43 4d 50  20 52 31 2c 23 39 36 30  |R12]:CMP R1,#960|
00004c00  3a 42 47 45 20 7a 61 70  6c 70 3a 41 44 44 20 52  |:BGE zaplp:ADD R|
00004c10  31 2c 52 31 2c 23 38 3a  53 54 52 20 52 31 2c 5b  |1,R1,#8:STR R1,[|
00004c20  52 31 32 5d 3a 53 54 52  20 52 31 2c 5b 52 31 32  |R12]:STR R1,[R12|
00004c30  2c 23 31 32 5d 3a 4c 44  52 20 52 31 2c 5b 52 31  |,#12]:LDR R1,[R1|
00004c40  32 2c 23 32 30 5d 3a 41  44 44 20 52 31 2c 52 31  |2,#20]:ADD R1,R1|
00004c50  2c 23 34 3a 43 4d 50 20  52 31 2c 23 35 36 3a ec  |,#4:CMP R1,#56:.|
00004c60  51 20 52 31 2c 23 32 38  3a 53 54 52 20 52 31 2c  |Q R1,#28:STR R1,|
00004c70  5b 52 31 32 2c 23 32 30  5d 0d 0c 76 54 2e 7a 6e  |[R12,#20]..vT.zn|
00004c80  6f 61 72 20 4c 44 52 20  52 31 2c 5b 52 31 32 2c  |oar LDR R1,[R12,|
00004c90  23 38 5d 3a 54 45 51 20  52 31 2c 23 31 36 3a 42  |#8]:TEQ R1,#16:B|
00004ca0  45 51 20 7a 61 70 6c 70  3a 41 44 44 20 52 31 2c  |EQ zaplp:ADD R1,|
00004cb0  52 31 2c 23 34 3a 53 54  52 20 52 31 2c 5b 52 31  |R1,#4:STR R1,[R1|
00004cc0  32 2c 23 38 5d 3a 42 20  7a 61 70 6c 70 0d 0c 80  |2,#8]:B zaplp...|
00004cd0  9a 2e 7a 6d 6c 20 4c 44  52 20 52 31 2c 5b 52 31  |..zml LDR R1,[R1|
00004ce0  32 5d 3a 43 4d 50 20 52  31 2c 23 31 38 30 3a 42  |2]:CMP R1,#180:B|
00004cf0  4c 45 20 7a 61 70 6c 70  3a 53 55 42 20 52 31 2c  |LE zaplp:SUB R1,|
00004d00  52 31 2c 23 38 3a 53 54  52 20 52 31 2c 5b 52 31  |R1,#8:STR R1,[R1|
00004d10  32 5d 3a 53 54 52 20 52  31 2c 5b 52 31 32 2c 23  |2]:STR R1,[R12,#|
00004d20  31 32 5d 3a 4c 44 52 20  52 31 2c 5b 52 31 32 2c  |12]:LDR R1,[R12,|
00004d30  23 32 30 5d 3a 53 55 42  20 52 31 2c 52 31 2c 23  |#20]:SUB R1,R1,#|
00004d40  34 3a 43 4d 50 20 52 31  2c 23 32 34 3a ec 51 20  |4:CMP R1,#24:.Q |
00004d50  52 31 2c 23 35 32 3a 53  54 52 20 52 31 2c 5b 52  |R1,#52:STR R1,[R|
00004d60  31 32 2c 23 32 30 5d 0d  0c 8a 53 2e 7a 6e 6f 61  |12,#20]...S.znoa|
00004d70  6c 20 4c 44 52 20 52 31  2c 5b 52 31 32 2c 23 38  |l LDR R1,[R12,#8|
00004d80  5d 3a 54 45 51 20 52 31  2c 23 30 3a 42 45 51 20  |]:TEQ R1,#0:BEQ |
00004d90  7a 61 70 6c 70 3a 53 55  42 20 52 31 2c 52 31 2c  |zaplp:SUB R1,R1,|
00004da0  23 34 3a 53 54 52 20 52  31 2c 5b 52 31 32 2c 23  |#4:STR R1,[R12,#|
00004db0  38 5d 3a 42 20 7a 61 70  6c 70 0d 0c 94 a4 2e 7a  |8]:B zaplp.....z|
00004dc0  66 69 72 65 20 4c 44 52  20 52 30 2c 5b 52 31 32  |fire LDR R0,[R12|
00004dd0  2c 23 32 34 5d 3a 54 45  51 20 52 30 2c 23 30 3a  |,#24]:TEQ R0,#0:|
00004de0  4d 4f 56 4e 45 20 50 43  2c 6c 69 6e 6b 3a 4d 4f  |MOVNE PC,link:MO|
00004df0  56 20 52 30 2c 23 31 3a  53 54 52 20 52 30 2c 66  |V R0,#1:STR R0,f|
00004e00  69 66 6c 61 67 3a 4d 4f  56 20 52 30 2c 23 32 30  |iflag:MOV R0,#20|
00004e10  3a 53 54 52 20 52 30 2c  5b 52 31 32 2c 23 38 5d  |:STR R0,[R12,#8]|
00004e20  3a 4c 44 52 20 52 30 2c  73 68 6f 74 43 41 3a 4c  |:LDR R0,shotCA:L|
00004e30  44 52 20 52 31 2c 73 68  6f 74 50 44 3a 53 57 49  |DR R1,shotPD:SWI|
00004e40  20 22 53 6f 75 6e 64 5f  43 6f 6e 74 72 6f 6c 50  | "Sound_ControlP|
00004e50  61 63 6b 65 64 22 3a 42  20 7a 61 70 6c 70 0d 0c  |acked":B zaplp..|
00004e60  9e 7d 2e 7a 66 69 72 69  6e 67 20 41 44 44 20 52  |.}.zfiring ADD R|
00004e70  30 2c 52 30 2c 23 31 3a  53 54 52 20 52 30 2c 66  |0,R0,#1:STR R0,f|
00004e80  69 66 6c 61 67 3a 43 4d  50 20 52 30 2c 23 35 3a  |iflag:CMP R0,#5:|
00004e90  42 45 51 20 7a 73 68 6f  6f 74 3a 42 48 49 20 7a  |BEQ zshoot:BHI z|
00004ea0  73 68 6f 74 3a 54 45 51  20 52 30 2c 23 33 3a 42  |shot:TEQ R0,#3:B|
00004eb0  4e 45 20 7a 61 70 6c 70  3a 4d 4f 56 20 52 30 2c  |NE zaplp:MOV R0,|
00004ec0  23 32 34 3a 53 54 52 20  52 30 2c 5b 52 31 32 2c  |#24:STR R0,[R12,|
00004ed0  23 38 5d 3a 42 20 7a 61  70 6c 70 0d 0c a8 78 2e  |#8]:B zaplp...x.|
00004ee0  7a 73 68 6f 6f 74 20 4c  44 52 20 52 31 2c 5b 52  |zshoot LDR R1,[R|
00004ef0  31 32 5d 3a 41 44 44 20  52 31 2c 52 31 2c 23 34  |12]:ADD R1,R1,#4|
00004f00  34 3a 53 54 52 20 52 31  2c 5b 52 31 32 2c 23 32  |4:STR R1,[R12,#2|
00004f10  34 5d 3a 4d 4f 56 20 52  31 2c 23 32 37 32 3a 53  |4]:MOV R1,#272:S|
00004f20  54 52 20 52 31 2c 5b 52  31 32 2c 23 32 38 5d 3a  |TR R1,[R12,#28]:|
00004f30  4d 4f 56 20 52 31 2c 23  35 36 3a 53 54 52 20 52  |MOV R1,#56:STR R|
00004f40  31 2c 5b 52 31 32 2c 23  33 32 5d 3a 42 20 7a 61  |1,[R12,#32]:B za|
00004f50  70 6c 70 0d 0c b2 4e 2e  7a 73 68 6f 74 20 4c 44  |plp...N.zshot LD|
00004f60  52 20 52 30 2c 5b 52 31  32 2c 23 33 32 5d 3a 41  |R R0,[R12,#32]:A|
00004f70  44 44 20 52 30 2c 52 30  2c 23 34 3a 53 54 52 20  |DD R0,R0,#4:STR |
00004f80  52 30 2c 5b 52 31 32 2c  23 33 32 5d 3a 54 45 51  |R0,[R12,#32]:TEQ|
00004f90  20 52 30 2c 23 36 38 3a  42 4e 45 20 7a 61 70 6c  | R0,#68:BNE zapl|
00004fa0  70 0d 0c bc 3d 4d 4f 56  20 52 30 2c 23 30 3a 53  |p...=MOV R0,#0:S|
00004fb0  54 52 20 52 30 2c 66 69  66 6c 61 67 3a 4d 4f 56  |TR R0,fiflag:MOV|
00004fc0  20 52 30 2c 23 38 3a 53  54 52 20 52 30 2c 5b 52  | R0,#8:STR R0,[R|
00004fd0  31 32 2c 23 38 5d 3a 42  20 7a 61 70 6c 70 0d 0c  |12,#8]:B zaplp..|
00004fe0  c6 05 5d 0d 0c d0 15 61  76 65 6c 74 61 62 3d 50  |..]....aveltab=P|
00004ff0  25 3a 50 25 2b 3d 37 32  0d 0c da 3b 73 70 72 74  |%:P%+=72...;sprt|
00005000  61 62 3d 50 25 3a 51 25  3d 47 53 50 25 2b 31 36  |ab=P%:Q%=GSP%+16|
00005010  3a e3 20 49 25 3d 30 20  b8 20 36 33 3a 21 50 25  |:. I%=0 . 63:!P%|
00005020  3d 51 25 3a 51 25 2b 3d  21 51 25 3a 50 25 2b 3d  |=Q%:Q%+=!Q%:P%+=|
00005030  34 3a ed 0d 0c e4 0b 5b  4f 50 54 20 6f 25 0d 0c  |4:.....[OPT o%..|
00005040  ee 19 2e 73 68 6f 74 43  41 20 45 51 55 44 20 26  |...shotCA EQUD &|
00005050  31 37 46 30 30 30 31 0d  0c f8 18 2e 73 68 6f 74  |17F0001.....shot|
00005060  50 44 20 45 51 55 44 20  26 31 34 32 30 30 30 0d  |PD EQUD &142000.|
00005070  0d 02 18 2e 68 69 74 43  41 20 45 51 55 44 20 26  |....hitCA EQUD &|
00005080  31 37 46 30 30 30 32 0d  0d 0c 16 2e 68 69 74 50  |17F0002.....hitP|
00005090  44 20 45 51 55 44 20 26  31 32 46 30 30 0d 0d 16  |D EQUD &12F00...|
000050a0  1a 2e 73 70 6c 61 74 43  41 20 45 51 55 44 20 26  |..splatCA EQUD &|
000050b0  31 37 46 30 30 30 34 0d  0d 20 18 2e 73 70 6c 61  |17F0004.. ..spla|
000050c0  74 50 44 20 45 51 55 44  20 26 31 32 35 35 30 0d  |tPD EQUD &12550.|
000050d0  0d 2a 1a 2e 62 73 6d 73  68 43 41 20 45 51 55 44  |.*..bsmshCA EQUD|
000050e0  20 26 31 37 46 30 30 30  35 0d 0d 34 1c 2e 64 72  | &17F0005..4..dr|
000050f0  73 70 6c 61 74 43 41 20  45 51 55 44 20 26 31 37  |splatCA EQUD &17|
00005100  46 30 30 30 36 0d 0d 3e  1a 2e 64 72 73 70 6c 61  |F0006..>..drspla|
00005110  74 50 44 20 45 51 55 44  20 26 31 31 46 30 30 0d  |tPD EQUD &11F00.|
00005120  0d 48 05 5c 0d 0d 52 16  5c 43 6f 6c 6c 69 73 6f  |.H.\..R.\Colliso|
00005130  6e 20 64 65 74 65 63 74  6f 72 0d 0d 5c 37 5c 52  |n detector..\7\R|
00005140  31 32 20 2d 20 4f 62 6a  65 63 74 20 64 6f 69 6e  |12 - Object doin|
00005150  67 20 68 69 74 74 69 6e  67 2c 20 52 31 31 20 2d  |g hitting, R11 -|
00005160  20 4f 62 6a 65 63 74 20  62 65 69 6e 67 20 68 69  | Object being hi|
00005170  74 0d 0d 66 39 5c 52 31  30 20 2d 20 48 65 69 67  |t..f9\R10 - Heig|
00005180  68 74 20 6f 66 20 68 69  74 74 65 72 28 31 73 29  |ht of hitter(1s)|
00005190  2c 20 52 39 20 2d 20 57  69 64 74 68 20 6f 66 20  |, R9 - Width of |
000051a0  68 69 74 74 65 72 28 31  73 29 0d 0d 70 39 5c 52  |hitter(1s)..p9\R|
000051b0  38 20 20 2d 20 48 65 69  67 68 74 20 6f 66 20 68  |8  - Height of h|
000051c0  69 74 74 65 65 28 34 73  29 2c 20 52 37 20 2d 20  |ittee(4s), R7 - |
000051d0  57 69 64 74 68 20 6f 66  20 68 69 74 74 65 65 28  |Width of hittee(|
000051e0  34 73 29 0d 0d 7a 21 5c  52 65 74 75 72 6e 73 20  |4s)..z!\Returns |
000051f0  45 51 20 69 66 20 68 69  74 2c 20 4e 45 20 69 66  |EQ if hit, NE if|
00005200  20 6e 6f 74 0d 0d 84 05  5c 0d 0d 8e 27 2e 63 68  | not....\...'.ch|
00005210  65 63 6b 63 6f 6c 6c 20  53 54 4d 46 44 20 28 73  |eckcoll STMFD (s|
00005220  70 29 21 2c 7b 52 30 2d  52 36 2c 6c 69 6e 6b 7d  |p)!,{R0-R6,link}|
00005230  0d 0d 98 39 4d 4f 56 20  52 30 2c 23 34 33 3a 41  |...9MOV R0,#43:A|
00005240  44 44 20 52 30 2c 52 30  2c 23 35 31 32 3a 4c 44  |DD R0,R0,#512:LD|
00005250  52 20 52 31 2c 67 73 70  61 64 64 3a 41 44 52 20  |R R1,gspadd:ADR |
00005260  52 33 2c 73 70 72 74 61  62 0d 0d a2 52 53 55 42  |R3,sprtab...RSUB|
00005270  20 52 34 2c 52 31 30 2c  23 31 3a 4c 44 52 20 52  | R4,R10,#1:LDR R|
00005280  36 2c 5b 52 31 31 2c 23  34 5d 3a 4c 44 52 20 52  |6,[R11,#4]:LDR R|
00005290  35 2c 5b 52 31 32 2c 23  34 5d 3a 53 55 42 20 52  |5,[R12,#4]:SUB R|
000052a0  36 2c 52 35 2c 52 36 3a  41 44 44 20 52 36 2c 52  |6,R5,R6:ADD R6,R|
000052b0  36 2c 52 31 30 2c 4c 53  4c 23 32 0d 0d ac 67 4c  |6,R10,LSL#2...gL|
000052c0  44 52 20 52 31 30 2c 5b  52 31 31 2c 23 38 5d 3a  |DR R10,[R11,#8]:|
000052d0  80 20 52 31 30 2c 52 31  30 2c 23 31 30 32 30 3a  |. R10,R10,#1020:|
000052e0  4c 44 52 20 52 31 30 2c  5b 52 33 2c 52 31 30 5d  |LDR R10,[R3,R10]|
000052f0  3a 4c 44 52 20 52 31 34  2c 5b 52 31 32 2c 23 38  |:LDR R14,[R12,#8|
00005300  5d 3a 80 20 52 31 34 2c  52 31 34 2c 23 31 30 32  |]:. R14,R14,#102|
00005310  30 3a 4c 44 52 20 52 31  34 2c 5b 52 33 2c 52 31  |0:LDR R14,[R3,R1|
00005320  34 5d 0d 0d b6 39 2e 63  6f 6c 63 79 20 53 55 42  |4]...9.colcy SUB|
00005330  53 20 52 36 2c 52 36 2c  23 34 3a 42 4d 49 20 66  |S R6,R6,#4:BMI f|
00005340  69 6e 63 6f 6c 6c 3a 43  4d 50 20 52 36 2c 52 38  |incoll:CMP R6,R8|
00005350  3a 42 47 45 20 63 6f 6c  63 6e 79 0d 0d c0 4a 53  |:BGE colcny...JS|
00005360  55 42 20 52 33 2c 52 39  2c 23 31 3a 4c 44 52 20  |UB R3,R9,#1:LDR |
00005370  52 35 2c 5b 52 31 31 5d  3a 4c 44 52 20 52 32 2c  |R5,[R11]:LDR R2,|
00005380  5b 52 31 32 5d 3a 53 55  42 20 52 35 2c 52 32 2c  |[R12]:SUB R5,R2,|
00005390  52 35 3a 41 44 44 20 52  35 2c 52 35 2c 52 39 2c  |R5:ADD R5,R5,R9,|
000053a0  4c 53 4c 23 32 0d 0d ca  38 2e 63 6f 6c 63 78 20  |LSL#2...8.colcx |
000053b0  53 55 42 53 20 52 35 2c  52 35 2c 23 34 3a 42 4d  |SUBS R5,R5,#4:BM|
000053c0  49 20 63 6f 6c 63 6e 79  3a 43 4d 50 20 52 35 2c  |I colcny:CMP R5,|
000053d0  52 37 3a 42 47 45 20 63  6f 6c 63 6e 78 0d 0d d4  |R7:BGE colcnx...|
000053e0  d2 53 54 4d 46 44 20 28  73 70 29 21 2c 7b 52 35  |.STMFD (sp)!,{R5|
000053f0  7d 3a 4d 4f 56 20 52 32  2c 52 31 34 3a 53 57 49  |}:MOV R2,R14:SWI|
00005400  20 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 3a 54  | "OS_SpriteOp":T|
00005410  45 51 20 52 35 2c 23 31  3a 4c 44 4d 46 44 20 28  |EQ R5,#1:LDMFD (|
00005420  73 70 29 21 2c 7b 52 35  7d 3a 42 4e 45 20 63 6f  |sp)!,{R5}:BNE co|
00005430  6c 63 6e 78 3a 53 54 4d  46 44 20 28 73 70 29 21  |lcnx:STMFD (sp)!|
00005440  2c 7b 52 33 2d 52 35 7d  3a 4d 4f 56 20 52 32 2c  |,{R3-R5}:MOV R2,|
00005450  52 31 30 3a 4d 4f 56 20  52 33 2c 52 35 2c 4c 53  |R10:MOV R3,R5,LS|
00005460  52 23 32 3a 4d 4f 56 20  52 34 2c 52 36 2c 4c 53  |R#2:MOV R4,R6,LS|
00005470  52 23 32 3a 53 57 49 20  22 4f 53 5f 53 70 72 69  |R#2:SWI "OS_Spri|
00005480  74 65 4f 70 22 3a 54 45  51 20 52 35 2c 23 31 3a  |teOp":TEQ R5,#1:|
00005490  4c 44 4d 46 44 20 28 73  70 29 21 2c 7b 52 33 2d  |LDMFD (sp)!,{R3-|
000054a0  52 35 7d 3a 42 45 51 20  66 69 6e 63 6f 6c 6c 0d  |R5}:BEQ fincoll.|
000054b0  0d de 23 2e 63 6f 6c 63  6e 78 20 53 55 42 53 20  |..#.colcnx SUBS |
000054c0  52 33 2c 52 33 2c 23 31  3a 42 50 4c 20 63 6f 6c  |R3,R3,#1:BPL col|
000054d0  63 78 0d 0d e8 23 2e 63  6f 6c 63 6e 79 20 53 55  |cx...#.colcny SU|
000054e0  42 53 20 52 34 2c 52 34  2c 23 31 3a 42 50 4c 20  |BS R4,R4,#1:BPL |
000054f0  63 6f 6c 63 79 0d 0d f2  23 2e 66 69 6e 63 6f 6c  |colcy...#.fincol|
00005500  6c 20 4c 44 4d 46 44 20  28 73 70 29 21 2c 7b 52  |l LDMFD (sp)!,{R|
00005510  30 2d 52 36 2c 50 43 7d  0d 0d fc 05 5c 0d 0e 06  |0-R6,PC}....\...|
00005520  3d 2e 66 6c 69 70 65 76  65 6e 74 20 43 4d 50 20  |=.flipevent CMP |
00005530  52 30 2c 23 34 3a 4d 4f  56 4e 45 53 20 50 43 2c  |R0,#4:MOVNES PC,|
00005540  6c 69 6e 6b 3a 53 54 4d  46 44 20 28 73 70 29 21  |link:STMFD (sp)!|
00005550  2c 7b 52 30 2c 6c 69 6e  6b 7d 0d 0e 10 3a 4c 44  |,{R0,link}...:LD|
00005560  52 20 52 30 2c 62 61 6e  6b 3a 4d 56 4e 20 52 30  |R R0,bank:MVN R0|
00005570  2c 52 30 3a 53 54 52 20  52 30 2c 62 61 6e 6b 3a  |,R0:STR R0,bank:|
00005580  4c 44 4d 46 44 20 28 73  70 29 21 2c 7b 52 30 2c  |LDMFD (sp)!,{R0,|
00005590  50 43 7d 5e 0d 0e 1a 05  5c 0d 0e 24 1e 2e 75 6e  |PC}^....\..$..un|
000055a0  70 61 63 6b 20 53 54 4d  46 44 20 28 73 70 29 21  |pack STMFD (sp)!|
000055b0  2c 7b 6c 69 6e 6b 7d 0d  0e 2e 5a 4c 44 52 20 52  |,{link}...ZLDR R|
000055c0  31 2c 6c 65 6e 67 74 68  3a 4c 44 52 20 52 31 30  |1,length:LDR R10|
000055d0  2c 73 63 72 61 64 64 3a  4c 44 52 20 52 31 31 2c  |,scradd:LDR R11,|
000055e0  70 69 63 64 61 74 3a 41  44 44 20 52 31 32 2c 52  |picdat:ADD R12,R|
000055f0  31 31 2c 23 32 35 36 3a  41 44 44 20 52 30 2c 52  |11,#256:ADD R0,R|
00005600  31 31 2c 23 35 31 32 3a  4d 4f 56 20 52 34 2c 23  |11,#512:MOV R4,#|
00005610  30 0d 0e 38 37 2e 75 70  6c 20 4c 44 52 42 20 52  |0..87.upl LDRB R|
00005620  32 2c 5b 52 30 5d 2c 23  31 3a 42 4c 20 70 72 69  |2,[R0],#1:BL pri|
00005630  6e 74 3a 53 55 42 53 20  52 31 2c 52 31 2c 23 31  |nt:SUBS R1,R1,#1|
00005640  3a 42 4e 45 20 75 70 6c  0d 0e 42 14 4c 44 4d 46  |:BNE upl..B.LDMF|
00005650  44 20 28 73 70 29 21 2c  7b 50 43 7d 0d 0e 4c 05  |D (sp)!,{PC}..L.|
00005660  5c 0d 0e 56 0a 2e 70 72  69 6e 74 0d 0e 60 16 53  |\..V..print..`.S|
00005670  54 4d 46 44 20 28 73 70  29 21 2c 7b 6c 69 6e 6b  |TMFD (sp)!,{link|
00005680  7d 0d 0e 6a 2a 4c 44 52  42 20 52 33 2c 5b 52 31  |}..j*LDRB R3,[R1|
00005690  31 2c 52 32 5d 3a 54 45  51 20 52 33 2c 52 32 3a  |1,R2]:TEQ R3,R2:|
000056a0  42 45 51 20 73 74 6f 72  65 69 74 0d 0e 74 14 53  |BEQ storeit..t.S|
000056b0  54 4d 46 44 20 28 73 70  29 21 2c 7b 52 32 7d 0d  |TMFD (sp)!,{R2}.|
000056c0  0e 7e 16 4d 4f 56 20 52  32 2c 52 33 3a 42 4c 20  |.~.MOV R2,R3:BL |
000056d0  70 72 69 6e 74 0d 0e 88  14 4c 44 4d 46 44 20 28  |print....LDMFD (|
000056e0  73 70 29 21 2c 7b 52 32  7d 0d 0e 92 1d 4c 44 52  |sp)!,{R2}....LDR|
000056f0  42 20 52 32 2c 5b 52 31  32 2c 52 32 5d 3a 42 4c  |B R2,[R12,R2]:BL|
00005700  20 70 72 69 6e 74 0d 0e  9c 14 4c 44 4d 46 44 20  | print....LDMFD |
00005710  28 73 70 29 21 2c 7b 50  43 7d 0d 0e a6 0c 2e 73  |(sp)!,{PC}.....s|
00005720  74 6f 72 65 69 74 0d 0e  b0 0f 82 53 20 52 34 2c  |toreit.....S R4,|
00005730  52 34 2c 23 31 0d 0e ba  0f 4d 4f 56 4e 45 20 52  |R4,#1....MOVNE R|
00005740  35 2c 52 32 0d 0e c4 17  84 52 45 51 20 52 35 2c  |5,R2.....REQ R5,|
00005750  52 35 2c 52 32 2c 4c 53  4c 23 34 0d 0e ce 16 53  |R5,R2,LSL#4....S|
00005760  54 52 45 51 42 20 52 35  2c 5b 52 31 30 5d 2c 23  |TREQB R5,[R10],#|
00005770  31 0d 0e d8 14 4c 44 4d  46 44 20 28 73 70 29 21  |1....LDMFD (sp)!|
00005780  2c 7b 50 43 7d 0d 0e e2  05 5c 0d 0e ec 14 2e 70  |,{PC}....\.....p|
00005790  69 63 64 61 74 20 45 51  55 44 20 50 50 25 0d 0e  |icdat EQUD PP%..|
000057a0  f6 16 2e 6c 65 6e 67 74  68 20 45 51 55 44 20 26  |...length EQUD &|
000057b0  33 35 32 42 0d 0f 00 13  2e 73 63 72 61 64 64 20  |352B.....scradd |
000057c0  45 51 55 44 20 53 25 0d  0f 0a 05 5d 0d 0f 14 38  |EQUD S%....]...8|
000057d0  e7 20 50 25 3e 28 63 6f  64 65 25 2b 73 70 61 63  |. P%>(code%+spac|
000057e0  65 25 29 20 eb 20 31 35  3a f1 22 4e 6f 74 20 65  |e%) . 15:."Not e|
000057f0  6e 6f 75 67 68 20 63 6f  64 65 20 73 70 61 63 65  |nough code space|
00005800  2e 22 3a e0 0d 0f 1e 05  ed 0d 0f 28 05 e1 0d 0f  |.":........(....|
00005810  32 05 3a 0d 0f 3c 12 dd  20 f2 65 72 72 6f 72 3a  |2.:..<.. .error:|
00005820  ee 20 85 20 87 0d 0f 46  39 e7 20 56 43 25 3d 31  |. . ...F9. VC%=1|
00005830  20 ff 22 46 58 20 31 33  2c 34 22 3a c8 99 22 4f  | ."FX 13,4":.."O|
00005840  53 5f 52 65 6c 65 61 73  65 22 2c 26 31 30 2c 65  |S_Release",&10,e|
00005850  6e 65 76 65 6e 74 2c 30  3a 56 43 25 3d 30 0d 0f  |nevent,0:VC%=0..|
00005860  50 3b e7 20 56 43 25 3d  32 20 ff 22 46 58 20 31  |P;. VC%=2 ."FX 1|
00005870  33 2c 34 22 3a c8 99 22  4f 53 5f 52 65 6c 65 61  |3,4":.."OS_Relea|
00005880  73 65 22 2c 26 31 30 2c  66 6c 69 70 65 76 65 6e  |se",&10,flipeven|
00005890  74 2c 30 3a 56 43 25 3d  30 0d 0f 5a 12 eb 20 31  |t,0:VC%=0..Z.. 1|
000058a0  35 3a 87 3a d6 93 2b 26  32 31 34 0d 0f 64 0a 2a  |5:.:..+&214..d.*|
000058b0  46 58 20 32 30 0d 0f 6e  51 e7 20 9f 3d 31 37 20  |FX 20..nQ. .=17 |
000058c0  f1 22 47 6f 6f 64 62 79  65 2e 22 20 8b 20 f1 22  |."Goodbye." . ."|
000058d0  49 72 6f 6e 20 4c 6f 72  64 20 68 61 73 20 73 74  |Iron Lord has st|
000058e0  6f 70 70 65 64 20 62 65  63 61 75 73 65 20 6f 66  |opped because of|
000058f0  20 61 20 66 61 74 61 6c  20 65 72 72 6f 72 20 3a  | a fatal error :|
00005900  2d 22 27 27 f6 24 0d 0f  78 05 e1 0d ff           |-"''.$..x....|
0000590d