home *** CD-ROM | disk | FTP | other *** search
Text File | 1985-02-10 | 41.6 KB | 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