SCR
LOMEM=768
HIMEM=16384
10 FOR I=1 TO 40: PRINT "*";:NEXT I: PRINT 
20 PRINT "*";: TAB 40: PRINT "*"
30 PRINT "*";: TAB 15: PRINT "STAR TREK";: TAB 40: PRINT "*"
40 PRINT "*";: TAB 40: PRINT "*"
50 PRINT "*     FOR THE APPLE 1 & REPLICA 1      *"
60 PRINT "*";: TAB 40: PRINT "*"
70 PRINT "*";: TAB 13: PRINT "BY VINCE BRIEL";: TAB 40: PRINT "*"
80 PRINT "*";: TAB 40: PRINT "*"
130 FOR I=1 TO 40: PRINT "*";:NEXT I: PRINT
140 FOR I=1 TO 9:PRINT:NEXT I
150 DIM G(100),S(100),A$(15),N$(25)
160 A$="-\= * >!</=\-=-"
170 INPUT "WHAT IS YOUR NAME CAPTAIN",N$
250 INPUT "SKILL LEVEL (1-5) 5 IS HARDEST",S
260 IF S>0 AND S<6 THEN 280
270 PRINT "CHOOSE A NUMBER BETWEEN 1 AND 5 PLEASE.":GOTO 250
280 FOR I=1 TO 15:PRINT:NEXT I:PRINT "SETTING UP THE GALAXY"
290 FOR I=1 TO 100:G(I)=0:NEXT I
300 E1=5*S+RND(10):E7=2000:S1=0:T=10
310 FOR I=1 TO E1
320 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10:IF G(C)>=100 THEN 320
330 G(C)=G(C)+100
340 NEXT I
350 FOR I=1 TO 7-S
360 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10:G=G(C)
370 IF G<100 THEN 390
380 G=G-100:GOTO 370
390 IF G>=10 THEN 360
400 G(C)=G(C)+10
410 NEXT I
420 G=RND(300)+1:FOR I=1 TO G
430 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10
440 G(C)=G(C)+1:NEXT I
450 REM SET UP RANDOM X,Y CORDINATES FOR WHOLE GALAXY
451  PRINT:PRINT:PRINT
452  PRINT "SPACE, THE FINAL FRONTIER.":FOR G=1 TO 1000:NEXT G
453  PRINT "THESE ARE THE VOYAGES OF THE STARSHIP"
454  PRINT "ENTERPRISE. ITS FIVE YEAR MISSION:"
455  PRINT "TO EXPLORE STRANGE NEW WORLDS,"
456  PRINT "TO SEEK OUT NEW LIFE AND "
457  PRINT "NEW CIVILIZATIONS, TO BOLDLY GO "
458  PRINT "WHERE NO MAN HAS GONE BEFORE!"
459  PRINT:TAB (10):PRINT"S T A R   T R E K":FOR G=1 TO 1000:NEXT G

