0100 *= $2000›0110 ;›0120 ; *** BATTLE IN THE B RING ***›0130 ;›0140 ;ZERO PAGE VARIABLES›0150 ;›0160 PBL0 = $B0›0170 PBL1 = $B1›0180 PBL2 = $B2›0190 PBH2 = $B3›0200 PBH0 = $B4›0210 PBH1 = $B5›0220 XP0 = $B6›0230 XP1 = $B7›0240 XP2 = $B8›0250 XP3 = $B9›0260 PMVL = $BA›0270 PMVH = $BB›0280 MBL0 = $BC›0290 MBL1 = $BD›0300 MBL2 = $BE›0310 XM0 = $BF›0320 XM1 = $C0›0330 XM3 = $C1›0340 MBL = $C2›0350 MBH = $C3›0360 STDIR = $C4›0370 MISDIR = $C6›0380 XREG = $C8›0390 SCRL0 = $C9›0400 SCRL1 = $CA›0410 SCRL2 = $CB›0420 SCRL3 = $CC›0430 MATH = $CD›0440 INTL = $CE›0450 INTH = $CF›0460 ;›0470 ;PAGE SIX VARIABLES›0480 ;›0490 CHINV = $06DB›0500 ADENS = $06DC›0510 ASPEED = $06DD›0520 SCFLAG = $06DE›0530 YMENU = $06DF›0540 EXCNTR = $06E0›0550 LICNTR = $06E2›0560 ROCNTR = $06E4›0570 EDCNTR = $06E6›0580 TCCNTR = $06E8›0590 SSCNTR = $06E9›0600 RRCNTR = $06EB›0610 ESCNTR = $06EC›0620 BOCNTR = $06EE›0630 DECNTR = $06F0›0640 MXCNTR = $06F1›0650 LIPOS = $06F2›0660 ;›0670 ;SYSTEM EQUATES›0680 ;›0690 CHBAS = $02F4›0700 SDMCTL = $022F›0710 SDLSTL = $0230›0720 SDLSTH = $0231›0730 STICK0 = $0278›0740 STRIG0 = $0284›0750 STRIG1 = $0285›0760 PCOLR0 = $02C0›0770 COLOR0 = $02C4›0780 PCOLR3 = $02C3›0790 PCOLR1 = $02C1›0800 HPOSP0 = $D000›0810 HPOSP1 = $D001›0820 HPOSP2 = $D002›0830 HPOSP3 = $D003›0840 HPOSM0 = $D004›0850 HPOSM1 = $D005›0860 HPOSM2 = $D006›0870 HPOSM3 = $D007›0880 M0PL = $D008›0890 M3PL = $D00B›0900 P0PL = $D00C›0910 CONSOL = $D01F›0920 HITCLR = $D01E›0930 GRACTL = $D01D›0940 CHACTL = $D401›0950 HSCROL = $D404›0960 PMBASE = $D407›0970 WSYNC = $D40A›0980 AUDF1 = $D200›0990 AUDC1 = $D201›1000 AUDF2 = $D202›1010 AUDC2 = $D203›1020 AUDF3 = $D204›1030 AUDC3 = $D205›1040 AUDCTL = $D208›1050 RANDOM = $D20A›1060 NMIEN = $D40E›1070 PRIOR = $D01B›1080 SKCTL = $D20F›1090 SETVBV = $E45C›1100 XITVBV = $E462›1110 CDTMV3 = $021C›1120 CDTMV4 = $021E›1130 VDSLST = $0200›1140 CDTMA1 = $0226›1150 CDTMA2 = $0228›1160 ATRACT = $4D›1170 ;›1180 ;GAME SET-UP BEGINS›1190 ;›1200 CLD ›1210 LDX #3›1220 COLLP LDA PFCOL,X ;set›1230 STA COLOR0,X ;playfield›1240 LDA MSEL,X ;colors›1250 STA ADENS,X›1260 DEX ›1270 BPL COLLP›1280 LDA #0›1290 STA AUDCTL ;initialize›1300 LDA #3 ;sounds›1310 STA SKCTL›1320 JMP MENU›1330 DLIRTN PHA ›1340 LDA SCRL1›1350 STA HSCROL›1360 LDA #DL1&$FF›1370 STA VDSLST›1380 PLA ›1390 RTI ›1400 DL1 PHA ›1410 LDA SCRL3›1420 STA HSCROL›1430 LDA #DL2&$FF›1440 STA VDSLST›1450 PLA ›1460 RTI ›1470 DL2 PHA ›1480 LDA #2 ;turns›1490 STA WSYNC ;characters›1500 STA CHACTL ;right side›1510 LDA #DL3&$FF ;up bottom›1520 STA VDSLST ;screen half›1530 PLA ›1540 RTI ›1550 DL3 PHA ›1560 LDA SCRL1›1570 STA HSCROL›1580 LDA #DL4&$FF›1590 STA VDSLST›1600 PLA ›1610 RTI ›1620 DL4 PHA ›1630 LDA SCRL0›1640 STA HSCROL›1650 LDA #DLIRTN&$FF›1660 STA VDSLST›1670 PLA ›1680 RTI ›1690 ;›1700 ;SCROLL ROUTINE-TIMER 1-FOR TOPMOST›1710 ;AND BOTTOMMOST RINGS›1720 ;›1730 SCROLL LDA #1›1740 LDY ASPEED›1750 LDX #0 ;set system›1760 JSR SETVBV ;timer 1›1770 LDA SCRL0›1780 CMP #9›1790 BNE DECC9›1800 RTS ›1810 DECC9 DEC SCRL0 ;scroll value›1820 LDA SCRL0 ;for top and›1830 BEQ PSCRL ;bottom rings›1840 RTS ›1850 PSCRL LDA #8 ;reset scroll›1860 STA SCRL0 ;value›1870 LDX #15›1880 LDA $0605 ;check for›1890 CMP #106 ;wraparound›1900 BEQ PFLIP ;flip›1910 CLC ›1920 ADC #1 ;flip to next›1930 JMP HLOOP ;display byte›1940 PFLIP LDA #0›1950 HLOOP STA $0602,X ;store new›1960 ORA #128 ;low bytes in›1970 STA $0633,X ;display list›1980 EOR #128›1990 DEX ›2000 DEX ›2010 DEX ›2020 BNE HLOOP›2030 RTS ›2040 ;›2050 ;SCROLL ROUTINE-TIMER 2-FOR TWO›2060 ;INNER RINGS AND LIGHTNING›2070 ;›2080 SCRLL LDA #2 ;scroll›2090 LDX #0 ;routine same›2100 LDY ASPEED ;as timer 1›2110 DEY ›2120 JSR SETVBV›2130 LDA SCRL0›2140 CMP #9›2150 BNE DECCA›2160 RTS ›2170 DECCA DEC SCRL1›2180 LDA SCRL1›2190 BEQ HSCRL›2200 LDA XP2›2210 BEQ T2XIT›2220 DEC XP2 ;change›2230 LDA XP2 ;lightning›2240 STA HPOSP2 ;position›2250 LDX LICNTR ;value of›2260 LDY #24 ;light. shape›2270 LILOOP LDA LIGHT,X ;change light.›2280 STA (PBL2),Y ;shape›2290 INX ›2300 DEY ›2310 BPL LILOOP›2320 STX LICNTR›2330 CPX #75 ;light. over?›2340 BNE T2XIT›2350 LDX #0 ;turn off›2360 STX LICNTR ;lightning›2370 STX HPOSP2›2380 STX XP2›2390 T2XIT RTS ›2400 HSCRL LDA #8›2410 STA SCRL1›2420 LDX #12›2430 LDA $0615›2440 CMP #106›2450 BEQ PFLIP3›2460 CLC ›2470 ADC #1›2480 JMP MLINE›2490 PFLIP3 LDA #0›2500 MLINE STA $0612,X›2510 ORA #128›2520 STA $0626,X›2530 EOR #128›2540 DEX ›2550 DEX ›2560 DEX ›2570 BNE MLINE›2580 LDA XP2›2590 BNE T2EXIT›2600 LDA RANDOM›2610 AND #15›2620 STA MATH›2630 CLC ›2640 ADC #2›2650 CLC ›2660 ADC $061E ;random gap›2670 LDY #2 ;asteroid›2680 LOCLI CMP LIPOS,Y ;position›2690 BEQ PUTLI›2700 DEY ;check for›2710 BPL LOCLI ;asteroid›2720 RTS ›2730 PUTLI LDA MATH›2740 ASL A ;calculate›2750 ASL A ;initial›2760 ASL A ;lightning›2770 CLC ;position›2780 ADC #56›2790 STA XP2 ;store pos.›2800 STA HPOSP2›2810 LDA #200 ;lightning›2820 STA AUDF1 ;zap sound›2830 STA AUDC1›2840 LDA #4›2850 STA CDTMV4›2860 T2EXIT RTS ›2870 ;›2880 ;VERTICAL BLANK ROUTINE›2890 ;SCROLLS ROCKET, ANIMATES FLAME›2900 ;›2910 VBRTN LDA #192›2920 STA NMIEN ;enable dli›2930 LDA CHINV›2940 STA CHACTL ;invert upper›2950 LDA SCRL0 ;screen half›2960 STA HSCROL ;scroll for›2970 LDA SCRL2 ;first ring›2980 CMP #16›2990 BNE ROAR›3000 JMP XITVBV›3010 ROAR LDA RRCNTR ;time to inc.›3020 BEQ FLAMCK ;volume of›3030 CMP #136 ;rocket roar?›3040 BEQ FLAMCK›3050 INC RRCNTR›3060 LDA RRCNTR›3070 STA AUDC2›3080 FLAMCK INC SCRL2›3090 LDA SCRL2 ;time to›3100 AND #1 ;scroll?›3110 BEQ GFLAM›3120 JMP XITVBV›3130 GFLAM DEC SCRL3›3140 LDA SCRL2›3150 AND #15›3160 STA SCRL2›3170 LSR A›3180 TAX ;get flame›3190 LDA FLTAB,X ;shape›3200 STA $1024 ;display›3210 LDA XP3›3220 BEQ OUTCK›3230 DEC XP3 ;change hot›3240 LDA XP3 ;tail pos.›3250 STA HPOSP3›3260 OUTCK LDA SCRL3›3270 BEQ SCRLH›3280 JMP XITVBV›3290 SCRLH LDA #8›3300 STA SCRL3›3310 LDA $0622 ;rocket on›3320 CMP #11 ;screen?›3330 BNE ROOFF›3340 LDX #224 ;yes put hot›3350 STX XP3 ;tail›3360 STX AUDF2 ;start sound›3370 LDX #129›3380 STX AUDC2›3390 STX RRCNTR›3400 ROOFF CMP #36 ;rocket off›3410 BNE CKROM ;screen?›3420 LDX #0 ;turn off›3430 STX AUDF2 ;rocket roar›3440 STX AUDC2›3450 STX RRCNTR›3460 CKROM LDX XM3 ;missile in›3470 CPX #0 ;use?›3480 BNE FLIPCK ;yes go on›3490 CLC ;no›3500 CMP #13 ;rocket on›3510 BCC FLIPCK ;screen?›3520 CLC ›3530 CMP #30›3540 BCS FLIPCK›3550 SEC ›3560 SBC #13 ;calculate›3570 ASL A ;initial›3580 ASL A ;missile pos.›3590 ASL A›3600 STA MATH›3610 LDA #204›3620 SEC ›3630 SBC MATH›3640 STA MATH ;store pos.›3650 LDX #0›3660 ROMLOOP CLC ;saucer in›3670 LDA PBL0,X ;gap?›3680 CMP #107›3690 BCC TRYAG›3700 CLC ›3710 CMP #130›3720 BCS TRYAG›3730 CLC ›3740 LDA XP0,X ;in front of›3750 CMP MATH ;rocket?›3760 BCC STM3 ;yes›3770 TRYAG INX ›3780 CPX #2›3790 BNE ROMLOOP›3800 JMP FLIPCK›3810 STM3 LDA MATH ;fire›3820 STA XM3 ;missiles›3830 STA HPOSM3›3840 LDA #38 ;missile›3850 STA AUDF1 ;sound›3860 LDA #142›3870 STA AUDC1›3880 LDA #5›3890 STA CDTMV4›3900 FLIPCK LDA $0622›3910 CMP #63›3920 BEQ PFLIP5›3930 CLC ›3940 ADC #1›3950 JMP MLINE3›3960 PFLIP5 LDA #0›3970 MLINE3 STA $0622›3980 STA $0625›3990 VBOUT JMP XITVBV›4000 ;›4010 ;MAIN PROGRAM BEGINS HERE›4020 ;›4030 PROG LDX #31 ;zero out›4040 LDA #0 ;zero page+›4050 CLZLOOP STA PBL0,X ;page 6›4060 STA EXCNTR,X ;variables›4070 DEX ›4080 BPL CLZLOOP›4090 LDA #9 ;no scroll›4100 STA SCRL0 ;until ready›4110 LDA #16 ;to play›4120 STA SCRL2›4130 LDA #4›4140 STA CHINV›4150 LDA #0›4160 TAX ›4170 TAY ›4180 LDA #24›4190 STA PMBASE ;pm graphics›4200 LDA #27 ;location›4210 STA MBH ;missiles›4220 LDA #28›4230 STA PBH0 ;player 0›4240 LDA #29›4250 STA PBH1 ;player 1›4260 LDA #30›4270 STA PBH2 ;player 2›4280 LDA #224›4290 STA INTH›4300 LDA #18 ;character›4310 STA PMVH ;set on›4320 STA CHBAS ;page 18›4330 LDA #0›4340 STA PMVL›4350 STA INTL›4360 TAX ›4370 TAY ›4380 DWNLD LDA (INTL),Y ;download rom›4390 STA (PMVL),Y ;characters›4400 INY ›4410 BNE DWNLD›4420 INC PMVH›4430 INC INTH›4440 INX ›4450 CPX #2›4460 BNE DWNLD›4470 DEC PMVH›4480 DEC PMVH›4490 LDY #0›4500 LDA #8›4510 STA PMVL›4520 CHLOOP LDA CHTAB,Y ;load data for›4530 STA (PMVL),Y ;asteroid›4540 INY ;characters›4550 CPY #120›4560 BNE CHLOOP›4570 LDX #0›4580 LDY #208›4590 STX PMVL›4600 C2LOOP LDA C2TAB,X ;load data for›4610 STA (PMVL),Y ;rocket›4620 INX ;characters›4630 CPX #56›4640 BEQ RESET›4650 INY ›4660 BNE C2LOOP›4670 INC PMVH›4680 JMP C2LOOP›4690 RESET LDX #77›4700 LDY #0›4710 STY SDMCTL›4720 DLOOP LDA GDLIST,X ;load game›4730 STA $0600,X ;display›4740 DEX ;list onto›4750 BPL DLOOP ;page six›4760 LDA #6 ;tell comp.›4770 STY SDLSTL ;where dlist›4780 STA SDLSTH ;is›4790 LDA $0606›4800 STA PMVH›4810 STY PMVL›4820 TYA ›4830 TAX ›4840 CLOOP STA (PMVL),Y ;clear›4850 INY ;display›4860 BNE CLOOP ;area›4870 INC PMVH›4880 INX ›4890 CPX #11›4900 BNE CLOOP›4910 LDX #0›4920 LDA $0606›4930 STA PMVH›4940 LDA ADENS›4950 STA INTH›4960 STX PMVL›4970 RANDC LDA RANDOM ;color for›4980 AND #3 ;asteroid›4990 TAY ;character›5000 LDA COLOR,Y›5010 STA INTL›5020 RANDP CLC ›5030 LDY RANDOM ;random›5040 CPY #107 ;position›5050 BCS RANDP›5060 LDA (PMVL),Y›5070 CMP #0 ;occupied?›5080 BNE RANDP ;yes go back›5090 RANDA LDA RANDOM ;random›5100 AND #15 ;asteroid›5110 BEQ RANDA ;character›5120 ORA INTL›5130 STA (PMVL),Y ;store in›5140 INX ;display›5150 CPX INTH ;line done?›5160 BNE RANDC›5170 LDX #0›5180 CLC ›5190 LDA PMVL›5200 ADC #128 ;do next line›5210 STA PMVL›5220 BCC ASKIP›5230 INC PMVH›5240 ASKIP LDA PMVH›5250 CMP $061F›5260 BNE AENDCK›5270 LDY INTH›5280 DEY ›5290 DEY ›5300 DEY ›5310 STY INTH›5320 AENDCK CMP $0626 ;all lines›5330 BNE RANDC ;done?›5340 LDA $061F›5350 STA PMVH›5360 RANDC2 LDA RANDOM ;same as›5370 AND #3 ;above but›5380 TAY ;for›5390 LDA COLOR,Y ;asteroids›5400 STA INTL ;across gap›5410 LDA RANDOM ;from each›5420 AND #3 ;other for›5430 TAY ;lightning›5440 LDA COLOR,Y›5450 STA INTH›5460 RANDP2 CLC ›5470 LDA RANDOM›5480 BEQ RANDP2›5490 CMP #105›5500 BCS RANDP2›5510 STA PMVL›5520 STA LIPOS,X›5530 LDY #0›5540 LDA (PMVL),Y›5550 BNE RANDP2›5560 RANDA2 LDA RANDOM›5570 AND #15›5580 BEQ RANDA2›5590 ORA INTL›5600 STA (PMVL),Y›5610 RANDA3 LDA RANDOM›5620 AND #15›5630 BEQ RANDA3›5640 ORA INTH›5650 LDY #128›5660 STA (PMVL),Y›5670 INX ›5680 CPX #3›5690 BNE RANDC2›5700 LDA #0›5710 LDX #18›5720 CLRAST STA $0700,X ;clear lines›5730 STA $0780,X ;saucer start›5740 DEX ;positions›5750 BPL CLRAST›5760 LDY #20›5770 LDA $0606›5780 STA PMVH›5790 STA INTH›5800 LDA #107›5810 STA INTL›5820 INX ›5830 STX PMVL›5840 WLOOP LDA (PMVL),Y ;wraparound›5850 STA (INTL),Y ;display›5860 DEY ;area for›5870 BPL WLOOP ;continuous›5880 LDY #20 ;scrolling›5890 INX ›5900 LDA PMVL›5910 CLC ›5920 ADC #128›5930 STA PMVL›5940 BCC WSKIP1›5950 INC PMVH›5960 WSKIP1 LDA INTL›5970 CLC ›5980 ADC #128›5990 STA INTL›6000 BCC WSKIP2›6010 INC INTH›6020 WSKIP2 CPX #18 ;finished?›6030 BNE WLOOP ;no go back›6040 LDY #3›6050 ROLOOP LDA ROTAB,Y ;load rocket›6060 STA $1020,Y ;data into›6070 DEY ;display area›6080 BPL ROLOOP›6090 LDA #16›6100 STA $0664 ;initialize›6110 STA $066E ;scores›6120 LDA #0›6130 TAX ›6140 STA $0663›6150 STA $066D›6160 LDA #24›6170 STA PMVH›6180 TXA ›6190 STA PMVL›6200 TAY ›6210 CLRPMG STA (PMVL),Y ;clear pm›6220 INY ;graphics›6230 BNE CLRPMG ;area›6240 INC PMVH›6250 INX ›6260 CPX #8›6270 BNE CLRPMG›6280 LDX #5›6290 LDA #0›6300 ZLOOP STA HPOSP2,X ;iniialize›6310 DEX ;player/›6320 BPL ZLOOP ;missile›6330 LDA #108›6340 STA PBL2›6350 LDA #3 ;set up›6360 STA GRACTL ;graphics›6370 LDA #62 ;dma›6380 STA SDMCTL›6390 STA HITCLR ;clr collis.›6400 LDA #120 ;initialize›6410 STA HPOSP1 ;saucer›6420 STA XP1 ;positions›6430 STA HPOSP0›6440 STA XP0›6450 LDA #196›6460 STA PBL1›6470 LDA #35›6480 STA PBL0›6490 STA PMVL›6500 LDA PBH0›6510 STA PMVH›6520 LDA PBL1›6530 STA INTL›6540 LDA PBH1›6550 STA INTH›6560 LDY #7›6570 LDPLYRS LDA PLSHP,Y ;load›6580 STA (PMVL),Y ;player›6590 STA (INTL),Y ;data into›6600 DEY ;pm area›6610 BPL LDPLYRS›6620 INC INTH›6630 INC INTH›6640 LDY #116›6650 LDA #0›6660 STA INTL›6670 LDA #1›6680 LDTAIL STA (INTL),Y ;load hot›6690 INY ;rocket›6700 CPY #124 ;tail›6710 BNE LDTAIL›6720 LDY #112›6730 LDA #192›6740 STA (MBL),Y›6750 LDY #127›6760 STA (MBL),Y›6770 LDX #3›6780 PCLOOP LDA PCOL,X ;set playr›6790 STA PCOLR0,X ;colors›6800 DEX ›6810 BPL PCLOOP›6820 LDA #8 ;initialize›6830 STA HSCROL ;scroll›6840 STA SCRL1 ;settings›6850 STA SCRL3›6860 STA CONSOL›6870 STA STDIR+1›6880 LDA #9›6890 STA STDIR›6900 ;›6910 ;SET SYSTEM TIMERS,›6920 ;VERT. BLANK AND DLI ROUTINES›6930 ;›6940 LDA #SCROLL&$FF ;timer 1›6950 STA CDTMA1›6960 LDA #SCROLL/256›6970 STA CDTMA1+1›6980 LDA #1›6990 LDX #0›7000 LDY #4›7010 JSR SETVBV›7020 LDA #SCRLL&$FF ;timer 2›7030 STA CDTMA2›7040 LDA #SCRLL/256›7050 STA CDTMA2+1›7060 LDA #2›7070 LDX #0›7080 LDY #3›7090 JSR SETVBV›7100 LDA #7›7110 LDX #VBRTN/256 ;vertical›7120 LDY #VBRTN&$FF ;blank›7130 JSR SETVBV›7140 LDA #DLIRTN/256›7150 STA VDSLST+1›7160 LDA #DLIRTN&$FF›7170 STA VDSLST›7180 LDA #192 ;dli›7190 STA NMIEN›7200 LDA #1 ;set pmg›7210 STA PRIOR ;priority›7220 STLOOP LDA STRIG0 ;check›7230 BNE SB2CK ;triggers›7240 JMP GETDEL ;for game›7250 SB2CK LDA STRIG1 ;start›7260 BNE STLOOP›7270 GETDEL LDA #15›7280 STA CDTMV3›7290 DSTLOOP LDA CDTMV3›7300 BNE DSTLOOP›7310 STA SCRL2 ;allow›7320 LDA #8 ;scrolling›7330 STA SCRL0›7340 MLOOP LDA #1 ;game prog›7350 STA CDTMV3 ;begins›7360 INC XREG ;move timer›7370 LDA XREG ;playr index›7380 AND #1›7390 TAX ›7400 STA XREG›7410 LDA XP0,X ;check for›7420 BNE TAILCK ;dead player›7430 JMP INCM›7440 TAILCK LDA SCRL2 ;check for›7450 CMP #16 ;missile›7460 BNE EXPCK ;collision›7470 INC TCCNTR ;with rocket›7480 LDA TCCNTR ;tail›7490 AND #31 ;time to›7500 STA TCCNTR ;cool tail?›7510 BNE EXPCK ;no go on›7520 LDA PCOLR3›7530 CMP #148›7540 BEQ EXPCK›7550 DEC PCOLR3 ;cool tail›7560 EXPCK LDA EXCNTR,X ;check count›7570 BEQ BOUNCK ;for player›7580 INC EDCNTR,X ;explosion›7590 LDA EDCNTR,X›7600 AND #3 ;time to›7610 STA EDCNTR,X ;change exp?›7620 BNE EXLCK ;no go on›7630 LDY SNDX,X ;change sound›7640 LDA ESCNTR,X ;get sound›7650 CMP #128 ;finished?›7660 BEQ EXSNOFF ;yes off›7670 DEC ESCNTR,X ;no make›7680 LDA ESCNTR,X ;changes›7690 STA AUDC3,Y›7700 JMP EXLCK›7710 EXSNOFF LDA #0 ;turn sound›7720 STA AUDF3,Y ;off›7730 STA AUDC3,Y›7740 STA ESCNTR,X›7750 EXLCK LDA PCOLR0,X ;change›7760 CMP #159 ;color›7770 BEQ BLINC›7780 INC PCOLR0,X›7790 INC PCOLR0,X›7800 INC PCOLR0,X›7810 JMP INCM›7820 BLINC LDA EDCNTR,X›7830 AND #1›7840 BEQ BLJUMP›7850 JMP INCM›7860 BLJUMP JMP BLPL›7870 BOUNCK LDA BOCNTR,X ;check for›7880 BEQ RMCK ;bounce›7890 JMP REBOUND›7900 RMCK LDA M3PL ;check for›7910 BEQ PLPLCK ;collision›7920 LDY #0 ;with›7930 STY XM3 ;rocket's›7940 STY HPOSM3 ;missiles›7950 STY HITCLR›7960 CMP #4›7970 BEQ PLPLCK›7980 TAX ›7990 DEX ›