home *** CD-ROM | disk | FTP | other *** search
- SCREEN 2,640,200,3,2
- WINDOW 1,"SUPER STAR TREK",(0,0)-(320,180),0,2
- 221 PRINT " ,------*------,"
- 222 PRINT " ,------------- '--- ------'"
- 223 PRINT " '-------- --' / /"
- 224 PRINT " ,---' '--------/ /--,"
- 225 PRINT " '----------------'": PRINT
- 226 PRINT : PRINT : PRINT TAB( 10);"THE USS ENTERPRIZE---NCC-1701"
- 260 CLEAR
- 270 Z$ = " "
- 330 DIM G(8,8),C(9,2),K(3,3),N(3),Z(8,8),D(8)
- 370 T = INT ( RND (1) * 20 + 20) * 100:T0 = T:T9 = 25 + INT ( RND (1) * 10):D0 = 0:E = 3000:E0 = E
- 440 P = 10:P0 = P:S9 = 200:S = 0:B9 = 0:K9 = 0:X$ = "":X0$ = " IS "
- 470 DEF FN D(D) = SQR ((K(I,1) - S1) ^ 2 + (K(I,2) - S2) ^ 2)
- 475 DEF FN R(R) = INT ( RND (R) * 7.98 + 1.01)
- 490 Q1 = FN R(1):Q2 = FN R(1):S1 = FN R(1):S2 = FN R(1)
- 530 FOR I = 1 TO 9:C(I,1) = 0:C(I,2) = 0: NEXT I
- 540 C(3,1) = - 1:C(2,1) = - 1:C(4,1) = - 1:C(4,2) = - 1:C(5,2) = - 1:C(6,2) = - 1
- 600 C(1,2) = 1:C(2,2) = 1:C(6,1) = 1:C(7,1) = 1:C(8,1) = 1:C(8,2) = 1:C(9,2) = 1
- 670 FOR I = 1 TO 8:D(I) = 0: NEXT I
- 710 A1$ = "NAVSRSLRSPHATORSHEDAMCOMXXX"
- 820 FOR I = 1 TO 8: FOR J = 1 TO 8:K3 = 0:Z(I,J) = 0:R1 = RND (1)
- 850 IF R1 > .98 THEN K3 = 3:K9 = K9 + 3: GOTO 980
- 860 IF R1 > .95 THEN K3 = 2:K9 = K9 + 2: GOTO 980
- 870 IF R1 > .8 THEN K3 = 1:K9 = K9 + 1
- 980 B3 = 0: IF RND (1) > .96 THEN B3 = 1:B9 = B9 + 1
- 1040 G(I,J) = K3 * 100 + B3 * 10 + FN R(1): NEXT J: NEXT I: IF K9 > T9 THEN T9 = K9 + 1
- 1100 IF B9 < > 0 THEN 1200
- 1150 IF G(Q1,Q2) < 200 THEN G(Q1,Q2) = G(Q1,Q2) + 100:K9 = K9 + 1
- 1160 B9 = 1:G(Q1,Q2) = G(Q1,Q2) + 10:Q1 = FN R(1):Q2 = FN R(1)
- 1200 K7 = K9: IF B9 < > 1 THEN X$ = "S":Z0$ = " ARE "
- 1215 CLS
- 1220 INPUT "PLEASE TYPE YOUR NAME ";N$
- 1225 CLS
- 1226 PRINT "CAPTAIN ";N$;","
- 1230 PRINT "YOUR ORDERS ARE AS FOLLOWS:"
- 1240 PRINT " DESTROY THE ";K9;" KLINGON WARSHIPS"
- PRINT " WHICH HAVE INVADED THE GALAXY BEFORE"
- PRINT "THEY CAN ATTACK FEDERATION HEADQUARTERS"
- PRINT "ON STARDATE ";T0 + T9
- 1260 PRINT "THIS GIVES YOU ";T9;" DAYS. THERE ";X0$
- 1270 PRINT " ";B9;" STARBASE";X$;" IN THE GALAXY FOR "
- PRINT "RESUPPLYING YOUR SHIP"
- 1280 PRINT : PRINT "HIT ANY KEY TO ACCEPT COMMAND ";
- 1300 I = RND (1): I$=INPUT$(1): IF I = 13 THEN 1300
- 1320 Z4 = Q1:Z5 = Q2:K3 = 0:B3 = 0:S3 = 0:G5 = 0:D4 = .5 * RND (1):Z(Q1,Q2) = G(Q1,Q2)
- 1390 IF Q1 < 1 OR Q1 > 8 OR Q2 < 1 OR Q2 > 8 THEN 1600
- 1430 GOSUB 9030: PRINT : IF T0 < > T THEN 1490
- 1450 CLS
- 1455 PRINT "CAPTAIN ";N$;","
- 1460 PRINT "YOUR MISSION BEGINS WITH YOUR STARSHIP"
- 1470 PRINT "LOCATED IN THE GALACTIC QUADRANT, '";G2$;"'.": GOTO 1500
- 1490 PRINT "NOW ENTERING ";G2$;" QUADRANT. . ."
- 1500 PRINT :K3 = INT (G(Q1,Q2) * .01):B3 = INT (G(Q1,Q2) * .1) - 10 * K3
- 1540 S3 = G(Q1,Q2) - 100 * K3 - 10 * B3: IF K3 = 0 THEN 1590
- 1560 PRINT "COMBAT AREA CONDITION ";
- 1562 COLOR 3,2 : PRINT " RED ": COLOR 1,0 : IF S > 200 THEN 1590
- 1580 PRINT " SHIELDS DANGEROUSLY LOW"
- 1590 FOR I = 1 TO 3:K(I,1) = 0:K(I,2) = 0: NEXT I
- 1600 FOR I = 1 TO 3:K(I,3) = 0: NEXT I:Q$ = Z$ + Z$ + Z$ + Z$ + Z$ + Z$ + Z$ + LEFT$ (Z$,17)
- 1680 A$ = "<*>":Z1 = S1:Z2 = S2: GOSUB 8670: IF K3 < 1 THEN 1820
- 1720 FOR I = 1 TO K3: GOSUB 8590:A$ = "+K+":Z1 = R1:Z2 = R2
- 1780 GOSUB 8670:K(I,1) = R1:K(I,2) = R2:K(I,3) = S9 * (.5 + RND (1)): NEXT I
- 1820 IF B3 < 1 THEN 1910
- 1880 GOSUB 8590:A$ = ">!<":Z1 = R1:B4 = R1:Z2 = R2:B5 = R2: GOSUB 8670
- 1910 FOR I = 1 TO S3: GOSUB 8590:A$ = " * ":Z1 = R1:Z2 = R2: GOSUB 8670: NEXT I
- 1980 GOSUB 6430
- 1990 IF S + + E > 10 THEN IF E > 10 OR D(7) = 0 THEN 2050
- 2020 CLS : PRINT "** FATAL ERROR ** YOU'VE JUST STRANDED YOUR SHIP IN SPACE CAPTAIN ";N$;"."
- 2030 PRINT "YOU HAVE INSUFFICIENT MANEUVERING ENERGY"
- 2040 PRINT "AND SHIELD CONTROL IS PRESENTLY ": PRINT "INCAPABLE OF CROSS CIRCUITING TO ENGINE": PRINT "ROOM!!": GOTO 6220
- 2050 INPUT "COMMAND ";A$
- 2065 CLS: LOCATE 5,1
- 2080 FOR I = 1 TO 9: IF LEFT$ (A$,3) < > MID$ (A1$,3 * I - 2,3) THEN 2160
- 2140 ON I GOTO 2300,1980,4000,4260,4700,5530,5690,7290,6270
- 2160 NEXT I: PRINT "ENTER ONE OF THE FOLLOWING:"
- 2180 PRINT " NAV (TO SET COURSE)"
- 2190 PRINT " SRS (FOR SHORT RANGE SENSOR SCAN)"
- 2200 PRINT " LRS (FOR LONG RANGE SENSOR SCAN)"
- 2210 PRINT " PHA (TO FIRE PHASERS)"
- 2220 PRINT " TOR (TO FIRE PHOTON TORPEDOES)"
- 2230 PRINT " SHE (TO RAISE OR LOWER SHIELDS)"
- 2240 PRINT " DAM (FOR DAMAGE CONTROL REPORTS)"
- 2250 PRINT " COM (TO CALL ON LIBRARY-COMPUTER)"
- 2260 PRINT " XXX (TO RESIGN YOUR COMMAND)": PRINT : GOTO 1990
- 2300 CLS: PRINT TAB( 9);" 3"
- 2301 PRINT TAB( 9);" 4 | 2"
- 2302 PRINT TAB( 9);" \|/"
- 2303 PRINT TAB( 9);" 5 ---|--- 1"
- 2304 PRINT TAB( 9);" /|\"
- 2305 PRINT TAB( 9);" 6 | 8": PRINT
- 2306 PRINT TAB( 9);" 7"
- 2307 PRINT : PRINT TAB( 9);" C O U R S E"
- 2309 PRINT : INPUT "COURSE (1-9)";C1: IF C1 = 9 THEN C1 = 1
- 2310 IF C1 > = 1 AND C1 < 9 THEN 2350
- 2330 PRINT "LT. SULU REPORTS, 'INCORRECT COURSE DATA SIR!'": GOTO 1990
- 2350 X$ = "8": IF D(1) < 0 THEN X$ = "0.2"
- 2360 PRINT "WARP FACTOR (0-";X$;")";: INPUT W1:CLS: IF D(1) < 0 AND W1 > .2 THEN 2470
- 2380 IF W1 > 0 AND W1 < = 8 THEN 2490
- 2390 IF W1 = 0 THEN 1990
- 2420 PRINT "CHIEF ENGINEER SCOTT REPORTS 'THE": PRINT "ENGINES WON'T TAKE WARP ";W1;"!"
- 2430 GOTO 1990
- 2470 PRINT "WARP ENGINES ARE DAMAGED. MAXIMUM SPEED = WARP 0.2": GOTO 1990
- 2490 N = INT (W1 * 8 + .5): IF E - N > = 0 THEN 2590
- 2500 PRINT "ENGINEERING REPORTS 'INSUFFICIENT ENERGY AVAILABLE"
- 2510 PRINT "FOR MANEUVERING AT WARP ";W1;"!'"
- 2530 IF S < N - E OR D(7) < 0 THEN 1990
- 2550 PRINT "DEFLECTOR CONTROL ROOM ACKNOWLEGES ";S;" UNITS OF ENERGY"
- 2560 PRINT "PRESENTLY DEPLOYED TO SHIELDS."
- 2579 GOTO 1990
- 2590 FOR I = 1 TO K3: IF K(I,3) = 0 THEN 2700
- 2610 A$ = " ":Z1 = K(I,1):Z2 = K(I,2): GOSUB 8670: GOSUB 8590
- 2660 K(I,1) = Z1:K(I,2) = Z2:A$ = "+K+": GOSUB 8670
- 2700 NEXT I: GOSUB 6000:D1 = 0:D6 = W1: IF W1 > = 1 THEN D6 = 1
- 2770 FOR I = 1 TO 8: IF D(I) > = 0 THEN 2880
- 2790 D(I) = D(I) + D6: IF D(I) > - .1 AND D(I) < 0 THEN D(I) = - .1: GOTO 2880
- 2800 IF D(I) < 0 THEN 2880
- 2810 IF D1 < > 1 THEN D1 = 1: PRINT "DAMAGE CONTROL REPORT:"
- 2840 PRINT TAB( 8);:R1 = I: GOSUB 8790: PRINT G2$;" REPAIR COMPLETED."
- 2880 NEXT I: IF RND (1) > .2 THEN 3070
- 2910 R1 = FN R(1): IF RND (1) > = .6 THEN 3000
- 2930 D(R1) = D(R1) - ( RND (1) * 5 + 1): PRINT "DAMAGE CONTROL REPORT:"
- 2960 GOSUB 8790: PRINT G2$;" DAMAGED": PRINT : GOTO 3070
- 3000 D(R1) = D(R1) + RND (1) * 3 + 1: PRINT "DAMAGE CONTROL REPORT:"
- 3030 GOSUB 8790: PRINT G2$;" STATE OF REPAIR IMPROVED": PRINT
- 3070 A$ = " ":Z1 = INT (S1):Z2 = INT (S2): GOSUB 8670
- 3110 X1 = C(C1,1) + (C(C1 + 1,1) - C(C1,1)) * (C1 - INT (C1)):X = S1:Y = S2
- 3140 X2 = C(C1,2) + (C(C1 + 1,2) - C(C1,2)) * (C1 - INT (C1)):Q4 = Q1:Q5 = Q2
- 3170 FOR I = 1 TO N:S1 = S1 + X1:S2 = S2 + X2: IF S1 < 1 OR S1 > = 9 OR S2 < 1 OR S2 > = 9 THEN 3500
- 3240 S8 = INT (S1) * 24 + INT (S2) * 3 - 26: IF MID$ (C$,S8,2) = "" THEN 3360
- 3320 S1 = INT (S1 - X1):S2 = INT (S2 - X2): PRINT "WARP ENGINES SHUT DOWN AT ";
- 3350 PRINT "SECTOR ";S1;",";S2;"DUE TO BAD NAVIGATION": FOR I = 1 TO 2000: NEXT I:CLS: GOTO 3370
- 3360 NEXT I:S1 = INT (S1):S2 = INT (S2)
- 3370 A$ = "<*>":Z1 = INT (S1):Z2 = INT (S2): GOSUB 8670: GOSUB 3910:T8 = 1
- 3430 IF W1 < 1 THEN T8 = .1 * INT (10 * W1)
- 3450 T = T + T8: IF T > T0 + T9 THEN 6220
- 3480 GOTO 1980
- 3500 X = 8 * Q1 + X + N * X1:Y = 8 * Q2 + Y + N * X2:Q1 = INT (X / 8):Q2 = INT (Y / 8):S1 = INT (X - Q1 * 8)
- 3550 S2 = INT (Y - Q2 * 8): IF S1 = 0 THEN Q1 = Q1 - 1:S1 = 8
- 3590 IF S2 = 0 THEN Q2 = Q2 - 1:S2 = 8
- 3620 X5 = 0: IF Q1 < 1 THEN X5 = 1:Q1 = 1:S1 = 1
- 3670 IF Q1 > 8 THEN X5 = 1:Q1 = 8:S1 = 8
- 3710 IF Q2 < 1 THEN X5 = 1:Q2 = 1:S2 = 1
- 3750 IF Q2 > 8 THEN X5 = 1:Q2 = 8:S2 = 8
- 3790 IF X5 = 0 THEN 3860
- 3800 PRINT "LT. UHURA REPORTS MESSAGE FROM STARFLEET COMMAND:"
- 3810 PRINT "'PERMISSION TO ATTEMPT CROSSING OF": PRINT "GALACTIC PERIMETER IS HEREBY *DENIED*": PRINT "CAPTAIN ";N$;"."
- 3820 PRINT "SHUT DOWN YOUR ENGINES'."
- 3825 FOR I = 1 TO 4000: NEXT I
- 3830 PRINT "CHIEF ENGINEER SCOTT REPORTS 'WARP ENGINES SHUT DOWN AT SECTOR ";S1;",";S2: PRINT "OF QUADRANT ";Q1;",";Q2;"'
- 3850 IF T > T0 + T9 THEN 6220
- 3860 IF 8 * Q1 + Q2 = 8 * Q4 + Q5 THEN 3370
- 3870 T = T + 1: GOSUB 3910: GOTO 1320
- 3910 E = E - N - 10: IF E > = 0 THEN RETURN
- 3930 PRINT "SHIELD CONTROL SUPPLIES ENERGY TO": PRINT "COMPLETE THE MANEUVER."
- 3940 S = S + E:E = 0: IF S < = 0 THEN S = 0
- 3980 RETURN
- 4000 IF D(3) < 0 THEN PRINT "LONG RANGE SENSORS ARE INOPERABLE": GOTO 1990
- 4030 WINDOW 4,"LONG RANGE SCAN"+STR$(Q1)+","+STR$(Q2),(450,145)-(620,180),0,2
- COLOR 4,2
- CLS
- 4060 FOR I = Q1 - 1 TO Q1 + 1
- N(1) = - 1:N(2) = - 2:N(3) = - 3
- FOR J = Q2 - 1 TO Q2 + 1
- 4120 IF I > 0 AND I < 9 AND J > 0 AND J < 9 THEN N(J - Q2 + 2) = G(I,J):Z(I,J) = G(I,J)
- 4180 NEXT J
- FOR L = 1 TO 3: IF N(L) < 0 THEN PRINT "+++ ";: GOTO 4230
- IF L = 1 THEN PRINT " ";
- IF N(L)>99 THEN COLOR 3,2 ELSE COLOR 4,2
- 4210 PRINT RIGHT$ ( STR$ (N(L) + 1000),3);" ";
- 4230 NEXT L
- PRINT
- NEXT I
- WINDOW 1,"SUPER STAR TREK",(0,0)-(320,180),0,2
- GOTO 1990
- 4260 IF D(4) < 0 THEN PRINT "PHASERS INOPERATIVE": GOTO 1990
- 4265 IF K3 > 0 THEN 4330
- 4270 PRINT "SCIENCE OFFICER SPOCK REPORTS SENSORS SHOW NO ENEMY SHIPS IN THIS QUADRANT": GOTO 1990
- 4330 IF D(8) < 0 THEN PRINT "COMPUTER FAILURE HAMPERS ACCURACY"
- 4350 PRINT "PHASERS LOCKED ON TARGET;"
- 4360 PRINT "ENERGY AVAILABLE = ";E;" UNITS"
- 4370 INPUT "NUMBER OF UNITS TO FIRE";X: IF X < = 0 THEN 1990
- 4400 IF E - X < 0 THEN 4360
- 4410 E = E - X: IF D(7) < 0 THEN X = X * RND (1)
- 4450 H1 = INT (X / K3): FOR I = 1 TO 3: IF K(I,3) < = 0 THEN 4670
- 4480 H = INT ((H1 / FN D(0)) * ( RND (1) + 2)): IF H > .15 * K(I,3) THEN 4530
- 4500 PRINT "SENSORS SHOW NO DAMAGE TO ENEMY AT ";K(I,1);",";K(I,2): GOTO 4670
- 4530 K(I,3) = K(I,3) - H: PRINT H;" UNIT HIT ON KLINGON AT SECTOR ";K(I,1);",";K(I,2)
- 4550 IF K(I,3) < = 0 THEN PRINT "*** KLINGON DESTROYED ***": GOTO 4580
- 4560 PRINT "SENSORS SHOW ";K(I,3);" UNITS REMAINING": GOTO 4670
- 4580 K3 = K3 - 1:K9 = K9 - 1:Z1 = K(I,1):Z2 = K(I,2):A$ = " ": GOSUB 8670
- 4650 K(I,3) = 0:G(Q1,Q2) = G(Q1,Q2) - 100:Z(Q1,Q2) = G(Q1,Q2): IF K9 < = 0 THEN 6370
- 4670 NEXT I: GOSUB 6000: GOTO 1990
- 4700 IF P < - 0 THEN PRINT "ALL PHOTON TORPEDOES EXPENDED": GOTO 1990
- 4730 IF D(5) < 0 THEN PRINT "PHOTON TUBES ARE NOT OPERATIONAL": GOTO 1990
- 4760 INPUT "PHOTON TORPEDO COURSE (1-9)";C1: IF C1 = 9 THEN C1 = 1
- 4780 IF C1 > = 1 AND C1 < 9 THEN 4850
- 4790 PRINT "ENSIGN CHEKOV REPORTS, 'INCORRECT COURSE DATA, SIR!"
- 4800 GOTO 1990
- 4850 X1 = C(C1,1) + (C(C1 + 1,1) - C(C1,1)) * (C1 - INT (C1)):E = E - 2:P = P - 1
- 4860 X2 = C(C1,2) + (C(C1 + 1,2) - C(C1,2)) * (C1 - INT (C1)):X = S1:Y = S2
- 4910 PRINT "TORPEDO TRACK:"
- 4920 X = X + X1:Y = Y + X2:X3 = INT (X + .5):Y3 = INT (Y + .5)
- 4960 IF X3 < 1 OR X3 > 8 OR Y3 < 1 OR Y3 > 8 THEN 5490
- 5000 PRINT " ";X3;",";Y3:A$ = " ":Z1 = X:Z2 = Y: GOSUB 8830
- 5050 IF Z3 < > 0 THEN 4920
- 5060 A$ = "+K+":Z1 = X:Z2 = Y: GOSUB 8830: IF Z3 = 0 THEN 5210
- 5110 PRINT "*** KLINGON DESTROYED ***":K3 = K3 - 1:K9 = K9 - 1: IF K9 < = 0 THEN 6370
- 5150 FOR I = 1 TO 3: IF X3 = K(I,1) AND Y3 = K(I,2) THEN 5190
- 5180 NEXT I:I = 3
- 5190 K(I,3) = 0: GOTO 5430
- 5210 A$ = " * ":Z1 = X:Z2 = Y: GOSUB 8830: IF Z3 = 0 THEN 5280
- 5260 PRINT "STAR AT ";X3;",";Y3;" ABSORBED TORPEDO ENERGY.": GOSUB 6000: GOTO 1990
- 5280 A$ = ">!<":Z1 = X:Z2 = Y: GOSUB 8830: IF Z3 = 0 THEN 4760
- 5330 PRINT "*** STARBASE DESTROYED ***":B3 = B3 - 1:B9 = B9 - 1
- 5360 IF B9 = 0 OR K9 > T - T0 - T9 THEN 5400
- 5370 PRINT "THAT DOES IT, CAPTAIN ";N$;"! YOU ARE HERE BY RELIEVED OF COMMAND "
- 5380 PRINT "AND SENTENCED TO 99 STARDATES AT HARD LABOR ON CYGNUS 12 "
- 5390 GOTO 6270
- 5400 PRINT "STARFLEET COMMAND REVIEWING YOUR RECORD TO CONSIDER COURT MARTIAL!":D0 = 0
- 5430 Z1 = X:Z2 = Y:A$ = " ": GOSUB 8670
- 5470 G(Q1,Q2) = K3 * 100 + B3 * 10 + S3:Z(Q1,Q2) = G(Q1,Q2): GOSUB 6000: GOTO 1990
- 5490 PRINT "TORPEDO MISSED": GOSUB 6000: GOTO 1990
- 5530 IF D(7) < 0 THEN PRINT "SHIELD CONTROL INOPERABLE": GOTO 1990
- 5560 PRINT "ENERGY AVAILABLE = ";E + S: INPUT "NUMBER OF UNITS TO SHIELDS ";X
- 5580 IF X < 0 OR S = X THEN PRINT "<SHIELDS UNCHANGED>": GOTO 1990
- 5590 IF X < = E + S THEN 5630
- 5600 PRINT "SHIELD CONTROL REPORTS 'THIS IS NOT THE FEDERATION TREASURY.'"
- 5610 PRINT "<SHIELDS UNCHANGED>": GOTO 1990
- 5630 E = E + S - X:S = X: PRINT "DEFLECTOR CONTROL ROOM REPORT:"
- 5660 PRINT "SHIELDS NOW AT "; INT (S);" UNITS": PRINT "PER YOUR ORDER.": GOTO 1990
- 5690 IF D(6) > = 0 THEN 5910
- 5700 PRINT "DAMAGE CONTROL REPORT NOT AVAILABLE": IF D0 = 0 THEN 1990
- 5720 D3 = 0: FOR I = 1 TO 8: IF D(I) < 0 THEN D3 = D3 + .1
- 5760 NEXT I: IF D3 = 0 THEN 1990
- 5780 PRINT :D3 = D3 + D4: IF D3 > = 1 THEN D3 = .9
- 5810 PRINT "TECHNICIANS STANDING BY TO EFFECT": PRINT "REPAIRS TO YOUR SHIP;"
- 5820 PRINT "ESTIMATED TIME TO REPAIR: ";.01 * INT (100 * D3);" STARDATES"
- 5840 PRINT "WILL YOU AUTHORIZE THE REPAIR ORDER": PRINT "CAPTAIN ";N$;"?";: PRINT "(Y/N)": INPUT A$
- 5860 IF A$ < > "Y" THEN 1990
- 5870 FOR I = 1 TO 8: IF D(I) < 0 THEN D(I) = 0
- 5890 NEXT I:T = T + D3 + .1
- 5910 CLS: PRINT "DEVICE STATE OF REPAIR": FOR R1 = 1 TO 8
- 5912 PRINT "------------------------------------"
- 5920 GOSUB 8790: PRINT G2$; LEFT$ (Z$,25 - LEN (G2$)); INT (D(R1) * 100) * .01
- 5950 NEXT R1: PRINT : IF D0 < > 0 THEN 5720
- 5980 GOTO 1990
- 6000 IF K3 < - 0 THEN RETURN
- 6010 IF D0 < > 0 THEN PRINT "STARBASE SHIELDS PROTECT THE ENTERPRIZE": RETURN
- 6040 FOR I = 1 TO 3: IF K(I,3) < = 0 THEN 6200
- 6060 H = INT ((K(I,3) / FN D(1)) * (2 + RND (1))):S = S - H:K(I,3) = K(I,3) / (3 + RND (0))
- 6080 PRINT H;" UNIT HIT ON ENTERPRIZE FROM SECTOR ";K(I,1);",";K(I,2)
- 6090 IF S < = 0 THEN 6240
- 6100 PRINT " <SHIELDS DOWN TO ";S;" UNITS>": IF H < 20 THEN 6200
- 6120 IF RND (1) > .6 OR H / S < = .02 THEN 6200
- 6140 R1 = FN R(1):D(R1) = D(R1) - H / S - .5 * RND (1): GOSUB 8790
- 6170 PRINT "DAMAGE CONTROL REPORTS '";G2$;" DAMAGED BY THE HIT'"
- 6200 NEXT I: RETURN
- 6220 PRINT "IT IS STARDATE ";T: GOTO 6270
- 6240 PRINT : PRINT "THE ENTERPRIZE HAS BEEN DESTROYED.": PRINT "THE FEDERATION WILL BE CONQUERED": PRINT "AND ITS ALL YOUR FAULT DUMMY": GOTO 6220
- 6250 GOTO 6220
- 6270 PRINT "THERE WERE ";K9;" KLINGON BATTLE": PRINT "CRUISERS LEFT AT THE END OF YOUR MISSION"
- PRINT "END OF PROGRAM"
- END
- 6370 PRINT "CONGRATULATIONS, CAPTAIN ";N$;"!": PRINT "THE LAST KLINGON BATTLE CRUISER MENACING"
- 6380 PRINT "THE FEDERATION HAS BEEN DESTROYED.": PRINT
- 6400 PRINT "YOUR EFFICIENCY RATING IS ";1000 * (K7 / (T - T0)) ^ 2: GOTO 6290
- 6430 FOR I = S1 - 1 TO S1 + 1: FOR J = S2 - 1 TO S2 + 1
- 6450 IF INT (I + .5) < 1 OR INT (I + .5) > 8 OR INT (J + .5) < 1 OR INT (J + .5) > 8 THEN 6540
- 6490 A$ = ">!<":Z1 = I:Z2 = J: GOSUB 8830: IF Z3 = 1 THEN 6580
- 6540 NEXT J: NEXT I:D0 = 0: GOTO 6650
- 6580 D0 = 1:C$ = "DOCKED":E = E0:P = P0
- 6620 PRINT "SHIELDS DROPPED FOR DOCKING PURPOSES":S = 0: GOTO 6720
- 6650 IF K3 > 0 THEN C$ = "*RED*": GOTO 6720
- 6660 C$ = "GREEN": IF E < E0 * .1 THEN C$ = "YELLOW"
- 6720 IF D(2) > = 0 THEN 6770
- 6730 PRINT : PRINT "*** SHORT RANGE SENSORS ARE OUT ***": PRINT : RETURN
- 6770 O1$ = " --- --- --- --- --- --- --- ---"
- WINDOW 2,"SHORT RANGE SENSOR SCAN",(370,0)-(630,75),0,2
- FOR I = 1 TO 8
- 6819 COLOR 3,2
- 6820 FOR J = (I - 1) * 24 + 1 TO (I - 1) * 24 + 22 STEP 3: PRINT " "; MID$ (Q$,J,3);: NEXT J
- 7240 PRINT
- 7260 NEXT I: COLOR 1,0
- WINDOW 3,"SYSTEMS",(370,75)-(630,140),0,2
- IF C$="*RED*" THEN COLOR 3
- IF C$="GREEN" THEN COLOR 6
- 7262 PRINT "STARDATE "; INT (T * 10) * .1
- 7266 PRINT "QUADRANT ";Q1;",";Q2
- 7268 PRINT "SECTOR ";S1;",";S2
- 7270 PRINT "PHOTON TORPEDOES "; INT (P)
- 7272 PRINT "TOTAL ENERGY "; INT (E + S)
- 7274 PRINT "SHIELDS "; INT (S)
- 7276 PRINT "KLINGONS REMAINING "; INT (K9)
- WINDOW 1,"SUPER STAR TREK",(0,0)-(320,180),0,2
- COLOR 1,0
- 7278 RETURN
- 7290 IF D(8) < 0 THEN PRINT "COMPUTER DISABLED": GOTO 1990
- 7320 INPUT "COMPUTER ACTIVE AND AWAITING COMMAND";A: IF A < 0 THEN 1990
- 7325 CLS
- 7350 PRINT :H8 = 1: ON A + 1 GOTO 7540,7900,8070,8500,8150,7400
- 7360 PRINT "FUNCTIONS AVAILABLE FROM COMPUTER:"
- 7370 PRINT " 0 = CUMULATIVE GALACTIC RECORD"
- 7372 PRINT " 1 = STATUS REPORT"
- 7374 PRINT " 2 = PHOTON TORPEDO DATA"
- 7376 PRINT " 3 = STARBASE NAV DATA"
- 7378 PRINT " 4 = DIRECTION/DISTANCE CALCULATOR"
- 7380 PRINT " 5 = GALAXY 'REGION NAME' MAP": PRINT:COLOR 1,0: GOTO 7320
- 7400 H8 = 0:G5 = 1: PRINT " THE GALAXY": GOTO 9290
- 7540 PRINT
- 7543 PRINT : PRINT
- 7544 PRINT "COMPUTER RECORD OF GALAXY FOR QUADRANT": PRINT : PRINT TAB( 17);Q1;",";Q2
- 7546 PRINT
- 7550 PRINT " 1 2 3 4 5 6 7 8"
- 7560 O1$ = " --- --- --- --- --- --- --- --"
- 7570 PRINT O1$: FOR I = 1 TO 8: IF H8 = 0 THEN 7740
- 7625 FOR J = 1 TO 8
- 7630 PRINT " ";: IF Z(I,J) = 0 THEN PRINT "+++";: GOTO 7720
- 7700 PRINT RIGHT$ ( STR$ (Z(I,J) + 1000),3);
- 7720 NEXT J: GOTO 7850
- 7740 Z4 = I:Z5 = I: GOSUB 9030:J0 = INT (10 - .5 * LEN (G2$)): PRINT TAB( J0);G2$;
- 7800 Z5 = 5: GOSUB 9030:J0 = INT (35 - .5 * LEN (G2$)): PRINT TAB( J0);G2$;
- 7850 PRINT : PRINT O1$: NEXT I: GOTO 1990
- 7900 PRINT " STATUS REPORT:":X$ = "": IF K9 > 1 THEN X$ = "S"
- 7940 PRINT "KLINGON";X$;" LEFT: ";K9
- 7960 PRINT "MISSION MUST BE COMPLETED IN ";.1 * INT ((T0 + T9 - T) * 10): PRINT "STARDATES"
- 7965 FOR I = 1 TO 4000: NEXT I
- 7970 X$ = "S": IF B9 < 2 THEN X$ = "": IF B9 < 1 THEN 8010
- 7980 PRINT "THE FEDERATION IS MAINTAINING ";B9: PRINT "STARBASE";X$;" IN THE GALAXY"
- 7985 FOR I = 1 TO 4000: NEXT I: HOME
- 7990 GOTO 5690
- 8010 PRINT "YOUR STUPIDITY HAS LEFT YOU ON YOUR OWN IN THE GALAXY---": FOR I = 1 TO 4000: NEXT I
- 8020 PRINT "YOU HAVE NO STARBASES LEFT!": FOR I = 1 TO 4000: NEXT I: GOTO 5690
- 8070 IF K3 < = 0 THEN 4270
- 8080 X$ = "": IF K3 > 1 THEN X$ = "S"
- 8090 PRINT "FROM ENTERPRIZE TO KLINGON BATTLE": PRINT "CRUISER";X$
- 8100 H8 = 0: FOR I = 1 TO 3: IF K(I,3) < = 0 THEN 8480
- 8110 W1 = K(I,1):X = K(I,2)
- 8120 C1 = S1:A = S2: GOTO 8220
- 8150 PRINT "DIRECTION/DISTANCE CALCULATER"
- 8160 PRINT "YOU ARE AT QUADRANT ";Q1;",";Q2;" SECTOR ";S1;",";S2
- 8170 PRINT "PLEASE ENTER": INPUT " INITIAL COORDINATES (X,Y)";C1,A
- 8200 INPUT " FINAL COORDINATES (X,Y)";W1,X
- 8220 X = X - A:A = C1 - W1: IF X < 0 THEN 8350
- 8250 IF A < 0 THEN 8410
- 8260 IF X > 0 THEN 8280
- 8270 IF A = 0 THEN C1 = 5: GOTO 8290
- 8280 C1 = 1
- 8290 IF ABS (A) < = ABS (X) THEN 8330
- 8310 PRINT "DIRECTION = ";C1 + ((( ABS (A) - ABS (X)) + ABS (A)) / ABS (A)): GOTO 8460
- 8330 PRINT "DIRECTION = ";C1 + ( ABS (A) / ABS (X)): GOTO 8460
- 8350 IF A > 0 THEN C1 = 3: GOTO 8420
- 8360 IF X < > 0 THEN C1 = 5: GOTO 8290
- 8410 C1 = 7
- 8420 IF ABS (A) > = ABS (X) THEN 8450
- 8430 PRINT "DIRECTION = ";C1 + ((( ABS (X) - ABS (A)) + ABS (X)) / ABS (X)): GOTO 8460
- 8450 PRINT "DIRECTION = ";C1 + ( ABS (X) / ABS (A))
- 8460 PRINT "DISTANCE = "; SQR (X ^ 2 + A ^ 2): IF H8 = 1 THEN 1990
- 8480 NEXT I: GOTO 1990
- 8500 IF B3 < > 0 THEN PRINT "FROM ENTERPRIZE TO STARBASE:"W1 = B4:X = B5: GOTO 8120
- 8510 PRINT "MR. SPOCK REPORTS, 'SENSORS SHOW NO": PRINT "STARBASES IN THIS QUADRANT.": GOTO 1990
- 8590 R1 = FN R(1):R2 = FN R(1):A$ = " ":Z1 = R1:Z2 = R2: GOSUB 8830: IF Z3 = 0 THEN 8590
- 8600 RETURN
- 8670 S8 = INT (Z2 - .5) * 3 + INT (Z1 - .5) * 24 + 1
- 8675 IF LEN (A$) < > 3 THEN PRINT "ERROR": STOP
- 8680 IF S8 = 1 THEN Q$ = A$ + RIGHT$ (Q$,189): RETURN
- 8690 IF S8 = 190 THEN Q$ = LEFT$ (Q$,189) + A$: RETURN
- 8700 Q$ = LEFT$ (Q$,S8 - 1) + A$ + RIGHT$ (Q$,190 - S8): RETURN
- 8789 COLOR 2,3
- 8790 ON R1 GOTO 8792,8794,8796,8798,8800,8802,8804,8806
- 8792 G2$ = "WARP ENGINES": RETURN
- 8794 G2$ = "SHORT RANGE SENSORS": RETURN
- 8796 G2$ = "LONG RANGE SENSORS": RETURN
- 8798 G2$ = "PHASER CONTROL": RETURN
- 8800 G2$ = "PHOTON TUBES": RETURN
- 8802 G2$ = "DAMAGE CONTROL": RETURN
- 8804 G2$ = "SHIELD CONTROL": RETURN
- 8806 G2$ = "LIBRARY-COMPUTER": RETURN
- 8830 Z1 = INT (Z1 + .5):Z2 = INT (Z2 + .5):S8 = (Z2 - 1) * 3 + (Z1 - 1) * 24 + 1:Z3 = 0
- 8890 IF MID$ (Q$,S8,3) < > A$ THEN RETURN
- 8900 Z3 = 1: RETURN
- 9030 IF Z5 < = 4 THEN ON Z GOTO 9040,9050,9060,9070,9080,9090,9100,9110
- 9035 GOTO 9120
- 9040 G2$ = "ANTARES": GOTO 9210
- 9050 G2$ = "RIGEL": GOTO 9210
- 9060 G2$ = "PROCYON": GOTO 9210
- 9070 G2$ = "VEGA": GOTO 9210
- 9080 G2$ = "CANOPUS": GOTO 9210
- 9090 G2$ = "ALTAIR": GOTO 9210
- 9100 G2$ = "SAGITTARIUS": GOTO 9210
- 9110 G2$ = "POLLUX": GOTO 9210
- 9120 ON Z4 GOTO 9130,9140,9150,9160,9170,9180,9190,9200
- 9130 G2$ = "SIRIUS": GOTO 9210
- 9140 G2$ = "DENEB": GOTO 9210
- 9150 G2$ = "CAPELLA": GOTO 9210
- 9160 G2$ = "BETELGEUSE": GOTO 9210
- 9170 G2$ = "ALDEBARAN": GOTO 9210
- 9180 G2$ = "REGULUS": GOTO 9210
- 9190 G2$ = "ARCTURUS": GOTO 9210
- 9200 G2$ = "SPICA"
- 9210 IF G5 < > 1 THEN ON Z5 GOTO 9230,9240,9250,9260,9230,9240,9250,9260
- 9220 RETURN
- 9230 G2$ = G2$ + " I": RETURN
- 9240 G2$ = G2$ + " II": RETURN
- 9250 G2$ = G2$ + " III": RETURN
- 9260 G2$ = G2$ + " IV": RETURN
- 9290 PRINT " 1 2 3 4 5 6 7 8"
- 9300 PRINT "---- ---- ---- ---- ---- ---- ---- ----"
- 9310 PRINT "1 ANTARES SIRIUS"
- 9315 PRINT "---- ---- ---- ---- ---- ---- ---- ----"
- 9320 PRINT "2 RIGEL DENEB"
- 9325 PRINT "---- ---- ---- ---- ---- ---- ---- ----"
- 9330 PRINT "3 PROCYON CAPELLA"
- 9335 PRINT "---- ---- ---- ---- ---- ---- ---- ----"
- 9340 PRINT "4 VEGA BETELGEUSE"
- 9350 PRINT "---- ---- ---- ---- ---- ---- ---- ----"
- 9355 PRINT "5 CANOPUS ALDEBARAN"
- 9360 PRINT "---- ---- ---- ---- ---- ---- ---- ----"
- 9365 PRINT "6 ALTAIR REGULUS"
- 9370 PRINT "---- ---- ---- ---- ---- ---- ---- ----"
- 9375 PRINT "7 SAGITTARIUS ARCTURUS "
- 9380 PRINT "---- ---- ---- ---- ---- ---- ---- ----"
- 9385 PRINT "8 POLLUX SPICA "
- 9390 PRINT "---- ---- ---- ---- ---- ---- ---- ----"
- 9400 GOTO 1990
-
-