460 X1=RND(10)+1:Y1=RND(10)+1:GOTO 2000
470 PRINT:PRINT "LONG RANGE SENSOR SCAN:":PRINT:PRINT E1;" ENEMIES REMAINING.":PRINT
480 IF X1>1 THEN 500
490 PRINT "      10    1     2":GOTO 530
500 IF X1<10 THEN 520
510 PRINT "      9     10    1":GOTO 530
520 TAB 7:PRINT X1-1;"     ";X1;"     ";X1+1
530 FOR Y=Y1-1 TO Y1+1:Y2=Y:IF Y2<1 THEN Y2=10
540 IF Y2>10 THEN Y2=1
550 FOR I=1 TO 22:PRINT "-";:NEXT I:PRINT:PRINT Y2;:IF Y2<10 THEN PRINT " ";
560 PRINT " :";:N=1:FOR X=X1-1 TO X1+1:X2=X:IF X2<1 THEN X2=10
570 IF X2>10 THEN X2=1
580 IF X2=1 THEN 600
590 TAB (N*6)
600 C=(10*Y2+X2)-10:IF G(C)<100 THEN PRINT"0";
610 IF G(C)<10 THEN PRINT "0";
620 PRINT G(C);" : ";:N=N+1:NEXT X:PRINT:N=1:NEXT Y
630 FOR I=1 TO 22:PRINT "-";:NEXT I:PRINT:RETURN
650 REM SET UP OBJECTS IN QUADRANT PLACE ENTERPRISE FIRST
660 X4=RND(10)+1:Y4=RND(10)+1:C=(10*Y4+X4)-10:E6=0:E5=0
670 FOR I=1 TO 10:PRINT:NEXT I
680 PRINT "ENTERING QUADRANT ";X1;",";Y1
690 FOR I=1 TO 100:S(I)=0:NEXT I:S(C)=1:C=(10*Y1+X1)-10:G=G(C)
700 IF G<100 THEN 760
710 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10:IF S(C)<>0 THEN 710
720 D=RND(10)+1:IF D=1 THEN 740
730 S(C)=4:E6=100:E5=4:GOTO 750
740 S(C)=5:E6=200:E5=5
750 G=G-100
760 IF G<10 THEN 790
770 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10:IF S(C)<>0 THEN 770
780 S(C)=3:G=G-10:IF G>=10 THEN 770
790 IF G=0 THEN 840
800 FOR I=1 TO G
810 X=RND(10)+1:Y=RND(10)+1:C=(10*Y+X)-10:IF S(C)<>0 THEN 810
820 S(C)=2:NEXT I
840 RETURN
850 REM PRINT QUADRANT
860 PRINT:PRINT "QUAD ";X1;",";Y1;" SEC ";X4;",";Y4;" COND: ";:C1=3:C=(10*Y1+X1)-10:IF G(C) < 10 THEN 880
870 C1=2
880 IF G(C) < 100 THEN 900
890 C1=1
900 IF C1=1 THEN PRINT "RED"
910 IF C1=2 THEN PRINT "YELLOW"
920 IF C1=3 THEN PRINT "GREEN"
930 FOR I=1 TO 30:PRINT "-";:NEXT I:PRINT:FOR Y=1 TO 10:FOR X=1 TO 10:C=(10*Y+X)-10:IF S(C)<>0 THEN 950
940 PRINT "   ";:GOTO 960
950 PRINT A$((S(C)*3)-2,S(C)*3);
960 NEXT X:PRINT:NEXT Y:FOR I=1 TO 30:PRINT "-";:NEXT I:PRINT:PRINT
970 PRINT "ENERGY=";E7;:TAB 13:PRINT "SHIELDS=";S1;:TAB 24:PRINT "TORP=";T:PRINT:PRINT:PRINT:PRINT:PRINT:RETURN

1000 REM PHASORS
1010 INPUT "ENTER SHIELD LEVEL",G:IF G<E7 THEN 1030
1020 PRINT "NOT ENOUGH ENERGY.":GOTO 1000
1030 S1=G:E7=E7-G:IF S1>0 THEN 1050
1040 S1=0
1050 RETURN
1100 REM ENEMY FIRES
1110 IF E6>50 THEN 1130
1120 RETURN
1130 G=RND(E6/2)+1:IF E5=5 THEN 1220
1140 PRINT "KLINGON FIRES PHASOR BLAST ";G;" STRONG."
1150 S1=S1-G:E6=E6-(G/2):IF S1>0 THEN 1210
1160 E7=E7-G*2:S1=0:PRINT "SHIELDS DOWN! ";G*2;" DAMAGE TO SHIPS ENERGY"
1170 IF E7>0 THEN 1210
1180 PRINT "THE ENTERPRISE WAS DESTROYED!"
1190 PRINT "YOUR NEXT OF KIN WILL BE NOTIFIED."
1200 END
1210 RETURN
1220 G=G*(RND(3)+1):PRINT "ROMULAN FIRES STRANGE WEAPON...":PRINT "CAUSES ";G;" IN DAMAGE"
1230 GOTO 1150
1250 REM WARP SPEED
1260 IF S1<=0 THEN 1290
1270 PRINT "CAN'T WARP WITH SHIELDS UP.":GOTO 1900
1290 INPUT "DIRECTION ",T1:IF T1<1 OR T1>8 THEN 1290
1300 INPUT "WARP SPEED",G:IF G*10 < E7 THEN 1360
1320 PRINT "NOT ENOUGH ENERGY.":GOTO 1900
1360 FOR I=1 TO G:IF T1#1 THEN 1450
1380 X1=X1+1:IF X1>10 THEN X1=1
1420 Y1=Y1-1:IF Y1<1 THEN Y1=10
1450 IF T1#2 THEN 1500
1480 X1=X1+1:IF X1>10 THEN X1=1
1500 IF T1#3 THEN 1580
1520 X1=X1+1:IF X1>10 THEN X1=1
1540 Y1=Y1+1:IF Y1>10 THEN Y1=1
1580 IF T1#4 THEN 1640
1600 Y1=Y1+1:IF Y1>10 THEN Y1=1
1640 IF T1#5 THEN 1700
1660 X1=X1-1:IF X1<1 THEN X1=10
1680 Y1=Y1+1:IF Y1>10 THEN Y1=1
1700 IF T1#6 THEN 1760
1740 X1=X1-1:IF X1<1 THEN X1=10
1760 IF T1#7 THEN 1820
1780 X1=X1-1:IF X1<1 THEN X1=10
1800 Y1=Y1-1:IF Y1<1 THEN Y1=10
1820 IF T1#8 THEN 1850
1840 Y1=Y1-1:IF Y1<1 THEN Y1=10
1850 E7=E7-10:NEXT I:GOSUB 650
1870 GOSUB 850
1900 RETURN
2000 GOSUB 650
2010 GOSUB 850
2020 PRINT:PRINT "COMMAND CAPTAIN ";N$;" (0=HELP) ";

