File -> Load Disc 0 -> my_invaders.ssd File -> Disc Options -> Write Protect 0 -> OFF If you want to disassemble code: Hardware -> Edit ROM Configuration -> Select ROM -> DISKDOC110.rom >*CAT MY_INVADERS (68) Drive 0 Option 3 (EXEC) Dir. :0.$ Lib. :0.$ !BOOT INVADER INVCODE INVDATA INVGAME INVSRC LOAD >*INFO * $.!BOOT 000000 FFFFFF 000014 046 $.INVADER 001900 003226 001E00 081 $.INVCODE 006000 003226 000C00 01C $.INVDATA 003280 003280 000480 00A $.INVGAME FF1900 FF8023 000CF5 00F $.INVSRC FF1900 FF8023 003982 047 $.LOAD FF1900 FF8023 000033 042 >*TYPE !BOOT *BASIC CHAIN "LOAD" >LOAD "LOAD" >LIST 10 *EXEC 20 MODE 7 30 *FX 200,2 40 *RUN INVADER >LOAD "INVGAME" >LISTO 7 >LIST 0 REM Teletext Space Invaders 100 200 ONERRORRUN 300 MODE7 400 DIM SC%(2),LV%(2),bases%(2),sheet%(2),ALS%(2),BNF%(2),D%(2),DF%(2) 500 O%=&2000 550 Z%=O%+&800:LT%=Z%-&80:NS%=9 600 IX%=Z%:IY%=IX%+40:JX%=IY%+40:JY%=JX%+40:bonusflg=JY%+40:sauceron=bonusflg+1:dead=sauceron+1:TT%=dead+1:scoreX=TT%+NS%+1:scoreY=scoreX+1:score=scoreY+1:D%=score+2:DF%=D%+1:numals=DF%+1:bases=numals+1 700 HI%=&150 800 900 REM --- START GAME --- 1000 1100 REPEAT 1200 PROCINIT 1300 REPEAT 1400 PROCSHEET 1500 UNTILbases%(PL%)=0 1600 UNTILFNMORE=FALSE 1700 END 1800 1900 DEFPROCINIT 2000 ENVELOPE2,1, 0,0,0,1,1,1, 126,-1,0,-126, 1,1 2100 ENVELOPE3,1, 0,0,0,1,1,1, 126,-1,0,-3, 126,80 2200 ENVELOPE4,1, 6,6,6,255,255,255, 126,-1,0,-10, 126,80 2300 FORPL%=1TO2 2400 bases%(PL%)=3:sheet%(PL%)=0:LV%(PL%)=1:BNF%(PL%)=0:SC%(PL%)=0:ALS%(PL%)=0 2500 NEXT 2600 PROC1OR2PLAYERS:PL%=1 2700 ENDPROC 2800 2900 DEFPROC1OR2PLAYERS 3000 PL%=0:PROCDRAW:PROCON 3100 PRINTTAB(11,11)CHR$&87"1 OR 2 PLAYERS ? ";:REPEATI%=INSTR("12",GET$):UNTILI%:PRINT;I% 3200 P2%=(I%=2):IFP2%THEN3700 3300 PRINTTAB(10,13)CHR$&87"SKILL LEVEL? (1-9) "; 3400 REPEATI%=INSTR("123456789",GET$):UNTILI%:PRINT;I% 3500 LV%(1)=I% 3600 ENDPROC 3700 FORI%=1TO2:PRINTTAB(6,11+2*I%)CHR$&87"PLAYER ";I%" SKILL LEVEL? (1-9) "; 3800 REPEATL%=INSTR("123456789",GET$):UNTILL%:PRINT;L% 3900 LV%(I%)=L%:NEXT:ENDPROC 4000 4100 DEFPROCSHEET 4200 sheet%(PL%)=sheet%(PL%)+1 4300 TY%=3+(sheet%(PL%)-1)MOD5 4400 IFTY%=3IFsheet%(PL%)>1LV%(PL%)=LV%(PL%)+2:IFLV%(PL%)>9LV%(PL%)=9 4500 TX%=3 4600 FORI%=0TO39:IX%?I%=0:NEXT 4700 FORI%=0TO7:FORJ%=0TO4 4800 K%=39-(I%+J%*8):IX%?K%=TX%+8*I% 4900 IY%?K%=TY%+2*J%:NEXT:NEXT 5000 D%(PL%)=1:DF%(PL%)=FALSE 5100 ALS%(PL%)=40 5200 IFNOTP2%PROCDRAW 5300 ?sauceron=0 5400 REPEAT 5500 PROCPLAY(PL%) 5600 IFdead%THENbases%(PL%)=bases%(PL%)-1 5700 IF?dead=2THENbases%(PL%)=0 5800 PRINTTAB(9,23);bases%(PL%) 5900 PROCWAIT(70) 6000 IFdead%IFP2%PROCSWAP 6100 UNTILALS%(PL%)=0ORbases%(PL%)=0 6200 ENDPROC 6300 6400 DEFPROCSWAP 6500 IFbases%(3-PL%)=0ENDPROC 6600 IFbases%(PL%)=0PROCCHI:PROCDRAW:PRINTTAB(9,11)CHR$&87"GAME OVER PLAYER <";PL%">":PROCWAIT(200) 6700 PL%=3-PL% 6800 FORI%=0TO36STEP4 6900 T%=IX%!I%:IX%!I%=JX%!I%:JX%!I%=T% 7000 T%=IY%!I%:IY%!I%=JY%!I%:JY%!I%=T% 7100 NEXT:ENDPROC 7200 7300 DEFPROCDRAW 7400 PROCOFF:@%=6 7500 CLS 7600 VDU&9D84;&87:PRINTTAB(4,0)FNPLAYER(1)" Hi-Score "FNPLAYER(2) 7700 VDU&9D84;&87:PRINTTAB(5,1)~SC%(1)*16TAB(17,1)HI%*16TAB(28,1)SC%(2)*16 7800 PRINTCHR$&93 7900 FORI%=3TO16:PRINTCHR$&97:NEXT 8000 FORI%=17TO20:PRINTCHR$&92:NEXT 8100 FORI%=21TO22:PRINTCHR$&95:NEXT 8200 VDU&9D84;&87:PRINTTAB(3,23)"Bases:";bases%(PL%);TAB(17,23)"Level ";LV%(PL%)TAB(31,23)"Sheet:";sheet%(PL%) 8300 VDU&9D84;&81:PRINTTAB(4,24)"*** Acornsoft Space Invaders ***"; 8400 ENDPROC 8500 8600 DEFFNPLAYER(N%) 8700 LOCALA$ 8800 IFN%=PL%THENA$=CHR$&88 ELSEA$=" " 8900 =A$+"Player "+STR$N%+CHR$&89 9000 9100 DEFPROCOFF VDU23;10,32,0;0;0; 9200 ENDPROC 9300 DEFPROCON VDU23;10,&72,0;0;0; 9400 ENDPROC 9500 9600 DEFPROCPLAY(PL%) 9700 ENVELOPE1,1, 0,0,0,1,1,1, 126,-1,0,-4, 126,126 9800 Q%=LT%+(NS%+1)*(LV%(PL%)-1) 9900 FORI%=0TONS%:TT%?I%=Q%?I%:NEXT 10000 dead%=FALSE:?dead=FALSE 10100 ?bases=bases%(PL%) 10200 ?bonusflg=BNF%(PL%) 10300 IFP2%THEN?sauceron=0 10400 ?scoreX=PL%*46-34:?scoreY=1 10500 Q%=SC%(PL%) 10600 ?score=Q%:score?1=Q%DIV256 10700 ?D%=D%(PL%):?DF%=DF%(PL%) 10800 ?numals=ALS%(PL%) 10900 IFP2%PROCDRAW:PRINTTAB(12,11)CHR$&87"PLAY PLAYER <";PL%">":PROCWAIT(200):PROCDRAW 11000 CALLO% 11100 D%(PL%)=?D%:DF%(PL%)=?DF% 11200 SC%(PL%)=?score+score?1*256 11300 *FX15 11400 bases%(PL%)=?bases:ALS%(PL%)=?numals:BNF%(PL%)=?bonusflg 11500 dead%=(?dead<>FALSE) 11600 ENDPROC 11700 11800 DEFPROCTUNE 11900 LOCALD%,P%,Q%,R%,N% 12000 ENVELOPE1,3, 0,0,0,1,1,1, 126,-4,0,-4,126,80 12100 D%=5:Q%=0:R%=0 12200 FORN%=0TO60STEP4 12300 P%=12+(N%+(N%MOD12=8))MOD16 12400 SOUND1,1,P%*4,D% 12500 SOUND2,1,Q%*4,D% 12600 SOUND3,1,R%*4,D% 12700 R%=Q%:Q%=P%:NEXT:ENDPROC 12800 12900 DEFPROCCHI 13000 IFSC%(PL%)>HI%THENHI%=SC%(PL%):PROCTUNE ELSEPROCWAIT(100) 13100 ENDPROC 13200 13300 DEFFNMORE 13400 PROCCHI 13500 PROCDRAW 13600 FORI%=11TO12 13700 PRINTTAB(0,I%)CHR$&8DTAB(14,I%)"Game Over";:NEXT 13800 PRINTTAB(4,24)CHR$&81 CHR$&88"Press SPACE BAR to play again "; 13900 REPEATUNTILGET=32 14000 =TRUE 14100 14200 DEFPROCWAIT(N%) 14300 NOW=TIME:REPEATUNTILTIME-NOW>N% 14400 ENDPROC >LOAD "INVSRC" >LIST 1000 REM ACORNSOFT INVADERS SOURCE CODE 1005 REM ****************************** 1010 OSWRCH=&FFEE 1015 OSWORD=&FFF1 1020 OSBYTE=&FFF4 1025 XMin=2 1030 XMax=80 1035 rows=5 1040 cols=8 1045 numInv=cols*rows 1050 temp=&70 1055 index=temp+2 1060 saveX=index+1 1065 saveY=saveX+1 1070 plotX=saveY+1 1075 plotY=plotX+1 1080 objPtr=plotY+1 1085 block=&0100 1090 hlfBlk=block DIV 2 1095 prg=&2000 1100 dest=prg+&0B00 1105 org=&6000 1110 P%=prg 1115 LT%=P%+&0780 1120 Z%=LT%+hlfBlk 1125 NS%=9 1130 IX%=Z% 1135 IY%=IX%+numInv 1140 JX%=IY%+numInv 1145 JY%=JX%+numInv 1150 bonusFlg=JY%+numInv 1155 saucerOn=bonusFlg+1 1160 dead=saucerOn+1 1165 TT%=dead+1 1170 scoreX=TT%+NS%+1 1175 scoreY=scoreX+1 1180 score=scoreY+1 1185 D%=score+2 1190 DF%=D%+1 1195 numAls=DF%+1 1200 bases=numAls+1 1205 HI%=&150 1210 OTT%=P%+&09B5 1215 baseX=P%+&0B4D 1220 missileX=baseX+1 1225 oldTime=P%+&0B52 1230 bombX=oldTime+2 1235 expShip=P%+&0B64 1240 youExp=expShip+1 1245 bonusCnt=youExp+2 1250 saucExp=bonusCnt+2 1255 exitTime=P%+&0B6C 1260 exitFlg=exitTime+1 1265 xCoord=exitFlg+1 1270 fireKey=-74 AND &FF 1275 rightKey=-67 AND &FF 1280 leftKey=-98 AND &FF 1285 nNumObjs=10 1290 D8A6=P%+&08A6 1295 D8B0=P%+&08B0 1300 D8B5=P%+&08B5 1305 D8BE=P%+&08BE 1310 D8C7=P%+&08C7 1315 D9AF=P%+&09AF 1320 D9B0=P%+&09B0 1325 D9B6=P%+&09B6 1330 D9BE=P%+&09BE 1335 aObjPtrsLo=P%+&09C8 1340 aObjPtrsHi=aObjPtrsLo+nNumObjs 1345 D9DC=aObjPtrsHi+nNumObjs 1350 DA00=P%+&0A00 1355 DA24=P%+&0A24 1360 DA48=P%+&0A48 1365 DA4D=P%+&0A4D 1370 DB4F=P%+&0B4F 1375 DB50=P%+&0B50 1380 DB51=P%+&0B51 1385 DB53=P%+&0B53 1390 DB58=P%+&0B58 1395 DB5C=P%+&0B5C 1400 DB5D=P%+&0B5D 1405 DB5E=P%+&0B5E 1410 DB5F=P%+&0B5F 1415 DB60=P%+&0B60 1420 DB61=P%+&0B61 1425 DB62=P%+&0B62 1430 DB63=P%+&0B63 1435 DB66=P%+&0B66 1440 DB68=P%+&0B68 1445 DB6A=P%+&0B6A 1450 DB6B=P%+&0B6B 1455 DB6C=P%+&0B6C 1460 DB6E=P%+&0B6E 1465 DB6F=P%+&0B6F 1470 DB70=P%+&0B70 1475 DB79=P%+&0B79 1480 DB82=P%+&0B82 1485 DB8B=P%+&0B8B 1490 DB94=P%+&0B94 1495 DB95=P%+&0B95 1500 DB9D=P%+&0B9D 1505 FOR PASS=4 TO 7 STEP 3 1510 P%=prg 1515 O%=org 1520 [OPT PASS 1525 .init 1530 LDA #&FF 1535 STA DB51 1540 STA DB66 1545 LDA #&00 1550 STA missileX 1555 STA DB53 1560 STA expShip 1565 STA youExp 1570 STA bonusCnt 1575 STA saucExp 1580 STA index 1585 LDX #3 1590 .initLp 1595 STA bombX,X 1600 DEX 1605 BPL initLp 1610 LDA #8 1615 STA baseX 1620 LDX #7 1625 JSR plotBuilding 1630 LDX #26 1635 JSR plotBuilding 1640 LDX #45 1645 JSR plotBuilding 1650 LDX #64 1655 JSR plotBuilding 1660 LDA TT% 1665 STA OTT% 1670 LDA #0 1675 STA exitFlg 1680 JSR plotBase 1685 LDX #0 1690 .startPlot 1695 LDA IX%,X 1700 BEQ endPlot 1705 JSR plotAlien 1710 .endPlot 1715 INX 1720 CPX #40 1725 BNE startPlot 1730 JSR time 1735 STA oldTime 1740 .startWait 1745 JSR time 1750 SEC 1755 SBC oldTime 1760 CMP #70 1765 BCC startWait 1770 .mainLoop 1775 JSR objects 1780 JSR inKey0 1785 CPY #&1B 1790 BEQ escape 1795 LDA dead 1800 BNE exit 1805 LDA numAls 1810 BNE mainLoop 1815 JSR timeOut 1820 LDA saucExp 1825 BNE mainLoop 1830 LDA missileX 1835 BNE mainLoop 1840 .exit 1845 JSR timeOut 1850 LDA bonusCnt 1855 BNE mainLoop 1860 LDA exitFlg 1865 BEQ mainLoop 1870 .escape 1875 RTS 1880 .timeOut 1885 JSR time 1890 SEC 1895 SBC exitTime 1900 CMP #250 1905 BCC noTimeOut 1910 LDA #1 1915 STA exitFlg 1920 .noTimeOut 1925 RTS 1930 .getTime 1935 TXA 1940 PHA 1945 JSR time 1950 STA DB6C 1955 PLA 1960 TAX 1965 RTS 1970 .objects 1975 JSR time 1980 LDX #cols+1 1985 .objectsLp 1990 LDA D9B0 1995 SEC 2000 SBC D9BE,X 2005 CMP TT%,X 2010 BCC objectsTst 2015 LDA D9B0 2020 STA D9BE,X 2025 LDA aObjPtrsLo,X 2030 STA objPtr 2035 LDA aObjPtrsHi,X 2040 STA objPtr+1 2045 TXA 2050 PHA 2055 JSR object 2060 PLA 2065 TAX 2070 .objectsTst 2075 DEX 2080 BPL objectsLp 2085 RTS 2090 .object 2095 JMP (objPtr) 2100 .objectLp 2105 LDA dead 2110 BEQ B0F1 2115 LDA index 2120 BNE B0F1 2125 RTS 2130 .B0F1 2135 LDA expShip 2140 BEQ B100 2145 LDA DB62 2150 BEQ B100 2155 LDA index 2160 BNE B100 2165 RTS 2170 .B100 2175 LDA numAls 2180 BNE B106 2185 RTS 2190 .B106 2195 JSR S136 2200 INX 2205 CPX #numInv 2210 BNE B12E 2215 LDA DB61 2220 EOR #&FF 2225 STA DB61 2230 BNE B12C 2235 LDA DB95 2240 SEC 2245 SBC #&04 2250 CMP #&7E 2255 BNE B124 2260 LDA #&8E 2265 .B124 2270 STA DB95 2275 LDA #&00 2280 JSR S688 2285 .B12C 2290 LDX #&00 2295 .B12E 2300 STX index 2305 LDA DB60 2310 BEQ objectLp 2315 RTS 2320 .S136 2325 LDX index 2330 CPX #&00 2335 BNE B160 2340 LDA D% 2345 BNE B14D 2350 SEC 2355 LDA #&00 2360 SBC D9AF 2365 STA D% 2370 JMP B160 2375 .B14D 2380 LDA DF% 2385 BEQ B160 2390 LDA D% 2395 STA D9AF 2400 LDA #&00 2405 STA D% 2410 STA DF% 2415 .B160 2420 JSR S388 2425 LDX index 2430 LDA IX%,X 2435 STA DB60 2440 BNE B16E 2445 RTS 2450 .B16E 2455 LDA D% 2460 BNE B18B 2465 INC IY%,X 2470 LDA IY%,X 2475 CMP #&15 2480 BNE S19F 2485 JSR S468 2490 JSR S19F 2495 LDA #&02 2500 STA dead 2505 LDX #(numInv-1) 2510 RTS 2515 .B18B 2520 CLC 2525 ADC IX%,X 2530 STA IX%,X 2535 CMP #&02 2540 BEQ B19A 2545 CMP #&49 2550 BNE S19F 2555 .B19A 2560 LDA #&FF 2565 STA DF% 2570 .S19F 2575 LDA D% 2580 BNE plotAlien 2585 LDY IY%,X 2590 DEY 2595 LDA #&00 2600 JSR S1B2 2605 .plotAlien 2610 LDY IY%,X 2615 LDA #&02 2620 .S1B2 2625 PHA 2630 LDA #&6C 2635 CPX #&20 2640 BCC B1BB 2645 LDA #&6E 2650 .B1BB 2655 STA D8BE 2660 LDA #&3C 2665 CPX #&20 2670 BCC B1C6 2675 LDA #&3D 2680 .B1C6 2685 STA D8C7 2690 STX temp 2695 LDA IX%,X 2700 TAX 2705 PLA 2710 JSR plotBuild 2715 LDX temp 2720 RTS 2725 .plotBuilding 2730 LDA #&08 2735 LDY #&11 2740 .plotBuild 2745 STX saveX 2750 STY saveY 2755 TAX 2760 LDA saveX 2765 AND #&01 2770 BEQ B1E6 2775 INX 2780 .B1E6 2785 LDA D9DC,X 2790 TAY 2795 LDA DA24,X 2800 STA plotY 2805 .B1EF 2810 JSR S20D 2815 INC saveY 2820 LDA DA00,X 2825 STA plotX 2830 .B1F9 2835 LDA D8B5,Y 2840 JSR WRCHV 2845 INY 2850 DEC plotX 2855 BNE B1F9 2860 DEC plotY 2865 BNE B1EF 2870 RTS 2875 .S209 2880 STX saveX 2885 STY saveY 2890 .S20D 2895 LDA #&1F 2900 JSR OSWRCH 2905 LDA saveX 2910 STA xCoord 2915 CMP #2 2920 BPL gotCoOrd 2925 LDA #2 2930 .gotCoOrd 2935 LSR A 2940 JSR OSWRCH 2945 LDA saveY 2950 JMP OSWRCH 2955 RTS 2960 .S227 \ OBJECT? 2965 LDA youExp 2970 BEQ B22D 2975 RTS 2980 .B22D 2985 LDA dead 2990 BEQ moveBase 2995 RTS 3000 .moveBase 3005 JSR tryFire 3010 LDX #rightKey \ inKey-67=X 3015 JSR inKey 3020 STA temp 3025 LDX #leftKey \ inKey-98=Z 3030 JSR inKey 3035 SEC 3040 SBC temp 3045 CLC 3050 ADC baseX 3055 CMP #&01 3060 BEQ plotBase 3065 CMP #&48 3070 BEQ plotBase 3075 STA baseX 3080 .plotBase 3085 LDX baseX 3090 LDY #&15 3095 LDA #&04 3100 JMP plotBuild 3105 .S25E 3110 LDA youExp 3115 BNE B264 3120 RTS 3125 .B264 3130 LDX baseX 3135 INX 3140 LDY #&15 3145 JSR plotBuild 3150 LDA youExp 3155 CLC 3160 ADC #&02 3165 CMP #&1A 3170 BNE B279 3175 LDA #&00 3180 .B279 3185 STA youExp 3190 RTS 3195 .tryFire 3200 LDX #fireKey \ inKey-74=Return 3205 JSR inKey 3210 BEQ B287 3215 EOR DB51 3220 .B287 3225 STX DB51 3230 BEQ tryFireRet 3235 .fireNot 3240 LDA expShip 3245 BNE noFire 3250 LDA missileX 3255 BNE noFire 3260 LDA baseX 3265 CLC 3270 ADC #&04 3275 STA missileX 3280 LDA #&15 3285 STA DB4F 3290 LDA #&02 3295 JSR S688 3300 RTS 3305 .noFire 3310 LDA #&00 3315 STA DB51 3320 .tryFireRet 3325 RTS 3330 .S2B0 \ OBJECT? 3335 LDX missileX 3340 BEQ S2F2Ret 3345 LDY DB4F 3350 TXA 3355 LSR A 3360 LDA #&15 3365 BCC B2C0 3370 LDA #&4A 3375 .B2C0 3380 STA DB50 3385 EOR #&FF 3390 STA temp 3395 CPY #&15 3400 BEQ B2D3 3405 JSR S6DC 3410 AND temp 3415 JSR WRCHV 3420 .B2D3 3425 DEC DB4F 3430 LDY DB4F 3435 CPY #&01 3440 BEQ S2F2 3445 LDX missileX 3450 JSR S6DC 3455 STA temp 3460 AND DB50 3465 .missChk 3470 BNE missHit 3475 LDA temp 3480 ORA DB50 3485 .AMissChk 3490 JMP WRCHV 3495 .S2F2 3500 JSR S5CA 3505 LDA #&00 3510 STA missileX 3515 .S2F2Ret 3520 RTS 3525 .missHit 3530 CPY #&02 3535 BNE B302 3540 JMP hitSaucer 3545 .B302 3550 DEX 3555 STX saveX 3560 STY saveY 3565 LDX #(numInv-1) 3570 .hitlp 3575 SEC 3580 LDA saveX 3585 SBC IX%,X 3590 CMP #5 3595 BCS nohit 3600 SEC 3605 LDA saveY 3610 SBC IY%,X 3615 CMP #&02 3620 BCC B337 3625 .nohit 3630 DEX 3635 BPL hitlp 3640 LDA DB50 3645 EOR #&FF 3650 AND temp 3655 JSR WRCHV 3660 LDA #&0A 3665 STA expShip 3670 LDA #&00 3675 STA DB62 3680 JMP S2F2 3685 .B337 3690 LDA #&00 3695 STA TT% 3700 STX DB66 3705 LDA #&0A 3710 STA expShip 3715 STA DB62 3720 LDA #&04 3725 JSR S688 3730 LDY IY%,X 3735 LDA #&0E 3740 JSR S1B2 3745 TXA 3750 LSR A 3755 LSR A 3760 LSR A 3765 TAY 3770 LDX DA48,Y 3775 LDY #&00 3780 JSR S5F2 3785 JMP S2F2 3790 .hitSaucer 3795 LDA saucExp 3800 BNE hitSaucerRet 3805 LDA #&08 3810 STA saucExp 3815 LDA DB68 3820 CMP #&02 3825 BPL B377 3830 LDA #&02 3835 .B377 3840 CMP #&44 3845 BMI B37D 3850 LDA #&44 3855 .B37D 3860 STA DB68 3865 LDA #&07 3870 JSR S688 3875 .hitSaucerRet 3880 JMP S2F2 3885 .S388 3890 LDA D8A6 3895 BNE S38E 3900 RTS 3905 .S38E 3910 LDA IX%,X 3915 BEQ S38ERet 3920 SEC 3925 SBC baseX 3930 BPL B39B 3935 EOR #&FF 3940 .B39B 3945 LSR A 3950 STA temp 3955 SEC 3960 LDA #&0A 3965 SBC temp 3970 BMI S38ERet 3975 ASL A 3980 STA temp 3985 JSR S669 3990 CMP temp 3995 BCC B3B0 4000 .S38ERet 4005 RTS 4010 .B3B0 4015 LDA IX%,X 4020 LDY #&03 4025 .bombLp 4030 LDA bombX,Y 4035 BEQ S3BE 4040 DEY 4045 BPL bombLp 4050 RTS 4055 .S3BE 4060 STX saveX 4065 .B3C0 4070 TXA 4075 SEC 4080 SBC #&08 4085 TAX 4090 BCC B3CD 4095 LDA IX%,X 4100 BEQ B3C0 4105 RTS 4110 .B3CD 4115 LDX saveX 4120 LDA IX%,X 4125 CLC 4130 ADC #&03 4135 STA bombX,Y 4140 LDA IY%,X 4145 CLC 4150 ADC #&02 4155 STA DB58,Y 4160 RTS 4165 .S3E2 4170 LDX DB53 4175 INX 4180 CPX #&04 4185 BNE B3EC 4190 LDX #&00 4195 .B3EC 4200 STX DB53 4205 LDA bombX,X 4210 BEQ S436Ret 4215 LDY DB58,X 4220 PHA 4225 LSR A 4230 LDA #&15 4235 BCC B3FF 4240 LDA #&4A 4245 .B3FF 4250 STA DB50 4255 EOR #&FF 4260 STA temp 4265 PLA 4270 TAX 4275 JSR S6DC 4280 AND temp 4285 JSR WRCHV 4290 LDX DB53 4295 INC DB58,X 4300 LDY DB58,X 4305 CPY #&17 4310 BEQ S436 4315 LDX DB53 4320 LDA bombX,X 4325 TAX 4330 JSR S6DC 4335 STA temp 4340 AND DB50 4345 BNE S442 4350 .B42E 4355 LDA temp 4360 ORA DB50 4365 JMP WRCHV 4370 .S436 4375 LDX DB53 4380 JSR S5D7 4385 LDA #&00 4390 STA bombX,X 4395 .S436Ret 4400 RTS 4405 .S442 4410 CPY #&15 4415 BCC B45B 4420 DEX 4425 TXA 4430 SEC 4435 SBC baseX 4440 CMP #&07 4445 BCS B42E 4450 JSR S468 4455 BNE B42E 4460 JMP S436 4465 JMP S436 4470 .B45B 4475 LDA DB50 4480 EOR #&FF 4485 AND temp 4490 JSR WRCHV 4495 JMP S436 4500 .S468 4505 LDA dead 4510 BNE S442Ret 4515 LDA #&01 4520 STA dead 4525 TXA 4530 PHA 4535 JSR getTime 4540 LDA #&12 4545 STA youExp 4550 LDA #&08 4555 JSR S688 4560 JSR getTime 4565 PLA 4570 TAX 4575 LDA #&00 4580 .S442Ret 4585 RTS \ OBJECT? 4590 .S489 4595 LDA saucExp 4600 BNE S489Ret 4605 LDA saucerOn 4610 BNE B4BD 4615 LDA dead 4620 BNE S489Ret 4625 LDA numAls 4630 BEQ S489Ret 4635 JSR S669 4640 CMP #&05 4645 BCC B4A5 4650 .S489Ret 4655 RTS 4660 .B4A5 4665 LDA #&01 4670 STA saucerOn 4675 LDX #&F6 4680 LDY #&01 4685 JSR S669 4690 BPL B4B7 4695 LDX #&50 4700 LDY #&FF 4705 .B4B7 4710 STX DB68 4715 STY DB6A 4720 .B4BD 4725 LDA DB68 4730 TAX 4735 LDY #&02 4740 CLC 4745 ADC DB6A 4750 CMP #&F6 4755 BEQ B4CF 4760 CMP #&50 4765 BNE B4D5 4770 .B4CF 4775 LDA #&00 4780 STA saucerOn 4785 RTS 4790 .B4D5 4795 TAX 4800 STX DB68 4805 LDA #&1A 4810 JMP plotBuild 4815 .S4DE 4820 LDA expShip 4825 BEQ B52D 4830 LDX DB66 4835 BMI B510 4840 LDA index 4845 BNE B52D 4850 LDA OTT% 4855 STA TT% 4860 LDA IX%,X 4865 STA DB62 4870 LDA IY%,X 4875 STA DB63 4880 LDA #&00 4885 STA IX%,X 4890 LDA #&FF 4895 STA DB66 4900 DEC numAls 4905 BNE B510 4910 JSR getTime 4915 .B510 4920 LDX DB62 4925 BEQ B51E 4930 LDY DB63 4935 LDA expShip 4940 JSR plotBuild 4945 .B51E 4950 LDA expShip 4955 CLC 4960 ADC #&02 4965 CMP #&12 4970 BNE B52A 4975 LDA #&00 4980 .B52A 4985 STA expShip 4990 .B52D 4995 RTS 5000 .S52E \ Object? 5005 LDA saucExp 5010 BNE B534 5015 RTS 5020 .B534 5025 DEC saucExp 5030 BNE B549 5035 LDX DB68 5040 LDY #&02 5045 LDA #&1C 5050 JSR plotBuild 5055 LDA #&00 5060 STA saucerOn 5065 RTS 5070 .B549 5075 CMP #&04 5080 BEQ B550 5085 BCS B584 5090 RTS 5095 .B550 5100 JSR S669 5105 AND #&07 5110 TAX 5115 LDA D9B6,X 5120 PHA 5125 TAX 5130 LDY #&00 5135 JSR S5F2 5140 LDA DB68 5145 CLC 5150 ADC #&01 5155 TAX 5160 LDY #&02 5165 JSR S209 5170 LDA #&83 5175 JSR OSWRCH 5180 PLA 5185 LDY #&00 5190 STY DB5F 5195 JSR S64A 5200 LDA #&30 5205 JSR OSWRCH 5210 LDA #&93 5215 JMP OSWRCH 5220 .B584 5225 ASL A 5230 ADC #&12 5235 LDX DB68 5240 LDY #&02 5245 JMP plotBuild 5250 .S58F 5255 LDA bonusCnt 5260 BNE B595 5265 RTS 5270 .B595 5275 LDA #&06 5280 JSR S688 5285 DEC bonusCnt 5290 RTS 5295 .S59E \ Object? 5300 LDA bonusFlg 5305 BEQ S59ERet 5310 LDX #&06 5315 LDY #&18 5320 JSR S209 5325 LDX DB6B 5330 INX 5335 CPX #&C2 5340 BNE B5B4 5345 LDX #&00 5350 .B5B4 5355 STX DB6B 5360 LDY #&23 5365 .B5B9 5370 LDA DA4D,X 5375 JSR OSWRCH 5380 INX 5385 CPX #&C2 5390 BNE B5C6 5395 LDX #&00 5400 .B5C6 5405 DEY 5410 BNE B5B9 5415 .S59ERet 5420 RTS 5425 .S5CA 5430 TXA 5435 PHA 5440 LDX #&03 5445 .S5CALp 5450 JSR S5D7 5455 DEX 5460 BPL S5CALp 5465 PLA 5470 TAX 5475 RTS 5480 .S5D7 5485 LDA missileX 5490 BEQ S5D7Ret 5495 CMP bombX,X 5500 BNE S5D7Ret 5505 LDA DB4F 5510 CMP DB58,X 5515 BNE S5D7Ret 5520 LDA #&00 5525 STA bombX,X 5530 STA missileX 5535 .S5D7Ret 5540 RTS 5545 .S5F2 5550 SED 5555 CLC 5560 TXA 5565 ADC score 5570 STA score 5575 TYA 5580 ADC D8B0 5585 STA D8B0 5590 CLD 5595 LDA bonusFlg 5600 BNE B633 5605 LDA D8B0 5610 CMP #&01 5615 BCC B633 5620 LDA score 5625 CMP #&50 5630 BCC B633 5635 LDA #&01 5640 STA bonusFlg 5645 LDA #&05 5650 STA bonusCnt 5655 LDX #&12 5660 LDY #&17 5665 JSR S209 5670 INC bases 5675 CLC 5680 LDA bases 5685 ADC #&30 5690 JSR OSWRCH 5695 .B633 5700 LDX scoreX 5705 LDY scoreY 5710 JSR S209 5715 LDA #&00 5720 STA DB5F 5725 LDA D8B0 5730 JSR S64A 5735 LDA score 5740 .S64A 5745 PHA 5750 LSR A 5755 LSR A 5760 LSR A 5765 LSR A 5770 JSR S655 5775 PLA 5780 AND #&0F 5785 .S655 5790 PHA 5795 ORA DB5F 5800 STA DB5F 5805 BNE B662 5810 PLA 5815 LDA #&F0 5820 PHA 5825 .B662 5830 PLA 5835 CLC 5840 ADC #&30 5845 JMP OSWRCH 5850 .S669 5855 TXA 5860 PHA 5865 LDX #&08 5870 .B66D 5875 LDA DB5C 5880 AND #&48 5885 ADC #&38 5890 ASL A 5895 ASL A 5900 ROL DB5E 5905 ROL DB5D 5910 ROL DB5C 5915 DEX 5920 BNE B66D 5925 PLA 5930 TAX 5935 LDA DB5C 5940 RTS 5945 .S688 5950 STA temp 5955 TXA 5960 PHA 5965 TYA 5970 PHA 5975 LDX temp 5980 LDA DB79,X 5985 STA temp 5990 .S688Lp 5995 LDA DB79,X 6000 STA DB70 6005 LDA DB82,X 6010 STA DB6F 6015 LDY #&02 6020 LDA DB8B,X 6025 JSR S6CC 6030 LDA DB94,X 6035 JSR S6CC 6040 LDA DB9D,X 6045 JSR S6CC 6050 TXA 6055 PHA 6060 LDX #&6F 6065 LDY #&2B 6070 LDA #&07 6075 \ Generate a sound 6080 JSR OSWORD 6085 PLA 6090 TAX 6095 INX 6100 DEC temp 6105 BPL S688Lp 6110 PLA 6115 TAY 6120 PLA 6125 TAX 6130 RTS 6135 .S6CC 6140 STA DB6F,Y 6145 INY 6150 ASL A 6155 LDA #&00 6160 BCC B6D7 6165 LDA #&FF 6170 .B6D7 6175 STA DB6F,Y 6180 INY 6185 RTS 6190 .S6DC 6195 JSR S209 6200 LDA #&87 6205 \ Read character at text cursor position 6210 JSR OSBYTE 6215 TXA 6220 LDX saveX 6225 LDY saveY 6230 AND #&7F 6235 RTS 6240 .WRCHV 6245 ORA #&A0 6250 PHA 6255 LDA DB6E 6260 CMP #XMin 6265 BMI WRCHVNxt 6270 CMP #XMax 6275 BPL WRCHVNxt 6280 PLA 6285 JSR OSWRCH 6290 PHA 6295 .WRCHVNxt 6300 INC DB6E 6305 INC DB6E 6310 PLA 6315 RTS 6320 .inKey 6325 LDY #&FF 6330 LDA #&81 6335 JSR OSBYTE 6340 TXA 6345 RTS 6350 \ == 130 microseconds 6355 .inKey0 6360 LDX #&00 6365 LDY #&00 6370 LDA #&81 6375 JMP OSBYTE 6380 .time 6385 LDY #&29 6390 LDX #&B0 6395 LDA #&01 6400 \ Read the elapsed time clock 6405 JSR OSWORD 6410 LDA D9B0 6415 RTS 6420 .relocate 6425 LDA #&00 6430 STA &80 6435 LDA #&19:\ < PAGE for DFS 6440 STA &81 6445 LDA #&00 6450 STA &82 6455 LDA #&0E:\ < PAGE for CFS 6460 STA &83 6465 LDA #&8C:\ *TAPE 6470 LDX #&00 6475 JSR OSBYTE 6480 LDX #&1F 6485 LDY #&00 6490 .loop 6495 LDA (&80),Y 6500 STA (&82),Y 6505 INY 6510 BNE loop 6515 INC &81 6520 INC &83 6525 DEX 6530 BNE loop 6535 LDA #&0E 6540 STA &18:\ Set page for CFS 6545 LDA #&8A:\ Insert value into buffer - 138 / &8A 6550 LDY #ASC"O" 6555 JSR OSBYTE 6560 LDY #ASC"." 6565 JSR OSBYTE 6570 LDY #&0D:\ OLD - OLD 6575 JSR OSBYTE 6580 LDY #&F9:\ "RUN" keyword token 6585 JSR OSBYTE 6590 LDY #&0D:\ 6595 JSR OSBYTE 6600 BRK:\ Generate an error 6605 ] 6610 NEXT PASS 6615 relocate=dest+relocate-prg 6620 pData=(O% DIV 256)*256+128 6625 pObjPtrs=pData+128+&01C8 6630 PROC_OBEY("*LOAD INVDATA "+STR$~pData) 6635 P%=pObjPtrs 6640 [ 6645 OPT 3 6650 EQUB FN_LO(objectLp) 6655 EQUB FN_LO(S227) 6660 EQUB FN_LO(S2B0) 6665 EQUB FN_LO(S3E2) 6670 EQUB FN_LO(S4DE) 6675 EQUB FN_LO(S58F) 6680 EQUB FN_LO(S489) 6685 EQUB FN_LO(S52E) 6690 EQUB FN_LO(S25E) 6695 EQUB FN_LO(S59E) 6700 EQUB FN_HI(objectLp) 6705 EQUB FN_HI(S227) 6710 EQUB FN_HI(S2B0) 6715 EQUB FN_HI(S3E2) 6720 EQUB FN_HI(S4DE) 6725 EQUB FN_HI(S58F) 6730 EQUB FN_HI(S489) 6735 EQUB FN_HI(S52E) 6740 EQUB FN_HI(S25E) 6745 EQUB FN_HI(S59E) 6750 ] 6755 PROC_OBEY("*SAVE INVCODE "+STR$~org+" "+STR$~(pData+&480)+" "+STR$~relocate) 6760 PRINT"NOW TYPE THE FOLLOWING:" 6765 PRINT"LOAD ""INVGAME""" 6770 PRINT"*LOAD INVCODE "+STR$~dest 6775 PRINT"*SAVE INVADER 1900 3700 "+STR$~relocate 6780 PRINT"PRESS +" 6785 STOP 6790 6795 DEF FN_LO(X):=X AND 255 6800 6805 DEF FN_HI(X):=X DIV 256 6810 6815 DEF PROC_OBEY(S$):PRINT S$:OSCLI S$:ENDPROC 6820 9999 END >RUN 2000 OPT PASS 2000 .init 2000 A9 FF LDA #&FF 2002 8D 51 2B STA DB51 2005 8D 66 2B STA DB66 2008 A9 00 LDA #&00 200A 8D 4E 2B STA missileX 200D 8D 53 2B STA DB53 2010 8D 64 2B STA expShip 2013 8D 65 2B STA youExp 2016 8D 67 2B STA bonusCnt 2019 8D 69 2B STA saucExp 201C 85 72 STA index 201E A2 03 LDX #3 2020 .initLp 2020 9D 54 2B STA bombX,X 2023 CA DEX 2024 10 FA BPL initLp 2026 A9 08 LDA #8 2028 8D 4D 2B STA baseX 202B A2 07 LDX #7 202D 20 D6 21 JSR plotBuilding 2030 A2 1A LDX #26 2032 20 D6 21 JSR plotBuilding 2035 A2 2D LDX #45 2037 20 D6 21 JSR plotBuilding 203A A2 40 LDX #64 203C 20 D6 21 JSR plotBuilding 203F AD A3 28 LDA TT% 2042 8D B5 29 STA OTT% 2045 A9 00 LDA #0 2047 8D 6D 2B STA exitFlg 204A 20 54 22 JSR plotBase 204D A2 00 LDX #0 204F .startPlot 204F BD 00 28 LDA IX%,X 2052 F0 03 BEQ endPlot 2054 20 AD 21 JSR plotAlien 2057 .endPlot 2057 E8 INX 2058 E0 28 CPX #40 205A D0 F3 BNE startPlot 205C 20 19 27 JSR time 205F 8D 52 2B STA oldTime 2062 .startWait 2062 20 19 27 JSR time 2065 38 SEC 2066 ED 52 2B SBC oldTime 2069 C9 46 CMP #70 206B 90 F5 BCC startWait 206D .mainLoop 206D 20 B8 20 JSR objects 2070 20 10 27 JSR inKey0 2073 C0 1B CPY #&1B 2075 F0 24 BEQ escape 2077 AD A2 28 LDA dead 207A D0 12 BNE exit 207C AD B3 28 LDA numAls 207F D0 EC BNE mainLoop 2081 20 9C 20 JSR timeOut 2084 AD 69 2B LDA saucExp 2087 D0 E4 BNE mainLoop 2089 AD 4E 2B LDA missileX 208C D0 DF BNE mainLoop 208E .exit 208E 20 9C 20 JSR timeOut 2091 AD 67 2B LDA bonusCnt 2094 D0 D7 BNE mainLoop 2096 AD 6D 2B LDA exitFlg 2099 F0 D2 BEQ mainLoop 209B .escape 209B 60 RTS 209C .timeOut 209C 20 19 27 JSR time 209F 38 SEC 20A0 ED 6C 2B SBC exitTime 20A3 C9 FA CMP #250 20A5 90 05 BCC noTimeOut 20A7 A9 01 LDA #1 20A9 8D 6D 2B STA exitFlg 20AC .noTimeOut 20AC 60 RTS 20AD .getTime 20AD 8A TXA 20AE 48 PHA 20AF 20 19 27 JSR time 20B2 8D 6C 2B STA DB6C 20B5 68 PLA 20B6 AA TAX 20B7 60 RTS 20B8 .objects 20B8 20 19 27 JSR time 20BB A2 09 LDX #cols+1 20BD .objectsLp 20BD AD B0 29 LDA D9B0 20C0 38 SEC 20C1 FD BE 29 SBC D9BE,X 20C4 DD A3 28 CMP TT%,X 20C7 90 17 BCC objectsTst 20C9 AD B0 29 LDA D9B0 20CC 9D BE 29 STA D9BE,X 20CF BD C8 29 LDA aObjPtrsLo,X 20D2 85 77 STA objPtr 20D4 BD D2 29 LDA aObjPtrsHi,X 20D7 85 78 STA objPtr+1 20D9 8A TXA 20DA 48 PHA 20DB 20 E4 20 JSR object 20DE 68 PLA 20DF AA TAX 20E0 .objectsTst 20E0 CA DEX 20E1 10 DA BPL objectsLp 20E3 60 RTS 20E4 .object 20E4 6C 77 00 JMP (objPtr) 20E7 .objectLp 20E7 AD A2 28 LDA dead 20EA F0 05 BEQ B0F1 20EC A5 72 LDA index 20EE D0 01 BNE B0F1 20F0 60 RTS 20F1 .B0F1 20F1 AD 64 2B LDA expShip 20F4 F0 0A BEQ B100 20F6 AD 62 2B LDA DB62 20F9 F0 05 BEQ B100 20FB A5 72 LDA index 20FD D0 01 BNE B100 20FF 60 RTS 2100 .B100 2100 AD B3 28 LDA numAls 2103 D0 01 BNE B106 2105 60 RTS 2106 .B106 2106 20 36 21 JSR S136 2109 E8 INX 210A E0 28 CPX #numInv 210C D0 20 BNE B12E 210E AD 61 2B LDA DB61 2111 49 FF EOR #&FF 2113 8D 61 2B STA DB61 2116 D0 14 BNE B12C 2118 AD 95 2B LDA DB95 211B 38 SEC 211C E9 04 SBC #&04 211E C9 7E CMP #&7E 2120 D0 02 BNE B124 2122 A9 8E LDA #&8E 2124 .B124 2124 8D 95 2B STA DB95 2127 A9 00 LDA #&00 2129 20 88 26 JSR S688 212C .B12C 212C A2 00 LDX #&00 212E .B12E 212E 86 72 STX index 2130 AD 60 2B LDA DB60 2133 F0 B2 BEQ objectLp 2135 60 RTS 2136 .S136 2136 A6 72 LDX index 2138 E0 00 CPX #&00 213A D0 24 BNE B160 213C AD B1 28 LDA D% 213F D0 0C BNE B14D 2141 38 SEC 2142 A9 00 LDA #&00 2144 ED AF 29 SBC D9AF 2147 8D B1 28 STA D% 214A 4C 60 21 JMP B160 214D .B14D 214D AD B2 28 LDA DF% 2150 F0 0E BEQ B160 2152 AD B1 28 LDA D% 2155 8D AF 29 STA D9AF 2158 A9 00 LDA #&00 215A 8D B1 28 STA D% 215D 8D B2 28 STA DF% 2160 .B160 2160 20 88 23 JSR S388 2163 A6 72 LDX index 2165 BD 00 28 LDA IX%,X 2168 8D 60 2B STA DB60 216B D0 01 BNE B16E 216D 60 RTS 216E .B16E 216E AD B1 28 LDA D% 2171 D0 18 BNE B18B 2173 FE 28 28 INC IY%,X 2176 BD 28 28 LDA IY%,X 2179 C9 15 CMP #&15 217B D0 22 BNE S19F 217D 20 68 24 JSR S468 2180 20 9F 21 JSR S19F 2183 A9 02 LDA #&02 2185 8D A2 28 STA dead 2188 A2 27 LDX #(numInv-1) 218A 60 RTS 218B .B18B 218B 18 CLC 218C 7D 00 28 ADC IX%,X 218F 9D 00 28 STA IX%,X 2192 C9 02 CMP #&02 2194 F0 04 BEQ B19A 2196 C9 49 CMP #&49 2198 D0 05 BNE S19F 219A .B19A 219A A9 FF LDA #&FF 219C 8D B2 28 STA DF% 219F .S19F 219F AD B1 28 LDA D% 21A2 D0 09 BNE plotAlien 21A4 BC 28 28 LDY IY%,X 21A7 88 DEY 21A8 A9 00 LDA #&00 21AA 20 B2 21 JSR S1B2 21AD .plotAlien 21AD BC 28 28 LDY IY%,X 21B0 A9 02 LDA #&02 21B2 .S1B2 21B2 48 PHA 21B3 A9 6C LDA #&6C 21B5 E0 20 CPX #&20 21B7 90 02 BCC B1BB 21B9 A9 6E LDA #&6E 21BB .B1BB 21BB 8D BE 28 STA D8BE 21BE A9 3C LDA #&3C 21C0 E0 20 CPX #&20 21C2 90 02 BCC B1C6 21C4 A9 3D LDA #&3D 21C6 .B1C6 21C6 8D C7 28 STA D8C7 21C9 86 70 STX temp 21CB BD 00 28 LDA IX%,X 21CE AA TAX 21CF 68 PLA 21D0 20 DA 21 JSR plotBuild 21D3 A6 70 LDX temp 21D5 60 RTS 21D6 .plotBuilding 21D6 A9 08 LDA #&08 21D8 A0 11 LDY #&11 21DA .plotBuild 21DA 86 73 STX saveX 21DC 84 74 STY saveY 21DE AA TAX 21DF A5 73 LDA saveX 21E1 29 01 AND #&01 21E3 F0 01 BEQ B1E6 21E5 E8 INX 21E6 .B1E6 21E6 BD DC 29 LDA D9DC,X 21E9 A8 TAY 21EA BD 24 2A LDA DA24,X 21ED 85 76 STA plotY 21EF .B1EF 21EF 20 0D 22 JSR S20D 21F2 E6 74 INC saveY 21F4 BD 00 2A LDA DA00,X 21F7 85 75 STA plotX 21F9 .B1F9 21F9 B9 B5 28 LDA D8B5,Y 21FC 20 EC 26 JSR WRCHV 21FF C8 INY 2200 C6 75 DEC plotX 2202 D0 F5 BNE B1F9 2204 C6 76 DEC plotY 2206 D0 E7 BNE B1EF 2208 60 RTS 2209 .S209 2209 86 73 STX saveX 220B 84 74 STY saveY 220D .S20D 220D A9 1F LDA #&1F 220F 20 EE FF JSR OSWRCH 2212 A5 73 LDA saveX 2214 8D 6E 2B STA xCoord 2217 C9 02 CMP #2 2219 10 02 BPL gotCoOrd 221B A9 02 LDA #2 221D .gotCoOrd 221D 4A LSR A 221E 20 EE FF JSR OSWRCH 2221 A5 74 LDA saveY 2223 4C EE FF JMP OSWRCH 2226 60 RTS 2227 .S227 \ OBJECT? 2227 AD 65 2B LDA youExp 222A F0 01 BEQ B22D 222C 60 RTS 222D .B22D 222D AD A2 28 LDA dead 2230 F0 01 BEQ moveBase 2232 60 RTS 2233 .moveBase 2233 20 7D 22 JSR tryFire 2236 A2 BD LDX #rightKey \ inKey-67=X 2238 20 07 27 JSR inKey 223B 85 70 STA temp 223D A2 9E LDX #leftKey \ inKey-98=Z 223F 20 07 27 JSR inKey 2242 38 SEC 2243 E5 70 SBC temp 2245 18 CLC 2246 6D 4D 2B ADC baseX 2249 C9 01 CMP #&01 224B F0 07 BEQ plotBase 224D C9 48 CMP #&48 224F F0 03 BEQ plotBase 2251 8D 4D 2B STA baseX 2254 .plotBase 2254 AE 4D 2B LDX baseX 2257 A0 15 LDY #&15 2259 A9 04 LDA #&04 225B 4C DA 21 JMP plotBuild 225E .S25E 225E AD 65 2B LDA youExp 2261 D0 01 BNE B264 2263 60 RTS 2264 .B264 2264 AE 4D 2B LDX baseX 2267 E8 INX 2268 A0 15 LDY #&15 226A 20 DA 21 JSR plotBuild 226D AD 65 2B LDA youExp 2270 18 CLC 2271 69 02 ADC #&02 2273 C9 1A CMP #&1A 2275 D0 02 BNE B279 2277 A9 00 LDA #&00 2279 .B279 2279 8D 65 2B STA youExp 227C 60 RTS 227D .tryFire 227D A2 B6 LDX #fireKey \ inKey-74=Return 227F 20 07 27 JSR inKey 2282 F0 03 BEQ B287 2284 4D 51 2B EOR DB51 2287 .B287 2287 8E 51 2B STX DB51 228A F0 23 BEQ tryFireRet 228C .fireNot 228C AD 64 2B LDA expShip 228F D0 19 BNE noFire 2291 AD 4E 2B LDA missileX 2294 D0 14 BNE noFire 2296 AD 4D 2B LDA baseX 2299 18 CLC 229A 69 04 ADC #&04 229C 8D 4E 2B STA missileX 229F A9 15 LDA #&15 22A1 8D 4F 2B STA DB4F 22A4 A9 02 LDA #&02 22A6 20 88 26 JSR S688 22A9 60 RTS 22AA .noFire 22AA A9 00 LDA #&00 22AC 8D 51 2B STA DB51 22AF .tryFireRet 22AF 60 RTS 22B0 .S2B0 \ OBJECT? 22B0 AE 4E 2B LDX missileX 22B3 F0 45 BEQ S2F2Ret 22B5 AC 4F 2B LDY DB4F 22B8 8A TXA 22B9 4A LSR A 22BA A9 15 LDA #&15 22BC 90 02 BCC B2C0 22BE A9 4A LDA #&4A 22C0 .B2C0 22C0 8D 50 2B STA DB50 22C3 49 FF EOR #&FF 22C5 85 70 STA temp 22C7 C0 15 CPY #&15 22C9 F0 08 BEQ B2D3 22CB 20 DC 26 JSR S6DC 22CE 25 70 AND temp 22D0 20 EC 26 JSR WRCHV 22D3 .B2D3 22D3 CE 4F 2B DEC DB4F 22D6 AC 4F 2B LDY DB4F 22D9 C0 01 CPY #&01 22DB F0 15 BEQ S2F2 22DD AE 4E 2B LDX missileX 22E0 20 DC 26 JSR S6DC 22E3 85 70 STA temp 22E5 2D 50 2B AND DB50 22E8 .missChk 22E8 D0 11 BNE missHit 22EA A5 70 LDA temp 22EC 0D 50 2B ORA DB50 22EF .AMissChk 22EF 4C EC 26 JMP WRCHV 22F2 .S2F2 22F2 20 CA 25 JSR S5CA 22F5 A9 00 LDA #&00 22F7 8D 4E 2B STA missileX 22FA .S2F2Ret 22FA 60 RTS 22FB .missHit 22FB C0 02 CPY #&02 22FD D0 03 BNE B302 22FF 4C 64 23 JMP hitSaucer 2302 .B302 2302 CA DEX 2303 86 73 STX saveX 2305 84 74 STY saveY 2307 A2 27 LDX #(numInv-1) 2309 .hitlp 2309 38 SEC 230A A5 73 LDA saveX 230C FD 00 28 SBC IX%,X 230F C9 05 CMP #5 2311 B0 0A BCS nohit 2313 38 SEC 2314 A5 74 LDA saveY 2316 FD 28 28 SBC IY%,X 2319 C9 02 CMP #&02 231B 90 1A BCC B337 231D .nohit 231D CA DEX 231E 10 E9 BPL hitlp 2320 AD 50 2B LDA DB50 2323 49 FF EOR #&FF 2325 25 70 AND temp 2327 20 EC 26 JSR WRCHV 232A A9 0A LDA #&0A 232C 8D 64 2B STA expShip 232F A9 00 LDA #&00 2331 8D 62 2B STA DB62 2334 4C F2 22 JMP S2F2 2337 .B337 2337 A9 00 LDA #&00 2339 8D A3 28 STA TT% 233C 8E 66 2B STX DB66 233F A9 0A LDA #&0A 2341 8D 64 2B STA expShip 2344 8D 62 2B STA DB62 2347 A9 04 LDA #&04 2349 20 88 26 JSR S688 234C BC 28 28 LDY IY%,X 234F A9 0E LDA #&0E 2351 20 B2 21 JSR S1B2 2354 8A TXA 2355 4A LSR A 2356 4A LSR A 2357 4A LSR A 2358 A8 TAY 2359 BE 48 2A LDX DA48,Y 235C A0 00 LDY #&00 235E 20 F2 25 JSR S5F2 2361 4C F2 22 JMP S2F2 2364 .hitSaucer 2364 AD 69 2B LDA saucExp 2367 D0 1C BNE hitSaucerRet 2369 A9 08 LDA #&08 236B 8D 69 2B STA saucExp 236E AD 68 2B LDA DB68 2371 C9 02 CMP #&02 2373 10 02 BPL B377 2375 A9 02 LDA #&02 2377 .B377 2377 C9 44 CMP #&44 2379 30 02 BMI B37D 237B A9 44 LDA #&44 237D .B37D 237D 8D 68 2B STA DB68 2380 A9 07 LDA #&07 2382 20 88 26 JSR S688 2385 .hitSaucerRet 2385 4C F2 22 JMP S2F2 2388 .S388 2388 AD A6 28 LDA D8A6 238B D0 01 BNE S38E 238D 60 RTS 238E .S38E 238E BD 00 28 LDA IX%,X 2391 F0 1C BEQ S38ERet 2393 38 SEC 2394 ED 4D 2B SBC baseX 2397 10 02 BPL B39B 2399 49 FF EOR #&FF 239B .B39B 239B 4A LSR A 239C 85 70 STA temp 239E 38 SEC 239F A9 0A LDA #&0A 23A1 E5 70 SBC temp 23A3 30 0A BMI S38ERet 23A5 0A ASL A 23A6 85 70 STA temp 23A8 20 69 26 JSR S669 23AB C5 70 CMP temp 23AD 90 01 BCC B3B0 23AF .S38ERet 23AF 60 RTS 23B0 .B3B0 23B0 BD 00 28 LDA IX%,X 23B3 A0 03 LDY #&03 23B5 .bombLp 23B5 B9 54 2B LDA bombX,Y 23B8 F0 04 BEQ S3BE 23BA 88 DEY 23BB 10 F8 BPL bombLp 23BD 60 RTS 23BE .S3BE 23BE 86 73 STX saveX 23C0 .B3C0 23C0 8A TXA 23C1 38 SEC 23C2 E9 08 SBC #&08 23C4 AA TAX 23C5 90 06 BCC B3CD 23C7 BD 00 28 LDA IX%,X 23CA F0 F4 BEQ B3C0 23CC 60 RTS 23CD .B3CD 23CD A6 73 LDX saveX 23CF BD 00 28 LDA IX%,X 23D2 18 CLC 23D3 69 03 ADC #&03 23D5 99 54 2B STA bombX,Y 23D8 BD 28 28 LDA IY%,X 23DB 18 CLC 23DC 69 02 ADC #&02 23DE 99 58 2B STA DB58,Y 23E1 60 RTS 23E2 .S3E2 23E2 AE 53 2B LDX DB53 23E5 E8 INX 23E6 E0 04 CPX #&04 23E8 D0 02 BNE B3EC 23EA A2 00 LDX #&00 23EC .B3EC 23EC 8E 53 2B STX DB53 23EF BD 54 2B LDA bombX,X 23F2 F0 4D BEQ S436Ret 23F4 BC 58 2B LDY DB58,X 23F7 48 PHA 23F8 4A LSR A 23F9 A9 15 LDA #&15 23FB 90 02 BCC B3FF 23FD A9 4A LDA #&4A 23FF .B3FF 23FF 8D 50 2B STA DB50 2402 49 FF EOR #&FF 2404 85 70 STA temp 2406 68 PLA 2407 AA TAX 2408 20 DC 26 JSR S6DC 240B 25 70 AND temp 240D 20 EC 26 JSR WRCHV 2410 AE 53 2B LDX DB53 2413 FE 58 2B INC DB58,X 2416 BC 58 2B LDY DB58,X 2419 C0 17 CPY #&17 241B F0 19 BEQ S436 241D AE 53 2B LDX DB53 2420 BD 54 2B LDA bombX,X 2423 AA TAX 2424 20 DC 26 JSR S6DC 2427 85 70 STA temp 2429 2D 50 2B AND DB50 242C D0 14 BNE S442 242E .B42E 242E A5 70 LDA temp 2430 0D 50 2B ORA DB50 2433 4C EC 26 JMP WRCHV 2436 .S436 2436 AE 53 2B LDX DB53 2439 20 D7 25 JSR S5D7 243C A9 00 LDA #&00 243E 9D 54 2B STA bombX,X 2441 .S436Ret 2441 60 RTS 2442 .S442 2442 C0 15 CPY #&15 2444 90 15 BCC B45B 2446 CA DEX 2447 8A TXA 2448 38 SEC 2449 ED 4D 2B SBC baseX 244C C9 07 CMP #&07 244E B0 DE BCS B42E 2450 20 68 24 JSR S468 2453 D0 D9 BNE B42E 2455 4C 36 24 JMP S436 2458 4C 36 24 JMP S436 245B .B45B 245B AD 50 2B LDA DB50 245E 49 FF EOR #&FF 2460 25 70 AND temp 2462 20 EC 26 JSR WRCHV 2465 4C 36 24 JMP S436 2468 .S468 2468 AD A2 28 LDA dead 246B D0 1B BNE S442Ret 246D A9 01 LDA #&01 246F 8D A2 28 STA dead 2472 8A TXA 2473 48 PHA 2474 20 AD 20 JSR getTime 2477 A9 12 LDA #&12 2479 8D 65 2B STA youExp 247C A9 08 LDA #&08 247E 20 88 26 JSR S688 2481 20 AD 20 JSR getTime 2484 68 PLA 2485 AA TAX 2486 A9 00 LDA #&00 2488 .S442Ret 2488 60 RTS \ OBJECT? 2489 .S489 2489 AD 69 2B LDA saucExp 248C D0 16 BNE S489Ret 248E AD A1 28 LDA saucerOn 2491 D0 2A BNE B4BD 2493 AD A2 28 LDA dead 2496 D0 0C BNE S489Ret 2498 AD B3 28 LDA numAls 249B F0 07 BEQ S489Ret 249D 20 69 26 JSR S669 24A0 C9 05 CMP #&05 24A2 90 01 BCC B4A5 24A4 .S489Ret 24A4 60 RTS 24A5 .B4A5 24A5 A9 01 LDA #&01 24A7 8D A1 28 STA saucerOn 24AA A2 F6 LDX #&F6 24AC A0 01 LDY #&01 24AE 20 69 26 JSR S669 24B1 10 04 BPL B4B7 24B3 A2 50 LDX #&50 24B5 A0 FF LDY #&FF 24B7 .B4B7 24B7 8E 68 2B STX DB68 24BA 8C 6A 2B STY DB6A 24BD .B4BD 24BD AD 68 2B LDA DB68 24C0 AA TAX 24C1 A0 02 LDY #&02 24C3 18 CLC 24C4 6D 6A 2B ADC DB6A 24C7 C9 F6 CMP #&F6 24C9 F0 04 BEQ B4CF 24CB C9 50 CMP #&50 24CD D0 06 BNE B4D5 24CF .B4CF 24CF A9 00 LDA #&00 24D1 8D A1 28 STA saucerOn 24D4 60 RTS 24D5 .B4D5 24D5 AA TAX 24D6 8E 68 2B STX DB68 24D9 A9 1A LDA #&1A 24DB 4C DA 21 JMP plotBuild 24DE .S4DE 24DE AD 64 2B LDA expShip 24E1 F0 4A BEQ B52D 24E3 AE 66 2B LDX DB66 24E6 30 28 BMI B510 24E8 A5 72 LDA index 24EA D0 41 BNE B52D 24EC AD B5 29 LDA OTT% 24EF 8D A3 28 STA TT% 24F2 BD 00 28 LDA IX%,X 24F5 8D 62 2B STA DB62 24F8 BD 28 28 LDA IY%,X 24FB 8D 63 2B STA DB63 24FE A9 00 LDA #&00 2500 9D 00 28 STA IX%,X 2503 A9 FF LDA #&FF 2505 8D 66 2B STA DB66 2508 CE B3 28 DEC numAls 250B D0 03 BNE B510 250D 20 AD 20 JSR getTime 2510 .B510 2510 AE 62 2B LDX DB62 2513 F0 09 BEQ B51E 2515 AC 63 2B LDY DB63 2518 AD 64 2B LDA expShip 251B 20 DA 21 JSR plotBuild 251E .B51E 251E AD 64 2B LDA expShip 2521 18 CLC 2522 69 02 ADC #&02 2524 C9 12 CMP #&12 2526 D0 02 BNE B52A 2528 A9 00 LDA #&00 252A .B52A 252A 8D 64 2B STA expShip 252D .B52D 252D 60 RTS 252E .S52E \ Object? 252E AD 69 2B LDA saucExp 2531 D0 01 BNE B534 2533 60 RTS 2534 .B534 2534 CE 69 2B DEC saucExp 2537 D0 10 BNE B549 2539 AE 68 2B LDX DB68 253C A0 02 LDY #&02 253E A9 1C LDA #&1C 2540 20 DA 21 JSR plotBuild 2543 A9 00 LDA #&00 2545 8D A1 28 STA saucerOn 2548 60 RTS 2549 .B549 2549 C9 04 CMP #&04 254B F0 03 BEQ B550 254D B0 35 BCS B584 254F 60 RTS 2550 .B550 2550 20 69 26 JSR S669 2553 29 07 AND #&07 2555 AA TAX 2556 BD B6 29 LDA D9B6,X 2559 48 PHA 255A AA TAX 255B A0 00 LDY #&00 255D 20 F2 25 JSR S5F2 2560 AD 68 2B LDA DB68 2563 18 CLC 2564 69 01 ADC #&01 2566 AA TAX 2567 A0 02 LDY #&02 2569 20 09 22 JSR S209 256C A9 83 LDA #&83 256E 20 EE FF JSR OSWRCH 2571 68 PLA 2572 A0 00 LDY #&00 2574 8C 5F 2B STY DB5F 2577 20 4A 26 JSR S64A 257A A9 30 LDA #&30 257C 20 EE FF JSR OSWRCH 257F A9 93 LDA #&93 2581 4C EE FF JMP OSWRCH 2584 .B584 2584 0A ASL A 2585 69 12 ADC #&12 2587 AE 68 2B LDX DB68 258A A0 02 LDY #&02 258C 4C DA 21 JMP plotBuild 258F .S58F 258F AD 67 2B LDA bonusCnt 2592 D0 01 BNE B595 2594 60 RTS 2595 .B595 2595 A9 06 LDA #&06 2597 20 88 26 JSR S688 259A CE 67 2B DEC bonusCnt 259D 60 RTS 259E .S59E \ Object? 259E AD A0 28 LDA bonusFlg 25A1 F0 26 BEQ S59ERet 25A3 A2 06 LDX #&06 25A5 A0 18 LDY #&18 25A7 20 09 22 JSR S209 25AA AE 6B 2B LDX DB6B 25AD E8 INX 25AE E0 C2 CPX #&C2 25B0 D0 02 BNE B5B4 25B2 A2 00 LDX #&00 25B4 .B5B4 25B4 8E 6B 2B STX DB6B 25B7 A0 23 LDY #&23 25B9 .B5B9 25B9 BD 4D 2A LDA DA4D,X 25BC 20 EE FF JSR OSWRCH 25BF E8 INX 25C0 E0 C2 CPX #&C2 25C2 D0 02 BNE B5C6 25C4 A2 00 LDX #&00 25C6 .B5C6 25C6 88 DEY 25C7 D0 F0 BNE B5B9 25C9 .S59ERet 25C9 60 RTS 25CA .S5CA 25CA 8A TXA 25CB 48 PHA 25CC A2 03 LDX #&03 25CE .S5CALp 25CE 20 D7 25 JSR S5D7 25D1 CA DEX 25D2 10 FA BPL S5CALp 25D4 68 PLA 25D5 AA TAX 25D6 60 RTS 25D7 .S5D7 25D7 AD 4E 2B LDA missileX 25DA F0 15 BEQ S5D7Ret 25DC DD 54 2B CMP bombX,X 25DF D0 10 BNE S5D7Ret 25E1 AD 4F 2B LDA DB4F 25E4 DD 58 2B CMP DB58,X 25E7 D0 08 BNE S5D7Ret 25E9 A9 00 LDA #&00 25EB 9D 54 2B STA bombX,X 25EE 8D 4E 2B STA missileX 25F1 .S5D7Ret 25F1 60 RTS 25F2 .S5F2 25F2 F8 SED 25F3 18 CLC 25F4 8A TXA 25F5 6D AF 28 ADC score 25F8 8D AF 28 STA score 25FB 98 TYA 25FC 6D B0 28 ADC D8B0 25FF 8D B0 28 STA D8B0 2602 D8 CLD 2603 AD A0 28 LDA bonusFlg 2606 D0 2B BNE B633 2608 AD B0 28 LDA D8B0 260B C9 01 CMP #&01 260D 90 24 BCC B633 260F AD AF 28 LDA score 2612 C9 50 CMP #&50 2614 90 1D BCC B633 2616 A9 01 LDA #&01 2618 8D A0 28 STA bonusFlg 261B A9 05 LDA #&05 261D 8D 67 2B STA bonusCnt 2620 A2 12 LDX #&12 2622 A0 17 LDY #&17 2624 20 09 22 JSR S209 2627 EE B4 28 INC bases 262A 18 CLC 262B AD B4 28 LDA bases 262E 69 30 ADC #&30 2630 20 EE FF JSR OSWRCH 2633 .B633 2633 AE AD 28 LDX scoreX 2636 AC AE 28 LDY scoreY 2639 20 09 22 JSR S209 263C A9 00 LDA #&00 263E 8D 5F 2B STA DB5F 2641 AD B0 28 LDA D8B0 2644 20 4A 26 JSR S64A 2647 AD AF 28 LDA score 264A .S64A 264A 48 PHA 264B 4A LSR A 264C 4A LSR A 264D 4A LSR A 264E 4A LSR A 264F 20 55 26 JSR S655 2652 68 PLA 2653 29 0F AND #&0F 2655 .S655 2655 48 PHA 2656 0D 5F 2B ORA DB5F 2659 8D 5F 2B STA DB5F 265C D0 04 BNE B662 265E 68 PLA 265F A9 F0 LDA #&F0 2661 48 PHA 2662 .B662 2662 68 PLA 2663 18 CLC 2664 69 30 ADC #&30 2666 4C EE FF JMP OSWRCH 2669 .S669 2669 8A TXA 266A 48 PHA 266B A2 08 LDX #&08 266D .B66D 266D AD 5C 2B LDA DB5C 2670 29 48 AND #&48 2672 69 38 ADC #&38 2674 0A ASL A 2675 0A ASL A 2676 2E 5E 2B ROL DB5E 2679 2E 5D 2B ROL DB5D 267C 2E 5C 2B ROL DB5C 267F CA DEX 2680 D0 EB BNE B66D 2682 68 PLA 2683 AA TAX 2684 AD 5C 2B LDA DB5C 2687 60 RTS 2688 .S688 2688 85 70 STA temp 268A 8A TXA 268B 48 PHA 268C 98 TYA 268D 48 PHA 268E A6 70 LDX temp 2690 BD 79 2B LDA DB79,X 2693 85 70 STA temp 2695 .S688Lp 2695 BD 79 2B LDA DB79,X 2698 8D 70 2B STA DB70 269B BD 82 2B LDA DB82,X 269E 8D 6F 2B STA DB6F 26A1 A0 02 LDY #&02 26A3 BD 8B 2B LDA DB8B,X 26A6 20 CC 26 JSR S6CC 26A9 BD 94 2B LDA DB94,X 26AC 20 CC 26 JSR S6CC 26AF BD 9D 2B LDA DB9D,X 26B2 20 CC 26 JSR S6CC 26B5 8A TXA 26B6 48 PHA 26B7 A2 6F LDX #&6F 26B9 A0 2B LDY #&2B 26BB A9 07 LDA #&07 26BD \ Generate a sound 26BD 20 F1 FF JSR OSWORD 26C0 68 PLA 26C1 AA TAX 26C2 E8 INX 26C3 C6 70 DEC temp 26C5 10 CE BPL S688Lp 26C7 68 PLA 26C8 A8 TAY 26C9 68 PLA 26CA AA TAX 26CB 60 RTS 26CC .S6CC 26CC 99 6F 2B STA DB6F,Y 26CF C8 INY 26D0 0A ASL A 26D1 A9 00 LDA #&00 26D3 90 02 BCC B6D7 26D5 A9 FF LDA #&FF 26D7 .B6D7 26D7 99 6F 2B STA DB6F,Y 26DA C8 INY 26DB 60 RTS 26DC .S6DC 26DC 20 09 22 JSR S209 26DF A9 87 LDA #&87 26E1 \ Read character at text cursor position 26E1 20 F4 FF JSR OSBYTE 26E4 8A TXA 26E5 A6 73 LDX saveX 26E7 A4 74 LDY saveY 26E9 29 7F AND #&7F 26EB 60 RTS 26EC .WRCHV 26EC 09 A0 ORA #&A0 26EE 48 PHA 26EF AD 6E 2B LDA DB6E 26F2 C9 02 CMP #XMin 26F4 30 09 BMI WRCHVNxt 26F6 C9 50 CMP #XMax 26F8 10 05 BPL WRCHVNxt 26FA 68 PLA 26FB 20 EE FF JSR OSWRCH 26FE 48 PHA 26FF .WRCHVNxt 26FF EE 6E 2B INC DB6E 2702 EE 6E 2B INC DB6E 2705 68 PLA 2706 60 RTS 2707 .inKey 2707 A0 FF LDY #&FF 2709 A9 81 LDA #&81 270B 20 F4 FF JSR OSBYTE 270E 8A TXA 270F 60 RTS 2710 \ == 130 microseconds 2710 .inKey0 2710 A2 00 LDX #&00 2712 A0 00 LDY #&00 2714 A9 81 LDA #&81 2716 4C F4 FF JMP OSBYTE 2719 .time 2719 A0 29 LDY #&29 271B A2 B0 LDX #&B0 271D A9 01 LDA #&01 271F \ Read the elapsed time clock 271F 20 F1 FF JSR OSWORD 2722 AD B0 29 LDA D9B0 2725 60 RTS 2726 .relocate 2726 A9 00 LDA #&00 2728 85 80 STA &80 272A A9 19 LDA #&19 272C \ < PAGE for DFS 272C 85 81 STA &81 272E A9 00 LDA #&00 2730 85 82 STA &82 2732 A9 0E LDA #&0E 2734 \ < PAGE for CFS 2734 85 83 STA &83 2736 A9 8C LDA #&8C 2738 \ *TAPE 2738 A2 00 LDX #&00 273A 20 F4 FF JSR OSBYTE 273D A2 1F LDX #&1F 273F A0 00 LDY #&00 2741 .loop 2741 B1 80 LDA (&80),Y 2743 91 82 STA (&82),Y 2745 C8 INY 2746 D0 F9 BNE loop 2748 E6 81 INC &81 274A E6 83 INC &83 274C CA DEX 274D D0 F2 BNE loop 274F A9 0E LDA #&0E 2751 85 18 STA &18 2753 \ Set page for CFS 2753 A9 8A LDA #&8A 2755 \ Insert value into buffer - 138 / &8A 2755 A0 4F LDY #ASC"O" 2757 20 F4 FF JSR OSBYTE 275A A0 2E LDY #ASC"." 275C 20 F4 FF JSR OSBYTE 275F A0 0D LDY #&0D 2761 \ OLD - OLD 2761 20 F4 FF JSR OSBYTE 2764 A0 F9 LDY #&F9 2766 \ "RUN" keyword token 2766 20 F4 FF JSR OSBYTE 2769 A0 0D LDY #&0D 276B \ 276B 20 F4 FF JSR OSBYTE 276E 00 BRK 276F \ Generate an error *LOAD INVDATA 6780 69C8 OPT 3 69C8 E7 EQUB FN_LO(objectLp) 69C9 27 EQUB FN_LO(S227) 69CA B0 EQUB FN_LO(S2B0) 69CB E2 EQUB FN_LO(S3E2) 69CC DE EQUB FN_LO(S4DE) 69CD 8F EQUB FN_LO(S58F) 69CE 89 EQUB FN_LO(S489) 69CF 2E EQUB FN_LO(S52E) 69D0 5E EQUB FN_LO(S25E) 69D1 9E EQUB FN_LO(S59E) 69D2 20 EQUB FN_HI(objectLp) 69D3 22 EQUB FN_HI(S227) 69D4 22 EQUB FN_HI(S2B0) 69D5 23 EQUB FN_HI(S3E2) 69D6 24 EQUB FN_HI(S4DE) 69D7 25 EQUB FN_HI(S58F) 69D8 24 EQUB FN_HI(S489) 69D9 25 EQUB FN_HI(S52E) 69DA 22 EQUB FN_HI(S25E) 69DB 25 EQUB FN_HI(S59E) *SAVE INVCODE 6000 6C00 3226 NOW TYPE THE FOLLOWING: LOAD "INVGAME" *LOAD INVCODE 2B00 *SAVE INVADER 1900 3700 3226 PRESS + STOP at line 6785 >LOAD "INVGAME" >*LOAD INVCODE 2B00 >*SAVE INVADER 1900 3700 3226 >*DUMP INVDATA 0000 03 06 04 05 05 14 09 0A ........ 0008 0A 08 02 06 03 04 05 14 ........ 0010 09 0A 0A 08 01 04 03 05 ........ 0018 05 14 08 0A 0A 08 01 04 ........ 0020 03 04 05 14 07 0A 0A 08 ........ 0028 01 05 03 03 05 14 06 0A ........ 0030 0A 08 01 05 03 02 05 14 ........ 0038 06 0A 0A 08 00 05 03 04 ........ 0040 05 14 05 0A 0A 08 00 05 ........ 0048 03 03 05 14 06 0A 0A 08 ........ 0050 00 04 03 02 05 14 04 0A ........ 0058 0A 08 0D 2A 30 0E 4A 53 ...*0.JS 0060 52 74 72 79 66 69 72 65 Rtryfire 0068 0D 2A 62 1E 4C 44 58 23 .*b.LDX# 0070 60 58 78 65 79 3A 4A 53 `Xxey:JS 0078 52 69 6E 6B 65 79 3A 53 Rinkey:S 0080 00 00 00 00 00 1C 00 00 ........ 0088 00 3C 00 2C 00 1C 00 00 .<.,.... 0090 00 3C 34 2C 00 1C 14 00 .<4,.... 0098 44 3C 34 2C 00 1C 14 00 D<4,.... 00A0 44 3C 34 2C 00 1C 14 00 D<4,.... 00A8 0D 0C 0D 13 0C 14 0F 10 ........ 00B0 0C 12 0B 12 0D 12 0E 0E ........ 00B8 0A 10 10 10 0C 10 10 0D ........ 00C0 0E 0E 0E 0E 0C 0E 0E 0B ........ 00C8 0C 0C 0C 0C 0A 0C 0C 09 ........ 00D0 00 00 00 00 00 00 00 00 ........ 00D8 00 00 00 00 00 00 00 00 ........ 00E0 2B 23 00 00 00 00 00 00 +#...... 00E8 2B 23 00 00 00 00 00 00 +#...... 00F0 2B 00 1B 00 00 00 00 00 +....... 00F8 13 13 12 11 10 0D 0B 0E ........ 0100 11 12 10 0F 0E 0E 09 0D ........ 0108 10 10 0F 0E 0D 0C 07 0B ........ 0110 0E 0E 0E 0C 0B 0A 05 09 ........ 0118 0C 0C 0C 0B 0A 09 04 08 ........ 0120 00 00 01 00 04 03 02 05 ........ 0128 14 04 0A 0A 08 0C 01 58 .......X 0130 00 FF 00 15 01 A0 A0 A0 ........ 0138 A0 A0 A0 A0 A0 E8 6E EC ......n. 0140 A0 A2 B7 B7 A0 A0 BC 3D .......= 0148 B4 A0 BB AB B1 A0 A0 B4 ........ 0150 A0 A0 E8 FF FF FD A0 A0 ........ 0158 A0 E8 A0 A0 A0 FE FF FF ........ 0160 34 60 7E 7F 7F 74 20 7F 4`~..t . 0168 7F 7F 7F 7F 35 7F 7F 3F ....5..? 0170 7F 7F 35 2F 2F 20 2A 2F ..5// */ 0178 25 01 01 01 01 28 30 38 %....(08 0180 20 60 24 64 20 20 64 60 `$d d` 0188 24 20 38 28 30 60 24 64 $ 8(0`$d 0190 20 28 30 38 20 20 38 28 (08 8( 0198 30 20 64 60 24 20 30 30 0 d`$ 00 01A0 20 20 24 24 20 20 60 60 $$ `` 01A8 20 20 28 28 20 A0 A0 A0 (( ... 01B0 A0 A0 A0 A0 A0 A0 A0 20 ....... 01B8 78 7F 7F 7D 30 6A 7F 7F x..}0j.. 01C0 7F 7F 7F 6A 7F 7F 6F 7F ...j..o. 01C8 7F 2A 2F 25 20 2F 2F 60 .*/% //` 01D0 76 77 77 7D 30 20 20 78 vww}0 x 01D8 77 77 77 74 20 28 31 31 wwwt (11 01E0 31 31 39 20 20 66 62 62 119 fbb 01E8 62 62 24 28 62 20 31 62 bb$(b 1b 01F0 28 20 20 24 31 62 20 31 ( $1b 1 01F8 24 28 20 31 20 31 28 20 $( 1 1( 0200 20 24 62 20 62 20 24 00 $b b $. 0208 69 72 65 6E 6F 74 0D 2D irenot.- 0210 82 17 4C 44 41 65 78 70 ..LDAexp 0218 73 68 70 3A 42 4E 45 6E shp:BNEn 0220 6F 66 69 72 65 0D 2D B4 ofire.-. 0228 16 4C 44 41 6D 69 73 01 .LDAmis. 0230 98 19 17 00 00 00 05 05 ........ 0238 10 10 15 20 25 30 97 94 ... %0.. 0240 96 96 96 90 94 90 90 94 ........ 0248 E7 27 B0 E2 DE 8F 89 2E .'...... 0250 5E 9E 20 22 22 23 24 25 ^. ""#$% 0258 24 25 22 25 00 00 08 10 $%"%.... 0260 18 22 00 00 2C 82 68 70 ."..,.hp 0268 58 60 48 50 78 78 68 70 X`HPxxhp 0270 58 60 48 50 78 78 9A A1 X`HPxx.. 0278 78 78 A8 AF B6 BD C4 CB xx...... 0280 04 04 04 04 05 05 04 04 ........ 0288 06 06 04 04 04 04 04 04 ........ 0290 04 04 04 04 04 04 04 04 ........ 0298 05 05 07 07 07 07 07 07 ........ 02A0 07 07 07 07 01 01 02 02 ........ 02A8 02 02 02 02 04 04 02 02 ........ 02B0 02 02 02 02 02 02 02 02 ........ 02B8 02 02 02 02 02 02 01 01 ........ 02C0 01 01 01 01 01 01 01 01 ........ 02C8 01 01 02 02 03 41 63 6F .....Aco 02D0 72 6E 73 6F 66 74 20 53 rnsoft S 02D8 70 61 63 65 20 49 6E 76 pace Inv 02E0 61 64 65 72 73 20 2A 20 aders * 02E8 43 6F 70 79 72 69 67 68 Copyrigh 02F0 74 20 28 43 29 20 41 63 t (C) Ac 02F8 6F 72 6E 73 6F 66 74 20 ornsoft 0300 31 39 38 32 20 2A 20 41 1982 * A 0308 63 6F 72 6E 73 6F 66 74 cornsoft 0310 20 53 70 61 63 65 20 49 Space I 0318 6E 76 61 64 65 72 73 20 nvaders 0320 2A 20 41 72 63 61 64 65 * Arcade 0328 20 41 63 74 69 6F 6E 20 Action 0330 66 72 6F 6D 20 41 63 6F from Aco 0338 72 6E 73 6F 66 74 20 2A rnsoft * 0340 20 41 63 6F 72 6E 73 6F Acornso 0348 66 74 20 53 70 61 63 65 ft Space 0350 20 49 6E 76 61 64 65 72 Invader 0358 73 20 2A 20 4C 65 74 20 s * Let 0360 41 63 6F 72 6E 73 6F 66 Acornsof 0368 74 20 6F 70 65 6E 20 74 t open t 0370 68 65 20 64 6F 6F 72 73 he doors 0378 20 74 6F 20 79 6F 75 72 to your 0380 20 69 6D 61 67 69 6E 61 imagina 0388 74 69 6F 6E 20 2A 20 0D tion * . 0390 0D 30 70 1E 53 54 41 74 .0p.STAt 0398 65 6D 70 3A 80 6D 69 73 emp:.mis 03A0 73 63 68 3A 42 4E 45 6D sch:BNEm 03A8 69 73 73 68 69 74 0D 30 isshit.0 03B0 A2 1C 4C 44 41 74 65 6D ..LDAtem 03B8 70 3A 84 41 6D 69 73 73 p:.Amiss 03C0 63 68 3A 4A 4D 50 77 72 ch:JMPwr 03C8 63 68 0D 30 D4 47 00 14 ch.0.G.. 03D0 15 00 F6 02 00 00 00 00 ........ 03D8 17 17 16 11 90 FC F8 0D ........ 03E0 00 00 00 13 00 00 FF 00 ........ 03E8 11 00 01 4C 9E 01 52 11 ...L..R. 03F0 01 02 00 8E FF 05 00 2E ........ 03F8 6E 01 01 00 01 01 01 00 n....... 0400 00 00 10 11 12 11 10 12 ........ 0408 13 10 10 01 02 04 02 00 ........ 0410 04 F1 F1 F1 03 8E 00 C8 ........ 0418 00 32 C8 04 04 01 05 01 .2...... 0420 05 01 01 03 02 08 4D 50 ......MP 0428 68 69 74 73 61 75 63 65 hitsauce 0430 72 0D 31 CE 19 44 45 58 r.1..DEX 0438 3A 53 54 58 73 61 76 65 :STXsave 0440 78 3A 53 54 59 73 61 76 x:STYsav 0448 65 79 0D 32 00 0A 4C 44 ey.2..LD 0450 58 23 33 39 0D 32 32 55 X#39.22U 0458 2E 68 69 74 6C 70 20 53 .hitlp S 0460 45 43 3A 4C 44 41 73 61 EC:LDAsa 0468 76 65 78 3A 53 42 43 49 vex:SBCI 0470 58 25 2C 58 3A 43 4D 50 X%,X:CMP 0478 23 35 3A 42 43 53 6E 6F #5:BCSno 0480 ** ** ** ** ** ** ** ** ........ > *** PRESS + to run the assembled game :-) ***