BIGMES 10 COM K[8,8],S[8,8],A[8,8],R[5],C[9],E[9],F[9],C$[10],S$[6],A$[128],F$[21] 20 COM G[10],H[10],L[8,8],E$[1] 30 COM T$[4] 40 FILES $abc 50 READ #1;A$ 60 LET E$=A$[28,28] 70 LET A$=A$[33] 75 CHAIN "FUKCO0" 80 LET F$=" <*>+++>!< * . + " 90 LET C$=" *********" 100 IMAGE *,A,"=",A,A,3A 110 IMAGE *,A,"=",A,A,4D.DD 120 IMAGE *,A,"=",A,A,DD,":",DD," ",4A 130 IMAGE *,A,"=",A,A,DD,":0",D," ",4A 140 IMAGE *,A,"=",A,A,A,"T" 150 IMAGE *,A,"=",A,A,4X,D,",",D 160 IMAGE *,A,"=",A,A,3X,4D 170 IMAGE *,A,"=",A,A,3D," Units hit ENTERPRISE from ",D,"-",D 180 IMAGE *,A,"=",A,A,3D 190 IMAGE *,A,"=",A,A,D 200 PRINT E$;"*";E$;"&";E$;")" 210 PRINT E$;"= !";"--1--2--3--4--5--6--7--8- "; 220 FOR X=2 TO 9 230 PRINT USING 190;E$,A$[X,X],A$[1,1],X-1 240 NEXT X 250 PRINT E$;"=( ";" --1--2--3--4--5--6--7--8- "; 260 PRINT E$;"= ;";" -1---2---3---4---5---6---7---8-" 270 PRINT 280 FOR X=2 TO 9 290 PRINT USING 190;E$,A$[X,X],A$[28,28],X-1 300 FOR Y=1 TO 7 310 PRINT E$;"=";A$[X,X];A$[4*Y+28,4*Y+28];":"; 320 NEXT Y 330 PRINT 340 NEXT X 350 PRINT E$;"=);";" -1---2---3---4---5---6---7---8-"; 360 PRINT E$;"=* ";"Warp Engines" 370 PRINT E$;"=+ ";"S.R.Sensors" 380 PRINT E$;"=, ";"L.R.Sensors" 390 PRINT E$;"=- ";"Phasers" 400 PRINT E$;"=. ";"Photon Tubes" 410 PRINT E$;"=/ ";"---------------------------" 420 PRINT E$;"=0 ";"Energy" 430 PRINT E$;"=1 ";"Dates Left" 440 PRINT E$;"=2 ";"Quadrant" 450 PRINT E$;"=3 ";"Sector" 460 PRINT E$;"=4 ";"Condition" 470 PRINT E$;"=5 ";"Torpedoes" 480 PRINT E$;"=6 ";"Shields" 490 PRINT E$;"=7 ";"Klingons" 500 PRINT E$;"= [";" I-------------------" 510 PRINT E$;"=![";" I 4 3 2" 520 PRINT E$;"=";A$[3,3];"[";" I \ ! /" 530 PRINT E$;"=#[";" I \!/" 540 PRINT E$;"=$[";" I 5 ------- 1" 550 PRINT E$;"=%[";" I /!\" 560 PRINT E$;"=&[";" I / ! \" 570 PRINT E$;"='[";" I 6 7 8" 580 PRINT E$;"=([";" I Course" 590 PRINT E$;"=)[";" I-------------------" 600 FOR X=11 TO 24 610 PRINT E$;"=";A$[X,X];";";"I"; 620 NEXT X 630 PRINT 640 PRINT E$;"=";A$[24,24];A$[59,59];"Earth time: " 650 PRINT E$;"(" 660 LET I=0 670 MAT S=ZER 680 MAT C=ZER 690 MAT A=ZER 700 MAT E=ZER 710 MAT F=ZER 720 MAT G=ZER 730 MAT H=ZER 740 MAT R=CON 750 MAT R=(10)*R 760 MAT K=ZER 770 MAT L=ZER 780 LET E=3000 790 T1=10 800 K=S=F=R=B=0 810 LET D=INT(100*RND(0)+1) 820 P=INT(100*RND(0)+1) 830 FOR X=1 TO 8 840 FOR Y=1 TO 8 850 IF RND(0)<.75 THEN 890 860 K[X,Y]=INT(5*RND(0)) 870 K=K[X,Y]+K 880 LET L[X,Y]=L[X,Y]+100*K[X,Y] 890 LET B[X,Y]=INT(1*RND(0)+.1) 900 B=B[X,Y]+B 910 L[X,Y]=L[X,Y]+10*B[X,Y] 920 S[X,Y]=INT(9*RND(0)) 930 R=S[X,Y]+R 940 L[X,Y]=L[X,Y]+S[X,Y] 950 NEXT Y 960 NEXT X 970 X=INT(8*RND(0)+1) 980 Y=INT(8*RND(0)+1) 990 X1=INT(8*RND(0)+1) 1000 Y1=INT(8*RND(0)+1) 1010 PRINT E$;";" 1020 LET T9=0 1030 MAT A=ZER 1040 A[X1,Y1]=1 1050 FOR T0=1 TO K[X,Y] 1060 X2=INT(8*RND(0)+1) 1070 Y2=INT(8*RND(0)+1) 1080 IF A[X2,Y2]#0 THEN 1060 1090 E[T0]=X2 1100 F[T0]=Y2 1110 C[T0]=INT(100*RND(0)+1) 1120 A[X2,Y2]=2 1130 NEXT T0 1140 FOR T0=1 TO B[X,Y] 1150 LET X2=INT(8*RND(0)+1) 1160 LET Y2=INT(8*RND(0)+1) 1170 IF A[X2,Y2]#0 THEN 1140 1180 A[X2,Y2]=3 1190 NEXT T0 1200 FOR T0=1 TO S[X,Y] 1210 X2=INT(8*RND(0)+1) 1220 Y2=INT(8*RND(0)+1) 1230 IF A[X2,Y2]#0 THEN 1210 1240 LET A[X2,Y2]=4 1250 NEXT T0 1260 GOSUB 6240 1270 IF T9=1 THEN 2730 1280 IF T9=2 THEN 5350 1290 PRINT E$;";" 1300 GOSUB 6440 1310 GOSUB 6490 1320 GOSUB 6890 1330 Z=11 1340 FOR T=11 TO Z 1350 PRINT E$;"=";A$[T,T];"<";E$;"T"; 1360 NEXT T 1370 LET D=D-(INT(10*RND(0)+1)+.5)/10 1380 IF D>0 THEN 1420 1390 PRINT E$;"=+=";"Time's up!"; 1400 PRINT E$;"=,=";"Try again."; 1410 GOTO 670 1420 IF I=0 THEN 1450 1430 PRINT LIN(0);E$;"=+=";"Cloaking device DRAINING" 1440 LET E=E-100 1450 IF E>1 THEN 1480 1460 PRINT LIN(0);E$;"=+=";"The ENTERPRISE is DEAD in space!" 1470 GOTO 1400 1480 IF S >= 0 THEN 1510 1490 PRINT LIN(0);E$;"=+=";"The ENTERPRISE has been DESTROYED!" 1500 GOTO 1400 1510 GOSUB 6600 1520 PRINT 1530 LET Q9=TIM(1)+TIM(0)/100 1540 LET T$="A.M." 1550 IF Q9<13 THEN 1580 1560 LET Q9=Q9-12 1570 LET T$="P.M." 1580 IF Q9<12 THEN 1600 1590 LET T$="P.M." 1600 LET Q8=Q9-INT(Q9) 1610 LET Q8=Q8*100 1620 IF Q8<10 THEN 1650 1630 PRINT USING 120;E$,A$[24,24],A$[71,71],Q9,Q8,T$ 1640 GOTO 1660 1650 PRINT USING 130;E$,A$[24,24],A$[71,71],Q9,Q8,T$ 1660 PRINT LIN(0);E$;"=+=";"Command: ";E$;"T"; 1670 C=99 1680 ENTER 5,F1,C 1690 GOTO C+1 OF 2160,3360,3430,3560,3840,4430,4550,4620 1700 GOTO C-7 OF 5450,5580,5690,5780,5820,5930,5990,6100 1710 PRINT E$;"=+=";E$;"T";"Commands:" 1720 PRINT E$;"=,=";"0-Warp engine control"; 1730 PRINT E$;"=-=";"1-S.R. Sensors"; 1740 PRINT E$;"=.=";"2-L.R. Sensors"; 1750 PRINT E$;"=/=";"3-Phasers" 1760 PRINT E$;"=0=";"4-Photon tubes"; 1770 PRINT E$;"=1=";"5-Shield control"; 1780 PRINT E$;"=2=";"6-Klingon field" 1790 PRINT E$;"=3=";"7-Library computer" 1800 PRINT E$;"=,V";"8-EXP. Time warp transfer"; 1810 PRINT E$;"=-V";"9-SUPER L.R. Senors"; 1820 PRINT E$;"=.V";"10-Impulse engines" 1830 PRINT E$;"=/V";"11-Cloaking device"; 1840 PRINT E$;"=0V";"12-EXP. Death ray" 1850 PRINT E$;"=1V";"13-Abort mission"; 1860 PRINT E$;"=2V";"14-Super-Idiot command"; 1870 PRINT E$;"=3V";"15-*** COMMAND 15 ***"; 1880 LET Z=20 1890 ENTER 30,F2,C 1900 IF F1#-256 THEN 1340 1910 LET T=INT(5*RND(0)+1) 1920 LET R[T]=R[T]-INT(R[T]*RND(0)) 1930 GOSUB 6440 1940 IF R[2]>1 THEN 2000 1950 FOR T=2 TO 9 1960 PRINT E$;"=";A$[T,T];"!";E$;"T"; 1970 IF T#5 THEN 1990 1980 PRINT E$;"=$!";"S.R. Sensors OUT!!" 1990 NEXT T 2000 IF R[3]>1 THEN 2040 2010 FOR T=2 TO 9 2020 PRINT E$;"=";A$[T,T];A$[28,28];" " 2030 NEXT T 2040 FOR T=1 TO 9 2050 IF I=1 THEN 1340 2060 IF F=1 THEN 1340 2070 IF C[T] <= 0 THEN 2120 2080 LET H=INT(C[T]*RND(0)+1) 2090 LET S=S-H 2100 PRINT USING 170;E$,A$[22,22],A$[30,30],H,E[T],F[T] 2110 ENTER 3,F2,C 2120 NEXT T 2130 GOSUB 6850 2140 LET Z=22 2150 GOTO 1340 2160 IF R[1]>1 THEN 2210 2170 PRINT LIN(0);E$;"=,=";"Warp engines are DAMAGED!" 2180 PRINT E$;"=-=";"Try impulse engines." 2190 LET Z=14 2200 GOTO 1340 2210 PRINT LIN(0);E$;"=,=";"Course (1-9): ";E$;"T"; 2220 INPUT C 2230 PRINT LIN(0);E$;"=-=";"Warp factor (0-8): ";E$;"T"; 2240 INPUT W 2250 LET W=ABS(W) 2260 LET Z=14 2270 LET C=ABS(C) 2280 IF C=0 OR W=0 THEN 1340 2290 IF C >= 9 OR W>8 THEN 2210 2300 IF W8 THEN 2530 2470 IF Y3<1 THEN 2560 2480 IF Y3>8 THEN 2590 2490 GOTO 2790 2500 LET X=X-1 2510 LET X3=X1=X6=X4=8 2520 GOTO 2610 2530 LET X=X+1 2540 LET X3=X1=X6=X4=1 2550 GOTO 2610 2560 LET Y=Y-1 2570 LET Y3=Y1=Y6=Y4=8 2580 GOTO 2610 2590 LET Y=Y+1 2600 LET Y3=Y1=Y6=Y4=1 2610 IF X3<1 OR X3>8 OR Y3<1 OR Y3>8 THEN 2450 2620 IF NOT (X<1 OR X>8 OR Y<1 OR Y>8) THEN 2650 2630 PRINT LIN(0);E$;"=+=";"You flew OUT of the GALAXY!" 2640 GOTO 670 2650 MAT A=ZER 2660 MAT E=ZER 2670 MAT F=ZER 2680 MAT C=ZER 2690 LET T9=1 2700 LET T8=0 2710 GOTO 1040 2720 IF R[2] <= 1 THEN 2740 2730 GOSUB 6890 2740 LET Z=17 2750 GOSUB 6620 2760 GOSUB 6670 2770 GOTO 3230 2780 IF T8=1 THEN 5350 2790 IF A[X3,Y3]=0 THEN 3190 2800 IF A[X3,Y3]=1 THEN 3270 2810 IF A[X3,Y3]#2 THEN 2920 2820 FOR T2=1 TO 9 2830 IF C[T2] <= 0 THEN 2850 2840 IF X3=E[T2] AND Y3=F[T2] THEN 2870 2850 NEXT T2 2860 STOP 2870 LET S=S-C[T2] 2880 LET C[T2]=0 2890 GOSUB 6980 2900 GOSUB 6850 2910 GOTO 3190 2920 IF A[X3,Y3]#3 THEN 3040 2930 LET B[X,Y]=B[X,Y]-1 2940 LET B=B-1 2950 PRINT LIN(0);E$;"=/=";"*** Starbase DESTROYED ***" 2960 LET Z=16 2970 LET S=0 2980 LET L[X,Y]=L[X,Y]-10 2990 GOTO 3190 3000 GOSUB 7080 3010 GOSUB 6980 3020 GOSUB 6850 3030 GOTO 3190 3040 IF A[X3,Y3]#4 THEN 2860 3050 PRINT LIN(0);E$;"=/=";"*** Hit a STAR ***" 3060 FOR T0=1 TO 5 3070 LET R[T0]=R[T0]-4 3080 IF R[T0]>0 THEN 3100 3090 LET R[T0]=1 3100 NEXT T0 3110 IF R[2] <= 1 THEN 1950 3120 IF R[3] <= 1 THEN 2010 3130 GOSUB 6440 3140 LET S=0 3150 LET E=E-500 3160 LET Z=16 3170 GOSUB 6850 3180 GOTO 1340 3190 LET X1=X3 3200 LET Y1=Y3 3210 PRINT USING 100;E$,A$[X4+1,X4+1],A$[Y4*3,Y4*3],F$[1,3] 3220 PRINT USING 100;E$,A$[X3+1,X3+1],A$[Y3*3,Y3*3],F$[4,6] 3230 LET A[X4,Y4]=0 3240 LET A[X3,Y3]=1 3250 LET X4=X3 3260 LET Y4=Y3 3270 NEXT T 3280 GOSUB 6580 3290 GOSUB 6640 3300 GOSUB 6240 3310 GOSUB 6670 3320 GOSUB 6850 3330 LET T9=0 3340 GOSUB 7080 3350 GOTO 1340 3360 IF R[1]>1 THEN 3400 3370 PRINT LIN(0);E$;"=,=";"S.R. Sensors are OUT, best dock." 3380 LET Z=13 3390 GOTO 1910 3400 GOSUB 6890 3410 LET Z=12 3420 GOTO 1340 3430 IF R[3]>1 THEN 3460 3440 PRINT LIN(0);E$;"L.R. Sensors are OUT, try S.R. Sensors." 3450 GOTO 3380 3460 PRINT 3470 FOR X3=X-1 TO X+1 3480 FOR Y3=Y-1 TO Y+1 3490 IF X3>8 OR X3<1 THEN 3530 3500 IF Y3>8 OR Y3<1 THEN 3520 3510 PRINT USING 180;E$,A$[X3+1,X3+1],A$[4*Y3+25,4*Y3+25],L[X3,Y3] 3520 NEXT Y3 3530 NEXT X3 3540 LET Z=12 3550 GOTO 1340 3560 IF R[4]>1 THEN 3600 3570 PRINT LIN(0);E$;"=,=";"Phasers OUT! Try Photon Tubes." 3580 LET Z=13 3590 GOTO 1910 3600 PRINT LIN(0);E$;"=,=";"Phasers locked on target(s)." 3610 PRINT E$;"=-=";"Units to Phasers: "; 3620 INPUT P 3630 LET Z=14 3640 IF P=0 THEN 1340 3650 LET P=ABS(P) 3660 LET E=E-P 3670 IF E<1 THEN 1460 3680 FOR T=1 TO 9 3690 IF C[T] <= 0 THEN 3790 3700 LET H=(SQR(ABS(P^2-C[T]^2))+1)/(SQR((E[T]-X1)^2+(F[T]-Y1)^2)+1) 3710 LET C[T]=C[T]-H 3720 LET P=P-H 3730 PRINT LIN(0);E$;"=.=";" ";H;"Units hit KLINGON at";E[T];",";F[T] 3740 PRINT E$;"=/=";E$;"T" 3750 IF C[T]>0 THEN 3790 3760 GOSUB 6980 3770 PRINT USING 100;E$,A$[E[T]+1,E[T]+1],A$[F[T]*3,F[T]*3],F$[1,3] 3780 A[E[T],F[T]]=0 3790 NEXT T 3800 GOSUB 6580 3810 LET Z=16 3820 IF I=0 THEN 2040 3830 GOTO 1340 3840 IF R[5]>1 THEN 3880 3850 PRINT LIN(0);E$;"=,=";"Photon Tubes DAMAGED! Try Phasers." 3860 LET Z=13 3870 GOTO 1910 3880 IF T1>0 THEN 3910 3890 PRINT LIN(0);E$;"=,=";"OUT OF TORPEDOES! TRY PHASERS." 3900 GOTO 3860 3910 PRINT LIN(0);E$;"=,=";"Torpedoe course (1-9): ";E$;"T"; 3920 INPUT C 3930 IF C=0 THEN 1340 3940 LET T1=T1-1 3950 LET T=C9=0 3960 LET C=(C-1)*2*3.14159/8 3970 LET Y3=INT(T*10*COS(C)+Y1+.5) 3980 LET X3=INT(T*10*-SIN(C)+X1+.5) 3990 IF X3>8 OR Y3>8 OR X3<1 OR Y3<1 THEN 4120 4000 IF A[X3,Y3]#0 THEN 4140 4010 LET C9=C9+1 4020 LET G[C9]=X3 4030 LET H[C9]=Y3 4040 LET P=INT(((10-R[2])*10+T1*8)*RND(0)+.5) 4050 IF P>5 THEN 4090 4060 PRINT USING 100;E$,A$[X3+1,X3+1],A$[Y3*3,Y3*3],F$[19,21] 4070 PRINT LIN(0);E$;"=-=";"KLINGON intersected torpedoe!" 4080 GOTO 4320 4090 PRINT USING 100;E$,A$[X3+1,X3+1],A$[Y3*3,Y3*3],F$[16,17] 4100 LET T=T+.1 4110 GOTO 3970 4120 PRINT LIN(0);E$;"=-=";"Missed!" 4130 GOTO 4320 4140 IF A[X3,Y3]=1 THEN 4100 4150 IF A[X3,Y3]#2 THEN 4230 4160 PRINT USING 100;E$,A$[X3+1,X3+1],A$[Y3*3,Y3*3],F$[1,3] 4170 FOR T2=1 TO 9 4180 IF C[T2] <= 0 THEN 4200 4190 IF E[T2]=X3 AND F[T2]=Y3 THEN 4210 4200 NEXT T2 4210 LET C[T2]=0 4220 GOSUB 6980 4230 IF A[X3,Y3]#3 THEN 4300 4240 PRINT USING 100;E$,A$[X3+1,X3+1],A$[Y3*3,Y3*3],F$[1,3] 4250 PRINT LIN(0);E$;"=/=";"*** Starbase DESTROYED ***" 4260 LET B=B-1 4270 LET B[X,Y]=B[X,Y]-1 4280 LET L[X,Y]=L[X,Y]-10 4290 PRINT USING 180;E$,A$[X+1,X+1],A$[4*Y+25,4*Y+25],L[X,Y] 4300 IF A[X3,Y3]#4 THEN 4320 4310 PRINT LIN(0);E$;"=/=";"You can't destroy a STAR, silly." 4320 FOR C=1 TO C9 4330 PRINT USING 100;E$,A$[G[C]+1,G[C]+1],A$[H[C]*3,H[C]*3],F$[1,3] 4340 NEXT C 4350 PRINT 4360 GOSUB 6830 4370 LET Z=16 4380 IF X3<1 OR X3>8 OR Y3<1 OR Y3>8 THEN 4410 4390 IF A[X3,Y3]=4 THEN 1340 4400 LET A[X3,Y3]=0 4410 IF I=0 THEN 2040 4420 GOTO 1340 4430 PRINT E$;"=.=";"Energy availble: ";E;" units" 4440 PRINT E$;"=/=";"Number of units to shields"; 4450 INPUT E1 4460 LET S=S+E1 4470 LET E=E-E1 4480 IF E <= 0 THEN 1460 4490 IF S<0 THEN 1490 4500 GOSUB 6580 4510 GOSUB 6670 4520 GOSUB 6850 4530 LET Z=16 4540 GOTO 1340 4550 FOR T=1 TO 9 4560 IF C[T] <= 0 THEN 4580 4570 PRINT LIN(0);E$;"=";A$[T+12,T+12];"=";C[T];"units at ";E[T];",";F[T] 4580 NEXT T 4590 LET Z=12+T 4600 ENTER 60,F1,C 4610 GOTO 1340 4620 PRINT LIN(0);E$;"=,=";"Computer awaiting command: ";E$;"T"; 4630 LET C=99 4640 ENTER 15,F1,C 4650 LET C=INT(ABS(C)) 4660 LET Z=13 4670 IF C=0 THEN 1340 4680 GOTO C OF 4730,4810,5160 4690 PRINT E$;"=.=";"1-Status report" 4700 PRINT E$;"=/=";"2-Phton Tubes data" 4710 PRINT E$;"=0=";"3-Course plotter" 4720 GOTO 4620 4730 PRINT LIN(0);E$;"=*,";E$;"Y" 4740 PRINT E$;"=1=";"Klingons: ";K 4750 PRINT E$;"=2=";"Starbases: ";B 4760 PRINT E$;"=3=";"Stars: ";R 4770 GOSUB 6440 4780 GOSUB 6490 4790 LET Z=20 4800 GOTO 1340 4810 PRINT E$;"=-=";E$;"T";E$;"=.=";E$;"T";E$;"=/=";E$;"T";E$;"=0=";E$;"T" 4820 FOR T=1 TO 9 4830 IF C[T] <= 0 THEN 5080 4840 Z1=F[T]-Y1 4850 Z2=X1-E[T] 4860 IF Z1<0 THEN 4960 4870 IF Z2<0 THEN 5020 4880 IF Z1>0 THEN 4900 4890 IF Z2=0 THEN 4980 4900 C1=1 4910 IF ABS(Z2) <= ABS(Z1) THEN 4940 4920 C=C1+(((ABS(Z2)-ABS(Z1))+ABS(Z2))/ABS(Z2)) 4930 GOTO 5070 4940 C=C1+(ABS(Z2)/ABS(Z1)) 4950 GOTO 5070 4960 IF Z2>0 THEN 5000 4970 IF Z1=0 THEN 5020 4980 C1=5 4990 GOTO 4910 5000 C1=3 5010 GOTO 5030 5020 C1=7 5030 IF ABS(Z2) >= ABS(Z1) THEN 5060 5040 C=C1+(((ABS(Z1)-ABS(Z2))+ABS(Z1))/ABS(Z1)) 5050 GOTO 5070 5060 C=C1+(ABS(Z1)/ABS(Z2)) 5070 PRINT E$;"=";A$[12+T,12+T];"=";"Suggested course for";E[T];",";F[T];":";C 5080 NEXT T 5090 Z=T+12 5100 ENTER 10,F1,C 5110 GOTO 1340 5120 LET C=1 5130 GOTO 5070 5140 LET C=5 5150 GOTO 5070 5160 PRINT E$;"=4=";"Where to (quadrant,sector): ";E$;"T"; 5170 P=0 5180 INPUT X3,Y3,X4,Y4 5190 IF X3+Y3+X4+Y4=0 THEN 1350 5200 IF X3<1 OR X3>8 OR Y3<1 OR Y3>8 THEN 5160 5210 IF X4<1 OR X4>8 OR Y4<1 OR Y4>8 THEN 5160 5220 LET A[X1,Y1]=0 5230 LET E=E-(SQR((X3-X)^2+(Y3-Y)^2)*8+SQR((X4-X1)^2+(Y4-Y1)^2))*100 5240 LET X1=X4 5250 LET Y1=Y4 5260 LET X=X3 5270 LET Y=Y3 5280 LET T9=2 5290 MAT A=ZER 5300 MAT C=ZER 5310 MAT E=ZER 5320 MAT F=ZER 5330 LET F=0 5340 GOTO 1040 5350 GOSUB 6580 5360 GOSUB 6240 5370 GOSUB 6620 5380 GOSUB 6640 5390 GOSUB 6670 5400 GOSUB 6890 5410 LET Z=21 5420 IF P#0 THEN 1340 5430 IF I=0 THEN 2040 5440 GOTO 1340 5450 PRINT E$;"=,=";"This is still EXPERIMENTAL" 5460 PRINT E$;"=4=";"Where to (quadrant,sector): ";E$;"T"; 5470 INPUT X3,Y3,X4,Y4 5480 IF X3+Y3+X4+Y4=0 THEN 1350 5490 LET P=INT(100*RND(0)+1) 5500 IF P>15 THEN 5550 5510 LET E=9000 5520 LET S=9000 5530 LET T1=90 5540 GOTO 5200 5550 PRINT E$;"=5=";"Transfer WASN'T successful!!" 5560 LET Z=22 5570 GOTO 650 5580 IF F=1 THEN 5610 5590 PRINT LIN(0);E$;"=,=";"The ENTERPRISE has to be DOCKED for this." 5600 GOTO 1340 5610 FOR T=X-2 TO X+2 5620 FOR T2=Y-2 TO Y+2 5630 IF T<1 OR T>8 THEN 5670 5640 IF T2<1 OR T2>8 THEN 5660 5650 PRINT USING 180;E$,A$[T+1,T+1],A$[T2*4+25,T2*4+25],L[T,T2] 5660 NEXT T2 5670 NEXT T 5680 GOTO 1340 5690 PRINT E$;"=,=";"course (1-9): ";E$;"T"; 5700 INPUT C 5710 PRINT E$;"=-=";"Warp factor (0-.2): ";E$;"T"; 5720 INPUT W 5730 LET W=ABS(W) 5740 LET C=ABS(C) 5750 IF W>.2 THEN 5710 5760 LET E=E-100 5770 GOTO 2280 5780 LET I=1 5790 LET E=E-1000 5800 GOSUB 6670 5810 GOTO 1340 5820 PRINT E$;"=,=";"This is still EXPERIMENTAL" 5830 IF RND(0)<.333 THEN 5860 5840 PRINT E$;"*";"The Death Ray has DESTROYED the ENTERPRISE!" 5850 STOP 5860 FOR T=1 TO K[X,Y] 5870 IF C[T] <= 0 THEN 5910 5880 LET C[T]=0 5890 PRINT USING 100;E$,A$[E[T]+1,E[T]+1],A$[F[T]*3,F[T]*3],F$[1,3] 5900 GOSUB 6970 5910 NEXT T 5920 GOTO 1340 5930 PRINT LIN(0);E$;"=,=";"Are you SURE you want to do THIS"; 5940 INPUT S$ 5950 IF S$[1,1]="N" THEN 1340 5960 PRINT E$;"*";"COWARD!!!!! " 5970 PRINT "There are still ";K;"KLINGONS left" 5980 STOP 5990 FOR T=1 TO 8 6000 FOR T2=1 TO 8 6010 IF K[T,T2]=0 THEN 6050 6020 LET K=K-K[T,T2]+9 6030 LET K[T,T2]=9 6040 LET L[T,T2]=L[T,T2]-INT(L[T,T2]/100)*100+900 6050 NEXT T2 6060 NEXT T 6070 PRINT E$;";";E$;"=+=";"There are now NINE (9) KLINGONS per quadrant!!" 6080 ENTER 3,F2,C 6090 GOTO 1010 6100 LET C=INT(100*RND(0)) 6110 IF C <= 15 THEN 1690 6120 LET C=C-15 6130 FOR T=1 TO C 6140 LET X2=INT(8*RND(0)+1) 6150 LET Y2=INT(8*RND(0)+1) 6160 IF X2=X AND Y2=Y THEN 6140 6170 IF K[X2,Y2]=0 THEN 6110 6180 LET K[X2,Y2]=K[X2,Y2]-1 6190 LET K=K-1 6200 LET L[X2,Y2]=L[X2,Y2]-100 6210 LET E=E-100*ABS(T-C) 6220 NEXT T 6230 GOTO 1010 6240 FOR S9=X1-1 TO X1+1 6250 FOR S8=Y1-1 TO Y1+1 6260 IF S9<1 OR S9>8 THEN 6300 6270 IF S8<1 OR S8>8 THEN 6290 6280 IF A[S9,S8]=3 THEN 6320 6290 NEXT S8 6300 NEXT S9 6310 RETURN 6320 LET F=1 6330 Q=3000+E-INT((E+1)/6999)*6999 6340 LET E=Q 6350 LET S=I=0 6360 Q=10+T1-INT((T1+1)/89)*89 6370 LET T1=Q 6380 FOR T0=1 TO 5 6390 LET R[T0]=10 6400 NEXT T0 6410 GOSUB 6440 6420 GOSUB 6490 6430 RETURN 6440 PRINT 6450 FOR T0=1 TO 5 6460 PRINT E$;"=";A$[10+T0,10+T0];".";E$;"T";C$[1,R[T0]] 6470 NEXT T0 6480 RETURN 6490 GOSUB 6580 6500 GOSUB 6600 6510 GOSUB 6620 6520 GOSUB 6640 6530 GOSUB 6670 6540 GOSUB 6830 6550 GOSUB 6850 6560 GOSUB 6870 6570 RETURN 6580 PRINT USING 160;E$,A$[17,17],A$[15,15],E 6590 RETURN 6600 PRINT USING 110;E$,A$[18,18],A$[15,15],D 6610 RETURN 6620 PRINT USING 150;E$,A$[19,19],A$[15,15],X,Y 6630 RETURN 6640 PRINT USING 150;E$,A$[20,20],A$[15,15],X1,Y1 6650 RETURN 6660 GOSUB 6240 6670 IF F=0 THEN 6700 6680 LET S$="Docked" 6690 GOTO 6810 6700 IF I#1 THEN 6730 6710 LET S$="Cloakd" 6720 GOTO 6810 6730 IF K[X,Y]=0 THEN 6800 6740 IF S>500 THEN 6770 6750 LET S$="RED!!!" 6760 GOTO 6810 6770 LET S$=" RED" 6780 GOTO 6810 6790 LET S$="Yellow" 6800 LET S$=" GREEN" 6810 PRINT LIN(0);E$;"=4/";S$ 6820 RETURN 6830 PRINT USING 160;E$,A$[22,22],A$[15,15],T1 6840 RETURN 6850 PRINT USING 110;E$,A$[23,23],A$[15,15],S 6860 RETURN 6870 PRINT USING 160;E$,A$[24,24],A$[15,15],K 6880 RETURN 6890 FOR X2=1 TO 8 6900 PRINT USING 140;E$,A$[X2+1,X2+1],A$[1,1],E$ 6910 FOR Y2=1 TO 8 6920 IF A[X2,Y2]=0 THEN 6940 6930 PRINT USING 100;E$,A$[X2+1,X2+1],A$[Y2*3,Y2*3],F$[A[X2,Y2]*3+1,A[X2,Y2]*3+3] 6940 NEXT Y2 6950 NEXT X2 6960 RETURN 6970 PRINT 6980 PRINT LIN(0);E$;"=/=";"*** KLINGON DESTROYED ***" 6990 LET Z=16 7000 LET K=K-1 7010 IF K>0 THEN 7050 7020 PRINT E$;"*";"All the KLINGONS have been DESTROYED!!!!" 7030 PRINT "The galaxy is SAVED!!!" 7040 STOP 7050 LET K[X,Y]=K[X,Y]-1 7060 LET L[X,Y]=L[X,Y]-100 7070 GOSUB 6870 7080 PRINT USING 180;E$,A$[X+1,X+1],A$[4*Y+25,4*Y+25],L[X,Y] 7090 RETURN 7100 END