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
/
TREKMOD.ASC
< prev
next >
Wrap
Text File
|
1985-02-10
|
43KB
|
1,279 lines
10 'BASED ON BIGTREK GAME / SHORTENED BY EDISON DOGGE.
20 WIDTH90:LQ=1000'REM NO SCORE - NO VISUALS
30 INPUT"CLEARANCE NUMBER (1 TO 25000)...";I
40 IFI<1ORI>25000ORI<>INT(I)THEN30
50 I1=IMOD97:IFI1=0THENI=I+199:GOTO50
60 I=RND(-I1):FORI1=1TOI:X=RND(1):NEXT
70 DIM G1$(16),V$(5,5),C$(20),G(8,8),D$(12),Q$(10,10),D4(12),D9(106)
80 DIM S2(8,8):Q$="?"
90 DATA S.R. SENSORS,L.R. SENSORS,PHASERS,PHOTON TUBES,LIFE SUPPORT
100 DATA WARP ENGINES,IMPULSE ENGINES,SHIELDS,SUBSPACE RADIO
110 DATA SHUTTLE CRAFT,COMPUTER,TRANSFER PANEL,ABANDON,CHART,COMPUTER
120 DATA DAMAGES,DESTRUCT,DOCK,IDLE,IMPULSE,LRSCAN,NAVIGATE,PHASERS,QUIT
130 DATA SHIELDS,SOS,SRSCAN,STATUS,TORPEDO,TRANSFER,VISUAL,WARP,SHORT
140 DATA MEDIUM,LONG,BEGINNER,NOVICE,SENIOR,EXPERT,COURSE,WCOST,ICOST
150 DATA PEFFECT,OUT,ANTARES,SIRIUS,RIGEL,MERAK,PROCYON,CAPELLA
160 DATA VEGA,DENEB,CANOPUS,ALDEBARAN,ALTAIR,REGULUS,BELLATRIX,ARCTURUS
170 DATA POLLUX,SPICA,10.5,12,1.5,9,0,3,7.5,6,4.5
180 DEF FNA(X)=INT(8*RND(X))+1:DEF FNB(X)=INT(10*RND(X))+1
190 DEF FND(X)=X/60
200 DEFFNR(X)=INT(X*10+.5)/10:DEFFNS(X)=INT(X*100+.5)/100
210 FORI=1TO12:READD$(I):NEXT:FORI=1TO20:READC$(I):NEXT
220 FORI=1TO3:READT$(I):NEXT:FORI=1TO4:READS$(I):NEXT:FORI=1TO5
230 READC2$(I):NEXT:FORI=1TO16:READG1$(I):NEXT:FORI=1TO9:READC5(I):NEXT
240 GOSUB9760:S7$(1)="":S7$(2)=" ":S7$(3)=" ":S7$(4)=""
250 IFA2<>0THEN760
260 J4=0:T1=0:INPUT"COMMAND";A$:IFLEN(A$)>1THEN280
270 PRINT"2 LETTERS, PLEASE.":GOTO260
280 FORI=1TO20
290 IFA$=LEFT$(C$(I),LEN(A$))THEN350
300 NEXT
310 PRINT"ILLEGAL !! - USE THIS LIST"
320 PRINT:FORI=1TO20STEP4
330 PRINTC$(I);TAB(12);C$(I+1);TAB(22);C$(I+2);TAB(32);C$(I+3)
340 NEXT:PRINT:GOTO250
350 ONIGOTO370,380,390,400,410,420,430,470,490,500
360 ONI-10GOTO530,760,550,580,590,600,610,620,660,670
370 GOSUB 12310:GOTO250
380 GOSUB 2020:GOTO250
390 GOSUB2540:GOTO250
400 GOSUB3540:GOTO250
410 GOSUB12550:GOTO250
420 GOSUB3430:GOTO250
430 GOSUB11700:IFJ3=0THEN250
440 IFA2<>0THEN760
450 IFG(Q1,Q2)=1000THEN720
460 GOSUB790:GOTO250
470 GOSUB5390:IFJ3=0THEN250
480 GOTO680
490 GOSUB5650:GOTO250
500 GOSUB11830
510 IFJ3=0THEN250
520 GOTO680
530 GOSUB8270:IFJ3=0THEN250
540 GOSUB790:GOTO250
550 GOSUB10370:IFJ3=0THEN250
560 IFA2<>0THEN760
570 GOSUB790:S9=0:GOTO250
580 GOSUB4720:GOTO250
590 GOSUB11090:GOSUB5650:GOTO250
600 PRINT:GOSUB12770:GOTO250
610 GOSUB8660:IFJ3=0THEN250ELSE680
620 GOSUB11560:IFJ3=0THEN250
630 IFA2<>0THEN760
640 IFG(Q1,Q2)<>LQTHEN250
650 GOTO720
660 PRINT:PRINT"VISUAL INOPERATIVE !":RETURN
670 GOSUB10210:GOTO250
680 IFA2<>0THEN760
690 IFT1<>0THENGOSUB3640
700 IFA2<>0THEN760
710 IFG(Q1,Q2)<LQTHEN750
720 GOSUB1580:IFA2<>0THEN760
730 IFA2<>0THEN760
740 GOTO710
750 GOSUB790:GOTO250
760 PRINT:PRINT:INPUT"ANOTHER GAME ";A$
770 IFLEFT$(A$,1)="Y"THEN240
780 PRINTCHR$(26):END
790 IF(C3<>0)AND(J4=0)THENGOSUB6620
800 IFK3=0THENRETURN
810 IFA2<>0THENRETURN
820 P2=1/I8
830 J5=0
840 PRINT
850 IFC5$="DOCKED"THEN1530
860 H2=0:H3=0:C6=1
870 IFS9=1THENC6=.5+.5*RND(1)
880 A3=0
890 FORL=1TOK3
900 IFK6(L)<0THEN1320
910 A3=1
920 D6=.8+.05*RND(1)
930 H4=K6(L)*D6^K8(L)
940 IF(S4=0)AND(S9=0)THEN1000
950 P3=.1:IFP2*S3>P3THENP3=P2*S3
960 H5=P3*C6*H4+1
970 IFH5>S3THENH5=S3
980 S3=S3-H5:H4=H4-H5
990 IF(P3>.1)AND(H4<5E-03*E1)THEN1320
1000 J5=1
1010 PRINTFNR(H4);"UNIT HIT ON THE ";S5$;" FROM ";
1020 J6=K4(L):J7=K5(L)
1030 IFQ$(J6,J7)="K"THENPRINT"KLINGON AT";
1040 IFQ$(J6,J7)="C"THENPRINT"COMMANDER AT";
1050 PRINTJ6;"-";J7
1060 IFH4>H2THENH2=H4
1070 H3=H3+H4
1080 IFH4<(275-25*S8)*(1+.5*RND(1))THEN1310
1090 N4=1+INT(H4/(500+100*RND(1)))
1100 PRINT"*** CRITICAL HIT--";
1110 K9=1
1120 FORW4=1TON4
1130 J9=INT(12*RND(1))+1
1140 C5(W4)=J9
1150 E3=(H4*D5)/(N4*(75+25*RND(1)))
1160 IFJ9=6THENE3=E3/3
1170 D4(J9)=D4(J9)+E3
1180 IFW4=1THEN1250
1190 FORV=1TOW4
1200 IFJ9=C5(V-1)THEN1260
1210 NEXTV
1220 K9=K9+1
1230 IFK9=3THENPRINT
1240 PRINT " AND ";
1250 PRINTD$(J9);
1260 NEXTW4
1270 PRINT " DAMAGED."
1280 IFD4(8)=0THEN1310
1290 IFS4<>0THENPRINT"*** SHIELDS KNOCKED DOWN."
1300 S4=0
1310 E1=E1-H4
1320 NEXTL
1330 IFA3=0THENRETURN
1340 IFE1<=0THEN1510
1350 P4=100*P2*S3+.5
1360 IFJ5<>0THEN1390
1370 PRINT"ENEMY ATTACK--SHIELDS REDUCED TO ";
1380 GOTO1430
1390 PRINT"ENERGY LEFT:";FNS(E1);" SHIELDS ";
1400 IFS4<>0THENPRINT"UP,";
1410 IF(S4=0)AND(D4(8)=0)THENPRINT"DOWN, ";
1420 IFD4(8)>0THENPRINT"DAM GED, ";
1430 PRINTINT(P4);"%"
1440 IF(H2<200)AND(H3<500)THEN1540
1450 J8=INT(H3*RND(1)*.015)
1460 IFJ8<2THEN1540
1470 PRINT
1480 PRINT"---> 'SICKBAY TO BRIDGE. WE SUFFERED ";J8;"CASUALTIES IN THAT ATTACK"
1490 C4=C4+J8
1500 GOTO1540
1510 F9=5
1520 GOSUB4710:RETURN
1530 PRINT"*** KLINGONS ATTACK-- STARBASE SHIELDS PROTECT THE ";S5$
1540 FORW4=1TOK3
1550 K8(W4)=K7(W4)
1560 NEXTW4
1570 GOSUB10980:RETURN
1580 PRINT:IFJ4=0THEN1610
1590 PRINT"*** RED ALERT! RED ALERT!"
1600 PRINT"*** THE ";S5$;" HAS STOPPED IN QUADRANT CONTAINING SUPERNOVA"
1610 PRINT "*** AUTO-OVERRIDE ATTEMPTS TO HURL ";S5$;" TO OTHER QUADRANT"
1620 S2(Q1,Q2)=1
1630 GOSUB7260
1640 IFD4(6)=0THEN1830
1650 PRINT
1660 PRINT"WARP ENGINES DAMAGED."
1670 PRINT:PRINT"TRYING TO ENGAGE IMPULSE ENGINES..."
1680 IFD4(7)=0THEN1730
1690 PRINT"IMPULSE ENGINES DAMAGED."
1700 F9=8
1710 GOSUB4710
1720 RETURN
1730 P2=.75*E1
1740 D6=4E-03*(P2-50)
1750 D7=1.4142+1.2*RND(1)
1760 D1=D6
1770 IFD6>D7THEND1=D7
1780 T1=D1/.4
1790 D2=12*RND(1)
1800 J4=0
1810 GOSUB5590
1820 GOTO1940
1830 W1=6+2*RND(1)
1840 W2=W1*W1
1850 P2=.75*E1
1860 D6=P2/(W1*W1*W1*(S4+1))
1870 D7=1.4142+2*RND(1)
1880 D1=D6
1890 IFD6>D7THEND1=D7
1900 T1=10*D1/W2
1910 D2=12*RND(1)
1920 J4=0
1930 GOSUB12040
1940 IFJ4<>0THEN1980
1950 F9=8
1960 GOSUB4710
1970 RETURN
1980 IFR1<>0THENRETURN
1990 F9=1
2000 GOSUB4710
2010 RETURN
2020 PRINT:PRINT" 1 2 3 4 5 6 7 8"
2030 PRINT" --- --- --- --- --- --- --- ---"
2040 FORI=1TO8
2050 PRINTI;" ";
2060 FORJ=1TO8
2070 ONSGN(S2(I,J))+2GOTO2080,2100,2120
2080 PRINT" .1.";
2090 GOTO 2170
2100 PRINT" ...";
2110 GOTO2170
2120 IFS2(I,J)>LQTHEN2160
2130 IFG(I,J)<LQTHENPRINTS7$(LEN(STR$(G(I,J))));STR$(G(I,J));
2140 IFG(I,J)=LQTHENPRINT" ***";
2150 GOTO2170
2160 PRINTS2(I,J)-LQ;
2170 NEXTJ:PRINT:NEXTI:GOSUB7550:PRINT
2180 PRINT"THE ";S5$;" IS CURRENTLY IN ";G2$;" (";Q1;"-";Q2;")"
2190 RETURN
2200 PRINTCHR$(26)
2210 S8=0:L2=0
2220 PRINT"MISSION DURATION...: ";
2230 INPUTA$
2240 FOR I=1TO3
2250 IFA$=LEFT$(T$(I),LEN(A$))THEN2290
2260 NEXTI
2270 PRINT"WOULD YOU LIKE A SHORT, MEDIUM OR LONG GAME";
2280 GOTO2230
2290 L2=I
2300 PRINT"ARE YOU A BEGINNER, NOVICE, SENIOR OR EXPERT ";
2310 INPUTA$
2320 FORI=1TO4
2330 IFA$=LEFT$(S$(I),LEN(A$))THEN2360
2340 NEXTI
2350 GOTO2300
2360 S8=I
2370 INPUT"ENTER MISSION PASSWORD...";X$:PRINT
2380 PRINT"....STAND BY...."
2390 J=RND(1)
2400 D5=.5*S8:I2=INT(L2+1+RND(1)*3)
2410 IFI2>5THENI2=5
2420 R3=I2
2430 I5=7*L2
2440 R5=I5
2450 R7=(S8-2*RND(1)+1)*S8*.1+.1
2460 IFR7<.2THENR7=R7+.1
2470 I1=INT(2*R7*I5)
2480 R1=I1
2490 I4=INT(S8+.0625*I1*RND(1))
2500 R2=I4
2510 I3=(I1+4*I4)*I5
2520 R4=I3
2530 RETURN
2540 IFD4(11)=0THEN2570
2550 PRINT" COMPUTER DISABLED"
2560 RETURN
2570 PRINT"----COMPUTER ACTIVE----"
2580 INPUT"PROGRAM NAME";B$
2590 FORI=1TO6
2600 IFB$=LEFT$(C2$(I),LEN(B$))THEN2660
2610 NEXT
2620 PRINT"VALID PROGRAMS ARE:"
2630 PRINT" COURSE WCOST OUT"
2640 PRINT" PEFFECT ICOST"
2650 GOTO2580
2660 ON IGOTO2670,2910,2980,3040,2580,3110
2670 INPUT "ENTER QUADRANT AND SECTOR - ";A3,A4
2680 IF(A3<>INT(A3))OR(A4<>INT(A4))THEN3120
2690 IFA3<0THEN2580
2700 IFA3=0THENA3=10*Q1+Q2
2710 A3=A3+.5
2720 K=INT(A3/10)
2730 IF(K<1)OR(K>8)THEN3120
2740 C6(1)=K:K=INT(A3-C6(1)*10)
2750 IF(K<1)OR(K>8)THEN3120
2760 C6(2)=K:A4=A4+.5
2770 K=INT(A4/100)
2780 IF(K<1)OR(K>10)THEN3120
2790 C6(1)=C6(1)+(K-1)/10:K=INT(A4-K*100)
2800 IF(K<1)OR(K>10)THEN3120
2810 C6(2)=C6(2)+(K-1)/10
2820 X=Q1+((S6-1)/10)-C6(1):Y=Q2+((S7-1)/10)-C6(2)
2830 D1=0:D2=0:IF(X=0)AND(Y=0)THEN2890
2840 D1=SQR(X*X+Y*Y)
2850 IFX<0THENZ7=SGN(Y)*(3.1416-ATN(ABS(Y/X)))
2860 IFX=0THENZ7=SGN(Y)*1.5708
2870 IFX>0THENZ7=ATN(Y/X)
2880 D2=12-Z7*1.9098593#:IFD2>12THEND2=D2-12
2890 PRINT"COURSE IS";FNS(D2);" FOR A DISTANCE OF";
2900 PRINTFNS(D1);"QUADRANTS.":GOTO2580
2910 INPUT"ENTER DISTANCE AND WARP FACTOR";D1,A4
2920 IF(D1<0)THEN2580
2930 C7=D1*A4*A4*A4
2940 T1=(10*D1)/((A4*A4)+1E-05)
2950 PRINT"IT WOULD TAKE";FNS(T1);"STARDATES AND USE"
2960 PRINTFNR(C7);"UNITS OF ENERGY (";FNR(C7+C7);"IF SHIELDS ARE UP)"
2970 GOTO2580
2980 INPUT"ENTER DISTANCE...";D1
2990 IFD1<0THEN2580
3000 C7=250*D1+50:T1=D1/.4
3010 PRINT"IT WOULD TAKE";FNR(T1);"STARDATES AND USE"
3020 PRINTC7;"UNITS OF ENERGY"
3030 GOTO2580
3040 INPUT"ENTER PHASER RANGE IN QUADRANTS";A3
3050 IFA3<0THEN2580
3060 A3=A3*10:C7=(.9^A3)*100
3070 PRINT"PHASERS ARE ";LEFT$(STR$(C7),5);"% EFFECTIVE AT THAT RANGE"
3080 GOTO2580
3090 GOSUB9750
3100 GOTO2580
3110 RETURN
3120 PRINT"FORMAT IS MN,XXYY...WHERE MN IS THE QUADRANT"
3130 PRINT"AND XXYY IS THE SECTOR...E.G. 64,0307 REFERS"
3140 PRINT"TO QUADRANT 6-4, SECTOR 3-7."
3150 GOTO 2580
3160 IFT2$<>"C"THEN3250
3170 C3=0:PRINT"*** COMMANDER AT";
3180 FORF=1TOR2:IF(C1(F)=Q1)AND(C2(F)=Q2)THEN3200
3190 NEXTF
3200 C1(F)=C1(R2):C2(F)=C2(R2):C1(R2)=0:C2(R2)=0
3210 R2=R2-1:F1(2)=1E+30
3220 IFR2<>0THENF1(2)=D0-(I4/R2)*LOG(RND(1))
3230 K2=K2+1
3240 GOTO3270
3250 PRINT"*** KLINGON AT";
3260 K1=K1+1
3270 PRINTA5;"-";A6;"DESTROYED."
3280 Q$(A5,A6)=".":R1=R1-1
3290 IFR1=0THENRETURN
3300 R5=R4/(R1+4*R2)
3310 G(Q1,Q2)=G(Q1,Q2)-100
3320 FORF=1TOK3
3330 IF(K4(F)=A5)AND(K5(F)=A6)THEN3350
3340 NEXTF
3350 K3=K3-1
3360 IFF>K3THEN3410
3370 FORG=FTOK3
3380 K4(G)=K4(G+1):K5(G)=K5(G+1):K6(G)=K6(G+1)
3390 K7(G)=K7(G+1):K8(G)=K7(G)
3400 NEXTG
3410 K4(K3+1)=0:K5(K3+1)=0:K7(K3+1)=0:K8(K3+1)=0:K6(K3+1)=0
3420 RETURN
3430 IFC5$="DOCKED"THEN3520
3440 IFB6=0THEN3460
3450 IF(ABS(S6-B6)<=1)AND(ABS(S7-B7)<=1)THEN3480
3460 PRINTS5$;" NOT ADJACENT TO A BASE."
3470 RETURN
3480 C5$="DOCKED"
3490 PRINT"---> DOCKING COMPLETED"
3500 E1=I7:S3=I8:T4[9:L1=J1
3510 RETURN
3520 PRINT"CAPTAIN, WE'RE ALREADY DOCKED!"
3530 RETURN
3540 J=0:PRINT:FORI=1TO12
3550 IFD4(I)<=0THEN3600
3560 IFJ<>0THEN3590
3570 PRINT" DEVICE";SPC(12);"-REPAIR TIMES-"
3580 PRINTSPC(21);"IN FLIGHT DOCKED":J=1
3590 PRINT" ";D$(I);TAB(23);FNS(D4(I));TAB(33);FNS(D3*D4(I))
3600 NEXTI
3610 PRINT"TAB(23);"VISUAL SENSORS PERMANENTLY DAMAGED"
3620 IFJ=0THENPRINT" - ALL DEVICES (EXCEPT VISUAL) FUNCTIONAL -"
3630 RETURN
3640 M=0:D7=D0+T1:FORL=1TO5
3650 IFF1(L)>D7THEN3670
3660 M=L:D7=F1(L)
3670 NEXTL
3680 X6=D7-D0:D0=D7
3690 R4=R4-(R1+4*R2)*X6
3700 R5=R4/(R1+4*R2)
3710 IFR5>0THEN3750
3720 F9=2
3730 GOSUB4710
3740 RETURN
3750 IF(D4(5)=0)OR(C5$="DOCKED")THEN3810
3760 IF(L1>=X6)OR(D4(5)<=L1)THEN3790
3770 F9=3:GOSUB4710
3780 RETURN
3790 L1=L1-X6
3800 IFD4(5)<=X6THENL1=J1
3810 R=X6
3820 IFC5$="DOCKED"THENR=X6/D3
3830 FORL=1TO12
3840 IFD4(L)<=0THEN3890
3850 D4(L)=D4(L)-R
3860 IFD4(L)<0THEND4(L)=0
3870 IFD4(L)<>0THEN3890
3880 PRINT:PRINT"DAMAGE CONTROL- ";D$(L);" NOW OPERATIONAL."
3890 NEXTL
3900 IFM=0THENRETURN
3910 T1=T1-X6
3920 ONMGOTO3930,3970,4190,4280,4450
3930 X2=0:Y2=0:GOSUB10520
3940 F1(1)=D0-.5*I5*LOG(RND(1))
3950 IFG(Q1,Q2)=LQTHENRETURN
3960 GOTO3640
3970 IFR2=0THEN4180
3980 IFC5$="DOCKED"THEN4160
3990 I=INT(RND(1)*R2)+1
4000 Y6=(C1(I)-Q1)^2+(C2(I)-Q2)^2
4010 IFY6=0THEN4160
4020 Y6=SQR(Y6):T1=.17778*Y6
4030 PRINT:PRINT"*** ";S5$;" CAUGHT IN LONG-RANGE TRACTOR BEAM--"
4040 Q1=C1(I):Q2=C2(I)
4050 S6=FNB(1):S7=FNB(1)
4060 PRINT"PULLED TO QUADRANT";Q1;"-";Q2;", SECTOR";S6;"-";S7
4070 IFR6<>0THENPRINT"(IDLE PERIOD CANCELLED)"
4080 R6=0
4090 IFS4<>0THEN4150
4100 IF(D4(8)=0)AND(S3>0)THEN4130
4110 PRINT"(SHIELDS NOT CURRENTLY USABLE.)"
4120 GOTO4150
4130 GOSUB10390
4140 S9=0
4150 GOSUB7260
4160 F1(2)=D0+T1-1.5*(I5/R2)*LOG(RND(1))
4170 GOTO3640
4180 F1(2)=1E+30:GOTO3640
4190 D9(1)=D0:D9(2)=R1:D9(3)=R2:D9(4)=R3:D9(5)=R4:D9(6)=R5
4200 D9(7)=S1:D9(8)=B1:D9(9)=K1:D9(10)=K2
4210 FORI=1TO8:FORJ=1TO8:D9(I-1+8*(J-1)+11)=G(I,J):NEXTJ:NEXTI
4220 FORI=75TO84:D9(I)=C1(I-74):NEXT
4230 FORI=85TO94:D9(I)=C2(I-84):NEXT
4240 FORI=95TO99:D9(I)=B2(I-94):NEXT
4250 FORI=100TO104:D9(I)=B3(I-99):NEXT
4260 D9(105)=B4:D9(106)=B5
4270 S0=1:F1(3)=D0-.3*I5*LOG(RND(1)):GOTO3640
4280 IF(R2=0)OR(R3=0)THEN4330
4290 FORI=1TOR3:FORJ=1TOR2:IF(B2(I)=C1(J))AND(B3(I)=C2(J))THEN4340
4300 NEXTJ:NEXTI
4310 F1(4)=D0+.5+3*RND(1)
4320 F1(5)=1E+30:GOTO3640
4330 F1(4)=1E+30:F1(5)=1E+30:GOTO3640
4340 B4=B2(I):B5=B3(I)
4350 IF(B4=Q1)AND(B5=Q2)THEN4310
4360 F1(5)=D0+.5+3*RND(1)
4370 F1(4)=F1(5)-.3*I5*LOG(RND(1))
4380 IFD4(9)>0THEN3640
4390 PRINT:PRINT" CAPTAIN, THE STARBASE IN";B4;"-";B5;"IS UNDER ATTACK-"
4400 PRINT" AND CAN ONLY RESIST UNTIL STARDATE";FNR(F1(5));"!!!"
4410 IFR6=0THEN3640
4420 INPUT" SHALL WE CANCEL IDLE PERIOD";B$
4430 IFLEFT$(B$,1)="Y"THENR6=0
4440 GOTO3640
4450 F1(5)=1E+30:IF(R2=0)OR(R3=0)THEN3640
4460 K=INT(G(B4,B5)/100):IFG(B4,B5)-K*100<10THEN3640
4470 FORI=1TOR2:IF(C1(I)=B4)AND(C2(I)=B5)THEN4490
4480 NEXT:GOTO3640
4490 IFS2(B4,B5)=-1THENS2(B4,B5)=0
4500 IFS2(B4,B5)>999THENS2(B4,B5)=S2(B4,B5)-10
4510 IF(B4<>Q1)OR(B5<>Q2)THEN4600
4520 FORI=1TOK3:K=K4(I):L=K5(I)
4530 IFQ$(K,L)="C"THEN4550
4540 NEXT
4550 IFK6(I)<25+50*RND(1)THEN3640
4560 Q$(B6,B7)=".":B6=0:B7=0
4570 GOSUB7230
4580 PRINT:PRINT"CAPTAIN, I BELIEVE THE STARBASE HAS BEEN DESTROYED"
4590 GOTO4640
4600 IF(R3=1)OR(D4(9)>0)THEN4640
4610 PRINT
4620 PRINT"--> STARFLEET COMMAND REPORTS THAT STARBASE IN QUADRANT";B4;"-";B5
4630 PRINT"HAS BEEN DESTROYED BY ENEMY COMMANDER !!"
4640 G(B4,B5)=G(B4,B5)-10
4650 IFR3<=1THEN4690
4660 FORI=1TOR3:IF(B2(I)=B4)AND(B3(I)=B5)THEN4680
4670 NEXT
4680 B2(I)=B2(R3):B3(I)=B3(R3)
4690 R3=R3-1
4700 GOTO3640
4710 PRINT:PRINT:PRINT:PRINT"CONFLICT RESOLVED -GAME OVER":GOTO760
4720 IFC5$<>"DOCKED"THEN4750
4730 PRINT"--> CAPTAIN, WE'RE ALREADY DOCKED!"
4740 RETURN
4750 IFD4(9)=0THEN4770
4760 PRINT"SUBSPACE RADIO DAMAGED...CANNOT TRANSMIT.":RETURN
4770 IFR3<>0THEN4790
4780 PRINT"CAPTAIN, NO RESPONSE FROM STARBASE !":RETURN
4790 N1=N1+1:IFB6=0THEN4810
4800 GOTO4870
4810 D1=1E+30
4820 FORL=1TOR3:X=10*SQR((B2(L)-Q1)^2+(B3(L)-Q2)^2)
4830 IFX>D1THEN4850
4840 D1=X:K=L
4850 NEXTL
4860 Q1=B2(K):Q2=B3(K):GOSUB7260
4870 Q$(S6,S7)="."
4880 PRINT
4890 PRINT"STARBASE IN QUADRANT";Q1;"-";Q2;"RESPONDS --";
4900 PRINT" ";S5$;" DEMATERIALIZES."
4910 P2=(1-.98^D1)^.333333
4920 FORL=1TO3
4930 IFL=1THENPRINT"1ST ";
4940 IFL=2THENPRINT"2ND ";
4950 IFL=3THENPRINT"3RD ";
4960 PRINT"ATTEMPT TO RE-MATERIALIZE THE ";S5$;". . . . .";
4970 IFRND(1)>P2THEN5000
4980 PRINT"FAILS.":NEXTL
4990 F9=11:GOSUB4710:RETURN
5000 FORL=1TO5:I=B6+INT(3*RND(1))-1
5010 IF(I<1)OR(I>10)THEN5050
5020 J=B7+INT(3*RND(1))-1
5030 IF(J<1)OR(J>10)THEN5050
5040 IFQ$(I,J)="."THEN5060
5050 NEXTL:PRINT"FAILS.":GOTO4990
5060 PRINT"SUCCEEDS.":S6=I:S7=J:Q$(I,J)=LEFT$(S5$,1)
5070 GOSUB3430:PRINT"CAPTAIN, WE MADE IT!":RETURN
5080 P4=2:L5=K3:N=1
5090 FORK=1TOL5
5100 IFH3(K)=0THEN5360
5110 D6=.9+.01*RND(1):H2=H3(K)*D6^K7(N)
5120 P3=K6(N)
5130 P=ABS(P3):IFP4*H2<PTHENP=P4*H2
5140 K6(N)=P3-SGN(P3)*ABS(P)
5150 X8=K4(N):Y8=K5(N)
5160 IFH2>4.99THEN5180
5170 PRINT"MINOR HIT ON ":GOTO5190
5180 PRINTFNR(H2);"UNIT HIT ON ";
5190 M$=Q$(X8,Y8)
5200 IF M$="K"THENPRINT"KLINGON AT";
5210 IFM$="C"THENPRINT"COMMANDER AT";
5220 PRINTX8;"-";Y8
5230 IFK6(N)<>0THEN5270
5240 A5=X8:A6=Y8:T2$=Q$(X8,Y8):GOSUB3160
5250 IFR1<>0THEN5370
5260 F9=1:GOSUB4710:GOTO5370
5270 IFK6(N)<0THEN5360
5280 IFRND(1)<.9THEN5360
5290 IFK6(N)>(.4+.4*RND(1))*P3THEN5360
5300 PRINT
5310 PRINT"*** CAPTAIN, THE VESSEL AT SECTOR";
5320 PRINTX8;"-";Y8
5330 PRINT" HAS JUST LOST ITS FIREPOWER !!!"
5340 PRINT
5350 K6(N)=-K6(N)
5360 N=N+1
5370 NEXTK
5380 RETURN
5390 J3=0
5400 IFD4(7)<>0THEN5640
5410 IFE1<=75THEN5470
5420 INPUT"ENTER COURSE....";D2
5430 IFD2<.01ORD2>12THENGOSUB12780ELSE5450
5440 RETURN
5450 P3=50+250*D1
5460 IFP3<E1THEN5540
5470 PRINT
5480 PRINT"1ST OFFICER SPOCK- 'CAPTAIN, THE IMPULSE ENGINES"
5490 PRINT"REQUIRE 50 UNITS OF ENERGY TO ENGAGE, PLUS 250 UNITS PER ";
5500 IFE1>75THEN5520
5510 PRINT"QUADRANT. THEY ARE USELESS NOW.'":RETURN
5520 PRINT"QUADRANT. WE CAN GO A MAXIMUM OF ";
5530 PRINTFNR(4E-03*(E1-50)-.05);"QUADRANTS.'":RETURN
5540 T1=D1/.4
5550 IFT1<R5THEN5590
5560 PRINT"SIR, MAX. SPEED UNDER IMPULSE IS ONLY 4 SECTORS PER STARDATE"
5570 INPUT"-- AUTHORIZE ";B$
5580 IFLEFT$(B$,1)<>"Y"THENRETURN
5590 GOSUB5850:J3=1
5600 IFA2<>0THENRETURN
5610 E1=E1-P3
5620 IFE1>0THENRETURN
5630 F9=4:GOSUB4710:RETURN
5640 PRINT"IMPULSE ENGINES DAMAGED.":RETURN
5650 N$=" #"
5660 PRINT
5670 IFD4(2)<>0THEN5840
5680 PRINT"L.R. SCAN FOR QUADRANT";Q1;"-";Q2:PRINT
5690 I=Q1-1:J=Q1+1:K=Q2-1:L=Q2+1
5700 FORM=ITOJ:FORN=KTOL
5710 IF(M<=0)OR(M>8)THEN5770
5720 IF(N<=0)OR(N>8)THEN5770
5730 IFD4(11)=0THENS2(M,N)=1
5740 IFG(M,N)>=LQTHEN PRINT" ***";" ";
5750 IFG(M,N)<LQTHENPRINTSPC(5-LEN(STR$(G(M,N))));G(M,N);
5760 GOTO5780
5770 PRINTN$;" ";
5780 NEXTN:PRINT
5790 PRINT
5800 NEXTM
5810 IFD4(11)=0THENRETURN
5820 PRINT"*** WARNING *** - COMPUTER DISABLED - SCAN NO`RECORDED."
5830 RETURN
5840 PRINT"LONG RANGE SENSORS DAMAGED.":RETURN
5850 A5=(15-D2)*.523599:D4=-SIN(A5):D6=COS(A5):B8=ABS(D4)
5860 IFABS(D6)>B8THENB8=ABS(D6)
5870 D4=D4/B8:D6=D6/B8:T5=0:T6=0
5880 IFD0+T1<F1(2)THEN5910
5890 T5=1:C5$="RED":D1=D1*(F1(2)-D0)/T1+.1
5900 T1=F1(2)-D0+1E-05
5910 Q$(S6,S7)=".":X7=S6:Y7=S7:H9=INT(10*D1*B8+.5)
5920 IFH9=0THEN6020
5930 FORL=1TOH9
5940 X7=X7+D4:X1=INT(X7+.5):Y7=Y7+D6:Y1=INT(Y7+.5)
5950 IF(X1<1)OR(X1>10)THEN6190
5960 IF(Y1<1)OR(Y1>10)THEN6190
5970 IFQ$(X1,Y1)="O"THEN6000
5980 IFQ$(X1,Y1)<>"."THEN6070
5990 NEXTL
6000 D1=.1*SQR((S6-X1)^2+(S7-Y1)^2)
6010 S6=X1:S7=Y1
6020 F4=S6:F5=S7
6030 IFQ$(X1,Y1)<>"O"THEN6520
6040 T2=FNA(1):T3=FNA(1)
6050 Q1=FNA(1):Q2=FNA(1):S6=FNB(1):S7=FNB(1):PRINT
6060 PRINT"*** SPACE PORTAL ENTERED ***":GOTO6490
6070 T6=1:K=50*D1/T1+1E-03:D1=.1*SQR((S6-X1)^2+(S7-Y1)^2)
6080 IF(Q$(X1,Y1)="K")OR(Q$(X1,Y1)="C")THEN6180
6090 PRINT:PRINTS5$;" BLOCKED BY ";
6100 IFQ$(X1,Y1)="*"THENPRINT"STAR AT";
6110 IFQ$(X1,Y1)="B"THENPRINT"STARBASE AT";
6120 PRINT" SECTOR";X1;"-";Y1;"...."
6130 PRINT"EMERGENCY STOP REQUIRED";FNR(K);"UNITS OF ENERGY."
6140 E1=E1-K
6150 S6=INT(X7-D4+.5):F4=S6:S7=INT(Y7-D6+.5):F5=S7
6160 IFE1>0THEN6520
6170 F9=4:GOSUB4710:RETURN
6180 S6=X1:S7=Y1:GOSUB9600:F4=S6:F5=S7:GOTO6520
6190 IFK3=0THEN6250
6200 FORL=1TOK3
6210 F3=SQR((X1-K4(L))^2+(Y1-K5(L))^2)
6220 K8(L)=.5*(F3+K7(L)):NEXTL
6230 IFG(Q1,Q2)<>LQTHENGOSUB790
6240 IFA2<>0THENRETURN
6250 X7=10*(Q1-1)+S6:Y7=10*(Q2-1)+S7
6260 X1=INT(X7+10*D1*B8*D4+.5)
6270 Y1=INT(Y7+10*D1*B8*D6+.5):L6=0
6280 L5=0
6290 IFX1>0THEN6310
6300 X1=-X1+1:L5=1
6310 IFY1>0THEN6330
6320 Y1=-Y1+1:L5=1
6330 IFX1<=80THEN6350
6340 X1=161-X1:L5=1
6350 IFY1<=80THEN6370
6360 Y1=161-Y1:L5=1
6370 IFL5=0THEN6390
6380 L6=1:GOTO6280
6390 IFL6=0THEN6460
6400 PRINT:PRINT"*** MESSAGE FROM STARFLEET COMMAND.....STARDATE";FNR(DO)
6410 PRINT"PERMISSION TO EXIT GALAXY - DENIED -"
6420 PRINT"'ENGINES SHUT DOWN AT ";
6430 Z1=INT((X1+9)/10):Z2=INT((Y1+9)/10)
6440 PRINT"QUADRANT";Z1;"-";Z2;", ";
6450 PRINT"SECTOR";X1-10*(Z1-1);"-";Y1-10*(Z2-1);"'"
6460 IFT5<>0THENRETURN
6470 Q1=INT((X1+9)/10):Q2=INT((Y1+9)/10)
6480 S6=X1-10*(Q1-1):S7=Y1-10*(Q2-1)
6490 GOSUB7550:PRINT:GOTO6510
6500 PRINTCHR$(26):PRINT"ENTERING THE ";G2$;" QUADRANT (";Q1;"-";Q2;")"
6510 Q$(S6,S7)=LEFT$(S5$,1):GOSUB7260:GOSUB11090:GOSUB5650:RETURN
6520 Q$(S6,S7)=LEFT$(S5$,1)
6530 IFL6=1THENRETURN
6540 IFK3=0THEN6610
6550 FORL=1TOK3
6560 F3=SQR((F4-K4(L))^2+(F5-K5(L))^2)
6570 K8(L)=.5*(K7(L)+F3)
6580 K7(L)=F3
6590 NEXTL
6600 GOSUB10980
6610 GOSUB7230:RETURN
6620 A=1:B=1
6630 FORK=1TOK3
6640 C=K4(K):D=K5(K)
6650 IFQ$(C,D)="C"THEN6670
6660 NEXTK
6670 N=0:F=K6(K)+100*K3
6680 IFF>LQTHENN=INT(RND(1)*K7(K)+1)
6690 IF((C5$="DOCKED")AND((B4<>Q1)OR(B5<>Q2)))THENN=-S8
6700 IFN=0THENN=INT(((F+200*RND(1))/150)-5)
6710 IFN=0THENRETURN
6720 IF(N>0)AND(K7(K)<1.5)THENRETURN
6730 IFABS(N)>S8THENN=SGN(N)*ABS(S8)
6740 T=ABS(N):P=S6-C:Q=S7-D
6750 IF2*ABS(P)<ABS(Q)THENP=0
6760 IF2*ABS(Q)<ABS(P)THENQ=0
6770 IFP<>0THENP=SGN(P*N)
6780 IFQ<>0THENQ=SGN(Q*N)
6790 R=C:S=D:Q$(C,D)="."
6800 FORL2=1TOT:L=R+P:M=S+Q
6810 IF(L>0)AND(L<=10)THEN6830
6820 ONSGN(N)+2GOTO7060,6920,6920
6830 IF(M>0)AND(M<=10)THEN6850
6840 ONSGN(N)+2GOTO7060,6860,6860
6850 IFQ$(L,M)="."THEN6980
6860 IF(Q=B)OR(P=0)THEN6920
6870 M=S+B
6880 IF(M>0)AND(M<=10)THEN6900
6890 ONSGN(N)+2GOTO7060,6910,6910
6900 IFQ$(L,M)="."THEN6980
6910 B=-B
6920 IF(P=A)OR(Q=0)THEN6990
6930 L=R+A
6940 IF(L>0)AND(L<=10)THEN6960
6950 ONSGN(N)+2GOTO7060,6970,6970
6960 IFQ$(L,M)="."THEN6980
6970 A=-A:GOTO6990
6980 R=L:S=M
6990 NEXTL2
7000 Q$(R,S)="C"
7010 IF(R=C)AND(S=D)THENRETURN
7020 K4(K)=R:K5(K)=S:K7(K)=SQR((S6-R)^2+(S7-S)^2)
7030 K8(K)=K7(K):IFN>0THENPRINT"*** COMMANDER ADVANCES TO";
7040 IFN<0THENPRINT"*** COMMANDER RETREATS TO";
7050 PRINT" SECTOR";R;"-";S:GOSUB10980:RETURN
7060 I=Q1+INT((L+9)/10)-1:J=Q2+INT((M+9)/10)-1
7070 IF(I<1)OR(I>8)THEN7220
7080 IF(J<1)OR(J>8)THEN7220
7090 FORL3=1TOR2
7100 IF(C1(L3)=I)AND(C2(L3)=J)THEN7220
7110 NEXTL3:PRINT"*** COMMANDER ESCAPES TO ";
7120 PRINT"QUADRANT";I;"-";J;" (AND REGAINS STRENGTH)"
7130 K4(K)=K4(K3):K5(K)=K5(K3):K7(K)=K7(K3):K8(K)=K8(K3)
7140 K6(K)=K6(K3):K3=K3-1:C3=0
7150 IFC5$<>"DOCKED"THENGOSUB7230
7160 GOSUB10980
7170 G(Q1,Q2)=G(Q1,Q2)-100:G(I,J)=G(I,J)+100
7180 FORL3=1TOR2
7190 IF(C1(L3)=Q1)AND(C2(L3)=Q2)THEN7210
7200 NEXTL3
7210 C1(L3)=I:C2(L3)=J:RETURN
7220 A=-A:B=-B:GOTO6990
7230 C5$="GREEN":IFE1<LQTHENC5$="YELLOW"
7240 IFG(Q1,Q2)>99THENC5$="RED"
7250 RETURN
7260 J4=1:B6=0:B7=0:K3=0:C3=0:U=G(Q1,Q2):IFU>999THEN7530
7270 K3=INT(.01*U):FORA=1TO10:FORB=1TO10:Q$(A,B)=".":NEXTB:NEXTA
7280 Q$(S6,S7)=LEFT$(S5$,1):U=G(Q1,Q2):IFU<100THEN7400
7290 U=U-100*K3:FORA=1TOK3
7300 S=FNB(1):K4(A)=S:T=FNB(1):K5(A)=T
7310 IFQ$(S,T)<>"."THEN7300
7320 Q$(S,T)="K":K7(A)=SQR((S6-S)^2+(S7-T)^2):K8(A)=K7(A)
7330 K6(A)=RND(1)*150+325:NEXTA
7340 IFR2=0THEN7390
7350 FORA=1TOR2
7360 IF(C1(A)=Q1)AND(C2(A)=Q2)THEN7380
7370 NEXTA:GOTO7390
7380 Q$(S,T)="C":K6(K3)=LQ+400*RND(1):C3=1
7390 GOSUB10980
7400 IFU<10THEN7440
7410 U=U-10
7420 B6=FNB(1):B7=FNB(1):IFQ$(B6,B7)<>"."THEN7420
7430 Q$(B6,B7)="B"
7440 GOSUB7230:IFU<1THENRETURN
7450 FORA=1TOU
7460 S=FNB(1):T=FNB(1):IFQ$(S,T)<>"."THEN7460
7470 Q$(S,T)="*":NEXTA
7480 IF(T2<>Q1)OR(T3<>Q2)THENRETURN
7490 S=FNB(1):T=FNB(1):IFQ$(S,T)<>"."THEN7490
7500 Q$(S,T)="O":PRINT
7510 PRINT"*** SHORT-RANGE SENSORS DETECT A SPACE-WARP IN THIS QUADRANT"
7520 RETURN
7530 FORA=1TO10:FORB=1TO10:Q$(A,B)=".":NEXTB:NEXTA
7540 Q$(S6,S7)=LEFT$(S5$,1):RETURN
7550 G4$="III":L=2:IFQ2>=5THEN7570
7560 L=1
7570 G2$=G1$(2*(Q1-1)+L):L=Q2
7580 IFL<=4THEN7600
7590 L=Q2-4
7600 G3$="IV":IFL=4THEN7620
7610 G3$=LEFT$(G4$,L)
7620 G2$=G2$+" "+G3$:RETURN
7630 IFRND(1)>.1THEN7650
7640 GOSUB10520:RETURN
7650 Q$(A5,A6)=".":PRINT"*** STAR AT SECTOR";A5;"-";A6;"NOVAS."
7660 G(Q1,Q2)=G(Q1,Q2)-1:S1=S1+1
7670 B9=1:T6=1:T7=1:K=0:X1=0:Y1=0
7680 H4(B9,1)=A5:H4(B9,2)=A6
7690 FORM=B9TOT6:FORQ=1TO3:FORJ=1TO3
7700 IFJ*Q=4THEN8140
7710 J5=H4(M,1)+Q-2:J6=H4(M,2)+J-2
7720 IF(J5<1)OR(J5>10)THEN8140
7730 IF(J6<1)OR(J6>10)THEN8140
7740 IFQ$(J5,J6)="."THEN8140
7750 IFQ$(J5,J6)="O"THEN8140
7760 IFQ$(J5,J6)<>"*"THEN7820
7770 IFRND(1)>=.1THEN7790
7780 X2=J5:Y2=J6:GOSUB10520:RETURN
7790 T7=T7+1:H4(T7,1)=J5:H4(T7,2)=J6:G(Q1,Q2)=G(Q1,Q2)-1
7800 S1=S1+1:PRINT"*** STAR AT SECTOR";J5;"-";J6;"NOVAS."
7810 GOTO8130
7820 IFQ$(J5,J6)<>"B"THEN7890
7830 G(Q1,Q2)=G(Q1,Q2)-10:FORV=1TOR3
7840 IF(B2(V)<>Q1)OR(B3(V)<>Q2)THEN7860
7850 B2(V)=B2(R3):B3(V)=B3(R3)
7860 NEXTV:R3=R3-1:B6=0:B7=0:B1=B1+1:GOSUB7230
7870 PRINT"*** STARBASE AT SECTOR";J5;"-";J6;"DESTROYED."
7880 GOTO8130
7890 IF(S6<>J5)OR(S7<>J6)THEN7990
7900 PRINT"*** STARSHIP BUFFETED BY NOVA.":IFS4<>0THEN7920
7910 E1=E1-LQ:GOTO7950
7920 IFS3>=LQTHEN7970
7930 D6=LQ-S3:E1=E1-D6:GOSUB7230:S3=0:S4=0
7940 PRINT"*** STARSHIP SHIELDS KNOCKED OUT.":D4(8)=5E-03*D5*RND(1))*D6
7950 IFE1>0THEN7980
7960 F9=7:GOSUB4710:RETURN
7970 S3=S3-LQ
7980 X1=X1+S6-H4(M,1):Y1=Y1+S7-H4(M,2):K=K+1:GOTO8140
7990 IFQ$(J5,J6)<>"C"THEN8120
8000 FORV=1TOK3
8010 IF(K4(V)=J5)AND(K5(V)=J6)THEN8030
8020 NEXTV
8030 K6(V)=K6(V)-800:IFK6(V)<=0THEN8120
8040 N5=J5+J5-H4(M,1):N6=J6+J6-H4(M,2)
8050 PRINT"*** COMMANDER AT SECTOR";J5;"-";J6;"DAMAGED";
8060 IF(N5<1)OR(N5>10)OR(N6<1)OR(N6>10)THEN8110
8070 PRINT" AND BUFFETED TO SECTOR";N5;"-";N6
8080 Q$(N5,N6)="C":K4(V)=N5:K5(V)=N6
8090 K7(V)=SQR((S6-N5)^2+(S7-N6)^2):K8(V)=K7(V)
8100 Q$(J5,J6)="."
8110 PRINT:GOTO8140
8120 A5=J5:A6=J6:T2$=Q$(J5,J6):GOSUB3160:GOTO8140
8130 PRINT:Q$(J5,J6)="."
8140 NEXTJ:NEXTQ:NEXTM
8150 IFT6=T7THEN8170
8160 B9=T6+1:T6=T7:GOTO7690
8170 IFK=0THENRETURN
8180 D1=K*.1
8190 IFX1<>0THENX1=SGN(X1)
8200 IFY1<>0THENY1=SGN(Y1)
8210 I=3*(X1+1)+Y1+2
8220 D2=C5(I)
8230 IFD2=0THEND1=0
8240 IFD1=0THENRETURN
8250 PRINT:PRINT"FORCE OF NOVA DISPLACES STARSHIP."
8260 GOSUB5850:RETURN
8270 P=2:J3=1
8280 IFC5$<>"DOCKED"THEN8300
8290 PRINT"PHASERS CAN'T BE FIRED THRU BASE SHIELDS.":GOTO8370
8300 IFD4(3)=0THEN8320
8310 PRINT"PHASER BANKS DAMAGED.":GOTO8370
8320 IFS4=0THEN8340
8330 PRINT"SHIELDS MUST BE DOWN TO FIRE PHASERS.":GOTO8370
8340 IFK3>0THEN8380
8350 PRINT
8360 PRINT"THE SHORT-RANGE SENSORS DETECT NO ENEMY IN THIS QUADRANT."
8370 J3=0:RETURN
8380 PRINT"PHASERS LOCKED ON TARGET. ENERGY AVAILABLE=";
8390 PRINT.01*INT(100*E1)
8400 INPUT"UNITS TO FIRE";P1:IFP1<E1THEN8420
8410 PRINT"ENERGY AVAILABLE =";:GOTO8390
8420 IFP1>0THEN8440
8430 J3=0:RETURN
8440 E1=E1-P1
8450 IFD4(11)=0THEN8480
8460 P1=P1*(RND(1)*.5+.5)
8470 PRINT:PRINT"COMPUTER MALFUNCTION HAMPERS PHASER ACCURACY.":PRINT
8480 E=P1:IFK3=0THEN8650
8490 E=0:T5=(K3*(K3+1))/2
8500 FORI=1TOK3:H3(I)=((K3+1-I)/T5)*P1
8510 H5(I)=ABS(K6(I))/(P*.9^K7(I))
8520 IFH3(I)<=H5(I)THEN8540
8530 E=E+(H3(I)-H5(I)):H3(I)=H5(I)
8540 NEXTI
8550 IFE=0THEN8620
8560 FORI=1TOK3:R7=H5(I)-H3(I)
8570 IFR7<=0THEN8600
8580 IFR7>=ETHEN8610
8590 H3(I)=H5(I):E=E-R7
8600 NEXTI:GOTO8620
8610 H3(I)=H3(I)+E:E=0
8620 GOSUB5080
8630 IF(E<>0)AND(A2=0)THEN8650
8640 J3=1:RETURN
8650 PRINTFNR(E);"EXPENDED ON EMPTY SPACE.":J3=1:RETURN
8660 J3=1:IFD4(4)=0THEN8680
8670 PRINT"PHOTON TUBES DAMAGED.":GOTO8720
8680 IFT4<>0THEN8700
8690 PRINT"NO TORPEDOS LEFT.":GOTO8720
8700 INPUT"TORPEDO COURSE";C6
8710 IFC6<.01ORC6>12THENGOSUB12780ELSE8730
8720 J3=0:RETURN
8730 INPUT"BURST OF 3";B$:N=1
8740 IFLEFT$(B$,1)="N"THEN8830
8750 IFLEFT$(B$,1)<>"Y"THEN8730
8760 IFT4>2THEN8780
8770 PRINT"NO BURST. ONLY";T4;"TORPEDOS LEFT.":GOTO8720
8780 INPUT"SPREAD ANGLE (3 - 30 DEG)";G2
8790 IFG2<0THEN8720
8800 IF(G2<3)OR(G2>30)THEN8780
8810 G2=FND(G2)
8820 N=3
8830 FORZ6=1TON
8840 IFC5$<>"DOCKED"THENT4=T4-1
8850 Z7=Z6:R=RND(1)
8860 R=(R+RND(1))*.5-.5
8870 IF(R>=-.4)AND(R<=.4)THEN8940
8880 R=(RND(1)+1.2)*R:IFN=3THEN8900
8890 PRINT"*** TORPEDO MISFIRES...":GOTO8910
8900 PRINT"*** TORPEDO NUMBER";Z6;"MISFIRES..."
8910 IF RND(1)>.2THEN8940
8920 PRINT"*** PHOTON TUBES DAMAGED BY MISFIRE."
8930 D4(4)=D5*(1+2*RND(1)):GOTO9580
8940 IF(S4<>0)OR(C5$="DOCKED")THENR=R+1E-03*S3*R
8950 A3=C6+.25*R:IFN=1THEN8980
8960 A8=(15-A3+(2-Z6)*G2)*.523599:PRINT
8970 PRINT"TRACK FOR TORPEDO NUMBER";Z7;"--":GOTO8990
8980 PRINT:PRINT"TORPEDO TRACK --":A8=(15-A3)*.523599
8990 X4=-SIN(A8):Y4=COS(A8):B8=ABS(X4)
9000 IFABS(Y4)>ABS(X4)THENB8=ABS(Y4)
9010 X4=X4/B8:Y4=Y4/B8:X5=S6:Y5=S7
9020 FORL9=1TO15:X5=X5+X4:A5=INT(X5+.5)
9030 IF(A5<1)OR(A5>10)THEN9560
9040 Y5=Y5+Y4:A6=INT(Y5+.5)
9050 IF(A6<1)OR(A6>10)THEN9560
9060 IF(L9=5)OR(L9=9)THENPRINT
9070 PRINTFNR(X5);"-";FNR(Y5);", ";
9080 IFQ$(A5,A6)<>"."THEN9100
9090 GOTO9550
9100 PRINT:IFQ$(A5,A6)="K"THEN9150
9110 IFQ$(A5,A6)<>"C"THEN9370
9120 IFRND(1)>.1THEN9150
9130 PRINT"*** COMMANDER AT SECTOR";A5;"-";A6;"USES ANTI-PHOTON DEVICE !"
9140 PRINT"-- TORPEDO NEUTRALIZED.":GOTO9570
9150 FORV=1TOK3
9160 IF(A5=K4(V))AND(A6=K5(V))THEN9180
9170 NEXTV
9180 K=K6(V):W3=200+800*RND(1)
9190 IFABS(K)<W3THENW3=ABS(K)
9200 K6(V)=K-SGN(K)*ABS(W3):IFK6(V)<>0THEN9220
9210 T2$=Q$(A5,A6):GOSUB3160:GOTO9570
9220 IFQ$(A5,A6)="K"THENPRINT"*** KLINGON AT";
9230 IFQ$(A5,A6)="C"THENPRINT"*** COMMANDER AT";
9240 PRINTA5;"-";A6;
9250 A7=A8+2.5*(RND(1)-.5)
9260 W3=ABS(-SIN(A7)):IFABS(COS(A7))>W3THENW3=ABS(COS(A7))
9270 X7=-SIN(A7)/W3:Y7=COS(A7)/W3
9280 P=INT(A5+X7+.5):Q=INT(A6+Y7+.5)
9290 IF(P<1)OR(P>10)OR(Q<1)OR(Q>10)THEN9360
9300 IFQ$(P,Q)<>"."THEN9360
9310 Q$(P,Q)=Q$(A5,A6):Q$(A5,A6)=".":PRINT"DAMAGED--"
9320 PRINT" DISPLACED BY BLAST TO SECTOR";P;"-";Q
9330 K4(V)=P:K5(V)=Q:K7(V)=SQR((S6-P)^2+(S7-Q)^2)
9340 K8(V)=K7(V)
9350 GOSUB10980:GOTO9570
9360 PRINT"DAMAGED, BUT NOT DESTROYED.":GOTO9570
9370 IFQ$(A5,A6)<>"B"THEN9450
9380 PRINT"*** STARBASE DESTROYED...!!!"
9390 IFS2(Q1,Q2)<0THENS2(Q1,Q2)=0
9400 FORW=1TOR3
9410 IF(B2(W)<>Q1)OR(B3(W)<>Q2)THEN9430
9420 B2(W)=B2(R3):B3(W)=B3(R3)
9430 NEXTW:Q$(A5,A6)=".":R3=R3-1:B6=0:B7=0
9440 G(Q1,Q2)=G(Q1,Q2)-10:B1=B1+1:GOSUB7230:GOTO9570
9450 IFQ$(A5,A6)<>"*"THEN9530
9460 IFRND(1)>.15THEN9490
9470 PRINT"*** STAR AT SECTOR";A5;"-";A6;"UNAFFECTED BY PHOTON BLAST"
9480 GOTO9570
9490 X2=A5:Y2=A6:GOSUB7630:A5=X2:A6=Y2
9500 IFG(Q1,Q2)=LQTHENRETURN
9510 IFA2<>0THENRETURN
9520 GOTO9570
9530 PRINT:PRINT" >>> ORGANIAN TRUCE-MONITOR DESTROYED <<<":Q$(A5,A6)=".":PRINT
9540 T2=0:T3=0:GOTO9570
9550 NEXTL9
9560 PRINT:PRINT"TORPEDO MISSED!"
9570 NEXTZ6
9580 IFR1<>0THENRETURN
9590 F9=1:GOSUB4710:RETURN
9600 PRINT:PRINT"*** RED ALERT!! RED ALERT!! ***":PRINT
9610 PRINT"*** COLLISION IMMINENT!!":PRINT
9620 PRINT"*** ";S5$;" RAMS ";:W7=1:IFQ$(S6,S7)="C"THENW7=2
9630 IFW7=1THENPRINT"KLINGON AT ";
9640 IFW7=2THENPRINT"COMMANDER AT ";
9650 PRINT"SECTOR";S6;"-";S7:A5=S6:A6=S7:T2$=Q$(S6,S7)
9660 GOSUB3160:PRINT"*** ";S5$;" HEAVILY DAMAGED."
9670 K=INT(5+RND(1)*20):PRINT"***SICKBAY REPORTS";K;"CASUALTIES!"
9680 C4=C4+K:FORL=1TO12:I=RND(1)
9690 J=(3.5*W7*(RND(1)+I)+1)*D5
9700 IFL=6THENJ=J/3
9710 D4(L)=D4(L)+T1+J:NEXTL:D4(6)=D4(6)-3
9720 IFD4(6)<0THEND4(6)=0
9730 S4=0:IFR1<>0THENRETURN
9740 F9=1:GOSUB4710:RETURN
9750 RETURN
9760 A2=0:G1=0:GOSUB2200:S5$="ENTERPRISE"
9770 I7=5000:E1=I7:I8=2500:S3=I8:S4=0:S9=S4:J1=4:L1=J1
9780 Q1=FNA(1):Q2=FNA(1):S6=FNB(1):S7=FNB(1):I9=10:T4=I9
9790 W1=5:W2=25:FORI=1TO12:D4(I)=0:NEXT
9800 J2=100*INT(31*RND(1)+20):D0=J2:K1=0:K2=0:N1=0:N2=0:R6=0:C4=0
9810 A1=1:D3=.25:FORI=1TO8:FORJ=1TO8:S2(I,J)=0:NEXTJ:NEXTI
9820 F1(1)=D0-.5*I5*LOG(RND(1)):F1(5)=1E+30
9830 F1(2)=D0-1.5*(I5/R2)*LOG(RND(1)):I6=0
9840 F1(3)=D0-.3*I5*LOG(RND(1)):F1(4)=D0-.3*I5*LOG(RND(1))
9850 FORI=1TO8:FORJ=1TO8:K=INT(RND(1)*9+1):I6=I6+K
9860 G(I,J)=K:NEXTJ:NEXTI:S1=0
9870 FOR I=1TOI2
9880 X=INT(RND(1)*6+2):Y=INT(RND(1)*6+2)
9890 IFG(X,Y)>=10THEN9880
9900 IFI<2THEN9940
9910 K=I-1:FORJ=1TOK:D1=SQR((B2(J)-X)^2+(B3(J)-Y)^2)
9920 IFD1<2THEN9880
9930 NEXTJ
9940 B2(I)=X:B3(I)=Y:S2(X,Y)=-1:G(X,Y)=G(X,Y)+10:NEXTI
9950 B1=0:K=I1-I4:L=INT(.25*S8*(9-L2)+1)
9960 M=INT((1-RND(1)^2)*L):IFM>KTHENM=K
9970 N=100*M
9980 X=FNA(1):Y=FNA(1):IFG(X,Y)+N>999THEN9980
9990 G(X,Y)=G(X,Y)+N:K=K-M:IFK<>0THEN9960
10000 FORI=1TOI4
10010 X=FNA(1):Y=FNA(1):IF(G(X,Y)<99)AND(RND(1)<.75)THEN10010
10020 IFG(X,Y)>899THEN10010
10030 IFI=1THEN10060
10040 M=I-1:FORJ=1TOM:IF(C1(J)=X)AND(C2(J)=Y)THEN10010
10050 NEXTJ
10060 G(X,Y)=G(X,Y)+100:C1(I)=X:C2(I)=Y:NEXTI
10070 I=INT(D0):PRINT:S0=0
10080 T2=FNA(1):T3=FNA(1):IFG(T2,T3)<100THEN10080
10090 PRINT"STARDATE..............";I
10100 PRINT"NUMBER OF KLINGONS....";I1
10110 PRINT"NUMBER OF STARDATES...";INT(I5)
10120 PRINT"NUMBER OF STARBASES...";I2
10130 PRINT"STARBASE LOCATIONS....";
10140 FORI=1TOI2:PRINTB2(I);"-";B3(I);
10150 IFI<>I2THENPRINT", ";
10160 NEXTI:PRINT:PRINT
10170 GOSUB7550
10180 PRINT"THE ";S5$;" IS CURRENTLY IN THE ";G2$;" QUADRANT."
10190 GOSUB7260
10200 PRINT:INPUT"READY TO CONTINUE";NL$:PRINTCHR$(26):GOSUB11090:GOSUB5650:RETURN
10210 INPUT"WARP FACTOR";K
10220 PRINT
10230 IFK<1THEN10340
10240 IFK>10THEN10350
10250 J=W1:W1=K:W2=W1*W1
10260 IF(W1<=J)OR(W1<=6)THEN10290
10270 IFW1<=8THEN10300
10280 IFW1>8THEN10310
10290 PRINT"'WARP FACTOR";W1;"CAPTAIN'":RETURN
10300 PRINT"*** OUR MAXIMUM SAFE SPEED IS WARP 6":RETURN";
10310 IFW1=10THEN10330
10320 PRINT"*** CAPTAIN, OUR ENGINES MAY NOT TAKE IT !":RETURN
10330 PRINT"-'AYE, CAPTAIN, WE'LL GIVE IT A TRY.'":RETURN
10340 PRINT"-'WE CAN'T GO BELOW WARP 1, CAPTAIN.'":RETURN
10350 PRINT"-'OUR TOP SPEED IS WARP 10, CAPTAIN.'"
10360 RETURN
10370 J3=0:IFD4(8)<>0THEN10490
10380 IFS4<>0THEN10420
10390 INPUT"SHIELDS ARE DOWN. DO YOU WANT THEM UP";B$
10400 IFLEFT$(B$,1)="Y"THEN10450
10410 RETURN
10420 INPUT"SHIELDS ARE UP. DO YOU WANT THEM DOWN";B$
10430 IFLEFT$(B$,1)="Y"THEN10480
10440 RETURN
10450 S4=1:S9=1:IFC5$<>"DOCKED"THENE1=E1-50
10460 PRINT"SHIELDS RAISED.":IFE1<=0THEN10500
10470 J3=1:RETURN
10480 S4=0:S9=1:PRINT"SHIELDS LOWERED.":J3=1:RETURN
10490 PRINT"SHIELDS DAMAGED AND DOWN. ":RETURN
10500 PRINT:PRINT"SHIELDS CONSUME ALL ENERGY."
10510 F9=4:GOSUB4710:RETURN
10520 IFX2<>0THEN10620
10530 N=INT(RND(1)*I6+1):FORX=1TO8:FORY=1TO8
10540 N=N-(G(X,Y)-INT(G(X,Y)/10)*10):IFN<=0THEN10560
10550 NEXTY:NEXTX:RETURN
10560 IF(X<>Q1)OR(Y<>Q2)THEN10680
10570 IFJ4<>0THEN10680
10580 N=INT(RND(1)*(G(X,Y)-INT(G(X,Y)/10)*10))+1
10590 FORX3=1TO10:FORY3=1TO10:IFQ$(X3,Y3)<>"*"THEN10610
10600 N=N-1:IFN=0THEN10620
10610 NEXTY3:NEXTX3
10620 PRINT:PRINT"*** RED ALERT!! RED ALERT!! ***
10630 X3=X2:Y3=Y2
10640 PRINT"*** INCIPIENT SUPERNOVA DETECTED AT SECTOR";X3;"-";Y3
10650 X=Q1:Y=Q2:K=(X2-S6)^2+(Y2-S7)^2
10660 IFK>1.5THEN10720
10670 PRINT"*** EMERGENCY AUTO-OVERRIDE JAMMED ***":A2=1:GOTO10720
10680 IFD4(9)<>0THEN10720
10690 PRINT:PRINT"MESSAGE FROM STARFLEET COMMAND...STARDATE";INT(D0)
10700 PRINT"'SUPERNOVA IN QUADRANT";X;"-";Y;
10710 PRINT"....CAUTION ADVISED'"
10720 N=G(X,Y):R=INT(N/100):Q=0
10730 IF(X<>Q1)OR(Y<>Q2)THEN10750
10740 K3=0:C3=0
10750 IFR=0THEN10810
10760 R1=R1-R:IFR2=0THEN10810
10770 FORL=1TOR2:IF(C1(L)<>X)OR(C2(L)<>Y)THEN10800
10780 C1(L)=C1(R2):C2(L)=C2(R2):C1(R2)=0:C2(R2)=0
10790 R2=R2-1:R=R-1:Q=1:IFR2=0THENF1(2)=1E+30
10800 NEXTL
10810 IFR3=0THEN10850
10820 FORL=1TOR3:IF(B2(L)<>X)OR(B3(L)<>Y)THEN10840
10830 B2(L)=B2(R3):B3(L)=B3(R3):B2(R3)=0:B3(R3)=0:R3=R3-1
10840 NEXTL
10850 IFX2=0THEN10890
10860 N=G(X,Y)-INT(G(X,Y)/100)*100
10870 S1=S1+(N-INT(N/10)*10):B1=B1+INT(N/10)
10880 K1=K1+R:K2=K2+Q
10890 IF(S2(X,Y)<>0)AND(D4(9)<>0)THENS2(X,Y)=LQ+G(X,Y)
10900 IF(D4(9)=0)OR((Q1=X)AND(Q2=Y))THENS2(X,Y)=1
10910 G(X,Y)=1000
10920 IF(R1<>0)OR((X=Q1)AND(Y=Q2))THEN10960
10930 PRINTCHR$(26):PRINT"*** SUPERNOVA IN QUADRANT";X;"-";Y;"HAS DESTROYED THE"
10940 PRINT"REMAINDER OF THE ENEMY FLEET !!"
10950 F9=1:GOTO4710
10960 IFA2=0THENRETURN
10970 F9=8:GOTO4710
10980 IFK3<=1THENRETURN
10990 Z4=0:FORO=1TOK3-1:IFK7(O)<=K7(O+1)THEN11060
11000 K=K7(O):K7(O)=K7(O+1):K7(O+1)=K
11010 K=K8(O):K8(O)=K8(O+1):K8(O+1)=K
11020 K=K4(O):K4(O)=K4(O+1):K4(O+1)=K
11030 K=K5(O):K5(O)=K5(O+1):K5(O+1)=K
11040 K=K6(O):K6(O)=K6(O+1):K6(O+1)=K
11050 Z4=1
11060 NEXTO
11070 IFZ4<>0THEN10990
11080 RETURN
11090 IFD(1)<>0THEN11330
11100 PRINT:PRINT" 1 2 3 4 5 6 7 8 9 10"
11110 FORI=1TO10:IFI<10THENPRINT" ";
11120 PRINTI;:FORJ=1TO10:PRINTQ$(I,J);" ";:NEXTJ
11130 ONIGOTO11150,11160,11180,11190,11240
11140 ONI-5GOTO11250,11260,11270,11300,11310
11150 PRINT" STARDATE ";FNR(D0):GOTO11320
11160 IFC5$<>"DOCKED"THENGOSUB7230
11170 PRINT" CONDITION ";C5$:GOTO11320
11180 PRINT" POSITION ";Q1;"-";Q2;", ";S6;"-";S7:GOTO11320
11190 PRINT" LIFE SUPPORT ";:IFD4(5)<>0THEN11210
11200 PRINT"ACTIVE":GOTO11320
11210 IFC5$<>"DOCKED"THEN11230
11220 PRINT"DAMAGED, SUPPORTED BY STARBASE":GOTO11320
11230 PRINT"DAMAGED, RESERVES=";FNS(L1):GOTO11320
11240 PRINT" WARP FACTOR ";FNR(W1):GOTO11320
11250 PRINT" ENERGY";SPC(8);.01*INT(100*E1):GOTO11320
11260 PRINT" TORPEDOS ";T4:GOTO11320
11270 PRINT" SHIELDS ";:B$="DOWN,":IFS4<>0THENB$="UP,"
11280 IFD4(8)>0THENB$="DAMAGED,"
11290 PRINTB$;INT(100*S3/I8+.5);"%":GOTO11320
11300 PRINT" KLINGONS LEFT ";R1:GOTO11320
11310 PRINT" TIME LEFT ";FNS(R5)
11320 NEXTI:RETURN
11330 PRINT"SHORT RANGE SENSORS DAMAGED.":RETURN
11340 PRINT:PRINT"*** TIME WARP ENTERED ***":PRINT"YOU ARE TRAVELING ";
11350 IFS0<>0THEN11390
11360 T1=-.5*I5*LOG(RND(1))
11370 PRINT"FORWARD IN TIME";FNR(T1);"STARDATES."
11380 F1(2)=F1(2)+T1:GOTO11550
11390 M=D0:D0=D9(1)
11400 PRINT"BACKWARD IN TIME";FNR(M-D0);"STARDATES.":S0=0
11410 R1=D9(2):R2=D9(3):R3=D9(4):R4=D9(5):R5=D9(6)
11420 S1=D9(7):B1=D9(8):K1=D9(9):K2=D9(10)
11430 FORI=1TO8:FORJ=1TO8:G(I,J)=D9(I-1+8*(J-1)+11):NEXTJ:NEXTI
11440 FORI=75TO84:C1(I-74)=D9(I):NEXT
11450 FORI=85TO94:C2(I-84)=D9(I):NEXT
11460 FORI=95TO99:B2(I-94)=D9(I):NEXT
11470 FORI=100TO104:B3(I-99)=D9(I):NEXT:B4=D9(105):B5=D9(106)
11480 F1(1)=D0-.5*I5*LOG(RND(1))
11490 IFR2<>0THENF1(2)=D0-(I5/R2)*LOG(RND(1))
11500 F1(3)=D0-.5*I5*LOG(RND(1))
11510 FORI=1TO8:FORJ=1TO8:IF1<S2(I,J)THENS2(I,J)=1
11520 NEXTJ:NEXTI
11530 PRINT
11540 PRINT"SPOCK HAS RECONSTRUCTED A CORRECT STAR CHART FROM MEMORY."
11550 GOSUB7260:RETURN
11560 J3=0:IFD4(12)<>0THEN11690
11570 INPUT"NUMBER OF UNITS TO SHIELDS";Z3
11580 IFZ3<0THENRETURN
11590 IFE1+S3-Z3>0THEN11620
11600 PRINT"SCOTT HERE- 'WE ONLY HAVE";FNR(E1+S3);"UNITS LEFT.'"
11610 RETURN
11620 E1=E1+S3-Z3:S3=Z3:PRINT"--ENERGY TRANSFER COMPLETE--"
11630 PRINT"(SHIP ENERGY=";FNR(E1);" SHIELD ENERGY=";FNR(S3);")"
11640 J3=1
11650 T1=.1:P5=(K3+4*C3)/48:IFP5<.1THENP5=.1
11660 IFP5>RND(1)THENGOSUB790
11670 IFA2<>0THENRETURN
11680 GOSUB3640:RETURN
11690 PRINT"TRANSFER PANEL DAMAGED.":RETURN
11700 J3=0:INPUT"HOW MANY STARDATES";Z5:IF(Z5<R5)AND(K3=0)THEN11720
11710 INPUT"ARE YOU SURE";B$:IFLEFT$(B$,1)<>"Y"THENRETURN
11720 R6=1
11730 IFZ5<=0THENR6=0
11740 IFR6=0THENRETURN
11750 T1=Z5:Z6=Z5
11760 IFK3=0THEN11790
11770 T1=1+RND(1):IFZ5<T1THENT1=Z5
11780 Z6=T1
11790 IFT1<Z5THENGOSUB790
11800 IFA2<>0THENRETURN
11810 GOSUB3640:J3=1:IFA2<>0THENRETURN
11820 Z5=Z5-Z6:GOTO11730
11830 J3=0:IFD4(6)<>0THEN12300
11840 INPUT"ENTER COURSE...";D2:IFD2<.01ORD2>12THENGOSUB12780
11850 INPUT"DISTANCE...";D1
11860 P=(D1+.05)*W1*W1*W1*(S4+1):IFP<E1THEN11980
11870 J3=0:PRINT:PRINT"ENGINEERING TO BRIDGE--"
11880 IF(S4=0)OR(.5*P>E1)THEN11910
11890 PRINT" WE HAVEN'T THE ENERGY TO GO THAT FAR WITH";
11900 PRINT" THE SHIELDS UP.":RETURN
11910 W=INT((E1/(D1+.05))^.333333):IFW<=0THEN11960
11920 PRINT" WE HAVEN'T THE ENERGY. BUT WE COULD DO IT AT WARP";W
11930 IFS4<>0THEN11950
11940 RETURN
11950 PRINT" IF YOU'LL LOWER THE SHIELDS.":RETURN
11960 PRINT" WE CAN'T DO IT, CAPTAIN. WE HAVEN'T GOT THE ENERGY."
11970 RETURN
11980 T1=10*D1/W2:IFT1<.8*R5THEN12040
11990 PRINT:PRINT"MR. SPOCK - 'CAPTAIN, I COMPUTE THAT SUCH A TRIP"
12000 PRINT" WILL REQUIRE APPROXIMATELY";FNR(100*T1/R5);
12010 PRINT"PERCENT":PRINT" OF OUR REMAINING TIME. ARE YOU SURE ";
12020 INPUT "THIS IS WISE";B$:IFLEFT$(B$,1)="Y"THEN12040
12030 J3=0:RETURN
12040 Q4=0:W=0:IFW1<=6THEN12200
12050 P=D1*(6-W1)^2/66.6667:IFP>RND(1)THENQ4=1
12060 IFQ4<>0THEND1=RND(1)*D1
12070 W=0:IFW1<10THEN12090
12080 IF.25*D1>RND(1)THENW=1
12090 IF(Q4=0)AND(W=0)THEN12200
12100 A=(15-D2)*.5236:X1=-SIN(A):X2=COS(A)
12110 B8=ABS(X1):IFABS(X2)>ABS(X1)THENB8=ABS(X2)
12120 X1=X1/B8:Y1=Y1/B8:N=INT(10*D1*B8+.5):X=S6:Y=S7
12130 IFN=0THEN12200
12140 FORL=1TON
12150 X=X+X1:Q=INT(X+.5):IF(Q<1)OR(Q>10)THEN12200
12160 Y=Y+Y1:R=INT(Y+.5):IF(R<1)OR(R>10)THEN12200
12170 IFQ$(Q,R)="."THEN12190
12180 Q4=0:W=0
12190 NEXTL
12200 GOSUB5850:IFA2<>0THENRETURN
12210 E1=E1-D1*W1*W1*W1*(S4+1):IFE1>0THEN12230
12220 F9=4:GOSUB4710:RETURN
12230 T1=10*D1/W2:IFW<>0THENGOSUB11340
12240 IFQ4=0THEN12290
12250 PRINT:PRINT"ENGINEERING TO BRIDGE--":PRINT" SCOTT HERE- ";
12260 PRINT"'WE'VE JUST BLOWN THE WARP ENGINES."
12270 PRINT" WE'LL HAVE TO SHUT 'ER DOWN HERE, CAPTAIN.'"
12280 D4(6)=D5*(3*RND(1)+1)
12290 J3=1:RETURN
12300 PRINT"WARP ENGINES DAMAGED.":RETURN
12310 ONSGN(D4(10))+2GOTO12320,12340,12330
12320 PRINT"YE FAERIE QUEENE HAS NO SHUTTLE CRAFT.":RETURN
12330 PRINT"SHUTTLE CRAFT DAMAGED.":RETURN
12340 PRINT:PRINT"***ABANDON SHIP! ABANDON SHIP!"
12350 PRINT"***ALL HANDS ABANDON SHIP!":PRINT
12360 PRINT"YOU AND THE BRIDGE CREW ESCAPE IN THE GALILEO."
12370 PRINT"THE REMAINDER OF THE CREW BEAMS DOWN"
12380 PRINT"TO THE NEAREST HABITABLE PLANET.":IFR3<>0THEN12400
12390 F9=9:GOSUB4710:RETURN
12400 PRINT:PRINT"YOU ARE CAPTURED BY KLINGONS AND RELEASED TO"
12410 PRINT"THE FEDERATION IN A PRISONER-OF-WAR EXCHANGE."
12420 PRINT"STARFLEET PUTS YOU IN COMMAND OF ANOTHER SHIP,"
12430 PRINT"THE FAERIE QUEENE WHICH IS ANTIQUATED, BUT"
12440 PRINT"STILL USABLE.":N=INT(RND(1)*R3+1):Q1=B2(N):Q2=B3(N)
12450 S6=5:S7=5:GOSUB7260:Q$(S6,S7)="."
12460 FORL=1TO3:S6=INT(3*RND(1)-1+B6)
12470 IF(S6<1)OR(S7>10)THEN12500
12480 S7=INT(3*RND(1)-1+B7):IF(S7<1)OR(S7>10)THEN12500
12490 IFQ$(S6,S7)="."THEN12510
12500 NEXTL:GOTO12450
12510 S5$="FAERIE QUEENE":Q$(S6,S7)=LEFT$(S5$,1):C5$="DOCKED"
12520 FORL=1TO12:D4(L)=0:NEXT:D4(10)=-1:E1=3000:I7=E1
12530 S3=1500:I8=S3:T4=6:I9=T4:L1=3:J1=L1:S4=0:W1=5:W2=25
12540 RETURN
12550 IFD4(11)=0THEN12580
12560 PRINT"COMPUTER DAMAGED - CANNOT EXECUTE DESTRUCT SEQUENCE"
12570 RETURN
12580 PRINT:PRINT" ---WORKING---"
12590 PRINT"IDENTIFICATION-POSITIVE"
12600 PRINT"SELF-DESTRUCT-SEQUENCE-ACTIVATED":J=3
12610 FORI=10TO6STEP-1:PRINTSPC(J);I:GOSUB12760:J=J+3:NEXT
12620 PRINT"ENTER-YOUR-MISSION-PASSWORD-TO-CONTINUE"
12630 PRINT"SELF-DESTRUCT-SEQUENCE-OTHERWISE-DESTRUCT"
12640 PRINT"SEQUENCE-WILL-BE-ABORTED"
12650 INPUTB$:IFB$<>X$THEN12740
12660 PRINT"PASSWORD-ACCEPTED":J=10
12670 FORI=5TO1STEP-1:PRINTSPC(J);I:GOSUB12760:J=J+3:NEXT
12680 PRINT:PRINT"*****ENTROPY OF ";S5$;" MAXIMIZED*****"
12690 PRINT:IFK3=0THEN12730
12700 W=20*E1:FORL=1TOK3:IFK6(L)*K7(L)>WTHEN12720
12710 A5=K4(L):A6=K5(L):T2$=Q$(A5,A6):GOSUB3160
12720 NEXTL
12730 F9=10:GOSUB4710:RETURN
12740 PRINT"PASSWORD-REJECTED"
12750 PRINT"CONTINUITY-EFFECTED":PRINT:RETURN
12760 K=12345:FORM=1TO90:K=K+1:NEXTM:RETURN
12770 FORI=1TO10:GOTO11130:RETURN
12780 PRINT"---> COURSE(S) .01-12 ONLY !!!":RETURN