-REM Extracted from HP tape image 16-Nov-2003 by Pete Turnbull
-
-1 REM **** HP BASIC PROGRAM LIBRARY ******************************
-2 REM
-3 REM STTR1: STAR TREK
-4 REM
-5 REM 36243 REV B -- 10/73
-6 REM
-7 REM **** CONTRIBUTED PROGRAM ***********************************
-100 REM *****************************************************************
-110 REM *** ***
-120 REM *** STAR TREK: BY MIKE MAYFIELD, CENTERLINE ENGINEERING ***
-130 REM *** ***
-140 REM *** TOTAL INTERACTION GAME - ORIG. 20 OCT 1972
-150 REM *** ***
-160 REM *****************************************************************
-170 GOSUB 5460
-180 PRINT " STAR TREK "
-190 PRINT "DO YOU WANT INSTRUCTIONS (THEY'RE LONG!)";
-200 INPUT A$
-210 IF A$ <> "YES" THEN 230
-220 GOSUB 5820
-230 REM ***** PROGRAM STARTS HERE *****
-240 Z$=" "
-250 GOSUB 5460
-260 DIM G[8,8],C[9,2],K[3,3],N[3],Z[8,8]
-270 DIM C$[6],D$[72],E$[24],A$[3],Q$[72],R$[72],S$[48]
-280 DIM Z$[72]
-290 T0=T=INT(RND(1)*20+20)*100
-300 T9=30
-310 D0=0
-320 E0=E=3000
-330 P0=P=10
-340 S9=200
-350 S=H8=0
-360 DEF FND(D)=SQR((K[I,1]-S1)^2+(K[I,2]-S2)^2)
-370 Q1=INT(RND(1)*8+1)
-380 Q2=INT(RND(1)*8+1)
-390 S1=INT(RND(1)*8+1)
-400 S2=INT(RND(1)*8+1)
-410 T7=TIM(0)+60*TIM(1)
-420 C[2,1]=C[3,1]=C[4,1]=C[4,2]=C[5,2]=C[6,2]=-1
-430 C[1,1]=C[3,2]=C[5,1]=C[7,2]=C[9,1]=0
-440 C[1,2]=C[2,2]=C[6,1]=C[7,1]=C[8,1]=C[8,2]=C[9,2]=1
-450 MAT D=ZER
-460 D$="WARP ENGINESS.R. SENSORSL.R. SENSORSPHASER CNTRL"
-470 D$[49]="PHOTON TUBESDAMAGE CNTRL"
-480 E$="SHIELD CNTRLCOMPUTER"
-490 B9=K9=0
-500 FOR I=1 TO 8
-510 FOR J=1 TO 8
-520 R1=RND(1)
-530 IF R1>.98 THEN 580
-540 IF R1>.95 THEN 610
-550 IF R1>.8 THEN 640
-560 K3=0
-570 GOTO 660
-580 K3=3
-590 K9=K9+3
-600 GOTO 660
-610 K3=2
-620 K9=K9+2
-630 GOTO 660
-640 K3=1
-650 K9=K9+1
-660 R1=RND(1)
-670 IF R1>.96 THEN 700
-680 B3=0
-690 GOTO 720
-700 B3=1
-710 B9=B9+1
-720 S3=INT(RND(1)*8+1)
-730 G[I,J]=K3*100+B3*10+S3
-740 Z[I,J]=0
-750 NEXT J
-760 NEXT I
-770 K7=K9
-775 IF B9 <= 0 OR K9 <= 0 THEN 490
-780 PRINT "YOU MUST DESTROY"K9;" KLINGONS IN"T9;" STARDATES WITH"B9;" STARBASES"
-810 K3=B3=S3=0
-820 IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 920
-830 X=G[Q1,Q2]*.01
-840 K3=INT(X)
-850 B3=INT((X-K3)*10)
-860 S3=G[Q1,Q2]-INT(G[Q1,Q2]*.1)*10
-870 IF K3=0 THEN 910
-880 IF S>200 THEN 910
-890 PRINT "COMBAT AREA CONDITION RED"
-900 PRINT " SHIELDS DANGEROUSLY LOW"
-910 MAT K=ZER
-920 FOR I=1 TO 3
-930 K[I,3]=0
-940 NEXT I
-950 Q$=Z$
-960 R$=Z$
-970 S$=Z$[1,48]
-980 A$="<*>"
-990 Z1=S1
-1000 Z2=S2
-1010 GOSUB 5510
-1020 FOR I=1 TO K3
-1030 GOSUB 5380
-1040 A$="+++"
-1050 Z1=R1
-1060 Z2=R2
-1070 GOSUB 5510
-1080 K[I,1]=R1
-1090 K[I,2]=R2
-1100 K[I,3]=S9
-1110 NEXT I
-1120 FOR I=1 TO B3
-1130 GOSUB 5380
-1140 A$=">!<"
-1150 Z1=R1
-1160 Z2=R2
-1170 GOSUB 5510
-1180 NEXT I
-1190 FOR I=1 TO S3
-1200 GOSUB 5380
-1210 A$=" * "
-1220 Z1=R1
-1230 Z2=R2
-1240 GOSUB 5510
-1250 NEXT I
-1260 GOSUB 4120
-1270 PRINT "COMMAND:";
-1280 INPUT A
-1290 GOTO A+1 OF 1410,1260,2330,2530,2800,3460,3560,4630
-1300 PRINT
-1310 PRINT " 0 = SET COURSE"
-1320 PRINT " 1 = SHORT RANGE SENSOR SCAN"
-1330 PRINT " 2 = LONG RANGE SENSOR SCAN"
-1340 PRINT " 3 = FIRE PHASERS"
-1350 PRINT " 4 = FIRE PHOTON TORPEDOES"
-1360 PRINT " 5 = SHIELD CONTROL"
-1370 PRINT " 6 = DAMAGE CONTROL REPORT"
-1380 PRINT " 7 = CALL ON LIBRARY COMPUTER"
-1390 PRINT
-1400 GOTO 1270
-1410 PRINT "COURSE (1-9):";
-1420 INPUT C1
-1430 IF C1=0 THEN 1270
-1440 IF C1<1 OR C1 >= 9 THEN 1410
-1450 PRINT "WARP FACTOR (0-8):";
-1460 INPUT W1
-1470 IF W1<0 OR W1>8 THEN 1410
-1480 IF D[1] >= 0 OR W1 <= .2 THEN 1510
-1490 PRINT "WARP ENGINES ARE DAMAGED, MAXIMUM SPEED = WARP .2"
-1500 GOTO 1410
-1510 IF K3 <= 0 THEN 1560
-1520 GOSUB 3790
-1530 IF K3 <= 0 THEN 1560
-1540 IF S<0 THEN 4000
-1550 GOTO 1610
-1560 IF E>0 THEN 1610
-1570 IF S<1 THEN 3920
-1580 PRINT "YOU HAVE"E" UNITS OF ENERGY"
-1590 PRINT "SUGGEST YOU GET SOME FROM YOUR SHIELDS WHICH HAVE"S" UNITS LEFT"
-1600 GOTO 1270
-1610 FOR I=1 TO 8
-1620 IF D[I] >= 0 THEN 1640
-1630 D[I]=D[I]+1
-1640 NEXT I
-1650 IF RND(1)>.2 THEN 1810
-1660 R1=INT(RND(1)*8+1)
-1670 IF RND(1) >= .5 THEN 1750
-1680 D[R1]=D[R1]-(RND(1)*5+1)
-1690 PRINT
-1700 PRINT "DAMAGE CONTROL REPORT:";
-1710 GOSUB 5610
-1720 PRINT " DAMAGED"
-1730 PRINT
-1740 GOTO 1810
-1750 D[R1]=D[R1]+(RND(1)*5+1)
-1760 PRINT
-1770 PRINT "DAMAGE CONTROL REPORT:";
-1780 GOSUB 5610
-1790 PRINT " STATE OF REPAIR IMPROVED"
-1800 PRINT
-1810 N=INT(W1*8)
-1820 A$=" "
-1830 Z1=S1
-1840 Z2=S2
-1850 GOSUB 5510
-1870 X=S1
-1880 Y=S2
-1885 C2=INT(C1)
-1890 X1=C[C2,1]+(C[C2+1,1]-C[C2,1])*(C1-C2)
-1900 X2=C[C2,2]+(C[C2+1,2]-C[C2,2])*(C1-C2)
-1910 FOR I=1 TO N
-1920 S1=S1+X1
-1930 S2=S2+X2
-1940 IF S1<.5 OR S1 >= 8.5 OR S2<.5 OR S2 >= 8.5 THEN 2170
-1950 A$=" "
-1960 Z1=S1
-1970 Z2=S2
-1980 GOSUB 5680
-1990 IF Z3 <> 0 THEN 2070
-2030 PRINT USING 5370;S1,S2
-2040 S1=S1-X1
-2050 S2=S2-X2
-2060 GOTO 2080
-2070 NEXT I
-2080 A$="<*>"
-2083 S1=INT(S1+.5)
-2086 S2=INT(S2+.5)
-2090 Z1=S1
-2100 Z2=S2
-2110 GOSUB 5510
-2120 E=E-N+5
-2130 IF W1<1 THEN 2150
-2140 T=T+1
-2150 IF T>T0+T9 THEN 3970
-2160 GOTO 1260
-2170 X=Q1*8+X+X1*N
-2180 Y=Q2*8+Y+X2*N
-2190 Q1=INT(X/8)
-2200 Q2=INT(Y/8)
-2210 S1=INT(X-Q1*8+.5)
-2220 S2=INT(Y-Q2*8+.5)
-2230 IF S1 <> 0 THEN 2260
-2240 Q1=Q1-1
-2250 S1=8
-2260 IF S2 <> 0 THEN 2290
-2270 Q2=Q2-1
-2280 S2=8
-2290 T=T+1
-2300 E=E-N+5
-2310 IF T>T0+T9 THEN 3970
-2320 GOTO 810
-2330 IF D[3] >= 0 THEN 2370
-2340 PRINT "LONG RANGE SENSORS ARE INOPERABLE"
-2350 IMAGE "LONG RANGE SENSOR SCAN FOR QUADRANT",D,",",D
-2360 GOTO 1270
-2370 PRINT USING 2350;Q1,Q2
-2380 PRINT USING 2520
-2390 FOR I=Q1-1 TO Q1+1
-2400 MAT N=ZER
-2410 FOR J=Q2-1 TO Q2+1
-2420 IF I<1 OR I>8 OR J<1 OR J>8 THEN 2460
-2430 N[J-Q2+2]=G[I,J]
-2440 IF D[7]<0 THEN 2460
-2450 Z[I,J]=G[I,J]
-2460 NEXT J
-2470 PRINT USING 2510;N[1],N[2],N[3]
-2480 PRINT USING 2520
-2490 NEXT I
-2500 GOTO 1270
-2510 IMAGE ": ",3(3D," :")
-2520 IMAGE "-----------------"
-2530 IF K3 <= 0 THEN 3670
-2540 IF D[4] >= 0 THEN 2570
-2550 PRINT "PHASER CONTROL IS DISABLED"
-2560 GOTO 1270
-2570 IF D[7] >= 0 THEN 2590
-2580 PRINT " COMPUTER FAILURE HAMPERS ACCURACY"
-2590 PRINT "PHASERS LOCKED ON TARGET. ENERGY AVAILABLE="E
-2600 PRINT "NUMBER OF UNITS TO FIRE:";
-2610 INPUT X
-2620 IF X <= 0 THEN 1270
-2630 IF E-X<0 THEN 2570
-2640 E=E-X
-2650 GOSUB 3790
-2660 IF D[7] >= 0 THEN 2680
-2670 X=X*RND(1)
-2680 FOR I=1 TO 3
-2690 IF K[I,3] <= 0 THEN 2770
-2700 H=(X/K3/FND(0))*(2*RND(1))
-2710 K[I,3]=K[I,3]-H
-2720 PRINT USING 2730;H,K[I,1],K[I,2],K[I,3]
-2730 IMAGE 4D," UNIT HIT ON KLINGON AT SECTOR ",D,",",D," (",3D," LEFT)"
-2740 IF K[I,3]>0 THEN 2770
-2750 GOSUB 3690
-2760 IF K9 <= 0 THEN 4040
-2770 NEXT I
-2780 IF E<0 THEN 4000
-2790 GOTO 1270
-2800 IF D[5] >= 0 THEN 2830
-2810 PRINT "PHOTON TUBES ARE NOT OPERATIONAL"
-2820 GOTO 1270
-2830 IF P>0 THEN 2860
-2840 PRINT "ALL PHOTON TORPEDOES EXPENDED"
-2850 GOTO 1270
-2860 PRINT "TORPEDO COURSE (1-9):";
-2870 INPUT C1
-2880 IF C1=0 THEN 1270
-2890 IF C1<1 OR C1 >= 9 THEN 2860
-2895 C2=INT(C1)
-2900 X1=C[C2,1]+(C[C2+1,1]-C[C2,1])*(C1-C2)
-2910 X2=C[C2,2]+(C[C2+1,2]-C[C2,2])*(C1-C2)
-2920 X=S1
-2930 Y=S2
-2940 P=P-1
-2950 PRINT "TORPEDO TRACK:"
-2960 X=X+X1
-2970 Y=Y+X2
-2980 IF X<.5 OR X >= 8.5 OR Y<.5 OR Y >= 8.5 THEN 3420
-2990 PRINT USING 3000;X,Y
-3000 IMAGE 15X,D,",",D
-3010 A$=" "
-3020 Z1=X
-3030 Z2=Y
-3040 GOSUB 5680
-3050 IF Z3=0 THEN 3070
-3060 GOTO 2960
-3070 A$="+++"
-3080 Z1=X
-3090 Z2=Y
-3100 GOSUB 5680
-3110 IF Z3=0 THEN 3220
-3120 PRINT "*** KLINGON DESTROYED ***"
-3130 K3=K3-1
-3140 K9=K9-1
-3150 IF K9 <= 0 THEN 4040
-3160 FOR I=1 TO 3
-3170 IF INT(X+.5) <> K[I,1] THEN 3190
-3180 IF INT(Y+.5)=K[I,2] THEN 3200
-3190 NEXT I
-3200 K[I,3]=0
-3210 GOTO 3360
-3220 A$=" * "
-3230 Z1=X
-3240 Z2=Y
-3250 GOSUB 5680
-3260 IF Z3=0 THEN 3290
-3270 PRINT "YOU CAN'T DESTROY STARS SILLY"
-3280 GOTO 3420
-3290 A$=">!<"
-3300 Z1=X
-3310 Z2=Y
-3320 GOSUB 5680
-3330 IF Z3=0 THEN 2960
-3340 PRINT "*** STAR BASE DESTROYED *** .......CONGRATULATIONS"
-3350 B3=B3-1
-3360 A$=" "
-3370 Z1=INT(X+.5)
-3380 Z2=INT(Y+.5)
-3390 GOSUB 5510
-3400 G[Q1,Q2]=K3*100+B3*10+S3
-3410 GOTO 3430
-3420 PRINT "TORPEDO MISSED"
-3430 GOSUB 3790
-3440 IF E<0 THEN 4000
-3450 GOTO 1270
-3460 IF D[7] >= 0 THEN 3490
-3470 PRINT "SHIELD CONTROL IS NON-OPERATIONAL"
-3480 GOTO 1270
-3490 PRINT "ENERGY AVAILABLE ="E+S" NUMBER OF UNITS TO SHIELDS:";
-3500 INPUT X
-3510 IF X <= 0 THEN 1270
-3520 IF E+S-X<0 THEN 3490
-3530 E=E+S-X
-3540 S=X
-3550 GOTO 1270
-3560 IF D[6] >= 0 THEN 3590
-3570 PRINT "DAMAGE CONTROL REPORT IS NOT AVAILABLE"
-3580 GOTO 1270
-3590 PRINT
-3600 PRINT "DEVICE STATE OF REPAIR"
-3610 FOR R1=1 TO 8
-3620 GOSUB 5610
-3630 PRINT "",D[R1]
-3640 NEXT R1
-3650 PRINT
-3660 GOTO 1270
-3670 PRINT "SHORT RANGE SENSORS REPORT NO KLINGONS IN THIS QUADRANT"
-3680 GOTO 1270
-3690 PRINT USING 3700;K[I,1],K[I,2]
-3700 IMAGE "KLINGON AT SECTOR ",D,",",D," DESTROYED ****"
-3710 K3=K3-1
-3720 K9=K9-1
-3730 A$=" "
-3740 Z1=K[I,1]
-3750 Z2=K[I,2]
-3760 GOSUB 5510
-3770 G[Q1,Q2]=K3*100+B3*10+S3
-3780 RETURN
-3790 IF C$ <> "DOCKED" THEN 3820
-3800 PRINT "STAR BASE SHIELDS PROTECT THE ENTERPRISE"
-3810 RETURN
-3820 IF K3 <= 0 THEN 3910
-3830 FOR I=1 TO 3
-3840 IF K[I,3] <= 0 THEN 3900
-3850 H=(K[I,3]/FND(0))*(2*RND(1))
-3860 S=S-H
-3870 PRINT USING 3880;H,K[I,1],K[I,2],S
-3880 IMAGE 4D," UNIT HIT ON ENTERPRISE AT SECTOR ",D,",",D," (",4D," LEFT)"
-3890 IF S<0 THEN 4000
-3900 NEXT I
-3910 RETURN
-3920 PRINT "THE ENTERPRISE IS DEAD IN SPACE. IF YOU SURVIVE ALL IMPENDING"
-3930 PRINT "ATTACK YOU WILL BE DEMOTED TO THE RANK OF PRIVATE"
-3940 IF K3 <= 0 THEN 4020
-3950 GOSUB 3790
-3960 GOTO 3940
-3970 PRINT
-3980 PRINT "IT IS STARDATE"T
-3990 GOTO 4020
-4000 PRINT
-4010 PRINT "THE ENTERPRISE HAS BEEN DESTROYED. THE FEDERATION WILL BE CONQUERED"
-4020 PRINT "THERE ARE STILL"K9" KLINGON BATTLE CRUISERS"
-4030 GOTO 230
-4040 PRINT
-4050 PRINT "THE LAST KLINGON BATTLE CRUISER IN THE GALAXY HAS BEEN DESTROYED"
-4060 PRINT "THE FEDERATION HAS BEEN SAVED !!!"
-4070 PRINT
-4080 PRINT "YOUR EFFICIENCY RATING ="((K7/(T-T0))*1000)
-4090 T1=TIM(0)+TIM(1)*60
-4100 PRINT "YOUR ACTUAL TIME OF MISSION ="INT((((T1-T7)*.4)-T7)*100)" MINUTES"
-4110 GOTO 230
-4120 FOR I=S1-1 TO S1+1
-4130 FOR J=S2-1 TO S2+1
-4140 IF I<1 OR I>8 OR J<1 OR J>8 THEN 4200
-4150 A$=">!<"
-4160 Z1=I
-4170 Z2=J
-4180 GOSUB 5680
-4190 IF Z3=1 THEN 4240
-4200 NEXT J
-4210 NEXT I
-4220 D0=0
-4230 GOTO 4310
-4240 D0=1
-4250 C$="DOCKED"
-4260 E=3000
-4270 P=10
-4280 PRINT "SHIELDS DROPPED FOR DOCKING PURPOSES"
-4290 S=0
-4300 GOTO 4380
-4310 IF K3>0 THEN 4350
-4320 IF E<E0*.1 THEN 4370
-4330 C$="GREEN"
-4340 GOTO 4380
-4350 C$="RED"
-4360 GOTO 4380
-4370 C$="YELLOW"
-4380 IF D[2] >= 0 THEN 4430
-4390 PRINT
-4400 PRINT "*** SHORT RANGE SENSORS ARE OUT ***"
-4410 PRINT
-4420 GOTO 4530
-4430 PRINT USING 4540
-4440 PRINT USING 4550;Q$[1,3],Q$[4,6],Q$[7,9],Q$[10,12],Q$[13,15],Q$[16,18],Q$[19,21],Q$[22,24]
-4450 PRINT USING 4560;Q$[25,27],Q$[28,30],Q$[31,33],Q$[34,36],Q$[37,39],Q$[40,42],Q$[43,45],Q$[46,48],T
-4460 PRINT USING 4570;Q$[49,51],Q$[52,54],Q$[55,57],Q$[58,60],Q$[61,63],Q$[64,66],Q$[67,69],Q$[70,72],C$
-4470 PRINT USING 4580;R$[1,3],R$[4,6],R$[7,9],R$[10,12],R$[13,15],R$[16,18],R$[19,21],R$[22,24],Q1,Q2
-4480 PRINT USING 4590;R$[25,27],R$[28,30],R$[31,33],R$[34,36],R$[37,39],R$[40,42],R$[43,45],R$[46,48],S1,S2
-4490 PRINT USING 4600;R$[49,51],R$[52,54],R$[55,57],R$[58,60],R$[61,63],R$[64,66],R$[67,69],R$[70,72],E
-4500 PRINT USING 4610;S$[1,3],S$[4,6],S$[7,9],S$[10,12],S$[13,15],S$[16,18],S$[19,21],S$[22,24],P
-4510 PRINT USING 4620;S$[25,27],S$[28,30],S$[31,33],S$[34,36],S$[37,39],S$[40,42],S$[43,45],S$[46,48],S
-4520 PRINT USING 4540
-4530 RETURN
-4540 IMAGE "---------------------------------"
-4550 IMAGE 8(X,3A)
-4560 IMAGE 8(X,3A),8X,"STARDATE",8X,5D
-4570 IMAGE 8(X,3A),8X,"CONDITION",8X,6A
-4580 IMAGE 8(X,3A),8X,"QUADRANT",9X,D,",",D
-4590 IMAGE 8(X,3A),8X,"SECTOR",11X,D,",",D
-4600 IMAGE 8(X,3A),8X,"ENERGY",9X,6D
-4610 IMAGE 8(X,3A),8X,"PHOTON TORPEDOES",3D
-4620 IMAGE 8(X,3A),8X,"SHIELDS",8X,6D
-4630 IF D[8] >= 0 THEN 4660
-4640 PRINT "COMPUTER DISABLED"
-4650 GOTO 1270
-4660 PRINT "COMPUTER ACTIVE AND AWAITING COMMAND";
-4670 INPUT A
-4680 GOTO A+1 OF 4740,4830,4880
-4690 PRINT "FUNCTIONS AVAILABLE FROM COMPUTER"
-4700 PRINT " 0 = CUMULATIVE GALACTIC RECORD"
-4710 PRINT " 1 = STATUS REPORT"
-4720 PRINT " 2 = PHOTON TORPEDO DATA"
-4730 GOTO 4660
-4740 PRINT USING 4750;Q1,Q2
-4750 IMAGE "COMPUTER RECORD OF GALAXY FOR QUADRANT ",D,",",D
-4760 PRINT USING 5330
-4770 PRINT USING 5360
-4780 FOR I=1 TO 8
-4790 PRINT USING 5350;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]
-4800 PRINT USING 5360
-4810 NEXT I
-4820 GOTO 1270
-4830 PRINT "\012 STATUS REPORT\012"
-4840 PRINT "NUMBER OF KLINGONS LEFT ="K9
-4850 PRINT "NUMBER OF STARDATES LEFT ="(T0+T9)-T
-4860 PRINT "NUMBER OF STARBASES LEFT ="B9
-4870 GOTO 3560
-4880 PRINT
-4890 H8=0
-4900 FOR I=1 TO 3
-4910 IF K[I,3] <= 0 THEN 5260
-4920 C1=S1
-4930 A=S2
-4940 W1=K[I,1]
-4950 X=K[I,2]
-4960 GOTO 5010
-4970 PRINT USING 4980;Q1,Q2,S1,S2
-4980 IMAGE "YOU ARE AT QUADRANT ( ",D,",",D," ) SECTOR ( ",D,",",D," )"
-4990 PRINT "SHIP'S & TARGET'S COORDINATES ARE";
-5000 INPUT C1,A,W1,X
-5010 X=X-A
-5020 A=C1-W1
-5030 IF X<0 THEN 5130
-5040 IF A<0 THEN 5190
-5050 IF X>0 THEN 5070
-5060 IF A=0 THEN 5150
-5070 C1=1
-5080 IF ABS(A) <= ABS(X) THEN 5110
-5090 PRINT "DIRECTION ="C1+(((ABS(A)-ABS(X))+ABS(A))/ABS(A))
-5100 GOTO 5240
-5110 PRINT "DIRECTION ="C1+(ABS(A)/ABS(X))
-5120 GOTO 5240
-5130 IF A>0 THEN 5170
-5140 IF X=0 THEN 5190
-5150 C1=5
-5160 GOTO 5080
-5170 C1=3
-5180 GOTO 5200
-5190 C1=7
-5200 IF ABS(A) >= ABS(X) THEN 5230
-5210 PRINT "DIRECTION ="C1+(((ABS(X)-ABS(A))+ABS(X))/ABS(X))
-5220 GOTO 5240
-5230 PRINT "DIRECTION ="C1+(ABS(X)/ABS(A))
-5240 PRINT "DISTANCE ="(SQR(X^2+A^2))
-5250 IF H8=1 THEN 5320
-5260 NEXT I
-5270 H8=0
-5280 PRINT "DO YOU WANT TO USE THE CALCULATOR";
-5290 INPUT A$
-5300 IF A$="YES" THEN 4970
-5310 IF A$ <> "NO" THEN 5280
-5320 GOTO 1270
-5330 IMAGE " 1 2 3 4 5 6 7 8"
-5340 IMAGE "---------------------------------------------------"
-5350 IMAGE D,8(3X,3D)
-5360 IMAGE " ----- ----- ----- ----- ----- ----- ----- -----"
-5370 IMAGE " WARP ENGINES SHUTDOWN AT SECTOR ",D,",",D," DUE TO BAD NAVIGATION"
-5380 R1=INT(RND(1)*8+1)
-5390 R2=INT(RND(1)*8+1)
-5400 A$=" "
-5410 Z1=R1
-5420 Z2=R2
-5430 GOSUB 5680
-5440 IF Z3=0 THEN 5380
-5450 RETURN
-5460 FOR I=1 TO 11
-5470 PRINT
-5480 NEXT I
-5490 PRINT
-5500 RETURN
-5510 REM ****** INSERTION IN STRING ARRAY FOR QUADRANT ******
-5520 S8=Z1*24+Z2*3-26
-5530 IF S8>72 THEN 5560
-5540 Q$[S8,S8+2]=A$
-5550 GOTO 5600
-5560 IF S8>144 THEN 5590
-5570 R$[S8-72,S8-70]=A$
-5580 GOTO 5600
-5590 S$[S8-144,S8-142]=A$
-5600 RETURN
-5610 REM **** PRINTS DEVICE NAME FROM ARRAY *****
-5620 S8=R1*12-11
-5630 IF S8>72 THEN 5660
-5640 PRINT D$[S8,S8+11];
-5650 GOTO 5670
-5660 PRINT E$[S8-72,S8-61];
-5670 RETURN
-5680 REM ******* STRING COMPARISON IN QUADRANT ARRAY **********
-5683 Z1=INT(Z1+.5)
-5686 Z2=INT(Z2+.5)
-5690 S8=Z1*24+Z2*3-26
-5700 Z3=0
-5710 IF S8>72 THEN 5750
-5720 IF Q$[S8,S8+2] <> A$ THEN 5810
-5730 Z3=1
-5740 GOTO 5810
-5750 IF S8>144 THEN 5790
-5760 IF R$[S8-72,S8-70] <> A$ THEN 5810
-5770 Z3=1
-5780 GOTO 5810
-5790 IF S$[S8-144,S8-142] <> A$ THEN 5810
-5800 Z3=1
-5810 RETURN
-5820 PRINT " INSTRUCTIONS:"
-5830 PRINT "<*> = ENTERPRISE"
-5840 PRINT "+++ = KLINGON"
-5850 PRINT ">!< = STARBASE"
-5860 PRINT " * = STAR"
-5870 PRINT "COMMAND 0 = WARP ENGINE CONTROL"
-5880 PRINT " 'COURSE' IS IN A CIRCULAR NUMERICAL 4 3 2"
-5890 PRINT " VECTOR ARRANGEMENT AS SHOWN. \ ^ /"
-5900 PRINT " INTERGER AND REAL VALUES MAY BE \^/"
-5910 PRINT " USED. THEREFORE COURSE 1.5 IS 5 ----- 1"
-5920 PRINT " HALF WAY BETWEEN 1 AND 2. /^\"
-5930 PRINT " / ^ \"
-5940 PRINT " A VECTOR OF 9 IS UNDEFINED, BUT 6 7 8"
-5950 PRINT " VALUES MAY APPROACH 9."
-5960 PRINT " COURSE"
-5970 PRINT " ONE 'WARP FACTOR' IS THE SIZE OF"
-5980 PRINT " ONE QUADRANT. THEREFORE TO GET"
-5990 PRINT " FROM QUADRANT 6,5 TO 5,5 YOU WOULD"
-6000 PRINT " USE COURSE 3, WARP FACTOR 1"
-6010 PRINT "COMMAND 1 = SHORT RANGE SENSOR SCAN"
-6020 PRINT " PRINTS THE QUADRANT YOU ARE CURRENTLY IN, INCLUDING"
-6030 PRINT " STARS, KLINGONS, STARBASES, AND THE ENTERPRISE; ALONG"
-6040 PRINT " WITH OTHER PERTINATE INFORMATION."
-6050 PRINT "COMMAND 2 = LONG RANGE SENSOR SCAN"
-6060 PRINT " SHOWS CONDITIONS IN SPACE FOR ONE QUADRANT ON EACH SIDE"
-6070 PRINT " OF THE ENTERPRISE IN THE MIDDLE OF THE SCAN. THE SCAN"
-6080 PRINT " IS CODED IN THE FORM XXX, WHERE THE UNITS DIGIT IS THE"
-6090 PRINT " NUMBER OF STARS, THE TENS DIGIT IS THE NUMBER OF STAR-"
-6100 PRINT " BASES, THE HUNDREDS DIGIT IS THE NUMBER OF KLINGONS."
-6110 PRINT "COMMAND 3 = PHASER CONTROL"
-6120 PRINT " ALLOWS YOU TO DESTROY THE KLINGONS BY HITTING HIM WITH"
-6130 PRINT " SUITABLY LARGE NUMBERS OF ENERGY UNITS TO DEPLETE HIS "
-6140 PRINT " SHIELD POWER. KEEP IN MIND THAT WHEN YOU SHOOT AT"
-6150 PRINT " HIM, HE GONNA DO IT TO YOU TOO."
-6160 PRINT "COMMAND 4 = PHOTON TORPEDO CONTROL"
-6170 PRINT " COURSE IS THE SAME AS USED IN WARP ENGINE CONTROL"
-6180 PRINT " IF YOU HIT THE KLINGON, HE IS DESTROYED AND CANNOT FIRE"
-6190 PRINT " BACK AT YOU. IF YOU MISS, HE WILL SHOOT HIS PHASERS AT"
-6200 PRINT " YOU."
-6210 PRINT " NOTE: THE LIBRARY COMPUTER (COMMAND 7) HAS AN OPTION"
-6220 PRINT " TO COMPUTE TORPEDO TRAJECTORY FOR YOU (OPTION 2)."
-6230 PRINT "COMMAND 5 = SHIELD CONTROL"
-6240 PRINT " DEFINES NUMBER OF ENERGY UNITS TO BE ASSIGNED TO SHIELDS"
-6250 PRINT " ENERGY IS TAKEN FROM TOTAL SHIP'S ENERGY."
-6260 PRINT "COMMAND 6 = DAMAGE CONTROL REPORT"
-6270 PRINT " GIVES STATE OF REPAIRS OF ALL DEVICES. A STATE OF REPAIR"
-6280 PRINT " LESS THAN ZERO SHOWS THAT THAT DEVICE IS TEMPORARALY"
-6290 PRINT " DAMAGED."
-6300 PRINT "COMMAND 7 = LIBRARY COMPUTER"
-6310 PRINT " THE LIBRARY COMPUTER CONTAINS THREE OPTIONS:"
-6320 PRINT " OPTION 0 = CUMULATIVE GALACTIC RECORD"
-6330 PRINT " SHOWS COMPUTER MEMORY OF THE RESULTS OF ALL PREVIOUS"
-6340 PRINT " LONG RANGE SENSOR SCANS"
-6350 PRINT " OPTION 1 = STATUS REPORT"
-6360 PRINT " SHOWS NUMBER OF KLINGONS, STARDATES AND STARBASES"
-6370 PRINT " LEFT."
-6380 PRINT " OPTION 2 = PHOTON TORPEDO DATA"
-6390 PRINT " GIVES TRAJECTORY AND DISTANCE BETWEEN THE ENTERPRISE"
-6400 PRINT " AND ALL KLINGONS IN YOUR QUADRANT"
-6410 RETURN
-6420 END