2030 INPUT C2
2040 IF G((10*Y1+X1)-10)<100 THEN 2070

2050 G=RND(5)+1:IF G>3 THEN 2070

2060 GOSUB 1100
2070 IF C2#0 THEN 2100
2080 GOSUB 2360
2090 GOTO 2020
2100 IF C2#1 THEN 2130
2110 GOSUB 470
2120 GOTO 2020
2130 IF C2#2 THEN 2160
2140 GOSUB 850
2150 GOTO 2020
2160 IF C2#3 THEN 2190
2170 GOSUB 1250
2180 GOTO 2020
2190 IF C2#4 THEN 2220
2200 GOSUB 1000
2210 GOTO 2020
2220 IF C2#5 THEN 2250
2230 GOSUB 2400
2240 GOTO 2020
2250 IF C2#6 THEN 2280
2260 GOSUB 3000
2270 GOTO 2020
2280 IF C2#7 THEN 2310
2290 GOSUB 4200
2300 GOTO 2020
2310 IF C2#8 THEN 2350

2320 GOTO 7000

2350 PRINT "ENTER A VALID COMMAND.":GOTO 2020

2360 PRINT:PRINT "COMMAND LIST:":PRINT:PRINT "0 = HELP, THIS LIST":PRINT "1 = LONG RANGE SENSOR SCAN"


2370 PRINT "2 = SHORT RANGE SENSOR SCAN":PRINT "3 = WARP ENGINES":PRINT "4 = SHIELD CONTROL":PRINT "5 = IMPULSE ENGINES"


2380 PRINT "6 = PHASOR CONTROL":PRINT "7 = PHOTON TORPEDO CONTROL"

2390 PRINT "8 =  SELF DESTRUCT"

2391 PRINT "   DIRECTIONS:"

2392 PRINT "      8"

2393 PRINT "   7  |  1"

2394 PRINT "    \ | /"

2395 PRINT "  6---0---2"

2396 PRINT "    / | \"

2397 PRINT "   5  |  3"

2398 PRINT "      4"

2399 RETURN

2400 INPUT "DIRECTION (1-8)",D

2410 IF D>0 AND D<9 THEN 2440

2420 PRINT "ANSWER BETWEEN 1 AND 8."


2430 GOTO 2400


2440 INPUT "IMPULSE SPEED",J

2450 IF E7>J THEN 2480

2460 PRINT "YOU DON'T HAVE ENOUGH ENERGY!"

2470 RETURN

2480 S((10*Y4+X4)-10)=0:FOR I=1 TO J:IF D#1 THEN 2510

2490 X4=X4+1:IF X4>10 THEN X4=1

2500 Y4=Y4-1:IF Y4<1 THEN Y4=10

2510 IF D#2 THEN 2530

2520 X4=X4+1:IF X4>10 THEN X4=1

2530 IF D#3 THEN 2560

