100     REM *** PROGRAM SIMULATES TV PROGRAM STARTREK
110     REM *** WRITTEN BY MIKE MAYFIELD, CENTERLINE ENGINEERING
170     RANDOMIZE
180     PRINT "                  * * *  STAR TREK  * * *"
181     PRINT
200     INPUT "DO YOU WANT INSTRUCTIONS (THEY'RE LONG!)";A$
210     IF A$<>"YES" THEN 230
220    GOTO 5820
230     REM *** PROGRAM BEGINS HERE
240     Z$,R$,Q$="                                                                        "
260     DIM G(8,8),C(9,2),K(3,3),N(3),Z(8,8)
290     T0,T=INT(RND(1)*20+20)*100
300     T9=30
301     D0=0
302     E0,E=3000
303     P0,P=10
304     S9=200
305     S,H8=0
360     DEF FND(D)=SQR((K(I,1)-S1)**2+(K(I,2)-S2)**2)
370     Q1=INT(RND(1)*8+1)
380     Q2=INT(RND(1)*8+1)
390     S1=INT(RND(1)*8+1)
400     S2=INT(RND(1)*8+1)
410     T7=TIME(0)
420     C(2,1),C(3,1),C(4,1),C(4,2),C(5,2),C(6,2)=-1
430     C(1,1),C(3,2),C(5,1),C(7,2),C(9,1)=0
440     C(1,2),C(2,2),C(6,1),C(7,1),C(8,1),C(8,2),C(9,2)=1
450     MAT D=ZER
460     D$="WARP ENGINESS.R. SENSORSL.R. SENSORSPHASER CNTRL"
470     D$=D$+"PHOTON TUBESDAMAGE CNTRL"
480     E$="SHIELD CNTRLCOMPUTER"
490     B9,K9=0
491     REM *** SETS UP WHAT EXISTS IN GALAXY
500     FOR I=1TO8
510     FOR J=1TO8
520     R1=RND(1)
530     IF R1>.98 THEN 580
540     IF R1>.95 THEN 610
550     IF R1>.8 THEN 640
560     K3=0
561     GOTO 660
580     K3=3
581     K9=K9+3
582     GOTO 660
610     K3=2
611     K9=K9+2
612     GOTO 660
640     K3=1
641     K9=K9+1
660     R1=RND(1)
670     IF R1>.96 THEN 700
680     B3=0
681     GOTO 720
700     B3=1
701     B9=B9+1
720     S3=INT(RND(1)*8+1)
730     G(I,J)=K3*100+B3*10+S3
740     Z(I,J)=0
750     NEXT J
760     NEXT I
770     K7=K9
775     PRINT
776     PRINT
780     PRINT"YOU MUST DESTROY"K9" KLINGONS IN"T9" STARDATES WITH "B9" STARBASES"
790     IF B9>0 THEN 810
800     G(6,3)=114
810     K3,B3,S3=0
820     IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 920
830     X=G(Q1,Q2)*.01
840     K3=INT(X)
850     B3=INT((X-K3)*10)
860     S3=G(Q1,Q2)-INT(G(Q1,Q2)*.1)*10
870     IF K3=0 THEN 910
880     IF S>200 THEN 910
890     PRINT"COMBAT AREA      CONDITION RED"
900     PRINT"   SHIELDS DANGEROUSLY LOW"
910     MAT K=ZER
920     FOR I=1TO3
930     K(I,3)=0
940     NEXT I
950     Q$=Z$
951     R$=Z$
970     S$=MID(Z$,1,48)
971     REM *** PUT ENTERPRISE SOMEWHERE
980     A$="<*>"
990     Z1=S1
1000    Z2=S2
1010    GOSUB 5510
1020    FOR I=1TOK3
1030 GOSUB 5380
1031    REM *** PUT KLINGONS SOMEWHERE
1040    A$="+++"
1050    Z1=R1
1060    Z2=R2
1070    GOSUB 5510
1080    K(I,1)=R1
1081    K(I,2)=R2
1082    K(I,3)=S9
1110    NEXT I
1120    FOR I=1TOB3
1130    GOSUB 5380
1131    REM *** PUT STARBASE(S) SOMEWHERE
1140    A$=">!<"
1141    Z1=R1
1142    Z2=R2
1170    GOSUB 5510
1180    NEXT I
1190    FOR I=1TOS3
1200    GOSUB 5380
1201    REM *** PUT STARS SOMEWHERE
1210    A$=" * "
1211    Z1=R1
1212    Z2=R2
1240    GOSUB 5510
1250    NEXT I
1260    GOSUB 4120
1270    INPUT "COMMAND:";A
1290    IF A=0 GOTO 1410
1291    IF A=1 GOTO 1260
1292    IF A=2 GOTO 2330
1293    IF A=3 GOTO 2530
1294    IF A=4 GOTO 2800
1295    IF A=5 GOTO 3460
1296    IF A=6 GOTO 3560
1297    IF A=7 GOTO 4630
1298    IF A=8 GOTO 6510
1310    PRINT
1311    PRINT"   0 = SET COURSE"
1320    PRINT"   1 = SHORT RANGE SENSOR SCAN"
1330    PRINT"   2 = LONG RANGE SENSOR SCAN"
1340    PRINT"   3 = FIRE PHASERS"
1350    PRINT"   4 = FIRE PHOTON TORPEDOES"
1360    PRINT"   5 = SHIELD CONTROL"
1370    PRINT"   6 = DAMAGE CONTROL REPORT"
1380    PRINT"   7 = CALL ON LIBRARY COMPUTER"
1390    PRINT"   8 = END THE CONTEST"
1391    PRINT
1400    GOTO 1270
1401    REM *** COURSE CONTROL CODE BEGINS HERE
1410    INPUT "COURSE (1-9):";C1
1430    IF C1=0 THEN 1270
1440    IF C1<1 OR C1>9 THEN 1410
1450    INPUT "WARP FACTOR (0-8):";W1
1470    IF W1<0 OR W1>8 THEN 1410
1480    IF D(1)>=0 OR W1<=.2 THEN 1510
1490    PRINT "WARP ENGINES ARE DAMAGED, MAXIMUM SPEED = WARP .2"
1500    GOTO 1410
1510    IF K3<=0 THEN 1560
1520    GOSUB 3790
1530    IF K3<=0 THEN 1560
1540    IF S<0 THEN 4000
1550    GOTO 1610
1560    IF E>0 THEN 1610
1570    IF S<1 THEN 3920
1580    PRINT "YOU HAVE"E" UNITS OF ENERGY"
1590    PRINT "SUGGEST YOU GET SOME FROM YOUR SHIELDS WHICH HAVE"S" UNITS LEFT"
1600    GOTO 1270
1610    FOR I=1TO8
1611    IF D(I)>=0 THEN 1640
1612    REM *** FIX ANY DAMAGED DEVICE
1630    D(I)=D(I)+1
1640    NEXT I
1650    IF RND(1)>.2 THEN 1810
1660    R1=INT(RND(1)*8+1)
1670    IF RND(1)>= .5 THEN 1750
1680    D(R1)=D(R1)-(RND(1)*5+1)
1690    PRINT
1691    PRINT "DAMAGE CONTROL REPORT:";
1710    GOSUB 5610
1720    PRINT" DAMAGED"
1721    PRINT
1722    GOTO 1810
1750    D(R1)=D(R1)+(RND(1)*5+1)
1760    PRINT
1761    PRINT "DAMAGE CONTROL REPORT:";
1780    GOSUB 5610
1790    PRINT" STATE OF REPAIR IMPROVED"
1791    PRINT
1810    N=INT(W1*8)
1811    A$="   "
1812    Z1=S1
1813    Z2=S2
1850    GOSUB 5510
1860    X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1))
1870    X=S1
1871    Y=S2
1890    X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1))
1900    X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1))
1910    FOR I=1TON
1911    S1=S1+X1
1912    S2=S2+X2
1940    IF S1<1 OR S1>=9 OR S2<1 OR S2>=9 THEN 2170
1950    S8=S1*24+S2*3-26
1951    IF S8>72 THEN 1990
1970    IF MID(Q$,S8,3)="   " THEN 2070
1980    GOTO 2030
1990    IF S8>144 THEN 2020
2000    IF MID(R$,S8-72,3)="   " THEN 2070
2010    GOTO 2030
2020    IF MID(S$,S8-144,3)="   " THEN 2070
2030    PRINT"WARP ENGINES SHUTDOWN AT SECTOR "S1","S2" DUE TO BAD NAVAGATION"
2040    S1=S1-X1
2041    S2=S2-X2
2042    GOTO 2080
2070    NEXT I
2080    A$="<*>"
2081    Z1=S1
2082    Z2=S2
2110    GOSUB 5510
2120    E=E-N+5
2121    IF W1<1 THEN 2150
2140    T=T+1
2150    IF T>T0+T9 THEN 3970
2160    GOTO 1260
2170    X=Q1*8+X+X1*N
2171    Y=Q2*8+Y+X2*N
2190