10 REM ... GLAC7.ECB 15 REM .. *** BATTLESTAR GALACTICA *** 11-01-78 20 REM ... by RALPH HOPKINS EAGAN,MN Last rev. 03-07-81 30 PRINT "&K": REM ..Unfinished !!! 40 PRINT ," .='-. ======== ,--" 42 PRINT ," / -----H--H-H---/ -=E" 44 PRINT ,"( BATTLESTAR GALACTICA : :" 46 PRINT ," \ -----H--H-H---\ -=E" 48 PRINT ," '=.-' ======== ~--&J" 50 DIM A(25),B(25),D(35),E(200),F(200),I(200),J(10),K(10) 55 DIM H(75),V(75),L(75),X(200),Y(200),T(200) 60 DIM B$(41),L$(228),S$(600),M$(30),Q$(270),Y$(15) 65 DEF FNR(Z0)=INT(RND(0)*Z0) 70 DATA 1,1,1,1,1,1,1," "," " 80 READ P,Q1,Q2,Q3,Q4,Q5,Q6,A$,Q$ 90 LET B$="----- ----- ----- ----- ----- (****)" 100 LET M$="/^\/^\/^\/^\/^\/^\/^\/^\/^\/^\/^\/^\" 110 LET S$=" + :(]:(]:(]-=<-=<-=<-=<-=<-=<-=<-=<-=<-=<-=<-=<" 120 LET S$=S$+"-=(-=(-=(-=(-=(-=(-=(-=(-=(-=(-=(-=(-={-={" 130 LET S$=S$+"/[]/[]-<[-<[(OO(@@(==<#=<#=([=([=-<[-<[" 140 LET S$=S$+" (1)"+M$+M$+"(2)"+M$+M$ 150 LET S$=S$+"(3)"+M$+M$+"(4)"+M$+M$+"(5)"+M$+M$+"(6)"+M$+M$ 160 FOR Z=1 TO 90: LET Q$=Q$+A$: NEXT Z 170 PRINT " You are the Commander of the last surviving BATTLESTAR" 175 PRINT "now orbiting near the devestated Colonial planets." 180 PRINT "Your objective is to lead the surviving ships in quest" 185 PRINT "of...EARTH ! It's expected to be near one of the visible" 190 PRINT "Stars within your viewing range. But which one ???" 200 FOR Z=1 TO 200: LET T(Z)=3.5: LET E(Z)=50: LET F(Z)=60: NEXT Z 210 FOR Z=1 TO 35: REM ..Galactica defense 220 LET D(Z)=100 225 IF RND(0)>.9 THEN LET D(Z)=D(Z)-FNR(21) 230 NEXT Z 240 FOR Z=1 TO 25: LET A(Z)=0: LET B(Z)=0: NEXT Z 250 FOR Z=31 TO 43: REM ...Unarmed ships w/Galactica 260 LET T(Z)=2: LET F(Z)=500: LET Y(Z)=FNR(15)+8 270 LET E(Z)=500: LET X(Z)=FNR(20)-5 280 NEXT Z 290 FOR Z=44 TO 49: LET E(Z)=0: NEXT Z: REM ...unused 300 LET E(1)=FNR(2E3)+4500 310 LET F(1)=FNR(1E3)+3E3: LET T(1)=1 320 FOR Z=2 TO 4: LET T(Z)=2.5: NEXT Z 330 FOR Z=51 TO 200: REM ...CYLON fighters 340 LET T(Z)=3.5: LET F(Z)=500: LET E(Z)=100 345 NEXT Z 350 FOR Z=50 TO 175 STEP 25: REM ...CYLON Base Stars 355 IF RND(0)>.5 THEN LET I(Z)=7 ELSE LET I(Z)=1 360 LET T(Z)=1: LET F(Z)=3500: LET Y(Z)=FNR(35)-75 365 IF RND(0)>.5 THEN LET I(Z)=I(Z)+1 370 LET E(Z)=7E3: LET X(Z)=FNR(60)-150 375 NEXT Z 380 CURSOR 7,1: PRINT " You will have a dozen ships to escort"; 381 PRINT " " 385 PRINT "...instead of 200. There are 6 known base stars to escape" 390 PRINT "PLUS around 150 CYLON fighters. You have 2 dozen VIPERS." 400 PRINT TAB(8);"You now have a head start in escaping the CYLONS" 410 PRINT "so...don't linger too long in the colonies! &J" 420 DATA 1,1,2,2,2,2,4,2,3,3,1,2,3,2,2,4,2,5,5,1,5,3,3,2,2 425 DATA 1,1,1,2,2,2,3,3,5,5,3,5,5,5,1,1,1,1,1,1,1,1,1,1,1 427 DATA 1,1,1,1,2,2,2,2,2,2,2,2,2,2,4,5,5,3,4,3,3,5,5,5,5 430 DATA 33,24,-7,13,47,66,61,38,9,34,23,4,31,53,39,46,17,12,7 435 DATA -54,-51,-59,-28,-42,-73,-62,-51,-56,-74,-45 438 DATA -44,-53,-82,-94,-85 440 DATA -95,-97,-85,-105,-94,-52,-58,-62,-81,-125,25,-3,8,4,44 445 DATA 48,78,42,56,55,68,46,42,35,59,-88,-85,-81,-55,-95,-62,-92,-75,-25,-2 450 FOR Z=1 TO 75: READ L(Z): NEXT Z 460 FOR Z=1 TO 35: READ V(Z): NEXT Z 470 FOR Z=1 TO 35: READ H(Z): NEXT Z 480 LET L$="-*--*-P 1P 2P 3P 4MooP 5P 6dea-*-P 7deaP 8P 9" 485 LET L$=L$+"MooP10(a)(a)-*-(a)deadeaP11P12-*--*--*-C 1" 490 LET L$=L$+"C 2C 3deadea(a)(a)dea(a)(a)(a)-*--*--*--*--*-" 495 LET L$=L$+"-*--*--*--*--*--*--*--*--*--*-55?56?57?58?59?" 497 LET L$=L$+"60?61?62?63?64?Moo(a)(a)deaMoodeadea(a)(a)(a)(a)" 500 LET X=FNR(10)+42: LET Y=(X+13)*3 505 FOR Z=36 TO 75: REM ..distant stars 510 LET V(Z)=FNR(200)+60+Z 520 LET H(Z)=FNR(200)+60+Z 530 IF RND(0)>.5 THEN LET V(Z)=V(Z)*(-1) 540 IF RND(0)>.5 THEN LET H(Z)=H(Z)*(-1) 545 NEXT Z 550 FOR Z=60 TO 64 560 LET V(Z)=V(Z-60+X)+6: LET V(Z+5)=V(Z)+4 570 LET H(Z)=H(Z-60+X): LET H(Z+5)=H(Z)+5 580 NEXT Z 590 LET L$(178,180)="P13" 600 PRINT " '-1' GIVES COMMAND OPTIONS , '0' ABORTS MOST INPUTS" 610 DATA 0,-1,-1,-1,0,1,1,1,0,1,1,0,-1,-1,-1,0,1,1 620 FOR Z=1 TO 9: READ J(Z): NEXT Z 630 FOR Z=1 TO 9: READ K(Z): NEXT Z 640 LET H$=" ship ": LET J$=" COLONIAL ": LET K$=" CYLON " 650 LET V$="VIPER ": LET W$="#": LET X$="system " 660 LET Y$=" Shuttle Craft " 695 GOTO 5000 900 REM ..COURSE CALCULATOR 910 LET Y=Y1-Y2 915 LET X=X1-X2 920 IF X=0 THEN 930 ELSE LET Z=Y/X 925 IF Z>1 THEN 930 ELSE 940 930 IF Y>0 THEN LET C0=3 ELSE LET C0=7 935 IF X=0 THEN 990 ELSE LET Z=(X/Y) 939 GOTO 980 940 IF Z<=-1 THEN 942 ELSE 950 942 IF Y>0 THEN LET C0=2 ELSE LET C0=6 945 IF Z=-1 THEN 990 ELSE LET Z=1-ABS(X/Y) 949 GOTO 980 950 IF Z>0 AND Z<=1 THEN 955 ELSE 960 952 IF Y>0 THEN LET C0=4 ELSE LET C0=8 955 IF Z=1 THEN 990 ELSE LET Z=1-ABS(Z) 959 GOTO 980 960 IF Z>-1 AND Z<=0 THEN 970 ELSE LET Z=X/Y 970 IF X<0 THEN LET C0=1 ELSE LET C0=5 980 LET C0=C0+ABS(Z) 990 LET I1=(X1-X2)*(X1-X2): LET I2=(Y1-Y2)*(Y1-Y2) 991 LET D0=SQR(I1+I2) 995 RETURN 1000 FOR B=P TO D2 1005 IF N2=P AND B>P THEN 1080 1010 IF E(B)<1 THEN 1080 1020 IF T(B)=3.2 OR T(B)=3.5 THEN 1080 1030 LET I(B)=C0: GOSUB 1600 1040 LET X(B)=X(B)+(X*W0): LET Y(B)=Y(B)+(Y*W0) 1050 LET F(B)=F(B)-W0: LET E(B)=E(B)-W0 1060 IF F(B)<=0 THEN PRINT "SHIP ";B;" OUT OF fuel!" 1070 IF E(B)<=0 THEN PRINT "SHIP ";B;" OUT OF ENERGY!" 1080 NEXT B 1090 IF N2=0 THEN LET P=D2+1 1095 RETURN 1200 REM .......COMMON symbols for planet or base star 1210 IF Q-19>0 AND Q-19<82 AND H-1>0 AND H-1<10 THEN LET Q$(O-57,O-55)=" .-" 1220 IF Q-18>0 AND Q-18<82 AND H>0 AND H<10 THEN LET Q$(O-54,O-52)="='=" 1230 IF Q-17>0 AND Q-17<82 AND H+1>0 AND H+1<10 THEN LET Q$(O-51,O-49)="-. " 1240 IF Q-11>0 AND Q-11<82 AND H-2>0 AND H-2<10 THEN LET Q$(O-31,O-31)="/" 1250 IF Q-7>0 AND Q-7<82 AND H+2>0 AND H+2<10 THEN LET Q$(O-21,O-21)="\" 1255 IF Q+7>0 AND Q+7<82 AND H-2>0 AND H-2<10 THEN LET Q$(O+23,O+23)="\" 1260 IF Q+11>0 AND Q+11<82 AND H+2>0 AND H+2<10 THEN LET Q$(O+33,O+33)="/" 1270 IF Q+17>0 AND Q+17<82 AND H-1>0 AND H-1<10 THEN LET Q$(O+51,O+53)=" '-" 1275 IF Q+18>0 AND Q+18<82 AND H>0 AND H<10 THEN LET Q$(O+54,O+56)="=.=" 1280 IF Q+19>0 AND Q+19<82 AND H+1>0 AND H+1<10 THEN LET Q$(O+57,O+59)="-' " 1285 IF Q+3>0 AND Q+3<82 AND H+2>0 AND H+2<10 THEN LET Q$(O+6,O+8)=" ) " 1290 IF Q-3>0 AND Q-3<82 AND H-2>0 AND H-2<10 THEN LET Q$(O-6,O-4)=" ( " 1295 RETURN 1600 IF C0<1 OR C0>=9 THEN LET C0=1 1620 LET Y=J(C0)+(J(C0+1)-J(C0))*(C0-INT(C0)) 1630 LET X=K(C0)+(K(C0+1)-K(C0))*(C0-INT(C0)) 1640 IF P>43 THEN PRINT 1640,"ship ";B;I(B);C0,J(C0);K(C0) 1695 RETURN 2000 REM ......LAYOUT short range scan 2010 IF Q1=Y(P) AND Q2=X(P) THEN RETURN 2020 LET Q1=Y(P): LET Q2=X(P): LET Q$=A$ 2040 FOR Z=1 TO 90: LET Q$=Q$+A$: NEXT Z 2050 FOR Z=1 TO 75: REM ....LAYOUT stars,planets, etc. 2060 LET V=V(Z)-Q1+5: LET H=H(Z)-Q2+5 2070 IF V<-3 OR V>13 OR H<-3 OR H>13 THEN 2295 2080 LET Q=(V*9)+H-9: LET I=(Z*3)-2: LET O=(Q*3)-2 2085 IF V<1 OR V>9 OR H<1 OR H>9 THEN 2100 2090 IF E(P)>0 THEN LET Q$(O,O+2)=L$(I,I+2) 2100 IF L(Z)<>1 THEN 2150: REM ...Don't lay out a star 2110 IF Q+9>0 AND Q+9<82 THEN LET Q$(O+27,O+30)="/:\" 2120 IF Q-9>0 AND Q-9<82 THEN LET Q$(O-27,O-25)="\:/" 2150 IF L(Z)=2 OR L(Z)=3 THEN GOSUB 1200 ELSE 2200: REM ..Planets 2160 IF Q+1>0 AND Q+1<82 AND L(Z)=3 AND H+1>0 AND H+1<10 THEN 2165 ELSE 2170 2165 LET Q$(O+3,O+3)="d" 2170 REM ...EARTH 2200 IF L(Z)<>4 THEN 2295: REM ......Moons 2210 IF Q-10>0 AND Q-10<82 AND H-1>0 AND H-1<10 THEN LET Q$(O-30,O-28)=" .-" 2220 IF Q-9>0 AND Q-9<82 AND H>0 AND H<10 THEN LET Q$(O-27,O-25)="='=" 2230 IF Q-17>0 AND Q-17<82 AND H+1>0 AND H+1<10 THEN LET Q$(O-24,O-22)="-. " 2250 IF Q+1>0 AND Q+1<82 AND H+1>0 AND H+1<10 THEN LET Q$(O+3,O+6)="n )" 2260 IF Q-1>0 AND Q-1<82 AND H-1>0 AND H-1<10 THEN LET Q$(O-3,O-3)="(" 2270 IF Q+8>0 AND Q+8<82 AND H-1>0 AND H-1<10 THEN LET Q$(O+24,O+26)=" '-" 2280 IF Q+9>0 AND Q+9<82 AND H>0 AND H<10 THEN LET Q$(O+27,O+29)="=.=" 2290 IF Q+10>0 AND Q+10<82 AND H+1>0 AND H+1<10 THEN LET Q$(O+30,O+32)="-' " 2295 NEXT Z 2300 FOR Z=1 TO 200: REM ....LAYOUT all ships 2305 IF Z<50 THEN 2400: REM ..Cylons 2310 IF T(Z)>INT(T(Z)) THEN 2400 2315 LET Y=Y(Z)-Q1+5: LET X=X(Z)-Q2+5 2320 IF Y<0 OR Y>10 OR X<-1 OR X>10 THEN 2890 2330 LET Q=(Y*9)+X-9: LET I=(Z*3)-2: LET O=(Q*3)-2 2335 IF Y<1 OR Y>9 OR X<1 OR X>9 THEN 2350 2340 IF E(Z)>0 THEN LET Q$(O,O+2)=S$(I,I+2) 2350 IF T(Z)=1 THEN 2360 ELSE 2890 2360 IF Q-9>0 AND Q-9<82 AND X>0 AND X<10 THEN LET Q$(O-27,O-25)="\#/" 2370 IF Q-1>0 AND Q-1<82 AND X-1>0 AND X-1<10 THEN LET Q$(O-3,O-1)="--=" 2380 IF Q+1>0 AND Q-1<82 AND X+1>0 AND X+1<10 THEN LET Q$(O+3,O+6)="=--" 2390 IF Q+9>0 AND Q+9<82 AND X>0 AND X<10 THEN LET Q$(O+27,O+29)="/#\" 2395 LET V=Y: LET H=X: GOSUB 1200 2400 IF Z>43 THEN 2890 2410 IF T(Z)>INT(T(Z)) THEN 2890 2415 LET Y=Y(Z)-Q1+5: LET X=X(Z)-Q2+5 2420 IF Y<0 OR Y>10 OR X<-1 OR X>10 THEN 2890 2430 LET Q=(Y*9)+X-9: LET I=(Z*3)-2: LET O=(Q*3)-2 2432 IF Y<1 OR Y>9 OR X<1 OR X>9 THEN 2440 2435 IF E(Z)>0 THEN LET Q$(O,O+2)=S$(I,I+2) 2440 IF Z>1 THEN 2770 2450 IF Q-19>0 AND Q-19<82 AND X-1>0 AND X-1<10 THEN LET Q$(O-57,O-55)=".='" 2460 IF Q-18>0 AND Q-18<82 AND X>0 AND X<10 THEN LET Q$(O-54,O-52)="-. " 2470 IF Q-17>0 AND Q-17<82 AND X+2>0 AND X+2<10 THEN LET Q$(O-48,O-46)="===" 2480 IF Q-16>0 AND Q-16<82 AND X+3>0 AND X+3<10 THEN LET Q$(O-45,O-43)="===" 2490 IF Q-15>0 AND Q-15<82 AND X+4>0 AND X+4<10 THEN LET Q$(O-42,O-40)="== " 2500 IF Q-13>0 AND Q-13<82 AND X+6>0 AND X+6<10 THEN LET Q$(O-36,O-34)=".--" 2510 IF Q-11>0 AND Q-11<82 AND X-2>0 AND X-2<10 THEN LET Q$(O-32,O-32)="/" 2520 IF Q-8>0 AND Q-8<82 AND X+1>0 AND X+1<10 THEN LET Q$(O-24,O-22)="---" 2530 IF Q-7>0 AND Q-7<82 AND X+2>0 AND X+2<10 THEN LET Q$(O-21,O-19)="-H-" 2540 IF Q-6>0 AND Q-6<82 AND X+3>0 AND X+3<10 THEN LET Q$(O-18,O-16)="-H-" 2550 IF Q-5>0 AND Q-5<82 AND X+4>0 AND X+4<10 THEN LET Q$(O-15,O-13)="H--" 2560 IF Q-4>0 AND Q-4<82 AND X+5>0 AND X+5<10 THEN LET Q$(O-12,O-11)="-/" 2570 IF Q-3>0 AND Q-3<82 AND X+6>0 AND X+6<10 THEN LET Q$(O-9,O-7)="-=E" 2580 IF Q-2>0 AND Q-2<82 AND X-2>0 AND X-2<10 THEN LET Q$(O-6,O-6)="(" 2590 IF Q-1>0 AND Q-1<82 AND X-1>0 AND X-1<10 THEN LET Q$(O-4,O-3)="C:" 2600 IF Q+2>0 AND Q+2<82 AND X+2>0 AND X+2<10 THEN LET Q$(O+6,O+8)="GAL" 2610 IF Q+3>0 AND Q+3<82 AND X+3>0 AND X+3<10 THEN LET Q$(O+9,O+11)="ACT" 2620 IF Q+4>0 AND Q+4<82 AND X+4>0 AND X+4<10 THEN LET Q$(O+12,O+14)="ICA" 2630 IF Q+6>0 AND Q+6<82 AND X+6>0 AND X+6<10 THEN LET Q$(O+20,O+20)=":" 2640 IF Q+7>0 AND Q+7<82 AND X-2>0 AND X-2<10 THEN LET Q$(O+22,O+22)="\" 2650 IF Q+10>0 AND Q+10<82 AND X+1>0 AND X+1<10 THEN LET Q$(O+30,O+32)="---" 2660 IF Q+11>0 AND Q+11<82 AND X+2>0 AND X+2<10 THEN LET Q$(O+33,O+35)="-H-" 2670 IF Q+12>0 AND Q+12<82 AND X+3>0 AND X+3<10 THEN LET Q$(O+36,O+38)="-H-" 2680 IF Q+13>0 AND Q+13<82 AND X+4>0 AND X+4<10 THEN LET Q$(O+39,O+41)="H--" 2690 IF Q+14>0 AND Q+14<82 AND X+5>0 AND X+5<10 THEN LET Q$(O+42,O+43)="-\" 2700 IF Q+15>0 AND Q+15<82 AND X+6>0 AND X+6<10 THEN LET Q$(O+45,O+47)="-=E" 2710 IF Q+17>0 AND Q+17<82 AND X-1>0 AND X-1<10 THEN LET Q$(O+51,O+53)="'=." 2720 IF Q+18>0 AND Q+18<82 AND X>0 AND X<10 THEN LET Q$(O+54,O+56)="-'" 2730 IF Q+20>0 AND Q+20<82 AND X+2>0 AND X+2<10 THEN LET Q$(O+60,O+62)="===" 2740 IF Q+21>0 AND Q+21<82 AND X+3>0 AND X+3<10 THEN LET Q$(O+63,O+65)="===" 2750 IF Q+22>0 AND Q+22<82 AND X+4>0 AND X+4<10 THEN LET Q$(O+66,O+67)="==" 2760 IF Q+24>0 AND Q+24<82 AND X+6>0 AND X+6<10 THEN LET Q$(O+72,O+74)="~--" 2770 IF T(Z)<>2 THEN 2890 2780 IF Z<5 OR Z>32 THEN 2800 2785 IF Q+1>0 AND Q+1<82 AND X+1>0 AND X+1<10 THEN LET Q$(O+3,O+6)="[]=" 2790 IF Q+9>0 AND Q+9<82 AND X>0 AND X<10 THEN LET Q$(O+27,O+29)="\[]" 2795 IF Q+10>0 AND Q+10<82 AND X+1>0 AND X+1<10 THEN LET Q$(O+30,O+32)="[]=" 2800 IF Z<33 OR Z>34 THEN 2810 2805 IF Q+1>0 AND Q+1<82 AND X+1>0 AND X+1<10 THEN LET Q$(O+3,O+6)="F]=" 2810 IF Z<35 OR Z>35 THEN 2820 2815 IF Q+1>0 AND Q+1<82 AND X+1>0 AND X+1<10 THEN LET Q$(O+3,O+6)="OO=" 2820 IF Z<36 OR Z>36 THEN 2830 2825 IF Q+1>0 AND Q+1<82 AND X+1>0 AND X+1<10 THEN LET Q$(O+3,O+6)="@]=" 2830 IF Z<37 OR Z>37 THEN 2840 2835 IF Q+1>0 AND Q+1<82 AND X+1>0 AND X+1<10 THEN LET Q$(O+3,O+6)="==E" 2840 IF Z=42 OR Z=43 THEN 2845 ELSE 2890 2845 IF Q+1>0 AND Q+1<82 AND X+1>0 AND X+1<10 THEN LET Q$(O+3,O+6)="X]=" 2890 NEXT Z 2895 RETURN 2900 PRINT "(-4 -3 -2 -1 0 1 2 3 4 ****) SHORT R. SCAN" 2910 FOR Q=1 TO 270 STEP 27 2920 IF Q<301 THEN PRINT "X";Q$(Q,Q+26); 2930 IF Q=1 THEN PRINT " X(-4) DAYS ELAPSED: ";T 2935 IF Q=28 THEN PRINT " X(-3) GALAXY area: ";SGN(Y(P));SGN(X(P)) 2940 IF Q=55 THEN PRINT " X(-2) SHIP coordinates: ";Y(P);X(P) 2945 IF Q=82 THEN PRINT " X(-1) ... ENERGY: ";INT(E(P)) 2950 IF Q=109 THEN PRINT " X( 0) ... SHIELDS: ";(E(P)-INT(E(P)))*100;"%" 2955 IF Q=136 THEN PRINT " X( 1) ... Fuel: ";F(P) 2960 IF Q=163 THEN PRINT " X( 2) ... Course: ";I(P) 2975 IF Q=190 THEN PRINT " X( 3) ..." 2980 IF Q=217 THEN PRINT " X( 4) ... ": EXIT 2995 2992 NEXT Q 2995 PRINT "(-4 -3 -2 -1 0 1 2 3 4 ****)" 2999 RETURN 3000 FOR K=P TO 43 3010 IF E(K)>0 AND T(K)=INT(T(K)) THEN LET P=K: EXIT 3030 3020 NEXT K 3030 RETURN 3050 LET Y=Y(P): LET X=X(P): PRINT B$ 3060 PRINT " ";X-20;TAB(7);X-10;TAB(15);X; 3070 PRINT TAB(21);X+10;TAB(28);X+20;TAB(35); 3080 PRINT "(****)": PRINT B$; 3090 RETURN 3100 REM ...SCAN REPORT gosub 3110 IF Z=1 THEN PRINT TAB(37);Y-20;") Long Range:";H$;P 3120 IF Z=6 THEN PRINT TAB(37);Y-10;")" 3130 IF Z=11 THEN PRINT TAB(37);Y;") FORMAT is Y.XX" 3140 IF Z=16 AND C=2 THEN PRINT TAB(37);Y+10;") ... Stars = Y" 3150 IF Z=16 AND C=3 THEN PRINT TAB(37);Y+10;") ... CYLONS = Y" 3160 IF Z=21 AND C=2 THEN PRINT TAB(37);Y+20;") ... Planets = .XX" 3170 IF Z=21 AND C=3 THEN PRINT TAB(37);Y+20;") ... Your ships = .XX" 3180 RETURN 3200 IF Q3=Y(P) AND Q4=X(P) THEN RETURN : REMSCAN A 3210 LET Q3=Y(P): LET Q4=X(P) 3220 FOR Z=1 TO 25: LET A(Z)=0: NEXT Z 3230 FOR Z=1 TO 75: REM ..fixed bodies 3235 LET V=5: LET H=3 3240 IF V(Z)<>0 THEN LET V=INT(V(Z)/10)-INT(Q3/10)+3 3245 IF H(Z)<>0 THEN LET H=INT(H(Z)/10)-INT(Q4/10)+3 3250 IF V<1 OR V>5 OR H<1 OR H>5 THEN 3290 3260 LET Q=(V*5)+H-5 3270 IF Q>0 AND Q<26 AND L(Z)>1 THEN LET A(Q)=A(Q)+.01 3280 IF Q>0 AND Q<26 AND L(Z)=1 THEN LET A(Q)=A(Q)+1 3290 NEXT Z 3295 RETURN 3300 IF Q5=Y(P) AND Q6=X(P) THEN RETURN : REM ..SCAN B 3310 LET Q5=Y(P): LET Q6=X(P) 3320 FOR Z=1 TO 25: LET B(Z)=0: NEXT Z 3325 FOR Z=1 TO 200: REM ..ships 3330 IF T(Z)>INT(T(Z)) OR E(Z)<1 THEN 3390 3335 LET Y=5: LET X=3 3340 IF Y(Z)<>0 THEN LET Y=INT(Y(Z)/10)-INT(Q5/10)+3 3345 IF X(Z)<>0 THEN LET X=INT(X(Z)/10)-INT(Q6/10)+3 3350 IF Y<1 OR Y>5 OR X<1 OR X>5 THEN 3390 3360 LET Q=(Y*5)+X-5 3370 IF Q>0 AND Q<26 AND Z<50 THEN LET B(Q)=B(Q)+.01 3380 IF Q>0 AND Q<26 AND Z>49 THEN LET B(Q)=B(Q)+1 3390 NEXT Z 3395 RETURN 3800 PRINT ,"&J&J*#* Flares launched *#*&J&J": GOTO 5400 3900 REM ..Land on nearby planetary body 3910 IF P>4 AND P<31 THEN PRINT V$; ELSE PRINT Y$; 3920 FOR Z=1 TO 75 3930 IF ABS(V(Z)-Y(P))>6 OR ABS(H(Z)-X(P))>6 THEN 3980 3940 IF L(Z)=1 THEN PRINT " avoiding "; ELSE PRINT " ...landed on..." 3950 GOSUB 7600 3960 IF Z=60 THEN PRINT "&J&J*** EARTH ***&J&J": LET W=1 3970 EXIT 3990 3980 NEXT Z 3985 PRINT " is to far away to land.&J": GOTO 5400 3990 LET P=P+1: PRINT : GOTO 4090 4000 IF T(P)=3 THEN LET D2=30: LET D3=40 ELSE LET D3=20 4002 PRINT A$;"YOU can move";H$;P;" TO ";D2 4005 PRINT " OR any ship in between. ('0' MOVES ALL SHIPS)&J" 4010 INPUT " INPUT THE 'LAST' SHIP to move ---> ",X0 4015 PRINT : IF X0=0 THEN 4025 4020 IF X0
D2 THEN 4000 ELSE LET D2=X0
4025 IF X0=P THEN LET N2=P ELSE LET N2=0
4030 PRINT H$;P;" NEW COURSE? [1-8]"
4035 INPUT "('0' means keep OLD course)---=>",C0
4040 IF C0>=0 AND C0<9 THEN PRINT ELSE 4000
4045 IF C0=0 THEN LET C0=I(P)
4050 PRINT "...SPEED ?; OR NO. of spaces to move(1 to";D3;
4060 INPUT ")---=>",W0: IF W0=0 THEN 5500
4065 IF W0<1 OR W0>D3 THEN 4040
4070 GOSUB 1000
4080 IF N2>0 THEN LET P=P+1
4085 IF W0>N5 THEN LET N5=W0
4090 GOSUB 3000
4095 LET Q1=Q1+1: LET Q5=Q5+1: GOTO 5000
4100 GOSUB 2000: REM .......short range scan
4110 GOSUB 2900
4195 GOTO 5400
4200 GOSUB 3200: REM .......SCAN A: stars, planets,etc.
4210 PRINT "&J";: GOSUB 3050: PRINT " SCAN A from ";Y(P);X(P)
4220 FOR Z=1 TO 25 STEP 5
4230 PRINT TAB(1);A(Z);TAB(8);A(Z+1);TAB(15);A(Z+2);
4240 PRINT TAB(22);A(Z+3);TAB(29);A(Z+4);TAB(35);"(";
4250 GOSUB 3100
4260 NEXT Z
4290 GOTO 4370
4300 GOSUB 3300: REM .......SCAN B: ships
4310 PRINT "&J";: GOSUB 3050: PRINT " SCAN B from ";Y(P);X(P)
4320 FOR Z=1 TO 25 STEP 5
4330 PRINT TAB(1);B(Z);TAB(8);B(Z+1);TAB(15);B(Z+2);
4340 PRINT TAB(22);B(Z+3);TAB(29);B(Z+4);TAB(35);"(";
4350 GOSUB 3100
4360 NEXT Z
4370 GOSUB 3050: PRINT "&J"
4390 GOTO 5500
4400 IF T(P)=2 THEN PRINT ,"&JH E L P !&J": GOTO 5400
4410 PRINT "Input desired location ";
4420 INPUT "...--=>",Y(P),X(P)
4495 GOTO 5500
4500 PRINT "&J###";H$;P;" set shield percent";
4510 INPUT (3,0)" ---=>",I
4520 IF I>100 THEN LET I=100
4530 IF I<0 THEN LET I=0
4540 IF I>0 THEN LET I=I/100
4550 LET E(P)=E(P)+I
4580 PRINT
4590 GOTO 5500
4600 PRINT "&J###";H$;P;" status:&J"
4610 PRINT ,"Energy: ";INT(E(P))
4620 PRINT ,"Shields: ";(E(P)-INT(E(P)))*100;"%"
4630 PRINT ,H$;"course: ";I(P)
4640 PRINT ,H$;"co-ord: ";Y(P);X(P)
4690 PRINT
4695 GOTO 5500
4700 PRINT
4710 PRINT ,"OPTION 0 = LOOK AT GALAXY MAP"
4720 PRINT ,"OPTION 1 = GAME STATUS"
4730 PRINT ,"OPTION 2 = DISTANCE CALCULATOR"
4740 PRINT ,"OPTION 3 = REPORT ship locations"
4750 PRINT ,"OPTION 4 = REPORT fighter locations"
4755 PRINT ,"OPTION 5 = REPORT visible enemy"
4760 PRINT ,"OPTION 6 = REPORT known star ";X$;"locations"
4765 PRINT ,"OPTION 7 = REPORT on scan readout"
4770 PRINT ,"OPTION 8 = Launch ";Y$;"(GALACTICA only)"
4772 PRINT ,"OPTION 9 = Land ";Y$;"(GALACTICA only)"
4775 INPUT (1,0)"<***> WHICH OPTION COMMANDER ? (0-9) ---=>",Z
4780 IF Z<0 OR Z>8 THEN 5500 ELSE LET Z=INT(Z): PRINT
4785 IF Z>7 AND P>1 THEN 5400
4787 IF Z=0 THEN 8000
4790 ON Z GOTO 8100,8200,8300,8400,8500,8600,8700,4800,4900
4795 GOTO 5500
4800 IF P>1 THEN 3800 ELSE LET X=0
4805 IF C=8 THEN LET D1=5: LET D3=30 ELSE LET D1=2: LET D3=4
4810 FOR Z=D1 TO D3
4815 IF T(Z)=2.5 AND E(Z)>0 THEN LET X=X+1: LET D2=Z
4820 IF T(Z)=3.5 AND E(Z)>0 THEN LET X=X+1: LET D2=Z
4825 NEXT Z
4830 PRINT "&JYou have ";X;
4835 IF C=8 THEN PRINT " Vipers"; ELSE PRINT Y$;
4840 PRINT " ready to launch "
4845 PRINT "### INPUT the last Ship to launch: (";D1;" to ";D2;")&J"
4850 INPUT "---=>",Y
4855 IF Y