10 REM SPWAR.ECB 20 REM (3-01-78)== R.E.H.=== LAST MOD.04-24-81 30 PRINT "&K&J&J": PRINT ,"* * O=< * + .* * >B< *" 40 PRINT ,"=T= *X*" 50 PRINT ,"* * S P A C E W A R * *" 60 PRINT ,"<+> :Y-" 70 PRINT ,"* +R+ * *( ) * * -=- * *" 80 DEF FNR(R0)=INT(RND(0)*R0) 100 DIM B(67),D(15,20),E(67),G(110),H(67),P(67),Q(110),S(67) 105 DIM T(67),V(67),X(67),Y(67),C$(288),E$(100) 108 DIM F1$(13),F2$(15),F3$(11),F4$(13),F8$(12),F9$(15) 109 DIM Q$(331),Q1$(50),S$(203) 110 DATA 0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0,1,1,0,1 115 FOR E=1 TO 9: READ J(E),K(E): NEXT E 120 LET Q$=" ",Q$=Q$+Q$+Q$+Q$ 130 LET E$="ENTERPRISE SHUTTLE-CLEXINGTON SHUTTLE-C." 135 LET E$=E$+"YORKTOWN SHUTTLE-C.EXCALIBUR SHUTTLE-C." 140 LET E$=E$+"PROTEUS SHUTTLE-C." 185 DATA " UNIT HIT ON "," UNIT HIT FROM "," AT SECTOR " 190 DATA " IN QUADRANT ","LIMBO","DOCKED"," MANUAL " 195 DATA " AUTOMATIC "," Shuttle Craft ","$" 200 READ F1$,F2$,F3$,F4$,F5$,F6$,F7$,F8$,F9$,P$ 210 LET C$=" WARP ENGINES S. RANGE SCANNERS" 215 LET C$=C$+" L. RANGE SCANNERS *#* PHAZERS *#*" 220 LET C$=C$+" <=- PHOTONS -=> SHIELD CONTROL " 225 LET C$=C$+" COMMUNICATIONS ...COMPUTOR... " 230 LET C$=C$+" UNCLOAK'G DEVICE --SPECIAL WEAPONS " 235 LET C$=C$+" CHANGE SHIPS ANTI-MATTER BOMB " 240 LET C$=C$+" ANTI-MATTER PROBE * SCOUTING PROBE " 245 LET C$=C$+" LAUNCH SHUTTLE C. ARM SHUTTLE CRAFT" 250 LET S$=":E-:L-:Y-:X-

