COM A$[2*45],S$[N3*10],N$[16],W$[14*45],X[45],Y[45],B$[2] 1010 COM D$[1],R$[15],T9,N1,W1,O,N2,N3,O1,O2,P1,P2,F2,N4 1020 SYSTEM 6 1030 DEF FNQ(X)=ASC(A$)*N2+ASC(B$) 1040 ON O-11 GOTO 1520,1860,2240,2240,2180,2530,2490 1050 FOR J=3 TO W1 1060 IF W$[J*14-13,J*14-12]<>"" THEN 1150 1070 IF F2=0 THEN PRINT "\^PROBE BEARING RANGE COURSE TIME PROX UNITS TARGET" 1080 GOSUB 1780 1090 LET A$=W$[J*14-9],B$=A$[2],W=FNQ(1),A$=A$[3],B$=A$[2],F2=FNQ(1),A$=A$[5] 1100 LET Y=ASC(A$)-50,A$=A$[2],X=ASC(A$),A$=A$[2],B$=A$[2] 1110 PRINT J; TAB (7);INT(B); TAB (13);INT(SQR(X1^2+Y1^2)); TAB (22);F2; 1120 PRINT TAB (28);X; TAB (34);FNQ(1); TAB (40);W/10; TAB (46); 1130 IF Y*(Y-60)=0 THEN PRINT "NONE" 1140 IF Y<>60 THEN IF Y THEN PRINT S$[Y*N3-9*8,Y*N3-9*7] 1150 NEXT J 1160 IF F2 THEN 1190 1170 PRINT "SULU: WHAT PROBES?" 1180 GOTO 1850 1190 PRINT "\^CHEKOV: DETONATE ALL PROBES?\^";R$; 1200 INPUT (T9,T8)": [YES OR NO] ",D$ 1210 PRINT 1220 IF D$<>"Y" THEN 1280 1230 FOR J=29 TO W1*14 STEP 14 1240 IF W$[J,J+1]="" THEN LET W$[J+11,J+11]="" 1250 NEXT J 1260 PRINT "CHEKOV: AYE, SIR." 1270 GOTO 1850 1280 INPUT (T9,T8)"CONTROL PROBE [#] ",J 1290 PRINT 1300 IF SGN(T8)*J>=1 THEN IF J<=W1 THEN 1320 1310 GOTO 1840 1320 LET J=J*14-2 1330 IF W$[J-11,J-10]<>"" THEN 1840 1340 PRINT "CHEKOV: DETONATE IT?\^";R$; 1350 INPUT (T9,T8)": [YES OR NO] ",D$ 1360 PRINT 1370 IF D$<>"Y" THEN 1400 1380 LET W$[J,J]="" 1390 GOTO 1260 1400 PRINT "LOCK IT ONTO [WHOM] "; 1410 GOSUB 1710 1420 IF X2>40 THEN 1450 1430 LET W$[J-1,J-1]=CHR(X2+50) 1440 GOTO 1260 1450 INPUT (T9,T8)"COURSE [0-360] ",C 1460 PRINT 1470 IF SGN(T8)*C>=0 THEN IF C<=60*6 THEN 1490 1480 GOTO 1840 1490 LET W$[J-3,J-1]=CHR(C/N2)+CHR(C-INT(C/N2)*N2)+"2" 1500 PRINT "SULU: SETTING IN NEW COURSE" 1510 GOTO 1850 1520 PRINT TAB (13);"^WARP COURSE BEARING RANGE" 1530 FOR J=1 TO W1 1540 LET A$=W$[J*14-11],Z=ASC(A$)/10,A$=A$[5],B$=A$[2],Y=FNQ(1) 1550 LET A$=A$[5],X=ASC(A$)-50,A$="ENGNEERING",B$=W$[J*14-13] 1560 IF B$[2]="" THEN 1690 1570 IF B$>"" THEN IF B$<>"" THEN 1690 1580 IF B$="" THEN LET A$[1,10]="PROBE #"+STR(J)+" " 1590 IF ASC(B$)=0 THEN LET A$=S$[J*N3-9*8,J*N3-9*7],D$=S$[J*N3] 1600 PRINT A$;": ";Z*(ASC(D$)-1); TAB (19);Y; TAB (25); 1610 IF J=1 THEN 1650 1620 GOSUB 1780 1630 PRINT INT(B+1/2); TAB (33);INT(SQR(X1^2+Y1^2)) 1640 GOTO 1690 1650 IF X*ASC(B$) THEN 1680 1660 IF X>0 THEN PRINT "PURSUING ";S$[X*N3-9*8,X*N3-9*7]; 1670 IF X<0 THEN PRINT "ELUDING ";S$[ABS(X)*N3-9*8,ABS(X)*N3-7*9]; 1680 PRINT 1690 NEXT J 1700 CHAIN #1;"$TREK0" 1710 INPUT (T9,T8)"",D$ 1720 PRINT 1730 FOR X2=2 TO N1+1 1740 IF W$[X2*14-13,X2*14-13]="" THEN IF S$[X2*N3-9*8,X2*N3-9*8]=D$ THEN RETURN 1750 NEXT X2 1760 LET X2=60 1770 RETURN 1780 LET X1=X[J]-X[1],Y1=Y[J]-Y[1],B=2*45 1790 IF X1 THEN LET B=ATN(Y1/X1)*57.2958 1800 IF X1>=0 THEN IF Y1>=0 THEN RETURN 1810 LET B=B+60*3 1820 IF X1>=0 THEN LET B=B+60*3 1830 RETURN 1840 PRINT "**TIME**" 1850 CHAIN #1;"$TREK4" 1860 IF S$[12,12]="" THEN 1900 1870 PRINT "SPOCK: OUR SENSORS ARE DEAD" 1880 IF O>13 THEN 1850 1890 GOTO 1700 1900 INPUT (T9*2,T8)"DISPLAY TO [10-50000] ",Z 1910 PRINT 1920 IF SGN(T8)*Z>=10 THEN IF Z<=50000 THEN 1940 1930 GOTO 1900 1940 FOR K=6 TO -6 STEP -1 1950 LET A$="-"+A$ 1960 IF ABS(K)<>6 THEN LET A$=" "+A$ 1970 FOR L=2 TO W1 1980 LET B$=W$[L*14-13],I=ASC(B$),B$=B$[2] 1990 IF B$="" THEN 2080 2000 IF K<>INT((Y[L]-Y[1])*6/Z+1/2) THEN 2080 2010 LET Z9=INT((X[L]-X[1])*10/Z+21/2) 2020 IF Z9>=1 THEN IF Z9<=21 THEN 2040 2030 GOTO 2080 2040 IF I=0 THEN LET A$[Z9,Z9]=S$[ASC(B$)*N3-9*8] 2050 IF I=1 THEN LET A$[Z9,Z9]="#" 2060 IF I=2 THEN LET A$[Z9,Z9]="*" 2070 IF I=3 THEN LET A$[Z9,Z9]=":" 2080 NEXT L 2090 IF K=0 THEN LET A$[11,11]="+" 2100 FOR L=21 TO 1 STEP -1 2110 IF A$[L,L]<>" " THEN 2150 2120 NEXT L 2130 PRINT 2140 GOTO 2160 2150 PRINT A$[1,L] 2160 NEXT K 2170 GOTO 1700 2180 INPUT (T9,T8)"COME TO COURSE [0-360] ",C 2190 PRINT 2200 IF SGN(T8)*C>=0 THEN IF C<=60*6 THEN 2220 2210 GOTO 2330 2220 LET W$[9,11]=CHR(C/N2)+CHR(C-INT(C/N2)*N2)+"2",X2=60 2230 GOTO 2300 2240 PRINT "CHEKOV: "; 2250 IF O=14 THEN PRINT "PURSUE"; 2260 IF O=15 THEN PRINT "RUN FROM"; 2270 PRINT " [WHOM] "; 2280 GOSUB 1710 2290 IF X2>40 THEN 2180 2300 INPUT (T9*2,T8)"WARP FACTOR [-9 TO 9] ",Z 2310 PRINT 2320 IF ABS(Z)<=9 THEN IF T8>=0 THEN 2350 2330 PRINT "SPOCK: BAD PARAMETER(S)" 2340 GOTO 1850 2350 IF ABS(Z)>1 THEN IF S$[14,14]="" THEN 2390 2360 IF S$[14,14]="" THEN 2390 2370 PRINT "SCOTT: WARP DRIVE DEAD" 2380 GOTO 1850 2390 LET W$[4,4]=CHR(ABS(Z)*10),J=X2,S$[64,64]=CHR(1+SGN(Z)) 2400 IF S$[11,11]="" THEN 1500 2410 IF (O-16)*(X2-60)=0 THEN 1500 2420 GOSUB 1780 2430 PRINT "CHEKOV: AYE, SIR, COMING TO COURSE"; 2440 IF O=15 THEN LET X2=-X2 2450 LET W$[11,11]=CHR(X2+50) 2460 IF O<>15 THEN PRINT INT(B) 2470 IF O=15 THEN PRINT INT(B+60*3-INT((B+60*3)/60/6)*12*30) 2480 GOTO 1850 2490 IF S$[12,12]="" THEN 1870 2500 PRINT "SPOCK: SCAN [WHOM] "; 2510 GOSUB 1710 2520 IF X2>40 THEN 1840 2530 IF O=17 THEN LET X2=1 2540 LET A$=S$[X2*N3-9*8] 2550 PRINT "\^DAMAGES TO ";A$[1,10] 2560 IF A$[11,11]="" THEN PRINT "COMPUTER INOPERABLE. "; 2570 IF A$[12,12]="" THEN PRINT "SENSORS ANNAHILATED. "; 2580 IF A$[13,13]="" THEN PRINT "PROBE LAUNCHER SHOT. "; 2590 IF A$[14,14]="" THEN PRINT "WARP DRIVE DEAD. "; 2600 IF A$[15,15]="" THEN PRINT "ENGINEERING JETTISONED."; 2610 IF A$[11,15]="" THEN PRINT "NO DAMAGES SUFFERED" 2620 LET A$=A$[16] 2630 PRINT "\^SURVIVORS:";INT(ASC(A$)*18/5+9/10);"\^PHASERS: LEVELS"; 2640 FOR K=1 TO 4 2650 LET D$=A$[11+K] 2660 PRINT TAB (8*K+10);ASC(D$); 2670 NEXT K 2680 PRINT "\^TUBES: LEVELS"; 2690 FOR K=1 TO 6 2700 LET D$=A$[30+K] 2710 PRINT TAB (8*K+10);ASC(D$); 2720 NEXT K 2730 PRINT "\^SHIELDS: LEVELS"; 2740 FOR K=1 TO 4 2750 LET D$=A$[49+K],B$=A$[53+K] 2760 PRINT TAB (8*K+10);ASC(D$)/N2*ASC(B$); 2770 NEXT K 2780 LET A$=A$[2],X=ASC(A$),A$=A$[2],B$=A$[2],Y=ASC(A$)*10+ASC(B$)/10 2790 LET A$=A$[3],B$=A$[2],Z=FNQ(1),A$=A$[3] 2800 PRINT "\^^EFFICIENCY:";X/10;" REGENERATION:";ASC(A$)/10 2810 PRINT "FUEL REMAINING:";Y;" FUEL CAPACITY:";Z 2820 GOTO 1850