Home » Archimedes archive » Acorn Computing » 1994 07 subscription disc.adf » 9407s » BBC/C/MCODE3

BBC/C/MCODE3

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

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

Tape/disk: Home » Archimedes archive » Acorn Computing » 1994 07 subscription disc.adf » 9407s
Filename: BBC/C/MCODE3
Read OK:
File size: 3716 bytes
Load address: 0000
Exec address: 0000
Duplicates

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

File contents
   10REM Omniscient Machine Code
   20REM Generator.
   30REM Listing 3
   40REM by Peter Brown 1991
   50:
   60IF PAGE<>&3D00 THEN PAGE=&3D00:CHAIN"C.MCODE3"
   70loc=&70
   80char=&74
   90temp=&7C
  100room=&4940
  110byte=&493E
  120youloc=&7A
  130youxy=&4946
  140youch=&41EB
  150tempxy=&494A
  160nlrptr=&494B
  170screen=&437E
  180sprite=&440B
  190energy=&494C
  200obroom=&4282
  210obloc=&420E
  220obcol=&4248
  230obxy=&41F1
  240play1=&3CFA
  250play2=&3D1B
  260noofob=&41F0
  270pyouml1=&3D42
  280delscr=&4031
  290getdoors=&4036
  300inroom=&4314
  310mushroom=&41EF
  320check=&4332
  330:
  340FORpass%=0TO2STEP2
  350P%=&3400
  360[
  370OPTpass%
  380.actionkeys
  390LDX #0
  400LDA #&7A
  410JSR &FFF4
  420CPX #73
  430BEQ drop_pickup
  440RTS
  450.drop_pickup
  460LDX noofob
  470.loopT
  480LDA room
  490CMP obroom,X
  500BNE noob
  510LDA youxy
  520CMP obxy,X
  530BEQ object
  540.noob
  550DEX
  560CPX #&FF
  570BNE loopT
  580.object
  590STX mask
  600JSR pob
  610LDX pocket1
  620JSR pob
  630LDX pocket2
  640JSR pob
  650LDX pocket2
  660STX last
  670CPX #&FF
  680BEQ skip
  690LDA youxy
  700STA obxy,X
  710LDA room
  720STA obroom,X
  730TXA
  740ASL A
  750TAX
  760LDA youloc
  770STA obloc,X
  780LDA youloc+1
  790STA obloc+1,X
  800LDX pocket2
  810.skip
  820JSR pob
  830LDA pocket1
  840CMP #&FF
  850BEQ skip1
  860ASL A
  870TAX
  880LDA #&30
  890STA obloc,X
  900LDA #&7C
  910STA obloc+1,X
  920LDA pocket1
  930.skip1
  940STA pocket2
  950TAX
  960JSR pob
  970LDX mask
  980CPX #&FF
  990BEQ skip2
 1000LDA #0
 1010STA obroom,X
 1020STA obxy,X
 1030TXA
 1040ASL A
 1050TAX
 1060LDA #&10
 1070STA obloc,X
 1080LDA #&7C
 1090STA obloc+1,X
 1100LDX mask
 1110.skip2
 1120STX pocket1
 1130JSR pob
 1140JSR puz4
 1150JMP event
 1160.pob
 1170CPX #&FF
 1180BNE print
 1190RTS
 1200.print
 1210TXA
 1220ASL A
 1230TAX
 1240LDA obloc,X
 1250STA loc
 1260LDA obloc+1,X
 1270STA loc+1
 1280LDA obcol,X
 1290STA char
 1300LDA obcol+1,X
 1310STA char+1
 1320JSR sprite
 1330RTS
 1340.event
 1350LDA room
 1360CMP #7
 1370BNE noaltar
 1380LDA last
 1390CMP #14
 1400BCS noaltar
 1410CMP #5
 1420BCC noaltar
 1430BEQ noaltar
 1440LDA youxy
 1450CMP #&DC
 1460BEQ altar
 1470CMP #&EC
 1480BEQ altar
 1490.noaltar
 1500RTS
 1510.puz12
 1520LDA room
 1530CMP #7
 1540BNE nopuz12
 1550LDA youxy
 1560CMP #&6D
 1570BNE nopuz12
 1580LDA pocket2
 1590CMP #14
 1600BNE nopuz12
 1610LDA inroom+9
 1620CMP #7
 1630BNE nopuz12
 1640LDA count
 1650CMP #&EA
 1660BCC nopuz12
 1670LDA #0
 1680STA count
 1690.nopuz12
 1700RTS
 1710.event2
 1720JSR countdown
 1730JSR puz3
 1740JSR puz5
 1750JSR puz6
 1760JSR puz9
 1770JSR puz10
 1780LDA #&7A
 1790JSR &FFF4
 1800CPX #53
 1810BNE noevent2
 1820JSR puz1
 1830JSR puz2
 1840JSR puz7
 1850JSR puz8
 1860JSR puz11
 1870JSR puz12
 1880.noevent2
 1890RTS
 1900.countdown
 1910LDA count
 1920CMP #&EA
 1930BEQ nocountdown
 1940LDA count
 1950CMP #80
 1960BEQ explode
 1970AND #15
 1980BNE noflash
 1990LDX #0
 2000LDY #7
 2010JSR vdu19
 2020LDA #&FF
 2030STA col
 2040.noflash
 2050INC count
 2060.nocountdown
 2070RTS
 2080.altar
 2090LDX last
 2100JSR pob
 2110LDA last
 2120TAX
 2130SEC
 2140SBC #6
 2150ASL A
 2160TAY
 2170TXA
 2180ASL A
 2190TAX
 2200LDA homescr,Y
 2210STA obloc,X
 2220LDA homescr+1,Y
 2230STA obloc+1,X
 2240LDX last
 2250LDA #&FF
 2260STA obroom,X
 2270STA obxy,X
 2280JSR pob
 2290INC home
 2300LDA #1
 2310STA sound
 2320RTS
 2330.explode
 2340LDY #1
 2350LDX #0
 2360JSR vdu19
 2370INX
 2380INX
 2390JSR vdu19
 2400INX
 2410JSR vdu19
 2420JSR delscr
 2430LDA #&98
 2440STA &54D8
 2450LDA #&80
 2460STA &54DA
 2470STA &54DC
 2480JSR screen
 2490JSR pyouml1
 2500JSR getdoors
 2510LDA room
 2520CMP #7
 2530BNE notroom
 2540LDX #&E
 2550LDA obroom,X
 2560BEQ nocan
 2570JSR pob
 2580.nocan
 2590LDA #&E0
 2600STA loc
 2610LDA #&78
 2620STA loc+1
 2630LDA #&E0
 2640STA char
 2650LDA #&4D
 2660STA char+1
 2670JSR sprite
 2680.notroom
 2690LDX #&E
 2700LDA #&FF
 2710STA obroom,X
 2720STA obxy,X
 2730LDX #9
 2740STA inroom,X
 2750LDA #&EA
 2760STA count
 2770LDX room
 2780CPX #7
 2790BNE noin
 2800STA mushroom
 2810.noin
 2820LDA #7
 2830STA sound
 2840RTS
 2850.vdu19
 2860LDA #19
 2870JSR &FFEE
 2880TXA
 2890JSR &FFEE
 2900TYA
 2910JSR &FFEE
 2920LDA #0
 2930JSR &FFEE
 2940JSR &FFEE
 2950JSR &FFEE
 2960RTS
 2970.puz3
 2980LDA room
 2990CMP #3
 3000BNE nopuz3
 3010LDA youxy
 3020CMP #&65
 3030BNE nopuz3
 3040LDA &544A
 3050CMP #&C0
 3060BNE nopuz3
 3070LDX #22
 3080LDA obroom,X
 3090CMP #3
 3100BNE fake
 3110LDA obxy,X
 3120CMP #&75
 3130BNE fake
 3140.nopuz3
 3150RTS
 3160.fake
 3170LDA #&F0
 3180STA loc
 3190LDA #&64
 3200STA loc+1
 3210LDA #&20
 3220STA char
 3230LDA #&4F
 3240STA char+1
 3250JSR sprite
 3260LDA #&C1
 3270STA &544A
 3280LDX #26
 3290.loopE
 3300LDA obroom,X
 3310CMP #3
 3320BNE end
 3330LDA obxy,X
 3340CMP #&75
 3350BNE end
 3360LDA #&FF
 3370STA obroom,X
 3380JSR pob
 3390JMP wall
 3400.end
 3410DEX
 3420CPX #&FF
 3430BNE loopE
 3440.wall
 3450LDA #4
 3460STA sound
 3470RTS
 3480.puz2
 3490LDA pocket2
 3500CMP #23
 3510BNE nopuz2
 3520JMP magnet
 3530.nopuz2
 3540RTS
 3550.magnet2
 3560LDA obxy,X
 3570AND #&F
 3580STA temp1
 3590LDA youxy
 3600AND #&F
 3610CMP temp1
 3620BEQ P%+4
 3630BCS obdown
 3640BCC obup
 3650RTS
 3660.obup
 3670LDA mag
 3680ASL A
 3690TAX
 3700SEC
 3710LDA obloc,X
 3720SBC #&80
 3730STA temp
 3740STA temp1
 3750LDA obloc+1,X
 3760SBC #2
 3770STA temp+1
 3780STA temp2
 3790JSR check
 3800LDA byte
 3810CMP #&FF
 3820BEQ nogo2
 3830LDX mag
 3840DEC obxy,X
 3850JSR pob
 3860LDA mag
 3870ASL A
 3880TAX
 3890LDA temp1
 3900STA obloc,X
 3910LDA temp2
 3920STA obloc+1,X
 3930LDX mag
 3940JSR pob
 3950.nogo2 RTS
 3960.obdown
 3970LDA mag
 3980ASL A
 3990TAX
 4000CLC
 4010LDA obloc,X
 4020ADC #&80
 4030STA temp
 4040STA temp1
 4050LDA obloc+1,X
 4060ADC #2
 4070STA temp+1
 4080STA temp2
 4090JSR check
 4100LDA byte
 4110CMP #&FF
 4120BEQ nogo3
 4130LDX mag
 4140INC obxy,X
 4150JSR pob
 4160LDA mag
 4170ASL A
 4180TAX
 4190LDA temp1
 4200STA obloc,X
 4210LDA temp2
 4220STA obloc+1,X
 4230LDX mag
 4240JSR pob
 4250.nogo3 RTS
 4260.magnet
 4270LDX #16
 4280STX mag
 4290JSR domag
 4300LDX #26
 4310STX mag
 4320JSR domag
 4330RTS
 4340.domag
 4350LDX mag
 4360LDA obroom,X
 4370CMP room
 4380BNE nogo
 4390LDA obxy,X
 4400AND #&F0
 4410STA temp1
 4420LDA youxy
 4430AND #&F0
 4440CMP temp1
 4450BEQ P%+4
 4460BCS obright
 4470BCC obleft
 4480JMP magnet2
 4490.obright
 4500LDA mag
 4510ASL A
 4520TAX
 4530CLC
 4540LDA obloc,X
 4550ADC #&10
 4560STA temp
 4570STA temp1
 4580LDA obloc+1,X
 4590ADC #0
 4600STA temp+1
 4610STA temp2
 4620JSR check
 4630LDA byte
 4640CMP #&FF
 4650BEQ nogo
 4660LDX mag
 4670CLC
 4680LDA obxy,X
 4690ADC #&10
 4700STA obxy,X
 4710JSR pob
 4720LDA mag
 4730ASL A
 4740TAX
 4750LDA temp1
 4760STA obloc,X
 4770LDA temp2
 4780STA obloc+1,X
 4790LDX mag
 4800JSR pob
 4810.nogo RTS
 4820.obleft
 4830LDA mag
 4840ASL A
 4850TAX
 4860SEC
 4870LDA obloc,X
 4880SBC #&10
 4890STA temp
 4900STA temp1
 4910LDA obloc+1,X
 4920SBC #0
 4930STA temp+1
 4940STA temp2
 4950JSR check
 4960LDA byte
 4970CMP #&FF
 4980BEQ nogo1
 4990LDX mag
 5000SEC
 5010LDA obxy,X
 5020SBC #&10
 5030STA obxy,X
 5040JSR pob
 5050LDA mag
 5060ASL A
 5070TAX
 5080LDA temp1
 5090STA obloc,X
 5100LDA temp2
 5110STA obloc+1,X
 5120LDX mag
 5130JSR pob
 5140.nogo1 RTS
 5150.puz1
 5160LDA pocket2
 5170CMP #16
 5180BNE nopuz1
 5190LDA room
 5200CMP #32
 5210BNE nopuz1
 5220LDA youxy
 5230CMP #&96
 5240BNE nopuz1
 5250LDX #6
 5260LDA inroom,X
 5270CMP #32
 5280BNE nopuz1
 5290JMP axe
 5300.nopuz1
 5310RTS
 5320.axe
 5330LDA #&90
 5340STA loc
 5350LDA #&67
 5360STA loc+1
 5370LDA #&C0
 5380STA char
 5390LDA #&4B
 5400STA char+1
 5410JSR sprite
 5420LDA #&FF
 5430LDX #6
 5440STA inroom,X
 5450LDA #32
 5460LDX #2
 5470STA obroom,X
 5480JSR pob
 5490LDA #3
 5500STA sound
 5510RTS
 5520.puz4
 5530LDA last
 5540CMP #&FF
 5550BEQ nopuz4
 5560LDA room
 5570CMP #26
 5580BNE nopuz4
 5590LDA youxy
 5600CMP #&6E
 5610BNE nopuz4
 5620JMP cauldron
 5630.nopuz4
 5640RTS
 5650.cauldron
 5660LDX last
 5670JSR pob
 5680LDA #&EE
 5690LDX last
 5700STA obroom,X
 5710LDA #&FF
 5720STA last
 5730LDA #8
 5740STA sound
 5750RTS
 5760.puz5
 5770LDX #20
 5780LDA obroom,X
 5790CMP #&EE
 5800BNE nopuz5
 5810LDX #21
 5820LDA obroom,X
 5830CMP #&EE
 5840BNE nopuz5
 5850JMP mix
 5860.nopuz5
 5870RTS
 5880.mix
 5890LDX #27
 5900STX pocket1
 5910LDA #0
 5920STA obroom,X
 5930JSR pob
 5940LDX #21
 5950LDA #&FF
 5960STA obroom,X
 5970LDX #20
 5980STA obroom,X
 5990LDA #3
 6000STA sound
 6010RTS
 6020.puz6
 6030LDA flask
 6040BNE nopuz6
 6050LDX #27
 6060LDA obroom,X
 6070CMP #&DD
 6080BEQ nopuz6
 6090JMP dopuz6
 6100.nopuz6
 6110RTS
 6120.dopuz6
 6130LDX #27
 6140JSR pob
 6150LDX #27
 6160LDA #&DD
 6170STA obroom,X
 6180LDA pocket1
 6190CMP #27
 6200BNE pock2
 6210LDA #&FF
 6220STA pocket1
 6230RTS
 6240.pock2
 6250LDA #&FF
 6260STA pocket2
 6270RTS
 6280.puz7
 6290LDX #28
 6300LDA inroom,X
 6310CMP #&FF
 6320BEQ nopuz7
 6330LDA room
 6340CMP #17
 6350BNE nopuz7
 6360LDA youxy
 6370CMP #&67
 6380BNE nopuz7
 6390LDA pocket2
 6400CMP #26
 6410BNE nopuz7
 6420LDA youch
 6430BEQ mine
 6440LDA youch
 6450CMP #&20
 6460BEQ mine
 6470.nopuz7
 6480RTS
 6490.mine
 6500LDA #&D0
 6510STA loc
 6520LDA #&69
 6530STA loc+1
 6540LDA #&E0
 6550STA char
 6560LDA #&4F
 6570STA char+1
 6580JSR sprite
 6590LDA #&FF
 6600LDX #28
 6610STA inroom,X
 6620LDA #17
 6630LDX #24
 6640STA obroom,X
 6650JSR pob
 6660LDA #3
 6670STA sound
 6680RTS
 6690.puz8
 6700LDA pocket2
 6710CMP #25
 6720BNE nopuz8
 6730LDX #28
 6740LDA obroom,X
 6750CMP #&FF
 6760BEQ book
 6770.nopuz8
 6780RTS
 6790.book
 6800LDA #2
 6810STA sound
 6820LDX #28
 6830LDA #7
 6840STA obroom,X
 6850LDA room
 6860CMP #7
 6870BNE nopuz8
 6880JSR pob
 6890RTS
 6900.puz9
 6910LDA room
 6920CMP #15
 6930BNE nopuz9
 6940LDA youxy
 6950CMP #&91
 6960BNE nopuz9
 6970LDX #28
 6980LDA obroom,X
 6990BEQ nopuz9
 7000JMP force
 7010.nopuz9
 7020RTS
 7030.force
 7040LDA #&DD
 7050STA mushroom
 7060RTS
 7070.en
 7080LDA energy
 7090STA ylo
 7100LDA #0
 7110STA yhi
 7120STA tempxy
 7130JSR x2
 7140JSR x2
 7150CLC
 7160LDA ylo
 7170ADC #44
 7180STA ylo
 7190LDA yhi
 7200ADC #1
 7210STA yhi
 7220LDX #0
 7230.loopR
 7240LDA queue,X
 7250JSR &FFEE
 7260INX
 7270CPX #18
 7280BNE loopR
 7290DEC energy
 7300LDA #9
 7310STA sound
 7320LDA energy
 7330CMP #49
 7340BEQ green
 7350CMP #11
 7360BCC red
 7370RTS
 7380.green
 7390LDX #0
 7400LDY #2
 7410JSR vdu19
 7420LDA #&FF
 7430STA col
 7440RTS
 7450.red
 7460LDX #0
 7470LDY #1
 7480JSR vdu19
 7490LDA #&FF
 7500STA col
 7510RTS
 7520.x2
 7530LDA ylo
 7540ASL A
 7550STA ylo
 7560BCC nocarry
 7570INC yhi
 7580.nocarry
 7590RTS
 7600.mush
 7610LDA energy
 7620CMP #9
 7630BEQ P%+4
 7640BCS next
 7650LDA #9
 7660STA energy
 7670.next
 7680STA ylo
 7690LDA #0
 7700STA yhi
 7710JSR x2
 7720JSR x2
 7730LDX #0
 7740.loopB
 7750LDA queue2,X
 7760JSR &FFEE
 7770INX
 7780CPX #9
 7790BNE loopB
 7800CLC
 7810LDA ylo
 7820ADC #32
 7830STA temp1
 7840LDA yhi
 7850ADC #1
 7860STA temp2
 7870LDA temp1
 7880JSR &FFEE
 7890LDA temp2
 7900JSR &FFEE
 7910LDX #0
 7920.loopr
 7930LDA queue3,X
 7940JSR &FFEE
 7950INX
 7960CPX #5
 7970BNE loopr
 7980CLC
 7990LDA ylo
 8000ADC #24
 8010STA temp1
 8020LDA yhi
 8030ADC #1
 8040STA temp2
 8050LDA temp1
 8060JSR &FFEE
 8070LDA temp2
 8080JSR &FFEE
 8090LDX #0
 8100.loopO
 8110LDA queue4,X
 8120JSR &FFEE
 8130INX
 8140CPX #7
 8150BNE loopO
 8160SEC
 8170LDA energy
 8180SBC #10
 8190STA energy
 8200RTS
 8210.deduct
 8220LDX #28
 8230LDA obroom,X
 8240BNE ded
 8250LDA #0
 8260STA mushroom
 8270.ded
 8280JSR kill
 8290JSR kill2
 8300JSR kill3
 8310JSR kill4
 8320JSR kill5
 8330RTS
 8340.kill
 8350LDA mushroom
 8360CMP #&FF
 8370BNE nokill
 8380LDX #27
 8390LDA obroom,X
 8400BEQ nokill
 8410JSR mush
 8420LDA #6
 8430STA sound
 8440.nokill
 8450RTS
 8460.kill2
 8470LDA mushroom
 8480CMP #&FF
 8490BNE nokill2
 8500LDX #27
 8510LDA obroom,X
 8520BNE nokill2
 8530DEC flask
 8540.nokill2
 8550RTS
 8560.kill3
 8570LDA mushroom
 8580CMP #&EA
 8590BNE nokill3
 8600JSR mush
 8610LDA #0
 8620STA mushroom
 8630.nokill3
 8640RTS
 8650.kill4
 8660LDA mushroom
 8670CMP #&DD
 8680BNE nokill4
 8690JSR mush
 8700JSR mush
 8710LDA #0
 8720STA mushroom
 8730LDA #5
 8740STA sound
 8750.nokill4
 8760RTS
 8770.kill5
 8780LDA tempxy
 8790BEQ nokill5
 8800JSR en
 8810.nokill5
 8820RTS
 8830.puz10
 8840LDA room
 8850CMP #28
 8860BNE nopuz10
 8870LDA youxy
 8880CMP #&8A
 8890BNE nopuz10
 8900LDX #4
 8910LDA inroom,X
 8920CMP #28
 8930BNE nopuz10
 8940LDX #15
 8950LDA obroom,X
 8960BEQ no1
 8970LDX #19
 8980LDA obroom,X
 8990BEQ no1
 9000.nopuz10
 9010RTS
 9020.no1
 9030STX used
 9040LDA #&FF
 9050STA obroom,X
 9060LDA pocket1
 9070CMP used
 9080BNE np1
 9090LDA #&FF
 9100STA pocket1
 9110JMP del
 9120.np1
 9130LDA #&FF
 9140STA pocket2
 9150.del
 9160JSR pob
 9170LDA #&80
 9180STA loc
 9190LDA #&71
 9200STA loc+1
 9210LDA #&60
 9220STA char
 9230LDA #&4A
 9240STA char+1
 9250JSR sprite
 9260LDA #&80
 9270STA loc
 9280LDA #&71
 9290STA loc+1
 9300LDA #&E0
 9310STA char
 9320LDA #&49
 9330STA char+1
 9340JSR sprite
 9350LDA #&FF
 9360STA inroom+4
 9370LDA #28
 9380STA inroom+5
 9390LDA #3
 9400STA sound
 9410RTS
 9420.puz11
 9430LDA room
 9440CMP #28
 9450BNE nopuz11
 9460LDA youxy
 9470CMP #&8A
 9480BNE nopuz11
 9490LDA inroom+5
 9500CMP #28
 9510BNE nopuz11
 9520LDX #17
 9530CPX pocket2
 9540BEQ fire
 9550INX
 9560CPX pocket2
 9570BEQ fire
 9580.nopuz11
 9590RTS
 9600.fire
 9610LDA #&FF
 9620STA obroom,X
 9630JSR pob
 9640LDA #&71
 9650STA loc+1
 9660LDA #&80
 9670STA loc
 9680LDA #&49
 9690STA char+1
 9700LDA #&E0
 9710STA char
 9720JSR sprite
 9730LDA #&71
 9740STA loc+1
 9750LDA #&80
 9760STA loc
 9770LDA #&4A
 9780STA char+1
 9790LDA #&60
 9800STA char
 9810JSR sprite
 9820LDA #28
 9830STA inroom+4
 9840LDA #&FF
 9850STA inroom+5
 9860LDA used
 9870ASL A
 9880TAX
 9890LDA #0
 9900STA obloc,X
 9910LDA #&6F
 9920STA obloc+1,X
 9930LDX used
 9940JSR pob
 9950LDY #9
 9960STY ylo
 9970.loopW
 9980LDA used
 9990STA mag
10000JSR obup
10010LDX #10
10020.out
10030LDY #255
10040.delay
10050NOP
10060DEY
10070BNE delay
10080DEX
10090BNE out
10100DEC ylo
10110LDA ylo
10120BNE loopW
10130LDX used
10140JSR pob
10150LDX #50
10160.out3
10170LDY #255
10180.delay3
10190NOP
10200DEY
10210BNE delay3
10220DEX
10230BNE out3
10240LDA used
10250ASL A
10260TAX
10270LDA #&F0
10280STA obloc,X
10290LDA #&6C
10300STA obloc+1,X
10310LDX used
10320JSR pob
10330LDY #13
10340STY ylo
10350.loopN
10360LDA used
10370STA mag
10380JSR obleft
10390LDX #10
10400.out2
10410LDY #255
10420.delay2
10430NOP
10440DEY
10450BNE delay2
10460DEX
10470BNE out2
10480DEC ylo
10490LDA ylo
10500BNE loopN
10510LDX used
10520JSR pob
10530LDA #&FF
10540STA pocket2
10550LDA #7
10560STA sound
10570LDA inroom+27
10580CMP #28
10590BEQ already
10600LDA #&6C
10610STA loc+1
10620LDA #&20
10630STA loc
10640LDA #&4F
10650STA char+1
10660LDA #0
10670STA char
10680JSR sprite
10690LDA #&6C
10700STA loc+1
10710LDA #&20
10720STA loc
10730LDA #&4A
10740STA char+1
10750LDA #&C0
10760STA char
10770JSR sprite
10780LDA #&80
10790STA &5770
10800LDA #28
10810STA inroom+27
10820RTS
10830.already
10840LDA #&6C
10850STA loc+1
10860LDA #&20
10870STA loc
10880LDA #&4A
10890STA char+1
10900LDA #&C0
10910STA char
10920JSR sprite
10930LDA #&FF
10940STA inroom+27
10950RTS
10960RTS
10970.col NOP
10980.mag NOP
10990.used NOP
11000.mask NOP
11010.temp1 NOP
11020.temp2 NOP
11030.sound
11040OPT FNequb(&0)
11050.flask
11060OPT FNequb(&0A)
11070.pocket1
11080OPT FNequb(&FF)
11090.pocket2
11100OPT FNequb(&FF)
11110.count NOP
11120.last
11130OPT FNequb(&FF)
11140.home
11150OPT FNequb(&0)
11160.homescr
11170OPT FNequd(&591D5CDC)
11180OPT FNequd(&5E335A6C)
11190OPT FNequd(&609560A5)
11200OPT FNequd(&5A4A5E03)
11210.queue
11220OPT FNequd(&121A05)
11230OPT FNequd(&B0041900)
11240OPT FNequb(&4)
11250.ylo NOP
11260.yhi NOP
11270OPT FNequd(&1C042D)
11280OPT FNequw(&F1F)
11290OPT FNequb(&0)
11300.queue2
11310OPT FNequd(&121A05)
11320OPT FNequd(&B4041900)
11330OPT FNequb(&04)
11340.queue3
11350OPT FNequd(&B40419E7)
11360OPT FNequb(&04)
11370.queue4
11380OPT FNequd(&1C04E7)
11390OPT FNequw(&F1F)
11400OPT FNequb(&0)
11410]
11420PRINT~P%
11430NEXT
11440PROCoscli("DIR M")
11450PROCoscli("SAVE CODE3 3400 3CDF")
11460PROCoscli("DIR $")
11470END
11480DEFFNequb(S%)
11490?P%=S%:P%=P%+1
11500=pass%
11510DEFFNequw(S%)
11520!P%=S%:P%=P%+2
11530=pass%
11540DEFFNequd(S%)
11550!P%=S%:P%=P%+4
11560=pass%
11570DEFPROCoscli($&700)
11580LOCALX%,Y%:Y%=7:CALL&FFF7
11590ENDPROC

