home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG022.ARK / STARTREK.TXT < prev    next >
Text File  |  1984-04-29  |  54KB  |  1,614 lines

  1. 1 REM   *** SUPER STAR TREK ***
  2. 2 REM     INTELLEC MDS VERSION
  3. 3 REM WRITTEN IN BASIC BY RON WILLIAMS
  4. 4 REM      INTEL CORP. - 5/15/76
  5. 5 REM ADAPTED FROM A FORTRAN VERSION WRITTEN
  6. 6 REM    FOR THE CDC 6600 IN 1974.
  7. 7 DIM G1$(16),V$(5,5),C$(20),G(8,8),D$(12),Q$(10,10),D4(12),D9(106)
  8. 10 DIM S2(8,8):Q$="?"
  9. 15 DATA S.R. SENSORS,L.R. SENSORS,PHASERS,PHOTON TUBES,LIFE SUPPORT
  10. 20 DATA WARP ENGINES,IMPULSE ENGINES,SHIELDS,SUBSPACE RADIO
  11. 21 DATA SHUTTLE CRAFT,COMPUTER,TRANSFER PANEL,ABANDON,CHART,COMPUTER
  12. 22 DATA DAMAGES,DESTRUCT,DOCK,IDLE,IMPULSE,LRSCAN,NAVIGATE,PHASERS,QUIT
  13. 23 DATA SHIELDS,SOS,SRSCAN,STATUS,TORPEDO,TRANSFER,VISUAL,WARP,SHORT
  14. 24 DATA MEDIUM,LONG,BEGINNER,NOVICE,SENIOR,EXPERT,COURSE,WCOST,ICOST
  15. 25 DATA PEFFECT,SCORE,END,ANTARES,SIRIUS,RIGEL,MERAK,PROCYON,CAPELLA
  16. 26 DATA VEGA,DENEB,CANOPUS,ALDEBARAN,ALTAIR,REGULUS,BELLATRIX,ARCTURUS
  17. 27 DATA POLLUX,SPICA,10.5,12,1.5,9,0,3,7.5,6,4.5
  18. 28 DEF FNA(X)=INT(8*RND(X))+1:DEF FNB(X)=INT(10*RND(X))+1
  19. 29 DEF FND(X)=X/60
  20. 30 DEFFNR(X)=INT(X*10+.5)/10:DEFFNS(X)=INT(X*100+.5)/100
  21. 40 FORI=1TO12:READD$(I):NEXT:FORI=1TO20:READC$(I):NEXT
  22. 43 FORI=1TO3:READT$(I):NEXT:FORI=1TO4:READS$(I):NEXT:FORI=1TO6
  23. 44 READC2$(I):NEXT:FORI=1TO16:READG1$(I):NEXT:FORI=1TO9:READC5(I):NEXT
  24. 45 REM CALL SETUP
  25. 46 GOSUB24000:S7$(1)="":S7$(2)="  ":S7$(3)=" ":S7$(4)=""
  26. 70 IFA2<>0THEN900
  27. 75 J4=0:T1=0:PRINT:INPUT"COMMAND";A$:IFLEN(A$)>1THEN110
  28. 80 PRINT"USE AT LEAST 2 LETTERS, PLEASE.":GOTO75
  29. 110 FORI=1TO20
  30. 120 IFA$=LEFT$(C$(I),LEN(A$))THEN150
  31. 130 NEXT
  32. 135 INPUT"ILLEGAL COMMAND - DO YOU NEED A LIST";B$
  33. 136 IFLEFT$(B$,1)="N" THEN70
  34. 140 PRINT:FORI=1TO20STEP4
  35. 141 PRINTC$(I);TAB(12);C$(I+1);TAB(22);C$(I+2);TAB(32);C$(I+3)
  36. 142 NEXT:PRINT:GOTO70
  37. 150 ONIGOTO200,225,250,275,290,300,325,350,375,400
  38. 160 ONI-10GOTO425,450,475,500,525,540,550,575,600,625
  39. 170 PRINT"ERROR AT 170 - SHOULD NOT BE HERE"
  40. 180 STOP
  41. 200 REM-ABANDON
  42. 201 GOSUB 35000
  43. 210 GOTO70
  44. 225 REM-CHART
  45. 226 GOSUB 3000
  46. 230 GOTO70
  47. 250 REM-COMPUTER
  48. 251 GOSUB5000
  49. 260 GOTO70
  50. 275 REM-DAMAGES
  51. 276 GOSUB8000
  52. 280 GOTO70
  53. 290 REM - DESTRUCT
  54. 291 GOSUB36000:GOTO70
  55. 300 REM-DOCK
  56. 301 GOSUB7000
  57. 310 GOTO70
  58. 325 REM-IOLE
  59. 326 GOSUB33000
  60. 330 IFJ3=0THEN70
  61. 331 IFA2<>0THEN900
  62. 332 IFG(Q1,Q2)=1000THEN750
  63. 340 GOSUB1000
  64. 345 GOTO70
  65. 350 REM-IMPULSE
  66. 351 GOSUB13000
  67. 352 IFJ3=0THEN70
  68. 353 GOTO700
  69. 375 REM-LRSCAN
  70. 376 GOSUB14000
  71. 377 GOTO70
  72. 400 REM-NAVIGATE
  73. 401 GOSUB34000
  74. 402 IFJ3=0THEN70
  75. 410 GOTO700
  76. 425 REM-PHASERS
  77. 426 GOSUB20000
  78. 427 IFJ3=0THEN70
  79. 428 GOSUB1000
  80. 429 GOTO70
  81. 450 REM-QUIT
  82. 455 GOTO900
  83. 460 PRINT"TOO BAD...WE HATE TO LOSE GOOD ASTRONAUTS!"
  84. 465 GOTO37010
  85. 475 REM-SHIELDS
  86. 476 GOSUB26000
  87. 477 IFJ3=0THEN70
  88. 478 IFA2<>0THEN900
  89. 479 GOSUB1000
  90. 480 S9=0
  91. 485 GOTO70
  92. 500 REM-SOS
  93. 501 GOSUB11000
  94. 502 GOTO70
  95. 525 REM-SRSCAN
  96. 526 GOSUB29000
  97. 530 GOTO70
  98. 540 REM - STATUS
  99. 541 PRINT
  100. 545 GOSUB37000:GOTO70
  101. 550 REM-TORPEDOS
  102. 551 GOSUB21000
  103. 552 IFJ3=0THEN70
  104. 555 GOTO700
  105. 575 REM-TRANSFER
  106. 576 GOSUB31000
  107. 580 IFJ3=0THEN70
  108. 585 IFA2<>0THEN900
  109. 590 IFG(Q1,Q2)<>1000THEN70
  110. 595 GOTO750
  111. 600 REM-VISUAL
  112. 601 GOSUB32000
  113. 602 IFJ3=0THEN70
  114. 603 IFA2<>0THEN900
  115. 610 IFG(Q1,Q2)<>1000THEN70
  116. 615 GOTO750
  117. 625 REM-WARP
  118. 627 GOSUB25000
  119. 630 GOTO70
  120. 700 REM-AFTERMOVINGSTARSHIP
  121. 710 IFA2<>0THEN900
  122. 720 IFT1<>0THENGOSUB9000
  123. 730 IFA2<>0THEN900
  124. 740 IFG(Q1,Q2)<1000THEN790
  125. 750 GOSUB2000
  126. 760 IFA2<>0THEN900
  127. 770 GOTO740
  128. 790 GOSUB1000
  129. 795 GOTO70
  130. 900 REM-WE'RE FINISHED
  131. 901 PRINT:PRINT:INPUT"WOULD YOU LIKE TO TRY AGAIN";A$
  132. 910 IFLEFT$(A$,1)="Y"THEN45
  133. 920 GOTO460
  134. 940 REM-BEGINSUBROUTINES
  135. 1000 REM-ATTACK
  136. 1010 IF(C3<>0)AND(J4=0)THENGOSUB16000
  137. 1020 IFK3=0THENRETURN
  138. 1030 IFA2<>0THENRETURN
  139. 1040 P2=1/I8
  140. 1050 J5=0
  141. 1060 PRINT
  142. 1070 IFC5$="DOCKED"THEN1780
  143. 1080 H2=0:H3=0:C6=1
  144. 1090 IFS9=1THENC6=.5+.5*RND(1)
  145. 1100 A3=0
  146. 1110 FORL=1TOK3
  147. 1120 IFK6(L)<0THEN1540
  148. 1130 A3=1
  149. 1140 D6=.8+.05*RND(1)
  150. 1150 H4=K6(L)*D6^K8(L)
  151. 1160 IF(S4=0)AND(S9=0)THEN1230
  152. 1170 P3=.1:IFP2*S3>P3THENP3=P2*S3
  153. 1180 H5=P3*C6*H4+1
  154. 1190 IFH5>S3THENH5=S3
  155. 1195 S3=S3-H5
  156. 1200 H4=H4-H5
  157. 1210 IF(P3>.1)AND(H4<.005*E1)THEN1540
  158. 1230 J5=1
  159. 1240 PRINTFNR(H4);"UNIT HIT ON THE ";S5$;" FROM ";
  160. 1250 J6=K4(L):J7=K5(L)
  161. 1260 IFQ$(J6,J7)="K"THENPRINT"KLINGON AT";
  162. 1270 IFQ$(J6,J7)="C"THENPRINT"COMMANDER AT";
  163. 1280 PRINTJ6;"-";J7
  164. 1290 IFH4>H2THENH2=H4
  165. 1300 H3=H3+H4
  166. 1310 IFH4<(275-25*S8)*(1+.5*RND(1))THEN1530
  167. 1320 N4=1+INT(H4/(500+100*RND(1)))
  168. 1330 PRINT"***CRITICAL HIT--";
  169. 1340 K9=1
  170. 1350 FORW4=1TON4
  171. 1360 J9=INT(12*RND(1))+1
  172. 1370 C5(W4)=J9
  173. 1380 E3=(H4*D5)/(N4*(75+25*RND(1)))
  174. 1390 IFJ9=6THENE3=E3/3
  175. 1395 D4(J9)=D4(J9)+E3
  176. 1400 IFW4=1THEN1470
  177. 1420 FORV=1TOW4
  178. 1430 IFJ9=C5(V-1)THEN1480
  179. 1440 NEXTV
  180. 1450 K9=K9+1
  181. 1460 IFK9=3THENPRINT
  182. 1465 PRINT " AND ";
  183. 1470 PRINTD$(J9);
  184. 1480 NEXTW4
  185. 1490 PRINT " DAMAGED."
  186. 1500 IFD4(8)=0THEN1530
  187. 1510 IFS4<>0THENPRINT"*** SHIELDS KNOCKED DOWN."
  188. 1520 S4=0
  189. 1530 E1=E1-H4
  190. 1540 NEXTL
  191. 1550 IFA3=0THENRETURN
  192. 1560 IFE1<=0THEN1750
  193. 1570 P4=100*P2*S3+.5
  194. 1580 IFJ5<>0THEN1610
  195. 1590 PRINT"KLINGONS ATTACK--SHIELD STRENGTH REDUCED TO ";
  196. 1600 GOTO1650
  197. 1610 PRINT"ENERGY LEFT:";FNS(E1);"   SHIELDS ";
  198. 1620 IFS4<>0THENPRINT"UP,";
  199. 1630 IF(S4=0)AND(D4(8)=0)THENPRINT"DOWN, ";
  200. 1640 IFD4(8)>0THENPRINT"DAMAGED, ";
  201. 1650 PRINTINT(P4);"%"
  202. 1660 IF(H2<200)AND(H3<500)THEN1800
  203. 1670 J8=INT(H3*RND(1)*.015)
  204. 1680 IFJ8<2THEN1800
  205. 1690 PRINT
  206. 1700 PRINT"MCCOY - 'SICKBAY TO BRIDGE.  WE SUFFERED ";
  207. 1710 PRINTJ8;"CASUALTIES"
  208. 1720 PRINT"          IN THAT LAST ATTACK'"
  209. 1730 C4=C4+J8
  210. 1740 GOTO1800
  211. 1750 F9=5
  212. 1760 GOSUB10000
  213. 1770 RETURN
  214. 1780 PRINT"*** KLINGONS ATTACK-- STARBASE SHIELDS PROTECT ";
  215. 1790 PRINT"THE ";S5$
  216. 1800 FORW4=1TOK3
  217. 1810 K8(W4)=K7(W4)
  218. 1820 NEXTW4
  219. 1830 GOSUB28000
  220. 1840 RETURN
  221. 2000 REM-AUTOVER
  222. 2001 PRINT
  223. 2010 IFJ4=0THEN2050
  224. 2020 PRINT"*** RED ALERT!  RED ALERT!"
  225. 2030 PRINT"***THE ";S5$;" HAS STOPPED IN A QUADRANT ";
  226. 2040 PRINT "CONTAINING A SUPERNOVA."
  227. 2050 PRINT "*** EMERGENCY AUTO-OVERRIDE ATTEMPTS TO HURL ";
  228. 2060 PRINTS5$
  229. 2070 PRINT"   SAFELY OUT OF THE QUADRANT."
  230. 2080 S2(Q1,Q2)=1
  231. 2090 GOSUB18000
  232. 2100 IFD4(6)=0THEN2290
  233. 2110 PRINT
  234. 2120 PRINT"WARP ENGINES DAMAGED."
  235. 2130 PRINT
  236. 2140 PRINT"ATTEMPTING TO ENGAGE IMPULSE ENGINES..."
  237. 2150 IFD4(7)=0THEN2190
  238. 2160 PRINT"IMPULSE ENGINES DAMAGED."
  239. 2165 F9=8
  240. 2170 GOSUB10000
  241. 2180 RETURN
  242. 2190 P2=.75*E1
  243. 2200 D6=.004*(P2-50)
  244. 2210 D7=1.4142+1.2*RND(1)
  245. 2220 D1=D6
  246. 2230 IFD6>D7THEND1=D7
  247. 2240 T1=D1/.4
  248. 2250 D2=12*RND(1)
  249. 2260 J4=0
  250. 2270 GOSUB13200
  251. 2280 GOTO2400
  252. 2290 W1=6+2*RND(1)
  253. 2300 W2=W1*W1
  254. 2310 P2=.75*E1
  255. 2320 D6=P2/(W1*W1*W1*(S4+1))
  256. 2330 D7=1.4142+2*RND(1)
  257. 2340 D1=D6
  258. 2350 IFD6>D7THEND1=D7
  259. 2360 T1=10*D1/W2
  260. 2370 D2=12*RND(1)
  261. 2380 J4=0
  262. 2390 GOSUB34500
  263. 2400 IFJ4<>0THEN2440
  264. 2410 F9=8
  265. 2420 GOSUB10000
  266. 2430 RETURN
  267. 2440 IFR1<>0THENRETURN
  268. 2450 F9=1
  269. 2460 GOSUB10000
  270. 2470 RETURN
  271. 3000 REM-CHART
  272. 3001 PRINT:PRINT"      1   2   3   4   5   6   7   8"
  273. 3010 PRINT"     --- --- --- --- --- --- --- ---"
  274. 3020 FORI=1TO8
  275. 3030 PRINTI;" ";
  276. 3040 FORJ=1TO8
  277. 3060 ONSGN(S2(I,J))+2GOTO3070,3090,3110
  278. 3065 PRINT"ERR AT 3065":STOP
  279. 3070 PRINT" .1.";
  280. 3080 GOTO 3160
  281. 3090 PRINT" ...";
  282. 3100 GOTO3160
  283. 3110 IFS2(I,J)>1000THEN3150
  284. 3120 IFG(I,J)<1000THENPRINTS7$(LEN(STR$(G(I,J))));STR$(G(I,J));
  285. 3130 IFG(I,J)=1000THENPRINT" ***";
  286. 3140 GOTO3160
  287. 3150 PRINTS2(I,J)-1000;
  288. 3160 NEXTJ
  289. 3170 PRINT
  290. 3180 NEXTI:GOSUB18400
  291. 3185 PRINT
  292. 3190 PRINT"THE ";S5$;" IS CURRENTLY IN ";G2$;" (";Q1;"-";Q2;")"
  293. 3200 RETURN
  294. 4000 REM-CHOOSE
  295. 4001 FORI=1TO10:PRINT:NEXT:FORI=1TO41:PRINT"*";:NEXT:PRINT
  296. 4002 PRINT"**";TAB(39);"**"
  297. 4003 PRINT"**  WELCOME TO THE WORLD OF STAR TREK  **"
  298. 4008 PRINT"**";TAB(39);"**":FORI=1TO41:PRINT"*";:NEXT:PRINT
  299. 4010 PRINT:PRINT
  300. 4070 S8=0:L2=0
  301. 4090 PRINT"HOW LONG A GAME WOULD YOU LIKE";
  302. 4095 INPUTA$
  303. 4100 FOR I=1TO3
  304. 4110 IFA$=LEFT$(T$(I),LEN(A$))THEN4150
  305. 4120 NEXTI
  306. 4130 PRINT"WOULD YOU LIKE A SHORT, MEDIUM OR LONG GAME";
  307. 4140 GOTO4095
  308. 4150 L2=I
  309. 4160 PRINT"ARE YOU A BEGINNER, NOVICE, SENIOR OR EXPERT PLAYER";
  310. 4170 INPUTA$
  311. 4180 FORI=1TO4
  312. 4190 IFA$=LEFT$(S$(I),LEN(A$))THEN4220
  313. 4200 NEXTI
  314. 4210 GOTO4160
  315. 4220 S8=I
  316. 4230 INPUT"ENTER YOUR MISSION PASSWORD...";X$
  317. 4244 PRINT
  318. 4245 PRINT"....SETTING UP THE GALAXY...."
  319. 4250 J=RND(1)
  320. 4260 REM-INITIALIZE
  321. 4270 D5=.5*S8
  322. 4280 I2=INT(L2+1+RND(1)*3)
  323. 4290 IFI2>5THENI2=5
  324. 4300 R3=I2
  325. 4310 I5=7*L2
  326. 4320 R5=I5
  327. 4340 R7=(S8-2*RND(1)+1)*S8*.1+.1
  328. 4350 IFR7<.2THENR7=R7+.1
  329. 4360 I1=INT(2*R7*I5)
  330. 4370 R1=I1
  331. 4380 I4=INT(S8+.0625*I1*RND(1))
  332. 4390 R2=I4
  333. 4400 I3=(I1+4*I4)*I5
  334. 4410 R4=I3
  335. 4420 RETURN
  336. 5000 REM-COMPUTE
  337. 5001 IFD4(11)=0THEN5030
  338. 5010 PRINT"LIBRARY COMPUTER DISABLED"
  339. 5020 RETURN
  340. 5030 PRINT"----LIBRARY COMPUTER ACTIVE----"
  341. 5040 INPUT"PROGRAM NAME";B$
  342. 5050 FORI=1TO6
  343. 5060 IFB$=LEFT$(C2$(I),LEN(B$))THEN5120
  344. 5070 NEXT
  345. 5080 PRINT"VALID PROGRAMS ARE:"
  346. 5090 PRINT"  COURSE    WCOST   ICOST"
  347. 5100 PRINT"  PEFFECT   SCORE   END"
  348. 5110 GOTO5040
  349. 5120 ON IGOTO5200,5300,5400,5500,5600,5700
  350. 5200 REM-COURSE&DIRECTION
  351. 5210 INPUT "ENTER QUADRANT AND SECTOR - ";A3,A4
  352. 5220 IF(A3<>INT(A3))OR(A4<>INT(A4))THEN5990
  353. 5221 IFA3<0THEN5040
  354. 5222 IFA3=0THENA3=10*Q1+Q2
  355. 5223 A3=A3+.5
  356. 5225 K=INT(A3/10)
  357. 5226 IF(K<1)OR(K>8)THEN5990
  358. 5227 C6(1)=K:K=INT(A3-C6(1)*10)
  359. 5228 IF(K<1)OR(K>8)THEN5990
  360. 5229 C6(2)=K:A4=A4+.5
  361. 5230 K=INT(A4/100)
  362. 5231 IF(K<1)OR(K>10)THEN5990
  363. 5232 C6(1)=C6(1)+(K-1)/10:K=INT(A4-K*100)
  364. 5233 IF(K<1)OR(K>10)THEN5990
  365. 5234 C6(2)=C6(2)+(K-1)/10
  366. 5235 X=Q1+((S6-1)/10)-C6(1):Y=Q2+((S7-1)/10)-C6(2)
  367. 5236 D1=0:D2=0:IF(X=0)AND(Y=0)THEN5250
  368. 5237 D1=SQR(X*X+Y*Y)
  369. 5238 IFX<0THENZ7=SGN(Y)*(3.1416-ATN(ABS(Y/X)))
  370. 5239 IFX=0THENZ7=SGN(Y)*1.5708
  371. 5240 IFX>0THENZ7=ATN(Y/X)
  372. 5245 D2=12-Z7*1.9098593:IFD2>12THEND2=D2-12
  373. 5250 PRINT"COURSE IS";FNS(D2);" FOR A DISTANCE OF";
  374. 5260 PRINTFNS(D1);"QUADRANTS.":GOTO5040
  375. 5300 REM-COST FOR WARP DRIVE
  376. 5302 INPUT"ENTER DISTANCE AND WARP FACTOR";D1,A4
  377. 5304 IF(D1<0)THEN5040
  378. 5310 C7=D1*A4*A4*A4
  379. 5315 T1=(10*D1)/(A4*A4)
  380. 5320 PRINT"IT WOULD TAKE";FNS(T1);"STARDATES AND USE"
  381. 5325 PRINTFNR(C7);"UNITS OF ENERGY  (";FNR(C7+C7);"IF SHIELDS ARE UP)"
  382. 5330 GOTO5040
  383. 5400 REM-COST FOR IMPULSE POWER
  384. 5410 INPUT"ENTER DISTANCE...";D1
  385. 5420 IFD1<0THEN5040
  386. 5430 C7=250*D1+50:T1=D1/.4
  387. 5440 PRINT"IT WOULD TAKE";FNR(T1);"STARDATES AND USE"
  388. 5450 PRINTC7;"UNITS OF ENERGY"
  389. 5460 GOTO5040
  390. 5500 REM-PHASER EFFECTIVENESS
  391. 5510 INPUT"ENTER PHASER RANGE IN QUADRANTS";A3
  392. 5520 IFA3<0THEN5040
  393. 5530 A3=A3*10:C7=(.9^A3)*100
  394. 5540 PRINT"PHASERS ARE ";LEFT$(STR$(C7),5);"% EFFECTIVE AT THAT RANGE"
  395. 5550 GOTO5040
  396. 5600 REM- SCORE
  397. 5610 GOSUB23000
  398. 5620 GOTO5040
  399. 5700 RETURN
  400. 5990 PRINT"FORMAT IS MN,XXYY...WHERE MN IS THE QUADRANT"
  401. 5991 PRINT"AND XXYY IS THE SECTOR...E.G. 64,0307 REFERS"
  402. 5992 PRINT"TO QUADRANT 6-4, SECTOR 3-7."
  403. 5993 PRINT"NOTE: SECTOR COORDINATES MUST BE 4 DIGITS."
  404. 5995 GOTO 5040
  405. 6000 REM - DEADKL
  406. 6001 IFT2$<>"C"THEN6100
  407. 6010 C3=0:PRINT"***COMMANDER AT";
  408. 6020 FORF=1TOR2
  409. 6030 IF(C1(F)=Q1)AND(C2(F)=Q2)THEN6050
  410. 6040 NEXTF
  411. 6050 C1(F)=C1(R2):C2(F)=C2(R2):C1(R2)=0:C2(R2)=0
  412. 6060 R2=R2-1:F1(2)=1E30
  413. 6070 IFR2<>0THENF1(2)=D0-(I4/R2)*LOG(RND(1))
  414. 6080 K2=K2+1
  415. 6090 GOTO6120
  416. 6100 PRINT"***KLINGON AT";
  417. 6110 K1=K1+1
  418. 6120 PRINTA5;"-";A6;"DESTROYED."
  419. 6130 Q$(A5,A6)=".":R1=R1-1
  420. 6140 IFR1=0THENRETURN
  421. 6150 R5=R4/(R1+4*R2)
  422. 6160 G(Q1,Q2)=G(Q1,Q2)-100
  423. 6170 FORF=1TOK3
  424. 6180 IF(K4(F)=A5)AND(K5(F)=A6)THEN6200
  425. 6190 NEXTF
  426. 6200 K3=K3-1
  427. 6210 IFF>K3THEN6250
  428. 6220 FORG=FTOK3
  429. 6230 K4(G)=K4(G+1):K5(G)=K5(G+1):K6(G)=K6(G+1)
  430. 6235 K7(G)=K7(G+1):K8(G)=K7(G)
  431. 6240 NEXTG
  432. 6250 K4(K3+1)=0:K5(K3+1)=0:K7(K3+1)=0:K8(K3+1)=0:K6(K3+1)=0
  433. 6260 RETURN
  434. 7000 REM-DOCK
  435. 7001 IFC5$="DOCKED"THEN7100
  436. 7010 IFB6=0THEN7020
  437. 7015 IF(ABS(S6-B6)<=1)AND(ABS(S7-B7)<=1)THEN7040
  438. 7020 PRINTS5$;" NOT ADJACENT TO A BASE."
  439. 7030 RETURN
  440. 7040 C5$="DOCKED"
  441. 7050 PRINT"HELMSMAN SULU - 'DOCKING MANEUVER COMPLETED.'"
  442. 7060 E1=I7:S3=I8:T4=I9:L1=J1
  443. 7070 RETURN
  444. 7100 PRINT"MR. SULU - 'BUT CAPTAIN, WE'RE ALREADY DOCKED!'"
  445. 7110 RETURN
  446. 8000 REM-DREPORT
  447. 8001 J=0
  448. 8003 PRINT
  449. 8005 FORI=1TO12
  450. 8010 IFD4(I)<=0THEN8070
  451. 8020 IFJ<>0THEN8060
  452. 8030 PRINT"     DEVICE";SPC(12);"-REPAIR TIMES-"
  453. 8040 PRINTSPC(21);"IN FLIGHT    DOCKED"
  454. 8050 J=1
  455. 8060 PRINT"  ";D$(I);TAB(23);FNS(D4(I));TAB(33);FNS(D3*D4(I))
  456. 8070 NEXTI
  457. 8080 IFJ=0THENPRINT"MR. SPOCK - 'ALL DEVICES FUNCTIONAL, CAPTAIN'"
  458. 8090 RETURN
  459. 9000 REM-EVENTS
  460. 9001 M=0:D7=D0+T1
  461. 9010 FORL=1TO5
  462. 9020 IFF1(L)>D7THEN9040
  463. 9030 M=L:D7=F1(L)
  464. 9040 NEXTL
  465. 9050 X6=D7-D0:D0=D7
  466. 9060 R4=R4-(R1+4*R2)*X6
  467. 9070 R5=R4/(R1+4*R2)
  468. 9080 IFR5>0THEN9120
  469. 9090 F9=2
  470. 9100 GOSUB10000
  471. 9110 RETURN
  472. 9120 IF(D4(5)=0)OR(C5$="DOCKED")THEN9180
  473. 9130 IF(L1>=X6)OR(D4(5)<=L1)THEN9160
  474. 9140 F9=3:GOSUB10000
  475. 9150 RETURN
  476. 9160 L1=L1-X6
  477. 9170 IFD4(5)<=X6THENL1=J1
  478. 9180 R=X6
  479. 9190 IFC5$="DOCKED"THENR=X6/D3
  480. 9200 FORL=1TO12
  481. 9210 IFD4(L)<=0THEN9230
  482. 9220 D4(L)=D4(L)-R
  483. 9225 IFD4(L)<0THEND4(L)=0
  484. 9226 IFD4(L)<>0THEN9230
  485. 9227 PRINT:PRINT"DAMAGE CONTROL-  '";D$(L);" NOW OPERATIONAL.'"
  486. 9230 NEXTL
  487. 9240 IFM=0THENRETURN
  488. 9250 T1=T1-X6
  489. 9260 ONMGOTO9270,9290,9340,9350,9470
  490. 9270 REM-SUPERNOVA
  491. 9280 X2=0:Y2=0:GOSUB27000
  492. 9285 F1(1)=D0-.5*I5*LOG(RND(1))
  493. 9286 IFG(Q1,Q2)=1000THENRETURN
  494. 9287 GOTO9001
  495. 9290 REM-TRACTOR BEAM
  496. 9291 IFR2=0THEN9330
  497. 9292 IFC5$="DOCKED"THEN9325
  498. 9293 I=INT(RND(1)*R2)+1
  499. 9294 Y6=(C1(I)-Q1)^2+(C2(I)-Q2)^2
  500. 9295 IFY6=0THEN9325
  501. 9296 Y6=SQR(Y6):T1=.17778*Y6
  502. 9297 PRINT:PRINT"***";S5$;" CAUGHT IN LONG-RANGE TRACTOR BEAM--"
  503. 9298 Q1=C1(I):Q2=C2(I)
  504. 9299 S6=FNB(1):S7=FNB(1)
  505. 9300 PRINT"   PULLED TO QUADRANT";Q1;"-";Q2;", SECTOR";S6;"-";S7
  506. 9301 IFR6<>0THENPRINT"(REMAINDER OF IDLE PERIOD CANCELLED)"
  507. 9302 R6=0
  508. 9303 IFS4<>0THEN9320
  509. 9304 IF(D4(8)=0)AND(S3>0)THEN9310
  510. 9305 PRINT"(SHIELDS NOT CURRENTLY USABLE.)"
  511. 9307 GOTO9320
  512. 9310 GOSUB26500
  513. 9315 S9=0
  514. 9320 GOSUB18000
  515. 9325 F1(2)=D0+T1-1.5*(I5/R2)*LOG(RND(1))
  516. 9326 GOTO9001
  517. 9330 F1(2)=1E30:GOTO9001
  518. 9340 D9(1)=D0:D9(2)=R1:D9(3)=R2:D9(4)=R3:D9(5)=R4:D9(6)=R5
  519. 9342 D9(7)=S1:D9(8)=B1:D9(9)=K1:D9(10)=K2
  520. 9343 FORI=1TO8:FORJ=1TO8:D9(I-1+8*(J-1)+11)=G(I,J):NEXTJ:NEXTI
  521. 9344 FORI=75TO84:D9(I)=C1(I-74):NEXT
  522. 9345 FORI=85TO94:D9(I)=C2(I-84):NEXT
  523. 9346 FORI=95TO99:D9(I)=B2(I-94):NEXT
  524. 9347 FORI=100TO104:D9(I)=B3(I-99):NEXT
  525. 9348 D9(105)=B4:D9(106)=B5
  526. 9349 S0=1:F1(3)=D0-.3*I5*LOG(RND(1)):GOTO9001
  527. 9350 REM - STARBASE ATTACK
  528. 9355 IF(R2=0)OR(R3=0)THEN9400
  529. 9360 FORI=1TOR3:FORJ=1TOR2:IF(B2(I)=C1(J))AND(B3(I)=C2(J))THEN9410
  530. 9370 NEXTJ:NEXTI
  531. 9380 F1(4)=D0+.5+3*RND(1)
  532. 9390 F1(5)=1E30:GOTO9001
  533. 9400 F1(4)=1E30:F1(5)=1E30:GOTO9001
  534. 9410 B4=B2(I):B5=B3(I)
  535. 9420 IF(B4=Q1)AND(B5=Q2)THEN9380
  536. 9430 F1(5)=D0+.5+3*RND(1)
  537. 9440 F1(4)=F1(5)-.3*I5*LOG(RND(1))
  538. 9450 IFD4(9)>0THEN9001
  539. 9455 PRINT
  540. 9460 PRINT"LT. UHURA-  'CAPTAIN, THE STARBASE IN";B4;"-";B5
  541. 9461 PRINT"  REPORTS THAT IT IS UNDER ATTACK AND CAN HOLD OUT"
  542. 9462 PRINT"  ONLY UNTIL STARDATE";FNR(F1(5));"'"
  543. 9465 IFR6=0THEN9001
  544. 9466 PRINT
  545. 9467 INPUT"MR. SPOCK-  'CAPTAIN, SHALL WE CANCEL THE IDLE PERIOD";B$
  546. 9468 IFLEFT$(B$,1)="Y"THENR6=0
  547. 9469 GOTO9001
  548. 9470 REM - STARBASE DESTROYED
  549. 9475 F1(5)=1E30:IF(R2=0)OR(R3=0)THEN9001
  550. 9485 K=INT(G(B4,B5)/100):IFG(B4,B5)-K*100<10THEN9001
  551. 9490 FORI=1TOR2:IF(C1(I)=B4)AND(C2(I)=B5)THEN9520
  552. 9510 NEXT:GOTO9001
  553. 9520 IFS2(B4,B5)=-1THENS2(B4,B5)=0
  554. 9530 IFS2(B4,B5)>999THENS2(B4,B5)=S2(B4,B5)-10
  555. 9540 IF(B4<>Q1)OR(B5<>Q2)THEN9630
  556. 9550 FORI=1TOK3:K=K4(I):L=K5(I)
  557. 9560 IFQ$(K,L)="C"THEN9570
  558. 9565 NEXT
  559. 9570 IFK6(I)<25+50*RND(1)THEN9001
  560. 9580 Q$(B6,B7)=".":B6=0:B7=0
  561. 9590 GOSUB17000
  562. 9600 PRINT:PRINT"MR. SPOCK-  'CAPTAIN, I BELIEVE THE STARBASE HAS";
  563. 9610 PRINT" BEEN DESTROYED.'"
  564. 9620 GOTO9680
  565. 9630 IF(R3=1)OR(D4(9)>0)THEN9680
  566. 9640 PRINT
  567. 9650 PRINT"LT. UHURA-  'CAPTAIN, STARFLEET COMMAND REPORTS THAT"
  568. 9660 PRINT"  THE STARBASE IN QUADRANT";B4;"-";B5;"HAS BEEN"
  569. 9670 PRINT"  DESTROYED BY A KLINGON COMMANDER.'"
  570. 9680 G(B4,B5)=G(B4,B5)-10
  571. 9690 IFR3<=1THEN9730
  572. 9700 FORI=1TOR3:IF(B2(I)=B4)AND(B3(I)=B5)THEN9720
  573. 9710 NEXT
  574. 9720 B2(I)=B2(R3):B3(I)=B3(R3)
  575. 9730 R3=R3-1
  576. 9740 GOTO9001
  577. 10000 REM-FINISH
  578. 10001 A2=1:PRINT:PRINT"IT IS STARDATE";FNR(D0):PRINT
  579. 10010 ONF9GOTO10020,10130,10160,10185,10195,10205,10220,10235
  580. 10015 ONF9-8GOTO10245,10270,10280
  581. 10020 REM-THE GAME HAS BEEN WON
  582. 10025 PRINT"YOU HAVE DESTROYED THE KLINGON INVASION FLEET"
  583. 10027 PRINT
  584. 10030 PRINT"     ***THE FEDERATION IS SAVED***":G1=1
  585. 10035 IF(A1=0)OR(B1<>0)THEN10110
  586. 10040 IFLEFT$(S5$,1)<>"E"THEN10110
  587. 10045 IF3*S1+35*N1+C4>=100THEN10110
  588. 10050 IFD0-J2<=6THEN10070
  589. 10060 R8=.1*S8*(S8+1)+.1
  590. 10065 IF(K1+K2)/(D0-J2)<R8THEN10110
  591. 10070 PRINT
  592. 10075 PRINT"IN FACT, YOU HAVE DONE SO WELL THAT STARFLEET COMMAND"
  593. 10076 IFS8=4THEN10090
  594. 10080 PRINT"PROMOTES YOU ONE STEP IN RANK, ";
  595. 10085 IFS8=1THEN PRINT"FROM BEGINNER TO NOVICE CLASS!"
  596. 10086 IFS8=2THENPRINT"FROM NOVICE TO SENIOR CLASS!"
  597. 10087 IFS8=3THENPRINT"FROM SENIOR TO EXPERT CLASS!"
  598. 10088 PRINT"   ***CONGRATULATIONS***":GOTO10110
  599. 10090 PRINT"PROMOTES YOU TO 'COMMODORE EMERITUS'."
  600. 10095 PRINT
  601. 10100 PRINT"NOW YOU CAN RETIRE AND WRITE YOUR OWN STAR TREK GAME!"
  602. 10110 GOSUB23000
  603. 10120 RETURN
  604. 10130 REM-FED RESOURCES DEPLETED
  605. 10135 PRINT"YOUR TIME HAS RUN OUT, AND THE"
  606. 10136 PRINT"FEDERATION HAS BEEN CONQUERED.":PRINT
  607. 10137 PRINT"YOUR STARSHIP IS NOW KLINGON PROPERY, AND YOU ARE PUT"
  608. 10138 PRINT"ON TRIAL AS A WAR CRIMINAL.  ON THE BASIS OF YOUR RECORD,"
  609. 10139 IFR1*3>I1THEN10150
  610. 10140 PRINT"YOU ARE FOUND GUILTY AND SENTENCED TO DEATH!"
  611. 10145 A1=0:GOSUB23000:RETURN
  612. 10150 PRINT"YOU ARE ACQUITTED":GOSUB23000:RETURN
  613. 10160 REM- L.S. FAILURE
  614. 10165 PRINT"YOUR LIFE SUPPORT RESERVES HAVE RUN OUT, AND"
  615. 10170 PRINT"YOU WILL SOON DIE OF ASPHYXIATION"
  616. 10172 PRINT
  617. 10175 PRINT"YOUR STARSHIP IS A DERELICT IN SPACE."
  618. 10180 GOTO10300
  619. 10185 REM-ENERGY GONE
  620. 10190 PRINT"YOUR ENERGY SUPPLY IS EXHAUSTED.":GOTO10172
  621. 10195 REM-BATTLE DEFEAT
  622. 10200 PRINT"THE ";S5$;" HAS BEEN DESTROYED IN BATTLE."
  623. 10201 GOTO10300
  624. 10205 PRINT"F9=6 INVALID":RETURN
  625. 10220 REM-NOVA
  626. 10225 PRINT"YOUR STARSHIP HAS BEEN DESTROYED BY A NOVA."
  627. 10230 PRINT"NICE SHOT, YOU HOCKEY PUCK!":GOTO10300
  628. 10235 REM-SUPERNOVA
  629. 10240 PRINT"THE ";S5$;" HAS BEEN INCINERATED BY A SUPERNOVA."
  630. 10241 GOTO10300
  631. 10245 REM-ABANDON(NO BASES)
  632. 10250 PRINT"YOU HAVE BEEN CAPTURED BY THE KLINGONS.  IF YOU STILL"
  633. 10255 PRINT "HAD A STARBASE TO BE RETURNED TO, YOU WOULD HAVE BEEN"
  634. 10260 PRINT"REPATRIATED AND GIVEN ANOTHER CHANCE.  SINCE YOU HAVE"
  635. 10265 PRINT"NO STARBASES, YOU WILL BE MERCILESSLY TORTURED TO DEATH!"
  636. 10266 GOTO10300
  637. 10270 REM - SELF-DESTRUCT
  638. 10271 PRINT:PRINT"THE ";S5$;" IS NOW AN EXPANDING CLOUD"
  639. 10272 PRINT"OF SUB-ATOMIC PARTICLES...":GOTO10300
  640. 10280 REM-NOT REMATERIALIZED
  641. 10285 PRINT"STARBASE WAS UNABLE TO RE-MATERIALIZE YOUR STARSHIP."
  642. 10300 PRINT
  643. 10310 IFLEFT$(S5$,1)="F"THENS5$=""
  644. 10315 IFLEFT$(S5$,1)="E"THENS5$="FAERIE QUEENE"
  645. 10316 A1=0
  646. 10320 IFR1=0THEN10355
  647. 10325 G3=R4/I3:B8=(R1+2*R2)/(I1+2*I4)
  648. 10326 A3=G3/B8
  649. 10327 IF A3<1+.5+RND(1)THEN10345
  650. 10330 PRINT"AS A RESULT OF YOUR ACTIONS, A TREATY WITH THE KLINGON"
  651. 10331 PRINT"EMPIRE HAS BEEN SIGNED.  THE TERMS OF THE TREATY ARE"
  652. 10332 IFA3<3*RND(1)THEN10340
  653. 10335 PRINT"FAVORABLE TO THE FEDERATION.":PRINT
  654. 10336 PRINT"CONGRATULATIONS.":GOTO10350
  655. 10340 PRINT"HIGHLY UNFAVORABLE TO THE FEDERATION.":GOTO10350
  656. 10345 PRINT"THE FEDERATION WILL BE DESTROYED!"
  657. 10350 GOSUB23000:RETURN
  658. 10355 PRINT"SINCE YOU TOOK THE LAST KLINGON WITH YOU, YOU ARE"
  659. 10360 PRINT"A MARTYR AND A HERO.  SOMEDAY MAYBE THEY'LL ERECT"
  660. 10370 PRINT"A STATUE IN YOUR MEMORY.  REST IN PEACE AND TRY NOT"
  661. 10380 PRINT"TO THINK ABOUT PIGEONS!":G1=1:A1=0
  662. 10390 GOSUB23000:RETURN
  663. 11000 REM - HELP
  664. 11001 IFC5$<>"DOCKED"THEN11020
  665. 11010 PRINT"ENSIGN CHEKOV-  'BUT CAPTAIN, WE'RE ALREADY DOCKED!'"
  666. 11015 RETURN
  667. 11020 IFD4(9)=0THEN11030
  668. 11025 PRINT"SUBSPACE RADIO DAMAGED...CANNOT TRANSMIT.":RETURN
  669. 11030 IFR3<>0THEN11050
  670. 11040 PRINT"LT. UHURA-  'CAPTAIN, I'M NOT GETTING ANY RESPONSE";
  671. 11045 PRINT" FROM STARBASE!'":RETURN
  672. 11050 N1=N1+1:IFB6=0THEN11070
  673. 11060 GOTO11130
  674. 11070 D1=1E30
  675. 11080 FORL=1TOR3:X=10*SQR((B2(L)-Q1)^2+(B3(L)-Q2)^2)
  676. 11090 IFX>D1THEN11110
  677. 11100 D1=X:K=L
  678. 11110 NEXTL
  679. 11120 Q1=B2(K):Q2=B3(K):GOSUB18000
  680. 11130 Q$(S6,S7)="."
  681. 11135 PRINT
  682. 11140 PRINT"STARBASE IN QUADRANT";Q1;"-";Q2;"RESPONDS --";
  683. 11145 PRINT"  ";S5$;" DEMATERIALIZES."
  684. 11146 P2=(1-.98^D1)^.333333
  685. 11150 FORL=1TO3
  686. 11155 IFL=1THENPRINT"1ST ";
  687. 11160 IFL=2THENPRINT"2ND ";
  688. 11170 IFL=3THENPRINT"3RD ";
  689. 11180 PRINT"ATTEMPT TO RE-MATERIALIZE THE ";S5$;". . . . .";
  690. 11190 IFRND(1)>P2THEN11220
  691. 11200 PRINT"FAILS.":NEXTL
  692. 11210 F9=11:GOSUB10000:RETURN
  693. 11220 FORL=1TO5:I=B6+INT(3*RND(1))-1
  694. 11230 IF(I<1)OR(I>10)THEN11260
  695. 11235 J=B7+INT(3*RND(1))-1
  696. 11240 IF(J<1)OR(J>10)THEN11260
  697. 11250 IFQ$(I,J)="."THEN11270
  698. 11260 NEXTL:PRINT"FAILS.":GOTO11210
  699. 11270 PRINT"SUCCEEDS.":S6=I:S7=J:Q$(I,J)=LEFT$(S5$,1)
  700. 11280 GOSUB7000:PRINT"LT. UHURA-  'CAPTAIN, WE MADE IT!'":RETURN
  701. 12000 REM-HITEM
  702. 12001 P4=2:L5=K3:N=1
  703. 12010 FORK=1TOL5
  704. 12020 IFH3(K)=0THEN12240
  705. 12030 D6=.9+.01*RND(1):H2=H3(K)*D6^K7(N)
  706. 12040 P3=K6(N)
  707. 12050 P=ABS(P3):IFP4*H2<PTHENP=P4*H2
  708. 12060 K6(N)=P3-SGN(P3)*ABS(P)
  709. 12070 X8=K4(N):Y8=K5(N)
  710. 12080 IFH2>4.99THEN12100
  711. 12090 PRINT"VERY SMALL HIT ON ":GOTO12110
  712. 12100 PRINTFNR(H2);"UNIT HIT ON ";
  713. 12110 M$=Q$(X8,Y8)
  714. 12120 IF M$="K"THENPRINT"KLINGON AT";
  715. 12125 IFM$="C"THENPRINT"COMMANDER AT";
  716. 12130 PRINTX8;"-";Y8
  717. 12140 IFK6(N)<>0THEN12180
  718. 12150 A5=X8:A6=Y8:T2$=Q$(X8,Y8):GOSUB6000
  719. 12160 IFR1<>0THEN12250
  720. 12170 F9=1:GOSUB10000:GOTO12250
  721. 12180 IFK6(N)<0THEN12240
  722. 12190 IFRND(1)<.9THEN12240
  723. 12200 IFK6(N)>(.4+.4*RND(1))*P3THEN12240
  724. 12205 PRINT
  725. 12210 PRINT"***MR. SPOCK - 'CAPTAIN, THE VESSEL AT SECTOR";
  726. 12215 PRINTX8;"-";Y8
  727. 12220 PRINT"   HAS JUST LOST ITS FIREPOWER.'"
  728. 12225 PRINT
  729. 12230 K6(N)=-K6(N)
  730. 12240 N=N+1
  731. 12250 NEXTK
  732. 12260 RETURN
  733. 13000 REM - IMPULSE
  734. 13001 J3=0
  735. 13010 IFD4(7)<>0THEN13250
  736. 13020 IFE1<=75THEN13070
  737. 13030 INPUT"ENTER COURSE AND DISTANCE";D2,D1
  738. 13040 IFD2<0THENRETURN
  739. 13050 P3=50+250*D1
  740. 13060 IFP3<E1THEN13140
  741. 13070 PRINT
  742. 13080 PRINT"1ST OFFICER SPOCK-  'CAPTAIN, THE IMPULSE ENGINES"
  743. 13090 PRINT"REQUIRE 50 UNITS OF ENERGY TO ENGAGE, PLUS 250 UNITS"
  744. 13091 PRINT"PER ";
  745. 13100 IFE1>75THEN13120
  746. 13110 PRINT"QUADRANT.  THEY ARE, THEREFORE, USELESS NOW.'":RETURN
  747. 13120 PRINT"QUADRANT.  WE CAN GO, THEREFORE, A MAXIMUM OF ";
  748. 13130 PRINTFNR(.004*(E1-50)-.05);"QUADRANTS.'":RETURN
  749. 13140 T1=D1/.4
  750. 13150 IFT1<R5THEN13200
  751. 13160 PRINT"1ST OFFICER SPOCK-  'CAPTAIN, OUR SPEED UNDER IMPULSE"
  752. 13170 PRINT"POWER IS ONLY 4 SECTORS PER STARDATE.  ARE YOU SURE"
  753. 13180 INPUT"WE DARE SPEND THE TIME'";B$
  754. 13190 IFLEFT$(B$,1)<>"Y"THENRETURN
  755. 13200 GOSUB15000:J3=1
  756. 13210 IFA2<>0THENRETURN
  757. 13220 E1=E1-P3
  758. 13230 IFE1>0THENRETURN
  759. 13240 F9=4:GOSUB10000:RETURN
  760. 13250 PRINT"IMPULSE ENGINES DAMAGED.":RETURN
  761. 14000 REM - LRSCAN
  762. 14001 N$="    #"
  763. 14005 PRINT
  764. 14010 IFD4(2)<>0THEN14180
  765. 14020 PRINT"L.R. SCAN FOR QUADRANT";Q1;"-";Q2:PRINT
  766. 14030 I=Q1-1:J=Q1+1:K=Q2-1:L=Q2+1
  767. 14040 FORM=ITOJ:FORN=KTOL
  768. 14050 IF(M<=0)OR(M>8)THEN14110
  769. 14060 IF(N<=0)OR(N>8)THEN14110
  770. 14070 IFD4(11)=0THENS2(M,N)=1
  771. 14080 IFG(M,N)>=1000THEN PRINT"  ***";
  772. 14090 IFG(M,N)<1000THENPRINTSPC(5-LEN(STR$(G(M,N))));G(M,N);
  773. 14100 GOTO14120
  774. 14110 PRINTN$;
  775. 14120 NEXTN
  776. 14130 PRINT
  777. 14140 NEXTM
  778. 14150 IFD4(11)=0THENRETURN
  779. 14155 PRINT
  780. 14160 PRINT"***WARNING*** - COMPUTER DISABLED - SCAN NOT RECORDED."
  781. 14170 RETURN
  782. 14180 PRINT"LONG RANGE SENSORS DAMAGED.":RETURN
  783. 15000 REM - MOVE
  784. 15001 A5=(15-D2)*.5235988
  785. 15010 D4=-SIN(A5):D6=COS(A5)
  786. 15020 B8=ABS(D4)
  787. 15030 IFABS(D6)>B8THENB8=ABS(D6)
  788. 15040 D4=D4/B8:D6=D6/B8:T5=0:T6=0
  789. 15050 IFD0+T1<F1(2)THEN15080
  790. 15060 T5=1:C5$="RED":D1=D1*(F1(2)-D0)/T1+.1
  791. 15070 T1=F1(2)-D0+1E-5
  792. 15080 Q$(S6,S7)=".":X7=S6:Y7=S7:H9=INT(10*D1*B8+.5)
  793. 15090 IFH9=0THEN15115
  794. 15100 FORL=1TOH9
  795. 15102 X7=X7+D4:X1=INT(X7+.5):Y7=Y7+D6:Y1=INT(Y7+.5)
  796. 15105 IF(X1<1)OR(X1>10)THEN15150
  797. 15106 IF(Y1<1)OR(Y1>10)THEN15150
  798. 15108 IFQ$(X1,Y1)="O"THEN15111
  799. 15109 IFQ$(X1,Y1)<>"."THEN15125
  800. 15110 NEXTL
  801. 15111 D1=.1*SQR((S6-X1)^2+(S7-Y1)^2)
  802. 15112 S6=X1:S7=Y1
  803. 15115 F4=S6:F5=S7
  804. 15116 IFQ$(X1,Y1)<>"O"THEN15320
  805. 15120 T2=FNA(1):T3=FNA(1)
  806. 15122 Q1=FNA(1):Q2=FNA(1):S6=FNB(1):S7=FNB(1):PRINT
  807. 15123 PRINT"*** SPACE PORTAL ENTERED ***":GOTO15307
  808. 15125 T6=1:K=50*D1/T1:D1=.1*SQR((S6-X1)^2+(S7-Y1)^2)
  809. 15127 IF(Q$(X1,Y1)="K")OR(Q$(X1,Y1)="C")THEN15145
  810. 15129 PRINT:PRINTS5$;" BLOCKED BY ";
  811. 15130 IFQ$(X1,Y1)="*"THENPRINT"STAR AT";
  812. 15131 IFQ$(X1,Y1)="B"THENPRINT"STARBASE AT";
  813. 15132 PRINT" SECTOR";X1;"-";Y1;"...."
  814. 15133 PRINT"EMERGENCY STOP REQUIRED";FNR(K);"UNITS OF ENERGY."
  815. 15135 E1=E1-K
  816. 15137 S6=INT(X7-D4+.5):F4=S6:S7=INT(Y7-D6+.5):F5=S7
  817. 15140 IFE1>0THEN15320
  818. 15141 F9=4:GOSUB10000:RETURN
  819. 15145 S6=X1:S7=Y1:GOSUB22000:F4=S6:F5=S7:GOTO15320
  820. 15150 IFK3=0THEN15165
  821. 15155 FORL=1TOK3
  822. 15156 F3=SQR((X1-K4(L))^2+(Y1-K5(L))^2)
  823. 15158 K8(L)=.5*(F3+K7(L)):NEXTL
  824. 15160 IFG(Q1,Q2)<>1000THENGOSUB1000
  825. 15162 IFA2<>0THENRETURN
  826. 15165 X7=10*(Q1-1)+S6:Y7=10*(Q2-1)+S7
  827. 15170 X1=INT(X7+10*D1*B8*D4+.5)
  828. 15175 Y1=INT(Y7+10*D1*B8*D6+.5):L6=0
  829. 15180 L5=0
  830. 15185 IFX1>0THEN15195
  831. 15190 X1=-X1+1:L5=1
  832. 15195 IFY1>0THEN15210
  833. 15200 Y1=-Y1+1:L5=1
  834. 15210 IFX1<=80THEN15220
  835. 15215 X1=161-X1:L5=1
  836. 15220 IFY1<=80THEN15230
  837. 15225 Y1=161-Y1:L5=1
  838. 15230 IFL5=0THEN15240
  839. 15235 L6=1:GOTO15180
  840. 15240 IFL6=0THEN15270
  841. 15260 PRINT:PRINT"*** MESSAGE FROM STARFLEET COMMAND.....STARDATE";
  842. 15261 PRINTFNR(D0):PRINT:PRINT"'PERMISSION TO CROSS GALACTIC ";
  843. 15262 PRINT"PERIMETER IS HEREBY DENIED.'"
  844. 15263 PRINT"        'SHUT DOWN ENGINES IMMMEDIATELY!'"
  845. 15264 PRINT
  846. 15265 PRINT"SCOTT HERE - 'ENGINES SHUT DOWN AT ";
  847. 15266 Z1=INT((X1+9)/10):Z2=INT((Y1+9)/10)
  848. 15267 PRINT"QUADRANT";Z1;"-";Z2;",  ";
  849. 15268 PRINT"SECTOR";X1-10*(Z1-1);"-";Y1-10*(Z2-1);"'"
  850. 15270 IFT5<>0THENRETURN
  851. 15295 Q1=INT((X1+9)/10):Q2=INT((Y1+9)/10)
  852. 15296 S6=X1-10*(Q1-1):S7=Y1-10*(Q2-1)
  853. 15307 GOSUB18400
  854. 15310 PRINT:PRINT"ENTERING THE ";G2$;" QUADRANT  (";Q1;"-";Q2;")"
  855. 15315 Q$(S6,S7)=LEFT$(S5$,1):GOSUB18000:RETURN
  856. 15320 Q$(S6,S7)=LEFT$(S5$,1)
  857. 15321 IFL6=1THENRETURN
  858. 15325 IFK3=0THEN15390
  859. 15330 FORL=1TOK3
  860. 15340 F3=SQR((F4-K4(L))^2+(F5-K5(L))^2)
  861. 15350 K8(L)=.5*(K7(L)+F3)
  862. 15360 K7(L)=F3
  863. 15370 NEXTL
  864. 15380 GOSUB28000
  865. 15390 GOSUB17000:RETURN
  866. 16000 REM-MOVECOM
  867. 16001 A=1:B=1
  868. 16010 FORK=1TOK3
  869. 16020 C=K4(K):D=K5(K)
  870. 16030 IFQ$(C,D)="C"THEN16050
  871. 16040 NEXTK
  872. 16050 N=0:F=K6(K)+100*K3
  873. 16060 IFF>1000THENN=INT(RND(1)*K7(K)+1)
  874. 16065 IF((C5$="DOCKED")AND((B4<>Q1)OR(B5<>Q2)))THENN=-S8
  875. 16070 IFN=0THENN=INT(((F+200*RND(1))/150)-5)
  876. 16071 IFN=0THENRETURN
  877. 16072 IF(N>0)AND(K7(K)<1.5)THENRETURN
  878. 16075 IFABS(N)>S8THENN=SGN(N)*ABS(S8)
  879. 16080 T=ABS(N):P=S6-C:Q=S7-D
  880. 16085 IF2*ABS(P)<ABS(Q)THENP=0
  881. 16090 IF2*ABS(Q)<ABS(P)THENQ=0
  882. 16095 IFP<>0THENP=SGN(P*N)
  883. 16100 IFQ<>0THENQ=SGN(Q*N)
  884. 16105 R=C:S=D:Q$(C,D)="."
  885. 16110 FORL2=1TOT:L=R+P:M=S+Q
  886. 16115 IF(L>0)AND(L<=10)THEN16120
  887. 16117 ONSGN(N)+2GOTO16240,16165,16165
  888. 16120 IF(M>0)AND(M<=10)THEN16130
  889. 16125 ONSGN(N)+2GOTO16240,16135,16135
  890. 16130 IFQ$(L,M)="."THEN16195
  891. 16135 IF(Q=B)OR(P=0)THEN16165
  892. 16140 M=S+B
  893. 16145 IF(M>0)AND(M<=10)THEN16155
  894. 16150 ONSGN(N)+2GOTO16240,16160,16160
  895. 16155 IFQ$(L,M)="."THEN16195
  896. 16160 B=-B
  897. 16165 IF(P=A)OR(Q=0)THEN16200
  898. 16170 L=R+A
  899. 16175 IF(L>0)AND(L<=10)THEN16185
  900. 16180 ONSGN(N)+2GOTO16240,16190,16190
  901. 16185 IFQ$(L,M)="."THEN16195
  902. 16190 A=-A:GOTO16200
  903. 16195 R=L:S=M
  904. 16200 NEXTL2
  905. 16205 Q$(R,S)="C"
  906. 16210 IF(R=C)AND(S=D)THENRETURN
  907. 16215 K4(K)=R:K5(K)=S:K7(K)=SQR((S6-R)^2+(S7-S)^2)
  908. 16220 K8(K)=K7(K):IFN>0THENPRINT"***COMMANDER ADVANCES TO";
  909. 16225 IFN<0THENPRINT"***COMMANDER RETREATS TO";
  910. 16230 PRINT" SECTOR";R;"-";S:GOSUB28000:RETURN
  911. 16240 I=Q1+INT((L+9)/10)-1:J=Q2+INT((M+9)/10)-1
  912. 16245 IF(I<1)OR(I>8)THEN16350
  913. 16250 IF(J<1)OR(J>8)THEN16350
  914. 16260 FORL3=1TOR2
  915. 16265 IF(C1(L3)=I)AND(C2(L3)=J)THEN16350
  916. 16270 NEXTL3:PRINT"***COMMANDER ESCAPES TO ";
  917. 16275 PRINT"QUADRANT";I;"-";J;"  (AND REGAINS STRENGTH)"
  918. 16280 K4(K)=K4(K3):K5(K)=K5(K3):K7(K)=K7(K3):K8(K)=K8(K3)
  919. 16285 K6(K)=K6(K3):K3=K3-1:C3=0
  920. 16290 IFC5$<>"DOCKED"THENGOSUB17000
  921. 16300 GOSUB28000
  922. 16310 G(Q1,Q2)=G(Q1,Q2)-100:G(I,J)=G(I,J)+100
  923. 16320 FORL3=1TOR2
  924. 16330 IF(C1(L3)=Q1)AND(C2(L3)=Q2)THEN16340
  925. 16335 NEXTL3
  926. 16340 C1(L3)=I:C2(L3)=J:RETURN
  927. 16350 A=-A:B=-B:GOTO16200
  928. 17000 REM - NEWCOND
  929. 17001 C5$="GREEN"
  930. 17010 IFE1<1000THENC5$="YELLOW"
  931. 17020 IFG(Q1,Q2)>99THENC5$="RED"
  932. 17030 RETURN
  933. 18000 REM- NEW QUAD
  934. 18001 J4=1:B6=0:B7=0:K3=0:C3=0
  935. 18010 U=G(Q1,Q2)
  936. 18020 IFU>999THEN18290
  937. 18030 K3=INT(.01*U):FORA=1TO10:FORB=1TO10:Q$(A,B)=".":NEXTB:NEXTA
  938. 18040 Q$(S6,S7)=LEFT$(S5$,1):U=G(Q1,Q2):IFU<100THEN18150
  939. 18050 U=U-100*K3:FORA=1TOK3
  940. 18060 S=FNB(1):K4(A)=S:T=FNB(1):K5(A)=T
  941. 18070 IFQ$(S,T)<>"."THEN18060
  942. 18080 Q$(S,T)="K":K7(A)=SQR((S6-S)^2+(S7-T)^2):K8(A)=K7(A)
  943. 18090 K6(A)=RND(1)*150+325:NEXTA
  944. 18100 IFR2=0THEN18140
  945. 18110 FORA=1TOR2
  946. 18115 IF(C1(A)=Q1)AND(C2(A)=Q2)THEN18130
  947. 18120 NEXTA:GOTO18140
  948. 18130 Q$(S,T)="C":K6(K3)=1000+400*RND(1):C3=1
  949. 18140 GOSUB28000
  950. 18150 IFU<10THEN18190
  951. 18160 U=U-10
  952. 18170 B6=FNB(1):B7=FNB(1):IFQ$(B6,B7)<>"."THEN18170
  953. 18180 Q$(B6,B7)="B"
  954. 18190 GOSUB17000:IFU<1THENRETURN
  955. 18200 FORA=1TOU
  956. 18210 S=FNB(1):T=FNB(1):IFQ$(S,T)<>"."THEN18210
  957. 18220 Q$(S,T)="*":NEXTA
  958. 18230 IF(T2<>Q1)OR(T3<>Q2)THENRETURN
  959. 18240 S=FNB(1):T=FNB(1):IFQ$(S,T)<>"."THEN18240
  960. 18250 Q$(S,T)="O":PRINT
  961. 18260 PRINT"MR. SPOCK - 'CAPTAIN, THE SHORT-RANGE SENSORS DETECT A"
  962. 18270 PRINT"SPACE WARP SOMEWHERE IN THIS QUADRANT.'"
  963. 18280 RETURN
  964. 18290 FORA=1TO10:FORB=1TO10:Q$(A,B)=".":NEXTB:NEXTA
  965. 18300 Q$(S6,S7)=LEFT$(S5$,1):RETURN
  966. 18400 G4$="III":L=2:IFQ2>=5THEN18420
  967. 18410 L=1
  968. 18420 G2$=G1$(2*(Q1-1)+L):L=Q2
  969. 18425 IFL<=4THEN18440
  970. 18430 L=Q2-4
  971. 18440 G3$="IV":IFL=4THEN18460
  972. 18450 G3$=LEFT$(G4$,L)
  973. 18460 G2$=G2$+" "+G3$:RETURN
  974. 19000 REM - NOVA
  975. 19001 IFRND(1)>.1THEN19015
  976. 19010 GOSUB27000:RETURN
  977. 19015 Q$(A5,A6)=".":PRINT"***STAR AT SECTOR";A5;"-";A6;"NOVAS."
  978. 19020 G(Q1,Q2)=G(Q1,Q2)-1:S1=S1+1
  979. 19025 B9=1:T6=1:T7=1:K=0:X1=0:Y1=0
  980. 19030 H4(B9,1)=A5:H4(B9,2)=A6
  981. 19035 FORM=B9TOT6:FORQ=1TO3:FORJ=1TO3
  982. 19040 IFJ*Q=4THEN19260
  983. 19045 J5=H4(M,1)+Q-2:J6=H4(M,2)+J-2
  984. 19050 IF(J5<1)OR(J5>10)THEN19260
  985. 19055 IF(J6<1)OR(J6>10)THEN19260
  986. 19060 IFQ$(J5,J6)="."THEN19260
  987. 19065 IFQ$(J5,J6)="O"THEN19260
  988. 19070 IFQ$(J5,J6)<>"*"THEN19105
  989. 19075 IFRND(1)>=.1THEN19085
  990. 19080 X2=J5:Y2=J6:GOSUB27000:RETURN
  991. 19085 T7=T7+1:H4(T7,1)=J5:H4(T7,2)=J6:G(Q1,Q2)=G(Q1,Q2)-1
  992. 19090 S1=S1+1:PRINT"***STAR AT SECTOR";J5;"-";J6;"NOVAS."
  993. 19100 GOTO19255
  994. 19105 IFQ$(J5,J6)<>"B"THEN19140
  995. 19110 G(Q1,Q2)=G(Q1,Q2)-10:FORV=1TOR3
  996. 19115 IF(B2(V)<>Q1)OR(B3(V)<>Q2)THEN19125
  997. 19120 B2(V)=B2(R3):B3(V)=B3(R3)
  998. 19125 NEXTV:R3=R3-1:B6=0:B7=0:B1=B1+1:GOSUB17000
  999. 19130 PRINT"***STARBASE AT SECTOR";J5;"-";J6;"DESTROYED."
  1000. 19135 GOTO19255
  1001. 19140 IF(S6<>J5)OR(S7<>J6)THEN19190
  1002. 19145 PRINT"***STARSHIP BUFFETED BY NOVA.":IFS4<>0THEN19155
  1003. 19150 E1=E1-1000:GOTO19170
  1004. 19155 IFS3>=1000THEN19180
  1005. 19160 D6=1000-S3:E1=E1-D6:GOSUB17000:S3=0:S4=0
  1006. 19165 PRINT"***STARSHIP SHIELDS KNOCKED OUT.":D4(8)=.005*D5*RND(1))*D6
  1007. 19170 IFE1>0THEN19185
  1008. 19175 F9=7:GOSUB10000:RETURN
  1009. 19180 S3=S3-1000
  1010. 19185 X1=X1+S6-H4(M,1):Y1=Y1+S7-H4(M,2):K=K+1:GOTO19260
  1011. 19190 IFQ$(J5,J6)<>"C"THEN19250
  1012. 19195 FORV=1TOK3
  1013. 19200 IF(K4(V)=J5)AND(K5(V)=J6)THEN19210
  1014. 19205 NEXTV
  1015. 19210 K6(V)=K6(V)-800:IFK6(V)<=0THEN19250
  1016. 19215 N5=J5+J5-H4(M,1):N6=J6+J6-H4(M,2)
  1017. 19220 PRINT"***COMMANDER AT SECTOR";J5;"-";J6;"DAMAGED";
  1018. 19225 IF(N5<1)OR(N5>10)OR(N6<1)OR(N6>10)THEN19245
  1019. 19230 PRINT" AND BUFFETED TO SECTOR";N5;"-";N6
  1020. 19235 Q$(N5,N6)="C":K4(V)=N5:K5(V)=N6
  1021. 19240 K7(V)=SQR((S6-N5)^2+(S7-N6)^2):K8(V)=K7(V)
  1022. 19241 Q$(J5,J6)="."
  1023. 19245 PRINT:GOTO19260
  1024. 19250 A5=J5:A6=J6:T2$=Q$(J5,J6):GOSUB6000:GOTO19260
  1025. 19255 PRINT:Q$(J5,J6)="."
  1026. 19260 NEXTJ:NEXTQ:NEXTM
  1027. 19265 IFT6=T7THEN19280
  1028. 19270 B9=T6+1:T6=T7:GOTO19035
  1029. 19280 IFK=0THENRETURN
  1030. 19290 D1=K*.1
  1031. 19300 IFX1<>0THENX1=SGN(X1)
  1032. 19310 IFY1<>0THENY1=SGN(Y1)
  1033. 19320 I=3*(X1+1)+Y1+2
  1034. 19330 D2=C5(I)
  1035. 19340 IFD2=0THEND1=0
  1036. 19350 IFD1=0THENRETURN
  1037. 19360 PRINT:PRINT"FORCE OF NOVA DISPLACES STARSHIP."
  1038. 19370 GOSUB15000:RETURN
  1039. 20000 REM-PHASERS
  1040. 20001 P=2:J3=1
  1041. 20020 IFC5$<>"DOCKED"THEN20030
  1042. 20025 PRINT"PHASERS CAN'T BE FIRED THRU BASE SHIELDS.":GOTO20080
  1043. 20030 IFD4(3)=0THEN20050
  1044. 20040 PRINT"PHASER BANKS DAMAGED.":GOTO20080
  1045. 20050 IFS4=0THEN20060
  1046. 20055 PRINT"SHIELDS MUST BE DOWN TO FIRE PHASERS.":GOTO20080
  1047. 20060 IFK3>0THEN20090
  1048. 20065 PRINT
  1049. 20070 PRINT"MR. SPOCK - 'CAPTAIN, THE SHORT-RANGE SENSORS"
  1050. 20075 PRINT"    DETECT NO KLINGONS IN THIS QUADRANT.'"
  1051. 20080 J3=0:RETURN
  1052. 20090 PRINT"PHASERS LOCKED ON TARGET.  ENERGY AVAILABLE=";
  1053. 20095 PRINT.01*INT(100*E1)
  1054. 20100 INPUT"UNITS TO FIRE";P1:IFP1<E1THEN20120
  1055. 20110 PRINT"ENERGY AVAILABLE =";:GOTO20095
  1056. 20120 IFP1>0THEN20140
  1057. 20130 J3=0:RETURN
  1058. 20140 E1=E1-P1
  1059. 20142 IFD4(11)=0THEN20147
  1060. 20144 P1=P1*(RND(1)*.5+.5)
  1061. 20145 PRINT:PRINT"COMPUTER MALFUNCTION HAMPERS PHASER ACCURACY.":PRINT
  1062. 20147 E=P1:IFK3=0THEN20310
  1063. 20150 E=0:T5=(K3*(K3+1))/2
  1064. 20160 FORI=1TOK3:H3(I)=((K3+1-I)/T5)*P1
  1065. 20170 H5(I)=ABS(K6(I))/(P*.9^K7(I))
  1066. 20180 IFH3(I)<=H5(I)THEN20200
  1067. 20190 E=E+(H3(I)-H5(I)):H3(I)=H5(I)
  1068. 20200 NEXTI
  1069. 20210 IFE=0THEN20280
  1070. 20220 FORI=1TOK3:R7=H5(I)-H3(I)
  1071. 20230 IFR7<=0THEN20260
  1072. 20240 IFR7>=ETHEN20270
  1073. 20250 H3(I)=H5(I):E=E-R7
  1074. 20260 NEXTI:GOTO20280
  1075. 20270 H3(I)=H3(I)+E:E=0
  1076. 20280 GOSUB12000
  1077. 20290 IF(E<>0)AND(A2=0)THEN20310
  1078. 20300 J3=1:RETURN
  1079. 20310 PRINTFNR(E);"EXPENDED ON EMPTY SPACE.":J3=1:RETURN
  1080. 21000 REM - PHOTONS
  1081. 21001 J3=1:IFD4(4)=0THEN21015
  1082. 21010 PRINT"PHOTON TUBES DAMAGED.":GOTO21035
  1083. 21015 IFT4<>0THEN21025
  1084. 21020 PRINT"NO TORPEDOS LEFT.":GOTO21035
  1085. 21025 INPUT"TORPEDO COURSE";C6
  1086. 21030 IFC6>=0THEN21040
  1087. 21035 J3=0:RETURN
  1088. 21040 INPUT"BURST OF 3";B$:N=1
  1089. 21045 IFLEFT$(B$,1)="N"THEN21066
  1090. 21050 IFLEFT$(B$,1)<>"Y"THEN21040
  1091. 21051 IFT4>2THEN21060
  1092. 21055 PRINT"NO BURST.  ONLY";T4;"TORPEDOS LEFT.":GOTO21035
  1093. 21060 INPUT"SPREAD ANGLE (3 - 30 DEG)";G2
  1094. 21061 IFG2<0THEN21035
  1095. 21062 IF(G2<3)OR(G2>30)THEN21060
  1096. 21063 G2=FND(G2)
  1097. 21065 N=3
  1098. 21066 REM - CONTINUE
  1099. 21070 FORZ6=1TON
  1100. 21075 IFC5$<>"DOCKED"THENT4=T4-1
  1101. 21080 Z7=Z6:R=RND(1)
  1102. 21085 R=(R+RND(1))*.5-.5
  1103. 21090 IF(R>=-.4)AND(R<=.4)THEN21125
  1104. 21095 R=(RND(1)+1.2)*R:IFN=3THEN21105
  1105. 21100 PRINT"***TORPEDO MISFIRES...":GOTO21110
  1106. 21105 PRINT"***TORPEDO NUMBER";Z6;"MISFIRES..."
  1107. 21110 IF RND(1)>.2THEN21125
  1108. 21115 PRINT"***PHOTON TUBES DAMAGED BY MISFIRE."
  1109. 21120 D4(4)=D5*(1+2*RND(1)):GOTO21440
  1110. 21125 IF(S4<>0)OR(C5$="DOCKED")THENR=R+.001*S3*R
  1111. 21130 A3=C6+.25*R:IFN=1THEN21140
  1112. 21135 A8=(15-A3+(2-Z6)*G2)*.5235988:PRINT
  1113. 21137 PRINT"TRACK FOR TORPEDO NUMBER";Z7;"--":GOTO21145
  1114. 21140 PRINT:PRINT"TORPEDO TRACK --":A8=(15-A3)*.5235988
  1115. 21145 X4=-SIN(A8):Y4=COS(A8):B8=ABS(X4)
  1116. 21146 IFABS(Y4)>ABS(X4)THENB8=ABS(Y4)
  1117. 21150 X4=X4/B8:Y4=Y4/B8:X5=S6:Y5=S7
  1118. 21155 FORL9=1TO15:X5=X5+X4:A5=INT(X5+.5)
  1119. 21160 IF(A5<1)OR(A5>10)THEN21430
  1120. 21165 Y5=Y5+Y4:A6=INT(Y5+.5)
  1121. 21170 IF(A6<1)OR(A6>10)THEN21430
  1122. 21175 IF(L9=5)OR(L9=9)THENPRINT
  1123. 21180 PRINTFNR(X5);"-";FNR(Y5);", ";
  1124. 21185 IFQ$(A5,A6)<>"."THEN21195
  1125. 21190 GOTO21425
  1126. 21195 PRINT:IFQ$(A5,A6)="K"THEN21220
  1127. 21200 IFQ$(A5,A6)<>"C"THEN21325
  1128. 21205 IFRND(1)>.1THEN21220
  1129. 21210 PRINT"***COMMANDER AT SECTOR";A5;"-";A6;"USES ANTI-PHOTON";
  1130. 21215 PRINT" DEVICE!":PRINT"   TORPEDO NEUTRALIZED.":GOTO21435
  1131. 21220 FORV=1TOK3
  1132. 21225 IF(A5=K4(V))AND(A6=K5(V))THEN21235
  1133. 21230 NEXTV
  1134. 21235 K=K6(V):W3=200+800*RND(1)
  1135. 21240 IFABS(K)<W3THENW3=ABS(K)
  1136. 21245 K6(V)=K-SGN(K)*ABS(W3):IFK6(V)<>0THEN21255
  1137. 21250 T2$=Q$(A5,A6):GOSUB6000:GOTO21435
  1138. 21255 IFQ$(A5,A6)="K"THENPRINT"***KLINGON AT";
  1139. 21260 IFQ$(A5,A6)="C"THENPRINT"***COMMANDER AT";
  1140. 21265 PRINTA5;"-";A6;
  1141. 21270 A7=A8+2.5*(RND(1)-.5)
  1142. 21275 W3=ABS(-SIN(A7)):IFABS(COS(A7))>W3THENW3=ABS(COS(A7))
  1143. 21280 X7=-SIN(A7)/W3:Y7=COS(A7)/W3
  1144. 21285 P=INT(A5+X7+.5):Q=INT(A6+Y7+.5)
  1145. 21290 IF(P<1)OR(P>10)OR(Q<1)OR(Q>10)THEN21320
  1146. 21295 IFQ$(P,Q)<>"."THEN21320
  1147. 21300 Q$(P,Q)=Q$(A5,A6):Q$(A5,A6)=".":PRINT"DAMAGED--"
  1148. 21305 PRINT"   DISPLACED BY BLAST TO SECTOR";P;"-";Q
  1149. 21310 K4(V)=P:K5(V)=Q:K7(V)=SQR((S6-P)^2+(S7-Q)^2)
  1150. 21311 K8(V)=K7(V)
  1151. 21315 GOSUB28000:GOTO21435
  1152. 21320 PRINT"DAMAGED, BUT NOT DESTROYED.":GOTO21435
  1153. 21325 IFQ$(A5,A6)<>"B"THEN21365
  1154. 21330 PRINT"***STARBASE DESTROYED...CONGRATULATIONS...YOU TURKEY!"
  1155. 21335 IFS2(Q1,Q2)<0THENS2(Q1,Q2)=0
  1156. 21340 FORW=1TOR3
  1157. 21345 IF(B2(W)<>Q1)OR(B3(W)<>Q2)THEN21355
  1158. 21350 B2(W)=B2(R3):B3(W)=B3(R3)
  1159. 21355 NEXTW:Q$(A5,A6)=".":R3=R3-1:B6=0:B7=0
  1160. 21360 G(Q1,Q2)=G(Q1,Q2)-10:B1=B1+1:GOSUB17000:GOTO21435
  1161. 21365 IFQ$(A5,A6)<>"*"THEN21405
  1162. 21370 IFRND(1)>.15THEN21385
  1163. 21375 PRINT"***STAR AT SECTOR";A5;"-";A6;"UNAFFECTED BY PHOTON BLAST"
  1164. 21380 GOTO21435
  1165. 21385 X2=A5:Y2=A6:GOSUB19000:A5=X2:A6=Y2
  1166. 21390 IFG(Q1,Q2)=1000THENRETURN
  1167. 21395 IFA2<>0THENRETURN
  1168. 21400 GOTO21435
  1169. 21405 PRINT:PRINT"AAAAAIIIIIIIEEEEEEEAAAAAAAUUUUUUGGGGGGGHHHHHHHHHH!!!"
  1170. 21410 PRINT"    HACK!     HACK!    COUGH!      *CHOKE!*"
  1171. 21415 PRINT:PRINT"MR. SPOCK-  'FASCINATING!'":Q$(A5,A6)="."
  1172. 21420 T2=0:T3=0:GOTO21435
  1173. 21425 NEXTL9
  1174. 21430 PRINT:PRINT"TORPEDO MISSED!"
  1175. 21435 NEXTZ6
  1176. 21440 IFR1<>0THENRETURN
  1177. 21445 F9=1:GOSUB10000:RETURN
  1178. 22000 REM - RAM
  1179. 22001 PRINT:PRINT"*** RED ALERT!!   RED ALERT!! ***":PRINT
  1180. 22010 PRINT"*** COLLISION IMMINENT!!":PRINT
  1181. 22020 PRINT"*** ";S5$;" RAMS ";:W7=1:IFQ$(S6,S7)="C"THENW7=2
  1182. 22030 IFW7=1THENPRINT"KLINGON AT ";
  1183. 22040 IFW7=2THENPRINT"COMMANDER AT ";
  1184. 22050 PRINT"SECTOR";S6;"-";S7:A5=S6:A6=S7:T2$=Q$(S6,S7)
  1185. 22060 GOSUB6000:PRINT"***";S5$;" HEAVILY DAMAGED."
  1186. 22070 K=INT(5+RND(1)*20):PRINT"***SICKBAY REPORTS";K;"CASUALTIES!"
  1187. 22080 C4=C4+K:FORL=1TO12:I=RND(1)
  1188. 22090 J=(3.5*W7*(RND(1)+I)+1)*D5
  1189. 22100 IFL=6THENJ=J/3
  1190. 22110 D4(L)=D4(L)+T1+J:NEXTL:D4(6)=D4(6)-3
  1191. 22120 IFD4(6)<0THEND4(6)=0
  1192. 22130 S4=0:IFR1<>0THENRETURN
  1193. 22140 F9=1:GOSUB10000:RETURN
  1194. 23000 REM - SCORE
  1195. 23001 P=D0-J2:IF(P<>0)AND(R1=0)THEN23020
  1196. 23010 IFP<5THENP=5
  1197. 23020 N=(K2+K1)/P:K=INT(500*N+.5):L=0
  1198. 23030 IFG1<>0THENL=100*S8
  1199. 23035 I=0
  1200. 23040 IFLEFT$(S5$,1)="E"THENM=0
  1201. 23045 IFLEFT$(S5$,1)="F"THENM=1
  1202. 23050 IFLEFT$(S5$,1)=""THENM=2
  1203. 23060 IFA1=0THENI=200
  1204. 23070 J=10*K1+50*K2+K+L-I-100*B1-100*M-35*N1-3*S1-C4
  1205. 23080 PRINT:IFJ<>0THEN23100
  1206. 23090 PRINT"AS YET, YOU HAVE NO SCORE.":RETURN
  1207. 23100 PRINT"YOUR SCORE --":PRINT:IFK1=0THEN23120
  1208. 23110 PRINTK1;TAB(5);"ORDINARY KLINGON(S) DESTROYED";TAB(36);10*K1
  1209. 23120 IFK2=0THEN23140
  1210. 23130 PRINTK2;TAB(5);"KLINGON COMMANDER(S) DESTROYED";TAB(36);50*K2
  1211. 23140 IFK=0THEN23160
  1212. 23150 PRINTFNR(N);TAB(5);"KLINGONS PER STARDATE, AVERAGE";
  1213. 23155 PRINTTAB(36);K
  1214. 23160 IFS1=0THEN23180
  1215. 23170 PRINTS1;TAB(5);"STAR(S) DESTROYED";TAB(36);-3*S1
  1216. 23180 IFB1=0THEN23200
  1217. 23190 PRINTB1;TAB(5);"STARBASES DESTROYED";TAB(36);-100*B1
  1218. 23200 IFN1=0THEN23220
  1219. 23210 PRINTN1;TAB(5);"SOS CALL(S) TO A STARBASE";TAB(36);-35*N1
  1220. 23220 IFC4=0THEN23240
  1221. 23230 PRINTC4;TAB(5);"CASUALTIES INCURRED";TAB(36);-C4
  1222. 23240 IFM=0THEN23260
  1223. 23250 PRINTM;TAB(5);"SHIP(S) LOST OR DESTROYED";TAB(36)-100*M
  1224. 23260 IFA1<>0THEN23280
  1225. 23270 PRINT"PENALTY FOR GETTING YOURSELF KILLED";TAB(36);-200
  1226. 23280 IFG1=0THEN23300
  1227. 23290 PRINTTAB(5);"BONUS FOR WINNING ";S$(S8);" GAME";TAB(36);L
  1228. 23300 PRINTTAB(5);"-------------------------------------"
  1229. 23310 PRINTTAB(28);"TOTAL";TAB(36);J;"**":RETURN
  1230. 24000 REM-SETUP
  1231. 24001 A2=0:G1=0:GOSUB4000:S5$="ENTERPRISE"
  1232. 24010 I7=5000:E1=I7:I8=2500:S3=I8:S4=0:S9=S4:J1=4:L1=J1
  1233. 24020 Q1=FNA(1):Q2=FNA(1):S6=FNB(1):S7=FNB(1):I9=10:T4=I9
  1234. 24030 W1=5:W2=25:FORI=1TO12:D4(I)=0:NEXT
  1235. 24040 J2=100*INT(31*RND(1)+20):D0=J2:K1=0:K2=0:N1=0:N2=0:R6=0:C4=0
  1236. 24050 A1=1:D3=.25:FORI=1TO8:FORJ=1TO8:S2(I,J)=0:NEXTJ:NEXTI
  1237. 24060 F1(1)=D0-.5*I5*LOG(RND(1)):F1(5)=1E30
  1238. 24070 F1(2)=D0-1.5*(I5/R2)*LOG(RND(1)):I6=0
  1239. 24080 F1(3)=D0-.3*I5*LOG(RND(1)):F1(4)=D0-.3*I5*LOG(RND(1))
  1240. 24090 FORI=1TO8:FORJ=1TO8:K=INT(RND(1)*9+1):I6=I6+K
  1241. 24100 G(I,J)=K:NEXTJ:NEXTI:S1=0
  1242. 24110 FOR I=1TOI2
  1243. 24120 X=INT(RND(1)*6+2):Y=INT(RND(1)*6+2)
  1244. 24130 IFG(X,Y)>=10THEN24120
  1245. 24140 IFI<2THEN24180
  1246. 24150 K=I-1:FORJ=1TOK:D1=SQR((B2(J)-X)^2+(B3(J)-Y)^2)
  1247. 24160 IFD1<2THEN24120
  1248. 24170 NEXTJ
  1249. 24180 B2(I)=X:B3(I)=Y:S2(X,Y)=-1:G(X,Y)=G(X,Y)+10:NEXTI
  1250. 24190 B1=0:K=I1-I4:L=INT(.25*S8*(9-L2)+1)
  1251. 24200 M=INT((1-RND(1)^2)*L):IFM>KTHENM=K
  1252. 24210 N=100*M
  1253. 24220 X=FNA(1):Y=FNA(1):IFG(X,Y)+N>999THEN24220
  1254. 24230 G(X,Y)=G(X,Y)+N:K=K-M:IFK<>0THEN24200
  1255. 24240 FORI=1TOI4
  1256. 24250 X=FNA(1):Y=FNA(1):IF(G(X,Y)<99)AND(RND(1)<.75)THEN24250
  1257. 24260 IFG(X,Y)>899THEN24250
  1258. 24270 IFI=1THEN24300
  1259. 24280 M=I-1:FORJ=1TOM:IF(C1(J)=X)AND(C2(J)=Y)THEN24250
  1260. 24290 NEXTJ
  1261. 24300 G(X,Y)=G(X,Y)+100:C1(I)=X:C2(I)=Y:NEXTI
  1262. 24305 I=INT(D0):PRINT:S0=0
  1263. 24310 T2=FNA(1):T3=FNA(1):IFG(T2,T3)<100THEN24310
  1264. 24320 IFS8<>1THEN24440
  1265. 24330 PRINT"IT IS STARDATE";I;"...THE ORGANIAN PEACE TREATY BETWEEN"
  1266. 24340 PRINT"THE UNITED FEDERATION OF PLANETS AND THE KLINGON EMPIRE"
  1267. 24350 PRINT"HAS COLLAPSED AND THE FEDERATION IS BEING ATTACKED BY A"
  1268. 24360 PRINT"DEADLY KLINGON INVASION FLEET.  AS CAPTAIN OF THE STARSHIP"
  1269. 24370 PRINT"U.S.S. ENTERPRISE, IT IS YOUR MISSION TO SEEK OUT AND"
  1270. 24380 PRINT"DESTROY THIS INVASION FORCE OF";I1;"BATTLE CRUISERS."
  1271. 24390 PRINT:PRINT"YOU HAVE AN INITIAL ALLOTMENT OF";INT(I5);
  1272. 24400 PRINT"STARDATES":PRINT"TO COMPLETE YOUR MISSION."
  1273. 24410 PRINT"AS THE MISSION PROCEEDS, YOU MAY BE GIVEN MORE TIME."
  1274. 24420 PRINT:PRINT"YOU WILL HAVE";I2;"SUPPORTING STARBASE(S).":PRINT
  1275. 24430 GOTO24515
  1276. 24440 PRINT"STARDATE..............";I
  1277. 24450 PRINT"NUMBER OF KLINGONS....";I1
  1278. 24460 PRINT"NUMBER OF STARDATES...";INT(I5)
  1279. 24470 PRINT"NUMBER OF STARBASES...";I2
  1280. 24480 PRINT"STARBASE LOCATIONS....";
  1281. 24490 FORI=1TOI2:PRINTB2(I);"-";B3(I);
  1282. 24500 IFI<>I2THENPRINT", ";
  1283. 24510 NEXTI:PRINT:PRINT
  1284. 24515 GOSUB18400
  1285. 24520 PRINT"THE ";S5$;" IS CURRENTLY IN THE ";G2$;" QUADRANT."
  1286. 24530 GOSUB18000:RETURN
  1287. 25000 REM - SETWARP
  1288. 25010 INPUT"WARP FACTOR";K
  1289. 25020 PRINT
  1290. 25025 IFK<1THEN25140
  1291. 25026 IFK>10THEN25150
  1292. 25030 J=W1:W1=K:W2=W1*W1
  1293. 25040 IF(W1<=J)OR(W1<=6)THEN25070
  1294. 25050 IFW1<=8THEN25080
  1295. 25060 IFW1>8THEN25100
  1296. 25070 PRINT"ENSIGN CHEKOV - 'WARP FACTOR";W1;"CAPTAIN'":RETURN
  1297. 25080 PRINT"ENGINEER SCOTT - 'AYE, BUT OUR MAXIMUM SAFE SPEED";
  1298. 25090 PRINT" IS WARP 6.'":RETURN
  1299. 25100 IFW1=10THEN25130
  1300. 25110 PRINT"ENGINEER SCOTT-'AYE, CAPTAIN, BUT OUR ENGINES MAY NOT ";
  1301. 25120 PRINT"TAKE IT.'":RETURN
  1302. 25130 PRINT"ENGINEER SCOTT-'AYE, CAPTAIN, WE'LL GIVE IT A TRY.'":RETURN
  1303. 25140 PRINT"ENSIGN CHEKOV-'WE CAN'T GO BELOW WARP 1, CAPTAIN.'":RETURN
  1304. 25150 PRINT"ENSIGN CHEKOV-'OUR TOP SPEED IS WARP 10, CAPTAIN.'"
  1305. 25160 RETURN
  1306. 26000 REM - SHIELDS
  1307. 26001 J3=0:IFD4(8)<>0THEN26600
  1308. 26010 IFS4<>0THEN26530
  1309. 26500 INPUT"SHIELDS ARE DOWN.  DO YOU WANT THEM UP";B$
  1310. 26510 IFLEFT$(B$,1)="Y"THEN26560
  1311. 26520 RETURN
  1312. 26530 INPUT"SHIELDS ARE UP.  DO YOU WANT THEM DOWN";B$
  1313. 26540 IFLEFT$(B$,1)="Y"THEN26590
  1314. 26550 RETURN
  1315. 26560 S4=1:S9=1:IFC5$<>"DOCKED"THENE1=E1-50
  1316. 26570 PRINT"SHIELDS RAISED.":IFE1<=0THEN26610
  1317. 26580 J3=1:RETURN
  1318. 26590 S4=0:S9=1:PRINT"SHIELDS LOWERED.":J3=1:RETURN
  1319. 26600 PRINT"SHIELDS DAMAGED AND DOWN.":RETURN
  1320. 26610 PRINT:PRINT"SHIELDS USE UP LAST OF THE ENERGY."
  1321. 26620 F9=4:GOSUB10000:RETURN
  1322. 27000 REM - SUPERNOVA
  1323. 27001 IFX2<>0THEN27100
  1324. 27010 N=INT(RND(1)*I6+1):FORX=1TO8:FORY=1TO8
  1325. 27020 N=N-(G(X,Y)-INT(G(X,Y)/10)*10):IFN<=0THEN27040
  1326. 27030 NEXTY:NEXTX:RETURN
  1327. 27040 IF(X<>Q1)OR(Y<>Q2)THEN27150
  1328. 27050 IFJ4<>0THEN27150
  1329. 27060 N=INT(RND(1)*(G(X,Y)-INT(G(X,Y)/10)*10))+1
  1330. 27070 FORX3=1TO10:FORY3=1TO10:IFQ$(X3,Y3)<>"*"THEN27090
  1331. 27080 N=N-1:IFN=0THEN27100
  1332. 27090 NEXTY3:NEXTX3
  1333. 27100 PRINT:PRINT"*** RED ALERT!!  RED ALERT!! ***
  1334. 27105 X3=X2:Y3=Y2
  1335. 27110 PRINT"*** INCIPIENT SUPERNOVA DETECTED AT SECTOR";X3;"-";Y3
  1336. 27120 X=Q1:Y=Q2:K=(X2-S6)^2+(Y2-S7)^2
  1337. 27130 IFK>1.5THEN27180
  1338. 27140 PRINT"*** EMERGENCY AUTO-OVERRIDE JAMMED ***":A2=1:GOTO27180
  1339. 27150 IFD4(9)<>0THEN27180
  1340. 27160 PRINT:PRINT"MESSAGE FROM STARFLEET COMMAND...STARDATE";INT(D0)
  1341. 27170 PRINT"'SUPERNOVA IN QUADRANT";X;"-";Y;
  1342. 27175 PRINT"....CAUTION ADVISED'"
  1343. 27180 N=G(X,Y):R=INT(N/100):Q=0
  1344. 27190 IF(X<>Q1)OR(Y<>Q2)THEN27210
  1345. 27200 K3=0:C3=0
  1346. 27210 IFR=0THEN27270
  1347. 27220 R1=R1-R:IFR2=0THEN27270
  1348. 27230 FORL=1TOR2:IF(C1(L)<>X)OR(C2(L)<>Y)THEN27260
  1349. 27240 C1(L)=C1(R2):C2(L)=C2(R2):C1(R2)=0:C2(R2)=0
  1350. 27250 R2=R2-1:R=R-1:Q=1:IFR2=0THENF1(2)=1E30
  1351. 27260 NEXTL
  1352. 27270 IFR3=0THEN27310
  1353. 27280 FORL=1TOR3:IF(B2(L)<>X)OR(B3(L)<>Y)THEN27300
  1354. 27290 B2(L)=B2(R3):B3(L)=B3(R3):B2(R3)=0:B3(R3)=0:R3=R3-1
  1355. 27300 NEXTL
  1356. 27310 IFX2=0THEN27350
  1357. 27320 N=G(X,Y)-INT(G(X,Y)/100)*100
  1358. 27330 S1=S1+(N-INT(N/10)*10):B1=B1+INT(N/10)
  1359. 27340 K1=K1+R:K2=K2+Q
  1360. 27350 IF(S2(X,Y)<>0)AND(D4(9)<>0)THENS2(X,Y)=1000+G(X,Y)
  1361. 27360 IF(D4(9)=0)OR((Q1=X)AND(Q2=Y))THENS2(X,Y)=1
  1362. 27370 G(X,Y)=1000
  1363. 27380 IF(R1<>0)OR((X=Q1)AND(Y=Q2))THEN27430
  1364. 27390 PRINT:PRINT"MR. SPOCK-  'CAPTAIN, A SUPERNOVA IN QUADRANT";
  1365. 27400 PRINTX;"-";Y;"HAS JUST DESTROYED THE LAST OF THE KLINGONS.'"
  1366. 27420 F9=1:GOSUB10000:RETURN
  1367. 27430 IFA2=0THENRETURN
  1368. 27440 F9=8:GOSUB10000:RETURN
  1369. 28000 REM - SORTKL
  1370. 28001 IFK3<=1THENRETURN
  1371. 28005 Z4=0
  1372. 28010 FORO=1TOK3-1:IFK7(O)<=K7(O+1)THEN28080
  1373. 28020 K=K7(O):K7(O)=K7(O+1):K7(O+1)=K
  1374. 28030 K=K8(O):K8(O)=K8(O+1):K8(O+1)=K
  1375. 28040 K=K4(O):K4(O)=K4(O+1):K4(O+1)=K
  1376. 28050 K=K5(O):K5(O)=K5(O+1):K5(O+1)=K
  1377. 28060 K=K6(O):K6(O)=K6(O+1):K6(O+1)=K
  1378. 28070 Z4=1
  1379. 28080 NEXTO
  1380. 28090 IFZ4<>0THEN28005
  1381. 28100 RETURN
  1382. 29000 REM-SRSCAN
  1383. 29001 IFD(1)<>0THEN29230
  1384. 29010 PRINT:PRINT"    1 2 3 4 5 6 7 8 9 10"
  1385. 29020 FORI=1TO10:IFI<10THENPRINT" ";
  1386. 29030 PRINTI;:FORJ=1TO10:PRINTQ$(I,J);" ";:NEXTJ
  1387. 29040 ONIGOTO29050,29060,29080,29090,29140
  1388. 29045 ONI-5GOTO29150,29160,29170,29200,29210
  1389. 29050 PRINT" STARDATE      ";FNR(D0):GOTO29220
  1390. 29060 IFC5$<>"DOCKED"THENGOSUB17000
  1391. 29070 PRINT" CONDITION      ";C5$:GOTO29220
  1392. 29080 PRINT" POSITION      ";Q1;"-";Q2;", ";S6;"-";S7:GOTO29220
  1393. 29090 PRINT" LIFE SUPPORT   ";:IFD4(5)<>0THEN29110
  1394. 29100 PRINT"ACTIVE":GOTO29220
  1395. 29110 IFC5$<>"DOCKED"THEN29130
  1396. 29120 PRINT"DAMAGED, SUPPORTED BY STARBASE":GOTO29220
  1397. 29130 PRINT"DAMAGED, RESERVES=";FNS(L1):GOTO29220
  1398. 29140 PRINT" WARP FACTOR   ";FNR(W1):GOTO29220
  1399. 29150 PRINT" ENERGY";SPC(8);.01*INT(100*E1):GOTO29220
  1400. 29160 PRINT" TORPEDOS      ";T4:GOTO29220
  1401. 29170 PRINT" SHIELDS        ";:B$="DOWN,":IFS4<>0THENB$="UP,"
  1402. 29180 IFD4(8)>0THENB$="DAMAGED,"
  1403. 29190 PRINTB$;INT(100*S3/I8+.5);"%":GOTO29220
  1404. 29200 PRINT" KLINGONS LEFT ";R1:GOTO29220
  1405. 29210 PRINT" TIME LEFT     ";FNS(R5)
  1406. 29220 NEXTI:RETURN
  1407. 29230 PRINT"SHORT RANGE SENSORS DAMAGED.":RETURN
  1408. 30000 REM - TIMEWARP
  1409. 30001 PRINT:PRINT"*** TIME WARP ENTERED ***":PRINT"YOU ARE TRAVELING ";
  1410. 30010 IFS0<>0THEN30050
  1411. 30020 T1=-.5*I5*LOG(RND(1))
  1412. 30030 PRINT"FORWARD IN TIME";FNR(T1);"STARDATES."
  1413. 30040 F1(2)=F1(2)+T1:GOTO30200
  1414. 30050 M=D0:D0=D9(1)
  1415. 30060 PRINT"BACKWARD IN TIME";FNR(M-D0);"STARDATES.":S0=0
  1416. 30070 R1=D9(2):R2=D9(3):R3=D9(4):R4=D9(5):R5=D9(6)
  1417. 30080 S1=D9(7):B1=D9(8):K1=D9(9):K2=D9(10)
  1418. 30090 FORI=1TO8:FORJ=1TO8:G(I,J)=D9(I-1+8*(J-1)+11):NEXTJ:NEXTI
  1419. 30100 FORI=75TO84:C1(I-74)=D9(I):NEXT
  1420. 30110 FORI=85TO94:C2(I-84)=D9(I):NEXT
  1421. 30120 FORI=95TO99:B2(I-94)=D9(I):NEXT
  1422. 30130 FORI=100TO104:B3(I-99)=D9(I):NEXT:B4=D9(105):B5=D9(106)
  1423. 30140 F1(1)=D0-.5*I5*LOG(RND(1))
  1424. 30150 IFR2<>0THENF1(2)=D0-(I5/R2)*LOG(RND(1))
  1425. 30160 F1(3)=D0-.5*I5*LOG(RND(1))
  1426. 30170 FORI=1TO8:FORJ=1TO8:IF1<S2(I,J)THENS2(I,J)=1
  1427. 30180 NEXTJ:NEXTI
  1428. 30185 PRINT
  1429. 30190 PRINT"SPOCK HAS RECONSTRUCTED A CORRECT STAR CHART FROM MEMORY."
  1430. 30200 GOSUB18000:RETURN
  1431. 31000 REM - TRANSFER
  1432. 31001 J3=0
  1433. 31010 IFD4(12)<>0THEN31120
  1434. 31020 INPUT"NUMBER OF UNITS TO SHIELDS";Z3
  1435. 31030 IFZ3<0THENRETURN
  1436. 31040 IFE1+S3-Z3>0THEN31060
  1437. 31050 PRINT"SCOTT HERE-  'WE ONLY HAVE";FNR(E1+S3);"UNITS LEFT.'"
  1438. 31051 RETURN
  1439. 31060 E1=E1+S3-Z3:S3=Z3:PRINT"--ENERGY TRANSFER COMPLETE--"
  1440. 31070 PRINT"(SHIP ENERGY=";FNR(E1);"    SHIELD ENERGY=";FNR(S3);")"
  1441. 31075 J3=1
  1442. 31080 T1=.1:P5=(K3+4*C3)/48:IFP5<.1THENP5=.1
  1443. 31090 IFP5>RND(1)THENGOSUB1000
  1444. 31100 IFA2<>0THENRETURN
  1445. 31110 GOSUB9000:RETURN
  1446. 31120 PRINT"TRANSFER PANEL DAMAGED.":RETURN
  1447. 32000 REM - VISUAL
  1448. 32001 INPUT"WHICH DIRECTION";Z
  1449. 32005 PRINT
  1450. 32010 J3=0:IFZ<0THENRETURN
  1451. 32012 IFZ<=12THEN32020
  1452. 32014 PRINT"DIRECTIONS ARE FROM 0 TO 12 ONLY":GOTO32001
  1453. 32020 T1=.05:P=(K3+4*C3)/48:IFP<.05THENP=.05
  1454. 32030 IFP>RND(1)THENGOSUB1000
  1455. 32040 IFA2<>0THENRETURN
  1456. 32050 GOSUB9000:J3=1:IFA2<>0THENRETURN
  1457. 32080 D5=INT((Z/12)*8+1.5):IFD5>8THEND5=1
  1458. 32085 FORI=1TO5:FORJ=1TO5:V$(I,J)=" ":NEXTJ:NEXTI:N=0
  1459. 32087 V$(3,3)=LEFT$(S5$,1)
  1460. 32090 OND5GOTO32100,32130,32150,32170,32190,32220,32260,32300
  1461. 32100 I=S6-2:J=S7-2:V$(1,1)=Q$:IF(J>0)AND(I>0)THENV$(1,1)=Q$(I,J)
  1462. 32110 I=S6-1:J=S7-1:V$(2,2)=Q$:IF(I>0)AND(J>0)THENV$(2,2)=Q$(I,J)
  1463. 32120 N=N+1:IFN=3THEN32350
  1464. 32125 I=S6-2:V$(1,2)=Q$:IF(I>0)AND(J>0)THENV$(1,2)=Q$(I,J)
  1465. 32130 I=S6-2:V$(1,3)=Q$:IFI>0THENV$(1,3)=Q$(I,S7)
  1466. 32135 I=S6-1:V$(2,3)=Q$:IFI>0THENV$(2,3)=Q$(I,S7)
  1467. 32140 N=N+1:IFN=3THEN32350
  1468. 32145 I=S6-2:J=S7+1:V$(1,4)=Q$:IF(I>0)AND(J<11)THENV$(1,4)=Q$(I,J)
  1469. 32150 I=S6-2:J=S7+2:V$(1,5)=Q$:IF(I>0)AND(J<11)THENV$(1,5)=Q$(I,J)
  1470. 32155 I=S6-1:J=S7+1:V$(2,4)=Q$:IF(I>0)AND(J<11)THENV$(2,4)=Q$(I,J)
  1471. 32160 N=N+1:IFN=3THEN32350
  1472. 32165 J=S7+2:V$(2,5)=Q$:IF(I>0)AND(J<11)THENV$(2,5)=Q$(I,J)
  1473. 32170 J=S7+2:V$(3,5)=Q$:IFJ<11THENV$(3,5)=Q$(S6,J)
  1474. 32175 J=S7+1:V$(3,4)=Q$:IFJ<11THENV$(3,4)=Q$(S6,J)
  1475. 32180 N=N+1:IFN=3THEN32350
  1476. 32185 I=S6+1:J=S7+2:V$(4,5)=Q$:IF(I<11)AND(J<11)THENV$(4,5)=Q$(I,J)
  1477. 32190 I=S6+2:J=S7+2:V$(5,5)=Q$:IF(I<11)AND(J<11)THENV$(5,5)=Q$(I,J)
  1478. 32195 I=S6+1:J=S7+1:V$(4,4)=Q$:IF(I<11)AND(J<11)THENV$(4,4)=Q$(I,J)
  1479. 32200 N=N+1:IFN=3THEN32350
  1480. 32210 I=S6+2:V$(5,4)=Q$:IF(I<11)AND(J<11)THENV$(5,4)=Q$(I,J)
  1481. 32220 I=S6+2:V$(5,3)=Q$:IFI<11THENV$(5,3)=Q$(I,S7)
  1482. 32230 I=S6+1:V$(4,3)=Q$:IFI<11THENV$(4,3)=Q$(I,S7)
  1483. 32240 N=N+1:IFN=3THEN32350
  1484. 32250 I=S6+2:J=S7-1:V$(5,2)=Q$:IF(I<11)AND(J>0)THENV$(5,2)=Q$(I,J)
  1485. 32260 I=S6+2:J=S7-2:V$(5,1)=Q$:IF(I<11)AND(J>0)THENV$(5,1)=Q$(I,J)
  1486. 32270 I=S6+1:J=S7-1:V$(4,2)=Q$:IF(I<11)AND(J>0)THENV$(4,2)=Q$(I,J)
  1487. 32280 N=N+1:IFN=3THEN32350
  1488. 32290 J=S7-2:V$(4,1)=Q$:IF(I<11)AND(J>0)THENV$(4,1)=Q$(I,J)
  1489. 32300 J=S7-2:V$(3,1)=Q$:IFJ>0THENV$(3,1)=Q$(S6,J)
  1490. 32310 J=S7-1:V$(3,2)=Q$:IFJ>0THENV$(3,2)=Q$(S6,J)
  1491. 32320 N=N+1:IFN=3THEN32350
  1492. 32330 I=S6-1:J=S7-2:V$(2,1)=Q$:IF(I>0)AND(J>0)THENV$(2,1)=Q$(I,J)
  1493. 32340 GOTO32100
  1494. 32350 FORI=1TO5
  1495. 32360 IF(V$(I,1)=" ")AND(V$(I,3)=" ")AND(V$(I,5)=" ")THEN32390
  1496. 32370 PRINT"  ";
  1497. 32380 FORJ=1TO5:PRINTV$(I,J);" ";:NEXTJ:PRINT
  1498. 32390 NEXTI:RETURN
  1499. 33000 REM - WAIT
  1500. 33001 J3=0:INPUT"HOW MANY STARDATES";Z5
  1501. 33010 IF(Z5<R5)AND(K3=0)THEN33030
  1502. 33020 INPUT"ARE YOU SURE";B$:IFLEFT$(B$,1)<>"Y"THENRETURN
  1503. 33030 R6=1
  1504. 33040 IFZ5<=0THENR6=0
  1505. 33050 IFR6=0THENRETURN
  1506. 33060 T1=Z5:Z6=Z5
  1507. 33070 IFK3=0THEN33100
  1508. 33080 T1=1+RND(1):IFZ5<T1THENT1=Z5
  1509. 33090 Z6=T1
  1510. 33100 IFT1<Z5THENGOSUB1000
  1511. 33110 IFA2<>0THENRETURN
  1512. 33120 GOSUB9000:J3=1:IFA2<>0THENRETURN
  1513. 33130 Z5=Z5-Z6:GOTO33040
  1514. 34000 REM:WARP
  1515. 34001 J3=0:IFD4(6)<>0THEN34750
  1516. 34010 INPUT"ENTER COURSE AND DISTANCE";D2,D1
  1517. 34020 IFD2<0THENRETURN
  1518. 34030 P=(D1+.05)*W1*W1*W1*(S4+1):IFP<E1THEN34150
  1519. 34040 J3=0:PRINT:PRINT"ENGINEERING TO BRIDGE--"
  1520. 34050 IF(S4=0)OR(.5*P>E1)THEN34080
  1521. 34060 PRINT"  WE HAVEN'T THE ENERGY TO GO THAT FAR WITH";
  1522. 34070 PRINT" THE SHIELDS UP.":RETURN
  1523. 34080 W=INT((E1/(D1+.05))^.333333):IFW<=0THEN34130
  1524. 34090 PRINT"  WE HAVEN'T THE ENERGY.  BUT WE COULD DO IT AT WARP";W
  1525. 34100 IFS4<>0THEN34120
  1526. 34110 RETURN
  1527. 34120 PRINT"  IF YOU'LL LOWER THE SHIELDS.":RETURN
  1528. 34130 PRINT"  WE CAN'T DO IT, CAPTAIN.  WE HAVEN'T GOT THE ENERGY."
  1529. 34140 RETURN
  1530. 34150 T1=10*D1/W2:IFT1<.8*R5THEN34500
  1531. 34160 PRINT:PRINT"MR. SPOCK - 'CAPTAIN, I COMPUTE THAT SUCH A TRIP"
  1532. 34170 PRINT" WILL REQUIRE APPROXIMATELY";FNR(100*T1/R5);
  1533. 34180 PRINT"PERCENT":PRINT"   OF OUR REMAINING TIME.  ARE YOU SURE ";
  1534. 34190 INPUT "THIS IS WISE";B$:IFLEFT$(B$,1)="Y"THEN34500
  1535. 34200 J3=0:RETURN
  1536. 34500 Q4=0:W=0:IFW1<=6THEN34660
  1537. 34510 P=D1*(6-W1)^2/66.66666:IFP>RND(1)THENQ4=1
  1538. 34520 IFQ4<>0THEND1=RND(1)*D1
  1539. 34530 W=0:IFW1<10THEN34550
  1540. 34540 IF.25*D1>RND(1)THENW=1
  1541. 34550 IF(Q4=0)AND(W=0)THEN34660
  1542. 34560 A=(15-D2)*.5235998:X1=-SIN(A):X2=COS(A)
  1543. 34570 B8=ABS(X1):IFABS(X2)>ABS(X1)THENB8=ABS(X2)
  1544. 34580 X1=X1/B8:Y1=Y1/B8:N=INT(10*D1*B8+.5):X=S6:Y=S7
  1545. 34590 IFN=0THEN34660
  1546. 34600 FORL=1TON
  1547. 34610 X=X+X1:Q=INT(X+.5):IF(Q<1)OR(Q>10)THEN34660
  1548. 34620 Y=Y+Y1:R=INT(Y+.5):IF(R<1)OR(R>10)THEN34660
  1549. 34630 IFQ$(Q,R)="."THEN34650
  1550. 34640 Q4=0:W=0
  1551. 34650 NEXTL
  1552. 34660 GOSUB15000:IFA2<>0THENRETURN
  1553. 34670 E1=E1-D1*W1*W1*W1*(S4+1):IFE1>0THEN34690
  1554. 34680 F9=4:GOSUB10000:RETURN
  1555. 34690 T1=10*D1/W2:IFW<>0THENGOSUB30000
  1556. 34700 IFQ4=0THEN34740
  1557. 34710 PRINT:PRINT"ENGINEERING TO BRIDGE--":PRINT"   SCOTT HERE-  ";
  1558. 34715 PRINT"'WE'VE JUST BLOWN THE WARP ENGINES."
  1559. 34720 PRINT"   WE'LL HAVE TO SHUT 'ER DOWN HERE, CAPTAIN.'"
  1560. 34725 D4(6)=D5*(3*RND(1)+1)
  1561. 34740 J3=1:RETURN
  1562. 34750 PRINT"WARP ENGINES DAMAGED.":RETURN
  1563. 35000 REM - ABANDON
  1564. 35001 ONSGN(D4(10))+2GOTO35010,35030,35020
  1565. 35010 PRINT"YE FAERIE QUEENE HAS NO SHUTTLE CRAFT.":RETURN
  1566. 35020 PRINT"SHUTTLE CRAFT DAMAGED.":RETURN
  1567. 35030 PRINT:PRINT"***ABANDON SHIP!  ABANDON SHIP!"
  1568. 35040 PRINT"***ALL HANDS ABANDON SHIP!":PRINT
  1569. 35050 PRINT"YOU AND THE BRIDGE CREW ESCAPE IN THE GALILEO."
  1570. 35060 PRINT"THE REMAINDER OF THE CREW BEAMS DOWN"
  1571. 35070 PRINT"TO THE NEAREST HABITABLE PLANET.":IFR3<>0THEN35090
  1572. 35080 F9=9:GOSUB10000:RETURN
  1573. 35090 PRINT:PRINT"YOU ARE CAPTURED BY KLINGONS AND RELEASED TO"
  1574. 35100 PRINT"THE FEDERATION IN A PRISONER-OF-WAR EXCHANGE."
  1575. 35110 PRINT"STARFLEET PUTS YOU IN COMMAND OF ANOTHER SHIP,"
  1576. 35120 PRINT"THE FAERIE QUEENE WHICH IS ANTIQUATED, BUT"
  1577. 35130 PRINT"STILL USABLE.":N=INT(RND(1)*R3+1):Q1=B2(N):Q2=B3(N)
  1578. 35140 S6=5:S7=5:GOSUB18000:Q$(S6,S7)="."
  1579. 35145 FORL=1TO3:S6=INT(3*RND(1)-1+B6)
  1580. 35150 IF(S6<1)OR(S7>10)THEN35180
  1581. 35160 S7=INT(3*RND(1)-1+B7):IF(S7<1)OR(S7>10)THEN35180
  1582. 35170 IFQ$(S6,S7)="."THEN35190
  1583. 35180 NEXTL:GOTO35140
  1584. 35190 S5$="FAERIE QUEENE":Q$(S6,S7)=LEFT$(S5$,1):C5$="DOCKED"
  1585. 35200 FORL=1TO12:D4(L)=0:NEXT:D4(10)=-1:E1=3000:I7=E1
  1586. 35210 S3=1500:I8=S3:T4=6:I9=T4:L1=3:J1=L1:S4=0:W1=5:W2=25
  1587. 35220 RETURN
  1588. 36000 REM - DESTRUCT
  1589. 36001 IFD4(11)=0THEN36030
  1590. 36010 PRINT"COMPUTER DAMAGED - CANNOT EXECUTE DESTRUCT SEQUENCE"
  1591. 36020 RETURN
  1592. 36030 PRINT:PRINT"    ---WORKING---"
  1593. 36040 PRINT"IDENTIFICATION-POSITIVE"
  1594. 36050 PRINT"SELF-DESTRUCT-SEQUENCE-ACTIVATED":J=3
  1595. 36060 FORI=10TO6STEP-1:PRINTSPC(J);I:GOSUB36210:J=J+3:NEXT
  1596. 36070 PRINT"ENTER-YOUR-MISSION-PASSWORD-TO-CONTINUE"
  1597. 36080 PRINT"SELF-DESTRUCT-SEQUENCE-OTHERWISE-DESTRUCT"
  1598. 36090 PRINT"SEQUENCE-WILL-BE-ABORTED"
  1599. 36100 INPUTB$:IFB$<>X$THEN36190
  1600. 36110 PRINT"PASSWORD-ACCEPTED":J=10
  1601. 36120 FORI=5TO1STEP-1:PRINTSPC(J);I:GOSUB36210:J=J+3:NEXT
  1602. 36130 PRINT:PRINT"*****ENTROPY OF ";S5$;" MAXIMIZED*****"
  1603. 36140 PRINT:IFK3=0THEN36180
  1604. 36150 W=20*E1:FORL=1TOK3:IFK6(L)*K7(L)>WTHEN36170
  1605. 36160 A5=K4(L):A6=K5(L):T2$=Q$(A5,A6):GOSUB6000
  1606. 36170 NEXTL
  1607. 36180 F9=10:GOSUB10000:RETURN
  1608. 36190 PRINT"PASSWORD-REJECTED"
  1609. 36200 PRINT"CONTINUITY-EFFECTED":PRINT:RETURN
  1610. 36210 K=12345:FORM=1TO90:K=K+1:NEXTM:RETURN
  1611. 37000 REM - STATUS
  1612. 37001 FORI=1TO10:GOTO29040:RETURN
  1613. 37010 END
  1614.