home *** CD-ROM | disk | FTP | other *** search
- 10 'EXPANDED APRIL 1977 BY W.A.BURTON
- 11 'PIRATED JAN. 1978 BY ZOSO
- 20 DIM G(8,8),S(8,8),K(3,3)
- 30 PRINTCHR$(26)
- 40 PRINT TAB(21)"--STARTREK--":PRINT
- 50 PRINT
- 60 INPUT "WHAT IS YOUR SECURITY CLEARANCE NUMBER (1 TO 1000)";T9
- 70 E8=T9
- 80 IF T9<1 OR T9>1000 THEN PRINT AR$;"INVALID!! REENTER!!":GOTO 60
- 90 FOR A=1 TO T9/2
- 100 R9=RND(1):R9=RND(2)
- 110 NEXT
- 120 CLEAR:PRINTCHR$(26):INPUT" ENTER RANK (1=LOW,12=HIGH)";R9
- 130 RR=R9
- 140 X4=R9:R9=R9+1E-03:W1=W1+1E-03
- 150 PRINT CHR$(26)
- 160 PRINT "COMMAND ORDER : STAND BY !"
- 170 PRINT "YOU ARE PRESENTLY BEING ASSIGNED TO A MISSION..."
- 180 PRINT " WITH A FAILURE FACTOR OF"; (RR*12.5)
- 190 PRINT" GOOD-BYE, SIR..."
- 200 CX=.017453:AR$=" ---> "
- 210 XA=INT(X4*50):AC=(1/(X4+.1))
- 220 IFX4>=9THEN3790
- 230 E=3000-XA+100:P=10:S9=200
- 240 DEF FND(D)=SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2)
- 250 Q1=INT(RND(1)*8+1):Q2=INT(RND(1)*8+1)
- 260 S1=INT(RND(1)*8+1):S2=INT(RND(1)*8+1)
- 270 DATA WARP ENGINES,SHORT RANGE SENSORS,LONG RANGE SENSORS
- 280 DATA PHASERS, PHOTON TORPEDOES,SHIELD CONTROL
- 290 DATA DAMAGE CONTROL, COMPUTER,DAMAGE REPAIR,COMMUNICATIONS
- 300 FOR A=1TO10:READ D$(A):NEXT A
- 310 A$(0)=" . ":A$(1)=" E ":A$(2)=" * ":A$(3)=" K ":A$(4)=" B "
- 320 F1=.86:F2=.01:F3=.95:F4=.99:K9=0:B9=K9
- 330 FORI=1TO8:FORJ=1TO8:R1=RND(1):R2=RND(1):R3=INT(8*RND(1)+1)
- 340 K3=-(R1>F1-F2*R9)-(R1>F3-F2*R9)-(R1>F4-F2*R9):K9=K9+K3
- 350 B3=-(R2>F3):B9=B9+B3:G(I,J)=100*K3+10*B3+R3:NEXTJ,I
- 360 IF NOT(B9>0ANDK9>0)THEN320
- 370 PRINT"OBJECTIVE:DESTROY"K9"KLINGONS USING"B9"STARBASE";
- 380 U=K9:Y=B9
- 390 IFB9=1THENPRINT" ";:GOTO410
- 400 PRINT"S ";
- 410 T9=K9+RND(1)*K9/R9+10-R9:PR=T9/K9:PRINT"IN"T9"STARDAYS."
- 420 GOSUB 4250
- 430 S3=0:B3=S3:K3=B3:FORA=1TO8:FORB=1TO8:S(A,B)=0:NEXTB,A
- 440 FORA=1TO3:FORB=1TO3:K(A,B)=0:NEXTB,A:S(S1,S2)=1
- 450 X=.01*G(Q1,Q2):K3=INT(X):Y=(X-K3)*10:B3=INT(Y)
- 460 S3=G(Q1,Q2)-100*K3-10*B3
- 470 IF K3=0THENFORA=1TO3:FORB=1TO3:K(A,B)=0:NEXTB,A:GOTO510
- 480 PRINTAR$;"CONDITION RED !!!!!":FORA=1TOK3
- 490 R1=INT(RND(1)*8+1):R2=INT(RND(1)*8+1):IFS(R1,R2)<>0THEN490
- 500 S(R1,R2)=3:K(A,1)=R1:K(A,2)=R2:K(A,3)=S9:NEXT A:IFB3=0THEN540
- 510 IFB3=0THEN540
- 520 R1=INT(RND(1)*8+1):R2=INT(RND(1)*8+1):IFS(R1,R2)<>0THEN520
- 530 S(R1,R2)=4
- 540 IFS3=0THEN580
- 550 FORA=1TOS3
- 560 R1=INT(RND(1)*8+1):R2=INT(RND(1)*8+1):IFS(R1,R2)<>0THEN560
- 570 S(R1,R2)=2:NEXTA
- 580 G(Q1,Q2)=INT(G(Q1,Q2))+.5
- 590 PRINT
- 600 PRINT"QUADRANT (";MID$(STR$(Q1),2,1);",";MID$(STR$(Q2),2,1);")"
- 610 PRINT"SECTOR (";MID$(STR$(S1),2,1);",";MID$(STR$(S2),2,1);")"
- 620 IFKP<>0THEN4040
- 630 IF DT=1 THEN 2670
- 640 IFS<200*K3THENPRINTAR$;"SHIELD ENERGY TOO LOW":SL=1:A=6:GOTO740
- 650 A=2: GOTO740
- 660 PRINT
- 670 PRINTD$(2):FORA=1TO8:FORB=1TO8:PRINTA$(S(A,B));:NEXTB:PRINT:NEXTA
- 680 PRINT:PRINT"SHIELDS";S;SPC(4);"ENERGY";E;SPC(4);"PHOTONS";P;
- 690 PRINTSPC(4);"STARDAYS";T9-T
- 700 GOSUB3210:INPUT"COMMAND";A
- 710 IF A>10 OR A<0 THEN INPUT" ----> COMMAND";A
- 720 IFA>10ORA<0THENPRINT"WARNING - PROPER COMMANDS ONLY !! ":GOTO 700
- 730 IFA=1THEN770
- 740 IFD(A)>=0THEN770
- 750 PRINTAR$;"CAPTAIN, WE DON'T HAVE ";D$(A);" ANYMORE."
- 760 IF DT=1 THEN 2670 ELSE 700
- 770 ONAGOTO810,660,1460,1520,1780,2130,2220,2670,4890,3890
- 780 PRINT:FORA=1TO9:PRINTA;" = ";D$(A):NEXTA
- 790 A=10
- 800 PRINTA;"= ";D$(A):GOTO700
- 810 INPUT"COURSE";C1:IF C1<0 OR C1>359.99 THEN840
- 820 INPUT"WARP FACTOR";W1
- 830 SL=0:KP=0:GOTO 850
- 840 PRINTAR$"REJECTED ! COURSE MUST BE IN RANGE OF O TO 359.99 DGRS."
- 850 IFNOT(W1>0)THEN700
- 860 IFD(1)>=0ORW1<=ACTHEN890
- 870 PRINTAR$;"WARP ENGINES ARE DAMAGED, MAXIMUM SPEED = ";AC
- 880 GOTO810
- 890 TEC=TEC+1:C$="":IFK3>0THENGOSUB2280
- 900 IFE>5*W1THEN970
- 910 IFS<1THEN2440
- 920 PRINT"CAPTAIN, YOU ONLY HAVE"E"UNITS OF ENERGY. "
- 930 PRINT"REFUEL FROM YOUR SHIELD RESERVES, WHICH HAVE"S"UNITS?"
- 940 A=6
- 950 IFD(A)<0THEN2440
- 960 GOTO700
- 970 FORI=1TO10:IFD(I)>=0THEN1010
- 980 D(I)=D(I)+1:IFD(I)<0THEN1010
- 990 IFD(7)<0THEN1010
- 1000 PRINT"DAMAGE CONTROL REPORT: "D$(I)" REPAIRED."
- 1010 NEXTI:IFRND(1)>.1THEN1120
- 1020 IFRND(1)>.1THEN1120
- 1030 GOTO1090
- 1040 IFRND(1)>R9/10THENRETURN
- 1050 R1=INT(RND(1)*8+1):IFD(R1)<0THENRETURN
- 1060 D(R1)=D(R1)-10*RND(1)-1:IFD(7)<0THENRETURN
- 1070 IFD(7)<0THENRETURN
- 1080 PRINT:PRINT"DAMAGE CONTROL REPORT: "D$(R1)" OUT.":PRINT:RETURN
- 1090 R1=INT(RND(1)*8+1):IFD(R1)>=0THEN1120
- 1100 IFD(7)<0THEN1120
- 1110 PRINT:D(R1)=0:PRINT"DAMAGE CONTROL REPORT: "D$(R1)" REPAIRED.":PRINT
- 1120 W1=W1*8:A1=8*Q2+S2-9:B1=72-8*Q1-S1:IFW1<1THENW1=W1*1.25
- 1130 E=E-2*W1:T=T+W1/25:IFT>T9THEN2510
- 1140 A2=INT(A1+W1*COS(C1*CX)+.5)
- 1150 B2=INT(B1+W1*SIN(C1*CX)+.5)
- 1160 IFNOT(A2<0ORA2>63ORB2<0ORB2>63)THEN1190
- 1170 PRINTAR$;"CAPTAIN, HEED STARFLEET REGULATIONS! ( STAY IN GALAXY ) !!
- 1180 T=T+W1/24:GOTO700
- 1190 DEF FNA1(X)=INT(.5+A1+X*COS(C1*CX))
- 1200 DEF FNB1(X)=INT(.5+B1+X*SIN(C1*CX))
- 1210 FORX=0TOINT(W1)
- 1220 IFNOT(Q1=8-INT(FNB1(X)/8)ANDQ2=INT(FNA1(X)/8+1))THENX=W1:GOTO1390
- 1230 S3=8-FNB1(X)+8*INT(FNB1(X)/8):S4=FNA1(X)+1-8*INT(FNA1(X)/8)
- 1240 IFS(S3,S4)<2THEN1390
- 1250 S(S1,S2)=0:S1=8-FNB1(X-1)+8*INT(FNB1(X-1)/8)
- 1260 S2=FNA1(X-1)+1-8*INT(FNA1(X 1)/8):S(S1,S2)=1
- 1270 PRINTAR$;"NAVIGATIONAL ERROR :ENGINES SHUT DOWN AT (";
- 1280 PRINTMID$(STR$(S1),2,1);","MID$(STR$(S2),2,1);")"
- 1290 T=T+(W1/24)
- 1300 PRINT" YOU LOST "T" UNITS STARTIME RESTARTING ENGINES."
- 1310 PRINT
- 1320 IF S(S3,S4)<>4 THEN 700
- 1330 PRINT"SHIELDS LOWERED FOR REFUELING"
- 1340 S=0:P=10:C$="D":E=3000-XA+100
- 1350 GOSUB 2280
- 1360 FORR1=1TO 10
- 1370 IFD(R1)>=0THENNEXTR1:GOTO700
- 1380 D(R1)=D(R1)+(11*RND(1)/R9):NEXTR1:GOTO700
- 1390 NEXT X:S(S1,S2)=0:S1=8-B2+8*INT(B2/8):S2=A2+1-8*INT(A2/8)
- 1400 Q3=8-INT(B2/8):Q4=INT(A2/8)+1
- 1410 IFNOT(Q1=Q3ANDQ2=Q4)THENQ1=Q3:Q2=Q4:GOTO430
- 1420 S(S1,S2)=1:FORA=S1-1TOS1+1:FORB=S2-1TOS2+1
- 1430 IFA>8ORB>8ORA<1ORB<1THEN1450
- 1440 IFS(A,B)=4THEN1330
- 1450 NEXTB,A:GOTO700
- 1460 PRINT
- 1470 FOR A=(Q1-1) TO (Q1+1):FOR B=(Q2-1) TO (Q2+1)
- 1480 IFA<1ORB<1ORA>8ORB>8THENPRINT" ***";:NEXTB:PRINT" ":PRINT:NEXTA:GOTO700
- 1490 PRINT" "SPC(3-LOG(G(A,B)+1)/LOG(10));
- 1500 PRINTMID$(STR$(G(A,B)),2,LOG(G(A,B))/LOG(10)+1);
- 1510 G(A,B)=INT(G(A,B))+.5:NEXTB:PRINT" ":PRINT:NEXTA:GOTO700
- 1520 PRINT
- 1530 IFK3<=0THEN2260
- 1540 IFD(8)>=0THEN1560
- 1550 PRINTAR$;" COMPUTER FAILURE HAMPERS ACCURACY"
- 1560 PRINT"PHASERS LOCKED ON TARGET. ENERGY AVAILABLE="E
- 1570 PRINT"NUMBER OF UNITS TO FIRE:";
- 1580 INPUT X
- 1590 IF E-X<0THENPRINT"NOT ENOUGH POWER":GOTO700
- 1600 T=T+.05:IFT>T9THEN2510
- 1610 E=E-X
- 1620 IF C$<>"D"THEN GOSUB 2280
- 1630 IFD(8)>=0THEN1650
- 1640 X=X*RND(1)
- 1650 FORI=1TO3
- 1660 IFK(I,3)<=0THEN1760
- 1670 H=(X/FND(0))+SGN(RND(1)-.5)*8*RND(1)
- 1680 K(I,3)=K(I,3)-H
- 1690 PRINTH"UNIT HIT ON VESSEL AT (";MID$(STR$(K(I,1)),2,1);",";
- 1700 PRINTMID$(STR$(K(I,2)),2,1);"), LEAVING"K(I,3)"
- 1710 IFK(I,3)>0THEN1760
- 1720 PRINT"KLINGON AT (";MID$(STR$(K(I,1)),2,1);",";MID$(STR$(K(I,2)),2,1);
- 1730 PRINT") DESTROYED":K3=K3-1:K9=K9-1:IFK9=0THEN2640
- 1740 G(Q1,Q2)=G(Q1,Q2)-100:S(K(I,1),K(I,2))=0:K(I,1)=0:K(I,2)=0
- 1750 K(I,3)=0
- 1760 NEXT I
- 1770 GOTO700
- 1780 PRINT
- 1790 IFP>0THEN1820
- 1800 PRINTAR$;"ALL PHOTON TORPEDOES EXPENDED"
- 1810 GOTO700
- 1820 INPUT"DIRECTION";C1
- 1830 T=T+.05:IFT>T9THEN2510
- 1840 P=P-1:IF C$<>"D" THEN GOSUB 2280
- 1850 A1=8*Q2+S2-9:B1=72-8*Q1-S1:IFC1=90*INT(C1/90)THEN2080
- 1860 DEF FNA1(W1)=INT(.5+A1+W1*COS(C1*CX))
- 1870 DEF FNB1(W1)=INT(.5+B1+W1*SIN(C1*CX))
- 1880 FORW1=0TO10STEP.9
- 1890 IFW1=0THENS3=S1:S4=S2:GOTO1940
- 1900 IFNOT(Q1=8-INT(FNB1(W1)/8)ANDQ2=INT(FNA1(W1)/8+1))THEN700
- 1910 S3=8-FNB1(W1)+8*INT(FNB1(W1)/8):S4=FNA1(W1)+1-8*INT(FNA1(W1)/8)
- 1920 IFFNA1(W1)=A2ANDFNB1(W1)=B2THEN2060
- 1930 A2=FNA1(W1):B2=FNB1(W1)
- 1940 PRINT"(";MID$(STR$(S3),2,1);",";MID$(STR$(S4),2,1);")";A$(S(S3,S4))
- 1950 ON S(S3,S4)+1GOTO2060,2060,2040,1960,2030
- 1960 IFRND(1)<(.1*X4) THENPRINT"SHIELDS DEFLECT TORPEDO":GOTO700
- 1970 PRINT"KLINGON DESTROYED":S(S3,S4)=0:G(Q1,Q2)=G(Q1,Q2)-100
- 1980 K3=K3-1:K9=K9-1:IFK9=0THEN2640
- 1990 FORA=1TO3
- 2000 IFK(A,1)=S3ANDK(A,2)=S4THENK(A,1)=0:K(A,2)=0:K(A,3)=0
- 2010 NEXTA
- 2020 GOTO700
- 2030 PRINTAR$;"STARBASE DESTROYED":B3=0:B9=B9-1:S(S3,S4)=0:GOTO2050
- 2040 PRINTAR$;"YOU CAN'T DESTROY A STAR":GOTO700
- 2050 G(Q1,Q2)=G(Q1,Q2)-10:GOTO700
- 2060 NEXT W1
- 2070 GOTO700
- 2080 FORW1=0TO8
- 2090 S3=INT(S1-W1*SIN(C1*CX))
- 2100 S4=INT(S2+W1*COS(C1*CX))
- 2110 IFS3>8ORS4>8ORS3<1ORS4<1THEN700
- 2120 GOTO1940
- 2130 PRINT
- 2140 PRINT"ENERGY AVAILABLE="E+S" NUMBER OF UNITS TO SHIELDS";
- 2150 INPUT X
- 2160 IFX<0THEN700
- 2170 IFE+S-X<0THEN2140
- 2180 E=E+S-X
- 2190 S=X
- 2200 IFSL=1THEN650
- 2210 GOTO700
- 2220 PRINT
- 2230 PRINT"DEVICE STATE OF REPAIR"
- 2240 FORR1=1TO10:PRINTD$(R1);TAB(21) D(R1):NEXTR1
- 2250 IF DT=1 THEN 2670 ELSE 700
- 2260 PRINT"SHORT RANGE SENSORS REPORT NO KLINGONS IN THIS QUADRANT"
- 2270 IF DT=1 THEN 2670 ELSE 700
- 2280 IF C$="D" AND K3<>0 THEN PRINT"STARBASE PROTECTS ENTERPRISE" ELSE 2300
- 2290 GOTO700
- 2300 PRINT
- 2310 FORI=1TO3
- 2320 IFK(I,3)<=0THEN2420
- 2330 H=K(I,3)/FND(0)+SGN(RND(1)-.5)*RND(1)*7
- 2340 S=S-H:PRINTH"UNIT HIT FROM ("MID$(STR$(K(I,1)),2,1);",";
- 2350 PRINTMID$(STR$(K(I,2)),2,1);"), LEAVING"S
- 2360 IFS<0THEN2540
- 2370 GOSUB1040
- 2380 IFRND(1)>R9/10THEN2420
- 2390 R1=INT(8*RND(1)+1):R2=INT(8*RND(1)+1)
- 2400 IFNOT(S(R1,R2)=0)THEN2390
- 2410 S(R1,R2)=3:S(K(I,1),K(I,2))=0:K(I,1)=R1:K(I,2)=R2
- 2420 NEXTI
- 2430 RETURN
- 2440 PRINT AR$;" ENTERPRISE DEAD IN SPACE"
- 2450 PRINT
- 2460 CY=1:PRINT:GOTO2580
- 2470 IFK3<=0THEN2580
- 2480 GOSUB2280
- 2490 GOTO2470
- 2500 PRINT
- 2510 PRINT:PRINT:PRINT:PRINT:PRINT:PRINTAR$;
- 2520 PRINT"IT IS STARDATE"T:PRINT
- 2530 GOTO2580
- 2540 PRINT
- 2550 PRINT:PRINT:PRINT:PRINT:PRINT:PRINTAR$;
- 2560 PRINT"ENTERPRISE DISABLED !!":PRINT:PRINT
- 2570 CY=0
- 2580 PRINT"THERE ARE"K9"KLINGONS REMAINING.":IFCY<>0THEN3550
- 2590 PRINT"YOU HAVE FAILED !!":PRINT
- 2600 L=INT(RND(1)*5)
- 2610 ONL+1GOTO 3430,3460,3480,3500,3530
- 2620 PRINT:INPUT"DO YOU WANT TO TRY AGAIN";X$
- 2630 IF LEFT$(X$,1)="Y" THEN 120 ELSE 5410
- 2640 PRINT"THE FEDERATION IS SAVED !!"
- 2650 PRINT"YOU ARE HEREBY PROMOTED TO ADMIRAL!!!!":PRINT
- 2660 GOTO2620
- 2670 DT=1
- 2680 INPUT"COMPUTER ON--COMMAND";A
- 2690 IF A>=10 THEN PRINT AR$;" NO SUCH COMMAND !!":GOTO 2680
- 2700 ONA+1GOTO2890,2940,2990,2830,590,3390,3410,5100,700
- 2710 PRINT"FUNCTIONS AVAILABLE FROM COMPUTER"
- 2720 PRINT" 0 = GALACTIC MEMORY MAP"
- 2730 PRINT" 1 = GENERAL STATUS REPORT"
- 2740 PRINT" 2 = PHOTON TRAJECTORY"
- 2750 PRINT" 3 = NEW MISSION"
- 2760 PRINT" 4 = PRESENT POSITION"
- 2770 PRINT" 5 = SELF-DESTRUCT"
- 2780 PRINT" 6 = WARP-COMPASS"
- 2790 PRINT" 7 = MISSION PROGRESS REPORT"
- 2800 PRINT" 8 = EXIT COMPUTER"
- 2810 GOTO2670
- 2820 PRINT:PRINT"--TEMPORARY MALFUNCTION--":GOTO 700
- 2830 IF XM<0 THEN 2870
- 2840 PRINT AR$;"SAFETY CHECK -- DO YOU WISH TO ABORT MISSION":INPUT AN$
- 2850 IF LEFT$(AN$,1)<>"Y" THEN 2880 ELSE 120
- 2860 PRINT
- 2870 PRINT"YOU HAVE NOT BEEN AUTHORIZED FOR NEW MISSION !!":PRINT
- 2880 GOTO 2670
- 2890 PRINT"QUADRANT CODE MEMORY MAP"
- 2900 FORA=1TO8:FORB=1TO8:IFG(A,B)=INT(G(A,B))THENPRINT" ???";:GOTO2930
- 2910 PRINT" "SPC(3-LOG(G(A,B)+1)/LOG(10));
- 2920 PRINTMID$(STR$(G(A,B)),2,LOG(G(A,B))/LOG(10)+1);
- 2930 NEXTB:PRINT" ":NEXTA:GOTO 2670
- 2940 PRINT" STATUS REPORT"
- 2950 PRINT"NUMBER OF KLINGONS LEFT ="K9
- 2960 PRINT"NUMBER OF STARDATES LEFT ="T9-T
- 2970 PRINT"NUMBER OF STARBASES LEFT ="B9
- 2980 A=7:GOTO740
- 2990 IFK3=0THEN2260
- 3000 IFD(2)<0THENA=2:GOTO730
- 3010 PRINT"COORD","LOWDIR","HIGHDIR","DIST"
- 3020 FORA=1TO47:PRINT"-";:NEXTA
- 3030 PRINT
- 3040 FORI=0TO3
- 3050 IFNOT(K(I,3)>0)THEN3180
- 3060 W1=SQR((S1-K(I,1))^2+(S2-K(I,2))^2)
- 3070 IF W1=0 THENPRINT"--->MALFUNCTION !":GOTO700
- 3080 ON ERROR GOTO 2820
- 3090 C1=1.5708-ATN((K(I,2)-S2)/W1/SQR(1-((K(I,2)-S2)/W1)^2))
- 3100 ON ERROR GOTO 2820
- 3110 C1=C1*SGN(S1-K(I,1))/CX
- 3120 C2(I)=C1-(10*RND(1))
- 3130 C3(I)=C1+(10*RND(1))
- 3140 IF C3(I)<0 THEN C3(I)=C3(I)+360
- 3150 IF C2(I)<0 THEN C2(I)=C2(I)+360
- 3160 PRINT"(";MID$(STR$(K(I,1)),2,1);",";MID$(STR$(K(I,2)),2,1);
- 3170 PRINT")",C2(I),C3(I),W1
- 3180 NEXTI
- 3190 IF DT=1 THEN 2670 ELSE 700
- 3200 RETURN
- 3210 MR=(T9-T)/K9:DT=0
- 3220 XM=((MR-PR)/PR)*100
- 3230 IFKA=1THENPRINTTK-T"STARDATES LEFT TO SAVE STARBASE.":GOTO3320
- 3240 IFRND(1)>.01*R9ORB9=0THENRETURN
- 3250 KA=1:FORA=1TO8:FORB=1TO8
- 3260 IFG(A,B)-100*INT(G(A,B)/100)>9THENK1=A:K2=B:IFRND(1)>.5THENA=8:B=8
- 3270 NEXTB,A:TK=T+.09*SQR((Q1-K1)^2+(Q2-K2)^2)*(10-R9)
- 3280 TK=TK+1
- 3290 PRINTAR$;"!!! STARBASE IN QUADRANT ("MID$(STR$(K1),2,1)",";
- 3300 PRINTMID$(STR$(K2),2,1)") IS UNDER ATTACK!!"
- 3310 PRINT"YOU HAVE"TK-T"STARDATES TO SAVE IT!":RETURN
- 3320 IFT<TKTHEN3370
- 3330 PRINT"TOO LATE!":KA=0:G(K1,K2)=G(K1,K2)-10:B9=B9-1
- 3340 IFNOT(Q1=K1ANDQ2=K2)THENRETURN
- 3350 FORA=1TO8:FORB=1TO8:IFS(A,B)=4THENS(A,B)=0
- 3360 NEXTB,A:RETURN
- 3370 IFQ1=K1ANDQ2=K2THENPRINT"YOU ARRIVED IN TIME! STARBASE SAVED!"
- 3380 KA=0:GOTO700
- 3390 IF SD<>1 THEN 4210 ELSE 5300
- 3400 GOTO700
- 3410 GOSUB 3650
- 3420 GOTO 2670
- 3430 PRINT"YOU HAVE SCREWED UP ONCE TOO OFTEN !"
- 3440 PRINT"OFF TO THE VULCAN TORTURE CAMPS !!"
- 3450 IFT<= 0THEN2620ELSE3550
- 3460 PRINT"YOU WILL BE EXECUTED AT SUNRISE"
- 3470 GOTO3550
- 3480 PRINT"YOU WILL BE PUT TO DEATH FOR YOUR INCOMPETENCE"
- 3490 GOTO3550
- 3500 PRINT"YOU WILL BE CONFINED TO YOUR QUARTERS UNTIL"
- 3510 PRINT"VULCAN'S MOONS BECOME TOURIST TRAPS !!"
- 3520 IFT<=0THEN2620ELSE3550
- 3530 PRINT"IMBECILE !! WE HOPE YOU CONSIDER SUICIDE!"
- 3540 IFT<=0THEN2620ELSE3550
- 3550 L=(U-K9)*10+((U-K9)*500/T)-100*(Y-B9)
- 3560 IFE<=0ORS<0THENL=L-200
- 3570 IFK9=0THENL=L+(R9*100)
- 3580 PRINT:PRINT
- 3590 PRINT"YOUR MISSION RATING IS: ";L
- 3600 PRINT:PRINT:PRINT:PRINT:PRINT
- 3610 GOSUB 5430
- 3620 PRINTCHR$(26)
- 3630 GOTO5440
- 3640 GOTO2620
- 3650 PRINT
- 3660 PRINT" O9O"
- 3670 PRINT" 135 . O45"
- 3680 PRINT" . . ."
- 3690 PRINT" . . ."
- 3700 PRINT"18O . . . . . . .OOO WARP-COMPASS"
- 3710 PRINT" . . ."
- 3720 PRINT" . . ."
- 3730 PRINT" 225 . 315"
- 3740 PRINT" 27O"
- 3750 PRINT
- 3760 RETURN
- 3770 XX=INT(RND(2)*10)+1
- 3780 RETURN
- 3790 PRINT:IFX4>12THEN3880
- 3800 PRINT"COMMAND CENTRAL ADVISES THAT YOUR RANKING-";X4;"-IS IN THE EXPERT"
- 3810 PRINT"CATEGORY. BE ADVISED THAT IF YOU ARE NOT PROPERLY QUALIFIED"
- 3820 PRINT"YOUR CHANCES OF AVOIDING FAILURE ARE NIL."
- 3830 PRINT
- 3840 PRINT"DO YOU WISH REASSIGNMENT TO A LESS HAZARDOUS MISSION (Y OR N)"
- 3850 INPUTAN$
- 3860 IFLEFT$(AN$,1)="Y"THEN120
- 3870 PRINTCHR$(26):GOTO230
- 3880 PRINT"YOU HAVE REQUESTED A SUICIDE MISSION":GOTO3830
- 3890 PRINT"--COMMUNICATIONS ACTIVE--"
- 3900 PRINT
- 3910 GOSUB3770
- 3920 PD=XX
- 3930 GOSUB3770
- 3940 PE=XX
- 3950 GOSUB3770
- 3960 PF=XX
- 3970 GOSUB3770
- 3980 PG=XX
- 3990 PH=PD*10+PE
- 4000 PJ=PF*10+PG
- 4010 IFPH=PJTHEN 2820
- 4020 KP=1:IFPD=PEORPF=PGTHEN4030ELSE4050
- 4030 PRINT"SUNSPOTS BLOCK TRANSMISSION AT : ":GOTO600
- 4040 PRINT"MOVE ELSEWHERE AND TRY AGAIN":PRINT:GOTO 810
- 4050 PRINT"AUTHORIZED FREQUENCIES":PRINT
- 4060 PRINT"FEDERATION COMMAND BASE = ";PH
- 4070 PRINT"KLINGON COMMAND CENTRAL = ";PJ
- 4080 PRINT
- 4090 INPUT"COMMUNICATION ON CHANNEL ";XF
- 4100 IFXF=PHTHEN4320
- 4110 IFXF=PJTHEN4610
- 4120 PRINT
- 4130 PRINTAR$;"ALERT !!"
- 4140 PRINT"ATTEMPTED COMMUNICATION ON UNAUTHORIZED FREQUENCY"
- 4150 PRINT
- 4160 PRINT"WHILE SECURITY CHECK IS CONDUCTED ON ENTERPRISE"
- 4170 GOSUB3770:A=XX
- 4180 GOSUB3770:I=(XX/2)+(X4/7)
- 4190 PRINT"YOUR ";D$(A);" WILL BE INOPERATIVE FOR ";I "UNITS OF STARTIME"
- 4200 D(A)=D(A)-I:GOTO700
- 4210 PRINT
- 4220 PRINT"SECURITY CONTROL ADVISES THAT NO AUTHORIZATION HAS BEEN"
- 4230 PRINT"GIVEN TO ACTIVATE SELF- DESTRUCT SYSTEM."
- 4240 PRINT"PROCEED WITH ASSIGNED MISSION":PRINT:GOTO 2680
- 4250 PRINT
- 4260 PRINT"BE ADVISED, YOUR MISSION PROGRESS FACTOR IS";PR
- 4270 GOSUB 3770
- 4280 TF=(XX*X4)/1.6:IF TF<10 THEN TF=TF+10
- 4290 PRINT" THE TOLERANCE FACTOR FOR THIS MISSION IS [+/-]";TF;"PERCENT"
- 4300 PRINT
- 4310 RETURN
- 4320 ONSGN(XM)+2GOTO4330,4370,4390
- 4330 IFABS(XM)>(TF*1.5)THEN4450
- 4340 IFABS(XM)>TFTHEN4420
- 4350 PRINT:PRINT"CAPTAIN, YOU ARE BEHIND SCHEDULE - LET'S GO !!"
- 4360 GOTO 700
- 4370 PRINT:PRINT"YOU ARE EXACTLY ON COMPUTED SCHEDULE; PROCEED WITH MISSION"
- 4380 GOTO700
- 4390 IFXM>TFTHEN4540:IFXM>(TF*1.5)THEN4570
- 4400 PRINT:PRINT"YOU ARE AHEAD OF COMPUTED SCHEDULE, KEEP UP THE GOOD WORK !!"
- 4410 GOTO700
- 4420 PRINT:PRINT"YOU ARE BEHIND SCHEDULE AND OUT OF TOLERANCE FACTOR !!"
- 4430 PRINT"COMMAND CONTROL PROJECTS FAILURE...YOU MAY SURRENDER TO ENEMY"
- 4440 EQ=1:SD=1:GOTO 3890
- 4450 YY=AC^X4
- 4460 PRINTCHR$(26)
- 4470 PRINTAR$;"---------COMPUTER PROJECTION----------":PRINT
- 4480 PRINT"PROJECTED LIKELIHOOD OF SUCCESS FOR YOUR MISSION =";YY;"PERCENT"
- 4490 PRINT"WE HAVE AUTO ACTIVATED SELF-DESTRUCT SYSTEM ON YOUR VESSEL"
- 4500 PRINT"GOODBYE, CAPTAIN.............":PRINT
- 4510 PRINT"END OF MESSAGE FROM FEDERATION COMMAND":PRINT:PRINT
- 4520 GOSUB 5430
- 4530 GOTO 5300
- 4540 PRINT:PRINT"YOU ARE AHEAD OF SCHEDULE AND BEYOND TOLERANCE FACTOR"
- 4550 PRINT"CALL KLINGON LEADERS AND REQUEST THEIR SURRENDER":KQ=1
- 4560 PRINT:GOTO3890
- 4570 PRINTAR$;"MESSAGE FROM COMMAND BASE"
- 4580 PRINT:PRINT"ENEMY HAS SURRENDERED TO FEDERATION COMMAND !!"
- 4590 PRINT:PRINT:PRINT:PRINT
- 4600 GOTO2640
- 4610 IF KQ=1 THEN 4860:IF EQ=1 THEN 4640
- 4620 ON SGN(XM)+2 GOTO 4630,4690,4740
- 4630 IF ABS(XM)<=TFTHEN4690
- 4640 PRINT:PRINT"KLINGON COMMAND ON FREQUENCY"
- 4650 PRINT"NATURALLY, WE ARE PLEASED THAT YOU ARE CONCEDING, CAPTAIN"
- 4660 PRINT"WE ARE PRESENTLY BOARDING YOUR CRAFT"
- 4670 PRINT:PRINT"HERE IS A MESSAGE FROM YOUR LEADERS-":PRINT:GOSUB 5430
- 4680 PRINTCHR$(26):GOTO 2600
- 4690 GOSUB 3770
- 4700 IFXX<=5THEN 4730
- 4710 PRINT:PRINT"MESSAGE FROM KLINGON COMMAND...."
- 4720 PRINT"NO FURTHER COMMUNICATIONS AT THIS TIME":GOTO 4820
- 4730 PRINT:PRINT"WE'LL TALK WITH OUR WEAPONS, EARTH-SWINE !!":GOTO 4820
- 4740 GOSUB 3770
- 4750 AQ=INT((XX+1)/2)
- 4760 ON AQ GOTO 4710,4730,4770,4770,4740
- 4770 GF=TF*1.5
- 4780 IFXM>GFTHEN 4860
- 4790 IFXM>TFTHEN 4830
- 4800 PRINT:PRINT"CAPTAIN, DESPITE YOUR SLIGHT ADVANTAGE, YOU ARE NO MATCH FOR"
- 4810 PRINT"THE GLORIOUS KLINGON FLEET"
- 4820 PRINTTAB(25)"END OF MESSAGE FROM KLINGON COMMAND":GOTO700
- 4830 GOSUB3770
- 4840 IFXX<=5THENPRINT" KLINGON COMMAND TO ENTERPRISE..":GOTO4730
- 4850 GOTO4870
- 4860 PRINTCHR$(26)
- 4870 PRINT:PRINT"MESSAGE FROM KLINGON LEADERS..."
- 4880 PRINT:PRINT"WE CONCEDE THE WAR, SIR, CONGRATULATIONS !!":GOTO3600
- 4890 AV=INT(X4/2)+1:DR=-1
- 4900 IF TEC<AV THEN 4920
- 4910 IF C$<>"D" THEN 4960 ELSE 4980
- 4920 AU=AV-TEC:IFAU=1THENKF$=""ELSEKF$="S"
- 4930 PRINT:PRINT"DAMAGE REPAIR INACTIVE !!"
- 4940 PRINT"REQUIRES";AU;"MORE RECHARGE UNIT";KF$
- 4950 PRINT:GOTO 700
- 4960 PRINT:PRINTAR$"YOU MUST BE DOCKED AT STARBASE FOR DAMAGE REPAIR !!"
- 4970 PRINT:GOTO 700
- 4980 PRINT
- 4990 PRINT:FORA=1TO10
- 5000 IFD(A)<0THENPRINT TAB(10)A;TAB(20)D$(A);TAB(40)"DAMAGED"
- 5010 NEXT
- 5020 PRINT:PRINT"IF NO DAMAGE INDICATED ABOVE, ANSWER WITH 0 (ZERO)"
- 5030 INPUT "WHICH ONE TO REPAIR ";A
- 5040 IFA<1ORA>10THENPRINTAR$;:GOTO 700
- 5050 IF D(A)<0 THEN 5070
- 5060 PRINT:PRINTD$(A);" NOT DAMAGED !!":GOTO 5030
- 5070 PRINT:PRINTTAB(20)D$(A);"---REPAIRED":PRINT
- 5080 D(A)=0:TEC=0:GOTO700
- 5090 PRINT:PRINTAR$;"NOTHING DAMAGED AT PRESENT":GOTO700
- 5100 PRINT
- 5110 GOSUB4290
- 5120 PRINT"INITIAL MISSION PROGRESS FACTOR WAS";PR
- 5130 PRINT"CURRENT MISSION PROGRESS FACTOR IS ";MR
- 5140 IF XM<0 THEN PW$=" WORSENED "ELSE PW$=" IMPROVED "
- 5150 PRINT
- 5160 PRINT"YOUR COMBAT SITUATION HAS";PW$;"BY A FACTOR OF";XM;"PERCENT"
- 5170 IF ABS(XM)>=TF THEN EG$=" NOT "ELSE EG$=" "
- 5180 IF EG$=" "THEN EH$=""ELSE EH$=AR$
- 5190 PRINT EH$;"YOUR PROGRESS IS";EG$;"WITHIN TOLERANCE FOR THIS MISSION"
- 5200 PRINT
- 5210 IF EG$=" NOT "THEN 5220 ELSE 2670
- 5220 IF XM<0 THEN 5230 ELSE 5270
- 5230 PRINT:SD=1:KD=0
- 5240 PRINT"CAPTAIN, COMMAND CENTRAL PROJECTS DEFEAT BY ENEMY. YOU ARE NOW"
- 5250 PRINT"AUTHORIZED TO SURRENDER OR TO ACTIVATE SELF-DESTRUCT SYSTEM"
- 5260 GOTO2670
- 5270 PRINT:SD=0:KD=1
- 5280 PRINT"CAPTAIN, FEDERATION COMMAND PROJECTS SUCCESS FOR YOUR MISSION."
- 5290 GOTO 4540
- 5300 PRINTCHR$(26)
- 5310 GOSUB 5420
- 5320 PRINT"SELF DESTRUCT SYSTEM ACTIVATED"
- 5330 PRINT:PRINT:PRINT:GOSUB 5420
- 5340 PRINT"COUNTDOWN BEGUN !":PRINT:PRINT
- 5350 PRINTTAB(25)"FIVE":PRINT:GOSUB 5420
- 5360 PRINTTAB(20)"FOUR":PRINT:GOSUB 5420
- 5370 PRINTTAB(15)"THREE":PRINT:GOSUB 5420
- 5380 PRINTTAB(10)"TWO":PRINT:GOSUB 5420
- 5390 PRINTTAB(5)"ONE":PRINT:GOSUB 5420
- 5400 PRINT"ZERO":GOSUB 5420
- 5410 PRINTCHR$(26):GOTO5440
- 5420 FOR I=1 TO 50:A=A+1:NEXT:RETURN
- 5430 FOR I=1 TO 1200:A=A+1:NEXT:RETURN
- 5440 RESET
-