Home » Archimedes archive » Archimedes World » AW-1992-12.adf » AWDec92 » !AWDec92/Goodies/MoonQuake/!Moonquake/!RunImage

!AWDec92/Goodies/MoonQuake/!Moonquake/!RunImage

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

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

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1992-12.adf » AWDec92
Filename: !AWDec92/Goodies/MoonQuake/!Moonquake/!RunImage
Read OK:
File size: 9DA6 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >$.!Moonquake.!RunImage
   20REM (c) 1992 Paul Taylor
   30REM
   40REM DATE    -   TASK
   50REM -------   ---------------------------------------------------------
   60REM 21/7/92 - STATIC PLOTTER & SCREEN LAYOUT ??
   70REM 22/7/92 - COMPLETED ABOVE STARTED MAIN PROG LOOP WITH 1 MAN
   80REM 25/7/92 - COMPLETED 1 MAN RUNNING ROUND SCREEN WITH EDGE OF SCREEN
   90REM         - DETECTION AND BLOCKING BY CERTAIN OBJECTS
  100REM 26/7/92 - ADDED BOMB DROPPING, BOMB EXPLOSIONS, CHAIN REACTIONS AND
  110REM         - DEATH BY EXPLOSION
  120REM 27/7/92 - CORRECTED DEATH BY EXPLOSION, ADDED RUBBLE AND DESTRUCTION
  130REM         - OF RUBBLE; ADDED SECOND MAN - NEW MAN SPRITES
  140REM 01/8/92 - SECOND PLAYER WORKING; BOMB INFLATION; ROAMING ROBOTS;
  150REM         - DEATH OF ROBOTS; DEATH BY ROBOTS; BOMB LIMITS;
  160REM         - INDIVIDUAL BOMB STRENGTHS; COLLECTABLE TOKENS FOR
  170REM         - MORE BOMBS AND STRONGER BOMBS
  180REM 04/8/92 - 1 OR 2 PLAYER GAME; 1 & 0 HIT NUCLEAR REACTORS;
  190REM         - ROBOTS DON'T DELIBERATELY RUN INTO FIRE;
  200REM         - NUCLEAR REACTOR EXPLOSION; END OF LEVEL WHEN CLEARED;
  210REM         - MYSTERY TOKENS - AUTO BOMB DROP, BOMB DETONATE, ROBOT FREEZE
  220REM         - A STORY?
  230:
  234MODE13
  235*SCREENLOAD <Obey$Dir>.SCREEN
  240*RMENSURE Explo 1.00 *RMLOAD <Obey$Dir>.SFX.EXPLO
  250*RMENSURE TokenRM 1.00 *RMLOAD <Obey$Dir>.SFX.TOKENRM
  254*RMENSURE ARG 1.00 *RMLOAD <Obey$Dir>.SFX.ARG
  255*RMENSURE RARG 1.00 *RMLOAD <Obey$Dir>.SFX.RARG
  260DIM vdu 16,MR(50),robos(9),hisc(9),hname$(9)
  270!vdu=148
  280vdu!4=-1
  300VOICES 4
  310VOICE 1,"EXPLO"
  320VOICE 2,"TOKENRM"
  325VOICE 3,"ARG"
  326VOICE 4,"RARG"
  330SYS "OS_ReadVduVariables",vdu,vdu+8
  340scr_start=vdu!8+8
  344*FX200,1
  345*FX11,0
  346@%=&05
  347VDU23,135,126,255,255,255,255,255,255,126
  350:
  370spnum=0
  380gridx=1
  390gridy=2
  400table=4
  410offset=5
  420temp=6
  430temp2=7
  440scr=8
  450REM ---- Constants ----
  460scream=6016
  465ping=14336
  470exdel=3
  480numbots=10
  490DIM code 80000
  500FOR pass=0 TO 2 STEP 2
  510P%=code
  520[OPT pass
  530ALIGN
  540.basic EQUD 0
  550.screen EQUD (scr_start)
  560.init_screen MOV gridy,#0:STR R14,basic
  570        LDR table,grid
  580.gyloop MOV gridx,#0
  590.gxloop MOV temp2,#19
  600        MLA temp,gridy,temp2,gridx
  610        LDRB spnum,[table,temp]
  620        BL plotstatic
  630        ADD gridx,gridx,#4
  640        CMP gridx,#19*4
  650        BLT gxloop
  660        ADD gridy,gridy,#4
  670        CMP gridy,#13*4
  680        BLT gyloop
  690        LDR PC,basic
  700:
  710.grid  EQUD(griddata)
  720.safe  EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
  730.plotstatic ADR R12,safe
  740        STMIA R12,{R1-R7,R9-R11}
  750        LDR scr,screen
  760        MOV table,spnum,LSL #8       ; Multiply by 256 (sprite size)
  770        LDR spnum,sprites
  780        ADD table,table,spnum
  790        MOV temp,#4*320
  800        MLA temp2,temp,gridy,scr
  810        ADD scr,temp2,#39*320
  820        ADD scr,scr,gridx,LSL#2      ; scr = top left corner of spr
  830]:      FOR l=1 TO 8:[OPT pass
  840        LDMIA (table)!,{R1-R3,R5-R7,R9,R10}
  850        STMIA (scr),{R1-R3,R5}
  860        ADD scr,scr,#320
  870        STMIA (scr),{R6,R7,R9,R10}
  880        ADD scr,scr,#320
  890]:      NEXT l:[OPT pass
  900        ADR R12,safe
  910        LDMIA R12,{R1-R7,R9-R11}
  920        MOV PC,R14
  930:
  940.sprites EQUD(sprite_data)
  950       FNscoredraw
  960        FNmovingbloke
  970.griddata FNreserve(19*13*4)
  980.sprite_data FNreserve(15000)
  990        FNblokeplotters
 1000]
 1010NEXT pass
 1020OSCLI("LOAD <Obey$Dir>.MQSPRITES "+STR$~(sprite_data))
 1030OSCLI("LOAD <Obey$Dir>.NUMBERS "+STR$~(digits))
 1040M=manrtns:FOR I=0 TO 3:RESTORE 1160
 1050FOR I2=1 TO 8:READ RN:!M=MR(RN+(I*5))
 1060M+=4:NEXT
 1070NEXT
 1080FOR I=20 TO 25:!M=MR(I):M+=4:NEXT
 1090!M=null:M+=4
 1100FOR I=0 TO 3:RESTORE 1160:FOR I2=1 TO 8:READ RN:!M=MR(26+RN+(I*5)):M+=4:NEXT:NEXT
 1110!death=M
 1120!aurasp=MR(50)
 1130FOR I=20 TO 25:!M=MR(I):M+=4:NEXT:!M=null
 1140M=robotrtns:FOR I=46 TO 49:!M=MR(I):M+=4:NEXT
 1144RESTORE 6165
 1145FORI=0 TO 9:READ robos(I)
 1146hisc(I)=1000*(I+1):hname$(I)="Beat me!":NEXT
 1150PROCloopgame
 1160DATA 0,1,2,1,0,3,4,3
 1170:
 1180DEFFNreserve(bytes)
 1190P%=P%+bytes
 1200=""
 1210:
 1220DEFFNmovingbloke
 1230x=1:y=2:off=3
 1240direc=4
 1250temp3=9
 1260[OPT pass
 1270.man1   EQUD 255:EQUD 0:EQUD 18*4:EQUD 12*4:EQUD 0:EQUD &00020001
 1280.man2   EQUD 255:EQUD 0:EQUD 0:EQUD 0:EQUD 1:EQUD &20001
 1290.dead EQUD 255
 1300.offset  EQUD 0
 1310.manx    EQUD 0
 1320.many    EQUD 0
 1330.dir     EQUD 1
 1340.stats   EQUD 0
 1350.man    EQUD 3
 1360.players EQUD 0
 1370.rubble EQUD 0
 1380.oscore EQUD 1
 1390.back_from_main EQUD 0
 1400.mainprog STR R14,back_from_main
 1410.mainloop MOV R0,#19:SWI "OS_Byte"
 1420          LDR temp,detonated:CMP temp,#0:SWINE "OS_Byte"
 1430         LDR temp,players:CMP temp,#1:BNE noscore1
 1440         LDR temp,score:LDR temp2,oscore:CMP temp,temp2:BLNE redoscore
 1450.noscore1
 1460         BL scangrid
 1470         BL wiperobots
 1480        MOV temp,#1:STR temp,man
 1490.manloop1
 1500        LDR temp,man:CMP temp,#1:ADREQ temp,man1:ADRNE temp,man2
 1510        LDMIA temp,{R12,off,x,y,direc,temp3}:ADR temp,dead:STMIA temp,{R12,off,x,y,direc,temp3}
 1520        LDR x,manx:LDR y,many:MOV R12,#1:BL plotstat2
 1530        CMP R12,#1:BEQ notdead1:LDR temp,dead:CMP temp,#255:BNE notdead1
 1531        STR R12,dead
 1532        MOV R0,#3:MVN R1,#14:MOV R2,#scream:MOV R3,#0
 1533        SWI "Sound_Control"
 1534        LDR x,manx:LDR y,many
 1540.notdead1
 1550         LDR off,offset:LDR direc,dir:CMP off,#0:BNE offsetset
 1560        CMP direc,#1:ADDEQ x,x,#4:CMP direc,#0:SUBEQ x,x,#4
 1570         CMP direc,#2:ADDEQ y,y,#4:CMP direc,#3:SUBEQ y,y,#4
 1580         BL plotstat2
 1590         B aftersecondsqr
 1600.offsetset  CMP direc,#1:ADDEQ x,x,#4:CMP direc,#0:ADDEQ x,x,#4
 1610         CMP direc,#2:ADDEQ y,y,#4:CMP direc,#3:ADDEQ y,y,#4
 1620        MOV R12,#1:BL plotstat2
 1630        CMP R12,#1:BEQ aftersecondsqr:LDR temp,dead:CMP temp,#255:BNE aftersecondsqr
 1631         STR R12,dead
 1632         MOV R0,#3:MVN R1,#14:MOV R2,#scream:MOV R3,#0
 1633         SWI "Sound_Control"
 1640.aftersecondsqr
 1650         ADR temp,dead:LDMIA temp,{R12,off,x,y,direc,temp3}:LDR temp,man:CMP temp,#1:ADREQ temp,man1:ADRNE temp,man2
 1660         STMIA temp,{R12,off,x,y,direc,temp3}
 1670         LDR temp,man:ADD temp,temp,#1:STR temp,man:LDR temp3,players:CMP temp,temp3:BLE manloop1
 1680        BL redrawrobots
 1690        MOV temp,#1:STR temp,man
 1700.manloop2
 1710        LDR temp,man:CMP temp,#1:ADREQ temp,man1:ADRNE temp,man2
 1720        LDMIA temp,{R12,off,x,y,direc,temp3}:ADR temp,dead:STMIA temp,{R12,off,x,y,direc,temp3}
 1730         LDR x,manx:LDR y,many
 1740         LDR direc,dir:LDR off,offset
 1750         LDR scr,screen:MOV temp,#4*320
 1760         MLA temp2,temp,gridy,scr
 1770        ADD scr,temp2,#39*320
 1780        ADD scr,scr,gridx,LSL#2
 1790        CMP direc,#2:MOVGE temp2,#640:MOVLT temp2,#2
 1800        MLA scr,temp2,off,scr
 1810        LDR R12,dead:CMP R12,#255:BGE notdead3
 1820        MOV temp,#4<<5:ADD temp,temp,R12,LSR#1
 1830        B altogether
 1840.notdead3 BEQ noaura:SUB R12,R12,#1:STR R12,dead:MOV temp3,scr:ADR R14,b_f_aura
 1850          LDR PC,aurasp
 1860.b_f_aura MOV scr,temp3
 1870.noaura   MOV temp,direc,LSL#5
 1880        ADD temp,temp,off,LSL#2   ;find addr of man routine
 1890        LDR temp3,man:CMP temp3,#1:ADDNE temp,temp,#4*4*8+7*4
 1900.altogether LDR temp2,mangfx
 1910        ADR R14,rendez
 1920        BIC temp,temp,#%11
 1930       STR temp2,checktmp2:STR temp,checktmp
 1940        LDR PC,[temp2,temp]
 1950.rendez
 1960        LDR R12,dead:CMP R12,#255:BGE notdead2
 1970        ADD R12,R12,#1:CMP R12,#49:LDREQ PC,back_from_main
 1980        STR R12,dead:B endupdate
 1990.notdead2
 2000        CMP off,#0:BEQ keycheck
 2010        CMP direc,#1:BEQ backw
 2020        CMP direc,#2:BEQ backw
 2030        ADD off,off,#1:CMP off,#8:BLT endupdate
 2040        MOV off,#0
 2050        CMP direc,#0:LDREQ temp,manx:LDRNE temp,many
 2060        ADD temp,temp,#4:STREQ temp,manx:STRNE temp,many
 2070        B endupdate
 2080.backw  SUB off,off,#1
 2090.endupdate STR off,offset
 2100         ADR temp,dead:LDMIA temp,{R12,off,x,y,direc,temp3}:LDR temp,man:CMP temp,#1:ADREQ temp,man1:ADRNE temp,man2
 2110         STMIA temp,{R12,off,x,y,direc,temp3}
 2120         LDR temp,man:ADD temp,temp,#1:STR temp,man:LDR temp3,players:CMP temp,temp3:BLE manloop2
 2130           LDR temp,rubble:CMP temp,#0:LDREQ PC,back_from_main
 2140       B mainloop
 2150:
 2160.mangfx EQUD (manrtns)
 2170.findtoken ADD temp,temp,spnum:LDRB spnum,[temp,#1]
 2180           CMP spnum,#48:BLT tokened
 2190          LDR R7,score:ADD R7,R7,#50:STR R7,score
 2200           BGT morefire:MOV table,#3:STRB table,[temp,#1]
 2210           STRB table,[temp]
 2220           ADR temp,stats:LDRB spnum,[temp]
 2230           ADD spnum,spnum,#1:STRB spnum,[temp]
 2240           MOV temp,x:MOV temp2,y:MOV R0,#2:MVN R1,#14:MOV R2,#ping
 2250           SWI "Sound_Control":MOV x,temp:MOV y,temp2
 2260           LDR temp,rubble:SUB temp,temp,#1:STR temp,rubble
 2270           B tokened
 2280.morefire  CMP spnum,#49:BGT unknown:MOV table,#3:STRB table,[temp,#1]
 2290           STRB table,[temp]
 2300           ADR temp,stats:LDRB spnum,[temp,#2]
 2310           ADD spnum,spnum,#1:STRB spnum,[temp,#2]
 2320           MOV temp,x:MOV temp2,y:MOV R0,#2:MVN R1,#14:MOV R2,#ping
 2330           SWI "Sound_Control":MOV x,temp:MOV y,temp2
 2340           LDR temp,rubble:SUB temp,temp,#1:STR temp,rubble
 2350           B tokened
 2360.unknown   CMP spnum,#50:BNE tokened:MOV table,#3:STRB table,[temp,#1]
 2370           LDR R7,score:ADD R7,R7,#25:STR R7,score
 2380           STRB table,[temp]
 2390           MOV temp,x:MOV temp2,y:MOV R0,#2:MVN R1,#14:MOV R2,#ping
 2400           SWI "Sound_Control":MOV x,temp:MOV y,temp2
 2410           LDR temp,rubble:SUB temp,temp,#1:STR temp,rubble
 2420           ADR R14,tokened:LDR PC,execunknown
 2430:
 2440.score EQUD 0
 2450.aurasp EQUD 0
 2460.execunknown EQUD (mystery)
 2470.checktmp EQUD 0
 2480.checktmp2 EQUD 0
 2490.plotstat2 ADR temp,safe2
 2500        STMIA temp,{x,y,off,direc,R5,R9-R11,R14}
 2510        LDR scr,screen
 2520        MOV temp,#19
 2530        MLA spnum,y,temp,x
 2540        LDR temp,grid
 2550        LDRB table,[temp,spnum]
 2560        LDR R11,man:LDR R10,players:CMP R11,R10:BLE findtoken
 2570.tokened CMP table,#4:BLT notexpl
 2580        CMP table,#32:MOVLT R12,#0
 2590.notexpl
 2600        MOV table,table,LSL#8
 2610        LDR spnum,sprites
 2620        ADD table,table,spnum
 2630        MOV temp,#4*320
 2640        MLA temp2,temp,y,scr
 2650        ADD scr,temp2,#39*320
 2660        ADD scr,scr,gridx,LSL#2
 2670]:      FOR l=1 TO 8:[OPT pass
 2680        LDMIA (table)!,{R1-R3,R5-R7,R9,R10}
 2690        STMIA (scr),{R1-R3,R5}
 2700        ADD scr,scr,#320
 2710        STMIA (scr),{R6,R7,R9,R10}
 2720        ADD scr,scr,#320
 2730]:      NEXT l:[OPT pass
 2740        ADR temp,safe2
 2750        LDMIA temp,{x,y,off,direc,R5,R9-R11,R14}
 2760        MOV PC,R14
 2770.safe2  FNreserve(4*10)
 2780:
 2790.keycheck
 2800 ; OSBYTE WITH R0=121 AND R1=KEY NUM EOR &80 AS ON PRINT142/3 ANDB.UNTILGOTO
 2820  LDR off,offset
 2830        LDR R11,man
 2840        LDR x,manx:LDR y,many:MOV temp,#19
 2850        MLA spnum,y,temp,x
 2860        LDR temp,grid
 2870        ADD temp,temp,spnum:ADD temp,temp,#1
 2880        LDRB temp2,[temp]:CMP temp2,#3:BNE leftmv
 2890        LDR R0,manstats:LDRB temp3,[R0,#1]:LDRB R0,[R0]:CMP temp3,R0:BGE leftmv
 2900        LDR R0,manstats:LDRB temp3,[R0,#3]:TST temp3,#1:BNE drop
 2910        MOV R0,#121
 2920        CMP R11,#1:MOVEQ R1,#(83 EOR &80):MOVNE R1,#(58 EOR &80)
 2930        SWI "OS_Byte"
 2940        CMP R1,#0:BEQ leftmv
 2950.drop   LDR R0,manstats:LDRB temp3,[R0,#1]:ADD temp3,temp3,#1:STRB temp3,[R0,#1]
 2960        MOV temp2,#2:STRB temp2,[temp]:MOV temp2,#47:STRB temp2,[temp,#-1]
 2970        MOV temp2,#127:STRB temp2,[temp,#1]:STRB R11,[temp,#2]
 2980.leftmv LDR x,manx:CMP x,#0:BEQ rightmv
 2990        LDRB temp2,[temp,#-4]:CMP temp2,#3:BLT rightmv
 3000        CMP temp2,#51:BGE rightmv
 3010        MOV R0,#121
 3020        CMP R11,#1:MOVEQ R1,#(97 EOR &80):MOVNE R1,#(107 EOR &80)
 3030        SWI "OS_Byte"
 3040        CMP R1,#0:BEQ rightmv
 3050        LDR x,manx:SUB x,x,#4:STR x,manx
 3060        MOV off,#7:STR off,offset
 3070        MOV direc,#1:STR direc,dir
 3080        B endupdate
 3090.rightmv LDR x,manx:CMP x,#18*4:BEQ upmv
 3100        LDRB temp2,[temp,#4]:CMP temp2,#3:BLT upmv
 3110        CMP temp2,#51:BGE upmv
 3120        MOV R0,#121
 3130        CMP R11,#1:MOVEQ R1,#(66 EOR &80):MOVNE R1,#(124 EOR &80)
 3140        SWI "OS_Byte"
 3150        CMP R1,#0:BEQ upmv
 3160        MOV off,#1:STR off,offset
 3170        MOV direc,#0:STR direc,dir
 3180        B endupdate
 3190.upmv   LDR y,many:CMP y,#0:BEQ downmv
 3200        LDRB temp2,[temp,#-(19*4)]:CMP temp2,#3:BLT downmv
 3210        CMP temp2,#51:BGE downmv
 3220        MOV R0,#121
 3230        CMP R11,#1:MOVEQ R1,#(67 EOR &80):MOVNE R1,#(26 EOR &80)
 3240        SWI "OS_Byte"
 3250        CMP R1,#0:BEQ downmv
 3260        LDR y,many:SUB y,y,#4:STR y,many
 3270        MOV off,#7:STR off,offset
 3280        MOV direc,#2:STR direc,dir
 3290        B endupdate
 3300.downmv LDR y,many:CMP y,#12*4:BEQ endupdate
 3310        LDRB temp2,[temp,#(19*4)]:CMP temp2,#3:BLT endupdate
 3320        CMP temp2,#51:BGE endupdate
 3330        MOV R0,#121
 3340        CMP R11,#1:MOVEQ R1,#(82 EOR &80):MOVNE R1,#(108 EOR &80)
 3350        SWI "OS_Byte"
 3360        CMP R1,#0:BEQ endupdate
 3370        MOV off,#1:STR off,offset
 3380        MOV direc,#3:STR direc,dir
 3390        B endupdate
 3400:
 3410.manstats EQUD (stats)
 3420.manrtns FNreserve(2*(4*4*8+7*4))
 3430.null    MOV PC,R14
 3440         FNgridscanning
 3450]
 3460=""
 3470:
 3480DEFFNblokeplotters
 3490LOCAL X,Y,C,F,man
 3500F=OPENIN "<Obey$Dir>.BLOKE"
 3510FOR man=0 TO 50
 3520MR(man)=P%
 3530FOR Y=0 TO 15:FOR X=0 TO 15
 3540C=BGET#F:IF C<>&F8 THEN [OPT pass:MOV temp,#C:STRB temp,[scr,#X]:]
 3550NEXT:[OPTpass:ADD scr,scr,#320:]:NEXT:[OPTpass:MOV PC,R14:]
 3560NEXT
 3570CLOSE#F
 3580=""
 3590:
 3600DEFFNgridscanning
 3610temp3=9:oldx=10:oldy=11
 3620[OPT pass
 3630.scangrid STR R14,back_from_scan
 3640         MOV gridy,#0
 3650.scany   MOV gridx,#0
 3660.scanx   MOV temp,#19:MLA temp2,temp,gridy,gridx
 3670         LDR temp,grid:ADD temp,temp,temp2
 3680         LDRB spnum,[temp,#1]
 3690         CMP spnum,#1:BEQ checkblock
 3700         CMP spnum,#2:BEQ checkbomb
 3710         CMP spnum,#4:BLT resumescan
 3720         CMP spnum,#10:BLE checkexpl
 3730.resumescan ADD x,x,#4
 3740         CMP x,#19*4:BLT scanx
 3750         ADD y,y,#4
 3760         CMP gridy,#13*4:BLT scany
 3770         LDR PC,back_from_scan
 3780.back_from_scan EQUD 0
 3790:
 3800.checkoff EQUD 0
 3810.bman1  EQUD (man1)
 3820.bman2  EQUD (man2)
 3830.expsiz  EQUD 0
 3840.checkbomb LDRB temp2,[temp,#2]
 3850         SUB temp2,temp2,#1:STRB temp2,[temp,#2]
 3860         CMP temp2,#0:BEQ blowbomb
 3870         AND spnum,temp2,#%1111:CMP spnum,#0:BNE nobombchnge
 3880         MOV spnum,temp2,LSR#4:ADD spnum,spnum,#40-1:STRB spnum,[temp]:BL plotstatic
 3890.nobombchnge B resumescan
 3900.blowbomb MOV spnum,#20:STRB spnum,[temp,#2]:MOV spnum,#4:STRB spnum,[temp,#1]:MOV spnum,#11:STRB spnum,[temp]
 3910         MOV off,temp:BL plotstatic
 3920         MOV oldx,gridx:MOV oldy,gridy:LDR temp2,expsiz
 3930         LDRB temp2,[temp,#3]:CMP temp2,#1:LDREQ R0,bman1:LDRNE R0,bman2
 3940         ADD R0,R0,#5*4:LDRB R1,[R0,#1]:SUB R1,R1,#1:STRB R1,[R0,#1]
 3950         LDRB R1,[R0,#2]:STR R1,expsiz
 3960         MOV temp,off:MOV R0,#1:MVN R1,#14:MOV R2,#4096:MOV R3,#0:SWI "Sound_Control":MOV off,temp:MOV gridx,oldx:MOV gridy,oldy
 3970         SUB temp,off,#19*4
 3980         STR off,checkoff
 3990         LDR temp2,expsiz
 4000.blastU  LDRB spnum,[temp,#1]
 4010         CMP gridy,#0:BEQ endBlu
 4020         MOV temp3,#exdel:CMP spnum,#2:STREQB temp3,[temp,#2]
 4030         CMP spnum,#1:MOV temp3,#32:STREQB temp3,[temp,#2]
 4040         CMP spnum,#48:BLT notoken1:MOV temp3,#1:STRB temp3,[temp]
 4050         STRB temp3,[temp,#1]:MOV temp3,#32:STRB temp3,[temp,#2]
 4060.notoken1
 4070         CMP spnum,#3:BEQ ok1
 4080         CMP spnum,#51:BLT endBlu
 4090         CMP spnum,#52:BGE nuclear
 4100         CMP spnum,#51:BNE endBlu:MOV spnum,#52:STRB spnum,[temp]
 4110         STRB spnum,[temp,#1]:SUB y,y,#4:BL plotstatic
 4120         B endBlu
 4130.ok1     MOV spnum,#20:STRB spnum,[temp,#2]
 4140         CMP temp2,#1:MOVEQ spnum,#9:MOVNE spnum,#6
 4150         STRB spnum,[temp,#1]:ADD spnum,spnum,#7:STRB spnum,[temp]
 4160         SUB gridy,gridy,#4:BL plotstatic
 4170         SUB temp2,temp2,#1:SUB temp,temp,#19*4
 4180         CMP temp2,#0:BGT blastU
 4190.endBlu  MOV gridy,oldy:LDR temp2,expsiz
 4200         ADD temp,off,#19*4
 4210.blastD  LDRB spnum,[temp,#1]
 4220         CMP gridy,#12*4:BEQ endBld
 4230         MOV temp3,#exdel+1:CMP spnum,#2:STREQB temp3,[temp,#2]
 4240         CMP spnum,#1:MOV temp3,#32:STREQB temp3,[temp,#2]
 4250         CMP spnum,#48:BLT notoken2:MOV temp3,#1:STRB temp3,[temp]
 4260         STRB temp3,[temp,#1]:MOV temp3,#32:STRB temp3,[temp,#2]
 4270.notoken2
 4280         CMP spnum,#3:BEQ ok2
 4290         CMP spnum,#51:BLT endBld
 4300         CMP spnum,#52:BGE nuclear
 4310         CMP spnum,#51:BNE endBld:MOV spnum,#52:STRB spnum,[temp]
 4320         STRB spnum,[temp,#1]:ADD y,y,#4:BL plotstatic
 4330         B endBld
 4340.ok2
 4350         MOV spnum,#20:STRB spnum,[temp,#2]
 4360         CMP temp2,#1:MOVEQ spnum,#10:MOVNE spnum,#6
 4370         STRB spnum,[temp,#1]:ADD spnum,spnum,#7:STRB spnum,[temp]
 4380         ADD gridy,gridy,#4:BL plotstatic
 4390         SUB temp2,temp2,#1:ADD temp,temp,#19*4
 4400         CMP temp2,#0:BGT blastD
 4410.endBld  MOV gridy,oldy:LDR temp2,expsiz
 4420         ADD temp,off,#4
 4430.blastR  LDRB spnum,[temp,#1]
 4440         CMP gridx,#18*4:BEQ endBlr
 4450         MOV temp3,#exdel+1:CMP spnum,#2:STREQB temp3,[temp,#2]
 4460         CMP spnum,#1:MOV temp3,#32:STREQB temp3,[temp,#2]
 4470         CMP spnum,#48:BLT notoken3:MOV temp3,#1:STRB temp3,[temp]
 4480         STRB temp3,[temp,#1]:MOV temp3,#32:STRB temp3,[temp,#2]
 4490.notoken3
 4500         CMP spnum,#3:BEQ ok3
 4510         CMP spnum,#51:BLT endBlr
 4520         CMP spnum,#52:BGE nuclear
 4530         CMP spnum,#51:BNE endBlr:MOV spnum,#52:STRB spnum,[temp]
 4540         STRB spnum,[temp,#1]:ADD x,x,#4:BL plotstatic
 4550         B endBlr
 4560.ok3
 4570         MOV spnum,#20:STRB spnum,[temp,#2]
 4580         CMP temp2,#1:MOVEQ spnum,#8:MOVNE spnum,#5
 4590         STRB spnum,[temp,#1]:ADD spnum,spnum,#7:STRB spnum,[temp]
 4600         ADD gridx,gridx,#4:BL plotstatic
 4610         SUB temp2,temp2,#1:ADD temp,temp,#4
 4620         CMP temp2,#0:BGT blastR
 4630.endBlr  MOV gridx,oldx:LDR temp2,expsiz
 4640         SUB temp,off,#4
 4650.blastL  LDRB spnum,[temp,#1]
 4660         CMP gridx,#0:BEQ endBll
 4670         MOV temp3,#exdel:CMP spnum,#2:STREQB temp3,[temp,#2]
 4680         CMP spnum,#1:MOV temp3,#32:STREQB temp3,[temp,#2]
 4690         CMP spnum,#48:BLT notoken4:MOV temp3,#1:STRB temp3,[temp]
 4700         STRB temp3,[temp,#1]:MOV temp3,#32:STRB temp3,[temp,#2]
 4710.notoken4
 4720         CMP spnum,#3:BEQ ok4
 4730         CMP spnum,#51:BLT endBll
 4740         CMP spnum,#52:BGE nuclear
 4750         CMP spnum,#51:BNE endBll:MOV spnum,#52:STRB spnum,[temp]
 4760         STRB spnum,[temp,#1]:SUB x,x,#4:BL plotstatic
 4770         B endBll
 4780.ok4
 4790         MOV spnum,#20:STRB spnum,[temp,#2]
 4800         CMP temp2,#1:MOVEQ spnum,#7:MOVNE spnum,#5
 4810         STRB spnum,[temp,#1]:ADD spnum,spnum,#7:STRB spnum,[temp]
 4820         SUB gridx,gridx,#4:BL plotstatic
 4830         SUB temp2,temp2,#1:SUB temp,temp,#4
 4840         CMP temp2,#0:BGT blastL
 4850.endBll  MOV x,oldx:MOV y,oldy:B resumescan
 4860:
 4870.detonated EQUD 0
 4880.safen  FNreserve(3*4)
 4890.nuclear ADR temp2,safen:STMIA temp2,{x,y,temp}
 4900         MOV R0,#1:MVN R1,#14:MOV R2,#256:MOV R3,#0:SWI "Sound_Control"
 4910         MOV temp,#1:STR temp,detonated
 4912         LDR temp,man1:CMP temp,#255:MOV temp,#255:STRGT temp,man1
 4914         LDR temp,man2:CMP temp,#255:MOV temp,#255:STRGT temp,man2
 4920         MOV y,#0:LDR temp,rgrid
 4930.nuclylp MOV x,#0
 4940.nuclxlp LDRB spnum,[temp,#1]:CMP spnum,#0:BEQ nextnucl
 4950         CMP spnum,#2:BLT smllexp:CMP spnum,#48:BLT addfire:.smllexp
 4960         MOV spnum,#1:STRB spnum,[temp,#1]
 4970         STRB spnum,[temp]:MOV spnum,#32:STRB spnum,[temp,#2]:B nextnucl
 4980.addfire MOV spnum,#20:STRB spnum,[temp,#2]:MOV spnum,#4
 4990         TST x,#1:MOVNE spnum,#5:TST y,#1:MOVNE spnum,#6
 5000         STRB spnum,[temp,#1]:ADD spnum,spnum,#7:STRB spnum,[temp]
 5010.nextnucl ADD x,x,#1:ADD temp,temp,#4:CMP x,#19:BLT nuclxlp
 5020         ADD y,y,#1:CMP y,#13:BLT nuclylp
 5030         LDMIA temp2,{x,y,temp}
 5040         B endBll
 5050:
 5060.checkexpl LDRB temp2,[temp,#2]:CMP temp2,#17:BNE nextex1
 5070           ADD spnum,spnum,#21:STRB spnum,[temp]:BL plotstatic:B endexp
 5080.nextex1   CMP temp2,#14:BNE nextex2
 5090           STRB spnum,[temp]:BL plotstatic:B endexp
 5100.nextex2   CMP temp2,#10:BNE nextex3
 5110           ADD spnum,spnum,#21:STRB spnum,[temp]:BL plotstatic:B endexp
 5120.nextex3   CMP temp2,#7:BNE nextex4
 5130           ADD spnum,spnum,#7:STRB spnum,[temp]:BL plotstatic:B endexp
 5140.nextex4   CMP temp2,#3:BNE nextex5
 5150           ADD spnum,spnum,#14:STRB spnum,[temp]:BL plotstatic:B endexp
 5160.nextex5   CMP temp2,#0:BNE endexp
 5170           MOV spnum,#3:STRB spnum,[temp]:STRB spnum,[temp,#1]
 5180           BL plotstatic:B resumescan
 5190.endexp    SUB temp2,temp2,#1:STRB temp2,[temp,#2]
 5200           B resumescan
 5210:
 5220.checkblock LDRB temp2,[temp,#2]:CMP temp2,#0:BEQ resumescan
 5230           LDRB temp2,[temp,#3]:CMP temp2,#0:BEQ nextsprte
 5240           SUB temp2,temp2,#1:STRB temp2,[temp,#3]:B resumescan
 5250.nextsprte LDRB spnum,[temp,#2]:STRB spnum,[temp]:MOV temp2,spnum
 5260           CMP spnum,#3:STREQB spnum,[temp,#1]:ADD temp2,temp2,#1
 5270           CMP temp2,#40:BEQ randtoken
 5280.randed    STRB temp2,[temp,#2]
 5290           MOV temp2,#2:STRB temp2,[temp,#3]:BL plotstatic
 5300           B resumescan
 5310:
 5320.randtoken LDR temp3,detonated:CMP temp3,#0:MOVNE temp2,#3:BNE nochoice
 5330           LDR temp3,score:ADD temp3,temp3,#10:STR temp3,score
 5340          LDR temp3,blockseed:ADD temp3,temp3,temp3,LSR#1:STR temp3,blockseed
 5350            AND temp3,temp3,#255:MOV temp2,#48:CMP temp3,#25
 5360            MOVGT temp2,#49:CMP temp3,#50
 5370           MOVGT temp2,#50:CMP temp3,#60
 5380            MOVGT temp2,#3
 5390.nochoice STRB temp2,[temp]:STRB temp2,[temp,#1]
 5400           MOV spnum,temp2
 5410           CMP spnum,#3:BNE randed
 5420           LDR temp2,rubble:SUB temp2,temp2,#1:STR temp2,rubble
 5430           B randed
 5440:
 5450.blockseed EQUS ("USER")
 5460          FNrobotix
 5470]
 5480=""
 5490:
 5500DEFPROCtest
 5510CLS
 5520PROCgame:CLS
 5530CALLinit_screen
 5540*FX15,1
 5550CALLmainprog
 5560*FX15,1
 5650ENDPROC
 5660:
 5670DEFPROCfindinkeys
 5680REPEAT
 5690REPEATUNTILGET=32
 5700T=TIME:REPEATUNTILTIME>T+100:VDU7:FORI=-1TO-255STEP-1:IF INKEY(I) THEN PRINTI:I=-256
 5710NEXT
 5720UNTIL0
 5730ENDPROC
 5740:
 5750DEFPROCgame
 5760rubbles=0
 5770I=griddata:FOR Y=0 TO 12:FOR X=0 TO 18
 5780IF (X+Y)>1 AND (X+Y)<29 AND RND(15)<10 THEN !I=&00000101:rubbles+=1:ELSE !I=&00000303
 5790I+=4
 5800NEXT:NEXT
 5810FOR Y=1 TO 11 STEP 2:FOR X=1 TO 17 STEP 2
 5820V=griddata+X*4+(Y*19*4):IF !V=&101 THEN rubbles-=1
 5830!V=0
 5840NEXT X:NEXT Y
 5850RESTORE 6060
 5860M=man1:FORI=1TO12:READ D:!M=D:M+=4:NEXT
 5865RESTORE (6070+10*LEV)
 5870REPEAT:READ R,X,Y:IF X<>-1 THEN
 5880L=griddata+X*4+Y*4*19:IF !L=&101 rubbles-=1
 5890IF R=1 !L=&3333 ELSE !L=&3535
 5900ENDIF
 5910UNTIL X=-1
 5920placed=0
 5930REPEAT:X=RND(19)-1:Y=RND(13)-1
 5940IF (X+Y)>5 AND (X+Y)<23 AND X>0 THEN
 5950I=griddata+X*4+19*4*Y:rd=robodata+5*4*placed
 5960IF !I=&101 THEN rubbles-=1
 5970IF !I=&101 OR !I=&303 THEN !I=&00000303:!rd=X*4:rd!4=Y*4:rd!8=0:rd!12=0:rd!16=255:placed+=1
 5980ENDIF
 5990UNTILplaced=robos(LEV)
 5995!maxbots=robos(LEV)
 6000IF !players=1 THEN !rubble=rubbles ELSE !rubble=-1
 6010!rhalt=0
 6020!detonated=0
 6030!man=3
 6050ENDPROC
 6060DATA 512,0,18*4,12*4,0,&20001,512,0,0,0,1,&20001
 6070DATA 0,-1,0
 6080DATA 0,-1,0
 6090DATA 0,-1,0
 6100DATA 1,9,6, 0,-1,0
 6110DATA 2,9,6, 0,-1,0
 6120DATA 1,6,6, 1,12,6, 0,-1,0
 6130DATA 1,0,6, 1,18,6, 2,9,6, 0,-1,0
 6140DATA 1,4,6, 1,14,6, 2,9,8, 2,9,4, 0,-1,0
 6150DATA 1,2,2, 1,16,2, 1,2,10, 1,16,10, 2,0,6, 2,18,6, 0,-1,0
 6160DATA 1,2,2, 1,4,6, 1,2,10, 1,16,2, 1,16,10, 1,14,6, 2,9,8, 2,9,4, 0,-1,0
 6165DATA 1,2,4,2,4,4,5,6,8,10
 6170:
 6180DEFFNrobotix
 6190[OPT pass
 6200.robodata FNreserve(numbots*5*4)
 6210.rx   EQUD 0
 6220.ry   EQUD 0
 6230.roff EQUD 0
 6240.rdir EQUD 0
 6250.rdead EQUD 0
 6260.robonum EQUD 0
 6270.wiperobots STR R14,back_from_rtn:MOV R0,#0:STR R0,robonum
 6280.roboloop1 LDR R0,robonum:MOV temp,#5*4:MUL temp2,R0,temp
 6290          ADR temp,robodata:ADD temp,temp,temp2:LDMIA temp,{x,y,off,direc,R12}
 6300            ADR temp,rx:STMIA temp,{x,y,off,direc,R12}
 6310         LDR x,rx:LDR y,ry:MOV R12,#1:BL plotstat2
 6320         CMP R12,#1:BEQ rnotded1:LDR temp,rdead:CMP temp,#255:BNE rnotded1
 6321         STR R12,rdead
 6322         MOV R0,#4:MVN R1,#14:MOV R2,#7168:MOV R3,#0
 6323        SWI "Sound_Control"
 6324         LDR x,rx:LDR y,ry
 6330         LDR temp,score:ADDEQ temp,temp,#150:STR temp,score
 6340.rnotded1 LDR off,roff:LDR direc,rdir:CMP off,#0:BNE roffsetset
 6350         CMP direc,#1:ADDEQ x,x,#4:CMP direc,#0:SUBEQ x,x,#4
 6360         CMP direc,#2:ADDEQ y,y,#4:CMP direc,#3:SUBEQ y,y,#4
 6370         BL plotstat2
 6380         B raftersecondsqr
 6390.roffsetset  CMP direc,#1:ADDEQ x,x,#4:CMP direc,#0:ADDEQ x,x,#4
 6400         CMP direc,#2:ADDEQ y,y,#4:CMP direc,#3:ADDEQ y,y,#4
 6410        MOV R12,#1:BL plotstat2
 6420         CMP R12,#1:BEQ raftersecondsqr:LDR temp,rdead:CMP temp,#255:BNE raftersecondsqr
 6421         STR R12,rdead
 6422         MOV R0,#4:MVN R1,#14:MOV R2,#7168:MOV R3,#0
 6423        SWI "Sound_Control"
 6430         LDR temp,score:ADD temp,temp,#150:STR temp,score
 6440.raftersecondsqr
 6450         LDR R12,rdead:CMP R12,#255:BNE nxtman2
 6460         LDR x,rx:LDR y,ry:LDR off,roff:LDR direc,rdir
 6470         MOV x,x,LSL#2:MOV y,y,LSL#2
 6480         CMP direc,#0:ADDEQ x,x,off
 6490         CMP direc,#1:ADDEQ x,x,off
 6500         CMP direc,#2:ADDEQ y,y,off
 6510         CMP direc,#3:ADDEQ y,y,off
 6520         MOV oldx,x:MOV oldy,y
 6530         LDR temp2,bloke1:LDR x,[temp2,#8]:LDR y,[temp2,#12]:LDR off,[temp2,#4]:LDR direc,[temp2,#16]
 6540         MOV x,x,LSL#2:MOV y,y,LSL#2
 6550         CMP direc,#0:ADDEQ x,x,off,LSL#1
 6560         CMP direc,#1:ADDEQ x,x,off,LSL#1
 6570         CMP direc,#2:ADDEQ y,y,off,LSL#1
 6580         CMP direc,#3:ADDEQ y,y,off,LSL#1
 6590         CMP x,oldx:SUBGT temp,x,oldx:SUBLE temp,oldx,x:CMP temp,#16:BGE nxtman
 6600         CMP y,oldy:SUBGT temp,y,oldy:SUBLE temp,oldy,y:CMP temp,#16:BGE nxtman
 6610         LDR temp,[temp2]:CMP temp,#255:MOV R12,#0:BNE nxtman
 6611         STR R12,[temp2]
 6612         MOV R0,#3:MVN R1,#14:MOV R2,#scream:MOV R3,#0
 6613         SWI "Sound_Control"
 6620.nxtman  LDR temp2,bloke2:LDR x,[temp2,#8]:LDR y,[temp2,#12]:LDR off,[temp2,#4]:LDR direc,[temp2,#16]
 6630         MOV x,x,LSL#2:MOV y,y,LSL#2
 6640         CMP direc,#0:ADDEQ x,x,off,LSL#1
 6650         CMP direc,#1:ADDEQ x,x,off,LSL#1
 6660         CMP direc,#2:ADDEQ y,y,off,LSL#1
 6670         CMP direc,#3:ADDEQ y,y,off,LSL#1
 6680         CMP x,oldx:SUBGT temp,x,oldx:SUBLE temp,oldx,x:CMP temp,#16:BGE nxtman2
 6690         CMP y,oldy:SUBGT temp,y,oldy:SUBLE temp,oldy,y:CMP temp,#16:BGE nxtman2
 6700         LDR temp,[temp2]:CMP temp,#255:MOV R12,#0:BNE nxtman2
 6701         STR R12,[temp2]
 6702         MOV R0,#3:MVN R1,#14:MOV R2,#scream:MOV R3,#0
 6703         SWI "Sound_Control"
 6710.nxtman2 ADR temp,rx:LDMIA temp,{x,y,off,direc,R12}
 6720         LDR R0,robonum:MOV temp,#5*4:MUL temp2,R0,temp
 6730          ADR temp,robodata:ADD temp,temp,temp2:STMIA temp,{x,y,off,direc,R12}
 6740          ADD R0,R0,#1:STR R0,robonum:LDR temp,maxbots:CMP R0,temp:BLT roboloop1
 6750         LDR PC,back_from_rtn
 6760.back_from_rtn EQUD 0
 6770.maxbots EQUD numbots
 6780.death EQUD 0
 6790.rhalt EQUD 0
 6800:
 6810.redrawrobots STR R14,back_from_rtn
 6820         MOV R0,#0:STR R0,robonum
 6830.roboloop2 LDR R0,robonum:MOV temp,#5*4:MUL temp2,R0,temp
 6840          ADR temp,robodata:ADD temp,temp,temp2:LDMIA temp,{x,y,off,direc,R12}
 6850         ADR temp,rx:STMIA temp,{x,y,off,direc,R12}
 6860         LDR x,rx:LDR y,ry:LDR direc,rdir:LDR off,roff
 6870         LDR scr,screen2:MOV temp,#4*320
 6880         MLA temp2,temp,gridy,scr
 6890         ADD scr,temp2,#39*320
 6900         ADD scr,scr,gridx,LSL#2
 6910        CMP direc,#2:MOVGE temp2,#320:MOVLT temp2,#1
 6920        MLA scr,temp2,off,scr
 6930        LDR R12,rdead:CMP R12,#255:BEQ rnotded3
 6940        LDR temp,death:ADD temp,temp,R12,LSR#1
 6950        BIC temp,temp,#%11:CMP R12,#55:ADDLT R12,R12,#1:STR R12,rdead
 6960        B overlive
 6970.rnotded3 ADR temp,robotrtns:ADD temp,temp,direc,LSL#2
 6980.overlive ADR R14,roborendez:LDR PC,[temp]
 6990.roborendez
 7000        LDR R12,rdead:CMP R12,#255:BNE rendupdate
 7010        LDR R12,rhalt:CMP R12,#0:BNE rendupdate
 7020        CMP off,#0:BEQ robomove
 7030        CMP direc,#1:BEQ rbackw
 7040        CMP direc,#2:BEQ rbackw
 7050        ADD off,off,#1:CMP off,#16:BLT rendupdate
 7060        MOV off,#0
 7070        CMP direc,#0:LDREQ temp,rx:LDRNE temp,ry
 7080        ADD temp,temp,#4:STREQ temp,rx:STRNE temp,ry
 7090        B rendupdate
 7100.rbackw SUB off,off,#1
 7110.rendupdate STR off,roff
 7120         ADR temp,rx:LDMIA temp,{x,y,off,direc,R12}
 7130         LDR R0,robonum:MOV temp,#5*4:MUL temp2,R0,temp
 7140         LDR temp,rodata:ADD temp,temp,temp2:STMIA temp,{x,y,off,direc,R12}
 7150          ADD R0,R0,#1:STR R0,robonum:LDR temp,maxbots:CMP R0,temp:BLT roboloop2
 7160        LDR PC,back_from_rtn
 7170.bloke1 EQUD(man1)
 7180.bloke2 EQUD(man2)
 7190.rodata EQUD (robodata)
 7200:
 7210.screen2 EQUD(scr_start)
 7220.seed   EQUS "PAUL"
 7230.tempcheck EQUD 0
 7240.pridir EQUD &01030200:EQUD &00030201:EQUD &03000102:EQUD &02000103
 7250.robomove  LDR off,roff
 7260        LDR x,rx:LDR y,ry:MOV temp,#19
 7270        MLA spnum,y,temp,x:LDR temp,rgrid
 7280        ADD temp,temp,spnum:ADD temp,temp,#1
 7290        LDR direc,rdir
 7300        ADR temp2,pridir:ADD temp2,temp2,direc,LSL#2
 7310        LDR R0,seed:ADD R0,R0,R0,LSR#1:STR R0,seed:AND R0,R0,#255
 7320        CMP R0,#128:LDRLEB R0,[temp2]:BLE rleft
 7330        CMP R0,#176:LDRLEB R0,[temp2,#1]:BLE rleft
 7340        CMP R0,#224:LDRLEB R0,[temp2,#2]:BLE rleft
 7350        LDRB R0,[temp2,#3]
 7360.rleft  LDR x,rx:CMP x,#0:BEQ rright
 7370        LDRB temp2,[temp,#-4]:CMP temp2,#3:BNE rright
 7380        CMP R0,#1:BNE rright
 7390        LDR x,rx:SUB x,x,#4:STR x,rx
 7400        MOV off,#15:STR off,roff
 7410        STR R0,rdir:B rendupdate
 7420.rright CMP R0,#0:BNE rup
 7430        LDR x,rx:CMP x,#18*4:BEQ rup
 7440        LDRB temp2,[temp,#4]:CMP temp2,#3:BNE rup
 7450        MOV off,#1:STR off,roff
 7460        STR R0,rdir:B rendupdate
 7470.rup    CMP R0,#2:BNE rdown
 7480        LDR y,ry:CMP y,#0:BEQ rdown
 7490        LDRB temp2,[temp,#-19*4]:CMP temp2,#3:BNE rdown
 7500        LDR y,ry:SUB y,y,#4:STR y,ry
 7510        MOV off,#15:STR off,roff
 7520        STR R0,rdir:B rendupdate
 7530.rdown  CMP R0,#3:BNE rendupdate
 7540        LDR y,ry:CMP y,#12*4:BEQ rendupdate
 7550        LDRB temp2,[temp,#19*4]:CMP temp2,#3:BNE rendupdate
 7560        MOV off,#1:STR off,roff
 7570        STR R0,rdir:B rendupdate
 7580.rgrid EQUD(griddata)
 7590.robotrtns FNreserve(4*4)
 7600        FNmystery_tokens
 7610]
 7620=""
 7630:
 7640DEFPROCloopgame
 7660OFF
 7671COLOUR8
 7675maxlevel=0
 7680REPEAT options=TRUE
 7690PROCbox(1,5,23,20)
 7695REPEAT:CLS
 7696IF options THEN
 7700PRINT:PROCpr("  1.  1 Player game")
 7710PRINT:PROCpr("  2.  2 Player game")
 7720PRINT:PROCpr("  3.  Instructions")
 7730PRINT:PROCpr("  4.  Finish")
 7740PRINT':PROCpr(" Please select")
 7742ELSE
 7744PROCshowhi
 7745ENDIF
 7746options=NOT options
 7750CH=INKEY(1500):UNTIL CH>=ASC("1") AND CH<=ASC("4")
 7752CASE CH OF
 7754WHEN ASC("1"): PROCplayone
 7756WHEN ASC("2"): PROCplaytwo
 7758WHEN ASC("3"): PROCinstruc
 7760WHEN ASC("4"): PROCfin
 7762ENDCASE
 7790UNTIL0
 7800ENDPROC
 7810:
 7820DEFFNmystery_tokens
 7830[OPT pass
 7840.safem FNreserve(12*4)
 7850.mseed EQUS ("TCEL")
 7860.mystery ADR temp,safem:STMIA temp,{R0-R5,R7-R12}
 7870         LDR temp,mseed:ADD temp,temp,temp,LSR#1:STR temp,mseed
 7880         AND temp,temp,#255:CMP temp,#73:BGE toktype2
 7890         LDR table,rgrid:MOV temp2,#13*19
 7900.ecmloop LDRB temp3,[table,#1]:CMP temp3,#2:BNE notabomb
 7910         MOV temp3,#1:STRB temp3,[table,#2]
 7920.notabomb ADD table,table,#4:SUBS temp2,temp2,#1:BNE ecmloop
 7930         ADR temp,safem:LDMIA temp,{R0-R5,R7-R12}
 7940         MOV PC,R14
 7950.toktype2 CMP temp,#146:BGE toktype3
 7960         LDR temp,rhalt:EOR temp,temp,#1:STR temp,rhalt
 7970         MOV PC,R14
 7980.toktype3 CMP temp,#182:BGE toktype4
 7990         LDR temp,manstats:LDRB temp2,[temp,#3]:EOR temp2,temp2,#1
 8000         STRB temp2,[temp,#3]:MOV PC,R14
 8001.toktype4 LDR temp,mandead:MOV temp2,#512:STR temp2,[temp]:MOV PC,R14
 8002:
 8003.mandead EQUD (dead)
 8010]
 8020=""
 8030:
 8040DEFFNscoredraw
 8050LOCAL temp
 8060number=0:dig=1:pwr=2:pwrlst=3:spaddr=4:scr=8:temp=5
 8070[OPT pass
 8080.powers10 EQUD 10000:EQUD 1000:EQUD 100:EQUD 10:EQUD 1
 8090.digits FNreserve(10*4*8)
 8100.redoscore ADR pwrlst,powers10:ADR spaddr,digits
 8110           LDR number,score:LDR R7,screen:SUB R7,R7,#4
 8120.powrloop  LDR pwr,[pwrlst]:ADD pwrlst,pwrlst,#4
 8130           CMP pwr,#1:MOVEQ dig,number:BEQ outdig
 8140           MOV dig,#0
 8150.digloop   CMP number,pwr:BLT outdig
 8160           SUB number,number,pwr
 8170           ADD dig,dig,#1:B digloop
 8180.outdig    MOV temp,dig,LSL #5:MOV dig,#0
 8190           MOV scr,R7:ADD scr,scr,#320*4:ADD R7,R7,#4
 8200.digoutp   LDR R6,[spaddr,temp]:STR R6,[scr]
 8210           ADD scr,scr,#320:ADD temp,temp,#4:ADD dig,dig,#1
 8220           CMP dig,#8:BLT digoutp
 8230           CMP pwr,#1:BNE powrloop
 8240           LDR number,score:STR number,oscore:MOV PC,R14
 8250]
 8260=""
 8270:
 8280DEFPROCbox(X1,Y1,X2,Y2)
 8290VDU 28,X1,Y2,X2,Y1
 8300CLS
 8310FOR C=0 TO 3
 8320GCOL C*4
 8330RECTANGLE X1*32+C*4,(31-Y2)*32+C*4,(1+X2-X1)*32-C*8,(1+Y2-Y1)*32-C*8
 8340NEXT
 8350VDU 28,X1+1,Y2-1,X2-1,Y1+1
 8360ENDPROC
 8370:
 8380DEFPROCplayone
 8390CLS
 8395!players=1:!score=0:!oscore=1
 8400IF maxlevel<>0 THEN
 8410PRINT'':PROCpr("Start level ?  0-"+STR$(maxlevel)+" :")
 8420REPEAT:LEV=GET-ASC("0"):UNTIL LEV>=0 AND LEV<=maxlevel
 8430CLS
 8440ELSE
 8445LEV=0:VDU7
 8446ENDIF
 8447startlev=LEV
 8450PRINT:PROCcentre("Level "+STR$(LEV),22)
 8455PRINT':PROCcentre("Get Ready...",22)
 8460A$=INKEY$(175)
 8470newlev=TRUE:life=1:REPEAT
 8480IF newlev THEN PROCtest:newlev=FALSE:ELSE !man1=512:man1?23=0:CALLinit_screen:CALLmainprog
 8485*FX15,1
 8490IF !detonated<>0 THEN
 8500PROCbox(10,10,30,15):PROCcentre("Reactor explosion!",18):PROCcentre("Mission aborted",18)
 8510A$=INKEY$(175):life=4
 8520ELSE
 8530IF !dead>=255 THEN
 8540PROCbox(11,10,28,15):PRINT:PROCpr(" Level complete")
 8550IF LEV<9 THEN PROCpr(" Next : level "+STR$(LEV+1))
 8555A$=INKEY$(175)
 8560LEV+=1:IF LEV<10 AND LEV>maxlevel THEN maxlevel=LEV
 8565newlev=TRUE
 8570ELSE
 8580IF life<3 THEN PROCbox(14,10,25,15):PRINT:PROCpr("Life "+STR$(life+1)):PROCpr("Get Ready"):A$=INKEY$(175)
 8585life+=1
 8590ENDIF
 8600ENDIF
 8610UNTIL life>3 OR LEV=10
 8620IF LEV=10 THEN PROCsucceed ELSE PROCfail
 8625IF !score>hisc(0) THEN PROCaddscore(!score)
 8630ENDPROC
 8640:
 8650DEFPROCcentre(M$,W)
 8660PRINTTAB((W-LEN(M$)) DIV 2);:PROCpr(M$)
 8670ENDPROC
 8680:
 8690DEFPROCfail
 8700PROCbox(6,8,34,19)
 8710RESTORE 8750
 8720REPEAT:READ M$:PROCpr(M$):UNTIL M$=""
 8730A$=INKEY$(750)
 8740CALLinit_screen:ENDPROC
 8750DATA You're dead.," "
 8760DATA You couldn't even manage
 8770DATA with 3 lives.  I'm giving
 8780DATA the contract to somebody
 8785DATA else...
 8790DATA " ","  Lunar base 4 Controller"
 8800DATA ""
 8810:
 8820DEFPROCshowhi
 8825LOCAL I
 8830CLS
 8835PROCpr("Moonquake high scores")
 8836PRINT
 8840FOR I=9 TO 0 STEP -1
 8850PRINT hisc(I);TAB(7);:PROCpr(hname$(I))
 8860NEXT
 8870ENDPROC
 8880:
 8890DEFPROCaddscore(S)
 8900CALLinit_screen
 8910PROCbox(9,10,31,26)
 8920I=1:found=FALSE:REPEAT
 8930IF hisc(I)>S THEN hisc(I-1)=S:hname$(I-1)="":found=TRUE  ELSE hisc(I-1)=hisc(I):hname$(I-1)=hname$(I)
 8940I+=1
 8945IF hisc(I-1)>S VDU7:found=TRUE
 8946IF I=10 AND NOT found THEN hisc(9)=S:hname$(9)="":I=11:found=TRUE
 8950UNTIL found
 8960IY=13-I:N$=""
 8965PROCshowhi:PRINT
 8966PROCpr("Enter name....")
 8967COLOUR63:PRINTTAB(7,IY);CHR$135;:COLOUR 8
 8970REPEAT:A=GET
 8980IF (A=8 OR A=127) AND LEN(N$)>0 THEN
 8981N$=LEFT$(N$,LEN(N$)-1)
 8982ELSE
 8990IF A<>8 AND A<>127 AND A<>13 AND LEN(N$)<13 THEN N$=N$+CHR$A
 8995ENDIF
 9000PRINTTAB(7,IY);N$;:COLOUR 63:PRINT;CHR$135;:COLOUR8
 9005IF A=8 OR A=127 THEN PRINT;" ":ELSE PRINT
 9010UNTIL A=13
 9020hname$(I-2)=N$
 9030PROCshowhi
 9040A$=INKEY$(500)
 9050CALLinit_screen
 9060ENDPROC
 9070:
 9080DEFPROCplaytwo
 9090!players=2:!score=0:!oscore=1
 9100CLS:PRINT'':PROCpr("Start level ?  0-9")
 9110REPEAT:LEV=GET-ASC("0"):UNTIL LEV>=0 AND LEV<=9
 9120PRINT''':PROCcentre("Get Ready",22)
 9130A$=INKEY$(175)
 9135red=3:green=3
 9140FIN=FALSE:newlev=TRUE:REPEAT
 9150IF newlev THEN PROCtest:newlev=FALSE:ELSE CALLinit_screen:CALLmainprog
 9160*FX15,1
 9170IF !detonated<>0 THEN
 9180PROCbox(10,10,30,15):PROCcentre("Reactor explosion!",18):PROCcentre("Mission aborted",18)
 9190A$=INKEY$(175):FIN=TRUE
 9200ELSE
 9210IF !man1<255 AND !man2<255 THEN
 9220PROCbox(10,10,30,15):PROCcentre("Both dead!",18):PROCcentre("Mission aborted",18)
 9230A$=INKEY$(175):FIN=TRUE
 9240ELSE
 9250PROCbox(10,10,30,15)
 9251IF !man1<255 THEN
 9252D$="Green":green-=1
 9253!man1=512:man1?23=0
 9254ELSE
 9255D$="Red":red-=1:!man2=512:man2?23=0
 9256ENDIF
 9257IF green=0 OR red=0 THEN
 9258PRINT:PROCcentre(D$+" loses",18)
 9259FIN=TRUE
 9260ELSE
 9261PROCcentre("Red : "+STR$(red),18):PROCcentre("Green : "+STR$(green),18)
 9262ENDIF
 9263PROCwait(150)
 9280ENDIF
 9290ENDIF
 9300UNTIL FIN
 9310CALLinit_screen
 9320ENDPROC
 9330:
 9340DEFPROCwait(delay)
 9350T=TIME
 9360REPEATUNTILTIME>T+delay
 9370ENDPROC
 9380:
 9390DEFPROCpr(M$)
 9400LOCAL I
 9404COLOUR 63
 9405PRINTCHR$135;:WAIT
 9410FOR I=1 TO LEN(M$)
 9415COLOUR 8
 9420PRINTCHR$127;MID$(M$,I,1);:COLOUR63:PRINT;CHR$135;
 9430IF MID$(M$,I,1)<>" " THEN SOUND2,-4,15000,0
 9440WAIT
 9450NEXT
 9454COLOUR8
 9455PRINTCHR$127;CHR$32
 9456SOUND2,0,0,0
 9457IF LEN(M$)=21 THEN PRINTTAB(0,VPOS-1);
 9460ENDPROC
 9470:
 9480DEFPROCinstruc
 9490CLS
 9500PROCpr("Accessing records...")
 9510PROCwait(100):CLS
 9520PROCpr("DATE : 08/05/2007"):PROCwait(50)
 9530PROCpr("Work begins on five")
 9540PROCpr("structures on the")
 9550PROCpr("lunar surface.  Each")
 9560PROCpr("will have its own")
 9570PROCpr("function and will")
 9580PROCpr("rely on the other")
 9590PROCpr("four to be completely")
 9600PROCpr("operational."):PRINT
 9610PROCpr("<SPACE> to continue..")
 9620REPEATUNTILGET=32
 9625CLS
 9630PROCpr("DATE : 21/06/2014"):PROCwait(50)
 9640PROCpr("Lunar bases become")
 9650PROCpr("fully operational.")
 9660PROCpr("Functions:")
 9670PROCpr("1-Landing/Launching,")
 9680PROCpr("  incoming & outgoing")
 9690PROCpr("2-Living quarters")
 9700PROCpr("3-Labs and workshop")
 9710PROCpr("4-Energy and air gen.")
 9720PROCpr("5-Storage and base")
 9730PROCpr("  maintenance")
 9735PRINT
 9740PROCpr("<SPACE> to continue")
 9750REPEATUNTILGET=32
 9755CLS
 9760PROCpr("DATE : 27/01/2026"):PROCwait(50)
 9770PROCpr("A large meteor hits")
 9780PROCpr("the surface of the")
 9790PROCpr("moon 38.2 Km from the")
 9800PROCpr("lunar base.  Base")
 9810PROCpr("section 4 receives")
 9820PROCpr("stuctural damage from")
 9830PROCpr("shockwaves, forcing")
 9840PROCpr("it offline...")
 9850PRINT:PROCpr("<SPACE> to continue..")
 9860REPEATUNTILGET=32
 9865CLS
 9870PROCpr("Date : 28/01/2026"):PROCwait(50)
 9880PROCpr("...present day..."):PROCwait(50):PRINT'
 9890PROCpr("As an expert in rock")
 9900PROCpr("blasting and salvage")
 9910PROCpr("work, you have been")
 9920PROCpr("summoned to the moon."):PRINT
 9930PROCpr("<SPACE> to continue..")
 9940REPEATUNTILGET=32
 9944CLS
 9945RESTORE 10010
 9950REPEAT:READ M$
 9960IF M$<>"EOL" AND M$<>"NPG" THEN PROCpr(M$)
 9970IF M$="NPG" THEN PROCpr("<SPACE> to continue"):REPEATUNTILGET=32:CLS
 9980UNTIL M$="EOL"
 9990ENDPROC
10000:
10010DATA Base 4 controller :
10020DATA To make it easier to
10030DATA make the base air-
10040DATA "tight, most of it was"
10050DATA "built underground, in"
10060DATA artificial caverns.
10070DATA The moonquake caused
10080DATA severe rockfalls on
10090DATA all ten processing
10100DATA levels.  We are using
10110DATA emergency air and
10120DATA backup generators.
10130DATA NPG
10140DATA You must clear these
10150DATA rockfalls in order
10160DATA for us to return the
10170DATA base to full power.
10190DATA Each level has 54 air
10200DATA "purifiers, which are"
10210DATA actually linked to
10220DATA the other levels.
10230DATA These are made from a
10240DATA tito-metacrystalline
10250DATA structure and are
10260DATA resistant to damage.,NPG
10270DATA "However, you will"
10280DATA encounter two types
10290DATA of nuclear reactors.
10300DATA The red and blue type
10310DATA (A mk 2) can survive
10320DATA ONE direct blast.
10330DATA The yellow and green
10340DATA (DB/34) MUST NOT be
10350DATA be hit at all.
10355DATA
10360DATA NPG
10370DATA One hit too many will
10380DATA cause a large atomic
10390DATA explosion!,"",NPG
10400DATA "Oh, by the way,"
10410DATA the impact of the
10420DATA meteor created a high
10430DATA electromagnetic pulse
10440DATA disabling the control
10450DATA circuits in the
10460DATA security droids that
10470DATA patrol the levels.
10480DATA They are roaming out
10490DATA of control and will
10500DATA kill if you come into
10510DATA contact with them.,NPG
10520DATA You may destroy them
10530DATA "if you wish, they are"
10540DATA "insured.","",NPG
10550DATA EQUIPMENT:
10560DATA Explosive generating
10570DATA "backpack, supplied"
10580DATA with energy cell for
10590DATA one low power bomb
10595DATA per power recharge.
10600DATA Higher power and more
10610DATA bombs can be gained
10620DATA by collecting
10630DATA appropriately marked
10640DATA extra cells that you
10650DATA may find.,NPG
10660DATA There are other
10670DATA various utility cells
10680DATA "you can use, though"
10690DATA it will be impossible
10700DATA to identify their
10710DATA purpose before use.
10715DATA
10720DATA NPG
10730DATA CONTROLS :
10740DATA Player - 1
10750DATA Suit   - Green
10760DATA Start  - Bottom right
10770DATA Left   - Z
10780DATA Right  - X
10790DATA Up     - F
10800DATA Down   - C
10810DATA Bomb   - G,"",NPG
10820DATA CONTROLS :
10830DATA Player - 2
10840DATA Suit   - Red
10850DATA Start  - Top left
10860DATA Left   - Keypad 1
10870DATA Right  - Keypad 2
10880DATA Up     - Keypad 6
10890DATA Down   - Keypad 3
10900DATA Bomb   - Keypad +,"",NPG
10901DATA 2 PLAYER GAME :,""
10902DATA "Blow the er, living"
10903DATA "daylights out of the"
10904DATA "other player.",""
10905DATA "Simple, innit?","","","",NPG
10910DATA Data retrieval
10920DATA complete...,"","","","","","","",NPG,EOL
10930:
10940DEFPROCsucceed
10950PROCbox(6,8,34,19)
10960RESTORE 11080
10970REPEAT:READ M$:PROCpr(M$):UNTIL M$=""
10980IF startlev=0 THEN
10990PROCpr("Wow! You finished all ten")
11000PROCpr("levels in one go!!!")
11010ELSE
11020PROCpr("Now try and complete all")
11030PROCpr("ten levels without using")
11040PROCpr("the level jump facility!")
11050ENDIF
11060A$=INKEY$(750)
11070CALLinit_screen:ENDPROC
11080DATA CONGRATULATIONS!
11085DATA " "
11090DATA You have managed to clear
11100DATA all ten levels!
11110DATA
11120:
11130DEFPROCfin
11140CLS
11150PRINT''
11160PROCpr("Are you sure you want")
11170PROCpr("to quit??  (Y/N)")
11180REPEATO$=GET$:UNTIL INSTR("YyNn",O$)>0
11190IF O$="Y" OR O$="y" THEN
11200PROCpr(""):PROCpr(""):PROCpr(""):PROCpr("Ok...")
11210O$=INKEY$(100):VDU26,20:CLS
11211*FX200
11212*FX11,32
11213END
11220ELSE
11230PROCpr(""):PROCpr(""):PROCpr(""):PROCpr("Nah, didn't think so")
11240O$=INKEY$(100)
11250ENDIF
11260ENDPROC

� >$.!Moonquake.!RunImage
� (c) 1992 Paul Taylor
�
(� DATE    -   TASK
2I� -------   ---------------------------------------------------------
<1� 21/7/92 - STATIC PLOTTER & SCREEN LAYOUT ??
FA� 22/7/92 - COMPLETED ABOVE STARTED MAIN PROG LOOP WITH 1 MAN
PH� 25/7/92 - COMPLETED 1 MAN RUNNING ROUND SCREEN WITH EDGE OF SCREEN
Z9�         - DETECTION AND BLOCKING BY CERTAIN OBJECTS
dI� 26/7/92 - ADDED BOMB DROPPING, BOMB EXPLOSIONS, CHAIN REACTIONS AND
n"�         - DEATH BY EXPLOSION
xJ� 27/7/92 - CORRECTED DEATH BY EXPLOSION, ADDED RUBBLE AND DESTRUCTION
�=�         - OF RUBBLE; ADDED SECOND MAN - NEW MAN SPRITES
�F� 01/8/92 - SECOND PLAYER WORKING; BOMB INFLATION; ROAMING ROBOTS;
�>�         - DEATH OF ROBOTS; DEATH BY ROBOTS; BOMB LIMITS;
�A�         - INDIVIDUAL BOMB STRENGTHS; COLLECTABLE TOKENS FOR
�-�         - MORE BOMBS AND STRONGER BOMBS
�?� 04/8/92 - 1 OR 2 PLAYER GAME; 1 & 0 HIT NUCLEAR REACTORS;
�8�         - ROBOTS DON'T DELIBERATELY RUN INTO FIRE;
�E�         - NUCLEAR REACTOR EXPLOSION; END OF LEVEL WHEN CLEARED;
�L�         - MYSTERY TOKENS - AUTO BOMB DROP, BOMB DETONATE, ROBOT FREEZE
��         - A STORY?
�:
��13
�!*SCREENLOAD <Obey$Dir>.SCREEN
�5*RMENSURE Explo 1.00 *RMLOAD <Obey$Dir>.SFX.EXPLO
�9*RMENSURE TokenRM 1.00 *RMLOAD <Obey$Dir>.SFX.TOKENRM
�1*RMENSURE ARG 1.00 *RMLOAD <Obey$Dir>.SFX.ARG
�3*RMENSURE RARG 1.00 *RMLOAD <Obey$Dir>.SFX.RARG
.� vdu 16,MR(50),robos(9),hisc(9),hname$(9)
!vdu=148
vdu!4=-1
,Ƞ 4
6ȡ 1,"EXPLO"
@ȡ 2,"TOKENRM"
Eȡ 3,"ARG"
Fȡ 4,"RARG"
J&ș "OS_ReadVduVariables",vdu,vdu+8
Tscr_start=vdu!8+8
X*FX200,1
Y*FX11,0
Z
@%=&05
[+�23,135,126,255,255,255,255,255,255,126
^:
rspnum=0
|gridx=1
�gridy=2
�table=4
�offset=5
�
temp=6
�temp2=7
�	scr=8
�� ---- Constants ----
�scream=6016
�ping=14336
�exdel=3
�numbots=10
�� code 80000
�� pass=0 � 2 � 2
�P%=code

[OPT pass
	ALIGN
.basic EQUD 0
&.screen EQUD (scr_start)
0+.init_screen MOV gridy,#0:STR R14,basic
:        LDR table,grid
D.gyloop MOV gridx,#0
N.gxloop MOV temp2,#19
X&        MLA temp,gridy,temp2,gridx
b#        LDRB spnum,[table,temp]
l        BL plotstatic
v        ADD gridx,gridx,#4
�        CMP gridx,#19*4
�        BLT gxloop
�        ADD gridy,gridy,#4
�        CMP gridy,#13*4
�        BLT gyloop
�        LDR PC,basic
�:
�.grid  EQUD(griddata)
�P.safe  EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0:EQUD 0
�.plotstatic ADR R12,safe
�$        STMIA R12,{R1-R7,R9-R11}
�        LDR scr,screen
�H        MOV table,spnum,LSL #8       ; Multiply by 256 (sprite size)
        LDR spnum,sprites
!        ADD table,table,spnum
        MOV temp,#4*320
 $        MLA temp2,temp,gridy,scr
*!        ADD scr,temp2,#39*320
4G        ADD scr,scr,gridx,LSL#2      ; scr = top left corner of spr
>]:      � l=1 � 8:[OPT pass
H/        LDMIA (table)!,{R1-R3,R5-R7,R9,R10}
R"        STMIA (scr),{R1-R3,R5}
\        ADD scr,scr,#320
f&        STMIA (scr),{R6,R7,R9,R10}
p        ADD scr,scr,#320
z]:      � l:[OPT pass
�        ADR R12,safe
�$        LDMIA R12,{R1-R7,R9-R11}
�        MOV PC,R14
�:
�.sprites EQUD(sprite_data)
�       �scoredraw
�        �movingbloke
�.griddata �reserve(19*13*4)
� .sprite_data �reserve(15000)
�        �blokeplotters
�]
�
� pass
�3�("LOAD <Obey$Dir>.MQSPRITES "+�~(sprite_data))
,�("LOAD <Obey$Dir>.NUMBERS "+�~(digits))
M=manrtns:� I=0 � 3:� �tHD
#� I2=1 � 8:� RN:!M=MR(RN+(I*5))
$
M+=4:�
.�
8� I=20 � 25:!M=MR(I):M+=4:�
B!M=null:M+=4
L@� I=0 � 3:� �tHD:� I2=1 � 8:� RN:!M=MR(26+RN+(I*5)):M+=4:�:�
V!death=M
`!aurasp=MR(50)
j'� I=20 � 25:!M=MR(I):M+=4:�:!M=null
t+M=robotrtns:� I=46 � 49:!M=MR(I):M+=4:�
x
� �TUX
y�I=0 � 9:� robos(I)
z-hisc(I)=1000*(I+1):hname$(I)="Beat me!":�
~
�loopgame
�� 0,1,2,1,0,3,4,3
�:
�ݤreserve(bytes)
�P%=P%+bytes
�=""
�:
�ݤmovingbloke
�x=1:y=2:off=3
�direc=4
�temp3=9
�
[OPT pass
�E.man1   EQUD 255:EQUD 0:EQUD 18*4:EQUD 12*4:EQUD 0:EQUD &00020001
<.man2   EQUD 255:EQUD 0:EQUD 0:EQUD 0:EQUD 1:EQUD &20001

.dead EQUD 255
.offset  EQUD 0
.manx    EQUD 0
(.many    EQUD 0
2.dir     EQUD 1
<.stats   EQUD 0
F.man    EQUD 3
P.players EQUD 0
Z.rubble EQUD 0
d.oscore EQUD 1
n.back_from_main EQUD 0
x$.mainprog STR R14,back_from_main
�&.mainloop MOV R0,#19:SWI "OS_Byte"
�<          LDR temp,detonated:CMP temp,#0:SWINE "OS_Byte"
�6         LDR temp,players:CMP temp,#1:BNE noscore1
�J         LDR temp,score:LDR temp2,oscore:CMP temp,temp2:BLNE redoscore
�
.noscore1
�         BL scangrid
�         BL wiperobots
�$        MOV temp,#1:STR temp,man
�
.manloop1
�D        LDR temp,man:CMP temp,#1:ADREQ temp,man1:ADRNE temp,man2
�c        LDMIA temp,{R12,off,x,y,direc,temp3}:ADR temp,dead:STMIA temp,{R12,off,x,y,direc,temp3}
�9        LDR x,manx:LDR y,many:MOV R12,#1:BL plotstat2
�L        CMP R12,#1:BEQ notdead1:LDR temp,dead:CMP temp,#255:BNE notdead1
�        STR R12,dead
�9        MOV R0,#3:MVN R1,#14:MOV R2,#scream:MOV R3,#0
�        SWI "Sound_Control"
�!        LDR x,manx:LDR y,many

.notdead1
B         LDR off,offset:LDR direc,dir:CMP off,#0:BNE offsetset
?        CMP direc,#1:ADDEQ x,x,#4:CMP direc,#0:SUBEQ x,x,#4
"@         CMP direc,#2:ADDEQ y,y,#4:CMP direc,#3:SUBEQ y,y,#4
,         BL plotstat2
6         B aftersecondsqr
@C.offsetset  CMP direc,#1:ADDEQ x,x,#4:CMP direc,#0:ADDEQ x,x,#4
J@         CMP direc,#2:ADDEQ y,y,#4:CMP direc,#3:ADDEQ y,y,#4
T#        MOV R12,#1:BL plotstat2
^X        CMP R12,#1:BEQ aftersecondsqr:LDR temp,dead:CMP temp,#255:BNE aftersecondsqr
_         STR R12,dead
`:         MOV R0,#3:MVN R1,#14:MOV R2,#scream:MOV R3,#0
a          SWI "Sound_Control"
h.aftersecondsqr
rx         ADR temp,dead:LDMIA temp,{R12,off,x,y,direc,temp3}:LDR temp,man:CMP temp,#1:ADREQ temp,man1:ADRNE temp,man2
|1         STMIA temp,{R12,off,x,y,direc,temp3}
�e         LDR temp,man:ADD temp,temp,#1:STR temp,man:LDR temp3,players:CMP temp,temp3:BLE manloop1
�        BL redrawrobots
�$        MOV temp,#1:STR temp,man
�
.manloop2
�D        LDR temp,man:CMP temp,#1:ADREQ temp,man1:ADRNE temp,man2
�c        LDMIA temp,{R12,off,x,y,direc,temp3}:ADR temp,dead:STMIA temp,{R12,off,x,y,direc,temp3}
�"         LDR x,manx:LDR y,many
�)         LDR direc,dir:LDR off,offset
�+         LDR scr,screen:MOV temp,#4*320
�%         MLA temp2,temp,gridy,scr
�!        ADD scr,temp2,#39*320
�#        ADD scr,scr,gridx,LSL#2
�8        CMP direc,#2:MOVGE temp2,#640:MOVLT temp2,#2
!        MLA scr,temp2,off,scr
2        LDR R12,dead:CMP R12,#255:BGE notdead3
2        MOV temp,#4<<5:ADD temp,temp,R12,LSR#1
&        B altogether
0S.notdead3 BEQ noaura:SUB R12,R12,#1:STR R12,dead:MOV temp3,scr:ADR R14,b_f_aura
:          LDR PC,aurasp
D.b_f_aura MOV scr,temp3
N".noaura   MOV temp,direc,LSL#5
X?        ADD temp,temp,off,LSL#2   ;find addr of man routine
bA        LDR temp3,man:CMP temp3,#1:ADDNE temp,temp,#4*4*8+7*4
l .altogether LDR temp2,mangfx
v        ADR R14,rendez
�        BIC temp,temp,#%11
�0       STR temp2,checktmp2:STR temp,checktmp
�        LDR PC,[temp2,temp]
�.rendez
�2        LDR R12,dead:CMP R12,#255:BGE notdead2
�>        ADD R12,R12,#1:CMP R12,#49:LDREQ PC,back_from_main
�$        STR R12,dead:B endupdate
�
.notdead2
�#        CMP off,#0:BEQ keycheck
�"        CMP direc,#1:BEQ backw
�"        CMP direc,#2:BEQ backw
�3        ADD off,off,#1:CMP off,#8:BLT endupdate
�        MOV off,#0
8        CMP direc,#0:LDREQ temp,manx:LDRNE temp,many
<        ADD temp,temp,#4:STREQ temp,manx:STRNE temp,many
        B endupdate
 .backw  SUB off,off,#1
*.endupdate STR off,offset
4x         ADR temp,dead:LDMIA temp,{R12,off,x,y,direc,temp3}:LDR temp,man:CMP temp,#1:ADREQ temp,man1:ADRNE temp,man2
>1         STMIA temp,{R12,off,x,y,direc,temp3}
He         LDR temp,man:ADD temp,temp,#1:STR temp,man:LDR temp3,players:CMP temp,temp3:BLE manloop2
RB           LDR temp,rubble:CMP temp,#0:LDREQ PC,back_from_main
\       B mainloop
f:
p.mangfx EQUD (manrtns)
z7.findtoken ADD temp,temp,spnum:LDRB spnum,[temp,#1]
�(           CMP spnum,#48:BLT tokened
�5          LDR R7,score:ADD R7,R7,#50:STR R7,score
�=           BGT morefire:MOV table,#3:STRB table,[temp,#1]
�            STRB table,[temp]
�/           ADR temp,stats:LDRB spnum,[temp]
�3           ADD spnum,spnum,#1:STRB spnum,[temp]
�G           MOV temp,x:MOV temp2,y:MOV R0,#2:MVN R1,#14:MOV R2,#ping
�9           SWI "Sound_Control":MOV x,temp:MOV y,temp2
�?           LDR temp,rubble:SUB temp,temp,#1:STR temp,rubble
�           B tokened
�J.morefire  CMP spnum,#49:BGT unknown:MOV table,#3:STRB table,[temp,#1]
�            STRB table,[temp]
�2           ADR temp,stats:LDRB spnum,[temp,#2]
	6           ADD spnum,spnum,#1:STRB spnum,[temp,#2]
	G           MOV temp,x:MOV temp2,y:MOV R0,#2:MVN R1,#14:MOV R2,#ping
	9           SWI "Sound_Control":MOV x,temp:MOV y,temp2
	$?           LDR temp,rubble:SUB temp,temp,#1:STR temp,rubble
	.           B tokened
	8J.unknown   CMP spnum,#50:BNE tokened:MOV table,#3:STRB table,[temp,#1]
	B6           LDR R7,score:ADD R7,R7,#25:STR R7,score
	L            STRB table,[temp]
	VG           MOV temp,x:MOV temp2,y:MOV R0,#2:MVN R1,#14:MOV R2,#ping
	`9           SWI "Sound_Control":MOV x,temp:MOV y,temp2
	j?           LDR temp,rubble:SUB temp,temp,#1:STR temp,rubble
	t1           ADR R14,tokened:LDR PC,execunknown
	~:
	�.score EQUD 0
	�.aurasp EQUD 0
	�.execunknown EQUD (mystery)
	�.checktmp EQUD 0
	�.checktmp2 EQUD 0
	�.plotstat2 ADR temp,safe2
	�4        STMIA temp,{x,y,off,direc,R5,R9-R11,R14}
	�        LDR scr,screen
	�        MOV temp,#19
	�        MLA spnum,y,temp,x
	�        LDR temp,grid
	�#        LDRB table,[temp,spnum]
A        LDR R11,man:LDR R10,players:CMP R11,R10:BLE findtoken

%.tokened CMP table,#4:BLT notexpl
&        CMP table,#32:MOVLT R12,#0
.notexpl
(!        MOV table,table,LSL#8
2        LDR spnum,sprites
<!        ADD table,table,spnum
F        MOV temp,#4*320
P         MLA temp2,temp,y,scr
Z!        ADD scr,temp2,#39*320
d#        ADD scr,scr,gridx,LSL#2
n]:      � l=1 � 8:[OPT pass
x/        LDMIA (table)!,{R1-R3,R5-R7,R9,R10}
�"        STMIA (scr),{R1-R3,R5}
�        ADD scr,scr,#320
�&        STMIA (scr),{R6,R7,R9,R10}
�        ADD scr,scr,#320
�]:      � l:[OPT pass
�        ADR temp,safe2
�4        LDMIA temp,{x,y,off,direc,R5,R9-R11,R14}
�        MOV PC,R14
�.safe2  �reserve(4*10)
�:
�
.keycheck
�> ; OSBYTE WITH R0=121 � R1=KEY NUM � &80 AS � �142/3 �B.��
  LDR off,offset
        LDR R11,man
.        LDR x,manx:LDR y,many:MOV temp,#19
"        MLA spnum,y,temp,x
,        LDR temp,grid
60        ADD temp,temp,spnum:ADD temp,temp,#1
@5        LDRB temp2,[temp]:CMP temp2,#3:BNE leftmv
JS        LDR R0,manstats:LDRB temp3,[R0,#1]:LDRB R0,[R0]:CMP temp3,R0:BGE leftmv
TD        LDR R0,manstats:LDRB temp3,[R0,#3]:TST temp3,#1:BNE drop
^        MOV R0,#121
h=        CMP R11,#1:�Q R1,#(83 � &80):MOVNE R1,#(58 � &80)
r        SWI "OS_Byte"
|         CMP R1,#0:BEQ leftmv
�T.drop   LDR R0,manstats:LDRB temp3,[R0,#1]:ADD temp3,temp3,#1:STRB temp3,[R0,#1]
�N        MOV temp2,#2:STRB temp2,[temp]:MOV temp2,#47:STRB temp2,[temp,#-1]
�B        MOV temp2,#127:STRB temp2,[temp,#1]:STRB R11,[temp,#2]
�+.leftmv LDR x,manx:CMP x,#0:BEQ rightmv
�:        LDRB temp2,[temp,#-4]:CMP temp2,#3:BLT rightmv
�%        CMP temp2,#51:BGE rightmv
�        MOV R0,#121
�>        CMP R11,#1:�Q R1,#(97 � &80):MOVNE R1,#(107 � &80)
�        SWI "OS_Byte"
�!        CMP R1,#0:BEQ rightmv
�,        LDR x,manx:SUB x,x,#4:STR x,manx
�%        MOV off,#7:STR off,offset
�&        MOV direc,#1:STR direc,dir
        B endupdate
,.rightmv LDR x,manx:CMP x,#18*4:BEQ upmv
6        LDRB temp2,[temp,#4]:CMP temp2,#3:BLT upmv
&"        CMP temp2,#51:BGE upmv
0        MOV R0,#121
:>        CMP R11,#1:�Q R1,#(66 � &80):MOVNE R1,#(124 � &80)
D        SWI "OS_Byte"
N        CMP R1,#0:BEQ upmv
X%        MOV off,#1:STR off,offset
b&        MOV direc,#0:STR direc,dir
l        B endupdate
v*.upmv   LDR y,many:CMP y,#0:BEQ downmv
�>        LDRB temp2,[temp,#-(19*4)]:CMP temp2,#3:BLT downmv
�$        CMP temp2,#51:BGE downmv
�        MOV R0,#121
�=        CMP R11,#1:�Q R1,#(67 � &80):MOVNE R1,#(26 � &80)
�        SWI "OS_Byte"
�         CMP R1,#0:BEQ downmv
�,        LDR y,many:SUB y,y,#4:STR y,many
�%        MOV off,#7:STR off,offset
�&        MOV direc,#2:STR direc,dir
�        B endupdate
�0.downmv LDR y,many:CMP y,#12*4:BEQ endupdate
�@        LDRB temp2,[temp,#(19*4)]:CMP temp2,#3:BLT endupdate
�'        CMP temp2,#51:BGE endupdate

        MOV R0,#121

>        CMP R11,#1:�Q R1,#(82 � &80):MOVNE R1,#(108 � &80)

        SWI "OS_Byte"

 #        CMP R1,#0:BEQ endupdate

*%        MOV off,#1:STR off,offset

4&        MOV direc,#3:STR direc,dir

>        B endupdate

H:

R.manstats EQUD (stats)

\$.manrtns �reserve(2*(4*4*8+7*4))

f.null    MOV PC,R14

p         �gridscanning

z]

�=""

�:

�ݤblokeplotters

�� X,Y,C,F,man

�F=� "<Obey$Dir>.BLOKE"

�� man=0 � 50

�MR(man)=P%

�� Y=0 � 15:� X=0 � 15

�?C=�#F:� C<>&F8 � [OPT pass:MOV temp,#C:STRB temp,[scr,#X]:]

�9�:[OPTpass:ADD scr,scr,#320:]:�:[OPTpass:MOV PC,R14:]

��

��#F

�=""
:
ݤgridscanning
temp3=9:oldx=10:oldy=11
$
[OPT pass
.$.scangrid STR R14,back_from_scan
8         MOV gridy,#0
B.scany   MOV gridx,#0
L4.scanx   MOV temp,#19:MLA temp2,temp,gridy,gridx
V.         LDR temp,grid:ADD temp,temp,temp2
`!         LDRB spnum,[temp,#1]
j(         CMP spnum,#1:BEQ checkblock
t'         CMP spnum,#2:BEQ checkbomb
~(         CMP spnum,#4:BLT resumescan
�(         CMP spnum,#10:BLE checkexpl
�.resumescan ADD x,x,#4
�"         CMP x,#19*4:BLT scanx
�         ADD y,y,#4
�&         CMP gridy,#13*4:BLT scany
�"         LDR PC,back_from_scan
�.back_from_scan EQUD 0
�:
�.checkoff EQUD 0
�.bman1  EQUD (man1)
�.bman2  EQUD (man2)
�.expsiz  EQUD 0
#.checkbomb LDRB temp2,[temp,#2]

4         SUB temp2,temp2,#1:STRB temp2,[temp,#2]
&         CMP temp2,#0:BEQ blowbomb
>         � spnum,temp2,#%1111:CMP spnum,#0:BNE nobombchnge
(X         MOV spnum,temp2,LSR#4:ADD spnum,spnum,#40-1:STRB spnum,[temp]:BL plotstatic
2.nobombchnge B resumescan
<r.blowbomb MOV spnum,#20:STRB spnum,[temp,#2]:MOV spnum,#4:STRB spnum,[temp,#1]:MOV spnum,#11:STRB spnum,[temp]
F'         MOV off,temp:BL plotstatic
P;         MOV oldx,gridx:MOV oldy,gridy:LDR temp2,expsiz
ZL         LDRB temp2,[temp,#3]:CMP temp2,#1:LDREQ R0,bman1:LDRNE R0,bman2
dH         ADD R0,R0,#5*4:LDRB R1,[R0,#1]:SUB R1,R1,#1:STRB R1,[R0,#1]
n*         LDRB R1,[R0,#2]:STR R1,expsiz
x�         MOV temp,off:MOV R0,#1:MVN R1,#14:MOV R2,#4096:MOV R3,#0:SWI "Sound_Control":MOV off,temp:MOV gridx,oldx:MOV gridy,oldy
�         SUB temp,off,#19*4
�         STR off,checkoff
�         LDR temp2,expsiz
�!.blastU  LDRB spnum,[temp,#1]
�$         CMP gridy,#0:BEQ endBlu
�A         MOV temp3,#exdel:CMP spnum,#2:STREQB temp3,[temp,#2]
�>         CMP spnum,#1:MOV temp3,#32:STREQB temp3,[temp,#2]
�F         CMP spnum,#48:BLT notoken1:MOV temp3,#1:STRB temp3,[temp]
�D         STRB temp3,[temp,#1]:MOV temp3,#32:STRB temp3,[temp,#2]
�
.notoken1
�!         CMP spnum,#3:BEQ ok1
�%         CMP spnum,#51:BLT endBlu
�&         CMP spnum,#52:BGE nuclear
E         CMP spnum,#51:BNE endBlu:MOV spnum,#52:STRB spnum,[temp]
:         STRB spnum,[temp,#1]:SUB y,y,#4:BL plotstatic
         B endBlu
"/.ok1     MOV spnum,#20:STRB spnum,[temp,#2]
,4         CMP temp2,#1:�Q spnum,#9:MOVNE spnum,#6
6F         STRB spnum,[temp,#1]:ADD spnum,spnum,#7:STRB spnum,[temp]
@-         SUB gridy,gridy,#4:BL plotstatic
J3         SUB temp2,temp2,#1:SUB temp,temp,#19*4
T$         CMP temp2,#0:BGT blastU
^,.endBlu  MOV gridy,oldy:LDR temp2,expsiz
h         ADD temp,off,#19*4
r!.blastD  LDRB spnum,[temp,#1]
|'         CMP gridy,#12*4:BEQ endBld
�C         MOV temp3,#exdel+1:CMP spnum,#2:STREQB temp3,[temp,#2]
�>         CMP spnum,#1:MOV temp3,#32:STREQB temp3,[temp,#2]
�F         CMP spnum,#48:BLT notoken2:MOV temp3,#1:STRB temp3,[temp]
�D         STRB temp3,[temp,#1]:MOV temp3,#32:STRB temp3,[temp,#2]
�
.notoken2
�!         CMP spnum,#3:BEQ ok2
�%         CMP spnum,#51:BLT endBld
�&         CMP spnum,#52:BGE nuclear
�E         CMP spnum,#51:BNE endBld:MOV spnum,#52:STRB spnum,[temp]
�:         STRB spnum,[temp,#1]:ADD y,y,#4:BL plotstatic
�         B endBld
�.ok2
�/         MOV spnum,#20:STRB spnum,[temp,#2]
5         CMP temp2,#1:�Q spnum,#10:MOVNE spnum,#6
F         STRB spnum,[temp,#1]:ADD spnum,spnum,#7:STRB spnum,[temp]
-         ADD gridy,gridy,#4:BL plotstatic
&3         SUB temp2,temp2,#1:ADD temp,temp,#19*4
0$         CMP temp2,#0:BGT blastD
:,.endBld  MOV gridy,oldy:LDR temp2,expsiz
D         ADD temp,off,#4
N!.blastR  LDRB spnum,[temp,#1]
X'         CMP gridx,#18*4:BEQ endBlr
bC         MOV temp3,#exdel+1:CMP spnum,#2:STREQB temp3,[temp,#2]
l>         CMP spnum,#1:MOV temp3,#32:STREQB temp3,[temp,#2]
vF         CMP spnum,#48:BLT notoken3:MOV temp3,#1:STRB temp3,[temp]
�D         STRB temp3,[temp,#1]:MOV temp3,#32:STRB temp3,[temp,#2]
�
.notoken3
�!         CMP spnum,#3:BEQ ok3
�%         CMP spnum,#51:BLT endBlr
�&         CMP spnum,#52:BGE nuclear
�E         CMP spnum,#51:BNE endBlr:MOV spnum,#52:STRB spnum,[temp]
�:         STRB spnum,[temp,#1]:ADD x,x,#4:BL plotstatic
�         B endBlr
�.ok3
�/         MOV spnum,#20:STRB spnum,[temp,#2]
�4         CMP temp2,#1:�Q spnum,#8:MOVNE spnum,#5
�F         STRB spnum,[temp,#1]:ADD spnum,spnum,#7:STRB spnum,[temp]
�-         ADD gridx,gridx,#4:BL plotstatic
0         SUB temp2,temp2,#1:ADD temp,temp,#4
$         CMP temp2,#0:BGT blastR
,.endBlr  MOV gridx,oldx:LDR temp2,expsiz
          SUB temp,off,#4
*!.blastL  LDRB spnum,[temp,#1]
4$         CMP gridx,#0:BEQ endBll
>A         MOV temp3,#exdel:CMP spnum,#2:STREQB temp3,[temp,#2]
H>         CMP spnum,#1:MOV temp3,#32:STREQB temp3,[temp,#2]
RF         CMP spnum,#48:BLT notoken4:MOV temp3,#1:STRB temp3,[temp]
\D         STRB temp3,[temp,#1]:MOV temp3,#32:STRB temp3,[temp,#2]
f
.notoken4
p!         CMP spnum,#3:BEQ ok4
z%         CMP spnum,#51:BLT endBll
�&         CMP spnum,#52:BGE nuclear
�E         CMP spnum,#51:BNE endBll:MOV spnum,#52:STRB spnum,[temp]
�:         STRB spnum,[temp,#1]:SUB x,x,#4:BL plotstatic
�         B endBll
�.ok4
�/         MOV spnum,#20:STRB spnum,[temp,#2]
�4         CMP temp2,#1:�Q spnum,#7:MOVNE spnum,#5
�F         STRB spnum,[temp,#1]:ADD spnum,spnum,#7:STRB spnum,[temp]
�-         SUB gridx,gridx,#4:BL plotstatic
�0         SUB temp2,temp2,#1:SUB temp,temp,#4
�$         CMP temp2,#0:BGT blastL
�/.endBll  MOV x,oldx:MOV y,oldy:B resumescan
�:
.detonated EQUD 0
.safen  �reserve(3*4)
3.nuclear ADR temp2,safen:STMIA temp2,{x,y,temp}
$K         MOV R0,#1:MVN R1,#14:MOV R2,#256:MOV R3,#0:SWI "Sound_Control"
.+         MOV temp,#1:STR temp,detonated
0F         LDR temp,man1:CMP temp,#255:MOV temp,#255:STRGT temp,man1
2F         LDR temp,man2:CMP temp,#255:MOV temp,#255:STRGT temp,man2
8$         MOV y,#0:LDR temp,rgrid
B.nuclylp MOV x,#0
L;.nuclxlp LDRB spnum,[temp,#1]:CMP spnum,#0:BEQ nextnucl
VH         CMP spnum,#2:BLT smllexp:CMP spnum,#48:BLT addfire:.smllexp
`.         MOV spnum,#1:STRB spnum,[temp,#1]
jL         STRB spnum,[temp]:MOV spnum,#32:STRB spnum,[temp,#2]:B nextnucl
t<.addfire MOV spnum,#20:STRB spnum,[temp,#2]:MOV spnum,#4
~<         TST x,#1:MOVNE spnum,#5:TST y,#1:MOVNE spnum,#6
�F         STRB spnum,[temp,#1]:ADD spnum,spnum,#7:STRB spnum,[temp]
�?.nextnucl ADD x,x,#1:ADD temp,temp,#4:CMP x,#19:BLT nuclxlp
�-         ADD y,y,#1:CMP y,#13:BLT nuclylp
�#         LDMIA temp2,{x,y,temp}
�         B endBll
�:
�=.checkexpl LDRB temp2,[temp,#2]:CMP temp2,#17:BNE nextex1
�K           ADD spnum,spnum,#21:STRB spnum,[temp]:BL plotstatic:B endexp
�(.nextex1   CMP temp2,#14:BNE nextex2
�7           STRB spnum,[temp]:BL plotstatic:B endexp
�(.nextex2   CMP temp2,#10:BNE nextex3
�K           ADD spnum,spnum,#21:STRB spnum,[temp]:BL plotstatic:B endexp
'.nextex3   CMP temp2,#7:BNE nextex4

J           ADD spnum,spnum,#7:STRB spnum,[temp]:BL plotstatic:B endexp
'.nextex4   CMP temp2,#3:BNE nextex5
K           ADD spnum,spnum,#14:STRB spnum,[temp]:BL plotstatic:B endexp
(&.nextex5   CMP temp2,#0:BNE endexp
2B           MOV spnum,#3:STRB spnum,[temp]:STRB spnum,[temp,#1]
<)           BL plotstatic:B resumescan
F6.endexp    SUB temp2,temp2,#1:STRB temp2,[temp,#2]
P           B resumescan
Z:
d@.checkblock LDRB temp2,[temp,#2]:CMP temp2,#0:BEQ resumescan
n>           LDRB temp2,[temp,#3]:CMP temp2,#0:BEQ nextsprte
xC           SUB temp2,temp2,#1:STRB temp2,[temp,#3]:B resumescan
�E.nextsprte LDRB spnum,[temp,#2]:STRB spnum,[temp]:MOV temp2,spnum
�E           CMP spnum,#3:STREQB spnum,[temp,#1]:ADD temp2,temp2,#1
�*           CMP temp2,#40:BEQ randtoken
�#.randed    STRB temp2,[temp,#2]
�>           MOV temp2,#2:STRB temp2,[temp,#3]:BL plotstatic
�           B resumescan
�:
�K.randtoken LDR temp3,detonated:CMP temp3,#0:MOVNE temp2,#3:BNE nochoice
�B           LDR temp3,score:ADD temp3,temp3,#10:STR temp3,score
�Q          LDR temp3,blockseed:ADD temp3,temp3,temp3,LSR#1:STR temp3,blockseed
�>            � temp3,temp3,#255:MOV temp2,#48:CMP temp3,#25
�-            MOVGT temp2,#49:CMP temp3,#50
�,           MOVGT temp2,#50:CMP temp3,#60
            MOVGT temp2,#3
4.nochoice STRB temp2,[temp]:STRB temp2,[temp,#1]
           MOV spnum,temp2
"&           CMP spnum,#3:BNE randed
,C           LDR temp2,rubble:SUB temp2,temp2,#1:STR temp2,rubble
6           B randed
@:
J.blockseed EQUS ("USER")
T          �robotix
^]
h=""
r:
|
��test
��
��game:�
��init_screen
�*FX15,1
�
�mainprog
�*FX15,1
�
:
&��findinkeys
0�
:
���=32
D5T=�:���>T+100:�7:�I=-1�-255�-1:� �(I) � �I:I=-256
N�
X�0
b�
l:
v
��game
�
rubbles=0
�$I=griddata:� Y=0 � 12:� X=0 � 18
�L� (X+Y)>1 � (X+Y)<29 � �(15)<10 � !I=&00000101:rubbles+=1:� !I=&00000303
�I+=4
��:�
�!� Y=1 � 11 � 2:� X=1 � 17 � 2
�2V=griddata+X*4+(Y*19*4):� !V=&101 � rubbles-=1
�!V=0
�� X:� Y
�
� �tlW
�"M=man1:�I=1�12:� D:!M=D:M+=4:�
�� (6070+10*LEV)
��:� R,X,Y:� X<>-1 �
�.L=griddata+X*4+Y*4*19:� !L=&101 rubbles-=1
� R=1 !L=&3333 � !L=&3535
�

� X=-1
 placed=0
*�:X=�(19)-1:Y=�(13)-1
4 � (X+Y)>5 � (X+Y)<23 � X>0 �
>0I=griddata+X*4+19*4*Y:rd=robodata+5*4*placed
H� !I=&101 � rubbles-=1
RZ� !I=&101 � !I=&303 � !I=&00000303:!rd=X*4:rd!4=Y*4:rd!8=0:rd!12=0:rd!16=255:placed+=1
\�
f�placed=robos(LEV)
k!maxbots=robos(LEV)
p/� !players=1 � !rubble=rubbles � !rubble=-1
z!rhalt=0
�!detonated=0
�
!man=3
��
�1� 512,0,18*4,12*4,0,&20001,512,0,0,0,1,&20001
�� 0,-1,0
�� 0,-1,0
�� 0,-1,0
�� 1,9,6, 0,-1,0
�� 2,9,6, 0,-1,0
�� 1,6,6, 1,12,6, 0,-1,0
�"� 1,0,6, 1,18,6, 2,9,6, 0,-1,0
�)� 1,4,6, 1,14,6, 2,9,8, 2,9,4, 0,-1,0
;� 1,2,2, 1,16,2, 1,2,10, 1,16,10, 2,0,6, 2,18,6, 0,-1,0
I� 1,2,2, 1,4,6, 1,2,10, 1,16,2, 1,16,10, 1,14,6, 2,9,8, 2,9,4, 0,-1,0
� 1,2,4,2,4,4,5,6,8,10
:
$
ݤrobotix
.
[OPT pass
8#.robodata �reserve(numbots*5*4)
B.rx   EQUD 0
L.ry   EQUD 0
V.roff EQUD 0
`.rdir EQUD 0
j.rdead EQUD 0
t.robonum EQUD 0
~>.wiperobots STR R14,back_from_rtn:MOV R0,#0:STR R0,robonum
�=.roboloop1 LDR R0,robonum:MOV temp,#5*4:MUL temp2,R0,temp
�R          ADR temp,robodata:ADD temp,temp,temp2:LDMIA temp,{x,y,off,direc,R12}
�:            ADR temp,rx:STMIA temp,{x,y,off,direc,R12}
�6         LDR x,rx:LDR y,ry:MOV R12,#1:BL plotstat2
�N         CMP R12,#1:BEQ rnotded1:LDR temp,rdead:CMP temp,#255:BNE rnotded1
�         STR R12,rdead
�8         MOV R0,#4:MVN R1,#14:MOV R2,#7168:MOV R3,#0
�        SWI "Sound_Control"
�         LDR x,rx:LDR y,ry
�?         LDR temp,score:ADDEQ temp,temp,#150:STR temp,score
�C.rnotded1 LDR off,roff:LDR direc,rdir:CMP off,#0:BNE roffsetset
�@         CMP direc,#1:ADDEQ x,x,#4:CMP direc,#0:SUBEQ x,x,#4
�@         CMP direc,#2:ADDEQ y,y,#4:CMP direc,#3:SUBEQ y,y,#4
�         BL plotstat2
�         B raftersecondsqr
�D.roffsetset  CMP direc,#1:ADDEQ x,x,#4:CMP direc,#0:ADDEQ x,x,#4
@         CMP direc,#2:ADDEQ y,y,#4:CMP direc,#3:ADDEQ y,y,#4

#        MOV R12,#1:BL plotstat2
\         CMP R12,#1:BEQ raftersecondsqr:LDR temp,rdead:CMP temp,#255:BNE raftersecondsqr
         STR R12,rdead
8         MOV R0,#4:MVN R1,#14:MOV R2,#7168:MOV R3,#0
        SWI "Sound_Control"
=         LDR temp,score:ADD temp,temp,#150:STR temp,score
(.raftersecondsqr
23         LDR R12,rdead:CMP R12,#255:BNE nxtman2
<:         LDR x,rx:LDR y,ry:LDR off,roff:LDR direc,rdir
F(         MOV x,x,LSL#2:MOV y,y,LSL#2
P'         CMP direc,#0:ADDEQ x,x,off
Z'         CMP direc,#1:ADDEQ x,x,off
d'         CMP direc,#2:ADDEQ y,y,off
n'         CMP direc,#3:ADDEQ y,y,off
x"         MOV oldx,x:MOV oldy,y
�i         LDR temp2,bloke1:LDR x,[temp2,#8]:LDR y,[temp2,#12]:LDR off,[temp2,#4]:LDR direc,[temp2,#16]
�(         MOV x,x,LSL#2:MOV y,y,LSL#2
�-         CMP direc,#0:ADDEQ x,x,off,LSL#1
�-         CMP direc,#1:ADDEQ x,x,off,LSL#1
�-         CMP direc,#2:ADDEQ y,y,off,LSL#1
�-         CMP direc,#3:ADDEQ y,y,off,LSL#1
�S         CMP x,oldx:SUBGT temp,x,oldx:SUBLE temp,oldx,x:CMP temp,#16:BGE nxtman
�S         CMP y,oldy:SUBGT temp,y,oldy:SUBLE temp,oldy,y:CMP temp,#16:BGE nxtman
�A         LDR temp,[temp2]:CMP temp,#255:MOV R12,#0:BNE nxtman
�         STR R12,[temp2]
�:         MOV R0,#3:MVN R1,#14:MOV R2,#scream:MOV R3,#0
�          SWI "Sound_Control"
�i.nxtman  LDR temp2,bloke2:LDR x,[temp2,#8]:LDR y,[temp2,#12]:LDR off,[temp2,#4]:LDR direc,[temp2,#16]
�(         MOV x,x,LSL#2:MOV y,y,LSL#2
�-         CMP direc,#0:ADDEQ x,x,off,LSL#1
�-         CMP direc,#1:ADDEQ x,x,off,LSL#1
-         CMP direc,#2:ADDEQ y,y,off,LSL#1
-         CMP direc,#3:ADDEQ y,y,off,LSL#1
T         CMP x,oldx:SUBGT temp,x,oldx:SUBLE temp,oldx,x:CMP temp,#16:BGE nxtman2
"T         CMP y,oldy:SUBGT temp,y,oldy:SUBLE temp,oldy,y:CMP temp,#16:BGE nxtman2
,B         LDR temp,[temp2]:CMP temp,#255:MOV R12,#0:BNE nxtman2
-         STR R12,[temp2]
.:         MOV R0,#3:MVN R1,#14:MOV R2,#scream:MOV R3,#0
/          SWI "Sound_Control"
67.nxtman2 ADR temp,rx:LDMIA temp,{x,y,off,direc,R12}
@;         LDR R0,robonum:MOV temp,#5*4:MUL temp2,R0,temp
JR          ADR temp,robodata:ADD temp,temp,temp2:STMIA temp,{x,y,off,direc,R12}
TT          ADD R0,R0,#1:STR R0,robonum:LDR temp,maxbots:CMP R0,temp:BLT roboloop1
^!         LDR PC,back_from_rtn
h.back_from_rtn EQUD 0
r.maxbots EQUD numbots
|.death EQUD 0
�.rhalt EQUD 0
�:
�'.redrawrobots STR R14,back_from_rtn
�%         MOV R0,#0:STR R0,robonum
�=.roboloop2 LDR R0,robonum:MOV temp,#5*4:MUL temp2,R0,temp
�R          ADR temp,robodata:ADD temp,temp,temp2:LDMIA temp,{x,y,off,direc,R12}
�7         ADR temp,rx:STMIA temp,{x,y,off,direc,R12}
�:         LDR x,rx:LDR y,ry:LDR direc,rdir:LDR off,roff
�,         LDR scr,screen2:MOV temp,#4*320
�%         MLA temp2,temp,gridy,scr
�"         ADD scr,temp2,#39*320
�$         ADD scr,scr,gridx,LSL#2
�8        CMP direc,#2:MOVGE temp2,#320:MOVLT temp2,#1
!        MLA scr,temp2,off,scr
3        LDR R12,rdead:CMP R12,#255:BEQ rnotded3
2        LDR temp,death:ADD temp,temp,R12,LSR#1
&I        BIC temp,temp,#%11:CMP R12,#55:ADDLT R12,R12,#1:STR R12,rdead
0        B overlive
::.rnotded3 ADR temp,robotrtns:ADD temp,temp,direc,LSL#2
D..overlive ADR R14,roborendez:LDR PC,[temp]
N.roborendez
X5        LDR R12,rdead:CMP R12,#255:BNE rendupdate
b3        LDR R12,rhalt:CMP R12,#0:BNE rendupdate
l#        CMP off,#0:BEQ robomove
v#        CMP direc,#1:BEQ rbackw
�#        CMP direc,#2:BEQ rbackw
�5        ADD off,off,#1:CMP off,#16:BLT rendupdate
�        MOV off,#0
�4        CMP direc,#0:LDREQ temp,rx:LDRNE temp,ry
�8        ADD temp,temp,#4:STREQ temp,rx:STRNE temp,ry
�        B rendupdate
�.rbackw SUB off,off,#1
�.rendupdate STR off,roff
�7         ADR temp,rx:LDMIA temp,{x,y,off,direc,R12}
�;         LDR R0,robonum:MOV temp,#5*4:MUL temp2,R0,temp
�O         LDR temp,rodata:ADD temp,temp,temp2:STMIA temp,{x,y,off,direc,R12}
�T          ADD R0,R0,#1:STR R0,robonum:LDR temp,maxbots:CMP R0,temp:BLT roboloop2
�         LDR PC,back_from_rtn
.bloke1 EQUD(man1)
.bloke2 EQUD(man2)
.rodata EQUD (robodata)
 :
*.screen2 EQUD(scr_start)
4.seed   EQUS "PAUL"
>.tempcheck EQUD 0
HG.pridir EQUD &01030200:EQUD &00030201:EQUD &03000102:EQUD &02000103
R.robomove  LDR off,roff
\*        LDR x,rx:LDR y,ry:MOV temp,#19
f-        MLA spnum,y,temp,x:LDR temp,rgrid
p0        ADD temp,temp,spnum:ADD temp,temp,#1
z        LDR direc,rdir
�8        ADR temp2,pridir:ADD temp2,temp2,direc,LSL#2
�C        LDR R0,seed:ADD R0,R0,R0,LSR#1:STR R0,seed:� R0,R0,#255
�3        CMP R0,#128:LDRLEB R0,[temp2]:BLE rleft
�6        CMP R0,#176:LDRLEB R0,[temp2,#1]:BLE rleft
�6        CMP R0,#224:LDRLEB R0,[temp2,#2]:BLE rleft
�        LDRB R0,[temp2,#3]
�(.rleft  LDR x,rx:CMP x,#0:BEQ rright
�9        LDRB temp2,[temp,#-4]:CMP temp2,#3:BNE rright
�         CMP R0,#1:BNE rright
�(        LDR x,rx:SUB x,x,#4:STR x,rx
�$        MOV off,#15:STR off,roff
�$        STR R0,rdir:B rendupdate
�.rright CMP R0,#0:BNE rup
(        LDR x,rx:CMP x,#18*4:BEQ rup
5        LDRB temp2,[temp,#4]:CMP temp2,#3:BNE rup
#        MOV off,#1:STR off,roff
$$        STR R0,rdir:B rendupdate
..rup    CMP R0,#2:BNE rdown
8'        LDR y,ry:CMP y,#0:BEQ rdown
B;        LDRB temp2,[temp,#-19*4]:CMP temp2,#3:BNE rdown
L(        LDR y,ry:SUB y,y,#4:STR y,ry
V$        MOV off,#15:STR off,roff
`$        STR R0,rdir:B rendupdate
j$.rdown  CMP R0,#3:BNE rendupdate
t/        LDR y,ry:CMP y,#12*4:BEQ rendupdate
~?        LDRB temp2,[temp,#19*4]:CMP temp2,#3:BNE rendupdate
�#        MOV off,#1:STR off,roff
�$        STR R0,rdir:B rendupdate
�.rgrid EQUD(griddata)
�.robotrtns �reserve(4*4)
�        �mystery_tokens
�]
�=""
�:
���loopgame
��
��8
�maxlevel=0
� options=�

�box(1,5,23,20)
�:�
� options �
 �:�pr("  1.  1 Player game")
 �:�pr("  2.  2 Player game")
(�:�pr("  3.  Instructions")
2�:�pr("  4.  Finish")
<�':�pr(" Please select")
>�
@�showhi
A�
Boptions=� options
F(CH=�(1500):� CH>=�("1") � CH<=�("4")
HȎ CH �
J� �("1"): �playone
L� �("2"): �playtwo
N� �("3"): �instruc
P� �("4"): �fin
R�
n�0
x�
�:
�ݤmystery_tokens
�
[OPT pass
�.safem �reserve(12*4)
�.mseed EQUS ("TCEL")
�5.mystery ADR temp,safem:STMIA temp,{R0-R5,R7-R12}
�C         LDR temp,mseed:ADD temp,temp,temp,LSR#1:STR temp,mseed
�7         � temp,temp,#255:CMP temp,#73:BGE toktype2
�-         LDR table,rgrid:MOV temp2,#13*19
�<.ecmloop LDRB temp3,[table,#1]:CMP temp3,#2:BNE notabomb
�/         MOV temp3,#1:STRB temp3,[table,#2]
�@.notabomb ADD table,table,#4:SUBS temp2,temp2,#1:BNE ecmloop
�5         ADR temp,safem:LDMIA temp,{R0-R5,R7-R12}
         MOV PC,R14
(.toktype2 CMP temp,#146:BGE toktype3
9         LDR temp,rhalt:� temp,temp,#1:STR temp,rhalt
"         MOV PC,R14
,(.toktype3 CMP temp,#182:BGE toktype4
6D         LDR temp,manstats:LDRB temp2,[temp,#3]:� temp2,temp2,#1
@,         STRB temp2,[temp,#3]:MOV PC,R14
AI.toktype4 LDR temp,mandead:MOV temp2,#512:STR temp2,[temp]:MOV PC,R14
B:
C.mandead EQUD (dead)
J]
T=""
^:
hݤscoredraw
r
� temp
|7number=0:dig=1:pwr=2:pwrlst=3:spaddr=4:scr=8:temp=5
�
[OPT pass
�:.powers10 EQUD 10000:EQUD 1000:EQUD 100:EQUD 10:EQUD 1
�.digits �reserve(10*4*8)
�4.redoscore ADR pwrlst,powers10:ADR spaddr,digits
�:           LDR number,score:LDR R7,screen:SUB R7,R7,#4
�4.powrloop  LDR pwr,[pwrlst]:ADD pwrlst,pwrlst,#4
�2           CMP pwr,#1:�Q dig,number:BEQ outdig
�           MOV dig,#0
�(.digloop   CMP number,pwr:BLT outdig
�$           SUB number,number,pwr
�'           ADD dig,dig,#1:B digloop
�-.outdig    MOV temp,dig,LSL #5:MOV dig,#0
�9           MOV scr,R7:ADD scr,scr,#320*4:ADD R7,R7,#4
 0.digoutp   LDR R6,[spaddr,temp]:STR R6,[scr]
 ?           ADD scr,scr,#320:ADD temp,temp,#4:ADD dig,dig,#1
 %           CMP dig,#8:BLT digoutp
 &&           CMP pwr,#1:BNE powrloop
 0<           LDR number,score:STR number,oscore:MOV PC,R14
 :]
 D=""
 N:
 X��box(X1,Y1,X2,Y2)
 b� 28,X1,Y2,X2,Y1
 l�
 v
� C=0 � 3
 �	� C*4
 �Aȓ X1*32+C*4,(31-Y2)*32+C*4,(1+X2-X1)*32-C*8,(1+Y2-Y1)*32-C*8
 ��
 �� 28,X1+1,Y2-1,X2-1,Y1+1
 ��
 �:
 �
��playone
 ��
 �!!players=1:!score=0:!oscore=1
 �� maxlevel<>0 �
 �1�'':�pr("Start level ?  0-"+�(maxlevel)+" :")
 �+�:LEV=�-�("0"):� LEV>=0 � LEV<=maxlevel
 ��
 ��
 �LEV=0:�7
 ��
 �startlev=LEV
!!�:�centre("Level "+�(LEV),22)
!!�':�centre("Get Ready...",22)
!
A$=�(175)
!newlev=�:life=1:�
! J� newlev � �test:newlev=�:� !man1=512:man1?23=0:�init_screen:�mainprog
!%*FX15,1
!*� !detonated<>0 �
!4T�box(10,10,30,15):�centre("Reactor explosion!",18):�centre("Mission aborted",18)
!>A$=�(175):life=4
!H�
!R� !dead>=255 �
!\.�box(11,10,28,15):�:�pr(" Level complete")
!f,� LEV<9 � �pr(" Next : level "+�(LEV+1))
!k
A$=�(175)
!p1LEV+=1:� LEV<10 � LEV>maxlevel � maxlevel=LEV
!unewlev=�
!z�
!�T� life<3 � �box(14,10,25,15):�:�pr("Life "+�(life+1)):�pr("Get Ready"):A$=�(175)
!�life+=1
!��
!��
!�� life>3 � LEV=10
!�� LEV=10 � �succeed � �fail
!�(� !score>hisc(0) � �addscore(!score)
!��
!�:
!���centre(M$,W)
!��(W-�(M$)) � 2);:�pr(M$)
!��
!�:
!�
��fail
!��box(6,8,34,19)
"
� �Tnb
"�:� M$:�pr(M$):� M$=""
"
A$=�(750)
"$�init_screen:�
".� You're dead.," "
"8� You couldn't even manage
"B� with 3 lives.  I'm giving
"L� the contract to somebody
"Q
� else...
"V%� " ","  Lunar base 4 Controller"
"`� ""
"j:
"t��showhi
"y� I
"~�
"� �pr("Moonquake high scores")
"��
"�� I=9 � 0 � -1
"�!� hisc(I);�7);:�pr(hname$(I))
"��
"��
"�:
"���addscore(S)
"��init_screen
"��box(9,10,31,26)
"�I=1:found=�:�
"�_� hisc(I)>S � hisc(I-1)=S:hname$(I-1)="":found=�  � hisc(I-1)=hisc(I):hname$(I-1)=hname$(I)
"�I+=1
"�� hisc(I-1)>S �7:found=�
"�:� I=10 � � found � hisc(9)=S:hname$(9)="":I=11:found=�
"�� found
#IY=13-I:N$=""
#
�showhi:�
#�pr("Enter name....")
#�63:�7,IY);�135;:� 8
#
	�:A=�
#� (A=8 � A=127) � �(N$)>0 �
#N$=�N$,�(N$)-1)
#�
#1� A<>8 � A<>127 � A<>13 � �(N$)<13 � N$=N$+�A
##�
#(�7,IY);N$;:� 63:�;�135;:�8
#-� A=8 � A=127 � �;" ":� �
#2
� A=13
#<hname$(I-2)=N$
#F�showhi
#P
A$=�(500)
#Z�init_screen
#d�
#n:
#x
��playtwo
#�!!players=2:!score=0:!oscore=1
#�#�:�'':�pr("Start level ?  0-9")
#�$�:LEV=�-�("0"):� LEV>=0 � LEV<=9
#� �''':�centre("Get Ready",22)
#�
A$=�(175)
#�red=3:green=3
#�FIN=�:newlev=�:�
#�6� newlev � �test:newlev=�:� �init_screen:�mainprog
#�*FX15,1
#�� !detonated<>0 �
#�T�box(10,10,30,15):�centre("Reactor explosion!",18):�centre("Mission aborted",18)
#�A$=�(175):FIN=�
#��
#�� !man1<255 � !man2<255 �
$L�box(10,10,30,15):�centre("Both dead!",18):�centre("Mission aborted",18)
$A$=�(175):FIN=�
$�
$"�box(10,10,30,15)
$#� !man1<255 �
$$D$="Green":green-=1
$%!man1=512:man1?23=0
$&�
$''D$="Red":red-=1:!man2=512:man2?23=0
$(�
$)� green=0 � red=0 �
$*�:�centre(D$+" loses",18)
$+	FIN=�
$,�
$-?�centre("Red : "+�(red),18):�centre("Green : "+�(green),18)
$.�
$/�wait(150)
$@�
$J�
$T	� FIN
$^�init_screen
$h�
$r:
$|��wait(delay)
$�T=�
$����>T+delay
$��
$�:
$���pr(M$)
$�� I
$�� 63
$�
�135;:Ȗ
$�� I=1 � �(M$)
$�� 8
$��127;�M$,I,1);:�63:�;�135;
$�#� �M$,I,1)<>" " � �2,-4,15000,0
$�Ȗ
$��
$��8
$�
�127;�32
$��2,0,0,0
$�� �(M$)=21 � �0,�-1);
$��
$�:
%
��instruc
%�
%�pr("Accessing records...")
%&�wait(100):�
%0&�pr("DATE : 08/05/2007"):�wait(50)
%:�pr("Work begins on five")
%D�pr("structures on the")
%N�pr("lunar surface.  Each")
%X�pr("will have its own")
%b�pr("function and will")
%l�pr("rely on the other")
%v �pr("four to be completely")
%��pr("operational."):�
%� �pr("<SPACE> to continue..")
%�
���=32
%��
%�&�pr("DATE : 21/06/2014"):�wait(50)
%��pr("Lunar bases become")
%��pr("fully operational.")
%��pr("Functions:")
%��pr("1-Landing/Launching,")
%� �pr("  incoming & outgoing")
%��pr("2-Living quarters")
%��pr("3-Labs and workshop")
%� �pr("4-Energy and air gen.")
%��pr("5-Storage and base")
&�pr("  maintenance")
&�
&�pr("<SPACE> to continue")
&
���=32
&�
& &�pr("DATE : 27/01/2026"):�wait(50)
&*�pr("A large meteor hits")
&4�pr("the surface of the")
&> �pr("moon 38.2 Km from the")
&H�pr("lunar base.  Base")
&R�pr("section 4 receives")
&\ �pr("stuctural damage from")
&f�pr("shockwaves, forcing")
&p�pr("it offline...")
&z"�:�pr("<SPACE> to continue..")
&�
���=32
&��
&�&�pr("Date : 28/01/2026"):�wait(50)
&�)�pr("...present day..."):�wait(50):�'
&��pr("As an expert in rock")
&��pr("blasting and salvage")
&��pr("work, you have been")
&�"�pr("summoned to the moon."):�
&� �pr("<SPACE> to continue..")
&�
���=32
&��
&�
� �TZg
&�
�:� M$
&�%� M$<>"EOL" � M$<>"NPG" � �pr(M$)
&�4� M$="NPG" � �pr("<SPACE> to continue"):���=32:�
&�� M$="EOL"
'�
':
'� Base 4 controller :
'$� To make it easier to
'.� make the base air-
'8� "tight, most of it was"
'B� "built underground, in"
'L� artificial caverns.
'V� The moonquake caused
'`� severe rockfalls on
'j� all ten processing
't� levels.  We are using
'~� emergency air and
'�� backup generators.
'�	� NPG
'�� You must clear these
'�� rockfalls in order
'�� for us to return the
'�� base to full power.
'�� Each level has 54 air
'�� "purifiers, which are"
'�� actually linked to
'�� the other levels.
'�� These are made from a
(� tito-metacrystalline
(
� structure and are
(� resistant to damage.,NPG
(� "However, you will"
((� encounter two types
(2� of nuclear reactors.
(<� The red and blue type
(F� (A mk 2) can survive
(P� ONE direct blast.
(Z� The yellow and green
(d� (DB/34) MUST NOT be
(n� be hit at all.
(s�
(x	� NPG
(�� One hit too many will
(�� cause a large atomic
(�� explosion!,"",NPG
(�� "Oh, by the way,"
(�� the impact of the
(�� meteor created a high
(�� electromagnetic pulse
(�� disabling the control
(�� circuits in the
(�� security droids that
(�� patrol the levels.
(�� They are roaming out
(�� of control and will
)� kill if you come into
)� contact with them.,NPG
)� You may destroy them
)"� "if you wish, they are"
),� "insured.","",NPG
)6� EQUIPMENT:
)@� Explosive generating
)J� "backpack, supplied"
)T� with energy cell for
)^� one low power bomb
)c� per power recharge.
)h� Higher power and more
)r� bombs can be gained
)|� by collecting
)�� appropriately marked
)�� extra cells that you
)�� may find.,NPG
)�� There are other
)�� various utility cells
)�� "you can use, though"
)�� it will be impossible
)�� to identify their
)�� purpose before use.
)��
)�	� NPG
)�� CONTROLS :
)�� Player - 1
)�� Suit   - Green
*� Start  - Bottom right
*� Left   - Z
*� Right  - X
*&� Up     - F
*0� Down   - C
*:� Bomb   - G,"",NPG
*D� CONTROLS :
*N� Player - 2
*X� Suit   - Red
*b� Start  - Top left
*l� Left   - Keypad 1
*v� Right  - Keypad 2
*�� Up     - Keypad 6
*�� Down   - Keypad 3
*�� Bomb   - Keypad +,"",NPG
*�� 2 PLAYER GAME :,""
*�� "Blow the er, living"
*�� "daylights out of the"
*�� "other player.",""
*�#� "Simple, innit?","","","",NPG
*�� Data retrieval
*�.� complete...,"","","","","","","",NPG,EOL
*�:
*�
��succeed
*��box(6,8,34,19)
*�
� �DHk
*��:� M$:�pr(M$):� M$=""
*�� startlev=0 �
*�$�pr("Wow! You finished all ten")
*��pr("levels in one go!!!")
+�
+#�pr("Now try and complete all")
+#�pr("ten levels without using")
+ #�pr("the level jump facility!")
+*�
+4
A$=�(750)
+>�init_screen:�
+H� CONGRATULATIONS!
+M	� " "
+R� You have managed to clear
+\� all ten levels!
+f�
+p:
+z	��fin
+��
+��''
+� �pr("Are you sure you want")
+��pr("to quit??  (Y/N)")
+��O$=�:� �"YyNn",O$)>0
+�� O$="Y" � O$="y" �
+�(�pr(""):�pr(""):�pr(""):�pr("Ok...")
+�O$=�(100):�26,20:�
+�
*FX200
+�*FX11,32
+��
+��
+�7�pr(""):�pr(""):�pr(""):�pr("Nah, didn't think so")
+�
O$=�(100)
+��
+��
�
00000000  0d 00 0a 1d f4 20 3e 24  2e 21 4d 6f 6f 6e 71 75  |..... >$.!Moonqu|
00000010  61 6b 65 2e 21 52 75 6e  49 6d 61 67 65 0d 00 14  |ake.!RunImage...|
00000020  1a f4 20 28 63 29 20 31  39 39 32 20 50 61 75 6c  |.. (c) 1992 Paul|
00000030  20 54 61 79 6c 6f 72 0d  00 1e 05 f4 0d 00 28 16  | Taylor.......(.|
00000040  f4 20 44 41 54 45 20 20  20 20 2d 20 20 20 54 41  |. DATE    -   TA|
00000050  53 4b 0d 00 32 49 f4 20  2d 2d 2d 2d 2d 2d 2d 20  |SK..2I. ------- |
00000060  20 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |  --------------|
00000070  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000090  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0d 00 3c 31 f4  |-----------..<1.|
000000a0  20 32 31 2f 37 2f 39 32  20 2d 20 53 54 41 54 49  | 21/7/92 - STATI|
000000b0  43 20 50 4c 4f 54 54 45  52 20 26 20 53 43 52 45  |C PLOTTER & SCRE|
000000c0  45 4e 20 4c 41 59 4f 55  54 20 3f 3f 0d 00 46 41  |EN LAYOUT ??..FA|
000000d0  f4 20 32 32 2f 37 2f 39  32 20 2d 20 43 4f 4d 50  |. 22/7/92 - COMP|
000000e0  4c 45 54 45 44 20 41 42  4f 56 45 20 53 54 41 52  |LETED ABOVE STAR|
000000f0  54 45 44 20 4d 41 49 4e  20 50 52 4f 47 20 4c 4f  |TED MAIN PROG LO|
00000100  4f 50 20 57 49 54 48 20  31 20 4d 41 4e 0d 00 50  |OP WITH 1 MAN..P|
00000110  48 f4 20 32 35 2f 37 2f  39 32 20 2d 20 43 4f 4d  |H. 25/7/92 - COM|
00000120  50 4c 45 54 45 44 20 31  20 4d 41 4e 20 52 55 4e  |PLETED 1 MAN RUN|
00000130  4e 49 4e 47 20 52 4f 55  4e 44 20 53 43 52 45 45  |NING ROUND SCREE|
00000140  4e 20 57 49 54 48 20 45  44 47 45 20 4f 46 20 53  |N WITH EDGE OF S|
00000150  43 52 45 45 4e 0d 00 5a  39 f4 20 20 20 20 20 20  |CREEN..Z9.      |
00000160  20 20 20 2d 20 44 45 54  45 43 54 49 4f 4e 20 41  |   - DETECTION A|
00000170  4e 44 20 42 4c 4f 43 4b  49 4e 47 20 42 59 20 43  |ND BLOCKING BY C|
00000180  45 52 54 41 49 4e 20 4f  42 4a 45 43 54 53 0d 00  |ERTAIN OBJECTS..|
00000190  64 49 f4 20 32 36 2f 37  2f 39 32 20 2d 20 41 44  |dI. 26/7/92 - AD|
000001a0  44 45 44 20 42 4f 4d 42  20 44 52 4f 50 50 49 4e  |DED BOMB DROPPIN|
000001b0  47 2c 20 42 4f 4d 42 20  45 58 50 4c 4f 53 49 4f  |G, BOMB EXPLOSIO|
000001c0  4e 53 2c 20 43 48 41 49  4e 20 52 45 41 43 54 49  |NS, CHAIN REACTI|
000001d0  4f 4e 53 20 41 4e 44 0d  00 6e 22 f4 20 20 20 20  |ONS AND..n".    |
000001e0  20 20 20 20 20 2d 20 44  45 41 54 48 20 42 59 20  |     - DEATH BY |
000001f0  45 58 50 4c 4f 53 49 4f  4e 0d 00 78 4a f4 20 32  |EXPLOSION..xJ. 2|
00000200  37 2f 37 2f 39 32 20 2d  20 43 4f 52 52 45 43 54  |7/7/92 - CORRECT|
00000210  45 44 20 44 45 41 54 48  20 42 59 20 45 58 50 4c  |ED DEATH BY EXPL|
00000220  4f 53 49 4f 4e 2c 20 41  44 44 45 44 20 52 55 42  |OSION, ADDED RUB|
00000230  42 4c 45 20 41 4e 44 20  44 45 53 54 52 55 43 54  |BLE AND DESTRUCT|
00000240  49 4f 4e 0d 00 82 3d f4  20 20 20 20 20 20 20 20  |ION...=.        |
00000250  20 2d 20 4f 46 20 52 55  42 42 4c 45 3b 20 41 44  | - OF RUBBLE; AD|
00000260  44 45 44 20 53 45 43 4f  4e 44 20 4d 41 4e 20 2d  |DED SECOND MAN -|
00000270  20 4e 45 57 20 4d 41 4e  20 53 50 52 49 54 45 53  | NEW MAN SPRITES|
00000280  0d 00 8c 46 f4 20 30 31  2f 38 2f 39 32 20 2d 20  |...F. 01/8/92 - |
00000290  53 45 43 4f 4e 44 20 50  4c 41 59 45 52 20 57 4f  |SECOND PLAYER WO|
000002a0  52 4b 49 4e 47 3b 20 42  4f 4d 42 20 49 4e 46 4c  |RKING; BOMB INFL|
000002b0  41 54 49 4f 4e 3b 20 52  4f 41 4d 49 4e 47 20 52  |ATION; ROAMING R|
000002c0  4f 42 4f 54 53 3b 0d 00  96 3e f4 20 20 20 20 20  |OBOTS;...>.     |
000002d0  20 20 20 20 2d 20 44 45  41 54 48 20 4f 46 20 52  |    - DEATH OF R|
000002e0  4f 42 4f 54 53 3b 20 44  45 41 54 48 20 42 59 20  |OBOTS; DEATH BY |
000002f0  52 4f 42 4f 54 53 3b 20  42 4f 4d 42 20 4c 49 4d  |ROBOTS; BOMB LIM|
00000300  49 54 53 3b 0d 00 a0 41  f4 20 20 20 20 20 20 20  |ITS;...A.       |
00000310  20 20 2d 20 49 4e 44 49  56 49 44 55 41 4c 20 42  |  - INDIVIDUAL B|
00000320  4f 4d 42 20 53 54 52 45  4e 47 54 48 53 3b 20 43  |OMB STRENGTHS; C|
00000330  4f 4c 4c 45 43 54 41 42  4c 45 20 54 4f 4b 45 4e  |OLLECTABLE TOKEN|
00000340  53 20 46 4f 52 0d 00 aa  2d f4 20 20 20 20 20 20  |S FOR...-.      |
00000350  20 20 20 2d 20 4d 4f 52  45 20 42 4f 4d 42 53 20  |   - MORE BOMBS |
00000360  41 4e 44 20 53 54 52 4f  4e 47 45 52 20 42 4f 4d  |AND STRONGER BOM|
00000370  42 53 0d 00 b4 3f f4 20  30 34 2f 38 2f 39 32 20  |BS...?. 04/8/92 |
00000380  2d 20 31 20 4f 52 20 32  20 50 4c 41 59 45 52 20  |- 1 OR 2 PLAYER |
00000390  47 41 4d 45 3b 20 31 20  26 20 30 20 48 49 54 20  |GAME; 1 & 0 HIT |
000003a0  4e 55 43 4c 45 41 52 20  52 45 41 43 54 4f 52 53  |NUCLEAR REACTORS|
000003b0  3b 0d 00 be 38 f4 20 20  20 20 20 20 20 20 20 2d  |;...8.         -|
000003c0  20 52 4f 42 4f 54 53 20  44 4f 4e 27 54 20 44 45  | ROBOTS DON'T DE|
000003d0  4c 49 42 45 52 41 54 45  4c 59 20 52 55 4e 20 49  |LIBERATELY RUN I|
000003e0  4e 54 4f 20 46 49 52 45  3b 0d 00 c8 45 f4 20 20  |NTO FIRE;...E.  |
000003f0  20 20 20 20 20 20 20 2d  20 4e 55 43 4c 45 41 52  |       - NUCLEAR|
00000400  20 52 45 41 43 54 4f 52  20 45 58 50 4c 4f 53 49  | REACTOR EXPLOSI|
00000410  4f 4e 3b 20 45 4e 44 20  4f 46 20 4c 45 56 45 4c  |ON; END OF LEVEL|
00000420  20 57 48 45 4e 20 43 4c  45 41 52 45 44 3b 0d 00  | WHEN CLEARED;..|
00000430  d2 4c f4 20 20 20 20 20  20 20 20 20 2d 20 4d 59  |.L.         - MY|
00000440  53 54 45 52 59 20 54 4f  4b 45 4e 53 20 2d 20 41  |STERY TOKENS - A|
00000450  55 54 4f 20 42 4f 4d 42  20 44 52 4f 50 2c 20 42  |UTO BOMB DROP, B|
00000460  4f 4d 42 20 44 45 54 4f  4e 41 54 45 2c 20 52 4f  |OMB DETONATE, RO|
00000470  42 4f 54 20 46 52 45 45  5a 45 0d 00 dc 18 f4 20  |BOT FREEZE..... |
00000480  20 20 20 20 20 20 20 20  2d 20 41 20 53 54 4f 52  |        - A STOR|
00000490  59 3f 0d 00 e6 05 3a 0d  00 ea 07 eb 31 33 0d 00  |Y?....:.....13..|
000004a0  eb 21 2a 53 43 52 45 45  4e 4c 4f 41 44 20 3c 4f  |.!*SCREENLOAD <O|
000004b0  62 65 79 24 44 69 72 3e  2e 53 43 52 45 45 4e 0d  |bey$Dir>.SCREEN.|
000004c0  00 f0 35 2a 52 4d 45 4e  53 55 52 45 20 45 78 70  |..5*RMENSURE Exp|
000004d0  6c 6f 20 31 2e 30 30 20  2a 52 4d 4c 4f 41 44 20  |lo 1.00 *RMLOAD |
000004e0  3c 4f 62 65 79 24 44 69  72 3e 2e 53 46 58 2e 45  |<Obey$Dir>.SFX.E|
000004f0  58 50 4c 4f 0d 00 fa 39  2a 52 4d 45 4e 53 55 52  |XPLO...9*RMENSUR|
00000500  45 20 54 6f 6b 65 6e 52  4d 20 31 2e 30 30 20 2a  |E TokenRM 1.00 *|
00000510  52 4d 4c 4f 41 44 20 3c  4f 62 65 79 24 44 69 72  |RMLOAD <Obey$Dir|
00000520  3e 2e 53 46 58 2e 54 4f  4b 45 4e 52 4d 0d 00 fe  |>.SFX.TOKENRM...|
00000530  31 2a 52 4d 45 4e 53 55  52 45 20 41 52 47 20 31  |1*RMENSURE ARG 1|
00000540  2e 30 30 20 2a 52 4d 4c  4f 41 44 20 3c 4f 62 65  |.00 *RMLOAD <Obe|
00000550  79 24 44 69 72 3e 2e 53  46 58 2e 41 52 47 0d 00  |y$Dir>.SFX.ARG..|
00000560  ff 33 2a 52 4d 45 4e 53  55 52 45 20 52 41 52 47  |.3*RMENSURE RARG|
00000570  20 31 2e 30 30 20 2a 52  4d 4c 4f 41 44 20 3c 4f  | 1.00 *RMLOAD <O|
00000580  62 65 79 24 44 69 72 3e  2e 53 46 58 2e 52 41 52  |bey$Dir>.SFX.RAR|
00000590  47 0d 01 04 2e de 20 76  64 75 20 31 36 2c 4d 52  |G..... vdu 16,MR|
000005a0  28 35 30 29 2c 72 6f 62  6f 73 28 39 29 2c 68 69  |(50),robos(9),hi|
000005b0  73 63 28 39 29 2c 68 6e  61 6d 65 24 28 39 29 0d  |sc(9),hname$(9).|
000005c0  01 0e 0c 21 76 64 75 3d  31 34 38 0d 01 18 0c 76  |...!vdu=148....v|
000005d0  64 75 21 34 3d 2d 31 0d  01 2c 08 c8 a0 20 34 0d  |du!4=-1..,... 4.|
000005e0  01 36 10 c8 a1 20 31 2c  22 45 58 50 4c 4f 22 0d  |.6... 1,"EXPLO".|
000005f0  01 40 12 c8 a1 20 32 2c  22 54 4f 4b 45 4e 52 4d  |.@... 2,"TOKENRM|
00000600  22 0d 01 45 0e c8 a1 20  33 2c 22 41 52 47 22 0d  |"..E... 3,"ARG".|
00000610  01 46 0f c8 a1 20 34 2c  22 52 41 52 47 22 0d 01  |.F... 4,"RARG"..|
00000620  4a 26 c8 99 20 22 4f 53  5f 52 65 61 64 56 64 75  |J&.. "OS_ReadVdu|
00000630  56 61 72 69 61 62 6c 65  73 22 2c 76 64 75 2c 76  |Variables",vdu,v|
00000640  64 75 2b 38 0d 01 54 15  73 63 72 5f 73 74 61 72  |du+8..T.scr_star|
00000650  74 3d 76 64 75 21 38 2b  38 0d 01 58 0c 2a 46 58  |t=vdu!8+8..X.*FX|
00000660  32 30 30 2c 31 0d 01 59  0b 2a 46 58 31 31 2c 30  |200,1..Y.*FX11,0|
00000670  0d 01 5a 0a 40 25 3d 26  30 35 0d 01 5b 2b ef 32  |..Z.@%=&05..[+.2|
00000680  33 2c 31 33 35 2c 31 32  36 2c 32 35 35 2c 32 35  |3,135,126,255,25|
00000690  35 2c 32 35 35 2c 32 35  35 2c 32 35 35 2c 32 35  |5,255,255,255,25|
000006a0  35 2c 31 32 36 0d 01 5e  05 3a 0d 01 72 0b 73 70  |5,126..^.:..r.sp|
000006b0  6e 75 6d 3d 30 0d 01 7c  0b 67 72 69 64 78 3d 31  |num=0..|.gridx=1|
000006c0  0d 01 86 0b 67 72 69 64  79 3d 32 0d 01 90 0b 74  |....gridy=2....t|
000006d0  61 62 6c 65 3d 34 0d 01  9a 0c 6f 66 66 73 65 74  |able=4....offset|
000006e0  3d 35 0d 01 a4 0a 74 65  6d 70 3d 36 0d 01 ae 0b  |=5....temp=6....|
000006f0  74 65 6d 70 32 3d 37 0d  01 b8 09 73 63 72 3d 38  |temp2=7....scr=8|
00000700  0d 01 c2 19 f4 20 2d 2d  2d 2d 20 43 6f 6e 73 74  |..... ---- Const|
00000710  61 6e 74 73 20 2d 2d 2d  2d 0d 01 cc 0f 73 63 72  |ants ----....scr|
00000720  65 61 6d 3d 36 30 31 36  0d 01 d1 0e 70 69 6e 67  |eam=6016....ping|
00000730  3d 31 34 33 33 36 0d 01  d6 0b 65 78 64 65 6c 3d  |=14336....exdel=|
00000740  33 0d 01 e0 0e 6e 75 6d  62 6f 74 73 3d 31 30 0d  |3....numbots=10.|
00000750  01 ea 10 de 20 63 6f 64  65 20 38 30 30 30 30 0d  |.... code 80000.|
00000760  01 f4 14 e3 20 70 61 73  73 3d 30 20 b8 20 32 20  |.... pass=0 . 2 |
00000770  88 20 32 0d 01 fe 0b 50  25 3d 63 6f 64 65 0d 02  |. 2....P%=code..|
00000780  08 0d 5b 4f 50 54 20 70  61 73 73 0d 02 12 09 41  |..[OPT pass....A|
00000790  4c 49 47 4e 0d 02 1c 11  2e 62 61 73 69 63 20 45  |LIGN.....basic E|
000007a0  51 55 44 20 30 0d 02 26  1c 2e 73 63 72 65 65 6e  |QUD 0..&..screen|
000007b0  20 45 51 55 44 20 28 73  63 72 5f 73 74 61 72 74  | EQUD (scr_start|
000007c0  29 0d 02 30 2b 2e 69 6e  69 74 5f 73 63 72 65 65  |)..0+.init_scree|
000007d0  6e 20 4d 4f 56 20 67 72  69 64 79 2c 23 30 3a 53  |n MOV gridy,#0:S|
000007e0  54 52 20 52 31 34 2c 62  61 73 69 63 0d 02 3a 1a  |TR R14,basic..:.|
000007f0  20 20 20 20 20 20 20 20  4c 44 52 20 74 61 62 6c  |        LDR tabl|
00000800  65 2c 67 72 69 64 0d 02  44 18 2e 67 79 6c 6f 6f  |e,grid..D..gyloo|
00000810  70 20 4d 4f 56 20 67 72  69 64 78 2c 23 30 0d 02  |p MOV gridx,#0..|
00000820  4e 19 2e 67 78 6c 6f 6f  70 20 4d 4f 56 20 74 65  |N..gxloop MOV te|
00000830  6d 70 32 2c 23 31 39 0d  02 58 26 20 20 20 20 20  |mp2,#19..X&     |
00000840  20 20 20 4d 4c 41 20 74  65 6d 70 2c 67 72 69 64  |   MLA temp,grid|
00000850  79 2c 74 65 6d 70 32 2c  67 72 69 64 78 0d 02 62  |y,temp2,gridx..b|
00000860  23 20 20 20 20 20 20 20  20 4c 44 52 42 20 73 70  |#        LDRB sp|
00000870  6e 75 6d 2c 5b 74 61 62  6c 65 2c 74 65 6d 70 5d  |num,[table,temp]|
00000880  0d 02 6c 19 20 20 20 20  20 20 20 20 42 4c 20 70  |..l.        BL p|
00000890  6c 6f 74 73 74 61 74 69  63 0d 02 76 1e 20 20 20  |lotstatic..v.   |
000008a0  20 20 20 20 20 41 44 44  20 67 72 69 64 78 2c 67  |     ADD gridx,g|
000008b0  72 69 64 78 2c 23 34 0d  02 80 1b 20 20 20 20 20  |ridx,#4....     |
000008c0  20 20 20 43 4d 50 20 67  72 69 64 78 2c 23 31 39  |   CMP gridx,#19|
000008d0  2a 34 0d 02 8a 16 20 20  20 20 20 20 20 20 42 4c  |*4....        BL|
000008e0  54 20 67 78 6c 6f 6f 70  0d 02 94 1e 20 20 20 20  |T gxloop....    |
000008f0  20 20 20 20 41 44 44 20  67 72 69 64 79 2c 67 72  |    ADD gridy,gr|
00000900  69 64 79 2c 23 34 0d 02  9e 1b 20 20 20 20 20 20  |idy,#4....      |
00000910  20 20 43 4d 50 20 67 72  69 64 79 2c 23 31 33 2a  |  CMP gridy,#13*|
00000920  34 0d 02 a8 16 20 20 20  20 20 20 20 20 42 4c 54  |4....        BLT|
00000930  20 67 79 6c 6f 6f 70 0d  02 b2 18 20 20 20 20 20  | gyloop....     |
00000940  20 20 20 4c 44 52 20 50  43 2c 62 61 73 69 63 0d  |   LDR PC,basic.|
00000950  02 bc 05 3a 0d 02 c6 19  2e 67 72 69 64 20 20 45  |...:.....grid  E|
00000960  51 55 44 28 67 72 69 64  64 61 74 61 29 0d 02 d0  |QUD(griddata)...|
00000970  50 2e 73 61 66 65 20 20  45 51 55 44 20 30 3a 45  |P.safe  EQUD 0:E|
00000980  51 55 44 20 30 3a 45 51  55 44 20 30 3a 45 51 55  |QUD 0:EQUD 0:EQU|
00000990  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
000009a0  30 3a 45 51 55 44 20 30  3a 45 51 55 44 20 30 3a  |0:EQUD 0:EQUD 0:|
000009b0  45 51 55 44 20 30 3a 45  51 55 44 20 30 0d 02 da  |EQUD 0:EQUD 0...|
000009c0  1c 2e 70 6c 6f 74 73 74  61 74 69 63 20 41 44 52  |..plotstatic ADR|
000009d0  20 52 31 32 2c 73 61 66  65 0d 02 e4 24 20 20 20  | R12,safe...$   |
000009e0  20 20 20 20 20 53 54 4d  49 41 20 52 31 32 2c 7b  |     STMIA R12,{|
000009f0  52 31 2d 52 37 2c 52 39  2d 52 31 31 7d 0d 02 ee  |R1-R7,R9-R11}...|
00000a00  1a 20 20 20 20 20 20 20  20 4c 44 52 20 73 63 72  |.        LDR scr|
00000a10  2c 73 63 72 65 65 6e 0d  02 f8 48 20 20 20 20 20  |,screen...H     |
00000a20  20 20 20 4d 4f 56 20 74  61 62 6c 65 2c 73 70 6e  |   MOV table,spn|
00000a30  75 6d 2c 4c 53 4c 20 23  38 20 20 20 20 20 20 20  |um,LSL #8       |
00000a40  3b 20 4d 75 6c 74 69 70  6c 79 20 62 79 20 32 35  |; Multiply by 25|
00000a50  36 20 28 73 70 72 69 74  65 20 73 69 7a 65 29 0d  |6 (sprite size).|
00000a60  03 02 1d 20 20 20 20 20  20 20 20 4c 44 52 20 73  |...        LDR s|
00000a70  70 6e 75 6d 2c 73 70 72  69 74 65 73 0d 03 0c 21  |pnum,sprites...!|
00000a80  20 20 20 20 20 20 20 20  41 44 44 20 74 61 62 6c  |        ADD tabl|
00000a90  65 2c 74 61 62 6c 65 2c  73 70 6e 75 6d 0d 03 16  |e,table,spnum...|
00000aa0  1b 20 20 20 20 20 20 20  20 4d 4f 56 20 74 65 6d  |.        MOV tem|
00000ab0  70 2c 23 34 2a 33 32 30  0d 03 20 24 20 20 20 20  |p,#4*320.. $    |
00000ac0  20 20 20 20 4d 4c 41 20  74 65 6d 70 32 2c 74 65  |    MLA temp2,te|
00000ad0  6d 70 2c 67 72 69 64 79  2c 73 63 72 0d 03 2a 21  |mp,gridy,scr..*!|
00000ae0  20 20 20 20 20 20 20 20  41 44 44 20 73 63 72 2c  |        ADD scr,|
00000af0  74 65 6d 70 32 2c 23 33  39 2a 33 32 30 0d 03 34  |temp2,#39*320..4|
00000b00  47 20 20 20 20 20 20 20  20 41 44 44 20 73 63 72  |G        ADD scr|
00000b10  2c 73 63 72 2c 67 72 69  64 78 2c 4c 53 4c 23 32  |,scr,gridx,LSL#2|
00000b20  20 20 20 20 20 20 3b 20  73 63 72 20 3d 20 74 6f  |      ; scr = to|
00000b30  70 20 6c 65 66 74 20 63  6f 72 6e 65 72 20 6f 66  |p left corner of|
00000b40  20 73 70 72 0d 03 3e 1f  5d 3a 20 20 20 20 20 20  | spr..>.]:      |
00000b50  e3 20 6c 3d 31 20 b8 20  38 3a 5b 4f 50 54 20 70  |. l=1 . 8:[OPT p|
00000b60  61 73 73 0d 03 48 2f 20  20 20 20 20 20 20 20 4c  |ass..H/        L|
00000b70  44 4d 49 41 20 28 74 61  62 6c 65 29 21 2c 7b 52  |DMIA (table)!,{R|
00000b80  31 2d 52 33 2c 52 35 2d  52 37 2c 52 39 2c 52 31  |1-R3,R5-R7,R9,R1|
00000b90  30 7d 0d 03 52 22 20 20  20 20 20 20 20 20 53 54  |0}..R"        ST|
00000ba0  4d 49 41 20 28 73 63 72  29 2c 7b 52 31 2d 52 33  |MIA (scr),{R1-R3|
00000bb0  2c 52 35 7d 0d 03 5c 1c  20 20 20 20 20 20 20 20  |,R5}..\.        |
00000bc0  41 44 44 20 73 63 72 2c  73 63 72 2c 23 33 32 30  |ADD scr,scr,#320|
00000bd0  0d 03 66 26 20 20 20 20  20 20 20 20 53 54 4d 49  |..f&        STMI|
00000be0  41 20 28 73 63 72 29 2c  7b 52 36 2c 52 37 2c 52  |A (scr),{R6,R7,R|
00000bf0  39 2c 52 31 30 7d 0d 03  70 1c 20 20 20 20 20 20  |9,R10}..p.      |
00000c00  20 20 41 44 44 20 73 63  72 2c 73 63 72 2c 23 33  |  ADD scr,scr,#3|
00000c10  32 30 0d 03 7a 19 5d 3a  20 20 20 20 20 20 ed 20  |20..z.]:      . |
00000c20  6c 3a 5b 4f 50 54 20 70  61 73 73 0d 03 84 18 20  |l:[OPT pass.... |
00000c30  20 20 20 20 20 20 20 41  44 52 20 52 31 32 2c 73  |       ADR R12,s|
00000c40  61 66 65 0d 03 8e 24 20  20 20 20 20 20 20 20 4c  |afe...$        L|
00000c50  44 4d 49 41 20 52 31 32  2c 7b 52 31 2d 52 37 2c  |DMIA R12,{R1-R7,|
00000c60  52 39 2d 52 31 31 7d 0d  03 98 16 20 20 20 20 20  |R9-R11}....     |
00000c70  20 20 20 4d 4f 56 20 50  43 2c 52 31 34 0d 03 a2  |   MOV PC,R14...|
00000c80  05 3a 0d 03 ac 1e 2e 73  70 72 69 74 65 73 20 45  |.:.....sprites E|
00000c90  51 55 44 28 73 70 72 69  74 65 5f 64 61 74 61 29  |QUD(sprite_data)|
00000ca0  0d 03 b6 15 20 20 20 20  20 20 20 a4 73 63 6f 72  |....       .scor|
00000cb0  65 64 72 61 77 0d 03 c0  18 20 20 20 20 20 20 20  |edraw....       |
00000cc0  20 a4 6d 6f 76 69 6e 67  62 6c 6f 6b 65 0d 03 ca  | .movingbloke...|
00000cd0  1f 2e 67 72 69 64 64 61  74 61 20 a4 72 65 73 65  |..griddata .rese|
00000ce0  72 76 65 28 31 39 2a 31  33 2a 34 29 0d 03 d4 20  |rve(19*13*4)... |
00000cf0  2e 73 70 72 69 74 65 5f  64 61 74 61 20 a4 72 65  |.sprite_data .re|
00000d00  73 65 72 76 65 28 31 35  30 30 30 29 0d 03 de 1a  |serve(15000)....|
00000d10  20 20 20 20 20 20 20 20  a4 62 6c 6f 6b 65 70 6c  |        .blokepl|
00000d20  6f 74 74 65 72 73 0d 03  e8 05 5d 0d 03 f2 0a ed  |otters....].....|
00000d30  20 70 61 73 73 0d 03 fc  33 ff 28 22 4c 4f 41 44  | pass...3.("LOAD|
00000d40  20 3c 4f 62 65 79 24 44  69 72 3e 2e 4d 51 53 50  | <Obey$Dir>.MQSP|
00000d50  52 49 54 45 53 20 22 2b  c3 7e 28 73 70 72 69 74  |RITES "+.~(sprit|
00000d60  65 5f 64 61 74 61 29 29  0d 04 06 2c ff 28 22 4c  |e_data))...,.("L|
00000d70  4f 41 44 20 3c 4f 62 65  79 24 44 69 72 3e 2e 4e  |OAD <Obey$Dir>.N|
00000d80  55 4d 42 45 52 53 20 22  2b c3 7e 28 64 69 67 69  |UMBERS "+.~(digi|
00000d90  74 73 29 29 0d 04 10 1e  4d 3d 6d 61 6e 72 74 6e  |ts))....M=manrtn|
00000da0  73 3a e3 20 49 3d 30 20  b8 20 33 3a f7 20 8d 74  |s:. I=0 . 3:. .t|
00000db0  48 44 0d 04 1a 23 e3 20  49 32 3d 31 20 b8 20 38  |HD...#. I2=1 . 8|
00000dc0  3a f3 20 52 4e 3a 21 4d  3d 4d 52 28 52 4e 2b 28  |:. RN:!M=MR(RN+(|
00000dd0  49 2a 35 29 29 0d 04 24  0a 4d 2b 3d 34 3a ed 0d  |I*5))..$.M+=4:..|
00000de0  04 2e 05 ed 0d 04 38 1f  e3 20 49 3d 32 30 20 b8  |......8.. I=20 .|
00000df0  20 32 35 3a 21 4d 3d 4d  52 28 49 29 3a 4d 2b 3d  | 25:!M=MR(I):M+=|
00000e00  34 3a ed 0d 04 42 10 21  4d 3d 6e 75 6c 6c 3a 4d  |4:...B.!M=null:M|
00000e10  2b 3d 34 0d 04 4c 40 e3  20 49 3d 30 20 b8 20 33  |+=4..L@. I=0 . 3|
00000e20  3a f7 20 8d 74 48 44 3a  e3 20 49 32 3d 31 20 b8  |:. .tHD:. I2=1 .|
00000e30  20 38 3a f3 20 52 4e 3a  21 4d 3d 4d 52 28 32 36  | 8:. RN:!M=MR(26|
00000e40  2b 52 4e 2b 28 49 2a 35  29 29 3a 4d 2b 3d 34 3a  |+RN+(I*5)):M+=4:|
00000e50  ed 3a ed 0d 04 56 0c 21  64 65 61 74 68 3d 4d 0d  |.:...V.!death=M.|
00000e60  04 60 12 21 61 75 72 61  73 70 3d 4d 52 28 35 30  |.`.!aurasp=MR(50|
00000e70  29 0d 04 6a 27 e3 20 49  3d 32 30 20 b8 20 32 35  |)..j'. I=20 . 25|
00000e80  3a 21 4d 3d 4d 52 28 49  29 3a 4d 2b 3d 34 3a ed  |:!M=MR(I):M+=4:.|
00000e90  3a 21 4d 3d 6e 75 6c 6c  0d 04 74 2b 4d 3d 72 6f  |:!M=null..t+M=ro|
00000ea0  62 6f 74 72 74 6e 73 3a  e3 20 49 3d 34 36 20 b8  |botrtns:. I=46 .|
00000eb0  20 34 39 3a 21 4d 3d 4d  52 28 49 29 3a 4d 2b 3d  | 49:!M=MR(I):M+=|
00000ec0  34 3a ed 0d 04 78 0a f7  20 8d 54 55 58 0d 04 79  |4:...x.. .TUX..y|
00000ed0  17 e3 49 3d 30 20 b8 20  39 3a f3 20 72 6f 62 6f  |..I=0 . 9:. robo|
00000ee0  73 28 49 29 0d 04 7a 2d  68 69 73 63 28 49 29 3d  |s(I)..z-hisc(I)=|
00000ef0  31 30 30 30 2a 28 49 2b  31 29 3a 68 6e 61 6d 65  |1000*(I+1):hname|
00000f00  24 28 49 29 3d 22 42 65  61 74 20 6d 65 21 22 3a  |$(I)="Beat me!":|
00000f10  ed 0d 04 7e 0d f2 6c 6f  6f 70 67 61 6d 65 0d 04  |...~..loopgame..|
00000f20  88 15 dc 20 30 2c 31 2c  32 2c 31 2c 30 2c 33 2c  |... 0,1,2,1,0,3,|
00000f30  34 2c 33 0d 04 92 05 3a  0d 04 9c 14 dd a4 72 65  |4,3....:......re|
00000f40  73 65 72 76 65 28 62 79  74 65 73 29 0d 04 a6 0f  |serve(bytes)....|
00000f50  50 25 3d 50 25 2b 62 79  74 65 73 0d 04 b0 07 3d  |P%=P%+bytes....=|
00000f60  22 22 0d 04 ba 05 3a 0d  04 c4 11 dd a4 6d 6f 76  |""....:......mov|
00000f70  69 6e 67 62 6c 6f 6b 65  0d 04 ce 11 78 3d 31 3a  |ingbloke....x=1:|
00000f80  79 3d 32 3a 6f 66 66 3d  33 0d 04 d8 0b 64 69 72  |y=2:off=3....dir|
00000f90  65 63 3d 34 0d 04 e2 0b  74 65 6d 70 33 3d 39 0d  |ec=4....temp3=9.|
00000fa0  04 ec 0d 5b 4f 50 54 20  70 61 73 73 0d 04 f6 45  |...[OPT pass...E|
00000fb0  2e 6d 61 6e 31 20 20 20  45 51 55 44 20 32 35 35  |.man1   EQUD 255|
00000fc0  3a 45 51 55 44 20 30 3a  45 51 55 44 20 31 38 2a  |:EQUD 0:EQUD 18*|
00000fd0  34 3a 45 51 55 44 20 31  32 2a 34 3a 45 51 55 44  |4:EQUD 12*4:EQUD|
00000fe0  20 30 3a 45 51 55 44 20  26 30 30 30 32 30 30 30  | 0:EQUD &0002000|
00000ff0  31 0d 05 00 3c 2e 6d 61  6e 32 20 20 20 45 51 55  |1...<.man2   EQU|
00001000  44 20 32 35 35 3a 45 51  55 44 20 30 3a 45 51 55  |D 255:EQUD 0:EQU|
00001010  44 20 30 3a 45 51 55 44  20 30 3a 45 51 55 44 20  |D 0:EQUD 0:EQUD |
00001020  31 3a 45 51 55 44 20 26  32 30 30 30 31 0d 05 0a  |1:EQUD &20001...|
00001030  12 2e 64 65 61 64 20 45  51 55 44 20 32 35 35 0d  |..dead EQUD 255.|
00001040  05 14 13 2e 6f 66 66 73  65 74 20 20 45 51 55 44  |....offset  EQUD|
00001050  20 30 0d 05 1e 13 2e 6d  61 6e 78 20 20 20 20 45  | 0.....manx    E|
00001060  51 55 44 20 30 0d 05 28  13 2e 6d 61 6e 79 20 20  |QUD 0..(..many  |
00001070  20 20 45 51 55 44 20 30  0d 05 32 13 2e 64 69 72  |  EQUD 0..2..dir|
00001080  20 20 20 20 20 45 51 55  44 20 31 0d 05 3c 13 2e  |     EQUD 1..<..|
00001090  73 74 61 74 73 20 20 20  45 51 55 44 20 30 0d 05  |stats   EQUD 0..|
000010a0  46 12 2e 6d 61 6e 20 20  20 20 45 51 55 44 20 33  |F..man    EQUD 3|
000010b0  0d 05 50 13 2e 70 6c 61  79 65 72 73 20 45 51 55  |..P..players EQU|
000010c0  44 20 30 0d 05 5a 12 2e  72 75 62 62 6c 65 20 45  |D 0..Z..rubble E|
000010d0  51 55 44 20 30 0d 05 64  12 2e 6f 73 63 6f 72 65  |QUD 0..d..oscore|
000010e0  20 45 51 55 44 20 31 0d  05 6e 1a 2e 62 61 63 6b  | EQUD 1..n..back|
000010f0  5f 66 72 6f 6d 5f 6d 61  69 6e 20 45 51 55 44 20  |_from_main EQUD |
00001100  30 0d 05 78 24 2e 6d 61  69 6e 70 72 6f 67 20 53  |0..x$.mainprog S|
00001110  54 52 20 52 31 34 2c 62  61 63 6b 5f 66 72 6f 6d  |TR R14,back_from|
00001120  5f 6d 61 69 6e 0d 05 82  26 2e 6d 61 69 6e 6c 6f  |_main...&.mainlo|
00001130  6f 70 20 4d 4f 56 20 52  30 2c 23 31 39 3a 53 57  |op MOV R0,#19:SW|
00001140  49 20 22 4f 53 5f 42 79  74 65 22 0d 05 8c 3c 20  |I "OS_Byte"...< |
00001150  20 20 20 20 20 20 20 20  20 4c 44 52 20 74 65 6d  |         LDR tem|
00001160  70 2c 64 65 74 6f 6e 61  74 65 64 3a 43 4d 50 20  |p,detonated:CMP |
00001170  74 65 6d 70 2c 23 30 3a  53 57 49 4e 45 20 22 4f  |temp,#0:SWINE "O|
00001180  53 5f 42 79 74 65 22 0d  05 96 36 20 20 20 20 20  |S_Byte"...6     |
00001190  20 20 20 20 4c 44 52 20  74 65 6d 70 2c 70 6c 61  |    LDR temp,pla|
000011a0  79 65 72 73 3a 43 4d 50  20 74 65 6d 70 2c 23 31  |yers:CMP temp,#1|
000011b0  3a 42 4e 45 20 6e 6f 73  63 6f 72 65 31 0d 05 a0  |:BNE noscore1...|
000011c0  4a 20 20 20 20 20 20 20  20 20 4c 44 52 20 74 65  |J         LDR te|
000011d0  6d 70 2c 73 63 6f 72 65  3a 4c 44 52 20 74 65 6d  |mp,score:LDR tem|
000011e0  70 32 2c 6f 73 63 6f 72  65 3a 43 4d 50 20 74 65  |p2,oscore:CMP te|
000011f0  6d 70 2c 74 65 6d 70 32  3a 42 4c 4e 45 20 72 65  |mp,temp2:BLNE re|
00001200  64 6f 73 63 6f 72 65 0d  05 aa 0d 2e 6e 6f 73 63  |doscore.....nosc|
00001210  6f 72 65 31 0d 05 b4 18  20 20 20 20 20 20 20 20  |ore1....        |
00001220  20 42 4c 20 73 63 61 6e  67 72 69 64 0d 05 be 1a  | BL scangrid....|
00001230  20 20 20 20 20 20 20 20  20 42 4c 20 77 69 70 65  |         BL wipe|
00001240  72 6f 62 6f 74 73 0d 05  c8 24 20 20 20 20 20 20  |robots...$      |
00001250  20 20 4d 4f 56 20 74 65  6d 70 2c 23 31 3a 53 54  |  MOV temp,#1:ST|
00001260  52 20 74 65 6d 70 2c 6d  61 6e 0d 05 d2 0d 2e 6d  |R temp,man.....m|
00001270  61 6e 6c 6f 6f 70 31 0d  05 dc 44 20 20 20 20 20  |anloop1...D     |
00001280  20 20 20 4c 44 52 20 74  65 6d 70 2c 6d 61 6e 3a  |   LDR temp,man:|
00001290  43 4d 50 20 74 65 6d 70  2c 23 31 3a 41 44 52 45  |CMP temp,#1:ADRE|
000012a0  51 20 74 65 6d 70 2c 6d  61 6e 31 3a 41 44 52 4e  |Q temp,man1:ADRN|
000012b0  45 20 74 65 6d 70 2c 6d  61 6e 32 0d 05 e6 63 20  |E temp,man2...c |
000012c0  20 20 20 20 20 20 20 4c  44 4d 49 41 20 74 65 6d  |       LDMIA tem|
000012d0  70 2c 7b 52 31 32 2c 6f  66 66 2c 78 2c 79 2c 64  |p,{R12,off,x,y,d|
000012e0  69 72 65 63 2c 74 65 6d  70 33 7d 3a 41 44 52 20  |irec,temp3}:ADR |
000012f0  74 65 6d 70 2c 64 65 61  64 3a 53 54 4d 49 41 20  |temp,dead:STMIA |
00001300  74 65 6d 70 2c 7b 52 31  32 2c 6f 66 66 2c 78 2c  |temp,{R12,off,x,|
00001310  79 2c 64 69 72 65 63 2c  74 65 6d 70 33 7d 0d 05  |y,direc,temp3}..|
00001320  f0 39 20 20 20 20 20 20  20 20 4c 44 52 20 78 2c  |.9        LDR x,|
00001330  6d 61 6e 78 3a 4c 44 52  20 79 2c 6d 61 6e 79 3a  |manx:LDR y,many:|
00001340  4d 4f 56 20 52 31 32 2c  23 31 3a 42 4c 20 70 6c  |MOV R12,#1:BL pl|
00001350  6f 74 73 74 61 74 32 0d  05 fa 4c 20 20 20 20 20  |otstat2...L     |
00001360  20 20 20 43 4d 50 20 52  31 32 2c 23 31 3a 42 45  |   CMP R12,#1:BE|
00001370  51 20 6e 6f 74 64 65 61  64 31 3a 4c 44 52 20 74  |Q notdead1:LDR t|
00001380  65 6d 70 2c 64 65 61 64  3a 43 4d 50 20 74 65 6d  |emp,dead:CMP tem|
00001390  70 2c 23 32 35 35 3a 42  4e 45 20 6e 6f 74 64 65  |p,#255:BNE notde|
000013a0  61 64 31 0d 05 fb 18 20  20 20 20 20 20 20 20 53  |ad1....        S|
000013b0  54 52 20 52 31 32 2c 64  65 61 64 0d 05 fc 39 20  |TR R12,dead...9 |
000013c0  20 20 20 20 20 20 20 4d  4f 56 20 52 30 2c 23 33  |       MOV R0,#3|
000013d0  3a 4d 56 4e 20 52 31 2c  23 31 34 3a 4d 4f 56 20  |:MVN R1,#14:MOV |
000013e0  52 32 2c 23 73 63 72 65  61 6d 3a 4d 4f 56 20 52  |R2,#scream:MOV R|
000013f0  33 2c 23 30 0d 05 fd 1f  20 20 20 20 20 20 20 20  |3,#0....        |
00001400  53 57 49 20 22 53 6f 75  6e 64 5f 43 6f 6e 74 72  |SWI "Sound_Contr|
00001410  6f 6c 22 0d 05 fe 21 20  20 20 20 20 20 20 20 4c  |ol"...!        L|
00001420  44 52 20 78 2c 6d 61 6e  78 3a 4c 44 52 20 79 2c  |DR x,manx:LDR y,|
00001430  6d 61 6e 79 0d 06 04 0d  2e 6e 6f 74 64 65 61 64  |many.....notdead|
00001440  31 0d 06 0e 42 20 20 20  20 20 20 20 20 20 4c 44  |1...B         LD|
00001450  52 20 6f 66 66 2c 6f 66  66 73 65 74 3a 4c 44 52  |R off,offset:LDR|
00001460  20 64 69 72 65 63 2c 64  69 72 3a 43 4d 50 20 6f  | direc,dir:CMP o|
00001470  66 66 2c 23 30 3a 42 4e  45 20 6f 66 66 73 65 74  |ff,#0:BNE offset|
00001480  73 65 74 0d 06 18 3f 20  20 20 20 20 20 20 20 43  |set...?        C|
00001490  4d 50 20 64 69 72 65 63  2c 23 31 3a 41 44 44 45  |MP direc,#1:ADDE|
000014a0  51 20 78 2c 78 2c 23 34  3a 43 4d 50 20 64 69 72  |Q x,x,#4:CMP dir|
000014b0  65 63 2c 23 30 3a 53 55  42 45 51 20 78 2c 78 2c  |ec,#0:SUBEQ x,x,|
000014c0  23 34 0d 06 22 40 20 20  20 20 20 20 20 20 20 43  |#4.."@         C|
000014d0  4d 50 20 64 69 72 65 63  2c 23 32 3a 41 44 44 45  |MP direc,#2:ADDE|
000014e0  51 20 79 2c 79 2c 23 34  3a 43 4d 50 20 64 69 72  |Q y,y,#4:CMP dir|
000014f0  65 63 2c 23 33 3a 53 55  42 45 51 20 79 2c 79 2c  |ec,#3:SUBEQ y,y,|
00001500  23 34 0d 06 2c 19 20 20  20 20 20 20 20 20 20 42  |#4..,.         B|
00001510  4c 20 70 6c 6f 74 73 74  61 74 32 0d 06 36 1d 20  |L plotstat2..6. |
00001520  20 20 20 20 20 20 20 20  42 20 61 66 74 65 72 73  |        B afters|
00001530  65 63 6f 6e 64 73 71 72  0d 06 40 43 2e 6f 66 66  |econdsqr..@C.off|
00001540  73 65 74 73 65 74 20 20  43 4d 50 20 64 69 72 65  |setset  CMP dire|
00001550  63 2c 23 31 3a 41 44 44  45 51 20 78 2c 78 2c 23  |c,#1:ADDEQ x,x,#|
00001560  34 3a 43 4d 50 20 64 69  72 65 63 2c 23 30 3a 41  |4:CMP direc,#0:A|
00001570  44 44 45 51 20 78 2c 78  2c 23 34 0d 06 4a 40 20  |DDEQ x,x,#4..J@ |
00001580  20 20 20 20 20 20 20 20  43 4d 50 20 64 69 72 65  |        CMP dire|
00001590  63 2c 23 32 3a 41 44 44  45 51 20 79 2c 79 2c 23  |c,#2:ADDEQ y,y,#|
000015a0  34 3a 43 4d 50 20 64 69  72 65 63 2c 23 33 3a 41  |4:CMP direc,#3:A|
000015b0  44 44 45 51 20 79 2c 79  2c 23 34 0d 06 54 23 20  |DDEQ y,y,#4..T# |
000015c0  20 20 20 20 20 20 20 4d  4f 56 20 52 31 32 2c 23  |       MOV R12,#|
000015d0  31 3a 42 4c 20 70 6c 6f  74 73 74 61 74 32 0d 06  |1:BL plotstat2..|
000015e0  5e 58 20 20 20 20 20 20  20 20 43 4d 50 20 52 31  |^X        CMP R1|
000015f0  32 2c 23 31 3a 42 45 51  20 61 66 74 65 72 73 65  |2,#1:BEQ afterse|
00001600  63 6f 6e 64 73 71 72 3a  4c 44 52 20 74 65 6d 70  |condsqr:LDR temp|
00001610  2c 64 65 61 64 3a 43 4d  50 20 74 65 6d 70 2c 23  |,dead:CMP temp,#|
00001620  32 35 35 3a 42 4e 45 20  61 66 74 65 72 73 65 63  |255:BNE aftersec|
00001630  6f 6e 64 73 71 72 0d 06  5f 19 20 20 20 20 20 20  |ondsqr.._.      |
00001640  20 20 20 53 54 52 20 52  31 32 2c 64 65 61 64 0d  |   STR R12,dead.|
00001650  06 60 3a 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |.`:         MOV |
00001660  52 30 2c 23 33 3a 4d 56  4e 20 52 31 2c 23 31 34  |R0,#3:MVN R1,#14|
00001670  3a 4d 4f 56 20 52 32 2c  23 73 63 72 65 61 6d 3a  |:MOV R2,#scream:|
00001680  4d 4f 56 20 52 33 2c 23  30 0d 06 61 20 20 20 20  |MOV R3,#0..a    |
00001690  20 20 20 20 20 20 53 57  49 20 22 53 6f 75 6e 64  |      SWI "Sound|
000016a0  5f 43 6f 6e 74 72 6f 6c  22 0d 06 68 13 2e 61 66  |_Control"..h..af|
000016b0  74 65 72 73 65 63 6f 6e  64 73 71 72 0d 06 72 78  |tersecondsqr..rx|
000016c0  20 20 20 20 20 20 20 20  20 41 44 52 20 74 65 6d  |         ADR tem|
000016d0  70 2c 64 65 61 64 3a 4c  44 4d 49 41 20 74 65 6d  |p,dead:LDMIA tem|
000016e0  70 2c 7b 52 31 32 2c 6f  66 66 2c 78 2c 79 2c 64  |p,{R12,off,x,y,d|
000016f0  69 72 65 63 2c 74 65 6d  70 33 7d 3a 4c 44 52 20  |irec,temp3}:LDR |
00001700  74 65 6d 70 2c 6d 61 6e  3a 43 4d 50 20 74 65 6d  |temp,man:CMP tem|
00001710  70 2c 23 31 3a 41 44 52  45 51 20 74 65 6d 70 2c  |p,#1:ADREQ temp,|
00001720  6d 61 6e 31 3a 41 44 52  4e 45 20 74 65 6d 70 2c  |man1:ADRNE temp,|
00001730  6d 61 6e 32 0d 06 7c 31  20 20 20 20 20 20 20 20  |man2..|1        |
00001740  20 53 54 4d 49 41 20 74  65 6d 70 2c 7b 52 31 32  | STMIA temp,{R12|
00001750  2c 6f 66 66 2c 78 2c 79  2c 64 69 72 65 63 2c 74  |,off,x,y,direc,t|
00001760  65 6d 70 33 7d 0d 06 86  65 20 20 20 20 20 20 20  |emp3}...e       |
00001770  20 20 4c 44 52 20 74 65  6d 70 2c 6d 61 6e 3a 41  |  LDR temp,man:A|
00001780  44 44 20 74 65 6d 70 2c  74 65 6d 70 2c 23 31 3a  |DD temp,temp,#1:|
00001790  53 54 52 20 74 65 6d 70  2c 6d 61 6e 3a 4c 44 52  |STR temp,man:LDR|
000017a0  20 74 65 6d 70 33 2c 70  6c 61 79 65 72 73 3a 43  | temp3,players:C|
000017b0  4d 50 20 74 65 6d 70 2c  74 65 6d 70 33 3a 42 4c  |MP temp,temp3:BL|
000017c0  45 20 6d 61 6e 6c 6f 6f  70 31 0d 06 90 1b 20 20  |E manloop1....  |
000017d0  20 20 20 20 20 20 42 4c  20 72 65 64 72 61 77 72  |      BL redrawr|
000017e0  6f 62 6f 74 73 0d 06 9a  24 20 20 20 20 20 20 20  |obots...$       |
000017f0  20 4d 4f 56 20 74 65 6d  70 2c 23 31 3a 53 54 52  | MOV temp,#1:STR|
00001800  20 74 65 6d 70 2c 6d 61  6e 0d 06 a4 0d 2e 6d 61  | temp,man.....ma|
00001810  6e 6c 6f 6f 70 32 0d 06  ae 44 20 20 20 20 20 20  |nloop2...D      |
00001820  20 20 4c 44 52 20 74 65  6d 70 2c 6d 61 6e 3a 43  |  LDR temp,man:C|
00001830  4d 50 20 74 65 6d 70 2c  23 31 3a 41 44 52 45 51  |MP temp,#1:ADREQ|
00001840  20 74 65 6d 70 2c 6d 61  6e 31 3a 41 44 52 4e 45  | temp,man1:ADRNE|
00001850  20 74 65 6d 70 2c 6d 61  6e 32 0d 06 b8 63 20 20  | temp,man2...c  |
00001860  20 20 20 20 20 20 4c 44  4d 49 41 20 74 65 6d 70  |      LDMIA temp|
00001870  2c 7b 52 31 32 2c 6f 66  66 2c 78 2c 79 2c 64 69  |,{R12,off,x,y,di|
00001880  72 65 63 2c 74 65 6d 70  33 7d 3a 41 44 52 20 74  |rec,temp3}:ADR t|
00001890  65 6d 70 2c 64 65 61 64  3a 53 54 4d 49 41 20 74  |emp,dead:STMIA t|
000018a0  65 6d 70 2c 7b 52 31 32  2c 6f 66 66 2c 78 2c 79  |emp,{R12,off,x,y|
000018b0  2c 64 69 72 65 63 2c 74  65 6d 70 33 7d 0d 06 c2  |,direc,temp3}...|
000018c0  22 20 20 20 20 20 20 20  20 20 4c 44 52 20 78 2c  |"         LDR x,|
000018d0  6d 61 6e 78 3a 4c 44 52  20 79 2c 6d 61 6e 79 0d  |manx:LDR y,many.|
000018e0  06 cc 29 20 20 20 20 20  20 20 20 20 4c 44 52 20  |..)         LDR |
000018f0  64 69 72 65 63 2c 64 69  72 3a 4c 44 52 20 6f 66  |direc,dir:LDR of|
00001900  66 2c 6f 66 66 73 65 74  0d 06 d6 2b 20 20 20 20  |f,offset...+    |
00001910  20 20 20 20 20 4c 44 52  20 73 63 72 2c 73 63 72  |     LDR scr,scr|
00001920  65 65 6e 3a 4d 4f 56 20  74 65 6d 70 2c 23 34 2a  |een:MOV temp,#4*|
00001930  33 32 30 0d 06 e0 25 20  20 20 20 20 20 20 20 20  |320...%         |
00001940  4d 4c 41 20 74 65 6d 70  32 2c 74 65 6d 70 2c 67  |MLA temp2,temp,g|
00001950  72 69 64 79 2c 73 63 72  0d 06 ea 21 20 20 20 20  |ridy,scr...!    |
00001960  20 20 20 20 41 44 44 20  73 63 72 2c 74 65 6d 70  |    ADD scr,temp|
00001970  32 2c 23 33 39 2a 33 32  30 0d 06 f4 23 20 20 20  |2,#39*320...#   |
00001980  20 20 20 20 20 41 44 44  20 73 63 72 2c 73 63 72  |     ADD scr,scr|
00001990  2c 67 72 69 64 78 2c 4c  53 4c 23 32 0d 06 fe 38  |,gridx,LSL#2...8|
000019a0  20 20 20 20 20 20 20 20  43 4d 50 20 64 69 72 65  |        CMP dire|
000019b0  63 2c 23 32 3a 4d 4f 56  47 45 20 74 65 6d 70 32  |c,#2:MOVGE temp2|
000019c0  2c 23 36 34 30 3a 4d 4f  56 4c 54 20 74 65 6d 70  |,#640:MOVLT temp|
000019d0  32 2c 23 32 0d 07 08 21  20 20 20 20 20 20 20 20  |2,#2...!        |
000019e0  4d 4c 41 20 73 63 72 2c  74 65 6d 70 32 2c 6f 66  |MLA scr,temp2,of|
000019f0  66 2c 73 63 72 0d 07 12  32 20 20 20 20 20 20 20  |f,scr...2       |
00001a00  20 4c 44 52 20 52 31 32  2c 64 65 61 64 3a 43 4d  | LDR R12,dead:CM|
00001a10  50 20 52 31 32 2c 23 32  35 35 3a 42 47 45 20 6e  |P R12,#255:BGE n|
00001a20  6f 74 64 65 61 64 33 0d  07 1c 32 20 20 20 20 20  |otdead3...2     |
00001a30  20 20 20 4d 4f 56 20 74  65 6d 70 2c 23 34 3c 3c  |   MOV temp,#4<<|
00001a40  35 3a 41 44 44 20 74 65  6d 70 2c 74 65 6d 70 2c  |5:ADD temp,temp,|
00001a50  52 31 32 2c 4c 53 52 23  31 0d 07 26 18 20 20 20  |R12,LSR#1..&.   |
00001a60  20 20 20 20 20 42 20 61  6c 74 6f 67 65 74 68 65  |     B altogethe|
00001a70  72 0d 07 30 53 2e 6e 6f  74 64 65 61 64 33 20 42  |r..0S.notdead3 B|
00001a80  45 51 20 6e 6f 61 75 72  61 3a 53 55 42 20 52 31  |EQ noaura:SUB R1|
00001a90  32 2c 52 31 32 2c 23 31  3a 53 54 52 20 52 31 32  |2,R12,#1:STR R12|
00001aa0  2c 64 65 61 64 3a 4d 4f  56 20 74 65 6d 70 33 2c  |,dead:MOV temp3,|
00001ab0  73 63 72 3a 41 44 52 20  52 31 34 2c 62 5f 66 5f  |scr:ADR R14,b_f_|
00001ac0  61 75 72 61 0d 07 3a 1b  20 20 20 20 20 20 20 20  |aura..:.        |
00001ad0  20 20 4c 44 52 20 50 43  2c 61 75 72 61 73 70 0d  |  LDR PC,aurasp.|
00001ae0  07 44 1b 2e 62 5f 66 5f  61 75 72 61 20 4d 4f 56  |.D..b_f_aura MOV|
00001af0  20 73 63 72 2c 74 65 6d  70 33 0d 07 4e 22 2e 6e  | scr,temp3..N".n|
00001b00  6f 61 75 72 61 20 20 20  4d 4f 56 20 74 65 6d 70  |oaura   MOV temp|
00001b10  2c 64 69 72 65 63 2c 4c  53 4c 23 35 0d 07 58 3f  |,direc,LSL#5..X?|
00001b20  20 20 20 20 20 20 20 20  41 44 44 20 74 65 6d 70  |        ADD temp|
00001b30  2c 74 65 6d 70 2c 6f 66  66 2c 4c 53 4c 23 32 20  |,temp,off,LSL#2 |
00001b40  20 20 3b 66 69 6e 64 20  61 64 64 72 20 6f 66 20  |  ;find addr of |
00001b50  6d 61 6e 20 72 6f 75 74  69 6e 65 0d 07 62 41 20  |man routine..bA |
00001b60  20 20 20 20 20 20 20 4c  44 52 20 74 65 6d 70 33  |       LDR temp3|
00001b70  2c 6d 61 6e 3a 43 4d 50  20 74 65 6d 70 33 2c 23  |,man:CMP temp3,#|
00001b80  31 3a 41 44 44 4e 45 20  74 65 6d 70 2c 74 65 6d  |1:ADDNE temp,tem|
00001b90  70 2c 23 34 2a 34 2a 38  2b 37 2a 34 0d 07 6c 20  |p,#4*4*8+7*4..l |
00001ba0  2e 61 6c 74 6f 67 65 74  68 65 72 20 4c 44 52 20  |.altogether LDR |
00001bb0  74 65 6d 70 32 2c 6d 61  6e 67 66 78 0d 07 76 1a  |temp2,mangfx..v.|
00001bc0  20 20 20 20 20 20 20 20  41 44 52 20 52 31 34 2c  |        ADR R14,|
00001bd0  72 65 6e 64 65 7a 0d 07  80 1e 20 20 20 20 20 20  |rendez....      |
00001be0  20 20 42 49 43 20 74 65  6d 70 2c 74 65 6d 70 2c  |  BIC temp,temp,|
00001bf0  23 25 31 31 0d 07 8a 30  20 20 20 20 20 20 20 53  |#%11...0       S|
00001c00  54 52 20 74 65 6d 70 32  2c 63 68 65 63 6b 74 6d  |TR temp2,checktm|
00001c10  70 32 3a 53 54 52 20 74  65 6d 70 2c 63 68 65 63  |p2:STR temp,chec|
00001c20  6b 74 6d 70 0d 07 94 1f  20 20 20 20 20 20 20 20  |ktmp....        |
00001c30  4c 44 52 20 50 43 2c 5b  74 65 6d 70 32 2c 74 65  |LDR PC,[temp2,te|
00001c40  6d 70 5d 0d 07 9e 0b 2e  72 65 6e 64 65 7a 0d 07  |mp].....rendez..|
00001c50  a8 32 20 20 20 20 20 20  20 20 4c 44 52 20 52 31  |.2        LDR R1|
00001c60  32 2c 64 65 61 64 3a 43  4d 50 20 52 31 32 2c 23  |2,dead:CMP R12,#|
00001c70  32 35 35 3a 42 47 45 20  6e 6f 74 64 65 61 64 32  |255:BGE notdead2|
00001c80  0d 07 b2 3e 20 20 20 20  20 20 20 20 41 44 44 20  |...>        ADD |
00001c90  52 31 32 2c 52 31 32 2c  23 31 3a 43 4d 50 20 52  |R12,R12,#1:CMP R|
00001ca0  31 32 2c 23 34 39 3a 4c  44 52 45 51 20 50 43 2c  |12,#49:LDREQ PC,|
00001cb0  62 61 63 6b 5f 66 72 6f  6d 5f 6d 61 69 6e 0d 07  |back_from_main..|
00001cc0  bc 24 20 20 20 20 20 20  20 20 53 54 52 20 52 31  |.$        STR R1|
00001cd0  32 2c 64 65 61 64 3a 42  20 65 6e 64 75 70 64 61  |2,dead:B endupda|
00001ce0  74 65 0d 07 c6 0d 2e 6e  6f 74 64 65 61 64 32 0d  |te.....notdead2.|
00001cf0  07 d0 23 20 20 20 20 20  20 20 20 43 4d 50 20 6f  |..#        CMP o|
00001d00  66 66 2c 23 30 3a 42 45  51 20 6b 65 79 63 68 65  |ff,#0:BEQ keyche|
00001d10  63 6b 0d 07 da 22 20 20  20 20 20 20 20 20 43 4d  |ck..."        CM|
00001d20  50 20 64 69 72 65 63 2c  23 31 3a 42 45 51 20 62  |P direc,#1:BEQ b|
00001d30  61 63 6b 77 0d 07 e4 22  20 20 20 20 20 20 20 20  |ackw..."        |
00001d40  43 4d 50 20 64 69 72 65  63 2c 23 32 3a 42 45 51  |CMP direc,#2:BEQ|
00001d50  20 62 61 63 6b 77 0d 07  ee 33 20 20 20 20 20 20  | backw...3      |
00001d60  20 20 41 44 44 20 6f 66  66 2c 6f 66 66 2c 23 31  |  ADD off,off,#1|
00001d70  3a 43 4d 50 20 6f 66 66  2c 23 38 3a 42 4c 54 20  |:CMP off,#8:BLT |
00001d80  65 6e 64 75 70 64 61 74  65 0d 07 f8 16 20 20 20  |endupdate....   |
00001d90  20 20 20 20 20 4d 4f 56  20 6f 66 66 2c 23 30 0d  |     MOV off,#0.|
00001da0  08 02 38 20 20 20 20 20  20 20 20 43 4d 50 20 64  |..8        CMP d|
00001db0  69 72 65 63 2c 23 30 3a  4c 44 52 45 51 20 74 65  |irec,#0:LDREQ te|
00001dc0  6d 70 2c 6d 61 6e 78 3a  4c 44 52 4e 45 20 74 65  |mp,manx:LDRNE te|
00001dd0  6d 70 2c 6d 61 6e 79 0d  08 0c 3c 20 20 20 20 20  |mp,many...<     |
00001de0  20 20 20 41 44 44 20 74  65 6d 70 2c 74 65 6d 70  |   ADD temp,temp|
00001df0  2c 23 34 3a 53 54 52 45  51 20 74 65 6d 70 2c 6d  |,#4:STREQ temp,m|
00001e00  61 6e 78 3a 53 54 52 4e  45 20 74 65 6d 70 2c 6d  |anx:STRNE temp,m|
00001e10  61 6e 79 0d 08 16 17 20  20 20 20 20 20 20 20 42  |any....        B|
00001e20  20 65 6e 64 75 70 64 61  74 65 0d 08 20 1a 2e 62  | endupdate.. ..b|
00001e30  61 63 6b 77 20 20 53 55  42 20 6f 66 66 2c 6f 66  |ackw  SUB off,of|
00001e40  66 2c 23 31 0d 08 2a 1d  2e 65 6e 64 75 70 64 61  |f,#1..*..endupda|
00001e50  74 65 20 53 54 52 20 6f  66 66 2c 6f 66 66 73 65  |te STR off,offse|
00001e60  74 0d 08 34 78 20 20 20  20 20 20 20 20 20 41 44  |t..4x         AD|
00001e70  52 20 74 65 6d 70 2c 64  65 61 64 3a 4c 44 4d 49  |R temp,dead:LDMI|
00001e80  41 20 74 65 6d 70 2c 7b  52 31 32 2c 6f 66 66 2c  |A temp,{R12,off,|
00001e90  78 2c 79 2c 64 69 72 65  63 2c 74 65 6d 70 33 7d  |x,y,direc,temp3}|
00001ea0  3a 4c 44 52 20 74 65 6d  70 2c 6d 61 6e 3a 43 4d  |:LDR temp,man:CM|
00001eb0  50 20 74 65 6d 70 2c 23  31 3a 41 44 52 45 51 20  |P temp,#1:ADREQ |
00001ec0  74 65 6d 70 2c 6d 61 6e  31 3a 41 44 52 4e 45 20  |temp,man1:ADRNE |
00001ed0  74 65 6d 70 2c 6d 61 6e  32 0d 08 3e 31 20 20 20  |temp,man2..>1   |
00001ee0  20 20 20 20 20 20 53 54  4d 49 41 20 74 65 6d 70  |      STMIA temp|
00001ef0  2c 7b 52 31 32 2c 6f 66  66 2c 78 2c 79 2c 64 69  |,{R12,off,x,y,di|
00001f00  72 65 63 2c 74 65 6d 70  33 7d 0d 08 48 65 20 20  |rec,temp3}..He  |
00001f10  20 20 20 20 20 20 20 4c  44 52 20 74 65 6d 70 2c  |       LDR temp,|
00001f20  6d 61 6e 3a 41 44 44 20  74 65 6d 70 2c 74 65 6d  |man:ADD temp,tem|
00001f30  70 2c 23 31 3a 53 54 52  20 74 65 6d 70 2c 6d 61  |p,#1:STR temp,ma|
00001f40  6e 3a 4c 44 52 20 74 65  6d 70 33 2c 70 6c 61 79  |n:LDR temp3,play|
00001f50  65 72 73 3a 43 4d 50 20  74 65 6d 70 2c 74 65 6d  |ers:CMP temp,tem|
00001f60  70 33 3a 42 4c 45 20 6d  61 6e 6c 6f 6f 70 32 0d  |p3:BLE manloop2.|
00001f70  08 52 42 20 20 20 20 20  20 20 20 20 20 20 4c 44  |.RB           LD|
00001f80  52 20 74 65 6d 70 2c 72  75 62 62 6c 65 3a 43 4d  |R temp,rubble:CM|
00001f90  50 20 74 65 6d 70 2c 23  30 3a 4c 44 52 45 51 20  |P temp,#0:LDREQ |
00001fa0  50 43 2c 62 61 63 6b 5f  66 72 6f 6d 5f 6d 61 69  |PC,back_from_mai|
00001fb0  6e 0d 08 5c 15 20 20 20  20 20 20 20 42 20 6d 61  |n..\.       B ma|
00001fc0  69 6e 6c 6f 6f 70 0d 08  66 05 3a 0d 08 70 1a 2e  |inloop..f.:..p..|
00001fd0  6d 61 6e 67 66 78 20 45  51 55 44 20 28 6d 61 6e  |mangfx EQUD (man|
00001fe0  72 74 6e 73 29 0d 08 7a  37 2e 66 69 6e 64 74 6f  |rtns)..z7.findto|
00001ff0  6b 65 6e 20 41 44 44 20  74 65 6d 70 2c 74 65 6d  |ken ADD temp,tem|
00002000  70 2c 73 70 6e 75 6d 3a  4c 44 52 42 20 73 70 6e  |p,spnum:LDRB spn|
00002010  75 6d 2c 5b 74 65 6d 70  2c 23 31 5d 0d 08 84 28  |um,[temp,#1]...(|
00002020  20 20 20 20 20 20 20 20  20 20 20 43 4d 50 20 73  |           CMP s|
00002030  70 6e 75 6d 2c 23 34 38  3a 42 4c 54 20 74 6f 6b  |pnum,#48:BLT tok|
00002040  65 6e 65 64 0d 08 8e 35  20 20 20 20 20 20 20 20  |ened...5        |
00002050  20 20 4c 44 52 20 52 37  2c 73 63 6f 72 65 3a 41  |  LDR R7,score:A|
00002060  44 44 20 52 37 2c 52 37  2c 23 35 30 3a 53 54 52  |DD R7,R7,#50:STR|
00002070  20 52 37 2c 73 63 6f 72  65 0d 08 98 3d 20 20 20  | R7,score...=   |
00002080  20 20 20 20 20 20 20 20  42 47 54 20 6d 6f 72 65  |        BGT more|
00002090  66 69 72 65 3a 4d 4f 56  20 74 61 62 6c 65 2c 23  |fire:MOV table,#|
000020a0  33 3a 53 54 52 42 20 74  61 62 6c 65 2c 5b 74 65  |3:STRB table,[te|
000020b0  6d 70 2c 23 31 5d 0d 08  a2 20 20 20 20 20 20 20  |mp,#1]...       |
000020c0  20 20 20 20 20 53 54 52  42 20 74 61 62 6c 65 2c  |     STRB table,|
000020d0  5b 74 65 6d 70 5d 0d 08  ac 2f 20 20 20 20 20 20  |[temp].../      |
000020e0  20 20 20 20 20 41 44 52  20 74 65 6d 70 2c 73 74  |     ADR temp,st|
000020f0  61 74 73 3a 4c 44 52 42  20 73 70 6e 75 6d 2c 5b  |ats:LDRB spnum,[|
00002100  74 65 6d 70 5d 0d 08 b6  33 20 20 20 20 20 20 20  |temp]...3       |
00002110  20 20 20 20 41 44 44 20  73 70 6e 75 6d 2c 73 70  |    ADD spnum,sp|
00002120  6e 75 6d 2c 23 31 3a 53  54 52 42 20 73 70 6e 75  |num,#1:STRB spnu|
00002130  6d 2c 5b 74 65 6d 70 5d  0d 08 c0 47 20 20 20 20  |m,[temp]...G    |
00002140  20 20 20 20 20 20 20 4d  4f 56 20 74 65 6d 70 2c  |       MOV temp,|
00002150  78 3a 4d 4f 56 20 74 65  6d 70 32 2c 79 3a 4d 4f  |x:MOV temp2,y:MO|
00002160  56 20 52 30 2c 23 32 3a  4d 56 4e 20 52 31 2c 23  |V R0,#2:MVN R1,#|
00002170  31 34 3a 4d 4f 56 20 52  32 2c 23 70 69 6e 67 0d  |14:MOV R2,#ping.|
00002180  08 ca 39 20 20 20 20 20  20 20 20 20 20 20 53 57  |..9           SW|
00002190  49 20 22 53 6f 75 6e 64  5f 43 6f 6e 74 72 6f 6c  |I "Sound_Control|
000021a0  22 3a 4d 4f 56 20 78 2c  74 65 6d 70 3a 4d 4f 56  |":MOV x,temp:MOV|
000021b0  20 79 2c 74 65 6d 70 32  0d 08 d4 3f 20 20 20 20  | y,temp2...?    |
000021c0  20 20 20 20 20 20 20 4c  44 52 20 74 65 6d 70 2c  |       LDR temp,|
000021d0  72 75 62 62 6c 65 3a 53  55 42 20 74 65 6d 70 2c  |rubble:SUB temp,|
000021e0  74 65 6d 70 2c 23 31 3a  53 54 52 20 74 65 6d 70  |temp,#1:STR temp|
000021f0  2c 72 75 62 62 6c 65 0d  08 de 18 20 20 20 20 20  |,rubble....     |
00002200  20 20 20 20 20 20 42 20  74 6f 6b 65 6e 65 64 0d  |      B tokened.|
00002210  08 e8 4a 2e 6d 6f 72 65  66 69 72 65 20 20 43 4d  |..J.morefire  CM|
00002220  50 20 73 70 6e 75 6d 2c  23 34 39 3a 42 47 54 20  |P spnum,#49:BGT |
00002230  75 6e 6b 6e 6f 77 6e 3a  4d 4f 56 20 74 61 62 6c  |unknown:MOV tabl|
00002240  65 2c 23 33 3a 53 54 52  42 20 74 61 62 6c 65 2c  |e,#3:STRB table,|
00002250  5b 74 65 6d 70 2c 23 31  5d 0d 08 f2 20 20 20 20  |[temp,#1]...    |
00002260  20 20 20 20 20 20 20 20  53 54 52 42 20 74 61 62  |        STRB tab|
00002270  6c 65 2c 5b 74 65 6d 70  5d 0d 08 fc 32 20 20 20  |le,[temp]...2   |
00002280  20 20 20 20 20 20 20 20  41 44 52 20 74 65 6d 70  |        ADR temp|
00002290  2c 73 74 61 74 73 3a 4c  44 52 42 20 73 70 6e 75  |,stats:LDRB spnu|
000022a0  6d 2c 5b 74 65 6d 70 2c  23 32 5d 0d 09 06 36 20  |m,[temp,#2]...6 |
000022b0  20 20 20 20 20 20 20 20  20 20 41 44 44 20 73 70  |          ADD sp|
000022c0  6e 75 6d 2c 73 70 6e 75  6d 2c 23 31 3a 53 54 52  |num,spnum,#1:STR|
000022d0  42 20 73 70 6e 75 6d 2c  5b 74 65 6d 70 2c 23 32  |B spnum,[temp,#2|
000022e0  5d 0d 09 10 47 20 20 20  20 20 20 20 20 20 20 20  |]...G           |
000022f0  4d 4f 56 20 74 65 6d 70  2c 78 3a 4d 4f 56 20 74  |MOV temp,x:MOV t|
00002300  65 6d 70 32 2c 79 3a 4d  4f 56 20 52 30 2c 23 32  |emp2,y:MOV R0,#2|
00002310  3a 4d 56 4e 20 52 31 2c  23 31 34 3a 4d 4f 56 20  |:MVN R1,#14:MOV |
00002320  52 32 2c 23 70 69 6e 67  0d 09 1a 39 20 20 20 20  |R2,#ping...9    |
00002330  20 20 20 20 20 20 20 53  57 49 20 22 53 6f 75 6e  |       SWI "Soun|
00002340  64 5f 43 6f 6e 74 72 6f  6c 22 3a 4d 4f 56 20 78  |d_Control":MOV x|
00002350  2c 74 65 6d 70 3a 4d 4f  56 20 79 2c 74 65 6d 70  |,temp:MOV y,temp|
00002360  32 0d 09 24 3f 20 20 20  20 20 20 20 20 20 20 20  |2..$?           |
00002370  4c 44 52 20 74 65 6d 70  2c 72 75 62 62 6c 65 3a  |LDR temp,rubble:|
00002380  53 55 42 20 74 65 6d 70  2c 74 65 6d 70 2c 23 31  |SUB temp,temp,#1|
00002390  3a 53 54 52 20 74 65 6d  70 2c 72 75 62 62 6c 65  |:STR temp,rubble|
000023a0  0d 09 2e 18 20 20 20 20  20 20 20 20 20 20 20 42  |....           B|
000023b0  20 74 6f 6b 65 6e 65 64  0d 09 38 4a 2e 75 6e 6b  | tokened..8J.unk|
000023c0  6e 6f 77 6e 20 20 20 43  4d 50 20 73 70 6e 75 6d  |nown   CMP spnum|
000023d0  2c 23 35 30 3a 42 4e 45  20 74 6f 6b 65 6e 65 64  |,#50:BNE tokened|
000023e0  3a 4d 4f 56 20 74 61 62  6c 65 2c 23 33 3a 53 54  |:MOV table,#3:ST|
000023f0  52 42 20 74 61 62 6c 65  2c 5b 74 65 6d 70 2c 23  |RB table,[temp,#|
00002400  31 5d 0d 09 42 36 20 20  20 20 20 20 20 20 20 20  |1]..B6          |
00002410  20 4c 44 52 20 52 37 2c  73 63 6f 72 65 3a 41 44  | LDR R7,score:AD|
00002420  44 20 52 37 2c 52 37 2c  23 32 35 3a 53 54 52 20  |D R7,R7,#25:STR |
00002430  52 37 2c 73 63 6f 72 65  0d 09 4c 20 20 20 20 20  |R7,score..L     |
00002440  20 20 20 20 20 20 20 53  54 52 42 20 74 61 62 6c  |       STRB tabl|
00002450  65 2c 5b 74 65 6d 70 5d  0d 09 56 47 20 20 20 20  |e,[temp]..VG    |
00002460  20 20 20 20 20 20 20 4d  4f 56 20 74 65 6d 70 2c  |       MOV temp,|
00002470  78 3a 4d 4f 56 20 74 65  6d 70 32 2c 79 3a 4d 4f  |x:MOV temp2,y:MO|
00002480  56 20 52 30 2c 23 32 3a  4d 56 4e 20 52 31 2c 23  |V R0,#2:MVN R1,#|
00002490  31 34 3a 4d 4f 56 20 52  32 2c 23 70 69 6e 67 0d  |14:MOV R2,#ping.|
000024a0  09 60 39 20 20 20 20 20  20 20 20 20 20 20 53 57  |.`9           SW|
000024b0  49 20 22 53 6f 75 6e 64  5f 43 6f 6e 74 72 6f 6c  |I "Sound_Control|
000024c0  22 3a 4d 4f 56 20 78 2c  74 65 6d 70 3a 4d 4f 56  |":MOV x,temp:MOV|
000024d0  20 79 2c 74 65 6d 70 32  0d 09 6a 3f 20 20 20 20  | y,temp2..j?    |
000024e0  20 20 20 20 20 20 20 4c  44 52 20 74 65 6d 70 2c  |       LDR temp,|
000024f0  72 75 62 62 6c 65 3a 53  55 42 20 74 65 6d 70 2c  |rubble:SUB temp,|
00002500  74 65 6d 70 2c 23 31 3a  53 54 52 20 74 65 6d 70  |temp,#1:STR temp|
00002510  2c 72 75 62 62 6c 65 0d  09 74 31 20 20 20 20 20  |,rubble..t1     |
00002520  20 20 20 20 20 20 41 44  52 20 52 31 34 2c 74 6f  |      ADR R14,to|
00002530  6b 65 6e 65 64 3a 4c 44  52 20 50 43 2c 65 78 65  |kened:LDR PC,exe|
00002540  63 75 6e 6b 6e 6f 77 6e  0d 09 7e 05 3a 0d 09 88  |cunknown..~.:...|
00002550  11 2e 73 63 6f 72 65 20  45 51 55 44 20 30 0d 09  |..score EQUD 0..|
00002560  92 12 2e 61 75 72 61 73  70 20 45 51 55 44 20 30  |...aurasp EQUD 0|
00002570  0d 09 9c 1f 2e 65 78 65  63 75 6e 6b 6e 6f 77 6e  |.....execunknown|
00002580  20 45 51 55 44 20 28 6d  79 73 74 65 72 79 29 0d  | EQUD (mystery).|
00002590  09 a6 14 2e 63 68 65 63  6b 74 6d 70 20 45 51 55  |....checktmp EQU|
000025a0  44 20 30 0d 09 b0 15 2e  63 68 65 63 6b 74 6d 70  |D 0.....checktmp|
000025b0  32 20 45 51 55 44 20 30  0d 09 ba 1d 2e 70 6c 6f  |2 EQUD 0.....plo|
000025c0  74 73 74 61 74 32 20 41  44 52 20 74 65 6d 70 2c  |tstat2 ADR temp,|
000025d0  73 61 66 65 32 0d 09 c4  34 20 20 20 20 20 20 20  |safe2...4       |
000025e0  20 53 54 4d 49 41 20 74  65 6d 70 2c 7b 78 2c 79  | STMIA temp,{x,y|
000025f0  2c 6f 66 66 2c 64 69 72  65 63 2c 52 35 2c 52 39  |,off,direc,R5,R9|
00002600  2d 52 31 31 2c 52 31 34  7d 0d 09 ce 1a 20 20 20  |-R11,R14}....   |
00002610  20 20 20 20 20 4c 44 52  20 73 63 72 2c 73 63 72  |     LDR scr,scr|
00002620  65 65 6e 0d 09 d8 18 20  20 20 20 20 20 20 20 4d  |een....        M|
00002630  4f 56 20 74 65 6d 70 2c  23 31 39 0d 09 e2 1e 20  |OV temp,#19.... |
00002640  20 20 20 20 20 20 20 4d  4c 41 20 73 70 6e 75 6d  |       MLA spnum|
00002650  2c 79 2c 74 65 6d 70 2c  78 0d 09 ec 19 20 20 20  |,y,temp,x....   |
00002660  20 20 20 20 20 4c 44 52  20 74 65 6d 70 2c 67 72  |     LDR temp,gr|
00002670  69 64 0d 09 f6 23 20 20  20 20 20 20 20 20 4c 44  |id...#        LD|
00002680  52 42 20 74 61 62 6c 65  2c 5b 74 65 6d 70 2c 73  |RB table,[temp,s|
00002690  70 6e 75 6d 5d 0d 0a 00  41 20 20 20 20 20 20 20  |pnum]...A       |
000026a0  20 4c 44 52 20 52 31 31  2c 6d 61 6e 3a 4c 44 52  | LDR R11,man:LDR|
000026b0  20 52 31 30 2c 70 6c 61  79 65 72 73 3a 43 4d 50  | R10,players:CMP|
000026c0  20 52 31 31 2c 52 31 30  3a 42 4c 45 20 66 69 6e  | R11,R10:BLE fin|
000026d0  64 74 6f 6b 65 6e 0d 0a  0a 25 2e 74 6f 6b 65 6e  |dtoken...%.token|
000026e0  65 64 20 43 4d 50 20 74  61 62 6c 65 2c 23 34 3a  |ed CMP table,#4:|
000026f0  42 4c 54 20 6e 6f 74 65  78 70 6c 0d 0a 14 26 20  |BLT notexpl...& |
00002700  20 20 20 20 20 20 20 43  4d 50 20 74 61 62 6c 65  |       CMP table|
00002710  2c 23 33 32 3a 4d 4f 56  4c 54 20 52 31 32 2c 23  |,#32:MOVLT R12,#|
00002720  30 0d 0a 1e 0c 2e 6e 6f  74 65 78 70 6c 0d 0a 28  |0.....notexpl..(|
00002730  21 20 20 20 20 20 20 20  20 4d 4f 56 20 74 61 62  |!        MOV tab|
00002740  6c 65 2c 74 61 62 6c 65  2c 4c 53 4c 23 38 0d 0a  |le,table,LSL#8..|
00002750  32 1d 20 20 20 20 20 20  20 20 4c 44 52 20 73 70  |2.        LDR sp|
00002760  6e 75 6d 2c 73 70 72 69  74 65 73 0d 0a 3c 21 20  |num,sprites..<! |
00002770  20 20 20 20 20 20 20 41  44 44 20 74 61 62 6c 65  |       ADD table|
00002780  2c 74 61 62 6c 65 2c 73  70 6e 75 6d 0d 0a 46 1b  |,table,spnum..F.|
00002790  20 20 20 20 20 20 20 20  4d 4f 56 20 74 65 6d 70  |        MOV temp|
000027a0  2c 23 34 2a 33 32 30 0d  0a 50 20 20 20 20 20 20  |,#4*320..P      |
000027b0  20 20 20 4d 4c 41 20 74  65 6d 70 32 2c 74 65 6d  |   MLA temp2,tem|
000027c0  70 2c 79 2c 73 63 72 0d  0a 5a 21 20 20 20 20 20  |p,y,scr..Z!     |
000027d0  20 20 20 41 44 44 20 73  63 72 2c 74 65 6d 70 32  |   ADD scr,temp2|
000027e0  2c 23 33 39 2a 33 32 30  0d 0a 64 23 20 20 20 20  |,#39*320..d#    |
000027f0  20 20 20 20 41 44 44 20  73 63 72 2c 73 63 72 2c  |    ADD scr,scr,|
00002800  67 72 69 64 78 2c 4c 53  4c 23 32 0d 0a 6e 1f 5d  |gridx,LSL#2..n.]|
00002810  3a 20 20 20 20 20 20 e3  20 6c 3d 31 20 b8 20 38  |:      . l=1 . 8|
00002820  3a 5b 4f 50 54 20 70 61  73 73 0d 0a 78 2f 20 20  |:[OPT pass..x/  |
00002830  20 20 20 20 20 20 4c 44  4d 49 41 20 28 74 61 62  |      LDMIA (tab|
00002840  6c 65 29 21 2c 7b 52 31  2d 52 33 2c 52 35 2d 52  |le)!,{R1-R3,R5-R|
00002850  37 2c 52 39 2c 52 31 30  7d 0d 0a 82 22 20 20 20  |7,R9,R10}..."   |
00002860  20 20 20 20 20 53 54 4d  49 41 20 28 73 63 72 29  |     STMIA (scr)|
00002870  2c 7b 52 31 2d 52 33 2c  52 35 7d 0d 0a 8c 1c 20  |,{R1-R3,R5}.... |
00002880  20 20 20 20 20 20 20 41  44 44 20 73 63 72 2c 73  |       ADD scr,s|
00002890  63 72 2c 23 33 32 30 0d  0a 96 26 20 20 20 20 20  |cr,#320...&     |
000028a0  20 20 20 53 54 4d 49 41  20 28 73 63 72 29 2c 7b  |   STMIA (scr),{|
000028b0  52 36 2c 52 37 2c 52 39  2c 52 31 30 7d 0d 0a a0  |R6,R7,R9,R10}...|
000028c0  1c 20 20 20 20 20 20 20  20 41 44 44 20 73 63 72  |.        ADD scr|
000028d0  2c 73 63 72 2c 23 33 32  30 0d 0a aa 19 5d 3a 20  |,scr,#320....]: |
000028e0  20 20 20 20 20 ed 20 6c  3a 5b 4f 50 54 20 70 61  |     . l:[OPT pa|
000028f0  73 73 0d 0a b4 1a 20 20  20 20 20 20 20 20 41 44  |ss....        AD|
00002900  52 20 74 65 6d 70 2c 73  61 66 65 32 0d 0a be 34  |R temp,safe2...4|
00002910  20 20 20 20 20 20 20 20  4c 44 4d 49 41 20 74 65  |        LDMIA te|
00002920  6d 70 2c 7b 78 2c 79 2c  6f 66 66 2c 64 69 72 65  |mp,{x,y,off,dire|
00002930  63 2c 52 35 2c 52 39 2d  52 31 31 2c 52 31 34 7d  |c,R5,R9-R11,R14}|
00002940  0d 0a c8 16 20 20 20 20  20 20 20 20 4d 4f 56 20  |....        MOV |
00002950  50 43 2c 52 31 34 0d 0a  d2 1a 2e 73 61 66 65 32  |PC,R14.....safe2|
00002960  20 20 a4 72 65 73 65 72  76 65 28 34 2a 31 30 29  |  .reserve(4*10)|
00002970  0d 0a dc 05 3a 0d 0a e6  0d 2e 6b 65 79 63 68 65  |....:.....keyche|
00002980  63 6b 0d 0a f0 3e 20 3b  20 4f 53 42 59 54 45 20  |ck...> ; OSBYTE |
00002990  57 49 54 48 20 52 30 3d  31 32 31 20 80 20 52 31  |WITH R0=121 . R1|
000029a0  3d 4b 45 59 20 4e 55 4d  20 82 20 26 38 30 20 41  |=KEY NUM . &80 A|
000029b0  53 20 ee 20 f1 31 34 32  2f 33 20 80 42 2e fd e5  |S . .142/3 .B...|
000029c0  0d 0b 04 14 20 20 4c 44  52 20 6f 66 66 2c 6f 66  |....  LDR off,of|
000029d0  66 73 65 74 0d 0b 0e 17  20 20 20 20 20 20 20 20  |fset....        |
000029e0  4c 44 52 20 52 31 31 2c  6d 61 6e 0d 0b 18 2e 20  |LDR R11,man.... |
000029f0  20 20 20 20 20 20 20 4c  44 52 20 78 2c 6d 61 6e  |       LDR x,man|
00002a00  78 3a 4c 44 52 20 79 2c  6d 61 6e 79 3a 4d 4f 56  |x:LDR y,many:MOV|
00002a10  20 74 65 6d 70 2c 23 31  39 0d 0b 22 1e 20 20 20  | temp,#19..".   |
00002a20  20 20 20 20 20 4d 4c 41  20 73 70 6e 75 6d 2c 79  |     MLA spnum,y|
00002a30  2c 74 65 6d 70 2c 78 0d  0b 2c 19 20 20 20 20 20  |,temp,x..,.     |
00002a40  20 20 20 4c 44 52 20 74  65 6d 70 2c 67 72 69 64  |   LDR temp,grid|
00002a50  0d 0b 36 30 20 20 20 20  20 20 20 20 41 44 44 20  |..60        ADD |
00002a60  74 65 6d 70 2c 74 65 6d  70 2c 73 70 6e 75 6d 3a  |temp,temp,spnum:|
00002a70  41 44 44 20 74 65 6d 70  2c 74 65 6d 70 2c 23 31  |ADD temp,temp,#1|
00002a80  0d 0b 40 35 20 20 20 20  20 20 20 20 4c 44 52 42  |..@5        LDRB|
00002a90  20 74 65 6d 70 32 2c 5b  74 65 6d 70 5d 3a 43 4d  | temp2,[temp]:CM|
00002aa0  50 20 74 65 6d 70 32 2c  23 33 3a 42 4e 45 20 6c  |P temp2,#3:BNE l|
00002ab0  65 66 74 6d 76 0d 0b 4a  53 20 20 20 20 20 20 20  |eftmv..JS       |
00002ac0  20 4c 44 52 20 52 30 2c  6d 61 6e 73 74 61 74 73  | LDR R0,manstats|
00002ad0  3a 4c 44 52 42 20 74 65  6d 70 33 2c 5b 52 30 2c  |:LDRB temp3,[R0,|
00002ae0  23 31 5d 3a 4c 44 52 42  20 52 30 2c 5b 52 30 5d  |#1]:LDRB R0,[R0]|
00002af0  3a 43 4d 50 20 74 65 6d  70 33 2c 52 30 3a 42 47  |:CMP temp3,R0:BG|
00002b00  45 20 6c 65 66 74 6d 76  0d 0b 54 44 20 20 20 20  |E leftmv..TD    |
00002b10  20 20 20 20 4c 44 52 20  52 30 2c 6d 61 6e 73 74  |    LDR R0,manst|
00002b20  61 74 73 3a 4c 44 52 42  20 74 65 6d 70 33 2c 5b  |ats:LDRB temp3,[|
00002b30  52 30 2c 23 33 5d 3a 54  53 54 20 74 65 6d 70 33  |R0,#3]:TST temp3|
00002b40  2c 23 31 3a 42 4e 45 20  64 72 6f 70 0d 0b 5e 17  |,#1:BNE drop..^.|
00002b50  20 20 20 20 20 20 20 20  4d 4f 56 20 52 30 2c 23  |        MOV R0,#|
00002b60  31 32 31 0d 0b 68 3d 20  20 20 20 20 20 20 20 43  |121..h=        C|
00002b70  4d 50 20 52 31 31 2c 23  31 3a ec 51 20 52 31 2c  |MP R11,#1:.Q R1,|
00002b80  23 28 38 33 20 82 20 26  38 30 29 3a 4d 4f 56 4e  |#(83 . &80):MOVN|
00002b90  45 20 52 31 2c 23 28 35  38 20 82 20 26 38 30 29  |E R1,#(58 . &80)|
00002ba0  0d 0b 72 19 20 20 20 20  20 20 20 20 53 57 49 20  |..r.        SWI |
00002bb0  22 4f 53 5f 42 79 74 65  22 0d 0b 7c 20 20 20 20  |"OS_Byte"..|    |
00002bc0  20 20 20 20 20 43 4d 50  20 52 31 2c 23 30 3a 42  |     CMP R1,#0:B|
00002bd0  45 51 20 6c 65 66 74 6d  76 0d 0b 86 54 2e 64 72  |EQ leftmv...T.dr|
00002be0  6f 70 20 20 20 4c 44 52  20 52 30 2c 6d 61 6e 73  |op   LDR R0,mans|
00002bf0  74 61 74 73 3a 4c 44 52  42 20 74 65 6d 70 33 2c  |tats:LDRB temp3,|
00002c00  5b 52 30 2c 23 31 5d 3a  41 44 44 20 74 65 6d 70  |[R0,#1]:ADD temp|
00002c10  33 2c 74 65 6d 70 33 2c  23 31 3a 53 54 52 42 20  |3,temp3,#1:STRB |
00002c20  74 65 6d 70 33 2c 5b 52  30 2c 23 31 5d 0d 0b 90  |temp3,[R0,#1]...|
00002c30  4e 20 20 20 20 20 20 20  20 4d 4f 56 20 74 65 6d  |N        MOV tem|
00002c40  70 32 2c 23 32 3a 53 54  52 42 20 74 65 6d 70 32  |p2,#2:STRB temp2|
00002c50  2c 5b 74 65 6d 70 5d 3a  4d 4f 56 20 74 65 6d 70  |,[temp]:MOV temp|
00002c60  32 2c 23 34 37 3a 53 54  52 42 20 74 65 6d 70 32  |2,#47:STRB temp2|
00002c70  2c 5b 74 65 6d 70 2c 23  2d 31 5d 0d 0b 9a 42 20  |,[temp,#-1]...B |
00002c80  20 20 20 20 20 20 20 4d  4f 56 20 74 65 6d 70 32  |       MOV temp2|
00002c90  2c 23 31 32 37 3a 53 54  52 42 20 74 65 6d 70 32  |,#127:STRB temp2|
00002ca0  2c 5b 74 65 6d 70 2c 23  31 5d 3a 53 54 52 42 20  |,[temp,#1]:STRB |
00002cb0  52 31 31 2c 5b 74 65 6d  70 2c 23 32 5d 0d 0b a4  |R11,[temp,#2]...|
00002cc0  2b 2e 6c 65 66 74 6d 76  20 4c 44 52 20 78 2c 6d  |+.leftmv LDR x,m|
00002cd0  61 6e 78 3a 43 4d 50 20  78 2c 23 30 3a 42 45 51  |anx:CMP x,#0:BEQ|
00002ce0  20 72 69 67 68 74 6d 76  0d 0b ae 3a 20 20 20 20  | rightmv...:    |
00002cf0  20 20 20 20 4c 44 52 42  20 74 65 6d 70 32 2c 5b  |    LDRB temp2,[|
00002d00  74 65 6d 70 2c 23 2d 34  5d 3a 43 4d 50 20 74 65  |temp,#-4]:CMP te|
00002d10  6d 70 32 2c 23 33 3a 42  4c 54 20 72 69 67 68 74  |mp2,#3:BLT right|
00002d20  6d 76 0d 0b b8 25 20 20  20 20 20 20 20 20 43 4d  |mv...%        CM|
00002d30  50 20 74 65 6d 70 32 2c  23 35 31 3a 42 47 45 20  |P temp2,#51:BGE |
00002d40  72 69 67 68 74 6d 76 0d  0b c2 17 20 20 20 20 20  |rightmv....     |
00002d50  20 20 20 4d 4f 56 20 52  30 2c 23 31 32 31 0d 0b  |   MOV R0,#121..|
00002d60  cc 3e 20 20 20 20 20 20  20 20 43 4d 50 20 52 31  |.>        CMP R1|
00002d70  31 2c 23 31 3a ec 51 20  52 31 2c 23 28 39 37 20  |1,#1:.Q R1,#(97 |
00002d80  82 20 26 38 30 29 3a 4d  4f 56 4e 45 20 52 31 2c  |. &80):MOVNE R1,|
00002d90  23 28 31 30 37 20 82 20  26 38 30 29 0d 0b d6 19  |#(107 . &80)....|
00002da0  20 20 20 20 20 20 20 20  53 57 49 20 22 4f 53 5f  |        SWI "OS_|
00002db0  42 79 74 65 22 0d 0b e0  21 20 20 20 20 20 20 20  |Byte"...!       |
00002dc0  20 43 4d 50 20 52 31 2c  23 30 3a 42 45 51 20 72  | CMP R1,#0:BEQ r|
00002dd0  69 67 68 74 6d 76 0d 0b  ea 2c 20 20 20 20 20 20  |ightmv...,      |
00002de0  20 20 4c 44 52 20 78 2c  6d 61 6e 78 3a 53 55 42  |  LDR x,manx:SUB|
00002df0  20 78 2c 78 2c 23 34 3a  53 54 52 20 78 2c 6d 61  | x,x,#4:STR x,ma|
00002e00  6e 78 0d 0b f4 25 20 20  20 20 20 20 20 20 4d 4f  |nx...%        MO|
00002e10  56 20 6f 66 66 2c 23 37  3a 53 54 52 20 6f 66 66  |V off,#7:STR off|
00002e20  2c 6f 66 66 73 65 74 0d  0b fe 26 20 20 20 20 20  |,offset...&     |
00002e30  20 20 20 4d 4f 56 20 64  69 72 65 63 2c 23 31 3a  |   MOV direc,#1:|
00002e40  53 54 52 20 64 69 72 65  63 2c 64 69 72 0d 0c 08  |STR direc,dir...|
00002e50  17 20 20 20 20 20 20 20  20 42 20 65 6e 64 75 70  |.        B endup|
00002e60  64 61 74 65 0d 0c 12 2c  2e 72 69 67 68 74 6d 76  |date...,.rightmv|
00002e70  20 4c 44 52 20 78 2c 6d  61 6e 78 3a 43 4d 50 20  | LDR x,manx:CMP |
00002e80  78 2c 23 31 38 2a 34 3a  42 45 51 20 75 70 6d 76  |x,#18*4:BEQ upmv|
00002e90  0d 0c 1c 36 20 20 20 20  20 20 20 20 4c 44 52 42  |...6        LDRB|
00002ea0  20 74 65 6d 70 32 2c 5b  74 65 6d 70 2c 23 34 5d  | temp2,[temp,#4]|
00002eb0  3a 43 4d 50 20 74 65 6d  70 32 2c 23 33 3a 42 4c  |:CMP temp2,#3:BL|
00002ec0  54 20 75 70 6d 76 0d 0c  26 22 20 20 20 20 20 20  |T upmv..&"      |
00002ed0  20 20 43 4d 50 20 74 65  6d 70 32 2c 23 35 31 3a  |  CMP temp2,#51:|
00002ee0  42 47 45 20 75 70 6d 76  0d 0c 30 17 20 20 20 20  |BGE upmv..0.    |
00002ef0  20 20 20 20 4d 4f 56 20  52 30 2c 23 31 32 31 0d  |    MOV R0,#121.|
00002f00  0c 3a 3e 20 20 20 20 20  20 20 20 43 4d 50 20 52  |.:>        CMP R|
00002f10  31 31 2c 23 31 3a ec 51  20 52 31 2c 23 28 36 36  |11,#1:.Q R1,#(66|
00002f20  20 82 20 26 38 30 29 3a  4d 4f 56 4e 45 20 52 31  | . &80):MOVNE R1|
00002f30  2c 23 28 31 32 34 20 82  20 26 38 30 29 0d 0c 44  |,#(124 . &80)..D|
00002f40  19 20 20 20 20 20 20 20  20 53 57 49 20 22 4f 53  |.        SWI "OS|
00002f50  5f 42 79 74 65 22 0d 0c  4e 1e 20 20 20 20 20 20  |_Byte"..N.      |
00002f60  20 20 43 4d 50 20 52 31  2c 23 30 3a 42 45 51 20  |  CMP R1,#0:BEQ |
00002f70  75 70 6d 76 0d 0c 58 25  20 20 20 20 20 20 20 20  |upmv..X%        |
00002f80  4d 4f 56 20 6f 66 66 2c  23 31 3a 53 54 52 20 6f  |MOV off,#1:STR o|
00002f90  66 66 2c 6f 66 66 73 65  74 0d 0c 62 26 20 20 20  |ff,offset..b&   |
00002fa0  20 20 20 20 20 4d 4f 56  20 64 69 72 65 63 2c 23  |     MOV direc,#|
00002fb0  30 3a 53 54 52 20 64 69  72 65 63 2c 64 69 72 0d  |0:STR direc,dir.|
00002fc0  0c 6c 17 20 20 20 20 20  20 20 20 42 20 65 6e 64  |.l.        B end|
00002fd0  75 70 64 61 74 65 0d 0c  76 2a 2e 75 70 6d 76 20  |update..v*.upmv |
00002fe0  20 20 4c 44 52 20 79 2c  6d 61 6e 79 3a 43 4d 50  |  LDR y,many:CMP|
00002ff0  20 79 2c 23 30 3a 42 45  51 20 64 6f 77 6e 6d 76  | y,#0:BEQ downmv|
00003000  0d 0c 80 3e 20 20 20 20  20 20 20 20 4c 44 52 42  |...>        LDRB|
00003010  20 74 65 6d 70 32 2c 5b  74 65 6d 70 2c 23 2d 28  | temp2,[temp,#-(|
00003020  31 39 2a 34 29 5d 3a 43  4d 50 20 74 65 6d 70 32  |19*4)]:CMP temp2|
00003030  2c 23 33 3a 42 4c 54 20  64 6f 77 6e 6d 76 0d 0c  |,#3:BLT downmv..|
00003040  8a 24 20 20 20 20 20 20  20 20 43 4d 50 20 74 65  |.$        CMP te|
00003050  6d 70 32 2c 23 35 31 3a  42 47 45 20 64 6f 77 6e  |mp2,#51:BGE down|
00003060  6d 76 0d 0c 94 17 20 20  20 20 20 20 20 20 4d 4f  |mv....        MO|
00003070  56 20 52 30 2c 23 31 32  31 0d 0c 9e 3d 20 20 20  |V R0,#121...=   |
00003080  20 20 20 20 20 43 4d 50  20 52 31 31 2c 23 31 3a  |     CMP R11,#1:|
00003090  ec 51 20 52 31 2c 23 28  36 37 20 82 20 26 38 30  |.Q R1,#(67 . &80|
000030a0  29 3a 4d 4f 56 4e 45 20  52 31 2c 23 28 32 36 20  |):MOVNE R1,#(26 |
000030b0  82 20 26 38 30 29 0d 0c  a8 19 20 20 20 20 20 20  |. &80)....      |
000030c0  20 20 53 57 49 20 22 4f  53 5f 42 79 74 65 22 0d  |  SWI "OS_Byte".|
000030d0  0c b2 20 20 20 20 20 20  20 20 20 43 4d 50 20 52  |..         CMP R|
000030e0  31 2c 23 30 3a 42 45 51  20 64 6f 77 6e 6d 76 0d  |1,#0:BEQ downmv.|
000030f0  0c bc 2c 20 20 20 20 20  20 20 20 4c 44 52 20 79  |..,        LDR y|
00003100  2c 6d 61 6e 79 3a 53 55  42 20 79 2c 79 2c 23 34  |,many:SUB y,y,#4|
00003110  3a 53 54 52 20 79 2c 6d  61 6e 79 0d 0c c6 25 20  |:STR y,many...% |
00003120  20 20 20 20 20 20 20 4d  4f 56 20 6f 66 66 2c 23  |       MOV off,#|
00003130  37 3a 53 54 52 20 6f 66  66 2c 6f 66 66 73 65 74  |7:STR off,offset|
00003140  0d 0c d0 26 20 20 20 20  20 20 20 20 4d 4f 56 20  |...&        MOV |
00003150  64 69 72 65 63 2c 23 32  3a 53 54 52 20 64 69 72  |direc,#2:STR dir|
00003160  65 63 2c 64 69 72 0d 0c  da 17 20 20 20 20 20 20  |ec,dir....      |
00003170  20 20 42 20 65 6e 64 75  70 64 61 74 65 0d 0c e4  |  B endupdate...|
00003180  30 2e 64 6f 77 6e 6d 76  20 4c 44 52 20 79 2c 6d  |0.downmv LDR y,m|
00003190  61 6e 79 3a 43 4d 50 20  79 2c 23 31 32 2a 34 3a  |any:CMP y,#12*4:|
000031a0  42 45 51 20 65 6e 64 75  70 64 61 74 65 0d 0c ee  |BEQ endupdate...|
000031b0  40 20 20 20 20 20 20 20  20 4c 44 52 42 20 74 65  |@        LDRB te|
000031c0  6d 70 32 2c 5b 74 65 6d  70 2c 23 28 31 39 2a 34  |mp2,[temp,#(19*4|
000031d0  29 5d 3a 43 4d 50 20 74  65 6d 70 32 2c 23 33 3a  |)]:CMP temp2,#3:|
000031e0  42 4c 54 20 65 6e 64 75  70 64 61 74 65 0d 0c f8  |BLT endupdate...|
000031f0  27 20 20 20 20 20 20 20  20 43 4d 50 20 74 65 6d  |'        CMP tem|
00003200  70 32 2c 23 35 31 3a 42  47 45 20 65 6e 64 75 70  |p2,#51:BGE endup|
00003210  64 61 74 65 0d 0d 02 17  20 20 20 20 20 20 20 20  |date....        |
00003220  4d 4f 56 20 52 30 2c 23  31 32 31 0d 0d 0c 3e 20  |MOV R0,#121...> |
00003230  20 20 20 20 20 20 20 43  4d 50 20 52 31 31 2c 23  |       CMP R11,#|
00003240  31 3a ec 51 20 52 31 2c  23 28 38 32 20 82 20 26  |1:.Q R1,#(82 . &|
00003250  38 30 29 3a 4d 4f 56 4e  45 20 52 31 2c 23 28 31  |80):MOVNE R1,#(1|
00003260  30 38 20 82 20 26 38 30  29 0d 0d 16 19 20 20 20  |08 . &80)....   |
00003270  20 20 20 20 20 53 57 49  20 22 4f 53 5f 42 79 74  |     SWI "OS_Byt|
00003280  65 22 0d 0d 20 23 20 20  20 20 20 20 20 20 43 4d  |e".. #        CM|
00003290  50 20 52 31 2c 23 30 3a  42 45 51 20 65 6e 64 75  |P R1,#0:BEQ endu|
000032a0  70 64 61 74 65 0d 0d 2a  25 20 20 20 20 20 20 20  |pdate..*%       |
000032b0  20 4d 4f 56 20 6f 66 66  2c 23 31 3a 53 54 52 20  | MOV off,#1:STR |
000032c0  6f 66 66 2c 6f 66 66 73  65 74 0d 0d 34 26 20 20  |off,offset..4&  |
000032d0  20 20 20 20 20 20 4d 4f  56 20 64 69 72 65 63 2c  |      MOV direc,|
000032e0  23 33 3a 53 54 52 20 64  69 72 65 63 2c 64 69 72  |#3:STR direc,dir|
000032f0  0d 0d 3e 17 20 20 20 20  20 20 20 20 42 20 65 6e  |..>.        B en|
00003300  64 75 70 64 61 74 65 0d  0d 48 05 3a 0d 0d 52 1a  |dupdate..H.:..R.|
00003310  2e 6d 61 6e 73 74 61 74  73 20 45 51 55 44 20 28  |.manstats EQUD (|
00003320  73 74 61 74 73 29 0d 0d  5c 24 2e 6d 61 6e 72 74  |stats)..\$.manrt|
00003330  6e 73 20 a4 72 65 73 65  72 76 65 28 32 2a 28 34  |ns .reserve(2*(4|
00003340  2a 34 2a 38 2b 37 2a 34  29 29 0d 0d 66 17 2e 6e  |*4*8+7*4))..f..n|
00003350  75 6c 6c 20 20 20 20 4d  4f 56 20 50 43 2c 52 31  |ull    MOV PC,R1|
00003360  34 0d 0d 70 1a 20 20 20  20 20 20 20 20 20 a4 67  |4..p.         .g|
00003370  72 69 64 73 63 61 6e 6e  69 6e 67 0d 0d 7a 05 5d  |ridscanning..z.]|
00003380  0d 0d 84 07 3d 22 22 0d  0d 8e 05 3a 0d 0d 98 13  |....=""....:....|
00003390  dd a4 62 6c 6f 6b 65 70  6c 6f 74 74 65 72 73 0d  |..blokeplotters.|
000033a0  0d a2 11 ea 20 58 2c 59  2c 43 2c 46 2c 6d 61 6e  |.... X,Y,C,F,man|
000033b0  0d 0d ac 1a 46 3d 8e 20  22 3c 4f 62 65 79 24 44  |....F=. "<Obey$D|
000033c0  69 72 3e 2e 42 4c 4f 4b  45 22 0d 0d b6 10 e3 20  |ir>.BLOKE"..... |
000033d0  6d 61 6e 3d 30 20 b8 20  35 30 0d 0d c0 0e 4d 52  |man=0 . 50....MR|
000033e0  28 6d 61 6e 29 3d 50 25  0d 0d ca 19 e3 20 59 3d  |(man)=P%..... Y=|
000033f0  30 20 b8 20 31 35 3a e3  20 58 3d 30 20 b8 20 31  |0 . 15:. X=0 . 1|
00003400  35 0d 0d d4 3f 43 3d 9a  23 46 3a e7 20 43 3c 3e  |5...?C=.#F:. C<>|
00003410  26 46 38 20 8c 20 5b 4f  50 54 20 70 61 73 73 3a  |&F8 . [OPT pass:|
00003420  4d 4f 56 20 74 65 6d 70  2c 23 43 3a 53 54 52 42  |MOV temp,#C:STRB|
00003430  20 74 65 6d 70 2c 5b 73  63 72 2c 23 58 5d 3a 5d  | temp,[scr,#X]:]|
00003440  0d 0d de 39 ed 3a 5b 4f  50 54 70 61 73 73 3a 41  |...9.:[OPTpass:A|
00003450  44 44 20 73 63 72 2c 73  63 72 2c 23 33 32 30 3a  |DD scr,scr,#320:|
00003460  5d 3a ed 3a 5b 4f 50 54  70 61 73 73 3a 4d 4f 56  |]:.:[OPTpass:MOV|
00003470  20 50 43 2c 52 31 34 3a  5d 0d 0d e8 05 ed 0d 0d  | PC,R14:].......|
00003480  f2 07 d9 23 46 0d 0d fc  07 3d 22 22 0d 0e 06 05  |...#F....=""....|
00003490  3a 0d 0e 10 12 dd a4 67  72 69 64 73 63 61 6e 6e  |:......gridscann|
000034a0  69 6e 67 0d 0e 1a 1b 74  65 6d 70 33 3d 39 3a 6f  |ing....temp3=9:o|
000034b0  6c 64 78 3d 31 30 3a 6f  6c 64 79 3d 31 31 0d 0e  |ldx=10:oldy=11..|
000034c0  24 0d 5b 4f 50 54 20 70  61 73 73 0d 0e 2e 24 2e  |$.[OPT pass...$.|
000034d0  73 63 61 6e 67 72 69 64  20 53 54 52 20 52 31 34  |scangrid STR R14|
000034e0  2c 62 61 63 6b 5f 66 72  6f 6d 5f 73 63 61 6e 0d  |,back_from_scan.|
000034f0  0e 38 19 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |.8.         MOV |
00003500  67 72 69 64 79 2c 23 30  0d 0e 42 19 2e 73 63 61  |gridy,#0..B..sca|
00003510  6e 79 20 20 20 4d 4f 56  20 67 72 69 64 78 2c 23  |ny   MOV gridx,#|
00003520  30 0d 0e 4c 34 2e 73 63  61 6e 78 20 20 20 4d 4f  |0..L4.scanx   MO|
00003530  56 20 74 65 6d 70 2c 23  31 39 3a 4d 4c 41 20 74  |V temp,#19:MLA t|
00003540  65 6d 70 32 2c 74 65 6d  70 2c 67 72 69 64 79 2c  |emp2,temp,gridy,|
00003550  67 72 69 64 78 0d 0e 56  2e 20 20 20 20 20 20 20  |gridx..V.       |
00003560  20 20 4c 44 52 20 74 65  6d 70 2c 67 72 69 64 3a  |  LDR temp,grid:|
00003570  41 44 44 20 74 65 6d 70  2c 74 65 6d 70 2c 74 65  |ADD temp,temp,te|
00003580  6d 70 32 0d 0e 60 21 20  20 20 20 20 20 20 20 20  |mp2..`!         |
00003590  4c 44 52 42 20 73 70 6e  75 6d 2c 5b 74 65 6d 70  |LDRB spnum,[temp|
000035a0  2c 23 31 5d 0d 0e 6a 28  20 20 20 20 20 20 20 20  |,#1]..j(        |
000035b0  20 43 4d 50 20 73 70 6e  75 6d 2c 23 31 3a 42 45  | CMP spnum,#1:BE|
000035c0  51 20 63 68 65 63 6b 62  6c 6f 63 6b 0d 0e 74 27  |Q checkblock..t'|
000035d0  20 20 20 20 20 20 20 20  20 43 4d 50 20 73 70 6e  |         CMP spn|
000035e0  75 6d 2c 23 32 3a 42 45  51 20 63 68 65 63 6b 62  |um,#2:BEQ checkb|
000035f0  6f 6d 62 0d 0e 7e 28 20  20 20 20 20 20 20 20 20  |omb..~(         |
00003600  43 4d 50 20 73 70 6e 75  6d 2c 23 34 3a 42 4c 54  |CMP spnum,#4:BLT|
00003610  20 72 65 73 75 6d 65 73  63 61 6e 0d 0e 88 28 20  | resumescan...( |
00003620  20 20 20 20 20 20 20 20  43 4d 50 20 73 70 6e 75  |        CMP spnu|
00003630  6d 2c 23 31 30 3a 42 4c  45 20 63 68 65 63 6b 65  |m,#10:BLE checke|
00003640  78 70 6c 0d 0e 92 1a 2e  72 65 73 75 6d 65 73 63  |xpl.....resumesc|
00003650  61 6e 20 41 44 44 20 78  2c 78 2c 23 34 0d 0e 9c  |an ADD x,x,#4...|
00003660  22 20 20 20 20 20 20 20  20 20 43 4d 50 20 78 2c  |"         CMP x,|
00003670  23 31 39 2a 34 3a 42 4c  54 20 73 63 61 6e 78 0d  |#19*4:BLT scanx.|
00003680  0e a6 17 20 20 20 20 20  20 20 20 20 41 44 44 20  |...         ADD |
00003690  79 2c 79 2c 23 34 0d 0e  b0 26 20 20 20 20 20 20  |y,y,#4...&      |
000036a0  20 20 20 43 4d 50 20 67  72 69 64 79 2c 23 31 33  |   CMP gridy,#13|
000036b0  2a 34 3a 42 4c 54 20 73  63 61 6e 79 0d 0e ba 22  |*4:BLT scany..."|
000036c0  20 20 20 20 20 20 20 20  20 4c 44 52 20 50 43 2c  |         LDR PC,|
000036d0  62 61 63 6b 5f 66 72 6f  6d 5f 73 63 61 6e 0d 0e  |back_from_scan..|
000036e0  c4 1a 2e 62 61 63 6b 5f  66 72 6f 6d 5f 73 63 61  |...back_from_sca|
000036f0  6e 20 45 51 55 44 20 30  0d 0e ce 05 3a 0d 0e d8  |n EQUD 0....:...|
00003700  14 2e 63 68 65 63 6b 6f  66 66 20 45 51 55 44 20  |..checkoff EQUD |
00003710  30 0d 0e e2 17 2e 62 6d  61 6e 31 20 20 45 51 55  |0.....bman1  EQU|
00003720  44 20 28 6d 61 6e 31 29  0d 0e ec 17 2e 62 6d 61  |D (man1).....bma|
00003730  6e 32 20 20 45 51 55 44  20 28 6d 61 6e 32 29 0d  |n2  EQUD (man2).|
00003740  0e f6 13 2e 65 78 70 73  69 7a 20 20 45 51 55 44  |....expsiz  EQUD|
00003750  20 30 0d 0f 00 23 2e 63  68 65 63 6b 62 6f 6d 62  | 0...#.checkbomb|
00003760  20 4c 44 52 42 20 74 65  6d 70 32 2c 5b 74 65 6d  | LDRB temp2,[tem|
00003770  70 2c 23 32 5d 0d 0f 0a  34 20 20 20 20 20 20 20  |p,#2]...4       |
00003780  20 20 53 55 42 20 74 65  6d 70 32 2c 74 65 6d 70  |  SUB temp2,temp|
00003790  32 2c 23 31 3a 53 54 52  42 20 74 65 6d 70 32 2c  |2,#1:STRB temp2,|
000037a0  5b 74 65 6d 70 2c 23 32  5d 0d 0f 14 26 20 20 20  |[temp,#2]...&   |
000037b0  20 20 20 20 20 20 43 4d  50 20 74 65 6d 70 32 2c  |      CMP temp2,|
000037c0  23 30 3a 42 45 51 20 62  6c 6f 77 62 6f 6d 62 0d  |#0:BEQ blowbomb.|
000037d0  0f 1e 3e 20 20 20 20 20  20 20 20 20 80 20 73 70  |..>         . sp|
000037e0  6e 75 6d 2c 74 65 6d 70  32 2c 23 25 31 31 31 31  |num,temp2,#%1111|
000037f0  3a 43 4d 50 20 73 70 6e  75 6d 2c 23 30 3a 42 4e  |:CMP spnum,#0:BN|
00003800  45 20 6e 6f 62 6f 6d 62  63 68 6e 67 65 0d 0f 28  |E nobombchnge..(|
00003810  58 20 20 20 20 20 20 20  20 20 4d 4f 56 20 73 70  |X         MOV sp|
00003820  6e 75 6d 2c 74 65 6d 70  32 2c 4c 53 52 23 34 3a  |num,temp2,LSR#4:|
00003830  41 44 44 20 73 70 6e 75  6d 2c 73 70 6e 75 6d 2c  |ADD spnum,spnum,|
00003840  23 34 30 2d 31 3a 53 54  52 42 20 73 70 6e 75 6d  |#40-1:STRB spnum|
00003850  2c 5b 74 65 6d 70 5d 3a  42 4c 20 70 6c 6f 74 73  |,[temp]:BL plots|
00003860  74 61 74 69 63 0d 0f 32  1d 2e 6e 6f 62 6f 6d 62  |tatic..2..nobomb|
00003870  63 68 6e 67 65 20 42 20  72 65 73 75 6d 65 73 63  |chnge B resumesc|
00003880  61 6e 0d 0f 3c 72 2e 62  6c 6f 77 62 6f 6d 62 20  |an..<r.blowbomb |
00003890  4d 4f 56 20 73 70 6e 75  6d 2c 23 32 30 3a 53 54  |MOV spnum,#20:ST|
000038a0  52 42 20 73 70 6e 75 6d  2c 5b 74 65 6d 70 2c 23  |RB spnum,[temp,#|
000038b0  32 5d 3a 4d 4f 56 20 73  70 6e 75 6d 2c 23 34 3a  |2]:MOV spnum,#4:|
000038c0  53 54 52 42 20 73 70 6e  75 6d 2c 5b 74 65 6d 70  |STRB spnum,[temp|
000038d0  2c 23 31 5d 3a 4d 4f 56  20 73 70 6e 75 6d 2c 23  |,#1]:MOV spnum,#|
000038e0  31 31 3a 53 54 52 42 20  73 70 6e 75 6d 2c 5b 74  |11:STRB spnum,[t|
000038f0  65 6d 70 5d 0d 0f 46 27  20 20 20 20 20 20 20 20  |emp]..F'        |
00003900  20 4d 4f 56 20 6f 66 66  2c 74 65 6d 70 3a 42 4c  | MOV off,temp:BL|
00003910  20 70 6c 6f 74 73 74 61  74 69 63 0d 0f 50 3b 20  | plotstatic..P; |
00003920  20 20 20 20 20 20 20 20  4d 4f 56 20 6f 6c 64 78  |        MOV oldx|
00003930  2c 67 72 69 64 78 3a 4d  4f 56 20 6f 6c 64 79 2c  |,gridx:MOV oldy,|
00003940  67 72 69 64 79 3a 4c 44  52 20 74 65 6d 70 32 2c  |gridy:LDR temp2,|
00003950  65 78 70 73 69 7a 0d 0f  5a 4c 20 20 20 20 20 20  |expsiz..ZL      |
00003960  20 20 20 4c 44 52 42 20  74 65 6d 70 32 2c 5b 74  |   LDRB temp2,[t|
00003970  65 6d 70 2c 23 33 5d 3a  43 4d 50 20 74 65 6d 70  |emp,#3]:CMP temp|
00003980  32 2c 23 31 3a 4c 44 52  45 51 20 52 30 2c 62 6d  |2,#1:LDREQ R0,bm|
00003990  61 6e 31 3a 4c 44 52 4e  45 20 52 30 2c 62 6d 61  |an1:LDRNE R0,bma|
000039a0  6e 32 0d 0f 64 48 20 20  20 20 20 20 20 20 20 41  |n2..dH         A|
000039b0  44 44 20 52 30 2c 52 30  2c 23 35 2a 34 3a 4c 44  |DD R0,R0,#5*4:LD|
000039c0  52 42 20 52 31 2c 5b 52  30 2c 23 31 5d 3a 53 55  |RB R1,[R0,#1]:SU|
000039d0  42 20 52 31 2c 52 31 2c  23 31 3a 53 54 52 42 20  |B R1,R1,#1:STRB |
000039e0  52 31 2c 5b 52 30 2c 23  31 5d 0d 0f 6e 2a 20 20  |R1,[R0,#1]..n*  |
000039f0  20 20 20 20 20 20 20 4c  44 52 42 20 52 31 2c 5b  |       LDRB R1,[|
00003a00  52 30 2c 23 32 5d 3a 53  54 52 20 52 31 2c 65 78  |R0,#2]:STR R1,ex|
00003a10  70 73 69 7a 0d 0f 78 84  20 20 20 20 20 20 20 20  |psiz..x.        |
00003a20  20 4d 4f 56 20 74 65 6d  70 2c 6f 66 66 3a 4d 4f  | MOV temp,off:MO|
00003a30  56 20 52 30 2c 23 31 3a  4d 56 4e 20 52 31 2c 23  |V R0,#1:MVN R1,#|
00003a40  31 34 3a 4d 4f 56 20 52  32 2c 23 34 30 39 36 3a  |14:MOV R2,#4096:|
00003a50  4d 4f 56 20 52 33 2c 23  30 3a 53 57 49 20 22 53  |MOV R3,#0:SWI "S|
00003a60  6f 75 6e 64 5f 43 6f 6e  74 72 6f 6c 22 3a 4d 4f  |ound_Control":MO|
00003a70  56 20 6f 66 66 2c 74 65  6d 70 3a 4d 4f 56 20 67  |V off,temp:MOV g|
00003a80  72 69 64 78 2c 6f 6c 64  78 3a 4d 4f 56 20 67 72  |ridx,oldx:MOV gr|
00003a90  69 64 79 2c 6f 6c 64 79  0d 0f 82 1f 20 20 20 20  |idy,oldy....    |
00003aa0  20 20 20 20 20 53 55 42  20 74 65 6d 70 2c 6f 66  |     SUB temp,of|
00003ab0  66 2c 23 31 39 2a 34 0d  0f 8c 1d 20 20 20 20 20  |f,#19*4....     |
00003ac0  20 20 20 20 53 54 52 20  6f 66 66 2c 63 68 65 63  |    STR off,chec|
00003ad0  6b 6f 66 66 0d 0f 96 1d  20 20 20 20 20 20 20 20  |koff....        |
00003ae0  20 4c 44 52 20 74 65 6d  70 32 2c 65 78 70 73 69  | LDR temp2,expsi|
00003af0  7a 0d 0f a0 21 2e 62 6c  61 73 74 55 20 20 4c 44  |z...!.blastU  LD|
00003b00  52 42 20 73 70 6e 75 6d  2c 5b 74 65 6d 70 2c 23  |RB spnum,[temp,#|
00003b10  31 5d 0d 0f aa 24 20 20  20 20 20 20 20 20 20 43  |1]...$         C|
00003b20  4d 50 20 67 72 69 64 79  2c 23 30 3a 42 45 51 20  |MP gridy,#0:BEQ |
00003b30  65 6e 64 42 6c 75 0d 0f  b4 41 20 20 20 20 20 20  |endBlu...A      |
00003b40  20 20 20 4d 4f 56 20 74  65 6d 70 33 2c 23 65 78  |   MOV temp3,#ex|
00003b50  64 65 6c 3a 43 4d 50 20  73 70 6e 75 6d 2c 23 32  |del:CMP spnum,#2|
00003b60  3a 53 54 52 45 51 42 20  74 65 6d 70 33 2c 5b 74  |:STREQB temp3,[t|
00003b70  65 6d 70 2c 23 32 5d 0d  0f be 3e 20 20 20 20 20  |emp,#2]...>     |
00003b80  20 20 20 20 43 4d 50 20  73 70 6e 75 6d 2c 23 31  |    CMP spnum,#1|
00003b90  3a 4d 4f 56 20 74 65 6d  70 33 2c 23 33 32 3a 53  |:MOV temp3,#32:S|
00003ba0  54 52 45 51 42 20 74 65  6d 70 33 2c 5b 74 65 6d  |TREQB temp3,[tem|
00003bb0  70 2c 23 32 5d 0d 0f c8  46 20 20 20 20 20 20 20  |p,#2]...F       |
00003bc0  20 20 43 4d 50 20 73 70  6e 75 6d 2c 23 34 38 3a  |  CMP spnum,#48:|
00003bd0  42 4c 54 20 6e 6f 74 6f  6b 65 6e 31 3a 4d 4f 56  |BLT notoken1:MOV|
00003be0  20 74 65 6d 70 33 2c 23  31 3a 53 54 52 42 20 74  | temp3,#1:STRB t|
00003bf0  65 6d 70 33 2c 5b 74 65  6d 70 5d 0d 0f d2 44 20  |emp3,[temp]...D |
00003c00  20 20 20 20 20 20 20 20  53 54 52 42 20 74 65 6d  |        STRB tem|
00003c10  70 33 2c 5b 74 65 6d 70  2c 23 31 5d 3a 4d 4f 56  |p3,[temp,#1]:MOV|
00003c20  20 74 65 6d 70 33 2c 23  33 32 3a 53 54 52 42 20  | temp3,#32:STRB |
00003c30  74 65 6d 70 33 2c 5b 74  65 6d 70 2c 23 32 5d 0d  |temp3,[temp,#2].|
00003c40  0f dc 0d 2e 6e 6f 74 6f  6b 65 6e 31 0d 0f e6 21  |....notoken1...!|
00003c50  20 20 20 20 20 20 20 20  20 43 4d 50 20 73 70 6e  |         CMP spn|
00003c60  75 6d 2c 23 33 3a 42 45  51 20 6f 6b 31 0d 0f f0  |um,#3:BEQ ok1...|
00003c70  25 20 20 20 20 20 20 20  20 20 43 4d 50 20 73 70  |%         CMP sp|
00003c80  6e 75 6d 2c 23 35 31 3a  42 4c 54 20 65 6e 64 42  |num,#51:BLT endB|
00003c90  6c 75 0d 0f fa 26 20 20  20 20 20 20 20 20 20 43  |lu...&         C|
00003ca0  4d 50 20 73 70 6e 75 6d  2c 23 35 32 3a 42 47 45  |MP spnum,#52:BGE|
00003cb0  20 6e 75 63 6c 65 61 72  0d 10 04 45 20 20 20 20  | nuclear...E    |
00003cc0  20 20 20 20 20 43 4d 50  20 73 70 6e 75 6d 2c 23  |     CMP spnum,#|
00003cd0  35 31 3a 42 4e 45 20 65  6e 64 42 6c 75 3a 4d 4f  |51:BNE endBlu:MO|
00003ce0  56 20 73 70 6e 75 6d 2c  23 35 32 3a 53 54 52 42  |V spnum,#52:STRB|
00003cf0  20 73 70 6e 75 6d 2c 5b  74 65 6d 70 5d 0d 10 0e  | spnum,[temp]...|
00003d00  3a 20 20 20 20 20 20 20  20 20 53 54 52 42 20 73  |:         STRB s|
00003d10  70 6e 75 6d 2c 5b 74 65  6d 70 2c 23 31 5d 3a 53  |pnum,[temp,#1]:S|
00003d20  55 42 20 79 2c 79 2c 23  34 3a 42 4c 20 70 6c 6f  |UB y,y,#4:BL plo|
00003d30  74 73 74 61 74 69 63 0d  10 18 15 20 20 20 20 20  |tstatic....     |
00003d40  20 20 20 20 42 20 65 6e  64 42 6c 75 0d 10 22 2f  |    B endBlu.."/|
00003d50  2e 6f 6b 31 20 20 20 20  20 4d 4f 56 20 73 70 6e  |.ok1     MOV spn|
00003d60  75 6d 2c 23 32 30 3a 53  54 52 42 20 73 70 6e 75  |um,#20:STRB spnu|
00003d70  6d 2c 5b 74 65 6d 70 2c  23 32 5d 0d 10 2c 34 20  |m,[temp,#2]..,4 |
00003d80  20 20 20 20 20 20 20 20  43 4d 50 20 74 65 6d 70  |        CMP temp|
00003d90  32 2c 23 31 3a ec 51 20  73 70 6e 75 6d 2c 23 39  |2,#1:.Q spnum,#9|
00003da0  3a 4d 4f 56 4e 45 20 73  70 6e 75 6d 2c 23 36 0d  |:MOVNE spnum,#6.|
00003db0  10 36 46 20 20 20 20 20  20 20 20 20 53 54 52 42  |.6F         STRB|
00003dc0  20 73 70 6e 75 6d 2c 5b  74 65 6d 70 2c 23 31 5d  | spnum,[temp,#1]|
00003dd0  3a 41 44 44 20 73 70 6e  75 6d 2c 73 70 6e 75 6d  |:ADD spnum,spnum|
00003de0  2c 23 37 3a 53 54 52 42  20 73 70 6e 75 6d 2c 5b  |,#7:STRB spnum,[|
00003df0  74 65 6d 70 5d 0d 10 40  2d 20 20 20 20 20 20 20  |temp]..@-       |
00003e00  20 20 53 55 42 20 67 72  69 64 79 2c 67 72 69 64  |  SUB gridy,grid|
00003e10  79 2c 23 34 3a 42 4c 20  70 6c 6f 74 73 74 61 74  |y,#4:BL plotstat|
00003e20  69 63 0d 10 4a 33 20 20  20 20 20 20 20 20 20 53  |ic..J3         S|
00003e30  55 42 20 74 65 6d 70 32  2c 74 65 6d 70 32 2c 23  |UB temp2,temp2,#|
00003e40  31 3a 53 55 42 20 74 65  6d 70 2c 74 65 6d 70 2c  |1:SUB temp,temp,|
00003e50  23 31 39 2a 34 0d 10 54  24 20 20 20 20 20 20 20  |#19*4..T$       |
00003e60  20 20 43 4d 50 20 74 65  6d 70 32 2c 23 30 3a 42  |  CMP temp2,#0:B|
00003e70  47 54 20 62 6c 61 73 74  55 0d 10 5e 2c 2e 65 6e  |GT blastU..^,.en|
00003e80  64 42 6c 75 20 20 4d 4f  56 20 67 72 69 64 79 2c  |dBlu  MOV gridy,|
00003e90  6f 6c 64 79 3a 4c 44 52  20 74 65 6d 70 32 2c 65  |oldy:LDR temp2,e|
00003ea0  78 70 73 69 7a 0d 10 68  1f 20 20 20 20 20 20 20  |xpsiz..h.       |
00003eb0  20 20 41 44 44 20 74 65  6d 70 2c 6f 66 66 2c 23  |  ADD temp,off,#|
00003ec0  31 39 2a 34 0d 10 72 21  2e 62 6c 61 73 74 44 20  |19*4..r!.blastD |
00003ed0  20 4c 44 52 42 20 73 70  6e 75 6d 2c 5b 74 65 6d  | LDRB spnum,[tem|
00003ee0  70 2c 23 31 5d 0d 10 7c  27 20 20 20 20 20 20 20  |p,#1]..|'       |
00003ef0  20 20 43 4d 50 20 67 72  69 64 79 2c 23 31 32 2a  |  CMP gridy,#12*|
00003f00  34 3a 42 45 51 20 65 6e  64 42 6c 64 0d 10 86 43  |4:BEQ endBld...C|
00003f10  20 20 20 20 20 20 20 20  20 4d 4f 56 20 74 65 6d  |         MOV tem|
00003f20  70 33 2c 23 65 78 64 65  6c 2b 31 3a 43 4d 50 20  |p3,#exdel+1:CMP |
00003f30  73 70 6e 75 6d 2c 23 32  3a 53 54 52 45 51 42 20  |spnum,#2:STREQB |
00003f40  74 65 6d 70 33 2c 5b 74  65 6d 70 2c 23 32 5d 0d  |temp3,[temp,#2].|
00003f50  10 90 3e 20 20 20 20 20  20 20 20 20 43 4d 50 20  |..>         CMP |
00003f60  73 70 6e 75 6d 2c 23 31  3a 4d 4f 56 20 74 65 6d  |spnum,#1:MOV tem|
00003f70  70 33 2c 23 33 32 3a 53  54 52 45 51 42 20 74 65  |p3,#32:STREQB te|
00003f80  6d 70 33 2c 5b 74 65 6d  70 2c 23 32 5d 0d 10 9a  |mp3,[temp,#2]...|
00003f90  46 20 20 20 20 20 20 20  20 20 43 4d 50 20 73 70  |F         CMP sp|
00003fa0  6e 75 6d 2c 23 34 38 3a  42 4c 54 20 6e 6f 74 6f  |num,#48:BLT noto|
00003fb0  6b 65 6e 32 3a 4d 4f 56  20 74 65 6d 70 33 2c 23  |ken2:MOV temp3,#|
00003fc0  31 3a 53 54 52 42 20 74  65 6d 70 33 2c 5b 74 65  |1:STRB temp3,[te|
00003fd0  6d 70 5d 0d 10 a4 44 20  20 20 20 20 20 20 20 20  |mp]...D         |
00003fe0  53 54 52 42 20 74 65 6d  70 33 2c 5b 74 65 6d 70  |STRB temp3,[temp|
00003ff0  2c 23 31 5d 3a 4d 4f 56  20 74 65 6d 70 33 2c 23  |,#1]:MOV temp3,#|
00004000  33 32 3a 53 54 52 42 20  74 65 6d 70 33 2c 5b 74  |32:STRB temp3,[t|
00004010  65 6d 70 2c 23 32 5d 0d  10 ae 0d 2e 6e 6f 74 6f  |emp,#2].....noto|
00004020  6b 65 6e 32 0d 10 b8 21  20 20 20 20 20 20 20 20  |ken2...!        |
00004030  20 43 4d 50 20 73 70 6e  75 6d 2c 23 33 3a 42 45  | CMP spnum,#3:BE|
00004040  51 20 6f 6b 32 0d 10 c2  25 20 20 20 20 20 20 20  |Q ok2...%       |
00004050  20 20 43 4d 50 20 73 70  6e 75 6d 2c 23 35 31 3a  |  CMP spnum,#51:|
00004060  42 4c 54 20 65 6e 64 42  6c 64 0d 10 cc 26 20 20  |BLT endBld...&  |
00004070  20 20 20 20 20 20 20 43  4d 50 20 73 70 6e 75 6d  |       CMP spnum|
00004080  2c 23 35 32 3a 42 47 45  20 6e 75 63 6c 65 61 72  |,#52:BGE nuclear|
00004090  0d 10 d6 45 20 20 20 20  20 20 20 20 20 43 4d 50  |...E         CMP|
000040a0  20 73 70 6e 75 6d 2c 23  35 31 3a 42 4e 45 20 65  | spnum,#51:BNE e|
000040b0  6e 64 42 6c 64 3a 4d 4f  56 20 73 70 6e 75 6d 2c  |ndBld:MOV spnum,|
000040c0  23 35 32 3a 53 54 52 42  20 73 70 6e 75 6d 2c 5b  |#52:STRB spnum,[|
000040d0  74 65 6d 70 5d 0d 10 e0  3a 20 20 20 20 20 20 20  |temp]...:       |
000040e0  20 20 53 54 52 42 20 73  70 6e 75 6d 2c 5b 74 65  |  STRB spnum,[te|
000040f0  6d 70 2c 23 31 5d 3a 41  44 44 20 79 2c 79 2c 23  |mp,#1]:ADD y,y,#|
00004100  34 3a 42 4c 20 70 6c 6f  74 73 74 61 74 69 63 0d  |4:BL plotstatic.|
00004110  10 ea 15 20 20 20 20 20  20 20 20 20 42 20 65 6e  |...         B en|
00004120  64 42 6c 64 0d 10 f4 08  2e 6f 6b 32 0d 10 fe 2f  |dBld.....ok2.../|
00004130  20 20 20 20 20 20 20 20  20 4d 4f 56 20 73 70 6e  |         MOV spn|
00004140  75 6d 2c 23 32 30 3a 53  54 52 42 20 73 70 6e 75  |um,#20:STRB spnu|
00004150  6d 2c 5b 74 65 6d 70 2c  23 32 5d 0d 11 08 35 20  |m,[temp,#2]...5 |
00004160  20 20 20 20 20 20 20 20  43 4d 50 20 74 65 6d 70  |        CMP temp|
00004170  32 2c 23 31 3a ec 51 20  73 70 6e 75 6d 2c 23 31  |2,#1:.Q spnum,#1|
00004180  30 3a 4d 4f 56 4e 45 20  73 70 6e 75 6d 2c 23 36  |0:MOVNE spnum,#6|
00004190  0d 11 12 46 20 20 20 20  20 20 20 20 20 53 54 52  |...F         STR|
000041a0  42 20 73 70 6e 75 6d 2c  5b 74 65 6d 70 2c 23 31  |B spnum,[temp,#1|
000041b0  5d 3a 41 44 44 20 73 70  6e 75 6d 2c 73 70 6e 75  |]:ADD spnum,spnu|
000041c0  6d 2c 23 37 3a 53 54 52  42 20 73 70 6e 75 6d 2c  |m,#7:STRB spnum,|
000041d0  5b 74 65 6d 70 5d 0d 11  1c 2d 20 20 20 20 20 20  |[temp]...-      |
000041e0  20 20 20 41 44 44 20 67  72 69 64 79 2c 67 72 69  |   ADD gridy,gri|
000041f0  64 79 2c 23 34 3a 42 4c  20 70 6c 6f 74 73 74 61  |dy,#4:BL plotsta|
00004200  74 69 63 0d 11 26 33 20  20 20 20 20 20 20 20 20  |tic..&3         |
00004210  53 55 42 20 74 65 6d 70  32 2c 74 65 6d 70 32 2c  |SUB temp2,temp2,|
00004220  23 31 3a 41 44 44 20 74  65 6d 70 2c 74 65 6d 70  |#1:ADD temp,temp|
00004230  2c 23 31 39 2a 34 0d 11  30 24 20 20 20 20 20 20  |,#19*4..0$      |
00004240  20 20 20 43 4d 50 20 74  65 6d 70 32 2c 23 30 3a  |   CMP temp2,#0:|
00004250  42 47 54 20 62 6c 61 73  74 44 0d 11 3a 2c 2e 65  |BGT blastD..:,.e|
00004260  6e 64 42 6c 64 20 20 4d  4f 56 20 67 72 69 64 79  |ndBld  MOV gridy|
00004270  2c 6f 6c 64 79 3a 4c 44  52 20 74 65 6d 70 32 2c  |,oldy:LDR temp2,|
00004280  65 78 70 73 69 7a 0d 11  44 1c 20 20 20 20 20 20  |expsiz..D.      |
00004290  20 20 20 41 44 44 20 74  65 6d 70 2c 6f 66 66 2c  |   ADD temp,off,|
000042a0  23 34 0d 11 4e 21 2e 62  6c 61 73 74 52 20 20 4c  |#4..N!.blastR  L|
000042b0  44 52 42 20 73 70 6e 75  6d 2c 5b 74 65 6d 70 2c  |DRB spnum,[temp,|
000042c0  23 31 5d 0d 11 58 27 20  20 20 20 20 20 20 20 20  |#1]..X'         |
000042d0  43 4d 50 20 67 72 69 64  78 2c 23 31 38 2a 34 3a  |CMP gridx,#18*4:|
000042e0  42 45 51 20 65 6e 64 42  6c 72 0d 11 62 43 20 20  |BEQ endBlr..bC  |
000042f0  20 20 20 20 20 20 20 4d  4f 56 20 74 65 6d 70 33  |       MOV temp3|
00004300  2c 23 65 78 64 65 6c 2b  31 3a 43 4d 50 20 73 70  |,#exdel+1:CMP sp|
00004310  6e 75 6d 2c 23 32 3a 53  54 52 45 51 42 20 74 65  |num,#2:STREQB te|
00004320  6d 70 33 2c 5b 74 65 6d  70 2c 23 32 5d 0d 11 6c  |mp3,[temp,#2]..l|
00004330  3e 20 20 20 20 20 20 20  20 20 43 4d 50 20 73 70  |>         CMP sp|
00004340  6e 75 6d 2c 23 31 3a 4d  4f 56 20 74 65 6d 70 33  |num,#1:MOV temp3|
00004350  2c 23 33 32 3a 53 54 52  45 51 42 20 74 65 6d 70  |,#32:STREQB temp|
00004360  33 2c 5b 74 65 6d 70 2c  23 32 5d 0d 11 76 46 20  |3,[temp,#2]..vF |
00004370  20 20 20 20 20 20 20 20  43 4d 50 20 73 70 6e 75  |        CMP spnu|
00004380  6d 2c 23 34 38 3a 42 4c  54 20 6e 6f 74 6f 6b 65  |m,#48:BLT notoke|
00004390  6e 33 3a 4d 4f 56 20 74  65 6d 70 33 2c 23 31 3a  |n3:MOV temp3,#1:|
000043a0  53 54 52 42 20 74 65 6d  70 33 2c 5b 74 65 6d 70  |STRB temp3,[temp|
000043b0  5d 0d 11 80 44 20 20 20  20 20 20 20 20 20 53 54  |]...D         ST|
000043c0  52 42 20 74 65 6d 70 33  2c 5b 74 65 6d 70 2c 23  |RB temp3,[temp,#|
000043d0  31 5d 3a 4d 4f 56 20 74  65 6d 70 33 2c 23 33 32  |1]:MOV temp3,#32|
000043e0  3a 53 54 52 42 20 74 65  6d 70 33 2c 5b 74 65 6d  |:STRB temp3,[tem|
000043f0  70 2c 23 32 5d 0d 11 8a  0d 2e 6e 6f 74 6f 6b 65  |p,#2].....notoke|
00004400  6e 33 0d 11 94 21 20 20  20 20 20 20 20 20 20 43  |n3...!         C|
00004410  4d 50 20 73 70 6e 75 6d  2c 23 33 3a 42 45 51 20  |MP spnum,#3:BEQ |
00004420  6f 6b 33 0d 11 9e 25 20  20 20 20 20 20 20 20 20  |ok3...%         |
00004430  43 4d 50 20 73 70 6e 75  6d 2c 23 35 31 3a 42 4c  |CMP spnum,#51:BL|
00004440  54 20 65 6e 64 42 6c 72  0d 11 a8 26 20 20 20 20  |T endBlr...&    |
00004450  20 20 20 20 20 43 4d 50  20 73 70 6e 75 6d 2c 23  |     CMP spnum,#|
00004460  35 32 3a 42 47 45 20 6e  75 63 6c 65 61 72 0d 11  |52:BGE nuclear..|
00004470  b2 45 20 20 20 20 20 20  20 20 20 43 4d 50 20 73  |.E         CMP s|
00004480  70 6e 75 6d 2c 23 35 31  3a 42 4e 45 20 65 6e 64  |pnum,#51:BNE end|
00004490  42 6c 72 3a 4d 4f 56 20  73 70 6e 75 6d 2c 23 35  |Blr:MOV spnum,#5|
000044a0  32 3a 53 54 52 42 20 73  70 6e 75 6d 2c 5b 74 65  |2:STRB spnum,[te|
000044b0  6d 70 5d 0d 11 bc 3a 20  20 20 20 20 20 20 20 20  |mp]...:         |
000044c0  53 54 52 42 20 73 70 6e  75 6d 2c 5b 74 65 6d 70  |STRB spnum,[temp|
000044d0  2c 23 31 5d 3a 41 44 44  20 78 2c 78 2c 23 34 3a  |,#1]:ADD x,x,#4:|
000044e0  42 4c 20 70 6c 6f 74 73  74 61 74 69 63 0d 11 c6  |BL plotstatic...|
000044f0  15 20 20 20 20 20 20 20  20 20 42 20 65 6e 64 42  |.         B endB|
00004500  6c 72 0d 11 d0 08 2e 6f  6b 33 0d 11 da 2f 20 20  |lr.....ok3.../  |
00004510  20 20 20 20 20 20 20 4d  4f 56 20 73 70 6e 75 6d  |       MOV spnum|
00004520  2c 23 32 30 3a 53 54 52  42 20 73 70 6e 75 6d 2c  |,#20:STRB spnum,|
00004530  5b 74 65 6d 70 2c 23 32  5d 0d 11 e4 34 20 20 20  |[temp,#2]...4   |
00004540  20 20 20 20 20 20 43 4d  50 20 74 65 6d 70 32 2c  |      CMP temp2,|
00004550  23 31 3a ec 51 20 73 70  6e 75 6d 2c 23 38 3a 4d  |#1:.Q spnum,#8:M|
00004560  4f 56 4e 45 20 73 70 6e  75 6d 2c 23 35 0d 11 ee  |OVNE spnum,#5...|
00004570  46 20 20 20 20 20 20 20  20 20 53 54 52 42 20 73  |F         STRB s|
00004580  70 6e 75 6d 2c 5b 74 65  6d 70 2c 23 31 5d 3a 41  |pnum,[temp,#1]:A|
00004590  44 44 20 73 70 6e 75 6d  2c 73 70 6e 75 6d 2c 23  |DD spnum,spnum,#|
000045a0  37 3a 53 54 52 42 20 73  70 6e 75 6d 2c 5b 74 65  |7:STRB spnum,[te|
000045b0  6d 70 5d 0d 11 f8 2d 20  20 20 20 20 20 20 20 20  |mp]...-         |
000045c0  41 44 44 20 67 72 69 64  78 2c 67 72 69 64 78 2c  |ADD gridx,gridx,|
000045d0  23 34 3a 42 4c 20 70 6c  6f 74 73 74 61 74 69 63  |#4:BL plotstatic|
000045e0  0d 12 02 30 20 20 20 20  20 20 20 20 20 53 55 42  |...0         SUB|
000045f0  20 74 65 6d 70 32 2c 74  65 6d 70 32 2c 23 31 3a  | temp2,temp2,#1:|
00004600  41 44 44 20 74 65 6d 70  2c 74 65 6d 70 2c 23 34  |ADD temp,temp,#4|
00004610  0d 12 0c 24 20 20 20 20  20 20 20 20 20 43 4d 50  |...$         CMP|
00004620  20 74 65 6d 70 32 2c 23  30 3a 42 47 54 20 62 6c  | temp2,#0:BGT bl|
00004630  61 73 74 52 0d 12 16 2c  2e 65 6e 64 42 6c 72 20  |astR...,.endBlr |
00004640  20 4d 4f 56 20 67 72 69  64 78 2c 6f 6c 64 78 3a  | MOV gridx,oldx:|
00004650  4c 44 52 20 74 65 6d 70  32 2c 65 78 70 73 69 7a  |LDR temp2,expsiz|
00004660  0d 12 20 1c 20 20 20 20  20 20 20 20 20 53 55 42  |.. .         SUB|
00004670  20 74 65 6d 70 2c 6f 66  66 2c 23 34 0d 12 2a 21  | temp,off,#4..*!|
00004680  2e 62 6c 61 73 74 4c 20  20 4c 44 52 42 20 73 70  |.blastL  LDRB sp|
00004690  6e 75 6d 2c 5b 74 65 6d  70 2c 23 31 5d 0d 12 34  |num,[temp,#1]..4|
000046a0  24 20 20 20 20 20 20 20  20 20 43 4d 50 20 67 72  |$         CMP gr|
000046b0  69 64 78 2c 23 30 3a 42  45 51 20 65 6e 64 42 6c  |idx,#0:BEQ endBl|
000046c0  6c 0d 12 3e 41 20 20 20  20 20 20 20 20 20 4d 4f  |l..>A         MO|
000046d0  56 20 74 65 6d 70 33 2c  23 65 78 64 65 6c 3a 43  |V temp3,#exdel:C|
000046e0  4d 50 20 73 70 6e 75 6d  2c 23 32 3a 53 54 52 45  |MP spnum,#2:STRE|
000046f0  51 42 20 74 65 6d 70 33  2c 5b 74 65 6d 70 2c 23  |QB temp3,[temp,#|
00004700  32 5d 0d 12 48 3e 20 20  20 20 20 20 20 20 20 43  |2]..H>         C|
00004710  4d 50 20 73 70 6e 75 6d  2c 23 31 3a 4d 4f 56 20  |MP spnum,#1:MOV |
00004720  74 65 6d 70 33 2c 23 33  32 3a 53 54 52 45 51 42  |temp3,#32:STREQB|
00004730  20 74 65 6d 70 33 2c 5b  74 65 6d 70 2c 23 32 5d  | temp3,[temp,#2]|
00004740  0d 12 52 46 20 20 20 20  20 20 20 20 20 43 4d 50  |..RF         CMP|
00004750  20 73 70 6e 75 6d 2c 23  34 38 3a 42 4c 54 20 6e  | spnum,#48:BLT n|
00004760  6f 74 6f 6b 65 6e 34 3a  4d 4f 56 20 74 65 6d 70  |otoken4:MOV temp|
00004770  33 2c 23 31 3a 53 54 52  42 20 74 65 6d 70 33 2c  |3,#1:STRB temp3,|
00004780  5b 74 65 6d 70 5d 0d 12  5c 44 20 20 20 20 20 20  |[temp]..\D      |
00004790  20 20 20 53 54 52 42 20  74 65 6d 70 33 2c 5b 74  |   STRB temp3,[t|
000047a0  65 6d 70 2c 23 31 5d 3a  4d 4f 56 20 74 65 6d 70  |emp,#1]:MOV temp|
000047b0  33 2c 23 33 32 3a 53 54  52 42 20 74 65 6d 70 33  |3,#32:STRB temp3|
000047c0  2c 5b 74 65 6d 70 2c 23  32 5d 0d 12 66 0d 2e 6e  |,[temp,#2]..f..n|
000047d0  6f 74 6f 6b 65 6e 34 0d  12 70 21 20 20 20 20 20  |otoken4..p!     |
000047e0  20 20 20 20 43 4d 50 20  73 70 6e 75 6d 2c 23 33  |    CMP spnum,#3|
000047f0  3a 42 45 51 20 6f 6b 34  0d 12 7a 25 20 20 20 20  |:BEQ ok4..z%    |
00004800  20 20 20 20 20 43 4d 50  20 73 70 6e 75 6d 2c 23  |     CMP spnum,#|
00004810  35 31 3a 42 4c 54 20 65  6e 64 42 6c 6c 0d 12 84  |51:BLT endBll...|
00004820  26 20 20 20 20 20 20 20  20 20 43 4d 50 20 73 70  |&         CMP sp|
00004830  6e 75 6d 2c 23 35 32 3a  42 47 45 20 6e 75 63 6c  |num,#52:BGE nucl|
00004840  65 61 72 0d 12 8e 45 20  20 20 20 20 20 20 20 20  |ear...E         |
00004850  43 4d 50 20 73 70 6e 75  6d 2c 23 35 31 3a 42 4e  |CMP spnum,#51:BN|
00004860  45 20 65 6e 64 42 6c 6c  3a 4d 4f 56 20 73 70 6e  |E endBll:MOV spn|
00004870  75 6d 2c 23 35 32 3a 53  54 52 42 20 73 70 6e 75  |um,#52:STRB spnu|
00004880  6d 2c 5b 74 65 6d 70 5d  0d 12 98 3a 20 20 20 20  |m,[temp]...:    |
00004890  20 20 20 20 20 53 54 52  42 20 73 70 6e 75 6d 2c  |     STRB spnum,|
000048a0  5b 74 65 6d 70 2c 23 31  5d 3a 53 55 42 20 78 2c  |[temp,#1]:SUB x,|
000048b0  78 2c 23 34 3a 42 4c 20  70 6c 6f 74 73 74 61 74  |x,#4:BL plotstat|
000048c0  69 63 0d 12 a2 15 20 20  20 20 20 20 20 20 20 42  |ic....         B|
000048d0  20 65 6e 64 42 6c 6c 0d  12 ac 08 2e 6f 6b 34 0d  | endBll.....ok4.|
000048e0  12 b6 2f 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |../         MOV |
000048f0  73 70 6e 75 6d 2c 23 32  30 3a 53 54 52 42 20 73  |spnum,#20:STRB s|
00004900  70 6e 75 6d 2c 5b 74 65  6d 70 2c 23 32 5d 0d 12  |pnum,[temp,#2]..|
00004910  c0 34 20 20 20 20 20 20  20 20 20 43 4d 50 20 74  |.4         CMP t|
00004920  65 6d 70 32 2c 23 31 3a  ec 51 20 73 70 6e 75 6d  |emp2,#1:.Q spnum|
00004930  2c 23 37 3a 4d 4f 56 4e  45 20 73 70 6e 75 6d 2c  |,#7:MOVNE spnum,|
00004940  23 35 0d 12 ca 46 20 20  20 20 20 20 20 20 20 53  |#5...F         S|
00004950  54 52 42 20 73 70 6e 75  6d 2c 5b 74 65 6d 70 2c  |TRB spnum,[temp,|
00004960  23 31 5d 3a 41 44 44 20  73 70 6e 75 6d 2c 73 70  |#1]:ADD spnum,sp|
00004970  6e 75 6d 2c 23 37 3a 53  54 52 42 20 73 70 6e 75  |num,#7:STRB spnu|
00004980  6d 2c 5b 74 65 6d 70 5d  0d 12 d4 2d 20 20 20 20  |m,[temp]...-    |
00004990  20 20 20 20 20 53 55 42  20 67 72 69 64 78 2c 67  |     SUB gridx,g|
000049a0  72 69 64 78 2c 23 34 3a  42 4c 20 70 6c 6f 74 73  |ridx,#4:BL plots|
000049b0  74 61 74 69 63 0d 12 de  30 20 20 20 20 20 20 20  |tatic...0       |
000049c0  20 20 53 55 42 20 74 65  6d 70 32 2c 74 65 6d 70  |  SUB temp2,temp|
000049d0  32 2c 23 31 3a 53 55 42  20 74 65 6d 70 2c 74 65  |2,#1:SUB temp,te|
000049e0  6d 70 2c 23 34 0d 12 e8  24 20 20 20 20 20 20 20  |mp,#4...$       |
000049f0  20 20 43 4d 50 20 74 65  6d 70 32 2c 23 30 3a 42  |  CMP temp2,#0:B|
00004a00  47 54 20 62 6c 61 73 74  4c 0d 12 f2 2f 2e 65 6e  |GT blastL.../.en|
00004a10  64 42 6c 6c 20 20 4d 4f  56 20 78 2c 6f 6c 64 78  |dBll  MOV x,oldx|
00004a20  3a 4d 4f 56 20 79 2c 6f  6c 64 79 3a 42 20 72 65  |:MOV y,oldy:B re|
00004a30  73 75 6d 65 73 63 61 6e  0d 12 fc 05 3a 0d 13 06  |sumescan....:...|
00004a40  15 2e 64 65 74 6f 6e 61  74 65 64 20 45 51 55 44  |..detonated EQUD|
00004a50  20 30 0d 13 10 19 2e 73  61 66 65 6e 20 20 a4 72  | 0.....safen  .r|
00004a60  65 73 65 72 76 65 28 33  2a 34 29 0d 13 1a 33 2e  |eserve(3*4)...3.|
00004a70  6e 75 63 6c 65 61 72 20  41 44 52 20 74 65 6d 70  |nuclear ADR temp|
00004a80  32 2c 73 61 66 65 6e 3a  53 54 4d 49 41 20 74 65  |2,safen:STMIA te|
00004a90  6d 70 32 2c 7b 78 2c 79  2c 74 65 6d 70 7d 0d 13  |mp2,{x,y,temp}..|
00004aa0  24 4b 20 20 20 20 20 20  20 20 20 4d 4f 56 20 52  |$K         MOV R|
00004ab0  30 2c 23 31 3a 4d 56 4e  20 52 31 2c 23 31 34 3a  |0,#1:MVN R1,#14:|
00004ac0  4d 4f 56 20 52 32 2c 23  32 35 36 3a 4d 4f 56 20  |MOV R2,#256:MOV |
00004ad0  52 33 2c 23 30 3a 53 57  49 20 22 53 6f 75 6e 64  |R3,#0:SWI "Sound|
00004ae0  5f 43 6f 6e 74 72 6f 6c  22 0d 13 2e 2b 20 20 20  |_Control"...+   |
00004af0  20 20 20 20 20 20 4d 4f  56 20 74 65 6d 70 2c 23  |      MOV temp,#|
00004b00  31 3a 53 54 52 20 74 65  6d 70 2c 64 65 74 6f 6e  |1:STR temp,deton|
00004b10  61 74 65 64 0d 13 30 46  20 20 20 20 20 20 20 20  |ated..0F        |
00004b20  20 4c 44 52 20 74 65 6d  70 2c 6d 61 6e 31 3a 43  | LDR temp,man1:C|
00004b30  4d 50 20 74 65 6d 70 2c  23 32 35 35 3a 4d 4f 56  |MP temp,#255:MOV|
00004b40  20 74 65 6d 70 2c 23 32  35 35 3a 53 54 52 47 54  | temp,#255:STRGT|
00004b50  20 74 65 6d 70 2c 6d 61  6e 31 0d 13 32 46 20 20  | temp,man1..2F  |
00004b60  20 20 20 20 20 20 20 4c  44 52 20 74 65 6d 70 2c  |       LDR temp,|
00004b70  6d 61 6e 32 3a 43 4d 50  20 74 65 6d 70 2c 23 32  |man2:CMP temp,#2|
00004b80  35 35 3a 4d 4f 56 20 74  65 6d 70 2c 23 32 35 35  |55:MOV temp,#255|
00004b90  3a 53 54 52 47 54 20 74  65 6d 70 2c 6d 61 6e 32  |:STRGT temp,man2|
00004ba0  0d 13 38 24 20 20 20 20  20 20 20 20 20 4d 4f 56  |..8$         MOV|
00004bb0  20 79 2c 23 30 3a 4c 44  52 20 74 65 6d 70 2c 72  | y,#0:LDR temp,r|
00004bc0  67 72 69 64 0d 13 42 15  2e 6e 75 63 6c 79 6c 70  |grid..B..nuclylp|
00004bd0  20 4d 4f 56 20 78 2c 23  30 0d 13 4c 3b 2e 6e 75  | MOV x,#0..L;.nu|
00004be0  63 6c 78 6c 70 20 4c 44  52 42 20 73 70 6e 75 6d  |clxlp LDRB spnum|
00004bf0  2c 5b 74 65 6d 70 2c 23  31 5d 3a 43 4d 50 20 73  |,[temp,#1]:CMP s|
00004c00  70 6e 75 6d 2c 23 30 3a  42 45 51 20 6e 65 78 74  |pnum,#0:BEQ next|
00004c10  6e 75 63 6c 0d 13 56 48  20 20 20 20 20 20 20 20  |nucl..VH        |
00004c20  20 43 4d 50 20 73 70 6e  75 6d 2c 23 32 3a 42 4c  | CMP spnum,#2:BL|
00004c30  54 20 73 6d 6c 6c 65 78  70 3a 43 4d 50 20 73 70  |T smllexp:CMP sp|
00004c40  6e 75 6d 2c 23 34 38 3a  42 4c 54 20 61 64 64 66  |num,#48:BLT addf|
00004c50  69 72 65 3a 2e 73 6d 6c  6c 65 78 70 0d 13 60 2e  |ire:.smllexp..`.|
00004c60  20 20 20 20 20 20 20 20  20 4d 4f 56 20 73 70 6e  |         MOV spn|
00004c70  75 6d 2c 23 31 3a 53 54  52 42 20 73 70 6e 75 6d  |um,#1:STRB spnum|
00004c80  2c 5b 74 65 6d 70 2c 23  31 5d 0d 13 6a 4c 20 20  |,[temp,#1]..jL  |
00004c90  20 20 20 20 20 20 20 53  54 52 42 20 73 70 6e 75  |       STRB spnu|
00004ca0  6d 2c 5b 74 65 6d 70 5d  3a 4d 4f 56 20 73 70 6e  |m,[temp]:MOV spn|
00004cb0  75 6d 2c 23 33 32 3a 53  54 52 42 20 73 70 6e 75  |um,#32:STRB spnu|
00004cc0  6d 2c 5b 74 65 6d 70 2c  23 32 5d 3a 42 20 6e 65  |m,[temp,#2]:B ne|
00004cd0  78 74 6e 75 63 6c 0d 13  74 3c 2e 61 64 64 66 69  |xtnucl..t<.addfi|
00004ce0  72 65 20 4d 4f 56 20 73  70 6e 75 6d 2c 23 32 30  |re MOV spnum,#20|
00004cf0  3a 53 54 52 42 20 73 70  6e 75 6d 2c 5b 74 65 6d  |:STRB spnum,[tem|
00004d00  70 2c 23 32 5d 3a 4d 4f  56 20 73 70 6e 75 6d 2c  |p,#2]:MOV spnum,|
00004d10  23 34 0d 13 7e 3c 20 20  20 20 20 20 20 20 20 54  |#4..~<         T|
00004d20  53 54 20 78 2c 23 31 3a  4d 4f 56 4e 45 20 73 70  |ST x,#1:MOVNE sp|
00004d30  6e 75 6d 2c 23 35 3a 54  53 54 20 79 2c 23 31 3a  |num,#5:TST y,#1:|
00004d40  4d 4f 56 4e 45 20 73 70  6e 75 6d 2c 23 36 0d 13  |MOVNE spnum,#6..|
00004d50  88 46 20 20 20 20 20 20  20 20 20 53 54 52 42 20  |.F         STRB |
00004d60  73 70 6e 75 6d 2c 5b 74  65 6d 70 2c 23 31 5d 3a  |spnum,[temp,#1]:|
00004d70  41 44 44 20 73 70 6e 75  6d 2c 73 70 6e 75 6d 2c  |ADD spnum,spnum,|
00004d80  23 37 3a 53 54 52 42 20  73 70 6e 75 6d 2c 5b 74  |#7:STRB spnum,[t|
00004d90  65 6d 70 5d 0d 13 92 3f  2e 6e 65 78 74 6e 75 63  |emp]...?.nextnuc|
00004da0  6c 20 41 44 44 20 78 2c  78 2c 23 31 3a 41 44 44  |l ADD x,x,#1:ADD|
00004db0  20 74 65 6d 70 2c 74 65  6d 70 2c 23 34 3a 43 4d  | temp,temp,#4:CM|
00004dc0  50 20 78 2c 23 31 39 3a  42 4c 54 20 6e 75 63 6c  |P x,#19:BLT nucl|
00004dd0  78 6c 70 0d 13 9c 2d 20  20 20 20 20 20 20 20 20  |xlp...-         |
00004de0  41 44 44 20 79 2c 79 2c  23 31 3a 43 4d 50 20 79  |ADD y,y,#1:CMP y|
00004df0  2c 23 31 33 3a 42 4c 54  20 6e 75 63 6c 79 6c 70  |,#13:BLT nuclylp|
00004e00  0d 13 a6 23 20 20 20 20  20 20 20 20 20 4c 44 4d  |...#         LDM|
00004e10  49 41 20 74 65 6d 70 32  2c 7b 78 2c 79 2c 74 65  |IA temp2,{x,y,te|
00004e20  6d 70 7d 0d 13 b0 15 20  20 20 20 20 20 20 20 20  |mp}....         |
00004e30  42 20 65 6e 64 42 6c 6c  0d 13 ba 05 3a 0d 13 c4  |B endBll....:...|
00004e40  3d 2e 63 68 65 63 6b 65  78 70 6c 20 4c 44 52 42  |=.checkexpl LDRB|
00004e50  20 74 65 6d 70 32 2c 5b  74 65 6d 70 2c 23 32 5d  | temp2,[temp,#2]|
00004e60  3a 43 4d 50 20 74 65 6d  70 32 2c 23 31 37 3a 42  |:CMP temp2,#17:B|
00004e70  4e 45 20 6e 65 78 74 65  78 31 0d 13 ce 4b 20 20  |NE nextex1...K  |
00004e80  20 20 20 20 20 20 20 20  20 41 44 44 20 73 70 6e  |         ADD spn|
00004e90  75 6d 2c 73 70 6e 75 6d  2c 23 32 31 3a 53 54 52  |um,spnum,#21:STR|
00004ea0  42 20 73 70 6e 75 6d 2c  5b 74 65 6d 70 5d 3a 42  |B spnum,[temp]:B|
00004eb0  4c 20 70 6c 6f 74 73 74  61 74 69 63 3a 42 20 65  |L plotstatic:B e|
00004ec0  6e 64 65 78 70 0d 13 d8  28 2e 6e 65 78 74 65 78  |ndexp...(.nextex|
00004ed0  31 20 20 20 43 4d 50 20  74 65 6d 70 32 2c 23 31  |1   CMP temp2,#1|
00004ee0  34 3a 42 4e 45 20 6e 65  78 74 65 78 32 0d 13 e2  |4:BNE nextex2...|
00004ef0  37 20 20 20 20 20 20 20  20 20 20 20 53 54 52 42  |7           STRB|
00004f00  20 73 70 6e 75 6d 2c 5b  74 65 6d 70 5d 3a 42 4c  | spnum,[temp]:BL|
00004f10  20 70 6c 6f 74 73 74 61  74 69 63 3a 42 20 65 6e  | plotstatic:B en|
00004f20  64 65 78 70 0d 13 ec 28  2e 6e 65 78 74 65 78 32  |dexp...(.nextex2|
00004f30  20 20 20 43 4d 50 20 74  65 6d 70 32 2c 23 31 30  |   CMP temp2,#10|
00004f40  3a 42 4e 45 20 6e 65 78  74 65 78 33 0d 13 f6 4b  |:BNE nextex3...K|
00004f50  20 20 20 20 20 20 20 20  20 20 20 41 44 44 20 73  |           ADD s|
00004f60  70 6e 75 6d 2c 73 70 6e  75 6d 2c 23 32 31 3a 53  |pnum,spnum,#21:S|
00004f70  54 52 42 20 73 70 6e 75  6d 2c 5b 74 65 6d 70 5d  |TRB spnum,[temp]|
00004f80  3a 42 4c 20 70 6c 6f 74  73 74 61 74 69 63 3a 42  |:BL plotstatic:B|
00004f90  20 65 6e 64 65 78 70 0d  14 00 27 2e 6e 65 78 74  | endexp...'.next|
00004fa0  65 78 33 20 20 20 43 4d  50 20 74 65 6d 70 32 2c  |ex3   CMP temp2,|
00004fb0  23 37 3a 42 4e 45 20 6e  65 78 74 65 78 34 0d 14  |#7:BNE nextex4..|
00004fc0  0a 4a 20 20 20 20 20 20  20 20 20 20 20 41 44 44  |.J           ADD|
00004fd0  20 73 70 6e 75 6d 2c 73  70 6e 75 6d 2c 23 37 3a  | spnum,spnum,#7:|
00004fe0  53 54 52 42 20 73 70 6e  75 6d 2c 5b 74 65 6d 70  |STRB spnum,[temp|
00004ff0  5d 3a 42 4c 20 70 6c 6f  74 73 74 61 74 69 63 3a  |]:BL plotstatic:|
00005000  42 20 65 6e 64 65 78 70  0d 14 14 27 2e 6e 65 78  |B endexp...'.nex|
00005010  74 65 78 34 20 20 20 43  4d 50 20 74 65 6d 70 32  |tex4   CMP temp2|
00005020  2c 23 33 3a 42 4e 45 20  6e 65 78 74 65 78 35 0d  |,#3:BNE nextex5.|
00005030  14 1e 4b 20 20 20 20 20  20 20 20 20 20 20 41 44  |..K           AD|
00005040  44 20 73 70 6e 75 6d 2c  73 70 6e 75 6d 2c 23 31  |D spnum,spnum,#1|
00005050  34 3a 53 54 52 42 20 73  70 6e 75 6d 2c 5b 74 65  |4:STRB spnum,[te|
00005060  6d 70 5d 3a 42 4c 20 70  6c 6f 74 73 74 61 74 69  |mp]:BL plotstati|
00005070  63 3a 42 20 65 6e 64 65  78 70 0d 14 28 26 2e 6e  |c:B endexp..(&.n|
00005080  65 78 74 65 78 35 20 20  20 43 4d 50 20 74 65 6d  |extex5   CMP tem|
00005090  70 32 2c 23 30 3a 42 4e  45 20 65 6e 64 65 78 70  |p2,#0:BNE endexp|
000050a0  0d 14 32 42 20 20 20 20  20 20 20 20 20 20 20 4d  |..2B           M|
000050b0  4f 56 20 73 70 6e 75 6d  2c 23 33 3a 53 54 52 42  |OV spnum,#3:STRB|
000050c0  20 73 70 6e 75 6d 2c 5b  74 65 6d 70 5d 3a 53 54  | spnum,[temp]:ST|
000050d0  52 42 20 73 70 6e 75 6d  2c 5b 74 65 6d 70 2c 23  |RB spnum,[temp,#|
000050e0  31 5d 0d 14 3c 29 20 20  20 20 20 20 20 20 20 20  |1]..<)          |
000050f0  20 42 4c 20 70 6c 6f 74  73 74 61 74 69 63 3a 42  | BL plotstatic:B|
00005100  20 72 65 73 75 6d 65 73  63 61 6e 0d 14 46 36 2e  | resumescan..F6.|
00005110  65 6e 64 65 78 70 20 20  20 20 53 55 42 20 74 65  |endexp    SUB te|
00005120  6d 70 32 2c 74 65 6d 70  32 2c 23 31 3a 53 54 52  |mp2,temp2,#1:STR|
00005130  42 20 74 65 6d 70 32 2c  5b 74 65 6d 70 2c 23 32  |B temp2,[temp,#2|
00005140  5d 0d 14 50 1b 20 20 20  20 20 20 20 20 20 20 20  |]..P.           |
00005150  42 20 72 65 73 75 6d 65  73 63 61 6e 0d 14 5a 05  |B resumescan..Z.|
00005160  3a 0d 14 64 40 2e 63 68  65 63 6b 62 6c 6f 63 6b  |:..d@.checkblock|
00005170  20 4c 44 52 42 20 74 65  6d 70 32 2c 5b 74 65 6d  | LDRB temp2,[tem|
00005180  70 2c 23 32 5d 3a 43 4d  50 20 74 65 6d 70 32 2c  |p,#2]:CMP temp2,|
00005190  23 30 3a 42 45 51 20 72  65 73 75 6d 65 73 63 61  |#0:BEQ resumesca|
000051a0  6e 0d 14 6e 3e 20 20 20  20 20 20 20 20 20 20 20  |n..n>           |
000051b0  4c 44 52 42 20 74 65 6d  70 32 2c 5b 74 65 6d 70  |LDRB temp2,[temp|
000051c0  2c 23 33 5d 3a 43 4d 50  20 74 65 6d 70 32 2c 23  |,#3]:CMP temp2,#|
000051d0  30 3a 42 45 51 20 6e 65  78 74 73 70 72 74 65 0d  |0:BEQ nextsprte.|
000051e0  14 78 43 20 20 20 20 20  20 20 20 20 20 20 53 55  |.xC           SU|
000051f0  42 20 74 65 6d 70 32 2c  74 65 6d 70 32 2c 23 31  |B temp2,temp2,#1|
00005200  3a 53 54 52 42 20 74 65  6d 70 32 2c 5b 74 65 6d  |:STRB temp2,[tem|
00005210  70 2c 23 33 5d 3a 42 20  72 65 73 75 6d 65 73 63  |p,#3]:B resumesc|
00005220  61 6e 0d 14 82 45 2e 6e  65 78 74 73 70 72 74 65  |an...E.nextsprte|
00005230  20 4c 44 52 42 20 73 70  6e 75 6d 2c 5b 74 65 6d  | LDRB spnum,[tem|
00005240  70 2c 23 32 5d 3a 53 54  52 42 20 73 70 6e 75 6d  |p,#2]:STRB spnum|
00005250  2c 5b 74 65 6d 70 5d 3a  4d 4f 56 20 74 65 6d 70  |,[temp]:MOV temp|
00005260  32 2c 73 70 6e 75 6d 0d  14 8c 45 20 20 20 20 20  |2,spnum...E     |
00005270  20 20 20 20 20 20 43 4d  50 20 73 70 6e 75 6d 2c  |      CMP spnum,|
00005280  23 33 3a 53 54 52 45 51  42 20 73 70 6e 75 6d 2c  |#3:STREQB spnum,|
00005290  5b 74 65 6d 70 2c 23 31  5d 3a 41 44 44 20 74 65  |[temp,#1]:ADD te|
000052a0  6d 70 32 2c 74 65 6d 70  32 2c 23 31 0d 14 96 2a  |mp2,temp2,#1...*|
000052b0  20 20 20 20 20 20 20 20  20 20 20 43 4d 50 20 74  |           CMP t|
000052c0  65 6d 70 32 2c 23 34 30  3a 42 45 51 20 72 61 6e  |emp2,#40:BEQ ran|
000052d0  64 74 6f 6b 65 6e 0d 14  a0 23 2e 72 61 6e 64 65  |dtoken...#.rande|
000052e0  64 20 20 20 20 53 54 52  42 20 74 65 6d 70 32 2c  |d    STRB temp2,|
000052f0  5b 74 65 6d 70 2c 23 32  5d 0d 14 aa 3e 20 20 20  |[temp,#2]...>   |
00005300  20 20 20 20 20 20 20 20  4d 4f 56 20 74 65 6d 70  |        MOV temp|
00005310  32 2c 23 32 3a 53 54 52  42 20 74 65 6d 70 32 2c  |2,#2:STRB temp2,|
00005320  5b 74 65 6d 70 2c 23 33  5d 3a 42 4c 20 70 6c 6f  |[temp,#3]:BL plo|
00005330  74 73 74 61 74 69 63 0d  14 b4 1b 20 20 20 20 20  |tstatic....     |
00005340  20 20 20 20 20 20 42 20  72 65 73 75 6d 65 73 63  |      B resumesc|
00005350  61 6e 0d 14 be 05 3a 0d  14 c8 4b 2e 72 61 6e 64  |an....:...K.rand|
00005360  74 6f 6b 65 6e 20 4c 44  52 20 74 65 6d 70 33 2c  |token LDR temp3,|
00005370  64 65 74 6f 6e 61 74 65  64 3a 43 4d 50 20 74 65  |detonated:CMP te|
00005380  6d 70 33 2c 23 30 3a 4d  4f 56 4e 45 20 74 65 6d  |mp3,#0:MOVNE tem|
00005390  70 32 2c 23 33 3a 42 4e  45 20 6e 6f 63 68 6f 69  |p2,#3:BNE nochoi|
000053a0  63 65 0d 14 d2 42 20 20  20 20 20 20 20 20 20 20  |ce...B          |
000053b0  20 4c 44 52 20 74 65 6d  70 33 2c 73 63 6f 72 65  | LDR temp3,score|
000053c0  3a 41 44 44 20 74 65 6d  70 33 2c 74 65 6d 70 33  |:ADD temp3,temp3|
000053d0  2c 23 31 30 3a 53 54 52  20 74 65 6d 70 33 2c 73  |,#10:STR temp3,s|
000053e0  63 6f 72 65 0d 14 dc 51  20 20 20 20 20 20 20 20  |core...Q        |
000053f0  20 20 4c 44 52 20 74 65  6d 70 33 2c 62 6c 6f 63  |  LDR temp3,bloc|
00005400  6b 73 65 65 64 3a 41 44  44 20 74 65 6d 70 33 2c  |kseed:ADD temp3,|
00005410  74 65 6d 70 33 2c 74 65  6d 70 33 2c 4c 53 52 23  |temp3,temp3,LSR#|
00005420  31 3a 53 54 52 20 74 65  6d 70 33 2c 62 6c 6f 63  |1:STR temp3,bloc|
00005430  6b 73 65 65 64 0d 14 e6  3e 20 20 20 20 20 20 20  |kseed...>       |
00005440  20 20 20 20 20 80 20 74  65 6d 70 33 2c 74 65 6d  |     . temp3,tem|
00005450  70 33 2c 23 32 35 35 3a  4d 4f 56 20 74 65 6d 70  |p3,#255:MOV temp|
00005460  32 2c 23 34 38 3a 43 4d  50 20 74 65 6d 70 33 2c  |2,#48:CMP temp3,|
00005470  23 32 35 0d 14 f0 2d 20  20 20 20 20 20 20 20 20  |#25...-         |
00005480  20 20 20 4d 4f 56 47 54  20 74 65 6d 70 32 2c 23  |   MOVGT temp2,#|
00005490  34 39 3a 43 4d 50 20 74  65 6d 70 33 2c 23 35 30  |49:CMP temp3,#50|
000054a0  0d 14 fa 2c 20 20 20 20  20 20 20 20 20 20 20 4d  |...,           M|
000054b0  4f 56 47 54 20 74 65 6d  70 32 2c 23 35 30 3a 43  |OVGT temp2,#50:C|
000054c0  4d 50 20 74 65 6d 70 33  2c 23 36 30 0d 15 04 1e  |MP temp3,#60....|
000054d0  20 20 20 20 20 20 20 20  20 20 20 20 4d 4f 56 47  |            MOVG|
000054e0  54 20 74 65 6d 70 32 2c  23 33 0d 15 0e 34 2e 6e  |T temp2,#3...4.n|
000054f0  6f 63 68 6f 69 63 65 20  53 54 52 42 20 74 65 6d  |ochoice STRB tem|
00005500  70 32 2c 5b 74 65 6d 70  5d 3a 53 54 52 42 20 74  |p2,[temp]:STRB t|
00005510  65 6d 70 32 2c 5b 74 65  6d 70 2c 23 31 5d 0d 15  |emp2,[temp,#1]..|
00005520  18 1e 20 20 20 20 20 20  20 20 20 20 20 4d 4f 56  |..           MOV|
00005530  20 73 70 6e 75 6d 2c 74  65 6d 70 32 0d 15 22 26  | spnum,temp2.."&|
00005540  20 20 20 20 20 20 20 20  20 20 20 43 4d 50 20 73  |           CMP s|
00005550  70 6e 75 6d 2c 23 33 3a  42 4e 45 20 72 61 6e 64  |pnum,#3:BNE rand|
00005560  65 64 0d 15 2c 43 20 20  20 20 20 20 20 20 20 20  |ed..,C          |
00005570  20 4c 44 52 20 74 65 6d  70 32 2c 72 75 62 62 6c  | LDR temp2,rubbl|
00005580  65 3a 53 55 42 20 74 65  6d 70 32 2c 74 65 6d 70  |e:SUB temp2,temp|
00005590  32 2c 23 31 3a 53 54 52  20 74 65 6d 70 32 2c 72  |2,#1:STR temp2,r|
000055a0  75 62 62 6c 65 0d 15 36  17 20 20 20 20 20 20 20  |ubble..6.       |
000055b0  20 20 20 20 42 20 72 61  6e 64 65 64 0d 15 40 05  |    B randed..@.|
000055c0  3a 0d 15 4a 1c 2e 62 6c  6f 63 6b 73 65 65 64 20  |:..J..blockseed |
000055d0  45 51 55 53 20 28 22 55  53 45 52 22 29 0d 15 54  |EQUS ("USER")..T|
000055e0  16 20 20 20 20 20 20 20  20 20 20 a4 72 6f 62 6f  |.          .robo|
000055f0  74 69 78 0d 15 5e 05 5d  0d 15 68 07 3d 22 22 0d  |tix..^.]..h.="".|
00005600  15 72 05 3a 0d 15 7c 0a  dd f2 74 65 73 74 0d 15  |.r.:..|...test..|
00005610  86 05 db 0d 15 90 0b f2  67 61 6d 65 3a db 0d 15  |........game:...|
00005620  9a 10 d6 69 6e 69 74 5f  73 63 72 65 65 6e 0d 15  |...init_screen..|
00005630  a4 0b 2a 46 58 31 35 2c  31 0d 15 ae 0d d6 6d 61  |..*FX15,1.....ma|
00005640  69 6e 70 72 6f 67 0d 15  b8 0b 2a 46 58 31 35 2c  |inprog....*FX15,|
00005650  31 0d 16 12 05 e1 0d 16  1c 05 3a 0d 16 26 10 dd  |1.........:..&..|
00005660  f2 66 69 6e 64 69 6e 6b  65 79 73 0d 16 30 05 f5  |.findinkeys..0..|
00005670  0d 16 3a 0a f5 fd a5 3d  33 32 0d 16 44 35 54 3d  |..:....=32..D5T=|
00005680  91 3a f5 fd 91 3e 54 2b  31 30 30 3a ef 37 3a e3  |.:...>T+100:.7:.|
00005690  49 3d 2d 31 b8 2d 32 35  35 88 2d 31 3a e7 20 a6  |I=-1.-255.-1:. .|
000056a0  28 49 29 20 8c 20 f1 49  3a 49 3d 2d 32 35 36 0d  |(I) . .I:I=-256.|
000056b0  16 4e 05 ed 0d 16 58 06  fd 30 0d 16 62 05 e1 0d  |.N....X..0..b...|
000056c0  16 6c 05 3a 0d 16 76 0a  dd f2 67 61 6d 65 0d 16  |.l.:..v...game..|
000056d0  80 0d 72 75 62 62 6c 65  73 3d 30 0d 16 8a 24 49  |..rubbles=0...$I|
000056e0  3d 67 72 69 64 64 61 74  61 3a e3 20 59 3d 30 20  |=griddata:. Y=0 |
000056f0  b8 20 31 32 3a e3 20 58  3d 30 20 b8 20 31 38 0d  |. 12:. X=0 . 18.|
00005700  16 94 4c e7 20 28 58 2b  59 29 3e 31 20 80 20 28  |..L. (X+Y)>1 . (|
00005710  58 2b 59 29 3c 32 39 20  80 20 b3 28 31 35 29 3c  |X+Y)<29 . .(15)<|
00005720  31 30 20 8c 20 21 49 3d  26 30 30 30 30 30 31 30  |10 . !I=&0000010|
00005730  31 3a 72 75 62 62 6c 65  73 2b 3d 31 3a 8b 20 21  |1:rubbles+=1:. !|
00005740  49 3d 26 30 30 30 30 30  33 30 33 0d 16 9e 08 49  |I=&00000303....I|
00005750  2b 3d 34 0d 16 a8 07 ed  3a ed 0d 16 b2 21 e3 20  |+=4.....:....!. |
00005760  59 3d 31 20 b8 20 31 31  20 88 20 32 3a e3 20 58  |Y=1 . 11 . 2:. X|
00005770  3d 31 20 b8 20 31 37 20  88 20 32 0d 16 bc 32 56  |=1 . 17 . 2...2V|
00005780  3d 67 72 69 64 64 61 74  61 2b 58 2a 34 2b 28 59  |=griddata+X*4+(Y|
00005790  2a 31 39 2a 34 29 3a e7  20 21 56 3d 26 31 30 31  |*19*4):. !V=&101|
000057a0  20 8c 20 72 75 62 62 6c  65 73 2d 3d 31 0d 16 c6  | . rubbles-=1...|
000057b0  08 21 56 3d 30 0d 16 d0  0b ed 20 58 3a ed 20 59  |.!V=0..... X:. Y|
000057c0  0d 16 da 0a f7 20 8d 74  6c 57 0d 16 e4 22 4d 3d  |..... .tlW..."M=|
000057d0  6d 61 6e 31 3a e3 49 3d  31 b8 31 32 3a f3 20 44  |man1:.I=1.12:. D|
000057e0  3a 21 4d 3d 44 3a 4d 2b  3d 34 3a ed 0d 16 e9 13  |:!M=D:M+=4:.....|
000057f0  f7 20 28 36 30 37 30 2b  31 30 2a 4c 45 56 29 0d  |. (6070+10*LEV).|
00005800  16 ee 17 f5 3a f3 20 52  2c 58 2c 59 3a e7 20 58  |....:. R,X,Y:. X|
00005810  3c 3e 2d 31 20 8c 0d 16  f8 2e 4c 3d 67 72 69 64  |<>-1 .....L=grid|
00005820  64 61 74 61 2b 58 2a 34  2b 59 2a 34 2a 31 39 3a  |data+X*4+Y*4*19:|
00005830  e7 20 21 4c 3d 26 31 30  31 20 72 75 62 62 6c 65  |. !L=&101 rubble|
00005840  73 2d 3d 31 0d 17 02 1d  e7 20 52 3d 31 20 21 4c  |s-=1..... R=1 !L|
00005850  3d 26 33 33 33 33 20 8b  20 21 4c 3d 26 33 35 33  |=&3333 . !L=&353|
00005860  35 0d 17 0c 05 cd 0d 17  16 0a fd 20 58 3d 2d 31  |5.......... X=-1|
00005870  0d 17 20 0c 70 6c 61 63  65 64 3d 30 0d 17 2a 19  |.. .placed=0..*.|
00005880  f5 3a 58 3d b3 28 31 39  29 2d 31 3a 59 3d b3 28  |.:X=.(19)-1:Y=.(|
00005890  31 33 29 2d 31 0d 17 34  20 e7 20 28 58 2b 59 29  |13)-1..4 . (X+Y)|
000058a0  3e 35 20 80 20 28 58 2b  59 29 3c 32 33 20 80 20  |>5 . (X+Y)<23 . |
000058b0  58 3e 30 20 8c 0d 17 3e  30 49 3d 67 72 69 64 64  |X>0 ...>0I=gridd|
000058c0  61 74 61 2b 58 2a 34 2b  31 39 2a 34 2a 59 3a 72  |ata+X*4+19*4*Y:r|
000058d0  64 3d 72 6f 62 6f 64 61  74 61 2b 35 2a 34 2a 70  |d=robodata+5*4*p|
000058e0  6c 61 63 65 64 0d 17 48  1a e7 20 21 49 3d 26 31  |laced..H.. !I=&1|
000058f0  30 31 20 8c 20 72 75 62  62 6c 65 73 2d 3d 31 0d  |01 . rubbles-=1.|
00005900  17 52 5a e7 20 21 49 3d  26 31 30 31 20 84 20 21  |.RZ. !I=&101 . !|
00005910  49 3d 26 33 30 33 20 8c  20 21 49 3d 26 30 30 30  |I=&303 . !I=&000|
00005920  30 30 33 30 33 3a 21 72  64 3d 58 2a 34 3a 72 64  |00303:!rd=X*4:rd|
00005930  21 34 3d 59 2a 34 3a 72  64 21 38 3d 30 3a 72 64  |!4=Y*4:rd!8=0:rd|
00005940  21 31 32 3d 30 3a 72 64  21 31 36 3d 32 35 35 3a  |!12=0:rd!16=255:|
00005950  70 6c 61 63 65 64 2b 3d  31 0d 17 5c 05 cd 0d 17  |placed+=1..\....|
00005960  66 16 fd 70 6c 61 63 65  64 3d 72 6f 62 6f 73 28  |f..placed=robos(|
00005970  4c 45 56 29 0d 17 6b 17  21 6d 61 78 62 6f 74 73  |LEV)..k.!maxbots|
00005980  3d 72 6f 62 6f 73 28 4c  45 56 29 0d 17 70 2f e7  |=robos(LEV)..p/.|
00005990  20 21 70 6c 61 79 65 72  73 3d 31 20 8c 20 21 72  | !players=1 . !r|
000059a0  75 62 62 6c 65 3d 72 75  62 62 6c 65 73 20 8b 20  |ubble=rubbles . |
000059b0  21 72 75 62 62 6c 65 3d  2d 31 0d 17 7a 0c 21 72  |!rubble=-1..z.!r|
000059c0  68 61 6c 74 3d 30 0d 17  84 10 21 64 65 74 6f 6e  |halt=0....!deton|
000059d0  61 74 65 64 3d 30 0d 17  8e 0a 21 6d 61 6e 3d 33  |ated=0....!man=3|
000059e0  0d 17 a2 05 e1 0d 17 ac  31 dc 20 35 31 32 2c 30  |........1. 512,0|
000059f0  2c 31 38 2a 34 2c 31 32  2a 34 2c 30 2c 26 32 30  |,18*4,12*4,0,&20|
00005a00  30 30 31 2c 35 31 32 2c  30 2c 30 2c 30 2c 31 2c  |001,512,0,0,0,1,|
00005a10  26 32 30 30 30 31 0d 17  b6 0c dc 20 30 2c 2d 31  |&20001..... 0,-1|
00005a20  2c 30 0d 17 c0 0c dc 20  30 2c 2d 31 2c 30 0d 17  |,0..... 0,-1,0..|
00005a30  ca 0c dc 20 30 2c 2d 31  2c 30 0d 17 d4 13 dc 20  |... 0,-1,0..... |
00005a40  31 2c 39 2c 36 2c 20 30  2c 2d 31 2c 30 0d 17 de  |1,9,6, 0,-1,0...|
00005a50  13 dc 20 32 2c 39 2c 36  2c 20 30 2c 2d 31 2c 30  |.. 2,9,6, 0,-1,0|
00005a60  0d 17 e8 1b dc 20 31 2c  36 2c 36 2c 20 31 2c 31  |..... 1,6,6, 1,1|
00005a70  32 2c 36 2c 20 30 2c 2d  31 2c 30 0d 17 f2 22 dc  |2,6, 0,-1,0...".|
00005a80  20 31 2c 30 2c 36 2c 20  31 2c 31 38 2c 36 2c 20  | 1,0,6, 1,18,6, |
00005a90  32 2c 39 2c 36 2c 20 30  2c 2d 31 2c 30 0d 17 fc  |2,9,6, 0,-1,0...|
00005aa0  29 dc 20 31 2c 34 2c 36  2c 20 31 2c 31 34 2c 36  |). 1,4,6, 1,14,6|
00005ab0  2c 20 32 2c 39 2c 38 2c  20 32 2c 39 2c 34 2c 20  |, 2,9,8, 2,9,4, |
00005ac0  30 2c 2d 31 2c 30 0d 18  06 3b dc 20 31 2c 32 2c  |0,-1,0...;. 1,2,|
00005ad0  32 2c 20 31 2c 31 36 2c  32 2c 20 31 2c 32 2c 31  |2, 1,16,2, 1,2,1|
00005ae0  30 2c 20 31 2c 31 36 2c  31 30 2c 20 32 2c 30 2c  |0, 1,16,10, 2,0,|
00005af0  36 2c 20 32 2c 31 38 2c  36 2c 20 30 2c 2d 31 2c  |6, 2,18,6, 0,-1,|
00005b00  30 0d 18 10 49 dc 20 31  2c 32 2c 32 2c 20 31 2c  |0...I. 1,2,2, 1,|
00005b10  34 2c 36 2c 20 31 2c 32  2c 31 30 2c 20 31 2c 31  |4,6, 1,2,10, 1,1|
00005b20  36 2c 32 2c 20 31 2c 31  36 2c 31 30 2c 20 31 2c  |6,2, 1,16,10, 1,|
00005b30  31 34 2c 36 2c 20 32 2c  39 2c 38 2c 20 32 2c 39  |14,6, 2,9,8, 2,9|
00005b40  2c 34 2c 20 30 2c 2d 31  2c 30 0d 18 15 1a dc 20  |,4, 0,-1,0..... |
00005b50  31 2c 32 2c 34 2c 32 2c  34 2c 34 2c 35 2c 36 2c  |1,2,4,2,4,4,5,6,|
00005b60  38 2c 31 30 0d 18 1a 05  3a 0d 18 24 0d dd a4 72  |8,10....:..$...r|
00005b70  6f 62 6f 74 69 78 0d 18  2e 0d 5b 4f 50 54 20 70  |obotix....[OPT p|
00005b80  61 73 73 0d 18 38 23 2e  72 6f 62 6f 64 61 74 61  |ass..8#.robodata|
00005b90  20 a4 72 65 73 65 72 76  65 28 6e 75 6d 62 6f 74  | .reserve(numbot|
00005ba0  73 2a 35 2a 34 29 0d 18  42 10 2e 72 78 20 20 20  |s*5*4)..B..rx   |
00005bb0  45 51 55 44 20 30 0d 18  4c 10 2e 72 79 20 20 20  |EQUD 0..L..ry   |
00005bc0  45 51 55 44 20 30 0d 18  56 10 2e 72 6f 66 66 20  |EQUD 0..V..roff |
00005bd0  45 51 55 44 20 30 0d 18  60 10 2e 72 64 69 72 20  |EQUD 0..`..rdir |
00005be0  45 51 55 44 20 30 0d 18  6a 11 2e 72 64 65 61 64  |EQUD 0..j..rdead|
00005bf0  20 45 51 55 44 20 30 0d  18 74 13 2e 72 6f 62 6f  | EQUD 0..t..robo|
00005c00  6e 75 6d 20 45 51 55 44  20 30 0d 18 7e 3e 2e 77  |num EQUD 0..~>.w|
00005c10  69 70 65 72 6f 62 6f 74  73 20 53 54 52 20 52 31  |iperobots STR R1|
00005c20  34 2c 62 61 63 6b 5f 66  72 6f 6d 5f 72 74 6e 3a  |4,back_from_rtn:|
00005c30  4d 4f 56 20 52 30 2c 23  30 3a 53 54 52 20 52 30  |MOV R0,#0:STR R0|
00005c40  2c 72 6f 62 6f 6e 75 6d  0d 18 88 3d 2e 72 6f 62  |,robonum...=.rob|
00005c50  6f 6c 6f 6f 70 31 20 4c  44 52 20 52 30 2c 72 6f  |oloop1 LDR R0,ro|
00005c60  62 6f 6e 75 6d 3a 4d 4f  56 20 74 65 6d 70 2c 23  |bonum:MOV temp,#|
00005c70  35 2a 34 3a 4d 55 4c 20  74 65 6d 70 32 2c 52 30  |5*4:MUL temp2,R0|
00005c80  2c 74 65 6d 70 0d 18 92  52 20 20 20 20 20 20 20  |,temp...R       |
00005c90  20 20 20 41 44 52 20 74  65 6d 70 2c 72 6f 62 6f  |   ADR temp,robo|
00005ca0  64 61 74 61 3a 41 44 44  20 74 65 6d 70 2c 74 65  |data:ADD temp,te|
00005cb0  6d 70 2c 74 65 6d 70 32  3a 4c 44 4d 49 41 20 74  |mp,temp2:LDMIA t|
00005cc0  65 6d 70 2c 7b 78 2c 79  2c 6f 66 66 2c 64 69 72  |emp,{x,y,off,dir|
00005cd0  65 63 2c 52 31 32 7d 0d  18 9c 3a 20 20 20 20 20  |ec,R12}...:     |
00005ce0  20 20 20 20 20 20 20 41  44 52 20 74 65 6d 70 2c  |       ADR temp,|
00005cf0  72 78 3a 53 54 4d 49 41  20 74 65 6d 70 2c 7b 78  |rx:STMIA temp,{x|
00005d00  2c 79 2c 6f 66 66 2c 64  69 72 65 63 2c 52 31 32  |,y,off,direc,R12|
00005d10  7d 0d 18 a6 36 20 20 20  20 20 20 20 20 20 4c 44  |}...6         LD|
00005d20  52 20 78 2c 72 78 3a 4c  44 52 20 79 2c 72 79 3a  |R x,rx:LDR y,ry:|
00005d30  4d 4f 56 20 52 31 32 2c  23 31 3a 42 4c 20 70 6c  |MOV R12,#1:BL pl|
00005d40  6f 74 73 74 61 74 32 0d  18 b0 4e 20 20 20 20 20  |otstat2...N     |
00005d50  20 20 20 20 43 4d 50 20  52 31 32 2c 23 31 3a 42  |    CMP R12,#1:B|
00005d60  45 51 20 72 6e 6f 74 64  65 64 31 3a 4c 44 52 20  |EQ rnotded1:LDR |
00005d70  74 65 6d 70 2c 72 64 65  61 64 3a 43 4d 50 20 74  |temp,rdead:CMP t|
00005d80  65 6d 70 2c 23 32 35 35  3a 42 4e 45 20 72 6e 6f  |emp,#255:BNE rno|
00005d90  74 64 65 64 31 0d 18 b1  1a 20 20 20 20 20 20 20  |tded1....       |
00005da0  20 20 53 54 52 20 52 31  32 2c 72 64 65 61 64 0d  |  STR R12,rdead.|
00005db0  18 b2 38 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |..8         MOV |
00005dc0  52 30 2c 23 34 3a 4d 56  4e 20 52 31 2c 23 31 34  |R0,#4:MVN R1,#14|
00005dd0  3a 4d 4f 56 20 52 32 2c  23 37 31 36 38 3a 4d 4f  |:MOV R2,#7168:MO|
00005de0  56 20 52 33 2c 23 30 0d  18 b3 1f 20 20 20 20 20  |V R3,#0....     |
00005df0  20 20 20 53 57 49 20 22  53 6f 75 6e 64 5f 43 6f  |   SWI "Sound_Co|
00005e00  6e 74 72 6f 6c 22 0d 18  b4 1e 20 20 20 20 20 20  |ntrol"....      |
00005e10  20 20 20 4c 44 52 20 78  2c 72 78 3a 4c 44 52 20  |   LDR x,rx:LDR |
00005e20  79 2c 72 79 0d 18 ba 3f  20 20 20 20 20 20 20 20  |y,ry...?        |
00005e30  20 4c 44 52 20 74 65 6d  70 2c 73 63 6f 72 65 3a  | LDR temp,score:|
00005e40  41 44 44 45 51 20 74 65  6d 70 2c 74 65 6d 70 2c  |ADDEQ temp,temp,|
00005e50  23 31 35 30 3a 53 54 52  20 74 65 6d 70 2c 73 63  |#150:STR temp,sc|
00005e60  6f 72 65 0d 18 c4 43 2e  72 6e 6f 74 64 65 64 31  |ore...C.rnotded1|
00005e70  20 4c 44 52 20 6f 66 66  2c 72 6f 66 66 3a 4c 44  | LDR off,roff:LD|
00005e80  52 20 64 69 72 65 63 2c  72 64 69 72 3a 43 4d 50  |R direc,rdir:CMP|
00005e90  20 6f 66 66 2c 23 30 3a  42 4e 45 20 72 6f 66 66  | off,#0:BNE roff|
00005ea0  73 65 74 73 65 74 0d 18  ce 40 20 20 20 20 20 20  |setset...@      |
00005eb0  20 20 20 43 4d 50 20 64  69 72 65 63 2c 23 31 3a  |   CMP direc,#1:|
00005ec0  41 44 44 45 51 20 78 2c  78 2c 23 34 3a 43 4d 50  |ADDEQ x,x,#4:CMP|
00005ed0  20 64 69 72 65 63 2c 23  30 3a 53 55 42 45 51 20  | direc,#0:SUBEQ |
00005ee0  78 2c 78 2c 23 34 0d 18  d8 40 20 20 20 20 20 20  |x,x,#4...@      |
00005ef0  20 20 20 43 4d 50 20 64  69 72 65 63 2c 23 32 3a  |   CMP direc,#2:|
00005f00  41 44 44 45 51 20 79 2c  79 2c 23 34 3a 43 4d 50  |ADDEQ y,y,#4:CMP|
00005f10  20 64 69 72 65 63 2c 23  33 3a 53 55 42 45 51 20  | direc,#3:SUBEQ |
00005f20  79 2c 79 2c 23 34 0d 18  e2 19 20 20 20 20 20 20  |y,y,#4....      |
00005f30  20 20 20 42 4c 20 70 6c  6f 74 73 74 61 74 32 0d  |   BL plotstat2.|
00005f40  18 ec 1e 20 20 20 20 20  20 20 20 20 42 20 72 61  |...         B ra|
00005f50  66 74 65 72 73 65 63 6f  6e 64 73 71 72 0d 18 f6  |ftersecondsqr...|
00005f60  44 2e 72 6f 66 66 73 65  74 73 65 74 20 20 43 4d  |D.roffsetset  CM|
00005f70  50 20 64 69 72 65 63 2c  23 31 3a 41 44 44 45 51  |P direc,#1:ADDEQ|
00005f80  20 78 2c 78 2c 23 34 3a  43 4d 50 20 64 69 72 65  | x,x,#4:CMP dire|
00005f90  63 2c 23 30 3a 41 44 44  45 51 20 78 2c 78 2c 23  |c,#0:ADDEQ x,x,#|
00005fa0  34 0d 19 00 40 20 20 20  20 20 20 20 20 20 43 4d  |4...@         CM|
00005fb0  50 20 64 69 72 65 63 2c  23 32 3a 41 44 44 45 51  |P direc,#2:ADDEQ|
00005fc0  20 79 2c 79 2c 23 34 3a  43 4d 50 20 64 69 72 65  | y,y,#4:CMP dire|
00005fd0  63 2c 23 33 3a 41 44 44  45 51 20 79 2c 79 2c 23  |c,#3:ADDEQ y,y,#|
00005fe0  34 0d 19 0a 23 20 20 20  20 20 20 20 20 4d 4f 56  |4...#        MOV|
00005ff0  20 52 31 32 2c 23 31 3a  42 4c 20 70 6c 6f 74 73  | R12,#1:BL plots|
00006000  74 61 74 32 0d 19 14 5c  20 20 20 20 20 20 20 20  |tat2...\        |
00006010  20 43 4d 50 20 52 31 32  2c 23 31 3a 42 45 51 20  | CMP R12,#1:BEQ |
00006020  72 61 66 74 65 72 73 65  63 6f 6e 64 73 71 72 3a  |raftersecondsqr:|
00006030  4c 44 52 20 74 65 6d 70  2c 72 64 65 61 64 3a 43  |LDR temp,rdead:C|
00006040  4d 50 20 74 65 6d 70 2c  23 32 35 35 3a 42 4e 45  |MP temp,#255:BNE|
00006050  20 72 61 66 74 65 72 73  65 63 6f 6e 64 73 71 72  | raftersecondsqr|
00006060  0d 19 15 1a 20 20 20 20  20 20 20 20 20 53 54 52  |....         STR|
00006070  20 52 31 32 2c 72 64 65  61 64 0d 19 16 38 20 20  | R12,rdead...8  |
00006080  20 20 20 20 20 20 20 4d  4f 56 20 52 30 2c 23 34  |       MOV R0,#4|
00006090  3a 4d 56 4e 20 52 31 2c  23 31 34 3a 4d 4f 56 20  |:MVN R1,#14:MOV |
000060a0  52 32 2c 23 37 31 36 38  3a 4d 4f 56 20 52 33 2c  |R2,#7168:MOV R3,|
000060b0  23 30 0d 19 17 1f 20 20  20 20 20 20 20 20 53 57  |#0....        SW|
000060c0  49 20 22 53 6f 75 6e 64  5f 43 6f 6e 74 72 6f 6c  |I "Sound_Control|
000060d0  22 0d 19 1e 3d 20 20 20  20 20 20 20 20 20 4c 44  |"...=         LD|
000060e0  52 20 74 65 6d 70 2c 73  63 6f 72 65 3a 41 44 44  |R temp,score:ADD|
000060f0  20 74 65 6d 70 2c 74 65  6d 70 2c 23 31 35 30 3a  | temp,temp,#150:|
00006100  53 54 52 20 74 65 6d 70  2c 73 63 6f 72 65 0d 19  |STR temp,score..|
00006110  28 14 2e 72 61 66 74 65  72 73 65 63 6f 6e 64 73  |(..rafterseconds|
00006120  71 72 0d 19 32 33 20 20  20 20 20 20 20 20 20 4c  |qr..23         L|
00006130  44 52 20 52 31 32 2c 72  64 65 61 64 3a 43 4d 50  |DR R12,rdead:CMP|
00006140  20 52 31 32 2c 23 32 35  35 3a 42 4e 45 20 6e 78  | R12,#255:BNE nx|
00006150  74 6d 61 6e 32 0d 19 3c  3a 20 20 20 20 20 20 20  |tman2..<:       |
00006160  20 20 4c 44 52 20 78 2c  72 78 3a 4c 44 52 20 79  |  LDR x,rx:LDR y|
00006170  2c 72 79 3a 4c 44 52 20  6f 66 66 2c 72 6f 66 66  |,ry:LDR off,roff|
00006180  3a 4c 44 52 20 64 69 72  65 63 2c 72 64 69 72 0d  |:LDR direc,rdir.|
00006190  19 46 28 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |.F(         MOV |
000061a0  78 2c 78 2c 4c 53 4c 23  32 3a 4d 4f 56 20 79 2c  |x,x,LSL#2:MOV y,|
000061b0  79 2c 4c 53 4c 23 32 0d  19 50 27 20 20 20 20 20  |y,LSL#2..P'     |
000061c0  20 20 20 20 43 4d 50 20  64 69 72 65 63 2c 23 30  |    CMP direc,#0|
000061d0  3a 41 44 44 45 51 20 78  2c 78 2c 6f 66 66 0d 19  |:ADDEQ x,x,off..|
000061e0  5a 27 20 20 20 20 20 20  20 20 20 43 4d 50 20 64  |Z'         CMP d|
000061f0  69 72 65 63 2c 23 31 3a  41 44 44 45 51 20 78 2c  |irec,#1:ADDEQ x,|
00006200  78 2c 6f 66 66 0d 19 64  27 20 20 20 20 20 20 20  |x,off..d'       |
00006210  20 20 43 4d 50 20 64 69  72 65 63 2c 23 32 3a 41  |  CMP direc,#2:A|
00006220  44 44 45 51 20 79 2c 79  2c 6f 66 66 0d 19 6e 27  |DDEQ y,y,off..n'|
00006230  20 20 20 20 20 20 20 20  20 43 4d 50 20 64 69 72  |         CMP dir|
00006240  65 63 2c 23 33 3a 41 44  44 45 51 20 79 2c 79 2c  |ec,#3:ADDEQ y,y,|
00006250  6f 66 66 0d 19 78 22 20  20 20 20 20 20 20 20 20  |off..x"         |
00006260  4d 4f 56 20 6f 6c 64 78  2c 78 3a 4d 4f 56 20 6f  |MOV oldx,x:MOV o|
00006270  6c 64 79 2c 79 0d 19 82  69 20 20 20 20 20 20 20  |ldy,y...i       |
00006280  20 20 4c 44 52 20 74 65  6d 70 32 2c 62 6c 6f 6b  |  LDR temp2,blok|
00006290  65 31 3a 4c 44 52 20 78  2c 5b 74 65 6d 70 32 2c  |e1:LDR x,[temp2,|
000062a0  23 38 5d 3a 4c 44 52 20  79 2c 5b 74 65 6d 70 32  |#8]:LDR y,[temp2|
000062b0  2c 23 31 32 5d 3a 4c 44  52 20 6f 66 66 2c 5b 74  |,#12]:LDR off,[t|
000062c0  65 6d 70 32 2c 23 34 5d  3a 4c 44 52 20 64 69 72  |emp2,#4]:LDR dir|
000062d0  65 63 2c 5b 74 65 6d 70  32 2c 23 31 36 5d 0d 19  |ec,[temp2,#16]..|
000062e0  8c 28 20 20 20 20 20 20  20 20 20 4d 4f 56 20 78  |.(         MOV x|
000062f0  2c 78 2c 4c 53 4c 23 32  3a 4d 4f 56 20 79 2c 79  |,x,LSL#2:MOV y,y|
00006300  2c 4c 53 4c 23 32 0d 19  96 2d 20 20 20 20 20 20  |,LSL#2...-      |
00006310  20 20 20 43 4d 50 20 64  69 72 65 63 2c 23 30 3a  |   CMP direc,#0:|
00006320  41 44 44 45 51 20 78 2c  78 2c 6f 66 66 2c 4c 53  |ADDEQ x,x,off,LS|
00006330  4c 23 31 0d 19 a0 2d 20  20 20 20 20 20 20 20 20  |L#1...-         |
00006340  43 4d 50 20 64 69 72 65  63 2c 23 31 3a 41 44 44  |CMP direc,#1:ADD|
00006350  45 51 20 78 2c 78 2c 6f  66 66 2c 4c 53 4c 23 31  |EQ x,x,off,LSL#1|
00006360  0d 19 aa 2d 20 20 20 20  20 20 20 20 20 43 4d 50  |...-         CMP|
00006370  20 64 69 72 65 63 2c 23  32 3a 41 44 44 45 51 20  | direc,#2:ADDEQ |
00006380  79 2c 79 2c 6f 66 66 2c  4c 53 4c 23 31 0d 19 b4  |y,y,off,LSL#1...|
00006390  2d 20 20 20 20 20 20 20  20 20 43 4d 50 20 64 69  |-         CMP di|
000063a0  72 65 63 2c 23 33 3a 41  44 44 45 51 20 79 2c 79  |rec,#3:ADDEQ y,y|
000063b0  2c 6f 66 66 2c 4c 53 4c  23 31 0d 19 be 53 20 20  |,off,LSL#1...S  |
000063c0  20 20 20 20 20 20 20 43  4d 50 20 78 2c 6f 6c 64  |       CMP x,old|
000063d0  78 3a 53 55 42 47 54 20  74 65 6d 70 2c 78 2c 6f  |x:SUBGT temp,x,o|
000063e0  6c 64 78 3a 53 55 42 4c  45 20 74 65 6d 70 2c 6f  |ldx:SUBLE temp,o|
000063f0  6c 64 78 2c 78 3a 43 4d  50 20 74 65 6d 70 2c 23  |ldx,x:CMP temp,#|
00006400  31 36 3a 42 47 45 20 6e  78 74 6d 61 6e 0d 19 c8  |16:BGE nxtman...|
00006410  53 20 20 20 20 20 20 20  20 20 43 4d 50 20 79 2c  |S         CMP y,|
00006420  6f 6c 64 79 3a 53 55 42  47 54 20 74 65 6d 70 2c  |oldy:SUBGT temp,|
00006430  79 2c 6f 6c 64 79 3a 53  55 42 4c 45 20 74 65 6d  |y,oldy:SUBLE tem|
00006440  70 2c 6f 6c 64 79 2c 79  3a 43 4d 50 20 74 65 6d  |p,oldy,y:CMP tem|
00006450  70 2c 23 31 36 3a 42 47  45 20 6e 78 74 6d 61 6e  |p,#16:BGE nxtman|
00006460  0d 19 d2 41 20 20 20 20  20 20 20 20 20 4c 44 52  |...A         LDR|
00006470  20 74 65 6d 70 2c 5b 74  65 6d 70 32 5d 3a 43 4d  | temp,[temp2]:CM|
00006480  50 20 74 65 6d 70 2c 23  32 35 35 3a 4d 4f 56 20  |P temp,#255:MOV |
00006490  52 31 32 2c 23 30 3a 42  4e 45 20 6e 78 74 6d 61  |R12,#0:BNE nxtma|
000064a0  6e 0d 19 d3 1c 20 20 20  20 20 20 20 20 20 53 54  |n....         ST|
000064b0  52 20 52 31 32 2c 5b 74  65 6d 70 32 5d 0d 19 d4  |R R12,[temp2]...|
000064c0  3a 20 20 20 20 20 20 20  20 20 4d 4f 56 20 52 30  |:         MOV R0|
000064d0  2c 23 33 3a 4d 56 4e 20  52 31 2c 23 31 34 3a 4d  |,#3:MVN R1,#14:M|
000064e0  4f 56 20 52 32 2c 23 73  63 72 65 61 6d 3a 4d 4f  |OV R2,#scream:MO|
000064f0  56 20 52 33 2c 23 30 0d  19 d5 20 20 20 20 20 20  |V R3,#0...      |
00006500  20 20 20 20 53 57 49 20  22 53 6f 75 6e 64 5f 43  |    SWI "Sound_C|
00006510  6f 6e 74 72 6f 6c 22 0d  19 dc 69 2e 6e 78 74 6d  |ontrol"...i.nxtm|
00006520  61 6e 20 20 4c 44 52 20  74 65 6d 70 32 2c 62 6c  |an  LDR temp2,bl|
00006530  6f 6b 65 32 3a 4c 44 52  20 78 2c 5b 74 65 6d 70  |oke2:LDR x,[temp|
00006540  32 2c 23 38 5d 3a 4c 44  52 20 79 2c 5b 74 65 6d  |2,#8]:LDR y,[tem|
00006550  70 32 2c 23 31 32 5d 3a  4c 44 52 20 6f 66 66 2c  |p2,#12]:LDR off,|
00006560  5b 74 65 6d 70 32 2c 23  34 5d 3a 4c 44 52 20 64  |[temp2,#4]:LDR d|
00006570  69 72 65 63 2c 5b 74 65  6d 70 32 2c 23 31 36 5d  |irec,[temp2,#16]|
00006580  0d 19 e6 28 20 20 20 20  20 20 20 20 20 4d 4f 56  |...(         MOV|
00006590  20 78 2c 78 2c 4c 53 4c  23 32 3a 4d 4f 56 20 79  | x,x,LSL#2:MOV y|
000065a0  2c 79 2c 4c 53 4c 23 32  0d 19 f0 2d 20 20 20 20  |,y,LSL#2...-    |
000065b0  20 20 20 20 20 43 4d 50  20 64 69 72 65 63 2c 23  |     CMP direc,#|
000065c0  30 3a 41 44 44 45 51 20  78 2c 78 2c 6f 66 66 2c  |0:ADDEQ x,x,off,|
000065d0  4c 53 4c 23 31 0d 19 fa  2d 20 20 20 20 20 20 20  |LSL#1...-       |
000065e0  20 20 43 4d 50 20 64 69  72 65 63 2c 23 31 3a 41  |  CMP direc,#1:A|
000065f0  44 44 45 51 20 78 2c 78  2c 6f 66 66 2c 4c 53 4c  |DDEQ x,x,off,LSL|
00006600  23 31 0d 1a 04 2d 20 20  20 20 20 20 20 20 20 43  |#1...-         C|
00006610  4d 50 20 64 69 72 65 63  2c 23 32 3a 41 44 44 45  |MP direc,#2:ADDE|
00006620  51 20 79 2c 79 2c 6f 66  66 2c 4c 53 4c 23 31 0d  |Q y,y,off,LSL#1.|
00006630  1a 0e 2d 20 20 20 20 20  20 20 20 20 43 4d 50 20  |..-         CMP |
00006640  64 69 72 65 63 2c 23 33  3a 41 44 44 45 51 20 79  |direc,#3:ADDEQ y|
00006650  2c 79 2c 6f 66 66 2c 4c  53 4c 23 31 0d 1a 18 54  |,y,off,LSL#1...T|
00006660  20 20 20 20 20 20 20 20  20 43 4d 50 20 78 2c 6f  |         CMP x,o|
00006670  6c 64 78 3a 53 55 42 47  54 20 74 65 6d 70 2c 78  |ldx:SUBGT temp,x|
00006680  2c 6f 6c 64 78 3a 53 55  42 4c 45 20 74 65 6d 70  |,oldx:SUBLE temp|
00006690  2c 6f 6c 64 78 2c 78 3a  43 4d 50 20 74 65 6d 70  |,oldx,x:CMP temp|
000066a0  2c 23 31 36 3a 42 47 45  20 6e 78 74 6d 61 6e 32  |,#16:BGE nxtman2|
000066b0  0d 1a 22 54 20 20 20 20  20 20 20 20 20 43 4d 50  |.."T         CMP|
000066c0  20 79 2c 6f 6c 64 79 3a  53 55 42 47 54 20 74 65  | y,oldy:SUBGT te|
000066d0  6d 70 2c 79 2c 6f 6c 64  79 3a 53 55 42 4c 45 20  |mp,y,oldy:SUBLE |
000066e0  74 65 6d 70 2c 6f 6c 64  79 2c 79 3a 43 4d 50 20  |temp,oldy,y:CMP |
000066f0  74 65 6d 70 2c 23 31 36  3a 42 47 45 20 6e 78 74  |temp,#16:BGE nxt|
00006700  6d 61 6e 32 0d 1a 2c 42  20 20 20 20 20 20 20 20  |man2..,B        |
00006710  20 4c 44 52 20 74 65 6d  70 2c 5b 74 65 6d 70 32  | LDR temp,[temp2|
00006720  5d 3a 43 4d 50 20 74 65  6d 70 2c 23 32 35 35 3a  |]:CMP temp,#255:|
00006730  4d 4f 56 20 52 31 32 2c  23 30 3a 42 4e 45 20 6e  |MOV R12,#0:BNE n|
00006740  78 74 6d 61 6e 32 0d 1a  2d 1c 20 20 20 20 20 20  |xtman2..-.      |
00006750  20 20 20 53 54 52 20 52  31 32 2c 5b 74 65 6d 70  |   STR R12,[temp|
00006760  32 5d 0d 1a 2e 3a 20 20  20 20 20 20 20 20 20 4d  |2]...:         M|
00006770  4f 56 20 52 30 2c 23 33  3a 4d 56 4e 20 52 31 2c  |OV R0,#3:MVN R1,|
00006780  23 31 34 3a 4d 4f 56 20  52 32 2c 23 73 63 72 65  |#14:MOV R2,#scre|
00006790  61 6d 3a 4d 4f 56 20 52  33 2c 23 30 0d 1a 2f 20  |am:MOV R3,#0../ |
000067a0  20 20 20 20 20 20 20 20  20 53 57 49 20 22 53 6f  |         SWI "So|
000067b0  75 6e 64 5f 43 6f 6e 74  72 6f 6c 22 0d 1a 36 37  |und_Control"..67|
000067c0  2e 6e 78 74 6d 61 6e 32  20 41 44 52 20 74 65 6d  |.nxtman2 ADR tem|
000067d0  70 2c 72 78 3a 4c 44 4d  49 41 20 74 65 6d 70 2c  |p,rx:LDMIA temp,|
000067e0  7b 78 2c 79 2c 6f 66 66  2c 64 69 72 65 63 2c 52  |{x,y,off,direc,R|
000067f0  31 32 7d 0d 1a 40 3b 20  20 20 20 20 20 20 20 20  |12}..@;         |
00006800  4c 44 52 20 52 30 2c 72  6f 62 6f 6e 75 6d 3a 4d  |LDR R0,robonum:M|
00006810  4f 56 20 74 65 6d 70 2c  23 35 2a 34 3a 4d 55 4c  |OV temp,#5*4:MUL|
00006820  20 74 65 6d 70 32 2c 52  30 2c 74 65 6d 70 0d 1a  | temp2,R0,temp..|
00006830  4a 52 20 20 20 20 20 20  20 20 20 20 41 44 52 20  |JR          ADR |
00006840  74 65 6d 70 2c 72 6f 62  6f 64 61 74 61 3a 41 44  |temp,robodata:AD|
00006850  44 20 74 65 6d 70 2c 74  65 6d 70 2c 74 65 6d 70  |D temp,temp,temp|
00006860  32 3a 53 54 4d 49 41 20  74 65 6d 70 2c 7b 78 2c  |2:STMIA temp,{x,|
00006870  79 2c 6f 66 66 2c 64 69  72 65 63 2c 52 31 32 7d  |y,off,direc,R12}|
00006880  0d 1a 54 54 20 20 20 20  20 20 20 20 20 20 41 44  |..TT          AD|
00006890  44 20 52 30 2c 52 30 2c  23 31 3a 53 54 52 20 52  |D R0,R0,#1:STR R|
000068a0  30 2c 72 6f 62 6f 6e 75  6d 3a 4c 44 52 20 74 65  |0,robonum:LDR te|
000068b0  6d 70 2c 6d 61 78 62 6f  74 73 3a 43 4d 50 20 52  |mp,maxbots:CMP R|
000068c0  30 2c 74 65 6d 70 3a 42  4c 54 20 72 6f 62 6f 6c  |0,temp:BLT robol|
000068d0  6f 6f 70 31 0d 1a 5e 21  20 20 20 20 20 20 20 20  |oop1..^!        |
000068e0  20 4c 44 52 20 50 43 2c  62 61 63 6b 5f 66 72 6f  | LDR PC,back_fro|
000068f0  6d 5f 72 74 6e 0d 1a 68  19 2e 62 61 63 6b 5f 66  |m_rtn..h..back_f|
00006900  72 6f 6d 5f 72 74 6e 20  45 51 55 44 20 30 0d 1a  |rom_rtn EQUD 0..|
00006910  72 19 2e 6d 61 78 62 6f  74 73 20 45 51 55 44 20  |r..maxbots EQUD |
00006920  6e 75 6d 62 6f 74 73 0d  1a 7c 11 2e 64 65 61 74  |numbots..|..deat|
00006930  68 20 45 51 55 44 20 30  0d 1a 86 11 2e 72 68 61  |h EQUD 0.....rha|
00006940  6c 74 20 45 51 55 44 20  30 0d 1a 90 05 3a 0d 1a  |lt EQUD 0....:..|
00006950  9a 27 2e 72 65 64 72 61  77 72 6f 62 6f 74 73 20  |.'.redrawrobots |
00006960  53 54 52 20 52 31 34 2c  62 61 63 6b 5f 66 72 6f  |STR R14,back_fro|
00006970  6d 5f 72 74 6e 0d 1a a4  25 20 20 20 20 20 20 20  |m_rtn...%       |
00006980  20 20 4d 4f 56 20 52 30  2c 23 30 3a 53 54 52 20  |  MOV R0,#0:STR |
00006990  52 30 2c 72 6f 62 6f 6e  75 6d 0d 1a ae 3d 2e 72  |R0,robonum...=.r|
000069a0  6f 62 6f 6c 6f 6f 70 32  20 4c 44 52 20 52 30 2c  |oboloop2 LDR R0,|
000069b0  72 6f 62 6f 6e 75 6d 3a  4d 4f 56 20 74 65 6d 70  |robonum:MOV temp|
000069c0  2c 23 35 2a 34 3a 4d 55  4c 20 74 65 6d 70 32 2c  |,#5*4:MUL temp2,|
000069d0  52 30 2c 74 65 6d 70 0d  1a b8 52 20 20 20 20 20  |R0,temp...R     |
000069e0  20 20 20 20 20 41 44 52  20 74 65 6d 70 2c 72 6f  |     ADR temp,ro|
000069f0  62 6f 64 61 74 61 3a 41  44 44 20 74 65 6d 70 2c  |bodata:ADD temp,|
00006a00  74 65 6d 70 2c 74 65 6d  70 32 3a 4c 44 4d 49 41  |temp,temp2:LDMIA|
00006a10  20 74 65 6d 70 2c 7b 78  2c 79 2c 6f 66 66 2c 64  | temp,{x,y,off,d|
00006a20  69 72 65 63 2c 52 31 32  7d 0d 1a c2 37 20 20 20  |irec,R12}...7   |
00006a30  20 20 20 20 20 20 41 44  52 20 74 65 6d 70 2c 72  |      ADR temp,r|
00006a40  78 3a 53 54 4d 49 41 20  74 65 6d 70 2c 7b 78 2c  |x:STMIA temp,{x,|
00006a50  79 2c 6f 66 66 2c 64 69  72 65 63 2c 52 31 32 7d  |y,off,direc,R12}|
00006a60  0d 1a cc 3a 20 20 20 20  20 20 20 20 20 4c 44 52  |...:         LDR|
00006a70  20 78 2c 72 78 3a 4c 44  52 20 79 2c 72 79 3a 4c  | x,rx:LDR y,ry:L|
00006a80  44 52 20 64 69 72 65 63  2c 72 64 69 72 3a 4c 44  |DR direc,rdir:LD|
00006a90  52 20 6f 66 66 2c 72 6f  66 66 0d 1a d6 2c 20 20  |R off,roff...,  |
00006aa0  20 20 20 20 20 20 20 4c  44 52 20 73 63 72 2c 73  |       LDR scr,s|
00006ab0  63 72 65 65 6e 32 3a 4d  4f 56 20 74 65 6d 70 2c  |creen2:MOV temp,|
00006ac0  23 34 2a 33 32 30 0d 1a  e0 25 20 20 20 20 20 20  |#4*320...%      |
00006ad0  20 20 20 4d 4c 41 20 74  65 6d 70 32 2c 74 65 6d  |   MLA temp2,tem|
00006ae0  70 2c 67 72 69 64 79 2c  73 63 72 0d 1a ea 22 20  |p,gridy,scr..." |
00006af0  20 20 20 20 20 20 20 20  41 44 44 20 73 63 72 2c  |        ADD scr,|
00006b00  74 65 6d 70 32 2c 23 33  39 2a 33 32 30 0d 1a f4  |temp2,#39*320...|
00006b10  24 20 20 20 20 20 20 20  20 20 41 44 44 20 73 63  |$         ADD sc|
00006b20  72 2c 73 63 72 2c 67 72  69 64 78 2c 4c 53 4c 23  |r,scr,gridx,LSL#|
00006b30  32 0d 1a fe 38 20 20 20  20 20 20 20 20 43 4d 50  |2...8        CMP|
00006b40  20 64 69 72 65 63 2c 23  32 3a 4d 4f 56 47 45 20  | direc,#2:MOVGE |
00006b50  74 65 6d 70 32 2c 23 33  32 30 3a 4d 4f 56 4c 54  |temp2,#320:MOVLT|
00006b60  20 74 65 6d 70 32 2c 23  31 0d 1b 08 21 20 20 20  | temp2,#1...!   |
00006b70  20 20 20 20 20 4d 4c 41  20 73 63 72 2c 74 65 6d  |     MLA scr,tem|
00006b80  70 32 2c 6f 66 66 2c 73  63 72 0d 1b 12 33 20 20  |p2,off,scr...3  |
00006b90  20 20 20 20 20 20 4c 44  52 20 52 31 32 2c 72 64  |      LDR R12,rd|
00006ba0  65 61 64 3a 43 4d 50 20  52 31 32 2c 23 32 35 35  |ead:CMP R12,#255|
00006bb0  3a 42 45 51 20 72 6e 6f  74 64 65 64 33 0d 1b 1c  |:BEQ rnotded3...|
00006bc0  32 20 20 20 20 20 20 20  20 4c 44 52 20 74 65 6d  |2        LDR tem|
00006bd0  70 2c 64 65 61 74 68 3a  41 44 44 20 74 65 6d 70  |p,death:ADD temp|
00006be0  2c 74 65 6d 70 2c 52 31  32 2c 4c 53 52 23 31 0d  |,temp,R12,LSR#1.|
00006bf0  1b 26 49 20 20 20 20 20  20 20 20 42 49 43 20 74  |.&I        BIC t|
00006c00  65 6d 70 2c 74 65 6d 70  2c 23 25 31 31 3a 43 4d  |emp,temp,#%11:CM|
00006c10  50 20 52 31 32 2c 23 35  35 3a 41 44 44 4c 54 20  |P R12,#55:ADDLT |
00006c20  52 31 32 2c 52 31 32 2c  23 31 3a 53 54 52 20 52  |R12,R12,#1:STR R|
00006c30  31 32 2c 72 64 65 61 64  0d 1b 30 16 20 20 20 20  |12,rdead..0.    |
00006c40  20 20 20 20 42 20 6f 76  65 72 6c 69 76 65 0d 1b  |    B overlive..|
00006c50  3a 3a 2e 72 6e 6f 74 64  65 64 33 20 41 44 52 20  |::.rnotded3 ADR |
00006c60  74 65 6d 70 2c 72 6f 62  6f 74 72 74 6e 73 3a 41  |temp,robotrtns:A|
00006c70  44 44 20 74 65 6d 70 2c  74 65 6d 70 2c 64 69 72  |DD temp,temp,dir|
00006c80  65 63 2c 4c 53 4c 23 32  0d 1b 44 2e 2e 6f 76 65  |ec,LSL#2..D..ove|
00006c90  72 6c 69 76 65 20 41 44  52 20 52 31 34 2c 72 6f  |rlive ADR R14,ro|
00006ca0  62 6f 72 65 6e 64 65 7a  3a 4c 44 52 20 50 43 2c  |borendez:LDR PC,|
00006cb0  5b 74 65 6d 70 5d 0d 1b  4e 0f 2e 72 6f 62 6f 72  |[temp]..N..robor|
00006cc0  65 6e 64 65 7a 0d 1b 58  35 20 20 20 20 20 20 20  |endez..X5       |
00006cd0  20 4c 44 52 20 52 31 32  2c 72 64 65 61 64 3a 43  | LDR R12,rdead:C|
00006ce0  4d 50 20 52 31 32 2c 23  32 35 35 3a 42 4e 45 20  |MP R12,#255:BNE |
00006cf0  72 65 6e 64 75 70 64 61  74 65 0d 1b 62 33 20 20  |rendupdate..b3  |
00006d00  20 20 20 20 20 20 4c 44  52 20 52 31 32 2c 72 68  |      LDR R12,rh|
00006d10  61 6c 74 3a 43 4d 50 20  52 31 32 2c 23 30 3a 42  |alt:CMP R12,#0:B|
00006d20  4e 45 20 72 65 6e 64 75  70 64 61 74 65 0d 1b 6c  |NE rendupdate..l|
00006d30  23 20 20 20 20 20 20 20  20 43 4d 50 20 6f 66 66  |#        CMP off|
00006d40  2c 23 30 3a 42 45 51 20  72 6f 62 6f 6d 6f 76 65  |,#0:BEQ robomove|
00006d50  0d 1b 76 23 20 20 20 20  20 20 20 20 43 4d 50 20  |..v#        CMP |
00006d60  64 69 72 65 63 2c 23 31  3a 42 45 51 20 72 62 61  |direc,#1:BEQ rba|
00006d70  63 6b 77 0d 1b 80 23 20  20 20 20 20 20 20 20 43  |ckw...#        C|
00006d80  4d 50 20 64 69 72 65 63  2c 23 32 3a 42 45 51 20  |MP direc,#2:BEQ |
00006d90  72 62 61 63 6b 77 0d 1b  8a 35 20 20 20 20 20 20  |rbackw...5      |
00006da0  20 20 41 44 44 20 6f 66  66 2c 6f 66 66 2c 23 31  |  ADD off,off,#1|
00006db0  3a 43 4d 50 20 6f 66 66  2c 23 31 36 3a 42 4c 54  |:CMP off,#16:BLT|
00006dc0  20 72 65 6e 64 75 70 64  61 74 65 0d 1b 94 16 20  | rendupdate.... |
00006dd0  20 20 20 20 20 20 20 4d  4f 56 20 6f 66 66 2c 23  |       MOV off,#|
00006de0  30 0d 1b 9e 34 20 20 20  20 20 20 20 20 43 4d 50  |0...4        CMP|
00006df0  20 64 69 72 65 63 2c 23  30 3a 4c 44 52 45 51 20  | direc,#0:LDREQ |
00006e00  74 65 6d 70 2c 72 78 3a  4c 44 52 4e 45 20 74 65  |temp,rx:LDRNE te|
00006e10  6d 70 2c 72 79 0d 1b a8  38 20 20 20 20 20 20 20  |mp,ry...8       |
00006e20  20 41 44 44 20 74 65 6d  70 2c 74 65 6d 70 2c 23  | ADD temp,temp,#|
00006e30  34 3a 53 54 52 45 51 20  74 65 6d 70 2c 72 78 3a  |4:STREQ temp,rx:|
00006e40  53 54 52 4e 45 20 74 65  6d 70 2c 72 79 0d 1b b2  |STRNE temp,ry...|
00006e50  18 20 20 20 20 20 20 20  20 42 20 72 65 6e 64 75  |.        B rendu|
00006e60  70 64 61 74 65 0d 1b bc  1a 2e 72 62 61 63 6b 77  |pdate.....rbackw|
00006e70  20 53 55 42 20 6f 66 66  2c 6f 66 66 2c 23 31 0d  | SUB off,off,#1.|
00006e80  1b c6 1c 2e 72 65 6e 64  75 70 64 61 74 65 20 53  |....rendupdate S|
00006e90  54 52 20 6f 66 66 2c 72  6f 66 66 0d 1b d0 37 20  |TR off,roff...7 |
00006ea0  20 20 20 20 20 20 20 20  41 44 52 20 74 65 6d 70  |        ADR temp|
00006eb0  2c 72 78 3a 4c 44 4d 49  41 20 74 65 6d 70 2c 7b  |,rx:LDMIA temp,{|
00006ec0  78 2c 79 2c 6f 66 66 2c  64 69 72 65 63 2c 52 31  |x,y,off,direc,R1|
00006ed0  32 7d 0d 1b da 3b 20 20  20 20 20 20 20 20 20 4c  |2}...;         L|
00006ee0  44 52 20 52 30 2c 72 6f  62 6f 6e 75 6d 3a 4d 4f  |DR R0,robonum:MO|
00006ef0  56 20 74 65 6d 70 2c 23  35 2a 34 3a 4d 55 4c 20  |V temp,#5*4:MUL |
00006f00  74 65 6d 70 32 2c 52 30  2c 74 65 6d 70 0d 1b e4  |temp2,R0,temp...|
00006f10  4f 20 20 20 20 20 20 20  20 20 4c 44 52 20 74 65  |O         LDR te|
00006f20  6d 70 2c 72 6f 64 61 74  61 3a 41 44 44 20 74 65  |mp,rodata:ADD te|
00006f30  6d 70 2c 74 65 6d 70 2c  74 65 6d 70 32 3a 53 54  |mp,temp,temp2:ST|
00006f40  4d 49 41 20 74 65 6d 70  2c 7b 78 2c 79 2c 6f 66  |MIA temp,{x,y,of|
00006f50  66 2c 64 69 72 65 63 2c  52 31 32 7d 0d 1b ee 54  |f,direc,R12}...T|
00006f60  20 20 20 20 20 20 20 20  20 20 41 44 44 20 52 30  |          ADD R0|
00006f70  2c 52 30 2c 23 31 3a 53  54 52 20 52 30 2c 72 6f  |,R0,#1:STR R0,ro|
00006f80  62 6f 6e 75 6d 3a 4c 44  52 20 74 65 6d 70 2c 6d  |bonum:LDR temp,m|
00006f90  61 78 62 6f 74 73 3a 43  4d 50 20 52 30 2c 74 65  |axbots:CMP R0,te|
00006fa0  6d 70 3a 42 4c 54 20 72  6f 62 6f 6c 6f 6f 70 32  |mp:BLT roboloop2|
00006fb0  0d 1b f8 20 20 20 20 20  20 20 20 20 4c 44 52 20  |...         LDR |
00006fc0  50 43 2c 62 61 63 6b 5f  66 72 6f 6d 5f 72 74 6e  |PC,back_from_rtn|
00006fd0  0d 1c 02 16 2e 62 6c 6f  6b 65 31 20 45 51 55 44  |.....bloke1 EQUD|
00006fe0  28 6d 61 6e 31 29 0d 1c  0c 16 2e 62 6c 6f 6b 65  |(man1).....bloke|
00006ff0  32 20 45 51 55 44 28 6d  61 6e 32 29 0d 1c 16 1b  |2 EQUD(man2)....|
00007000  2e 72 6f 64 61 74 61 20  45 51 55 44 20 28 72 6f  |.rodata EQUD (ro|
00007010  62 6f 64 61 74 61 29 0d  1c 20 05 3a 0d 1c 2a 1c  |bodata).. .:..*.|
00007020  2e 73 63 72 65 65 6e 32  20 45 51 55 44 28 73 63  |.screen2 EQUD(sc|
00007030  72 5f 73 74 61 72 74 29  0d 1c 34 17 2e 73 65 65  |r_start)..4..see|
00007040  64 20 20 20 45 51 55 53  20 22 50 41 55 4c 22 0d  |d   EQUS "PAUL".|
00007050  1c 3e 15 2e 74 65 6d 70  63 68 65 63 6b 20 45 51  |.>..tempcheck EQ|
00007060  55 44 20 30 0d 1c 48 47  2e 70 72 69 64 69 72 20  |UD 0..HG.pridir |
00007070  45 51 55 44 20 26 30 31  30 33 30 32 30 30 3a 45  |EQUD &01030200:E|
00007080  51 55 44 20 26 30 30 30  33 30 32 30 31 3a 45 51  |QUD &00030201:EQ|
00007090  55 44 20 26 30 33 30 30  30 31 30 32 3a 45 51 55  |UD &03000102:EQU|
000070a0  44 20 26 30 32 30 30 30  31 30 33 0d 1c 52 1b 2e  |D &02000103..R..|
000070b0  72 6f 62 6f 6d 6f 76 65  20 20 4c 44 52 20 6f 66  |robomove  LDR of|
000070c0  66 2c 72 6f 66 66 0d 1c  5c 2a 20 20 20 20 20 20  |f,roff..\*      |
000070d0  20 20 4c 44 52 20 78 2c  72 78 3a 4c 44 52 20 79  |  LDR x,rx:LDR y|
000070e0  2c 72 79 3a 4d 4f 56 20  74 65 6d 70 2c 23 31 39  |,ry:MOV temp,#19|
000070f0  0d 1c 66 2d 20 20 20 20  20 20 20 20 4d 4c 41 20  |..f-        MLA |
00007100  73 70 6e 75 6d 2c 79 2c  74 65 6d 70 2c 78 3a 4c  |spnum,y,temp,x:L|
00007110  44 52 20 74 65 6d 70 2c  72 67 72 69 64 0d 1c 70  |DR temp,rgrid..p|
00007120  30 20 20 20 20 20 20 20  20 41 44 44 20 74 65 6d  |0        ADD tem|
00007130  70 2c 74 65 6d 70 2c 73  70 6e 75 6d 3a 41 44 44  |p,temp,spnum:ADD|
00007140  20 74 65 6d 70 2c 74 65  6d 70 2c 23 31 0d 1c 7a  | temp,temp,#1..z|
00007150  1a 20 20 20 20 20 20 20  20 4c 44 52 20 64 69 72  |.        LDR dir|
00007160  65 63 2c 72 64 69 72 0d  1c 84 38 20 20 20 20 20  |ec,rdir...8     |
00007170  20 20 20 41 44 52 20 74  65 6d 70 32 2c 70 72 69  |   ADR temp2,pri|
00007180  64 69 72 3a 41 44 44 20  74 65 6d 70 32 2c 74 65  |dir:ADD temp2,te|
00007190  6d 70 32 2c 64 69 72 65  63 2c 4c 53 4c 23 32 0d  |mp2,direc,LSL#2.|
000071a0  1c 8e 43 20 20 20 20 20  20 20 20 4c 44 52 20 52  |..C        LDR R|
000071b0  30 2c 73 65 65 64 3a 41  44 44 20 52 30 2c 52 30  |0,seed:ADD R0,R0|
000071c0  2c 52 30 2c 4c 53 52 23  31 3a 53 54 52 20 52 30  |,R0,LSR#1:STR R0|
000071d0  2c 73 65 65 64 3a 80 20  52 30 2c 52 30 2c 23 32  |,seed:. R0,R0,#2|
000071e0  35 35 0d 1c 98 33 20 20  20 20 20 20 20 20 43 4d  |55...3        CM|
000071f0  50 20 52 30 2c 23 31 32  38 3a 4c 44 52 4c 45 42  |P R0,#128:LDRLEB|
00007200  20 52 30 2c 5b 74 65 6d  70 32 5d 3a 42 4c 45 20  | R0,[temp2]:BLE |
00007210  72 6c 65 66 74 0d 1c a2  36 20 20 20 20 20 20 20  |rleft...6       |
00007220  20 43 4d 50 20 52 30 2c  23 31 37 36 3a 4c 44 52  | CMP R0,#176:LDR|
00007230  4c 45 42 20 52 30 2c 5b  74 65 6d 70 32 2c 23 31  |LEB R0,[temp2,#1|
00007240  5d 3a 42 4c 45 20 72 6c  65 66 74 0d 1c ac 36 20  |]:BLE rleft...6 |
00007250  20 20 20 20 20 20 20 43  4d 50 20 52 30 2c 23 32  |       CMP R0,#2|
00007260  32 34 3a 4c 44 52 4c 45  42 20 52 30 2c 5b 74 65  |24:LDRLEB R0,[te|
00007270  6d 70 32 2c 23 32 5d 3a  42 4c 45 20 72 6c 65 66  |mp2,#2]:BLE rlef|
00007280  74 0d 1c b6 1e 20 20 20  20 20 20 20 20 4c 44 52  |t....        LDR|
00007290  42 20 52 30 2c 5b 74 65  6d 70 32 2c 23 33 5d 0d  |B R0,[temp2,#3].|
000072a0  1c c0 28 2e 72 6c 65 66  74 20 20 4c 44 52 20 78  |..(.rleft  LDR x|
000072b0  2c 72 78 3a 43 4d 50 20  78 2c 23 30 3a 42 45 51  |,rx:CMP x,#0:BEQ|
000072c0  20 72 72 69 67 68 74 0d  1c ca 39 20 20 20 20 20  | rright...9     |
000072d0  20 20 20 4c 44 52 42 20  74 65 6d 70 32 2c 5b 74  |   LDRB temp2,[t|
000072e0  65 6d 70 2c 23 2d 34 5d  3a 43 4d 50 20 74 65 6d  |emp,#-4]:CMP tem|
000072f0  70 32 2c 23 33 3a 42 4e  45 20 72 72 69 67 68 74  |p2,#3:BNE rright|
00007300  0d 1c d4 20 20 20 20 20  20 20 20 20 43 4d 50 20  |...         CMP |
00007310  52 30 2c 23 31 3a 42 4e  45 20 72 72 69 67 68 74  |R0,#1:BNE rright|
00007320  0d 1c de 28 20 20 20 20  20 20 20 20 4c 44 52 20  |...(        LDR |
00007330  78 2c 72 78 3a 53 55 42  20 78 2c 78 2c 23 34 3a  |x,rx:SUB x,x,#4:|
00007340  53 54 52 20 78 2c 72 78  0d 1c e8 24 20 20 20 20  |STR x,rx...$    |
00007350  20 20 20 20 4d 4f 56 20  6f 66 66 2c 23 31 35 3a  |    MOV off,#15:|
00007360  53 54 52 20 6f 66 66 2c  72 6f 66 66 0d 1c f2 24  |STR off,roff...$|
00007370  20 20 20 20 20 20 20 20  53 54 52 20 52 30 2c 72  |        STR R0,r|
00007380  64 69 72 3a 42 20 72 65  6e 64 75 70 64 61 74 65  |dir:B rendupdate|
00007390  0d 1c fc 1d 2e 72 72 69  67 68 74 20 43 4d 50 20  |.....rright CMP |
000073a0  52 30 2c 23 30 3a 42 4e  45 20 72 75 70 0d 1d 06  |R0,#0:BNE rup...|
000073b0  28 20 20 20 20 20 20 20  20 4c 44 52 20 78 2c 72  |(        LDR x,r|
000073c0  78 3a 43 4d 50 20 78 2c  23 31 38 2a 34 3a 42 45  |x:CMP x,#18*4:BE|
000073d0  51 20 72 75 70 0d 1d 10  35 20 20 20 20 20 20 20  |Q rup...5       |
000073e0  20 4c 44 52 42 20 74 65  6d 70 32 2c 5b 74 65 6d  | LDRB temp2,[tem|
000073f0  70 2c 23 34 5d 3a 43 4d  50 20 74 65 6d 70 32 2c  |p,#4]:CMP temp2,|
00007400  23 33 3a 42 4e 45 20 72  75 70 0d 1d 1a 23 20 20  |#3:BNE rup...#  |
00007410  20 20 20 20 20 20 4d 4f  56 20 6f 66 66 2c 23 31  |      MOV off,#1|
00007420  3a 53 54 52 20 6f 66 66  2c 72 6f 66 66 0d 1d 24  |:STR off,roff..$|
00007430  24 20 20 20 20 20 20 20  20 53 54 52 20 52 30 2c  |$        STR R0,|
00007440  72 64 69 72 3a 42 20 72  65 6e 64 75 70 64 61 74  |rdir:B rendupdat|
00007450  65 0d 1d 2e 1f 2e 72 75  70 20 20 20 20 43 4d 50  |e.....rup    CMP|
00007460  20 52 30 2c 23 32 3a 42  4e 45 20 72 64 6f 77 6e  | R0,#2:BNE rdown|
00007470  0d 1d 38 27 20 20 20 20  20 20 20 20 4c 44 52 20  |..8'        LDR |
00007480  79 2c 72 79 3a 43 4d 50  20 79 2c 23 30 3a 42 45  |y,ry:CMP y,#0:BE|
00007490  51 20 72 64 6f 77 6e 0d  1d 42 3b 20 20 20 20 20  |Q rdown..B;     |
000074a0  20 20 20 4c 44 52 42 20  74 65 6d 70 32 2c 5b 74  |   LDRB temp2,[t|
000074b0  65 6d 70 2c 23 2d 31 39  2a 34 5d 3a 43 4d 50 20  |emp,#-19*4]:CMP |
000074c0  74 65 6d 70 32 2c 23 33  3a 42 4e 45 20 72 64 6f  |temp2,#3:BNE rdo|
000074d0  77 6e 0d 1d 4c 28 20 20  20 20 20 20 20 20 4c 44  |wn..L(        LD|
000074e0  52 20 79 2c 72 79 3a 53  55 42 20 79 2c 79 2c 23  |R y,ry:SUB y,y,#|
000074f0  34 3a 53 54 52 20 79 2c  72 79 0d 1d 56 24 20 20  |4:STR y,ry..V$  |
00007500  20 20 20 20 20 20 4d 4f  56 20 6f 66 66 2c 23 31  |      MOV off,#1|
00007510  35 3a 53 54 52 20 6f 66  66 2c 72 6f 66 66 0d 1d  |5:STR off,roff..|
00007520  60 24 20 20 20 20 20 20  20 20 53 54 52 20 52 30  |`$        STR R0|
00007530  2c 72 64 69 72 3a 42 20  72 65 6e 64 75 70 64 61  |,rdir:B rendupda|
00007540  74 65 0d 1d 6a 24 2e 72  64 6f 77 6e 20 20 43 4d  |te..j$.rdown  CM|
00007550  50 20 52 30 2c 23 33 3a  42 4e 45 20 72 65 6e 64  |P R0,#3:BNE rend|
00007560  75 70 64 61 74 65 0d 1d  74 2f 20 20 20 20 20 20  |update..t/      |
00007570  20 20 4c 44 52 20 79 2c  72 79 3a 43 4d 50 20 79  |  LDR y,ry:CMP y|
00007580  2c 23 31 32 2a 34 3a 42  45 51 20 72 65 6e 64 75  |,#12*4:BEQ rendu|
00007590  70 64 61 74 65 0d 1d 7e  3f 20 20 20 20 20 20 20  |pdate..~?       |
000075a0  20 4c 44 52 42 20 74 65  6d 70 32 2c 5b 74 65 6d  | LDRB temp2,[tem|
000075b0  70 2c 23 31 39 2a 34 5d  3a 43 4d 50 20 74 65 6d  |p,#19*4]:CMP tem|
000075c0  70 32 2c 23 33 3a 42 4e  45 20 72 65 6e 64 75 70  |p2,#3:BNE rendup|
000075d0  64 61 74 65 0d 1d 88 23  20 20 20 20 20 20 20 20  |date...#        |
000075e0  4d 4f 56 20 6f 66 66 2c  23 31 3a 53 54 52 20 6f  |MOV off,#1:STR o|
000075f0  66 66 2c 72 6f 66 66 0d  1d 92 24 20 20 20 20 20  |ff,roff...$     |
00007600  20 20 20 53 54 52 20 52  30 2c 72 64 69 72 3a 42  |   STR R0,rdir:B|
00007610  20 72 65 6e 64 75 70 64  61 74 65 0d 1d 9c 19 2e  | rendupdate.....|
00007620  72 67 72 69 64 20 45 51  55 44 28 67 72 69 64 64  |rgrid EQUD(gridd|
00007630  61 74 61 29 0d 1d a6 1c  2e 72 6f 62 6f 74 72 74  |ata).....robotrt|
00007640  6e 73 20 a4 72 65 73 65  72 76 65 28 34 2a 34 29  |ns .reserve(4*4)|
00007650  0d 1d b0 1b 20 20 20 20  20 20 20 20 a4 6d 79 73  |....        .mys|
00007660  74 65 72 79 5f 74 6f 6b  65 6e 73 0d 1d ba 05 5d  |tery_tokens....]|
00007670  0d 1d c4 07 3d 22 22 0d  1d ce 05 3a 0d 1d d8 0e  |....=""....:....|
00007680  dd f2 6c 6f 6f 70 67 61  6d 65 0d 1d ec 05 87 0d  |..loopgame......|
00007690  1d f7 06 fb 38 0d 1d fb  0e 6d 61 78 6c 65 76 65  |....8....maxleve|
000076a0  6c 3d 30 0d 1e 00 0f f5  20 6f 70 74 69 6f 6e 73  |l=0..... options|
000076b0  3d b9 0d 1e 0a 13 f2 62  6f 78 28 31 2c 35 2c 32  |=......box(1,5,2|
000076c0  33 2c 32 30 29 0d 1e 0f  07 f5 3a db 0d 1e 10 0f  |3,20).....:.....|
000076d0  e7 20 6f 70 74 69 6f 6e  73 20 8c 0d 1e 14 20 f1  |. options .... .|
000076e0  3a f2 70 72 28 22 20 20  31 2e 20 20 31 20 50 6c  |:.pr("  1.  1 Pl|
000076f0  61 79 65 72 20 67 61 6d  65 22 29 0d 1e 1e 20 f1  |ayer game")... .|
00007700  3a f2 70 72 28 22 20 20  32 2e 20 20 32 20 50 6c  |:.pr("  2.  2 Pl|
00007710  61 79 65 72 20 67 61 6d  65 22 29 0d 1e 28 1f f1  |ayer game")..(..|
00007720  3a f2 70 72 28 22 20 20  33 2e 20 20 49 6e 73 74  |:.pr("  3.  Inst|
00007730  72 75 63 74 69 6f 6e 73  22 29 0d 1e 32 19 f1 3a  |ructions")..2..:|
00007740  f2 70 72 28 22 20 20 34  2e 20 20 46 69 6e 69 73  |.pr("  4.  Finis|
00007750  68 22 29 0d 1e 3c 1c f1  27 3a f2 70 72 28 22 20  |h")..<..':.pr(" |
00007760  50 6c 65 61 73 65 20 73  65 6c 65 63 74 22 29 0d  |Please select").|
00007770  1e 3e 05 cc 0d 1e 40 0b  f2 73 68 6f 77 68 69 0d  |.>....@..showhi.|
00007780  1e 41 05 cd 0d 1e 42 15  6f 70 74 69 6f 6e 73 3d  |.A....B.options=|
00007790  ac 20 6f 70 74 69 6f 6e  73 0d 1e 46 28 43 48 3d  |. options..F(CH=|
000077a0  a6 28 31 35 30 30 29 3a  fd 20 43 48 3e 3d 97 28  |.(1500):. CH>=.(|
000077b0  22 31 22 29 20 80 20 43  48 3c 3d 97 28 22 34 22  |"1") . CH<=.("4"|
000077c0  29 0d 1e 48 0b c8 8e 20  43 48 20 ca 0d 1e 4a 16  |)..H... CH ...J.|
000077d0  c9 20 97 28 22 31 22 29  3a 20 f2 70 6c 61 79 6f  |. .("1"): .playo|
000077e0  6e 65 0d 1e 4c 16 c9 20  97 28 22 32 22 29 3a 20  |ne..L.. .("2"): |
000077f0  f2 70 6c 61 79 74 77 6f  0d 1e 4e 16 c9 20 97 28  |.playtwo..N.. .(|
00007800  22 33 22 29 3a 20 f2 69  6e 73 74 72 75 63 0d 1e  |"3"): .instruc..|
00007810  50 12 c9 20 97 28 22 34  22 29 3a 20 f2 66 69 6e  |P.. .("4"): .fin|
00007820  0d 1e 52 05 cb 0d 1e 6e  06 fd 30 0d 1e 78 05 e1  |..R....n..0..x..|
00007830  0d 1e 82 05 3a 0d 1e 8c  14 dd a4 6d 79 73 74 65  |....:......myste|
00007840  72 79 5f 74 6f 6b 65 6e  73 0d 1e 96 0d 5b 4f 50  |ry_tokens....[OP|
00007850  54 20 70 61 73 73 0d 1e  a0 19 2e 73 61 66 65 6d  |T pass.....safem|
00007860  20 a4 72 65 73 65 72 76  65 28 31 32 2a 34 29 0d  | .reserve(12*4).|
00007870  1e aa 18 2e 6d 73 65 65  64 20 45 51 55 53 20 28  |....mseed EQUS (|
00007880  22 54 43 45 4c 22 29 0d  1e b4 35 2e 6d 79 73 74  |"TCEL")...5.myst|
00007890  65 72 79 20 41 44 52 20  74 65 6d 70 2c 73 61 66  |ery ADR temp,saf|
000078a0  65 6d 3a 53 54 4d 49 41  20 74 65 6d 70 2c 7b 52  |em:STMIA temp,{R|
000078b0  30 2d 52 35 2c 52 37 2d  52 31 32 7d 0d 1e be 43  |0-R5,R7-R12}...C|
000078c0  20 20 20 20 20 20 20 20  20 4c 44 52 20 74 65 6d  |         LDR tem|
000078d0  70 2c 6d 73 65 65 64 3a  41 44 44 20 74 65 6d 70  |p,mseed:ADD temp|
000078e0  2c 74 65 6d 70 2c 74 65  6d 70 2c 4c 53 52 23 31  |,temp,temp,LSR#1|
000078f0  3a 53 54 52 20 74 65 6d  70 2c 6d 73 65 65 64 0d  |:STR temp,mseed.|
00007900  1e c8 37 20 20 20 20 20  20 20 20 20 80 20 74 65  |..7         . te|
00007910  6d 70 2c 74 65 6d 70 2c  23 32 35 35 3a 43 4d 50  |mp,temp,#255:CMP|
00007920  20 74 65 6d 70 2c 23 37  33 3a 42 47 45 20 74 6f  | temp,#73:BGE to|
00007930  6b 74 79 70 65 32 0d 1e  d2 2d 20 20 20 20 20 20  |ktype2...-      |
00007940  20 20 20 4c 44 52 20 74  61 62 6c 65 2c 72 67 72  |   LDR table,rgr|
00007950  69 64 3a 4d 4f 56 20 74  65 6d 70 32 2c 23 31 33  |id:MOV temp2,#13|
00007960  2a 31 39 0d 1e dc 3c 2e  65 63 6d 6c 6f 6f 70 20  |*19...<.ecmloop |
00007970  4c 44 52 42 20 74 65 6d  70 33 2c 5b 74 61 62 6c  |LDRB temp3,[tabl|
00007980  65 2c 23 31 5d 3a 43 4d  50 20 74 65 6d 70 33 2c  |e,#1]:CMP temp3,|
00007990  23 32 3a 42 4e 45 20 6e  6f 74 61 62 6f 6d 62 0d  |#2:BNE notabomb.|
000079a0  1e e6 2f 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |../         MOV |
000079b0  74 65 6d 70 33 2c 23 31  3a 53 54 52 42 20 74 65  |temp3,#1:STRB te|
000079c0  6d 70 33 2c 5b 74 61 62  6c 65 2c 23 32 5d 0d 1e  |mp3,[table,#2]..|
000079d0  f0 40 2e 6e 6f 74 61 62  6f 6d 62 20 41 44 44 20  |.@.notabomb ADD |
000079e0  74 61 62 6c 65 2c 74 61  62 6c 65 2c 23 34 3a 53  |table,table,#4:S|
000079f0  55 42 53 20 74 65 6d 70  32 2c 74 65 6d 70 32 2c  |UBS temp2,temp2,|
00007a00  23 31 3a 42 4e 45 20 65  63 6d 6c 6f 6f 70 0d 1e  |#1:BNE ecmloop..|
00007a10  fa 35 20 20 20 20 20 20  20 20 20 41 44 52 20 74  |.5         ADR t|
00007a20  65 6d 70 2c 73 61 66 65  6d 3a 4c 44 4d 49 41 20  |emp,safem:LDMIA |
00007a30  74 65 6d 70 2c 7b 52 30  2d 52 35 2c 52 37 2d 52  |temp,{R0-R5,R7-R|
00007a40  31 32 7d 0d 1f 04 17 20  20 20 20 20 20 20 20 20  |12}....         |
00007a50  4d 4f 56 20 50 43 2c 52  31 34 0d 1f 0e 28 2e 74  |MOV PC,R14...(.t|
00007a60  6f 6b 74 79 70 65 32 20  43 4d 50 20 74 65 6d 70  |oktype2 CMP temp|
00007a70  2c 23 31 34 36 3a 42 47  45 20 74 6f 6b 74 79 70  |,#146:BGE toktyp|
00007a80  65 33 0d 1f 18 39 20 20  20 20 20 20 20 20 20 4c  |e3...9         L|
00007a90  44 52 20 74 65 6d 70 2c  72 68 61 6c 74 3a 82 20  |DR temp,rhalt:. |
00007aa0  74 65 6d 70 2c 74 65 6d  70 2c 23 31 3a 53 54 52  |temp,temp,#1:STR|
00007ab0  20 74 65 6d 70 2c 72 68  61 6c 74 0d 1f 22 17 20  | temp,rhalt..". |
00007ac0  20 20 20 20 20 20 20 20  4d 4f 56 20 50 43 2c 52  |        MOV PC,R|
00007ad0  31 34 0d 1f 2c 28 2e 74  6f 6b 74 79 70 65 33 20  |14..,(.toktype3 |
00007ae0  43 4d 50 20 74 65 6d 70  2c 23 31 38 32 3a 42 47  |CMP temp,#182:BG|
00007af0  45 20 74 6f 6b 74 79 70  65 34 0d 1f 36 44 20 20  |E toktype4..6D  |
00007b00  20 20 20 20 20 20 20 4c  44 52 20 74 65 6d 70 2c  |       LDR temp,|
00007b10  6d 61 6e 73 74 61 74 73  3a 4c 44 52 42 20 74 65  |manstats:LDRB te|
00007b20  6d 70 32 2c 5b 74 65 6d  70 2c 23 33 5d 3a 82 20  |mp2,[temp,#3]:. |
00007b30  74 65 6d 70 32 2c 74 65  6d 70 32 2c 23 31 0d 1f  |temp2,temp2,#1..|
00007b40  40 2c 20 20 20 20 20 20  20 20 20 53 54 52 42 20  |@,         STRB |
00007b50  74 65 6d 70 32 2c 5b 74  65 6d 70 2c 23 33 5d 3a  |temp2,[temp,#3]:|
00007b60  4d 4f 56 20 50 43 2c 52  31 34 0d 1f 41 49 2e 74  |MOV PC,R14..AI.t|
00007b70  6f 6b 74 79 70 65 34 20  4c 44 52 20 74 65 6d 70  |oktype4 LDR temp|
00007b80  2c 6d 61 6e 64 65 61 64  3a 4d 4f 56 20 74 65 6d  |,mandead:MOV tem|
00007b90  70 32 2c 23 35 31 32 3a  53 54 52 20 74 65 6d 70  |p2,#512:STR temp|
00007ba0  32 2c 5b 74 65 6d 70 5d  3a 4d 4f 56 20 50 43 2c  |2,[temp]:MOV PC,|
00007bb0  52 31 34 0d 1f 42 05 3a  0d 1f 43 18 2e 6d 61 6e  |R14..B.:..C..man|
00007bc0  64 65 61 64 20 45 51 55  44 20 28 64 65 61 64 29  |dead EQUD (dead)|
00007bd0  0d 1f 4a 05 5d 0d 1f 54  07 3d 22 22 0d 1f 5e 05  |..J.]..T.=""..^.|
00007be0  3a 0d 1f 68 0f dd a4 73  63 6f 72 65 64 72 61 77  |:..h...scoredraw|
00007bf0  0d 1f 72 0a ea 20 74 65  6d 70 0d 1f 7c 37 6e 75  |..r.. temp..|7nu|
00007c00  6d 62 65 72 3d 30 3a 64  69 67 3d 31 3a 70 77 72  |mber=0:dig=1:pwr|
00007c10  3d 32 3a 70 77 72 6c 73  74 3d 33 3a 73 70 61 64  |=2:pwrlst=3:spad|
00007c20  64 72 3d 34 3a 73 63 72  3d 38 3a 74 65 6d 70 3d  |dr=4:scr=8:temp=|
00007c30  35 0d 1f 86 0d 5b 4f 50  54 20 70 61 73 73 0d 1f  |5....[OPT pass..|
00007c40  90 3a 2e 70 6f 77 65 72  73 31 30 20 45 51 55 44  |.:.powers10 EQUD|
00007c50  20 31 30 30 30 30 3a 45  51 55 44 20 31 30 30 30  | 10000:EQUD 1000|
00007c60  3a 45 51 55 44 20 31 30  30 3a 45 51 55 44 20 31  |:EQUD 100:EQUD 1|
00007c70  30 3a 45 51 55 44 20 31  0d 1f 9a 1c 2e 64 69 67  |0:EQUD 1.....dig|
00007c80  69 74 73 20 a4 72 65 73  65 72 76 65 28 31 30 2a  |its .reserve(10*|
00007c90  34 2a 38 29 0d 1f a4 34  2e 72 65 64 6f 73 63 6f  |4*8)...4.redosco|
00007ca0  72 65 20 41 44 52 20 70  77 72 6c 73 74 2c 70 6f  |re ADR pwrlst,po|
00007cb0  77 65 72 73 31 30 3a 41  44 52 20 73 70 61 64 64  |wers10:ADR spadd|
00007cc0  72 2c 64 69 67 69 74 73  0d 1f ae 3a 20 20 20 20  |r,digits...:    |
00007cd0  20 20 20 20 20 20 20 4c  44 52 20 6e 75 6d 62 65  |       LDR numbe|
00007ce0  72 2c 73 63 6f 72 65 3a  4c 44 52 20 52 37 2c 73  |r,score:LDR R7,s|
00007cf0  63 72 65 65 6e 3a 53 55  42 20 52 37 2c 52 37 2c  |creen:SUB R7,R7,|
00007d00  23 34 0d 1f b8 34 2e 70  6f 77 72 6c 6f 6f 70 20  |#4...4.powrloop |
00007d10  20 4c 44 52 20 70 77 72  2c 5b 70 77 72 6c 73 74  | LDR pwr,[pwrlst|
00007d20  5d 3a 41 44 44 20 70 77  72 6c 73 74 2c 70 77 72  |]:ADD pwrlst,pwr|
00007d30  6c 73 74 2c 23 34 0d 1f  c2 32 20 20 20 20 20 20  |lst,#4...2      |
00007d40  20 20 20 20 20 43 4d 50  20 70 77 72 2c 23 31 3a  |     CMP pwr,#1:|
00007d50  ec 51 20 64 69 67 2c 6e  75 6d 62 65 72 3a 42 45  |.Q dig,number:BE|
00007d60  51 20 6f 75 74 64 69 67  0d 1f cc 19 20 20 20 20  |Q outdig....    |
00007d70  20 20 20 20 20 20 20 4d  4f 56 20 64 69 67 2c 23  |       MOV dig,#|
00007d80  30 0d 1f d6 28 2e 64 69  67 6c 6f 6f 70 20 20 20  |0...(.digloop   |
00007d90  43 4d 50 20 6e 75 6d 62  65 72 2c 70 77 72 3a 42  |CMP number,pwr:B|
00007da0  4c 54 20 6f 75 74 64 69  67 0d 1f e0 24 20 20 20  |LT outdig...$   |
00007db0  20 20 20 20 20 20 20 20  53 55 42 20 6e 75 6d 62  |        SUB numb|
00007dc0  65 72 2c 6e 75 6d 62 65  72 2c 70 77 72 0d 1f ea  |er,number,pwr...|
00007dd0  27 20 20 20 20 20 20 20  20 20 20 20 41 44 44 20  |'           ADD |
00007de0  64 69 67 2c 64 69 67 2c  23 31 3a 42 20 64 69 67  |dig,dig,#1:B dig|
00007df0  6c 6f 6f 70 0d 1f f4 2d  2e 6f 75 74 64 69 67 20  |loop...-.outdig |
00007e00  20 20 20 4d 4f 56 20 74  65 6d 70 2c 64 69 67 2c  |   MOV temp,dig,|
00007e10  4c 53 4c 20 23 35 3a 4d  4f 56 20 64 69 67 2c 23  |LSL #5:MOV dig,#|
00007e20  30 0d 1f fe 39 20 20 20  20 20 20 20 20 20 20 20  |0...9           |
00007e30  4d 4f 56 20 73 63 72 2c  52 37 3a 41 44 44 20 73  |MOV scr,R7:ADD s|
00007e40  63 72 2c 73 63 72 2c 23  33 32 30 2a 34 3a 41 44  |cr,scr,#320*4:AD|
00007e50  44 20 52 37 2c 52 37 2c  23 34 0d 20 08 30 2e 64  |D R7,R7,#4. .0.d|
00007e60  69 67 6f 75 74 70 20 20  20 4c 44 52 20 52 36 2c  |igoutp   LDR R6,|
00007e70  5b 73 70 61 64 64 72 2c  74 65 6d 70 5d 3a 53 54  |[spaddr,temp]:ST|
00007e80  52 20 52 36 2c 5b 73 63  72 5d 0d 20 12 3f 20 20  |R R6,[scr]. .?  |
00007e90  20 20 20 20 20 20 20 20  20 41 44 44 20 73 63 72  |         ADD scr|
00007ea0  2c 73 63 72 2c 23 33 32  30 3a 41 44 44 20 74 65  |,scr,#320:ADD te|
00007eb0  6d 70 2c 74 65 6d 70 2c  23 34 3a 41 44 44 20 64  |mp,temp,#4:ADD d|
00007ec0  69 67 2c 64 69 67 2c 23  31 0d 20 1c 25 20 20 20  |ig,dig,#1. .%   |
00007ed0  20 20 20 20 20 20 20 20  43 4d 50 20 64 69 67 2c  |        CMP dig,|
00007ee0  23 38 3a 42 4c 54 20 64  69 67 6f 75 74 70 0d 20  |#8:BLT digoutp. |
00007ef0  26 26 20 20 20 20 20 20  20 20 20 20 20 43 4d 50  |&&           CMP|
00007f00  20 70 77 72 2c 23 31 3a  42 4e 45 20 70 6f 77 72  | pwr,#1:BNE powr|
00007f10  6c 6f 6f 70 0d 20 30 3c  20 20 20 20 20 20 20 20  |loop. 0<        |
00007f20  20 20 20 4c 44 52 20 6e  75 6d 62 65 72 2c 73 63  |   LDR number,sc|
00007f30  6f 72 65 3a 53 54 52 20  6e 75 6d 62 65 72 2c 6f  |ore:STR number,o|
00007f40  73 63 6f 72 65 3a 4d 4f  56 20 50 43 2c 52 31 34  |score:MOV PC,R14|
00007f50  0d 20 3a 05 5d 0d 20 44  07 3d 22 22 0d 20 4e 05  |. :.]. D.="". N.|
00007f60  3a 0d 20 58 16 dd f2 62  6f 78 28 58 31 2c 59 31  |:. X...box(X1,Y1|
00007f70  2c 58 32 2c 59 32 29 0d  20 62 14 ef 20 32 38 2c  |,X2,Y2). b.. 28,|
00007f80  58 31 2c 59 32 2c 58 32  2c 59 31 0d 20 6c 05 db  |X1,Y2,X2,Y1. l..|
00007f90  0d 20 76 0d e3 20 43 3d  30 20 b8 20 33 0d 20 80  |. v.. C=0 . 3. .|
00007fa0  09 e6 20 43 2a 34 0d 20  8a 41 c8 93 20 58 31 2a  |.. C*4. .A.. X1*|
00007fb0  33 32 2b 43 2a 34 2c 28  33 31 2d 59 32 29 2a 33  |32+C*4,(31-Y2)*3|
00007fc0  32 2b 43 2a 34 2c 28 31  2b 58 32 2d 58 31 29 2a  |2+C*4,(1+X2-X1)*|
00007fd0  33 32 2d 43 2a 38 2c 28  31 2b 59 32 2d 59 31 29  |32-C*8,(1+Y2-Y1)|
00007fe0  2a 33 32 2d 43 2a 38 0d  20 94 05 ed 0d 20 9e 1c  |*32-C*8. .... ..|
00007ff0  ef 20 32 38 2c 58 31 2b  31 2c 59 32 2d 31 2c 58  |. 28,X1+1,Y2-1,X|
00008000  32 2d 31 2c 59 31 2b 31  0d 20 a8 05 e1 0d 20 b2  |2-1,Y1+1. .... .|
00008010  05 3a 0d 20 bc 0d dd f2  70 6c 61 79 6f 6e 65 0d  |.:. ....playone.|
00008020  20 c6 05 db 0d 20 cb 21  21 70 6c 61 79 65 72 73  | .... .!!players|
00008030  3d 31 3a 21 73 63 6f 72  65 3d 30 3a 21 6f 73 63  |=1:!score=0:!osc|
00008040  6f 72 65 3d 31 0d 20 d0  13 e7 20 6d 61 78 6c 65  |ore=1. ... maxle|
00008050  76 65 6c 3c 3e 30 20 8c  0d 20 da 31 f1 27 27 3a  |vel<>0 .. .1.'':|
00008060  f2 70 72 28 22 53 74 61  72 74 20 6c 65 76 65 6c  |.pr("Start level|
00008070  20 3f 20 20 30 2d 22 2b  c3 28 6d 61 78 6c 65 76  | ?  0-"+.(maxlev|
00008080  65 6c 29 2b 22 20 3a 22  29 0d 20 e4 2b f5 3a 4c  |el)+" :"). .+.:L|
00008090  45 56 3d a5 2d 97 28 22  30 22 29 3a fd 20 4c 45  |EV=.-.("0"):. LE|
000080a0  56 3e 3d 30 20 80 20 4c  45 56 3c 3d 6d 61 78 6c  |V>=0 . LEV<=maxl|
000080b0  65 76 65 6c 0d 20 ee 05  db 0d 20 f8 05 cc 0d 20  |evel. .... .... |
000080c0  fd 0c 4c 45 56 3d 30 3a  ef 37 0d 20 fe 05 cd 0d  |..LEV=0:.7. ....|
000080d0  20 ff 10 73 74 61 72 74  6c 65 76 3d 4c 45 56 0d  | ..startlev=LEV.|
000080e0  21 02 21 f1 3a f2 63 65  6e 74 72 65 28 22 4c 65  |!.!.:.centre("Le|
000080f0  76 65 6c 20 22 2b c3 28  4c 45 56 29 2c 32 32 29  |vel "+.(LEV),22)|
00008100  0d 21 07 21 f1 27 3a f2  63 65 6e 74 72 65 28 22  |.!.!.':.centre("|
00008110  47 65 74 20 52 65 61 64  79 2e 2e 2e 22 2c 32 32  |Get Ready...",22|
00008120  29 0d 21 0c 0d 41 24 3d  bf 28 31 37 35 29 0d 21  |).!..A$=.(175).!|
00008130  16 15 6e 65 77 6c 65 76  3d b9 3a 6c 69 66 65 3d  |..newlev=.:life=|
00008140  31 3a f5 0d 21 20 4a e7  20 6e 65 77 6c 65 76 20  |1:..! J. newlev |
00008150  8c 20 f2 74 65 73 74 3a  6e 65 77 6c 65 76 3d a3  |. .test:newlev=.|
00008160  3a 8b 20 21 6d 61 6e 31  3d 35 31 32 3a 6d 61 6e  |:. !man1=512:man|
00008170  31 3f 32 33 3d 30 3a d6  69 6e 69 74 5f 73 63 72  |1?23=0:.init_scr|
00008180  65 65 6e 3a d6 6d 61 69  6e 70 72 6f 67 0d 21 25  |een:.mainprog.!%|
00008190  0b 2a 46 58 31 35 2c 31  0d 21 2a 15 e7 20 21 64  |.*FX15,1.!*.. !d|
000081a0  65 74 6f 6e 61 74 65 64  3c 3e 30 20 8c 0d 21 34  |etonated<>0 ..!4|
000081b0  54 f2 62 6f 78 28 31 30  2c 31 30 2c 33 30 2c 31  |T.box(10,10,30,1|
000081c0  35 29 3a f2 63 65 6e 74  72 65 28 22 52 65 61 63  |5):.centre("Reac|
000081d0  74 6f 72 20 65 78 70 6c  6f 73 69 6f 6e 21 22 2c  |tor explosion!",|
000081e0  31 38 29 3a f2 63 65 6e  74 72 65 28 22 4d 69 73  |18):.centre("Mis|
000081f0  73 69 6f 6e 20 61 62 6f  72 74 65 64 22 2c 31 38  |sion aborted",18|
00008200  29 0d 21 3e 14 41 24 3d  bf 28 31 37 35 29 3a 6c  |).!>.A$=.(175):l|
00008210  69 66 65 3d 34 0d 21 48  05 cc 0d 21 52 12 e7 20  |ife=4.!H...!R.. |
00008220  21 64 65 61 64 3e 3d 32  35 35 20 8c 0d 21 5c 2e  |!dead>=255 ..!\.|
00008230  f2 62 6f 78 28 31 31 2c  31 30 2c 32 38 2c 31 35  |.box(11,10,28,15|
00008240  29 3a f1 3a f2 70 72 28  22 20 4c 65 76 65 6c 20  |):.:.pr(" Level |
00008250  63 6f 6d 70 6c 65 74 65  22 29 0d 21 66 2c e7 20  |complete").!f,. |
00008260  4c 45 56 3c 39 20 8c 20  f2 70 72 28 22 20 4e 65  |LEV<9 . .pr(" Ne|
00008270  78 74 20 3a 20 6c 65 76  65 6c 20 22 2b c3 28 4c  |xt : level "+.(L|
00008280  45 56 2b 31 29 29 0d 21  6b 0d 41 24 3d bf 28 31  |EV+1)).!k.A$=.(1|
00008290  37 35 29 0d 21 70 31 4c  45 56 2b 3d 31 3a e7 20  |75).!p1LEV+=1:. |
000082a0  4c 45 56 3c 31 30 20 80  20 4c 45 56 3e 6d 61 78  |LEV<10 . LEV>max|
000082b0  6c 65 76 65 6c 20 8c 20  6d 61 78 6c 65 76 65 6c  |level . maxlevel|
000082c0  3d 4c 45 56 0d 21 75 0c  6e 65 77 6c 65 76 3d b9  |=LEV.!u.newlev=.|
000082d0  0d 21 7a 05 cc 0d 21 84  54 e7 20 6c 69 66 65 3c  |.!z...!.T. life<|
000082e0  33 20 8c 20 f2 62 6f 78  28 31 34 2c 31 30 2c 32  |3 . .box(14,10,2|
000082f0  35 2c 31 35 29 3a f1 3a  f2 70 72 28 22 4c 69 66  |5,15):.:.pr("Lif|
00008300  65 20 22 2b c3 28 6c 69  66 65 2b 31 29 29 3a f2  |e "+.(life+1)):.|
00008310  70 72 28 22 47 65 74 20  52 65 61 64 79 22 29 3a  |pr("Get Ready"):|
00008320  41 24 3d bf 28 31 37 35  29 0d 21 89 0b 6c 69 66  |A$=.(175).!..lif|
00008330  65 2b 3d 31 0d 21 8e 05  cd 0d 21 98 05 cd 0d 21  |e+=1.!....!....!|
00008340  a2 15 fd 20 6c 69 66 65  3e 33 20 84 20 4c 45 56  |... life>3 . LEV|
00008350  3d 31 30 0d 21 ac 1f e7  20 4c 45 56 3d 31 30 20  |=10.!... LEV=10 |
00008360  8c 20 f2 73 75 63 63 65  65 64 20 8b 20 f2 66 61  |. .succeed . .fa|
00008370  69 6c 0d 21 b1 28 e7 20  21 73 63 6f 72 65 3e 68  |il.!.(. !score>h|
00008380  69 73 63 28 30 29 20 8c  20 f2 61 64 64 73 63 6f  |isc(0) . .addsco|
00008390  72 65 28 21 73 63 6f 72  65 29 0d 21 b6 05 e1 0d  |re(!score).!....|
000083a0  21 c0 05 3a 0d 21 ca 12  dd f2 63 65 6e 74 72 65  |!..:.!....centre|
000083b0  28 4d 24 2c 57 29 0d 21  d4 1d f1 8a 28 57 2d a9  |(M$,W).!....(W-.|
000083c0  28 4d 24 29 29 20 81 20  32 29 3b 3a f2 70 72 28  |(M$)) . 2);:.pr(|
000083d0  4d 24 29 0d 21 de 05 e1  0d 21 e8 05 3a 0d 21 f2  |M$).!....!..:.!.|
000083e0  0a dd f2 66 61 69 6c 0d  21 fc 13 f2 62 6f 78 28  |...fail.!...box(|
000083f0  36 2c 38 2c 33 34 2c 31  39 29 0d 22 06 0a f7 20  |6,8,34,19)."... |
00008400  8d 54 6e 62 0d 22 10 1a  f5 3a f3 20 4d 24 3a f2  |.Tnb."...:. M$:.|
00008410  70 72 28 4d 24 29 3a fd  20 4d 24 3d 22 22 0d 22  |pr(M$):. M$=""."|
00008420  1a 0d 41 24 3d bf 28 37  35 30 29 0d 22 24 12 d6  |..A$=.(750)."$..|
00008430  69 6e 69 74 5f 73 63 72  65 65 6e 3a e1 0d 22 2e  |init_screen:..".|
00008440  16 dc 20 59 6f 75 27 72  65 20 64 65 61 64 2e 2c  |.. You're dead.,|
00008450  22 20 22 0d 22 38 1e dc  20 59 6f 75 20 63 6f 75  |" "."8.. You cou|
00008460  6c 64 6e 27 74 20 65 76  65 6e 20 6d 61 6e 61 67  |ldn't even manag|
00008470  65 0d 22 42 1f dc 20 77  69 74 68 20 33 20 6c 69  |e."B.. with 3 li|
00008480  76 65 73 2e 20 20 49 27  6d 20 67 69 76 69 6e 67  |ves.  I'm giving|
00008490  0d 22 4c 1e dc 20 74 68  65 20 63 6f 6e 74 72 61  |."L.. the contra|
000084a0  63 74 20 74 6f 20 73 6f  6d 65 62 6f 64 79 0d 22  |ct to somebody."|
000084b0  51 0d dc 20 65 6c 73 65  2e 2e 2e 0d 22 56 25 dc  |Q.. else...."V%.|
000084c0  20 22 20 22 2c 22 20 20  4c 75 6e 61 72 20 62 61  | " ","  Lunar ba|
000084d0  73 65 20 34 20 43 6f 6e  74 72 6f 6c 6c 65 72 22  |se 4 Controller"|
000084e0  0d 22 60 08 dc 20 22 22  0d 22 6a 05 3a 0d 22 74  |."`.. ""."j.:."t|
000084f0  0c dd f2 73 68 6f 77 68  69 0d 22 79 07 ea 20 49  |...showhi."y.. I|
00008500  0d 22 7e 05 db 0d 22 83  20 f2 70 72 28 22 4d 6f  |."~...". .pr("Mo|
00008510  6f 6e 71 75 61 6b 65 20  68 69 67 68 20 73 63 6f  |onquake high sco|
00008520  72 65 73 22 29 0d 22 84  05 f1 0d 22 88 12 e3 20  |res")."...."... |
00008530  49 3d 39 20 b8 20 30 20  88 20 2d 31 0d 22 92 21  |I=9 . 0 . -1.".!|
00008540  f1 20 68 69 73 63 28 49  29 3b 8a 37 29 3b 3a f2  |. hisc(I);.7);:.|
00008550  70 72 28 68 6e 61 6d 65  24 28 49 29 29 0d 22 9c  |pr(hname$(I)).".|
00008560  05 ed 0d 22 a6 05 e1 0d  22 b0 05 3a 0d 22 ba 11  |..."...."..:."..|
00008570  dd f2 61 64 64 73 63 6f  72 65 28 53 29 0d 22 c4  |..addscore(S).".|
00008580  10 d6 69 6e 69 74 5f 73  63 72 65 65 6e 0d 22 ce  |..init_screen.".|
00008590  14 f2 62 6f 78 28 39 2c  31 30 2c 33 31 2c 32 36  |..box(9,10,31,26|
000085a0  29 0d 22 d8 11 49 3d 31  3a 66 6f 75 6e 64 3d a3  |)."..I=1:found=.|
000085b0  3a f5 0d 22 e2 5f e7 20  68 69 73 63 28 49 29 3e  |:.."._. hisc(I)>|
000085c0  53 20 8c 20 68 69 73 63  28 49 2d 31 29 3d 53 3a  |S . hisc(I-1)=S:|
000085d0  68 6e 61 6d 65 24 28 49  2d 31 29 3d 22 22 3a 66  |hname$(I-1)="":f|
000085e0  6f 75 6e 64 3d b9 20 20  8b 20 68 69 73 63 28 49  |ound=.  . hisc(I|
000085f0  2d 31 29 3d 68 69 73 63  28 49 29 3a 68 6e 61 6d  |-1)=hisc(I):hnam|
00008600  65 24 28 49 2d 31 29 3d  68 6e 61 6d 65 24 28 49  |e$(I-1)=hname$(I|
00008610  29 0d 22 ec 08 49 2b 3d  31 0d 22 f1 1c e7 20 68  |)."..I+=1."... h|
00008620  69 73 63 28 49 2d 31 29  3e 53 20 ef 37 3a 66 6f  |isc(I-1)>S .7:fo|
00008630  75 6e 64 3d b9 0d 22 f2  3a e7 20 49 3d 31 30 20  |und=..".:. I=10 |
00008640  80 20 ac 20 66 6f 75 6e  64 20 8c 20 68 69 73 63  |. . found . hisc|
00008650  28 39 29 3d 53 3a 68 6e  61 6d 65 24 28 39 29 3d  |(9)=S:hname$(9)=|
00008660  22 22 3a 49 3d 31 31 3a  66 6f 75 6e 64 3d b9 0d  |"":I=11:found=..|
00008670  22 f6 0b fd 20 66 6f 75  6e 64 0d 23 00 11 49 59  |"... found.#..IY|
00008680  3d 31 33 2d 49 3a 4e 24  3d 22 22 0d 23 05 0d f2  |=13-I:N$="".#...|
00008690  73 68 6f 77 68 69 3a f1  0d 23 06 19 f2 70 72 28  |showhi:..#...pr(|
000086a0  22 45 6e 74 65 72 20 6e  61 6d 65 2e 2e 2e 2e 22  |"Enter name...."|
000086b0  29 0d 23 07 19 fb 36 33  3a f1 8a 37 2c 49 59 29  |).#...63:..7,IY)|
000086c0  3b bd 31 33 35 3b 3a fb  20 38 0d 23 0a 09 f5 3a  |;.135;:. 8.#...:|
000086d0  41 3d a5 0d 23 14 1f e7  20 28 41 3d 38 20 84 20  |A=..#... (A=8 . |
000086e0  41 3d 31 32 37 29 20 80  20 a9 28 4e 24 29 3e 30  |A=127) . .(N$)>0|
000086f0  20 8c 0d 23 15 13 4e 24  3d c0 4e 24 2c a9 28 4e  | ..#..N$=.N$,.(N|
00008700  24 29 2d 31 29 0d 23 16  05 cc 0d 23 1e 31 e7 20  |$)-1).#....#.1. |
00008710  41 3c 3e 38 20 80 20 41  3c 3e 31 32 37 20 80 20  |A<>8 . A<>127 . |
00008720  41 3c 3e 31 33 20 80 20  a9 28 4e 24 29 3c 31 33  |A<>13 . .(N$)<13|
00008730  20 8c 20 4e 24 3d 4e 24  2b bd 41 0d 23 23 05 cd  | . N$=N$+.A.##..|
00008740  0d 23 28 1f f1 8a 37 2c  49 59 29 3b 4e 24 3b 3a  |.#(...7,IY);N$;:|
00008750  fb 20 36 33 3a f1 3b bd  31 33 35 3b 3a fb 38 0d  |. 63:.;.135;:.8.|
00008760  23 2d 1d e7 20 41 3d 38  20 84 20 41 3d 31 32 37  |#-.. A=8 . A=127|
00008770  20 8c 20 f1 3b 22 20 22  3a 8b 20 f1 0d 23 32 0a  | . .;" ":. ..#2.|
00008780  fd 20 41 3d 31 33 0d 23  3c 12 68 6e 61 6d 65 24  |. A=13.#<.hname$|
00008790  28 49 2d 32 29 3d 4e 24  0d 23 46 0b f2 73 68 6f  |(I-2)=N$.#F..sho|
000087a0  77 68 69 0d 23 50 0d 41  24 3d bf 28 35 30 30 29  |whi.#P.A$=.(500)|
000087b0  0d 23 5a 10 d6 69 6e 69  74 5f 73 63 72 65 65 6e  |.#Z..init_screen|
000087c0  0d 23 64 05 e1 0d 23 6e  05 3a 0d 23 78 0d dd f2  |.#d...#n.:.#x...|
000087d0  70 6c 61 79 74 77 6f 0d  23 82 21 21 70 6c 61 79  |playtwo.#.!!play|
000087e0  65 72 73 3d 32 3a 21 73  63 6f 72 65 3d 30 3a 21  |ers=2:!score=0:!|
000087f0  6f 73 63 6f 72 65 3d 31  0d 23 8c 23 db 3a f1 27  |oscore=1.#.#.:.'|
00008800  27 3a f2 70 72 28 22 53  74 61 72 74 20 6c 65 76  |':.pr("Start lev|
00008810  65 6c 20 3f 20 20 30 2d  39 22 29 0d 23 96 24 f5  |el ?  0-9").#.$.|
00008820  3a 4c 45 56 3d a5 2d 97  28 22 30 22 29 3a fd 20  |:LEV=.-.("0"):. |
00008830  4c 45 56 3e 3d 30 20 80  20 4c 45 56 3c 3d 39 0d  |LEV>=0 . LEV<=9.|
00008840  23 a0 20 f1 27 27 27 3a  f2 63 65 6e 74 72 65 28  |#. .''':.centre(|
00008850  22 47 65 74 20 52 65 61  64 79 22 2c 32 32 29 0d  |"Get Ready",22).|
00008860  23 aa 0d 41 24 3d bf 28  31 37 35 29 0d 23 af 11  |#..A$=.(175).#..|
00008870  72 65 64 3d 33 3a 67 72  65 65 6e 3d 33 0d 23 b4  |red=3:green=3.#.|
00008880  14 46 49 4e 3d a3 3a 6e  65 77 6c 65 76 3d b9 3a  |.FIN=.:newlev=.:|
00008890  f5 0d 23 be 36 e7 20 6e  65 77 6c 65 76 20 8c 20  |..#.6. newlev . |
000088a0  f2 74 65 73 74 3a 6e 65  77 6c 65 76 3d a3 3a 8b  |.test:newlev=.:.|
000088b0  20 d6 69 6e 69 74 5f 73  63 72 65 65 6e 3a d6 6d  | .init_screen:.m|
000088c0  61 69 6e 70 72 6f 67 0d  23 c8 0b 2a 46 58 31 35  |ainprog.#..*FX15|
000088d0  2c 31 0d 23 d2 15 e7 20  21 64 65 74 6f 6e 61 74  |,1.#... !detonat|
000088e0  65 64 3c 3e 30 20 8c 0d  23 dc 54 f2 62 6f 78 28  |ed<>0 ..#.T.box(|
000088f0  31 30 2c 31 30 2c 33 30  2c 31 35 29 3a f2 63 65  |10,10,30,15):.ce|
00008900  6e 74 72 65 28 22 52 65  61 63 74 6f 72 20 65 78  |ntre("Reactor ex|
00008910  70 6c 6f 73 69 6f 6e 21  22 2c 31 38 29 3a f2 63  |plosion!",18):.c|
00008920  65 6e 74 72 65 28 22 4d  69 73 73 69 6f 6e 20 61  |entre("Mission a|
00008930  62 6f 72 74 65 64 22 2c  31 38 29 0d 23 e6 13 41  |borted",18).#..A|
00008940  24 3d bf 28 31 37 35 29  3a 46 49 4e 3d b9 0d 23  |$=.(175):FIN=..#|
00008950  f0 05 cc 0d 23 fa 1d e7  20 21 6d 61 6e 31 3c 32  |....#... !man1<2|
00008960  35 35 20 80 20 21 6d 61  6e 32 3c 32 35 35 20 8c  |55 . !man2<255 .|
00008970  0d 24 04 4c f2 62 6f 78  28 31 30 2c 31 30 2c 33  |.$.L.box(10,10,3|
00008980  30 2c 31 35 29 3a f2 63  65 6e 74 72 65 28 22 42  |0,15):.centre("B|
00008990  6f 74 68 20 64 65 61 64  21 22 2c 31 38 29 3a f2  |oth dead!",18):.|
000089a0  63 65 6e 74 72 65 28 22  4d 69 73 73 69 6f 6e 20  |centre("Mission |
000089b0  61 62 6f 72 74 65 64 22  2c 31 38 29 0d 24 0e 13  |aborted",18).$..|
000089c0  41 24 3d bf 28 31 37 35  29 3a 46 49 4e 3d b9 0d  |A$=.(175):FIN=..|
000089d0  24 18 05 cc 0d 24 22 15  f2 62 6f 78 28 31 30 2c  |$....$"..box(10,|
000089e0  31 30 2c 33 30 2c 31 35  29 0d 24 23 11 e7 20 21  |10,30,15).$#.. !|
000089f0  6d 61 6e 31 3c 32 35 35  20 8c 0d 24 24 17 44 24  |man1<255 ..$$.D$|
00008a00  3d 22 47 72 65 65 6e 22  3a 67 72 65 65 6e 2d 3d  |="Green":green-=|
00008a10  31 0d 24 25 17 21 6d 61  6e 31 3d 35 31 32 3a 6d  |1.$%.!man1=512:m|
00008a20  61 6e 31 3f 32 33 3d 30  0d 24 26 05 cc 0d 24 27  |an1?23=0.$&...$'|
00008a30  27 44 24 3d 22 52 65 64  22 3a 72 65 64 2d 3d 31  |'D$="Red":red-=1|
00008a40  3a 21 6d 61 6e 32 3d 35  31 32 3a 6d 61 6e 32 3f  |:!man2=512:man2?|
00008a50  32 33 3d 30 0d 24 28 05  cd 0d 24 29 17 e7 20 67  |23=0.$(...$).. g|
00008a60  72 65 65 6e 3d 30 20 84  20 72 65 64 3d 30 20 8c  |reen=0 . red=0 .|
00008a70  0d 24 2a 1d f1 3a f2 63  65 6e 74 72 65 28 44 24  |.$*..:.centre(D$|
00008a80  2b 22 20 6c 6f 73 65 73  22 2c 31 38 29 0d 24 2b  |+" loses",18).$+|
00008a90  09 46 49 4e 3d b9 0d 24  2c 05 cc 0d 24 2d 3f f2  |.FIN=..$,...$-?.|
00008aa0  63 65 6e 74 72 65 28 22  52 65 64 20 3a 20 22 2b  |centre("Red : "+|
00008ab0  c3 28 72 65 64 29 2c 31  38 29 3a f2 63 65 6e 74  |.(red),18):.cent|
00008ac0  72 65 28 22 47 72 65 65  6e 20 3a 20 22 2b c3 28  |re("Green : "+.(|
00008ad0  67 72 65 65 6e 29 2c 31  38 29 0d 24 2e 05 cd 0d  |green),18).$....|
00008ae0  24 2f 0e f2 77 61 69 74  28 31 35 30 29 0d 24 40  |$/..wait(150).$@|
00008af0  05 cd 0d 24 4a 05 cd 0d  24 54 09 fd 20 46 49 4e  |...$J...$T.. FIN|
00008b00  0d 24 5e 10 d6 69 6e 69  74 5f 73 63 72 65 65 6e  |.$^..init_screen|
00008b10  0d 24 68 05 e1 0d 24 72  05 3a 0d 24 7c 11 dd f2  |.$h...$r.:.$|...|
00008b20  77 61 69 74 28 64 65 6c  61 79 29 0d 24 86 07 54  |wait(delay).$..T|
00008b30  3d 91 0d 24 90 0f f5 fd  91 3e 54 2b 64 65 6c 61  |=..$.....>T+dela|
00008b40  79 0d 24 9a 05 e1 0d 24  a4 05 3a 0d 24 ae 0c dd  |y.$....$..:.$...|
00008b50  f2 70 72 28 4d 24 29 0d  24 b8 07 ea 20 49 0d 24  |.pr(M$).$... I.$|
00008b60  bc 08 fb 20 36 33 0d 24  bd 0d f1 bd 31 33 35 3b  |... 63.$....135;|
00008b70  3a c8 96 0d 24 c2 11 e3  20 49 3d 31 20 b8 20 a9  |:...$... I=1 . .|
00008b80  28 4d 24 29 0d 24 c7 07  fb 20 38 0d 24 cc 1f f1  |(M$).$... 8.$...|
00008b90  bd 31 32 37 3b c1 4d 24  2c 49 2c 31 29 3b 3a fb  |.127;.M$,I,1);:.|
00008ba0  36 33 3a f1 3b bd 31 33  35 3b 0d 24 d6 23 e7 20  |63:.;.135;.$.#. |
00008bb0  c1 4d 24 2c 49 2c 31 29  3c 3e 22 20 22 20 8c 20  |.M$,I,1)<>" " . |
00008bc0  d4 32 2c 2d 34 2c 31 35  30 30 30 2c 30 0d 24 e0  |.2,-4,15000,0.$.|
00008bd0  06 c8 96 0d 24 ea 05 ed  0d 24 ee 06 fb 38 0d 24  |....$....$...8.$|
00008be0  ef 0d f1 bd 31 32 37 3b  bd 33 32 0d 24 f0 0c d4  |....127;.32.$...|
00008bf0  32 2c 30 2c 30 2c 30 0d  24 f1 1a e7 20 a9 28 4d  |2,0,0,0.$... .(M|
00008c00  24 29 3d 32 31 20 8c 20  f1 8a 30 2c bc 2d 31 29  |$)=21 . ..0,.-1)|
00008c10  3b 0d 24 f4 05 e1 0d 24  fe 05 3a 0d 25 08 0d dd  |;.$....$..:.%...|
00008c20  f2 69 6e 73 74 72 75 63  0d 25 12 05 db 0d 25 1c  |.instruc.%....%.|
00008c30  1f f2 70 72 28 22 41 63  63 65 73 73 69 6e 67 20  |..pr("Accessing |
00008c40  72 65 63 6f 72 64 73 2e  2e 2e 22 29 0d 25 26 10  |records...").%&.|
00008c50  f2 77 61 69 74 28 31 30  30 29 3a db 0d 25 30 26  |.wait(100):..%0&|
00008c60  f2 70 72 28 22 44 41 54  45 20 3a 20 30 38 2f 30  |.pr("DATE : 08/0|
00008c70  35 2f 32 30 30 37 22 29  3a f2 77 61 69 74 28 35  |5/2007"):.wait(5|
00008c80  30 29 0d 25 3a 1e f2 70  72 28 22 57 6f 72 6b 20  |0).%:..pr("Work |
00008c90  62 65 67 69 6e 73 20 6f  6e 20 66 69 76 65 22 29  |begins on five")|
00008ca0  0d 25 44 1c f2 70 72 28  22 73 74 72 75 63 74 75  |.%D..pr("structu|
00008cb0  72 65 73 20 6f 6e 20 74  68 65 22 29 0d 25 4e 1f  |res on the").%N.|
00008cc0  f2 70 72 28 22 6c 75 6e  61 72 20 73 75 72 66 61  |.pr("lunar surfa|
00008cd0  63 65 2e 20 20 45 61 63  68 22 29 0d 25 58 1c f2  |ce.  Each").%X..|
00008ce0  70 72 28 22 77 69 6c 6c  20 68 61 76 65 20 69 74  |pr("will have it|
00008cf0  73 20 6f 77 6e 22 29 0d  25 62 1c f2 70 72 28 22  |s own").%b..pr("|
00008d00  66 75 6e 63 74 69 6f 6e  20 61 6e 64 20 77 69 6c  |function and wil|
00008d10  6c 22 29 0d 25 6c 1c f2  70 72 28 22 72 65 6c 79  |l").%l..pr("rely|
00008d20  20 6f 6e 20 74 68 65 20  6f 74 68 65 72 22 29 0d  | on the other").|
00008d30  25 76 20 f2 70 72 28 22  66 6f 75 72 20 74 6f 20  |%v .pr("four to |
00008d40  62 65 20 63 6f 6d 70 6c  65 74 65 6c 79 22 29 0d  |be completely").|
00008d50  25 80 19 f2 70 72 28 22  6f 70 65 72 61 74 69 6f  |%...pr("operatio|
00008d60  6e 61 6c 2e 22 29 3a f1  0d 25 8a 20 f2 70 72 28  |nal."):..%. .pr(|
00008d70  22 3c 53 50 41 43 45 3e  20 74 6f 20 63 6f 6e 74  |"<SPACE> to cont|
00008d80  69 6e 75 65 2e 2e 22 29  0d 25 94 0a f5 fd a5 3d  |inue..").%.....=|
00008d90  33 32 0d 25 99 05 db 0d  25 9e 26 f2 70 72 28 22  |32.%....%.&.pr("|
00008da0  44 41 54 45 20 3a 20 32  31 2f 30 36 2f 32 30 31  |DATE : 21/06/201|
00008db0  34 22 29 3a f2 77 61 69  74 28 35 30 29 0d 25 a8  |4"):.wait(50).%.|
00008dc0  1d f2 70 72 28 22 4c 75  6e 61 72 20 62 61 73 65  |..pr("Lunar base|
00008dd0  73 20 62 65 63 6f 6d 65  22 29 0d 25 b2 1d f2 70  |s become").%...p|
00008de0  72 28 22 66 75 6c 6c 79  20 6f 70 65 72 61 74 69  |r("fully operati|
00008df0  6f 6e 61 6c 2e 22 29 0d  25 bc 15 f2 70 72 28 22  |onal.").%...pr("|
00008e00  46 75 6e 63 74 69 6f 6e  73 3a 22 29 0d 25 c6 1f  |Functions:").%..|
00008e10  f2 70 72 28 22 31 2d 4c  61 6e 64 69 6e 67 2f 4c  |.pr("1-Landing/L|
00008e20  61 75 6e 63 68 69 6e 67  2c 22 29 0d 25 d0 20 f2  |aunching,").%. .|
00008e30  70 72 28 22 20 20 69 6e  63 6f 6d 69 6e 67 20 26  |pr("  incoming &|
00008e40  20 6f 75 74 67 6f 69 6e  67 22 29 0d 25 da 1c f2  | outgoing").%...|
00008e50  70 72 28 22 32 2d 4c 69  76 69 6e 67 20 71 75 61  |pr("2-Living qua|
00008e60  72 74 65 72 73 22 29 0d  25 e4 1e f2 70 72 28 22  |rters").%...pr("|
00008e70  33 2d 4c 61 62 73 20 61  6e 64 20 77 6f 72 6b 73  |3-Labs and works|
00008e80  68 6f 70 22 29 0d 25 ee  20 f2 70 72 28 22 34 2d  |hop").%. .pr("4-|
00008e90  45 6e 65 72 67 79 20 61  6e 64 20 61 69 72 20 67  |Energy and air g|
00008ea0  65 6e 2e 22 29 0d 25 f8  1d f2 70 72 28 22 35 2d  |en.").%...pr("5-|
00008eb0  53 74 6f 72 61 67 65 20  61 6e 64 20 62 61 73 65  |Storage and base|
00008ec0  22 29 0d 26 02 18 f2 70  72 28 22 20 20 6d 61 69  |").&...pr("  mai|
00008ed0  6e 74 65 6e 61 6e 63 65  22 29 0d 26 07 05 f1 0d  |ntenance").&....|
00008ee0  26 0c 1e f2 70 72 28 22  3c 53 50 41 43 45 3e 20  |&...pr("<SPACE> |
00008ef0  74 6f 20 63 6f 6e 74 69  6e 75 65 22 29 0d 26 16  |to continue").&.|
00008f00  0a f5 fd a5 3d 33 32 0d  26 1b 05 db 0d 26 20 26  |....=32.&....& &|
00008f10  f2 70 72 28 22 44 41 54  45 20 3a 20 32 37 2f 30  |.pr("DATE : 27/0|
00008f20  31 2f 32 30 32 36 22 29  3a f2 77 61 69 74 28 35  |1/2026"):.wait(5|
00008f30  30 29 0d 26 2a 1e f2 70  72 28 22 41 20 6c 61 72  |0).&*..pr("A lar|
00008f40  67 65 20 6d 65 74 65 6f  72 20 68 69 74 73 22 29  |ge meteor hits")|
00008f50  0d 26 34 1d f2 70 72 28  22 74 68 65 20 73 75 72  |.&4..pr("the sur|
00008f60  66 61 63 65 20 6f 66 20  74 68 65 22 29 0d 26 3e  |face of the").&>|
00008f70  20 f2 70 72 28 22 6d 6f  6f 6e 20 33 38 2e 32 20  | .pr("moon 38.2 |
00008f80  4b 6d 20 66 72 6f 6d 20  74 68 65 22 29 0d 26 48  |Km from the").&H|
00008f90  1c f2 70 72 28 22 6c 75  6e 61 72 20 62 61 73 65  |..pr("lunar base|
00008fa0  2e 20 20 42 61 73 65 22  29 0d 26 52 1d f2 70 72  |.  Base").&R..pr|
00008fb0  28 22 73 65 63 74 69 6f  6e 20 34 20 72 65 63 65  |("section 4 rece|
00008fc0  69 76 65 73 22 29 0d 26  5c 20 f2 70 72 28 22 73  |ives").&\ .pr("s|
00008fd0  74 75 63 74 75 72 61 6c  20 64 61 6d 61 67 65 20  |tuctural damage |
00008fe0  66 72 6f 6d 22 29 0d 26  66 1e f2 70 72 28 22 73  |from").&f..pr("s|
00008ff0  68 6f 63 6b 77 61 76 65  73 2c 20 66 6f 72 63 69  |hockwaves, forci|
00009000  6e 67 22 29 0d 26 70 18  f2 70 72 28 22 69 74 20  |ng").&p..pr("it |
00009010  6f 66 66 6c 69 6e 65 2e  2e 2e 22 29 0d 26 7a 22  |offline...").&z"|
00009020  f1 3a f2 70 72 28 22 3c  53 50 41 43 45 3e 20 74  |.:.pr("<SPACE> t|
00009030  6f 20 63 6f 6e 74 69 6e  75 65 2e 2e 22 29 0d 26  |o continue..").&|
00009040  84 0a f5 fd a5 3d 33 32  0d 26 89 05 db 0d 26 8e  |.....=32.&....&.|
00009050  26 f2 70 72 28 22 44 61  74 65 20 3a 20 32 38 2f  |&.pr("Date : 28/|
00009060  30 31 2f 32 30 32 36 22  29 3a f2 77 61 69 74 28  |01/2026"):.wait(|
00009070  35 30 29 0d 26 98 29 f2  70 72 28 22 2e 2e 2e 70  |50).&.).pr("...p|
00009080  72 65 73 65 6e 74 20 64  61 79 2e 2e 2e 22 29 3a  |resent day..."):|
00009090  f2 77 61 69 74 28 35 30  29 3a f1 27 0d 26 a2 1f  |.wait(50):.'.&..|
000090a0  f2 70 72 28 22 41 73 20  61 6e 20 65 78 70 65 72  |.pr("As an exper|
000090b0  74 20 69 6e 20 72 6f 63  6b 22 29 0d 26 ac 1f f2  |t in rock").&...|
000090c0  70 72 28 22 62 6c 61 73  74 69 6e 67 20 61 6e 64  |pr("blasting and|
000090d0  20 73 61 6c 76 61 67 65  22 29 0d 26 b6 1e f2 70  | salvage").&...p|
000090e0  72 28 22 77 6f 72 6b 2c  20 79 6f 75 20 68 61 76  |r("work, you hav|
000090f0  65 20 62 65 65 6e 22 29  0d 26 c0 22 f2 70 72 28  |e been").&.".pr(|
00009100  22 73 75 6d 6d 6f 6e 65  64 20 74 6f 20 74 68 65  |"summoned to the|
00009110  20 6d 6f 6f 6e 2e 22 29  3a f1 0d 26 ca 20 f2 70  | moon."):..&. .p|
00009120  72 28 22 3c 53 50 41 43  45 3e 20 74 6f 20 63 6f  |r("<SPACE> to co|
00009130  6e 74 69 6e 75 65 2e 2e  22 29 0d 26 d4 0a f5 fd  |ntinue..").&....|
00009140  a5 3d 33 32 0d 26 d8 05  db 0d 26 d9 0a f7 20 8d  |.=32.&....&... .|
00009150  54 5a 67 0d 26 de 0a f5  3a f3 20 4d 24 0d 26 e8  |TZg.&...:. M$.&.|
00009160  25 e7 20 4d 24 3c 3e 22  45 4f 4c 22 20 80 20 4d  |%. M$<>"EOL" . M|
00009170  24 3c 3e 22 4e 50 47 22  20 8c 20 f2 70 72 28 4d  |$<>"NPG" . .pr(M|
00009180  24 29 0d 26 f2 34 e7 20  4d 24 3d 22 4e 50 47 22  |$).&.4. M$="NPG"|
00009190  20 8c 20 f2 70 72 28 22  3c 53 50 41 43 45 3e 20  | . .pr("<SPACE> |
000091a0  74 6f 20 63 6f 6e 74 69  6e 75 65 22 29 3a f5 fd  |to continue"):..|
000091b0  a5 3d 33 32 3a db 0d 26  fc 0e fd 20 4d 24 3d 22  |.=32:..&... M$="|
000091c0  45 4f 4c 22 0d 27 06 05  e1 0d 27 10 05 3a 0d 27  |EOL".'....'..:.'|
000091d0  1a 19 dc 20 42 61 73 65  20 34 20 63 6f 6e 74 72  |... Base 4 contr|
000091e0  6f 6c 6c 65 72 20 3a 0d  27 24 1a dc 20 54 6f 20  |oller :.'$.. To |
000091f0  6d 61 6b 65 20 69 74 20  65 61 73 69 65 72 20 74  |make it easier t|
00009200  6f 0d 27 2e 18 dc 20 6d  61 6b 65 20 74 68 65 20  |o.'... make the |
00009210  62 61 73 65 20 61 69 72  2d 0d 27 38 1d dc 20 22  |base air-.'8.. "|
00009220  74 69 67 68 74 2c 20 6d  6f 73 74 20 6f 66 20 69  |tight, most of i|
00009230  74 20 77 61 73 22 0d 27  42 1d dc 20 22 62 75 69  |t was".'B.. "bui|
00009240  6c 74 20 75 6e 64 65 72  67 72 6f 75 6e 64 2c 20  |lt underground, |
00009250  69 6e 22 0d 27 4c 19 dc  20 61 72 74 69 66 69 63  |in".'L.. artific|
00009260  69 61 6c 20 63 61 76 65  72 6e 73 2e 0d 27 56 1a  |ial caverns..'V.|
00009270  dc 20 54 68 65 20 6d 6f  6f 6e 71 75 61 6b 65 20  |. The moonquake |
00009280  63 61 75 73 65 64 0d 27  60 19 dc 20 73 65 76 65  |caused.'`.. seve|
00009290  72 65 20 72 6f 63 6b 66  61 6c 6c 73 20 6f 6e 0d  |re rockfalls on.|
000092a0  27 6a 18 dc 20 61 6c 6c  20 74 65 6e 20 70 72 6f  |'j.. all ten pro|
000092b0  63 65 73 73 69 6e 67 0d  27 74 1b dc 20 6c 65 76  |cessing.'t.. lev|
000092c0  65 6c 73 2e 20 20 57 65  20 61 72 65 20 75 73 69  |els.  We are usi|
000092d0  6e 67 0d 27 7e 17 dc 20  65 6d 65 72 67 65 6e 63  |ng.'~.. emergenc|
000092e0  79 20 61 69 72 20 61 6e  64 0d 27 88 18 dc 20 62  |y air and.'... b|
000092f0  61 63 6b 75 70 20 67 65  6e 65 72 61 74 6f 72 73  |ackup generators|
00009300  2e 0d 27 92 09 dc 20 4e  50 47 0d 27 9c 1a dc 20  |..'... NPG.'... |
00009310  59 6f 75 20 6d 75 73 74  20 63 6c 65 61 72 20 74  |You must clear t|
00009320  68 65 73 65 0d 27 a6 18  dc 20 72 6f 63 6b 66 61  |hese.'... rockfa|
00009330  6c 6c 73 20 69 6e 20 6f  72 64 65 72 0d 27 b0 1a  |lls in order.'..|
00009340  dc 20 66 6f 72 20 75 73  20 74 6f 20 72 65 74 75  |. for us to retu|
00009350  72 6e 20 74 68 65 0d 27  ba 19 dc 20 62 61 73 65  |rn the.'... base|
00009360  20 74 6f 20 66 75 6c 6c  20 70 6f 77 65 72 2e 0d  | to full power..|
00009370  27 ce 1b dc 20 45 61 63  68 20 6c 65 76 65 6c 20  |'... Each level |
00009380  68 61 73 20 35 34 20 61  69 72 0d 27 d8 1c dc 20  |has 54 air.'... |
00009390  22 70 75 72 69 66 69 65  72 73 2c 20 77 68 69 63  |"purifiers, whic|
000093a0  68 20 61 72 65 22 0d 27  e2 18 dc 20 61 63 74 75  |h are".'... actu|
000093b0  61 6c 6c 79 20 6c 69 6e  6b 65 64 20 74 6f 0d 27  |ally linked to.'|
000093c0  ec 17 dc 20 74 68 65 20  6f 74 68 65 72 20 6c 65  |... the other le|
000093d0  76 65 6c 73 2e 0d 27 f6  1b dc 20 54 68 65 73 65  |vels..'... These|
000093e0  20 61 72 65 20 6d 61 64  65 20 66 72 6f 6d 20 61  | are made from a|
000093f0  0d 28 00 1a dc 20 74 69  74 6f 2d 6d 65 74 61 63  |.(... tito-metac|
00009400  72 79 73 74 61 6c 6c 69  6e 65 0d 28 0a 17 dc 20  |rystalline.(... |
00009410  73 74 72 75 63 74 75 72  65 20 61 6e 64 20 61 72  |structure and ar|
00009420  65 0d 28 14 1e dc 20 72  65 73 69 73 74 61 6e 74  |e.(... resistant|
00009430  20 74 6f 20 64 61 6d 61  67 65 2e 2c 4e 50 47 0d  | to damage.,NPG.|
00009440  28 1e 19 dc 20 22 48 6f  77 65 76 65 72 2c 20 79  |(... "However, y|
00009450  6f 75 20 77 69 6c 6c 22  0d 28 28 19 dc 20 65 6e  |ou will".((.. en|
00009460  63 6f 75 6e 74 65 72 20  74 77 6f 20 74 79 70 65  |counter two type|
00009470  73 0d 28 32 1a dc 20 6f  66 20 6e 75 63 6c 65 61  |s.(2.. of nuclea|
00009480  72 20 72 65 61 63 74 6f  72 73 2e 0d 28 3c 1b dc  |r reactors..(<..|
00009490  20 54 68 65 20 72 65 64  20 61 6e 64 20 62 6c 75  | The red and blu|
000094a0  65 20 74 79 70 65 0d 28  46 1a dc 20 28 41 20 6d  |e type.(F.. (A m|
000094b0  6b 20 32 29 20 63 61 6e  20 73 75 72 76 69 76 65  |k 2) can survive|
000094c0  0d 28 50 17 dc 20 4f 4e  45 20 64 69 72 65 63 74  |.(P.. ONE direct|
000094d0  20 62 6c 61 73 74 2e 0d  28 5a 1a dc 20 54 68 65  | blast..(Z.. The|
000094e0  20 79 65 6c 6c 6f 77 20  61 6e 64 20 67 72 65 65  | yellow and gree|
000094f0  6e 0d 28 64 19 dc 20 28  44 42 2f 33 34 29 20 4d  |n.(d.. (DB/34) M|
00009500  55 53 54 20 4e 4f 54 20  62 65 0d 28 6e 14 dc 20  |UST NOT be.(n.. |
00009510  62 65 20 68 69 74 20 61  74 20 61 6c 6c 2e 0d 28  |be hit at all..(|
00009520  73 05 dc 0d 28 78 09 dc  20 4e 50 47 0d 28 82 1b  |s...(x.. NPG.(..|
00009530  dc 20 4f 6e 65 20 68 69  74 20 74 6f 6f 20 6d 61  |. One hit too ma|
00009540  6e 79 20 77 69 6c 6c 0d  28 8c 1a dc 20 63 61 75  |ny will.(... cau|
00009550  73 65 20 61 20 6c 61 72  67 65 20 61 74 6f 6d 69  |se a large atomi|
00009560  63 0d 28 96 17 dc 20 65  78 70 6c 6f 73 69 6f 6e  |c.(... explosion|
00009570  21 2c 22 22 2c 4e 50 47  0d 28 a0 17 dc 20 22 4f  |!,"",NPG.(... "O|
00009580  68 2c 20 62 79 20 74 68  65 20 77 61 79 2c 22 0d  |h, by the way,".|
00009590  28 aa 17 dc 20 74 68 65  20 69 6d 70 61 63 74 20  |(... the impact |
000095a0  6f 66 20 74 68 65 0d 28  b4 1b dc 20 6d 65 74 65  |of the.(... mete|
000095b0  6f 72 20 63 72 65 61 74  65 64 20 61 20 68 69 67  |or created a hig|
000095c0  68 0d 28 be 1b dc 20 65  6c 65 63 74 72 6f 6d 61  |h.(... electroma|
000095d0  67 6e 65 74 69 63 20 70  75 6c 73 65 0d 28 c8 1b  |gnetic pulse.(..|
000095e0  dc 20 64 69 73 61 62 6c  69 6e 67 20 74 68 65 20  |. disabling the |
000095f0  63 6f 6e 74 72 6f 6c 0d  28 d2 15 dc 20 63 69 72  |control.(... cir|
00009600  63 75 69 74 73 20 69 6e  20 74 68 65 0d 28 dc 1a  |cuits in the.(..|
00009610  dc 20 73 65 63 75 72 69  74 79 20 64 72 6f 69 64  |. security droid|
00009620  73 20 74 68 61 74 0d 28  e6 18 dc 20 70 61 74 72  |s that.(... patr|
00009630  6f 6c 20 74 68 65 20 6c  65 76 65 6c 73 2e 0d 28  |ol the levels..(|
00009640  f0 1a dc 20 54 68 65 79  20 61 72 65 20 72 6f 61  |... They are roa|
00009650  6d 69 6e 67 20 6f 75 74  0d 28 fa 19 dc 20 6f 66  |ming out.(... of|
00009660  20 63 6f 6e 74 72 6f 6c  20 61 6e 64 20 77 69 6c  | control and wil|
00009670  6c 0d 29 04 1b dc 20 6b  69 6c 6c 20 69 66 20 79  |l.)... kill if y|
00009680  6f 75 20 63 6f 6d 65 20  69 6e 74 6f 0d 29 0e 1c  |ou come into.)..|
00009690  dc 20 63 6f 6e 74 61 63  74 20 77 69 74 68 20 74  |. contact with t|
000096a0  68 65 6d 2e 2c 4e 50 47  0d 29 18 1a dc 20 59 6f  |hem.,NPG.)... Yo|
000096b0  75 20 6d 61 79 20 64 65  73 74 72 6f 79 20 74 68  |u may destroy th|
000096c0  65 6d 0d 29 22 1d dc 20  22 69 66 20 79 6f 75 20  |em.)".. "if you |
000096d0  77 69 73 68 2c 20 74 68  65 79 20 61 72 65 22 0d  |wish, they are".|
000096e0  29 2c 17 dc 20 22 69 6e  73 75 72 65 64 2e 22 2c  |),.. "insured.",|
000096f0  22 22 2c 4e 50 47 0d 29  36 10 dc 20 45 51 55 49  |"",NPG.)6.. EQUI|
00009700  50 4d 45 4e 54 3a 0d 29  40 1a dc 20 45 78 70 6c  |PMENT:.)@.. Expl|
00009710  6f 73 69 76 65 20 67 65  6e 65 72 61 74 69 6e 67  |osive generating|
00009720  0d 29 4a 1a dc 20 22 62  61 63 6b 70 61 63 6b 2c  |.)J.. "backpack,|
00009730  20 73 75 70 70 6c 69 65  64 22 0d 29 54 1a dc 20  | supplied".)T.. |
00009740  77 69 74 68 20 65 6e 65  72 67 79 20 63 65 6c 6c  |with energy cell|
00009750  20 66 6f 72 0d 29 5e 18  dc 20 6f 6e 65 20 6c 6f  | for.)^.. one lo|
00009760  77 20 70 6f 77 65 72 20  62 6f 6d 62 0d 29 63 19  |w power bomb.)c.|
00009770  dc 20 70 65 72 20 70 6f  77 65 72 20 72 65 63 68  |. per power rech|
00009780  61 72 67 65 2e 0d 29 68  1b dc 20 48 69 67 68 65  |arge..)h.. Highe|
00009790  72 20 70 6f 77 65 72 20  61 6e 64 20 6d 6f 72 65  |r power and more|
000097a0  0d 29 72 19 dc 20 62 6f  6d 62 73 20 63 61 6e 20  |.)r.. bombs can |
000097b0  62 65 20 67 61 69 6e 65  64 0d 29 7c 13 dc 20 62  |be gained.)|.. b|
000097c0  79 20 63 6f 6c 6c 65 63  74 69 6e 67 0d 29 86 1a  |y collecting.)..|
000097d0  dc 20 61 70 70 72 6f 70  72 69 61 74 65 6c 79 20  |. appropriately |
000097e0  6d 61 72 6b 65 64 0d 29  90 1a dc 20 65 78 74 72  |marked.)... extr|
000097f0  61 20 63 65 6c 6c 73 20  74 68 61 74 20 79 6f 75  |a cells that you|
00009800  0d 29 9a 13 dc 20 6d 61  79 20 66 69 6e 64 2e 2c  |.)... may find.,|
00009810  4e 50 47 0d 29 a4 15 dc  20 54 68 65 72 65 20 61  |NPG.)... There a|
00009820  72 65 20 6f 74 68 65 72  0d 29 ae 1b dc 20 76 61  |re other.)... va|
00009830  72 69 6f 75 73 20 75 74  69 6c 69 74 79 20 63 65  |rious utility ce|
00009840  6c 6c 73 0d 29 b8 1b dc  20 22 79 6f 75 20 63 61  |lls.)... "you ca|
00009850  6e 20 75 73 65 2c 20 74  68 6f 75 67 68 22 0d 29  |n use, though".)|
00009860  c2 1b dc 20 69 74 20 77  69 6c 6c 20 62 65 20 69  |... it will be i|
00009870  6d 70 6f 73 73 69 62 6c  65 0d 29 cc 17 dc 20 74  |mpossible.)... t|
00009880  6f 20 69 64 65 6e 74 69  66 79 20 74 68 65 69 72  |o identify their|
00009890  0d 29 d6 19 dc 20 70 75  72 70 6f 73 65 20 62 65  |.)... purpose be|
000098a0  66 6f 72 65 20 75 73 65  2e 0d 29 db 05 dc 0d 29  |fore use..)....)|
000098b0  e0 09 dc 20 4e 50 47 0d  29 ea 10 dc 20 43 4f 4e  |... NPG.)... CON|
000098c0  54 52 4f 4c 53 20 3a 0d  29 f4 10 dc 20 50 6c 61  |TROLS :.)... Pla|
000098d0  79 65 72 20 2d 20 31 0d  29 fe 14 dc 20 53 75 69  |yer - 1.)... Sui|
000098e0  74 20 20 20 2d 20 47 72  65 65 6e 0d 2a 08 1b dc  |t   - Green.*...|
000098f0  20 53 74 61 72 74 20 20  2d 20 42 6f 74 74 6f 6d  | Start  - Bottom|
00009900  20 72 69 67 68 74 0d 2a  12 10 dc 20 4c 65 66 74  | right.*... Left|
00009910  20 20 20 2d 20 5a 0d 2a  1c 10 dc 20 52 69 67 68  |   - Z.*... Righ|
00009920  74 20 20 2d 20 58 0d 2a  26 10 dc 20 55 70 20 20  |t  - X.*&.. Up  |
00009930  20 20 20 2d 20 46 0d 2a  30 10 dc 20 44 6f 77 6e  |   - F.*0.. Down|
00009940  20 20 20 2d 20 43 0d 2a  3a 17 dc 20 42 6f 6d 62  |   - C.*:.. Bomb|
00009950  20 20 20 2d 20 47 2c 22  22 2c 4e 50 47 0d 2a 44  |   - G,"",NPG.*D|
00009960  10 dc 20 43 4f 4e 54 52  4f 4c 53 20 3a 0d 2a 4e  |.. CONTROLS :.*N|
00009970  10 dc 20 50 6c 61 79 65  72 20 2d 20 32 0d 2a 58  |.. Player - 2.*X|
00009980  12 dc 20 53 75 69 74 20  20 20 2d 20 52 65 64 0d  |.. Suit   - Red.|
00009990  2a 62 17 dc 20 53 74 61  72 74 20 20 2d 20 54 6f  |*b.. Start  - To|
000099a0  70 20 6c 65 66 74 0d 2a  6c 17 dc 20 4c 65 66 74  |p left.*l.. Left|
000099b0  20 20 20 2d 20 4b 65 79  70 61 64 20 31 0d 2a 76  |   - Keypad 1.*v|
000099c0  17 dc 20 52 69 67 68 74  20 20 2d 20 4b 65 79 70  |.. Right  - Keyp|
000099d0  61 64 20 32 0d 2a 80 17  dc 20 55 70 20 20 20 20  |ad 2.*... Up    |
000099e0  20 2d 20 4b 65 79 70 61  64 20 36 0d 2a 8a 17 dc  | - Keypad 6.*...|
000099f0  20 44 6f 77 6e 20 20 20  2d 20 4b 65 79 70 61 64  | Down   - Keypad|
00009a00  20 33 0d 2a 94 1e dc 20  42 6f 6d 62 20 20 20 2d  | 3.*... Bomb   -|
00009a10  20 4b 65 79 70 61 64 20  2b 2c 22 22 2c 4e 50 47  | Keypad +,"",NPG|
00009a20  0d 2a 95 18 dc 20 32 20  50 4c 41 59 45 52 20 47  |.*... 2 PLAYER G|
00009a30  41 4d 45 20 3a 2c 22 22  0d 2a 96 1b dc 20 22 42  |AME :,"".*... "B|
00009a40  6c 6f 77 20 74 68 65 20  65 72 2c 20 6c 69 76 69  |low the er, livi|
00009a50  6e 67 22 0d 2a 97 1c dc  20 22 64 61 79 6c 69 67  |ng".*... "daylig|
00009a60  68 74 73 20 6f 75 74 20  6f 66 20 74 68 65 22 0d  |hts out of the".|
00009a70  2a 98 18 dc 20 22 6f 74  68 65 72 20 70 6c 61 79  |*... "other play|
00009a80  65 72 2e 22 2c 22 22 0d  2a 99 23 dc 20 22 53 69  |er.","".*.#. "Si|
00009a90  6d 70 6c 65 2c 20 69 6e  6e 69 74 3f 22 2c 22 22  |mple, innit?",""|
00009aa0  2c 22 22 2c 22 22 2c 4e  50 47 0d 2a 9e 14 dc 20  |,"","",NPG.*... |
00009ab0  44 61 74 61 20 72 65 74  72 69 65 76 61 6c 0d 2a  |Data retrieval.*|
00009ac0  a8 2e dc 20 63 6f 6d 70  6c 65 74 65 2e 2e 2e 2c  |... complete...,|
00009ad0  22 22 2c 22 22 2c 22 22  2c 22 22 2c 22 22 2c 22  |"","","","","","|
00009ae0  22 2c 22 22 2c 4e 50 47  2c 45 4f 4c 0d 2a b2 05  |","",NPG,EOL.*..|
00009af0  3a 0d 2a bc 0d dd f2 73  75 63 63 65 65 64 0d 2a  |:.*....succeed.*|
00009b00  c6 13 f2 62 6f 78 28 36  2c 38 2c 33 34 2c 31 39  |...box(6,8,34,19|
00009b10  29 0d 2a d0 0a f7 20 8d  44 48 6b 0d 2a da 1a f5  |).*... .DHk.*...|
00009b20  3a f3 20 4d 24 3a f2 70  72 28 4d 24 29 3a fd 20  |:. M$:.pr(M$):. |
00009b30  4d 24 3d 22 22 0d 2a e4  12 e7 20 73 74 61 72 74  |M$="".*... start|
00009b40  6c 65 76 3d 30 20 8c 0d  2a ee 24 f2 70 72 28 22  |lev=0 ..*.$.pr("|
00009b50  57 6f 77 21 20 59 6f 75  20 66 69 6e 69 73 68 65  |Wow! You finishe|
00009b60  64 20 61 6c 6c 20 74 65  6e 22 29 0d 2a f8 1e f2  |d all ten").*...|
00009b70  70 72 28 22 6c 65 76 65  6c 73 20 69 6e 20 6f 6e  |pr("levels in on|
00009b80  65 20 67 6f 21 21 21 22  29 0d 2b 02 05 cc 0d 2b  |e go!!!").+....+|
00009b90  0c 23 f2 70 72 28 22 4e  6f 77 20 74 72 79 20 61  |.#.pr("Now try a|
00009ba0  6e 64 20 63 6f 6d 70 6c  65 74 65 20 61 6c 6c 22  |nd complete all"|
00009bb0  29 0d 2b 16 23 f2 70 72  28 22 74 65 6e 20 6c 65  |).+.#.pr("ten le|
00009bc0  76 65 6c 73 20 77 69 74  68 6f 75 74 20 75 73 69  |vels without usi|
00009bd0  6e 67 22 29 0d 2b 20 23  f2 70 72 28 22 74 68 65  |ng").+ #.pr("the|
00009be0  20 6c 65 76 65 6c 20 6a  75 6d 70 20 66 61 63 69  | level jump faci|
00009bf0  6c 69 74 79 21 22 29 0d  2b 2a 05 cd 0d 2b 34 0d  |lity!").+*...+4.|
00009c00  41 24 3d bf 28 37 35 30  29 0d 2b 3e 12 d6 69 6e  |A$=.(750).+>..in|
00009c10  69 74 5f 73 63 72 65 65  6e 3a e1 0d 2b 48 16 dc  |it_screen:..+H..|
00009c20  20 43 4f 4e 47 52 41 54  55 4c 41 54 49 4f 4e 53  | CONGRATULATIONS|
00009c30  21 0d 2b 4d 09 dc 20 22  20 22 0d 2b 52 1f dc 20  |!.+M.. " ".+R.. |
00009c40  59 6f 75 20 68 61 76 65  20 6d 61 6e 61 67 65 64  |You have managed|
00009c50  20 74 6f 20 63 6c 65 61  72 0d 2b 5c 15 dc 20 61  | to clear.+\.. a|
00009c60  6c 6c 20 74 65 6e 20 6c  65 76 65 6c 73 21 0d 2b  |ll ten levels!.+|
00009c70  66 05 dc 0d 2b 70 05 3a  0d 2b 7a 09 dd f2 66 69  |f...+p.:.+z...fi|
00009c80  6e 0d 2b 84 05 db 0d 2b  8e 07 f1 27 27 0d 2b 98  |n.+....+...''.+.|
00009c90  20 f2 70 72 28 22 41 72  65 20 79 6f 75 20 73 75  | .pr("Are you su|
00009ca0  72 65 20 79 6f 75 20 77  61 6e 74 22 29 0d 2b a2  |re you want").+.|
00009cb0  1b f2 70 72 28 22 74 6f  20 71 75 69 74 3f 3f 20  |..pr("to quit?? |
00009cc0  20 28 59 2f 4e 29 22 29  0d 2b ac 19 f5 4f 24 3d  | (Y/N)").+...O$=|
00009cd0  be 3a fd 20 a7 22 59 79  4e 6e 22 2c 4f 24 29 3e  |.:. ."YyNn",O$)>|
00009ce0  30 0d 2b b6 17 e7 20 4f  24 3d 22 59 22 20 84 20  |0.+... O$="Y" . |
00009cf0  4f 24 3d 22 79 22 20 8c  0d 2b c0 28 f2 70 72 28  |O$="y" ..+.(.pr(|
00009d00  22 22 29 3a f2 70 72 28  22 22 29 3a f2 70 72 28  |""):.pr(""):.pr(|
00009d10  22 22 29 3a f2 70 72 28  22 4f 6b 2e 2e 2e 22 29  |""):.pr("Ok...")|
00009d20  0d 2b ca 16 4f 24 3d bf  28 31 30 30 29 3a ef 32  |.+..O$=.(100):.2|
00009d30  36 2c 32 30 3a db 0d 2b  cb 0a 2a 46 58 32 30 30  |6,20:..+..*FX200|
00009d40  0d 2b cc 0c 2a 46 58 31  31 2c 33 32 0d 2b cd 05  |.+..*FX11,32.+..|
00009d50  e0 0d 2b d4 05 cc 0d 2b  de 37 f2 70 72 28 22 22  |..+....+.7.pr(""|
00009d60  29 3a f2 70 72 28 22 22  29 3a f2 70 72 28 22 22  |):.pr(""):.pr(""|
00009d70  29 3a f2 70 72 28 22 4e  61 68 2c 20 64 69 64 6e  |):.pr("Nah, didn|
00009d80  27 74 20 74 68 69 6e 6b  20 73 6f 22 29 0d 2b e8  |'t think so").+.|
00009d90  0d 4f 24 3d bf 28 31 30  30 29 0d 2b f2 05 cd 0d  |.O$=.(100).+....|
00009da0  2b fc 05 e1 0d ff                                 |+.....|
00009da6