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 / CPMUG021.ARK / STRTRK_3.ASC < prev    next >
Text File  |  1984-04-29  |  20KB  |  546 lines

  1. 10 'EXPANDED APRIL 1977 BY W.A.BURTON
  2. 11 'PIRATED JAN. 1978 BY ZOSO
  3. 20 DIM G(8,8),S(8,8),K(3,3)
  4. 30 PRINTCHR$(26)
  5. 40 PRINT TAB(21)"--STARTREK--":PRINT
  6. 50 PRINT
  7. 60 INPUT "WHAT IS YOUR SECURITY CLEARANCE NUMBER (1 TO 1000)";T9
  8. 70 E8=T9
  9. 80 IF T9<1 OR T9>1000 THEN PRINT AR$;"INVALID!! REENTER!!":GOTO 60
  10. 90 FOR A=1 TO T9/2
  11. 100 R9=RND(1):R9=RND(2)
  12. 110 NEXT
  13. 120 CLEAR:PRINTCHR$(26):INPUT"       ENTER RANK     (1=LOW,12=HIGH)";R9
  14. 130 RR=R9
  15. 140 X4=R9:R9=R9+1E-03:W1=W1+1E-03
  16. 150 PRINT CHR$(26)
  17. 160 PRINT "COMMAND ORDER : STAND BY !"
  18. 170 PRINT "YOU ARE PRESENTLY BEING ASSIGNED TO A MISSION..."
  19. 180 PRINT " WITH A FAILURE FACTOR OF"; (RR*12.5)
  20. 190 PRINT"       GOOD-BYE, SIR..."
  21. 200 CX=.017453:AR$=" ---> "
  22. 210 XA=INT(X4*50):AC=(1/(X4+.1))
  23. 220 IFX4>=9THEN3790
  24. 230 E=3000-XA+100:P=10:S9=200
  25. 240 DEF FND(D)=SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2)
  26. 250 Q1=INT(RND(1)*8+1):Q2=INT(RND(1)*8+1)
  27. 260 S1=INT(RND(1)*8+1):S2=INT(RND(1)*8+1)
  28. 270 DATA WARP ENGINES,SHORT RANGE SENSORS,LONG RANGE SENSORS
  29. 280 DATA PHASERS, PHOTON TORPEDOES,SHIELD CONTROL
  30. 290 DATA DAMAGE CONTROL, COMPUTER,DAMAGE REPAIR,COMMUNICATIONS
  31. 300 FOR A=1TO10:READ D$(A):NEXT A
  32. 310 A$(0)=" . ":A$(1)=" E ":A$(2)=" * ":A$(3)=" K ":A$(4)=" B "
  33. 320 F1=.86:F2=.01:F3=.95:F4=.99:K9=0:B9=K9
  34. 330 FORI=1TO8:FORJ=1TO8:R1=RND(1):R2=RND(1):R3=INT(8*RND(1)+1)
  35. 340 K3=-(R1>F1-F2*R9)-(R1>F3-F2*R9)-(R1>F4-F2*R9):K9=K9+K3
  36. 350 B3=-(R2>F3):B9=B9+B3:G(I,J)=100*K3+10*B3+R3:NEXTJ,I
  37. 360 IF NOT(B9>0ANDK9>0)THEN320
  38. 370 PRINT"OBJECTIVE:DESTROY"K9"KLINGONS USING"B9"STARBASE";
  39. 380 U=K9:Y=B9
  40. 390 IFB9=1THENPRINT" ";:GOTO410
  41. 400 PRINT"S ";
  42. 410 T9=K9+RND(1)*K9/R9+10-R9:PR=T9/K9:PRINT"IN"T9"STARDAYS."
  43. 420 GOSUB 4250
  44. 430 S3=0:B3=S3:K3=B3:FORA=1TO8:FORB=1TO8:S(A,B)=0:NEXTB,A
  45. 440 FORA=1TO3:FORB=1TO3:K(A,B)=0:NEXTB,A:S(S1,S2)=1
  46. 450 X=.01*G(Q1,Q2):K3=INT(X):Y=(X-K3)*10:B3=INT(Y)
  47. 460 S3=G(Q1,Q2)-100*K3-10*B3
  48. 470 IF K3=0THENFORA=1TO3:FORB=1TO3:K(A,B)=0:NEXTB,A:GOTO510
  49. 480 PRINTAR$;"CONDITION RED !!!!!":FORA=1TOK3
  50. 490 R1=INT(RND(1)*8+1):R2=INT(RND(1)*8+1):IFS(R1,R2)<>0THEN490
  51. 500 S(R1,R2)=3:K(A,1)=R1:K(A,2)=R2:K(A,3)=S9:NEXT A:IFB3=0THEN540
  52. 510 IFB3=0THEN540
  53. 520 R1=INT(RND(1)*8+1):R2=INT(RND(1)*8+1):IFS(R1,R2)<>0THEN520
  54. 530 S(R1,R2)=4
  55. 540 IFS3=0THEN580
  56. 550 FORA=1TOS3
  57. 560 R1=INT(RND(1)*8+1):R2=INT(RND(1)*8+1):IFS(R1,R2)<>0THEN560
  58. 570 S(R1,R2)=2:NEXTA
  59. 580 G(Q1,Q2)=INT(G(Q1,Q2))+.5
  60. 590 PRINT
  61. 600 PRINT"QUADRANT (";MID$(STR$(Q1),2,1);",";MID$(STR$(Q2),2,1);")"
  62. 610 PRINT"SECTOR   (";MID$(STR$(S1),2,1);",";MID$(STR$(S2),2,1);")"
  63. 620 IFKP<>0THEN4040
  64. 630 IF DT=1 THEN 2670
  65. 640 IFS<200*K3THENPRINTAR$;"SHIELD ENERGY TOO LOW":SL=1:A=6:GOTO740
  66. 650 A=2: GOTO740
  67. 660 PRINT
  68. 670 PRINTD$(2):FORA=1TO8:FORB=1TO8:PRINTA$(S(A,B));:NEXTB:PRINT:NEXTA
  69. 680 PRINT:PRINT"SHIELDS";S;SPC(4);"ENERGY";E;SPC(4);"PHOTONS";P;
  70. 690 PRINTSPC(4);"STARDAYS";T9-T
  71. 700 GOSUB3210:INPUT"COMMAND";A
  72. 710 IF A>10 OR A<0 THEN INPUT" ----> COMMAND";A
  73. 720 IFA>10ORA<0THENPRINT"WARNING - PROPER COMMANDS ONLY !! ":GOTO 700
  74. 730 IFA=1THEN770
  75. 740 IFD(A)>=0THEN770
  76. 750 PRINTAR$;"CAPTAIN, WE DON'T HAVE ";D$(A);" ANYMORE."
  77. 760 IF DT=1 THEN 2670 ELSE 700
  78. 770 ONAGOTO810,660,1460,1520,1780,2130,2220,2670,4890,3890
  79. 780 PRINT:FORA=1TO9:PRINTA;" = ";D$(A):NEXTA
  80. 790 A=10
  81. 800 PRINTA;"= ";D$(A):GOTO700
  82. 810 INPUT"COURSE";C1:IF C1<0 OR C1>359.99 THEN840
  83. 820 INPUT"WARP FACTOR";W1
  84. 830 SL=0:KP=0:GOTO 850
  85. 840 PRINTAR$"REJECTED ! COURSE MUST BE IN RANGE OF O TO 359.99 DGRS."
  86. 850 IFNOT(W1>0)THEN700
  87. 860 IFD(1)>=0ORW1<=ACTHEN890
  88. 870 PRINTAR$;"WARP ENGINES ARE DAMAGED, MAXIMUM SPEED = ";AC
  89. 880 GOTO810
  90. 890 TEC=TEC+1:C$="":IFK3>0THENGOSUB2280
  91. 900 IFE>5*W1THEN970
  92. 910 IFS<1THEN2440
  93. 920 PRINT"CAPTAIN, YOU ONLY HAVE"E"UNITS OF ENERGY. "
  94. 930 PRINT"REFUEL FROM YOUR SHIELD RESERVES, WHICH HAVE"S"UNITS?"
  95. 940 A=6
  96. 950 IFD(A)<0THEN2440
  97. 960 GOTO700
  98. 970 FORI=1TO10:IFD(I)>=0THEN1010
  99. 980 D(I)=D(I)+1:IFD(I)<0THEN1010
  100. 990 IFD(7)<0THEN1010
  101. 1000 PRINT"DAMAGE CONTROL REPORT: "D$(I)" REPAIRED."
  102. 1010 NEXTI:IFRND(1)>.1THEN1120
  103. 1020 IFRND(1)>.1THEN1120
  104. 1030 GOTO1090
  105. 1040 IFRND(1)>R9/10THENRETURN
  106. 1050 R1=INT(RND(1)*8+1):IFD(R1)<0THENRETURN
  107. 1060 D(R1)=D(R1)-10*RND(1)-1:IFD(7)<0THENRETURN
  108. 1070 IFD(7)<0THENRETURN
  109. 1080 PRINT:PRINT"DAMAGE CONTROL REPORT: "D$(R1)" OUT.":PRINT:RETURN
  110. 1090 R1=INT(RND(1)*8+1):IFD(R1)>=0THEN1120
  111. 1100 IFD(7)<0THEN1120
  112. 1110 PRINT:D(R1)=0:PRINT"DAMAGE CONTROL REPORT: "D$(R1)" REPAIRED.":PRINT
  113. 1120 W1=W1*8:A1=8*Q2+S2-9:B1=72-8*Q1-S1:IFW1<1THENW1=W1*1.25
  114. 1130 E=E-2*W1:T=T+W1/25:IFT>T9THEN2510
  115. 1140 A2=INT(A1+W1*COS(C1*CX)+.5)
  116. 1150 B2=INT(B1+W1*SIN(C1*CX)+.5)
  117. 1160 IFNOT(A2<0ORA2>63ORB2<0ORB2>63)THEN1190
  118. 1170 PRINTAR$;"CAPTAIN, HEED STARFLEET REGULATIONS! ( STAY IN GALAXY ) !!
  119. 1180 T=T+W1/24:GOTO700
  120. 1190 DEF FNA1(X)=INT(.5+A1+X*COS(C1*CX))
  121. 1200 DEF FNB1(X)=INT(.5+B1+X*SIN(C1*CX))
  122. 1210 FORX=0TOINT(W1)
  123. 1220 IFNOT(Q1=8-INT(FNB1(X)/8)ANDQ2=INT(FNA1(X)/8+1))THENX=W1:GOTO1390
  124. 1230 S3=8-FNB1(X)+8*INT(FNB1(X)/8):S4=FNA1(X)+1-8*INT(FNA1(X)/8)
  125. 1240 IFS(S3,S4)<2THEN1390
  126. 1250 S(S1,S2)=0:S1=8-FNB1(X-1)+8*INT(FNB1(X-1)/8)
  127. 1260 S2=FNA1(X-1)+1-8*INT(FNA1(X 1)/8):S(S1,S2)=1
  128. 1270 PRINTAR$;"NAVIGATIONAL ERROR :ENGINES SHUT DOWN AT (";
  129. 1280 PRINTMID$(STR$(S1),2,1);","MID$(STR$(S2),2,1);")"
  130. 1290 T=T+(W1/24)
  131. 1300 PRINT" YOU LOST "T" UNITS STARTIME RESTARTING ENGINES."
  132. 1310 PRINT
  133. 1320 IF S(S3,S4)<>4 THEN 700
  134. 1330 PRINT"SHIELDS LOWERED FOR REFUELING"
  135. 1340 S=0:P=10:C$="D":E=3000-XA+100
  136. 1350 GOSUB 2280
  137. 1360 FORR1=1TO 10
  138. 1370 IFD(R1)>=0THENNEXTR1:GOTO700
  139. 1380 D(R1)=D(R1)+(11*RND(1)/R9):NEXTR1:GOTO700
  140. 1390 NEXT X:S(S1,S2)=0:S1=8-B2+8*INT(B2/8):S2=A2+1-8*INT(A2/8)
  141. 1400 Q3=8-INT(B2/8):Q4=INT(A2/8)+1
  142. 1410 IFNOT(Q1=Q3ANDQ2=Q4)THENQ1=Q3:Q2=Q4:GOTO430
  143. 1420 S(S1,S2)=1:FORA=S1-1TOS1+1:FORB=S2-1TOS2+1
  144. 1430 IFA>8ORB>8ORA<1ORB<1THEN1450
  145. 1440 IFS(A,B)=4THEN1330
  146. 1450 NEXTB,A:GOTO700
  147. 1460 PRINT
  148. 1470 FOR A=(Q1-1) TO (Q1+1):FOR B=(Q2-1) TO (Q2+1)
  149. 1480 IFA<1ORB<1ORA>8ORB>8THENPRINT" ***";:NEXTB:PRINT" ":PRINT:NEXTA:GOTO700
  150. 1490 PRINT" "SPC(3-LOG(G(A,B)+1)/LOG(10));
  151. 1500 PRINTMID$(STR$(G(A,B)),2,LOG(G(A,B))/LOG(10)+1);
  152. 1510 G(A,B)=INT(G(A,B))+.5:NEXTB:PRINT" ":PRINT:NEXTA:GOTO700
  153. 1520 PRINT
  154. 1530 IFK3<=0THEN2260
  155. 1540 IFD(8)>=0THEN1560
  156. 1550 PRINTAR$;" COMPUTER FAILURE HAMPERS ACCURACY"
  157. 1560 PRINT"PHASERS LOCKED ON TARGET.  ENERGY AVAILABLE="E
  158. 1570 PRINT"NUMBER OF UNITS TO FIRE:";
  159. 1580 INPUT X
  160. 1590 IF E-X<0THENPRINT"NOT ENOUGH POWER":GOTO700
  161. 1600 T=T+.05:IFT>T9THEN2510
  162. 1610 E=E-X
  163. 1620 IF C$<>"D"THEN GOSUB 2280
  164. 1630 IFD(8)>=0THEN1650
  165. 1640 X=X*RND(1)
  166. 1650 FORI=1TO3
  167. 1660 IFK(I,3)<=0THEN1760
  168. 1670 H=(X/FND(0))+SGN(RND(1)-.5)*8*RND(1)
  169. 1680 K(I,3)=K(I,3)-H
  170. 1690 PRINTH"UNIT HIT ON VESSEL AT (";MID$(STR$(K(I,1)),2,1);",";
  171. 1700 PRINTMID$(STR$(K(I,2)),2,1);"), LEAVING"K(I,3)"
  172. 1710 IFK(I,3)>0THEN1760
  173. 1720 PRINT"KLINGON AT (";MID$(STR$(K(I,1)),2,1);",";MID$(STR$(K(I,2)),2,1);
  174. 1730 PRINT") DESTROYED":K3=K3-1:K9=K9-1:IFK9=0THEN2640
  175. 1740 G(Q1,Q2)=G(Q1,Q2)-100:S(K(I,1),K(I,2))=0:K(I,1)=0:K(I,2)=0
  176. 1750 K(I,3)=0
  177. 1760 NEXT I
  178. 1770 GOTO700
  179. 1780 PRINT
  180. 1790 IFP>0THEN1820
  181. 1800 PRINTAR$;"ALL PHOTON TORPEDOES EXPENDED"
  182. 1810 GOTO700
  183. 1820 INPUT"DIRECTION";C1
  184. 1830 T=T+.05:IFT>T9THEN2510
  185. 1840 P=P-1:IF C$<>"D" THEN GOSUB 2280
  186. 1850 A1=8*Q2+S2-9:B1=72-8*Q1-S1:IFC1=90*INT(C1/90)THEN2080
  187. 1860 DEF FNA1(W1)=INT(.5+A1+W1*COS(C1*CX))
  188. 1870 DEF FNB1(W1)=INT(.5+B1+W1*SIN(C1*CX))
  189. 1880 FORW1=0TO10STEP.9
  190. 1890 IFW1=0THENS3=S1:S4=S2:GOTO1940
  191. 1900 IFNOT(Q1=8-INT(FNB1(W1)/8)ANDQ2=INT(FNA1(W1)/8+1))THEN700
  192. 1910 S3=8-FNB1(W1)+8*INT(FNB1(W1)/8):S4=FNA1(W1)+1-8*INT(FNA1(W1)/8)
  193. 1920 IFFNA1(W1)=A2ANDFNB1(W1)=B2THEN2060
  194. 1930 A2=FNA1(W1):B2=FNB1(W1)
  195. 1940 PRINT"(";MID$(STR$(S3),2,1);",";MID$(STR$(S4),2,1);")";A$(S(S3,S4))
  196. 1950 ON S(S3,S4)+1GOTO2060,2060,2040,1960,2030
  197. 1960 IFRND(1)<(.1*X4) THENPRINT"SHIELDS DEFLECT TORPEDO":GOTO700
  198. 1970 PRINT"KLINGON DESTROYED":S(S3,S4)=0:G(Q1,Q2)=G(Q1,Q2)-100
  199. 1980 K3=K3-1:K9=K9-1:IFK9=0THEN2640
  200. 1990 FORA=1TO3
  201. 2000 IFK(A,1)=S3ANDK(A,2)=S4THENK(A,1)=0:K(A,2)=0:K(A,3)=0
  202. 2010 NEXTA
  203. 2020 GOTO700
  204. 2030 PRINTAR$;"STARBASE DESTROYED":B3=0:B9=B9-1:S(S3,S4)=0:GOTO2050
  205. 2040 PRINTAR$;"YOU CAN'T DESTROY A STAR":GOTO700
  206. 2050 G(Q1,Q2)=G(Q1,Q2)-10:GOTO700
  207. 2060 NEXT W1
  208. 2070 GOTO700
  209. 2080 FORW1=0TO8
  210. 2090 S3=INT(S1-W1*SIN(C1*CX))
  211. 2100 S4=INT(S2+W1*COS(C1*CX))
  212. 2110 IFS3>8ORS4>8ORS3<1ORS4<1THEN700
  213. 2120 GOTO1940
  214. 2130 PRINT
  215. 2140 PRINT"ENERGY AVAILABLE="E+S"    NUMBER OF UNITS TO SHIELDS";
  216. 2150 INPUT X
  217. 2160 IFX<0THEN700
  218. 2170 IFE+S-X<0THEN2140
  219. 2180 E=E+S-X
  220. 2190 S=X
  221. 2200 IFSL=1THEN650
  222. 2210 GOTO700
  223. 2220 PRINT
  224. 2230 PRINT"DEVICE        STATE OF REPAIR"
  225. 2240 FORR1=1TO10:PRINTD$(R1);TAB(21) D(R1):NEXTR1
  226. 2250 IF DT=1 THEN 2670 ELSE 700
  227. 2260 PRINT"SHORT RANGE SENSORS REPORT NO KLINGONS IN THIS QUADRANT"
  228. 2270 IF DT=1 THEN 2670 ELSE 700
  229. 2280 IF C$="D" AND K3<>0 THEN PRINT"STARBASE PROTECTS ENTERPRISE" ELSE 2300
  230. 2290 GOTO700
  231. 2300 PRINT
  232. 2310 FORI=1TO3
  233. 2320 IFK(I,3)<=0THEN2420
  234. 2330 H=K(I,3)/FND(0)+SGN(RND(1)-.5)*RND(1)*7
  235. 2340 S=S-H:PRINTH"UNIT HIT FROM ("MID$(STR$(K(I,1)),2,1);",";
  236. 2350 PRINTMID$(STR$(K(I,2)),2,1);"), LEAVING"S
  237. 2360 IFS<0THEN2540
  238. 2370 GOSUB1040
  239. 2380 IFRND(1)>R9/10THEN2420
  240. 2390 R1=INT(8*RND(1)+1):R2=INT(8*RND(1)+1)
  241. 2400 IFNOT(S(R1,R2)=0)THEN2390
  242. 2410 S(R1,R2)=3:S(K(I,1),K(I,2))=0:K(I,1)=R1:K(I,2)=R2
  243. 2420 NEXTI
  244. 2430 RETURN
  245. 2440 PRINT AR$;" ENTERPRISE DEAD IN SPACE"
  246. 2450 PRINT
  247. 2460 CY=1:PRINT:GOTO2580
  248. 2470 IFK3<=0THEN2580
  249. 2480 GOSUB2280
  250. 2490 GOTO2470
  251. 2500 PRINT
  252. 2510 PRINT:PRINT:PRINT:PRINT:PRINT:PRINTAR$;
  253. 2520 PRINT"IT IS STARDATE"T:PRINT
  254. 2530 GOTO2580
  255. 2540 PRINT
  256. 2550 PRINT:PRINT:PRINT:PRINT:PRINT:PRINTAR$;
  257. 2560 PRINT"ENTERPRISE DISABLED !!":PRINT:PRINT
  258. 2570 CY=0
  259. 2580 PRINT"THERE ARE"K9"KLINGONS REMAINING.":IFCY<>0THEN3550
  260. 2590 PRINT"YOU HAVE FAILED !!":PRINT
  261. 2600 L=INT(RND(1)*5)
  262. 2610 ONL+1GOTO 3430,3460,3480,3500,3530
  263. 2620 PRINT:INPUT"DO YOU WANT TO TRY AGAIN";X$
  264. 2630 IF LEFT$(X$,1)="Y" THEN 120 ELSE 5410
  265. 2640 PRINT"THE FEDERATION IS SAVED !!"
  266. 2650 PRINT"YOU ARE HEREBY PROMOTED TO ADMIRAL!!!!":PRINT
  267. 2660 GOTO2620
  268. 2670 DT=1
  269. 2680 INPUT"COMPUTER ON--COMMAND";A
  270. 2690 IF A>=10 THEN PRINT AR$;" NO SUCH COMMAND !!":GOTO 2680
  271. 2700 ONA+1GOTO2890,2940,2990,2830,590,3390,3410,5100,700
  272. 2710 PRINT"FUNCTIONS AVAILABLE FROM COMPUTER"
  273. 2720 PRINT"   0 = GALACTIC MEMORY MAP"
  274. 2730 PRINT"   1 = GENERAL STATUS REPORT"
  275. 2740 PRINT"   2 = PHOTON TRAJECTORY"
  276. 2750 PRINT"   3 = NEW MISSION"
  277. 2760 PRINT"   4 = PRESENT POSITION"
  278. 2770 PRINT"   5 = SELF-DESTRUCT"
  279. 2780 PRINT"   6 = WARP-COMPASS"
  280. 2790 PRINT"   7 = MISSION PROGRESS REPORT"
  281. 2800 PRINT"   8 = EXIT COMPUTER"
  282. 2810 GOTO2670
  283. 2820 PRINT:PRINT"--TEMPORARY MALFUNCTION--":GOTO 700
  284. 2830 IF XM<0 THEN 2870
  285. 2840 PRINT AR$;"SAFETY CHECK -- DO YOU WISH TO ABORT MISSION":INPUT AN$
  286. 2850 IF LEFT$(AN$,1)<>"Y" THEN 2880 ELSE 120
  287. 2860 PRINT
  288. 2870 PRINT"YOU HAVE NOT BEEN AUTHORIZED FOR NEW MISSION !!":PRINT
  289. 2880 GOTO 2670
  290. 2890 PRINT"QUADRANT CODE MEMORY MAP"
  291. 2900 FORA=1TO8:FORB=1TO8:IFG(A,B)=INT(G(A,B))THENPRINT" ???";:GOTO2930
  292. 2910 PRINT" "SPC(3-LOG(G(A,B)+1)/LOG(10));
  293. 2920 PRINTMID$(STR$(G(A,B)),2,LOG(G(A,B))/LOG(10)+1);
  294. 2930 NEXTB:PRINT" ":NEXTA:GOTO 2670
  295. 2940 PRINT"   STATUS REPORT"
  296. 2950 PRINT"NUMBER OF KLINGONS LEFT ="K9
  297. 2960 PRINT"NUMBER OF STARDATES LEFT ="T9-T
  298. 2970 PRINT"NUMBER OF STARBASES LEFT ="B9
  299. 2980 A=7:GOTO740
  300. 2990 IFK3=0THEN2260
  301. 3000 IFD(2)<0THENA=2:GOTO730
  302. 3010 PRINT"COORD","LOWDIR","HIGHDIR","DIST"
  303. 3020 FORA=1TO47:PRINT"-";:NEXTA
  304. 3030 PRINT
  305. 3040 FORI=0TO3
  306. 3050 IFNOT(K(I,3)>0)THEN3180
  307. 3060 W1=SQR((S1-K(I,1))^2+(S2-K(I,2))^2)
  308. 3070 IF W1=0 THENPRINT"--->MALFUNCTION !":GOTO700
  309. 3080 ON ERROR GOTO 2820
  310. 3090 C1=1.5708-ATN((K(I,2)-S2)/W1/SQR(1-((K(I,2)-S2)/W1)^2))
  311. 3100 ON ERROR GOTO 2820
  312. 3110 C1=C1*SGN(S1-K(I,1))/CX
  313. 3120 C2(I)=C1-(10*RND(1))
  314. 3130 C3(I)=C1+(10*RND(1))
  315. 3140 IF C3(I)<0 THEN C3(I)=C3(I)+360
  316. 3150 IF C2(I)<0 THEN C2(I)=C2(I)+360
  317. 3160 PRINT"(";MID$(STR$(K(I,1)),2,1);",";MID$(STR$(K(I,2)),2,1);
  318. 3170 PRINT")",C2(I),C3(I),W1
  319. 3180 NEXTI
  320. 3190 IF DT=1 THEN 2670 ELSE 700
  321. 3200 RETURN
  322. 3210 MR=(T9-T)/K9:DT=0
  323. 3220 XM=((MR-PR)/PR)*100
  324. 3230 IFKA=1THENPRINTTK-T"STARDATES LEFT TO SAVE STARBASE.":GOTO3320
  325. 3240 IFRND(1)>.01*R9ORB9=0THENRETURN
  326. 3250 KA=1:FORA=1TO8:FORB=1TO8
  327. 3260 IFG(A,B)-100*INT(G(A,B)/100)>9THENK1=A:K2=B:IFRND(1)>.5THENA=8:B=8
  328. 3270 NEXTB,A:TK=T+.09*SQR((Q1-K1)^2+(Q2-K2)^2)*(10-R9)
  329. 3280 TK=TK+1
  330. 3290 PRINTAR$;"!!! STARBASE IN QUADRANT ("MID$(STR$(K1),2,1)",";
  331. 3300 PRINTMID$(STR$(K2),2,1)") IS UNDER ATTACK!!"
  332. 3310 PRINT"YOU HAVE"TK-T"STARDATES TO SAVE IT!":RETURN
  333. 3320 IFT<TKTHEN3370
  334. 3330 PRINT"TOO LATE!":KA=0:G(K1,K2)=G(K1,K2)-10:B9=B9-1
  335. 3340 IFNOT(Q1=K1ANDQ2=K2)THENRETURN
  336. 3350 FORA=1TO8:FORB=1TO8:IFS(A,B)=4THENS(A,B)=0
  337. 3360 NEXTB,A:RETURN
  338. 3370 IFQ1=K1ANDQ2=K2THENPRINT"YOU ARRIVED IN TIME! STARBASE SAVED!"
  339. 3380 KA=0:GOTO700
  340. 3390 IF SD<>1 THEN 4210 ELSE 5300
  341. 3400 GOTO700
  342. 3410 GOSUB 3650
  343. 3420 GOTO 2670
  344. 3430 PRINT"YOU HAVE SCREWED UP ONCE TOO OFTEN !"
  345. 3440 PRINT"OFF TO THE VULCAN TORTURE CAMPS !!"
  346. 3450 IFT<= 0THEN2620ELSE3550
  347. 3460 PRINT"YOU WILL BE EXECUTED AT SUNRISE"
  348. 3470 GOTO3550
  349. 3480 PRINT"YOU WILL BE PUT TO DEATH FOR YOUR INCOMPETENCE"
  350. 3490 GOTO3550
  351. 3500 PRINT"YOU WILL BE CONFINED TO YOUR QUARTERS UNTIL"
  352. 3510 PRINT"VULCAN'S MOONS BECOME TOURIST TRAPS !!"
  353. 3520 IFT<=0THEN2620ELSE3550
  354. 3530 PRINT"IMBECILE !! WE HOPE YOU CONSIDER SUICIDE!"
  355. 3540 IFT<=0THEN2620ELSE3550
  356. 3550 L=(U-K9)*10+((U-K9)*500/T)-100*(Y-B9)
  357. 3560 IFE<=0ORS<0THENL=L-200
  358. 3570 IFK9=0THENL=L+(R9*100)
  359. 3580 PRINT:PRINT
  360. 3590 PRINT"YOUR MISSION RATING IS: ";L
  361. 3600 PRINT:PRINT:PRINT:PRINT:PRINT
  362. 3610 GOSUB 5430
  363. 3620 PRINTCHR$(26)
  364. 3630 GOTO5440
  365. 3640 GOTO2620
  366. 3650 PRINT
  367. 3660 PRINT"             O9O"
  368. 3670 PRINT"  135         .        O45"
  369. 3680 PRINT"       .      .      ."
  370. 3690 PRINT"          .   .   ."
  371. 3700 PRINT"18O .  .  .   .   .  .  .OOO       WARP-COMPASS"
  372. 3710 PRINT"          .   .   ."
  373. 3720 PRINT"       .      .      ."
  374. 3730 PRINT"  225         .        315"
  375. 3740 PRINT"             27O"
  376. 3750 PRINT
  377. 3760 RETURN
  378. 3770 XX=INT(RND(2)*10)+1
  379. 3780 RETURN
  380. 3790 PRINT:IFX4>12THEN3880
  381. 3800 PRINT"COMMAND CENTRAL ADVISES THAT YOUR RANKING-";X4;"-IS IN THE EXPERT"
  382. 3810 PRINT"CATEGORY. BE ADVISED THAT IF YOU ARE NOT PROPERLY QUALIFIED"
  383. 3820 PRINT"YOUR CHANCES OF AVOIDING FAILURE ARE NIL."
  384. 3830 PRINT
  385. 3840 PRINT"DO YOU WISH REASSIGNMENT TO A LESS HAZARDOUS MISSION (Y OR N)"
  386. 3850 INPUTAN$
  387. 3860 IFLEFT$(AN$,1)="Y"THEN120
  388. 3870 PRINTCHR$(26):GOTO230
  389. 3880 PRINT"YOU HAVE REQUESTED A SUICIDE MISSION":GOTO3830
  390. 3890 PRINT"--COMMUNICATIONS ACTIVE--"
  391. 3900 PRINT
  392. 3910 GOSUB3770
  393. 3920 PD=XX
  394. 3930 GOSUB3770
  395. 3940 PE=XX
  396. 3950 GOSUB3770
  397. 3960 PF=XX
  398. 3970 GOSUB3770
  399. 3980 PG=XX
  400. 3990 PH=PD*10+PE
  401. 4000 PJ=PF*10+PG
  402. 4010 IFPH=PJTHEN 2820
  403. 4020 KP=1:IFPD=PEORPF=PGTHEN4030ELSE4050
  404. 4030 PRINT"SUNSPOTS BLOCK TRANSMISSION AT : ":GOTO600
  405. 4040 PRINT"MOVE ELSEWHERE AND TRY AGAIN":PRINT:GOTO 810
  406. 4050 PRINT"AUTHORIZED FREQUENCIES":PRINT
  407. 4060 PRINT"FEDERATION COMMAND BASE = ";PH
  408. 4070 PRINT"KLINGON COMMAND CENTRAL = ";PJ
  409. 4080 PRINT
  410. 4090 INPUT"COMMUNICATION ON CHANNEL ";XF
  411. 4100 IFXF=PHTHEN4320
  412. 4110 IFXF=PJTHEN4610
  413. 4120 PRINT
  414. 4130 PRINTAR$;"ALERT !!"
  415. 4140 PRINT"ATTEMPTED COMMUNICATION ON UNAUTHORIZED FREQUENCY"
  416. 4150 PRINT
  417. 4160 PRINT"WHILE SECURITY CHECK IS CONDUCTED ON ENTERPRISE"
  418. 4170 GOSUB3770:A=XX
  419. 4180 GOSUB3770:I=(XX/2)+(X4/7)
  420. 4190 PRINT"YOUR ";D$(A);" WILL BE INOPERATIVE FOR ";I "UNITS OF STARTIME"
  421. 4200 D(A)=D(A)-I:GOTO700
  422. 4210 PRINT
  423. 4220 PRINT"SECURITY CONTROL ADVISES THAT NO AUTHORIZATION HAS BEEN"
  424. 4230 PRINT"GIVEN TO ACTIVATE SELF- DESTRUCT SYSTEM."
  425. 4240 PRINT"PROCEED WITH ASSIGNED MISSION":PRINT:GOTO 2680
  426. 4250 PRINT
  427. 4260 PRINT"BE ADVISED, YOUR MISSION PROGRESS FACTOR IS";PR
  428. 4270 GOSUB 3770
  429. 4280 TF=(XX*X4)/1.6:IF TF<10 THEN TF=TF+10
  430. 4290 PRINT" THE TOLERANCE FACTOR FOR THIS MISSION IS [+/-]";TF;"PERCENT"
  431. 4300 PRINT
  432. 4310 RETURN
  433. 4320 ONSGN(XM)+2GOTO4330,4370,4390
  434. 4330 IFABS(XM)>(TF*1.5)THEN4450
  435. 4340 IFABS(XM)>TFTHEN4420
  436. 4350 PRINT:PRINT"CAPTAIN, YOU ARE BEHIND SCHEDULE - LET'S GO !!"
  437. 4360 GOTO 700
  438. 4370 PRINT:PRINT"YOU ARE EXACTLY ON COMPUTED SCHEDULE; PROCEED WITH MISSION"
  439. 4380 GOTO700
  440. 4390 IFXM>TFTHEN4540:IFXM>(TF*1.5)THEN4570
  441. 4400 PRINT:PRINT"YOU ARE AHEAD OF COMPUTED SCHEDULE, KEEP UP THE GOOD WORK !!"
  442. 4410 GOTO700
  443. 4420 PRINT:PRINT"YOU ARE BEHIND SCHEDULE AND OUT OF TOLERANCE FACTOR !!"
  444. 4430 PRINT"COMMAND CONTROL PROJECTS FAILURE...YOU MAY SURRENDER TO ENEMY"
  445. 4440 EQ=1:SD=1:GOTO 3890
  446. 4450 YY=AC^X4
  447. 4460 PRINTCHR$(26)
  448. 4470 PRINTAR$;"---------COMPUTER PROJECTION----------":PRINT
  449. 4480 PRINT"PROJECTED LIKELIHOOD OF SUCCESS FOR YOUR MISSION =";YY;"PERCENT"
  450. 4490 PRINT"WE HAVE AUTO ACTIVATED SELF-DESTRUCT SYSTEM ON YOUR VESSEL"
  451. 4500 PRINT"GOODBYE, CAPTAIN.............":PRINT
  452. 4510 PRINT"END OF MESSAGE FROM FEDERATION COMMAND":PRINT:PRINT
  453. 4520 GOSUB 5430
  454. 4530 GOTO 5300
  455. 4540 PRINT:PRINT"YOU ARE AHEAD OF SCHEDULE AND BEYOND TOLERANCE FACTOR"
  456. 4550 PRINT"CALL KLINGON LEADERS AND REQUEST THEIR SURRENDER":KQ=1
  457. 4560 PRINT:GOTO3890
  458. 4570 PRINTAR$;"MESSAGE FROM COMMAND BASE"
  459. 4580 PRINT:PRINT"ENEMY HAS SURRENDERED TO FEDERATION COMMAND !!"
  460. 4590 PRINT:PRINT:PRINT:PRINT
  461. 4600 GOTO2640
  462. 4610 IF KQ=1 THEN 4860:IF EQ=1 THEN 4640
  463. 4620 ON SGN(XM)+2 GOTO 4630,4690,4740
  464. 4630 IF ABS(XM)<=TFTHEN4690
  465. 4640 PRINT:PRINT"KLINGON COMMAND ON FREQUENCY"
  466. 4650 PRINT"NATURALLY, WE ARE PLEASED THAT YOU ARE CONCEDING, CAPTAIN"
  467. 4660 PRINT"WE ARE PRESENTLY BOARDING YOUR CRAFT"
  468. 4670 PRINT:PRINT"HERE IS A MESSAGE FROM YOUR LEADERS-":PRINT:GOSUB 5430
  469. 4680 PRINTCHR$(26):GOTO 2600
  470. 4690 GOSUB 3770
  471. 4700 IFXX<=5THEN 4730
  472. 4710 PRINT:PRINT"MESSAGE FROM KLINGON COMMAND...."
  473. 4720 PRINT"NO FURTHER COMMUNICATIONS AT THIS TIME":GOTO 4820
  474. 4730 PRINT:PRINT"WE'LL TALK WITH OUR WEAPONS, EARTH-SWINE !!":GOTO 4820
  475. 4740 GOSUB 3770
  476. 4750 AQ=INT((XX+1)/2)
  477. 4760 ON AQ GOTO 4710,4730,4770,4770,4740
  478. 4770 GF=TF*1.5
  479. 4780 IFXM>GFTHEN 4860
  480. 4790 IFXM>TFTHEN 4830
  481. 4800 PRINT:PRINT"CAPTAIN, DESPITE YOUR SLIGHT ADVANTAGE, YOU ARE NO MATCH FOR"
  482. 4810 PRINT"THE GLORIOUS KLINGON FLEET"
  483. 4820 PRINTTAB(25)"END OF MESSAGE FROM KLINGON COMMAND":GOTO700
  484. 4830 GOSUB3770
  485. 4840 IFXX<=5THENPRINT" KLINGON COMMAND TO ENTERPRISE..":GOTO4730
  486. 4850 GOTO4870
  487. 4860 PRINTCHR$(26)
  488. 4870 PRINT:PRINT"MESSAGE FROM KLINGON LEADERS..."
  489. 4880 PRINT:PRINT"WE CONCEDE THE WAR, SIR, CONGRATULATIONS !!":GOTO3600
  490. 4890 AV=INT(X4/2)+1:DR=-1
  491. 4900 IF TEC<AV THEN 4920
  492. 4910 IF C$<>"D" THEN 4960 ELSE 4980
  493. 4920 AU=AV-TEC:IFAU=1THENKF$=""ELSEKF$="S"
  494. 4930 PRINT:PRINT"DAMAGE REPAIR INACTIVE !!"
  495. 4940 PRINT"REQUIRES";AU;"MORE RECHARGE UNIT";KF$
  496. 4950 PRINT:GOTO 700
  497. 4960 PRINT:PRINTAR$"YOU MUST BE DOCKED AT STARBASE FOR DAMAGE REPAIR !!"
  498. 4970 PRINT:GOTO 700
  499. 4980 PRINT
  500. 4990 PRINT:FORA=1TO10
  501. 5000 IFD(A)<0THENPRINT TAB(10)A;TAB(20)D$(A);TAB(40)"DAMAGED"
  502. 5010 NEXT
  503. 5020 PRINT:PRINT"IF NO DAMAGE INDICATED ABOVE, ANSWER WITH 0 (ZERO)"
  504. 5030 INPUT "WHICH ONE TO REPAIR ";A
  505. 5040 IFA<1ORA>10THENPRINTAR$;:GOTO 700
  506. 5050 IF D(A)<0 THEN 5070
  507. 5060 PRINT:PRINTD$(A);"        NOT DAMAGED !!":GOTO 5030
  508. 5070 PRINT:PRINTTAB(20)D$(A);"---REPAIRED":PRINT
  509. 5080 D(A)=0:TEC=0:GOTO700
  510. 5090 PRINT:PRINTAR$;"NOTHING DAMAGED AT PRESENT":GOTO700
  511. 5100 PRINT
  512. 5110 GOSUB4290
  513. 5120 PRINT"INITIAL MISSION PROGRESS FACTOR WAS";PR
  514. 5130 PRINT"CURRENT MISSION PROGRESS FACTOR IS ";MR
  515. 5140 IF XM<0 THEN PW$=" WORSENED "ELSE PW$=" IMPROVED "
  516. 5150 PRINT
  517. 5160 PRINT"YOUR COMBAT SITUATION HAS";PW$;"BY A FACTOR OF";XM;"PERCENT"
  518. 5170 IF ABS(XM)>=TF THEN EG$=" NOT "ELSE EG$=" "
  519. 5180 IF EG$=" "THEN EH$=""ELSE EH$=AR$
  520. 5190 PRINT EH$;"YOUR PROGRESS IS";EG$;"WITHIN TOLERANCE FOR THIS MISSION"
  521. 5200 PRINT
  522. 5210 IF EG$=" NOT "THEN 5220 ELSE 2670
  523. 5220 IF XM<0 THEN 5230 ELSE 5270
  524. 5230 PRINT:SD=1:KD=0
  525. 5240 PRINT"CAPTAIN, COMMAND CENTRAL PROJECTS DEFEAT BY ENEMY. YOU ARE NOW"
  526. 5250 PRINT"AUTHORIZED TO SURRENDER OR TO ACTIVATE SELF-DESTRUCT SYSTEM"
  527. 5260 GOTO2670
  528. 5270 PRINT:SD=0:KD=1
  529. 5280 PRINT"CAPTAIN, FEDERATION COMMAND PROJECTS SUCCESS FOR YOUR MISSION."
  530. 5290 GOTO 4540
  531. 5300 PRINTCHR$(26)
  532. 5310 GOSUB 5420
  533. 5320 PRINT"SELF DESTRUCT SYSTEM ACTIVATED"
  534. 5330 PRINT:PRINT:PRINT:GOSUB 5420
  535. 5340 PRINT"COUNTDOWN BEGUN !":PRINT:PRINT
  536. 5350 PRINTTAB(25)"FIVE":PRINT:GOSUB 5420
  537. 5360 PRINTTAB(20)"FOUR":PRINT:GOSUB 5420
  538. 5370 PRINTTAB(15)"THREE":PRINT:GOSUB 5420
  539. 5380 PRINTTAB(10)"TWO":PRINT:GOSUB 5420
  540. 5390 PRINTTAB(5)"ONE":PRINT:GOSUB 5420
  541. 5400 PRINT"ZERO":GOSUB 5420
  542. 5410 PRINTCHR$(26):GOTO5440
  543. 5420 FOR I=1 TO 50:A=A+1:NEXT:RETURN
  544. 5430 FOR I=1 TO 1200:A=A+1:NEXT:RETURN
  545. 5440 RESET
  546.