� Omniscient Machine Code
� Generator.
� Listing 3
(� by Peter Brown 1991
2:
<$� �<>&3D00 � �=&3D00:�"C.MCODE3"
Floc=&70
Pchar=&74
Ztemp=&7C
droom=&4940
nbyte=&493E
xyouloc=&7A
�youxy=&4946
�youch=&41EB
�tempxy=&494A
�nlrptr=&494B
�screen=&437E
�sprite=&440B
�energy=&494C
�obroom=&4282
�obloc=&420E
�obcol=&4248
�obxy=&41F1
�play1=&3CFA
�play2=&3D1B
noofob=&41F0
pyouml1=&3D42
delscr=&4031
"getdoors=&4036
,inroom=&4314
6mushroom=&41EF
@check=&4332
J:
T�pass%=0�2�2
^P%=&3400
h[
rOPTpass%
|.actionkeys
�
LDX #0
�LDA #&7A
�
JSR &FFF4
�CPX #73
�BEQ drop_pickup
�RTS
�.drop_pickup
�LDX noofob
�
.loopT
�LDA room
�CMP obroom,X
�BNE noob
�
LDA youxy
CMP obxy,X
BEQ object
	.noob
&DEX
0CPX #&FF
:
BNE loopT
D.object
NSTX mask
XJSR pob
bLDX pocket1
lJSR pob
vLDX pocket2
�JSR pob
�LDX pocket2
�STX last
�CPX #&FF
�BEQ skip
�
LDA youxy
�STA obxy,X
�LDA room
�STA obroom,X
�TXA
�	ASL A
�TAX
�LDA youloc
STA obloc,X
LDA youloc+1
STA obloc+1,X
 LDX pocket2
*	.skip
4JSR pob
>LDA pocket1
HCMP #&FF
R
BEQ skip1
\	ASL A
fTAX
pLDA #&30
zSTA obloc,X
�LDA #&7C
�STA obloc+1,X
�LDA pocket1
�
.skip1
�STA pocket2
�TAX
�JSR pob
�LDX mask
�CPX #&FF
�
BEQ skip2
�
LDA #0
�STA obroom,X
�STA obxy,X
TXA
	ASL A
TAX
$LDA #&10
.STA obloc,X
8LDA #&7C
BSTA obloc+1,X
LLDX mask
V
.skip2
`STX pocket1
jJSR pob
tJSR puz4
~
JMP event
�.pob
�CPX #&FF
�
BNE print
�RTS
�
.print
�TXA
�	ASL A
�TAX
�LDA obloc,X
�STA loc
�LDA obloc+1,X
�
STA loc+1
LDA obcol,X

STA char
LDA obcol+1,X
STA char+1
(JSR sprite
2RTS
<
.event
FLDA room
P
CMP #7
ZBNE noaltar
dLDA last
nCMP #14
xBCS noaltar
�
CMP #5
�BCC noaltar
�BEQ noaltar
�
LDA youxy
�CMP #&DC
�
BEQ altar
�CMP #&EC
�
BEQ altar
�.noaltar
�RTS
�
.puz12
�LDA room
�
CMP #7
BNE nopuz12

LDA youxy
CMP #&6D
"BNE nopuz12
,LDA pocket2
6CMP #14
@BNE nopuz12
JLDA inroom+9
T
CMP #7
^BNE nopuz12
h
LDA count
rCMP #&EA
|BCC nopuz12
�
LDA #0
�
STA count
�.nopuz12
�RTS
�.event2
�JSR countdown
�JSR puz3
�JSR puz5
�JSR puz6
�JSR puz9
�
JSR puz10
�LDA #&7A
�
JSR &FFF4
CPX #53
BNE noevent2
JSR puz1
&JSR puz2
0JSR puz7
:JSR puz8
D
JSR puz11
N
JSR puz12
X
.noevent2
bRTS
l.countdown
v
LDA count
�CMP #&EA
�BEQ nocountdown
�
LDA count
�CMP #80
�BEQ explode
�	� #15
�BNE noflash
�
LDX #0
�
LDY #7
�
JSR vdu19
�LDA #&FF
�STA col
�.noflash

INC count
.nocountdown
RTS
 
.altar
*LDX last
4JSR pob
>LDA last
HTAX
RSEC
\
SBC #6
f	ASL A
pTAY
zTXA
�	ASL A
�TAX
�LDA homescr,Y
�STA obloc,X
�LDA homescr+1,Y
�STA obloc+1,X
�LDX last
�LDA #&FF
�STA obroom,X
�STA obxy,X
�JSR pob
�INC home
�
LDA #1
	
STA sound
	RTS
	.explode
	$
LDY #1
	.
LDX #0
	8
JSR vdu19
	BINX
	LINX
	V
JSR vdu19
	`INX
	j
JSR vdu19
	tJSR delscr
	~LDA #&98
	�
STA &54D8
	�LDA #&80
	�
STA &54DA
	�
STA &54DC
	�JSR screen
	�JSR pyouml1
	�JSR getdoors
	�LDA room
	�
CMP #7
	�BNE notroom
	�LDX #&E
	�LDA obroom,X

BEQ nocan

JSR pob

.nocan
LDA #&E0
(STA loc
2LDA #&78
<
STA loc+1
FLDA #&E0
PSTA char
ZLDA #&4D
dSTA char+1
nJSR sprite
x.notroom
�LDX #&E
�LDA #&FF
�STA obroom,X
�STA obxy,X
�
LDX #9
�STA inroom,X
�LDA #&EA
�
STA count
�LDX room
�
CPX #7
�BNE noin
�STA mushroom
�	.noin

LDA #7

STA sound
RTS
"
.vdu19
,LDA #19
6
JSR &FFEE
@TXA
J
JSR &FFEE
TTYA
^
JSR &FFEE
h
LDA #0
r
JSR &FFEE
|
JSR &FFEE
�
JSR &FFEE
�RTS
�	.puz3
�LDA room
�
CMP #3
�BNE nopuz3
�
LDA youxy
�CMP #&65
�BNE nopuz3
�
LDA &544A
�CMP #&C0
�BNE nopuz3
�LDX #22
LDA obroom,X

CMP #3
BNE fake
&LDA obxy,X
0CMP #&75
:BNE fake
D.nopuz3
NRTS
X	.fake
bLDA #&F0
lSTA loc
vLDA #&64
�
STA loc+1
�LDA #&20
�STA char
�LDA #&4F
�STA char+1
�JSR sprite
�LDA #&C1
�
STA &544A
�LDX #26
�
.loopE
�LDA obroom,X
�
CMP #3
�BNE end

LDA obxy,X

CMP #&75

BNE end

 LDA #&FF

*STA obroom,X

4JSR pob

>JMP wall

H.end

RDEX

\CPX #&FF

f
BNE loopE

p	.wall

z
LDA #4

�
STA sound

�RTS

�	.puz2

�LDA pocket2

�CMP #23

�BNE nopuz2

�JMP magnet

�.nopuz2

�RTS

�.magnet2

�LDA obxy,X

�	� #&F

�
STA temp1

LDA youxy
	� #&F

CMP temp1
$BEQ P%+4
.BCS obdown
8BCC obup
BRTS
L	.obup
VLDA mag
`	ASL A
jTAX
tSEC
~LDA obloc,X
�SBC #&80
�STA temp
�
STA temp1
�LDA obloc+1,X
�
SBC #2
�STA temp+1
�
STA temp2
�
JSR check
�LDA byte
�CMP #&FF
�
BEQ nogo2
�LDX mag
DEC obxy,X

JSR pob
LDA mag
	ASL A
(TAX
2
LDA temp1
<STA obloc,X
F
LDA temp2
PSTA obloc+1,X
ZLDX mag
dJSR pob
n.nogo2 RTS
x.obdown
�LDA mag
�	ASL A
�TAX
�CLC
�LDA obloc,X
�ADC #&80
�STA temp
�
STA temp1
�LDA obloc+1,X
�
ADC #2
�STA temp+1
�
STA temp2
�
JSR check
LDA byte
CMP #&FF

BEQ nogo3
"LDX mag
,INC obxy,X
6JSR pob
@LDA mag
J	ASL A
TTAX
^
LDA temp1
hSTA obloc,X
r
LDA temp2
|STA obloc+1,X
�LDX mag
�JSR pob
�.nogo3 RTS
�.magnet
�LDX #16
�STX mag
�
JSR domag
�LDX #26
�STX mag
�
JSR domag
�RTS
�
.domag
�LDX mag
LDA obroom,X
CMP room
BNE nogo
&LDA obxy,X
0
� #&F0
:
STA temp1
D
LDA youxy
N
� #&F0
X
CMP temp1
bBEQ P%+4
lBCS obright
vBCC obleft
�JMP magnet2
�.obright
�LDA mag
�	ASL A
�TAX
�CLC
�LDA obloc,X
�ADC #&10
�STA temp
�
STA temp1
�LDA obloc+1,X
�
ADC #0
�STA temp+1

STA temp2

JSR check
LDA byte
 CMP #&FF
*BEQ nogo
4LDX mag
>CLC
HLDA obxy,X
RADC #&10
\STA obxy,X
fJSR pob
pLDA mag
z	ASL A
�TAX
�
LDA temp1
�STA obloc,X
�
LDA temp2
�STA obloc+1,X
�LDX mag
�JSR pob
�
.nogo RTS
�.obleft
�LDA mag
�	ASL A
�TAX
�SEC
LDA obloc,X
SBC #&10
STA temp
$
STA temp1
.LDA obloc+1,X
8
SBC #0
BSTA temp+1
L
STA temp2
V
JSR check
`LDA byte
jCMP #&FF
t
BEQ nogo1
~LDX mag
�SEC
�LDA obxy,X
�SBC #&10
�STA obxy,X
�JSR pob
�LDA mag
�	ASL A
�TAX
�
LDA temp1
�STA obloc,X
�
LDA temp2
�STA obloc+1,X
LDX mag

JSR pob
.nogo1 RTS
	.puz1
(LDA pocket2
2CMP #16
<BNE nopuz1
FLDA room
PCMP #32
ZBNE nopuz1
d
LDA youxy
nCMP #&96
xBNE nopuz1
�
LDX #6
�LDA inroom,X
�CMP #32
�BNE nopuz1
�JMP axe
�.nopuz1
�RTS
�.axe
�LDA #&90
�STA loc
�LDA #&67
�
STA loc+1
�LDA #&C0
STA char
LDA #&4B
STA char+1
"JSR sprite
,LDA #&FF
6
LDX #6
@STA inroom,X
JLDA #32
T
LDX #2
^STA obroom,X
hJSR pob
r
LDA #3
|
STA sound
�RTS
�	.puz4
�LDA last
�CMP #&FF
�BEQ nopuz4
�LDA room
�CMP #26
�BNE nopuz4
�
LDA youxy
�CMP #&6E
�BNE nopuz4
�JMP cauldron
�.nopuz4
RTS

.cauldron
LDX last
&JSR pob
0LDA #&EE
:LDX last
DSTA obroom,X
NLDA #&FF
XSTA last
b
LDA #8
l
STA sound
vRTS
�	.puz5
�LDX #20
�LDA obroom,X
�CMP #&EE
�BNE nopuz5
�LDX #21
�LDA obroom,X
�CMP #&EE
�BNE nopuz5
�JMP mix
�.nopuz5
�RTS
�.mix
LDX #27
STX pocket1

LDA #0
 STA obroom,X
*JSR pob
4LDX #21
>LDA #&FF
HSTA obroom,X
RLDX #20
\STA obroom,X
f
LDA #3
p
STA sound
zRTS
�	.puz6
�
LDA flask
�BNE nopuz6
�LDX #27
�LDA obroom,X
�CMP #&DD
�BEQ nopuz6
�JMP dopuz6
�.nopuz6
�RTS
�.dopuz6
�LDX #27
�JSR pob
LDX #27
LDA #&DD
STA obroom,X
$LDA pocket1
.CMP #27
8
BNE pock2
BLDA #&FF
LSTA pocket1
VRTS
`
.pock2
jLDA #&FF
tSTA pocket2
~RTS
�	.puz7
�LDX #28
�LDA inroom,X
�CMP #&FF
�BEQ nopuz7
�LDA room
�CMP #17
�BNE nopuz7
�
LDA youxy
�CMP #&67
�BNE nopuz7
�LDA pocket2
CMP #26

BNE nopuz7

LDA youch
BEQ mine
(
LDA youch
2CMP #&20
<BEQ mine
F.nopuz7
PRTS
Z	.mine
dLDA #&D0
nSTA loc
xLDA #&69
�
STA loc+1
�LDA #&E0
�STA char
�LDA #&4F
�STA char+1
�JSR sprite
�LDA #&FF
�LDX #28
�STA inroom,X
�LDA #17
�LDX #24
�STA obroom,X
�JSR pob

LDA #3

STA sound
RTS
"	.puz8
,LDA pocket2
6CMP #25
@BNE nopuz8
JLDX #28
TLDA obroom,X
^CMP #&FF
hBEQ book
r.nopuz8
|RTS
�	.book
�
LDA #2
�
STA sound
�LDX #28
�
LDA #7
�STA obroom,X
�LDA room
�
CMP #7
�BNE nopuz8
�JSR pob
�RTS
�	.puz9
�LDA room
CMP #15
BNE nopuz9

LDA youxy
&CMP #&91
0BNE nopuz9
:LDX #28
DLDA obroom,X
NBEQ nopuz9
X
JMP force
b.nopuz9
lRTS
v
.force
�LDA #&DD
�STA mushroom
�RTS
�.en
�LDA energy
�STA ylo
�
LDA #0
�STA yhi
�STA tempxy
�
JSR x2
�
JSR x2
�CLC
�LDA ylo
ADC #44
STA ylo
LDA yhi
 
ADC #1
*STA yhi
4
LDX #0
>
.loopR
HLDA queue,X
R
JSR &FFEE
\INX
fCPX #18
p
BNE loopR
zDEC energy
�
LDA #9
�
STA sound
�LDA energy
�CMP #49
�
BEQ green
�CMP #11
�BCC red
�RTS
�
.green
�
LDX #0
�
LDY #2
�
JSR vdu19
�LDA #&FF
STA col
RTS
.red
$
LDX #0
.
LDY #1
8
JSR vdu19
BLDA #&FF
LSTA col
VRTS
`.x2
jLDA ylo
t	ASL A
~STA ylo
�BCC nocarry
�INC yhi
�.nocarry
�RTS
�	.mush
�LDA energy
�
CMP #9
�BEQ P%+4
�BCS next
�
LDA #9
�STA energy
�	.next
STA ylo


LDA #0
STA yhi

JSR x2
(
JSR x2
2
LDX #0
<
.loopB
FLDA queue2,X
P
JSR &FFEE
ZINX
d
CPX #9
n
BNE loopB
xCLC
�LDA ylo
�ADC #32
�
STA temp1
�LDA yhi
�
ADC #1
�
STA temp2
�
LDA temp1
�
JSR &FFEE
�
LDA temp2
�
JSR &FFEE
�
LDX #0
�
.loopr
�LDA queue3,X

JSR &FFEE
INX

CPX #5
"
BNE loopr
,CLC
6LDA ylo
@ADC #24
J
STA temp1
TLDA yhi
^
ADC #1
h
STA temp2
r
LDA temp1
|
JSR &FFEE
�
LDA temp2
�
JSR &FFEE
�
LDX #0
�
.loopO
�LDA queue4,X
�
JSR &FFEE
�INX
�
CPX #7
�
BNE loopO
�SEC
�LDA energy
�SBC #10
�STA energy
 RTS
 .deduct
 LDX #28
 &LDA obroom,X
 0BNE ded
 :
LDA #0
 DSTA mushroom
 N.ded
 XJSR kill
 b
JSR kill2
 l
JSR kill3
 v
JSR kill4
 �
JSR kill5
 �RTS
 �	.kill
 �LDA mushroom
 �CMP #&FF
 �BNE nokill
 �LDX #27
 �LDA obroom,X
 �BEQ nokill
 �JSR mush
 �
LDA #6
 �
STA sound
 �.nokill
!RTS
!
.kill2
!LDA mushroom
! CMP #&FF
!*BNE nokill2
!4LDX #27
!>LDA obroom,X
!HBNE nokill2
!R
DEC flask
!\.nokill2
!fRTS
!p
.kill3
!zLDA mushroom
!�CMP #&EA
!�BNE nokill3
!�JSR mush
!�
LDA #0
!�STA mushroom
!�.nokill3
!�RTS
!�
.kill4
!�LDA mushroom
!�CMP #&DD
!�BNE nokill4
!�JSR mush
!�JSR mush
"
LDA #0
"STA mushroom
"
LDA #5
"$
STA sound
"..nokill4
"8RTS
"B
.kill5
"LLDA tempxy
"VBEQ nokill5
"`
JSR en
"j.nokill5
"tRTS
"~
.puz10
"�LDA room
"�CMP #28
"�BNE nopuz10
"�
LDA youxy
"�CMP #&8A
"�BNE nopuz10
"�
LDX #4
"�LDA inroom,X
"�CMP #28
"�BNE nopuz10
"�LDX #15
"�LDA obroom,X
#BEQ no1
#
LDX #19
#LDA obroom,X
#BEQ no1
#(.nopuz10
#2RTS
#<.no1
#FSTX used
#PLDA #&FF
#ZSTA obroom,X
#dLDA pocket1
#nCMP used
#xBNE np1
#�LDA #&FF
#�STA pocket1
#�JMP del
#�.np1
#�LDA #&FF
#�STA pocket2
#�.del
#�JSR pob
#�LDA #&80
#�STA loc
#�LDA #&71
#�
STA loc+1
#�LDA #&60
$STA char
$LDA #&4A
$STA char+1
$"JSR sprite
$,LDA #&80
$6STA loc
$@LDA #&71
$J
STA loc+1
$TLDA #&E0
$^STA char
$hLDA #&49
$rSTA char+1
$|JSR sprite
$�LDA #&FF
$�STA inroom+4
$�LDA #28
$�STA inroom+5
$�
LDA #3
$�
STA sound
$�RTS
$�
.puz11
$�LDA room
$�CMP #28
$�BNE nopuz11
$�
LDA youxy
$�CMP #&8A
%BNE nopuz11
%LDA inroom+5
%CMP #28
%&BNE nopuz11
%0LDX #17
%:CPX pocket2
%DBEQ fire
%NINX
%XCPX pocket2
%bBEQ fire
%l.nopuz11
%vRTS
%�	.fire
%�LDA #&FF
%�STA obroom,X
%�JSR pob
%�LDA #&71
%�
STA loc+1
%�LDA #&80
%�STA loc
%�LDA #&49
%�STA char+1
%�LDA #&E0
%�STA char
%�JSR sprite
&LDA #&71
&
STA loc+1
&LDA #&80
& STA loc
&*LDA #&4A
&4STA char+1
&>LDA #&60
&HSTA char
&RJSR sprite
&\LDA #28
&fSTA inroom+4
&pLDA #&FF
&zSTA inroom+5
&�LDA used
&�	ASL A
&�TAX
&�
LDA #0
&�STA obloc,X
&�LDA #&6F
&�STA obloc+1,X
&�LDX used
&�JSR pob
&�
LDY #9
&�STY ylo
&�
.loopW
&�LDA used
'STA mag
'JSR obup
'LDX #10
'$.out
'.LDY #255
'8
.delay
'BNOP
'LDEY
'V
BNE delay
'`DEX
'jBNE out
'tDEC ylo
'~LDA ylo
'�
BNE loopW
'�LDX used
'�JSR pob
'�LDX #50
'�	.out3
'�LDY #255
'�.delay3
'�NOP
'�DEY
'�BNE delay3
'�DEX
'�BNE out3
(LDA used
(
	ASL A
(TAX
(LDA #&F0
((STA obloc,X
(2LDA #&6C
(<STA obloc+1,X
(FLDX used
(PJSR pob
(ZLDY #13
(dSTY ylo
(n
.loopN
(xLDA used
(�STA mag
(�JSR obleft
(�LDX #10
(�	.out2
(�LDY #255
(�.delay2
(�NOP
(�DEY
(�BNE delay2
(�DEX
(�BNE out2
(�DEC ylo
(�LDA ylo
)
BNE loopN
)LDX used
)JSR pob
)"LDA #&FF
),STA pocket2
)6
LDA #7
)@
STA sound
)JLDA inroom+27
)TCMP #28
)^BEQ already
)hLDA #&6C
)r
STA loc+1
)|LDA #&20
)�STA loc
)�LDA #&4F
)�STA char+1
)�
LDA #0
)�STA char
)�JSR sprite
)�LDA #&6C
)�
STA loc+1
)�LDA #&20
)�STA loc
)�LDA #&4A
)�STA char+1
)�LDA #&C0
*STA char
*JSR sprite
*LDA #&80
*&
STA &5770
*0LDA #28
*:STA inroom+27
*DRTS
*N.already
*XLDA #&6C
*b
STA loc+1
*lLDA #&20
*vSTA loc
*�LDA #&4A
*�STA char+1
*�LDA #&C0
*�STA char
*�JSR sprite
*�LDA #&FF
*�STA inroom+27
*�RTS
*�RTS
*�.col NOP
*�.mag NOP
*�
.used NOP
*�
.mask NOP
+.temp1 NOP
+.temp2 NOP
+
.sound
+ OPT �equb(&0)
+*
.flask
+4OPT �equb(&0A)
+>.pocket1
+HOPT �equb(&FF)
+R.pocket2
+\OPT �equb(&FF)
+f.count NOP
+p	.last
+zOPT �equb(&FF)
+�	.home
+�OPT �equb(&0)
+�.homescr
+�OPT �equd(&591D5CDC)
+�OPT �equd(&5E335A6C)
+�OPT �equd(&609560A5)
+�OPT �equd(&5A4A5E03)
+�
.queue
+�OPT �equd(&121A05)
+�OPT �equd(&B0041900)
+�OPT �equb(&4)
+�.ylo NOP
+�.yhi NOP
,OPT �equd(&1C042D)
,OPT �equw(&F1F)
,OPT �equb(&0)
,$.queue2
,.OPT �equd(&121A05)
,8OPT �equd(&B4041900)
,BOPT �equb(&04)
,L.queue3
,VOPT �equd(&B40419E7)
,`OPT �equb(&04)
,j.queue4
,tOPT �equd(&1C04E7)
,~OPT �equw(&F1F)
,�OPT �equb(&0)
,�]
,��~P%
,��
,��oscli("DIR M")
,�"�oscli("SAVE CODE3 3400 3CDF")
,��oscli("DIR $")
,��
,�ݤequb(S%)
,�?P%=S%:P%=P%+1
,�
=pass%
,�ݤequw(S%)
-!P%=S%:P%=P%+2
-

=pass%
-ݤequd(S%)
-!P%=S%:P%=P%+4
-(
=pass%
-2��oscli($&700)
-<�X%,Y%:Y%=7:�&FFF7
-F�
�
00000000  0d 00 0a 1d f4 20 4f 6d  6e 69 73 63 69 65 6e 74  |..... Omniscient|
00000010  20 4d 61 63 68 69 6e 65  20 43 6f 64 65 0d 00 14  | Machine Code...|
00000020  10 f4 20 47 65 6e 65 72  61 74 6f 72 2e 0d 00 1e  |.. Generator....|
00000030  0f f4 20 4c 69 73 74 69  6e 67 20 33 0d 00 28 19  |.. Listing 3..(.|
00000040  f4 20 62 79 20 50 65 74  65 72 20 42 72 6f 77 6e  |. by Peter Brown|
00000050  20 31 39 39 31 0d 00 32  05 3a 0d 00 3c 24 e7 20  | 1991..2.:..<$. |
00000060  90 3c 3e 26 33 44 30 30  20 8c 20 d0 3d 26 33 44  |.<>&3D00 . .=&3D|
00000070  30 30 3a d7 22 43 2e 4d  43 4f 44 45 33 22 0d 00  |00:."C.MCODE3"..|
00000080  46 0b 6c 6f 63 3d 26 37  30 0d 00 50 0c 63 68 61  |F.loc=&70..P.cha|
00000090  72 3d 26 37 34 0d 00 5a  0c 74 65 6d 70 3d 26 37  |r=&74..Z.temp=&7|
000000a0  43 0d 00 64 0e 72 6f 6f  6d 3d 26 34 39 34 30 0d  |C..d.room=&4940.|
000000b0  00 6e 0e 62 79 74 65 3d  26 34 39 33 45 0d 00 78  |.n.byte=&493E..x|
000000c0  0e 79 6f 75 6c 6f 63 3d  26 37 41 0d 00 82 0f 79  |.youloc=&7A....y|
000000d0  6f 75 78 79 3d 26 34 39  34 36 0d 00 8c 0f 79 6f  |ouxy=&4946....yo|
000000e0  75 63 68 3d 26 34 31 45  42 0d 00 96 10 74 65 6d  |uch=&41EB....tem|
000000f0  70 78 79 3d 26 34 39 34  41 0d 00 a0 10 6e 6c 72  |pxy=&494A....nlr|
00000100  70 74 72 3d 26 34 39 34  42 0d 00 aa 10 73 63 72  |ptr=&494B....scr|
00000110  65 65 6e 3d 26 34 33 37  45 0d 00 b4 10 73 70 72  |een=&437E....spr|
00000120  69 74 65 3d 26 34 34 30  42 0d 00 be 10 65 6e 65  |ite=&440B....ene|
00000130  72 67 79 3d 26 34 39 34  43 0d 00 c8 10 6f 62 72  |rgy=&494C....obr|
00000140  6f 6f 6d 3d 26 34 32 38  32 0d 00 d2 0f 6f 62 6c  |oom=&4282....obl|
00000150  6f 63 3d 26 34 32 30 45  0d 00 dc 0f 6f 62 63 6f  |oc=&420E....obco|
00000160  6c 3d 26 34 32 34 38 0d  00 e6 0e 6f 62 78 79 3d  |l=&4248....obxy=|
00000170  26 34 31 46 31 0d 00 f0  0f 70 6c 61 79 31 3d 26  |&41F1....play1=&|
00000180  33 43 46 41 0d 00 fa 0f  70 6c 61 79 32 3d 26 33  |3CFA....play2=&3|
00000190  44 31 42 0d 01 04 10 6e  6f 6f 66 6f 62 3d 26 34  |D1B....noofob=&4|
000001a0  31 46 30 0d 01 0e 11 70  79 6f 75 6d 6c 31 3d 26  |1F0....pyouml1=&|
000001b0  33 44 34 32 0d 01 18 10  64 65 6c 73 63 72 3d 26  |3D42....delscr=&|
000001c0  34 30 33 31 0d 01 22 12  67 65 74 64 6f 6f 72 73  |4031..".getdoors|
000001d0  3d 26 34 30 33 36 0d 01  2c 10 69 6e 72 6f 6f 6d  |=&4036..,.inroom|
000001e0  3d 26 34 33 31 34 0d 01  36 12 6d 75 73 68 72 6f  |=&4314..6.mushro|
000001f0  6f 6d 3d 26 34 31 45 46  0d 01 40 0f 63 68 65 63  |om=&41EF..@.chec|
00000200  6b 3d 26 34 33 33 32 0d  01 4a 05 3a 0d 01 54 10  |k=&4332..J.:..T.|
00000210  e3 70 61 73 73 25 3d 30  b8 32 88 32 0d 01 5e 0c  |.pass%=0.2.2..^.|
00000220  50 25 3d 26 33 34 30 30  0d 01 68 05 5b 0d 01 72  |P%=&3400..h.[..r|
00000230  0c 4f 50 54 70 61 73 73  25 0d 01 7c 0f 2e 61 63  |.OPTpass%..|..ac|
00000240  74 69 6f 6e 6b 65 79 73  0d 01 86 0a 4c 44 58 20  |tionkeys....LDX |
00000250  23 30 0d 01 90 0c 4c 44  41 20 23 26 37 41 0d 01  |#0....LDA #&7A..|
00000260  9a 0d 4a 53 52 20 26 46  46 46 34 0d 01 a4 0b 43  |..JSR &FFF4....C|
00000270  50 58 20 23 37 33 0d 01  ae 13 42 45 51 20 64 72  |PX #73....BEQ dr|
00000280  6f 70 5f 70 69 63 6b 75  70 0d 01 b8 07 52 54 53  |op_pickup....RTS|
00000290  0d 01 c2 10 2e 64 72 6f  70 5f 70 69 63 6b 75 70  |.....drop_pickup|
000002a0  0d 01 cc 0e 4c 44 58 20  6e 6f 6f 66 6f 62 0d 01  |....LDX noofob..|
000002b0  d6 0a 2e 6c 6f 6f 70 54  0d 01 e0 0c 4c 44 41 20  |...loopT....LDA |
000002c0  72 6f 6f 6d 0d 01 ea 10  43 4d 50 20 6f 62 72 6f  |room....CMP obro|
000002d0  6f 6d 2c 58 0d 01 f4 0c  42 4e 45 20 6e 6f 6f 62  |om,X....BNE noob|
000002e0  0d 01 fe 0d 4c 44 41 20  79 6f 75 78 79 0d 02 08  |....LDA youxy...|
000002f0  0e 43 4d 50 20 6f 62 78  79 2c 58 0d 02 12 0e 42  |.CMP obxy,X....B|
00000300  45 51 20 6f 62 6a 65 63  74 0d 02 1c 09 2e 6e 6f  |EQ object.....no|
00000310  6f 62 0d 02 26 07 44 45  58 0d 02 30 0c 43 50 58  |ob..&.DEX..0.CPX|
00000320  20 23 26 46 46 0d 02 3a  0d 42 4e 45 20 6c 6f 6f  | #&FF..:.BNE loo|
00000330  70 54 0d 02 44 0b 2e 6f  62 6a 65 63 74 0d 02 4e  |pT..D..object..N|
00000340  0c 53 54 58 20 6d 61 73  6b 0d 02 58 0b 4a 53 52  |.STX mask..X.JSR|
00000350  20 70 6f 62 0d 02 62 0f  4c 44 58 20 70 6f 63 6b  | pob..b.LDX pock|
00000360  65 74 31 0d 02 6c 0b 4a  53 52 20 70 6f 62 0d 02  |et1..l.JSR pob..|
00000370  76 0f 4c 44 58 20 70 6f  63 6b 65 74 32 0d 02 80  |v.LDX pocket2...|
00000380  0b 4a 53 52 20 70 6f 62  0d 02 8a 0f 4c 44 58 20  |.JSR pob....LDX |
00000390  70 6f 63 6b 65 74 32 0d  02 94 0c 53 54 58 20 6c  |pocket2....STX l|
000003a0  61 73 74 0d 02 9e 0c 43  50 58 20 23 26 46 46 0d  |ast....CPX #&FF.|
000003b0  02 a8 0c 42 45 51 20 73  6b 69 70 0d 02 b2 0d 4c  |...BEQ skip....L|
000003c0  44 41 20 79 6f 75 78 79  0d 02 bc 0e 53 54 41 20  |DA youxy....STA |
000003d0  6f 62 78 79 2c 58 0d 02  c6 0c 4c 44 41 20 72 6f  |obxy,X....LDA ro|
000003e0  6f 6d 0d 02 d0 10 53 54  41 20 6f 62 72 6f 6f 6d  |om....STA obroom|
000003f0  2c 58 0d 02 da 07 54 58  41 0d 02 e4 09 41 53 4c  |,X....TXA....ASL|
00000400  20 41 0d 02 ee 07 54 41  58 0d 02 f8 0e 4c 44 41  | A....TAX....LDA|
00000410  20 79 6f 75 6c 6f 63 0d  03 02 0f 53 54 41 20 6f  | youloc....STA o|
00000420  62 6c 6f 63 2c 58 0d 03  0c 10 4c 44 41 20 79 6f  |bloc,X....LDA yo|
00000430  75 6c 6f 63 2b 31 0d 03  16 11 53 54 41 20 6f 62  |uloc+1....STA ob|
00000440  6c 6f 63 2b 31 2c 58 0d  03 20 0f 4c 44 58 20 70  |loc+1,X.. .LDX p|
00000450  6f 63 6b 65 74 32 0d 03  2a 09 2e 73 6b 69 70 0d  |ocket2..*..skip.|
00000460  03 34 0b 4a 53 52 20 70  6f 62 0d 03 3e 0f 4c 44  |.4.JSR pob..>.LD|
00000470  41 20 70 6f 63 6b 65 74  31 0d 03 48 0c 43 4d 50  |A pocket1..H.CMP|
00000480  20 23 26 46 46 0d 03 52  0d 42 45 51 20 73 6b 69  | #&FF..R.BEQ ski|
00000490  70 31 0d 03 5c 09 41 53  4c 20 41 0d 03 66 07 54  |p1..\.ASL A..f.T|
000004a0  41 58 0d 03 70 0c 4c 44  41 20 23 26 33 30 0d 03  |AX..p.LDA #&30..|
000004b0  7a 0f 53 54 41 20 6f 62  6c 6f 63 2c 58 0d 03 84  |z.STA obloc,X...|
000004c0  0c 4c 44 41 20 23 26 37  43 0d 03 8e 11 53 54 41  |.LDA #&7C....STA|
000004d0  20 6f 62 6c 6f 63 2b 31  2c 58 0d 03 98 0f 4c 44  | obloc+1,X....LD|
000004e0  41 20 70 6f 63 6b 65 74  31 0d 03 a2 0a 2e 73 6b  |A pocket1.....sk|
000004f0  69 70 31 0d 03 ac 0f 53  54 41 20 70 6f 63 6b 65  |ip1....STA pocke|
00000500  74 32 0d 03 b6 07 54 41  58 0d 03 c0 0b 4a 53 52  |t2....TAX....JSR|
00000510  20 70 6f 62 0d 03 ca 0c  4c 44 58 20 6d 61 73 6b  | pob....LDX mask|
00000520  0d 03 d4 0c 43 50 58 20  23 26 46 46 0d 03 de 0d  |....CPX #&FF....|
00000530  42 45 51 20 73 6b 69 70  32 0d 03 e8 0a 4c 44 41  |BEQ skip2....LDA|
00000540  20 23 30 0d 03 f2 10 53  54 41 20 6f 62 72 6f 6f  | #0....STA obroo|
00000550  6d 2c 58 0d 03 fc 0e 53  54 41 20 6f 62 78 79 2c  |m,X....STA obxy,|
00000560  58 0d 04 06 07 54 58 41  0d 04 10 09 41 53 4c 20  |X....TXA....ASL |
00000570  41 0d 04 1a 07 54 41 58  0d 04 24 0c 4c 44 41 20  |A....TAX..$.LDA |
00000580  23 26 31 30 0d 04 2e 0f  53 54 41 20 6f 62 6c 6f  |#&10....STA oblo|
00000590  63 2c 58 0d 04 38 0c 4c  44 41 20 23 26 37 43 0d  |c,X..8.LDA #&7C.|
000005a0  04 42 11 53 54 41 20 6f  62 6c 6f 63 2b 31 2c 58  |.B.STA obloc+1,X|
000005b0  0d 04 4c 0c 4c 44 58 20  6d 61 73 6b 0d 04 56 0a  |..L.LDX mask..V.|
000005c0  2e 73 6b 69 70 32 0d 04  60 0f 53 54 58 20 70 6f  |.skip2..`.STX po|
000005d0  63 6b 65 74 31 0d 04 6a  0b 4a 53 52 20 70 6f 62  |cket1..j.JSR pob|
000005e0  0d 04 74 0c 4a 53 52 20  70 75 7a 34 0d 04 7e 0d  |..t.JSR puz4..~.|
000005f0  4a 4d 50 20 65 76 65 6e  74 0d 04 88 08 2e 70 6f  |JMP event.....po|
00000600  62 0d 04 92 0c 43 50 58  20 23 26 46 46 0d 04 9c  |b....CPX #&FF...|
00000610  0d 42 4e 45 20 70 72 69  6e 74 0d 04 a6 07 52 54  |.BNE print....RT|
00000620  53 0d 04 b0 0a 2e 70 72  69 6e 74 0d 04 ba 07 54  |S.....print....T|
00000630  58 41 0d 04 c4 09 41 53  4c 20 41 0d 04 ce 07 54  |XA....ASL A....T|
00000640  41 58 0d 04 d8 0f 4c 44  41 20 6f 62 6c 6f 63 2c  |AX....LDA obloc,|
00000650  58 0d 04 e2 0b 53 54 41  20 6c 6f 63 0d 04 ec 11  |X....STA loc....|
00000660  4c 44 41 20 6f 62 6c 6f  63 2b 31 2c 58 0d 04 f6  |LDA obloc+1,X...|
00000670  0d 53 54 41 20 6c 6f 63  2b 31 0d 05 00 0f 4c 44  |.STA loc+1....LD|
00000680  41 20 6f 62 63 6f 6c 2c  58 0d 05 0a 0c 53 54 41  |A obcol,X....STA|
00000690  20 63 68 61 72 0d 05 14  11 4c 44 41 20 6f 62 63  | char....LDA obc|
000006a0  6f 6c 2b 31 2c 58 0d 05  1e 0e 53 54 41 20 63 68  |ol+1,X....STA ch|
000006b0  61 72 2b 31 0d 05 28 0e  4a 53 52 20 73 70 72 69  |ar+1..(.JSR spri|
000006c0  74 65 0d 05 32 07 52 54  53 0d 05 3c 0a 2e 65 76  |te..2.RTS..<..ev|
000006d0  65 6e 74 0d 05 46 0c 4c  44 41 20 72 6f 6f 6d 0d  |ent..F.LDA room.|
000006e0  05 50 0a 43 4d 50 20 23  37 0d 05 5a 0f 42 4e 45  |.P.CMP #7..Z.BNE|
000006f0  20 6e 6f 61 6c 74 61 72  0d 05 64 0c 4c 44 41 20  | noaltar..d.LDA |
00000700  6c 61 73 74 0d 05 6e 0b  43 4d 50 20 23 31 34 0d  |last..n.CMP #14.|
00000710  05 78 0f 42 43 53 20 6e  6f 61 6c 74 61 72 0d 05  |.x.BCS noaltar..|
00000720  82 0a 43 4d 50 20 23 35  0d 05 8c 0f 42 43 43 20  |..CMP #5....BCC |
00000730  6e 6f 61 6c 74 61 72 0d  05 96 0f 42 45 51 20 6e  |noaltar....BEQ n|
00000740  6f 61 6c 74 61 72 0d 05  a0 0d 4c 44 41 20 79 6f  |oaltar....LDA yo|
00000750  75 78 79 0d 05 aa 0c 43  4d 50 20 23 26 44 43 0d  |uxy....CMP #&DC.|
00000760  05 b4 0d 42 45 51 20 61  6c 74 61 72 0d 05 be 0c  |...BEQ altar....|
00000770  43 4d 50 20 23 26 45 43  0d 05 c8 0d 42 45 51 20  |CMP #&EC....BEQ |
00000780  61 6c 74 61 72 0d 05 d2  0c 2e 6e 6f 61 6c 74 61  |altar.....noalta|
00000790  72 0d 05 dc 07 52 54 53  0d 05 e6 0a 2e 70 75 7a  |r....RTS.....puz|
000007a0  31 32 0d 05 f0 0c 4c 44  41 20 72 6f 6f 6d 0d 05  |12....LDA room..|
000007b0  fa 0a 43 4d 50 20 23 37  0d 06 04 0f 42 4e 45 20  |..CMP #7....BNE |
000007c0  6e 6f 70 75 7a 31 32 0d  06 0e 0d 4c 44 41 20 79  |nopuz12....LDA y|
000007d0  6f 75 78 79 0d 06 18 0c  43 4d 50 20 23 26 36 44  |ouxy....CMP #&6D|
000007e0  0d 06 22 0f 42 4e 45 20  6e 6f 70 75 7a 31 32 0d  |..".BNE nopuz12.|
000007f0  06 2c 0f 4c 44 41 20 70  6f 63 6b 65 74 32 0d 06  |.,.LDA pocket2..|
00000800  36 0b 43 4d 50 20 23 31  34 0d 06 40 0f 42 4e 45  |6.CMP #14..@.BNE|
00000810  20 6e 6f 70 75 7a 31 32  0d 06 4a 10 4c 44 41 20  | nopuz12..J.LDA |
00000820  69 6e 72 6f 6f 6d 2b 39  0d 06 54 0a 43 4d 50 20  |inroom+9..T.CMP |
00000830  23 37 0d 06 5e 0f 42 4e  45 20 6e 6f 70 75 7a 31  |#7..^.BNE nopuz1|
00000840  32 0d 06 68 0d 4c 44 41  20 63 6f 75 6e 74 0d 06  |2..h.LDA count..|
00000850  72 0c 43 4d 50 20 23 26  45 41 0d 06 7c 0f 42 43  |r.CMP #&EA..|.BC|
00000860  43 20 6e 6f 70 75 7a 31  32 0d 06 86 0a 4c 44 41  |C nopuz12....LDA|
00000870  20 23 30 0d 06 90 0d 53  54 41 20 63 6f 75 6e 74  | #0....STA count|
00000880  0d 06 9a 0c 2e 6e 6f 70  75 7a 31 32 0d 06 a4 07  |.....nopuz12....|
00000890  52 54 53 0d 06 ae 0b 2e  65 76 65 6e 74 32 0d 06  |RTS.....event2..|
000008a0  b8 11 4a 53 52 20 63 6f  75 6e 74 64 6f 77 6e 0d  |..JSR countdown.|
000008b0  06 c2 0c 4a 53 52 20 70  75 7a 33 0d 06 cc 0c 4a  |...JSR puz3....J|
000008c0  53 52 20 70 75 7a 35 0d  06 d6 0c 4a 53 52 20 70  |SR puz5....JSR p|
000008d0  75 7a 36 0d 06 e0 0c 4a  53 52 20 70 75 7a 39 0d  |uz6....JSR puz9.|
000008e0  06 ea 0d 4a 53 52 20 70  75 7a 31 30 0d 06 f4 0c  |...JSR puz10....|
000008f0  4c 44 41 20 23 26 37 41  0d 06 fe 0d 4a 53 52 20  |LDA #&7A....JSR |
00000900  26 46 46 46 34 0d 07 08  0b 43 50 58 20 23 35 33  |&FFF4....CPX #53|
00000910  0d 07 12 10 42 4e 45 20  6e 6f 65 76 65 6e 74 32  |....BNE noevent2|
00000920  0d 07 1c 0c 4a 53 52 20  70 75 7a 31 0d 07 26 0c  |....JSR puz1..&.|
00000930  4a 53 52 20 70 75 7a 32  0d 07 30 0c 4a 53 52 20  |JSR puz2..0.JSR |
00000940  70 75 7a 37 0d 07 3a 0c  4a 53 52 20 70 75 7a 38  |puz7..:.JSR puz8|
00000950  0d 07 44 0d 4a 53 52 20  70 75 7a 31 31 0d 07 4e  |..D.JSR puz11..N|
00000960  0d 4a 53 52 20 70 75 7a  31 32 0d 07 58 0d 2e 6e  |.JSR puz12..X..n|
00000970  6f 65 76 65 6e 74 32 0d  07 62 07 52 54 53 0d 07  |oevent2..b.RTS..|
00000980  6c 0e 2e 63 6f 75 6e 74  64 6f 77 6e 0d 07 76 0d  |l..countdown..v.|
00000990  4c 44 41 20 63 6f 75 6e  74 0d 07 80 0c 43 4d 50  |LDA count....CMP|
000009a0  20 23 26 45 41 0d 07 8a  13 42 45 51 20 6e 6f 63  | #&EA....BEQ noc|
000009b0  6f 75 6e 74 64 6f 77 6e  0d 07 94 0d 4c 44 41 20  |ountdown....LDA |
000009c0  63 6f 75 6e 74 0d 07 9e  0b 43 4d 50 20 23 38 30  |count....CMP #80|
000009d0  0d 07 a8 0f 42 45 51 20  65 78 70 6c 6f 64 65 0d  |....BEQ explode.|
000009e0  07 b2 09 80 20 23 31 35  0d 07 bc 0f 42 4e 45 20  |.... #15....BNE |
000009f0  6e 6f 66 6c 61 73 68 0d  07 c6 0a 4c 44 58 20 23  |noflash....LDX #|
00000a00  30 0d 07 d0 0a 4c 44 59  20 23 37 0d 07 da 0d 4a  |0....LDY #7....J|
00000a10  53 52 20 76 64 75 31 39  0d 07 e4 0c 4c 44 41 20  |SR vdu19....LDA |
00000a20  23 26 46 46 0d 07 ee 0b  53 54 41 20 63 6f 6c 0d  |#&FF....STA col.|
00000a30  07 f8 0c 2e 6e 6f 66 6c  61 73 68 0d 08 02 0d 49  |....noflash....I|
00000a40  4e 43 20 63 6f 75 6e 74  0d 08 0c 10 2e 6e 6f 63  |NC count.....noc|
00000a50  6f 75 6e 74 64 6f 77 6e  0d 08 16 07 52 54 53 0d  |ountdown....RTS.|
00000a60  08 20 0a 2e 61 6c 74 61  72 0d 08 2a 0c 4c 44 58  |. ..altar..*.LDX|
00000a70  20 6c 61 73 74 0d 08 34  0b 4a 53 52 20 70 6f 62  | last..4.JSR pob|
00000a80  0d 08 3e 0c 4c 44 41 20  6c 61 73 74 0d 08 48 07  |..>.LDA last..H.|
00000a90  54 41 58 0d 08 52 07 53  45 43 0d 08 5c 0a 53 42  |TAX..R.SEC..\.SB|
00000aa0  43 20 23 36 0d 08 66 09  41 53 4c 20 41 0d 08 70  |C #6..f.ASL A..p|
00000ab0  07 54 41 59 0d 08 7a 07  54 58 41 0d 08 84 09 41  |.TAY..z.TXA....A|
00000ac0  53 4c 20 41 0d 08 8e 07  54 41 58 0d 08 98 11 4c  |SL A....TAX....L|
00000ad0  44 41 20 68 6f 6d 65 73  63 72 2c 59 0d 08 a2 0f  |DA homescr,Y....|
00000ae0  53 54 41 20 6f 62 6c 6f  63 2c 58 0d 08 ac 13 4c  |STA obloc,X....L|
00000af0  44 41 20 68 6f 6d 65 73  63 72 2b 31 2c 59 0d 08  |DA homescr+1,Y..|
00000b00  b6 11 53 54 41 20 6f 62  6c 6f 63 2b 31 2c 58 0d  |..STA obloc+1,X.|
00000b10  08 c0 0c 4c 44 58 20 6c  61 73 74 0d 08 ca 0c 4c  |...LDX last....L|
00000b20  44 41 20 23 26 46 46 0d  08 d4 10 53 54 41 20 6f  |DA #&FF....STA o|
00000b30  62 72 6f 6f 6d 2c 58 0d  08 de 0e 53 54 41 20 6f  |broom,X....STA o|
00000b40  62 78 79 2c 58 0d 08 e8  0b 4a 53 52 20 70 6f 62  |bxy,X....JSR pob|
00000b50  0d 08 f2 0c 49 4e 43 20  68 6f 6d 65 0d 08 fc 0a  |....INC home....|
00000b60  4c 44 41 20 23 31 0d 09  06 0d 53 54 41 20 73 6f  |LDA #1....STA so|
00000b70  75 6e 64 0d 09 10 07 52  54 53 0d 09 1a 0c 2e 65  |und....RTS.....e|
00000b80  78 70 6c 6f 64 65 0d 09  24 0a 4c 44 59 20 23 31  |xplode..$.LDY #1|
00000b90  0d 09 2e 0a 4c 44 58 20  23 30 0d 09 38 0d 4a 53  |....LDX #0..8.JS|
00000ba0  52 20 76 64 75 31 39 0d  09 42 07 49 4e 58 0d 09  |R vdu19..B.INX..|
00000bb0  4c 07 49 4e 58 0d 09 56  0d 4a 53 52 20 76 64 75  |L.INX..V.JSR vdu|
00000bc0  31 39 0d 09 60 07 49 4e  58 0d 09 6a 0d 4a 53 52  |19..`.INX..j.JSR|
00000bd0  20 76 64 75 31 39 0d 09  74 0e 4a 53 52 20 64 65  | vdu19..t.JSR de|
00000be0  6c 73 63 72 0d 09 7e 0c  4c 44 41 20 23 26 39 38  |lscr..~.LDA #&98|
00000bf0  0d 09 88 0d 53 54 41 20  26 35 34 44 38 0d 09 92  |....STA &54D8...|
00000c00  0c 4c 44 41 20 23 26 38  30 0d 09 9c 0d 53 54 41  |.LDA #&80....STA|
00000c10  20 26 35 34 44 41 0d 09  a6 0d 53 54 41 20 26 35  | &54DA....STA &5|
00000c20  34 44 43 0d 09 b0 0e 4a  53 52 20 73 63 72 65 65  |4DC....JSR scree|
00000c30  6e 0d 09 ba 0f 4a 53 52  20 70 79 6f 75 6d 6c 31  |n....JSR pyouml1|
00000c40  0d 09 c4 10 4a 53 52 20  67 65 74 64 6f 6f 72 73  |....JSR getdoors|
00000c50  0d 09 ce 0c 4c 44 41 20  72 6f 6f 6d 0d 09 d8 0a  |....LDA room....|
00000c60  43 4d 50 20 23 37 0d 09  e2 0f 42 4e 45 20 6e 6f  |CMP #7....BNE no|
00000c70  74 72 6f 6f 6d 0d 09 ec  0b 4c 44 58 20 23 26 45  |troom....LDX #&E|
00000c80  0d 09 f6 10 4c 44 41 20  6f 62 72 6f 6f 6d 2c 58  |....LDA obroom,X|
00000c90  0d 0a 00 0d 42 45 51 20  6e 6f 63 61 6e 0d 0a 0a  |....BEQ nocan...|
00000ca0  0b 4a 53 52 20 70 6f 62  0d 0a 14 0a 2e 6e 6f 63  |.JSR pob.....noc|
00000cb0  61 6e 0d 0a 1e 0c 4c 44  41 20 23 26 45 30 0d 0a  |an....LDA #&E0..|
00000cc0  28 0b 53 54 41 20 6c 6f  63 0d 0a 32 0c 4c 44 41  |(.STA loc..2.LDA|
00000cd0  20 23 26 37 38 0d 0a 3c  0d 53 54 41 20 6c 6f 63  | #&78..<.STA loc|
00000ce0  2b 31 0d 0a 46 0c 4c 44  41 20 23 26 45 30 0d 0a  |+1..F.LDA #&E0..|
00000cf0  50 0c 53 54 41 20 63 68  61 72 0d 0a 5a 0c 4c 44  |P.STA char..Z.LD|
00000d00  41 20 23 26 34 44 0d 0a  64 0e 53 54 41 20 63 68  |A #&4D..d.STA ch|
00000d10  61 72 2b 31 0d 0a 6e 0e  4a 53 52 20 73 70 72 69  |ar+1..n.JSR spri|
00000d20  74 65 0d 0a 78 0c 2e 6e  6f 74 72 6f 6f 6d 0d 0a  |te..x..notroom..|
00000d30  82 0b 4c 44 58 20 23 26  45 0d 0a 8c 0c 4c 44 41  |..LDX #&E....LDA|
00000d40  20 23 26 46 46 0d 0a 96  10 53 54 41 20 6f 62 72  | #&FF....STA obr|
00000d50  6f 6f 6d 2c 58 0d 0a a0  0e 53 54 41 20 6f 62 78  |oom,X....STA obx|
00000d60  79 2c 58 0d 0a aa 0a 4c  44 58 20 23 39 0d 0a b4  |y,X....LDX #9...|
00000d70  10 53 54 41 20 69 6e 72  6f 6f 6d 2c 58 0d 0a be  |.STA inroom,X...|
00000d80  0c 4c 44 41 20 23 26 45  41 0d 0a c8 0d 53 54 41  |.LDA #&EA....STA|
00000d90  20 63 6f 75 6e 74 0d 0a  d2 0c 4c 44 58 20 72 6f  | count....LDX ro|
00000da0  6f 6d 0d 0a dc 0a 43 50  58 20 23 37 0d 0a e6 0c  |om....CPX #7....|
00000db0  42 4e 45 20 6e 6f 69 6e  0d 0a f0 10 53 54 41 20  |BNE noin....STA |
00000dc0  6d 75 73 68 72 6f 6f 6d  0d 0a fa 09 2e 6e 6f 69  |mushroom.....noi|
00000dd0  6e 0d 0b 04 0a 4c 44 41  20 23 37 0d 0b 0e 0d 53  |n....LDA #7....S|
00000de0  54 41 20 73 6f 75 6e 64  0d 0b 18 07 52 54 53 0d  |TA sound....RTS.|
00000df0  0b 22 0a 2e 76 64 75 31  39 0d 0b 2c 0b 4c 44 41  |."..vdu19..,.LDA|
00000e00  20 23 31 39 0d 0b 36 0d  4a 53 52 20 26 46 46 45  | #19..6.JSR &FFE|
00000e10  45 0d 0b 40 07 54 58 41  0d 0b 4a 0d 4a 53 52 20  |E..@.TXA..J.JSR |
00000e20  26 46 46 45 45 0d 0b 54  07 54 59 41 0d 0b 5e 0d  |&FFEE..T.TYA..^.|
00000e30  4a 53 52 20 26 46 46 45  45 0d 0b 68 0a 4c 44 41  |JSR &FFEE..h.LDA|
00000e40  20 23 30 0d 0b 72 0d 4a  53 52 20 26 46 46 45 45  | #0..r.JSR &FFEE|
00000e50  0d 0b 7c 0d 4a 53 52 20  26 46 46 45 45 0d 0b 86  |..|.JSR &FFEE...|
00000e60  0d 4a 53 52 20 26 46 46  45 45 0d 0b 90 07 52 54  |.JSR &FFEE....RT|
00000e70  53 0d 0b 9a 09 2e 70 75  7a 33 0d 0b a4 0c 4c 44  |S.....puz3....LD|
00000e80  41 20 72 6f 6f 6d 0d 0b  ae 0a 43 4d 50 20 23 33  |A room....CMP #3|
00000e90  0d 0b b8 0e 42 4e 45 20  6e 6f 70 75 7a 33 0d 0b  |....BNE nopuz3..|
00000ea0  c2 0d 4c 44 41 20 79 6f  75 78 79 0d 0b cc 0c 43  |..LDA youxy....C|
00000eb0  4d 50 20 23 26 36 35 0d  0b d6 0e 42 4e 45 20 6e  |MP #&65....BNE n|
00000ec0  6f 70 75 7a 33 0d 0b e0  0d 4c 44 41 20 26 35 34  |opuz3....LDA &54|
00000ed0  34 41 0d 0b ea 0c 43 4d  50 20 23 26 43 30 0d 0b  |4A....CMP #&C0..|
00000ee0  f4 0e 42 4e 45 20 6e 6f  70 75 7a 33 0d 0b fe 0b  |..BNE nopuz3....|
00000ef0  4c 44 58 20 23 32 32 0d  0c 08 10 4c 44 41 20 6f  |LDX #22....LDA o|
00000f00  62 72 6f 6f 6d 2c 58 0d  0c 12 0a 43 4d 50 20 23  |broom,X....CMP #|
00000f10  33 0d 0c 1c 0c 42 4e 45  20 66 61 6b 65 0d 0c 26  |3....BNE fake..&|
00000f20  0e 4c 44 41 20 6f 62 78  79 2c 58 0d 0c 30 0c 43  |.LDA obxy,X..0.C|
00000f30  4d 50 20 23 26 37 35 0d  0c 3a 0c 42 4e 45 20 66  |MP #&75..:.BNE f|
00000f40  61 6b 65 0d 0c 44 0b 2e  6e 6f 70 75 7a 33 0d 0c  |ake..D..nopuz3..|
00000f50  4e 07 52 54 53 0d 0c 58  09 2e 66 61 6b 65 0d 0c  |N.RTS..X..fake..|
00000f60  62 0c 4c 44 41 20 23 26  46 30 0d 0c 6c 0b 53 54  |b.LDA #&F0..l.ST|
00000f70  41 20 6c 6f 63 0d 0c 76  0c 4c 44 41 20 23 26 36  |A loc..v.LDA #&6|
00000f80  34 0d 0c 80 0d 53 54 41  20 6c 6f 63 2b 31 0d 0c  |4....STA loc+1..|
00000f90  8a 0c 4c 44 41 20 23 26  32 30 0d 0c 94 0c 53 54  |..LDA #&20....ST|
00000fa0  41 20 63 68 61 72 0d 0c  9e 0c 4c 44 41 20 23 26  |A char....LDA #&|
00000fb0  34 46 0d 0c a8 0e 53 54  41 20 63 68 61 72 2b 31  |4F....STA char+1|
00000fc0  0d 0c b2 0e 4a 53 52 20  73 70 72 69 74 65 0d 0c  |....JSR sprite..|
00000fd0  bc 0c 4c 44 41 20 23 26  43 31 0d 0c c6 0d 53 54  |..LDA #&C1....ST|
00000fe0  41 20 26 35 34 34 41 0d  0c d0 0b 4c 44 58 20 23  |A &544A....LDX #|
00000ff0  32 36 0d 0c da 0a 2e 6c  6f 6f 70 45 0d 0c e4 10  |26.....loopE....|
00001000  4c 44 41 20 6f 62 72 6f  6f 6d 2c 58 0d 0c ee 0a  |LDA obroom,X....|
00001010  43 4d 50 20 23 33 0d 0c  f8 0b 42 4e 45 20 65 6e  |CMP #3....BNE en|
00001020  64 0d 0d 02 0e 4c 44 41  20 6f 62 78 79 2c 58 0d  |d....LDA obxy,X.|
00001030  0d 0c 0c 43 4d 50 20 23  26 37 35 0d 0d 16 0b 42  |...CMP #&75....B|
00001040  4e 45 20 65 6e 64 0d 0d  20 0c 4c 44 41 20 23 26  |NE end.. .LDA #&|
00001050  46 46 0d 0d 2a 10 53 54  41 20 6f 62 72 6f 6f 6d  |FF..*.STA obroom|
00001060  2c 58 0d 0d 34 0b 4a 53  52 20 70 6f 62 0d 0d 3e  |,X..4.JSR pob..>|
00001070  0c 4a 4d 50 20 77 61 6c  6c 0d 0d 48 08 2e 65 6e  |.JMP wall..H..en|
00001080  64 0d 0d 52 07 44 45 58  0d 0d 5c 0c 43 50 58 20  |d..R.DEX..\.CPX |
00001090  23 26 46 46 0d 0d 66 0d  42 4e 45 20 6c 6f 6f 70  |#&FF..f.BNE loop|
000010a0  45 0d 0d 70 09 2e 77 61  6c 6c 0d 0d 7a 0a 4c 44  |E..p..wall..z.LD|
000010b0  41 20 23 34 0d 0d 84 0d  53 54 41 20 73 6f 75 6e  |A #4....STA soun|
000010c0  64 0d 0d 8e 07 52 54 53  0d 0d 98 09 2e 70 75 7a  |d....RTS.....puz|
000010d0  32 0d 0d a2 0f 4c 44 41  20 70 6f 63 6b 65 74 32  |2....LDA pocket2|
000010e0  0d 0d ac 0b 43 4d 50 20  23 32 33 0d 0d b6 0e 42  |....CMP #23....B|
000010f0  4e 45 20 6e 6f 70 75 7a  32 0d 0d c0 0e 4a 4d 50  |NE nopuz2....JMP|
00001100  20 6d 61 67 6e 65 74 0d  0d ca 0b 2e 6e 6f 70 75  | magnet.....nopu|
00001110  7a 32 0d 0d d4 07 52 54  53 0d 0d de 0c 2e 6d 61  |z2....RTS.....ma|
00001120  67 6e 65 74 32 0d 0d e8  0e 4c 44 41 20 6f 62 78  |gnet2....LDA obx|
00001130  79 2c 58 0d 0d f2 09 80  20 23 26 46 0d 0d fc 0d  |y,X..... #&F....|
00001140  53 54 41 20 74 65 6d 70  31 0d 0e 06 0d 4c 44 41  |STA temp1....LDA|
00001150  20 79 6f 75 78 79 0d 0e  10 09 80 20 23 26 46 0d  | youxy..... #&F.|
00001160  0e 1a 0d 43 4d 50 20 74  65 6d 70 31 0d 0e 24 0c  |...CMP temp1..$.|
00001170  42 45 51 20 50 25 2b 34  0d 0e 2e 0e 42 43 53 20  |BEQ P%+4....BCS |
00001180  6f 62 64 6f 77 6e 0d 0e  38 0c 42 43 43 20 6f 62  |obdown..8.BCC ob|
00001190  75 70 0d 0e 42 07 52 54  53 0d 0e 4c 09 2e 6f 62  |up..B.RTS..L..ob|
000011a0  75 70 0d 0e 56 0b 4c 44  41 20 6d 61 67 0d 0e 60  |up..V.LDA mag..`|
000011b0  09 41 53 4c 20 41 0d 0e  6a 07 54 41 58 0d 0e 74  |.ASL A..j.TAX..t|
000011c0  07 53 45 43 0d 0e 7e 0f  4c 44 41 20 6f 62 6c 6f  |.SEC..~.LDA oblo|
000011d0  63 2c 58 0d 0e 88 0c 53  42 43 20 23 26 38 30 0d  |c,X....SBC #&80.|
000011e0  0e 92 0c 53 54 41 20 74  65 6d 70 0d 0e 9c 0d 53  |...STA temp....S|
000011f0  54 41 20 74 65 6d 70 31  0d 0e a6 11 4c 44 41 20  |TA temp1....LDA |
00001200  6f 62 6c 6f 63 2b 31 2c  58 0d 0e b0 0a 53 42 43  |obloc+1,X....SBC|
00001210  20 23 32 0d 0e ba 0e 53  54 41 20 74 65 6d 70 2b  | #2....STA temp+|
00001220  31 0d 0e c4 0d 53 54 41  20 74 65 6d 70 32 0d 0e  |1....STA temp2..|
00001230  ce 0d 4a 53 52 20 63 68  65 63 6b 0d 0e d8 0c 4c  |..JSR check....L|
00001240  44 41 20 62 79 74 65 0d  0e e2 0c 43 4d 50 20 23  |DA byte....CMP #|
00001250  26 46 46 0d 0e ec 0d 42  45 51 20 6e 6f 67 6f 32  |&FF....BEQ nogo2|
00001260  0d 0e f6 0b 4c 44 58 20  6d 61 67 0d 0f 00 0e 44  |....LDX mag....D|
00001270  45 43 20 6f 62 78 79 2c  58 0d 0f 0a 0b 4a 53 52  |EC obxy,X....JSR|
00001280  20 70 6f 62 0d 0f 14 0b  4c 44 41 20 6d 61 67 0d  | pob....LDA mag.|
00001290  0f 1e 09 41 53 4c 20 41  0d 0f 28 07 54 41 58 0d  |...ASL A..(.TAX.|
000012a0  0f 32 0d 4c 44 41 20 74  65 6d 70 31 0d 0f 3c 0f  |.2.LDA temp1..<.|
000012b0  53 54 41 20 6f 62 6c 6f  63 2c 58 0d 0f 46 0d 4c  |STA obloc,X..F.L|
000012c0  44 41 20 74 65 6d 70 32  0d 0f 50 11 53 54 41 20  |DA temp2..P.STA |
000012d0  6f 62 6c 6f 63 2b 31 2c  58 0d 0f 5a 0b 4c 44 58  |obloc+1,X..Z.LDX|
000012e0  20 6d 61 67 0d 0f 64 0b  4a 53 52 20 70 6f 62 0d  | mag..d.JSR pob.|
000012f0  0f 6e 0e 2e 6e 6f 67 6f  32 20 52 54 53 0d 0f 78  |.n..nogo2 RTS..x|
00001300  0b 2e 6f 62 64 6f 77 6e  0d 0f 82 0b 4c 44 41 20  |..obdown....LDA |
00001310  6d 61 67 0d 0f 8c 09 41  53 4c 20 41 0d 0f 96 07  |mag....ASL A....|
00001320  54 41 58 0d 0f a0 07 43  4c 43 0d 0f aa 0f 4c 44  |TAX....CLC....LD|
00001330  41 20 6f 62 6c 6f 63 2c  58 0d 0f b4 0c 41 44 43  |A obloc,X....ADC|
00001340  20 23 26 38 30 0d 0f be  0c 53 54 41 20 74 65 6d  | #&80....STA tem|
00001350  70 0d 0f c8 0d 53 54 41  20 74 65 6d 70 31 0d 0f  |p....STA temp1..|
00001360  d2 11 4c 44 41 20 6f 62  6c 6f 63 2b 31 2c 58 0d  |..LDA obloc+1,X.|
00001370  0f dc 0a 41 44 43 20 23  32 0d 0f e6 0e 53 54 41  |...ADC #2....STA|
00001380  20 74 65 6d 70 2b 31 0d  0f f0 0d 53 54 41 20 74  | temp+1....STA t|
00001390  65 6d 70 32 0d 0f fa 0d  4a 53 52 20 63 68 65 63  |emp2....JSR chec|
000013a0  6b 0d 10 04 0c 4c 44 41  20 62 79 74 65 0d 10 0e  |k....LDA byte...|
000013b0  0c 43 4d 50 20 23 26 46  46 0d 10 18 0d 42 45 51  |.CMP #&FF....BEQ|
000013c0  20 6e 6f 67 6f 33 0d 10  22 0b 4c 44 58 20 6d 61  | nogo3..".LDX ma|
000013d0  67 0d 10 2c 0e 49 4e 43  20 6f 62 78 79 2c 58 0d  |g..,.INC obxy,X.|
000013e0  10 36 0b 4a 53 52 20 70  6f 62 0d 10 40 0b 4c 44  |.6.JSR pob..@.LD|
000013f0  41 20 6d 61 67 0d 10 4a  09 41 53 4c 20 41 0d 10  |A mag..J.ASL A..|
00001400  54 07 54 41 58 0d 10 5e  0d 4c 44 41 20 74 65 6d  |T.TAX..^.LDA tem|
00001410  70 31 0d 10 68 0f 53 54  41 20 6f 62 6c 6f 63 2c  |p1..h.STA obloc,|
00001420  58 0d 10 72 0d 4c 44 41  20 74 65 6d 70 32 0d 10  |X..r.LDA temp2..|
00001430  7c 11 53 54 41 20 6f 62  6c 6f 63 2b 31 2c 58 0d  ||.STA obloc+1,X.|
00001440  10 86 0b 4c 44 58 20 6d  61 67 0d 10 90 0b 4a 53  |...LDX mag....JS|
00001450  52 20 70 6f 62 0d 10 9a  0e 2e 6e 6f 67 6f 33 20  |R pob.....nogo3 |
00001460  52 54 53 0d 10 a4 0b 2e  6d 61 67 6e 65 74 0d 10  |RTS.....magnet..|
00001470  ae 0b 4c 44 58 20 23 31  36 0d 10 b8 0b 53 54 58  |..LDX #16....STX|
00001480  20 6d 61 67 0d 10 c2 0d  4a 53 52 20 64 6f 6d 61  | mag....JSR doma|
00001490  67 0d 10 cc 0b 4c 44 58  20 23 32 36 0d 10 d6 0b  |g....LDX #26....|
000014a0  53 54 58 20 6d 61 67 0d  10 e0 0d 4a 53 52 20 64  |STX mag....JSR d|
000014b0  6f 6d 61 67 0d 10 ea 07  52 54 53 0d 10 f4 0a 2e  |omag....RTS.....|
000014c0  64 6f 6d 61 67 0d 10 fe  0b 4c 44 58 20 6d 61 67  |domag....LDX mag|
000014d0  0d 11 08 10 4c 44 41 20  6f 62 72 6f 6f 6d 2c 58  |....LDA obroom,X|
000014e0  0d 11 12 0c 43 4d 50 20  72 6f 6f 6d 0d 11 1c 0c  |....CMP room....|
000014f0  42 4e 45 20 6e 6f 67 6f  0d 11 26 0e 4c 44 41 20  |BNE nogo..&.LDA |
00001500  6f 62 78 79 2c 58 0d 11  30 0a 80 20 23 26 46 30  |obxy,X..0.. #&F0|
00001510  0d 11 3a 0d 53 54 41 20  74 65 6d 70 31 0d 11 44  |..:.STA temp1..D|
00001520  0d 4c 44 41 20 79 6f 75  78 79 0d 11 4e 0a 80 20  |.LDA youxy..N.. |
00001530  23 26 46 30 0d 11 58 0d  43 4d 50 20 74 65 6d 70  |#&F0..X.CMP temp|
00001540  31 0d 11 62 0c 42 45 51  20 50 25 2b 34 0d 11 6c  |1..b.BEQ P%+4..l|
00001550  0f 42 43 53 20 6f 62 72  69 67 68 74 0d 11 76 0e  |.BCS obright..v.|
00001560  42 43 43 20 6f 62 6c 65  66 74 0d 11 80 0f 4a 4d  |BCC obleft....JM|
00001570  50 20 6d 61 67 6e 65 74  32 0d 11 8a 0c 2e 6f 62  |P magnet2.....ob|
00001580  72 69 67 68 74 0d 11 94  0b 4c 44 41 20 6d 61 67  |right....LDA mag|
00001590  0d 11 9e 09 41 53 4c 20  41 0d 11 a8 07 54 41 58  |....ASL A....TAX|
000015a0  0d 11 b2 07 43 4c 43 0d  11 bc 0f 4c 44 41 20 6f  |....CLC....LDA o|
000015b0  62 6c 6f 63 2c 58 0d 11  c6 0c 41 44 43 20 23 26  |bloc,X....ADC #&|
000015c0  31 30 0d 11 d0 0c 53 54  41 20 74 65 6d 70 0d 11  |10....STA temp..|
000015d0  da 0d 53 54 41 20 74 65  6d 70 31 0d 11 e4 11 4c  |..STA temp1....L|
000015e0  44 41 20 6f 62 6c 6f 63  2b 31 2c 58 0d 11 ee 0a  |DA obloc+1,X....|
000015f0  41 44 43 20 23 30 0d 11  f8 0e 53 54 41 20 74 65  |ADC #0....STA te|
00001600  6d 70 2b 31 0d 12 02 0d  53 54 41 20 74 65 6d 70  |mp+1....STA temp|
00001610  32 0d 12 0c 0d 4a 53 52  20 63 68 65 63 6b 0d 12  |2....JSR check..|
00001620  16 0c 4c 44 41 20 62 79  74 65 0d 12 20 0c 43 4d  |..LDA byte.. .CM|
00001630  50 20 23 26 46 46 0d 12  2a 0c 42 45 51 20 6e 6f  |P #&FF..*.BEQ no|
00001640  67 6f 0d 12 34 0b 4c 44  58 20 6d 61 67 0d 12 3e  |go..4.LDX mag..>|
00001650  07 43 4c 43 0d 12 48 0e  4c 44 41 20 6f 62 78 79  |.CLC..H.LDA obxy|
00001660  2c 58 0d 12 52 0c 41 44  43 20 23 26 31 30 0d 12  |,X..R.ADC #&10..|
00001670  5c 0e 53 54 41 20 6f 62  78 79 2c 58 0d 12 66 0b  |\.STA obxy,X..f.|
00001680  4a 53 52 20 70 6f 62 0d  12 70 0b 4c 44 41 20 6d  |JSR pob..p.LDA m|
00001690  61 67 0d 12 7a 09 41 53  4c 20 41 0d 12 84 07 54  |ag..z.ASL A....T|
000016a0  41 58 0d 12 8e 0d 4c 44  41 20 74 65 6d 70 31 0d  |AX....LDA temp1.|
000016b0  12 98 0f 53 54 41 20 6f  62 6c 6f 63 2c 58 0d 12  |...STA obloc,X..|
000016c0  a2 0d 4c 44 41 20 74 65  6d 70 32 0d 12 ac 11 53  |..LDA temp2....S|
000016d0  54 41 20 6f 62 6c 6f 63  2b 31 2c 58 0d 12 b6 0b  |TA obloc+1,X....|
000016e0  4c 44 58 20 6d 61 67 0d  12 c0 0b 4a 53 52 20 70  |LDX mag....JSR p|
000016f0  6f 62 0d 12 ca 0d 2e 6e  6f 67 6f 20 52 54 53 0d  |ob.....nogo RTS.|
00001700  12 d4 0b 2e 6f 62 6c 65  66 74 0d 12 de 0b 4c 44  |....obleft....LD|
00001710  41 20 6d 61 67 0d 12 e8  09 41 53 4c 20 41 0d 12  |A mag....ASL A..|
00001720  f2 07 54 41 58 0d 12 fc  07 53 45 43 0d 13 06 0f  |..TAX....SEC....|
00001730  4c 44 41 20 6f 62 6c 6f  63 2c 58 0d 13 10 0c 53  |LDA obloc,X....S|
00001740  42 43 20 23 26 31 30 0d  13 1a 0c 53 54 41 20 74  |BC #&10....STA t|
00001750  65 6d 70 0d 13 24 0d 53  54 41 20 74 65 6d 70 31  |emp..$.STA temp1|
00001760  0d 13 2e 11 4c 44 41 20  6f 62 6c 6f 63 2b 31 2c  |....LDA obloc+1,|
00001770  58 0d 13 38 0a 53 42 43  20 23 30 0d 13 42 0e 53  |X..8.SBC #0..B.S|
00001780  54 41 20 74 65 6d 70 2b  31 0d 13 4c 0d 53 54 41  |TA temp+1..L.STA|
00001790  20 74 65 6d 70 32 0d 13  56 0d 4a 53 52 20 63 68  | temp2..V.JSR ch|
000017a0  65 63 6b 0d 13 60 0c 4c  44 41 20 62 79 74 65 0d  |eck..`.LDA byte.|
000017b0  13 6a 0c 43 4d 50 20 23  26 46 46 0d 13 74 0d 42  |.j.CMP #&FF..t.B|
000017c0  45 51 20 6e 6f 67 6f 31  0d 13 7e 0b 4c 44 58 20  |EQ nogo1..~.LDX |
000017d0  6d 61 67 0d 13 88 07 53  45 43 0d 13 92 0e 4c 44  |mag....SEC....LD|
000017e0  41 20 6f 62 78 79 2c 58  0d 13 9c 0c 53 42 43 20  |A obxy,X....SBC |
000017f0  23 26 31 30 0d 13 a6 0e  53 54 41 20 6f 62 78 79  |#&10....STA obxy|
00001800  2c 58 0d 13 b0 0b 4a 53  52 20 70 6f 62 0d 13 ba  |,X....JSR pob...|
00001810  0b 4c 44 41 20 6d 61 67  0d 13 c4 09 41 53 4c 20  |.LDA mag....ASL |
00001820  41 0d 13 ce 07 54 41 58  0d 13 d8 0d 4c 44 41 20  |A....TAX....LDA |
00001830  74 65 6d 70 31 0d 13 e2  0f 53 54 41 20 6f 62 6c  |temp1....STA obl|
00001840  6f 63 2c 58 0d 13 ec 0d  4c 44 41 20 74 65 6d 70  |oc,X....LDA temp|
00001850  32 0d 13 f6 11 53 54 41  20 6f 62 6c 6f 63 2b 31  |2....STA obloc+1|
00001860  2c 58 0d 14 00 0b 4c 44  58 20 6d 61 67 0d 14 0a  |,X....LDX mag...|
00001870  0b 4a 53 52 20 70 6f 62  0d 14 14 0e 2e 6e 6f 67  |.JSR pob.....nog|
00001880  6f 31 20 52 54 53 0d 14  1e 09 2e 70 75 7a 31 0d  |o1 RTS.....puz1.|
00001890  14 28 0f 4c 44 41 20 70  6f 63 6b 65 74 32 0d 14  |.(.LDA pocket2..|
000018a0  32 0b 43 4d 50 20 23 31  36 0d 14 3c 0e 42 4e 45  |2.CMP #16..<.BNE|
000018b0  20 6e 6f 70 75 7a 31 0d  14 46 0c 4c 44 41 20 72  | nopuz1..F.LDA r|
000018c0  6f 6f 6d 0d 14 50 0b 43  4d 50 20 23 33 32 0d 14  |oom..P.CMP #32..|
000018d0  5a 0e 42 4e 45 20 6e 6f  70 75 7a 31 0d 14 64 0d  |Z.BNE nopuz1..d.|
000018e0  4c 44 41 20 79 6f 75 78  79 0d 14 6e 0c 43 4d 50  |LDA youxy..n.CMP|
000018f0  20 23 26 39 36 0d 14 78  0e 42 4e 45 20 6e 6f 70  | #&96..x.BNE nop|
00001900  75 7a 31 0d 14 82 0a 4c  44 58 20 23 36 0d 14 8c  |uz1....LDX #6...|
00001910  10 4c 44 41 20 69 6e 72  6f 6f 6d 2c 58 0d 14 96  |.LDA inroom,X...|
00001920  0b 43 4d 50 20 23 33 32  0d 14 a0 0e 42 4e 45 20  |.CMP #32....BNE |
00001930  6e 6f 70 75 7a 31 0d 14  aa 0b 4a 4d 50 20 61 78  |nopuz1....JMP ax|
00001940  65 0d 14 b4 0b 2e 6e 6f  70 75 7a 31 0d 14 be 07  |e.....nopuz1....|
00001950  52 54 53 0d 14 c8 08 2e  61 78 65 0d 14 d2 0c 4c  |RTS.....axe....L|
00001960  44 41 20 23 26 39 30 0d  14 dc 0b 53 54 41 20 6c  |DA #&90....STA l|
00001970  6f 63 0d 14 e6 0c 4c 44  41 20 23 26 36 37 0d 14  |oc....LDA #&67..|
00001980  f0 0d 53 54 41 20 6c 6f  63 2b 31 0d 14 fa 0c 4c  |..STA loc+1....L|
00001990  44 41 20 23 26 43 30 0d  15 04 0c 53 54 41 20 63  |DA #&C0....STA c|
000019a0  68 61 72 0d 15 0e 0c 4c  44 41 20 23 26 34 42 0d  |har....LDA #&4B.|
000019b0  15 18 0e 53 54 41 20 63  68 61 72 2b 31 0d 15 22  |...STA char+1.."|
000019c0  0e 4a 53 52 20 73 70 72  69 74 65 0d 15 2c 0c 4c  |.JSR sprite..,.L|
000019d0  44 41 20 23 26 46 46 0d  15 36 0a 4c 44 58 20 23  |DA #&FF..6.LDX #|
000019e0  36 0d 15 40 10 53 54 41  20 69 6e 72 6f 6f 6d 2c  |6..@.STA inroom,|
000019f0  58 0d 15 4a 0b 4c 44 41  20 23 33 32 0d 15 54 0a  |X..J.LDA #32..T.|
00001a00  4c 44 58 20 23 32 0d 15  5e 10 53 54 41 20 6f 62  |LDX #2..^.STA ob|
00001a10  72 6f 6f 6d 2c 58 0d 15  68 0b 4a 53 52 20 70 6f  |room,X..h.JSR po|
00001a20  62 0d 15 72 0a 4c 44 41  20 23 33 0d 15 7c 0d 53  |b..r.LDA #3..|.S|
00001a30  54 41 20 73 6f 75 6e 64  0d 15 86 07 52 54 53 0d  |TA sound....RTS.|
00001a40  15 90 09 2e 70 75 7a 34  0d 15 9a 0c 4c 44 41 20  |....puz4....LDA |
00001a50  6c 61 73 74 0d 15 a4 0c  43 4d 50 20 23 26 46 46  |last....CMP #&FF|
00001a60  0d 15 ae 0e 42 45 51 20  6e 6f 70 75 7a 34 0d 15  |....BEQ nopuz4..|
00001a70  b8 0c 4c 44 41 20 72 6f  6f 6d 0d 15 c2 0b 43 4d  |..LDA room....CM|
00001a80  50 20 23 32 36 0d 15 cc  0e 42 4e 45 20 6e 6f 70  |P #26....BNE nop|
00001a90  75 7a 34 0d 15 d6 0d 4c  44 41 20 79 6f 75 78 79  |uz4....LDA youxy|
00001aa0  0d 15 e0 0c 43 4d 50 20  23 26 36 45 0d 15 ea 0e  |....CMP #&6E....|
00001ab0  42 4e 45 20 6e 6f 70 75  7a 34 0d 15 f4 10 4a 4d  |BNE nopuz4....JM|
00001ac0  50 20 63 61 75 6c 64 72  6f 6e 0d 15 fe 0b 2e 6e  |P cauldron.....n|
00001ad0  6f 70 75 7a 34 0d 16 08  07 52 54 53 0d 16 12 0d  |opuz4....RTS....|
00001ae0  2e 63 61 75 6c 64 72 6f  6e 0d 16 1c 0c 4c 44 58  |.cauldron....LDX|
00001af0  20 6c 61 73 74 0d 16 26  0b 4a 53 52 20 70 6f 62  | last..&.JSR pob|
00001b00  0d 16 30 0c 4c 44 41 20  23 26 45 45 0d 16 3a 0c  |..0.LDA #&EE..:.|
00001b10  4c 44 58 20 6c 61 73 74  0d 16 44 10 53 54 41 20  |LDX last..D.STA |
00001b20  6f 62 72 6f 6f 6d 2c 58  0d 16 4e 0c 4c 44 41 20  |obroom,X..N.LDA |
00001b30  23 26 46 46 0d 16 58 0c  53 54 41 20 6c 61 73 74  |#&FF..X.STA last|
00001b40  0d 16 62 0a 4c 44 41 20  23 38 0d 16 6c 0d 53 54  |..b.LDA #8..l.ST|
00001b50  41 20 73 6f 75 6e 64 0d  16 76 07 52 54 53 0d 16  |A sound..v.RTS..|
00001b60  80 09 2e 70 75 7a 35 0d  16 8a 0b 4c 44 58 20 23  |...puz5....LDX #|
00001b70  32 30 0d 16 94 10 4c 44  41 20 6f 62 72 6f 6f 6d  |20....LDA obroom|
00001b80  2c 58 0d 16 9e 0c 43 4d  50 20 23 26 45 45 0d 16  |,X....CMP #&EE..|
00001b90  a8 0e 42 4e 45 20 6e 6f  70 75 7a 35 0d 16 b2 0b  |..BNE nopuz5....|
00001ba0  4c 44 58 20 23 32 31 0d  16 bc 10 4c 44 41 20 6f  |LDX #21....LDA o|
00001bb0  62 72 6f 6f 6d 2c 58 0d  16 c6 0c 43 4d 50 20 23  |broom,X....CMP #|
00001bc0  26 45 45 0d 16 d0 0e 42  4e 45 20 6e 6f 70 75 7a  |&EE....BNE nopuz|
00001bd0  35 0d 16 da 0b 4a 4d 50  20 6d 69 78 0d 16 e4 0b  |5....JMP mix....|
00001be0  2e 6e 6f 70 75 7a 35 0d  16 ee 07 52 54 53 0d 16  |.nopuz5....RTS..|
00001bf0  f8 08 2e 6d 69 78 0d 17  02 0b 4c 44 58 20 23 32  |...mix....LDX #2|
00001c00  37 0d 17 0c 0f 53 54 58  20 70 6f 63 6b 65 74 31  |7....STX pocket1|
00001c10  0d 17 16 0a 4c 44 41 20  23 30 0d 17 20 10 53 54  |....LDA #0.. .ST|
00001c20  41 20 6f 62 72 6f 6f 6d  2c 58 0d 17 2a 0b 4a 53  |A obroom,X..*.JS|
00001c30  52 20 70 6f 62 0d 17 34  0b 4c 44 58 20 23 32 31  |R pob..4.LDX #21|
00001c40  0d 17 3e 0c 4c 44 41 20  23 26 46 46 0d 17 48 10  |..>.LDA #&FF..H.|
00001c50  53 54 41 20 6f 62 72 6f  6f 6d 2c 58 0d 17 52 0b  |STA obroom,X..R.|
00001c60  4c 44 58 20 23 32 30 0d  17 5c 10 53 54 41 20 6f  |LDX #20..\.STA o|
00001c70  62 72 6f 6f 6d 2c 58 0d  17 66 0a 4c 44 41 20 23  |broom,X..f.LDA #|
00001c80  33 0d 17 70 0d 53 54 41  20 73 6f 75 6e 64 0d 17  |3..p.STA sound..|
00001c90  7a 07 52 54 53 0d 17 84  09 2e 70 75 7a 36 0d 17  |z.RTS.....puz6..|
00001ca0  8e 0d 4c 44 41 20 66 6c  61 73 6b 0d 17 98 0e 42  |..LDA flask....B|
00001cb0  4e 45 20 6e 6f 70 75 7a  36 0d 17 a2 0b 4c 44 58  |NE nopuz6....LDX|
00001cc0  20 23 32 37 0d 17 ac 10  4c 44 41 20 6f 62 72 6f  | #27....LDA obro|
00001cd0  6f 6d 2c 58 0d 17 b6 0c  43 4d 50 20 23 26 44 44  |om,X....CMP #&DD|
00001ce0  0d 17 c0 0e 42 45 51 20  6e 6f 70 75 7a 36 0d 17  |....BEQ nopuz6..|
00001cf0  ca 0e 4a 4d 50 20 64 6f  70 75 7a 36 0d 17 d4 0b  |..JMP dopuz6....|
00001d00  2e 6e 6f 70 75 7a 36 0d  17 de 07 52 54 53 0d 17  |.nopuz6....RTS..|
00001d10  e8 0b 2e 64 6f 70 75 7a  36 0d 17 f2 0b 4c 44 58  |...dopuz6....LDX|
00001d20  20 23 32 37 0d 17 fc 0b  4a 53 52 20 70 6f 62 0d  | #27....JSR pob.|
00001d30  18 06 0b 4c 44 58 20 23  32 37 0d 18 10 0c 4c 44  |...LDX #27....LD|
00001d40  41 20 23 26 44 44 0d 18  1a 10 53 54 41 20 6f 62  |A #&DD....STA ob|
00001d50  72 6f 6f 6d 2c 58 0d 18  24 0f 4c 44 41 20 70 6f  |room,X..$.LDA po|
00001d60  63 6b 65 74 31 0d 18 2e  0b 43 4d 50 20 23 32 37  |cket1....CMP #27|
00001d70  0d 18 38 0d 42 4e 45 20  70 6f 63 6b 32 0d 18 42  |..8.BNE pock2..B|
00001d80  0c 4c 44 41 20 23 26 46  46 0d 18 4c 0f 53 54 41  |.LDA #&FF..L.STA|
00001d90  20 70 6f 63 6b 65 74 31  0d 18 56 07 52 54 53 0d  | pocket1..V.RTS.|
00001da0  18 60 0a 2e 70 6f 63 6b  32 0d 18 6a 0c 4c 44 41  |.`..pock2..j.LDA|
00001db0  20 23 26 46 46 0d 18 74  0f 53 54 41 20 70 6f 63  | #&FF..t.STA poc|
00001dc0  6b 65 74 32 0d 18 7e 07  52 54 53 0d 18 88 09 2e  |ket2..~.RTS.....|
00001dd0  70 75 7a 37 0d 18 92 0b  4c 44 58 20 23 32 38 0d  |puz7....LDX #28.|
00001de0  18 9c 10 4c 44 41 20 69  6e 72 6f 6f 6d 2c 58 0d  |...LDA inroom,X.|
00001df0  18 a6 0c 43 4d 50 20 23  26 46 46 0d 18 b0 0e 42  |...CMP #&FF....B|
00001e00  45 51 20 6e 6f 70 75 7a  37 0d 18 ba 0c 4c 44 41  |EQ nopuz7....LDA|
00001e10  20 72 6f 6f 6d 0d 18 c4  0b 43 4d 50 20 23 31 37  | room....CMP #17|
00001e20  0d 18 ce 0e 42 4e 45 20  6e 6f 70 75 7a 37 0d 18  |....BNE nopuz7..|
00001e30  d8 0d 4c 44 41 20 79 6f  75 78 79 0d 18 e2 0c 43  |..LDA youxy....C|
00001e40  4d 50 20 23 26 36 37 0d  18 ec 0e 42 4e 45 20 6e  |MP #&67....BNE n|
00001e50  6f 70 75 7a 37 0d 18 f6  0f 4c 44 41 20 70 6f 63  |opuz7....LDA poc|
00001e60  6b 65 74 32 0d 19 00 0b  43 4d 50 20 23 32 36 0d  |ket2....CMP #26.|
00001e70  19 0a 0e 42 4e 45 20 6e  6f 70 75 7a 37 0d 19 14  |...BNE nopuz7...|
00001e80  0d 4c 44 41 20 79 6f 75  63 68 0d 19 1e 0c 42 45  |.LDA youch....BE|
00001e90  51 20 6d 69 6e 65 0d 19  28 0d 4c 44 41 20 79 6f  |Q mine..(.LDA yo|
00001ea0  75 63 68 0d 19 32 0c 43  4d 50 20 23 26 32 30 0d  |uch..2.CMP #&20.|
00001eb0  19 3c 0c 42 45 51 20 6d  69 6e 65 0d 19 46 0b 2e  |.<.BEQ mine..F..|
00001ec0  6e 6f 70 75 7a 37 0d 19  50 07 52 54 53 0d 19 5a  |nopuz7..P.RTS..Z|
00001ed0  09 2e 6d 69 6e 65 0d 19  64 0c 4c 44 41 20 23 26  |..mine..d.LDA #&|
00001ee0  44 30 0d 19 6e 0b 53 54  41 20 6c 6f 63 0d 19 78  |D0..n.STA loc..x|
00001ef0  0c 4c 44 41 20 23 26 36  39 0d 19 82 0d 53 54 41  |.LDA #&69....STA|
00001f00  20 6c 6f 63 2b 31 0d 19  8c 0c 4c 44 41 20 23 26  | loc+1....LDA #&|
00001f10  45 30 0d 19 96 0c 53 54  41 20 63 68 61 72 0d 19  |E0....STA char..|
00001f20  a0 0c 4c 44 41 20 23 26  34 46 0d 19 aa 0e 53 54  |..LDA #&4F....ST|
00001f30  41 20 63 68 61 72 2b 31  0d 19 b4 0e 4a 53 52 20  |A char+1....JSR |
00001f40  73 70 72 69 74 65 0d 19  be 0c 4c 44 41 20 23 26  |sprite....LDA #&|
00001f50  46 46 0d 19 c8 0b 4c 44  58 20 23 32 38 0d 19 d2  |FF....LDX #28...|
00001f60  10 53 54 41 20 69 6e 72  6f 6f 6d 2c 58 0d 19 dc  |.STA inroom,X...|
00001f70  0b 4c 44 41 20 23 31 37  0d 19 e6 0b 4c 44 58 20  |.LDA #17....LDX |
00001f80  23 32 34 0d 19 f0 10 53  54 41 20 6f 62 72 6f 6f  |#24....STA obroo|
00001f90  6d 2c 58 0d 19 fa 0b 4a  53 52 20 70 6f 62 0d 1a  |m,X....JSR pob..|
00001fa0  04 0a 4c 44 41 20 23 33  0d 1a 0e 0d 53 54 41 20  |..LDA #3....STA |
00001fb0  73 6f 75 6e 64 0d 1a 18  07 52 54 53 0d 1a 22 09  |sound....RTS..".|
00001fc0  2e 70 75 7a 38 0d 1a 2c  0f 4c 44 41 20 70 6f 63  |.puz8..,.LDA poc|
00001fd0  6b 65 74 32 0d 1a 36 0b  43 4d 50 20 23 32 35 0d  |ket2..6.CMP #25.|
00001fe0  1a 40 0e 42 4e 45 20 6e  6f 70 75 7a 38 0d 1a 4a  |.@.BNE nopuz8..J|
00001ff0  0b 4c 44 58 20 23 32 38  0d 1a 54 10 4c 44 41 20  |.LDX #28..T.LDA |
00002000  6f 62 72 6f 6f 6d 2c 58  0d 1a 5e 0c 43 4d 50 20  |obroom,X..^.CMP |
00002010  23 26 46 46 0d 1a 68 0c  42 45 51 20 62 6f 6f 6b  |#&FF..h.BEQ book|
00002020  0d 1a 72 0b 2e 6e 6f 70  75 7a 38 0d 1a 7c 07 52  |..r..nopuz8..|.R|
00002030  54 53 0d 1a 86 09 2e 62  6f 6f 6b 0d 1a 90 0a 4c  |TS.....book....L|
00002040  44 41 20 23 32 0d 1a 9a  0d 53 54 41 20 73 6f 75  |DA #2....STA sou|
00002050  6e 64 0d 1a a4 0b 4c 44  58 20 23 32 38 0d 1a ae  |nd....LDX #28...|
00002060  0a 4c 44 41 20 23 37 0d  1a b8 10 53 54 41 20 6f  |.LDA #7....STA o|
00002070  62 72 6f 6f 6d 2c 58 0d  1a c2 0c 4c 44 41 20 72  |broom,X....LDA r|
00002080  6f 6f 6d 0d 1a cc 0a 43  4d 50 20 23 37 0d 1a d6  |oom....CMP #7...|
00002090  0e 42 4e 45 20 6e 6f 70  75 7a 38 0d 1a e0 0b 4a  |.BNE nopuz8....J|
000020a0  53 52 20 70 6f 62 0d 1a  ea 07 52 54 53 0d 1a f4  |SR pob....RTS...|
000020b0  09 2e 70 75 7a 39 0d 1a  fe 0c 4c 44 41 20 72 6f  |..puz9....LDA ro|
000020c0  6f 6d 0d 1b 08 0b 43 4d  50 20 23 31 35 0d 1b 12  |om....CMP #15...|
000020d0  0e 42 4e 45 20 6e 6f 70  75 7a 39 0d 1b 1c 0d 4c  |.BNE nopuz9....L|
000020e0  44 41 20 79 6f 75 78 79  0d 1b 26 0c 43 4d 50 20  |DA youxy..&.CMP |
000020f0  23 26 39 31 0d 1b 30 0e  42 4e 45 20 6e 6f 70 75  |#&91..0.BNE nopu|
00002100  7a 39 0d 1b 3a 0b 4c 44  58 20 23 32 38 0d 1b 44  |z9..:.LDX #28..D|
00002110  10 4c 44 41 20 6f 62 72  6f 6f 6d 2c 58 0d 1b 4e  |.LDA obroom,X..N|
00002120  0e 42 45 51 20 6e 6f 70  75 7a 39 0d 1b 58 0d 4a  |.BEQ nopuz9..X.J|
00002130  4d 50 20 66 6f 72 63 65  0d 1b 62 0b 2e 6e 6f 70  |MP force..b..nop|
00002140  75 7a 39 0d 1b 6c 07 52  54 53 0d 1b 76 0a 2e 66  |uz9..l.RTS..v..f|
00002150  6f 72 63 65 0d 1b 80 0c  4c 44 41 20 23 26 44 44  |orce....LDA #&DD|
00002160  0d 1b 8a 10 53 54 41 20  6d 75 73 68 72 6f 6f 6d  |....STA mushroom|
00002170  0d 1b 94 07 52 54 53 0d  1b 9e 07 2e 65 6e 0d 1b  |....RTS.....en..|
00002180  a8 0e 4c 44 41 20 65 6e  65 72 67 79 0d 1b b2 0b  |..LDA energy....|
00002190  53 54 41 20 79 6c 6f 0d  1b bc 0a 4c 44 41 20 23  |STA ylo....LDA #|
000021a0  30 0d 1b c6 0b 53 54 41  20 79 68 69 0d 1b d0 0e  |0....STA yhi....|
000021b0  53 54 41 20 74 65 6d 70  78 79 0d 1b da 0a 4a 53  |STA tempxy....JS|
000021c0  52 20 78 32 0d 1b e4 0a  4a 53 52 20 78 32 0d 1b  |R x2....JSR x2..|
000021d0  ee 07 43 4c 43 0d 1b f8  0b 4c 44 41 20 79 6c 6f  |..CLC....LDA ylo|
000021e0  0d 1c 02 0b 41 44 43 20  23 34 34 0d 1c 0c 0b 53  |....ADC #44....S|
000021f0  54 41 20 79 6c 6f 0d 1c  16 0b 4c 44 41 20 79 68  |TA ylo....LDA yh|
00002200  69 0d 1c 20 0a 41 44 43  20 23 31 0d 1c 2a 0b 53  |i.. .ADC #1..*.S|
00002210  54 41 20 79 68 69 0d 1c  34 0a 4c 44 58 20 23 30  |TA yhi..4.LDX #0|
00002220  0d 1c 3e 0a 2e 6c 6f 6f  70 52 0d 1c 48 0f 4c 44  |..>..loopR..H.LD|
00002230  41 20 71 75 65 75 65 2c  58 0d 1c 52 0d 4a 53 52  |A queue,X..R.JSR|
00002240  20 26 46 46 45 45 0d 1c  5c 07 49 4e 58 0d 1c 66  | &FFEE..\.INX..f|
00002250  0b 43 50 58 20 23 31 38  0d 1c 70 0d 42 4e 45 20  |.CPX #18..p.BNE |
00002260  6c 6f 6f 70 52 0d 1c 7a  0e 44 45 43 20 65 6e 65  |loopR..z.DEC ene|
00002270  72 67 79 0d 1c 84 0a 4c  44 41 20 23 39 0d 1c 8e  |rgy....LDA #9...|
00002280  0d 53 54 41 20 73 6f 75  6e 64 0d 1c 98 0e 4c 44  |.STA sound....LD|
00002290  41 20 65 6e 65 72 67 79  0d 1c a2 0b 43 4d 50 20  |A energy....CMP |
000022a0  23 34 39 0d 1c ac 0d 42  45 51 20 67 72 65 65 6e  |#49....BEQ green|
000022b0  0d 1c b6 0b 43 4d 50 20  23 31 31 0d 1c c0 0b 42  |....CMP #11....B|
000022c0  43 43 20 72 65 64 0d 1c  ca 07 52 54 53 0d 1c d4  |CC red....RTS...|
000022d0  0a 2e 67 72 65 65 6e 0d  1c de 0a 4c 44 58 20 23  |..green....LDX #|
000022e0  30 0d 1c e8 0a 4c 44 59  20 23 32 0d 1c f2 0d 4a  |0....LDY #2....J|
000022f0  53 52 20 76 64 75 31 39  0d 1c fc 0c 4c 44 41 20  |SR vdu19....LDA |
00002300  23 26 46 46 0d 1d 06 0b  53 54 41 20 63 6f 6c 0d  |#&FF....STA col.|
00002310  1d 10 07 52 54 53 0d 1d  1a 08 2e 72 65 64 0d 1d  |...RTS.....red..|
00002320  24 0a 4c 44 58 20 23 30  0d 1d 2e 0a 4c 44 59 20  |$.LDX #0....LDY |
00002330  23 31 0d 1d 38 0d 4a 53  52 20 76 64 75 31 39 0d  |#1..8.JSR vdu19.|
00002340  1d 42 0c 4c 44 41 20 23  26 46 46 0d 1d 4c 0b 53  |.B.LDA #&FF..L.S|
00002350  54 41 20 63 6f 6c 0d 1d  56 07 52 54 53 0d 1d 60  |TA col..V.RTS..`|
00002360  07 2e 78 32 0d 1d 6a 0b  4c 44 41 20 79 6c 6f 0d  |..x2..j.LDA ylo.|
00002370  1d 74 09 41 53 4c 20 41  0d 1d 7e 0b 53 54 41 20  |.t.ASL A..~.STA |
00002380  79 6c 6f 0d 1d 88 0f 42  43 43 20 6e 6f 63 61 72  |ylo....BCC nocar|
00002390  72 79 0d 1d 92 0b 49 4e  43 20 79 68 69 0d 1d 9c  |ry....INC yhi...|
000023a0  0c 2e 6e 6f 63 61 72 72  79 0d 1d a6 07 52 54 53  |..nocarry....RTS|
000023b0  0d 1d b0 09 2e 6d 75 73  68 0d 1d ba 0e 4c 44 41  |.....mush....LDA|
000023c0  20 65 6e 65 72 67 79 0d  1d c4 0a 43 4d 50 20 23  | energy....CMP #|
000023d0  39 0d 1d ce 0c 42 45 51  20 50 25 2b 34 0d 1d d8  |9....BEQ P%+4...|
000023e0  0c 42 43 53 20 6e 65 78  74 0d 1d e2 0a 4c 44 41  |.BCS next....LDA|
000023f0  20 23 39 0d 1d ec 0e 53  54 41 20 65 6e 65 72 67  | #9....STA energ|
00002400  79 0d 1d f6 09 2e 6e 65  78 74 0d 1e 00 0b 53 54  |y.....next....ST|
00002410  41 20 79 6c 6f 0d 1e 0a  0a 4c 44 41 20 23 30 0d  |A ylo....LDA #0.|
00002420  1e 14 0b 53 54 41 20 79  68 69 0d 1e 1e 0a 4a 53  |...STA yhi....JS|
00002430  52 20 78 32 0d 1e 28 0a  4a 53 52 20 78 32 0d 1e  |R x2..(.JSR x2..|
00002440  32 0a 4c 44 58 20 23 30  0d 1e 3c 0a 2e 6c 6f 6f  |2.LDX #0..<..loo|
00002450  70 42 0d 1e 46 10 4c 44  41 20 71 75 65 75 65 32  |pB..F.LDA queue2|
00002460  2c 58 0d 1e 50 0d 4a 53  52 20 26 46 46 45 45 0d  |,X..P.JSR &FFEE.|
00002470  1e 5a 07 49 4e 58 0d 1e  64 0a 43 50 58 20 23 39  |.Z.INX..d.CPX #9|
00002480  0d 1e 6e 0d 42 4e 45 20  6c 6f 6f 70 42 0d 1e 78  |..n.BNE loopB..x|
00002490  07 43 4c 43 0d 1e 82 0b  4c 44 41 20 79 6c 6f 0d  |.CLC....LDA ylo.|
000024a0  1e 8c 0b 41 44 43 20 23  33 32 0d 1e 96 0d 53 54  |...ADC #32....ST|
000024b0  41 20 74 65 6d 70 31 0d  1e a0 0b 4c 44 41 20 79  |A temp1....LDA y|
000024c0  68 69 0d 1e aa 0a 41 44  43 20 23 31 0d 1e b4 0d  |hi....ADC #1....|
000024d0  53 54 41 20 74 65 6d 70  32 0d 1e be 0d 4c 44 41  |STA temp2....LDA|
000024e0  20 74 65 6d 70 31 0d 1e  c8 0d 4a 53 52 20 26 46  | temp1....JSR &F|
000024f0  46 45 45 0d 1e d2 0d 4c  44 41 20 74 65 6d 70 32  |FEE....LDA temp2|
00002500  0d 1e dc 0d 4a 53 52 20  26 46 46 45 45 0d 1e e6  |....JSR &FFEE...|
00002510  0a 4c 44 58 20 23 30 0d  1e f0 0a 2e 6c 6f 6f 70  |.LDX #0.....loop|
00002520  72 0d 1e fa 10 4c 44 41  20 71 75 65 75 65 33 2c  |r....LDA queue3,|
00002530  58 0d 1f 04 0d 4a 53 52  20 26 46 46 45 45 0d 1f  |X....JSR &FFEE..|
00002540  0e 07 49 4e 58 0d 1f 18  0a 43 50 58 20 23 35 0d  |..INX....CPX #5.|
00002550  1f 22 0d 42 4e 45 20 6c  6f 6f 70 72 0d 1f 2c 07  |.".BNE loopr..,.|
00002560  43 4c 43 0d 1f 36 0b 4c  44 41 20 79 6c 6f 0d 1f  |CLC..6.LDA ylo..|
00002570  40 0b 41 44 43 20 23 32  34 0d 1f 4a 0d 53 54 41  |@.ADC #24..J.STA|
00002580  20 74 65 6d 70 31 0d 1f  54 0b 4c 44 41 20 79 68  | temp1..T.LDA yh|
00002590  69 0d 1f 5e 0a 41 44 43  20 23 31 0d 1f 68 0d 53  |i..^.ADC #1..h.S|
000025a0  54 41 20 74 65 6d 70 32  0d 1f 72 0d 4c 44 41 20  |TA temp2..r.LDA |
000025b0  74 65 6d 70 31 0d 1f 7c  0d 4a 53 52 20 26 46 46  |temp1..|.JSR &FF|
000025c0  45 45 0d 1f 86 0d 4c 44  41 20 74 65 6d 70 32 0d  |EE....LDA temp2.|
000025d0  1f 90 0d 4a 53 52 20 26  46 46 45 45 0d 1f 9a 0a  |...JSR &FFEE....|
000025e0  4c 44 58 20 23 30 0d 1f  a4 0a 2e 6c 6f 6f 70 4f  |LDX #0.....loopO|
000025f0  0d 1f ae 10 4c 44 41 20  71 75 65 75 65 34 2c 58  |....LDA queue4,X|
00002600  0d 1f b8 0d 4a 53 52 20  26 46 46 45 45 0d 1f c2  |....JSR &FFEE...|
00002610  07 49 4e 58 0d 1f cc 0a  43 50 58 20 23 37 0d 1f  |.INX....CPX #7..|
00002620  d6 0d 42 4e 45 20 6c 6f  6f 70 4f 0d 1f e0 07 53  |..BNE loopO....S|
00002630  45 43 0d 1f ea 0e 4c 44  41 20 65 6e 65 72 67 79  |EC....LDA energy|
00002640  0d 1f f4 0b 53 42 43 20  23 31 30 0d 1f fe 0e 53  |....SBC #10....S|
00002650  54 41 20 65 6e 65 72 67  79 0d 20 08 07 52 54 53  |TA energy. ..RTS|
00002660  0d 20 12 0b 2e 64 65 64  75 63 74 0d 20 1c 0b 4c  |. ...deduct. ..L|
00002670  44 58 20 23 32 38 0d 20  26 10 4c 44 41 20 6f 62  |DX #28. &.LDA ob|
00002680  72 6f 6f 6d 2c 58 0d 20  30 0b 42 4e 45 20 64 65  |room,X. 0.BNE de|
00002690  64 0d 20 3a 0a 4c 44 41  20 23 30 0d 20 44 10 53  |d. :.LDA #0. D.S|
000026a0  54 41 20 6d 75 73 68 72  6f 6f 6d 0d 20 4e 08 2e  |TA mushroom. N..|
000026b0  64 65 64 0d 20 58 0c 4a  53 52 20 6b 69 6c 6c 0d  |ded. X.JSR kill.|
000026c0  20 62 0d 4a 53 52 20 6b  69 6c 6c 32 0d 20 6c 0d  | b.JSR kill2. l.|
000026d0  4a 53 52 20 6b 69 6c 6c  33 0d 20 76 0d 4a 53 52  |JSR kill3. v.JSR|
000026e0  20 6b 69 6c 6c 34 0d 20  80 0d 4a 53 52 20 6b 69  | kill4. ..JSR ki|
000026f0  6c 6c 35 0d 20 8a 07 52  54 53 0d 20 94 09 2e 6b  |ll5. ..RTS. ...k|
00002700  69 6c 6c 0d 20 9e 10 4c  44 41 20 6d 75 73 68 72  |ill. ..LDA mushr|
00002710  6f 6f 6d 0d 20 a8 0c 43  4d 50 20 23 26 46 46 0d  |oom. ..CMP #&FF.|
00002720  20 b2 0e 42 4e 45 20 6e  6f 6b 69 6c 6c 0d 20 bc  | ..BNE nokill. .|
00002730  0b 4c 44 58 20 23 32 37  0d 20 c6 10 4c 44 41 20  |.LDX #27. ..LDA |
00002740  6f 62 72 6f 6f 6d 2c 58  0d 20 d0 0e 42 45 51 20  |obroom,X. ..BEQ |
00002750  6e 6f 6b 69 6c 6c 0d 20  da 0c 4a 53 52 20 6d 75  |nokill. ..JSR mu|
00002760  73 68 0d 20 e4 0a 4c 44  41 20 23 36 0d 20 ee 0d  |sh. ..LDA #6. ..|
00002770  53 54 41 20 73 6f 75 6e  64 0d 20 f8 0b 2e 6e 6f  |STA sound. ...no|
00002780  6b 69 6c 6c 0d 21 02 07  52 54 53 0d 21 0c 0a 2e  |kill.!..RTS.!...|
00002790  6b 69 6c 6c 32 0d 21 16  10 4c 44 41 20 6d 75 73  |kill2.!..LDA mus|
000027a0  68 72 6f 6f 6d 0d 21 20  0c 43 4d 50 20 23 26 46  |hroom.! .CMP #&F|
000027b0  46 0d 21 2a 0f 42 4e 45  20 6e 6f 6b 69 6c 6c 32  |F.!*.BNE nokill2|
000027c0  0d 21 34 0b 4c 44 58 20  23 32 37 0d 21 3e 10 4c  |.!4.LDX #27.!>.L|
000027d0  44 41 20 6f 62 72 6f 6f  6d 2c 58 0d 21 48 0f 42  |DA obroom,X.!H.B|
000027e0  4e 45 20 6e 6f 6b 69 6c  6c 32 0d 21 52 0d 44 45  |NE nokill2.!R.DE|
000027f0  43 20 66 6c 61 73 6b 0d  21 5c 0c 2e 6e 6f 6b 69  |C flask.!\..noki|
00002800  6c 6c 32 0d 21 66 07 52  54 53 0d 21 70 0a 2e 6b  |ll2.!f.RTS.!p..k|
00002810  69 6c 6c 33 0d 21 7a 10  4c 44 41 20 6d 75 73 68  |ill3.!z.LDA mush|
00002820  72 6f 6f 6d 0d 21 84 0c  43 4d 50 20 23 26 45 41  |room.!..CMP #&EA|
00002830  0d 21 8e 0f 42 4e 45 20  6e 6f 6b 69 6c 6c 33 0d  |.!..BNE nokill3.|
00002840  21 98 0c 4a 53 52 20 6d  75 73 68 0d 21 a2 0a 4c  |!..JSR mush.!..L|
00002850  44 41 20 23 30 0d 21 ac  10 53 54 41 20 6d 75 73  |DA #0.!..STA mus|
00002860  68 72 6f 6f 6d 0d 21 b6  0c 2e 6e 6f 6b 69 6c 6c  |hroom.!...nokill|
00002870  33 0d 21 c0 07 52 54 53  0d 21 ca 0a 2e 6b 69 6c  |3.!..RTS.!...kil|
00002880  6c 34 0d 21 d4 10 4c 44  41 20 6d 75 73 68 72 6f  |l4.!..LDA mushro|
00002890  6f 6d 0d 21 de 0c 43 4d  50 20 23 26 44 44 0d 21  |om.!..CMP #&DD.!|
000028a0  e8 0f 42 4e 45 20 6e 6f  6b 69 6c 6c 34 0d 21 f2  |..BNE nokill4.!.|
000028b0  0c 4a 53 52 20 6d 75 73  68 0d 21 fc 0c 4a 53 52  |.JSR mush.!..JSR|
000028c0  20 6d 75 73 68 0d 22 06  0a 4c 44 41 20 23 30 0d  | mush."..LDA #0.|
000028d0  22 10 10 53 54 41 20 6d  75 73 68 72 6f 6f 6d 0d  |"..STA mushroom.|
000028e0  22 1a 0a 4c 44 41 20 23  35 0d 22 24 0d 53 54 41  |"..LDA #5."$.STA|
000028f0  20 73 6f 75 6e 64 0d 22  2e 0c 2e 6e 6f 6b 69 6c  | sound."...nokil|
00002900  6c 34 0d 22 38 07 52 54  53 0d 22 42 0a 2e 6b 69  |l4."8.RTS."B..ki|
00002910  6c 6c 35 0d 22 4c 0e 4c  44 41 20 74 65 6d 70 78  |ll5."L.LDA tempx|
00002920  79 0d 22 56 0f 42 45 51  20 6e 6f 6b 69 6c 6c 35  |y."V.BEQ nokill5|
00002930  0d 22 60 0a 4a 53 52 20  65 6e 0d 22 6a 0c 2e 6e  |."`.JSR en."j..n|
00002940  6f 6b 69 6c 6c 35 0d 22  74 07 52 54 53 0d 22 7e  |okill5."t.RTS."~|
00002950  0a 2e 70 75 7a 31 30 0d  22 88 0c 4c 44 41 20 72  |..puz10."..LDA r|
00002960  6f 6f 6d 0d 22 92 0b 43  4d 50 20 23 32 38 0d 22  |oom."..CMP #28."|
00002970  9c 0f 42 4e 45 20 6e 6f  70 75 7a 31 30 0d 22 a6  |..BNE nopuz10.".|
00002980  0d 4c 44 41 20 79 6f 75  78 79 0d 22 b0 0c 43 4d  |.LDA youxy."..CM|
00002990  50 20 23 26 38 41 0d 22  ba 0f 42 4e 45 20 6e 6f  |P #&8A."..BNE no|
000029a0  70 75 7a 31 30 0d 22 c4  0a 4c 44 58 20 23 34 0d  |puz10."..LDX #4.|
000029b0  22 ce 10 4c 44 41 20 69  6e 72 6f 6f 6d 2c 58 0d  |"..LDA inroom,X.|
000029c0  22 d8 0b 43 4d 50 20 23  32 38 0d 22 e2 0f 42 4e  |"..CMP #28."..BN|
000029d0  45 20 6e 6f 70 75 7a 31  30 0d 22 ec 0b 4c 44 58  |E nopuz10."..LDX|
000029e0  20 23 31 35 0d 22 f6 10  4c 44 41 20 6f 62 72 6f  | #15."..LDA obro|
000029f0  6f 6d 2c 58 0d 23 00 0b  42 45 51 20 6e 6f 31 0d  |om,X.#..BEQ no1.|
00002a00  23 0a 0b 4c 44 58 20 23  31 39 0d 23 14 10 4c 44  |#..LDX #19.#..LD|
00002a10  41 20 6f 62 72 6f 6f 6d  2c 58 0d 23 1e 0b 42 45  |A obroom,X.#..BE|
00002a20  51 20 6e 6f 31 0d 23 28  0c 2e 6e 6f 70 75 7a 31  |Q no1.#(..nopuz1|
00002a30  30 0d 23 32 07 52 54 53  0d 23 3c 08 2e 6e 6f 31  |0.#2.RTS.#<..no1|
00002a40  0d 23 46 0c 53 54 58 20  75 73 65 64 0d 23 50 0c  |.#F.STX used.#P.|
00002a50  4c 44 41 20 23 26 46 46  0d 23 5a 10 53 54 41 20  |LDA #&FF.#Z.STA |
00002a60  6f 62 72 6f 6f 6d 2c 58  0d 23 64 0f 4c 44 41 20  |obroom,X.#d.LDA |
00002a70  70 6f 63 6b 65 74 31 0d  23 6e 0c 43 4d 50 20 75  |pocket1.#n.CMP u|
00002a80  73 65 64 0d 23 78 0b 42  4e 45 20 6e 70 31 0d 23  |sed.#x.BNE np1.#|
00002a90  82 0c 4c 44 41 20 23 26  46 46 0d 23 8c 0f 53 54  |..LDA #&FF.#..ST|
00002aa0  41 20 70 6f 63 6b 65 74  31 0d 23 96 0b 4a 4d 50  |A pocket1.#..JMP|
00002ab0  20 64 65 6c 0d 23 a0 08  2e 6e 70 31 0d 23 aa 0c  | del.#...np1.#..|
00002ac0  4c 44 41 20 23 26 46 46  0d 23 b4 0f 53 54 41 20  |LDA #&FF.#..STA |
00002ad0  70 6f 63 6b 65 74 32 0d  23 be 08 2e 64 65 6c 0d  |pocket2.#...del.|
00002ae0  23 c8 0b 4a 53 52 20 70  6f 62 0d 23 d2 0c 4c 44  |#..JSR pob.#..LD|
00002af0  41 20 23 26 38 30 0d 23  dc 0b 53 54 41 20 6c 6f  |A #&80.#..STA lo|
00002b00  63 0d 23 e6 0c 4c 44 41  20 23 26 37 31 0d 23 f0  |c.#..LDA #&71.#.|
00002b10  0d 53 54 41 20 6c 6f 63  2b 31 0d 23 fa 0c 4c 44  |.STA loc+1.#..LD|
00002b20  41 20 23 26 36 30 0d 24  04 0c 53 54 41 20 63 68  |A #&60.$..STA ch|
00002b30  61 72 0d 24 0e 0c 4c 44  41 20 23 26 34 41 0d 24  |ar.$..LDA #&4A.$|
00002b40  18 0e 53 54 41 20 63 68  61 72 2b 31 0d 24 22 0e  |..STA char+1.$".|
00002b50  4a 53 52 20 73 70 72 69  74 65 0d 24 2c 0c 4c 44  |JSR sprite.$,.LD|
00002b60  41 20 23 26 38 30 0d 24  36 0b 53 54 41 20 6c 6f  |A #&80.$6.STA lo|
00002b70  63 0d 24 40 0c 4c 44 41  20 23 26 37 31 0d 24 4a  |c.$@.LDA #&71.$J|
00002b80  0d 53 54 41 20 6c 6f 63  2b 31 0d 24 54 0c 4c 44  |.STA loc+1.$T.LD|
00002b90  41 20 23 26 45 30 0d 24  5e 0c 53 54 41 20 63 68  |A #&E0.$^.STA ch|
00002ba0  61 72 0d 24 68 0c 4c 44  41 20 23 26 34 39 0d 24  |ar.$h.LDA #&49.$|
00002bb0  72 0e 53 54 41 20 63 68  61 72 2b 31 0d 24 7c 0e  |r.STA char+1.$|.|
00002bc0  4a 53 52 20 73 70 72 69  74 65 0d 24 86 0c 4c 44  |JSR sprite.$..LD|
00002bd0  41 20 23 26 46 46 0d 24  90 10 53 54 41 20 69 6e  |A #&FF.$..STA in|
00002be0  72 6f 6f 6d 2b 34 0d 24  9a 0b 4c 44 41 20 23 32  |room+4.$..LDA #2|
00002bf0  38 0d 24 a4 10 53 54 41  20 69 6e 72 6f 6f 6d 2b  |8.$..STA inroom+|
00002c00  35 0d 24 ae 0a 4c 44 41  20 23 33 0d 24 b8 0d 53  |5.$..LDA #3.$..S|
00002c10  54 41 20 73 6f 75 6e 64  0d 24 c2 07 52 54 53 0d  |TA sound.$..RTS.|
00002c20  24 cc 0a 2e 70 75 7a 31  31 0d 24 d6 0c 4c 44 41  |$...puz11.$..LDA|
00002c30  20 72 6f 6f 6d 0d 24 e0  0b 43 4d 50 20 23 32 38  | room.$..CMP #28|
00002c40  0d 24 ea 0f 42 4e 45 20  6e 6f 70 75 7a 31 31 0d  |.$..BNE nopuz11.|
00002c50  24 f4 0d 4c 44 41 20 79  6f 75 78 79 0d 24 fe 0c  |$..LDA youxy.$..|
00002c60  43 4d 50 20 23 26 38 41  0d 25 08 0f 42 4e 45 20  |CMP #&8A.%..BNE |
00002c70  6e 6f 70 75 7a 31 31 0d  25 12 10 4c 44 41 20 69  |nopuz11.%..LDA i|
00002c80  6e 72 6f 6f 6d 2b 35 0d  25 1c 0b 43 4d 50 20 23  |nroom+5.%..CMP #|
00002c90  32 38 0d 25 26 0f 42 4e  45 20 6e 6f 70 75 7a 31  |28.%&.BNE nopuz1|
00002ca0  31 0d 25 30 0b 4c 44 58  20 23 31 37 0d 25 3a 0f  |1.%0.LDX #17.%:.|
00002cb0  43 50 58 20 70 6f 63 6b  65 74 32 0d 25 44 0c 42  |CPX pocket2.%D.B|
00002cc0  45 51 20 66 69 72 65 0d  25 4e 07 49 4e 58 0d 25  |EQ fire.%N.INX.%|
00002cd0  58 0f 43 50 58 20 70 6f  63 6b 65 74 32 0d 25 62  |X.CPX pocket2.%b|
00002ce0  0c 42 45 51 20 66 69 72  65 0d 25 6c 0c 2e 6e 6f  |.BEQ fire.%l..no|
00002cf0  70 75 7a 31 31 0d 25 76  07 52 54 53 0d 25 80 09  |puz11.%v.RTS.%..|
00002d00  2e 66 69 72 65 0d 25 8a  0c 4c 44 41 20 23 26 46  |.fire.%..LDA #&F|
00002d10  46 0d 25 94 10 53 54 41  20 6f 62 72 6f 6f 6d 2c  |F.%..STA obroom,|
00002d20  58 0d 25 9e 0b 4a 53 52  20 70 6f 62 0d 25 a8 0c  |X.%..JSR pob.%..|
00002d30  4c 44 41 20 23 26 37 31  0d 25 b2 0d 53 54 41 20  |LDA #&71.%..STA |
00002d40  6c 6f 63 2b 31 0d 25 bc  0c 4c 44 41 20 23 26 38  |loc+1.%..LDA #&8|
00002d50  30 0d 25 c6 0b 53 54 41  20 6c 6f 63 0d 25 d0 0c  |0.%..STA loc.%..|
00002d60  4c 44 41 20 23 26 34 39  0d 25 da 0e 53 54 41 20  |LDA #&49.%..STA |
00002d70  63 68 61 72 2b 31 0d 25  e4 0c 4c 44 41 20 23 26  |char+1.%..LDA #&|
00002d80  45 30 0d 25 ee 0c 53 54  41 20 63 68 61 72 0d 25  |E0.%..STA char.%|
00002d90  f8 0e 4a 53 52 20 73 70  72 69 74 65 0d 26 02 0c  |..JSR sprite.&..|
00002da0  4c 44 41 20 23 26 37 31  0d 26 0c 0d 53 54 41 20  |LDA #&71.&..STA |
00002db0  6c 6f 63 2b 31 0d 26 16  0c 4c 44 41 20 23 26 38  |loc+1.&..LDA #&8|
00002dc0  30 0d 26 20 0b 53 54 41  20 6c 6f 63 0d 26 2a 0c  |0.& .STA loc.&*.|
00002dd0  4c 44 41 20 23 26 34 41  0d 26 34 0e 53 54 41 20  |LDA #&4A.&4.STA |
00002de0  63 68 61 72 2b 31 0d 26  3e 0c 4c 44 41 20 23 26  |char+1.&>.LDA #&|
00002df0  36 30 0d 26 48 0c 53 54  41 20 63 68 61 72 0d 26  |60.&H.STA char.&|
00002e00  52 0e 4a 53 52 20 73 70  72 69 74 65 0d 26 5c 0b  |R.JSR sprite.&\.|
00002e10  4c 44 41 20 23 32 38 0d  26 66 10 53 54 41 20 69  |LDA #28.&f.STA i|
00002e20  6e 72 6f 6f 6d 2b 34 0d  26 70 0c 4c 44 41 20 23  |nroom+4.&p.LDA #|
00002e30  26 46 46 0d 26 7a 10 53  54 41 20 69 6e 72 6f 6f  |&FF.&z.STA inroo|
00002e40  6d 2b 35 0d 26 84 0c 4c  44 41 20 75 73 65 64 0d  |m+5.&..LDA used.|
00002e50  26 8e 09 41 53 4c 20 41  0d 26 98 07 54 41 58 0d  |&..ASL A.&..TAX.|
00002e60  26 a2 0a 4c 44 41 20 23  30 0d 26 ac 0f 53 54 41  |&..LDA #0.&..STA|
00002e70  20 6f 62 6c 6f 63 2c 58  0d 26 b6 0c 4c 44 41 20  | obloc,X.&..LDA |
00002e80  23 26 36 46 0d 26 c0 11  53 54 41 20 6f 62 6c 6f  |#&6F.&..STA oblo|
00002e90  63 2b 31 2c 58 0d 26 ca  0c 4c 44 58 20 75 73 65  |c+1,X.&..LDX use|
00002ea0  64 0d 26 d4 0b 4a 53 52  20 70 6f 62 0d 26 de 0a  |d.&..JSR pob.&..|
00002eb0  4c 44 59 20 23 39 0d 26  e8 0b 53 54 59 20 79 6c  |LDY #9.&..STY yl|
00002ec0  6f 0d 26 f2 0a 2e 6c 6f  6f 70 57 0d 26 fc 0c 4c  |o.&...loopW.&..L|
00002ed0  44 41 20 75 73 65 64 0d  27 06 0b 53 54 41 20 6d  |DA used.'..STA m|
00002ee0  61 67 0d 27 10 0c 4a 53  52 20 6f 62 75 70 0d 27  |ag.'..JSR obup.'|
00002ef0  1a 0b 4c 44 58 20 23 31  30 0d 27 24 08 2e 6f 75  |..LDX #10.'$..ou|
00002f00  74 0d 27 2e 0c 4c 44 59  20 23 32 35 35 0d 27 38  |t.'..LDY #255.'8|
00002f10  0a 2e 64 65 6c 61 79 0d  27 42 07 4e 4f 50 0d 27  |..delay.'B.NOP.'|
00002f20  4c 07 44 45 59 0d 27 56  0d 42 4e 45 20 64 65 6c  |L.DEY.'V.BNE del|
00002f30  61 79 0d 27 60 07 44 45  58 0d 27 6a 0b 42 4e 45  |ay.'`.DEX.'j.BNE|
00002f40  20 6f 75 74 0d 27 74 0b  44 45 43 20 79 6c 6f 0d  | out.'t.DEC ylo.|
00002f50  27 7e 0b 4c 44 41 20 79  6c 6f 0d 27 88 0d 42 4e  |'~.LDA ylo.'..BN|
00002f60  45 20 6c 6f 6f 70 57 0d  27 92 0c 4c 44 58 20 75  |E loopW.'..LDX u|
00002f70  73 65 64 0d 27 9c 0b 4a  53 52 20 70 6f 62 0d 27  |sed.'..JSR pob.'|
00002f80  a6 0b 4c 44 58 20 23 35  30 0d 27 b0 09 2e 6f 75  |..LDX #50.'...ou|
00002f90  74 33 0d 27 ba 0c 4c 44  59 20 23 32 35 35 0d 27  |t3.'..LDY #255.'|
00002fa0  c4 0b 2e 64 65 6c 61 79  33 0d 27 ce 07 4e 4f 50  |...delay3.'..NOP|
00002fb0  0d 27 d8 07 44 45 59 0d  27 e2 0e 42 4e 45 20 64  |.'..DEY.'..BNE d|
00002fc0  65 6c 61 79 33 0d 27 ec  07 44 45 58 0d 27 f6 0c  |elay3.'..DEX.'..|
00002fd0  42 4e 45 20 6f 75 74 33  0d 28 00 0c 4c 44 41 20  |BNE out3.(..LDA |
00002fe0  75 73 65 64 0d 28 0a 09  41 53 4c 20 41 0d 28 14  |used.(..ASL A.(.|
00002ff0  07 54 41 58 0d 28 1e 0c  4c 44 41 20 23 26 46 30  |.TAX.(..LDA #&F0|
00003000  0d 28 28 0f 53 54 41 20  6f 62 6c 6f 63 2c 58 0d  |.((.STA obloc,X.|
00003010  28 32 0c 4c 44 41 20 23  26 36 43 0d 28 3c 11 53  |(2.LDA #&6C.(<.S|
00003020  54 41 20 6f 62 6c 6f 63  2b 31 2c 58 0d 28 46 0c  |TA obloc+1,X.(F.|
00003030  4c 44 58 20 75 73 65 64  0d 28 50 0b 4a 53 52 20  |LDX used.(P.JSR |
00003040  70 6f 62 0d 28 5a 0b 4c  44 59 20 23 31 33 0d 28  |pob.(Z.LDY #13.(|
00003050  64 0b 53 54 59 20 79 6c  6f 0d 28 6e 0a 2e 6c 6f  |d.STY ylo.(n..lo|
00003060  6f 70 4e 0d 28 78 0c 4c  44 41 20 75 73 65 64 0d  |opN.(x.LDA used.|
00003070  28 82 0b 53 54 41 20 6d  61 67 0d 28 8c 0e 4a 53  |(..STA mag.(..JS|
00003080  52 20 6f 62 6c 65 66 74  0d 28 96 0b 4c 44 58 20  |R obleft.(..LDX |
00003090  23 31 30 0d 28 a0 09 2e  6f 75 74 32 0d 28 aa 0c  |#10.(...out2.(..|
000030a0  4c 44 59 20 23 32 35 35  0d 28 b4 0b 2e 64 65 6c  |LDY #255.(...del|
000030b0  61 79 32 0d 28 be 07 4e  4f 50 0d 28 c8 07 44 45  |ay2.(..NOP.(..DE|
000030c0  59 0d 28 d2 0e 42 4e 45  20 64 65 6c 61 79 32 0d  |Y.(..BNE delay2.|
000030d0  28 dc 07 44 45 58 0d 28  e6 0c 42 4e 45 20 6f 75  |(..DEX.(..BNE ou|
000030e0  74 32 0d 28 f0 0b 44 45  43 20 79 6c 6f 0d 28 fa  |t2.(..DEC ylo.(.|
000030f0  0b 4c 44 41 20 79 6c 6f  0d 29 04 0d 42 4e 45 20  |.LDA ylo.)..BNE |
00003100  6c 6f 6f 70 4e 0d 29 0e  0c 4c 44 58 20 75 73 65  |loopN.)..LDX use|
00003110  64 0d 29 18 0b 4a 53 52  20 70 6f 62 0d 29 22 0c  |d.)..JSR pob.)".|
00003120  4c 44 41 20 23 26 46 46  0d 29 2c 0f 53 54 41 20  |LDA #&FF.),.STA |
00003130  70 6f 63 6b 65 74 32 0d  29 36 0a 4c 44 41 20 23  |pocket2.)6.LDA #|
00003140  37 0d 29 40 0d 53 54 41  20 73 6f 75 6e 64 0d 29  |7.)@.STA sound.)|
00003150  4a 11 4c 44 41 20 69 6e  72 6f 6f 6d 2b 32 37 0d  |J.LDA inroom+27.|
00003160  29 54 0b 43 4d 50 20 23  32 38 0d 29 5e 0f 42 45  |)T.CMP #28.)^.BE|
00003170  51 20 61 6c 72 65 61 64  79 0d 29 68 0c 4c 44 41  |Q already.)h.LDA|
00003180  20 23 26 36 43 0d 29 72  0d 53 54 41 20 6c 6f 63  | #&6C.)r.STA loc|
00003190  2b 31 0d 29 7c 0c 4c 44  41 20 23 26 32 30 0d 29  |+1.)|.LDA #&20.)|
000031a0  86 0b 53 54 41 20 6c 6f  63 0d 29 90 0c 4c 44 41  |..STA loc.)..LDA|
000031b0  20 23 26 34 46 0d 29 9a  0e 53 54 41 20 63 68 61  | #&4F.)..STA cha|
000031c0  72 2b 31 0d 29 a4 0a 4c  44 41 20 23 30 0d 29 ae  |r+1.)..LDA #0.).|
000031d0  0c 53 54 41 20 63 68 61  72 0d 29 b8 0e 4a 53 52  |.STA char.)..JSR|
000031e0  20 73 70 72 69 74 65 0d  29 c2 0c 4c 44 41 20 23  | sprite.)..LDA #|
000031f0  26 36 43 0d 29 cc 0d 53  54 41 20 6c 6f 63 2b 31  |&6C.)..STA loc+1|
00003200  0d 29 d6 0c 4c 44 41 20  23 26 32 30 0d 29 e0 0b  |.)..LDA #&20.)..|
00003210  53 54 41 20 6c 6f 63 0d  29 ea 0c 4c 44 41 20 23  |STA loc.)..LDA #|
00003220  26 34 41 0d 29 f4 0e 53  54 41 20 63 68 61 72 2b  |&4A.)..STA char+|
00003230  31 0d 29 fe 0c 4c 44 41  20 23 26 43 30 0d 2a 08  |1.)..LDA #&C0.*.|
00003240  0c 53 54 41 20 63 68 61  72 0d 2a 12 0e 4a 53 52  |.STA char.*..JSR|
00003250  20 73 70 72 69 74 65 0d  2a 1c 0c 4c 44 41 20 23  | sprite.*..LDA #|
00003260  26 38 30 0d 2a 26 0d 53  54 41 20 26 35 37 37 30  |&80.*&.STA &5770|
00003270  0d 2a 30 0b 4c 44 41 20  23 32 38 0d 2a 3a 11 53  |.*0.LDA #28.*:.S|
00003280  54 41 20 69 6e 72 6f 6f  6d 2b 32 37 0d 2a 44 07  |TA inroom+27.*D.|
00003290  52 54 53 0d 2a 4e 0c 2e  61 6c 72 65 61 64 79 0d  |RTS.*N..already.|
000032a0  2a 58 0c 4c 44 41 20 23  26 36 43 0d 2a 62 0d 53  |*X.LDA #&6C.*b.S|
000032b0  54 41 20 6c 6f 63 2b 31  0d 2a 6c 0c 4c 44 41 20  |TA loc+1.*l.LDA |
000032c0  23 26 32 30 0d 2a 76 0b  53 54 41 20 6c 6f 63 0d  |#&20.*v.STA loc.|
000032d0  2a 80 0c 4c 44 41 20 23  26 34 41 0d 2a 8a 0e 53  |*..LDA #&4A.*..S|
000032e0  54 41 20 63 68 61 72 2b  31 0d 2a 94 0c 4c 44 41  |TA char+1.*..LDA|
000032f0  20 23 26 43 30 0d 2a 9e  0c 53 54 41 20 63 68 61  | #&C0.*..STA cha|
00003300  72 0d 2a a8 0e 4a 53 52  20 73 70 72 69 74 65 0d  |r.*..JSR sprite.|
00003310  2a b2 0c 4c 44 41 20 23  26 46 46 0d 2a bc 11 53  |*..LDA #&FF.*..S|
00003320  54 41 20 69 6e 72 6f 6f  6d 2b 32 37 0d 2a c6 07  |TA inroom+27.*..|
00003330  52 54 53 0d 2a d0 07 52  54 53 0d 2a da 0c 2e 63  |RTS.*..RTS.*...c|
00003340  6f 6c 20 4e 4f 50 0d 2a  e4 0c 2e 6d 61 67 20 4e  |ol NOP.*...mag N|
00003350  4f 50 0d 2a ee 0d 2e 75  73 65 64 20 4e 4f 50 0d  |OP.*...used NOP.|
00003360  2a f8 0d 2e 6d 61 73 6b  20 4e 4f 50 0d 2b 02 0e  |*...mask NOP.+..|
00003370  2e 74 65 6d 70 31 20 4e  4f 50 0d 2b 0c 0e 2e 74  |.temp1 NOP.+...t|
00003380  65 6d 70 32 20 4e 4f 50  0d 2b 16 0a 2e 73 6f 75  |emp2 NOP.+...sou|
00003390  6e 64 0d 2b 20 11 4f 50  54 20 a4 65 71 75 62 28  |nd.+ .OPT .equb(|
000033a0  26 30 29 0d 2b 2a 0a 2e  66 6c 61 73 6b 0d 2b 34  |&0).+*..flask.+4|
000033b0  12 4f 50 54 20 a4 65 71  75 62 28 26 30 41 29 0d  |.OPT .equb(&0A).|
000033c0  2b 3e 0c 2e 70 6f 63 6b  65 74 31 0d 2b 48 12 4f  |+>..pocket1.+H.O|
000033d0  50 54 20 a4 65 71 75 62  28 26 46 46 29 0d 2b 52  |PT .equb(&FF).+R|
000033e0  0c 2e 70 6f 63 6b 65 74  32 0d 2b 5c 12 4f 50 54  |..pocket2.+\.OPT|
000033f0  20 a4 65 71 75 62 28 26  46 46 29 0d 2b 66 0e 2e  | .equb(&FF).+f..|
00003400  63 6f 75 6e 74 20 4e 4f  50 0d 2b 70 09 2e 6c 61  |count NOP.+p..la|
00003410  73 74 0d 2b 7a 12 4f 50  54 20 a4 65 71 75 62 28  |st.+z.OPT .equb(|
00003420  26 46 46 29 0d 2b 84 09  2e 68 6f 6d 65 0d 2b 8e  |&FF).+...home.+.|
00003430  11 4f 50 54 20 a4 65 71  75 62 28 26 30 29 0d 2b  |.OPT .equb(&0).+|
00003440  98 0c 2e 68 6f 6d 65 73  63 72 0d 2b a2 18 4f 50  |...homescr.+..OP|
00003450  54 20 a4 65 71 75 64 28  26 35 39 31 44 35 43 44  |T .equd(&591D5CD|
00003460  43 29 0d 2b ac 18 4f 50  54 20 a4 65 71 75 64 28  |C).+..OPT .equd(|
00003470  26 35 45 33 33 35 41 36  43 29 0d 2b b6 18 4f 50  |&5E335A6C).+..OP|
00003480  54 20 a4 65 71 75 64 28  26 36 30 39 35 36 30 41  |T .equd(&609560A|
00003490  35 29 0d 2b c0 18 4f 50  54 20 a4 65 71 75 64 28  |5).+..OPT .equd(|
000034a0  26 35 41 34 41 35 45 30  33 29 0d 2b ca 0a 2e 71  |&5A4A5E03).+...q|
000034b0  75 65 75 65 0d 2b d4 16  4f 50 54 20 a4 65 71 75  |ueue.+..OPT .equ|
000034c0  64 28 26 31 32 31 41 30  35 29 0d 2b de 18 4f 50  |d(&121A05).+..OP|
000034d0  54 20 a4 65 71 75 64 28  26 42 30 30 34 31 39 30  |T .equd(&B004190|
000034e0  30 29 0d 2b e8 11 4f 50  54 20 a4 65 71 75 62 28  |0).+..OPT .equb(|
000034f0  26 34 29 0d 2b f2 0c 2e  79 6c 6f 20 4e 4f 50 0d  |&4).+...ylo NOP.|
00003500  2b fc 0c 2e 79 68 69 20  4e 4f 50 0d 2c 06 16 4f  |+...yhi NOP.,..O|
00003510  50 54 20 a4 65 71 75 64  28 26 31 43 30 34 32 44  |PT .equd(&1C042D|
00003520  29 0d 2c 10 13 4f 50 54  20 a4 65 71 75 77 28 26  |).,..OPT .equw(&|
00003530  46 31 46 29 0d 2c 1a 11  4f 50 54 20 a4 65 71 75  |F1F).,..OPT .equ|
00003540  62 28 26 30 29 0d 2c 24  0b 2e 71 75 65 75 65 32  |b(&0).,$..queue2|
00003550  0d 2c 2e 16 4f 50 54 20  a4 65 71 75 64 28 26 31  |.,..OPT .equd(&1|
00003560  32 31 41 30 35 29 0d 2c  38 18 4f 50 54 20 a4 65  |21A05).,8.OPT .e|
00003570  71 75 64 28 26 42 34 30  34 31 39 30 30 29 0d 2c  |qud(&B4041900).,|
00003580  42 12 4f 50 54 20 a4 65  71 75 62 28 26 30 34 29  |B.OPT .equb(&04)|
00003590  0d 2c 4c 0b 2e 71 75 65  75 65 33 0d 2c 56 18 4f  |.,L..queue3.,V.O|
000035a0  50 54 20 a4 65 71 75 64  28 26 42 34 30 34 31 39  |PT .equd(&B40419|
000035b0  45 37 29 0d 2c 60 12 4f  50 54 20 a4 65 71 75 62  |E7).,`.OPT .equb|
000035c0  28 26 30 34 29 0d 2c 6a  0b 2e 71 75 65 75 65 34  |(&04).,j..queue4|
000035d0  0d 2c 74 16 4f 50 54 20  a4 65 71 75 64 28 26 31  |.,t.OPT .equd(&1|
000035e0  43 30 34 45 37 29 0d 2c  7e 13 4f 50 54 20 a4 65  |C04E7).,~.OPT .e|
000035f0  71 75 77 28 26 46 31 46  29 0d 2c 88 11 4f 50 54  |quw(&F1F).,..OPT|
00003600  20 a4 65 71 75 62 28 26  30 29 0d 2c 92 05 5d 0d  | .equb(&0).,..].|
00003610  2c 9c 08 f1 7e 50 25 0d  2c a6 05 ed 0d 2c b0 13  |,...~P%.,....,..|
00003620  f2 6f 73 63 6c 69 28 22  44 49 52 20 4d 22 29 0d  |.oscli("DIR M").|
00003630  2c ba 22 f2 6f 73 63 6c  69 28 22 53 41 56 45 20  |,.".oscli("SAVE |
00003640  43 4f 44 45 33 20 33 34  30 30 20 33 43 44 46 22  |CODE3 3400 3CDF"|
00003650  29 0d 2c c4 13 f2 6f 73  63 6c 69 28 22 44 49 52  |).,...oscli("DIR|
00003660  20 24 22 29 0d 2c ce 05  e0 0d 2c d8 0e dd a4 65  | $").,....,....e|
00003670  71 75 62 28 53 25 29 0d  2c e2 12 3f 50 25 3d 53  |qub(S%).,..?P%=S|
00003680  25 3a 50 25 3d 50 25 2b  31 0d 2c ec 0a 3d 70 61  |%:P%=P%+1.,..=pa|
00003690  73 73 25 0d 2c f6 0e dd  a4 65 71 75 77 28 53 25  |ss%.,....equw(S%|
000036a0  29 0d 2d 00 12 21 50 25  3d 53 25 3a 50 25 3d 50  |).-..!P%=S%:P%=P|
000036b0  25 2b 32 0d 2d 0a 0a 3d  70 61 73 73 25 0d 2d 14  |%+2.-..=pass%.-.|
000036c0  0e dd a4 65 71 75 64 28  53 25 29 0d 2d 1e 12 21  |...equd(S%).-..!|
000036d0  50 25 3d 53 25 3a 50 25  3d 50 25 2b 34 0d 2d 28  |P%=S%:P%=P%+4.-(|
000036e0  0a 3d 70 61 73 73 25 0d  2d 32 12 dd f2 6f 73 63  |.=pass%.-2...osc|
000036f0  6c 69 28 24 26 37 30 30  29 0d 2d 3c 16 ea 58 25  |li($&700).-<..X%|
00003700  2c 59 25 3a 59 25 3d 37  3a d6 26 46 46 46 37 0d  |,Y%:Y%=7:.&FFF7.|
00003710  2d 46 05 e1 0d ff                                 |-F....|
00003716