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 IFT1 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"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 B 5420 5410 PRINTCHR$(26):GOTO5440 5420 FOR I=1 TO 50:A=A+1:NEXT:RETURN 543