Tento zdrojový kód je k dispozici ke stažení zde: cmd_v12_2004_09_27.zip(~1 MB)

   1: 100 REM  modified for Chipmunk Basic  96-feb-13  rhn
   2: 110 REM  From: whirata@pixi.com (Wayne R Hirata) Newsgroups: comp.lang.basic.misc
   3: 120 REM  Subject: Re: Old 1976 Star Trek in BASIC (no graphics)
   4: 130 REM  Date: Sun, 17 Sep 1995 08:11:44 GMT
   5: 140 REM
   6: 150 REM   *** SUPER STAR TREK ***
   7: 160 REM    INTELLEC MDS VERSION
   8: 170 REM  WRITTEN IN BASIC BY RON WILLIAMS
   9: 180 REM    INTEL CORP. - 5/15/76
  10: 190 REM  ADAPTED FROM A FORTRAN VERSION WRITTEN
  11: 200 REM    FOR THE CDC 6600 IN 1974.
  12: 210 REM
  13: 220 DIM g1$(16), v$(5, 5), c$(20), g(8, 8), d$(12), q$(10, 10), d4(12), d9(106)
  14: 230 DIM s2(8, 8), t$(10), s$(10), c2$(10), c5(10), g1(10), f1(10), k4(10), k5(10)
  15: 240 DIM k6(10), k7(10), k8(10), s7$(10), c1(10), c2(10), b2(10), b3(10): q$ = "?"
  16: 250 DATA"S.R. SENSORS","L.R. SENSORS","PHASERS","PHOTON TUBES","LIFE SUPPORT"
  17: 260 DATA"WARP ENGINES","IMPULSE ENGINES","SHIELDS","SUBSPACE RADIO"
  18: 270 DATA"SHUTTLE CRAFT","COMPUTER","TRANSFER PANEL","ABANDON","CHART","COMPUTER"
  19: 280 DATA"DAMAGES","DESTRUCT","DOCK","IDLE","IMPULSE","LRSCAN","NAVIGATE","PHASERS","QUIT"
  20: 290 DATA"SHIELDS","SOS","SRSCAN","STATUS","TORPEDO","TRANSFER","VISUAL","WARP","SHORT"
  21: 300 DATA"MEDIUM","LONG","BEGINNER","NOVICE","SENIOR","EXPERT","COURSE","WCOST","ICOST"
  22: 310 DATA"PEFFECT","SCORE","END","ANTARES","SIRIUS","RIGEL","MERAK","PROCYON","CAPELLA"
  23: 320 DATA"VEGA","DENEB","CANOPUS","ALDEBARAN","ALTAIR","REGULUS","BELLATRIX","ARCTURUS"
  24: 330 DATA"POLLUX","SPICA",10.5,12,1.5,9,0,3,7.5,6,4.5
  25: 340 DEF fna (x) = INT(8 * RND(x)) + 1: DEF fnb (x) = INT(10 * RND(x)) + 1
  26: 350 DEF fnd (x) = x / 60
  27: 360 DEF fnr (x) = INT(x * 10 + .5) / 10: DEF fns (x) = INT(x * 100 + .5) / 100
  28: 370 GOSUB 16340
  29: 380 FOR i = 1 TO 12: READ d$(i): NEXT: FOR i = 1 TO 20: READ c$(i): NEXT
  30: 390 FOR i = 1 TO 3: READ t$(i): NEXT: FOR i = 1 TO 4: READ s$(i): NEXT: FOR i = 1 TO 6
  31: 400 READ c2$(i): NEXT: FOR i = 1 TO 16: READ g1$(i): NEXT: FOR i = 1 TO 9: READ c5(i): NEXT
  32: 410 REM  CALL SETUP
  33: 420 GOSUB 12470: s7$(1) = "": s7$(2) = " ": s7$(3) = " ": s7$(4) = ""
  34: 430 IF a2 <> 0 THEN 1470
  35: 440 j4 = 0: t1 = 0: PRINT : INPUT "COMMAND "; a$: IF LEN(a$) > 1 THEN 460
  36: 450 PRINT "USE AT LEAST 2 LETTERS, PLEASE.": GOTO 440
  37: 460 FOR i = 1 TO 20
  38: 470 IF a$ = LEFT$(c$(i), LEN(a$)) THEN 540
  39: 480 NEXT
  40: 490 INPUT "ILLEGAL COMMAND - DO YOU NEED A LIST "; b$
  41: 500 IF LEFT$(b$, 1) = "N" THEN 430
  42: 510 PRINT : FOR i = 1 TO 20 STEP 4
  43: 520 PRINT c$(i); TAB(12); c$(i + 1); TAB(22); c$(i + 2); TAB(32); c$(i + 3)
  44: 530 NEXT: PRINT : GOTO 430
  45: 540 IF i < 11 THEN ON i GOTO 580, 610, 640, 670, 700, 720, 750, 820, 860, 890
  46: 550 ON i - 10 GOTO 930, 980, 1020, 1090, 1120, 1150, 1180, 1220, 1280, 1340
  47: 560 PRINT "ERROR AT 170 - SHOULD NOT BE HERE"
  48: 570 STOP
  49: 580 REM -ABANDON
  50: 590 GOSUB 15830
  51: 600 GOTO 430
  52: 610 REM -CHART
  53: 620 GOSUB 2880
  54: 630 GOTO 430
  55: 640 REM -COMPUTER
  56: 650 GOSUB 3530
  57: 660 GOTO 430
  58: 670 REM -DAMAGES
  59: 680 GOSUB 4630
  60: 690 GOTO 430
  61: 700 REM  - DESTRUCT
  62: 710 GOSUB 16080: GOTO 430
  63: 720 REM -DOCK
  64: 730 GOSUB 4510
  65: 740 GOTO 430
  66: 750 REM -IOLE
  67: 760 GOSUB 15190
  68: 770 IF j3 = 0 THEN 430
  69: 780 IF a2 <> 0 THEN 1470
  70: 790 IF g(q1, q2) = 1000 THEN 1420
  71: 800 GOSUB 1520
  72: 810 GOTO 430
  73: 820 REM -IMPULSE
  74: 830 GOSUB 7500
  75: 840 IF j3 = 0 THEN 430
  76: 850 GOTO 1370
  77: 860 REM -LRSCAN
  78: 870 GOSUB 7780
  79: 880 GOTO 430
  80: 890 REM -NAVIGATE
  81: 900 GOSUB 15340
  82: 910 IF j3 = 0 THEN 430
  83: 920 GOTO 1370
  84: 930 REM -PHASERS
  85: 940 GOSUB 10560
  86: 950 IF j3 = 0 THEN 430
  87: 960 GOSUB 1520
  88: 970 GOTO 430
  89: 980 REM -QUIT
  90: 990 GOTO 1470
  91: 1000 PRINT "TOO BAD...WE HATE TO LOSE GOOD ASTRONAUTS!"
  92: 1010 GOTO 16330
  93: 1020 REM -SHIELDS
  94: 1030 GOSUB 13250
  95: 1040 IF j3 = 0 THEN 430
  96: 1050 IF a2 <> 0 THEN 1470
  97: 1060 GOSUB 1520
  98: 1070 s9 = 0
  99: 1080 GOTO 430
 100: 1090 REM -SOS
 101: 1100 GOSUB 6800
 102: 1110 GOTO 430
 103: 1120 REM -SRSCAN
 104: 1130 GOSUB 14010
 105: 1140 GOTO 430
 106: 1150 REM  - STATUS
 107: 1160 PRINT
 108: 1170 GOSUB 16310: GOTO 430
 109: 1180 REM -TORPEDOS
 110: 1190 GOSUB 10970
 111: 1200 IF j3 = 0 THEN 430
 112: 1210 GOTO 1370
 113: 1220 REM -TRANSFER
 114: 1230 GOSUB 14510
 115: 1240 IF j3 = 0 THEN 430
 116: 1250 IF a2 <> 0 THEN 1470
 117: 1260 IF g(q1, q2) <> 1000 THEN 430
 118: 1270 GOTO 1420
 119: 1280 REM -VISUAL
 120: 1290 GOSUB 14670
 121: 1300 IF j3 = 0 THEN 430
 122: 1310 IF a2 <> 0 THEN 1470
 123: 1320 IF g(q1, q2) <> 1000 THEN 430
 124: 1330 GOTO 1420
 125: 1340 REM -WARP
 126: 1350 GOSUB 13050
 127: 1360 GOTO 430
 128: 1370 REM -AFTERMOVINGSTARSHIP
 129: 1380 IF a2 <> 0 THEN 1470
 130: 1390 IF t1 <> 0 THEN GOSUB 4760
 131: 1400 IF a2 <> 0 THEN 1470
 132: 1410 IF g(q1, q2) < 1000 THEN 1450
 133: 1420 GOSUB 2380
 134: 1430 IF a2 <> 0 THEN 1470
 135: 1440 GOTO 1410
 136: 1450 GOSUB 1520
 137: 1460 GOTO 430
 138: 1470 REM -WE'RE FINISHED
 139: 1480 PRINT : PRINT : INPUT "WOULD YOU LIKE TO TRY AGAIN "; a$
 140: 1490 IF LEFT$(a$, 1) = "Y" THEN 410
 141: 1500 GOTO 1000
 142: 1510 REM -BEGINSUBROUTINES
 143: 1520 REM -ATTACK
 144: 1530 IF (c3 <> 0) AND (j4 = 0) THEN GOSUB 8830
 145: 1540 IF k3 = 0 THEN RETURN
 146: 1550 IF a2 <> 0 THEN RETURN
 147: 1560 p2 = 1 / i8
 148: 1570 j5 = 0
 149: 1580 PRINT
 150: 1590 IF c5$ = "DOCKED" THEN 2310
 151: 1600 h2 = 0: h3 = 0: c6 = 1
 152: 1610 IF s9 = 1 THEN c6 = .5 + .5 * RND(1)
 153: 1620 a3 = 0
 154: 1630 FOR l = 1 TO k3
 155: 1640 IF k6(l) < 0 THEN 2070
 156: 1650 a3 = 1
 157: 1660 d6 = .8 + .05 * RND(1)
 158: 1670 h4 = k6(l) * d6 ^ k8(l)
 159: 1680 IF (s4 = 0) AND (s9 = 0) THEN 1750
 160: 1690 p3 = .1: IF p2 * s3 > p3 THEN p3 = p2 * s3
 161: 1700 h5 = p3 * c6 * h4 + 1
 162: 1710 IF h5 > s3 THEN h5 = s3
 163: 1720 s3 = s3 - h5
 164: 1730 h4 = h4 - h5
 165: 1740 IF (p3 > .1) AND (h4 < .005# * e1) THEN 2070
 166: 1750 j5 = 1
 167: 1760 PRINT fnr(h4); "UNIT HIT ON THE "; s5$; " FROM ";
 168: 1770 j6 = k4(l): j7 = k5(l)
 169: 1780 IF q$(j6, j7) = "K" THEN PRINT "KLINGON AT ";
 170: 1790 IF q$(j6, j7) = "C" THEN PRINT "COMMANDER AT ";
 171: 1800 PRINT j6; "-"; j7
 172: 1810 IF h4 > h2 THEN h2 = h4
 173: 1820 h3 = h3 + h4
 174: 1830 IF h4 < (275 - 25 * s8) * (1 + .5 * RND(1)) THEN 2060
 175: 1840 n4 = 1 + INT(h4 / (500 + 100 * RND(1)))
 176: 1850 PRINT "***CRITICAL HIT--";
 177: 1860 k9 = 1
 178: 1870 FOR w4 = 1 TO n4
 179: 1880 j9 = INT(12 * RND(1)) + 1
 180: 1890 c5(w4) = j9
 181: 1900 e3 = (h4 * d5) / (n4 * (75 + 25 * RND(1)))
 182: 1910 IF j9 = 6 THEN e3 = e3 / 3
 183: 1920 d4(j9) = d4(j9) + e3
 184: 1930 IF w4 = 1 THEN 2000
 185: 1940 FOR v = 1 TO w4
 186: 1950 IF j9 = c5(v - 1) THEN 2010
 187: 1960 NEXT v
 188: 1970 k9 = k9 + 1
 189: 1980 IF k9 = 3 THEN PRINT
 190: 1990 PRINT " AND ";
 191: 2000 PRINT d$(j9);
 192: 2010 NEXT w4
 193: 2020 PRINT " DAMAGED."
 194: 2030 IF d4(8) = 0 THEN 2060
 195: 2040 IF s4 <> 0 THEN PRINT "*** SHIELDS KNOCKED DOWN."
 196: 2050 s4 = 0
 197: 2060 e1 = e1 - h4
 198: 2070 NEXT l
 199: 2080 IF a3 = 0 THEN RETURN
 200: 2090 IF e1 <= 0 THEN 2280
 201: 2100 p4 = 100 * p2 * s3 + .5
 202: 2110 IF j5 <> 0 THEN 2140
 203: 2120 PRINT "KLINGONS ATTACK--SHIELD STRENGTH REDUCED TO ";
 204: 2130 GOTO 2180
 205: 2140 PRINT "ENERGY LEFT:"; fns(e1); "  SHIELDS ";
 206: 2150 IF s4 <> 0 THEN PRINT "UP,";
 207: 2160 IF (s4 = 0) AND (d4(8) = 0) THEN PRINT "DOWN, ";
 208: 2170 IF d4(8) > 0 THEN PRINT "DAMAGED, ";
 209: 2180 PRINT INT(p4); "%"
 210: 2190 IF (h2 < 200) AND (h3 < 500) THEN 2330
 211: 2200 j8 = INT(h3 * RND(1) * .015)
 212: 2210 IF j8 < 2 THEN 2330
 213: 2220 PRINT
 214: 2230 PRINT "MCCOY - 'SICKBAY TO BRIDGE. WE SUFFERED ";
 215: 2240 PRINT j8; "CASUALTIES"
 216: 2250 PRINT "     IN THAT LAST ATTACK'"
 217: 2260 c4 = c4 + j8
 218: 2270 GOTO 2330
 219: 2280 f9 = 5
 220: 2290 GOSUB 5940
 221: 2300 RETURN
 222: 2310 PRINT "*** KLINGONS ATTACK-- STARBASE SHIELDS PROTECT ";
 223: 2320 PRINT "THE "; s5$
 224: 2330 FOR w4 = 1 TO k3
 225: 2340 k8(w4) = k7(w4)
 226: 2350 NEXT w4
 227: 2360 GOSUB 13880
 228: 2370 RETURN
 229: 2380 REM -AUTO VER
 230: 2390 PRINT
 231: 2400 IF j4 = 0 THEN 2440
 232: 2410 PRINT "*** RED ALERT! RED ALERT!"
 233: 2420 PRINT "***THE "; s5$; " HAS STOPPED IN A QUADRANT ";
 234: 2430 PRINT "CONTAINING A SUPERNOVA."
 235: 2440 PRINT "*** EMERGENCY AUTO -OVERRIDE ATTEMPTS TO HURL ";
 236: 2450 PRINT s5$
 237: 2460 PRINT "  SAFELY OUT OF THE QUADRANT."
 238: 2470 s2(q1, q2) = 1
 239: 2480 GOSUB 9500
 240: 2490 IF d4(6) = 0 THEN 2690
 241: 2500 PRINT
 242: 2510 PRINT "WARP ENGINES DAMAGED."
 243: 2520 PRINT
 244: 2530 PRINT "ATTEMPTING TO ENGAGE IMPULSE ENGINES..."
 245: 2540 IF d4(7) = 0 THEN 2590
 246: 2550 PRINT "IMPULSE ENGINES DAMAGED."
 247: 2560 f9 = 8
 248: 2570 GOSUB 5940
 249: 2580 RETURN
 250: 2590 p2 = .75 * e1
 251: 2600 d6 = .004# * (p2 - 50)
 252: 2610 d7 = 1.4142 + 1.2 * RND(1)
 253: 2620 d1 = d6
 254: 2630 IF d6 > d7 THEN d1 = d7
 255: 2640 t1 = d1 / .4
 256: 2650 d2 = 12 * RND(1)
 257: 2660 j4 = 0
 258: 2670 GOSUB 7720
 259: 2680 GOTO 2800
 260: 2690 w1 = 6 + 2 * RND(1)
 261: 2700 w2 = w1 * w1
 262: 2710 p2 = .75 * e1
 263: 2720 d6 = p2 / (w1 * w1 * w1 * (s4 + 1))
 264: 2730 d7 = 1.4142 + 2 * RND(1)
 265: 2740 d1 = d6
 266: 2750 IF d6 > d7 THEN d1 = d7
 267: 2760 t1 = 10 * d1 / w2
 268: 2770 d2 = 12 * RND(1)
 269: 2780 j4 = 0
 270: 2790 GOSUB 15560
 271: 2800 IF j4 <> 0 THEN 2840
 272: 2810 f9 = 8
 273: 2820 GOSUB 5940
 274: 2830 RETURN
 275: 2840 IF r1 <> 0 THEN RETURN
 276: 2850 f9 = 1
 277: 2860 GOSUB 5940
 278: 2870 RETURN
 279: 2880 REM -CHART
 280: 2890 PRINT : PRINT "   1  2  3  4  5  6  7  8"
 281: 2900 PRINT "   --- --- --- --- --- --- --- ---"
 282: 2910 FOR i = 1 TO 8
 283: 2920 PRINT i; " ";
 284: 2930 FOR j = 1 TO 8
 285: 2940 ON SGN(s2(i, j)) + 2 GOTO 2960, 2980, 3000
 286: 2950 PRINT "ERR AT 3065": STOP
 287: 2960 PRINT " .1.";
 288: 2970 GOTO 3050
 289: 2980 PRINT " ...";
 290: 2990 GOTO 3050
 291: 3000 IF s2(i, j) > 1000 THEN 3040
 292: 3010 IF g(i, j) < 1000 THEN PRINT s7$(LEN(STR$(g(i, j)))); STR$(g(i, j));
 293: 3020 IF g(i, j) = 1000 THEN PRINT " ***";
 294: 3030 GOTO 3050
 295: 3040 PRINT s2(i, j) - 1000;
 296: 3050 NEXT j
 297: 3060 PRINT
 298: 3070 NEXT i: GOSUB 9830
 299: 3080 PRINT
 300: 3090 PRINT "THE "; s5$; " IS CURRENTLY IN "; g2$; " ("; q1; "-"; q2; ")"
 301: 3100 RETURN
 302: 3110 REM -CHOOSE
 303: 3120 FOR i = 1 TO 10: PRINT : NEXT: FOR i = 1 TO 41: PRINT "*"; : NEXT: PRINT
 304: 3130 PRINT "**"; TAB(39); "**"
 305: 3140 PRINT "** WELCOME TO THE WORLD OF STAR TREK **"
 306: 3150 PRINT "**"; TAB(39); "**": FOR i = 1 TO 41: PRINT "*"; : NEXT: PRINT
 307: 3160 PRINT : PRINT
 308: 3170 s8 = 0: l2 = 0
 309: 3180 PRINT "HOW LONG A GAME WOULD YOU LIKE ";
 310: 3190 INPUT a$
 311: 3200 FOR i = 1 TO 3
 312: 3210 IF a$ = LEFT$(t$(i), LEN(a$)) THEN 3250
 313: 3220 NEXT i
 314: 3230 PRINT "WOULD YOU LIKE A SHORT, MEDIUM OR LONG GAME ";
 315: 3240 GOTO 3190
 316: 3250 l2 = i
 317: 3260 PRINT "ARE YOU A BEGINNER, NOVICE, SENIOR OR EXPERT PLAYER ";
 318: 3270 INPUT a$
 319: 3280 FOR i = 1 TO 4
 320: 3290 IF a$ = LEFT$(s$(i), LEN(a$)) THEN 3320
 321: 3300 NEXT i
 322: 3310 GOTO 3260
 323: 3320 s8 = i
 324: 3330 INPUT "ENTER YOUR MISSION PASSWORD... "; x$
 325: 3340 PRINT
 326: 3350 PRINT "....SETTING UP THE GALAXY...."
 327: 3360 j = RND(1)
 328: 3370 REM -INITIALIZE
 329: 3380 d5 = .5 * s8
 330: 3390 i2 = INT(l2 + 1 + RND(1) * 3)
 331: 3400 IF i2 > 5 THEN i2 = 5
 332: 3410 r3 = i2
 333: 3420 i5 = 7 * l2
 334: 3430 r5 = i5
 335: 3440 r7 = (s8 - 2 * RND(1) + 1) * s8 * .1 + .1
 336: 3450 IF r7 < .2 THEN r7 = r7 + .1
 337: 3460 i1 = INT(2 * r7 * i5)
 338: 3470 r1 = i1
 339: 3480 i4 = INT(s8 + .0625 * i1 * RND(1))
 340: 3490 r2 = i4
 341: 3500 i3 = (i1 + 4 * i4) * i5
 342: 3510 r4 = i3
 343: 3520 RETURN
 344: 3530 REM -COMPUTE
 345: 3540 IF d4(11) = 0 THEN 3570
 346: 3550 PRINT "LIBRARY COMPUTER DISABLED"
 347: 3560 RETURN
 348: 3570 PRINT "----LIBRARY COMPUTER ACTIVE----"
 349: 3580 INPUT "PROGRAM NAME "; b$
 350: 3590 FOR i = 1 TO 6
 351: 3600 IF b$ = LEFT$(c2$(i), LEN(b$)) THEN 3660
 352: 3610 NEXT
 353: 3620 PRINT "VALID PROGRAMS ARE:"
 354: 3630 PRINT " COURSE  WCOST  ICOST"
 355: 3640 PRINT " PEFFECT  SCORE  END"
 356: 3650 GOTO 3580
 357: 3660 ON i GOTO 3670, 3920, 4000, 4070, 4130, 4160
 358: 3670 REM -COURSE&DIRECTION
 359: 3680 INPUT "ENTER QUADRANT AND SECTOR - "; a3, a4
 360: 3690 IF (a3 <> INT(a3)) OR (a4 <> INT(a4)) THEN 4170
 361: 3700 IF a3 < 0 THEN 3580
 362: 3710 IF a3 = 0 THEN a3 = 10 * q1 + q2
 363: 3720 a3 = a3 + .5
 364: 3730 k = INT(a3 / 10)
 365: 3740 IF (k < 1) OR (k > 8) THEN 4170
 366: 3750 c6(1) = k: k = INT(a3 - c6(1) * 10)
 367: 3760 IF (k < 1) OR (k > 8) THEN 4170
 368: 3770 c6(2) = k: a4 = a4 + .5
 369: 3780 k = INT(a4 / 100)
 370: 3790 IF (k < 1) OR (k > 10) THEN 4170
 371: 3800 c6(1) = c6(1) + (k - 1) / 10: k = INT(a4 - k * 100)
 372: 3810 IF (k < 1) OR (k > 10) THEN 4170
 373: 3820 c6(2) = c6(2) + (k - 1) / 10
 374: 3830 x = q1 + ((s6 - 1) / 10) - c6(1): y = q2 + ((s7 - 1) / 10) - c6(2)
 375: 3840 d1 = 0: d2 = 0: IF (x = 0) AND (y = 0) THEN 3900
 376: 3850 d1 = SQR(x * x + y * y)
 377: 3860 IF x < 0 THEN z7 = SGN(y) * (3.1416 - ARCTAN(ABS(y / x)))
 378: 3870 IF x = 0 THEN z7 = SGN(y) * 1.5708
 379: 3880 IF x > 0 THEN z7 = ARCTAN(y / x)
 380: 3890 d2 = 12 - z7 * 1.909859: IF d2 > 12 THEN d2 = d2 - 12
 381: 3900 PRINT "COURSE IS "; fns(d2); " FOR A DISTANCE OF ";
 382: 3910 PRINT fns(d1); "QUADRANTS.": GOTO 3580
 383: 3920 REM -COST FOR WARP DRIVE
 384: 3930 INPUT "ENTER DISTANCE AND WARP FACTOR "; d1, a4
 385: 3940 IF (d1 < 0) THEN 3580
 386: 3950 c7 = d1 * a4 * a4 * a4
 387: 3960 t1 = (10 * d1) / (a4 * a4)
 388: 3970 PRINT "IT WOULD TAKE "; fns(t1); "STARDATES AND USE"
 389: 3980 PRINT fnr(c7); "UNITS OF ENERGY ("; fnr(c7 + c7); " IF SHIELDS ARE UP)"
 390: 3990 GOTO 3580
 391: 4000 REM -COST FOR IMPULSE POWER
 392: 4010 INPUT "ENTER DISTANCE... "; d1
 393: 4020 IF d1 < 0 THEN 3580
 394: 4030 c7 = 250 * d1 + 50: t1 = d1 / .4
 395: 4040 PRINT "IT WOULD TAKE "; fnr(t1); "STARDATES AND USE"
 396: 4050 PRINT c7; "UNITS OF ENERGY"
 397: 4060 GOTO 3580
 398: 4070 REM -PHASER EFFECTIVENESS
 399: 4080 INPUT "ENTER PHASER RANGE IN QUADRANTS "; a3
 400: 4090 IF a3 < 0 THEN 3580
 401: 4100 a3 = a3 * 10: c7 = (.9 ^ a3) * 100
 402: 4110 PRINT "PHASERS ARE "; LEFT$(STR$(c7), 5); "% EFFECTIVE AT THAT RANGE"
 403: 4120 GOTO 3580
 404: 4130 REM - SCORE
 405: 4140 GOSUB 12110
 406: 4150 GOTO 3580
 407: 4160 RETURN
 408: 4170 PRINT " FORMAT IS MN,XXYY...WHERE MN IS THE QUADRANT"
 409: 4180 PRINT "AND XXYY IS THE SECTOR...E.G. 64,0307 REFERS"
 410: 4190 PRINT "TO QUADRANT 6-4, SECTOR 3-7."
 411: 4200 PRINT "NOTE: SECTOR COORDINATES MUST BE 4 DIGITS."
 412: 4210 GOTO 3580
 413: 4220 REM  - DEADKL
 414: 4230 IF t2$ <> "C" THEN 4330
 415: 4240 c3 = 0: PRINT "***COMMANDER AT ";
 416: 4250 FOR f = 1 TO r2
 417: 4260 IF (c1(f) = q1) AND (c2(f) = q2) THEN 4280
 418: 4270 NEXT f
 419: 4280 c1(f) = c1(r2): c2(f) = c2(r2): c1(r2) = 0: c2(r2) = 0
 420: 4290 r2 = r2 - 1: f1(2) = 1E+30
 421: 4300 IF r2 <> 0 THEN f1(2) = d0 - (i4 / r2) * LOG(RND(1))
 422: 4310 k2 = k2 + 1
 423: 4320 GOTO 4350
 424: 4330 PRINT "***KLINGON AT ";
 425: 4340 k1 = k1 + 1
 426: 4350 PRINT a5; "-"; a6; "DESTROYED."
 427: 4360 q$(a5, a6) = ".": r1 = r1 - 1
 428: 4370 IF r1 = 0 THEN RETURN
 429: 4380 r5 = r4 / (r1 + 4 * r2)
 430: 4390 g(q1, q2) = g(q1, q2) - 100
 431: 4400 FOR f = 1 TO k3
 432: 4410 IF (k4(f) = a5) AND (k5(f) = a6) THEN 4430
 433: 4420 NEXT f
 434: 4430 k3 = k3 - 1
 435: 4440 IF f > k3 THEN 4490
 436: 4450 FOR g = f TO k3
 437: 4460 k4(g) = k4(g + 1): k5(g) = k5(g + 1): k6(g) = k6(g + 1)
 438: 4470 k7(g) = k7(g + 1): k8(g) = k7(g)
 439: 4480 NEXT g
 440: 4490 k4(k3 + 1) = 0: k5(k3 + 1) = 0: k7(k3 + 1) = 0: k8(k3 + 1) = 0: k6(k3 + 1) = 0
 441: 4500 RETURN
 442: 4510 REM -DOCK
 443: 4520 IF c5$ = "DOCKED" THEN 4610
 444: 4530 IF b6 = 0 THEN 4550
 445: 4540 IF (ABS(s6 - b6) <= 1) AND (ABS(s7 - b7) <= 1) THEN 4570
 446: 4550 PRINT s5$; " NOT ADJACENT TO A BASE."
 447: 4560 RETURN
 448: 4570 c5$ = "DOCKED"
 449: 4580 PRINT "HELMSMAN SULU - 'DOCKING MANEUVER COMPLETED.'"
 450: 4590 e1 = i7: s3 = i8: t4 = i9: l1 = j1
 451: 4600 RETURN
 452: 4610 PRINT "MR. SULU - 'BUT CAPTAIN, WE'RE AL READ Y DOCKED!'"
 453: 4620 RETURN
 454: 4630 REM -DREPORT
 455: 4640 j = 0
 456: 4650 PRINT
 457: 4660 FOR i = 1 TO 12
 458: 4670 IF d4(i) <= 0 THEN 4730
 459: 4680 IF j <> 0 THEN 4720
 460: 4690 PRINT "   DEVICE "; spc$(12); "-REPAIR TIMES-"
 461: 4700 PRINT spc$(21); "IN FLIGHT  DOCKED"
 462: 4710 j = 1
 463: 4720 PRINT " "; d$(i); TAB(23); fns(d4(i)); TAB(33); fns(d3 * d4(i))
 464: 4730 NEXT i
 465: 4740 IF j = 0 THEN PRINT "MR. SPOCK - 'ALL DEVICES FUNCTIONAL, CAPTAIN'"
 466: 4750 RETURN
 467: 4760 REM -EVENTS
 468: 4770 m = 0: d7 = d0 + t1
 469: 4780 FOR l = 1 TO 5
 470: 4790 IF f1(l) > d7 THEN 4810
 471: 4800 m = l: d7 = f1(l)
 472: 4810 NEXT l
 473: 4820 x6 = d7 - d0: d0 = d7
 474: 4830 r4 = r4 - (r1 + 4 * r2) * x6
 475: 4840 r5 = r4 / (r1 + 4 * r2)
 476: 4850 IF r5 > 0 THEN 4890
 477: 4860 f9 = 2
 478: 4870 GOSUB 5940
 479: 4880 RETURN
 480: 4890 IF (d4(5) = 0) OR (c5$ = "DOCKED") THEN 4950
 481: 4900 IF (l1 >= x6) OR (d4(5) <= l1) THEN 4930
 482: 4910 f9 = 3: GOSUB 5940
 483: 4920 RETURN
 484: 4930 l1 = l1 - x6
 485: 4940 IF d4(5) <= x6 THEN l1 = j1
 486: 4950 r = x6
 487: 4960 IF c5$ = "DOCKED" THEN r = x6 / d3
 488: 4970 FOR l = 1 TO 12
 489: 4980 IF d4(l) <= 0 THEN 5030
 490: 4990 d4(l) = d4(l) - r
 491: 5000 IF d4(l) < 0 THEN d4(l) = 0
 492: 5010 IF d4(l) <> 0 THEN 5030
 493: 5020 PRINT : PRINT "DAMAGE CONTROL- '"; d$(l); " NOW OPERATIONAL.'"
 494: 5030 NEXT l
 495: 5040 IF m = 0 THEN RETURN
 496: 5050 t1 = t1 - x6
 497: 5060 ON m GOTO 5070, 5120, 5350, 5440, 5650
 498: 5070 REM -SUPERNOVA
 499: 5080 x2 = 0: y2 = 0: GOSUB 13410
 500: 5090 f1(1) = d0 - .5 * i5 * LOG(RND(1))
 501: 5100 IF g(q1, q2) = 1000 THEN RETURN
 502: 5110 GOTO 4770
 503: 5120 REM -TRACTOR BEAM
 504: 5130 IF r2 = 0 THEN 5340
 505: 5140 IF c5$ = "DOCKED" THEN 5320
 506: 5150 i = INT(RND(1) * r2) + 1
 507: 5160 y6 = (c1(i) - q1) ^ 2 + (c2(i) - q2) ^ 2
 508: 5170 IF y6 = 0 THEN 5320
 509: 5180 y6 = SQR(y6): t1 = .17778 * y6
 510: 5190 PRINT : PRINT "***"; s5$; " CAUGHT IN LONG-RANGE TRACTOR BEAM--"
 511: 5200 q1 = c1(i): q2 = c2(i)
 512: 5210 s6 = fnb(1): s7 = fnb(1)
 513: 5220 PRINT "  PULLED TO QUADRANT "; q1; "-"; q2; ", SECTOR "; s6; "-"; s7
 514: 5230 IF r6 <> 0 THEN PRINT "(REMAINDER OF IDLE PERIOD CANCELLED)"
 515: 5240 r6 = 0
 516: 5250 IF s4 <> 0 THEN 5310
 517: 5260 IF (d4(8) = 0) AND (s3 > 0) THEN 5290
 518: 5270 PRINT "(SHIELDS NOT CURRENTLY USABLE.)"
 519: 5280 GOTO 5310
 520: 5290 GOSUB 13280
 521: 5300 s9 = 0
 522: 5310 GOSUB 9500
 523: 5320 f1(2) = d0 + t1 - 1.5 * (i5 / r2) * LOG(RND(1))
 524: 5330 GOTO 4770
 525: 5340 f1(2) = 1E+30: GOTO 4770
 526: 5350 d9(1) = d0: d9(2) = r1: d9(3) = r2: d9(4) = r3: d9(5) = r4: d9(6) = r5
 527: 5360 d9(7) = s1: d9(8) = b1: d9(9) = k1: d9(10) = k2
 528: 5370 FOR i = 1 TO 8: FOR j = 1 TO 8: d9(i - 1 + 8 * (j - 1) + 11) = g(i, j): NEXT j: NEXT i
 529: 5380 FOR i = 75 TO 84: d9(i) = c1(i - 74): NEXT
 530: 5390 FOR i = 85 TO 94: d9(i) = c2(i - 84): NEXT
 531: 5400 FOR i = 95 TO 99: d9(i) = b2(i - 94): NEXT
 532: 5410 FOR i = 100 TO 104: d9(i) = b3(i - 99): NEXT
 533: 5420 d9(105) = b4: d9(106) = b5
 534: 5430 s0 = 1: f1(3) = d0 - .3 * i5 * LOG(RND(1)): GOTO 4770
 535: 5440 REM  - STARBASE ATTACK
 536: 5450 IF (r2 = 0) OR (r3 = 0) THEN 5500
 537: 5460 FOR i = 1 TO r3: FOR j = 1 TO r2: IF (b2(i) = c1(j)) AND (b3(i) = c2(j)) THEN 5510
 538: 5470 NEXT j: NEXT i
 539: 5480 f1(4) = d0 + .5 + 3 * RND(1)
 540: 5490 f1(5) = 1E+30: GOTO 4770
 541: 5500 f1(4) = 1E+30: f1(5) = 1E+30: GOTO 4770
 542: 5510 b4 = b2(i): b5 = b3(i)
 543: 5520 IF (b4 = q1) AND (b5 = q2) THEN 5480
 544: 5530 f1(5) = d0 + .5 + 3 * RND(1)
 545: 5540 f1(4) = f1(5) - .3 * i5 * LOG(RND(1))
 546: 5550 IF d4(9) > 0 THEN 4770
 547: 5560 PRINT
 548: 5570 PRINT "LT. UHURA- 'CAPTAIN, THE STARBASE IN "; b4; "-"; b5
 549: 5580 PRINT " REPORTS THAT IT IS UNDER ATTACK AND CAN HOLD OUT"
 550: 5590 PRINT " ONLY UNTIL STARDATE "; fnr(f1(5)); "'"
 551: 5600 IF r6 = 0 THEN 4770
 552: 5610 PRINT
 553: 5620 INPUT "MR. SPOCK- 'CAPTAIN, SHALL WE CANCEL THE IDLE PERIOD "; b$
 554: 5630 IF LEFT$(b$, 1) = "Y" THEN r6 = 0
 555: 5640 GOTO 4770
 556: 5650 REM  - STARBASE DESTROYED
 557: 5660 f1(5) = 1E+30: IF (r2 = 0) OR (r3 = 0) THEN 4770
 558: 5670 k = INT(g(b4, b5) / 100): IF g(b4, b5) - k * 100 < 10 THEN 4770
 559: 5680 FOR i = 1 TO r2: IF (c1(i) = b4) AND (c2(i) = b5) THEN 5700
 560: 5690 NEXT: GOTO 4770
 561: 5700 IF s2(b4, b5) = -1 THEN s2(b4, b5) = 0
 562: 5710 IF s2(b4, b5) > 999 THEN s2(b4, b5) = s2(b4, b5) - 10
 563: 5720 IF (b4 <> q1) OR (b5 <> q2) THEN 5820
 564: 5730 FOR i = 1 TO k3: k = k4(i): l = k5(i)
 565: 5740 IF q$(k, l) = "C" THEN 5760
 566: 5750 NEXT
 567: 5760 IF k6(i) < 25 + 50 * RND(1) THEN 4770
 568: 5770 q$(b6, b7) = ".": b6 = 0: b7 = 0
 569: 5780 GOSUB 9450
 570: 5790 PRINT : PRINT "MR. SPOCK- 'CAPTAIN, I BELIEVE THE STARBASE HAS ";
 571: 5800 PRINT " BEEN DESTROYED.'"
 572: 5810 GOTO 5870
 573: 5820 IF (r3 = 1) OR (d4(9) > 0) THEN 5870
 574: 5830 PRINT
 575: 5840 PRINT "LT. UHURA- 'CAPTAIN, STARFLEET COMMAND REPORTS THAT"
 576: 5850 PRINT " THE STARBASE IN QUADRANT "; b4; "-"; b5; "HAS BEEN"
 577: 5860 PRINT " DESTROYED BY A KLINGON COMMANDER.'"
 578: 5870 g(b4, b5) = g(b4, b5) - 10
 579: 5880 IF r3 <= 1 THEN 5920
 580: 5890 FOR i = 1 TO r3: IF (b2(i) = b4) AND (b3(i) = b5) THEN 5910
 581: 5900 NEXT
 582: 5910 b2(i) = b2(r3): b3(i) = b3(r3)
 583: 5920 r3 = r3 - 1
 584: 5930 GOTO 4770
 585: 5940 REM -FINISH
 586: 5950 a2 = 1: PRINT : PRINT "IT IS STARDATE "; fnr(d0): PRINT
 587: 5960 IF f9 <= 8 THEN ON f9 GOTO 5980, 6210, 6300, 6360, 6380, 6410, 6420, 6450
 588: 5970 ON f9 - 8 GOTO 6480, 6540, 6570
 589: 5980 REM -THE GAME HAS BEEN WON
 590: 5990 PRINT "YOU HAVE DESTROYED THE KLINGON INVASION FLEET"
 591: 6000 PRINT
 592: 6010 PRINT "   ***THE FEDERATION IS SAVED***": g1 = 1
 593: 6020 IF (a1 = 0) OR (b1 <> 0) THEN 6190
 594: 6030 IF LEFT$(s5$, 1) <> "E" THEN 6190
 595: 6040 IF 3 * s1 + 35 * n1 + c4 >= 100 THEN 6190
 596: 6050 IF d0 - j2 <= 6 THEN 6080
 597: 6060 r8 = .1 * s8 * (s8 + 1) + .1
 598: 6070 IF (k1 + k2) / (d0 - j2) < r8 THEN 6190
 599: 6080 PRINT
 600: 6090 PRINT "IN FACT, YOU HAVE DONE SO WELL THAT STARFLEET COMMAND"
 601: 6100 IF s8 = 4 THEN 6160
 602: 6110 PRINT "PROMOTES YOU ON E STEP  IN RANK, ";
 603: 6120 IF s8 = 1 THEN PRINT "FROM BEGINNER TO NOVICE CLASS!"
 604: 6130 IF s8 = 2 THEN PRINT "FROM NOVICE TO SENIOR CLASS!"
 605: 6140 IF s8 = 3 THEN PRINT "FROM SENIOR TO EXPERT CLASS!"
 606: 6150 PRINT "  ***CONGRATULATIONS***": GOTO 6190
 607: 6160 PRINT "PROMOTES YOU TO 'COMMODORE EMERITUS'."
 608: 6170 PRINT
 609: 6180 PRINT "NOW YOU CAN RETIRE AND WRITE YOUR OWN STAR TREK GAME!"
 610: 6190 GOSUB 12110
 611: 6200 RETURN
 612: 6210 REM -FED RESOURCES DEPLETED
 613: 6220 PRINT "YOUR TIME HAS RUN OUT, AND THE"
 614: 6230 PRINT "FEDERATION HAS BEEN CONQUERED.": PRINT
 615: 6240 PRINT "YOUR STARSHIP IS NOW KLINGON PROPERY, AND YOU ARE PUT"
 616: 6250 PRINT "ON TRIAL AS A WAR CRIMINAL. ON THE BASIS OF YOUR RECORD,"
 617: 6260 IF r1 * 3 > i1 THEN 6290
 618: 6270 PRINT "YOU ARE FOUND GUILTY AND SENTENCED TO DEATH!"
 619: 6280 a1 = 0: GOSUB 12110: RETURN
 620: 6290 PRINT "YOU ARE ACQUITTED": GOSUB 12110: RETURN
 621: 6300 REM - L.S. FAILURE
 622: 6310 PRINT "YOUR LIFE SUPPORT RESERVES HAVE RUN OUT, AND"
 623: 6320 PRINT "YOU WILL SOON DIE OF ASPHYXIATION"
 624: 6330 PRINT
 625: 6340 PRINT "YOUR STARSHIP IS A DERELICT IN SPACE."
 626: 6350 GOTO 6590
 627: 6360 REM -ENERGY GONE
 628: 6370 PRINT "YOUR ENERGY SUPPLY IS EXHAUSTED.": GOTO 6330
 629: 6380 REM -BATTLE DEFEAT
 630: 6390 PRINT "THE "; s5$; " HAS BEEN DESTROYED IN BATTLE."
 631: 6400 GOTO 6590
 632: 6410 PRINT "F9=6 INVALID": RETURN
 633: 6420 REM -NOVA
 634: 6430 PRINT "YOUR STARSHIP HAS BEEN DESTROYED BY A NOVA."
 635: 6440 PRINT "NICE SHOT, YOU HOCKEY PUCK!": GOTO 6590
 636: 6450 REM -SUPERNOVA
 637: 6460 PRINT "THE "; s5$; " HAS BEEN INCINERATED BY A SUPERNOVA."
 638: 6470 GOTO 6590
 639: 6480 REM -ABANDON(NO BASES)
 640: 6490 PRINT "YOU HAVE BEEN CAPTURED BY THE KLINGONS.  IF YOU STILL"
 641: 6500 PRINT "HAD A STARBASE TO BE RETURNED TO , YOU WOULD HAVE BEEN"
 642: 6510 PRINT "REPATRIATED AND GIVEN ANOTHER CHANCE. SINCE YOU HAVE"
 643: 6520 PRINT "NO STARBASES, YOU WILL BE MERCILESSLY TORTURED TO DEATH!"
 644: 6530 GOTO 6590
 645: 6540 REM  - SELF-DESTRUCT
 646: 6550 PRINT : PRINT "THE "; s5$; " IS NOW AN EXPANDING CLOUD"
 647: 6560 PRINT "OF SUB-ATO MIC PARTICLES...": GOTO 6590
 648: 6570 REM -NOT REMATERIALIZED
 649: 6580 PRINT "STARBASE WAS UNABLE TO RE-MATERIALIZE YOUR STARSHIP."
 650: 6590 PRINT
 651: 6600 IF LEFT$(s5$, 1) = "F" THEN s5$ = ""
 652: 6610 IF LEFT$(s5$, 1) = "E" THEN s5$ = "FAERIE QUEENE"
 653: 6620 a1 = 0
 654: 6630 IF r1 = 0 THEN 6750
 655: 6640 g3 = r4 / i3: b8 = (r1 + 2 * r2) / (i1 + 2 * i4)
 656: 6650 a3 = g3 / b8
 657: 6660 IF a3 < 1 + .5 + RND(1) THEN 6730
 658: 6670 PRINT "AS A RESULT OF YOUR ACTIONS, A TREATY WITH THE KLINGON"
 659: 6680 PRINT "EMPIRE HAS BEEN SIGNED. THE TERMS OF THE TREATY ARE"
 660: 6690 IF a3 < 3 * RND(1) THEN 6720
 661: 6700 PRINT "FAVORABLE TO THE FEDERATION.": PRINT
 662: 6710 PRINT "CONGRATULATIONS.": GOTO 6740
 663: 6720 PRINT "HIGHLY UNFAVORABLE TO THE FEDERATION.": GOTO 6740
 664: 6730 PRINT "THE FEDERATION WILL BE DESTROYED!"
 665: 6740 GOSUB 12110: RETURN
 666: 6750 PRINT "SINCE YOU TO OK THE LAST KLINGON WITH YOU, YOU ARE"
 667: 6760 PRINT "A MARTYR AND A HERO. SOMEDAY MAYBE THEY'LL ERECT"
 668: 6770 PRINT "A STATUE IN YOUR MEMORY. REST IN PEACE AND TRY NOT"
 669: 6780 PRINT "TO THINK ABOUT PIGEONS!": g1 = 1: a1 = 0
 670: 6790 GOSUB 12110: RETURN
 671: 6800 REM  - HELP
 672: 6810 IF c5$ <> "DOCKED" THEN 6840
 673: 6820 PRINT "ENSIGN CHEKOV- 'BUT CAPTAIN, WE'RE AL READ Y DOCKED!'"
 674: 6830 RETURN
 675: 6840 IF d4(9) = 0 THEN 6860
 676: 6850 PRINT "SUBSPACE RADIO DAMAGED...CANNOT TRANSMIT.": RETURN
 677: 6860 IF r3 <> 0 THEN 6890
 678: 6870 PRINT "LT. UHURA- 'CAPTAIN, I'M NOT GETTING ANY RESPONSE";
 679: 6880 PRINT " FROM STARBASE!'": RETURN
 680: 6890 n1 = n1 + 1: IF b6 = 0 THEN 6910
 681: 6900 GOTO 6970
 682: 6910 d1 = 1E+30
 683: 6920 FOR l = 1 TO r3: x = 10 * SQR((b2(l) - q1) ^ 2 + (b3(l) - q2) ^ 2)
 684: 6930 IF x > d1 THEN 6950
 685: 6940 d1 = x: k = l
 686: 6950 NEXT l
 687: 6960 q1 = b2(k): q2 = b3(k): GOSUB 9500
 688: 6970 q$(s6, s7) = "."
 689: 6980 PRINT
 690: 6990 PRINT "STARBASE IN QUADRANT "; q1; "-"; q2; "RESPONDS --";
 691: 7000 PRINT " "; s5$; " DEMATERIALIZES."
 692: 7010 p2 = (1 - .98 ^ d1) ^ .333333
 693: 7020 FOR l = 1 TO 3
 694: 7030 IF l = 1 THEN PRINT "1ST ";
 695: 7040 IF l = 2 THEN PRINT "2ND ";
 696: 7050 IF l = 3 THEN PRINT "3RD ";
 697: 7060 PRINT "ATTEMPT TO RE-MATERIALIZE THE "; s5$; ". . . . .";
 698: 7070 IF RND(1) > p2 THEN 7100
 699: 7080 PRINT "FAILS.": NEXT l
 700: 7090 f9 = 11: GOSUB 5940: RETURN
 701: 7100 FOR l = 1 TO 5: i = b6 + INT(3 * RND(1)) - 1
 702: 7110 IF (i < 1) OR (i > 10) THEN 7150
 703: 7120 j = b7 + INT(3 * RND(1)) - 1
 704: 7130 IF (j < 1) OR (j > 10) THEN 7150
 705: 7140 IF q$(i, j) = "." THEN 7160
 706: 7150 NEXT l: PRINT "FAILS.": GOTO 7090
 707: 7160 PRINT "SUCCEEDS.": s6 = i: s7 = j: q$(i, j) = LEFT$(s5$, 1)
 708: 7170 GOSUB 4510: PRINT "LT. UHURA- 'CAPTAIN, WE MADE IT!'": RETURN
 709: 7180 REM -HITEM
 710: 7190 p4 = 2: l5 = k3: n = 1
 711: 7200 FOR k = 1 TO l5
 712: 7210 IF h3(k) = 0 THEN 7470
 713: 7220 d6 = .9 + .01 * RND(1): h2 = h3(k) * d6 ^ k7(n)
 714: 7230 p3 = k6(n)
 715: 7240 p = ABS(p3): IF p4 * h2 < p THEN p = p4 * h2
 716: 7250 k6(n) = p3 - SGN(p3) * ABS(p)
 717: 7260 x8 = k4(n): y8 = k5(n)
 718: 7270 IF h2 > 4.99 THEN 7290
 719: 7280 PRINT "VERY SMALL HIT ON ": GOTO 7300
 720: 7290 PRINT fnr(h2); "UNIT HIT ON ";
 721: 7300 m$ = q$(x8, y8)
 722: 7310 IF m$ = "K" THEN PRINT "KLINGON AT ";
 723: 7320 IF m$ = "C" THEN PRINT "COMMANDER AT ";
 724: 7330 PRINT x8; "-"; y8
 725: 7340 IF k6(n) <> 0 THEN 7380
 726: 7350 a5 = x8: a6 = y8: t2$ = q$(x8, y8): GOSUB 4220
 727: 7360 IF r1 <> 0 THEN 7480
 728: 7370 f9 = 1: GOSUB 5940: GOTO 7480
 729: 7380 IF k6(n) < 0 THEN 7470
 730: 7390 IF RND(1) < .9 THEN 7470
 731: 7400 IF k6(n) > (.4 + .4 * RND(1)) * p3 THEN 7470
 732: 7410 PRINT
 733: 7420 PRINT "***MR. SPOCK - 'CAPTAIN, THE VESSEL AT SECTOR ";
 734: 7430 PRINT x8; "-"; y8
 735: 7440 PRINT "  HAS JUST LOST ITS FIREPOWER.'"
 736: 7450 PRINT
 737: 7460 k6(n) = -k6(n)
 738: 7470 n = n + 1
 739: 7480 NEXT k
 740: 7490 RETURN
 741: 7500 REM  - IMPULSE
 742: 7510 j3 = 0
 743: 7520 IF d4(7) <> 0 THEN 7770
 744: 7530 IF e1 <= 75 THEN 7580
 745: 7540 INPUT "ENTER COURSE AND DISTANCE "; d2, d1
 746: 7550 IF d2 < 0 THEN RETURN
 747: 7560 p3 = 50 + 250 * d1
 748: 7570 IF p3 < e1 THEN 7660
 749: 7580 PRINT
 750: 7590 PRINT "1ST OFFICER SPOCK- 'CAPTAIN, THE IMPULSE ENGINES"
 751: 7600 PRINT "REQUIRE 50 UNITS OF ENERGY TO ENGAGE, PLUS 250 UNITS"
 752: 7610 PRINT "PER ";
 753: 7620 IF e1 > 75 THEN 7640
 754: 7630 PRINT "QUADRANT. THEY ARE, THEREFORE, USELESS NOW.'": RETURN
 755: 7640 PRINT "QUADRANT. WE CAN GO, THEREFORE, A MAXIMUM OF ";
 756: 7650 PRINT fnr(.004 * (e1 - 50) - .05); "QUADRANTS.'": RETURN
 757: 7660 t1 = d1 / .4
 758: 7670 IF t1 < r5 THEN 7720
 759: 7680 PRINT "1ST OFFICER SPOCK- 'CAPTAIN, OUR SPEED UNDER IMPULSE"
 760: 7690 PRINT "POWER IS ONLY 4 SECTORS PER STARDATE. ARE YOU SURE"
 761: 7700 INPUT "WE DARE SPEND THE TIME' "; b$
 762: 7710 IF LEFT$(b$, 1) <> "Y" THEN RETURN
 763: 7720 GOSUB 8000: j3 = 1
 764: 7730 IF a2 <> 0 THEN RETURN
 765: 7740 e1 = e1 - p3
 766: 7750 IF e1 > 0 THEN RETURN
 767: 7760 f9 = 4: GOSUB 5940: RETURN
 768: 7770 PRINT "IMPULSE ENGINES DAMAGED.": RETURN
 769: 7780 REM  - LRSCAN
 770: 7790 n$ = "    # "
 771: 7800 PRINT
 772: 7810 IF d4(2) <> 0 THEN 7990
 773: 7820 PRINT "L.R. SCAN FOR QUADRANT "; q1; "-"; q2: PRINT
 774: 7830 i = q1 - 1: j = q1 + 1: k = q2 - 1: l = q2 + 1
 775: 7840 FOR m = i TO j: FOR n = k TO l
 776: 7850 IF (m <= 0) OR (m > 8) THEN 7910
 777: 7860 IF (n <= 0) OR (n > 8) THEN 7910
 778: 7870 IF d4(11) = 0 THEN s2(m, n) = 1
 779: 7880 IF g(m, n) >= 1000 THEN PRINT " ***";
 780: 7890 IF g(m, n) < 1000 THEN PRINT spc$(5 - LEN(STR$(g(m, n)))); g(m, n);
 781: 7900 GOTO 7920
 782: 7910 PRINT n$;
 783: 7920 NEXT n
 784: 7930 PRINT
 785: 7940 NEXT m
 786: 7950 IF d4(11) = 0 THEN RETURN
 787: 7960 PRINT
 788: 7970 PRINT "***WARNING*** - COMPUTER DISABLED - SCAN NOT RECORDED."
 789: 7980 RETURN
 790: 7990 PRINT "LONG RANGE SENSORS DAMAGED.": RETURN
 791: 8000 REM  - MOVE
 792: 8010 a5 = (15 - d2) * .523599
 793: 8020 d4 = -SIN(a5): d6 = COS(a5)
 794: 8030 b8 = ABS(d4)
 795: 8040 IF ABS(d6) > b8 THEN b8 = ABS(d6)
 796: 8050 d4 = d4 / b8: d6 = d6 / b8: t5 = 0: t6 = 0
 797: 8060 IF d0 + t1 < f1(2) THEN 8090
 798: 8070 t5 = 1: c5$ = "RED": d1 = d1 * (f1(2) - d0) / t1 + .1
 799: 8080 t1 = f1(2) - d0 + .00001#
 800: 8090 q$(s6, s7) = ".": x7 = s6: y7 = s7: h9 = INT(10 * d1 * b8 + .5)
 801: 8100 IF h9 = 0 THEN 8200
 802: 8110 FOR l = 1 TO h9
 803: 8120 x7 = x7 + d4: x1 = INT(x7 + .5): y7 = y7 + d6: y1 = INT(y7 + .5)
 804: 8130 IF (x1 < 1) OR (x1 > 10) THEN 8370
 805: 8140 IF (y1 < 1) OR (y1 > 10) THEN 8370
 806: 8150 IF q$(x1, y1) = "O" THEN 8180
 807: 8160 IF q$(x1, y1) <> "." THEN 8250
 808: 8170 NEXT l
 809: 8180 d1 = .1 * SQR((s6 - x1) ^ 2 + (s7 - y1) ^ 2)
 810: 8190 s6 = x1: s7 = y1
 811: 8200 f4 = s6: f5 = s7
 812: 8210 IF q$(x1, y1) <> "O" THEN 8730
 813: 8220 t2 = fna(1): t3 = fna(1)
 814: 8230 q1 = fna(1): q2 = fna(1): s6 = fnb(1): s7 = fnb(1): PRINT
 815: 8240 PRINT "*** SPACE PORTAL ENTERED ***": GOTO 8700
 816: 8250 t6 = 1: k = 50 * d1 / t1: d1 = .1 * SQR((s6 - x1) ^ 2 + (s7 - y1) ^ 2)
 817: 8260 IF (q$(x1, y1) = "K") OR (q$(x1, y1) = "C") THEN 8360
 818: 8270 PRINT : PRINT s5$; " BLOCKED BY ";
 819: 8280 IF q$(x1, y1) = "*" THEN PRINT "STAR AT ";
 820: 8290 IF q$(x1, y1) = "B" THEN PRINT "STARBASE AT ";
 821: 8300 PRINT " SECTOR "; x1; "-"; y1; "...."
 822: 8310 PRINT "EMERGENCY STOP REQUIRED "; fnr(k); "UNITS OF ENERGY."
 823: 8320 e1 = e1 - k
 824: 8330 s6 = INT(x7 - d4 + .5): f4 = s6: s7 = INT(y7 - d6 + .5): f5 = s7
 825: 8340 IF e1 > 0 THEN 8730
 826: 8350 f9 = 4: GOSUB 5940: RETURN
 827: 8360 s6 = x1: s7 = y1: GOSUB 11950: f4 = s6: f5 = s7: GOTO 8730
 828: 8370 IF k3 = 0 THEN 8430
 829: 8380 FOR l = 1 TO k3
 830: 8390 f3 = SQR((x1 - k4(l)) ^ 2 + (y1 - k5(l)) ^ 2)
 831: 8400 k8(l) = .5 * (f3 + k7(l)): NEXT l
 832: 8410 IF g(q1, q2) <> 1000 THEN GOSUB 1520
 833: 8420 IF a2 <> 0 THEN RETURN
 834: 8430 x7 = 10 * (q1 - 1) + s6: y7 = 10 * (q2 - 1) + s7
 835: 8440 x1 = INT(x7 + 10 * d1 * b8 * d4 + .5)
 836: 8450 y1 = INT(y7 + 10 * d1 * b8 * d6 + .5): l6 = 0
 837: 8460 l5 = 0
 838: 8470 IF x1 > 0 THEN 8490
 839: 8480 x1 = -x1 + 1: l5 = 1
 840: 8490 IF y1 > 0 THEN 8510
 841: 8500 y1 = -y1 + 1: l5 = 1
 842: 8510 IF x1 <= 80 THEN 8530
 843: 8520 x1 = 161 - x1: l5 = 1
 844: 8530 IF y1 <= 80 THEN 8550
 845: 8540 y1 = 161 - y1: l5 = 1
 846: 8550 IF l5 = 0 THEN 8570
 847: 8560 l6 = 1: GOTO 8460
 848: 8570 IF l6 = 0 THEN 8670
 849: 8580 PRINT : PRINT "*** MESSAGE FROM STARFLEET COMMAND.....STARDATE ";
 850: 8590 PRINT fnr(d0): PRINT : PRINT "'PERMISSION TO CROSS GALACTIC ";
 851: 8600 PRINT "PERIMETER IS HEREBY DENIED.'"
 852: 8610 PRINT "    'SHUT DOWN ENGINES IMMMEDIATELY!'"
 853: 8620 PRINT
 854: 8630 PRINT "SCOTT HERE - 'ENGINES SHUT DOWN AT ";
 855: 8640 z1 = INT((x1 + 9) / 10): z2 = INT((y1 + 9) / 10)
 856: 8650 PRINT "QUADRANT "; z1; "-"; z2; ", ";
 857: 8660 PRINT "SECTOR "; x1 - 10 * (z1 - 1); "-"; y1 - 10 * (z2 - 1); "'"
 858: 8670 IF t5 <> 0 THEN RETURN
 859: 8680 q1 = INT((x1 + 9) / 10): q2 = INT((y1 + 9) / 10)
 860: 8690 s6 = x1 - 10 * (q1 - 1): s7 = y1 - 10 * (q2 - 1)
 861: 8700 GOSUB 9830
 862: 8710 PRINT : PRINT "ENTERING THE "; g2$; " QUADRANT ("; q1; "-"; q2; ")"
 863: 8720 q$(s6, s7) = LEFT$(s5$, 1): GOSUB 9500: RETURN
 864: 8730 q$(s6, s7) = LEFT$(s5$, 1)
 865: 8740 IF l6 = 1 THEN RETURN
 866: 8750 IF k3 = 0 THEN 8820
 867: 8760 FOR l = 1 TO k3
 868: 8770 f3 = SQR((f4 - k4(l)) ^ 2 + (f5 - k5(l)) ^ 2)
 869: 8780 k8(l) = .5 * (k7(l) + f3)
 870: 8790 k7(l) = f3
 871: 8800 NEXT l
 872: 8810 GOSUB 13880
 873: 8820 GOSUB 9450: RETURN
 874: 8830 REM -MOVECOM
 875: 8840 a = 1: b = 1
 876: 8850 FOR k = 1 TO k3
 877: 8860 c = k4(k): d = k5(k)
 878: 8870 IF q$(c, d) = "C" THEN 8890
 879: 8880 NEXT k
 880: 8890 n = 0: f = k6(k) + 100 * k3
 881: 8900 IF f > 1000 THEN n = INT(RND(1) * k7(k) + 1)
 882: 8910 IF ((c5$ = "DOCKED") AND ((b4 <> q1) OR (b5 <> q2))) THEN n = -s8
 883: 8920 IF n = 0 THEN n = INT(((f + 200 * RND(1)) / 150) - 5)
 884: 8930 IF n = 0 THEN RETURN
 885: 8940 IF (n > 0) AND (k7(k) < 1.5) THEN RETURN
 886: 8950 IF ABS(n) > s8 THEN n = SGN(n) * ABS(s8)
 887: 8960 t = ABS(n): p = s6 - c: q = s7 - d
 888: 8970 IF 2 * ABS(p) < ABS(q) THEN p = 0
 889: 8980 IF 2 * ABS(q) < ABS(p) THEN q = 0
 890: 8990 IF p <> 0 THEN p = SGN(p * n)
 891: 9000 IF q <> 0 THEN q = SGN(q * n)
 892: 9010 r = c: s = d: q$(c, d) = "."
 893: 9020 FOR l2 = 1 TO t: l = r + p: m = s + q
 894: 9030 IF (l > 0) AND (l <= 10) THEN 9050
 895: 9040 ON SGN(n) + 2 GOTO 9280, 9140, 9140
 896: 9050 IF (m > 0) AND (m <= 10) THEN 9070
 897: 9060 ON SGN(n) + 2 GOTO 9280, 9080, 9080
 898: 9070 IF q$(l, m) = "." THEN 9200
 899: 9080 IF (q = b) OR (p = 0) THEN 9140
 900: 9090 m = s + b
 901: 9100 IF (m > 0) AND (m <= 10) THEN 9120
 902: 9110 ON SGN(n) + 2 GOTO 9280, 9130, 9130
 903: 9120 IF q$(l, m) = "." THEN 9200
 904: 9130 b = -b
 905: 9140 IF (p = a) OR (q = 0) THEN 9210
 906: 9150 l = r + a
 907: 9160 IF (l > 0) AND (l <= 10) THEN 9180
 908: 9170 ON SGN(n) + 2 GOTO 9280, 9190, 9190
 909: 9180 IF q$(l, m) = "." THEN 9200
 910: 9190 a = -a: GOTO 9210
 911: 9200 r = l: s = m
 912: 9210 NEXT l2
 913: 9220 q$(r, s) = "C"
 914: 9230 IF (r = c) AND (s = d) THEN RETURN
 915: 9240 k4(k) = r: k5(k) = s: k7(k) = SQR((s6 - r) ^ 2 + (s7 - s) ^ 2)
 916: 9250 k8(k) = k7(k): IF n > 0 THEN PRINT "***COMMANDER ADVANCES TO ";
 917: 9260 IF n < 0 THEN PRINT "***COMMANDER RETREATS TO ";
 918: 9270 PRINT " SECTOR "; r; "-"; s: GOSUB 13880: RETURN
 919: 9280 i = q1 + INT((l + 9) / 10) - 1: j = q2 + INT((m + 9) / 10) - 1
 920: 9290 IF (i < 1) OR (i > 8) THEN 9440
 921: 9300 IF (j < 1) OR (j > 8) THEN 9440
 922: 9310 FOR l3 = 1 TO r2
 923: 9320 IF (c1(l3) = i) AND (c2(l3) = j) THEN 9440
 924: 9330 NEXT l3: PRINT "***COMMANDER ESCAPES TO ";
 925: 9340 PRINT "QUADRANT "; i; "-"; j; " (AND REGAINS STRENGTH)"
 926: 9350 k4(k) = k4(k3): k5(k) = k5(k3): k7(k) = k7(k3): k8(k) = k8(k3)
 927: 9360 k6(k) = k6(k3): k3 = k3 - 1: c3 = 0
 928: 9370 IF c5$ <> "DOCKED" THEN GOSUB 9450
 929: 9380 GOSUB 13880
 930: 9390 g(q1, q2) = g(q1, q2) - 100: g(i, j) = g(i, j) + 100
 931: 9400 FOR l3 = 1 TO r2
 932: 9410 IF (c1(l3) = q1) AND (c2(l3) = q2) THEN 9430
 933: 9420 NEXT l3
 934: 9430 c1(l3) = i: c2(l3) = j: RETURN
 935: 9440 a = -a: b = -b: GOTO 9210
 936: 9450 REM  - NEWCOND
 937: 9460 c5$ = "GREEN"
 938: 9470 IF e1 < 1000 THEN c5$ = "YELLOW"
 939: 9480 IF g(q1, q2) > 99 THEN c5$ = "RED"
 940: 9490 RETURN
 941: 9500 REM - NEW QUAD
 942: 9510 j4 = 1: b6 = 0: b7 = 0: k3 = 0: c3 = 0
 943: 9520 u = g(q1, q2)
 944: 9530 IF u > 999 THEN 9810
 945: 9540 k3 = INT(.01 * u): FOR a = 1 TO 10: FOR b = 1 TO 10: q$(a, b) = ".": NEXT b: NEXT a
 946: 9550 q$(s6, s7) = LEFT$(s5$, 1): u = g(q1, q2): IF u < 100 THEN 9670
 947: 9560 u = u - 100 * k3: FOR a = 1 TO k3
 948: 9570 s = fnb(1): k4(a) = s: t = fnb(1): k5(a) = t
 949: 9580 IF q$(s, t) <> "." THEN 9570
 950: 9590 q$(s, t) = "K": k7(a) = SQR((s6 - s) ^ 2 + (s7 - t) ^ 2): k8(a) = k7(a)
 951: 9600 k6(a) = RND(1) * 150 + 325: NEXT a
 952: 9610 IF r2 = 0 THEN 9660
 953: 9620 FOR a = 1 TO r2
 954: 9630 IF (c1(a) = q1) AND (c2(a) = q2) THEN 9650
 955: 9640 NEXT a: GOTO 9660
 956: 9650 q$(s, t) = "C": k6(k3) = 1000 + 400 * RND(1): c3 = 1
 957: 9660 GOSUB 13880
 958: 9670 IF u < 10 THEN 9710
 959: 9680 u = u - 10
 960: 9690 b6 = fnb(1): b7 = fnb(1): IF q$(b6, b7) <> "." THEN 9690
 961: 9700 q$(b6, b7) = "B"
 962: 9710 GOSUB 9450: IF u < 1 THEN RETURN
 963: 9720 FOR a = 1 TO u
 964: 9730 s = fnb(1): t = fnb(1): IF q$(s, t) <> "." THEN 9730
 965: 9740 q$(s, t) = "*": NEXT a
 966: 9750 IF (t2 <> q1) OR (t3 <> q2) THEN RETURN
 967: 9760 s = fnb(1): t = fnb(1): IF q$(s, t) <> "." THEN 9760
 968: 9770 q$(s, t) = "O": PRINT
 969: 9780 PRINT "MR. SPOCK - 'CAPTAIN, THE SHORT-RANGE SENSORS DETECT A"
 970: 9790 PRINT "SPACE WARP SOMEWHERE IN THIS QUADRANT.'"
 971: 9800 RETURN
 972: 9810 FOR a = 1 TO 10: FOR b = 1 TO 10: q$(a, b) = ".": NEXT b: NEXT a
 973: 9820 q$(s6, s7) = LEFT$(s5$, 1): RETURN
 974: 9830 g4$ = "III": l = 2: IF q2 >= 5 THEN 9850
 975: 9840 l = 1
 976: 9850 g2$ = g1$(2 * (q1 - 1) + l): l = q2
 977: 9860 IF l <= 4 THEN 9880
 978: 9870 l = q2 - 4
 979: 9880 g3$ = "IV": IF l = 4 THEN 9900
 980: 9890 g3$ = LEFT$(g4$, l)
 981: 9900 g2$ = g2$ + " " + g3$: RETURN
 982: 9910 REM  - NOVA
 983: 9920 IF RND(1) > .1 THEN 9940
 984: 9930 GOSUB 13410: RETURN
 985: 9940 q$(a5, a6) = ".": PRINT "***STAR AT SECTOR "; a5; "-"; a6; "NOVAS."
 986: 9950 g(q1, q2) = g(q1, q2) - 1: s1 = s1 + 1
 987: 9960 b9 = 1: t6 = 1: t7 = 1: k = 0: x1 = 0: y1 = 0
 988: 9970 h4(b9, 1) = a5: h4(b9, 2) = a6
 989: 9980 FOR m = b9 TO t6: FOR q = 1 TO 3: FOR j = 1 TO 3
 990: 9990 IF j * q = 4 THEN 10430
 991: 10000 j5 = h4(m, 1) + q - 2: j6 = h4(m, 2) + j - 2
 992: 10010 IF (j5 < 1) OR (j5 > 10) THEN 10430
 993: 10020 IF (j6 < 1) OR (j6 > 10) THEN 10430
 994: 10030 IF q$(j5, j6) = "." THEN 10430
 995: 10040 IF q$(j5, j6) = "O" THEN 10430
 996: 10050 IF q$(j5, j6) <> "*" THEN 10110
 997: 10060 IF RND(1) >= .1 THEN 10080
 998: 10070 x2 = j5: y2 = j6: GOSUB 13410: RETURN
 999: 10080 t7 = t7 + 1: h4(t7, 1) = j5: h4(t7, 2) = j6: g(q1, q2) = g(q1, q2) - 1
1000: 10090 s1 = s1 + 1: PRINT "***STAR AT SECTOR "; j5; "-"; j6; "NOVAS."
1001: 10100 GOTO 10420
1002: 10110 IF q$(j5, j6) <> "B" THEN 10180
1003: 10120 g(q1, q2) = g(q1, q2) - 10: FOR v = 1 TO r3
1004: 10130 IF (b2(v) <> q1) OR (b3(v) <> q2) THEN 10150
1005: 10140 b2(v) = b2(r3): b3(v) = b3(r3)
1006: 10150 NEXT v: r3 = r3 - 1: b6 = 0: b7 = 0: b1 = b1 + 1: GOSUB 9450
1007: 10160 PRINT "***STARBASE AT SECTOR "; j5; "-"; j6; "DESTROYED."
1008: 10170 GOTO 10420
1009: 10180 IF (s6 <> j5) OR (s7 <> j6) THEN 10280
1010: 10190 PRINT "***STARSHIP BUFFETED BY NOVA.": IF s4 <> 0 THEN 10210
1011: 10200 e1 = e1 - 1000: GOTO 10240
1012: 10210 IF s3 >= 1000 THEN 10260
1013: 10220 d6 = 1000 - s3: e1 = e1 - d6: GOSUB 9450: s3 = 0: s4 = 0
1014: 10230 PRINT "***STARSHIP SHIELDS KNOCKED OUT.": d4(8) = .005 * d5 * RND(1) * d6
1015: 10240 IF e1 > 0 THEN 10270
1016: 10250 f9 = 7: GOSUB 5940: RETURN
1017: 10260 s3 = s3 - 1000
1018: 10270 x1 = x1 + s6 - h4(m, 1): y1 = y1 + s7 - h4(m, 2): k = k + 1: GOTO 10430
1019: 10280 IF q$(j5, j6) <> "C" THEN 10410
1020: 10290 FOR v = 1 TO k3
1021: 10300 IF (k4(v) = j5) AND (k5(v) = j6) THEN 10320
1022: 10310 NEXT v
1023: 10320 k6(v) = k6(v) - 800: IF k6(v) <= 0 THEN 10410
1024: 10330 n5 = j5 + j5 - h4(m, 1): n6 = j6 + j6 - h4(m, 2)
1025: 10340 PRINT "***COMMANDER AT SECTOR "; j5; "-"; j6; "DAMAGED";
1026: 10350 IF (n5 < 1) OR (n5 > 10) OR (n6 < 1) OR (n6 > 10) THEN 10400
1027: 10360 PRINT " AND BUFFETED TO SECTOR "; n5; "-"; n6
1028: 10370 q$(n5, n6) = "C": k4(v) = n5: k5(v) = n6
1029: 10380 k7(v) = SQR((s6 - n5) ^ 2 + (s7 - n6) ^ 2): k8(v) = k7(v)
1030: 10390 q$(j5, j6) = "."
1031: 10400 PRINT : GOTO 10430
1032: 10410 a5 = j5: a6 = j6: t2$ = q$(j5, j6): GOSUB 4220: GOTO 10430
1033: 10420 PRINT : q$(j5, j6) = "."
1034: 10430 NEXT j: NEXT q: NEXT m
1035: 10440 IF t6 = t7 THEN 10460
1036: 10450 b9 = t6 + 1: t6 = t7: GOTO 9980
1037: 10460 IF k = 0 THEN RETURN
1038: 10470 d1 = k * .1
1039: 10480 IF x1 <> 0 THEN x1 = SGN(x1)
1040: 10490 IF y1 <> 0 THEN y1 = SGN(y1)
1041: 10500 i = 3 * (x1 + 1) + y1 + 2
1042: 10510 d2 = c5(i)
1043: 10520 IF d2 = 0 THEN d1 = 0
1044: 10530 IF d1 = 0 THEN RETURN
1045: 10540 PRINT : PRINT " FORCE OF NOVA DISPLACES STARSHIP."
1046: 10550 GOSUB 8000: RETURN
1047: 10560 REM -PHASERS
1048: 10570 p = 2: j3 = 1
1049: 10580 IF c5$ <> "DOCKED" THEN 10600
1050: 10590 PRINT "PHASERS CAN'T BE FIRED THRU BASE SHIELDS.": GOTO 10680
1051: 10600 IF d4(3) = 0 THEN 10620
1052: 10610 PRINT "PHASER BANKS DAMAGED.": GOTO 10680
1053: 10620 IF s4 = 0 THEN 10640
1054: 10630 PRINT "SHIELDS MUST BE DOWN TO FIRE PHASERS.": GOTO 10680
1055: 10640 IF k3 > 0 THEN 10690
1056: 10650 PRINT
1057: 10660 PRINT "MR. SPOCK - 'CAPTAIN, THE SHORT-RANGE SENSORS"
1058: 10670 PRINT "  DETECT NO KLINGONS IN THIS QUADRANT.'"
1059: 10680 j3 = 0: RETURN
1060: 10690 PRINT "PHASERS LOCKED ON TARGET. ENERGY AVAILABLE=";
1061: 10700 PRINT .01 * INT(100 * e1)
1062: 10710 INPUT "UNITS TO FIRE "; p1: IF p1 < e1 THEN 10730
1063: 10720 PRINT "ENERGY AVAILABLE ="; : GOTO 10700
1064: 10730 IF p1 > 0 THEN 10750
1065: 10740 j3 = 0: RETURN
1066: 10750 e1 = e1 - p1
1067: 10760 IF d4(11) = 0 THEN 10790
1068: 10770 p1 = p1 * (RND(1) * .5 + .5)
1069: 10780 PRINT : PRINT "COMPUTER MALFUNCTION HAMPERS PHASER ACCURACY.": PRINT
1070: 10790 e = p1: IF k3 = 0 THEN 10960
1071: 10800 e = 0: t5 = (k3 * (k3 + 1)) / 2
1072: 10810 FOR i = 1 TO k3: h3(i) = ((k3 + 1 - i) / t5) * p1
1073: 10820 h5(i) = ABS(k6(i)) / (p * .9 ^ k7(i))
1074: 10830 IF h3(i) <= h5(i) THEN 10850
1075: 10840 e = e + (h3(i) - h5(i)): h3(i) = h5(i)
1076: 10850 NEXT i
1077: 10860 IF e = 0 THEN 10930
1078: 10870 FOR i = 1 TO k3: r7 = h5(i) - h3(i)
1079: 10880 IF r7 <= 0 THEN 10910
1080: 10890 IF r7 >= e THEN 10920
1081: 10900 h3(i) = h5(i): e = e - r7
1082: 10910 NEXT i: GOTO 10930
1083: 10920 h3(i) = h3(i) + e: e = 0
1084: 10930 GOSUB 7180
1085: 10940 IF (e <> 0) AND (a2 = 0) THEN 10960
1086: 10950 j3 = 1: RETURN
1087: 10960 PRINT fnr(e); "EXPENDED ON EMPTY SPACE.": j3 = 1: RETURN
1088: 10970 REM  - PHOTO NS
1089: 10980 j3 = 1: IF d4(4) = 0 THEN 11000
1090: 10990 PRINT "PHOTON TUBES DAMAGED.": GOTO 11040
1091: 11000 IF t4 <> 0 THEN 11020
1092: 11010 PRINT "NO TORPEDOS LEFT.": GOTO 11040
1093: 11020 INPUT "TORPEDO COURSE "; c6
1094: 11030 IF c6 >= 0 THEN 11050
1095: 11040 j3 = 0: RETURN
1096: 11050 INPUT "BURST OF 3 "; b$: n = 1
1097: 11060 IF LEFT$(b$, 1) = "N" THEN 11150
1098: 11070 IF LEFT$(b$, 1) <> "Y" THEN 11050
1099: 11080 IF t4 > 2 THEN 11100
1100: 11090 PRINT "NO BURST. ONLY "; t4; "TORPEDOS LEFT.": GOTO 11040
1101: 11100 INPUT "SPREAD ANGLE (3 - 30 DEG) "; g2
1102: 11110 IF g2 < 0 THEN 11040
1103: 11120 IF (g2 < 3) OR (g2 > 30) THEN 11100
1104: 11130 g2 = fnd(g2)
1105: 11140 n = 3
1106: 11150 REM  - CONTINUE
1107: 11160 FOR z6 = 1 TO n
1108: 11170 IF c5$ <> "DOCKED" THEN t4 = t4 - 1
1109: 11180 z7 = z6: r = RND(1)
1110: 11190 r = (r + RND(1)) * .5 - .5
1111: 11200 IF (r >= -.4) AND (r <= .4) THEN 11270
1112: 11210 r = (RND(1) + 1.2) * r: IF n = 3 THEN 11230
1113: 11220 PRINT "***TORPEDO MISFIRES...": GOTO 11240
1114: 11230 PRINT "***TORPEDO NUMBER "; z6; "MISFIRES..."
1115: 11240 IF RND(1) > .2 THEN 11270
1116: 11250 PRINT "***PHOTO N TUBES DAMAGED BY MISFIRE."
1117: 11260 d4(4) = d5 * (1 + 2 * RND(1)): GOTO 11930
1118: 11270 IF (s4 <> 0) OR (c5$ = "DOCKED") THEN r = r + .001# * s3 * r
1119: 11280 a3 = c6 + .25 * r: IF n = 1 THEN 11310
1120: 11290 a8 = (15 - a3 + (2 - z6) * g2) * .523599: PRINT
1121: 11300 PRINT "TRACK FOR TORPEDO NUMBER "; z7; "--": GOTO 11320
1122: 11310 PRINT : PRINT "TORPEDO TRACK --": a8 = (15 - a3) * .523599
1123: 11320 x4 = -SIN(a8): y4 = COS(a8): b8 = ABS(x4)
1124: 11330 IF ABS(y4) > ABS(x4) THEN b8 = ABS(y4)
1125: 11340 x4 = x4 / b8: y4 = y4 / b8: x5 = s6: y5 = s7
1126: 11350 FOR l9 = 1 TO 15: x5 = x5 + x4: a5 = INT(x5 + .5)
1127: 11360 IF (a5 < 1) OR (a5 > 10) THEN 11910
1128: 11370 y5 = y5 + y4: a6 = INT(y5 + .5)
1129: 11380 IF (a6 < 1) OR (a6 > 10) THEN 11910
1130: 11390 IF (l9 = 5) OR (l9 = 9) THEN PRINT
1131: 11400 PRINT fnr(x5); "-"; fnr(y5); ", ";
1132: 11410 IF q$(a5, a6) <> "." THEN 11430
1133: 11420 GOTO 11900
1134: 11430 PRINT : IF q$(a5, a6) = "K" THEN 11480
1135: 11440 IF q$(a5, a6) <> "C" THEN 11700
1136: 11450 IF RND(1) > .1 THEN 11480
1137: 11460 PRINT "***COMMANDER AT SECTOR "; a5; "-"; a6; "USES ANTI-PHOTON ";
1138: 11470 PRINT " DEVICE!": PRINT "  TORPEDO NEUTRALIZED.": GOTO 11920
1139: 11480 FOR v = 1 TO k3
1140: 11490 IF (a5 = k4(v)) AND (a6 = k5(v)) THEN 11510
1141: 11500 NEXT v
1142: 11510 k = k6(v): w3 = 200 + 800 * RND(1)
1143: 11520 IF ABS(k) < w3 THEN w3 = ABS(k)
1144: 11530 k6(v) = k - SGN(k) * ABS(w3): IF k6(v) <> 0 THEN 11550
1145: 11540 t2$ = q$(a5, a6): GOSUB 4220: GOTO 11920
1146: 11550 IF q$(a5, a6) = "K" THEN PRINT "***KLINGON AT ";
1147: 11560 IF q$(a5, a6) = "C" THEN PRINT "***COMMANDER AT ";
1148: 11570 PRINT a5; "-"; a6;
1149: 11580 a7 = a8 + 2.5 * (RND(1) - .5)
1150: 11590 w3 = ABS(-SIN(a7)): IF ABS(COS(a7)) > w3 THEN w3 = ABS(COS(a7))
1151: 11600 x7 = -SIN(a7) / w3: y7 = COS(a7) / w3
1152: 11610 p = INT(a5 + x7 + .5): q = INT(a6 + y7 + .5)
1153: 11620 IF (p < 1) OR (p > 10) OR (q < 1) OR (q > 10) THEN 11690
1154: 11630 IF q$(p, q) <> "." THEN 11690
1155: 11640 q$(p, q) = q$(a5, a6): q$(a5, a6) = ".": PRINT "DAMAGED--"
1156: 11650 PRINT "  DISPLACED BY BLAST TO SECTOR "; p; "-"; q
1157: 11660 k4(v) = p: k5(v) = q: k7(v) = SQR((s6 - p) ^ 2 + (s7 - q) ^ 2)
1158: 11670 k8(v) = k7(v)
1159: 11680 GOSUB 13880: GOTO 11920
1160: 11690 PRINT "DAMAGED, BUT NOT DESTROYED.": GOTO 11920
1161: 11700 IF q$(a5, a6) <> "B" THEN 11780
1162: 11710 PRINT "***STARBASE DESTROYED...CONGRATULATIONS...YOU TURKEY!"
1163: 11720 IF s2(q1, q2) < 0 THEN s2(q1, q2) = 0
1164: 11730 FOR w = 1 TO r3
1165: 11740 IF (b2(w) <> q1) OR (b3(w) <> q2) THEN 11760
1166: 11750 b2(w) = b2(r3): b3(w) = b3(r3)
1167: 11760 NEXT w: q$(a5, a6) = ".": r3 = r3 - 1: b6 = 0: b7 = 0
1168: 11770 g(q1, q2) = g(q1, q2) - 10: b1 = b1 + 1: GOSUB 9450: GOTO 11920
1169: 11780 IF q$(a5, a6) <> "*" THEN 11860
1170: 11790 IF RND(1) > .15 THEN 11820
1171: 11800 PRINT "***STAR AT SECTOR "; a5; "-"; a6; "UNAFFECTED BY PHOTON BLAST"
1172: 11810 GOTO 11920
1173: 11820 x2 = a5: y2 = a6: GOSUB 9910: a5 = x2: a6 = y2
1174: 11830 IF g(q1, q2) = 1000 THEN RETURN
1175: 11840 IF a2 <> 0 THEN RETURN
1176: 11850 GOTO 11920
1177: 11860 PRINT : PRINT "AAAAAIIIIIIIEEEEEEEAAAAAAAUUUUUUGGGGGGGHHHHHHHHHH!!!"
1178: 11870 PRINT "  HACK!   HACK!  COUGH!   *CHOKE!*"
1179: 11880 PRINT : PRINT "MR. SPOCK- 'FASCINATING!'": q$(a5, a6) = "."
1180: 11890 t2 = 0: t3 = 0: GOTO 11920
1181: 11900 NEXT l9
1182: 11910 PRINT : PRINT "TORPEDO MISSED!"
1183: 11920 NEXT z6
1184: 11930 IF r1 <> 0 THEN RETURN
1185: 11940 f9 = 1: GOSUB 5940: RETURN
1186: 11950 REM  - RAM
1187: 11960 PRINT : PRINT "*** RED ALERT!!  RED ALERT!! ***": PRINT
1188: 11970 PRINT "*** COLLISION IMMINENT!!": PRINT
1189: 11980 PRINT "*** "; s5$; " RAMS "; : w7 = 1: IF q$(s6, s7) = "C" THEN w7 = 2
1190: 11990 IF w7 = 1 THEN PRINT "KLINGON AT ";
1191: 12000 IF w7 = 2 THEN PRINT "COMMANDER AT ";
1192: 12010 PRINT "SECTOR "; s6; "-"; s7: a5 = s6: a6 = s7: t2$ = q$(s6, s7)
1193: 12020 GOSUB 4220: PRINT "***"; s5$; " HEAVILY DAMAGED."
1194: 12030 k = INT(5 + RND(1) * 20): PRINT "***SICKBAY REPORTS "; k; "CASUALTIES!"
1195: 12040 c4 = c4 + k: FOR l = 1 TO 12: i = RND(1)
1196: 12050 j = (3.5 * w7 * (RND(1) + i) + 1) * d5
1197: 12060 IF l = 6 THEN j = j / 3
1198: 12070 d4(l) = d4(l) + t1 + j: NEXT l: d4(6) = d4(6) - 3
1199: 12080 IF d4(6) < 0 THEN d4(6) = 0
1200: 12090 s4 = 0: IF r1 <> 0 THEN RETURN
1201: 12100 f9 = 1: GOSUB 5940: RETURN
1202: 12110 REM  - SCORE
1203: 12120 p = d0 - j2: IF (p <> 0) AND (r1 = 0) THEN 12140
1204: 12130 IF p < 5 THEN p = 5
1205: 12140 n = (k2 + k1) / p: k = INT(500 * n + .5): l = 0
1206: 12150 IF g1 <> 0 THEN l = 100 * s8
1207: 12160 i = 0
1208: 12170 IF LEFT$(s5$, 1) = "E" THEN m = 0
1209: 12180 IF LEFT$(s5$, 1) = "F" THEN m = 1
1210: 12190 IF LEFT$(s5$, 1) = "" THEN m = 2
1211: 12200 IF a1 = 0 THEN i = 200
1212: 12210 j = 10 * k1 + 50 * k2 + k + l - i - 100 * b1 - 100 * m - 35 * n1 - 3 * s1 - c4
1213: 12220 PRINT : IF j <> 0 THEN 12240
1214: 12230 PRINT "AS YET, YOU HAVE NO SCORE.": RETURN
1215: 12240 PRINT "YOUR SCORE --": PRINT : IF k1 = 0 THEN 12260
1216: 12250 PRINT k1; TAB(5); "ORDINARY KLINGON(S) DESTROYED"; TAB(36); 10 * k1
1217: 12260 IF k2 = 0 THEN 12280
1218: 12270 PRINT k2; TAB(5); "KLINGON COMMANDER(S) DESTROYED"; TAB(36); 50 * k2
1219: 12280 IF k = 0 THEN 12310
1220: 12290 PRINT fnr(n); TAB(5); "KLINGONS PER STARDATE, AVERAGE";
1221: 12300 PRINT TAB(36); k
1222: 12310 IF s1 = 0 THEN 12330
1223: 12320 PRINT s1; TAB(5); "STAR(S) DESTROYED"; TAB(36); -3 * s1
1224: 12330 IF b1 = 0 THEN 12350
1225: 12340 PRINT b1; TAB(5); "STARBASES DESTROYED"; TAB(36); -100 * b1
1226: 12350 IF n1 = 0 THEN 12370
1227: 12360 PRINT n1; TAB(5); "SOS CALL(S) TO A STARBASE"; TAB(36); -35 * n1
1228: 12370 IF c4 = 0 THEN 12390
1229: 12380 PRINT c4; TAB(5); "CASUALTIES INCURRED"; TAB(36); -c4
1230: 12390 IF m = 0 THEN 12410
1231: 12400 PRINT m; TAB(5); "SHIP(S) LOST OR DESTROYED"; TAB(36); -100 * m
1232: 12410 IF a1 <> 0 THEN 12430
1233: 12420 PRINT "PENALTY FOR GETTING YOURSELF KILLED"; TAB(36); -200
1234: 12430 IF g1 = 0 THEN 12450
1235: 12440 PRINT TAB(5); "BONUS FOR WINNING "; s$(s8); " GAME"; TAB(36); l
1236: 12450 PRINT TAB(5); "-------------------------------------"
1237: 12460 PRINT TAB(28); "TOTAL"; TAB(36); j; "**": RETURN
1238: 12470 REM -SETUP
1239: 12480 a2 = 0: g1 = 0: GOSUB 3110: s5$ = "ENTERPRISE"
1240: 12490 i7 = 5000: e1 = i7: i8 = 2500: s3 = i8: s4 = 0: s9 = s4: j1 = 4: l1 = j1
1241: 12500 q1 = fna(1): q2 = fna(1): s6 = fnb(1): s7 = fnb(1): i9 = 10: t4 = i9
1242: 12510 w1 = 5: w2 = 25: FOR i = 1 TO 12: d4(i) = 0: NEXT
1243: 12520 j2 = 100 * INT(31 * RND(1) + 20): d0 = j2: k1 = 0: k2 = 0: n1 = 0: n2 = 0: r6 = 0: c4 = 0
1244: 12530 a1 = 1: d3 = .25: FOR i = 1 TO 8: FOR j = 1 TO 8: s2(i, j) = 0: NEXT j: NEXT i
1245: 12540 f1(1) = d0 - .5 * i5 * LOG(RND(1)): f1(5) = 1e+30
1246: 12550 f1(2) = d0 - 1.5 * (i5 / r2) * LOG(RND(1)): i6 = 0
1247: 12560 f1(3) = d0 - .3 * i5 * LOG(RND(1)): f1(4) = d0 - .3 * i5 * LOG(RND(1))
1248: 12570 FOR i = 1 TO 8: FOR j = 1 TO 8: k = INT(RND(1) * 9 + 1): i6 = i6 + k
1249: 12580 g(i, j) = k: NEXT j: NEXT i: s1 = 0
1250: 12590 FOR i = 1 TO i2
1251: 12600 x = INT(RND(1) * 6 + 2): y = INT(RND(1) * 6 + 2)
1252: 12610 IF g(x, y) >= 10 THEN 12600
1253: 12620 IF i < 2 THEN 12660
1254: 12630 k = i - 1: FOR j = 1 TO k: d1 = SQR((b2(j) - x) ^ 2 + (b3(j) - y) ^ 2)
1255: 12640 IF d1 < 2 THEN 12600
1256: 12650 NEXT j
1257: 12660 b2(i) = x: b3(i) = y: s2(x, y) = -1: g(x, y) = g(x, y) + 10: NEXT i
1258: 12670 b1 = 0: k = i1 - i4: l = INT(.25 * s8 * (9 - l2) + 1)
1259: 12680 m = INT((1 - RND(1) ^ 2) * l): IF m > k THEN m = k
1260: 12690 n = 100 * m
1261: 12700 x = fna(1): y = fna(1): IF g(x, y) + n > 999 THEN 12700
1262: 12710 g(x, y) = g(x, y) + n: k = k - m: IF k <> 0 THEN 12680
1263: 12720 FOR i = 1 TO i4
1264: 12730 x = fna(1): y = fna(1): IF (g(x, y) < 99) AND (RND(1) < .75) THEN 12730
1265: 12740 IF g(x, y) > 899 THEN 12730
1266: 12750 IF i = 1 THEN 12780
1267: 12760 m = i - 1: FOR j = 1 TO m: IF (c1(j) = x) AND (c2(j) = y) THEN 12730
1268: 12770 NEXT j
1269: 12780 g(x, y) = g(x, y) + 100: c1(i) = x: c2(i) = y: NEXT i
1270: 12790 i = INT(d0): PRINT : s0 = 0
1271: 12800 t2 = fna(1): t3 = fna(1): IF g(t2, t3) < 100 THEN 12800
1272: 12810 IF s8 <> 1 THEN 12940
1273: 12820 PRINT "IT IS STARDATE "; i; "...THE ORGANIAN PEACE TREATY BETWEEN"
1274: 12830 PRINT "THE UNITED FEDERATION OF PLANETS AND THE KLINGON EMPIRE"
1275: 12840 PRINT "HAS COLLAPSED AND THE FEDERATION IS BEING ATTACKED BY A"
1276: 12850 PRINT "DEADLY KLINGON INVASION FLEET. AS CAPTAIN OF THE STARSHIP"
1277: 12870 PRINT "U.S.S. ENTERPRISE, IT IS YOUR MISSION TO SEEK OUT AND"
1278: 12880 PRINT "DESTROY THIS INVASION FORCE OF "; i1; "BATTLE CRUISERS."
1279: 12890 PRINT : PRINT "YOU HAVE AN INITIAL ALLOTMENT OF "; INT(i5);
1280: 12900 PRINT "STARDATES": PRINT "TO COMPLETE YOUR MISSION."
1281: 12910 PRINT "AS THE MISSION PROCEEDS, YOU MAY BE GIVEN MORE TIME."
1282: 12920 PRINT : PRINT "YOU WILL HAVE "; i2; "SUPPORTING STARBASE(S).": PRINT
1283: 12930 GOTO 13020
1284: 12940 PRINT "STARDATE.............."; i
1285: 12950 PRINT "NUMBER OF KLINGONS...."; i1
1286: 12960 PRINT "NUMBER OF STARDATES..."; INT(i5)
1287: 12970 PRINT "NUMBER OF STARBASES..."; i2
1288: 12980 PRINT "STARBASE LOCATIONS....";
1289: 12990 FOR i = 1 TO i2: PRINT b2(i); "-"; b3(i);
1290: 13000 IF i <> i2 THEN PRINT ", ";
1291: 13010 NEXT i: PRINT : PRINT
1292: 13020 GOSUB 9830
1293: 13030 PRINT "THE "; s5$; " IS CURRENTLY IN THE "; g2$; " QUADRANT."
1294: 13040 GOSUB 9500: RETURN
1295: 13050 REM  - SETWARP
1296: 13060 INPUT "WARP FACTOR "; k
1297: 13070 PRINT
1298: 13080 IF k < 1 THEN 13220
1299: 13090 IF k > 10 THEN 13230
1300: 13100 j = w1: w1 = k: w2 = w1 * w1
1301: 13110 IF (w1 <= j) OR (w1 <= 6) THEN 13140
1302: 13120 IF w1 <= 8 THEN 13150
1303: 13130 IF w1 > 8 THEN 13170
1304: 13140 PRINT "ENSIGN CHEKOV - 'WARP FACTOR "; w1; "CAPTAIN'": RETURN
1305: 13150 PRINT "ENGINEER SCOTT - 'AYE, BUT OUR MAXIMUM SAFE SPEED";
1306: 13160 PRINT " IS WARP 6.'": RETURN
1307: 13170 IF w1 = 10 THEN 13200
1308: 13180 PRINT "ENGINEER SCOTT-'AYE, CAPTAIN, BUT OUR ENGINES MAY NOT ";
1309: 13190 PRINT "TAKE IT.'": RETURN
1310: 13200 PRINT "ENGINEER SCOTT-'AYE, CAPTAIN, WE'LL GIVE IT A TRY.": RETURN
1311: 13220 PRINT "ENSIGN CHEKOV-'WE CAN'T GO BELOW WARP 1, CAPTAIN.'": RETURN
1312: 13230 PRINT "ENSIGN CHEKOV-'OUR TO P SPEED IS WARP 10, CAPTAIN.'"
1313: 13240 RETURN
1314: 13250 REM  - SHIELDS
1315: 13260 j3 = 0: IF d4(8) <> 0 THEN 13380
1316: 13270 IF s4 <> 0 THEN 13310
1317: 13280 INPUT "SHIELDS ARE DOWN. DO YOU WANT THEM UP "; b$
1318: 13290 IF LEFT$(b$, 1) = "Y" THEN 13340
1319: 13300 RETURN
1320: 13310 INPUT "SHIELDS ARE UP. DO YOU WANT THEM DOWN "; b$
1321: 13320 IF LEFT$(b$, 1) = "Y" THEN 13370
1322: 13330 RETURN
1323: 13340 s4 = 1: s9 = 1: IF c5$ <> "DOCKED" THEN e1 = e1 - 50
1324: 13350 PRINT "SHIELDS RAISED.": IF e1 <= 0 THEN 13390
1325: 13360 j3 = 1: RETURN
1326: 13370 s4 = 0: s9 = 1: PRINT "SHIELDS LOWERED.": j3 = 1: RETURN
1327: 13380 PRINT "SHIELDS DAMAGED AND DOWN.": RETURN
1328: 13390 PRINT : PRINT "SHIELDS USE UP LAST OF THE ENERGY."
1329: 13400 f9 = 4: GOSUB 5940: RETURN
1330: 13410 REM  - SUPERNOVA
1331: 13420 IF x2 <> 0 THEN 13520
1332: 13430 n = INT(RND(1) * i6 + 1): FOR x = 1 TO 8: FOR y = 1 TO 8
1333: 13440 n = n - (g(x, y) - INT(g(x, y) / 10) * 10): IF n <= 0 THEN 13460
1334: 13450 NEXT y: NEXT x: RETURN
1335: 13460 IF (x <> q1) OR (y <> q2) THEN 13580
1336: 13470 IF j4 <> 0 THEN 13580
1337: 13480 n = INT(RND(1) * (g(x, y) - INT(g(x, y) / 10) * 10)) + 1
1338: 13490 FOR x3 = 1 TO 10: FOR y3 = 1 TO 10: IF q$(x3, y3) <> "*" THEN 13510
1339: 13500 n = n - 1: IF n = 0 THEN 13520
1340: 13510 NEXT y3: NEXT x3
1341: 13520 PRINT : PRINT "*** RED ALERT!! RED ALERT!! ***"
1342: 13530 x3 = x2: y3 = y2
1343: 13540 PRINT "*** INCIPIENT SUPERNOVA DETECTED AT SECTOR "; x3; "-"; y3
1344: 13550 x = q1: y = q2: k = (x2 - s6) ^ 2 + (y2 - s7) ^ 2
1345: 13560 IF k > 1.5 THEN 13620
1346: 13570 PRINT "*** EMERGENCY AUTO -OVERRIDE JAMMED ***": a2 = 1: GOTO 13620
1347: 13580 IF d4(9) <> 0 THEN 13620
1348: 13590 PRINT : PRINT "MESSAGE FROM STARFLEET COMMAND...STARDATE "; INT(d0)
1349: 13600 PRINT "'SUPERNOVA IN QUADRANT "; x; "-"; y;
1350: 13610 PRINT "....CAUTION ADVISED'"
1351: 13620 n = g(x, y): r = INT(n / 100): q = 0
1352: 13630 IF (x <> q1) OR (y <> q2) THEN 13650
1353: 13640 k3 = 0: c3 = 0
1354: 13650 IF r = 0 THEN 13710
1355: 13660 r1 = r1 - r: IF r2 = 0 THEN 13710
1356: 13670 FOR l = 1 TO r2: IF (c1(l) <> x) OR (c2(l) <> y) THEN 13700
1357: 13680 c1(l) = c1(r2): c2(l) = c2(r2): c1(r2) = 0: c2(r2) = 0
1358: 13690 r2 = r2 - 1: r = r - 1: q = 1: IF r2 = 0 THEN f1(2) = 1E+30
1359: 13700 NEXT l
1360: 13710 IF r3 = 0 THEN 13750
1361: 13720 FOR l = 1 TO r3: IF (b2(l) <> x) OR (b3(l) <> y) THEN 13740
1362: 13730 b2(l) = b2(r3): b3(l) = b3(r3): b2(r3) = 0: b3(r3) = 0: r3 = r3 - 1
1363: 13740 NEXT l
1364: 13750 IF x2 = 0 THEN 13790
1365: 13760 n = g(x, y) - INT(g(x, y) / 100) * 100
1366: 13770 s1 = s1 + (n - INT(n / 10) * 10): b1 = b1 + INT(n / 10)
1367: 13780 k1 = k1 + r: k2 = k2 + q
1368: 13790 IF (s2(x, y) <> 0) AND (d4(9) <> 0) THEN s2(x, y) = 1000 + g(x, y)
1369: 13800 IF (d4(9) = 0) OR ((q1 = x) AND (q2 = y)) THEN s2(x, y) = 1
1370: 13810 g(x, y) = 1000
1371: 13820 IF (r1 <> 0) OR ((x = q1) AND (y = q2)) THEN 13860
1372: 13830 PRINT : PRINT "MR. SPOCK- 'CAPTAIN, A SUPERNOVA IN QUADRANT ";
1373: 13840 PRINT x; "-"; y; "HAS JUST DESTROYED THE LAST OF THE KLINGONS.'"
1374: 13850 f9 = 1: GOSUB 5940: RETURN
1375: 13860 IF a2 = 0 THEN RETURN
1376: 13870 f9 = 8: GOSUB 5940: RETURN
1377: 13880 REM  - SORTKL
1378: 13890 IF k3 <= 1 THEN RETURN
1379: 13900 z4 = 0
1380: 13910 FOR o = 1 TO k3 - 1: IF k7(o) <= k7(o + 1) THEN 13980
1381: 13920 k = k7(o): k7(o) = k7(o + 1): k7(o + 1) = k
1382: 13930 k = k8(o): k8(o) = k8(o + 1): k8(o + 1) = k
1383: 13940 k = k4(o): k4(o) = k4(o + 1): k4(o + 1) = k
1384: 13950 k = k5(o): k5(o) = k5(o + 1): k5(o + 1) = k
1385: 13960 k = k6(o): k6(o) = k6(o + 1): k6(o + 1) = k
1386: 13970 z4 = 1
1387: 13980 NEXT o
1388: 13990 IF z4 <> 0 THEN 13900
1389: 14000 RETURN
1390: 14010 REM -SRSCAN
1391: 14020 IF d4(1) <> 0 THEN 14260: REM  damage ? rhn
1392: 14030 PRINT : PRINT "  1 2 3 4 5 6 7 8 9 10"
1393: 14040 FOR i = 1 TO 10: IF i < 10 THEN PRINT " ";
1394: 14050 PRINT i; : FOR j = 1 TO 10: PRINT q$(i, j); " "; : NEXT j
1395: 14060 IF i <= 5 THEN ON i GOTO 14080, 14090, 14110, 14120, 14170
1396: 14070 ON i - 5 GOTO 14180, 14190, 14200, 14230, 14240
1397: 14080 PRINT " STARDATE    "; fnr(d0): GOTO 14250
1398: 14090 IF c5$ <> "DOCKED" THEN GOSUB 9450
1399: 14100 PRINT " CONDITION   "; c5$: GOTO 14250
1400: 14110 PRINT " POSITION    "; q1; "-"; q2; ", "; s6; "-"; s7: GOTO 14250
1401: 14120 PRINT " LIFE SUPPORT  "; : IF d4(5) <> 0 THEN 14140
1402: 14130 PRINT "ACTIVE": GOTO 14250
1403: 14140 IF c5$ <> "DOCKED" THEN 14160
1404: 14150 PRINT "DAMAGED, SUPPORTED BY STARBASE": GOTO 14250
1405: 14160 PRINT "DAMAGED, RESERVES="; fns(l1): GOTO 14250
1406: 14170 PRINT " WARP FACTOR  "; fnr(w1): GOTO 14250
1407: 14180 PRINT " ENERGY "; spc$(8); .01 * INT(100 * e1): GOTO 14250
1408: 14190 PRINT " TORPEDOS     "; t4: GOTO 14250
1409: 14200 PRINT " SHIELDS      "; : b$ = "DOWN,": IF s4 <> 0 THEN b$ = "UP,"
1410: 14210 IF d4(8) > 0 THEN b$ = "DAMAGED,"
1411: 14220 PRINT b$; INT(100 * s3 / i8 + .5); "%": GOTO 14250
1412: 14230 PRINT " KLINGONS LEFT "; r1: GOTO 14250
1413: 14240 PRINT " TIME LEFT    "; fns(r5)
1414: 14250 NEXT i: RETURN
1415: 14260 PRINT "SHORT RANGE SENSORS DAMAGED.": RETURN
1416: 14270 REM  - TIMEWARP
1417: 14280 PRINT : PRINT "*** TIME WARP ENTERED ***": PRINT "YOU ARE TRAVELING";
1418: 14300 IF s0 <> 0 THEN 14340
1419: 14310 t1 = -.5 * i5 * LOG(RND(1))
1420: 14320 PRINT " FOR WARD IN TIME "; fnr(t1); "STARDATES."
1421: 14330 f1(2) = f1(2) + t1: GOTO 14500
1422: 14340 m = d0: d0 = d9(1)
1423: 14350 PRINT "BACKWARD IN TIME "; fnr(m - d0); "STARDATES.": s0 = 0
1424: 14360 r1 = d9(2): r2 = d9(3): r3 = d9(4): r4 = d9(5): r5 = d9(6)
1425: 14370 s1 = d9(7): b1 = d9(8): k1 = d9(9): k2 = d9(10)
1426: 14380 FOR i = 1 TO 8: FOR j = 1 TO 8: g(i, j) = d9(i - 1 + 8 * (j - 1) + 11): NEXT j: NEXT i
1427: 14390 FOR i = 75 TO 84: c1(i - 74) = d9(i): NEXT
1428: 14400 FOR i = 85 TO 94: c2(i - 84) = d9(i): NEXT
1429: 14410 FOR i = 95 TO 99: b2(i - 94) = d9(i): NEXT
1430: 14420 FOR i = 100 TO 104: b3(i - 99) = d9(i): NEXT: b4 = d9(105): b5 = d9(106)
1431: 14430 f1(1) = d0 - .5 * i5 * LOG(RND(1))
1432: 14440 IF r2 <> 0 THEN f1(2) = d0 - (i5 / r2) * LOG(RND(1))
1433: 14450 f1(3) = d0 - .5 * i5 * LOG(RND(1))
1434: 14460 FOR i = 1 TO 8: FOR j = 1 TO 8: IF 1 < s2(i, j) THEN s2(i, j) = 1
1435: 14470 NEXT j: NEXT i
1436: 14480 PRINT
1437: 14490 PRINT "SPOCK HAS RECONSTRUCTED A CORRECT STAR CHART FROM MEMORY."
1438: 14500 GOSUB 9500: RETURN
1439: 14510 REM  - TRANSFER
1440: 14520 j3 = 0
1441: 14530 IF d4(12) <> 0 THEN 14660
1442: 14540 INPUT "NUMBER OF UNITS TO SHIELDS "; z3
1443: 14550 IF z3 < 0 THEN RETURN
1444: 14560 IF e1 + s3 - z3 > 0 THEN 14590
1445: 14570 PRINT "SCOTT HERE- 'WE ONLY HAVE "; fnr(e1 + s3); "UNITS LEFT.'"
1446: 14580 RETURN
1447: 14590 e1 = e1 + s3 - z3: s3 = z3: PRINT "--ENERGY TRANSFER COMPLETE--"
1448: 14600 PRINT "(SHIP ENERGY="; fnr(e1); "  SHIELD ENERGY="; fnr(s3); ")"
1449: 14610 j3 = 1
1450: 14620 t1 = .1: p5 = (k3 + 4 * c3) / 48: IF p5 < .1 THEN p5 = .1
1451: 14630 IF p5 > RND(1) THEN GOSUB 1520
1452: 14640 IF a2 <> 0 THEN RETURN
1453: 14650 GOSUB 4760: RETURN
1454: 14660 PRINT "TRANSFER PANEL DAMAGED.": RETURN
1455: 14670 REM  - VISUAL
1456: 14680 INPUT "WHICH DIRECTION "; z
1457: 14690 PRINT
1458: 14700 j3 = 0: IF z < 0 THEN RETURN
1459: 14710 IF z <= 12 THEN 14730
1460: 14720 PRINT "DIRECTIONS ARE FROM 0 TO 12 ONLY": GOTO 14680
1461: 14730 t1 = .05: p = (k3 + 4 * c3) / 48: IF p < .05 THEN p = .05
1462: 14740 IF p > RND(1) THEN GOSUB 1520
1463: 14750 IF a2 <> 0 THEN RETURN
1464: 14760 GOSUB 4760: j3 = 1: IF a2 <> 0 THEN RETURN
1465: 14770 d5 = INT((z / 12) * 8 + 1.5): IF d5 > 8 THEN d5 = 1
1466: 14780 FOR i = 1 TO 5: FOR j = 1 TO 5: v$(i, j) = " ": NEXT j: NEXT i: n = 0
1467: 14790 v$(3, 3) = LEFT$(s5$, 1)
1468: 14800 ON d5 GOTO 14810, 14850, 14890, 14930, 14970, 15010, 15050, 15090
1469: 14810 i = s6 - 2: j = s7 - 2: v$(1, 1) = q$: IF (j > 0) AND (i > 0) THEN v$(1, 1) = q$(i, j)
1470: 14820 i = s6 - 1: j = s7 - 1: v$(2, 2) = q$: IF (i > 0) AND (j > 0) THEN v$(2, 2) = q$(i, j)
1471: 14830 n = n + 1: IF n = 3 THEN 15140
1472: 14840 i = s6 - 2: v$(1, 2) = q$: IF (i > 0) AND (j > 0) THEN v$(1, 2) = q$(i, j)
1473: 14850 i = s6 - 2: v$(1, 3) = q$: IF i > 0 THEN v$(1, 3) = q$(i, s7)
1474: 14860 i = s6 - 1: v$(2, 3) = q$: IF i > 0 THEN v$(2, 3) = q$(i, s7)
1475: 14870 n = n + 1: IF n = 3 THEN 15140
1476: 14880 i = s6 - 2: j = s7 + 1: v$(1, 4) = q$: IF (i > 0) AND (j < 11) THEN v$(1, 4) = q$(i, j)
1477: 14890 i = s6 - 2: j = s7 + 2: v$(1, 5) = q$: IF (i > 0) AND (j < 11) THEN v$(1, 5) = q$(i, j)
1478: 14900 i = s6 - 1: j = s7 + 1: v$(2, 4) = q$: IF (i > 0) AND (j < 11) THEN v$(2, 4) = q$(i, j)
1479: 14910 n = n + 1: IF n = 3 THEN 15140
1480: 14920 j = s7 + 2: v$(2, 5) = q$: IF (i > 0) AND (j < 11) THEN v$(2, 5) = q$(i, j)
1481: 14930 j = s7 + 2: v$(3, 5) = q$: IF j < 11 THEN v$(3, 5) = q$(s6, j)
1482: 14940 j = s7 + 1: v$(3, 4) = q$: IF j < 11 THEN v$(3, 4) = q$(s6, j)
1483: 14950 n = n + 1: IF n = 3 THEN 15140
1484: 14960 i = s6 + 1: j = s7 + 2: v$(4, 5) = q$: IF (i < 11) AND (j < 11) THEN v$(4, 5) = q$(i, j)
1485: 14970 i = s6 + 2: j = s7 + 2: v$(5, 5) = q$: IF (i < 11) AND (j < 11) THEN v$(5, 5) = q$(i, j)
1486: 14980 i = s6 + 1: j = s7 + 1: v$(4, 4) = q$: IF (i < 11) AND (j < 11) THEN v$(4, 4) = q$(i, j)
1487: 14990 n = n + 1: IF n = 3 THEN 15140
1488: 15000 i = s6 + 2: v$(5, 4) = q$: IF (i < 11) AND (j < 11) THEN v$(5, 4) = q$(i, j)
1489: 15010 i = s6 + 2: v$(5, 3) = q$: IF i < 11 THEN v$(5, 3) = q$(i, s7)
1490: 15020 i = s6 + 1: v$(4, 3) = q$: IF i < 11 THEN v$(4, 3) = q$(i, s7)
1491: 15030 n = n + 1: IF n = 3 THEN 15140
1492: 15040 i = s6 + 2: j = s7 - 1: v$(5, 2) = q$: IF (i < 11) AND (j > 0) THEN v$(5, 2) = q$(i, j)
1493: 15050 i = s6 + 2: j = s7 - 2: v$(5, 1) = q$: IF (i < 11) AND (j > 0) THEN v$(5, 1) = q$(i, j)
1494: 15060 i = s6 + 1: j = s7 - 1: v$(4, 2) = q$: IF (i < 11) AND (j > 0) THEN v$(4, 2) = q$(i, j)
1495: 15070 n = n + 1: IF n = 3 THEN 15140
1496: 15080 j = s7 - 2: v$(4, 1) = q$: IF (i < 11) AND (j > 0) THEN v$(4, 1) = q$(i, j)
1497: 15090 j = s7 - 2: v$(3, 1) = q$: IF j > 0 THEN v$(3, 1) = q$(s6, j)
1498: 15100 j = s7 - 1: v$(3, 2) = q$: IF j > 0 THEN v$(3, 2) = q$(s6, j)
1499: 15110 n = n + 1: IF n = 3 THEN 15140
1500: 15120 i = s6 - 1: j = s7 - 2: v$(2, 1) = q$: IF (i > 0) AND (j > 0) THEN v$(2, 1) = q$(i, j)
1501: 15130 GOTO 14810
1502: 15140 FOR i = 1 TO 5
1503: 15150 IF (v$(i, 1) = " ") AND (v$(i, 3) = " ") AND (v$(i, 5) = " ") THEN 15180
1504: 15160 PRINT " ";
1505: 15170 FOR j = 1 TO 5: PRINT v$(i, j); " "; : NEXT j: PRINT
1506: 15180 NEXT i: RETURN
1507: 15190 REM  - WAIT
1508: 15200 j3 = 0: INPUT "HOW MANY STARDATES "; z5
1509: 15210 IF (z5 < r5) AND (k3 = 0) THEN 15230
1510: 15220 INPUT "ARE YOU SURE? "; b$: IF LEFT$(b$, 1) <> "Y" THEN RETURN
1511: 15230 r6 = 1
1512: 15240 IF z5 <= 0 THEN r6 = 0
1513: 15250 IF r6 = 0 THEN RETURN
1514: 15260 t1 = z5: z6 = z5
1515: 15270 IF k3 = 0 THEN 15300
1516: 15280 t1 = 1 + RND(1): IF z5 < t1 THEN t1 = z5
1517: 15290 z6 = t1
1518: 15300 IF t1 < z5 THEN GOSUB 1520
1519: 15310 IF a2 <> 0 THEN RETURN
1520: 15320 GOSUB 4760: j3 = 1: IF a2 <> 0 THEN RETURN
1521: 15330 z5 = z5 - z6: GOTO 15240
1522: 15340 REM :WARP
1523: 15350 j3 = 0: IF d4(6) <> 0 THEN 15820
1524: 15360 INPUT "ENTER COURSE AND DISTANCE "; d2, d1
1525: 15370 IF d2 < 0 THEN RETURN
1526: 15380 p = (d1 + .05) * w1 * w1 * w1 * (s4 + 1): IF p < e1 THEN 15500
1527: 15390 j3 = 0: PRINT : PRINT "ENGINEERING TO BRIDGE--"
1528: 15400 IF (s4 = 0) OR (.5 * p > e1) THEN 15430
1529: 15410 PRINT " WE HAVEN'T THE ENERGY TO GO THAT FAR WITH ";
1530: 15420 PRINT " THE SHIELDS UP.": RETURN
1531: 15430 w = INT((e1 / (d1 + .05)) ^ .333333): IF w <= 0 THEN 15480
1532: 15440 PRINT " WE HAVEN'T THE ENERGY. BUT WE COULD DO IT AT WARP "; w
1533: 15450 IF s4 <> 0 THEN 15470
1534: 15460 RETURN
1535: 15470 PRINT "  IF YOU'LL LOWER THE SHIELDS.": RETURN
1536: 15480 PRINT " WE CAN'T DO IT, CAPTAIN. WE HAVEN'T GOT THE ENERGY."
1537: 15490 RETURN
1538: 15500 t1 = 10 * d1 / w2: IF t1 < .8 * r5 THEN 15560
1539: 15510 PRINT : PRINT "MR. SPOCK - 'CAPTAIN, I COMPUTE THAT SUCH A TRIP"
1540: 15520 PRINT " WILL REQUIRE APPROXIMATELY "; fnr(100 * t1 / r5);
1541: 15530 PRINT "PERCENT": PRINT "  OF OUR REMAINING TIME. ARE YOU SURE ";
1542: 15540 INPUT "THIS IS WISE "; b$: IF LEFT$(b$, 1) = "Y" THEN 15560
1543: 15550 j3 = 0: RETURN
1544: 15560 q4 = 0: w = 0: IF w1 <= 6 THEN 15720
1545: 15570 p = d1 * (6 - w1) ^ 2 / 66.66666: IF p > RND(1) THEN q4 = 1
1546: 15580 IF q4 <> 0 THEN d1 = RND(1) * d1
1547: 15590 w = 0: IF w1 < 10 THEN 15610
1548: 15600 IF .25 * d1 > RND(1) THEN w = 1
1549: 15610 IF (q4 = 0) AND (w = 0) THEN 15720
1550: 15620 a = (15 - d2) * .5236: x1 = -SIN(a): x2 = COS(a)
1551: 15630 b8 = ABS(x1): IF ABS(x2) > ABS(x1) THEN b8 = ABS(x2)
1552: 15640 x1 = x1 / b8: y1 = y1 / b8: n = INT(10 * d1 * b8 + .5): x = s6: y = s7
1553: 15650 IF n = 0 THEN 15720
1554: 15660 FOR l = 1 TO n
1555: 15670 x = x + x1: q = INT(x + .5): IF (q < 1) OR (q > 10) THEN 15720
1556: 15680 y = y + y1: r = INT(y + .5): IF (r < 1) OR (r > 10) THEN 15720
1557: 15690 IF q$(q, r) = "." THEN 15710
1558: 15700 q4 = 0: w = 0
1559: 15710 NEXT l
1560: 15720 GOSUB 8000: IF a2 <> 0 THEN RETURN
1561: 15730 e1 = e1 - d1 * w1 * w1 * w1 * (s4 + 1): IF e1 > 0 THEN 15750
1562: 15740 f9 = 4: GOSUB 5940: RETURN
1563: 15750 t1 = 10 * d1 / w2: IF w <> 0 THEN GOSUB 14270
1564: 15760 IF q4 = 0 THEN 15810
1565: 15770 PRINT : PRINT "ENGINEERING TO BRIDGE--": PRINT "  SCOTT HERE- ";
1566: 15780 PRINT "'WE'VE JUST BLOWN THE WARP ENGINES."
1567: 15790 PRINT "  WE'LL HAVE TO SHUT 'ER DOWN HERE, CAPTAIN.'"
1568: 15800 d4(6) = d5 * (3 * RND(1) + 1)
1569: 15810 j3 = 1: RETURN
1570: 15820 PRINT "WARP ENGINES DAMAGED.": RETURN
1571: 15830 REM  - ABANDON
1572: 15840 ON SGN(d4(10)) + 2 GOTO 15850, 15870, 15860
1573: 15850 PRINT "YE FAERIE QUEENE HAS NO SHUTTLE CRAFT.": RETURN
1574: 15860 PRINT "SHUTTLE CRAFT DAMAGED.": RETURN
1575: 15870 PRINT : PRINT "***ABANDON SHIP! ABANDON SHIP!"
1576: 15880 PRINT "***ALL HANDS ABANDON SHIP!": PRINT
1577: 15890 PRINT "YOU AND THE BRIDGE CREW ESCAPE IN THE GALILEO."
1578: 15900 PRINT "THE REMAINDER OF THE CREW BEAMS DOWN"
1579: 15910 PRINT "TO THE NEAREST HABITABLE PLANET.": IF r3 <> 0 THEN 15930
1580: 15920 f9 = 9: GOSUB 5940: RETURN
1581: 15930 PRINT : PRINT "YOU ARE CAPTURED BY KLINGONS AND RELEASED TO "
1582: 15940 PRINT "THE FEDERATION IN A PRISONER-OF-WAR EXCHANGE."
1583: 15950 PRINT "STARFLEET PUTS YOU IN COMMAND OF ANOTHER SHIP,"
1584: 15960 PRINT "THE FAERIE QUEENE WHICH IS ANTIQUATED, BUT"
1585: 15970 PRINT "STILL USABLE.": n = INT(RND(1) * r3 + 1): q1 = b2(n): q2 = b3(n)
1586: 15980 s6 = 5: s7 = 5: GOSUB 9500: q$(s6, s7) = "."
1587: 15990 FOR l = 1 TO 3: s6 = INT(3 * RND(1) - 1 + b6)
1588: 16000 IF (s6 < 1) OR (s7 > 10) THEN 16030
1589: 16010 s7 = INT(3 * RND(1) - 1 + b7): IF (s7 < 1) OR (s7 > 10) THEN 16030
1590: 16020 IF q$(s6, s7) = "." THEN 16040
1591: 16030 NEXT l: GOTO 15980
1592: 16040 s5$ = "FAERIE QUEENE": q$(s6, s7) = LEFT$(s5$, 1): c5$ = "DOCKED"
1593: 16050 FOR l = 1 TO 12: d4(l) = 0: NEXT: d4(10) = -1: e1 = 3000: i7 = e1
1594: 16060 s3 = 1500: i8 = s3: t4 = 6: i9 = t4: l1 = 3: j1 = l1: s4 = 0: w1 = 5: w2 = 25
1595: 16070 RETURN
1596: 16080 REM  - DESTRUCT
1597: 16090 IF d4(11) = 0 THEN 16120
1598: 16100 PRINT "COMPUTER DAMAGED - CANNOT EXECUTE DESTRUCT SEQUENCE"
1599: 16110 RETURN
1600: 16120 PRINT : PRINT "  ---WORKING---"
1601: 16130 PRINT "IDENT IF ICATION-POSITIVE"
1602: 16140 PRINT "SELF-DESTRUCT-SEQUENCE-ACTIVATED": j = 3
1603: 16150 FOR i = 10 TO 6 STEP -1: PRINT spc$(j); i: GOSUB 16300: j = j + 3: NEXT
1604: 16160 PRINT "ENTER-YOUR-MISSION-PASSWORD-TO -CONTINUE"
1605: 16170 PRINT "SELF-DESTRUCT-SEQUENCE-OTHERWISE-DESTRUCT"
1606: 16180 PRINT "SEQUENCE-WILL-BE-ABORTED"
1607: 16190 INPUT b$: IF b$ <> x$ THEN 16280
1608: 16200 PRINT "PASSWORD-ACCEPTED": j = 10
1609: 16210 FOR i = 5 TO 1 STEP -1: PRINT spc$(j); i: GOSUB 16300: j = j + 3: NEXT
1610: 16220 PRINT : PRINT "*****ENTROPY OF "; s5$; " MAXIMIZED*****"
1611: 16230 PRINT : IF k3 = 0 THEN 16270
1612: 16240 w = 20 * e1: FOR l = 1 TO k3: IF k6(l) * k7(l) > w THEN 16260
1613: 16250 a5 = k4(l): a6 = k5(l): t2$ = q$(a5, a6): GOSUB 4220
1614: 16260 NEXT l
1615: 16270 f9 = 10: GOSUB 5940: RETURN
1616: 16280 PRINT "PASSWORD-REJECTED"
1617: 16290 PRINT "CONTINUITY-EFFECTED": PRINT : RETURN
1618: 16300 k = 12345: FOR m = 1 TO 90: k = k + 1: NEXT m: RETURN
1619: 16310 REM  - STATUS
1620: 16320 FOR i = 1 TO 10: GOTO 14060: RETURN
1621: 16330 END:REM BYE
1622: 16340 REM  rhn fixup
1623: 16350 DIM spc$(40)
1624: 16360 FOR j = 1 TO 40: spc$(j) = ""
1625: 16370 FOR i = 1 TO j: spc$(j) = spc$(j) + " ": NEXT i: NEXT j
1626: 16380 RETURN

Máte otázky, připomínky?