home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 058.lha / StarTrek < prev    next >
Encoding:
Text File  |  1986-11-20  |  21.5 KB  |  427 lines

  1. SCREEN 2,640,200,3,2
  2. WINDOW 1,"SUPER STAR TREK",(0,0)-(320,180),0,2
  3. 221  PRINT "                        ,------*------,"
  4. 222  PRINT "       ,-------------    '---  ------'"
  5. 223  PRINT "        '-------- --'       / /"
  6. 224  PRINT "            ,---' '--------/ /--,"
  7. 225  PRINT "             '----------------'": PRINT 
  8. 226  PRINT : PRINT : PRINT  TAB( 10);"THE USS ENTERPRIZE---NCC-1701"
  9. 260  CLEAR 
  10. 270 Z$ = "                          "
  11. 330  DIM G(8,8),C(9,2),K(3,3),N(3),Z(8,8),D(8)
  12. 370 T =  INT ( RND (1) * 20 + 20) * 100:T0 = T:T9 = 25 +  INT ( RND (1) * 10):D0 = 0:E = 3000:E0 = E
  13. 440 P = 10:P0 = P:S9 = 200:S = 0:B9 = 0:K9 = 0:X$ = "":X0$ = " IS "
  14. 470  DEF  FN D(D) =  SQR ((K(I,1) - S1) ^ 2 + (K(I,2) - S2) ^ 2)
  15. 475  DEF  FN R(R) =  INT ( RND (R) * 7.98 + 1.01)
  16. 490 Q1 =  FN R(1):Q2 =  FN R(1):S1 =  FN R(1):S2 =  FN R(1)
  17. 530  FOR I = 1 TO 9:C(I,1) = 0:C(I,2) = 0: NEXT I
  18. 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
  19. 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
  20. 670  FOR I = 1 TO 8:D(I) = 0: NEXT I
  21. 710 A1$ = "NAVSRSLRSPHATORSHEDAMCOMXXX"
  22. 820  FOR I = 1 TO 8: FOR J = 1 TO 8:K3 = 0:Z(I,J) = 0:R1 =  RND (1)
  23. 850  IF R1 > .98 THEN K3 = 3:K9 = K9 + 3: GOTO 980
  24. 860  IF R1 > .95 THEN K3 = 2:K9 = K9 + 2: GOTO 980
  25. 870  IF R1 > .8 THEN K3 = 1:K9 = K9 + 1
  26. 980 B3 = 0: IF  RND (1) > .96 THEN B3 = 1:B9 = B9 + 1
  27. 1040 G(I,J) = K3 * 100 + B3 * 10 +  FN R(1): NEXT J: NEXT I: IF K9 > T9 THEN T9 = K9 + 1
  28. 1100  IF B9 <  > 0 THEN 1200
  29. 1150  IF G(Q1,Q2) < 200 THEN G(Q1,Q2) = G(Q1,Q2) + 100:K9 = K9 + 1
  30. 1160 B9 = 1:G(Q1,Q2) = G(Q1,Q2) + 10:Q1 =  FN R(1):Q2 =  FN R(1)
  31. 1200 K7 = K9: IF B9 <  > 1 THEN X$ = "S":Z0$ = " ARE "
  32. 1215  CLS 
  33. 1220  INPUT "PLEASE TYPE YOUR NAME ";N$
  34. 1225  CLS
  35. 1226  PRINT "CAPTAIN ";N$;","
  36. 1230  PRINT "YOUR ORDERS ARE AS FOLLOWS:"
  37. 1240  PRINT "   DESTROY THE ";K9;" KLINGON WARSHIPS"
  38.       PRINT " WHICH HAVE INVADED THE GALAXY BEFORE"
  39.       PRINT "THEY CAN ATTACK FEDERATION HEADQUARTERS"
  40.       PRINT "ON STARDATE ";T0 + T9
  41. 1260  PRINT "THIS GIVES YOU ";T9;" DAYS. THERE ";X0$
  42. 1270  PRINT " ";B9;" STARBASE";X$;" IN THE GALAXY FOR "
  43.       PRINT "RESUPPLYING YOUR SHIP"
  44. 1280  PRINT : PRINT "HIT ANY KEY TO ACCEPT COMMAND ";
  45. 1300 I =  RND (1): I$=INPUT$(1): IF I = 13 THEN 1300
  46. 1320 Z4 = Q1:Z5 = Q2:K3 = 0:B3 = 0:S3 = 0:G5 = 0:D4 = .5 *  RND (1):Z(Q1,Q2) = G(Q1,Q2)
  47. 1390  IF Q1 < 1 OR Q1 > 8 OR Q2 < 1 OR Q2 > 8 THEN 1600
  48. 1430  GOSUB 9030: PRINT : IF T0 <  > T THEN 1490
  49. 1450  CLS 
  50. 1455  PRINT "CAPTAIN ";N$;","
  51. 1460  PRINT "YOUR MISSION BEGINS WITH YOUR STARSHIP"
  52. 1470  PRINT "LOCATED IN THE GALACTIC QUADRANT,       '";G2$;"'.": GOTO 1500
  53. 1490  PRINT "NOW ENTERING ";G2$;" QUADRANT. . ."
  54. 1500  PRINT :K3 =  INT (G(Q1,Q2) * .01):B3 =  INT (G(Q1,Q2) * .1) - 10 * K3
  55. 1540 S3 = G(Q1,Q2) - 100 * K3 - 10 * B3: IF K3 = 0 THEN 1590
  56. 1560  PRINT "COMBAT AREA    CONDITION ";
  57. 1562  COLOR 3,2 : PRINT " RED ": COLOR 1,0 : IF S > 200 THEN 1590
  58. 1580  PRINT "   SHIELDS DANGEROUSLY LOW"
  59. 1590  FOR I = 1 TO 3:K(I,1) = 0:K(I,2) = 0: NEXT I
  60. 1600  FOR I = 1 TO 3:K(I,3) = 0: NEXT I:Q$ = Z$ + Z$ + Z$ + Z$ + Z$ + Z$ + Z$ +  LEFT$ (Z$,17)
  61. 1680 A$ = "<*>":Z1 = S1:Z2 = S2: GOSUB 8670: IF K3 < 1 THEN 1820
  62. 1720  FOR I = 1 TO K3: GOSUB 8590:A$ = "+K+":Z1 = R1:Z2 = R2
  63. 1780  GOSUB 8670:K(I,1) = R1:K(I,2) = R2:K(I,3) = S9 * (.5 +  RND (1)): NEXT I
  64. 1820  IF B3 < 1 THEN 1910
  65. 1880  GOSUB 8590:A$ = ">!<":Z1 = R1:B4 = R1:Z2 = R2:B5 = R2: GOSUB 8670
  66. 1910  FOR I = 1 TO S3: GOSUB 8590:A$ = " * ":Z1 = R1:Z2 = R2: GOSUB 8670: NEXT I
  67. 1980  GOSUB 6430
  68. 1990  IF S +  + E > 10 THEN  IF E > 10 OR D(7) = 0 THEN 2050
  69. 2020  CLS : PRINT "** FATAL ERROR **  YOU'VE JUST STRANDED YOUR SHIP IN SPACE CAPTAIN ";N$;"."
  70. 2030  PRINT "YOU HAVE INSUFFICIENT MANEUVERING ENERGY"
  71. 2040  PRINT "AND SHIELD CONTROL IS PRESENTLY ": PRINT "INCAPABLE OF CROSS CIRCUITING TO ENGINE": PRINT "ROOM!!": GOTO 6220
  72. 2050  INPUT "COMMAND  ";A$
  73. 2065  CLS: LOCATE 5,1
  74. 2080  FOR I = 1 TO 9: IF  LEFT$ (A$,3) <  >  MID$ (A1$,3 * I - 2,3) THEN 2160
  75. 2140  ON I GOTO 2300,1980,4000,4260,4700,5530,5690,7290,6270
  76. 2160  NEXT I: PRINT "ENTER ONE OF THE FOLLOWING:"
  77. 2180  PRINT "  NAV  (TO SET COURSE)"
  78. 2190  PRINT "  SRS  (FOR SHORT RANGE SENSOR SCAN)"
  79. 2200  PRINT "  LRS  (FOR LONG RANGE SENSOR SCAN)"
  80. 2210  PRINT "  PHA  (TO FIRE PHASERS)"
  81. 2220  PRINT "  TOR  (TO FIRE PHOTON TORPEDOES)"
  82. 2230  PRINT "  SHE  (TO RAISE OR LOWER SHIELDS)"
  83. 2240  PRINT "  DAM  (FOR DAMAGE CONTROL REPORTS)"
  84. 2250  PRINT "  COM  (TO CALL ON LIBRARY-COMPUTER)"
  85. 2260  PRINT "  XXX  (TO RESIGN YOUR COMMAND)": PRINT : GOTO 1990
  86. 2300 CLS: PRINT  TAB( 9);"          3"
  87. 2301  PRINT  TAB( 9);"       4  |  2"
  88. 2302  PRINT  TAB( 9);"         \|/"
  89. 2303  PRINT  TAB( 9);"     5 ---|--- 1"
  90. 2304  PRINT  TAB( 9);"         /|\"
  91. 2305  PRINT  TAB( 9);"       6  |  8": PRINT 
  92. 2306  PRINT  TAB( 9);"          7"
  93. 2307  PRINT : PRINT  TAB( 9);"     C O U R S E"
  94. 2309  PRINT : INPUT "COURSE  (1-9)";C1: IF C1 = 9 THEN C1 = 1
  95. 2310  IF C1 >  = 1 AND C1 < 9 THEN 2350
  96. 2330  PRINT "LT. SULU REPORTS, 'INCORRECT COURSE DATA   SIR!'": GOTO 1990
  97. 2350 X$ = "8": IF D(1) < 0 THEN X$ = "0.2"
  98. 2360  PRINT "WARP FACTOR (0-";X$;")";: INPUT W1:CLS: IF D(1) < 0 AND W1 > .2 THEN 2470
  99. 2380  IF W1 > 0 AND W1 <  = 8 THEN 2490
  100. 2390  IF W1 = 0 THEN 1990
  101. 2420  PRINT "CHIEF ENGINEER SCOTT REPORTS 'THE": PRINT "ENGINES WON'T TAKE WARP ";W1;"!"
  102. 2430  GOTO 1990
  103. 2470  PRINT "WARP ENGINES ARE DAMAGED. MAXIMUM SPEED = WARP 0.2": GOTO 1990
  104. 2490 N =  INT (W1 * 8 + .5): IF E - N >  = 0 THEN 2590
  105. 2500  PRINT "ENGINEERING REPORTS 'INSUFFICIENT ENERGY AVAILABLE"
  106. 2510  PRINT "FOR MANEUVERING AT WARP ";W1;"!'"
  107. 2530  IF S < N - E OR D(7) < 0 THEN 1990
  108. 2550  PRINT "DEFLECTOR CONTROL ROOM ACKNOWLEGES ";S;" UNITS OF ENERGY"
  109. 2560  PRINT "PRESENTLY DEPLOYED TO SHIELDS."
  110. 2579  GOTO 1990
  111. 2590  FOR I = 1 TO K3: IF K(I,3) = 0 THEN 2700
  112. 2610 A$ = "   ":Z1 = K(I,1):Z2 = K(I,2): GOSUB 8670: GOSUB 8590
  113. 2660 K(I,1) = Z1:K(I,2) = Z2:A$ = "+K+": GOSUB 8670
  114. 2700  NEXT I: GOSUB 6000:D1 = 0:D6 = W1: IF W1 >  = 1 THEN D6 = 1
  115. 2770  FOR I = 1 TO 8: IF D(I) >  = 0 THEN 2880
  116. 2790 D(I) = D(I) + D6: IF D(I) >  - .1 AND D(I) < 0 THEN D(I) =  - .1: GOTO 2880
  117. 2800  IF D(I) < 0 THEN 2880
  118. 2810  IF D1 <  > 1 THEN D1 = 1: PRINT "DAMAGE CONTROL REPORT:"
  119. 2840  PRINT  TAB( 8);:R1 = I: GOSUB 8790: PRINT G2$;" REPAIR COMPLETED."
  120. 2880  NEXT I: IF  RND (1) > .2 THEN 3070
  121. 2910 R1 =  FN R(1): IF  RND (1) >  = .6 THEN 3000
  122. 2930 D(R1) = D(R1) - ( RND (1) * 5 + 1): PRINT "DAMAGE CONTROL REPORT:"
  123. 2960  GOSUB 8790: PRINT G2$;" DAMAGED": PRINT : GOTO 3070
  124. 3000 D(R1) = D(R1) +  RND (1) * 3 + 1: PRINT "DAMAGE CONTROL REPORT:"
  125. 3030  GOSUB 8790: PRINT G2$;" STATE OF REPAIR IMPROVED": PRINT 
  126. 3070 A$ = "   ":Z1 =  INT (S1):Z2 =  INT (S2): GOSUB 8670
  127. 3110 X1 = C(C1,1) + (C(C1 + 1,1) - C(C1,1)) * (C1 -  INT (C1)):X = S1:Y = S2
  128. 3140 X2 = C(C1,2) + (C(C1 + 1,2) - C(C1,2)) * (C1 -  INT (C1)):Q4 = Q1:Q5 = Q2
  129. 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
  130. 3240 S8 =  INT (S1) * 24 +  INT (S2) * 3 - 26: IF  MID$ (C$,S8,2) = "" THEN 3360
  131. 3320 S1 =  INT (S1 - X1):S2 =  INT (S2 - X2): PRINT "WARP ENGINES SHUT DOWN AT ";
  132. 3350  PRINT "SECTOR ";S1;",";S2;"DUE TO BAD NAVIGATION": FOR I = 1 TO 2000: NEXT I:CLS: GOTO 3370
  133. 3360  NEXT I:S1 =  INT (S1):S2 =  INT (S2)
  134. 3370 A$ = "<*>":Z1 =  INT (S1):Z2 =  INT (S2): GOSUB 8670: GOSUB 3910:T8 = 1
  135. 3430  IF W1 < 1 THEN T8 = .1 *  INT (10 * W1)
  136. 3450 T = T + T8: IF T > T0 + T9 THEN 6220
  137. 3480  GOTO 1980
  138. 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)
  139. 3550 S2 =  INT (Y - Q2 * 8): IF S1 = 0 THEN Q1 = Q1 - 1:S1 = 8
  140. 3590  IF S2 = 0 THEN Q2 = Q2 - 1:S2 = 8
  141. 3620 X5 = 0: IF Q1 < 1 THEN X5 = 1:Q1 = 1:S1 = 1
  142. 3670  IF Q1 > 8 THEN X5 = 1:Q1 = 8:S1 = 8
  143. 3710  IF Q2 < 1 THEN X5 = 1:Q2 = 1:S2 = 1
  144. 3750  IF Q2 > 8 THEN X5 = 1:Q2 = 8:S2 = 8
  145. 3790  IF X5 = 0 THEN 3860
  146. 3800  PRINT "LT. UHURA REPORTS MESSAGE FROM STARFLEET COMMAND:"
  147. 3810  PRINT "'PERMISSION TO ATTEMPT CROSSING OF": PRINT "GALACTIC PERIMETER IS HEREBY *DENIED*": PRINT "CAPTAIN ";N$;"."
  148. 3820  PRINT "SHUT DOWN YOUR ENGINES'."
  149. 3825  FOR I = 1 TO 4000: NEXT I
  150. 3830  PRINT "CHIEF ENGINEER SCOTT REPORTS  'WARP     ENGINES SHUT DOWN AT SECTOR ";S1;",";S2: PRINT "OF QUADRANT ";Q1;",";Q2;"'
  151. 3850  IF T > T0 + T9 THEN 6220
  152. 3860  IF 8 * Q1 + Q2 = 8 * Q4 + Q5 THEN 3370
  153. 3870 T = T + 1: GOSUB 3910: GOTO 1320
  154. 3910 E = E - N - 10: IF E >  = 0 THEN  RETURN 
  155. 3930  PRINT "SHIELD CONTROL SUPPLIES ENERGY TO": PRINT "COMPLETE THE MANEUVER."
  156. 3940 S = S + E:E = 0: IF S <  = 0 THEN S = 0
  157. 3980  RETURN 
  158. 4000  IF D(3) < 0 THEN  PRINT "LONG RANGE SENSORS ARE INOPERABLE": GOTO 1990
  159. 4030 WINDOW 4,"LONG RANGE SCAN"+STR$(Q1)+","+STR$(Q2),(450,145)-(620,180),0,2
  160. COLOR 4,2
  161. CLS
  162. 4060  FOR I = Q1 - 1 TO Q1 + 1
  163.  N(1) =  - 1:N(2) =  - 2:N(3) =  - 3
  164.  FOR J = Q2 - 1 TO Q2 + 1
  165. 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)
  166. 4180  NEXT J
  167.  FOR L = 1 TO 3: IF N(L) < 0 THEN  PRINT "+++ ";: GOTO 4230
  168.  IF L = 1 THEN PRINT "    ";
  169.  IF N(L)>99 THEN COLOR 3,2  ELSE COLOR 4,2
  170. 4210  PRINT  RIGHT$ ( STR$ (N(L) + 1000),3);" ";
  171. 4230  NEXT L
  172.  PRINT
  173.  NEXT I
  174.  WINDOW 1,"SUPER STAR TREK",(0,0)-(320,180),0,2
  175.  GOTO 1990
  176. 4260  IF D(4) < 0 THEN  PRINT "PHASERS INOPERATIVE": GOTO 1990
  177. 4265  IF K3 > 0 THEN 4330
  178. 4270  PRINT "SCIENCE OFFICER SPOCK REPORTS  SENSORS  SHOW NO ENEMY SHIPS IN THIS QUADRANT": GOTO 1990
  179. 4330  IF D(8) < 0 THEN  PRINT "COMPUTER FAILURE HAMPERS ACCURACY"
  180. 4350  PRINT "PHASERS LOCKED ON TARGET;"
  181. 4360  PRINT "ENERGY AVAILABLE = ";E;" UNITS"
  182. 4370  INPUT "NUMBER OF UNITS TO FIRE";X: IF X <  = 0 THEN 1990
  183. 4400  IF E - X < 0 THEN 4360
  184. 4410 E = E - X: IF D(7) < 0 THEN X = X *  RND (1)
  185. 4450 H1 =  INT (X / K3): FOR I = 1 TO 3: IF K(I,3) <  = 0 THEN 4670
  186. 4480 H =  INT ((H1 /  FN D(0)) * ( RND (1) + 2)): IF H > .15 * K(I,3) THEN 4530
  187. 4500  PRINT "SENSORS SHOW NO DAMAGE TO ENEMY AT     ";K(I,1);",";K(I,2): GOTO 4670
  188. 4530 K(I,3) = K(I,3) - H: PRINT H;" UNIT HIT ON KLINGON AT SECTOR ";K(I,1);",";K(I,2)
  189. 4550  IF K(I,3) <  = 0 THEN  PRINT "*** KLINGON DESTROYED ***": GOTO 4580
  190. 4560  PRINT "SENSORS SHOW ";K(I,3);" UNITS REMAINING": GOTO 4670
  191. 4580 K3 = K3 - 1:K9 = K9 - 1:Z1 = K(I,1):Z2 = K(I,2):A$ = "   ": GOSUB 8670
  192. 4650 K(I,3) = 0:G(Q1,Q2) = G(Q1,Q2) - 100:Z(Q1,Q2) = G(Q1,Q2): IF K9 <  = 0 THEN 6370
  193. 4670  NEXT I: GOSUB 6000: GOTO 1990
  194. 4700  IF P <  - 0 THEN  PRINT "ALL PHOTON TORPEDOES EXPENDED": GOTO 1990
  195. 4730  IF D(5) < 0 THEN  PRINT "PHOTON TUBES ARE NOT OPERATIONAL": GOTO 1990
  196. 4760  INPUT "PHOTON TORPEDO COURSE (1-9)";C1: IF C1 = 9 THEN C1 = 1
  197. 4780  IF C1 >  = 1 AND C1 < 9 THEN 4850
  198. 4790  PRINT "ENSIGN CHEKOV REPORTS, 'INCORRECT COURSE DATA, SIR!"
  199. 4800  GOTO 1990
  200. 4850 X1 = C(C1,1) + (C(C1 + 1,1) - C(C1,1)) * (C1 -  INT (C1)):E = E - 2:P = P - 1
  201. 4860 X2 = C(C1,2) + (C(C1 + 1,2) - C(C1,2)) * (C1 -  INT (C1)):X = S1:Y = S2
  202. 4910  PRINT "TORPEDO TRACK:"
  203. 4920 X = X + X1:Y = Y + X2:X3 =  INT (X + .5):Y3 =  INT (Y + .5)
  204. 4960  IF X3 < 1 OR X3 > 8 OR Y3 < 1 OR Y3 > 8 THEN 5490
  205. 5000  PRINT "                ";X3;",";Y3:A$ = "   ":Z1 = X:Z2 = Y: GOSUB 8830
  206. 5050  IF Z3 <  > 0 THEN 4920
  207. 5060 A$ = "+K+":Z1 = X:Z2 = Y: GOSUB 8830: IF Z3 = 0 THEN 5210
  208. 5110  PRINT "*** KLINGON DESTROYED ***":K3 = K3 - 1:K9 = K9 - 1: IF K9 <  = 0 THEN 6370
  209. 5150  FOR I = 1 TO 3: IF X3 = K(I,1) AND Y3 = K(I,2) THEN 5190
  210. 5180  NEXT I:I = 3
  211. 5190 K(I,3) = 0: GOTO 5430
  212. 5210 A$ = " * ":Z1 = X:Z2 = Y: GOSUB 8830: IF Z3 = 0 THEN 5280
  213. 5260  PRINT "STAR AT ";X3;",";Y3;" ABSORBED TORPEDO  ENERGY.": GOSUB 6000: GOTO 1990
  214. 5280 A$ = ">!<":Z1 = X:Z2 = Y: GOSUB 8830: IF Z3 = 0 THEN 4760
  215. 5330  PRINT "*** STARBASE DESTROYED ***":B3 = B3 - 1:B9 = B9 - 1
  216. 5360  IF B9 = 0 OR K9 > T - T0 - T9 THEN 5400
  217. 5370  PRINT "THAT DOES IT, CAPTAIN ";N$;"! YOU ARE HERE BY RELIEVED OF COMMAND "
  218. 5380  PRINT "AND SENTENCED TO 99 STARDATES AT HARD   LABOR ON CYGNUS 12 "
  219. 5390  GOTO 6270
  220. 5400  PRINT "STARFLEET COMMAND REVIEWING YOUR RECORD TO CONSIDER COURT MARTIAL!":D0 = 0
  221. 5430 Z1 = X:Z2 = Y:A$ = "   ": GOSUB 8670
  222. 5470 G(Q1,Q2) = K3 * 100 + B3 * 10 + S3:Z(Q1,Q2) = G(Q1,Q2): GOSUB 6000: GOTO 1990
  223. 5490  PRINT "TORPEDO MISSED": GOSUB 6000: GOTO 1990
  224. 5530  IF D(7) < 0 THEN  PRINT "SHIELD CONTROL INOPERABLE": GOTO 1990
  225. 5560  PRINT "ENERGY AVAILABLE = ";E + S: INPUT "NUMBER OF UNITS TO SHIELDS  ";X
  226. 5580  IF X < 0 OR S = X THEN  PRINT "<SHIELDS UNCHANGED>": GOTO 1990
  227. 5590  IF X <  = E + S THEN 5630
  228. 5600  PRINT "SHIELD CONTROL REPORTS 'THIS IS NOT THE FEDERATION TREASURY.'"
  229. 5610  PRINT "<SHIELDS UNCHANGED>": GOTO 1990
  230. 5630 E = E + S - X:S = X: PRINT "DEFLECTOR CONTROL ROOM REPORT:"
  231. 5660  PRINT "SHIELDS NOW AT "; INT (S);" UNITS": PRINT "PER YOUR ORDER.": GOTO 1990
  232. 5690  IF D(6) >  = 0 THEN 5910
  233. 5700  PRINT "DAMAGE CONTROL REPORT NOT AVAILABLE": IF D0 = 0 THEN 1990
  234. 5720 D3 = 0: FOR I = 1 TO 8: IF D(I) < 0 THEN D3 = D3 + .1
  235. 5760  NEXT I: IF D3 = 0 THEN 1990
  236. 5780  PRINT :D3 = D3 + D4: IF D3 >  = 1 THEN D3 = .9
  237. 5810  PRINT "TECHNICIANS STANDING BY TO EFFECT": PRINT "REPAIRS TO YOUR SHIP;"
  238. 5820  PRINT "ESTIMATED TIME TO REPAIR: ";.01 *  INT (100 * D3);" STARDATES"
  239. 5840  PRINT "WILL YOU AUTHORIZE THE REPAIR ORDER": PRINT "CAPTAIN ";N$;"?";: PRINT "(Y/N)": INPUT A$
  240. 5860  IF A$ <  > "Y" THEN 1990
  241. 5870  FOR I = 1 TO 8: IF D(I) < 0 THEN D(I) = 0
  242. 5890  NEXT I:T = T + D3 + .1
  243. 5910  CLS: PRINT "DEVICE             STATE OF REPAIR": FOR R1 = 1 TO 8
  244. 5912  PRINT "------------------------------------"
  245. 5920  GOSUB 8790: PRINT G2$; LEFT$ (Z$,25 -  LEN (G2$)); INT (D(R1) * 100) * .01
  246. 5950  NEXT R1: PRINT : IF D0 <  > 0 THEN 5720
  247. 5980  GOTO 1990
  248. 6000  IF K3 <  - 0 THEN  RETURN 
  249. 6010  IF D0 <  > 0 THEN  PRINT "STARBASE SHIELDS PROTECT THE ENTERPRIZE": RETURN 
  250. 6040  FOR I = 1 TO 3: IF K(I,3) <  = 0 THEN 6200
  251. 6060 H =  INT ((K(I,3) /  FN D(1)) * (2 +  RND (1))):S = S - H:K(I,3) = K(I,3) / (3 +  RND (0))
  252. 6080  PRINT H;" UNIT HIT ON ENTERPRIZE FROM SECTOR    ";K(I,1);",";K(I,2)
  253. 6090  IF S <  = 0 THEN 6240
  254. 6100  PRINT " <SHIELDS DOWN TO ";S;" UNITS>": IF H < 20 THEN 6200
  255. 6120  IF  RND (1) > .6 OR H / S <  = .02 THEN 6200
  256. 6140 R1 =  FN R(1):D(R1) = D(R1) - H / S - .5 *  RND (1): GOSUB 8790
  257. 6170  PRINT "DAMAGE CONTROL REPORTS '";G2$;" DAMAGED BY THE HIT'"
  258. 6200  NEXT I: RETURN 
  259. 6220  PRINT "IT IS STARDATE ";T: GOTO 6270
  260. 6240  PRINT : PRINT "THE ENTERPRIZE HAS BEEN DESTROYED.": PRINT "THE FEDERATION WILL BE CONQUERED": PRINT "AND ITS ALL YOUR FAULT DUMMY": GOTO 6220
  261. 6250  GOTO 6220
  262. 6270  PRINT "THERE WERE ";K9;" KLINGON BATTLE": PRINT "CRUISERS LEFT AT THE END OF YOUR MISSION"
  263. PRINT "END OF PROGRAM"
  264. END
  265. 6370  PRINT "CONGRATULATIONS, CAPTAIN ";N$;"!": PRINT "THE LAST KLINGON BATTLE CRUISER MENACING"
  266. 6380  PRINT "THE FEDERATION HAS BEEN DESTROYED.": PRINT 
  267. 6400  PRINT "YOUR EFFICIENCY RATING IS ";1000 * (K7 / (T - T0)) ^ 2: GOTO 6290
  268. 6430  FOR I = S1 - 1 TO S1 + 1: FOR J = S2 - 1 TO S2 + 1
  269. 6450  IF  INT (I + .5) < 1 OR  INT (I + .5) > 8 OR  INT (J + .5) < 1 OR  INT (J + .5) > 8 THEN 6540
  270. 6490 A$ = ">!<":Z1 = I:Z2 = J: GOSUB 8830: IF Z3 = 1 THEN 6580
  271. 6540  NEXT J: NEXT I:D0 = 0: GOTO 6650
  272. 6580 D0 = 1:C$ = "DOCKED":E = E0:P = P0
  273. 6620  PRINT "SHIELDS DROPPED FOR DOCKING PURPOSES":S = 0: GOTO 6720
  274. 6650  IF K3 > 0 THEN C$ = "*RED*": GOTO 6720
  275. 6660 C$ = "GREEN": IF E < E0 * .1 THEN C$ = "YELLOW"
  276. 6720  IF D(2) >  = 0 THEN 6770
  277. 6730  PRINT : PRINT "*** SHORT RANGE SENSORS ARE OUT ***": PRINT : RETURN 
  278. 6770 O1$ = " --- --- --- --- --- --- --- ---"
  279.  WINDOW 2,"SHORT RANGE SENSOR SCAN",(370,0)-(630,75),0,2
  280.  FOR I = 1 TO 8
  281. 6819  COLOR 3,2
  282. 6820  FOR J = (I - 1) * 24 + 1 TO (I - 1) * 24 + 22 STEP 3: PRINT " "; MID$ (Q$,J,3);: NEXT J
  283. 7240  PRINT 
  284. 7260  NEXT I: COLOR 1,0 
  285.  WINDOW 3,"SYSTEMS",(370,75)-(630,140),0,2
  286.  IF C$="*RED*" THEN COLOR 3
  287.  IF C$="GREEN" THEN COLOR 6
  288. 7262  PRINT "STARDATE                 "; INT (T * 10) * .1
  289. 7266  PRINT "QUADRANT                 ";Q1;",";Q2
  290. 7268  PRINT "SECTOR                   ";S1;",";S2
  291. 7270  PRINT "PHOTON TORPEDOES         "; INT (P)
  292. 7272  PRINT "TOTAL ENERGY             "; INT (E + S)
  293. 7274  PRINT "SHIELDS                  "; INT (S)
  294. 7276  PRINT "KLINGONS REMAINING       "; INT (K9)
  295.  WINDOW 1,"SUPER STAR TREK",(0,0)-(320,180),0,2
  296.  COLOR 1,0
  297. 7278  RETURN 
  298. 7290  IF D(8) < 0 THEN  PRINT "COMPUTER DISABLED": GOTO 1990
  299. 7320  INPUT "COMPUTER ACTIVE AND AWAITING COMMAND";A: IF A < 0 THEN 1990
  300. 7325  CLS 
  301. 7350  PRINT :H8 = 1: ON A + 1 GOTO 7540,7900,8070,8500,8150,7400
  302. 7360  PRINT "FUNCTIONS AVAILABLE FROM COMPUTER:"
  303. 7370  PRINT "  0 = CUMULATIVE GALACTIC RECORD"
  304. 7372  PRINT "  1 = STATUS REPORT"
  305. 7374  PRINT "  2 = PHOTON TORPEDO DATA"
  306. 7376  PRINT "  3 = STARBASE NAV DATA"
  307. 7378  PRINT "  4 = DIRECTION/DISTANCE CALCULATOR"
  308. 7380  PRINT "  5 = GALAXY 'REGION NAME' MAP": PRINT:COLOR 1,0: GOTO 7320
  309. 7400 H8 = 0:G5 = 1: PRINT "               THE GALAXY": GOTO 9290
  310. 7540  PRINT 
  311. 7543  PRINT : PRINT 
  312. 7544  PRINT "COMPUTER RECORD OF GALAXY FOR QUADRANT": PRINT : PRINT  TAB( 17);Q1;",";Q2
  313. 7546  PRINT 
  314. 7550  PRINT "   1    2    3    4    5    6    7    8"
  315. 7560 O1$ = "  ---  ---  ---  ---  ---  ---  ---  --"
  316. 7570  PRINT O1$: FOR I = 1 TO 8: IF H8 = 0 THEN 7740
  317. 7625  FOR J = 1 TO 8
  318. 7630  PRINT "  ";: IF Z(I,J) = 0 THEN  PRINT "+++";: GOTO 7720
  319. 7700  PRINT  RIGHT$ ( STR$ (Z(I,J) + 1000),3);
  320. 7720  NEXT J: GOTO 7850
  321. 7740 Z4 = I:Z5 = I: GOSUB 9030:J0 =  INT (10 - .5 *  LEN (G2$)): PRINT  TAB( J0);G2$;
  322. 7800 Z5 = 5: GOSUB 9030:J0 =  INT (35 - .5 *  LEN (G2$)): PRINT  TAB( J0);G2$;
  323. 7850  PRINT : PRINT O1$: NEXT I: GOTO 1990
  324. 7900  PRINT "   STATUS REPORT:":X$ = "": IF K9 > 1 THEN X$ = "S"
  325. 7940  PRINT "KLINGON";X$;" LEFT: ";K9
  326. 7960  PRINT "MISSION MUST BE COMPLETED IN ";.1 *  INT ((T0 + T9 - T) * 10): PRINT "STARDATES"
  327. 7965  FOR I = 1 TO 4000: NEXT I
  328. 7970 X$ = "S": IF B9 < 2 THEN X$ = "": IF B9 < 1 THEN 8010
  329. 7980  PRINT "THE FEDERATION IS MAINTAINING ";B9: PRINT "STARBASE";X$;" IN THE GALAXY"
  330. 7985  FOR I = 1 TO 4000: NEXT I: HOME 
  331. 7990  GOTO 5690
  332. 8010  PRINT "YOUR STUPIDITY HAS LEFT YOU ON YOUR OWN IN THE GALAXY---": FOR I = 1 TO 4000: NEXT I
  333. 8020  PRINT "YOU HAVE NO STARBASES LEFT!": FOR I = 1 TO 4000: NEXT I: GOTO 5690
  334. 8070  IF K3 <  = 0 THEN 4270
  335. 8080 X$ = "": IF K3 > 1 THEN X$ = "S"
  336. 8090  PRINT "FROM ENTERPRIZE TO KLINGON BATTLE": PRINT "CRUISER";X$
  337. 8100 H8 = 0: FOR I = 1 TO 3: IF K(I,3) <  = 0 THEN 8480
  338. 8110 W1 = K(I,1):X = K(I,2)
  339. 8120 C1 = S1:A = S2: GOTO 8220
  340. 8150  PRINT "DIRECTION/DISTANCE CALCULATER"
  341. 8160  PRINT "YOU ARE AT QUADRANT ";Q1;",";Q2;" SECTOR ";S1;",";S2
  342. 8170  PRINT "PLEASE ENTER": INPUT " INITIAL COORDINATES (X,Y)";C1,A
  343. 8200  INPUT " FINAL COORDINATES (X,Y)";W1,X
  344. 8220 X = X - A:A = C1 - W1: IF X < 0 THEN 8350
  345. 8250  IF A < 0 THEN 8410
  346. 8260  IF X > 0 THEN 8280
  347. 8270  IF A = 0 THEN C1 = 5: GOTO 8290
  348. 8280 C1 = 1
  349. 8290  IF  ABS (A) <  =  ABS (X) THEN 8330
  350. 8310  PRINT "DIRECTION = ";C1 + ((( ABS (A) -  ABS (X)) +  ABS (A)) /  ABS (A)): GOTO 8460
  351. 8330  PRINT "DIRECTION = ";C1 + ( ABS (A) /  ABS (X)): GOTO 8460
  352. 8350  IF A > 0 THEN C1 = 3: GOTO 8420
  353. 8360  IF X <  > 0 THEN C1 = 5: GOTO 8290
  354. 8410 C1 = 7
  355. 8420  IF  ABS (A) >  =  ABS (X) THEN 8450
  356. 8430  PRINT "DIRECTION = ";C1 + ((( ABS (X) -  ABS (A)) +  ABS (X)) /  ABS (X)): GOTO 8460
  357. 8450  PRINT "DIRECTION = ";C1 + ( ABS (X) /  ABS (A))
  358. 8460  PRINT "DISTANCE = "; SQR (X ^ 2 + A ^ 2): IF H8 = 1 THEN 1990
  359. 8480  NEXT I: GOTO 1990
  360. 8500  IF B3 <  > 0 THEN  PRINT "FROM ENTERPRIZE TO STARBASE:"W1 = B4:X = B5: GOTO 8120
  361. 8510  PRINT "MR. SPOCK REPORTS, 'SENSORS SHOW NO": PRINT "STARBASES IN THIS QUADRANT.": GOTO 1990
  362. 8590 R1 =  FN R(1):R2 =  FN R(1):A$ = "   ":Z1 = R1:Z2 = R2: GOSUB 8830: IF Z3 = 0 THEN 8590
  363. 8600  RETURN 
  364. 8670 S8 =  INT (Z2 - .5) * 3 +  INT (Z1 - .5) * 24 + 1
  365. 8675  IF  LEN (A$) <  > 3 THEN  PRINT "ERROR": STOP 
  366. 8680  IF S8 = 1 THEN Q$ = A$ +  RIGHT$ (Q$,189): RETURN 
  367. 8690  IF S8 = 190 THEN Q$ =  LEFT$ (Q$,189) + A$: RETURN 
  368. 8700 Q$ =  LEFT$ (Q$,S8 - 1) + A$ +  RIGHT$ (Q$,190 - S8): RETURN 
  369. 8789  COLOR 2,3 
  370. 8790  ON R1 GOTO 8792,8794,8796,8798,8800,8802,8804,8806
  371. 8792 G2$ = "WARP ENGINES": RETURN 
  372. 8794 G2$ = "SHORT RANGE SENSORS": RETURN 
  373. 8796 G2$ = "LONG RANGE SENSORS": RETURN 
  374. 8798 G2$ = "PHASER CONTROL": RETURN 
  375. 8800 G2$ = "PHOTON TUBES": RETURN 
  376. 8802 G2$ = "DAMAGE CONTROL": RETURN 
  377. 8804 G2$ = "SHIELD CONTROL": RETURN 
  378. 8806 G2$ = "LIBRARY-COMPUTER": RETURN 
  379. 8830 Z1 =  INT (Z1 + .5):Z2 =  INT (Z2 + .5):S8 = (Z2 - 1) * 3 + (Z1 - 1) * 24 + 1:Z3 = 0
  380. 8890  IF  MID$ (Q$,S8,3) <  > A$ THEN  RETURN 
  381. 8900 Z3 = 1: RETURN 
  382. 9030  IF Z5 <  = 4 THEN  ON Z GOTO 9040,9050,9060,9070,9080,9090,9100,9110
  383. 9035  GOTO 9120
  384. 9040 G2$ = "ANTARES": GOTO 9210
  385. 9050 G2$ = "RIGEL": GOTO 9210
  386. 9060 G2$ = "PROCYON": GOTO 9210
  387. 9070 G2$ = "VEGA": GOTO 9210
  388. 9080 G2$ = "CANOPUS": GOTO 9210
  389. 9090 G2$ = "ALTAIR": GOTO 9210
  390. 9100 G2$ = "SAGITTARIUS": GOTO 9210
  391. 9110 G2$ = "POLLUX": GOTO 9210
  392. 9120  ON Z4 GOTO 9130,9140,9150,9160,9170,9180,9190,9200
  393. 9130 G2$ = "SIRIUS": GOTO 9210
  394. 9140 G2$ = "DENEB": GOTO 9210
  395. 9150 G2$ = "CAPELLA": GOTO 9210
  396. 9160 G2$ = "BETELGEUSE": GOTO 9210
  397. 9170 G2$ = "ALDEBARAN": GOTO 9210
  398. 9180 G2$ = "REGULUS": GOTO 9210
  399. 9190 G2$ = "ARCTURUS": GOTO 9210
  400. 9200 G2$ = "SPICA"
  401. 9210  IF G5 <  > 1 THEN  ON Z5 GOTO 9230,9240,9250,9260,9230,9240,9250,9260
  402. 9220  RETURN 
  403. 9230 G2$ = G2$ + " I": RETURN 
  404. 9240 G2$ = G2$ + " II": RETURN 
  405. 9250 G2$ = G2$ + " III": RETURN 
  406. 9260 G2$ = G2$ + " IV": RETURN 
  407. 9290  PRINT "   1    2    3    4    5    6    7    8"
  408. 9300  PRINT "---- ---- ---- ---- ---- ---- ---- ----"
  409. 9310  PRINT "1      ANTARES             SIRIUS"
  410. 9315  PRINT "---- ---- ---- ---- ---- ---- ---- ----"
  411. 9320  PRINT "2       RIGEL               DENEB"
  412. 9325  PRINT "---- ---- ---- ---- ---- ---- ---- ----"
  413. 9330  PRINT "3      PROCYON            CAPELLA"
  414. 9335  PRINT "---- ---- ---- ---- ---- ---- ---- ----"
  415. 9340  PRINT "4       VEGA             BETELGEUSE"
  416. 9350  PRINT "---- ---- ---- ---- ---- ---- ---- ----"
  417. 9355  PRINT "5     CANOPUS            ALDEBARAN"
  418. 9360  PRINT "---- ---- ---- ---- ---- ---- ---- ----"
  419. 9365  PRINT "6      ALTAIR             REGULUS"
  420. 9370  PRINT "---- ---- ---- ---- ---- ---- ---- ----"
  421. 9375  PRINT "7   SAGITTARIUS           ARCTURUS     "
  422. 9380  PRINT "---- ---- ---- ---- ---- ---- ---- ----"
  423. 9385  PRINT "8     POLLUX               SPICA       "
  424. 9390  PRINT "---- ---- ---- ---- ---- ---- ---- ----"
  425. 9400  GOTO 1990
  426.  
  427.