1000 COM A$[2*45],S$[730],N$[16],W$[14*45],X[45],Y[45],B$[2],C$[6] 1010 COM D$[1],R$[15],T9,N1,W1,O,F1,N2,N3,O1,O2,P1,P2,N4 1020 DEF FNR(X)=INT(X*RND(0)+1) 1030 DEF FNM(X)=X-INT(X/N2)*N2 1040 SYSTEM 2 1050 IF S$ THEN 1350 1060 LET A$="CENTURIANARCTURIANKLINGON ROMULAN ORION " 1070 INPUT (30*10,T8)"~~\^~CAPTAIN: MY LAST NAME IS ",R$ 1080 LET N$=A$[FNR(5)*9-8],T9=40,S$="ENTERPRISE" 1090 INPUT (50*6,T8)"\^I'M EXPECTING [1-9] ENEMY VESSELS: ",N1 1100 IF ABS(N1-1)=INT(N1-1) THEN IF N1<10 THEN 1120 1110 GOTO 1090 1120 PRINT "\^COMPUTER: THE ";N$[1,9];"'S ARE ATTACKING THE ";S$;" WITH THE" 1130 LET A$="KOLOTH KRULIX QUARLO TROBLAKKANG",N$[10]=A$[FNR(5)*7-6] 1140 LET A$="KRIEGER DRADDOCKCENTAUR BISMARK FORBIN SHLURG TRAKKA" 1150 LET A$=A$+" VARNOR WARRIOR ",W1=N1+1,N2=10^2,N3=73 1160 FOR X=1 TO W1 1170 IF X=1 THEN 1220 1180 IF X=8 THEN PRINT 1190 PRINT " ";S$[X*N3-9*8,X*N3-5*13]; 1200 IF X=N1 THEN PRINT " AND THE"; 1210 IF X<>N1+1 THEN IF X<>N1 THEN IF N1<>1 THEN PRINT ","; 1220 LET Y=43*N2+FNR(5*N2),W=FNR(60*6)/57.2958,X[X]=COS(W)*Y,Y[X]=SIN(W)*Y 1230 LET W=FNR(60*6),W$[X*14-13]=""+CHR(X)+"^^"+CHR(W/N2)+CHR(FNM(W)) 1240 LET S$=S$+"ad^^^^ZF^<(dddddddd" 1250 LET W$=W$+CHR(W/N2)+CHR(FNM(W))+"3",Y=FNR(9)*8-7 1260 IF X=10 THEN 1290 1270 IF A$[Y,Y]=" " THEN 1250 1280 LET S$=S$+A$[Y,Y+7]+" ",A$[Y,Y]=" " 1290 NEXT X 1300 PRINT "." 1310 LET W$[7,11]="4",X[1]=0,Y[1]=0,S$[16,17]="}^",N4=17^3 1320 LET A$="-"+A$ 1330 IF MSC(0)<>63 THEN 1530 1340 PRINT "~~~*";A$[1,31];"~*";A$[1,31];"~9+~6MAG=";N4; 1350 IF MSC(0)<>63 THEN 1530 1360 PRINT "~~"; 1370 FOR K=7 TO -7 STEP -1 1380 FOR L=2 TO W1 1390 LET B$=W$[L*14-13],I=ASC(B$),B$=B$[2],X=ASC(B$) 1400 IF X=0 THEN 1500 1410 IF K<>INT((Y[L]-Y[1])*7/N4) THEN 1500 1420 LET Y=INT((X[L]-X[1])*15/N4+31/2),D$=S$[X*N3-9*8] 1430 IF Y>=1 THEN IF Y<=31 THEN 1450 1440 GOTO 1500 1450 PRINT "~";CHR(Y+42);CHR(ABS(K-7)); 1460 IF I=0 THEN PRINT D$; 1470 IF I=1 THEN PRINT "#"; 1480 IF I=2 THEN PRINT "*"; 1490 IF I=3 THEN PRINT ":"; 1500 NEXT L 1510 NEXT K 1520 PRINT "~"; 1530 INPUT (0,O)D$ 1540 IF D$<>"M" THEN 1580 1550 INPUT "\^MAGNIFICATION: ",N4 1560 IF N4<1 THEN 1550 1570 GOTO 1320 1580 IF D$="R" THEN 1320 1590 PRINT "\^";R$;": CODE [1-29] "; 1600 INPUT (T9*2,T8)"",O 1610 PRINT 1620 ON O GOTO 1690,1910,1960,1990,1960,1990 1630 IF O<1 THEN 2280 1640 IF O<11 THEN CHAIN #1;"$TREK1" 1650 IF O<19 THEN CHAIN #1;"$TREK2" 1660 IF O<22 THEN CHAIN #1;"$TREK1" 1670 IF O<30 THEN CHAIN #1;"$TREK3" 1680 GOTO 2280 1690 PRINT "FIRE PHASERS [1-4] "; 1700 GOSUB 2340 1710 INPUT (T9,T8)"SPREAD [10-45] ",Y 1720 LET I=22,L=4 1730 PRINT 1740 IF SGN(LEN(C$))*Y>=10 THEN IF Y<=45 THEN 1760 1750 GOTO 2300 1760 LET S$[39,39]=CHR(Y) 1770 FOR X=1 TO LEN(C$) 1780 LET B$=C$[X],K=ASC(B$),Y=I+K,D$=S$[Y] 1790 IF K>=1 THEN IF K<=L THEN IF D$<>"" THEN 1820 1800 GOSUB 2670 1810 GOTO 1880 1820 IF D$>="" THEN 1880 1830 IF L=6 THEN IF S$[45+K,45+K]="" THEN 1800 1840 LET S$[Y,Y]=CHR(ASC(D$)+25) 1850 IF L=4 THEN GOSUB 2420 1860 IF L=6 THEN GOSUB 2580 1870 IF S$[Y,Y]<"" THEN 1800 1880 NEXT X 1890 IF F1 THEN PRINT " :UNABLE TO FIRE" 1900 GOTO 2290 1910 PRINT "FIRE TUBES [1-6] "; 1920 GOSUB 2340 1930 IF C$="" THEN 2280 1940 LET I=39,L=6 1950 GOTO 1770 1960 PRINT "LOCK PHASERS [1-4] "; 1970 LET I=22,L=4 1980 GOTO 2010 1990 PRINT "LOCK TUBES [1-6] "; 2000 LET I=39,L=6 2010 GOSUB 2340 2020 IF C$="" THEN 2280 2030 IF (O-5)*(O-6)=0 THEN 2050 2040 IF S$[11,11]="" THEN 2100 2050 INPUT (T9,T8)"COURSE [0-360] ",B 2060 PRINT 2070 LET X2=60 2080 IF SGN(T8)*B>=0 THEN IF B<60*6 THEN 2130 2090 GOTO 2320 2100 PRINT "ON [WHOM] "; 2110 GOSUB 2600 2120 IF X2>40 THEN 2050 2130 FOR X=1 TO LEN(C$) 2140 LET B$=C$[X],K=ASC(B$),Y=I+K,D$=S$[Y] 2150 IF K>=1 THEN IF K<=L THEN IF D$<>"" THEN 2180 2160 GOSUB 2670 2170 GOTO 2250 2180 IF (O-5)*(O-6)*(X2-60)=0 THEN 2200 2190 IF S$[11,11]="" THEN 2220 2200 LET S$[Y,Y]="",S$[I+2*L-1+K*2,I+2*L+K*2]=CHR(B/N2)+CHR(FNM(B)) 2210 GOTO 2250 2220 LET S$[Y,Y]=CHR(X2) 2230 IF L=6 THEN GOSUB 2580 2240 IF L=4 THEN GOSUB 2420 2250 NEXT X 2260 IF F1 THEN PRINT " :UNABLE TO LOCK" 2270 GOTO 2290 2280 PRINT "**TIME**" 2290 CHAIN #1;"$TREK4" 2300 PRINT "CHEKOV: WHAT?" 2310 GOTO 2290 2320 PRINT "SPOCK: BAD PARAMETER(S)" 2330 GOTO 2290 2340 INPUT (2*T9,T8)"",A$ 2350 PRINT 2360 LET C$="" 2370 FOR X=1 TO 6 2380 SEARCH A$,STR(X),Y 2390 IF Y THEN LET C$=C$+CHR(X) 2400 NEXT X 2410 RETURN 2420 LET T8=29+K*2,A$="#" 2430 LET B$=S$[Y],J=ASC(B$),B$=S$[T8] 2440 IF J>=25 THEN LET J=J-25 2450 LET X1=X[J]-X[1],Y1=Y[J]-Y[1],B=2*45 2460 IF J=0 THEN 2540 2470 IF W$[J*14-12,J*14-12]="" THEN 2560 2480 IF X1 THEN LET B=ATN(Y1/X1)*57.2958 2490 IF X1>=0 THEN IF Y1>=0 THEN 2520 2500 LET B=B+60*3 2510 IF X1>=0 THEN LET B=B+60*3 2520 LET B$=W$[7],D$=B$[2],W=ASC(B$)*N2+ASC(D$) 2530 LET Z=B-W-INT((B-W)/60/6)*60*6,B$=CHR(Z/N2)+CHR(FNM(Z)),S$[T8,T8+1]=B$ 2540 IF B$>=A$[1,2] THEN IF B$<=A$[3,4] THEN IF S$[15,15]="" THEN LET S$[Y,Y]=CHR(J) 2550 RETURN 2560 LET S$[Y,Y]="" 2570 RETURN 2580 LET T8=50+K*2,A$="#" 2590 GOTO 2430 2600 INPUT (T9,T8)"",D$ 2610 PRINT 2620 FOR X2=2 TO N1+1 2630 IF W$[X2*14-13,X2*14-13]="" THEN IF S$[X2*N3-9*8,X2*N3-9*8]=D$ THEN RETURN 2640 NEXT X2 2650 LET X2=60 2660 RETURN 2670 IF F1 THEN 2710 2680 PRINT "COMPUTER: "; 2690 IF L=4 THEN PRINT "PHASER(S): "; 2700 IF L=6 THEN PRINT "TUBE(S): "; 2710 PRINT K; 2720 LET F1=1 2730 RETURN