0 .OPT OBJ 01 .OPT NO LIST 10 ; MAZERUNNER by Matt Fruin 12/86 20 STICK0 = $0278 30 HPOS = $D000 40 PCLR = $02C0 50 EHPOS = $D002 60 EPCLR = $02C2 70 RND = $D20A 80 VVBLKI = $0222 90 CONSOL = $D01F 0100 L1 = $CB 0110 VALUE = $CF 0120 NEWDIR = $CF 0130 SPACES = $D0 0140 L2 = $CC 0150 PLOC1 = $CB 0160 PLOC2 = $CC 0170 PMLO = $CD 0180 PMHI = $CE 0190 L3 = $CE 0200 L4 = $CF 0210 HALF = $D1 0220 YG1 = $D0 0230 YG2 = $D1 0240 FB = $CE 0250 FLAG = $CF 0260 LINE = $CD 0270 MVYET? = $E0 0280 CHAR = $CE 0290 ENEMLO = $0600 0300 ENEMHI = $0610 0310 ENEMASK = $0620 0320 DIR = $0630 0330 MVCTER = $0640 0340 ENEMNUM = $0650 0350 PLRLO = $0660 0360 PLRHI = $0662 0370 PLRY = $0664 0380 PLRX = $0666 0390 PLDIR = $0668 0400 PLMVCTER = $066A 0410 PLRNUM = $066C 0420 DIR2 = $066D 0430 DIR3 = $066E 0440 ENLO = $0670 0450 ENHI = $0674 0460 ENY = $0678 0470 ENX = $067C 0480 EDIR = $0680 0490 EMVCTER = $0684 0500 ENNUM = $0688 0510 FP? = $06DF 0520 NOMV = $06E4 0530 CLR = $068A 0540 LMT = $06E7 0550 WTR = $06E5 0560 FLASH = $06DE 0570 MASK = $06E3 0580 KILL? = $06E8 0590 PY? = $06EA 0600 PARALYZCNT = $06EC 0610 MOVPLR? = $06D0 0620 COLRCT = $06D8 0630 CAUGHT = $06D2 0640 READY? = $06D6 0650 TMP1 = $06D4 0660 CLRLIST = $06A0 0670 TM = $06A8 0680 TMSCREEN = $4E58 0690 ICCOM = $0342 0700 ICBAL = $0344 0710 ICBAH = $0345 0720 ICAX1 = $034A 0730 ICAX2 = $034B 0740 CIOV = $E456 0750 SAVMSC = $58 0760 SDMCTL = $022F 0770 SDLSTL = $0230 0780 ENCNT1 = $06F0 0790 ENCNT2 = ENCNT1+1 0800 ENEMSPD = ENCNT1+2 0810 P1SPD = ENCNT1+3 0820 P2SPD = ENCNT1+4 0830 POSCNTR = $06B0 0840 POSLO = POSCNTR+2 0850 POSHI = POSCNTR+3 0860 LOVAL = POSCNTR+$12 0870 HIVAL = POSCNTR+$18 0880 MOVCNTR = POSCNTR+$10 0890 P1SPDCNT = $06E0 0900 P2SPDCNT = $06E1 0910 ENEMSCNT = $06E2 0920 SOUND = $06DA 0930 LOUD = $06DB 0940 SOUNDLP1 = $06DC 0950 SOUNDLP2 = $06DD 0960 ; 0970 *= $6000 0980 RESET LDA #START&255 0990 STA $0C 1000 LDA #START/256 1010 STA $0D 1040 LDA #$01 1050 STA $09 1060 START JSR SCREENLIST 1070 LDA #$40 1080 STA L2 1090 LDA #$00 1100 STA L1 1110 LDX #$00 1120 CLS1 LDY #$00 1130 CLS2 STA (L1),Y 1140 INY 1150 BNE CLS2 1160 INC L2 1170 INX 1180 CPX #$10 1190 BNE CLS1 1200 LDA #$53 1210 STA L1 1220 LDX #$60 1230 LDA #$03 1240 STA ICCOM,X 1250 LDA #$00 1260 STA ICBAH,X 1270 LDA #$CB 1280 STA ICBAL,X 1290 LDA #$0C 1300 STA ICAX1,X 1310 LDA #$00 1320 STA ICAX2,X 1330 JSR CIOV 1340 LDA #$00 1350 STA SAVMSC 1360 LDA #$40 1370 STA SAVMSC+1 1380 LDA #$00 1390 STA SDMCTL 1400 LDA #$00 1410 STA SDLSTL 1420 LDA #$80 1430 STA SDLSTL+1 1440 LDA #$2E 1450 STA SDMCTL 1460 LDA #$FF 1470 STA $D01C 1480 LDA #$94 1490 STA $02C6 1500 LDA #$96 1510 STA $02C4 1520 LDA #$44 1530 STA $02C5 1540 JSR TITLE 1550 JSR BORDER 1560 JSR DOCHOICES 1570 JSR PUTBLIPS 1580 LDA #$61 1590 STA LMT 1600 LDA #TRU&255 1610 STA VVBLKI+2 1620 LDA #TRU/256 1630 STA VVBLKI+3 1640 JMP SETUP2 1650 ; 1660 TITLE LDY #$00 1670 STY L1 1680 LDA #$40 1690 STA L2 1700 LP1 LDA MESSAGE,Y 1710 STA (L1),Y 1720 INY 1730 CPY #$A0 1740 BNE LP1 1750 RTS 1760 ; 1770 BORDER LDA #$00 1780 STA YG1 1790 STA YG2 1800 LDA #$A0 1810 STA L3 1820 LDA #$40 1830 STA L4 1840 LDX #$05 1850 TOP JSR VERT 1860 DEX 1870 BPL TOP 1880 LDX #$57 1890 MIDDLE JSR SIDES 1900 DEX 1910 BPL MIDDLE 1920 JSR BOTTOMROW 1930 JSR BOTTOMROW 1940 LDX #$05 1950 BOTTOM JSR VERT 1960 DEX 1970 BPL BOTTOM 1980 JMP DOMAZE 1990 BOTTOMROW LDY #$00 2000 JSR SIDE 2010 INY 2020 LDA #$00 2030 LLP4 STA (L3),Y 2040 INY 2050 CPY #$19 2060 BNE LLP4 2070 LDA #$F0 2080 STA (L3),Y 2090 JMP ADD40 2100 VERT LDY #$00 2110 LDA #$FF 2120 LOOP3 STA (L3),Y 2130 INY 2140 CPY #$19 2150 BNE LOOP3 2160 LDA #$F0 2170 STA (L3),Y 2180 JSR ADD40 2190 RTS 2200 SIDES LDY #$00 2210 JSR SIDE 2220 INY 2230 LDA #$00 2240 LOOP4 STA (L3),Y 2250 INY 2260 CPY #$18 2270 BNE LOOP4 2280 JSR SIDE 2290 ADD40 CLC 2300 LDA #$28 2310 ADC L3 2320 BCC J1 2330 INC L4 2340 J1 STA L3 2350 RTS 2360 SIDE LDA #$FF 2370 STA (L3),Y 2380 INY 2390 LDA #$F0 2400 STA (L3),Y 2410 RTS 2420 DOMAZE LDA RND 2430 AND #$3F 2440 STA L3 2450 SEC 2460 SBC #$1A 2470 BCS DOMAZE 2480 PP2 LDA RND 2490 AND #$3E 2500 STA L4 2510 SEC 2520 SBC #$30 2530 BCS PP2 2540 LDA #$00 2550 STA L1 2560 STA L2 2570 CLC 2580 LDA L4 2590 STA L1 2600 ASL L1 2610 ASL L1 2620 ADC L1 2630 STA L1 2640 LDX #$04 2650 LOOP5 ASL L1 2660 ROL L2 2670 DEX 2680 BNE LOOP5 2690 CLC 2700 LDA L1 2710 ADC L3 2720 BCC J2 2730 INC L2 2740 J2 STA L1 2750 CLC 2760 LDA L1 2770 ADC #$A0 2780 BCC J3 2790 INC L2 2800 J3 STA L1 2810 CLC 2820 LDA L2 2830 ADC #$40 2840 STA L2 2850 LDY #$00 2860 LDA (L1),Y 2870 AND #$40 2880 BNE DOMAZE 2890 LDA #$01 2900 STA FLAG 2910 WALL LDA RND 2920 AND #$03 2930 ROR A 2940 BCC LORR 2950 ROR A 2960 BCC DN 2970 DEC L2 2980 LDY #$60 2990 JSR FILLED? 3000 INC L2 3010 LDA FB 3020 BNE FILLED 3030 DEC L2 3040 JMP PLOTUP 3050 DN LDY #$A0 3060 JSR FILLED? 3070 LDA FB 3080 BNE FILLED 3090 JMP PLOTDOWN 3100 LORR ROR A 3110 BCC LT 3120 LDY #$01 3130 JSR FILLED? 3140 LDA FB 3150 BEQ PLOTRIGHT 3160 JMP FILLED 3170 LT DEC L2 3180 LDY #$FF 3190 JSR FILLED? 3200 INC L2 3210 LDA FB 3220 BEQ PLOTLEFT 3230 JMP FILLED 3240 FILLED? LDA (L1),Y 3250 AND #$40 3260 STA FB 3270 LDA FLAG 3280 BNE J4 3290 RTS 3300 J4 LDA FB 3310 BEQ J5 3320 JMP DONE3 3330 J5 LDA #$01 3340 STA FB 3350 RTS 3360 FILLED INX 3370 CPX #$0F 3380 BNE WALL 3390 JMP DOMAZE 3400 PLOTUP LDA #$50 3410 LDY #$D8 3420 STA (L1),Y 3430 LDY #$B0 3440 STA (L1),Y 3450 LDY #$88 3460 STA (L1),Y 3470 LDY #$60 3480 STA (L1),Y 3490 JMP DONE 3500 PLOTDOWN LDA #$50 3510 LDY #$50 3520 STA (L1),Y 3530 LDY #$78 3540 STA (L1),Y 3550 LDY #$C8 3560 STA (L1),Y 3570 LDY #$A0 3580 STA (L1),Y 3590 JMP DONE 3600 PLOTRIGHT LDY #$00 3610 LDA (L1),Y 3620 ORA #$55 3630 STA (L1),Y 3640 LDY #$28 3650 STA (L1),Y 3660 LDA #$50 3670 LDY #$29 3680 STA (L1),Y 3690 LDY #$01 3700 STA (L1),Y 3710 JMP DONE 3720 PLOTLEFT LDY #$27 3730 LDA #$55 3740 STA (L1),Y 3750 LDY #$FF 3760 DEC L2 3770 STA (L1),Y 3790 DONE CLC 3800 INC YG1 3810 BNE J6 3820 INC YG2 3830 J6 LDA YG1 3840 CMP #$E4 3850 BNE DONE2 3860 LDA YG2 3870 CMP #$01 3880 BNE DONE2 3890 RTS 3900 DONE3 PLA 3910 PLA 3920 DONE2 CLC 3930 TYA 3940 ADC L1 3950 BCC J7 3960 INC L2 3970 J7 STA L1 3980 LDX #$00 3990 STX FLAG 4000 JMP WALL 4010 ; 4020 DOCHOICES LDX #$01 4030 STX LINE 4040 DEX 4050 GETLOC LDA LIST,X 4060 STA L1 4070 INX 4080 LDA LIST,X 4090 STA L2 4100 LDY LINE 4110 J8 DEY 4120 CPY #$00 4130 BEQ J12 4140 JSR PLUS40 4150 JMP J8 4160 J9 LDA LIST,X 4170 CMP #$18 4180 BNE J10 4190 INC L2 4200 J10 CLC 4210 ADC L1 4220 BCC J11 4230 INC L2 4240 J11 STA L1 4250 J12 LDY #$00 4260 STY CHAR 4270 J13 INX 4280 LDA LIST,X 4290 CLC 4300 ROL A 4310 ROL A 4320 ADC LINE 4330 TAY 4340 LDA BYTES,Y 4350 LDY CHAR 4360 CPY #$09 4370 BEQ J14 4380 STA (L1),Y 4390 INY 4400 STY CHAR 4410 JMP J13 4420 J14 CPX #$97 4430 BNE J9 4440 INC LINE 4450 LDA LINE 4460 CMP #$05 4470 BEQ OUT 4480 LDX #$00 4490 JMP GETLOC 4500 OUT LDX #$1F 4510 J15 LDA LTS,X 4520 STA POSCNTR,X 4530 DEX 4540 BPL J15 4550 LDX #$05 4560 J16 LDA LTS2,X 4570 STA ENCNT1,X 4580 DEX 4590 BPL J16 4600 RTS 4610 PLUS40 LDA L1 4620 CLC 4630 ADC #$28 4640 BCC J17 4650 INC L2 4660 J17 STA L1 4670 RTS 4680 ; 4690 PUTBLIPS LDY #$02 4700 PB2 LDA BLIPS,Y 4710 STA L1 4720 LDA BLIPS+3,Y 4730 STA L2 4740 LDA BLIPS+6,Y 4750 STA (L1),Y 4760 DEY 4770 BPL PB2 4780 RTS 4790 ; 4800 CHANGE LDA NOMV 4810 BNE LEAVE 4820 DEC WTR 4830 BPL LEAVE 4840 LDA #$04 4850 STA WTR 4860 LDA CONSOL 4870 CMP #$03 4880 BEQ OPTION 4890 CMP #$05 4900 BEQ SELECT 4910 CMP #$06 4920 BEQ STARTED 4930 LDA $0284 4940 BEQ STARTED 4950 LDA $0285 4960 BEQ STARTED 4970 LEAVE JSR DOSOUND 4980 LV2 JMP $E45F 4990 STARTED LDA READY? 5000 BNE LV2 5010 JMP SETUPGAME 5020 OPTION LDX #$01 5030 LDA MOVCNTR,X 5040 CMP #$00 5050 BEQ NOBLACK 5060 LDA #$00 5070 JMP STORCOL 5080 NOBLACK LDA #$96 5090 STORCOL STA $02C4 5100 LDA POSCNTR 5110 ASL A 5120 JSR NEWPOS 5130 LDA #$00 5140 LDY #$00 5150 STA (L1),Y 5160 INC POSCNTR 5170 LDA POSCNTR 5180 CMP #$07 5190 BNE PLUS5 5200 LDA #$00 5210 STA POSCNTR 5220 PLUS5 CLC 5230 ASL A 5240 JSR NEWPOS 5250 LDA #$FF 5260 LDY #$00 5270 STA (L1),Y 5280 JMP LEAVE 5290 NEWPOS TAX 5300 LDA POSLO,X 5310 STA L1 5320 LDA POSHI,X 5330 STA L2 5340 RTS 5350 SELECT LDA POSCNTR 5360 TAX 5370 SEC 5380 SBC #$02 5390 BCS ISIT2 5400 JSR CHANGELOC 5410 LDA #$00 5420 STA (L1),Y 5430 INC MOVCNTR,X 5440 LDA MOVCNTR,X 5450 CMP #$03 5460 BNE NOT3 5470 LDA #$00 5480 STA MOVCNTR,X 5490 NOT3 JSR CHANGELOC 5500 LDA #$3C 5510 STA (L1),Y 5520 JMP LEAVE 5530 CHANGELOC LDA POSCNTR 5540 BEQ NNOT1 5550 LDA #$03 5560 NNOT1 CLC 5570 ADC MOVCNTR,X 5580 TAY 5590 LDA LOVAL,Y 5600 STA L1 5610 LDA HIVAL,Y 5620 STA L2 5630 LDY #$00 5640 RTS 5650 ISIT2 SBC #$01 5660 BCS ISIT3 5670 INC ENCNT2 5680 LDA ENCNT2 5690 CMP #$0A 5700 BNE ADD1 5710 INC ENCNT1 5720 LDA #$00 5730 STA ENCNT2 5740 ENEMINC LDA POSCNTR 5750 ASL A 5760 JSR NEWPOS 5770 DEC L1 5780 DEC L1 5790 LDA ENCNT1 5800 JSR DOCHAR 5810 ADD1 LDA ENCNT2 5820 CMP #$07 5830 BNE NOTYET 5840 LDA ENCNT1 5850 CMP #$01 5860 BNE NOTYET 5870 LDA #$00 5880 STA ENCNT1 5890 STA ENCNT2 5900 JMP ENEMINC 5910 NOTYET LDA POSCNTR 5920 ASL A 5930 JSR NEWPOS 5940 DEC L1 5950 LDA ENCNT2 5960 JSR DOCHAR 5970 JMP LEAVE 5980 DOCHAR ASL A 5990 ASL A 6000 ADC #$6D 6010 DOCHAR2 TAX 6020 LDY #$00 6030 J18 LDA BYTES,X 6040 STA (L1),Y 6050 ADD40TOY TYA 6060 CLC 6070 ADC #$28 6080 TAY 6090 INX 6100 CPY #$A0 6110 BNE J18 6120 RTS 6130 ISIT3 SBC #$01 6140 BCS ISIT4OR5 6150 LDA POSCNTR 6160 ASL A 6170 JSR NEWPOS 6180 DEC L1 6190 DEC L1 6200 INC ENEMSPD 6210 LDA ENEMSPD 6220 CMP #$05 6230 BNE NOT5 6240 LDA #$01 6250 STA ENEMSPD 6260 NOT5 JSR DOCHAR 6270 JMP LEAVE 6280 ISIT4OR5 SBC #$02 6290 BCS ITS6 6300 LDA POSCNTR 6310 ASL A 6320 JSR NEWPOS 6330 DEC L1 6340 LDA POSCNTR 6350 AND #$01 6360 TAX 6370 INC P1SPD,X 6380 LDA P1SPD,X 6390 CMP #$05 6400 BNE NOTOVER 6410 LDA #$01 6420 STA P1SPD,X 6430 NOTOVER JSR DOCHAR 6440 JMP LEAVE 6450 ITS6 LDA POSCNTR 6460 ASL A 6470 JSR NEWPOS 6480 DEC L1 6490 DEC L1 6500 DEC L1 6510 LDA LMT 6520 EOR #$54 6530 STA LMT 6540 JSR DOCHAR2 6550 JMP LEAVE 6560 ; 6570 STOPPED LDA #VRTWAIT&255 6580 STA VVBLKI 6590 LDA #VRTWAIT/256 6600 STA VVBLKI+1 6610 WAIT3 JSR WAIT 6620 SETUP LDA #$00 6630 STA FP? 6640 LDA MOVCNTR 6650 BNE SETUP2 6660 INC FP? 6670 LDA #$02 6680 STA MASK 6690 SETUP2 LDA #$04 6700 STA WTR 6710 LDA #CHANGE&255 6720 STA VVBLKI 6730 LDA #CHANGE/256 6740 STA VVBLKI+1 6750 LDA #$00 6760 STA NOMV 6770 LDA #$96 6780 STA $02C4 6790 JSR ENSETUP 6800 LDA #$00 6810 STA KILL? 6820 STA KILL?+1 6830 STA PY? 6840 STA PY?+1 6850 STA ENEMSCNT 6860 STA MVYET? 6870 STA P1SPDCNT 6880 STA P2SPDCNT 6890 SYNCH LDA MVYET? 6900 BEQ SYNCH 6910 STA NOMV 6920 LDA #$A0 6930 STA $D201 6940 JSR SETUPPLS 6950 LDA #$00 6960 STA SOUND 6970 LDA #$10 6980 STA LOUD 6990 LDA #$00 7000 STA $D208 7010 LDA #$03 7020 STA $D20F 7030 LDA #$00 7040 STA SOUNDLP1 7050 STA SOUNDLP2 7060 LDA #$0F 7070 STA DIR3 7080 STA DIR3+1 7090 WAIT4 JSR WAIT 7100 LDA #$01 7110 STA READY? 7120 LDA #$00 7130 LDX #$03 7140 UY STA $02C0,X 7150 DEX 7160 BPL UY 7170 LDA #$96 7180 STA $02C4 7190 JSR BORDER 7200 JSR INITPLS 7210 LDA #$00 7220 STA $D1 7230 JSR SCREENCLR 7240 LDA #$FF 7250 STA $D01E 7260 LDA #VRTBLNK&255 7270 STA VVBLKI 7280 LDA #VRTBLNK/256 7290 STA VVBLKI+1 7300 DEC READY? 7310 SYNCH2 LDA MVYET? 7320 BEQ SYNCH2 7330 LDA SOUND 7340 BEQ SOUNDR 7350 LDA #$00 7360 STA $D208 7370 LDA #$03 7380 STA $D20F 7390 SOUNDR LDA $D01F 7400 CMP #$07 7410 BEQ GHJ 7420 JMP STOPPED 7430 GHJ LDA KILL? 7440 BEQ PLRLP 7450 LDA KILL?+1 7460 BEQ PLRLP 7470 JMP SETUP 7480 WAIT LDA $D01F 7490 CMP #$07 7500 BNE WAIT 7510 RTS 7520 PLRLP LDX #$01 7530 PLRLP2 LDA PLRX,X 7540 CMP #$84 7550 BNE MOVPL 7560 LDA CAUGHT,X 7570 BNE MOVPL 7580 LDA #$05 7590 STA SOUND 7600 LDA #$0F 7610 STA SOUNDLP1 7620 LDA #$1E 7630 STA SOUNDLP2 7640 JMP SETUP 7650 MOVPL DEX 7660 BPL PLRLP2 7670 DEC MVYET? 7680 LDX #$01 7690 MOV? LDA KILL?,X 7700 BNE NXTPL 7710 LDA PY?,X 7720 BEQ MOVYET? 7730 JSR ISPYD? 7740 LDA MOVPLR? 7750 BEQ NXTPL 7760 JMP GOMOV 7770 MOVYET? INC P1SPDCNT,X 7780 LDA P1SPDCNT,X 7790 CMP P1SPD,X 7800 BNE NXTPL 7810 GOMOV LDA #$00 7820 STX PLRNUM 7830 STA P1SPDCNT,X 7840 JSR J32 7850 NXTPL DEX 7860 BPL MOV? 7870 MVNEMY? INC ENEMSCNT 7880 LDA ENEMSCNT 7890 CMP ENEMSPD 7900 BEQ GOMOVENEM 7910 JMP SYNCH2 7920 GOMOVENEM LDA #$00 7930 STA ENEMSCNT 7940 LDA MOVCNTR 7950 BEQ PLAMOV 7960 JSR BEGIN 7970 JMP SYNCH2 7980 PLAMOV JSR MVNEM 7990 JMP SYNCH2 8000 ; 8010 BEGIN INC ENEMNUM 8020 LDX ENEMNUM 8030 CPX #$10 8040 BNE J19 8050 LDX #$FF 8060 STX ENEMNUM 8070 RTS 8080 J19 LDA DIR,X 8090 CMP #$06 8100 BEQ BEGIN 8110 LDA ENEMLO,X 8120 STA L1 8130 LDA ENEMHI,X 8140 STA L2 8150 ROL MVCTER,X 8160 ROL MVCTER,X 8170 BCS PICKDIR 8180 JSR MVENEM 8190 EXIT LDA L1 8200 STA ENEMLO,X 8210 LDA L2 8220 STA ENEMHI,X 8230 JMP BEGIN 8240 PICKDIR LDA DIR,X 8250 CMP #$04 8260 BEQ J21 8270 AND #$08 8280 BEQ J20 8290 LDA #$40 8300 STA MVCTER,X 8310 LDY #$00 8320 JSR CLEAR 8330 LDY #$28 8340 JSR CLEAR 8350 LDA #$06 8360 STA DIR,X 8370 JMP BEGIN 8380 J20 DEC L2 8390 LDY #$D8 8400 JSR CHECKVERT 8410 INC L2 8420 LDY #$00 8430 JSR CHECKHORIZ2 8440 LDY #$01 8450 JSR CHECKHORIZ2 8460 LDY #$50 8470 JSR CHECKVERT2 8480 LDA SPACES 8490 CMP #$01 8500 BNE J21 8510 LDA DIR,X 8520 EOR #$02 8530 JMP DIROK2 8540 J21 LDA RND 8550 AND #$03 8560 STA NEWDIR 8570 LDA DIR,X 8580 CMP #$04 8590 BEQ DIRPICKED 8600 LDA NEWDIR 8610 EOR DIR,X 8620 BEQ DIRPICKED 8630 AND #$01 8640 BEQ J21 8650 DIRPICKED LDA NEWDIR 8660 ROR A 8670 BCC LEFTORRIGHT 8680 ROR A 8690 BCC CHECKDOWN 8700 LDY #$D8 8710 DEC L2 8720 JSR CHECKVERT 8730 INC L2 8740 LDA SPACES 8750 BEQ J21 8760 JMP DIROK3 8770 CHECKDOWN LDY #$50 8780 JSR CHECKVERT 8790 LDA SPACES 8800 BEQ J21 8810 JMP DIROK3 8820 LEFTORRIGHT ROR A 8830 BCC CHECKLEFT 8840 LDY #$01 8850 JSR CHECKHORIZ 8860 LDA SPACES 8870 BEQ J21 8880 JMP DIROK3 8890 CHECKLEFT LDY #$00 8900 JSR CHECKHORIZ 8910 LDA SPACES 8920 BEQ J21 8930 DIROK3 LDA NEWDIR 8940 DIROK2 STA DIR,X 8950 DIROK LDA #$01 8960 STA MVCTER,X 8970 JSR MVENEM 8980 JMP EXIT 8990 MVENEM LDA DIR,X 9000 ROR A 9010 BCC J23 9020 ROR A 9030 BCC J22 9040 LDY #$28 9050 JSR CLEAR 9060 DEC L2 9070 LDY #$D8 9080 JSR PLOT1 9090 JMP DONMOV 9100 J22 LDY #$00 9110 JSR CLEAR 9120 LDY #$50 9130 JSR PLOT1 9140 LDY #$28 9150 JMP DONMOV 9160 J23 LDY #$00 9170 JSR CLEAR 9180 LDY #$28 9190 JSR CLEAR 9200 LDA DIR,X 9210 ROR A 9220 ROR A 9230 BCC J27 9240 CLC 9250 ROR ENEMASK,X 9260 ROR ENEMASK,X 9270 BCS J25 9280 J24 LDY #$00 9290 JSR PLOT1 9300 LDY #$28 9310 JSR PLOT1 9320 RTS 9330 J25 LDA ENEMASK,X 9340 BEQ J26 9350 LDY #$00 9360 JSR PLOT1 9370 LDY #$28 9380 JSR PLOT1 9390 LDY #$01 9400 LDA #$80 9410 JSR PLOT2 9420 LDY #$29 9430 LDA #$80 9440 JSR PLOT2 9450 RTS 9460 J26 LDY #$01 9470 JSR DONMOV 9480 LDA #$A0 9490 STA ENEMASK,X 9500 JMP J24 9510 J27 ROL ENEMASK,X 9520 BCS J29 9530 ROL ENEMASK,X 9540 J28 LDY #$00 9550 JSR PLOT1 9560 LDY #$28 9570 JSR PLOT1 9580 RTS 9590 J29 CLC 9600 ROL ENEMASK,X 9610 LDA ENEMASK,X 9620 BEQ J30 9630 JSR J28 9640 DEC L2 9650 LDY #$FF 9660 LDA #$02 9670 JSR PLOT2 9680 INC L2 9690 LDA #$02 9700 LDY #$27 9710 JSR PLOT2 9720 RTS 9730 J30 LDY #$FF 9740 DEC L2 9750 JSR DONMOV 9760 LDA #$0A 9770 STA ENEMASK,X 9780 JMP J28 9790 DONMOV TYA 9800 CLC 9810 ADC L1 9820 BCC J31 9830 INC L2 9840 J31 STA L1 9850 RTS 9860 CLEAR LDA ENEMASK,X 9870 EOR #$FF 9880 AND (L1),Y 9890 STA (L1),Y 9900 RTS 9910 PLOT1 LDA ENEMASK,X 9920 PLOT2 ORA (L1),Y 9930 STA (L1),Y 9940 RTS 9950 ; 9960 INITPLS LDA #$78 9970 STA $D407 9980 CLC 9990 ADC #$02 010000 STA PMHI 010010 LDA #$FF 010020 STA PLRNUM 010030 LDA #$03 010040 STA $D01D 010050 LDX #$03 010060 LDA #$01 010070 CLRLOOP STA $D008,X 010080 DEX 010090 BPL CLRLOOP 010100 LDA #$CA 010110 STA $02C0 010120 LDA #$8A 010130 STA $02C1 010140 MKM RTS 010150 ; 010160 MOVPLS INC PLRNUM 010170 LDA PLRNUM 010180 CMP #$02 010190 BNE J32 010200 LDA #$FF 010210 STA PLRNUM 010220 RTS 010230 J32 LDA PLRNUM 010240 TAX 010260 BEQ J33 010270 LDA #$80 010280 J33 STA PMLO 010300 LDA PLRLO,X 010310 STA PLOC1 010320 LDA PLRHI,X 010330 STA PLOC2 010340 ROL PLMVCTER,X 010350 ROL PLMVCTER,X 010360 BCS PLPICKDIR 010370 JSR MVPLS 010380 PLEXIT LDA MOVCNTR 010390 BNE PLEXT2 010400 JSR CAPTENEMY? 010410 LDX PLRNUM 010420 PLEXT2 RTS 010430 PLPICKDIR LDA #$00 010440 STA FLAG 010450 STA PLDIR,X 010460 LDA STICK0,X 010470 TRANSDIR STA DIR2 010480 CMP #$0B 010490 BEQ CHEKDIR 010500 INC PLDIR,X 010510 CMP #$0D 010520 BEQ CHEKDIR 010530 INC PLDIR,X 010540 CMP #$07 010550 BEQ CHEKDIR 010560 INC PLDIR,X 010570 CMP #$0E 010580 BEQ CHEKDIR 010590 LDA #$00 010600 STA PLDIR,X 010610 LDA DIR2 010620 ORA DIR3,X 010630 CMP #$0F 010640 BEQ GOEXIT2 010650 INC FLAG 010660 LDA DIR2 010670 EOR #$0F 010680 EOR DIR3,X 010690 JMP TRANSDIR 010700 GOEXIT LDA FLAG 010710 BEQ NOMOV 010720 LDA #$00 010730 STA PLDIR,X 010740 DEC FLAG 010750 LDA DIR3,X 010760 JMP TRANSDIR 010770 NOMOV LDA SOUND 010780 BNE GOEXIT2 010790 LDA #$01 010800 STA SOUND 010810 GOEXIT2 LDA #$40 010820 STA PLMVCTER,X 010830 JMP PLEXIT 010840 CHEKDIR LDA #$00 010850 STA $4D 010860 LDA PLDIR,X 010870 ROR A 010880 BCC PLLEFTORRIGHT 010890 ROR A 010900 BCC PLCHECKDOWN 010910 PLCHECKUP LDY #$D8 010920 DEC PLOC2 010930 JSR CHECKVERT 010940 INC PLOC2 010950 LDA SPACES 010960 BEQ GOEXIT 010970 DEC PLRHI,X 010980 LDY #$60 010990 JSR ADJUSTL 011000 JMP PLDIROK 011010 PLCHECKDOWN LDY #$50 011020 JSR CHECKVERT 011030 LDA SPACES 011040 BEQ GOEXIT 011050 LDY #$A0 011060 JSR ADJUSTL 011070 JMP PLDIROK 011080 PLLEFTORRIGHT ROR A 011090 BCC PLCHECKLEFT 011100 PLCHECKRIGHT LDY #$01 011110 JSR CHECKHORIZ 011120 LDA SPACES 011130 BEQ GOEXIT 011140 JSR ADJUSTL 011150 JMP PLDIROK 011160 PLCHECKLEFT LDY #$00 011170 JSR CHECKHORIZ 011180 LDA SPACES 011190 BEQ GOEXIT 011200 DEC PLRHI,X 011210 LDY #$FF 011220 JSR ADJUSTL 011230 PLDIROK LDA DIR2 011240 STA DIR3,X 011250 LDA #$01 011260 STA PLMVCTER,X 011270 JSR MVPLS 011280 JMP PLEXIT 011290 MVPLS LDY PLRY,X 011300 LDA #$01 011310 JSR EMIDDLE 011320 LDA PLDIR,X 011330 ROR A 011340 BCC RIGHTORLEFT 011350 ROR A 011360 BCC DOWN 011370 UP DEC PLRY,X 011380 JMP YCHANGE 011390 DOWN INC PLRY,X 011400 YCHANGE LDY PLRY,X 011410 JMP NEWDRAW 011420 RIGHTORLEFT ROR A 011430 BCC LEFT 011440 RIGHT INC PLRX,X 011450 JMP CHANGEX 011460 LEFT DEC PLRX,X 011470 CHANGEX LDA PLRX,X 011480 STA HPOS,X 011490 RTS 011500 ADJUSTL TYA 011510 CLC 011520 ADC PLRLO,X 011530 BCC J36 011540 INC PLRHI,X 011550 J36 STA PLRLO,X 011560 RTS 011570 ; 011580 TRANSFER LDA HALF 011590 EOR #$02 011600 STA HALF 011610 INC PMHI 011620 TAX 011630 LDA #$00 011640 STA PMLO 011650 LOOOOOP4 JSR SWITCH 011660 INX 011670 LDA #$80 011680 STA PMLO 011690 JSR SWITCH 011700 DEC PMHI 011710 RTS 011720 SWITCH TXA 011730 EOR #$02 011740 TAX 011750 LDA ENY,X 011760 TAY 011770 LDA #$00 011780 STA (PMLO),Y 011790 JSR EMIDDLE 011800 STA (PMLO),Y 011810 INY 011820 STA (PMLO),Y 011830 TXA 011840 EOR #$02 011850 TAX 011860 AND #$01 011870 TAY 011880 LDA ENX,X 011890 STA EHPOS,Y 011900 TXA 011910 EOR MASK 011920 TAX 011930 LDA CLR,X 011940 STA EPCLR,Y 011950 TXA 011960 EOR MASK 011970 TAX 011980 LDA ENY,X 011990 TAY 012000 JSR NEWDRAW 012010 RTS 012020 NEWDRAW LDA #$00 012030 STA (PMLO),Y 012040 LDA #$01 012050 JSR EMIDDLE 012060 LDA #$00 012070 STA (PMLO),Y 012080 RTS 012090 EMIDDLE INY 012100 STA (PMLO),Y 012110 INY 012120 STA (PMLO),Y 012130 INY 012140 RTS 012150 ; 012160 MVNEM INC ENNUM 012170 LDA ENNUM 012180 CMP #$04 012190 BNE NOT1 012200 LDA #$FF 012210 STA ENNUM 012220 JMP CAPTENEMY? 012240 NOT1 TAX 012250 LDA ENLO,X 012260 STA L1 012270 LDA ENHI,X 012280 STA L2 012290 ROL EMVCTER,X 012300 ROL EMVCTER,X 012310 BCS EPICKDIR 012320 JSR MVFOUR 012330 JMP MVNEM 012340 EPICKDIR DEC L2 012350 LDY #$D8 012360 JSR CHECKVERT 012370 INC L2 012380 LDY #$00 012390 JSR CHECKHORIZ2 012400 LDY #$01 012410 JSR CHECKHORIZ2 012420 LDY #$50 012430 JSR CHECKVERT2 012440 LDA SPACES 012450 CMP #$01 012460 BNE J37 012470 LDA EDIR,X 012480 EOR #$02 012490 STA VALUE 012500 JMP J38 012510 J37 LDA RND 012520 AND #$03 012530 STA VALUE 012540 EOR EDIR,X 012550 BEQ J38 012560 AND #$01 012570 BEQ J37 012580 J38 LDA VALUE 012590 ROR A 012600 BCC ELEFTORRIGHT 012610 ROR A 012620 BCC ECHECKDOWN 012630 LDY #$D8 012640 DEC L2 012650 JSR CHECKVERT 012660 INC L2 012670 LDA SPACES 012680 BEQ J37 012690 LDY #$60 012700 DEC ENHI,X 012710 JSR EADJUSTL 012720 JMP DIRPICKED2 012730 ECHECKDOWN LDY #$50 012740 JSR CHECKVERT 012750 LDA SPACES 012760 BEQ J37 012770 LDY #$A0 012780 JSR EADJUSTL 012790 JMP DIRPICKED2 012800 ELEFTORRIGHT ROR A 012810 BCC ECHECKLEFT 012820 LDY #$01 012830 JSR CHECKHORIZ 012840 LDA SPACES 012850 BEQ J37 012860 LDY #$01 012870 JSR EADJUSTL 012880 JMP DIRPICKED2 012890 ECHECKLEFT LDY #$00 012900 JSR CHECKHORIZ 012910 LDA SPACES 012920 BEQ J37 012930 LDY #$FF 012940 DEC ENHI,X 012950 JSR EADJUSTL 012960 DIRPICKED2 LDA VALUE 012970 DIRPICKED3 STA EDIR,X 012980 DIRPICKD LDA #$01 012990 STA EMVCTER,X 013000 JSR MVFOUR 013010 JMP MVNEM 013020 CHECKVERT LDA #$00 013030 STA SPACES 013040 CHECKVERT2 LDA (L1),Y 013050 AND #$05 013060 BNE JUUMP03 013070 INC SPACES 013080 JUUMP03 RTS 013090 CHECKHORIZ LDA #$00 013100 STA SPACES 013110 CHECKHORIZ2 LDA (L1),Y 013120 AND #$50 013130 BNE JUUMP04 013140 INC SPACES 013150 JUUMP04 RTS 013160 MVFOUR LDA EDIR,X 013170 ROR A 013180 BCC ERIGHTORLEFT 013190 ROR A 013200 BCC EDOWN 013210 EUP DEC ENY,X 013220 RTS 013230 EDOWN INC ENY,X 013240 RTS 013250 ERIGHTORLEFT ROR A 013260 BCC ELEFT 013270 ERIGHT INC ENX,X 013280 RTS 013290 ELEFT DEC ENX,X 013300 RTS 013310 EADJUSTL TYA 013320 CLC 013330 ADC ENLO,X 013340 BCC J39 013350 INC ENHI,X 013360 J39 STA ENLO,X 013370 RTS 013380 ; 013390 SETUPGAME LDA #$00 013400 STA $4D 013410 STA FP? 013420 STA MASK 013430 JSR DOBOXES 013440 LDA MOVCNTR 013450 BNE J40 013460 LDA #$04 013470 STA CAUGHT 013480 STA CAUGHT+1 013500 LDA #$C0 013510 STA $D40E 013520 LDA #DLI&255 013530 STA $0200 013540 LDA #DLI/256 013550 STA $0200+1 013560 JMP DONSETUP 013570 J40 LDA #$40 013580 STA $D40E 013590 LDA #$00 013600 STA CAUGHT 013610 STA CAUGHT+1 013620 LDA ENCNT1 013630 BEQ NO10 013640 LDA #$0A 013650 NO10 ADC ENCNT2 013660 TAX 013670 DEX 013680 LDA #$04 013690 STORDIR DEX 013700 BMI DONSETUP 013710 STA DIR,X 013720 JMP STORDIR 013730 DONSETUP LDA #$01 013740 STA MVYET? 013750 LDX #$05 013760 LDA #$00 013770 J41 STA TM,X 013780 DEX 013790 BPL J41 013800 LDA #$FF 013810 STA $02FC 013820 JMP $E45F 013830 ; 013840 VRTBLNK LDA $02FC 013850 CMP #$FF 013860 BEQ J42 013870 LDA #START&255 013880 STA $E475 013890 LDA #START/256 013900 STA $E476 013910 JMP VCTRSET 013920 J42 LDA #$01 013930 STA MVYET? 013940 LDA MOVCNTR+1 013950 BEQ J44 013960 LDA FLASH 013970 BEQ J43 013980 DEC FLASH 013990 JMP J44 014000 J43 LDA #$00 014010 STA $02C4 014020 LDA MOVCNTR+1 014030 CMP #$01 014040 BEQ J44 014050 LDA RND 014060 AND #$7F 014070 BNE J44 014080 LDA #$0A 014090 STA FLASH 014100 LDA #$96 014110 STA $02C4 014120 J44 LDA MOVCNTR 014130 BNE CHECKPLFLD 014140 JSR TRANSFER 014150 JMP ENDVRT 014160 CHECKPLFLD LDX #$00 014170 J45 LDA $D004,X 014180 BEQ NXTPLR 014190 LDA MOVCNTR 014200 CMP #$01 014210 BEQ PY 014220 LDA KILL?,X 014230 BNE NXTPLRGGO 014240 LDA #$FF 014250 STA KILL?,X 014260 LDA #$02 014270 STA SOUND 014280 LDA #$80 014290 STA SOUNDLP2 014300 LDA #$0F 014310 STA SOUNDLP1 014320 NXTPLRGGO JMP NXTPLR 014330 PY LDA PY?,X 014340 CMP #$FF 014350 BEQ NXTPLR 014360 LDA #$0F 014370 STA SOUNDLP1 014380 LDA #$E0 014390 STA SOUNDLP2 014400 LDA #$04 014410 STA SOUND 014420 LDA #$FF 014430 STA PY?,X 014440 NXTPLR INX 014450 CPX #$02 014460 BNE J45 014470 ENDVRT LDA #$FF 014480 STA $D01E 014490 JSR TIMERCLR 014500 JMP $E45F 014510 ; 014520 ISPYD? LDA #$00 014530 STA MOVPLR? 014540 INC PARALYZCNT,X 014550 LDA PARALYZCNT,X 014560 CMP PY?,X 014570 BNE BYE 014580 LSR PY?,X 014590 LDA #$00 014600 STA PARALYZCNT,X 014610 LDA PY?,X 014620 CMP #$01 014630 BNE J46 014640 DEC PY?,X 014650 J46 INC MOVPLR? 014660 BYE RTS 014670 ; 014680 DOBOXES LDA #$1E 014690 STA L1 014700 LDA #$43 014710 STA L2 014720 LDX #$04 014730 J47 JSR DOBOX 014740 DEX 014750 BNE J47 014760 INX 014770 J48 JSR ADD240TOL 014780 INX 014790 CPX #$04 014800 BNE J48 014810 J49 JSR DOBOX 014820 DEX 014830 BNE J49 014840 LDX #$07 014850 J50 LDA CLRLIST2,X 014860 STA CLRLIST,X 014870 DEX 014880 BPL J50 014890 RTS 014900 DOBOX LDY #$00 014910 LDA MOVCNTR 014920 BNE PLOTBOX 014930 LDA #$A8 014940 PLOTBOX AND #$A8 014950 STA (L1),Y 014960 LDY #$28 014970 STA (L1),Y 014980 LDY #$50 014990 STA (L1),Y 015000 ADD240TOL CLC 015010 LDA #$F0 015020 ADC L1 015030 BCC J51 015040 INC L2 015050 J51 STA L1 015060 RTS 015070 ; 015080 DLI PHA 015090 TYA 015100 PHA 015110 LDY COLRCT 015120 LDA CLRLIST,Y 015130 STA $D40A 015140 STA $D017 015150 INY 015160 CPY #$08 015170 BNE J52 015180 LDY #$00 015190 J52 STY COLRCT 015200 PLA 015210 TAY 015220 PLA 015230 RTI 015240 ; 015250 SETUPPLS LDX #$30 015260 J53 LDA DATALIST,X 015270 STA $0660,X 015280 DEX 015290 BPL J53 015300 RTS 015310 ; 015320 SCREENLIST LDY #$00 015330 J54 LDA DLISTDATA,Y 015340 STA $8000,Y 015350 INY 015360 CPY #$0D 015370 BNE J54 015380 TYA 015390 J55 STA $8000,Y 015400 INY 015410 CPY #$6A 015420 BNE J55 015430 LDA #$41 015440 STA $8000,Y 015450 INY 015460 LDA #$00 015470 STA $8000,Y 015480 INY 015490 LDA #$3F 015500 STA $8000,Y 015510 LDY #$15 015520 LDX #$04 015530 J56 LDA #$8D 015540 STA $8000,Y 015550 STA $8029,Y 015560 TYA 015570 CLC 015580 ADC #$06 015590 TAY 015600 DEX 015610 BNE J56 015620 RTS 015630 ; 015640 ENSETUP LDX #$0F 015650 J57 LDA #$68 015660 STA $0600,X 015670 LDA #$4F 015680 STA $0610,X 015690 LDA #$0A 015700 STA $0620,X 015710 LDA #$06 015720 STA $0630,X 015730 LDA #$40 015740 STA $0640,X 015750 LDA #$00 015760 STA $0650,X 015770 DEX 015780 BPL J57 015790 RTS 015800 ; 015810 SCREENCLR LDY #$00 015820 LDA #$00 015830 J58 STA $7800,Y 015840 STA $7900,Y 015850 STA $7A00,Y 015860 STA $7B00,Y 015870 INY 015880 BNE J58 015890 LDA #$01 015900 STA $7A14 015910 STA $7A15 015920 STA $7A94 015930 STA $7A95 015940 LDA #$28 015950 STA $D000 015960 STA $D001 015970 RTS 015980 ; 015990 TIMERCLR LDX #$04 016000 J59 INC TM,X 016010 LDA TM,X 016020 CMP #$0A 016030 BNE J60 016040 LDA #$00 016050 STA TM,X 016060 DEX 016070 CPX #$00 016080 BNE J59 016090 J60 LDX #$03 016100 J61 LDA TM,X 016110 CLC 016120 ROL A 016130 ROL A 016140 ADC #$6D 016150 TAY 016160 J62 LDA BYTES,Y 016170 STA TMSCREEN,X 016180 JSR TIADD40TOX 016190 INY 016200 TXA 016210 SEC 016220 SBC #$9F 016230 BCC J62 016240 TXA 016250 AND #$03 016260 TAX 016270 DEX 016280 CPX #$00 016290 BNE J61 016300 LDX #$03 016310 J63 LDA TM,X 016320 CMP #$09 016330 BNE BYETM 016340 DEX 016350 BNE J63 016360 LDA LMT 016370 CMP #$61 016380 BNE BYETM 016390 LDA #$01 016400 STA KILL? 016410 STA KILL?+1 016420 LDA #$06 016430 STA SOUND 016440 LDA #$00 016450 STA SOUNDLP2 016460 LDA #$28 016470 STA SOUNDLP1 016480 BYETM JMP DOSOUND 016500 TIADD40TOX TXA 016510 ADC #$28 016520 TAX 016530 RTS 016540 ; 016550 CAPTENEMY? LDX #$01 016560 J65 LDY #$03 016570 J66 LDA PLRX,X 016580 EOR ENX,Y 016590 AND #$FE 016600 BNE EXITLOOP 016610 LDA PLRY,X 016620 EOR ENY,Y 016630 AND #$FE 016640 BNE EXITLOOP 016650 STY TMP1 016660 TYA 016670 CPX #$00 016680 BEQ J67 016690 CLC 016700 ADC #$04 016710 J67 TAY 016720 LDA CLRLIST,Y 016730 BEQ BLANK 016740 LDA #$00 016750 STA CLRLIST,Y 016760 DEC CAUGHT,X 016770 LDA #$0F 016780 STA SOUNDLP1 016790 LDA #$00 016800 STA SOUNDLP2 016810 LDA #$03 016820 STA SOUND 016830 BLANK LDY TMP1 016840 EXITLOOP DEY 016850 BPL J66 016860 DEX 016870 BEQ J65 016880 RTS 016890 ; 016900 DOSOUND LDA SOUND 016910 BEQ BYESOUND 016920 CMP #$02 016930 BEQ SOUND2 016940 CMP #$03 016950 BEQ SOUND3 016960 CMP #$04 016970 BEQ SOUND4 016980 CMP #$05 016990 BNE K8 017000 JMP SOUND5 017010 K8 CMP #$06 017020 BNE K9 017030 JMP SOUND6 017040 K9 LDX LOUD 017050 DEX 017060 STX LOUD 017070 LDA #$F0 017080 STA $D200 017090 TXA 017100 CLC 017110 ADC #$A0 017120 STA $D201 017130 CPX #$00 017140 BNE BYESOUND 017150 STX SOUND 017160 LDA #$10 017170 STA LOUD 017180 BYESOUND RTS 017190 SOUND2 LDA #$20 017200 JSR J71 017210 LDA SOUNDLP2 017220 SBC #$08 017230 BCS CONTSND2 017240 LDX SOUNDLP1 017250 DEX 017260 BMI BYESOUND2 017270 STX SOUNDLP1 017280 LDA #$80 017290 CONTSND2 STA SOUNDLP2 017300 RTS 017310 BYESOUND2 LDA #$00 017320 STA SOUND 017330 RTS 017340 SOUND3 LDA #$A0 017350 JSR J71 017360 LDA SOUNDLP2 017370 CLC 017380 ADC #$20 017390 BCC CONTSND2 017400 LDX SOUNDLP1 017410 DEX 017420 DEX 017430 BMI ENDSOUND 017440 STX SOUNDLP1 017450 LDA #$00 017460 STA SOUNDLP2 017470 RTS 017480 ENDSOUND LDA #$A0 017490 STA $D201 017500 JMP BYESOUND2 017510 SOUND4 LDA #$40 017520 JSR J71 017530 LDA SOUNDLP2 017540 SEC 017550 SBC #$20 017560 BCS CONTSND2 017570 LDX SOUNDLP1 017580 DEX 017590 BMI BYESOUND2 017600 STX SOUNDLP1 017610 LDA #$E0 017620 STA SOUNDLP2 017630 RTS 017640 SOUND5 LDA #$A0 017650 JSR J71 017660 LDA SOUNDLP2 017670 CLC 017680 ADC #$20 017690 BCC J68 017700 LDX SOUNDLP1 017710 DEX 017720 BMI BYESOUND2 017730 STX SOUNDLP1 017740 TXA 017750 ASL A 017760 J68 STA SOUNDLP2 017770 RTS 017780 SOUND6 LDA #$6E 017790 STA $D201 017800 LDA SOUNDLP1 017810 STA $D200 017820 LDX SOUNDLP2 017830 INX 017840 CPX #$3C 017850 BNE J70 017860 LDA SOUNDLP1 017870 CMP #$3C 017880 BNE J69 017890 LDA #$A0 017900 STA $D201 017910 JMP BYESOUND2 017920 J69 LDA #$3C 017930 STA SOUNDLP1 017940 LDX #$00 017950 J70 STX SOUNDLP2 017960 RTS 017970 J71 CLC 017980 ADC SOUNDLP1 017990 STA $D201 018000 LDA SOUNDLP2 018010 STA $D200 018020 RTS 018030 ; 018040 VCTRSET LDA #PAUSVCTR&255 018050 STA VVBLKI 018060 LDA #PAUSVCTR/256 018070 STA VVBLKI+1 018080 LDA #$FF 018090 STA $02FC 018100 LDA #$A0 018110 STA $D201 018120 PAUSVCTR LDA #$00 018130 STA $02C4 018140 LDA MOVCNTR 018150 BNE WY 018160 JSR TRANSFER 018170 WY LDA $02FC 018180 CMP #$FF 018190 BEQ GD 018200 LDA #$FF 018210 STA $02FC 018220 LDA #VRTBLNK&255 018230 STA VVBLKI 018240 LDA #VRTBLNK/256 018250 STA VVBLKI+1 018260 LDA #$FF 018270 STA $D01E 018280 LDA MOVCNTR+1 018290 BNE GD 018300 LDA #$96 018310 STA $02C4 018320 GD JMP $E45F 018330 ; 018340 TRU LDA FP? 018350 BEQ TRU2 018360 JSR TRANSFER 018370 TRU2 JMP $E462 018380 ; 018390 VRTWAIT LDA MOVCNTR 018400 BNE VRTWAIT3 018410 JSR TRANSFER 018420 VRTWAIT3 JSR DOSOUND 018430 JMP $E45F 018440 ; 018450 LIST .BYTE 211,65,44,45,46,47,48,37,26,26,26 018460 .BYTE 200,4,1,19,22,23,20,6,26,26 018470 .BYTE 200,19,1,20,1,12,24,25,6,26 018480 .BYTE 200,11,51,52,53,26,26,26,26,26 018490 .BYTE 24,38,39,40,41,42,43,22,24,37 018500 .BYTE 200,4,12,6,1,20,26,26,26,26 018510 .BYTE 200,2,3,1,4,11,18,23,22,26 018520 .BYTE 200,7,12,1,21,8,6,21,26,26 018530 .BYTE 24,6,13,14,15,16,17,37,27,28 018540 .BYTE 24,21,19,6,6,5,37,26,26,26 018550 .BYTE 200,6,13,14,15,16,17,37,28,26 018560 .BYTE 200,19,12,1,24,6,20,28,37,28 018570 .BYTE 200,19,12,1,24,6,20,29,37,28 018580 .BYTE 24,12,9,10,49,50,37,24,26,26 018590 .BYTE 24,22,9,10,6,20,37,27,27,27 018600 ; 018610 BYTES .BYTE 0,48,204,252,204,48,204,252,204 018620 .BYTE 240,207,243,252,48,48,48,60 018630 .BYTE 252,192,192,252,240,204,204,240 018640 .BYTE 252,240,192,252,252,240,192,192 018650 .BYTE 204,252,204,204,207,207,204,204 018660 .BYTE 60,252,204,12,204,240,240,204 018670 .BYTE 192,192,192,252,243,243,207,207 018680 .BYTE 63,60,48,63,60,63,51,48 018690 .BYTE 243,243,48,48,48,240,192,192 018700 .BYTE 252,204,204,252,252,204,252,192 018710 .BYTE 252,204,240,204,252,240,12,252 018720 .BYTE 252,48,48,48,204,204,204,252 018730 .BYTE 204,252,48,48,252,60,192,252 018740 .BYTE 0,0,0,0,252,204,204,252 018750 .BYTE 48,240,48,252,252,60,192,252 018760 .BYTE 252,60,12,252,192,204,252,12 018770 .BYTE 252,240,12,252,252,192,252,252 018780 .BYTE 252,12,48,192 018790 .BYTE 252,204,252,252,252,204,252,12 018800 .BYTE 0,48,0,48,204,204,252,48 018810 .BYTE 207,207,192,207,204,12,204,204 018820 .BYTE 240,207,243,252,51,51,51,51 018830 .BYTE 12,12,12,204,255,192,207,255 018840 .BYTE 12,51,63,51,60,63,51,48 018850 .BYTE 243,243,51,51,240,192,0,240 018860 .BYTE 207,195,195,195,192,0,0,0 018870 .BYTE 204,204,204,207,12,12,12,207,0,0,0,192 018880 ; 018890 MESSAGE .BYTE 255,255,255,60,60,15,240,63,252,63,252,63,240,60,60,60,60,60,60,63,252,63,240,0,48,0,0,243,195 018900 .BYTE 15,207,192,252,252,195,51,204,255,255,255 018910 .BYTE 0,0,0,63,252,60,60,0,252,63,240,60,60,60,60,63,60,63,60,63,240,60,60,0,60,204,0,204,204,195 018920 .BYTE 3,0,240,204,195,51,204,0,0,0 018930 .BYTE 0,0,0,51,204,63,252,63,0,60,0,63,192,60,60,60,252,60,252,60,0,63,192,0,60,48,0,204,207,195,3,0,192 018940 .BYTE 240,195,51,60,0,0,0 018950 .BYTE 0,0,0,48,12,60,60,63,252,63,252,60,60,63,252,60,60,60,60,63,252,60,60,0,0,240,0,192,204,195,3,0,192 018960 .BYTE 204,60,51,60,0,0,0 018970 ; 018980 CLRLIST2 .BYTE $68,$46,$16,$76,$68,$46,$16,$76 018990 DATALIST .BYTE 145,145,65,65,19,19,40,40,0,0,64,64,0,0,0,0 019000 .BYTE 167,124,81,103,65,72,79,79,19,63,107,107,128,84,40,128 019010 .BYTE 0,0,0,0,64,64,64,64,0,0,106,72,24,120 019020 DLISTDATA .BYTE 112,112,112,78,0,64,14,14,14,0,77,64,65 019030 LTS .BYTE 0,0,220,65,76,69,188,72,156,74,100,75,44,76,68,77,0,0,163,107,51,19,219,163,66,67,68,70,70,71 019040 LTS2 .BYTE 0,1,1,1,1 019050 BLIPS .BYTE 163,18,218,66,70,65,$3C,$3C,$FF 019060 *= $02E0 019070 .WORD RESET