2540 X4=X4+1:IF X4>10 THEN X4=1

2550 Y4=Y4+1:IF Y4>10 THEN Y4=1

2560 IF D#4 THEN 2580

2570 Y4=Y4+1:IF Y4>10 THEN Y4=1

2580 IF D#5 THEN 2610

2590 X4=X4-1:IF X4<1 THEN X4=10

2600 Y4=Y4+1:IF Y4>10 THEN Y4=1

2610 IF D#6 THEN 2630

2620 X4=X4-1:IF X4<1 THEN X4=10

2630 IF D#7 THEN 2660

2640 X4=X4-1:IF X4<1 THEN X4=10

2650 Y4=Y4-1:IF Y4<1 THEN Y4=10

2660 IF D#8 THEN 2680

2670 Y4=Y4-1:IF Y4<1 THEN Y4=10

2680 E7=E7-1:G=S((10*Y4+X4)-10)

2690 IF G=0 THEN 2900

2700 IF G#2 THEN 2750

2720 PRINT "YOU RAN INTO A STAR AND BURNED!"

2730 PRINT "YOUR NEXT OF KIN WILL BE NOTIFIED"

2740 END

2750 IF G#3 THEN 2800

2770 PRINT "YOU RAMMED THE STARBASE!"

2780 PRINT:PRINT "THOUSANDS ARE DEAD."

2790 PRINT N$;" WILL BE KNOWN AS A KILLER.":END

2800 PRINT "YOU RAMMED THE ENEMY SHIP"

2810 PRINT "IT WAS DESTROYED BUT SO WAS"

2820 PRINT "THE ENTERPRISE!":END

2900 NEXT I

2920 S((10*Y4+X4)-10)=1

2930 GOSUB 850

2940 GOSUB 4050

2950 RETURN

3000 REM PHASOR CONTROL

3010 IF E5#0 THEN 3100

3020 PRINT "NO ENEMY TO LOCK PHASORS ONTO!":RETURN

3100 INPUT "AMOUNT OF ENERGY TO PHASORS",G

3110 IF G<E7 THEN 3140

3120 PRINT "YOU DON'T HAVE THAT MUCH ENERGY.":GOTO 3100

3130 E7=E7-G

3140 IF E5=5 THEN 3390

3150 R=RND(10)+1:IF R#1 THEN 3300

3170 PRINT "PHASORS MISSED!":RETURN

3300 PRINT "KLINGON HIT WITH ";G;" PHASOR UNITS."

3310 E6=E6-G:IF E6>0 THEN 3380

3320 PRINT "*** KLINGON DESTROYED ***"

3330 G((10*Y1+X1)-10)=G((10*Y1+X1)-10)-100

3340 E1=E1-1:IF E1=0 THEN 4000

3350 E6=0:E5=0:FOR I=1 TO 100:IF S(I)=4 THEN S(I)=0

3360 IF S(I)=5 THEN S(I)=0

3370 NEXT I:GOSUB 850

3380 RETURN

3390 R=RND(5)+1:IF R>3 THEN 3410

3400 PRINT "ROMULAN SHIP AVOIDED PHASOR FIRE!":RETURN

3410 PRINT "ROMULAN HIT WITH ";G;" PHASOR UNITS."

3420 E6=E6-G:IF E6>0 THEN 3380

3430 PRINT "*** ROMULAN SHIP DESTROYED ***"

3440 G((10*Y1+X1)-10)=G((10*Y1+X1)-10)-100:E1=E1-1:IF E1=0 THEN 4000

3450 GOTO 3350

4000 FOR I=1 TO 24:PRINT:NEXT I

4010 PRINT "YOU HAVE DEFENDED THE GALAXY AND DEFEATED"

4020 PRINT "ALL ENEMIES! YOU WILL BE PROMOTED TO"

4030 PRINT "ADMIRAL BEFORE BEING SUCKED OUT INTO"

4040 PRINT "SPACE IN STAR TREK GENERATIONS."

4050 REM CHECK IF DOCKED

4060 D9=0:X=X4-1:IF X<1 THEN X=10

4070 X9=X4+1:IF X9>10 THEN X9=1

4080 IF S((10*Y4+X)-10)=3 THEN 4120

4090 IF S((10*Y4+X9)-10)=3 THEN 4120

