10 * A,10000 11 monitor 10000 "*M 10010 " ORG $1000 10020 " JSR DEMO 10021 " LDA #0 10022 " STA LOGSWI 10030 "JMP SETUP 10040 "TERMNL=$3A20 10050 "TELEPT=$3DD8 10060 "INTYPE=6 10070 "TELVEC=20 10080 "CDATA =$3C00 10090 "SCNKEY=$FF9F 10100 "UDTIM =$FFEA 10110 "STOP =$FFEA 10120 "RAMON =$FF3F 10130 "ROMON =$FF3E 10140 "RAS =$FF0B 10150 "RASN =$CD 10160 "RASI =$FF09 10170 "SCREEN=$C00 10180 "COLOUR=$800 10190 "BORCOL=$37 10200 "MULTIK=3 10210 "JOYSWI=4 10211 "LOGSWI=5 10220 "TED =$FF00 10230 "RATE=80 10240 "COL11=$47 10250 "FIROBL=3113 10260 "TUNE: BYT $F4,$EE,$F3,$EE,$F2,$EE 10270 "PRPSS:BYT 'PRESS FIRE TO START',0 10280 "HELLO:BYT 'TELEPORTING TO YOUR DOOM!',0 10290 "WHEEE:BYT 'WHEEE!',0 10300 "DEATH:BYT 'UNLUCKY!',0 10310 "PORTT:BYT 'TELEPORTING',0 10320 "PRECNT:RES1 10330 "PRESCL=15 10340 "SPRFRM: RES [[[6 10350 "SPRBGD: RES 30 10360 "SPIX: RES 5 10370 "SPR1 =$62 10380 "SPRUDG=CDATA+[[[SPR1 10390 "POS =$D0 10400 "SPRPOS=$D2 10410 "SPRITE: BYT 0 10420 "FLASH =$DC 10430 "SPRDAT=$3A80 10440 "SPRRIG=$3B00 10450 "SPRLEF=$3B80 10460 "UDG =$57 10470 "VEC =POS 10480 "VEC1 =UDG 10490 "CURSCN=$E0 10500 "CURSNN=$96 10510 "MESS1 =$E2 10520 "MESS2 =$E4 10530 "MESS3 =$E6 10540 "MSINDX=$89 10550 "MSIDLE=$8A 10560 "MSGO =$E8 10570 "CNT: BYT 0 10580 "CNT1: BYT 0 10590 "CNT2: BYT 0 10600 "CNT3: BYT 0 10610 "CNT4: BYT 0 10620 "TEMP: BYT 0 10630 "FUNC: BYT $FF 10640 "PFUNC: BYT 1 10650 " BYT 1,0,1,0 10660 "PINCNT: BYT 0,0,0,0 10670 "PINSPD: BYT 0,1,0,1,0,1,0,1,0,1,0,1 10680 "IFLAG: BYT $FF 10690 "PIXEL: BYT 0 10700 "BGDIND: BYT 0 10710 "ITEMP: RES 1 10720 "CHAR: RES 1 10730 "MAPDAT: BYT 0,40,1,41,2,42 10740 "NOISE: RES 3 10750 "NSFL:RES1 10760 "SCRPLT:RES1 10770 "COAST:RES1 10780 "HOLDIT:RES1 10790 " 10800 "CALCAD: LDX #0 10810 " STX UDG+1 10820 " ASL A 10830 " ROL UDG+1 10840 " ASL A 10850 " ROL UDG+1 10860 " ASL A 10870 " ROL UDG+1 10880 " STA UDG 10890 " CLC 10900 " LDA UDG+1 10910 " ADC #>CDATA 10920 " STA UDG+1 10930 " RTS 10940 " 10950 "SPRPNT: STX SPRITE 10960 " STA FUNC 10970 " LDA SPIX,X 10980 " STA PIXEL 10990 " TXA 11000 " ASL A 11010 " TAX 11020 " STA BGDIND 11030 " ASL A 11040 " ADC BGDIND 11050 " STA BGDIND 11060 " LDA SPRPOS,X 11070 " STA POS 11080 " LDA SPRPOS+1,X 11090 " STA POS+1 11100 " LDA SPRITE 11110 " ASL A 11120 " TAX 11130 " LDA MERTAB,X 11140 " STA MER3+1 11150 " LDA MERTAB+1,X 11160 " STA MER3+2 11170 " RTS 11180 "MERTAB: WOR SPRUDG,SPRUDG+48 11190 " WOR SPRUDG+96,SPRUDG+144 11200 " WOR SPRUDG+192 11210 "SPRPN2: LDA SPRITE 11220 " ASL A 11230 " TAX 11240 " LDA POS 11250 " STA SPRPOS,X 11260 " LDA POS+1 11270 " STA SPRPOS+1,X 11280 " RTS 11290 " 11300 "PUTSPR: INC IFLAG 11310 " LDX #RASN 11320 " STX RAS 11330 "PUTS0: LDA IFLAG 11340 " BPL PUTS0 11350 " RTS 11360 " 11370 "PUTIRQ: LDY BGDIND 11380 " STY ITEMP 11390 " LDX #0 11400 "PUT0: LDY ITEMP 11410 " LDA SPRBGD,Y 11420 " INY 11430 " STY ITEMP 11440 " PHA 11450 " LDA MAPDAT,X 11460 " TAY 11470 " PLA 11480 " STA (POS),Y 11490 " INX 11500 " CPX #6 11510 " BCC PUT0 11520 " 11530 " LDA FUNC 11540 " BEQ PUT2 ; LEFT 11550 " BPL RIGHT 11560 " CMP #$FF 11570 " BEQ PUT22; DOWN 11580 " JSR SUB40 11590 " JMP PUT4 11600 "RIGHT: INC POS 11610 " BNE PUT4 11620 " INC POS+1 11630 " JMP PUT4 11640 "PUT2: 11650 " LDA POS 11660 " BNE PUT3 11670 " DEC POS+1 11680 "PUT3: DEC POS 11690 " JMP PUT4 11700 "PUT22: JSR ADD40 11710 "PUT4: 11720 " CLC 11730 " LDA BGDIND 11740 " TAY 11750 " ADC #SPR1 11760 " STA CHAR 11770 " LDX #0 11780 "PUT5: STY ITEMP 11790 " LDA MAPDAT,X 11800 " TAY 11810 " LDA (POS),Y 11820 " PHA 11830 " LDA CHAR 11840 " STA (POS),Y 11850 " PLA 11860 " LDY ITEMP 11870 " STA SPRBGD,Y 11880 " INC CHAR 11890 " INY 11900 " INX 11910 " CPX #6 11920 " BCC PUT5 11930 " 11940 "FRAMIT: LDA #0 11950 " CLC 11960 " LDX COAST 11970 " BNE STTTIC 11980 " LDA PIXEL 11990 " ASL A 12000 " ASL A 12010 " ASL A 12020 " ASL A 12030 " ASL A 12040 "STTTIC:LDX SPRITE 12050 " BEQ FRM00 12060 " ADC #SPRDAT 12090 " JMP FRM99 12100 "FRM00: LDX FUNC 12110 " BEQ FRM01 12120 " BPL FRM02 12130 " LDX PFUNC 12140 " BEQ FRM03 12150 " BNE FRM04 12160 "FRM01: STX PFUNC 12170 "FRM03: ADC #SPRLEF 12200 " JMP FRM99 12210 "FRM02: STX PFUNC 12220 "FRM04: ADC #SPRRIG 12250 "FRM99: ADC #0 12260 " STA FRM3+2 12270 " STA FRM2+2 12280 " PLA 12290 " STA FRM3+1 12300 " CLC 12310 " ADC #16 12320 " STA FRM2+1 12330 " BCC FRM0 12340 " INC FRM2+2 12350 "FRM0: LDX #15 12360 "FRM1: LDA #0 12370 " STA SPRFRM+32,X 12380 "FRM2: LDA $FFFF,X 12390 " STA SPRFRM+16,X 12400 "FRM3: LDA $FFFF,X 12410 " STA SPRFRM+00,X 12420 " LDY PIXEL 12430 " BEQ FRM5 12440 "FRM4: LSR SPRFRM,X 12450 " ROR SPRFRM+16,X 12460 " ROR SPRFRM+32,X 12470 " LSR SPRFRM,X 12480 " ROR SPRFRM+16,X 12490 " ROR SPRFRM+32,X 12500 " DEY 12510 " BNE FRM4 12520 "FRM5: DEX 12530 " BPL FRM1 12540 " 12550 "MERGE: LDX #0 12560 " STX CNT 12570 "MER1: STX TEMP 12580 " LDX BGDIND 12590 " LDA SPRBGD,X 12600 " JSR CALCAD 12610 " LDX TEMP 12620 " LDY #0 12630 " SEI 12640 " STA RAMON 12650 "MER2: LDA (UDG),Y 12660 " ORA SPRFRM,X 12670 "MER3: STA $FFFF,X 12680 " INX 12690 " INY 12700 " CPY #8 12710 " BCC MER2 12720 " STA ROMON 12730 " CLI 12740 " INC BGDIND 12750 " INC CNT 12760 " LDA CNT 12770 " CMP #6 12780 " BCC MER1 12790 " RTS 12800 " 12810 "IRQ: LDA RASI 12820 " STA RASI 12830 " LDA IFLAG 12840 " BMI IRQ1 12850 " JSR PUTIRQ 12860 " LDA #$FF 12870 " STA IFLAG 12880 "IRQ1: JSR SCNKEY 12890 " JSR ROTPL 12900 " INC MSGO 12910 " LDA MSGO 12920 " CMP #3 12930 " BCC NOTYDD 12940 " LDA #0 12950 " STA MSGO 12960 " JSR MESSGI 12970 "NOTYDD: LDA NSFL 12980 " BNE NONSS 12990 " JSR NOSY 13000 "NONSS: JMP $FCC3 13010 " 13020 "LEFTSP: LDA SPIX,X 13030 " BEQ LEFT1 13040 " DEC SPIX,X 13050 " LDA #0 13060 " JSR SPRPNT 13070 " JMP FRAMIT 13080 "LEFT1: LDA #3 13090 " STA SPIX,X 13100 " LDA #0 13110 " JSR SPRPNT 13120 " JSR PUTSPR 13130 " JMP SPRPN2 13140 " 13150 "RIGTSP: LDA SPIX,X 13160 " CMP #3 13170 " BEQ RIGT1 13180 " INC SPIX,X 13190 " LDA #1 13200 "UPDATE: JSR SPRPNT 13210 " JMP FRAMIT 13220 "RIGT1: LDA #0 13230 " STA SPIX,X 13240 " LDA #1 13250 " JSR SPRPNT 13260 " JSR PUTSPR 13270 " JMP SPRPN2 13280 " 13290 "UPSP: LDA #$FE 13300 " BYT $2C 13310 "DOWNSP: LDA #$FF 13320 " JSR SPRPNT 13330 " JSR PUTSPR 13340 " JMP SPRPN2 13350 " 13360 "CHAR1 =CDATA+3 13370 "ANIMAT: LDA CHAR1 13380 " EOR #24 13390 " STA CHAR1 13400 " STA CHAR1+1 13410 " RTS 13420 " 13430 "STORE: STA (VEC),Y 13440 " LDA VEC 13450 " PHA 13460 " SEC 13470 " SBC #SCREEN-COLOUR 13520 " STA VEC+1 13530 " TXA 13540 " STA (VEC),Y 13550 " PLA 13560 " STA VEC+1 13570 " PLA 13580 " STA VEC 13590 " RTS 13600 " 13610 "ADD40: LDA VEC 13620 " CLC 13630 " ADC #40 13640 " STA VEC 13650 " BCC ADD1 13660 " INC VEC+1 13670 "ADD1: RTS 13680 " 13690 "SETBOR: LDA #SCREEN+3 13720 " STA VEC+1 13730 " LDX #BORCOL 13740 " JSR SETLN 13750 " LDA #21 13760 " STA CNT 13770 "SET1: JSR ADD40 13780 " LDY #0 13790 " TYA 13800 " JSR STORE 13810 " LDY #25 13820 " LDA #0 13830 " JSR STORE 13840 " DEC CNT 13850 " BNE SET1 13860 " JSR SETLN 13870 " JSR ADD40 13880 " LDY #0 13890 " TYA 13900 " JSR STORE 13910 " LDY #25 13920 " LDA #0 13930 " JSR STORE 13940 " JSR ADD40 13950 " JMP SETLN 13960 " 13970 "SETLN: LDY #0 13980 "SET99: LDA #0 13990 " JSR STORE 14000 " INY 14010 " CPY #26 14020 " BCC SET99 14030 " RTS 14040 " 14050 "CLEAR: LDA #32 14060 "CLEAR1: STA CHAR 14070 " LDA #20 14080 " STA CNT 14090 " LDA #SCREEN+44 14120 " STA VEC+1 14130 " LDX MULTIK 14140 "CLE1: LDY #23 14150 "CLE2: LDA CHAR 14160 " JSR STORE 14170 " DEY 14180 " BPL CLE2 14190 " JSR ADD40 14200 " DEC CNT 14210 " BNE CLE1 14220 " RTS 14230 " 14240 "READJ0: LDA 198 14250 " LDX #4 14260 " CMP #48 14270 " BEQ GOTJ0 14280 " LDX #8 14290 " CMP #51 14300 " BEQ GOTJ0 14310 " LDX #1 14320 " CMP #43 14330 " BEQ GOTJ0 14340 " LDX #2 14350 " CMP #40 14360 " BEQ GOTJ0 14370 " LDX #0 14380 "GOTJ0: STX JOYSWI 14390 "RREADF: LDA $543 14400 " BEQ REDG 14410 " TXA 14420 " ORA #$40 14430 " STA JOYSWI 14440 "REDG: RTS 14450 " 14460 " 14470 "SCROLU: LDA #SCREEN+44 14500 " STA VEC+1 14510 " LDA #19 14520 " STA CNT 14530 " LDX MULTIK 14540 "SCR0: LDA #40 14550 " STA CNT1 14560 " LDA #0 14570 " STA CNT2 14580 "SCR1: LDY CNT1 14590 " LDA (VEC),Y 14600 " LDY CNT2 14610 " JSR STORE 14620 " INC CNT1 14630 " INC CNT2 14640 " CPY #23 14650 " BCC SCR1 14660 " JSR ADD40 14670 " DEC CNT 14680 " BNE SCR0 14690 " 14700 "SCR2: LDA SPRFRM,Y 14710 " JSR STORE 14720 " DEY 14730 " BPL SCR2 14740 "LEAVE: RTS 14750 " 14760 "MESLN =$F74 14770 "MESC =$77 14780 " 14790 "MESSGI: LDA MESS1+1 14800 " BEQ LEAVE 14810 " LDX MSIDLE 14820 " BEQ OUTAC 14830 " DEX 14840 " STX MSIDLE 14850 " BNE BLANKE 14860 " LDX #0 14870 "UPD: LDA MESS2,X 14880 " STA MESS1,X 14890 " INX 14900 " CPX #4 14910 " BCC UPD 14920 " LDA #0 14930 " STA MESS3+1 14940 " LDA #32 14950 " LDX #23 14960 "CLRIT: STA MESLN,X 14970 " DEX 14980 " BPL CLRIT 14990 " RTS 15000 "OUTAC: LDY MSINDX 15010 " INC MSINDX 15020 " LDA (MESS1),Y 15030 " BNE OUTCH 15040 " LDA #20 15050 " STA MSIDLE 15060 " LDA #25 15070 " SEC 15080 " SBC MSINDX 15090 " BPL KOKO 15100 " LDA #0 15110 "KOKO: STA MSINDX 15120 "BLANKE: LDY MSINDX 15130 " BEQ LEAVE 15140 " DEC MSINDX 15150 " LDA #32 15160 "OUTCH: PHA 15170 " LDX #1 15180 "SCROM: LDA MESLN,X 15190 " STA MESLN-1,X 15200 " INX 15210 " CPX #24 15220 " BCC SCROM 15230 " PLA 15240 " AND #$3F 15250 " STA MESLN-1,X 15260 " RTS 15270 " 15280 "ADDMS: LDA MESS1+1 15290 " BNE TRY2 15300 " STX MESS1 15310 " STY MESS1+1 15320 " RTS 15330 "TRY2: LDA MESS2+1 15340 " BNE TRY3 15350 " STX MESS2 15360 " STY MESS2+1 15370 " RTS 15380 "TRY3: LDA MESS3+1 15390 " BNE FULL 15400 " STX MESS3 15410 " STY MESS3+1 15420 "FULL: RTS 15430 " 15440 "FILLSC: LDY #>SCREEN 15450 " STY VEC+1 15460 " STA CHAR 15470 " LDY #0 15480 " STY VEC 15490 "FILL1: LDA CHAR 15500 " JSR STORE 15510 " INY 15520 " BNE FILL1 15530 " INC VEC+1 15540 " LDA VEC+1 15550 " CMP #>SCREEN+1024 15560 " BCC FILL1 15570 " RTS 15580 " 15590 "PINMVE: JSR SPRPNT 15600 " LDX SPRITE 15610 " LDA PIXEL 15620 " BNE PIN3 15630 " LDY #79 15640 " LDA PFUNC,X 15650 " BEQ PIN2 15660 " LDY #82 15670 "PIN2: LDA (POS),Y 15680 " JSR DETPLT 15690 " BCC PIN3 15700 " LDA PFUNC,X 15710 " EOR #1 15720 " STA PFUNC,X 15730 "PIN3: LDA PFUNC,X 15740 " BEQ PIN4 15750 " JMP RIGTSP 15760 "PIN4: JMP LEFTSP 15770 " 15780 "GETSCN: LDY #0 15790 " STY CURSCN+1 15800 " LDA CURSCN 15810 " STA CURSNN 15820 " ASL CURSCN 15830 " ROL CURSCN+1 15840 " LDA #TABL 15880 " ADC CURSCN+1 15890 " STA CURSCN+1 15900 " LDA (CURSCN),Y 15910 " PHA 15920 " INY 15930 " LDA (CURSCN),Y 15940 " STA CURSCN+1 15950 " PLA 15960 " STA CURSCN 15970 " RTS 15980 " 15990 "PUTMON: TYA 16000 " PHA 16010 " TXA 16020 " PHA 16030 " LSR A 16040 " TAX 16050 " LDA #0 16060 " STA SPIX,X 16070 " JSR SPRPNT 16080 " JSR PUT4 16090 " PLA 16100 " TAX 16110 " PLA 16120 " TAY 16130 " RTS 16140 " 16150 "DRAWPT: LDY #7 16160 "VIDEO: LDA (CURSCN),Y 16170 " PHA 16180 " AND #64 16190 " BEQ VIDB 16200 ";LDA TORCH 16210 " BNE VIDB 16220 " PLA 16230 " LDA #0 16240 " PHA 16250 "VIDB: PLA 16260 " AND #15 16270 " STA $FF15 16280 " STA $FF19 16290 " ORA #$40 16300 " STA $FF16 16310 " CLC 16320 " ADC #1 16330 " ORA #$69 16340 " STA $FF17 16350 " ORA #$F0 16360 " STA MULTIK 16370 " JSR SETBOR 16380 " JSR CLEAR 16390 " LDY #5 16400 " LDA (CURSCN),Y 16410 " PHA 16420 " AND #$F0 16430 " STA INTYPE 16440 " PLA 16450 " AND #15 16460 " BEQ NOTELY 16470 " STA TELVEC+1 16480 " INY 16490 " LDA (CURSCN),Y 16500 " STA TELVEC 16510 " JSR DRWTEL 16520 "NOTELY: 16530 " LDA #SCREEN+44 16560 " STA VEC+1 16570 " LDY #8 16580 "DRW: LDA (CURSCN),Y 16590 " STA CNT3 16600 " INY 16610 " LDA (CURSCN),Y 16620 " STA CNT4 16630 " INY 16640 " AND #15 16650 " ASL A 16660 " ADC #74 16670 " STA CHAR 16680 " STY TEMP 16690 " LDA #12 16700 " STA CNT1 16710 " LDA VEC 16720 " PHA 16730 " LDA VEC+1 16740 " PHA 16750 "NEXT: ASL CNT4 16760 " ROL CNT3 16770 " BCC NOBLOK 16780 " 16790 " LDX CHAR 16800 " LDY #0 16810 " TXA 16820 " INX 16830 " STA (VEC),Y 16840 " INY 16850 " TXA 16860 " STA (VEC),Y 16870 "NOBLOK: 16880 " CLC 16890 " LDA VEC 16900 " ADC #2 16910 " STA VEC 16920 " BCC NPPPP 16930 " INC VEC+1 16940 "NPPPP: 16950 " DEC CNT1 16960 " BNE NEXT 16970 " PLA 16980 " STA VEC+1 16990 " PLA 17000 " STA VEC 17010 " LDY TEMP 17020 " LDA (CURSCN),Y 17030 " INY 17040 " CMP #$FF 17050 " BEQ ENDIT 17060 " CLC 17070 " ADC VEC 17080 " STA VEC 17090 " BCC DRW 17100 " INC VEC+1 17110 "NPPPPP: BNE DRW 17120 "ENDIT: 17130 " LDX #2 17140 "MONS: LDA (CURSCN),Y 17150 " INY 17160 " STA SPRPOS,X 17170 " LDA #0 17180 " STA PINSPD-2,X 17190 " INX 17200 " LDA (CURSCN),Y 17210 " INY 17220 " PHA 17230 " AND #15 17240 " STA SPRPOS,X 17250 " PLA 17260 " LSR A 17270 " LSR A 17280 " LSR A 17290 " LSR A 17300 " BEQ NOMON 17310 " STA PINSPD-2,X 17320 " CPX #10 17330 " BCS NOMON 17340 " JSR PUTMON 17350 "NOMON: INX 17360 " CPX #14 17370 " BCC MONS 17380 " RTS 17390 " 17400 " 17410 "SETUP: SEI 17420 " LDA #32 17430 " LDX #COL11 17440 " JSR FILLSC 17450 " JSR SETBOR 17460 " SEI 17470 " LDA #IRQ 17500 " STA $315 17520 " LDA #$59 17530 " STA $FF19 17540 " STA $FF15 17550 " LDA #0 17560 " STA HOLDIT 17570 " STA CURSCN 17580 " LDA #$C0 17590 " STA $FF12 17600 " LDA #>CDATA 17610 " STA $FF13 17620 " LDX #24 17630 " STX $FF07 17640 "INITOB: LDA OBJSTR-1,X 17650 " STA OBJDAT-1,X 17660 " DEX 17670 " BNE INITOB 17675 " CLI 17680 " JSR SIGNON 17690 " LDX #255 17700 " STX NOISE+2 17710 " INX 17720 " STX NOISE 17730 " STX NSFL 17740 " LDX #RATE 17750 " STX NOISE+1 17751 " LDX #29 17752 " LDA #0 17753 "BUG1: STA SPRBGD,X 17754 " DEX 17755 " BPL BUG1 17760 " LDA #$38 17770 " STA SPRPOS 17780 " LDA #$0C 17790 " STA SPRPOS+1 17800 " LDA #1 17810 " STA PFUNC 17820 " JSR TELESN 17830 " LDX #HELLO 17850 " JSR ADDMS 17860 " CLI 17861 " LDX #7 17862 " LDA #0 17870 "CTRL: JSR GETSCN 17880 "CTTL: JSR DRAWPT 17890 " JSR PUTOBJ 17900 " LDA PFUNC 17910 " LDX #0 17920 " STX SPIX 17930 " JSR SPRPNT 17940 " JSR PUT4 17950 "CTRL0: JSR BORED 17960 " LDX PFUNC 17970 " LDA SPRBGD+1 17980 " BNE ROGER 17990 " CPX #0 18000 " BNE ROGER 18010 " JMP EXIT1 18020 "ROGER: LDA SPRBGD+5 18030 " BNE ROGER1 18040 " DEX 18050 " BMI ROGER1 18060 " JMP EXIT2 18070 "ROGER1: LDA SPIX 18080 " BEQ STRAIG 18090 " LDY #82 18100 " LDA (SPRPOS),Y 18110 " JSR DETPLT 18120 " BCC CTRL01 18130 "STRAIG: LDY #81 18140 " LDA (SPRPOS),Y 18150 " JSR DETPLT 18160 " BCC CTRL01 18170 " LDY #80 18180 " LDA (SPRPOS),Y 18190 " BEQ GODWN 18200 " JSR DETPLT 18210 " BCC CTRL01 18220 " LDX #0 18230 " JSR DOWNSP 18240 " JSR CHECK 18250 " JMP CTRL2 18260 "GODWN: JMP EXIT3 18270 " 18280 "CTRL01: JSR OBJCHK 18290 " JSR READJ0 18300 " LDX #0 18310 " AND #$40 18320 " BEQ NOSWI 18330 " JSR TRNSPR 18340 " JMP CTRL2 18350 "NOSWI: LDA JOYSWI 18360 " CMP #8 18370 " BEQ CTRL1 18380 " CMP #4 18390 " BEQ LEFT 18400 " CMP #1 18410 " BEQ UPUPW 18420 " CMP #2 18430 " BNE CTRL2 18440 " JSR LADDR2 18450 " JMP CTRL2 18460 "UPUPW: JSR LADDER 18470 " JMP CTRL2 18480 " 18490 "LEFT: JSR LEFTM 18500 " JMP WOBBLE 18510 "CTRL1: JSR RIGHTM 18520 " JMP WOBBLE 18530 "CTRL2: INC SCRPLT 18540 " LDA SCRPLT 18550 " CMP #3 18560 " BCC WOBBLE 18570 " INC COAST 18580 " JSR ROWLY 18590 " LDA #0 18600 " STA COAST 18610 " STA SCRPLT 18620 "WOBBLE: JSR PINCR 18630 " JSR CHECK 18640 " LDY #8 18650 " LDX #0 18660 "LOOP: DEX 18670 " BNE LOOP 18680 " DEY 18690 " BNE LOOP 18700 " JMP CTRL0 18710 "EXIT1: LDA SPRPOS 18720 " CLC 18730 " ADC #23 18740 " STA SPRPOS 18750 " BCC EX1 18760 " INC SPRPOS+1 18770 "EX1: JMP NEWS 18780 "EXIT2: LDA SPRPOS 18790 " SEC 18800 " SBC #22 18810 " STA SPRPOS 18820 " LDA SPRPOS+1 18830 " SBC #0 18840 " STA SPRPOS+1 18850 " JMP NEWS 18860 "EXIT3: LDA SPRPOS 18870 " SEC 18880 " SBC #<720 18890 " STA SPRPOS 18900 " LDA SPRPOS+1 18910 " SBC #>720 18920 " STA SPRPOS+1 18930 " LDX #WHEEE 18950 " JSR ADDMS 18960 " LDY #2 18970 " BNE THIRD 18980 "NEWS: LDY PFUNC 18990 "THIRD: LDA (CURSCN),Y 19000  STA CURSCN 19010 " JMP CTRL 19020 " 19030 "PINCR: LDA SPRPOS+3 19040 " BEQ NONO1 19050 " INC PINSPD 19060 " LDA PINSPD 19070 " CMP PINSPD+1 19080 " BCC NONO1 19090 " INC PINCNT 19100 " LDA #0 19110 " STA PINSPD 19120 " LDX #1 19130 " JSR PINMVE 19140 "NONO1: LDA SPRPOS+5 19150 " BEQ NONO2 19160 " INC PINSPD+2 19170 " LDA PINSPD+2 19180 " CMP PINSPD+3 19190 " BCC NONO2 19200 " INC PINCNT+1 19210 " LDA #0 19220 " STA PINSPD+2 19230 " LDX #2 19240 " JSR DIRECT 19250 "NONO2: LDA SPRPOS+7 19260 " BEQ NONO3 19270 " INC PINSPD+4 19280 " LDA PINSPD+4 19290 " CMP PINSPD+5 19300 " BCC NONO3 19310 " INC PINCNT+2 19320 " LDA #0 19330 " STA PINSPD+4 19340 " LDX #3 19350 " JSR PINMVE 19360 "NONO3: LDA SPRPOS+9 19370 " BEQ NONO4 19380 " INC PINSPD+6 19390 " LDA PINSPD+6 19400 " CMP PINSPD+7 19410 " BCC NONO4 19420 " INC PINCNT+3 19430 " LDA #0 19440 " STA PINSPD+6 19450 " LDX #4 19460 " JSR DIRECT 19470 "NONO4: INC PRECNT 19480 " LDA PRECNT 19490 " CMP #PRESCL 19500 " BCC NONO6 19510 " LDA #0 19520 " STA PRECNT 19530 " LDA FLASH+1 19540 " BEQ NONO5 19550 " INC PINSPD+8 19560 " LDA PINSPD+8 19570 " CMP PINSPD+9 19580 " BCC NONO5 19590 " LDX #0 19600 " STX PINSPD+8 19610 " JSR INVERT 19620 "NONO5: LDA FLASH+3 19630 " BEQ NONO6 19640 " INC PINSPD+10 19650 " LDA PINSPD+10 19660 " CMP PINSPD+11 19670 " BCC NONO6 19680 " LDX #0 19690 " STX PINSPD+10 19700 " INX 19710 " INX 19720 " BNE INVERT 19730 "NONO6: RTS 19740 " 19750 "INVERT: TAY 19760 " LDA FLASH,X 19770 " STA POS 19780 " LDA FLASH+1,X 19790 " STA POS+1 19800 "INL: LDA (POS),Y 19810 " CMP #74 19820 " BCC YEHMAN 19830 " LDA #32 19840 " BNE WAMBAM 19850 "YEHMAN: LDA #74 19860 "WAMBAM: STA (POS),Y 19870 " DEY 19880 " BPL INL 19890 " RTS 19900 " 19910 "CHECK: LDY #0 19920 " LDX #0 19930 "CHK0: LDA #3 19940 " STA CNT 19950 "CHK1: LDA SPRBGD,X 19960 " CMP #SPR1 19970 " BCS CHK2 19980 " INX 19990 " INX 20000 " DEC CNT 20010 " BNE CHK1 20020 " INY 20030 " CPY #6 20040 " BCC CHK0 20050 " RTS 20060 "CHK900: BRK 20070 "CHK2: CPY #0 20080 " BNE CHK800 20090 " CMP #$68 20100 " BCC CHK900 20110 " INY 20120 " CMP #$6E 20130 " BCC CHK800 20140 " INY 20150 " CMP #$74 20160 " BCC CHK800 20170 " INY 20180 " CMP #$7A 20190 " BCC CHK800 20200 " INY 20210 "CHK800: TYA 20220 " TAX 20230 " STX CNT4 20240 " JSR GETCOL 20250 " STA TEMP 20260 " LDX #0 20270 " JSR GETCOL 20280 " CMP TEMP 20290 " BEQ CHK999 20300 " BCS CHKRG 20310 " LDA #0 20320 " JMP CHK801 20330 "CHKRG: LDA #1 20340 "CHK801: LDY #5 20350 " STY CNT3 20360 "CHKLP: LDX CNT4 20370 " PHA 20380 " CMP #0 20390 " BEQ CHKLF 20400 " JSR RIGTSP 20410 " JMP CHKRG2 20420 "CHKLF: JSR LEFTSP 20430 "CHKRG2: PLA 20440 " DEC CNT3 20450 " BNE CHKLP 20460 "CHK999: LDX #DEATH 20480 " JSR ADDMS 20490 " PLA 20500 " PLA 20510 " LDA #20 20520 " LDY #0 20530 "WAITT: JSR DELAY 20540 " SEC 20550 " SBC #1 20560 " BNE WAITT 20570 " JMP SETUP 20580 " 20590 "DIRECT: STX CNT 20600 " JSR GETCOL 20610 " STA TEMP 20620 " LDX #0 20630 " JSR GETCOL 20640 " CMP TEMP 20650 " BEQ DIR2 20660 " BCC DIRLF 20670 " LDA #1 20680 " JMP DIR3 20690 "DIRLF: LDA #0 20700 "DIR3: LDX CNT 20710 " CMP PFUNC,X 20720 " BNE DIR2 20730 " JMP PINMVE 20740 "DIR2: RTS 20750 " 20760 "GETCOL: LDA #$2A 20770 " STA VEC 20780 " LDA #$0C 20790 " STA VEC+1 20800 " TXA 20810 " ASL A 20820 " TAX 20830 "GET1: LDA VEC 20840 " SEC 20850 " SBC SPRPOS,X 20860 " TAY 20870 " LDA VEC+1 20880 " SBC SPRPOS+1,X 20890 " BPL GETC99 20900 " JSR ADD40 20910 " JMP GET1 20920 "GETC99: TYA 20930 " SEC 20940 " SBC #40 20950 " EOR #$FF 20960 " RTS 20970 " 20980 "BORED: LDX #3 20990 "BOR0: LDA PINCNT,X 21000 " BPL BOR1 21010 " LDA PFUNC+1,X 21020 " EOR #1 21030 " STA PFUNC+1,X 21040 " LDA #0 21050 " STA PINCNT,X 21060 "BOR1: DEX 21070 " BPL BOR0 21080 "BOR2: RTS 21090 " 21100 "TRNSPR: LDA SPRPOS 21110 " SEC 21120 " SBC TELVEC 21130 " STA VEC 21140 " LDA SPRPOS+1 21150 " SBC TELVEC+1 21160 " BNE BOR2 21170 " LDA VEC 21180 " CMP #40 21190 " BCC BOR2 21200 " CMP #42 21210 " BCC OKTEL1 21220 " BNE BOR2 21230 " LDA SPIX 21240 " BNE BOR2 21250 "OKTEL1: LDA INTYPE 21260 " BEQ OKTEL2 21270 " JMP LOGON 21280 "OKTEL2: LDX #PORTT 21300 " JSR ADDMS 21310 " LDY #4 21320 " PLA 21330 " PLA 21340 " LDA (CURSCN),Y 21350 " STA CURSCN 21360 " JSR TELESN 21370 " JMP CTRL 21380 " 21390 "DETPLT: CMP #$4A 21400 " BCC DET2 21410 " CMP #$54 21420 "DET1: RTS 21430 "DET2: SEC 21440 " RTS 21450 " 21460 "DELAY: LDX #0 21470 "DELA1: DEX 21480 " BNE DELA1 21490 " DEY 21500 " BNE DELA1 21510 " RTS 21520 " 21530 "DRWTEL: LDX TELEPT 21540 " LDA INTYPE 21550 " BNE LOGWAN 21560 " TXA 21570 " BMI DRWT22 21580 " BPL SWAP1 21590 "LOGWAN: TXA 21600 " BPL DRWT22 21610 "SWAP1: LDX #$5F 21620 "SWAP: LDA TERMNL,X 21630 " PHA 21640 " LDA TELEPT,X 21650 " STA TERMNL,X 21660 " PLA 21670 " STA TELEPT,X 21680 " DEX 21690 " BPL SWAP 21700 "DRWT22: LDA #59 21710 " STA CHAR 21720 " LDX #0 21730 " LDA #3 21740 " STA CNT 21750 " LDA TELVEC 21760 " STA VEC 21770 " LDA TELVEC+1 21780 " STA VEC+1 21790 " LDX #$53 21800 "DRWT0: LDY #0 21810 "DRWT1: LDA CHAR 21820 " INC CHAR 21830 " JSR STORE 21840 " INX 21850 " INY 21860 " CPY #4 21870 " BCC DRWT1 21880 " JSR ADD40 21890 " LDX #$5A 21900 " DEC CNT 21910 " BNE DRWT0 21920 " RTS 21930 " 21940 "TELESN: LDA #$A0 21950 " STA CNT1 21960 " INC NSFL 21970 " LDA #$28 21980 " STA $FF11 21990 " LDA #3 22000 " STA $FF10 22010 " LDA $FF15 22020 " PHA 22030 "TELE0: LDA CNT1 22040 " STA $FF0F 22050 "TELE1: LDA $FF15 22060 " EOR #$F7 22070 " STA $FF15 22080 " DEC $FF15 22090 " DEC $FF0F 22100 " LDY #3 22110 " JSR DELAY 22120 " LDA $FF15 22130 " EOR #3 22140 " ORA #$81 22150 " STA $FF15 22160 " LDA $FF0F 22170 " CMP #$80 22180 " BCS TELE1 22190 " DEC CNT1 22200 " DEC CNT1 22210 " BNE TELE0 22220 " LDA #0 22230 " STA $FF11 22240 " DEC NSFL 22250 " PLA 22260 " STA $FF15 22270 " RTS 22280 "ROBNS: WOR 100,200,300,400,500,600,700,800 22290 " WOR 900 22300 " 22310 "NOSY: LDA NOISE+2 22320 " BPL HIGH 22330 " LDA #$11 22340 " STA $FF11 22350 " LDA NOISE 22360 " CMP NOISE+1 22370 " PHP 22380 " AND #7 22390 " PLP 22400 " BCC NOSY2 22410 " JSR ANIMAT 22420 "HIGH: LDA #255 22430 " STA NOISE 22440 " LDX #$16 22450 " STX $FF11 22460 " INC NOISE+2 22470 " LDX NOISE+2 22480 "OKM: CPX #6 22490 " BCC NOSY0 22500 " STA NOISE+2 22510 "NOSY0: LDA #8 22520 "NOSY2: ASL A 22530 " TAX 22540 " LDA ROBNS,X 22550 " STA $FF0E 22560 " LDA $FF12 22570 " AND #$FC 22580 " ORA ROBNS+1,X 22590 " STA $FF12 22600 " INC NOISE 22610 " RTS 22620 " 22630 "SIGNON: LDA #1 22640 " STA NSFL 22650 " JSR CLEARM 22660 " LDA #$52 22670 " STA $FF11 22680 " LDA #3 22690 " STA $FF10 22700 " LDA #0 22710 " STA CNT 22720 "STTTT: LDX CNT 22730 " LDA TUNE,X 22740 " STA $FF0F 22750 " LDA TED 22760 " STA $FF0E 22770 " INX 22780 " CPX #6 22790 " BCC WOLLL 22800 " LDX #0 22810 "WOLLL: STX CNT 22820 " JSR READJ0 22830 " CMP #$40 22840 " BEQ CLEARM 22850 " LDX #PRPSS 22870 " JSR ADDMS 22880 " LDY #0 22890 " JSR DELAY 22900 " JMP STTTT 22910 " 22920 "CLEARM: LDX #7 22930 " LDA #0 22940 "CLRM: STA MESS1,X 22950 " DEX 22960 " BPL CLRM 22970 " STA MSIDLE 22980 " STA MSINDX 22990 " LDX #23 23000 " LDA #32 23010 "CLMM: STA MESLN,X 23020 " DEX 23030 " BPL CLMM 23040 " RTS 23050 " 23060 "SUB40: SEC 23070 " LDA VEC 23080 " SBC #40 23090 " STA VEC 23100 " LDA VEC+1 23110 " SBC #0 23120 " STA VEC+1 23130 " RTS 23140 "LADDER: LDA SPRBGD+1 23150 " CMP #$52 23160 " BEQ UPPPY 23170 " LDA SPRBGD+3 23180 " CMP #$52 23190 " BNE NOWAY 23200 "UPPPY: 23210 " LDY #7 23220 " LDA (CURSCN),Y 23230 " AND #$20 23240 " BEQ UNAVL 23250 " LDA SPRPOS+1 23260 " CMP #$D 23270 " BCS JUSTUP 23280 " LDA SPRPOS 23290 " CMP #$54 23300 " BCS JUSTUP 23310 " PLA 23320 " PLA 23330 " CLC 23340 " LDA SPRPOS 23350 " ADC #<640 23360 " STA SPRPOS 23370 " LDA SPRPOS+1 23380 " ADC #>640 23390 " STA SPRPOS+1 23400 " LDY #3 23410 " JMP THIRD 23420 " 23430 "JUSTUP: LDX #0 23440 " JSR UPSP 23450 "NOWAY: RTS 23460 " 23470 "LADDR2: LDY #80 23480 " LDA (SPRPOS),Y 23490 " CMP #$52 23500 " BEQ DOWNY 23510 " INY 23520 " LDA (SPRPOS),Y 23530 " CMP #$52 23540 " BNE NOWAY 23550 "DOWNY: LDY #7 23560 " LDA (CURSCN),Y 23570 " AND #$10 23580 " BEQ UNAVL 23590 " LDX #0 23600 " JMP DOWNSP 23610 " 23620 "UNAVL: LDX #RASTR 23640 " JSR HUNT 23650 " BEQ NOWAY 23660 " JMP ADDMS 23670 "RASTR: BYT 'RESTRICTED ACCESS',0 23680 " 23690 "HUNT: CPX MESS1 23700 " BNE HUNT2 23710 " CPY MESS1+1 23720 " BEQ HUNTV 23730 "HUNT2: CPX MESS2 23740 " BNE HUNT3 23750 " CPY MESS2+1 23760 " BEQ HUNTV 23770 "HUNT3: CPX MESS3 23780 " BNE HUNTV 23790 " CPY MESS3+1 23800 "HUNTV: RTS 23810 " 23820 "PSTR: STX VEC1 23830 " STY VEC1+1 23840 " LDY #0 23850 "NEWLN:LDX #23 23860 " LDA #32 23870 "PCLR: STA SPRFRM,X 23880 " DEX 23890 " BPL PCLR 23900 " INX 23910 "PPPPL: LDA (VEC1),Y 23920 " INY 23930 " CMP #0 23940 " BEQ PEND 23950 " CMP #255 23960 " BEQ ENDLL 23970 " AND #$3F 23980 " STA SPRFRM,X 23990 " INX 24000 " CPX #24 24010 " BCC PPPPL 24020 "ENDLL: TYA 24030 " PHA 24040 " JSR SCROLZ 24050 " PLA 24060 " TAY 24070 " JMP NEWLN 24080 "PEND:CPX #0 24090 " BNE SCROLZ 24100 "PEND1:RTS 24110 " SCROLZ: LDY #128 24120 " JSR DELAY 24130 " JMP SCROLU 24140 " 24150 "LOGON: LDX #23 24160 " STX NSFL 24170 " LDA #32 24180 "CLRR: STA SPRFRM,X 24190 " DEX 24200 " BPL CLRR 24210 " LDA MULTIK 24220 " PHA 24230 " LDA #0 24240 " STA $FF11 24250 " STA MULTIK 24260 " JSR CLEAR 24261 " LDA LOGSWI 24262 " BNE LOGPAS 24263 " INC LOGSWI 24270 " LDX #SGONM 24281 " JMP LOG99 24282 "LOGPAS: LDX #PASSW 24290 "LOG99: JSR PSTR 24300 " JSR INPUTS 24310 " JSR CLEARM 24320 " PLA 24330 " STA MULTIK 24340 " PLA 24350 " PLA 24360 " LDA #0 24370 " STA NSFL 24380 " JMP CTTL 24390 "SGONM:BYT'WELCOME COMRADE',255,255 24400 "BYT 'WORK OUT PASSWORD FROM LETTERS IN THE SCREENS AND THEN TYPE IN HERE' 24410 "BYT ' TOPROGRESS TO NEXT LEVEL.',255,255 24411 "BYT 'THE MAP OF EACH LEVEL SPELLS OUT A LETTER FOR PASSWORD TO RESCUE' 24412 "BYT ' SUPERVULCAN.',255,255 24413 "BYT 'NOTE: EACH LEVEL HAS A RANDOM DUNGEON.',255,255 24415 "BYT 'PRESS RETURN',0 24416 "PASSW:BYT'ENTER PASSWORD',0 24419 " 24420 "DEM:BYT27,'NUSE CURSOR KEYS TO MOVE',13,'SHIFT KEY FOR CONTROL',13 24430 "BYT 'FUNCTION KEYS FOR OBJECTS',13,13,'D M BROAD 1987',0 24440 "DEMO: 24450 "LDY #0 24460 "SSS: LDA DEM,Y 24470 "BEQ WAIT98 24480 "JSR $FFD2 24490 "INY 24500 "JMP SSS 24510 "WAIT98: LDA #20 24520 "WAIT99: JSR DELAY 24530 "SEC 24540 "SBC #1 24550 "BNE WAIT99 24560 "RTS 24570 "INPUTS: LDA #MESLN 24600 " STA $FF0C 24610 " LDA #8 24620 " STA $FF07 24630 " LDA #0 24640 " TAX 24650 " STA 239 24660 " TAY 24670 "GETIND: JSR GETAK 24680 " CPX #0 24690 " BEQ DBTONE 24700 " PHA 24710 " LDA #$28 24720 " STA $FF11 24730 " LDA #3 24740 " STA $FF10 24750 " STA $FF0F 24760 " DEX 24770 " PLA 24780 " JMP DBTON2 24790 "DBTONE: STX $FF11 24800 "DBTON2: CMP #0 24810 " BEQ GETIND 24820 " LDX #255 24830 " CMP #20 24840 " BNE DELBOY 24850 " TYA 24860 " BEQ GETIND 24870 " DEY 24880 " LDA #32 24890 " STA MESLN,Y 24900 " DEC $FF0D 24910 " BNE GETIND 24920 " DEC $FF0C 24930 " JMP GETIND 24940 "DELBOY: CMP #13 24950 " BNE CHARM 24960 " LDA #24 24970 " STA $FF07 24980 " RTS 24990 "CHARM: CPY #24 25000 " BEQ GETIND 25010 " AND #$3F 25020 " STA MESLN,Y 25030 " INY 25040 " INC $FF0D 25050 " BNE GETIND 25060 " INC $FF0C 25070 " JMP GETIND 25080 " 25090 "GETAK: TYA 25100 " PHA 25110 " TXA 25120 " PHA 25130 " JSR $FFE4 25140 " STA $14 25150 " PLA 25160 " TAX 25170 " PLA 25180 " TAY 25190 " LDA $14 25200 " RTS 25210 " 25220 "ROTPL:LDX #7 25230 "SHIT: LDA $3E78,X 25240 " ASL A 25250 " ROL $3E70,X 25260 " ROL $3E78,X 25270 " LDA $3E80,X 25280 " LSR A 25290 " ROR $3E88,X 25300 " ROR $3E80,X 25310 " DEX 25320 " BPL SHIT 25330 "SCRNN:RTS 25340 " 25350 "ROWLY: LDX #0 25360 " LDY #80 25370 " LDA (SPRPOS),Y 25380 " CMP #$4E 25390 " BCC ROWL2 25400 " CMP #$50 25410 " BCS ROWL1 25420 " JMP LEFTM 25430 "ROWL1: CMP #$52 25440 " BCS ROWL2 25450 " JMP RIGHTM 25460 "ROWL2: INY 25470 " LDA (SPRPOS),Y 25480 " CMP #$4E 25490 " BCC SCRNN 25500 " CMP #$50 25510 " BCS ROWL3 25520 " JMP LEFTM 25530 "ROWL3: CMP #$52 25540 " BCS SCRNN 25550 " 25560 "RIGHTM: LDA SPRBGD+5 25570 " CMP #$58 25580 " BCS SCRNN 25590 " JMP RIGTSP 25600 "LEFTM: LDA SPRBGD+1 25610 " CMP #$58 25620 " BCS SCRNN 25630 " JMP LEFTSP 25640 " 25650 "PUTOBJ: LDX #35 25660 " STX CNT 25670 " LDY #0 25680 "PUTOB1: LDA OBJDAT,Y 25690 " INY 25700 " CMP CURSNN 25710 " BNE PUTOB2 25720 " LDA OBJDAT,Y 25730 " INY 25740 " STA PUTO99+1 25750 " LDA OBJDAT,Y 25760 " INY 25770 " STA PUTO99+2 25780 " LDA CNT 25790 "PUTO99: STA $FFFF 25800 " JMP PUTOB3 25810 "PUTOB2: INY 25820 " INY 25830 "PUTOB3: INC CNT 25840 " LDA CNT 25850 " CMP #43 25860 " BCC PUTOB1 25870 "OBJEX: RTS 25880 " 25890 "OBJCHK: LDA 198 25900 " CMP #4;F1 25910 " BNE TAKE11 25920 " JMP TAKE1 25930 "TAKE11: CMP #5;F2 25940 " BNE OBJEX 25950 ";DROP OBJECT 25960 " LDA HOLDIT 25970 " BEQ OBJEX 25980 " LDX SPRBGD+3 25990 " CPX #32 26000 " BNE OBJEX 26010 " LDX #0 26020 " LDY #8 26030 "DRP1: LSR A 26040 " BCC DRP2 26050 " INX 26060 "DRP2: DEY 26070 " BNE DRP1 26080 " LDA HOLDIT 26090 " CPX #1 26100 " BEQ DROPT 26110 "DROP1: LDA #FIROBL 26140 " STA VEC+1 26150 " LDA #1 26160 " STA CNT3 26170 "DROP2: LDY #0 26180 " LDA (VEC),Y 26190 " CMP #32 26200 " BEQ STEP 26210 " STA CNT 26220 " LDX #0 26230 " STX CNT1 26240 " STX CNT2 26250 "CHOSE: LDA CNT 26260 " JSR STORE 26270 " INX 26280 " LDA 198 26290 " CMP #6 26300 " BEQ DROP99 26310 " DEC CNT1 26320 " BNE CHOSE 26330 " INC CNT2 26340 " LDA CNT2 26350 " CMP #40 26360 " BCC CHOSE 26370 " LDA CNT 26380 " LDX #COL11 26390 " JSR STORE 26400 "STEP: ASL CNT3 26410 " CLC 26420 " LDA VEC 26430 " ADC #120 26440 " STA VEC 26450 " LDA VEC+1 26460 " ADC #0 26470 " STA VEC+1 26480 " CMP #$10 26490 " BCC DROP2 26500 " BCS DROP1 26510 "DROP99: LDA CNT 26520 " LDX #COL11 26530 " JSR STORE 26540 " LDA CNT3 26550 "DROPT: STA CNT 26560 " EOR HOLDIT 26570 " STA HOLDIT 26580 " LDA #FIROBL 26610 " STA VEC+1 26620 " LDY #0 26630 " LDX #35 26640 "DROPT1:LSR CNT 26650 " BEQ DROPT2 26660 " INY 26670 " INY 26680 " INY 26690 " INX 26700 " CLC 26710 " LDA VEC 26720 " ADC #120 26730 " STA VEC 26740 " BCC DROPT1 26750 " INC VEC+1 26760 " JMP DROPT1 26770 "DROPT2: LDA CURSNN 26780 " STA OBJDAT,Y 26790 " LDA SPRPOS 26800 " CLC 26810 " ADC #41 26820 " STA OBJDAT+1,Y 26830 " LDA SPRPOS+1 26840 " ADC #0 26850 " STA OBJDAT+2,Y 26860 " STX SPRBGD+3 26870 " LDA #32 26880 " LDY #0 26890 " STA (VEC),Y 26900 " JMP UPDAT2 26910 " 26920 "OBJEX1: RTS 26930 "TAKE1: LDA SPRBGD+3 26940 " CMP #35 26950 " BCC OBJEX1 26960 " CMP #43 26970 " BCS OBJEX1 26980 " LDX #FIROBL 27010 " STX VEC+1 27020 " PHA 27030 " SEC 27040 " SBC #35 27050 " TAX 27060 " LDY #0 27070 " LDA #1 27080 " STA CNT 27090 "TAKEEE: CPX #0 27100 " BEQ GOTBIT 27110 " ASL CNT 27120 " INY 27130 " INY 27140 " INY 27150 " DEX 27160 " LDA VEC 27170 " CLC 27180 " ADC #120 27190 " STA VEC 27200 " BCC TAKEEE 27210 " INC VEC+1 27220 " JMP TAKEEE 27230 "GOTBIT: LDA CNT 27240 " ORA HOLDIT 27250 " STA HOLDIT 27260 " LDA #255 27270 " STA OBJDAT,Y 27280 " LDY #0 27290 " PLA 27300 " STA (VEC),Y 27310 " LDA #32 27320 " STA SPRBGD+3 27330 "UPDAT2: LDA PFUNC 27340 " LDX #0 27350 " JMP UPDATE 27360 " 27370 "OBJSTR: BYT 1;0 27380 " WOR $E0D 27390 " BYT 0 ;1 27400 " WOR $C6A 27410 " BYT 0 ;2 27420 " WOR $CDB 27430 " BYT 1 ;3 27440 " WOR $E18 27450 " BYT 1 ;4 27460 " WOR $E16 27470 " BYT 1 ;5 27480 " WOR $E14 27490 " BYT 1 ;6 27500 " WOR $E12 27510 " BYT 2 ;7 27520 " WOR $EB7 27530 " 27540 "OBJDAT: RES 24 27550 " 27560 "TABL: 27570 "WOR S0,S1,S2 27580 " 27590 "S0: 27600 "BYT 0,2,1,0,25 27610 "DBY $0C64 27620 "BYT $33 27630 "DBY %000000100000 0110 27640 "BYT 40 27650 "DBY %000001100000 0110 27660 "BYT 40 27670 "DBY %000011100000 0110 27680 "BYT 40 27690 "DBY %000111100000 0110 27700 "BYT 40 27710 "DBY %000000001110 0000 27720 "BYT 0 27730 "DBY %000000000001 0010 27740 "BYT 0 27750 "DBY %001111100000 0110 27760 "BYT 40 27770 "DBY %011101100000 0110 27780 "BYT 40 27790 "DBY %011001100000 0110 27800 "BYT 40 27810 "DBY %010001100000 0110 27820 "BYT 40 27830 "DBY %000001100000 0110 27840 "BYT 40 27850 "DBY %000111111011 0000 27860 "BYT 0 27870 "DBY %000000000100 0100 27880 "BYT 40 27890 "DBY %000000000100 0100 27900 "BYT 0 27910 "DBY %000001100000 0110 27920 "BYT 40 27930 "DBY %000000000100 0100 27940 "BYT 0 27950 "DBY %000001100000 0110 27960 "BYT 40 27970 "DBY %000000000100 0100 27980 "BYT 0 27990 "DBY %000001100000 0110 28000 "BYT 40 28010 "DBY %000000000100 0100 28020 "BYT 0 28030 "DBY %000001100000 0110 28040 "BYT 40 28050 "DBY %001100000000 0000 28060 "BYT 0 28070 "DBY %000000000001 0011 28080 "BYT 0 28090 "DBY %010000000110 0100 28100 "BYT 0 28110 "DBY %000001100000 0110 28120 "BYT 40 28130 "DBY %010000000010 0100 28140 "BYT 0 28150 "DBY %000001100000 0110 28160 "BYT 40 28170 "DBY %010000000010 0100 28180 "BYT 0 28190 "DBY %000001100000 0110 28200 "BYT 40 28210 "DBY %010000000010 0100 28220 "BYT 0 28230 "DBY %000001100000 0110 28240 "BYT 40 28250 "DBY %010000000010 0100 28260 "BYT 0 28270 "DBY %001111111100 0110 28280 "BYT 40 28290 "DBY %010000000010 0100 28300 "BYT 0 28310 "DBY %001111111100 0110 28320 "BYT 255 28330 "WOR $8D4A,$0000,$0000,$0000,$0000,$0000 28340 "S1: 28350 "BYT 1,1,3,0,0 28360 "DBY $1E62 28370 "BYT $33 28380 "DBY %010000000010 0100 28390 "BYT 0 28400 "DBY %000000000001 1010 28410 "BYT 0 28420 "DBY %001000000000 1011 28430 "BYT 40 28440 "DBY %010000000010 0100 28450 "BYT 0 28460 "DBY %000000000001 1010 28470 "BYT 0 28480 "DBY %001000000000 1011 28490 "BYT 40 28500 "DBY %010000000010 0100 28510 "BYT 0 28520 "DBY %000000000001 1010 28530 "BYT 0 28540 "DBY %001000000000 1011 28550 "BYT 40 28560 "DBY %010000000010 0100 28570 "BYT 0 28580 "DBY %000000000001 1010 28590 "BYT 0 28600 "DBY %001000000000 1011 28610 "BYT 40 28620 "DBY %010000000010 0100 28630 "BYT 0 28640 "DBY %000000000001 1010 28650 "BYT 0 28660 "DBY %001000000000 1011 28670 "BYT 40 28680 "DBY %010000000010 0100 28690 "BYT 0 28700 "DBY %000000000001 1010 28710 "BYT 0 28720 "DBY %001000000000 1011 28730 "BYT 40 28740 "DBY %010000000010 0100 28750 "BYT 0 28760 "DBY %000000000001 1010 28770 "BYT 0 28780 "DBY %001000000000 1011 28790 "BYT 40 28800 "DBY %000000110110 0000 28810 "BYT 0 28820 "DBY %010000001000 0100 28830 "BYT 0 28840 "DBY %000000000001 1010 28850 "BYT 0 28860 "DBY %001000000000 1011 28870 "BYT 40 28880 "DBY %010000001000 0100 28890 "BYT 0 28900 "DBY %000000000001 1010 28910 "BYT 0 28920 "DBY %001000000000 1011 28930 "BYT 40 28940 "DBY %010000000000 0100 28950 "BYT 0 28960 "DBY %000000000001 1010 28970 "BYT 0 28980 "DBY %001000000000 1011 28990 "BYT 40 29000 "DBY %000111000000 0000 29010 "BYT 0 29020 "DBY %010000000000 0100 29030 "BYT 0 29040 "DBY %000000000001 1010 29050 "BYT 0 29060 "DBY %001000000000 1011 29070 "BYT 40 29080 "DBY %010000000000 0100 29090 "BYT 0 29100 "DBY %000000000001 1010 29110 "BYT 40 29120 "DBY %000000011110 0000 29130 "BYT 0 29140 "DBY %010000000000 0100 29150 "BYT 0 29160 "DBY %000000000001 1010 29170 "BYT 40 29180 "DBY %010000100000 0100 29190 "BYT 0 29200 "DBY %000000000001 1010 29210 "BYT 40 29220 "DBY %010000010000 0100 29230 "BYT 0 29240 "DBY %000000000001 1010 29250 "BYT 40 29260 "DBY %010000001000 0100 29270 "BYT 0 29280 "DBY %000000000001 1010 29290 "BYT 40 29300 "DBY %010000000100 0100 29310 "BYT 40 29320 "DBY %001110000000 0000 29330 "BYT 0 29340 "DBY %010000000000 0100 29350 "BYT 255 29360 "WOR $8D02,0,$8DCA,0,0,0 29380 "S2: 29390 "BYT 0,2,2,2,2 29400 "DBY $0000 29410 "BYT $33 29420 "DBY %000000001111 1010 29430 "BYT 40 29440 "DBY %000000000011 1010 29450 "BYT 40 29460 "DBY %000000000001 1010 29470 "BYT 40 29480 "DBY %000111111000 0100 29490 "BYT 0 29500 "DBY %000000000001 1010 29510 "BYT 40 29520 "DBY %110000000000 0011 29530 "BYT 0 29540 "DBY %001000000110 0100 29550 "BYT 0 29560 "DBY %000000000001 1010 29570 "BYT 40 29580 "DBY %000000000010 0100 29590 "BYT 0 29600 "DBY %000000000001 1010 29610 "BYT 40 29620 "DBY %000000000100 0100 29630 "BYT 0 29640 "DBY %000000000001 1010 29650 "BYT 40 29660 "DBY %000000000100 0100 29670 "BYT 0 29680 "DBY %000000000001 1010 29690 "BYT 40 29700 "DBY %000000000100 0100 29710 "BYT 0 29720 "DBY %000000000001 1010 29730 "BYT 40 29740 "DBY %100000011000 0000 29750 "BYT 0 29760 "DBY %000000000010 0100 29770 "BYT 0 29780 "DBY %000000000001 1010 29790 "BYT 40 29800 "DBY %000000000010 0100 29810 "BYT 0 29820 "DBY %000000000001 1010 29830 "BYT 40 29840 "DBY %000000000100 0100 29850 "BYT 0 29860 "DBY %000000000001 1010 29870 "BYT 40 29880 "DBY %000000000100 0100 29890 "BYT 0 29900 "DBY %000000000001 1010 29910 "BYT 40 29920 "DBY %000011111000 0000 29930 "BYT 0 29940 "DBY %000000000010 0100 29950 "BYT 0 29960 "DBY %000000000001 1010 29970 "BYT 40 29980 "DBY %110000000000 0011 29990 "BYT 0 30000 "DBY %001000000010 0100 30010 "BYT 0 30020 "DBY %000000000001 1010 30030 "BYT 40 30040 "DBY %000100000100 0100 30050 "BYT 0 30060 "DBY %100000000001 1010 30070 "BYT 40 30080 "DBY %000010001000 0100 30090 "BYT 0 30100 "DBY %100000000001 1010 30110 "BYT 40 30120 "DBY %000001010000 0100 30130 "BYT 0 30140 "DBY %100000000001 1010 30150 "BYT 40 30160 "DBY %000000100000 0100 30170 "BYT 0 30180 "DBY %100000000001 1010 30190 "BYT 40 30200 "DBY %111111111111 0000 30210 "BYT 255 30220 "WOR $2DEC,$4EDA,$0000,$0000,$BD96,$5D98 30230 "*