Listing of file='START20K' on disk='vmedia/games_vol_4.wvd.zip'
# Sector 216, program filename = 'START20K' 0005 REM "STARTREK" ^GAMES^ 8-4-75 NEW STAR TREK GAME 0010 REM *** STARTREK IV *** 0020 REM WRITTEN BY MARK MUSEN, APRIL 1975 0030 REM 0040 SELECT PRINT 005(255),CO 005(64),P0 : PRINT HEX(030A);"KEY 'RETURN (EXEC)'." : KEYIN A$,50,50 0050 KEYIN A$,70,70 : A=RND(1) : GOTO 50 0060 %### ### ### ### ### ### ### ### 0070 PRINT HEX(030A0A0A0A0A);TAB(24);"** STAR TREK **" : PRINT HEX(0A0A);TAB(8);"( PARDON US WHILE WE GENERATE YOUR GALAXY... )" 0080 DIM B8$1,A0$3,D$(8)14,C0$3,D5$11,G(8,8),C(9,2),K(3,3),N$(3)3,Z$(8,8)3,S$( 8,8)3 : T0,T=INT(RND(1)*20+20)*100 : RESTORE : FOR I=1TO 8 : READ D$(I) : NEXT I : INIT(".") Z$() : INIT(" ") S$() 0090 DATA "WARP DRIVE","S.R. SENSORS","L.R. SENSORS","PHASERS","PHOTON TUBES", "DAMAGE CONTROL","SHIELD CONTROL","COMPUTER" : DEFFNR(X)=INT(X*1000+.5)/1000 0100 T9=30 : D0=0 : E0,E=3500 : P0,P=10 : S9=180 : S,S0,S4,H8=0 : W9=50 0110 DEFFND(D)=SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2) : Q1=INT(RND(1)*8+1) : Q2=INT(RND(1)*8+1) : S1=INT(RND(1)*8+1) : S2=INT(RND(1)*8+1) : T7=0 : C(2,1),C(3,1),C(4,1),C(4,2),C(5,2),C(6,2)=-1 0120 C(1,1),C(3,2),C(5,1),C(7,2),C(9,1)=0 : C(1,2),C(2,2),C(6,1),C(7,1),C(8,1),C(8,2),C(9,2)=1 : DIM D(8) 0130 FOR I=1TO 8 : D(I)=(RND(1)-.008)/1.25 : NEXT I : B9,K9=0 : FOR I=1TO 8 : FOR J=1TO 8 : R1=RND(1) 0140 IF R1>.98THEN 150 : IF R1>.92THEN 160 : IF R1>.84THEN 170 : K3=0 : GOTO 180 0150 K3=3 : K9=K9+3 : GOTO 180 0160 K3=2 : K9=K9+2 : GOTO 180 0170 K3=1 : K9=K9+1 0180 R1=RND(1) : IF R1>.96THEN 190 : B3=0 : GOTO 200 0190 B3=1 : B9=B9+1 0200 S3=INT(RND(1)*8+1) : G(I,J)=K3*100+B3*10+S3 : NEXT J : NEXT I : IF B9=0THEN 80 : IF K9>28 THEN 80 : IF K9<9THEN 80 : K7=K9 0210 PRINT HEX(030A0A0A0A0A0A0A);"UHURA HERE, CAPTAIN." : PRINT HEX(0A);"COMMUNICATIONS RECEIVED FROM STARFLEET..." 0220 PRINT "YOU MUST DESTROY";K9;"KLINGONS IN";T9;"STARDATES WITH";B9;"STARBAS E"; : IF B9=1THEN 230 : PRINT "S"; 0230 PRINT ".";HEX(0D0A0A0A) : FOR A=1TO 400 : NEXT A 0240 K3,B3,S3=0 0250 IF Q1<1THEN 2180 : IF Q1>8THEN 2180 : IF Q2<1THEN 2180 : IF Q2>8THEN 2180 : IF RND(1)>.99THEN 2200 0260 X=G(Q1,Q2)*.01 : K3,K5=INT(X) : B3=INT((X-K3)*10) : S3=G(Q1,Q2)-INT(G(Q1,Q2)*.1)*10 : IF K3=0THEN 270 : IF S>200THEN 270 : PRINT HEX(0A);"COMBAT AREA: CONDITION RED" : PRINT "SHIELDS DANGEROUSLY LOW" 0270 FOR I=1TO 3 : FOR J=1TO 3 : K(I,J)=0 : NEXT J 0280 NEXT I : INIT(" ") S$() : S$(S1,S2)="<#>" : IF K3=0THEN 300 : FOR I=1TO K3 : GOSUB 2040 0290 S$(R1,R2)="+++" : K(I,1)=R1 : K(I,2)=R2 : K(I,3)=S9+INT(40*RND(1)) : NEXT I 0300 IF B3=0THEN 310 : FOR I=1TO B3 : GOSUB 2040 : S$(R1,R2)=">:<" : NEXT I 0310 IF S3=0THEN 350 : FOR I=1TO S3 : GOSUB 2040 : S$(R1,R2)=" * " : NEXT I : S5=0 : IF RND(1)<.96THEN 350 : GOSUB 2040 : S$(R1,R2)=" . " : B8$="1" : GOTO 350 0320 A=INT(RND(1)*K5+1) : IF K(A,3)<8THEN 340 : Z1=K(A,1) : Z2=K(A,2) : Z1=Z1+SGN(S1-Z1)*INT(RND(1)+.7) : Z2=Z2+SGN(S2-Z2)*INT(RND(1)+.7) 0330 IF S$(Z1,Z2)<>" "THEN 340 : IF RND(1)>.8THEN 340 : S$(Z1,Z2)="+++" : S$(K(A,1),K(A,2))=" " : Z4=K(A,1) : Z5=K(A,2) : P4=1 : K(A,1)=Z1 : K(A,2)=Z2 0340 RETURN 0350 GOSUB 1540 0360 M=1 0370 IF M=1THEN 420 : IF P4=1THEN 380 : IF RND(1)<.5THEN 380 : IF K3<=0THEN 380 : IF S=0THEN 380 : GOSUB 1270 : IF S<0THEN 1440 0380 KEYIN C0$,380,380 : C0$="SHO" : INPUT "COMMAND",C0$ 0390 FOR A=1TO 8 : IF D(A)>0THEN 400 : D(A)=D(A)+RND(1)/5 : E=E-1 0400 NEXT A : P4=0 : IF K3<=0THEN 410 : GOSUB 320 0410 IF C0$="WAR"THEN 510 : IF C0$="SHO"THEN 350 : IF C0$="LON"THEN 770 : IF C0$="PHA"THEN 840 : IF C0$="PHO"THEN 930 : IF C0$="SHI"THEN 1170 : IF C0$="STA"THEN 1190 : IF C0$="COM"THEN 1770 : IF C0$="SEL"THEN 2050 : PRINT "ILLEGAL COMMAND, CAPTAIN ..." : W9=W9+.2 : GOTO 380 0420 IF E<=0THEN 440 : A=RND(1) : IF A>.99THEN 450 : IF A>.98THEN 460 : IF A>.96THEN 480 : IF A>.93THEN 490 0430 PRINT : PRINT : PRINT : PRINT : GOTO 500 0440 PRINT "SCOTTY HERE, CAPTAIN..." : PRINT "ALL SYSTEMS SHOW A NET DEFICIT IN AVAILABLE ENERGY!" : PRINT "(YOU BETTER TAKE SOME OFF THE SHIELDS FAST!)" : PRINT : GOTO 500 0450 PRINT "UHURA HERE, CAPTAIN..." : PRINT "STARFLEET INFORMS ME THAT YOU HAVE ONCE AGAIN BEEN" : PRINT "ELECTED STARSHIP CAPTAIN OF THE MONTH! CONGRATULATIONS!" : PRINT : GOTO 500 0460 PRINT "UHURA HERE." : PRINT "CAPTAIN, I'VE RECEIVED ANOTHER COMMUNICATION FROM THIS" : PRINT "WOMAN SHANA OF THE PLANET TRISKELION." 0470 PRINT "SHE KEEPS MENTIONING SOMETHING ABOUT A PATERNITY SUIT..." : GOTO 500 0480 PRINT "UHURA HERE, CAPTAIN." : PRINT "STARFLEET HAS INFORMED US THAT OUR" : PRINT "NIELSEN RATINGS HAVE JUST GONE UP";INT(RND(1)*5)+2;"POINTS!" : PRINT : GOTO 500 0490 IF T0+T9-T<2 THEN 430 : PRINT "UHURA HERE, CAPTAIN." : PRINT "STARFLEET REMINDS US THAT THERE ARE ONLY";T0+T9-T;"STARDATES" : PRINT "LEFT BEFORE THE END OUR MISSION..." : PRINT 0500 M=0 : GOTO 380 0510 PRINT HEX(0C0C0C0C0C);TAB(64) : PRINT ,"4 3 2";TAB(64) : PRINT ,"5 <#> 1";TAB(64) : PRINT ,"6 7 8";TAB(64) : PRINT 0518 C1,W1=0 : INPUT " COURSE",C1 : IF C1=0THEN 360 : IF C1<1THEN 518 : IF C1>9THEN 518 0520 INPUT " WARP FACTOR",W1 : IF W1<0THEN 510 : IF W1>8THEN 510 : IF D(1)>=0THEN 530 : IF W1<=.2THEN 530 : PRINT " WARP ENGINES ARE DAMAGED. MAXIMUM SPEED = WARP .2" : GOTO 520 0530 IF K3<=0THEN 540 : GOSUB 1260 0540 IF E>=30THEN 570 : IF E+S<30THEN 1390 0550 PRINT HEX(0A);"SCOTTY HERE, CAPTAIN. WE HAVE";E;"UNITS OF ENERGY SIR..." : PRINT "WE'RE NOT ABOUT TO GO ANYWHERE ON THAT!" : PRINT "THE SHIELDS ARE CARRYING";S;"UNITS, SIR. SCOTTY OUT." : PRINT 0560 M=0 : GOTO 370 0570 IF S5*RND(1)>.8 THEN 2200 : FOR I=1TO 8 : IF D(I)>=0THEN 580 : D(I)=D(I)+1 : E=E-5 0580 NEXT I 0590 IF RND(1)>.18THEN 610 : R1=INT(RND(1)*8+1) : IF RND(1)>=.4THEN 600 : D(R1)=D(R1)-(RND(1)*5+1) : PRINT : PRINT "DAMAGE CONTROL REPORT: ";D$(R1);" DAMAGED" : GOTO 610 0600 D(R1)=D(R1)+(RND(1)*5+1) : PRINT : PRINT "DAMAGE CONTROL REPORT: ";D$(R1);" STATE OF REPAIR IMPROVED" 0610 W9=W9+1 : S$(S1,S2)=" " : X=S1 : Y=S2 : X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)) : X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)) : N=0 : IF W1=0THEN 700 : I=1 : N=INT(W1*8/SQR(X1^2+X2^2)) 0620 S1=S1+X1 : S2=S2+X2 : IF S1<1THEN 730 : IF S1>8THEN 730 : IF S2<1THEN 730 : IF S2>8THEN 730 0630 A0$=S$(S1+.5,S2+.5) : IF A0$=" "THEN 690 0640 PRINT : IF A0$<>">:<"THEN 650 : PRINT "McCOY HERE, CAPTAIN..." : PRINT "I'VE GOT";INT(RND(1)*56)+2;"UNCONSCIOUS PEOPLE DOWN HERE" : PRINT "WHO ALL PASSED OUT FROM THE WAY YOU RAMMED THAT LAST STARBASE!" : GOTO 680 0650 IF A0$=" . "THEN 1340 : IF A0$="+++"THEN 660 : IF RND(1)>.5THEN 670 : PRINT "CHEKOV HERE, CAPTAIN..." : PRINT "WHEN ARE YOU GOING TO LEARN HOW TO NAVIGATE THIS STARSHIP, SIR?" : GOTO 680 0660 PRINT "SPOCK HERE, CAPTAIN ..." : PRINT "COLLISION WITH A KLINGON BATTLE CRUISER IS NOT" : PRINT "A RECOMENDED PROCEDURAL TACTIC, SIR ..." : GOTO 680 0670 PRINT "SULU HERE..." : PRINT "YOU SEEM TO BE HAVING TROUBLE" : PRINT "WITH GETTING THE HANG OF NAVIGATION, CAPTAIN..." 0680 W9=W9+4 : FOR A=1TO 400 : NEXT A : S1=S1-X1 : S2=S2-X2 : GOTO 700 0690 I=I+1 : IF I<=NTHEN 620 0700 IF S$(S1+.5,S2+.5)=" "THEN 710 : S1=S1-X1 : S2=S2-X2 : GOTO 700 0710 S1=INT(S1+.5) : S2=INT(S2+.5) : S$(S1,S2)="<#>" : E=E-N : IF W1<1THEN 720 : T=T+1 0720 IF T>T0+T9THEN 1420 : GOTO 350 0730 X=Q1*8+X+X1*N : Y=Q2*8+Y+X2*N 0740 Q1=INT(X/8) : Q2=INT(Y/8) : S1=INT(X-Q1*8) : S2=INT(Y-Q2*8) : IF S1<>0THEN 750 : Q1=Q1-1 : S1=8 0750 IF S2<>0THEN 760 : Q2=Q2-1 : S2=8 0760 T=T+1 : E=E-N+5 : IF T>T0+T9THEN 1420 : GOTO 240 0770 IF D(3)>=0THEN 780 : PRINT " LONG RANGE SENSORS ARE INOPERABLE." : M=0 : GOTO 370 0780 E=E-2 : PRINT HEX(0A);" LONG RANGE SENSOR SCAN FOR QUADRANT";Q1;",";Q2 : PRINT HEX(0A);" -------------------" : FOR I=Q1-1TO Q1+1 : N$(1),N$(2),N$(3)=" " : FOR J=Q2-1TO Q2+1 0790 IF I<1THEN 810 : IF I>8THEN 810 : IF J<1THEN 810 : IF J>8THEN 810 : CONVERT G(I,J)TO N$(J-Q2+2),(###) : IF D(8)<0THEN 810 0800 Z$(I,J)=N$(J-Q2+2) 0810 NEXT J 0820 % ### . ### . ### 0830 PRINTUSING 820,N$(1),N$(2),N$(3) : PRINT " -------------------" : NEXT I : PRINT : M=0 : GOTO 370 0840 IF K3<=0THEN 1230 : IF D(4)>=0THEN 850 : PRINT " PHASERS ARE INOPERABLE." : M=0 : GOTO 370 0850 IF D(8)>=0THEN 870 0860 PRINT " COMPUTER FAILURE HAMPERS ACCURACY..." 0870 P4=1 : PRINT " PHASERS LOCKED ON TARGET. ENERGY AVAILABLE =";E : INPUT " NUMBER OF UNITS TO FIRE",X : PRINT : IF X<=0THEN 360 : IF E-X<0THEN 850 : E=E-X : GOSUB 1260 : IF D(8)>=0THEN 880 : X=X*RND(1) 0880 FOR I=1TO 3 : IF K(I,3)<=0THEN 920 : H=INT(X/K3*.95^FND(0)) 0890 K(I,3)=K(I,3)-H : PRINTUSING 900,H,K(I,1),K(I,2),K(I,3) 0900 % ##### UNIT HIT ON KLINGON AT SECTOR #, #. (-#### LEFT ) 0910 IF K(I,3)>0THEN 920 : GOSUB 1240 : IF K9<=0THEN 1490 0920 NEXT I : IF E<0THEN 1430 : M=0 : GOTO 370 0930 IF D(5)>=0THEN 940 : PRINT " PHOTON TUBES ARE NOT OPERATIONAL." : M=0 : GOTO 370 0940 IF P>0THEN 950 : PRINT " ALL PHOTON TORPEDOES EXPENDED." : M=0 : GOTO 370 0950 IF P4=0THEN 970 : IF D(2)<0THEN 970 : IF RND(1)>.4THEN 960 : PRINT HEX(0A);"SPOCK HERE ..." : PRINT "CAPTAIN, THE KLINGON AT SECTOR";Z4;HEX(08);",";Z5;"HAS CHANGED POS ITION." : PRINT : GOTO 970 0960 IF RND(1)<.3THEN 970 : PRINT HEX(0A);"SPOCK HERE, CAPTAIN..." : PRINT "SENSORS INDICATE THE KLINGON AT SECTOR";Z4;HEX(08);",";Z5;"IS ADVA NCING FAST." : PRINT 0970 P4=1 : C1=0 : INPUT " TORPEDO COURSE",C1 : C1=FNR(C1) : IF C1=0THEN 360 : IF C1<1THEN 970 : IF C1>9THEN 970 : X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)) : X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)) : X=S1 : Y=S2 : P=P-1 : E=E-150 0980 PRINT HEX(0A);"CHARGE NO.";P0-P;"ACTIVATED." : FOR A=1 TO 250 : PRINT HEX(07) : NEXT A : IF D(2)<0THEN 990 : PRINT HEX(0A);" CURSOR HEADING: ";C1;HEX(0D); : GOSUB 1640 : PRINT HEX(0A0A0A0A0C0C0C0C); 0990 X=X+X1 : Y=Y+X2 : IF X+.5<1THEN 1140 : IF X-.5>8THEN 1140 : IF Y+.5<1THEN 1140 : IF Y-.5>8THEN 1140 : E=E-INT(1/((S1-X)*(S1-X)+(S2-Y)*(S2-Y))*26) : A$=S$(X+.5,Y+.5) : S$(X+.5,Y+.5)=" ' " : IF D(2)<0THEN 1000 : PRINT HEX(01); : GOSUB 1640 1000 S$(X+.5,Y+.5)=A$ : IF A$=" "THEN 990 1010 IF A$<>"+++"THEN 1060 : PRINT HEX(0A);"*** KLINGON DESTROYED ***" : PRINT : FOR O9=1TO 5 : FOR J7=1TO 50 1020 NEXT J7 : PRINT HEX(07) : NEXT O9 : K3=K3-1 : K9=K9-1 : IF K9<=0THEN 1490 : I=1 : IF K3>0THEN 1030 : IF C$="DOCKED"THEN 1030 : C$="GREEN" 1030 IF INT(X+.5)<>K(I,1)THEN 1040 : IF INT(Y+.5)=K(I,2)THEN 1050 1040 I=I+1 : IF I<=3THEN 1030 : I=I-1 1050 K(I,3)=0 : GOTO 1120 1060 IF A$<>" . "THEN 1080 : PRINT "SPOCK HERE, CAPTAIN..." : PRINT "IT SEEMS THAT OUR PHOTON TORPEDO HAS BEEN" 1070 PRINT "TOTALLY ABSORBED BY A 'BLACK HOLE'." : GOTO 1150 1080 IF A$<>" * "THEN 1100 : PRINT "*** STAR DESTROYED ***" : C$="BLUE" 1090 PRINT "SPOCK HERE, CAPTAIN. YOU HAVE JUST DESTROYED AN" : PRINT "ENTIRE SOLAR SYSTEM CONTAINING";1+INT(RND(1)*90000)/100;"TRILLION SENTIENT BEINGS." : PRINT "TSK... TSK..."; : S3=S3-1 : S5=1 : A$=" . " : GOTO 1130 1100 IF A$<>">:<"THEN 990 : PRINT "*** STARBASE DESTROYED ***" : S4=1 1110 PRINT "WHEN YOU HAVE COMPLETED YOUR MISSION, CAPTAIN," : PRINT "YOU WILL BE RE-ASSIGNED TO THE BETELGEUSE DILITHIUM MINES." : PRINT "DIG?"; : B3=B3-1 : B9=B9-1 : C$="BAD!!" 1120 A$=" " 1130 S$(X+.5,Y+.5)=A$ : G(Q1,Q2)=K3*100+B3*10+S3 : GOTO 1150 1140 PRINT HEX(0A);"TORPEDO MISSED" : PRINT : W9=W9+1 1150 IF D(2)<0 THEN 1160 : PRINT HEX(01); : GOSUB 1640 : PRINT HEX(0A0A0A); : IF K3>0THEN 1160 : PRINT HEX(0A) 1160 GOSUB 1260 : IF E<0THEN 1430 : M=0 : GOTO 370 1170 IF D(7)>=0THEN 1180 : PRINT " SHIELD CONTROL IS NON-OPERATIONAL." : M=0 : GOTO 370 1180 PRINT " ENERGY AVAILABLE =";E+S : INPUT " NUMBER OF UNITS TO SHIELDS",X : IF X<0THEN 1180 : IF X>.8*(E+S)THEN 1180 : E=E+S-X : S=X : M=0 : GOTO 370 1190 IF D(6)>=0THEN 1200 : PRINT " DAMAGE CONTROL REPORT IS NOT AVAILABLE." : M=0 : GOTO 370 1200 PRINT : PRINT " DEVICE CONDITION" : FOR R1=1TO 8 : PRINT TAB(5);D$(R1);TAB(20); : PRINTUSING 1210,D(R1) 1210 %+##.###### 1220 NEXT R1 : PRINT : M=0 : GOTO 370 1230 PRINT " SHORT RANGE SENSORS REPORT NO KLINGONS IN THIS QUADRANT." : PRINT : M=0 : GOTO 370 1240 PRINT HEX(0A);"*** KLINGON DESTROYED ***" : PRINT : FOR J8=1TO 5 : FOR K6=1TO 50 : NEXT K6 : PRINT HEX(07) : NEXT J8 : K3=K3-1 : K9=K9-1 : S$(K(I,1),K(I,2))=" " 1250 G(Q1,Q2)=K3*100+B3*10+S3 : RETURN 1260 IF C$<>"DOCKED"THEN 1270 : SELECT P7 : PRINT HEX(0A);"STARBASE SHIELDS PROTECT THE ENTERPRISE." : SELECT P0 : RETURN 1270 IF S<0THEN 1440 : IF K3<=0THEN 1330 : PRINT : I=1 1280 IF K(I,3)<=0THEN 1320 : IF K3=1THEN 1290 : IF RND(1)>.7THEN 1320 1290 H=INT(1+(K(I,3)/FND(0))*(1.5+RND(1))) : S=S-H : PRINTUSING 1300,H,K(I,1),K(I,2),S 1300 %##### UNIT HIT ON ENTERPRISE FROM SECTOR #, #. (-#### LEFT ) 1310 IF S<0THEN 1440 : FOR A=1 TO 8 : D(A)=D(A)-H/(S+80)*RND(1) : NEXT A 1320 I=I+1 : IF I<=3THEN 1280 : PRINT 1330 RETURN 1340 GOSUB 2160 : FOR A=1 TO 100 : NEXT A : PRINT HEX(0C);"SPOCK HERE, CAPTAIN..." : PRINT "THE ENTERPRISE HAS BECOME THE PREY OF" : PRINT "A 'BLACK HOLE' AT SECTOR";S1;",";S2;HEX(08);"." : PRINT 1350 IF K9=1THEN 1360 : PRINT "THERE ARE STILL";K9;"KLINGONS IN THE GALAXY, CAPTAIN." : GOTO 1370 1360 PRINT "THERE IS STILL ONE KLINGON LEFT IN THE GALAXY, CAPTAIN." 1370 PRINT "THE COMPUTER INDICATES THAT WE CAN LAST ONLY";INT((E+S)/150+2);"ST ARDATES" 1380 PRINT "BEFORE TOTALLY DEPLETING OUR DILITHIUM CRYSTALS." : PRINT : PRINT TAB(20);"SPOCK OUT..." : FOR A=1 TO 1400 : NEXT A : GOTO 80 1390 PRINT HEX(0A0A0A0A0A0A0C0C0C0C); : SELECT PRINT 205,P4 : FOR A=1TO 8 : PRINT TAB(50) : PRINT HEX(07);TAB(5);"THE ENTERPRISE IS DEAD IN SPACE." : NEXT A : SELECT PRINT 005,P0 1400 PRINT : PRINT HEX(0A);"ALL DILITHIUM CRYSTALS HAVE BEEN DEPLETED!" : PRINT "IF YOU SURVIVE ALL IMPENDING ATTACKS," : PRINT "YOU WILL BE DEMOTED TO THE RANK OF ENSIGN ..." : PRINT 1410 IF K3<=0THEN 1460 : GOSUB 1260 : PRINT HEX(0C0C) : GOTO 1410 1420 PRINT : PRINT "IT IS STARDATE";T;HEX(08);"." : PRINT "(CAN'T YOU DO ANYTHING RIGHT?)" : GOTO 1460 1430 PRINT : PRINT HEX(0A0A0C0C); : SELECT PRINT 205,P4 : FOR A=1 TO 5 : PRINT " ****** CRITICAL EMERGENCY! ******" : PRINT HEX(07);" ****** AVAILABLE ENERGY = ";E;"******" : NEXT A : SELECT PRINT 005,P0 : PRINT HEX(0C) : GOTO 1390 1440 PRINT : PRINT HEX(0A0A0A0A0A0A0A0C0C0C0C); 1450 SELECT PRINT 205,P4 : FOR A=1TO 8 : PRINT TAB(50) : PRINT HEX(07);TAB(10);"THE ENTERPRISE HAS BEEN DESTROYED!" : NEXT A : SELECT PRINT 005,P0 : PRINT : PRINT HEX(0A);"THE FEDERATION WILL BE CONQUERED... (YOU BLEW IT, CAPTAIN. ..)" 1460 IF K9=1THEN 1470 : PRINT "THERE ARE STILL";K9;"KLINGON BATTLE CRUISERS." : GOTO 1480 1470 PRINT "THERE IS STILL ONE KLINGON BATTLE CRUISER." 1480 PRINT : PRINT : GOTO 1520 1490 PRINT : PRINT HEX(0A0A0A);TAB(12);"THE LAST KLINGON BATTLE CRUISER" : PRINT TAB(11);"IN THE GALAXY HAS BEEN DESTROYED." : PRINT TAB(12);"THE FEDERATION HAS BEEN SAVED!!!" : PRINT : IF S4>0THEN 1530 : E5=INT((K7/(T-T0)/B9/W9)*650000)/10 1500 PRINT TAB(12); : PRINTUSING 1510,E5 1510 %(YOUR EFFICIENCY RATING =####.#) 1520 PRINT 1530 FOR A=1TO 1000 : NEXT A : IF S4>0THEN 2240 : GOTO 80 1540 I=S1-1 1550 J=S2-1 1560 IF I<1THEN 1570 : IF I>8THEN 1570 : IF J<1THEN 1570 : IF J>8THEN 1570 : IF S$(I,J)=">:<"THEN 1580 : IF S$(I,J)<>" . "THEN 1570 : IF B8$<>"1"THEN 1340 : B8$="0" 1570 J=J+1 : IF J<=S2+1THEN 1560 : I=I+1 : IF I<=S1+1THEN 1550 : D0=0 : GOTO 1600 1580 D0=1 1581 C$="DOCKED" 1582 E=E0 : P=P0 1583 SELECT P7 1584 PRINT "SHIELDS DROPPED FOR DOCKING PURPOSES." 1585 SELECT P0 1586 S=0 1587 FOR A=1TO 8 1588 IF D(A)>.2THEN 1590 1589 D(A)=RND(1)*1.5 1590 NEXT A 1592 GOTO 1630 1600 IF K3>0THEN 1610 1602 IF E<E0*.1THEN 1620 1604 C$="GREEN" 1606 GOTO 1630 1610 C$="RED" 1612 GOTO 1630 1620 C$="YELLOW" 1630 IF D(2)>=0THEN 1640 1632 PRINT : PRINT "SHORT RANGE SENSORS ARE OUT." : PRINT 1634 RETURN 1640 PRINT HEX(0A);" =================================" 1650 FOR I=1TO 8 1651 PRINT TAB(4); 1652 PRINTUSING 60,S$(I,1),S$(I,2),S$(I,3),S$(I,4),S$(I,5),S$(I,6),S$(I,7),S$( I,8); 1653 PRINT " "; 1654 ON IGOSUB 1670,1680,1690,1710,1720,1740,1750,1760 1655 NEXT I 1660 PRINT " =================================" 1662 RETURN 1670 PRINT : RETURN 1680 PRINTUSING 1730,"STARDATE",T : RETURN 1690 PRINT "CONDITION";TAB(59-LEN(C$));C$ : RETURN 1700 %############# #, # 1710 PRINTUSING 1700,"QUADRANT",Q1,Q2 : RETURN 1720 PRINTUSING 1700,"SECTOR",S1,S2 : RETURN 1730 %########## -##### 1740 PRINTUSING 1730,"ENERGY",E : RETURN 1750 PRINTUSING 1730,"TORPEDOES",P : RETURN 1760 PRINTUSING 1730,"SHIELDS",S : RETURN 1770 IF D(8)>=0THEN 1790 1772 PRINT "COMPUTER DISABLED" 1774 M=0 1776 GOTO 370 1780 SELECT PRINT 205,P1 1781 FOR A=1TO 3 1782 PRINT "...WORKING..." 1783 PRINT TAB(50) 1784 NEXT A 1785 SELECT PRINT 005,P 1786 RETURN 1790 GOSUB 1780 1792 P4=1 1800 E=E-2 1802 C0$=" " 1804 PRINT TAB(60);HEX(0D); 1806 INPUT "COMPUTER READY. COMMAND",C0$ 1810 IF C0$=" "THEN 1820 1811 GOSUB 1780 1812 IF C0$="CUM"THEN 1830 1814 IF C0$="STA"THEN 1880 1816 IF C0$="PHO"THEN 1890 1818 IF C0$="OFF"THEN 360 1820 PRINT "SYNTAX ERROR";HEX(0D0C) 1822 GOTO 1800 1830 PRINT " COMPUTER RECORD OF GALAXY : QUADRANT";Q1;",";Q2 1832 PRINT " 1. 2. 3. 4. 5. 6. 7. 8." 1840 PRINT " ----- ----- ----- ----- ----- ----- ----- -----" 1842 FOR I=1TO 8 1850 % #. ### ### ### ### ### ### ### ### 1860 PRINTUSING 1850,I,Z$(I,1),Z$(I,2),Z$(I,3),Z$(I,4),Z$(I,5),Z$(I,6),Z$(I,7) ,Z$(I,8) 1862 NEXT I 1870 PRINT " ----- ----- ----- ----- ----- ----- ----- -----" 1872 M=0 1874 GOTO 370 1880 PRINT " STATUS REPORT" 1881 PRINT " NUMBER OF KLINGONS LEFT =";K9 1883 V5=(T0+T9)-T 1884 PRINT " NUMBER OF STARDATES LEFT =";V5 1886 PRINT " NUMBER OF STARBASES LEFT =";B9 1888 GOTO 1190 1890 PRINT 1892 H8=0 1894 IF D(2)>=0THEN 1910 1900 PRINT "SHORT RANGE SENSORS ARE DAMAGED." 1902 PRINT "INSUFFICIENT DATA FOR TRAJECTORY ANALYSIS." 1904 PRINT 1906 GOTO 360 1910 IF K3<=0THEN 1230 1911 FOR I=1TO 3 1912 IF K(I,3)<=0THEN 2030 1913 C1=S1 : A=S2 1914 W1=K(I,1) : X=K(I,2) : X=X-A : A=C1-W1 1915 IF X<0THEN 1960 1916 IF A<0THEN 1990 1917 IF X>0THEN 1920 1918 IF A=0THEN 1970 1920 C1=1 1930 IF ABS(A)<=ABS(X)THEN 1950 1940 V5=FNR(C1+((ABS(A)-ABS(X))+ABS(A))/ABS(A)) 1942 PRINT TAB(6);"DIRECTION =";V5 1944 GOTO 2020 1950 PRINT TAB(6);"DIRECTION =";FNR(C1+ABS(A)/ABS(X)) 1952 GOTO 2020 1960 IF A>0THEN 1980 1962 IF X=0THEN 1990 1970 C1=5 1972 GOTO 1930 1980 C1=3 1982 GOTO 2000 1990 C1=7 2000 IF ABS(A)>=ABS(X)THEN 2010 2002 PRINT TAB(6);"DIRECTION =";FNR(C1+((ABS(X)-ABS(A))+ABS(X))/ABS(X)) 2004 GOTO 2020 2010 PRINT TAB(6);"DIRECTION =";FNR(C1+ABS(X)/ABS(A)) 2020 PRINT TAB(6);" DISTANCE =";FNR(SQR(X*X+A*A)) 2022 PRINT 2024 IF H8=1THEN 360 2030 NEXT I 2032 GOTO 360 2040 R1=INT(RND(1)*8+1) 2042 R2=INT(RND(1)*8+1) 2044 IF S$(R1,R2)<>" "THEN 2040 2046 RETURN 2050 FOR A=1TO 500 : NEXT A 2052 IF K9>K3THEN 2090 2054 IF E+S>800THEN 2140 2056 IF E+S<200THEN 2060 2058 IF (T0+T9)-T>1THEN 2140 2060 SELECT PRINT 005(64),P7 2062 PRINT HEX(0A0A);"FIVE SECONDS TO SELF-DESTRUCT." 2064 PRINT "FOUR SECONDS TO SELF-DESTRUCT." 2066 PRINT "THREE SECONDS TO SELF-DESTRUCT." 2068 PRINT "TWO SECONDS TO SELF-DESTRUCT." 2070 PRINT "ONE SECOND TO SELF-DESTRUCT." 2072 PRINT 2074 SELECT P 2076 X=1 2078 FOR A=1TO 64 2080 X=X*2 2081 PRINT HEX(07);X, 2082 NEXT A 2084 PRINT HEX(030A0A0A0A0A0A);TAB(29);"POW!" 2085 FOR A=1TO 500 : NEXT A 2086 PRINT HEX(03) 2087 PRINT HEX(030A0A0A0A0A0A);"YOU ARE A HERO, CAPTAIN..." 2088 GOTO 1530 2090 IF S0>0THEN 2110 2092 PRINT HEX(0A0A);"SPOCK HERE, CAPTAIN..." 2094 PRINT 2096 PRINT "SINCE NOT ALL OF THE ENEMY ARE WITHIN CRITICAL RANGE," 2100 PRINT "IT WOULD BE HIGHLY ILLOGICAL TO SELF-DESTRUCT AT THIS TIME." 2102 GOTO 2150 2110 PRINT HEX(0A0A);"MCCOY HERE, CAPTAIN..." 2112 PRINT 2114 PRINT "MR. SPOCK INFORMS ME THAT THIS IS THE SECOND TIME YOU HAVE" 2120 PRINT "ATTEMPTED TO DESTROY THE ENTERPRISE. AS MUCH AS IT" 2122 PRINT "DISTRESSES ME, SIR, I AM NOW FORCED TO RELIEVE YOU OF YOUR DUTY" 2130 PRINT "FOR REASONS OF QUESTIONABLE MENTAL STABILITY." 2132 PRINT 2134 PRINT 2136 FOR A=1TO 1000 : NEXT A 2138 S4=1 2139 GOTO 1530 2140 IF S0>0THEN 2110 2142 PRINT HEX(0A0A0A0A);"SPOCK HERE, CAPTAIN..." 2144 PRINT 2146 PRINT "SINCE THERE IS NO COMPELLING REASON FOR SELF-DESTRUCTION," 2150 PRINT "I RESPECTFULLY SUBMIT THAT YOU CANCEL THAT LAST ORDER..." 2152 PRINT 2154 S0=1 2156 GOTO 360 2160 PRINT HEX(030A0A0A0A0A0A0A); 2162 SELECT PRINT 205,P2 2170 FOR A=1TO 9 2171 PRINT TAB(24);HEX(07);"W A R N I N G !" 2172 PRINT TAB(60) 2173 NEXT A 2174 SELECT PRINT 005,P0 2175 PRINT HEX(030A0A0A0A0A0A0A) 2176 FOR A=1TO 100 : NEXT A 2178 RETURN 2180 GOSUB 2160 2182 PRINT "SPOCK HERE, CAPTAIN..." 2184 PRINT 2186 PRINT "IT SEEMS YOU HAVE ATTEMPTED TO LEAVE THE GALAXY..." 2190 PRINT "THE ENTERPRISE HAS ENCOUNTERED A DIMENSIONAL INTERPHASE." 2192 PRINT "IF WE SURVIVE, IT IS NOT CLEAR WHERE IN THE GALAXY WE SHALL" 2194 PRINT "FIND OURSELVES. SPOCK OUT." 2196 W9=W9+5 2198 GOTO 2220 2200 GOSUB 2160 2202 PRINT "SPOCK HERE, CAPTAIN..." 2204 PRINT 2206 PRINT "THE ENTERPRISE HAS ENCOUNTERED A VIOLENT SPACE STORM." 2210 PRINT "IT IS NOT YET CERTAIN WHERE WE SHALL FIND OURSELVES," 2212 PRINT "WHEN AND IF WE SURVIVE. SPOCK OUT." 2220 FOR A=1TO 8 2222 D(A)=D(A)-RND(1) 2224 NEXT A 2226 FOR A=1TO 900 : NEXT A 2230 Q1=INT(8*RND(1)+1) 2232 Q2=INT(8*RND(1)+1) 2234 GOTO 260 2240 PRINT HEX(030A0A0A0A0A0A);"WE'VE GOT A SHUTTLE CRAFT WAITING TO TAKE YOU AWAY" 2242 PRINT "TO THE BETELGEUSE DILITHIUM MINES. WE'LL ALL MISS YOU, SIR ..." 2244 END 2250 DEFFN'0"SHORT RANGE SENSOR SCAN " 2260 DEFFN'1"LONG RANGE SENSOR SCAN " 2270 DEFFN'2"SHIELDS " 2280 DEFFN'3"STATUS REPORT " 2290 DEFFN'4"WARP DRIVE " 2300 DEFFN'5"PHASERS " 2310 DEFFN'6"PHOTON TORPEDOES " 2320 DEFFN'7"COMPUTER " 2330 DEFFN'8"CUMULATIVE GALACTIC RECORD " 2340 DEFFN'9"SELF-DESTRUCT " 2350 DEFFN'10" " 2360 DEFFN'11" " 2370 DEFFN'12" " 2380 DEFFN'13" " 2390 DEFFN'14" " 2400 DEFFN'15" " 2410 REM $