4100 RETURN

4120 IF S1=0 THEN 4140

4130 PRINT "YOU CAN'T DOCK WITH SHIELDS UP.":RETURN

4140 PRINT "YOU ARE DOCKED WITH THE STARBASE":D9=1

4150 PRINT "ENERGY RESTORED":E7=2000:T=10:RETURN

4200 REM PHOTON TORPEDO CONTROL

4300 IF T>0 THEN 4500

4400 PRINT "YOU DON'T HAVE ANY TORPEDOS.":RETURN

4500 INPUT "DIRECTION",D

4600 IF D>0 AND D<9 THEN 4800

4700 PRINT "PLEASE CHOOSE BETWEEN 1-8":GOTO 4500

4800 X5=X4:Y5=Y4:T=T-1:PRINT:PRINT "TRACKING TORPEDO PATH":PRINT

5000 TAB 10:PRINT X5;",";Y5: IF D#1 THEN 5500

5100 X5=X5+1:IF X5>10 THEN 6000

5300 Y5=Y5-1:IF Y5<1 THEN 6000

5500 IF D#2 THEN 5560

5520 X5=X5+1:IF X5>10 THEN 6000

5560 IF D#3 THEN 5680

5600 X5=X5+1:IF X5>10 THEN 6000

5640 Y5=Y5+1:IF Y5>10 THEN 6000

5680 IF D#4 THEN 5720

5700 Y5=Y5+1:IF Y5>10 THEN 6000

5720 IF D#5 THEN 5780

5740 X5=X5-1:IF X5<1 THEN 6000

5760 Y5=Y5+1:IF Y5>10 THEN 6000

5780 IF D#6 THEN 5800

5790 X5=X5-1:IF X5<1 THEN 6000

5800 IF D#7 THEN 5830

5810 X5=X5-1:IF X5<1 THEN 6000

5820 Y5=Y5-1:IF Y5<1 THEN 6000

5830 IF D#8 THEN 5850

5840 Y5=Y5-1:IF Y5<1 THEN 6000

5850 V=S((10*Y5+X5)-10):IF V=0 THEN 5000

5860 IF V=2 THEN 6200

5870 IF V=3 THEN 6400

5880 IF V=4 THEN 6450

5890 IF V=5 THEN 6600

5900 GOTO 5000:REM CONTINUE UNTIL HIT SOMETHING OR LEAVE QUAD

6000 REM OUT OF QUADRANT

6100 PRINT:PRINT "     *****  TORPEDO MISSED *****":PRINT:RETURN

6200 REM HIT STAR

6300 PRINT "TORPEDO EXPLODED IN THE STAR":PRINT:RETURN

6400 PRINT "     ***** STAR BASE DESTROYED *****":GOTO 2780

6450 PRINT "KLINGON HIT BY TORPEDO"

6460 IF RND(100)+1>98 THEN 6550

6470 PRINT:PRINT "KLINGON DESTROYED"

6480 S((10*Y5+X5)-10)=0:G((10*Y1+X1)-10)=G((10*Y1+X1)-10)-100:E1=E1-1:E5=0:E6=0:IF E1=0 THEN 4000

6490 PRINT:GOSUB 850

6500 RETURN

6550 PRINT "KLINGON SURVIVED IMPACT FROM TORPEDO":E6=E6/2:RETURN

6600 PRINT "ROMULAN HIT BY TORPEDO"

6610 IF RND(100)+1<50 THEN 6650

6620 PRINT:PRINT "ROMULAN SHIP DESTROYED!":GOTO 6480

6650 PRINT "ROMULAN SHIELDS HOLDING":E6=E6/2:RETURN

7000 PRINT:PRINT "SELF DESTRUCT SEQUENCE IS NOW ACTIVE"

7100 FOR X=10 TO 1 STEP -1

7200 TAB 19:PRINT X:FOR Y=1 TO 500:NEXT Y:NEXT X

7300 PRINT:PRINT:PRINT "      **** KA-BOOM!!! ****"

7400 PRINT "PIECES OF THE ENTERPRISE ARE NOW"

7500 PRINT "SPREAD ACROSS THE GALAXY"

7600 PRINT "YOUR NEXT OF KIN WILL BE NOTIFIED."

7700 END