1 'REWRITE BY ZOSO 2 RANDOMIZE:WIDTH90:LQ=1000 7 DIM G1$(16),V$(5,5),C$(20),G(8,8),D$(12),Q$(10,10),D4(12),D9(106) 10 DIM S2(8,8):Q$="?" 15 DATA S.R. SENSORS,L.R. SENSORS,PHASERS,PHOTON TUBES,LIFE SUPPORT 20 DATA WARP ENGINES,IMPULSE ENGINES,SHIELDS,SUBSPACE RADIO 21 DATA SHUTTLE CRAFT,COMPUTER,TRANSFER PANEL,ABANDON,CHART,COMPUTER 22 DATA DAMAGES,DESTRUCT,DOCK,IDLE,IMPULSE,LRSCAN,NAVIGATE,PHASERS,QUIT 23 DATA SHIELDS,SOS,SRSCAN,STATUS,TORPEDO,TRANSFER,VISUAL,WARP,SHORT 24 DATA MEDIUM,LONG,BEGINNER,NOVICE,SENIOR,EXPERT,COURSE,WCOST,ICOST 25 DATA PEFFECT,SCORE,OUT,ANTARES,SIRIUS,RIGEL,MERAK,PROCYON,CAPELLA 26 DATA VEGA,DENEB,CANOPUS,ALDEBARAN,ALTAIR,REGULUS,BELLATRIX,ARCTURUS 27 DATA POLLUX,SPICA,10.5,12,1.5,9,0,3,7.5,6,4.5 28 DEF FNA(X)=INT(8*RND(X))+1:DEF FNB(X)=INT(10*RND(X))+1 29 DEF FND(X)=X/60 30 DEFFNR(X)=INT(X*10+.5)/10:DEFFNS(X)=INT(X*100+.5)/100 40 FORI=1TO12:READD$(I):NEXT:FORI=1TO20:READC$(I):NEXT 43 FORI=1TO3:READT$(I):NEXT:FORI=1TO4:READS$(I):NEXT:FORI=1TO6 44 READC2$(I):NEXT:FORI=1TO16:READG1$(I):NEXT:FORI=1TO9:READC5(I):NEXT 46 GOSUB24001:S7$(1)="":S7$(2)=" ":S7$(3)=" ":S7$(4)="" 70 IFA2<>0THEN901 75 J4=0:T1=0:INPUT"COMMAND";A$:IFLEN(A$)>1THEN110 80 ?"2 LETTERS, PLEASE.":GOTO75 110 FORI=1TO20 120 IFA$=LEFT$(C$(I),LEN(A$))THEN150 130 NEXT 135 ?"ILLEGAL !! - USE THIS LIST" 140 ?:FORI=1TO20STEP4 141 ?C$(I);TAB(12);C$(I+1);TAB(22);C$(I+2);TAB(32);C$(I+3) 142 NEXT:?:GOTO70 150 ONIGOTO201,226,251,276,291,301,326,351,376,401 160 ONI-10GOTO426,901,476,501,526,545,551,576,601,627 201 GOSUB 35001:GOTO70 226 GOSUB 3001:GOTO70 251 GOSUB5001:GOTO70 276 GOSUB8001:GOTO70 291 GOSUB36001:GOTO70 301 GOSUB7000:GOTO70 326 GOSUB33001:IFJ3=0THEN70 331 IFA2<>0THEN901 332 IFG(Q1,Q2)=1000THEN750 340 GOSUB1000:GOTO70 351 GOSUB13001:IFJ3=0THEN70 353 GOTO710 376 GOSUB14001:GOTO70 401 GOSUB34001 402 IFJ3=0THEN70 410 GOTO710 426 GOSUB20001:IFJ3=0THEN70 428 GOSUB1000:GOTO70 476 GOSUB26001:IFJ3=0THEN70 478 IFA2<>0THEN901 479 GOSUB1000:S9=0:GOTO70 501 GOSUB11001:GOTO70 526 GOSUB29002:GOSUB14001:GOTO70 545 ?:GOSUB37001:GOTO70 551 GOSUB21001:IFJ3=0THEN70ELSE710 576 GOSUB31001:IFJ3=0THEN70 585 IFA2<>0THEN901 590 IFG(Q1,Q2)<>LQTHEN70 595 GOTO750 601 GOSUB32001:IFJ3=0THEN70 603 IFA2<>0THEN901 610 IFG(Q1,Q2)<>LQTHEN70 615 GOTO750 627 GOSUB25010:GOTO70 710 IFA2<>0THEN901 720 IFT1<>0THENGOSUB9000 730 IFA2<>0THEN901 740 IFG(Q1,Q2)0THEN901 760 IFA2<>0THEN901 770 GOTO740 790 GOSUB1000:GOTO70 901 ?:?:INPUT"ANOTHER GAME ";A$ 910 IFLEFT$(A$,1)="Y"THEN46 911 ?CHR$(26):END 1000 IF(C3<>0)AND(J4=0)THENGOSUB16001 1020 IFK3=0THENRETURN 1030 IFA2<>0THENRETURN 1040 P2=1/I8 1050 J5=0 1060 ? 1070 IFC5$="DOCKED"THEN1780 1080 H2=0:H3=0:C6=1 1090 IFS9=1THENC6=.5+.5*RND(1) 1100 A3=0 1110 FORL=1TOK3 1120 IFK6(L)<0THEN1540 1130 A3=1 1140 D6=.8+.05*RND(1) 1150 H4=K6(L)*D6^K8(L) 1160 IF(S4=0)AND(S9=0)THEN1230 1170 P3=.1:IFP2*S3>P3THENP3=P2*S3 1180 H5=P3*C6*H4+1 1190 IFH5>S3THENH5=S3 1195 S3=S3-H5:H4=H4-H5 1210 IF(P3>.1)AND(H4<5E-03*E1)THEN1540 1230 J5=1 1240 ?FNR(H4);"UNIT HIT ON THE ";S5$;" FROM "; 1250 J6=K4(L):J7=K5(L) 1260 IFQ$(J6,J7)="K"THEN?"KLINGON AT"; 1270 IFQ$(J6,J7)="C"THEN?"COMMANDER AT"; 1280 ?J6;"-";J7 1290 IFH4>H2THENH2=H4 1300 H3=H3+H4 1310 IFH4<(275-25*S8)*(1+.5*RND(1))THEN1530 1320 N4=1+INT(H4/(500+100*RND(1))) 1330 ?"*** CRITICAL HIT--"; 1340 K9=1 1350 FORW4=1TON4 1360 J9=INT(12*RND(1))+1 1370 C5(W4)=J9 1380 E3=(H4*D5)/(N4*(75+25*RND(1))) 1390 IFJ9=6THENE3=E3/3 1395 D4(J9)=D4(J9)+E3 1400 IFW4=1THEN1470 1420 FORV=1TOW4 1430 IFJ9=C5(V-1)THEN1480 1440 NEXTV 1450 K9=K9+1 1460 IFK9=3THEN? 1465 ? " AND "; 1470 ?D$(J9); 1480 NEXTW4 1490 ? " DAMAGED." 1500 IFD4(8)=0THEN1530 1510 IFS4<>0THEN?"*** SHIELDS KNOCKED DOWN." 1520 S4=0 1530 E1=E1-H4 1540 NEXTL 1550 IFA3=0THENRETURN 1560 IFE1<=0THEN1750 1570 P4=100*P2*S3+.5 1580 IFJ5<>0THEN1610 1590 ?"ENEMY ATTACK--SHIELDS REDUCED TO "; 1600 GOTO1650 1610 ?"ENERGY LEFT:";FNS(E1);" SHIELDS "; 1620 IFS4<>0THEN?"UP,"; 1630 IF(S4=0)AND(D4(8)=0)THEN?"DOWN, "; 1640 IFD4(8)>0THEN?"DAMAGED, "; 1650 ?INT(P4);"%" 1660 IF(H2<200)AND(H3<500)THEN1800 1670 J8=INT(H3*RND(1)*.015) 1680 IFJ8<2THEN1800 1690 ? 1700 ?"---> 'SICKBAY TO BRIDGE. WE SUFFERED ";J8;"CASUALTIES IN THAT ATTACK" 1730 C4=C4+J8 1740 GOTO1800 1750 F9=5 1760 GOSUB10000:RETURN 1780 ?"*** KLINGONS ATTACK-- STARBASE SHIELDS PROTECT THE ";S5$ 1800 FORW4=1TOK3 1810 K8(W4)=K7(W4) 1820 NEXTW4 1830 GOSUB28000:RETURN 2001 ?:IFJ4=0THEN2050 2020 ?"*** RED ALERT! RED ALERT!" 2030 ?"*** THE ";S5$;" HAS STOPPED IN QUADRANT CONTAINING SUPERNOVA" 2050 ? "*** AUTO-OVERRIDE ATTEMPTS TO HURL ";S5$;" TO OTHER QUADRANT" 2080 S2(Q1,Q2)=1 2090 GOSUB18000 2100 IFD4(6)=0THEN2290 2110 ? 2120 ?"WARP ENGINES DAMAGED." 2140 ?:?"TRYING TO ENGAGE IMPULSE ENGINES..." 2150 IFD4(7)=0THEN2190 2160 ?"IMPULSE ENGINES DAMAGED." 2165 F9=8 2170 GOSUB10000 2180 RETURN 2190 P2=.75*E1 2200 D6=4E-03*(P2-50) 2210 D7=1.4142+1.2*RND(1) 2220 D1=D6 2230 IFD6>D7THEND1=D7 2240 T1=D1/.4 2250 D2=12*RND(1) 2260 J4=0 2270 GOSUB13200 2280 GOTO2400 2290 W1=6+2*RND(1) 2300 W2=W1*W1 2310 P2=.75*E1 2320 D6=P2/(W1*W1*W1*(S4+1)) 2330 D7=1.4142+2*RND(1) 2340 D1=D6 2350 IFD6>D7THEND1=D7 2360 T1=10*D1/W2 2370 D2=12*RND(1) 2380 J4=0 2390 GOSUB34500 2400 IFJ4<>0THEN2440 2410 F9=8 2420 GOSUB10000 2430 RETURN 2440 IFR1<>0THENRETURN 2450 F9=1 2460 GOSUB10000 2470 RETURN 3001 ?:?" 1 2 3 4 5 6 7 8" 3010 ?" --- --- --- --- --- --- --- ---" 3020 FORI=1TO8 3030 ?I;" "; 3040 FORJ=1TO8 3060 ONSGN(S2(I,J))+2GOTO3070,3090,3110 3070 ?" .1."; 3080 GOTO 3160 3090 ?" ..."; 3100 GOTO3160 3110 IFS2(I,J)>LQTHEN3150 3120 IFG(I,J)5THENI2=5 4300 R3=I2 4310 I5=7*L2 4320 R5=I5 4340 R7=(S8-2*RND(1)+1)*S8*.1+.1 4350 IFR7<.2THENR7=R7+.1 4360 I1=INT(2*R7*I5) 4370 R1=I1 4380 I4=INT(S8+.0625*I1*RND(1)) 4390 R2=I4 4400 I3=(I1+4*I4)*I5 4410 R4=I3 4420 RETURN 5001 IFD4(11)=0THEN5030 5010 ?" COMPUTER DISABLED" 5020 RETURN 5030 ?"----COMPUTER ACTIVE----" 5040 INPUT"PROGRAM NAME";B$ 5050 FORI=1TO6 5060 IFB$=LEFT$(C2$(I),LEN(B$))THEN5120 5070 NEXT 5080 ?"VALID PROGRAMS ARE:" 5090 ?" COURSE WCOST SCORE" 5100 ?" PEFFECT ICOST OUT" 5110 GOTO5040 5120 ON IGOTO5210,5302,5410,5510,5610,5700 5210 INPUT "ENTER QUADRANT AND SECTOR - ";A3,A4 5220 IF(A3<>INT(A3))OR(A4<>INT(A4))THEN5990 5221 IFA3<0THEN5040 5222 IFA3=0THENA3=10*Q1+Q2 5223 A3=A3+.5 5225 K=INT(A3/10) 5226 IF(K<1)OR(K>8)THEN5990 5227 C6(1)=K:K=INT(A3-C6(1)*10) 5228 IF(K<1)OR(K>8)THEN5990 5229 C6(2)=K:A4=A4+.5 5230 K=INT(A4/100) 5231 IF(K<1)OR(K>10)THEN5990 5232 C6(1)=C6(1)+(K-1)/10:K=INT(A4-K*100) 5233 IF(K<1)OR(K>10)THEN5990 5234 C6(2)=C6(2)+(K-1)/10 5235 X=Q1+((S6-1)/10)-C6(1):Y=Q2+((S7-1)/10)-C6(2) 5236 D1=0:D2=0:IF(X=0)AND(Y=0)THEN5250 5237 D1=SQR(X*X+Y*Y) 5238 IFX<0THENZ7=SGN(Y)*(3.1416-ATN(ABS(Y/X))) 5239 IFX=0THENZ7=SGN(Y)*1.5708 5240 IFX>0THENZ7=ATN(Y/X) 5245 D2=12-Z7*1.9098593:IFD2>12THEND2=D2-12 5250 ?"COURSE IS";FNS(D2);" FOR A DISTANCE OF"; 5260 ?FNS(D1);"QUADRANTS.":GOTO5040 5302 INPUT"ENTER DISTANCE AND WARP FACTOR";D1,A4 5304 IF(D1<0)THEN5040 5310 C7=D1*A4*A4*A4 5315 T1=(10*D1)/((A4*A4)+1E-05) 5320 ?"IT WOULD TAKE";FNS(T1);"STARDATES AND USE" 5325 ?FNR(C7);"UNITS OF ENERGY (";FNR(C7+C7);"IF SHIELDS ARE UP)" 5330 GOTO5040 5410 INPUT"ENTER DISTANCE...";D1 5420 IFD1<0THEN5040 5430 C7=250*D1+50:T1=D1/.4 5440 ?"IT WOULD TAKE";FNR(T1);"STARDATES AND USE" 5450 ?C7;"UNITS OF ENERGY" 5460 GOTO5040 5510 INPUT"ENTER PHASER RANGE IN QUADRANTS";A3 5520 IFA3<0THEN5040 5530 A3=A3*10:C7=(.9^A3)*100 5540 ?"PHASERS ARE ";LEFT$(STR$(C7),5);"% EFFECTIVE AT THAT RANGE" 5550 GOTO5040 5610 GOSUB23000 5620 GOTO5040 5700 RETURN 5990 ?"FORMAT IS MN,XXYY...WHERE MN IS THE QUADRANT" 5991 ?"AND XXYY IS THE SECTOR...E.G. 64,0307 REFERS" 5992 ?"TO QUADRANT 6-4, SECTOR 3-7." 5995 GOTO 5040 6000 IFT2$<>"C"THEN6100 6010 C3=0:?"*** COMMANDER AT"; 6030 FORF=1TOR2:IF(C1(F)=Q1)AND(C2(F)=Q2)THEN6050 6040 NEXTF 6050 C1(F)=C1(R2):C2(F)=C2(R2):C1(R2)=0:C2(R2)=0 6060 R2=R2-1:F1(2)=1E+30 6070 IFR2<>0THENF1(2)=D0-(I4/R2)*LOG(RND(1)) 6080 K2=K2+1 6090 GOTO6120 6100 ?"*** KLINGON AT"; 6110 K1=K1+1 6120 ?A5;"-";A6;"DESTROYED." 6130 Q$(A5,A6)=".":R1=R1-1 6140 IFR1=0THENRETURN 6150 R5=R4/(R1+4*R2) 6160 G(Q1,Q2)=G(Q1,Q2)-100 6170 FORF=1TOK3 6180 IF(K4(F)=A5)AND(K5(F)=A6)THEN6200 6190 NEXTF 6200 K3=K3-1 6210 IFF>K3THEN6250 6220 FORG=FTOK3 6230 K4(G)=K4(G+1):K5(G)=K5(G+1):K6(G)=K6(G+1) 6235 K7(G)=K7(G+1):K8(G)=K7(G) 6240 NEXTG 6250 K4(K3+1)=0:K5(K3+1)=0:K7(K3+1)=0:K8(K3+1)=0:K6(K3+1)=0 6260 RETURN 7000 IFC5$="DOCKED"THEN7100 7010 IFB6=0THEN7020 7015 IF(ABS(S6-B6)<=1)AND(ABS(S7-B7)<=1)THEN7040 7020 ?S5$;" NOT ADJACENT TO A BASE." 7030 RETURN 7040 C5$="DOCKED" 7050 ?"---> DOCKING COMPLETED" 7060 E1=I7:S3=I8:T4=I9:L1=J1 7070 RETURN 7100 ?"CAPTAIN, WE'RE ALREADY DOCKED!" 7110 RETURN 8001 J=0:?:FORI=1TO12 8010 IFD4(I)<=0THEN8070 8020 IFJ<>0THEN8060 8030 ?" DEVICE";SPC(12);"-REPAIR TIMES-" 8040 ?SPC(21);"IN FLIGHT DOCKED":J=1 8060 ?" ";D$(I);TAB(23);FNS(D4(I));TAB(33);FNS(D3*D4(I)) 8070 NEXTI 8080 IFJ=0THEN?" - ALL DEVICES FUNCTIONAL -" 8090 RETURN 9000 M=0:D7=D0+T1:FORL=1TO5 9020 IFF1(L)>D7THEN9040 9030 M=L:D7=F1(L) 9040 NEXTL 9050 X6=D7-D0:D0=D7 9060 R4=R4-(R1+4*R2)*X6 9070 R5=R4/(R1+4*R2) 9080 IFR5>0THEN9120 9090 F9=2 9100 GOSUB10000 9110 RETURN 9120 IF(D4(5)=0)OR(C5$="DOCKED")THEN9180 9130 IF(L1>=X6)OR(D4(5)<=L1)THEN9160 9140 F9=3:GOSUB10000 9150 RETURN 9160 L1=L1-X6 9170 IFD4(5)<=X6THENL1=J1 9180 R=X6 9190 IFC5$="DOCKED"THENR=X6/D3 9200 FORL=1TO12 9210 IFD4(L)<=0THEN9230 9220 D4(L)=D4(L)-R 9225 IFD4(L)<0THEND4(L)=0 9226 IFD4(L)<>0THEN9230 9227 ?:?"DAMAGE CONTROL- ";D$(L);" NOW OPERATIONAL." 9230 NEXTL 9240 IFM=0THENRETURN 9250 T1=T1-X6 9260 ONMGOTO9280,9291,9340,9355,9475 9280 X2=0:Y2=0:GOSUB27000 9285 F1(1)=D0-.5*I5*LOG(RND(1)) 9286 IFG(Q1,Q2)=LQTHENRETURN 9287 GOTO9000 9291 IFR2=0THEN9330 9292 IFC5$="DOCKED"THEN9325 9293 I=INT(RND(1)*R2)+1 9294 Y6=(C1(I)-Q1)^2+(C2(I)-Q2)^2 9295 IFY6=0THEN9325 9296 Y6=SQR(Y6):T1=.17778*Y6 9297 ?:?"*** ";S5$;" CAUGHT IN LONG-RANGE TRACTOR BEAM--" 9298 Q1=C1(I):Q2=C2(I) 9299 S6=FNB(1):S7=FNB(1) 9300 ?"PULLED TO QUADRANT";Q1;"-";Q2;", SECTOR";S6;"-";S7 9301 IFR6<>0THEN?"(IDLE PERIOD CANCELLED)" 9302 R6=0 9303 IFS4<>0THEN9320 9304 IF(D4(8)=0)AND(S3>0)THEN9310 9305 ?"(SHIELDS NOT CURRENTLY USABLE.)" 9307 GOTO9320 9310 GOSUB26500 9315 S9=0 9320 GOSUB18000 9325 F1(2)=D0+T1-1.5*(I5/R2)*LOG(RND(1)) 9326 GOTO9000 9330 F1(2)=1E+30:GOTO9000 9340 D9(1)=D0:D9(2)=R1:D9(3)=R2:D9(4)=R3:D9(5)=R4:D9(6)=R5 9342 D9(7)=S1:D9(8)=B1:D9(9)=K1:D9(10)=K2 9343 FORI=1TO8:FORJ=1TO8:D9(I-1+8*(J-1)+11)=G(I,J):NEXTJ:NEXTI 9344 FORI=75TO84:D9(I)=C1(I-74):NEXT 9345 FORI=85TO94:D9(I)=C2(I-84):NEXT 9346 FORI=95TO99:D9(I)=B2(I-94):NEXT 9347 FORI=100TO104:D9(I)=B3(I-99):NEXT 9348 D9(105)=B4:D9(106)=B5 9349 S0=1:F1(3)=D0-.3*I5*LOG(RND(1)):GOTO9000 9355 IF(R2=0)OR(R3=0)THEN9400 9360 FORI=1TOR3:FORJ=1TOR2:IF(B2(I)=C1(J))AND(B3(I)=C2(J))THEN9410 9370 NEXTJ:NEXTI 9380 F1(4)=D0+.5+3*RND(1) 9390 F1(5)=1E+30:GOTO9000 9400 F1(4)=1E+30:F1(5)=1E+30:GOTO9000 9410 B4=B2(I):B5=B3(I) 9420 IF(B4=Q1)AND(B5=Q2)THEN9380 9430 F1(5)=D0+.5+3*RND(1) 9440 F1(4)=F1(5)-.3*I5*LOG(RND(1)) 9450 IFD4(9)>0THEN9000 9460 ?:?" CAPTAIN, THE STARBASE IN";B4;"-";B5;"IS UNDER ATTACK-" 9462 ?" AND CAN ONLY RESIST UNTIL STARDATE";FNR(F1(5));"!!!" 9465 IFR6=0THEN9000 9466 INPUT" SHALL WE CANCEL IDLE PERIOD";B$ 9468 IFLEFT$(B$,1)="Y"THENR6=0 9469 GOTO9000 9475 F1(5)=1E+30:IF(R2=0)OR(R3=0)THEN9000 9485 K=INT(G(B4,B5)/100):IFG(B4,B5)-K*100<10THEN9000 9490 FORI=1TOR2:IF(C1(I)=B4)AND(C2(I)=B5)THEN9520 9510 NEXT:GOTO9000 9520 IFS2(B4,B5)=-1THENS2(B4,B5)=0 9530 IFS2(B4,B5)>999THENS2(B4,B5)=S2(B4,B5)-10 9540 IF(B4<>Q1)OR(B5<>Q2)THEN9630 9550 FORI=1TOK3:K=K4(I):L=K5(I) 9560 IFQ$(K,L)="C"THEN9570 9565 NEXT 9570 IFK6(I)<25+50*RND(1)THEN9000 9580 Q$(B6,B7)=".":B6=0:B7=0 9590 GOSUB17000 9600 ?:?"CAPTAIN, I BELIEVE THE STARBASE HAS BEEN DESTROYED" 9620 GOTO9680 9630 IF(R3=1)OR(D4(9)>0)THEN9680 9640 ? 9650 ?"--> STARFLEET COMMAND REPORTS THAT STARBASE IN QUADRANT";B4;"-";B5 9660 ?"HAS BEEN DESTROYED BY ENEMY COMMANDER !!" 9680 G(B4,B5)=G(B4,B5)-10 9690 IFR3<=1THEN9730 9700 FORI=1TOR3:IF(B2(I)=B4)AND(B3(I)=B5)THEN9720 9710 NEXT 9720 B2(I)=B2(R3):B3(I)=B3(R3) 9730 R3=R3-1 9740 GOTO9000 10000 ?:?:?:INPUT"CONFLICT RESOLVED - PREPARED FOR RATING ";B$ 10001 ?CHR$(26):A2=1:?:?"IT IS STARDATE";FNR(D0):? 10010 ONF9GOTO10025,10135,10165,10190,10200,10205,10225,10240 10015 ONF9-8GOTO10250,10271,10285 10025 ?"YOU HAVE DESTROYED THE KLINGON INVASION FLEET":? 10030 ?" ***THE FEDERATION IS SAVED***":G1=1 10035 IF(A1=0)OR(B1<>0)THEN10110 10040 IFLEFT$(S5$,1)<>"E"THEN10110 10045 IF3*S1+35*N1+C4>=100THEN10110 10050 IFD0-J2<=6THEN10075 10060 R8=.1*S8*(S8+1)+.1 10065 IF(K1+K2)/(D0-J2)I1THEN10150 10140 ?" SUMMARILY EXECUTED" 10145 A1=0:GOSUB23000:RETURN 10150 ?" IMPRISONED FOR LIFE" 10165 ?"YOUR LIFE SUPPORT RESERVES HAVE RUN OUT, AND" 10170 ?"YOU WILL SOON DIE!!!" 10172 ? 10175 ?"YOUR STARSHIP IS A DERELICT IN SPACE." 10180 GOTO10300 10190 ?"YOUR ENERGY SUPPLY IS EXHAUSTED.":GOTO10172 10200 ?"THE ";S5$;" HAS BEEN DESTROYED IN BATTLE." 10201 GOTO10300 10205 RETURN 10225 ?"YOUR STARSHIP HAS BEEN DESTROYED BY A NOVA." 10230 ?"NICE WORK, IDIOT !!!":GOTO10300 10240 ?"THE ";S5$;" HAS BEEN INCINERATED BY A SUPERNOVA." 10241 GOTO10300 10250 ?"YOU HAVE BEEN CAPTURED BY THE ENEMY. IF YOU STILL HAD A STARBASE," 10255 ?"YOU WOULD HAVE BEEN REPATRIATED. SINCE YOU HAVE NO BASES, YOU WILL" 10260 ?"BE MERCILESSLY TORTURED !!" 10266 GOTO10300 10271 ?:?"THE ";S5$;" IS NOW AN EXPANDING CLOUD" 10272 ?"OF SUB-ATOMIC PARTICLES...":GOTO10300 10285 ?"STARBASE WAS UNABLE TO RE-MATERIALIZE YOUR STARSHIP." 10300 ? 10310 IFLEFT$(S5$,1)="F"THENS5$="" 10315 IFLEFT$(S5$,1)="E"THENS5$="FAERIE QUEENE" 10316 A1=0 10320 IFR1=0THEN10355 10325 G3=R4/I3:B8=(R1+2*R2)/(I1+2*I4) 10326 A3=G3/B8 10327 IF A3<1+.5+RND(1)THEN10345 10330 ?"AS A RESULT OF YOUR ACTIONS, A TREATY WITH THE KLINGON" 10331 ?"EMPIRE HAS BEEN SIGNED. THE TERMS OF THE TREATY ARE" 10332 IFA3<3*RND(1)THEN10340 10335 ?"FAVORABLE TO THE FEDERATION.":? 10336 ?"CONGRATULATIONS.":GOTO10350 10340 ?"HIGHLY UNFAVORABLE TO THE FEDERATION.":GOTO10350 10345 ?"THE FEDERATION WILL BE DESTROYED!" 10350 GOSUB23000:RETURN 10355 ?"SINCE YOU TOOK THE LAST KLINGON WITH YOU, YOU ARE" 10360 ?"A MARTYR AND A HERO.":G1=1:A1=0 10390 GOSUB23000:RETURN 11001 IFC5$<>"DOCKED"THEN11020 11010 ?"--> CAPTAIN, WE'RE ALREADY DOCKED!" 11015 RETURN 11020 IFD4(9)=0THEN11030 11025 ?"SUBSPACE RADIO DAMAGED...CANNOT TRANSMIT.":RETURN 11030 IFR3<>0THEN11050 11040 ?"CAPTAIN, NO RESPONSE FROM STARBASE !":RETURN 11050 N1=N1+1:IFB6=0THEN11070 11060 GOTO11130 11070 D1=1E+30 11080 FORL=1TOR3:X=10*SQR((B2(L)-Q1)^2+(B3(L)-Q2)^2) 11090 IFX>D1THEN11110 11100 D1=X:K=L 11110 NEXTL 11120 Q1=B2(K):Q2=B3(K):GOSUB18000 11130 Q$(S6,S7)="." 11135 ? 11140 ?"STARBASE IN QUADRANT";Q1;"-";Q2;"RESPONDS --"; 11145 ?" ";S5$;" DEMATERIALIZES." 11146 P2=(1-.98^D1)^.333333 11150 FORL=1TO3 11155 IFL=1THEN?"1ST "; 11160 IFL=2THEN?"2ND "; 11170 IFL=3THEN?"3RD "; 11180 ?"ATTEMPT TO RE-MATERIALIZE THE ";S5$;". . . . ."; 11190 IFRND(1)>P2THEN11220 11200 ?"FAILS.":NEXTL 11210 F9=11:GOSUB10000:RETURN 11220 FORL=1TO5:I=B6+INT(3*RND(1))-1 11230 IF(I<1)OR(I>10)THEN11260 11235 J=B7+INT(3*RND(1))-1 11240 IF(J<1)OR(J>10)THEN11260 11250 IFQ$(I,J)="."THEN11270 11260 NEXTL:?"FAILS.":GOTO11210 11270 ?"SUCCEEDS.":S6=I:S7=J:Q$(I,J)=LEFT$(S5$,1) 11280 GOSUB7000:?"CAPTAIN, WE MADE IT!":RETURN 12001 P4=2:L5=K3:N=1 12010 FORK=1TOL5 12020 IFH3(K)=0THEN12240 12030 D6=.9+.01*RND(1):H2=H3(K)*D6^K7(N) 12040 P3=K6(N) 12050 P=ABS(P3):IFP4*H24.99THEN12100 12090 ?"MINOR HIT ON ":GOTO12110 12100 ?FNR(H2);"UNIT HIT ON "; 12110 M$=Q$(X8,Y8) 12120 IF M$="K"THEN?"KLINGON AT"; 12125 IFM$="C"THEN?"COMMANDER AT"; 12130 ?X8;"-";Y8 12140 IFK6(N)<>0THEN12180 12150 A5=X8:A6=Y8:T2$=Q$(X8,Y8):GOSUB6000 12160 IFR1<>0THEN12250 12170 F9=1:GOSUB10000:GOTO12250 12180 IFK6(N)<0THEN12240 12190 IFRND(1)<.9THEN12240 12200 IFK6(N)>(.4+.4*RND(1))*P3THEN12240 12205 ? 12210 ?"*** CAPTAIN, THE VESSEL AT SECTOR"; 12215 ?X8;"-";Y8 12220 ?" HAS JUST LOST ITS FIREPOWER !!!" 12225 ? 12230 K6(N)=-K6(N) 12240 N=N+1 12250 NEXTK 12260 RETURN 13001 J3=0 13010 IFD4(7)<>0THEN13250 13020 IFE1<=75THEN13070 13030 INPUT"ENTER COURSE....";D2 13040 IFD2<.01ORD2>12THENGOSUB40000ELSE13048 13041 RETURN 13048 INPUT"DISTANCE ";D1:IFD1>0THEN13050 13049 RETURN 13050 P3=50+250*D1 13060 IFP375THEN13120 13110 ?"QUADRANT. THEY ARE USELESS NOW.'":RETURN 13120 ?"QUADRANT. WE CAN GO A MAXIMUM OF "; 13130 ?FNR(4E-03*(E1-50)-.05);"QUADRANTS.'":RETURN 13140 T1=D1/.4 13150 IFT1"Y"THENRETURN 13200 GOSUB15001:J3=1 13210 IFA2<>0THENRETURN 13220 E1=E1-P3 13230 IFE1>0THENRETURN 13240 F9=4:GOSUB10000:RETURN 13250 ?"IMPULSE ENGINES DAMAGED.":RETURN 14001 N$=" #" 14005 ? 14010 IFD4(2)<>0THEN14180 14020 ?"L.R. SCAN FOR QUADRANT";Q1;"-";Q2:? 14030 I=Q1-1:J=Q1+1:K=Q2-1:L=Q2+1 14040 FORM=ITOJ:FORN=KTOL 14050 IF(M<=0)OR(M>8)THEN14110 14060 IF(N<=0)OR(N>8)THEN14110 14070 IFD4(11)=0THENS2(M,N)=1 14080 IFG(M,N)>=LQTHEN ?" ***";" "; 14090 IFG(M,N)B8THENB8=ABS(D6) 15040 D4=D4/B8:D6=D6/B8:T5=0:T6=0 15050 IFD0+T110)THEN15150 15106 IF(Y1<1)OR(Y1>10)THEN15150 15108 IFQ$(X1,Y1)="O"THEN15111 15109 IFQ$(X1,Y1)<>"."THEN15125 15110 NEXTL 15111 D1=.1*SQR((S6-X1)^2+(S7-Y1)^2) 15112 S6=X1:S7=Y1 15115 F4=S6:F5=S7 15116 IFQ$(X1,Y1)<>"O"THEN15320 15120 T2=FNA(1):T3=FNA(1) 15122 Q1=FNA(1):Q2=FNA(1):S6=FNB(1):S7=FNB(1):? 15123 ?"*** SPACE PORTAL ENTERED ***":GOTO15307 15125 T6=1:K=50*D1/T1+.001:D1=.1*SQR((S6-X1)^2+(S7-Y1)^2) 15127 IF(Q$(X1,Y1)="K")OR(Q$(X1,Y1)="C")THEN15145 15129 ?:?S5$;" BLOCKED BY "; 15130 IFQ$(X1,Y1)="*"THEN?"STAR AT"; 15131 IFQ$(X1,Y1)="B"THEN?"STARBASE AT"; 15132 ?" SECTOR";X1;"-";Y1;"...." 15133 ?"EMERGENCY STOP REQUIRED";FNR(K);"UNITS OF ENERGY." 15135 E1=E1-K 15137 S6=INT(X7-D4+.5):F4=S6:S7=INT(Y7-D6+.5):F5=S7 15140 IFE1>0THEN15320 15141 F9=4:GOSUB10000:RETURN 15145 S6=X1:S7=Y1:GOSUB22001:F4=S6:F5=S7:GOTO15320 15150 IFK3=0THEN15165 15155 FORL=1TOK3 15156 F3=SQR((X1-K4(L))^2+(Y1-K5(L))^2) 15158 K8(L)=.5*(F3+K7(L)):NEXTL 15160 IFG(Q1,Q2)<>LQTHENGOSUB1000 15162 IFA2<>0THENRETURN 15165 X7=10*(Q1-1)+S6:Y7=10*(Q2-1)+S7 15170 X1=INT(X7+10*D1*B8*D4+.5) 15175 Y1=INT(Y7+10*D1*B8*D6+.5):L6=0 15180 L5=0 15185 IFX1>0THEN15195 15190 X1=-X1+1:L5=1 15195 IFY1>0THEN15210 15200 Y1=-Y1+1:L5=1 15210 IFX1<=80THEN15220 15215 X1=161-X1:L5=1 15220 IFY1<=80THEN15230 15225 Y1=161-Y1:L5=1 15230 IFL5=0THEN15240 15235 L6=1:GOTO15180 15240 IFL6=0THEN15270 15260 ?:?"*** MESSAGE FROM STARFLEET COMMAND.....STARDATE";FNR(DO) 15261 ?"PERMISSION TO EXIT GALAXY - DENIED -" 15265 ?"'ENGINES SHUT DOWN AT "; 15266 Z1=INT((X1+9)/10):Z2=INT((Y1+9)/10) 15267 ?"QUADRANT";Z1;"-";Z2;", "; 15268 ?"SECTOR";X1-10*(Z1-1);"-";Y1-10*(Z2-1);"'" 15270 IFT5<>0THENRETURN 15295 Q1=INT((X1+9)/10):Q2=INT((Y1+9)/10) 15296 S6=X1-10*(Q1-1):S7=Y1-10*(Q2-1) 15307 GOSUB18400:?:GOTO15315 15310 ?CHR$(26):?"ENTERING THE ";G2$;" QUADRANT (";Q1;"-";Q2;")" 15315 Q$(S6,S7)=LEFT$(S5$,1):GOSUB18000:GOSUB29002:GOSUB14001:RETURN 15320 Q$(S6,S7)=LEFT$(S5$,1) 15321 IFL6=1THENRETURN 15325 IFK3=0THEN15390 15330 FORL=1TOK3 15340 F3=SQR((F4-K4(L))^2+(F5-K5(L))^2) 15350 K8(L)=.5*(K7(L)+F3) 15360 K7(L)=F3 15370 NEXTL 15380 GOSUB28000 15390 GOSUB17000:RETURN 16001 A=1:B=1 16010 FORK=1TOK3 16020 C=K4(K):D=K5(K) 16030 IFQ$(C,D)="C"THEN16050 16040 NEXTK 16050 N=0:F=K6(K)+100*K3 16060 IFF>LQTHENN=INT(RND(1)*K7(K)+1) 16065 IF((C5$="DOCKED")AND((B4<>Q1)OR(B5<>Q2)))THENN=-S8 16070 IFN=0THENN=INT(((F+200*RND(1))/150)-5) 16071 IFN=0THENRETURN 16072 IF(N>0)AND(K7(K)<1.5)THENRETURN 16075 IFABS(N)>S8THENN=SGN(N)*ABS(S8) 16080 T=ABS(N):P=S6-C:Q=S7-D 16085 IF2*ABS(P)0THENP=SGN(P*N) 16100 IFQ<>0THENQ=SGN(Q*N) 16105 R=C:S=D:Q$(C,D)="." 16110 FORL2=1TOT:L=R+P:M=S+Q 16115 IF(L>0)AND(L<=10)THEN16120 16117 ONSGN(N)+2GOTO16240,16165,16165 16120 IF(M>0)AND(M<=10)THEN16130 16125 ONSGN(N)+2GOTO16240,16135,16135 16130 IFQ$(L,M)="."THEN16195 16135 IF(Q=B)OR(P=0)THEN16165 16140 M=S+B 16145 IF(M>0)AND(M<=10)THEN16155 16150 ONSGN(N)+2GOTO16240,16160,16160 16155 IFQ$(L,M)="."THEN16195 16160 B=-B 16165 IF(P=A)OR(Q=0)THEN16200 16170 L=R+A 16175 IF(L>0)AND(L<=10)THEN16185 16180 ONSGN(N)+2GOTO16240,16190,16190 16185 IFQ$(L,M)="."THEN16195 16190 A=-A:GOTO16200 16195 R=L:S=M 16200 NEXTL2 16205 Q$(R,S)="C" 16210 IF(R=C)AND(S=D)THENRETURN 16215 K4(K)=R:K5(K)=S:K7(K)=SQR((S6-R)^2+(S7-S)^2) 16220 K8(K)=K7(K):IFN>0THEN?"*** COMMANDER ADVANCES TO"; 16225 IFN<0THEN?"*** COMMANDER RETREATS TO"; 16230 ?" SECTOR";R;"-";S:GOSUB28000:RETURN 16240 I=Q1+INT((L+9)/10)-1:J=Q2+INT((M+9)/10)-1 16245 IF(I<1)OR(I>8)THEN16350 16250 IF(J<1)OR(J>8)THEN16350 16260 FORL3=1TOR2 16265 IF(C1(L3)=I)AND(C2(L3)=J)THEN16350 16270 NEXTL3:?"*** COMMANDER ESCAPES TO "; 16275 ?"QUADRANT";I;"-";J;" (AND REGAINS STRENGTH)" 16280 K4(K)=K4(K3):K5(K)=K5(K3):K7(K)=K7(K3):K8(K)=K8(K3) 16285 K6(K)=K6(K3):K3=K3-1:C3=0 16290 IFC5$<>"DOCKED"THENGOSUB17000 16300 GOSUB28000 16310 G(Q1,Q2)=G(Q1,Q2)-100:G(I,J)=G(I,J)+100 16320 FORL3=1TOR2 16330 IF(C1(L3)=Q1)AND(C2(L3)=Q2)THEN16340 16335 NEXTL3 16340 C1(L3)=I:C2(L3)=J:RETURN 16350 A=-A:B=-B:GOTO16200 17000 C5$="GREEN":IFE199THENC5$="RED" 17030 RETURN 18000 J4=1:B6=0:B7=0:K3=0:C3=0:U=G(Q1,Q2):IFU>999THEN18290 18030 K3=INT(.01*U):FORA=1TO10:FORB=1TO10:Q$(A,B)=".":NEXTB:NEXTA 18040 Q$(S6,S7)=LEFT$(S5$,1):U=G(Q1,Q2):IFU<100THEN18150 18050 U=U-100*K3:FORA=1TOK3 18060 S=FNB(1):K4(A)=S:T=FNB(1):K5(A)=T 18070 IFQ$(S,T)<>"."THEN18060 18080 Q$(S,T)="K":K7(A)=SQR((S6-S)^2+(S7-T)^2):K8(A)=K7(A) 18090 K6(A)=RND(1)*150+325:NEXTA 18100 IFR2=0THEN18140 18110 FORA=1TOR2 18115 IF(C1(A)=Q1)AND(C2(A)=Q2)THEN18130 18120 NEXTA:GOTO18140 18130 Q$(S,T)="C":K6(K3)=LQ+400*RND(1):C3=1 18140 GOSUB28000 18150 IFU<10THEN18190 18160 U=U-10 18170 B6=FNB(1):B7=FNB(1):IFQ$(B6,B7)<>"."THEN18170 18180 Q$(B6,B7)="B" 18190 GOSUB17000:IFU<1THENRETURN 18200 FORA=1TOU 18210 S=FNB(1):T=FNB(1):IFQ$(S,T)<>"."THEN18210 18220 Q$(S,T)="*":NEXTA 18230 IF(T2<>Q1)OR(T3<>Q2)THENRETURN 18240 S=FNB(1):T=FNB(1):IFQ$(S,T)<>"."THEN18240 18250 Q$(S,T)="O":? 18260 ?"*** SHORT-RANGE SENSORS DETECT A SPACE-WARP IN THIS QUADRANT" 18280 RETURN 18290 FORA=1TO10:FORB=1TO10:Q$(A,B)=".":NEXTB:NEXTA 18300 Q$(S6,S7)=LEFT$(S5$,1):RETURN 18400 G4$="III":L=2:IFQ2>=5THEN18420 18410 L=1 18420 G2$=G1$(2*(Q1-1)+L):L=Q2 18425 IFL<=4THEN18440 18430 L=Q2-4 18440 G3$="IV":IFL=4THEN18460 18450 G3$=LEFT$(G4$,L) 18460 G2$=G2$+" "+G3$:RETURN 19002 IFRND(1)>.1THEN19015 19010 GOSUB27000:RETURN 19015 Q$(A5,A6)=".":?"*** STAR AT SECTOR";A5;"-";A6;"NOVAS." 19020 G(Q1,Q2)=G(Q1,Q2)-1:S1=S1+1 19025 B9=1:T6=1:T7=1:K=0:X1=0:Y1=0 19030 H4(B9,1)=A5:H4(B9,2)=A6 19035 FORM=B9TOT6:FORQ=1TO3:FORJ=1TO3 19040 IFJ*Q=4THEN19260 19045 J5=H4(M,1)+Q-2:J6=H4(M,2)+J-2 19050 IF(J5<1)OR(J5>10)THEN19260 19055 IF(J6<1)OR(J6>10)THEN19260 19060 IFQ$(J5,J6)="."THEN19260 19065 IFQ$(J5,J6)="O"THEN19260 19070 IFQ$(J5,J6)<>"*"THEN19105 19075 IFRND(1)>=.1THEN19085 19080 X2=J5:Y2=J6:GOSUB27000:RETURN 19085 T7=T7+1:H4(T7,1)=J5:H4(T7,2)=J6:G(Q1,Q2)=G(Q1,Q2)-1 19090 S1=S1+1:?"*** STAR AT SECTOR";J5;"-";J6;"NOVAS." 19100 GOTO19255 19105 IFQ$(J5,J6)<>"B"THEN19140 19110 G(Q1,Q2)=G(Q1,Q2)-10:FORV=1TOR3 19115 IF(B2(V)<>Q1)OR(B3(V)<>Q2)THEN19125 19120 B2(V)=B2(R3):B3(V)=B3(R3) 19125 NEXTV:R3=R3-1:B6=0:B7=0:B1=B1+1:GOSUB17000 19130 ?"*** STARBASE AT SECTOR";J5;"-";J6;"DESTROYED." 19135 GOTO19255 19140 IF(S6<>J5)OR(S7<>J6)THEN19190 19145 ?"*** STARSHIP BUFFETED BY NOVA.":IFS4<>0THEN19155 19150 E1=E1-LQ:GOTO19170 19155 IFS3>=LQTHEN19180 19160 D6=LQ-S3:E1=E1-D6:GOSUB17000:S3=0:S4=0 19165 ?"*** STARSHIP SHIELDS KNOCKED OUT.":D4(8)=5E-03*D5*RND(1))*D6 19170 IFE1>0THEN19185 19175 F9=7:GOSUB10000:RETURN 19180 S3=S3-LQ 19185 X1=X1+S6-H4(M,1):Y1=Y1+S7-H4(M,2):K=K+1:GOTO19260 19190 IFQ$(J5,J6)<>"C"THEN19250 19195 FORV=1TOK3 19200 IF(K4(V)=J5)AND(K5(V)=J6)THEN19210 19205 NEXTV 19210 K6(V)=K6(V)-800:IFK6(V)<=0THEN19250 19215 N5=J5+J5-H4(M,1):N6=J6+J6-H4(M,2) 19220 ?"*** COMMANDER AT SECTOR";J5;"-";J6;"DAMAGED"; 19225 IF(N5<1)OR(N5>10)OR(N6<1)OR(N6>10)THEN19245 19230 ?" AND BUFFETED TO SECTOR";N5;"-";N6 19235 Q$(N5,N6)="C":K4(V)=N5:K5(V)=N6 19240 K7(V)=SQR((S6-N5)^2+(S7-N6)^2):K8(V)=K7(V) 19241 Q$(J5,J6)="." 19245 ?:GOTO19260 19250 A5=J5:A6=J6:T2$=Q$(J5,J6):GOSUB6000:GOTO19260 19255 ?:Q$(J5,J6)="." 19260 NEXTJ:NEXTQ:NEXTM 19265 IFT6=T7THEN19280 19270 B9=T6+1:T6=T7:GOTO19035 19280 IFK=0THENRETURN 19290 D1=K*.1 19300 IFX1<>0THENX1=SGN(X1) 19310 IFY1<>0THENY1=SGN(Y1) 19320 I=3*(X1+1)+Y1+2 19330 D2=C5(I) 19340 IFD2=0THEND1=0 19350 IFD1=0THENRETURN 19360 ?:?"FORCE OF NOVA DISPLACES STARSHIP." 19370 GOSUB15001:RETURN 20001 P=2:J3=1 20020 IFC5$<>"DOCKED"THEN20030 20025 ?"PHASERS CAN'T BE FIRED THRU BASE SHIELDS.":GOTO20080 20030 IFD4(3)=0THEN20050 20040 ?"PHASER BANKS DAMAGED.":GOTO20080 20050 IFS4=0THEN20060 20055 ?"SHIELDS MUST BE DOWN TO FIRE PHASERS.":GOTO20080 20060 IFK3>0THEN20090 20065 ? 20070 ?"THE SHORT-RANGE SENSORS DETECT NO ENEMY IN THIS QUADRANT." 20080 J3=0:RETURN 20090 ?"PHASERS LOCKED ON TARGET. ENERGY AVAILABLE="; 20095 ?.01*INT(100*E1) 20100 INPUT"UNITS TO FIRE";P1:IFP1=ETHEN20270 20250 H3(I)=H5(I):E=E-R7 20260 NEXTI:GOTO20280 20270 H3(I)=H3(I)+E:E=0 20280 GOSUB12001 20290 IF(E<>0)AND(A2=0)THEN20310 20300 J3=1:RETURN 20310 ?FNR(E);"EXPENDED ON EMPTY SPACE.":J3=1:RETURN 21001 J3=1:IFD4(4)=0THEN21015 21010 ?"PHOTON TUBES DAMAGED.":GOTO21035 21015 IFT4<>0THEN21025 21020 ?"NO TORPEDOS LEFT.":GOTO21035 21025 INPUT"TORPEDO COURSE";C6 21030 IFC6<.01ORC6>12THENGOSUB40000ELSE21040 21035 J3=0:RETURN 21040 INPUT"BURST OF 3";B$:N=1 21045 IFLEFT$(B$,1)="N"THEN21070 21050 IFLEFT$(B$,1)<>"Y"THEN21040 21051 IFT4>2THEN21060 21055 ?"NO BURST. ONLY";T4;"TORPEDOS LEFT.":GOTO21035 21060 INPUT"SPREAD ANGLE (3 - 30 DEG)";G2 21061 IFG2<0THEN21035 21062 IF(G2<3)OR(G2>30)THEN21060 21063 G2=FND(G2) 21065 N=3 21070 FORZ6=1TON 21075 IFC5$<>"DOCKED"THENT4=T4-1 21080 Z7=Z6:R=RND(1) 21085 R=(R+RND(1))*.5-.5 21090 IF(R>=-.4)AND(R<=.4)THEN21125 21095 R=(RND(1)+1.2)*R:IFN=3THEN21105 21100 ?"*** METEORITE DEFLECTION":R=INT(RND(1)*50)+1 21101 ?"TORPEDO EFFECTIVENESS REDUCED"; R;"%":?:GOTO21110 21105 ?"*** TORPEDO NUMBER";Z6;"MISFIRE - ";R;"% DOWN" 21110 IF RND(1)>.2THEN21125 21115 ?"*** PHOTON TUBES DAMAGED BY MISFIRE." 21120 D4(4)=D5*(1+2*RND(1)):GOTO21440 21125 IF(S4<>0)OR(C5$="DOCKED")THENR=R+1E-03*S3*R 21130 A3=C6+.25*R:IFN=1THEN21140 21135 A8=(15-A3+(2-Z6)*G2)*.523599:? 21137 ?"TRACK FOR TORPEDO NUMBER";Z7;"--":GOTO21145 21140 ?:?"TORPEDO TRACK --":A8=(15-A3)*.523599 21145 X4=-SIN(A8):Y4=COS(A8):B8=ABS(X4) 21146 IFABS(Y4)>ABS(X4)THENB8=ABS(Y4) 21150 X4=X4/B8:Y4=Y4/B8:X5=S6:Y5=S7 21155 FORL9=1TO15:X5=X5+X4:A5=INT(X5+.5) 21160 IF(A5<1)OR(A5>10)THEN21430 21165 Y5=Y5+Y4:A6=INT(Y5+.5) 21170 IF(A6<1)OR(A6>10)THEN21430 21175 IF(L9=5)OR(L9=9)THEN? 21180 ?FNR(X5);"-";FNR(Y5);", "; 21185 IFQ$(A5,A6)<>"."THEN21195 21190 GOTO21425 21195 ?:IFQ$(A5,A6)="K"THEN21220 21200 IFQ$(A5,A6)<>"C"THEN21325 21205 IFRND(1)>.1THEN21220 21210 ?"*** COMMANDER AT SECTOR";A5;"-";A6;"USES ANTI-PHOTON DEVICE !" 21215 ?"-- TORPEDO NEUTRALIZED.":GOTO21435 21220 FORV=1TOK3 21225 IF(A5=K4(V))AND(A6=K5(V))THEN21235 21230 NEXTV 21235 K=K6(V):W3=200+800*RND(1) 21240 IFABS(K)0THEN21255 21250 T2$=Q$(A5,A6):GOSUB6000:GOTO21435 21255 IFQ$(A5,A6)="K"THEN?"*** KLINGON AT"; 21260 IFQ$(A5,A6)="C"THEN?"*** COMMANDER AT"; 21265 ?A5;"-";A6; 21270 A7=A8+2.5*(RND(1)-.5) 21275 W3=ABS(-SIN(A7)):IFABS(COS(A7))>W3THENW3=ABS(COS(A7)) 21280 X7=-SIN(A7)/W3:Y7=COS(A7)/W3 21285 P=INT(A5+X7+.5):Q=INT(A6+Y7+.5) 21290 IF(P<1)OR(P>10)OR(Q<1)OR(Q>10)THEN21320 21295 IFQ$(P,Q)<>"."THEN21320 21300 Q$(P,Q)=Q$(A5,A6):Q$(A5,A6)=".":?"DAMAGED--" 21305 ?" DISPLACED BY BLAST TO SECTOR";P;"-";Q 21310 K4(V)=P:K5(V)=Q:K7(V)=SQR((S6-P)^2+(S7-Q)^2) 21311 K8(V)=K7(V) 21315 GOSUB28000:GOTO21435 21320 ?"DAMAGED, BUT NOT DESTROYED.":GOTO21435 21325 IFQ$(A5,A6)<>"B"THEN21365 21330 ?"*** STARBASE DESTROYED...!!!" 21335 IFS2(Q1,Q2)<0THENS2(Q1,Q2)=0 21340 FORW=1TOR3 21345 IF(B2(W)<>Q1)OR(B3(W)<>Q2)THEN21355 21350 B2(W)=B2(R3):B3(W)=B3(R3) 21355 NEXTW:Q$(A5,A6)=".":R3=R3-1:B6=0:B7=0 21360 G(Q1,Q2)=G(Q1,Q2)-10:B1=B1+1:GOSUB17000:GOTO21435 21365 IFQ$(A5,A6)<>"*"THEN21405 21370 IFRND(1)>.15THEN21385 21375 ?"*** STAR AT SECTOR";A5;"-";A6;"UNAFFECTED BY PHOTON BLAST" 21380 GOTO21435 21385 X2=A5:Y2=A6:GOSUB19002:A5=X2:A6=Y2 21390 IFG(Q1,Q2)=LQTHENRETURN 21395 IFA2<>0THENRETURN 21400 GOTO21435 21405 ?:?" >>> ORGANIAN TRUCE-MONITOR DESTROYED <<<":Q$(A5,A6)=".":? 21420 T2=0:T3=0:GOTO21435 21425 NEXTL9 21430 ?:?"TORPEDO MISSED!" 21435 NEXTZ6 21440 IFR1<>0THENRETURN 21445 F9=1:GOSUB10000:RETURN 22001 ?:?"*** RED ALERT!! RED ALERT!! ***":? 22010 ?"*** COLLISION IMMINENT!!":? 22020 ?"*** ";S5$;" RAMS ";:W7=1:IFQ$(S6,S7)="C"THENW7=2 22030 IFW7=1THEN?"KLINGON AT "; 22040 IFW7=2THEN?"COMMANDER AT "; 22050 ?"SECTOR";S6;"-";S7:A5=S6:A6=S7:T2$=Q$(S6,S7) 22060 GOSUB6000:?"*** ";S5$;" HEAVILY DAMAGED." 22070 K=INT(5+RND(1)*20):?"***SICKBAY REPORTS";K;"CASUALTIES!" 22080 C4=C4+K:FORL=1TO12:I=RND(1) 22090 J=(3.5*W7*(RND(1)+I)+1)*D5 22100 IFL=6THENJ=J/3 22110 D4(L)=D4(L)+T1+J:NEXTL:D4(6)=D4(6)-3 22120 IFD4(6)<0THEND4(6)=0 22130 S4=0:IFR1<>0THENRETURN 22140 F9=1:GOSUB10000:RETURN 23000 P=D0-J2:IF(P<>0)AND(R1=0)THEN23020 23010 IFP<5THENP=5 23020 N=(K2+K1)/P:K=INT(500*N+.5):L=0 23030 IFG1<>0THENL=100*S8 23035 I=0 23040 IFLEFT$(S5$,1)="E"THENM=0 23045 IFLEFT$(S5$,1)="F"THENM=1 23050 IFLEFT$(S5$,1)=""THENM=2 23060 IFA1=0THENI=200 23070 J=10*K1+50*K2+K+L-I-100*B1-100*M-35*N1-3*S1-C4 23080 ?:IFJ<>0THEN23100 23090 ?"AS YET, YOU HAVE NO SCORE.":RETURN 23100 ?"YOUR SCORE --":?:IFK1=0THEN23120 23110 ?K1;TAB(5);"ORDINARY KLINGON(S) DESTROYED";TAB(36);10*K1*MR 23120 IFK2=0THEN23140 23130 ?K2;TAB(5);"KLINGON COMMANDER(S) DESTROYED";TAB(36);50*K2*MR 23140 IFK=0THEN23160 23150 ?FNR(N);TAB(5);"KLINGONS PER STARDATE, AVERAGE"; 23155 ?TAB(36);K*MR 23160 IFS1=0THEN23180 23170 ?S1;TAB(5);"STAR(S) DESTROYED";TAB(36);-3*S1*MR 23180 IFB1=0THEN23200 23190 ?B1;TAB(5);"STARBASES DESTROYED";TAB(36);-100*B1*MR 23200 IFN1=0THEN23220 23210 ?N1;TAB(5);"SOS CALL(S) TO A STARBASE";TAB(36);-35*N1*MR 23220 IFC4=0THEN23240 23230 ?C4;TAB(5);"CASUALTIES INCURRED";TAB(36);-C4*MR 23240 IFM=0THEN23260 23250 ?M;TAB(5);"SHIP(S) LOST OR DESTROYED";TAB(36)-100*M*MR 23260 IFA1<>0THEN23280 23270 ?TAB(5)"PENALTY FOR GETTING KILLED";TAB(36);-200*MR 23280 IFG1=0THEN23300 23290 ?TAB(5);"BONUS FOR WINNING ";S$(S8);" GAME";TAB(36);L*MR 23300 ?TAB(5);"-------------------------------------" 23310 ?TAB(28);"TOTAL";TAB(36);J*MR;"**":RETURN 24001 A2=0:G1=0:GOSUB4001:S5$="ENTERPRISE" 24010 I7=5000:E1=I7:I8=2500:S3=I8:S4=0:S9=S4:J1=4:L1=J1 24020 Q1=FNA(1):Q2=FNA(1):S6=FNB(1):S7=FNB(1):I9=10:T4=I9 24030 W1=5:W2=25:FORI=1TO12:D4(I)=0:NEXT 24040 J2=100*INT(31*RND(1)+20):D0=J2:K1=0:K2=0:N1=0:N2=0:R6=0:C4=0 24050 A1=1:D3=.25:FORI=1TO8:FORJ=1TO8:S2(I,J)=0:NEXTJ:NEXTI 24060 F1(1)=D0-.5*I5*LOG(RND(1)):F1(5)=1E+30 24070 F1(2)=D0-1.5*(I5/R2)*LOG(RND(1)):I6=0 24080 F1(3)=D0-.3*I5*LOG(RND(1)):F1(4)=D0-.3*I5*LOG(RND(1)) 24090 FORI=1TO8:FORJ=1TO8:K=INT(RND(1)*9+1):I6=I6+K 24100 G(I,J)=K:NEXTJ:NEXTI:S1=0 24110 FOR I=1TOI2 24120 X=INT(RND(1)*6+2):Y=INT(RND(1)*6+2) 24130 IFG(X,Y)>=10THEN24120 24140 IFI<2THEN24180 24150 K=I-1:FORJ=1TOK:D1=SQR((B2(J)-X)^2+(B3(J)-Y)^2) 24160 IFD1<2THEN24120 24170 NEXTJ 24180 B2(I)=X:B3(I)=Y:S2(X,Y)=-1:G(X,Y)=G(X,Y)+10:NEXTI 24190 B1=0:K=I1-I4:L=INT(.25*S8*(9-L2)+1) 24200 M=INT((1-RND(1)^2)*L):IFM>KTHENM=K 24210 N=100*M 24220 X=FNA(1):Y=FNA(1):IFG(X,Y)+N>999THEN24220 24230 G(X,Y)=G(X,Y)+N:K=K-M:IFK<>0THEN24200 24240 FORI=1TOI4 24250 X=FNA(1):Y=FNA(1):IF(G(X,Y)<99)AND(RND(1)<.75)THEN24250 24260 IFG(X,Y)>899THEN24250 24270 IFI=1THEN24300 24280 M=I-1:FORJ=1TOM:IF(C1(J)=X)AND(C2(J)=Y)THEN24250 24290 NEXTJ 24300 G(X,Y)=G(X,Y)+100:C1(I)=X:C2(I)=Y:NEXTI 24305 I=INT(D0):?:S0=0 24310 T2=FNA(1):T3=FNA(1):IFG(T2,T3)<100THEN24310 24320 IFS8<>1THEN24440 24330 ?"IT IS STARDATE";I;"...THE ORGANIAN PEACE TREATY BETWEEN" 24340 ?"THE UNITED FEDERATION OF PLANETS AND THE KLINGON EMPIRE" 24350 ?"HAS COLLAPSED AND THE FEDERATION IS BEING ATTACKED BY A" 24360 ?"DEADLY KLINGON INVASION FLEET. AS CAPTAIN OF THE STARSHIP" 24370 ?"U.S.S. ENTERPRISE, IT IS YOUR MISSION TO SEEK OUT AND" 24380 ?"DESTROY THIS INVASION FORCE OF";I1;"BATTLE CRUISERS." 24390 ?:?"YOU HAVE AN INITIAL ALLOTMENT OF";INT(I5); 24400 ?"STARDATES":?"TO COMPLETE YOUR MISSION." 24410 ?"AS THE MISSION PROCEEDS, YOU MAY BE GIVEN MORE TIME." 24420 ?:?"YOU WILL HAVE";I2;"SUPPORTING STARBASE(S).":? 24430 GOTO24515 24440 ?"STARDATE..............";I 24450 ?"NUMBER OF KLINGONS....";I1 24460 ?"NUMBER OF STARDATES...";INT(I5) 24470 ?"NUMBER OF STARBASES...";I2 24480 ?"STARBASE LOCATIONS...."; 24490 FORI=1TOI2:?B2(I);"-";B3(I); 24500 IFI<>I2THEN?", "; 24510 NEXTI:?:? 24515 GOSUB18400 24520 ?"THE ";S5$;" IS CURRENTLY IN THE ";G2$;" QUADRANT." 24530 GOSUB18000 24531 ?:INPUT"READY TO CONTINUE";NL$:?CHR$(26):GOSUB29002:GOSUB14001:RETURN 25010 INPUT"WARP FACTOR";K 25020 ? 25025 IFK<1THEN25140 25026 IFK>10THEN25150 25030 J=W1:W1=K:W2=W1*W1 25040 IF(W1<=J)OR(W1<=6)THEN25070 25050 IFW1<=8THEN25080 25060 IFW1>8THEN25100 25070 ?"'WARP FACTOR";W1;"CAPTAIN'":RETURN 25080 ?"*** OUR MAXIMUM SAFE SPEED IS WARP 6":RETURN"; 25100 IFW1=10THEN25130 25110 ?"*** CAPTAIN, OUR ENGINES MAY NOT TAKE IT !":RETURN 25130 ?"-'AYE, CAPTAIN, WE'LL GIVE IT A TRY.'":RETURN 25140 ?"-'WE CAN'T GO BELOW WARP 1, CAPTAIN.'":RETURN 25150 ?"-'OUR TOP SPEED IS WARP 10, CAPTAIN.'" 25160 RETURN 26001 J3=0:IFD4(8)<>0THEN26600 26010 IFS4<>0THEN26530 26500 INPUT"SHIELDS ARE DOWN. DO YOU WANT THEM UP";B$ 26510 IFLEFT$(B$,1)="Y"THEN26560 26520 RETURN 26530 INPUT"SHIELDS ARE UP. DO YOU WANT THEM DOWN";B$ 26540 IFLEFT$(B$,1)="Y"THEN26590 26550 RETURN 26560 S4=1:S9=1:IFC5$<>"DOCKED"THENE1=E1-50 26570 ?"SHIELDS RAISED.":IFE1<=0THEN26610 26580 J3=1:RETURN 26590 S4=0:S9=1:?"SHIELDS LOWERED.":J3=1:RETURN 26600 ?"SHIELDS DAMAGED AND DOWN. ":RETURN 26610 ?:?"SHIELDS CONSUME ALL ENERGY." 26620 F9=4:GOSUB10000:RETURN 27000 IFX2<>0THEN27100 27010 N=INT(RND(1)*I6+1):FORX=1TO8:FORY=1TO8 27020 N=N-(G(X,Y)-INT(G(X,Y)/10)*10):IFN<=0THEN27040 27030 NEXTY:NEXTX:RETURN 27040 IF(X<>Q1)OR(Y<>Q2)THEN27150 27050 IFJ4<>0THEN27150 27060 N=INT(RND(1)*(G(X,Y)-INT(G(X,Y)/10)*10))+1 27070 FORX3=1TO10:FORY3=1TO10:IFQ$(X3,Y3)<>"*"THEN27090 27080 N=N-1:IFN=0THEN27100 27090 NEXTY3:NEXTX3 27100 ?:?"*** RED ALERT!! RED ALERT!! *** 27105 X3=X2:Y3=Y2 27110 ?"*** INCIPIENT SUPERNOVA DETECTED AT SECTOR";X3;"-";Y3 27120 X=Q1:Y=Q2:K=(X2-S6)^2+(Y2-S7)^2 27130 IFK>1.5THEN27180 27140 ?"*** EMERGENCY AUTO-OVERRIDE JAMMED ***":A2=1:GOTO27180 27150 IFD4(9)<>0THEN27180 27160 ?:?"MESSAGE FROM STARFLEET COMMAND...STARDATE";INT(D0) 27170 ?"'SUPERNOVA IN QUADRANT";X;"-";Y; 27175 ?"....CAUTION ADVISED'" 27180 N=G(X,Y):R=INT(N/100):Q=0 27190 IF(X<>Q1)OR(Y<>Q2)THEN27210 27200 K3=0:C3=0 27210 IFR=0THEN27270 27220 R1=R1-R:IFR2=0THEN27270 27230 FORL=1TOR2:IF(C1(L)<>X)OR(C2(L)<>Y)THEN27260 27240 C1(L)=C1(R2):C2(L)=C2(R2):C1(R2)=0:C2(R2)=0 27250 R2=R2-1:R=R-1:Q=1:IFR2=0THENF1(2)=1E+30 27260 NEXTL 27270 IFR3=0THEN27310 27280 FORL=1TOR3:IF(B2(L)<>X)OR(B3(L)<>Y)THEN27300 27290 B2(L)=B2(R3):B3(L)=B3(R3):B2(R3)=0:B3(R3)=0:R3=R3-1 27300 NEXTL 27310 IFX2=0THEN27350 27320 N=G(X,Y)-INT(G(X,Y)/100)*100 27330 S1=S1+(N-INT(N/10)*10):B1=B1+INT(N/10) 27340 K1=K1+R:K2=K2+Q 27350 IF(S2(X,Y)<>0)AND(D4(9)<>0)THENS2(X,Y)=LQ+G(X,Y) 27360 IF(D4(9)=0)OR((Q1=X)AND(Q2=Y))THENS2(X,Y)=1 27370 G(X,Y)=1000 27380 IF(R1<>0)OR((X=Q1)AND(Y=Q2))THEN27430 27390 ?CHR$(26):?"*** SUPERNOVA IN QUADRANT";X;"-";Y;"HAS DESTROYED THE" 27400 ?"REMAINDER OF THE ENEMY FLEET !!" 27420 F9=1:GOSUB10010:RETURN 27430 IFA2=0THENRETURN 27440 F9=8:GOSUB10010:RETURN 28000 IFK3<=1THENRETURN 28010 Z4=0:FORO=1TOK3-1:IFK7(O)<=K7(O+1)THEN28080 28020 K=K7(O):K7(O)=K7(O+1):K7(O+1)=K 28030 K=K8(O):K8(O)=K8(O+1):K8(O+1)=K 28040 K=K4(O):K4(O)=K4(O+1):K4(O+1)=K 28050 K=K5(O):K5(O)=K5(O+1):K5(O+1)=K 28060 K=K6(O):K6(O)=K6(O+1):K6(O+1)=K 28070 Z4=1 28080 NEXTO 28090 IFZ4<>0THEN28010 28100 RETURN 29002 IFD(1)<>0THEN29230 29010 ?:?" 1 2 3 4 5 6 7 8 9 10" 29020 FORI=1TO10:IFI<10THEN?" "; 29030 ?I;:FORJ=1TO10:?Q$(I,J);" ";:NEXTJ 29040 ONIGOTO29050,29060,29080,29090,29140 29045 ONI-5GOTO29150,29160,29170,29200,29210 29050 ?" STARDATE ";FNR(D0):GOTO29220 29060 IFC5$<>"DOCKED"THENGOSUB17000 29070 ?" CONDITION ";C5$:GOTO29220 29080 ?" POSITION ";Q1;"-";Q2;", ";S6;"-";S7:GOTO29220 29090 ?" LIFE SUPPORT ";:IFD4(5)<>0THEN29110 29100 ?"ACTIVE":GOTO29220 29110 IFC5$<>"DOCKED"THEN29130 29120 ?"DAMAGED, SUPPORTED BY STARBASE":GOTO29220 29130 ?"DAMAGED, RESERVES=";FNS(L1):GOTO29220 29140 ?" WARP FACTOR ";FNR(W1):GOTO29220 29150 ?" ENERGY";SPC(8);.01*INT(100*E1):GOTO29220 29160 ?" TORPEDOS ";T4:GOTO29220 29170 ?" SHIELDS ";:B$="DOWN,":IFS4<>0THENB$="UP," 29180 IFD4(8)>0THENB$="DAMAGED," 29190 ?B$;INT(100*S3/I8+.5);"%":GOTO29220 29200 ?" KLINGONS LEFT ";R1:GOTO29220 29210 ?" TIME LEFT ";FNS(R5) 29220 NEXTI:RETURN 29230 ?"SHORT RANGE SENSORS DAMAGED.":RETURN 30001 ?:?"*** TIME WARP ENTERED ***":?"YOU ARE TRAVELING "; 30010 IFS0<>0THEN30050 30020 T1=-.5*I5*LOG(RND(1)) 30030 ?"FORWARD IN TIME";FNR(T1);"STARDATES." 30040 F1(2)=F1(2)+T1:GOTO30200 30050 M=D0:D0=D9(1) 30060 ?"BACKWARD IN TIME";FNR(M-D0);"STARDATES.":S0=0 30070 R1=D9(2):R2=D9(3):R3=D9(4):R4=D9(5):R5=D9(6) 30080 S1=D9(7):B1=D9(8):K1=D9(9):K2=D9(10) 30090 FORI=1TO8:FORJ=1TO8:G(I,J)=D9(I-1+8*(J-1)+11):NEXTJ:NEXTI 30100 FORI=75TO84:C1(I-74)=D9(I):NEXT 30110 FORI=85TO94:C2(I-84)=D9(I):NEXT 30120 FORI=95TO99:B2(I-94)=D9(I):NEXT 30130 FORI=100TO104:B3(I-99)=D9(I):NEXT:B4=D9(105):B5=D9(106) 30140 F1(1)=D0-.5*I5*LOG(RND(1)) 30150 IFR2<>0THENF1(2)=D0-(I5/R2)*LOG(RND(1)) 30160 F1(3)=D0-.5*I5*LOG(RND(1)) 30170 FORI=1TO8:FORJ=1TO8:IF10THEN31120 31020 INPUT"NUMBER OF UNITS TO SHIELDS";Z3 31030 IFZ3<0THENRETURN 31040 IFE1+S3-Z3>0THEN31060 31050 ?"SCOTT HERE- 'WE ONLY HAVE";FNR(E1+S3);"UNITS LEFT.'" 31051 RETURN 31060 E1=E1+S3-Z3:S3=Z3:?"--ENERGY TRANSFER COMPLETE--" 31070 ?"(SHIP ENERGY=";FNR(E1);" SHIELD ENERGY=";FNR(S3);")" 31075 J3=1 31080 T1=.1:P5=(K3+4*C3)/48:IFP5<.1THENP5=.1 31090 IFP5>RND(1)THENGOSUB1000 31100 IFA2<>0THENRETURN 31110 GOSUB9000:RETURN 31120 ?"TRANSFER PANEL DAMAGED.":RETURN 32001 INPUT"WHICH DIRECTION";Z 32002 IFZ<.01ORZ>12THENGOSUB40000ELSE32020 32005 J3=0:RETURN 32020 T1=.05:P=(K3+4*C3)/48:IFP<.05THENP=.05 32030 IFP>RND(1)THENGOSUB1000 32040 IFA2<>0THENRETURN 32050 GOSUB9000:J3=1:IFA2<>0THENRETURN 32080 D5=INT((Z/12)*8+1.5):IFD5>8THEND5=1 32085 FORI=1TO5:FORJ=1TO5:V$(I,J)=" ":NEXTJ:NEXTI:N=0 32087 V$(3,3)=LEFT$(S5$,1) 32090 OND5GOTO32100,32130,32150,32170,32190,32220,32260,32300 32100 I=S6-2:J=S7-2:V$(1,1)=Q$:IF(J>0)AND(I>0)THENV$(1,1)=Q$(I,J) 32110 I=S6-1:J=S7-1:V$(2,2)=Q$:IF(I>0)AND(J>0)THENV$(2,2)=Q$(I,J) 32120 N=N+1:IFN=3THEN32350 32125 I=S6-2:V$(1,2)=Q$:IF(I>0)AND(J>0)THENV$(1,2)=Q$(I,J) 32130 I=S6-2:V$(1,3)=Q$:IFI>0THENV$(1,3)=Q$(I,S7) 32135 I=S6-1:V$(2,3)=Q$:IFI>0THENV$(2,3)=Q$(I,S7) 32140 N=N+1:IFN=3THEN32350 32145 I=S6-2:J=S7+1:V$(1,4)=Q$:IF(I>0)AND(J<11)THENV$(1,4)=Q$(I,J) 32150 I=S6-2:J=S7+2:V$(1,5)=Q$:IF(I>0)AND(J<11)THENV$(1,5)=Q$(I,J) 32155 I=S6-1:J=S7+1:V$(2,4)=Q$:IF(I>0)AND(J<11)THENV$(2,4)=Q$(I,J) 32160 N=N+1:IFN=3THEN32350 32165 J=S7+2:V$(2,5)=Q$:IF(I>0)AND(J<11)THENV$(2,5)=Q$(I,J) 32170 J=S7+2:V$(3,5)=Q$:IFJ<11THENV$(3,5)=Q$(S6,J) 32175 J=S7+1:V$(3,4)=Q$:IFJ<11THENV$(3,4)=Q$(S6,J) 32180 N=N+1:IFN=3THEN32350 32185 I=S6+1:J=S7+2:V$(4,5)=Q$:IF(I<11)AND(J<11)THENV$(4,5)=Q$(I,J) 32190 I=S6+2:J=S7+2:V$(5,5)=Q$:IF(I<11)AND(J<11)THENV$(5,5)=Q$(I,J) 32195 I=S6+1:J=S7+1:V$(4,4)=Q$:IF(I<11)AND(J<11)THENV$(4,4)=Q$(I,J) 32200 N=N+1:IFN=3THEN32350 32210 I=S6+2:V$(5,4)=Q$:IF(I<11)AND(J<11)THENV$(5,4)=Q$(I,J) 32220 I=S6+2:V$(5,3)=Q$:IFI<11THENV$(5,3)=Q$(I,S7) 32230 I=S6+1:V$(4,3)=Q$:IFI<11THENV$(4,3)=Q$(I,S7) 32240 N=N+1:IFN=3THEN32350 32250 I=S6+2:J=S7-1:V$(5,2)=Q$:IF(I<11)AND(J>0)THENV$(5,2)=Q$(I,J) 32260 I=S6+2:J=S7-2:V$(5,1)=Q$:IF(I<11)AND(J>0)THENV$(5,1)=Q$(I,J) 32270 I=S6+1:J=S7-1:V$(4,2)=Q$:IF(I<11)AND(J>0)THENV$(4,2)=Q$(I,J) 32280 N=N+1:IFN=3THEN32350 32290 J=S7-2:V$(4,1)=Q$:IF(I<11)AND(J>0)THENV$(4,1)=Q$(I,J) 32300 J=S7-2:V$(3,1)=Q$:IFJ>0THENV$(3,1)=Q$(S6,J) 32310 J=S7-1:V$(3,2)=Q$:IFJ>0THENV$(3,2)=Q$(S6,J) 32320 N=N+1:IFN=3THEN32350 32330 I=S6-1:J=S7-2:V$(2,1)=Q$:IF(I>0)AND(J>0)THENV$(2,1)=Q$(I,J) 32340 GOTO32100 32350 FORI=1TO5 32360 IF(V$(I,1)=" ")AND(V$(I,3)=" ")AND(V$(I,5)=" ")THEN32390 32370 ?" "; 32380 FORJ=1TO5:?V$(I,J);" ";:NEXTJ:? 32390 NEXTI:RETURN 33001 J3=0:INPUT"HOW MANY STARDATES";Z5:IF(Z5"Y"THENRETURN 33030 R6=1 33040 IFZ5<=0THENR6=0 33050 IFR6=0THENRETURN 33060 T1=Z5:Z6=Z5 33070 IFK3=0THEN33100 33080 T1=1+RND(1):IFZ50THENRETURN 33120 GOSUB9000:J3=1:IFA2<>0THENRETURN 33130 Z5=Z5-Z6:GOTO33040 34001 J3=0:IFD4(6)<>0THEN34750 34010 INPUT"ENTER COURSE...";D2:IFD2<.01ORD2>12THENGOSUB40000ELSE34013 34012 RETURN 34013 INPUT"DISTANCE...";D1:IFD1<=0THENRETURN 34030 P=(D1+.05)*W1*W1*W1*(S4+1):IFPE1)THEN34080 34060 ?" WE HAVEN'T THE ENERGY TO GO THAT FAR WITH"; 34070 ?" THE SHIELDS UP.":RETURN 34080 W=INT((E1/(D1+.05))^.333333):IFW<=0THEN34130 34090 ?" WE HAVEN'T THE ENERGY. BUT WE COULD DO IT AT WARP";W 34100 IFS4<>0THEN34120 34110 RETURN 34120 ?" IF YOU'LL LOWER THE SHIELDS.":RETURN 34130 ?" WE CAN'T DO IT, CAPTAIN. WE HAVEN'T GOT THE ENERGY." 34140 RETURN 34150 T1=10*D1/W2:IFT1<.8*R5THEN34500 34160 ?:?"MR. SPOCK - 'CAPTAIN, I COMPUTE THAT SUCH A TRIP" 34170 ?" WILL REQUIRE APPROXIMATELY";FNR(100*T1/R5); 34180 ?"PERCENT":?" OF OUR REMAINING TIME. ARE YOU SURE "; 34190 INPUT "THIS IS WISE";B$:IFLEFT$(B$,1)="Y"THEN34500 34200 J3=0:RETURN 34500 Q4=0:W=0:IFW1<=6THEN34660 34510 P=D1*(6-W1)^2/66.6667:IFP>RND(1)THENQ4=1 34520 IFQ4<>0THEND1=RND(1)*D1 34530 W=0:IFW1<10THEN34550 34540 IF.25*D1>RND(1)THENW=1 34550 IF(Q4=0)AND(W=0)THEN34660 34560 A=(15-D2)*.5236:X1=-SIN(A):X2=COS(A) 34570 B8=ABS(X1):IFABS(X2)>ABS(X1)THENB8=ABS(X2) 34580 X1=X1/B8:Y1=Y1/B8:N=INT(10*D1*B8+.5):X=S6:Y=S7 34590 IFN=0THEN34660 34600 FORL=1TON 34610 X=X+X1:Q=INT(X+.5):IF(Q<1)OR(Q>10)THEN34660 34620 Y=Y+Y1:R=INT(Y+.5):IF(R<1)OR(R>10)THEN34660 34630 IFQ$(Q,R)="."THEN34650 34640 Q4=0:W=0 34650 NEXTL 34660 GOSUB15001:IFA2<>0THENRETURN 34670 E1=E1-D1*W1*W1*W1*(S4+1):IFE1>0THEN34690 34680 F9=4:GOSUB10000:RETURN 34690 T1=10*D1/W2:IFW<>0THENGOSUB30001 34700 IFQ4=0THEN34740 34710 ?:?"ENGINEERING TO BRIDGE--":?" SCOTT HERE- "; 34715 ?"'WE'VE JUST BLOWN THE WARP ENGINES." 34720 ?" WE'LL HAVE TO SHUT 'ER DOWN HERE, CAPTAIN.'" 34725 D4(6)=D5*(3*RND(1)+1) 34740 J3=1:RETURN 34750 ?"WARP ENGINES DAMAGED.":RETURN 35001 ONSGN(D4(10))+2GOTO35010,35030,35020 35010 ?"YE FAERIE QUEENE HAS NO SHUTTLE CRAFT.":RETURN 35020 ?"SHUTTLE CRAFT DAMAGED.":RETURN 35030 ?:?"***ABANDON SHIP! ABANDON SHIP!" 35040 ?"***ALL HANDS ABANDON SHIP!":? 35050 ?"YOU AND THE BRIDGE CREW ESCAPE IN THE GALILEO." 35060 ?"THE REMAINDER OF THE CREW BEAMS DOWN" 35070 ?"TO THE NEAREST HABITABLE PLANET.":IFR3<>0THEN35090 35080 F9=9:GOSUB10000:RETURN 35090 ?:?"YOU ARE CAPTURED BY KLINGONS AND RELEASED TO" 35100 ?"THE FEDERATION IN A PRISONER-OF-WAR EXCHANGE." 35110 ?"STARFLEET PUTS YOU IN COMMAND OF ANOTHER SHIP," 35120 ?"THE FAERIE QUEENE WHICH IS ANTIQUATED, BUT" 35130 ?"STILL USABLE.":N=INT(RND(1)*R3+1):Q1=B2(N):Q2=B3(N) 35140 S6=5:S7=5:GOSUB18000:Q$(S6,S7)="." 35145 FORL=1TO3:S6=INT(3*RND(1)-1+B6) 35150 IF(S6<1)OR(S7>10)THEN35180 35160 S7=INT(3*RND(1)-1+B7):IF(S7<1)OR(S7>10)THEN35180 35170 IFQ$(S6,S7)="."THEN35190 35180 NEXTL:GOTO35140 35190 S5$="FAERIE QUEENE":Q$(S6,S7)=LEFT$(S5$,1):C5$="DOCKED" 35200 FORL=1TO12:D4(L)=0:NEXT:D4(10)=-1:E1=3000:I7=E1 35210 S3=1500:I8=S3:T4=6:I9=T4:L1=3:J1=L1:S4=0:W1=5:W2=25 35220 RETURN 36001 IFD4(11)=0THEN36030 36010 ?"COMPUTER DAMAGED - CANNOT EXECUTE DESTRUCT SEQUENCE" 36020 RETURN 36030 ?:?" ---WORKING---" 36040 ?"IDENTIFICATION-POSITIVE" 36050 ?"SELF-DESTRUCT-SEQUENCE-ACTIVATED":J=3 36060 FORI=10TO6STEP-1:?SPC(J);I:GOSUB36210:J=J+3:NEXT 36070 ?"ENTER-YOUR-MISSION-PASSWORD-TO-CONTINUE" 36080 ?"SELF-DESTRUCT-SEQUENCE-OTHERWISE-DESTRUCT" 36090 ?"SEQUENCE-WILL-BE-ABORTED" 36100 INPUTB$:IFB$<>X$THEN36190 36110 ?"PASSWORD-ACCEPTED":J=10 36120 FORI=5TO1STEP-1:?SPC(J);I:GOSUB36210:J=J+3:NEXT 36130 ?:?"*****ENTROPY OF ";S5$;" MAXIMIZED*****" 36140 ?:IFK3=0THEN36180 36150 W=20*E1:FORL=1TOK3:IFK6(L)*K7(L)>WTHEN36170 36160 A5=K4(L):A6=K5(L):T2$=Q$(A5,A6):GOSUB6000 36170 NEXTL 36180 F9=10:GOSUB10000:RETURN 36190 ?"PASSWORD-REJECTED" 36200 ?"CONTINUITY-EFFECTED":?:RETURN 36210 K=12345:FORM=1TO90:K=K+1:NEXTM:RETURN 37001 FORI=1TO10:GOTO29040:RETURN 40000 ?"---> COURSE(S) .01-12 ONLY !!!":RETURN