FUJIbaudXdataqUU010050 LDX #0010060 LDY #1010070 LDA #1 ; TIMER 1010080 JSR $E45C010090 LDA #PMJSC&$FF010100 STA $0228010110 LDA #4data UUPMJSC/256010120 STA $0229010130 LDX #0010140 LDY #1010150 LDA #2 ;TIMER 2010160 JSR $E45C010170 LDA #50010180 STdata UUA $21C010190 LDA #$FF010200 STA $22A010210 RTS010220 ;010230 ; *** ENABLE PM GRAP. ***010240 ;010250 INITPM LDA #3501Ydata UU0260 STA $D407010270 LDA #0010280 TAX010290 CLEARPM STA $2000+768,X010300 STA $2000+1024,X; ON PAGE 32010310 STA $2000kdata UU+1280,X010320 INX010330 BNE CLEARPM010340 LOADPM LDA PMDATA,X010350 STA $2000+1024+185,X010360 INX010370 CPX #1501035data UU80 BNE LOADPM010390 LDA #200010400 STA VPOSPL010410 LDA #$FF ;load in missile010420 LDX #0 ;bits010430 DWM STAdata UU MISRAM,X010440 INX010450 CPX #6010460 BNE DWM010470 LDA #$BC ;ENABLE JS.010480 STA $D302010490 LDA #$3F ;WIdata UUDE SC.010500 STA $022F010510 LDA #120 ;ENABLE PM.010520 STA $02C0010530 LDA #127010540 STA $D000010550 STA HPOSPdata UU0010560 LDA #2010570 STA $D008010580 LDA #$03010590 STA $D01D010600 LDA #184010610 STA MISVPOS ;must be init.!!0106data UU20 LDA #$FF ;init bomb drop010630 STA FREEM ;variables010640 LDA #10010650 INY010660 STA $02C1 ;colour010670 S data UUTA $02C2010680 STA $02C3010690 LDA #0010700 STA VPOSM0010710 STA VPOSM1010720 STA VPOSM2010730 STA VPOSM3010740 STdata UUA $D008 ;size010750 RTS010760 PMDATA .BYTE 24,60,126,24,24,24,60,126,255,189,189,255010770 .BYTE 153,153,129010780 ;*=*+Hdata UU400 ; MORE PM ***010790 ;010800 ;** INTERR. TIMER 2 JSTICK **010810 ;010820 PMJSC LDA $278010830 EOR #$FF010840 AND #$0C[data UU010850 BEQ JSUP010860 CMP #8010870 BEQ MPMR010880 LDA HPOSP0010890 CMP #50010900 BEQ JSUP010910 DEC HPOSP0010920 data UU LDA HPOSP0010930 STA $D000010940 BNE JSUP010950 MPMR LDA HPOSP0010960 CMP #200010970 BEQ JSUP010980 INC HPOSP0010990data UU0 LDA HPOSP0011000 STA $D000011010 JSUP LDA $278011020 EOR #$FF011030 AND #3011040 BEQ MISCTL011050 ROR A011060 BCdata UUS PLUP011070 LDA VPOSPL011080 CMP #200011090 BEQ MISCTL011100 TAX011110 LDY #16011120 PLDN LDA $2000+1024,X011130 S#data UUTA $2000+1024+1,X011140 LDA #0011150 STA $2000+1024,X011160 DEX011170 DEY011180 BNE PLDN011190 INC VPOSPL011200 BNHdata UUE MISCTL011210 PLUP LDA VPOSPL011220 SEC011230 SBC #15011240 CMP #100011250 BEQ MISCTL011260 TAX011270 LDY #150112data UU80 PUP LDA $2000+1024,X011290 STA $2000+1024-1,X011300 LDA #0011310 STA $2000+1024,X011320 INX011330 DEY011340 BNE P@data UUUP011350 DEC VPOSPL011360 MISCTL LDA $284011370 BNE MISUP011380 LDA VPOSPL011390 CMP #200011400 BCS FIRE011410 LDA data UUVPPM2011420 BNE MISUP011430 FIRE LDA VPPM1011440 BNE MISUP011450 SEC011460 LDA VPOSPL011470 SBC #17011480 TAX01149data UU0 STX VPPM1011500 LDY #6011510 SMIS LDA MSHAPE,Y011520 STA $2000+1280,X011530 DEX011540 DEY011550 BPL SMIS011560 Lodata UUDA HPOSP0011570 STA HPPM1011580 BNE MIS2UP011590 MISUP LDA VPPM1011600 BEQ MIS2UP011610 SEC011620 SBC #4011630 CMP Ndata UU#88011640 BCS SECT011650 LDX VPPM1011660 LDA #0011670 LDY #6011680 DIMAG STA $2000+1280,X011690 DEX011700 DEY01171data UU0 BPL DIMAG011720 LDX #84011730 STX VPPM1011740 LDY #6011750 DLINE LDA MSHAPE,Y011760 STA $2000+1280,X011770 DEX011kdata UU780 DEY011790 BPL DLINE011800 LDA HPPM1011810 STA HPPM2011820 LDA VPPM1011830 STA VPPM2011840 LDA #0011850 STA VPdata UUPM1011860 BEQ RETJS011870 SECT SBC #2011880 TAX011890 LDY #7011900 MIS1 LDA $2000+1280,X011910 STA $2000+1280-4,X0119data UU20 LDA #0011930 STA $2000+1280,X011940 INX011950 DEY011960 BNE MIS1011970 LDA VPPM1011980 SEC011990 SBC #4012000data UU STA VPPM1012010 MIS2UP LDA VPPM2012020 BEQ RETJS012030 SEC012040 SBC #11012050 BCC M3TOP012060 ADC #4012070 TAX0data UU12080 LDY #7012090 MBY LDA $2000+1280,X012100 STA $2000+1280-4,X012110 LDA #0012120 STA $2000+1280,X012130 INX012140 data UU DEY012150 BPL MBY012160 LDA VPPM2012170 SEC012180 SBC #4012190 STA VPPM2012200 BNE RETJS012210 M3TOP LDA #0012220data UU LDX #10012230 DELM STA $2000+1280,X012240 DEX012250 BNE DELM012260 STA HPPM2012270 STA VPPM2012280 RETJS LDA #PMJSC&`data UU$FF012290 STA $228012300 LDA #PMJSC/256012310 STA $229012320 LDA #2012330 LDX #0012340 LDY #1012350 JSR $E45C0123data~ UU60 LDA #192012370 STA $D40E012380 RTS012390 ;012400 ;012410 VPPM1 *=*+1012420 HPPM1 *=*+1012430 VPPM2 *=*+1012440 HPPpdata UUM2 *=*+1012450 ;012460 MSHAPE .BYTE $08,$08,$1C,$14,$1C,$14,$14012470 ;012480 ;****** MULTI ROUT. ****012490 ;012500 SOFTMdata UUULTI LDA #0012510 STA LSB.PRODI012520 STA MSB.PRODI012530 LDX #8012540 SHIFT ASL A012550 ROL MSB.PRODI012560 ASL MULTdata UUI2I012570 BCC CHCNT012580 CLC012590 ADC MULTI1I012600 BCC CHCNT012610 INC MSB.PRODI012620 CHCNT DEX012630 BNE SHIFT}data UU012640 STA LSB.PRODI012650 RTS012660 ;012670 ;***** SOFT DIVI *****012680 ;012690 SOFTDIVIDEI LDX #8012700 LDA LSBNUMIdata UU012710 STA ANSWERI012720 LDA MSBNUMI012730 DIVID ASL ANSWERI012740 ROL A012750 CMP DIVISORI012760 BCC CHCNT2012770 data UUSBC DIVISORI012780 INC ANSWERI012790 CHCNT2 DEX012800 BNE DIVID012810 STA REMAINDERI012820 RTS012830 ;012840 ;**** DLdata UUI 'S ****012850 ;012860 DLINT1 PHA012870 LDA $D40B012880 CMP #100012890 BCS DLINT2012900 STA $D40A012910 LDA HPPM10data UU12920 STA $D001012930 LDA $D005012940 BEQ NOHIT2012950 LDA PM2HIT012960 ASL A012970 BCS NOHIT2012980 LDA #4012990 data UU STA PM2HIT013000 STA $D01E013010 NOHIT2 LDA #DLINT1&$FF013020 STA $200013030 LDA #DLINT1/256013040 STA $201013050 PLdata UUA013060 RTI013070 *=*+20013080 ;013090 DLINT2 STA $D40A013100 LDA #$1C013110 STA $D409013120 LDA HPPM2013130 STA $Mdata} UUD001013140 LDA $D005013150 BEQ NOHIT1013160 LDA PM2HIT013170 ASL A013180 BCS NOHIT1013190 LDA #1013200 STA PM2HITdata~ UU013210 STA $D01E013220 NOHIT1 LDA #DLINT1&$FF013230 STA $200013240 LDA #DLINT1/256013250 STA $201013260 PLA013270 RT8data| UUI013280 *=*+20013290 ;013300 ;**** HIT & DELETE ***013310 ;timer 1013320 ;013330 HITCHECK LDA PM2HIT013340 BNE HIT0133data| UU50 JMP NOHIT013360 HIT LDA PM2HIT013370 ORA #$F0013380 STA PM2HIT013390 AND #$0F013400 LSR A013410 TAX013420 LDA Vadataz UUPPM1,X013430 SEC013440 SBC #13013450 SEC013460 SBC COUNT3 ;no. times sc.scrl013470 STA LSBNUMI013480 AND #$07013490data| UU BEQ NORD013500 LDA LSBNUMI ;round up013510 AND #$F8013520 ADC #8013530 STA LSBNUMI013540 NORD DEC LSBNUMI013550 LDAdata{ UU #8013560 STA DIVISORI013570 LDA #0013580 STA MSBNUMI013590 JSR SOFTDIVIDEI013600 LDA ANSWERI013610 STA MULTI1I0136dataz UU20 LDA #3013630 STA MULTI2I013640 JSR SOFTMULTI013650 LDA LSB.PRODI013660 TAX013670 LDA DPLIST,X013680 STA TEMPAI0data{ UU13690 INX013700 LDA DPLIST,X013710 STA TEMPBI013720 LDA PM2HIT013730 AND #$0F013740 LSR A013750 TAX013760 INX013data UU770 LDA VPPM1,X013780 SEC013790 SBC #43013800 STA LSBNUMI013810 LDA #8013820 STA DIVISORI013830 LDA #0013840 STA _data} UUMSBNUMI013850 JSR SOFTDIVIDEI013860 LDA ANSWERI013870 CLC013880 ADC TEMPAI013890 STA TEMPAI013900 BCC *+4013910 INdata UUC TEMPBI013920 LDY #0013930 SEC013940 LDA TEMPAI013950 SBC #2013960 STA TEMPAI013970 BCS SEARCH013980 DEC TEMPBI0idata} UU13990 SEARCH LDA(TEMPAI),Y014000 BNE DEL2014010 INY014020 CPY #5014030 BNE SEARCH014040 CLC014050 LDA TEMPAI014060 data~ UU ADC #72014070 STA TEMPAI014080 BCC *+4014090 INC TEMPBI014100 LDY #0014110 SEARCH2 LDA(TEMPAI),Y014120 BNE DEL20141tdata| UU30 INY014140 CPY #4014150 BNE SEARCH2014160 SEC014170 LDA TEMPAI014180 SBC #144014190 STA TEMPAI014200 BCS *+401Mdata| UU4210 DEC TEMPBI014220 LDY #0014230 SRCH LDA(TEMPAI),Y014240 BNE DEL2014250 INY014260 CPY #4014270 BNE SRCH014280 J\data| UUMP NOHIT ;no alien found;do not delete miss.014290 DEL2 CLC014300 TYA014310 LDY #0014320 ADC TEMPAI014330 STA TEMPAI0^data{ UU14340 BCC *+4014350 INC TEMPBI014360 LDA #21014370 STA(TEMPAI),Y014380 INY014390 LDA #22014400 STA(TEMPAI),Y014410dataz UU ;014420 ;del. missile014430 LDA PM2HIT014440 AND #$0F014450 LSR A014460 TAX014470 LDA VPPM1,X014480 TAX014490 LDdata UUY #7014500 LDA #0014510 MDEL STA $2000+1280,X014520 DEX014530 DEY014540 BNE MDEL014550 LDA PM2HIT014560 AND #$0F01data} UU4570 LSR A014580 TAX014590 LDA #0014600 STA VPPM1,X014610 INX014620 STA VPPM1,X014630 ;014640 ; **** Delete explosi"dataz UUon014650 ;014660 LDY EXPOIT ;ensure different014670 BEQ DELEX ;co-ord's014680 DEY014690 DEY014700 DEY014710 NOTWCE data UULDA TEMPAI014720 CMP EXTABLE,Y014730 BEQ DCHCK014740 NOTSM DEY014750 DEY014760 DEY014770 BPL NOTWCE014780 BMI DELEXdata{ UU014790 DCHCK INY014800 LDA TEMPBI014810 CMP EXTABLE,Y014820 BEQ NOHIT014830 DEY014840 BPL NOTSM014850 DELEX LDY EXPOBdataz UUIT014860 LDA TEMPAI014870 STA EXTABLE,Y014880 LDA TEMPBI014890 INY014900 STA EXTABLE,Y014910 INY014920 LDA #25 ;tidata UUme explo. on sc.014930 STA EXTABLE,Y014940 INY014950 STY EXPOIT014960 ;014970 JSR SC.014980 STA $D01E ;hit acknowledgdata UUed014990 ;015000 NOHIT LDX EXPOIT015010 BEQ STIME1015020 DEX015030 DECEX DEC EXTABLE,X015040 BEQ BLNK015050 RETBNK DEXfdataz UU015060 DEX015070 DEX015080 BPL DECEX015090 JMP STIME1015100 BLNK TXA015110 TAY015120 DEY015130 LDA EXTABLE,Y0151data{ UU40 STA TEMPBI015150 DEY015160 LDA EXTABLE,Y015170 STA TEMPAI015180 SEC015190 LDA #10983&$FF015200 SBC TEMPAI015210data} UU LDA #10983/256015220 SBC TEMPBI015230 BCC OK015240 LDA #0015250 STA EXPOIT015260 JMP STIME1015270 OK LDA #0015280 data UU TAY015290 STA(TEMPAI),Y015300 INY015310 STA(TEMPAI),Y015320 ;015330 ELEDWN TXA015340 PHA015350 DEX015360 DEX0153data} UU70 TXA015380 TAY015390 PLA015400 TAX015410 PHA015420 INX015430 CPX EXPOIT015440 BEQ NOMOVE015450 DWN LDA EXTABLEdata| UU,X015460 STA EXTABLE,Y015470 INX015480 INY015490 CPX EXPOIT015500 BNE DWN015510 NOMOVE DEX015520 DEX015530 DEX01Bdataz UU5540 STX EXPOIT015550 PLA015560 TAX015570 INC HITS ;no of current hits015580 LDA HITS015590 CMP NO.ALIENS ;all alie.ddata~ UUes.015600 BNE RETBNK015610 JMP BONUS ;bonus point rout.015620 ;015630 ;restart timer 1015640 STIME1 LDA #0015650 STA PMdata| UU2HIT015660 LDA #HITCHECK&$FF015670 STA $226015680 LDA #HITCHECK/256015690 STA $227015700 LDY #1 ;50 hertz015710 LDX wdata{ UU#0015720 LDA #1015730 JSR $E45C015740 LDA #192015750 STA $D40E015760 RTS015770 ;015780 EXTABLE *=*+50015790 ;01580data| UU0 SC. SED015810 CLC015820 LDA SCORE015830 ADC #$15015840 STA SCORE015850 LDA SCORE+1015860 ADC #0015870 STA SCORE+