:P-": LET S$=S$+Q$+Q$ 255 LET Q$=Q$+Q$+Q$+" " 256 LET Q$=Q$+" " 260 DATA ">B<","","O=<","+R+","=T=","<+>"," + ","-:-" 265 DATA "*X*","( )"," "," # ","(#)","FFF"," -=- "," . "," * " 270 READ B$,K$,J$,R$,Z$,G$,G1$,G2$,X$,H$,A$,D$,D1$,F$,M$,N$,S1$ 280 LET S=FNR(4.3)+1,B=FNR(5)+1 290 DATA 1,1,0,3,0,5,0,7,0,9,0 295 READ P 296 FOR Z=1 TO 10: READ D(Z,10): NEXT Z 300 LET K=FNR(12)+6,R=FNR(9)+7 310 IF S<2 THEN 380 ELSE LET E=0 320 IF K+R<30 THEN LET T=FNR(9)+1 325 IF S<3 THEN 380 330 IF K+R+T<40 THEN LET O=FNR(6)+1,O2=6-O 340 LET E=K+R+T+O+O2 350 IF B>1 AND E<50 THEN LET J=FNR(50-E)+1 360 IF E+J<50 THEN LET X9=FNR(49-(E+J))+1 370 IF E+J+X9<50 THEN LET H9=FNR(50-(E+J+X9))+1 380 LET E9=K+J+R+T+O+X9,T9=T9+H9+E9 390 PRINT "&JRUN 'SPACEWAR-CMD' 4 DETAILED INSTRUCTIONS.&J" 400 FOR Z=1 TO 110: LET G(Z)=FNR(9)+1: NEXT Z 405 FOR Z=1 TO 110: LET Q(Z)=0: NEXT Z 420 IF RND(0)>.41 THEN LET N4=FNR(78)+10 425 LET E9=K+R+T+O+O2+J+X9 430 FOR Z=11 TO B+10: LET I=(Z*3)-2,S$(I,I+2)=B$: NEXT Z 440 FOR Z=16 TO K+15: LET I=(Z*3)-2,S$(I,I+2)=K$: NEXT Z 450 FOR Z=K+16 TO K+R+16: LET I=(Z*3)-2,S$(I,I+2)=R$: NEXT Z 460 FOR Z=(16+K+R) TO (T+R+K+15) 465 LET I=(Z*3)-2,S$(I,I+2)=Z$ 469 NEXT Z 470 FOR Z=(16+K+R+T) TO (O2+O+T+R+K+15) 471 LET I=(Z*3)-2,S$(I,I+2)=G$ 475 IF Z>(15+K+R+T+O) THEN LET S$(I,I+2)=G2$ 477 NEXT Z 479 LET E=15+K+R+T+O+O2 480 FOR Z=E+1 TO E+J: LET I=(Z*3)-2,S$(I,I+2)=J$: NEXT Z 485 FOR Z=(1+E+J) TO (X9+J+E) 486 LET I=(Z*3)-2,S$(I,I+2)=X$ 487 NEXT Z 490 IF H9>10 THEN LET H9=FNR(H9) 495 FOR Z=(1+E+J+X9) TO (H9+X9+J+E) 496 LET I=(Z*3)-2,S$(I,I+2)=H$ 497 NEXT Z 500 FOR Z=1 TO S+S 510 IF D(Z,10)=0 THEN LET E(Z)=1 ELSE LET E(Z)=FNR(2E3)+500 515 LET S(Z)=E(Z) 520 IF D(Z,10)>0 THEN LET S(Z)=INT(RND(0)*1E3)+300 ELSE 570 530 LET D(Z,11)=FNR(2.5),D(Z,12)=FNR(3.4) 540 LET D(Z,13)=FNR(2.3)+1 550 LET D(Z,14)=1,D(Z,16)=Z,D(Z,17)=Z 560 LET P(Z)=FNR(8)+3: IF D(Z,10)>0 THEN 590 570 IF D(Z,10)>0 THEN 590 580 LET D(Z,2)=-10,D(Z,3)=-10,D(Z,4)=-10 582 LET D(Z,8)=-10,D(Z,13)=-10,D(Z,14)=-10 585 LET D(Z,15)=-10,D(Z,16)=-10,D(Z,17)=-10 590 NEXT Z 595 LET D1=(FNR(9)*10)+2E3 600 FOR Z=11 TO B+10 610 LET E(Z)=FNR(15)*1E3+5E3,S(Z)=3E3 630 LET P(Z)=FNR(20-B)+(10-B) 640 LET D(Z,11)=FNR(6.3)+(5-B) 650 LET D(Z,12)=FNR(6.7)+(5-B) 660 LET D(Z,13)=FNR(6.7)+(5-B) 690 NEXT Z 695 PRINT "'0' ABORTS MOST INPUTS. '-1' GIVES COMMAND OPTIONS.&J" 700 FOR Z=1 TO T9+15 701 IF Z>10 THEN LET Y(Z)=1,X(Z)=1: GOTO 703 702 IF D(Z,10)=0 THEN LET Y(Z)=Y(Z-1),X(Z)=X(Z-1): GOTO 880 703 LET I=(Z*3)-2,F$=S$(I,I+2) 705 IF F$=A$ THEN 800 706 IF Z<16 THEN 800 ELSE LET B(Z)=.75,P(Z)=5 710 IF F$=K$ THEN LET B(Z)=1,P(Z)=30 712 IF F$=X$ THEN LET B(Z)=1,P(Z)=40 715 IF F$=R$ THEN LET B(Z)=1.5,P(Z)=9.99 717 IF F$=G$ THEN LET B(Z)=1.5,P(Z)=50 720 IF F$=J$ THEN LET P(Z)=70 775 IF F$=H$ THEN LET E(Z)=1E5,V(Z)=FNR(9)+1,X(Z)=V(Z) 776 IF F$=H$ THEN LET H(Z)=FNR(9)+1,Y(Z)=H(Z) 777 IF F$=B$ THEN 790 780 LET S(Z)=(P(Z)*10)+FNR(P(Z)) 785 IF Z2 THEN LET D2=INT((((T9-S)-B)*2)/S)+D1 950 LET Q1$="XXXX---1---2---3---4---5---6---7---8---9--10--XXXX" 1000 GOSUB 2500: PRINT 1070 FOR Z=1 TO S+S 1071 LET I=(Z*3)-2,Z9=(Z*10)-9 1072 IF D(Z,10)=0 THEN LET V(Z)=V(Z-1),H(Z)=H(Z-1): GOTO 1090 1080 PRINT TAB(5);"THE STARSHIP ";E$(Z9,Z9+9);TAB(40);S$(I,I+2) 1090 NEXT Z 1100 PRINT "YOU HAVE THESE MANY BASES ---->";B 1110 PRINT D2-D1;" STARDATES TO CLEAN UP THE GALAXY OF" 1120 PRINT "INVADING KLINGONS, ROMULANS, ORIONITES, ETC." 1130 PRINT : GOTO 5000 1200 LET Y=Y1-Y2,X=X1-X2 1220 IF X=0 THEN 1230 ELSE LET Z=Y/X 1225 IF Z>1 THEN 1230 ELSE 1240 1230 IF Y>0 THEN LET C0=3 ELSE LET C0=7 1235 IF X=0 THEN 1290 ELSE LET Z=(X/Y) 1239 GOTO 1280 1240 IF Z<=-1 THEN 1241 ELSE 1250 1241 IF Y>0 THEN LET C0=2 ELSE LET C0=6 1245 IF Z=-1 THEN 1290 ELSE LET Z=1-ABS(X/Y) 1249 GOTO 1280 1250 IF Z>0 AND Z<=1 THEN 1252 ELSE 1260 1252 IF Y>0 THEN LET C0=4 ELSE LET C0=8 1255 IF Z=1 THEN 1290 ELSE LET Z=1-ABS(Z) 1259 GOTO 1280 1260 IF Z>-1 AND Z<=0 THEN 1270 ELSE LET Z=X/Y 1270 IF X<0 THEN LET C0=1 ELSE LET C0=5 1280 LET C0=C0+ABS(Z) 1290 LET D5=SQR(((X1-X2)*(X1-X2))+((Y1-Y2)*(Y1-Y2))) 1295 RETURN 1300 LET Y=J(C0)+(J(C0+1)-J(C0))*(C0-INT(C0)) 1310 LET X=K(C0)+(K(C0+1)-K(C0))*(C0-INT(C0)) 1320 RETURN 1500 LET E=15 1501 LET E=E+1,U=(E*3)-2 1502 IF N2=0 THEN 1510 1505 IF N2=E THEN 1510 ELSE 1990 1510 IF E(E)>10 AND V(E)=V(P) AND H(E)=H(P) THEN LET H3=0,H4=0 ELSE 1990 1515 IF E(P)=1 AND S(P)=1 THEN 1990 1517 IF E(P)<=0 THEN 1990 ELSE LET F$=S$(U,U+2) 1520 IF C<>8 THEN LET F=P: GOTO 1530 1525 IF F$=R$ THEN LET F=P ELSE 1990 1530 FOR Z=11 TO B+10 1535 IF V(E)=V(Z) AND H(E)=H(Z) AND E(Z)>0 THEN 1540 ELSE 1560 1540 IF Y(Z)+2>Y(P) AND Y(Z)-2X(P) AND X(Z)-2S(E) THEN LET E3=S(E) ELSE LET E3=E(E)/2 1595 LET E(E)=E(E)-E3 1600 IF F$=K$ THEN 1603 1602 IF F$<>J$ THEN 1650 1603 LET Z=INT(RND(0)*9)+1: GOSUB 1290 1605 LET H3=INT(E3/(D5+FNR(2))*FNR(2)) 1610 IF F$<>J$ THEN 1650 1615 IF P(E)>0 THEN LET P(E)=P(E)-1 ELSE 1650 1620 LET H4=FNR(500)+(H3+100) 1625 PRINT A$;Y$,H4;F2$;F$;" PHOTONS!" 1630 IF RND(0)>.1 AND P<11 THEN LET D(F,Z)=D(F,Z)-FNR(2) 1635 IF H3>S(E) THEN LET S(E)=S(E)+H3 ELSE 1650 1640 LET H3=0: PRINT F$;" Transfering ENERGY to SHIELDS!" 1650 IF F$=R$ THEN LET E(E)=E(E)+INT(E3/2) ELSE 1700 1655 GOSUB 1290 1660 LET H3=INT(E3/(D5+FNR(1.2))*FNR(1.4)) 1700 IF F$=Z$ THEN LET E(E)=E(E)+(E3-20) ELSE 1750 1710 IF P(E)>0 THEN LET P(E)=P(E)-1 ELSE 1750 1720 LET H4=FNR(101)+400 1730 PRINT A$;Y$,H4;F2$;F$;" NUCLEAR ION MISSLES!" 1750 IF F$=G$ THEN 1760 1751 IF F$=G1$ THEN 1760 ELSE 1800 1760 LET H3=INT(E3/(D5+FNR(1.5))*FNR(1.5)) 1770 IF F$=G1$ THEN LET H3=30 1800 IF F$=X$ THEN LET Z=FNR(9)+1 ELSE 1900 1810 LET H3=INT(E3/(D5+FNR(1.7))*FNR(1.7)) 1820 IF P(E)>0 THEN LET P(E)=P(E)-1 ELSE 1900 1825 IF E3>25 THEN LET E(E)=E(E)+(E3-25) 1830 LET H4=FNR(200)+(H3+150),H3=0 1835 IF F<10 THEN PRINT F$;" LASERS are totally INEFFECTIVE! on ";F$ 1840 PRINT A$;Y$,H4;F2$;F$;" SPACER PHOTONS!" 1843 IF RND(0)>.5 AND P<4 THEN LET D(F,Z)=D(F,Z)-FNR(1.5) 1845 LET D(P,Z)=D(P,Z)-(RND(0)*2) 1900 IF H3>0 THEN LET S(F)=S(F)-H3 1910 IF H4>0 THEN LET S(F)=S(F)-H4 1920 IF H3>0 AND F<11 THEN PRINT A$,H3;F1$;Y$;F3$;Y(F);X(F) 1925 IF H3>0 AND F>10 THEN PRINT A$,H3;F1$;Y$;F4$;V(F);H(F) 1930 IF S(F)<=0 THEN LET E(F)=-15: LET S(F)=-15 ELSE 1990 1940 PRINT A$,Y$;" *** DESTROYED *** ";F3$;Y(F);X(F) 1945 IF F<10 AND E(F+1)=1 AND S(F+1)=1 THEN LET E(F+1)=S(F+1)=-15 1950 LET Q=((Y(F)*30)+(X(F)*3)),Q$(Q-2,Q)=D$ 1960 IF M=0 THEN LET P=P+1 1970 GOTO 1995 1990 IF E10 THEN 2200 2010 LET E=E+1,U=(E*3)-2 2020 IF V(E)=V(P) AND H(E)=H(P) AND E(E)>0 THEN 2030 ELSE 2190 2030 IF Y(E)+2>Y(P) AND Y(E)-2X(P) AND X(E)-20 THEN LET E(P)=E(P)+S(P) ELSE LET E(P)=200 2060 LET S(P)=200: IF D(P,10)=0 THEN LET D(P,11)=1,D(P,2)=0 2070 IF D(P,10)=0 THEN PRINT E$(12,20);C$(37,59);"ENGAGED": GOTO 2295 2080 IF E(E)<=3E3 AND E(P)<3E3 THEN LET E(E)=E(E)-(3E3-E(P)) ELSE 2100 2090 LET E(P)=E(P)+(3E3-E(P)) 2100 LET F=(P+1)*3: IF D(P,10)=0 THEN 2120 2105 IF E(P+1)<=0 THEN PRINT A$;I$;" GETS A NEW SHUTTLE-CRAFT ";S$(F-2,F) 2110 IF E(P+1)<=0 THEN LET E(P+1)=1,S(P+1)=1,D(P,14)=1 2120 FOR F=1 TO 10 2130 IF D(P,11)<4 AND D(E,11)>0 THEN LET D(P,11)=D(P,11)+1 ELSE 2140 2135 LET D(E,11)=D(E,11)-1 2140 IF D(P,12)<4 AND D(E,12)>0 THEN LET D(P,12)=D(P,12)+1 ELSE 2150 2145 LET D(E,12)=D(E,12)-1 2150 IF D(P,13)<4 AND D(E,13)>0 THEN LET D(P,13)=D(P,13)+1 ELSE 2170 2155 LET D(E,13)=D(E,13)-1 2170 IF P(E)>0 AND P(P)<11 THEN LET P(E)=P(E)-1 ELSE 2180 2175 LET P(P)=P(P)+1 2180 NEXT F 2185 GOTO 2295 2190 IF EV(P) AND V(E)-2H(P) AND H(E)-20 THEN LET P=P1 2515 IF E(P1)=1 AND S(P1)=1 THEN 2530 2520 IF E(P1)>0 THEN EXIT 2540 2530 NEXT P1 2540 IF P1>16 THEN LET P=1 2550 IF P<1 THEN 2500 ELSE LET V1=V(P),H1=H(P): RETURN 2900 FOR E=1 TO E9+15 2905 LET U=(E*3)-2 2910 IF V(E)=V1 AND H(E)=H1 AND E(E)>0 THEN LET S(E)=-29 ELSE 2990 2930 LET E(E)=0: PRINT TAB(15);M$;S$(U,U+2);" *** DESTROYED *** ";M$ 2990 NEXT E 2995 RETURN 3000 LET Y1=Y(P),X1=X(P),F=INT((Y1*30)+(X1*3)-2) 3002 LET Y2=Y1,X2=X1 3005 IF E(P)>0 THEN LET Q$(F,F+2)=A$ ELSE 3095 3010 FOR F=1 TO INT(W0*10) 3015 LET Y2=Y2+Y,X2=X2+X,E(P)=E(P)-1 3018 IF Y2<1 OR Y2>10 OR X2<1 OR X2>10 THEN EXIT 3100 3020 LET Q=INT((Y2*30)+(X2*3)),F$=Q$(Q-2,Q) 3025 IF F$=H$ THEN LET E(P)=S(P)=-30 ELSE 3030 3027 PRINT A$,I$;" EATEN BY A BLACKHOLE ";F3$;Y2;X2 3030 IF F$=A$ THEN 3075 3032 IF F$=D$ THEN 3075 3034 IF F$=D1$ THEN 3075 ELSE LET V1=V(P),H1=H(P) 3040 IF F$=N$ THEN GOSUB 2900 3050 IF F$=S1$ THEN LET C0=RND(0)*9,Z=C0 ELSE 3060 3052 GOSUB 1300 3055 PRINT "STAR DEFLECTED COURSE";F3$;INT(Y2);INT(X2) 3057 LET D(P,INT(Z))=D(P,INT(Z))-(RND(0)*4): GOTO 3075 3060 IF F$=B$ THEN LET Z=(RND(0)*9)+1 ELSE PRINT "COLLISION WITH ";F$ 3065 LET Y(P)=INT(Y2-(Y)),X(P)=INT(X2-(X)) 3070 LET Z=INT(RND(0)*9)+1 3072 IF RND(0)>.1 THEN LET D(P,INT(Z))=D(P,INT(Z))-(RND(0)*2) 3074 EXIT 3080 3075 NEXT F 3080 LET F$=S$(W,W+2),E(P)=E(P)-INT(W0*5) 3085 LET Y(P)=INT(Y2),X(P)=INT(X2) 3090 IF E(P+1)=1 AND S(P+1)=1 THEN LET V(P+1)=V(P) ELSE RETURN 3095 LET H(P+1)=H(P),Y(P+1)=Y(P),X(P+1)=X(P): RETURN 3100 LET Y=(V(P)*10)+Y1+(Y*W0*10),X=(H(P)*10)+X1+(X*W0*10) 3110 LET V(P)=INT(Y/10),H(P)=INT(X/10) 3120 LET Y(P)=INT(Y-(V(P)*10)),X(P)=INT(X-(H(P)*10)) 3130 IF V(P)<1 OR V(P)>=11 OR H(P)<1 OR H(P)>=11 THEN 3150 ELSE 3180 3150 PRINT TAB(15);"+*+ K A A Z A A A M M N +*+&J" 3160 PRINT TAB(15);I$ 3165 PRINT " *** DESTROYED AT GALAXY EDGE IN ANTI-MATTER BARRIER ***" 3170 LET E(P)=-31,S(P)=-31 3180 GOSUB 2500 3190 IF Y(P)=0 AND X(P)=0 THEN LET X(P)=1 3195 RETURN 3200 IF Q1=V(P) AND Q2=H(P) THEN 3215 3210 FOR Q=1 TO 300 STEP 3: LET Q$(Q,Q+2)=A$: NEXT Q 3215 FOR E=1 TO E9+15 3217 LET U=(E*3)-2 3220 IF E<11 AND E(E)<2 OR E>10 AND E(E)<=0 THEN 3235 3225 IF V(E)=V(P) AND H(E)=H(P) THEN 3230 ELSE 3235 3230 IF C=1 THEN IF S$(U,U+2)=R$ THEN 3235 3231 LET Q=INT((Y(E)*30)+(X(E)*3)) 3232 LET Q$(Q-2,Q)=S$(U,U+2) 3235 NEXT E 3240 IF Q1=V(P) AND Q2=H(P) THEN 3290 ELSE LET Q1=V(P),Q2=H(P) 3250 LET F=((Q1*10)+Q2) 3255 IF F>=1 AND F<=100 THEN IF G(F)<=0 THEN 3290 ELSE 3260 ELSE 3290 3260 FOR E=1 TO G(F) 3265 LET Q=FNR(100)+1,I=(Q*3)-2 3270 IF Q$(I,I+2)=G$ THEN LET Q$(I,I+2)=S1$ 3272 IF Q$(I,I+2)=A$ THEN LET Q$(I,I+2)=S1$ ELSE 3265 3275 IF N4=F THEN LET Q$(I,I+2)=N$ 3280 NEXT E 3290 IF C1$<>F6$ THEN GOSUB 2000 3295 RETURN 3300 FOR E=1 TO E9+15 3305 IF E(E)<=0 THEN 3390 ELSE LET U=(E*3)-2 3306 IF S$(U,U+2)=H$ THEN 3390 ELSE LET E6=INT(E3/E5) 3307 IF D(P,16)=P AND E<16 THEN 3390 3308 IF D(P,16)=0 AND E=P THEN 3390 3310 IF V(E)=V(P) AND H(E)=H(P) THEN LET H3=0 ELSE 3390 3320 IF D(P,16)=P THEN LET X2=X(E),Y2=Y(E) 3325 IF Y(E)=Y2 AND X(E)=X2 THEN LET Z=INT((Y2*10)+X2) ELSE 3390 3330 GOSUB 1290: LET H3=INT((E6*2)/(D5+1)) 3340 LET S(E)=S(E)-H3,F=(Z*3)-2 3350 PRINT TAB(15);"-=< Z Z Z Z I I T T T !!! >=-" 3355 PRINT A$;H3;F1$;" A ";Q$(F,F+2);F3$;Y2;X2 3360 IF S(E)>0 THEN 3390 ELSE LET Q$(F,F+2)=D$,E(E)=-1 3380 PRINT A$;S$(U,U+2);" *** DESTROYED ***";F3$;Y2;X2 3390 NEXT E 3395 RETURN 3400 LET E=0 3405 LET E=E+1,U=(E*3)-2 3406 IF E(E)<=0 OR P(P)<=0 THEN 3490 3407 IF S$(U,U+2)=H$ THEN 3490 3409 IF D(P,17)=P AND E<16 THEN 3490 3410 IF D(P,17)=0 AND E=P THEN 3490 3412 IF V(E)=V(P) AND H(E)=H(P) THEN LET H4=0 ELSE 3490 3415 IF D(P,17)=P THEN LET Y2=Y(E),X2=X(E) 3420 IF Y(E)=Y2 AND X(E)=X2 THEN LET P(P)=P(P)-1 ELSE 3490 3422 IF D(P,17)<>0 THEN GOSUB 1200 3430 GOSUB 3900 3435 IF Y2<0 OR Y2>9 OR X2<0 OR X2>10 THEN 3485 3437 LET Z=INT((Y2*10)+X2),F=(Z*3)-2 3438 LET Q=INT((Y(E)*30)+(X(E)*3))-2,F$=Q$(F,F+2) 3440 IF F$=A$ THEN PRINT A$,S$(U,U+2);" EVADING YOUR PHOTON!" 3442 IF F$=A$ THEN LET Q$(Q,Q+2)=A$ ELSE 3450 3443 LET Y(E)=FNR(Y(E))+1,X(E)=FNR(X(E))+1 3448 IF F$=A$ THEN 3490 3450 IF F$=S1$ THEN PRINT M$;A$;"PHOTON ABSORBED INTO STAR": GOTO 3490 3454 IF F$=D$ THEN 3490 ELSE LET H4=FNR(500)+500 3455 IF F$=G$ THEN LET H4=INT(H4/5) ELSE 3460 3457 PRINT "PHOTONS ABSORBED INTO PLASMA SHIELDS OF ";S$(U,U+2) 3460 IF S$(U,U+2)=Z$ THEN IF P(E)>0 THEN LET P(E)=P(E)-1: GOTO 3462 3461 GOTO 3470 3462 IF D5<3.5 THEN 3470 ELSE LET H4=0 3464 PRINT A$;S$(U,U+2);" ROBOT MISSLE INTERCEPTED PHOTON !" 3470 LET S(E)=S(E)-H4 3472 IF H4>0 THEN PRINT A$;"*** B O O O M M ***" ELSE 3490 3476 IF S(E)>0 THEN PRINT A$;S$(U,U+2);" SHIELDS DAMAGED DOWN TO ";S(E) 3478 IF S(E)>0 THEN 3490 ELSE LET E(E)=S(E)=-4 3480 PRINT A$;F$;" <[* DESTROYED *]> ";F3$;Y2;X2 3482 LET Q$(F,F+2)=D$ 3485 IF H4=0 THEN PRINT A$;"*** PHOTON MISSED! ***" 3490 IF E0 THEN LET E5=E5+1 3540 NEXT E 3550 IF C=3 AND D(P,16)=0 THEN 3590 3555 IF C=4 AND D(P,17)=0 THEN 3590 3560 PRINT " NUMBER OF ALIENS SCANNERS REPORT IS --->";E5;"&J" 3570 LET C0=E5 3590 RETURN 3600 LET Z=(V(P)*10)+H(P): IF Z<1 OR Z>110 THEN 3650 3605 LET E=V(P),F=H(P),Q(Z)=G(Z) 3610 FOR Q=11 TO E9+15 3620 IF Q<16 AND E(Q)>0 AND V(Q)=E AND H(Q)=F THEN LET Q(Z)=INT(Q(Z)+10) 3630 IF Q>15 AND E(Q)>0 AND V(Q)=E AND H(Q)=F THEN LET Q(Z)=INT(Q(Z)+100) 3640 NEXT Q 3650 RETURN 3900 GOSUB 1300: LET Y1=Y(P),Y2=Y(P),X1=X(P),X2=X(P) 3920 IF C=4 THEN PRINT TAB(15);"TORPEDO TRACK" 3925 IF C=9 THEN PRINT TAB(15);"*BOMB* TRACK" 3930 LET Y2=Y2+Y,X2=X2+X 3940 IF Y2<0 OR Y2>9 OR X2<0 OR X2>10 THEN 3980 ELSE LET Z=INT((Y2*10)+X2) 3945 LET F=(Y2*30)+(X2*3)-2 3950 PRINT TAB(17);Y2;N$;X2: IF F<0 THEN 3930 3960 IF Q$(F,F+2)=A$ THEN 3930 3965 IF Q$(F,F+2)=D$ THEN 3930 3970 IF Q$(F,F+2)=D1$ THEN 3930 3980 LET Y2=INT(Y2+.000005),X2=INT(X2+.000005) 3995 RETURN 4000 PRINT A$;I$;" COURSE (1 TO 8.99)---=>"; 4005 INPUT C0 4010 IF C0<1 OR C0>=9 THEN 5500 4015 PRINT A$;I$;" WARP FACTOR (0 TO 8)---=>"; 4020 INPUT W0 4025 IF W0=0 THEN 5500 4030 IF W0<0 OR W0>8 THEN 4000 4040 IF D(P,10)=0 AND W0>.5 THEN LET W0=.5 ELSE 4060 4050 PRINT A$;I$;P$;" MAX. IMPULSE SPEED SET TO ";W0 4060 GOSUB 1300: GOSUB 3000 4070 LET P=P+1: GOSUB 2500: GOSUB 2000: GOTO 5000 4100 LET C1$="GREEN": GOSUB 3200: GOSUB 3600 4110 IF V(P)>0 THEN PRINT "X-1--2--3--4--5--6--7--8--9-10-XXX" 4115 IF V(P)=0 THEN PRINT "X-LIMBO-LIMBO-LIMBO-LIMBO-LIMBOXXX" 4120 FOR Q=1 TO 300 STEP 30 4125 IF Q<331 THEN PRINT "X";Q$(Q,Q+29); 4130 IF Q=1 THEN PRINT "X 0 STARDATES LEFT: ";D2-D1 4135 IF Q=31 THEN PRINT "X 1 CONDITION: ";C1$ 4140 IF Q=61 THEN PRINT "X 2 QUADRANT: ";Q1;Q2 4145 IF Q=91 THEN PRINT "X 3 SECTOR: ";Y(P);X(P) 4150 IF Q=121 THEN PRINT "X 4 ";I$;" ENERGY: ";E(P) 4155 IF Q=151 THEN PRINT "X 5 SHIELDS: ";S(P) 4160 IF Q=181 AND D(P,10)>0 THEN PRINT "X 6 PHOTONS: ";P(P) 4162 IF Q=181 AND D(P,10)=0 THEN PRINT "X 6" 4165 IF Q=211 THEN PRINT "X 7 ";C$(198,216);D(P,11) 4170 IF Q=241 AND D(P,10)>0 THEN PRINT "X 8 ";C$(216,234);D(P,12) 4172 IF Q=241 AND D(P,10)=0 THEN PRINT "X 8 " 4175 IF Q=271 AND D(P,10)>0 THEN PRINT "X 9 ";C$(235,252);D(P,13) 4177 IF Q=271 AND D(P,10)=0 THEN PRINT "X 9": EXIT 4185 4180 NEXT Q 4185 IF V(P)<10 THEN PRINT "X-1--2--3--4--5--6--7--8--9-10-XXX"; 4187 IF V(P)=10 THEN PRINT "X-LIMBO-LIMBO-LIMBO-LIMBO-LIMBOXXX"; 4190 PRINT " NEXT COMMAND (0 TO 10)--=>"; 4195 GOTO 5520 4200 PRINT I$;" LONG RANGE SENSOR SCAN FROM QUADRANT ";V(P);H(P) 4205 PRINT 4210 FOR E=V(P)-1 TO V(P)+1 4215 IF E<1 OR E>10 THEN 4255 4220 FOR F=H(P)-1 TO H(P)+1 4225 IF F<1 OR F>10 THEN 4250 ELSE LET Z=E*10+F,Q(Z)=G(Z) 4235 FOR Q=11 TO E9+15 4240 IF Q<16 AND E(Q)>0 AND V(Q)=E AND H(Q)=F THEN LET Q(Z)=INT(Q(Z)+10) 4245 IF Q>15 AND E(Q)>0 AND V(Q)=E AND H(Q)=F THEN LET Q(Z)=INT(Q(Z)+100) 4247 NEXT Q 4250 NEXT F 4255 IF V(P)<=1 AND E<1 OR V(P)>=10 AND E>10 THEN 4260 ELSE 4270 4260 PRINT F5$,F5$,F5$ 4265 GOTO 4285 4270 IF H(P)=1 THEN PRINT F5$,Q((E*10)+(F-1)),Q((E*10)+F) 4275 IF H(P)=10 THEN PRINT Q((E*10)+(F-2)),Q((E*10)+(F-1)),F5$ 4278 IF H(P)=1 OR H(P)=10 THEN 4285 4280 PRINT Q((E*10)+(F-2)),Q((E*10)+(F-1)),Q((E*10)+F) 4285 PRINT 4290 NEXT E 4295 GOTO 5500 4300 GOSUB 3500 4305 IF D(P,16)=0 THEN PRINT " SECTOR TO FIRE ON ----=>"; ELSE 4320 4310 INPUT Y2,X2 4315 IF Y2<0 OR Y2>9 OR X2<1 OR X2>10 THEN 5500 ELSE PRINT 4320 IF D(P,16)=0 THEN PRINT A$;I$;F7$; 4325 IF D(P,16)=P THEN PRINT A$;I$;F8$; 4327 PRINT "PHAZERS ON TARGET...ENERGY AVAILABLE-->";E(P) 4330 PRINT I$;" NUMBER OF UNITS TO FIRE--->"; 4332 INPUT E3 4335 IF E3<=0 THEN 5500 ELSE PRINT 4340 IF E(P)-E3<0 THEN PRINT P$;", YOU HAVE'NT THAT MUCH ENERGY!" 4345 IF E(P)-E3<0 THEN 4320 ELSE LET E(P)=E(P)-INT(E3) 4350 IF E5>0 THEN LET Y1=Y(P),X1=X(P): GOSUB 3300 4355 IF D(P,16)=P THEN 4490 ELSE LET Z=INT((Y2*10)+X2)*3 4360 IF Q$(Z-2,Z)=H$ THEN PRINT "((( BLACK HOLES JUST SUCK ENERGY )))" 4370 IF Q$(Z-2,Z)=S1$ THEN PRINT A$,"* PHAZERS DON'T AFFECT STARS *" 4390 GOTO 4470 4400 IF P(P)<=0 THEN PRINT P$;" YOU ARE OUT OF PHOTONS!" 4405 IF P(P)<=0 THEN 5500 ELSE GOSUB 3500 4410 IF D(P,17)=0 THEN PRINT A$;I$;" TORPEDO COURSE (1-8.9)-->"; ELSE 4430 4415 INPUT C0 4420 IF C0<0 OR C0>=9 THEN 4400 ELSE PRINT 4430 IF C0=0 THEN 5500 ELSE GOSUB 3400 4440 IF Y2<1 OR Y2>10 OR X2<1 OR X2>10 THEN 4490 4445 IF D(P,17)=P THEN 4490 4450 LET Z=INT(((Y2*10)+X2)*3)-2 4460 IF Q$(Z,Z+2)=H$ THEN PRINT "((( BLACK HOLES EAT PHOTONS! )))" 4465 IF Q$(Z,Z+2)=S1$ THEN PRINT A$,"* PHOTONS DON'T AFFECT STARS *" 4470 IF Q$(Z,Z+2)=N$ THEN PRINT A$,"-=< YOU HIT A TRITON MINE >=-" 4475 IF Q$(Z,Z+2)=N$ THEN GOSUB 2900 4490 IF C1$="RED" THEN GOSUB 1500 4495 GOTO 5000 4500 PRINT "TOTAL ENERGY AVAILABLE ON ";P$;E(P)+S(P) 4510 INPUT " HOW MUCH FOR THE SHIELDS ---=>",Z 4520 IF Z<=0 THEN 5500 4530 IF (E(P)+S(P))-Z<0 THEN 4500 ELSE LET E(P)=(E(P)+S(P))-Z 4590 LET S(P)=Z: GOTO 5500 4600 IF B1>0 THEN GOSUB 2000 4605 PRINT A$,"DEVICE","STATE OF REPAIR" 4610 PRINT TAB(9);C$(1,18),0 4615 FOR Z=1 TO 9 4620 LET I=(Z*18)+1: IF D(P,Z)=-10 THEN 4630 4625 PRINT TAB(9);C$(I,I+17),D(P,Z) 4630 NEXT Z 4635 LET I=(P*10)-9 4640 IF D(P,10)>0 THEN PRINT P$;" PHAZERS ON "; ELSE 5500 4645 IF D(P,16)=P THEN PRINT F8$ ELSE PRINT F7$ 4650 PRINT P$;" PHOTONS ON "; 4660 IF D(P,17)=P THEN PRINT F8$ ELSE PRINT F7$ 4670 IF C1$=F6$ THEN IF B1>0 THEN LET F$=S$(U,U+2): GOTO 4675 4672 GOTO 5500 4675 PRINT "&J",F$;" ENERGY = ";E(E): PRINT ,F$;" PHOTONS = ";P(E) 4685 PRINT ,F$;C$(198,215);" = ";D(E,11) 4690 PRINT ,F$;C$(216,234);" = ";D(E,12): GOTO 5500 4700 PRINT S$(W,W+2);" * COMPUTOR AWAITING COMMAND (0-8)---=>"; 4710 INPUT A 4720 IF A<0 OR A>8 THEN 4750 ELSE LET A=INT(A+1) 4730 IF D(P,A+9)=-10 THEN 4750 4740 ON A GOTO 47000,47100,47200,47300,47400,47500,47600,47600,47800 4750 PRINT TAB(5);0;M$;A$;"GALAXY MAP" 4755 PRINT TAB(5);1;M$;A$;"GAME STATUS" 4760 PRINT TAB(5);2;M$;A$;"TRAJECTORY CALCULATOR" 4765 IF D(P,13)=-10 THEN 4800 4767 PRINT TAB(5);3;M$;A$;"TORPEDO COURSES" 4770 PRINT TAB(5);4;M$;A$;"RETRIEVE";F9$ 4775 PRINT TAB(5);5;M$;A$;"POINT-TO-POINT WARP TRAVEL" 4780 PRINT TAB(5);6;M$;A$;"MANUAL OR AUTOMATIC PHAZERS" 4785 PRINT TAB(5);7;M$;A$;"MANUAL OR AUTOMATIC PHOTONS" 4790 PRINT TAB(6);"8 -=- S.R. SCAN REPORT * NEXT CMD (0-8)---=>"; 4795 GOTO 4710 4800 FOR Z=3 TO 7 4810 PRINT TAB(5);Z;M$;A$;" *** NOT FOR ";I$ 4820 NEXT Z 4830 GOTO 4790 4900 PRINT I$; 4905 INPUT " SPECIAL WEAPONS NEXT COMMAND (1-5)---=>",A 4907 IF A=0 THEN 5500 4910 IF A<1 OR A>5 THEN 4980 ELSE LET A=INT(A+10) 4915 IF A>=14 THEN 4975 ELSE LET V1=V(P),Z9=(A*18)+1 4920 IF D(P,A)<=0 THEN PRINT I$;" YOU ARE OUT OF ";C$(Z9,Z9+17) 4925 IF D(P,A)<=0 THEN 5500 ELSE PRINT : LET I=(P*10)-9 4930 PRINT A$;P$;C$(Z9,Z9+17);" COURSE (1 TO 8.9)---=>"; 4935 INPUT C0 4940 IF C0=0 THEN 5500 ELSE PRINT 4950 IF C0<=0 OR C0>=9 THEN 4925 ELSE LET D(P,A)=D(P,A)-1 4960 GOSUB 1300 4970 IF A<13 THEN GOSUB 3900 ELSE LET H1=H(P) 4975 ON A-10 GOTO 8100,8200,8300,8400,8500 4980 PRINT " *** SPECIAL WEAPONS ***&J" 4982 FOR Z=11 TO 15 4985 PRINT A$;"COMMAND ";Z-10,: LET Z9=((Z+1)*18)-17 4987 IF D(P,Z)=-10 THEN PRINT " UNAVAILBLE ON ";P$ 4988 IF D(P,10)=0 AND Z=12 THEN PRINT " UNAVAILBLE ON ";P$: GOTO 4992 4990 IF D(P,Z)>-10 THEN PRINT C$(Z9,Z9+17) 4992 NEXT Z 4995 GOTO 4900 5000 IF S(P)<0 THEN LET E(P)=-5 5010 LET B1=0,B2=0,E5=0,N2=0 5020 LET C1=0,C2=0,C3=0,C4=0 5030 LET C5=0,C6=0,C7=0,C8=0,C9=0 5100 FOR Z=1 TO E9+15 5110 LET I=(Z*3)-2: IF E(Z)<=0 THEN 5290 ELSE LET I$=S$(I,I+2) 5140 IF Z0 THEN LET C1=C1+1 5150 IF I$=B$ THEN LET B1=B1+1: GOTO 5290 5200 IF I$=K$ THEN LET C4=C4+1: GOTO 5290 5210 IF I$=J$ THEN LET C5=C5+1: GOTO 5290 5220 IF I$=Z$ THEN LET C6=C6+1: GOTO 5290 5230 IF I$=R$ THEN LET C7=C7+1: GOTO 5290 5240 IF I$=G$ THEN LET C8=C8+1: GOTO 5290 5255 IF I$=G1$ THEN LET C3=C3+1 5257 IF I$=G2$ THEN LET B2=B2+1 5260 IF I$=X$ THEN LET C9=C9+1 5290 NEXT Z 5300 IF D1>D2 OR C1<=0 THEN 50000 5310 IF (B2+C3+C4+C5+C6+C7+C8+C9)<=0 THEN 50000 5400 FOR E=1 TO 9 5410 IF P>S*2 OR P<1 THEN EXIT 5500 5420 IF C1$<>F6$ THEN 5430 5425 IF D(P,E)>-10 THEN LET D(P,E)=0 5430 IF A=6 OR C=0 OR C=10 THEN 5440 ELSE EXIT 5500 5440 IF D(P,10)=0 AND D(P,E)=-10 THEN 5490 5450 IF D(P,E)<=0 AND D(P,E)>-10 THEN LET D(P,E)=D(P,E)+RND(0) 5490 NEXT E 5500 IF P>S*2 THEN 6000 ELSE LET W=(P*3)-2 5501 LET I=(P*10)-9,P$=E$(I,I+9),I$=S$(W,W+2) 5505 IF E(P)<=0 THEN GOSUB 2500 ELSE PRINT 5510 PRINT A$;I$;A$;P$; 5515 PRINT " NEXT COMMAND (0-10)-=>"; 5520 INPUT C 5530 LET Y1=Y(P),X1=X(P) 5535 IF C=0 THEN 4000 5540 IF C<0 OR C>10 THEN 5900 ELSE PRINT 5550 IF P>0 AND C>0 THEN IF D(P,C)>=0 THEN 5570 5560 PRINT A$;I$;" DAMAGE CONDITION PREVENTS SELECTION": GOTO 5500 5570 ON C GOTO 4100,4200,4300,4400,4500,4600,4700,4100,4900,8000 5900 PRINT "&J";A$;"COMMAND ";0,C$(1,18) 5910 FOR Z=1 TO 10 5940 PRINT A$;"COMMAND ";Z,: LET Z9=((Z+1)*18)-17 5950 IF D(P,Z)=-10 THEN PRINT " IS NOT AVAILABLE FOR ";P$ 5960 IF D(P,Z)>-10 THEN PRINT C$(Z9,Z9+17) 5970 NEXT Z 5990 PRINT : GOTO 5500 6000 PRINT "&J";A$;K$;A$;J$;A$;"*** ALLIENS MOVING NOW ***"; 6005 PRINT A$;R$;A$;X$;"&J" 6010 LET M=15 6020 LET M=M+1,N2=M 6030 IF E(M)<=0 OR RND(0)>.7 THEN 6900 6040 IF T(M)=0 THEN LET T(M)=FNR(B+10)+1: GOTO 6030 6045 IF E(T(M))<=1 THEN LET T(M)=FNR(B+10)+1: GOTO 6030 6050 IF E(T(M))<=1 AND RND(0)>.2 THEN 6040 6100 FOR P=1 TO 10+B 6110 IF E(P)<=1 THEN 6190 6130 IF V(M)=V(P) AND H(M)=H(P) THEN LET T(M)=P ELSE 6190 6140 LET E=M,N2=M,U=M: GOSUB 1500 6190 NEXT P 6200 LET F=(M*3)-2: IF S$(F,F+2)=G$ THEN 6210 ELSE 6400 6210 FOR P=1 TO S*2 6220 IF E(P)<=0 THEN LET Y1=V(M) ELSE 6395 6230 LET X1=H(M),Y2=V(P),X2=H(P) 6250 GOSUB 1290: IF D5>1.2 THEN 6395 6300 FOR M1=16 TO M 6310 IF E(M1)<=0 THEN LET S$((M1*3)-2,M1*3)=G1$ ELSE 6380 6320 LET S(M1)=20,V(M1)=V(P),Y(M1)=FNR(10) 6330 LET H(M1)=H(P): LET X(M1)=H(P): LET T(M1)=P 6340 LET E=M1,N2=M1,E(M1)=200 6350 GOSUB 1500: EXIT 6800 6380 NEXT M1 6390 EXIT 6400 6395 NEXT P 6400 IF S$(F,F+2)=G1$ THEN 6450 ELSE LET Y1=V(M) 6410 LET Y1=V(M),X1=H(M),Q=Q((Y(M)*10)+X(M)) 6420 IF T(M)=0 THEN 6700 6430 IF E(T(M))<=0 THEN 6800 6440 LET Y2=V(T(M)),X2=H(T(M)): GOTO 6500 6450 LET Y(M)=FNR(10)+1 6460 LET X(M)=FNR(10)+1: GOTO 6800 6500 GOSUB 1200: GOSUB 1300 6520 LET Y3=(V(M)*10)+Y1+(Y*B(M)*10) 6530 LET X3=(H(M)*10)+X1+(X*B(M)*10) 6540 IF V(M)<0 OR V(M)>9 THEN LET V(M)=ABS(V(T(M))) ELSE LET V(M)=ABS(INT(Y3/10)) 6550 IF H(M)<0 OR H(M)>9 THEN LET H(M)=ABS(H(T(M))) ELSE LET H(M)=ABS(INT(X3/10)) 6565 IF Y(M)>9 THEN LET Y(M)=FNR(8)+1 6570 LET X(M)=ABS(INT(X3-H(M)*10)) 6575 IF B(M)<1 THEN LET X(M)=FNR(9.9)+1 6600 IF D1+5>D2 AND RND(0)>.3 THEN PRINT TAB(15);S$(F,F+2); ELSE 6700 6610 PRINT " SUBSPACE RADIO MSG .INTERCEPTED !" 6620 PRINT "ORIGIN: - NEAR OR";F4$;V(M);H(M) 6700 IF V(M)=0 AND H(M)=0 THEN LET H(M)=1 6710 IF V(M)<10 AND H(M)<10 THEN LET Q((V(M)*10)+H(M))=0 6800 IF MY(M) AND Y(H7)-2X(M) AND X(H7)-2Y(E) AND Y2-3X(E) AND X2-39 OR X2<1 OR X2>10 THEN 5000 8105 LET Z=INT((Y2*30)+(X2*3)-2) 8110 IF Q$(Z,Z+2)=S1$ THEN PRINT "W A A O O M M !!! STAR NOVAED AT ";Y2;X2 8120 IF Q$(Z,Z+2)=S1$ THEN LET Q=((V(P)*10)+H(P)) ELSE 4490 8130 LET G(Q)=G(Q)-1: GOSUB 7000: LET Q$(Z,Z+2)=D$ 8160 FOR Y7=Y2-2 TO Y2+2 8165 IF Y7<0 OR Y7>9 THEN 8192 8170 FOR X7=X2-2 TO X2+2 8175 IF X7<1 OR X7>10 THEN 8190 ELSE LET I=(Y7*30)+(X7*3)-2 8177 IF I<1 THEN LET I=1 8180 IF Q$(I,I+2)=S1$ THEN LET Y2=Y7,X2=X7: EXIT 8100 8185 LET Q$(I,I+2)=D$ 8190 NEXT X7 8192 NEXT Y7 8193 GOSUB 2500 8195 GOTO 4490 8200 IF Y2<1 OR Y2>9 OR X2<1 OR X2>10 THEN 8210 ELSE 8220 8210 LET V1=V(P)+INT(Y),H1=H(P)+INT(X),I=(P*10)-9 8220 IF V1<1 OR V1>10 OR H1<1 OR H1>10 THEN 4490 ELSE PRINT A$ 8230 PRINT A$;P$;C$(216,234);F4$;V1;H1 8240 PRINT A$,G((V1*10)+H1);S1$;" STARS DESTROYED" 8295 LET G((V1*10)+H1)=.1: GOSUB 2900: GOTO 4490 8300 LET V1=V1+Y: LET H1=H1+X 8320 IF V1<1 OR V1>10 OR H1<0 OR H1>10 THEN 8330 ELSE LET F=INT((V1*10)+H1) 8330 IF V1<1 OR V1>10 OR H1<0 OR H1>10 THEN 47000 ELSE LET Q(F)=G(F) 8350 FOR E=S+S+1 TO E9+15 8360 IF E<16 AND E(E)>1 AND V(E)=V1 AND H(E)=H1 THEN LET Q(F)=Q(F)+10 8370 IF E>15 AND E(E)>0 AND V(E)=V1 AND H(E)=H1 THEN LET Q(F)=Q(F)+100 8380 NEXT E 8390 GOTO 8300 8400 IF E(P+1)<=0 THEN PRINT P$;F9$;"HAS BEEN DESTROYED!" 8410 IF E(P+1)<=0 THEN 5500 ELSE PRINT 8420 IF E(P+1)>1 THEN 8480 ELSE LET E(P+1)=200,S(P+1)=100 8440 LET Y(P+1)=FNR(9),X(P+1)=FNR(9)+1 8450 LET V(P+1)=V(P),H(P+1)=H(P),I=W+3 8460 PRINT F9$;S$(I,I+2);" LAUNCHED TO SECTOR ";Y(P+1);X(P+1) 8470 LET D(P,14)=0: GOTO 5500 8480 PRINT F9$;"REPORTING IN FROM QUADRANT ";V(P+1);H(P+1) 8490 PRINT ,"AND FROM SECTOR ";Y(P+1);X(P+1): GOTO 5500 8500 IF D(P,11)<=0 THEN PRINT " YOU ARE OUT OF A.M. BOMBS" 8505 IF E(P+1)<=0 THEN 8400 ELSE LET I=W+3 8510 IF D(P,14)<=0 THEN PRINT " YOU ARE OUT OF";F9$ 8515 IF E(P+1)>1 AND S(P+1)>1 THEN PRINT S$(I,I+2);F4$;V(P+1);H(P+1) 8520 IF D(P,14)<=0 OR D(P,11)<=0 THEN 5500 ELSE LET D(P+1,11)=1 8530 LET D(P,11)=D(P,11)-1 8590 PRINT P$;F9$;"ARMED&J": GOTO 5500 47000 PRINT Q1$ 47010 FOR E=1 TO 100 STEP 10 47020 FOR F=1 TO 10: LET Z(F)=Q(E+F+09): NEXT F 47025 LET Z=INT(E/10)+1 47030 PRINT Z;TAB(3);"X";TAB(6);Z(1);TAB(10);Z(2);TAB(14);Z(3); 47040 PRINT TAB(18);Z(4);TAB(22);Z(5);TAB(26);Z(6);TAB(30);Z(7); 47050 PRINT TAB(34);Z(8);TAB(38);Z(9);TAB(42);Z(10);TAB(46);"X ";Z;" "; 47055 IF Z>S+S OR E(Z)<=1 THEN PRINT A$ ELSE 47058 47056 GOTO 47060 47058 IF P=Z THEN LET F$=S1$ ELSE LET F$=A$ 47059 PRINT " ";S$(((Z)*3)-2,(Z)*3);V(Z);H(Z);F$ 47060 NEXT E 47090 PRINT Q1$;: INPUT " NEXT CMD? #",C: GOTO 5535 47100 PRINT A$;" STARSHIPS LEFT: ";C1 47110 IF B1>0 THEN PRINT A$;" >B< BASES LEFT: ";B1 47120 IF C4>0 THEN PRINT A$;" KLINGONS LEFT: ";C4 47130 IF C5>0 THEN PRINT A$;" 0=< KLINGONS LEFT: ";C5 47140 IF C7>0 THEN PRINT A$;" +R+ ROMULANS LEFT: ";C7 47150 IF C6>0 THEN PRINT A$;" =T= THEOLITES LEFT: ";C6 47160 IF C8>0 THEN PRINT A$;" <+> ORIONITES LEFT: ";C8 47165 IF C3>0 THEN PRINT A$;" + ORION SCOUTS LEFT: ";C3 47167 IF B2>0 THEN PRINT A$;" -:- ORION SUPPLY SHIPS: ";B2 47170 IF C9>0 THEN PRINT A$;" *X* XEONITES LEFT: ";C9 47180 PRINT A$;M$;A$;C3+C4+C5+C6+C7+C8+C9+B2;A$;M$;A$; 47185 PRINT " TOTAL ALIENS LEFT." 47195 GOTO 5500 47200 PRINT "*** TRAJECTORY CALCULATOR READY ***&J" 47210 PRINT A$;P$;F4$;V(P);H(P);F3$;Y(P);X(P);"&J" 47215 PRINT A$;"ENTER COORDINATES IN THIS FORMAT: Y1,X1,Y2,X2--->"; 47220 INPUT Y1,X1,Y2,X2 47230 IF Y1<1 OR Y1>10 OR X1<1 OR X1>10 THEN 47210 47240 IF Y2<1 OR Y2>10 OR X2<1 OR X2>10 THEN 47210 47250 GOSUB 1200 47260 PRINT A$,"COURSE = ";C0;TAB(35);"DISTANCE = ";D5 47295 GOTO 5500 47300 FOR E=16 TO E9+15 47305 IF E(E)<=0 THEN 47390 47320 IF V(E)=V(P) AND H(E)=H(P) THEN LET Y2=Y(E) ELSE 47390 47325 LET X2=X(E),U=(E*3)-2 47327 LET Q=((Y2*10)+X2)*3: IF Q$(Q-2,Q)=A$ THEN 47390 47330 PRINT A$;S$(U,U+2);F3$;Y(E);X(E): GOSUB 1200 47360 PRINT A$;"COURSE = ";C0,"DISTANCE = ";D5 47390 NEXT E 47395 GOTO 5500 47400 IF V(P)=V(P+1) AND H(P)=H(P+1) THEN PRINT ELSE 47470 47405 IF E(P+1)<=0 THEN 8400 47410 IF E(P+1)=1 AND S(P+1)=1 THEN 47490 ELSE LET E(P+1)=1 47420 LET Q=((Y(P+1)*10)+X(P+1))*3,Q$(Q-2,Q)=A$ 47430 LET Y(P+1)=Y(P),X(P+1)=X(P),D(P,10)=P 47450 PRINT P$;F9$;"LANDED IN THE HANGER " 47455 LET D(P,14)=1,S(P+1)=1 47460 LET D(P,11)=D(P,11)+D(P+1,11),D(P+1,11)=0 47465 GOTO 5500 47470 LET U=(P+1)*3: PRINT F9$;S$(U-2,U);F4$;V(P+1);H(P+1) 47475 PRINT TAB(10);" AND CAN'T BE RETRIEVED" 47480 GOTO 5500 47490 PRINT "***";F9$;"is in the HANGER ***" 47495 GOTO 5500 47500 PRINT A$;"*** ENTER QUADRANT AND SECTOR DESTINATION ***&J" 47510 PRINT A$;P$;F4$;V(P);H(P);F3$;Y(P);X(P) 47520 PRINT A$;"ENTER COORDINATES IN THIS FORMAT: V2,H2,Y2,X2--->"; 47530 INPUT V2,H2,Y2,X2 47540 IF V2<0 OR V2>9 OR H2<0 OR H2>9 THEN 47510 ELSE PRINT "Sir...," 47550 IF V(P)=V2 AND H(P)=H2 THEN LET E(P)=E(P)+49: GOTO 47570 47560 IF E(P)<55 THEN PRINT "INSUFFICIENT ENERGY ON ";P$: GOTO 5500 47570 LET V(P)=V2,H(P)=H2,Y(P)=Y2,X(P)=X2 47580 PRINT TAB(8);"Course and Warp Entered for Quadrant ";V2;H2;"&J" 47590 LET E(P)=E(P)-50 47595 GOTO 4070 47600 PRINT TAB(15);"*** PLEASE SELECT ONE ***&J" 47605 LET Z9=A-4,Z9=(Z9*18)+1 47610 PRINT A$,0;M$;F7$;C$(Z9,Z9+17) 47620 PRINT A$,1;M$;F8$;C$(Z9,Z9+17);A$; 47630 INPUT D(P,(9+A)) 47640 IF D(P,(9+A))=0 OR D(P,(9+A))=1 THEN 47650 ELSE 47610 47650 IF D(P,(9+A))=1 THEN LET D(P,(9+A))=P 47660 IF D(P,7)<0 OR D(P,2)<0 THEN LET D(P,(9+A))=0 47695 GOTO 5500 47800 PRINT A$;"*** SHORT RANGE SCAN ANALYSIS *** FROM QUADRANT ";V(P);H(P) 47805 PRINT ,G((V(P)*10)+H(P));" * STARS *" 47810 PRINT "-VESSEL---------------SHIELDS-----IDENTITY---KNOWN WEAPONS" 47820 FOR E=1 TO 67 47822 IF V(E)=V(P) AND H(E)=H(P) THEN LET Q=((Y(E)*10)+X(E))*3 ELSE 47890 47824 IF E=P OR E(E)<=0 THEN 47890 47825 LET U=(E*3)-2: IF Q$(Q-2,Q)=A$ THEN 47890 47826 LET F$=S$(U,U+2): IF E<11 THEN LET I=(E*10)-9,P$=E$(I,I+9) 47827 IF E<11 THEN IF D(E,10)=0 AND E(E)<=1 THEN 47835 47828 PRINT F$;F3$;Y(E);X(E);A$;INT(S(E));TAB(30); 47830 IF E<11 THEN IF D(E,10)=E THEN PRINT P$;"--PHAZERS/PHOTONS/BOMBS" 47831 IF E<11 THEN IF D(E,10)=0 THEN PRINT "A";F9$ 47835 IF F$=B$ THEN PRINT "A FEDERATION BASE" 47840 IF F$=K$ THEN PRINT "KLINGON WARSHIP----STRONG PHAZERS" 47845 IF F$=J$ THEN PRINT "KLINGON BATTLE CR.---BAD PHAZ./PHOTONS" 47850 IF F$=Z$ THEN PRINT "THEOLITE----NUCLEAR ION MISSLES" 47860 IF F$=R$ THEN PRINT "ROMULAN---LITE PHAZERS/is CLOAKED" 47870 IF F$=G$ THEN PRINT "ORIONITE---PHAZERS/carries SCOUTS" 47875 IF F$=G1$ THEN PRINT "ORIONITE scout craft" 47877 IF F$=G2$ THEN PRINT "ORIONITE supply ship---unarmed!" 47880 IF F$=X$ THEN PRINT "XEONITE--PHAZERS/SPACER PHOTONS" 47885 IF F$=H$ THEN PRINT "BLACKHOLE---EATS ANYTHING +/- 1 SECTOR" 47890 NEXT E 47892 IF ((V(P)*10)+H(P))=N4 THEN PRINT A$;P$,"YOU ARE IN A MINEFIELD!" 47895 GOTO 5500 50000 IF C1<=0 THEN PRINT A$,"*** ALL STARSHIPS WERE DESTROYED ***" 50010 IF D1>D2 THEN PRINT A$,"+++ YOU RAN OUT OF STARDATES +++" 50100 IF C1=0 OR D1>D2 THEN PRINT ELSE 50200 50110 PRINT A$;"YOU LOOSE--==--THE FEDERATION WILL BE OVERRUN!!!" 50130 GOTO 55000 50200 IF (C4+C5+C6+C7+C8+C9+B2)<=0 THEN PRINT ELSE 55000 50210 PRINT "&K&J&J";A$;"*** Y O U W O N ***&J&J" 50220 PRINT A$;"-=< ALL ALLIENS HAVE BEEN DESTROYED >=-&J&J" 55000 END