image of READY prompt

Wang2200.org

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 $