Listing of file='TREK.BAS;01' on disk='vmedia/epps_trek-sector.ccvf'
10 REM STAR TREK. V 30.8.80 BY G.EPPS 20 N= 8:PLOT 12,15 30 A= 49151- 128* N:B= INT (A/ 256):C= A- 256* B 40 POKE 33284,B:POKE 33283,C 50 A= 49150- 128* N:B= INT (A/ 256):C= A- 256* B 60 POKE 32941,B:POKE 32940,C:CLEAR 50 90 DIM I(3),A$(8),KC(2),CC(3),D(15),Q(11,11),G(11,11),K(10,3) 100 DIM GE(7),S(9,1),CL$(3,1) 110 DATA 21,21,17,19,18,20,20,20,20 120 FOR Q= 0TO 8:READ A(Q):NEXT Q 130 KC(0)= 100:KC(1)= 250:KC(2)= 500:K(0,3)= 1500 140 B$= "GALDEFTORLODPHAKLNWRPIMPLRS":Q= RND (- PEEK (33209)- PEEK (33208)) 150 EN$= "cxe":SP$= " . ":BA$= "cjd":BH$= "cjd":FS$= "wxv" 160 DEF FN D(X)= SQR ((QX- K(Q,1))* (QX- K(Q,1))+ (QY- K(Q,2))* (QY- K(Q,2))) 170 DEF FN Q(X)= INT (RND (1)* X)+ 1:K1= 57.3 180 DEF FN X(X)= INT (SIN (X/ K1)* W* (1+ .414* ABS (SIN (2* X/ K1)))+ .5) 190 DEF FN Y(X)= INT (COS (X/ K1)* W* (1+ .414* ABS (SIN (2* X/ K1)))+ .5) 200 DEF FN IN(X)= AA> 0AND AA< 11AND BB> 0AND BB< 11 210 CL$(0,0)= "qjp":CL$(0,1)= "SCOUT":CC(0)= 6 220 CL$(1,0)= "cxd":CL$(1,1)= "CRUISER":CC(1)= 3 230 CL$(2,0)= "xxx":CL$(2,1)= "BTL SHP":CC(2)= 1 240 CL$(3,0)= FS$:CC(3)= 4 250 I(1)= 0:I(2)= 400:I(3)= 0:K= 0:B= 0:N= 10 260 FOR I= 1TO 10:FOR J= 1TO 10:Z= 0 270 IF RND (1)< .02THEN G(I,J)= 0:GOTO 310 280 IF RND (1)< 0.1THEN X= FN Q(9):K= K+ X:Z= Z+ 100* X 290 IF RND (1)< .09THEN B= B+ 1:Z= Z+ 10 300 G(I,J)= - FN Q(9)- Z 310 NEXT J,I 320 K0= K:TS= INT (K0* (25+ RND (1)* 15)):FX= FN Q(N):FY= FN Q(N):GOSUB 2060 330 GX= FN Q(N):GY= FN Q(N):QX= FN Q(N):QY= FN Q(N):IF G(GX,GY)< - 120GOTO 330 340 POKE 33209,0:POKE 33210,0:PLOT 12,3,64,0 350 FOR Q7= 1TO 10:K(Q7,3)= 0:FOR W9= 1TO 10:Q(Q7,W9)= 5:NEXT W9:NEXT Q7 360 Q(QX,QY)= 4:S= 0:BA= 0:Q= 0:NK= 0:X= 1E3:P= ABS (G(GX,GY)) 370 G(GX,GY)= ABS (G(GX,GY)):FS= 0 380 IF G(GX,GY)> 0GOTO 410 390 NO= 2:BH= - 1:PLOT 3,20,6 400 PRINT ""BH$"DESTRUCTION EMMINENT !"BH$"":GOSUB 3610:GOSUB 3610:GOTO 500 410 FOR I= 1TO 3:X= X/ 10:Z= INT (P/ X):IF Z= 0GOTO 490 420 FOR L= 1TO Z 430 S1= FN Q(N):S2= FN Q(N):IF Q(S1,S2)< > 5GOTO 430 440 Q(S1,S2)= I:ON IGOTO 450,460,470 450 K(L,0)= INT (RND (1)* 3):K(L,1)= S1:K(L,2)= S2:K(L,3)= KC(K(L,0)):NK= NK+ 1:GOTO 480 460 BA= - 1:B1= S1:B2= S2:GOTO 480 470 S= S+ 1:S(S,0)= S1:S(S,1)= S2 480 NEXT L:P= P- X* Z 490 NEXT I:H= - 1 500 IF ESTHEN ES= 0:PLOT 6,7,12 510 IF NK> 0THEN NO= 8:GOSUB 3610 520 LA= 0:IF NK= KTHEN LA= - 1 530 IF GALTHEN GAL= 0:PLOT 12 540 C= CALL (1) 550 FOR A= 1+ FSTO NK:IF K(A,3)= 0GOTO 570 560 PLOT 3,127,K(A,2)* 3- 1,K(A,1)* 2+ 10,CC(K(A,0)):PRINT CL$(K(A,0),0); 570 NEXT A 580 PLOT 3,127,QY* 3- 1,QX* 2+ 10,2:PRINT EN$; 590 IF BATHEN PLOT 3,B2* 3- 1,B1* 2+ 10:PRINT BA$ 600 IF S= 0GOTO 640 610 FOR Q= 1TO S:IF S(Q,1)= 0GOTO 630 620 PLOT 3,127,S(Q,1)* 3,S(Q,0)* 2+ 10,7,42 630 NEXT Q 640 PLOT 27,27:IF NOT FSTHEN GOSUB 3220 650 SRS= - 1:GOTO 2330 660 IF FSTHEN GOSUB 3580:GOTO 690 670 IF G(GX,GY)< 100GOTO 860 680 GOSUB 3220 690 HIT= - 1:ZZ= 0 700 FOR Q= 1+ FSTO NK 710 IF K(Q,3)= 0GOTO 840 720 RA= FN D(Q) 730 IF RA> 5THEN GOSUB 2980:IF Q> 0GOTO 840 740 ZZ= ZZ+ 1 750 U= INT (K(Q,3)/ RA/ 2) 760 PLOT 3,0,ZZ,6,2:PRINT ZZ,CL$(K(Q,0),0),U" UNIT HIT", 770 I(2)= I(2)- U:IF I(2)< 0GOTO 2240 780 G= FN Q(9):D(G)= D(G)- RND (1)* U/ 100 790 IF D(G)> 0THEN PRINT :NO= 10:GOSUB 3610:GOTO 820 800 PRINT MID$ (B$,(G- 1)* 3+ 1,3)" DAMAGED !" 810 NO= 2:GOSUB 3610 820 DA= - 1:GOSUB 1940:PLOT 6,7,3,44,16:PRINT I(2)" ":DA= 0 830 IF FTTHEN FT= 0:RETURN 840 NEXT Q:GOTO 2330 850 C= CALL (3):RETURN 860 C= CALL (3) 870 IF HTHEN H= 0:GOTO 660 880 IF ETHEN E= 0:ON E1GOTO 1790,2250,2280 890 I= CALL (6) 900 IF BHAND I< > 7AND I< 12GOTO 2240 910 IF CHTHEN CH= 0:GOTO 2030 920 IF I> 8GOTO 950 930 IF D(I)> = 0GOTO 950 940 PRINT ,,"DEVICE STILL DAMAGED":NO= 2:GOSUB 3610:GOTO 860 950 ON I+ 1GOTO 660,980,1530,1560,1860,2640,3100,1190,1190 960 ON I- 8GOTO 2020,530,3200,2240,3670,3670,3670,3670,3640 970 PRINT ,,"COMMAND NOT RECOGNISED !":NO= 2:GOSUB 3610:GOTO 860 980 C= CALL (5) 990 FOR I= 1TO N:FOR J= 1TO N 1000 A= G(I,J) 1010 IF A< 0GOTO 1060 1020 PLOT 3,J* 6- 3,9+ I* 2 1030 IF A< 1THEN PRINT " "BH$:GOTO 1060 1040 IF A< 10THEN PRINT " "; 1050 PRINT A 1060 NEXT J,I 1070 PLOT 3,GY* 6- 3,GX* 2+ 9,6,1 1080 IF G(GX,GY)< 10THEN PRINT " "; 1090 PRINT G(GX,GY)" " 1100 IF K(0,3)< 1OR G(FX,FY)< 0GOTO 1170 1110 PLOT 3,FY* 6- 3,FX* 2+ 9,31 1120 IF G(FX,FY)< 10THEN PRINT " "; 1130 IF FX= GXAND FY= GYTHEN PLOT 6,65 1140 IF G(FX,FY)= 0THEN PRINT BH$:GOTO 1160 1150 PRINT G(FX,FY)" " 1160 PLOT 15 1170 PLOT 3,16,31:PRINT "KLINGONS"K" BASES"B" TIME"TS- ST"";:PLOT 8:PRINT 1180 GAL= - 1:GOTO 3210 1190 PLOT 8:INPUT "COMPASS HEADING ? ";T:T= T- 90:PLOT 8,11 1200 PLOT 8:PRINT "PROPULSION ENERGY (0-9) ?":BH= 0:W1= CALL (2)- 48 1210 IF W1< 1OR W1> NGOTO 860 1220 ZZ= 0:H= - 1:DA= - 1 1230 FOR G= 1TO 9:IF D(G)> = 0GOTO 1270 1240 D(G)= D(G)+ RND (1):GOSUB 1940 1250 IF D(G)< 0GOTO 1270 1260 ZZ= ZZ+ 1:PLOT 3,30,ZZ,6,7:PRINT MID$ (B$,G* 3- 2,3)" NOW WORKING" 1270 NEXT G:W2= 2:DA= 0:IF I= 7THEN W2= 20 1280 IF I(1)+ I(2)< W1* W2THEN PRINT "NO ENERGY TO DO IT WITH!":GOSUB 2320:GOTO 860 1290 IF W1* W2> I(1)THEN I(1)= I(1)+ I(2)- W1* W2:I(2)= 0:GOTO 1310 1300 I(1)= I(1)- W1* W2 1310 PLOT 6,7,3,44,14:PRINT I(1)" ":IF I= 7GOTO 1500 1320 SX= QX:SY= QY 1330 FOR W= 1TO W1 1340 AA= SX+ FN X(T):BB= SY+ FN Y(T):IF FN IN(0)GOTO 1360 1350 NO= 2:PLOT 8,11:PRINT ,,"EXIT ONLY WITH WARP!":GOSUB 3610:GOTO 2330 1360 A= Q(AA,BB) 1370 ON AGOTO 1400,1400,1380,1400,1400,1380 1380 PLOT 8,11:PRINT ,,"BAD NAVIGATION":NO= 2:GOSUB 3610 1390 GOTO 2330 1400 F1= BB* 3- 1:F2= AA* 2+ 10 1410 PLOT 30,3,127,F1,F2,2,99,120,3,127,F1+ 2,F2,11,101,29 1420 PLOT 3,127,QY* 3- 1,QX* 2+ 10,6,32,46,32,3,64,0 1430 Q(QX,QY)= 5:QX= AA:QY= BB:Q(QX,QY)= 4 1440 ON AGOTO 1450,1450,0,1490,1490,0 1450 PLOT 3,127,QY* 3- 1,QX* 2+ 10,2:PRINT EN$:PLOT 3,64,0 1460 IF A= 2THEN GOSUB 2040:GOTO 2330 1470 IF A= 1GOTO 1710 1480 IF A= 0GOTO 2330 1490 NEXT W:A= 0:GOTO 1450 1500 W= W1:AA= GX+ FN X(T):BB= GY+ FN Y(T):IF FN IN(0)GOTO 1520 1510 PLOT 8:PRINT ,,"10 X 10 GAL!":NO= 2:GOSUB 3610:GOTO 2330 1520 PLOT 3,64,0:GX= AA:GY= BB:GOTO 350 1530 PRINT "YOU HAVE "I(1)+ I(2)" UNITS OF ENERGY" 1540 INPUT "LET SHIELDS = ";X:IF X> I(1)+ I(2)GOTO 1530 1550 I(1)= I(1)+ I(2)- X:I(2)= X:GOTO 2330 1560 IF I(3)< = 0THEN PRINT ,,"CAN'T FIRE ANYTHING !":NO= 2:GOSUB 3610:GOTO 860 1570 PLOT 8:INPUT "FIRING ANGLE ? ";T:S1= QX:S2= QY 1580 NO= 3:GOSUB 3610:H= - 1:T= T- 90:I(3)= I(3)- 1:PLOT 3,44,18:PRINT I(3)" " 1590 FOR W= 1TO 13 1600 AA= FN X(T)+ S1:BB= FN Y(T)+ S2 1610 IF NOT FN IN(0)GOTO 1690 1620 UU= Q(AA,BB) 1630 IF UU= 4GOTO 760 1640 Q(AA,BB)= 5 1650 PLOT 3,127,BB* 3,AA* 2+ 10,3,100 1660 PLOT 3,127,BB* 3- 1,AA* 2+ 10,6,32,46,32,3,64,0 1670 ON UUGOTO 1710,1700,2900,20,1680,3470 1680 NEXT W 1690 PLOT 14,6,1,3,26,9:PRINT "MISSED":GOTO 2330 1700 X= GX:Y= GY:BA= 0:ZZ= 0:GOSUB 3620:GOTO 2330 1710 FOR Q= 1TO NK:IF K(Q,1)= AAAND K(Q,2)= BBTHEN K(Q,3)= 0:EK= EK+ KC(K(Q,0))/ 10 1720 NEXT Q 1730 G(GX,GY)= G(GX,GY)- 100:K= K- 1 1740 PLOT 6,4,14,3,20,9:PRINT "KLINGON DESTROYED" 1750 PLOT 6,7,3,44,20:PRINT K" " 1760 NO= 6:GOSUB 3610 1770 IF K< = 0THEN E= - 1:E1= 1 1780 GOTO 2330 1790 PLOT 6,3:PRINT "CONGRATULATIONS!!!.THE LAST KLINGON" 1800 PRINT " HAS BEEN DESTROYED!DO YOU WANT ANOTHER " 1810 PRINT " MISSION IN THE ENTERPRISE ?":A= CALL (2) 1820 IF A= 89THEN RUN 1830 IF A= 99GOTO 650 1840 IF A= 67THEN CT= - 1:I(2)= I(2)+ 500:GOTO 530 1850 END 1860 PRINT "YOU HAVE "I(1)+ I(2)" UNITS OF ENERGY AND "I(3)" TORPEDOES" 1870 INPUT "HOW MANY TORPEDES TO LOAD AT 100 EACH ? ";X 1880 IF X* 100> I(1)+ I(2)GOTO 1860 1890 IF X+ I(3)< - 10THEN PRINT "LIMIT TO OFF-LOAD -10":GOSUB 2320:GOTO 860 1900 I(3)= I(3)+ X 1910 IF X* 100> I(1)THEN I(1)= I(1)+ I(2)- 100* X:I(2)= 0:GOTO 2330 1920 I(1)= I(1)- X* 100:GOTO 2330 1930 FOR G= 1TO 9 1940 IF D(G)< 0THEN PLOT 6,1:GOTO 1970 1950 IF D(G)< 2THEN PLOT 6,3:GOTO 1970 1960 D(G)= 2:PLOT 6,2 1970 PLOT 3,55,20+ G 1980 PRINT MID$ (B$,G* 3- 2,3)" "LEFT$ (STR$ (D(G))+ " ",4); 1990 IF DATHEN RETURN 2000 IF G= 5THEN PRINT 2010 NEXT G:PLOT 8:PRINT :GOTO 2600 2020 CH= - 1:GOTO 860 2030 D(I)= 1:GOTO 1930 2040 FOR Q= 1TO 10:D(Q)= 2:NEXT Q 2050 DO= - 1:BA= 0:B= B- 1:G(GX,GY)= G(GX,GY)- 10 2060 I(1)= I(1)+ 1000:I(2)= I(2)+ 100:I(3)= I(3)+ 10 2070 RETURN 2080 FOR W= GX- 1TO GX+ 1 2090 IF D(9)< 0THEN PLOT 6,1,3,55,15:PRINT G(GX,GY):GOTO 2170 2100 FOR Q= GY- 1TO GY+ 1:G(W,Q)= ABS (G(W,Q)) 2110 PLOT 6,7,3,(Q- GY)* 4+ 55,(W- GX)* 3+ 15 2120 IF Q= FYAND W= FXTHEN PLOT 31 2130 IF G(W,Q)< 1THEN PRINT "cjjd";:GOTO 2160 2140 IF W= GXAND Q= GYTHEN PLOT 29,17:PRINT G(W,Q);:GOTO 2160 2150 PRINT G(W,Q); 2160 NEXT Q 2170 PRINT :NEXT W 2180 IF SRSGOTO 2340 2190 GOTO 860 2200 IF QX= AATHEN ANGLE= 180+ 90* SGN (QY- BB):RETURN 2210 ANGLE= INT (572.96* ATN ((BB- QY)/ (AA- QX)))* - 0.1 2220 IF QX< AATHEN AN= AN+ 180 2230 RETURN 2240 E= - 1:E1= 2:NO= 4:GOSUB 3610:GOTO 2330 2250 PLOT 3,64,0:FOR Q= 1TO 64:PLOT 6,Q,27,25,96:NEXT Q:PLOT 3,0,9 2260 PRINT "YOU HAVE BEEN DESTROYED !!! DO YOU WANT ANOTHER " 2270 GOTO 1810 2280 PRINT "YOU HAVE RUN OUT OF STARDATES." 2290 INPUT "DO YOU WANT MORE TIME ? ";A$ 2300 IF A$= "N"THEN END 2310 TS= TS+ 300:GOTO 2330 2320 PLOT 3,64,0:FOR Q= 1TO 1E3:NEXT Q:RETURN 2330 IF FTTHEN FT= 0:RETURN 2340 IF GALGOTO 860 2350 ST$= "GREEN ":F= 44 2360 IF I(1)< 250OR I(2)< 400THEN ST$= "YELLOW" 2370 IF I(1)< 100OR I(2)< 250OR FSOR G(GX,GY)> 100THEN ST$= " `RED`" 2380 IF DOTHEN ST$= "DOCKED" 2390 ST= INT (1.2* (PEEK (33210)* 60+ PEEK (33209))) 2400 IF K0= KTHEN EF$= " N/A":GOTO 2470 2410 W= INT (200* (EK/ ST)- 300)/ 10 2420 IF W< - 29THEN EF$= "HOPELESS!":GOTO 2460 2430 IF W> 79THEN W= 79 2440 EF$= CHR$ (A((W+ 30)/ 10))+ STR$ (W)+ "" 2450 IF W> 30THEN EF$= "*"+ EF$+ " *" 2460 IF CTTHEN EF$= " CHEAT!" 2470 PLOT 3,F,12:PRINT ST$ 2480 FOR Q= 1TO 3:PLOT 3,F,12+ Q* 2:PRINT SPC( 6) 2490 PLOT 3,F,12+ Q* 2:PRINT I(Q):NEXT Q 2500 PLOT 3,F,20:IF LATHEN PRINT "*"K" *":GOTO 2520 2510 PRINT K" " 2520 PLOT 3,F,22:PRINT B" " 2530 PLOT 3,F,24:PRINT GY" ,"11- GX" " 2540 PLOT 3,F,26:PRINT QY" ,"11- QX" " 2550 PLOT 3,F,28:PRINT SPC( 10) 2560 PLOT 3,F,28:PRINT EF$ 2570 PLOT 3,F,30:PRINT TS- ST" " 2580 IF ST> TSTHEN E= - 1:E1= 3 2590 IF SRSOR DOTHEN DO= 0:GOTO 1930 2600 IF SRSTHEN SRS= 0:GOTO 2080 2610 PLOT 6,1,3,55,15:IF FSTHEN PLOT 31 2620 IF G(GX,GY)= 0THEN PRINT "cjjd":GOTO 860 2630 PRINT SPC( 4):PLOT 3,55,15:PRINT G(GX,GY)"":GOTO 860 2640 IF NK= 0THEN PLOT 8,11:PRINT "WHAT ARE YOU GOING TO HIT,DUMMY?":GOSUB 2320:GOTO 860 2650 L= 0:FOR Q= 1TO NK:IF K(Q,3)> 0THEN L= L+ 1 2660 NEXT Q:IF L= 0THEN NK= 0:GOTO 2640 2670 V= 8:IF L= 9THEN V= 7 2680 FOR W= 1TO 3:L= 0:FOR Q= 1TO NK:IF K(Q,3)= 0GOTO 2740 2690 L= L+ 1:PRINT TAB( (L- 1)* V) 2700 ON WGOTO 2710,2720,2730 2710 PRINT CL$(K(Q,0),1);:GOTO 2740 2720 PRINT K(Q,3);:GOTO 2740 2730 PRINT INT (1+ K(Q,3)* FN D(0)/ 2); 2740 NEXT Q:PRINT :PRINT :NEXT W:PRINT 2750 PRINT "YOU HAVE"I(1)" UNITS OF ENERGY" 2760 INPUT "HOW MUCH TO EXPEND ?";PP 2770 IF PP> I(1)THEN PLOT 6,1,28,11:GOTO 2760 2780 IF PP< = 0GOTO 860 2790 NO= 5:GOSUB 3610:H= - 1:I(1)= I(1)- PP:PLOT 3,44,14:PRINT I(1)" " 2800 FOR Q= 1TO NK:IF K(Q,3)= 0GOTO 2880 2810 K(Q,3)= K(Q,3)- INT (PP* 2/ FN D(0)) 2820 IF K(Q,3)> 0GOTO 2880 2830 NO= 6:GOSUB 3610 2840 K(Q,3)= 0:K= K- 1:G(GX,GY)= G(GX,GY)- 100:Q(K(Q,1),K(Q,2))= 5 2850 EK= EK+ KC(K(Q,0))/ 10 2860 PLOT 3,44,20:PRINT K" " 2870 PLOT 3,127,(K(Q,2)- 1)* 3+ 2,K(Q,1)* 2+ 10,6:PRINT SP$ 2880 NEXT Q:PLOT 27,27:IF K= 0GOTO 1770 2890 GOTO 2330 2900 G(GX,GY)= G(GX,GY)- 1:IF G(GX,GY)> 0GOTO 2940 2910 PLOT 3,20,5,14:PRINT "YOU HAVE CREATED A BLACK HOLE!!!" 2920 PLOT 3,20,8:PRINT "VACATE AREA IMMEDIATELY!!":GOSUB 23 2930 BH= - 1 2940 FOR Q= 1TO S:IF S(Q,0)= AAAND S(Q,1)= BBTHEN S(Q,0)= 0:S(Q,1)= 0:GOTO 2960 2950 NEXT Q 2960 IF BHGOTO 2330 2970 GOTO 1690 2980 WH= Q(K(Q,1)+ SGN (QX- K(Q,1)),K(Q,2)+ SGN (QY- K(Q,2))) 2990 ON WHGOTO 3000,3010,3000,3000,3020,3000 3000 RETURN 3010 ZZ= ZZ+ 1:BA= 0:X= GX:Y= GY:GOSUB 3620 3020 Q(K(Q,1),K(Q,2))= 5 3030 PLOT 3,127,K(Q,2)* 3- 1,K(Q,1)* 2+ 10,6:PRINT SP$ 3040 K(Q,1)= K(Q,1)+ SGN (QX- K(Q,1)) 3050 K(Q,2)= K(Q,2)+ SGN (QY- K(Q,2)) 3060 F= 0:IF Q= 0THEN F= 5 3070 Q(K(Q,1),K(Q,2))= 1+ F 3080 PLOT 3,127,K(Q,2)* 3- 1,K(Q,1)* 2+ 10,CC(K(Q,0)):PRINT CL$(K(Q,0),0):PLOT 27,27,8 3090 RETURN 3100 C= CALL (3):FOR W= 1TO NK:IF K(W,3)> 0GOTO 3150 3110 NEXT W:IF NOT BAGOTO 3140 3120 AA= B1:BB= B2:GOSUB 2200 3130 PLOT 3,20,4:PRINT BA$" / "EN$" ANGLE ="AN:GOSUB 2320:GOTO 860 3140 PRINT "NO KLINGONS OR BASES IN THIS QUADRANT":GOTO 2330 3150 PRINT "NO. CLASS DIST. ANGLE ENERGY" 3160 FOR Q= WTO NK:IF K(Q,3)< = 0GOTO 3190 3170 AA= K(Q,1):BB= K(Q,2):GOSUB 2200 3180 PRINT ""Q," "CL$(K(Q,0),0),INT (FN D(X)* 100)/ 100,ANGLE,K(Q,3) 3190 NEXT Q:I= CALL (6):GOTO 950 3200 C= CALL (3) 3210 I= CALL (4):GOTO 950 3220 IF K(0,3)< = 0THEN RETURN 3230 AA= FX:BB= FY 3240 FX= FX+ SGN (GX- FX):FY= FY+ SGN (GY- FY) 3250 A= ABS (G(FX,FY)) 3260 IF A> 0GOTO 3290 3270 PLOT 8,11:PRINT ,,FS$" STOPPED AT "BH$ 3280 FX= AA:FY= BB:RETURN 3290 IF VAL (RIGHT$ (STR$ (A),2))< 10GOTO 3320 3300 X= FX:Y= FY:ZZ= 0:K(0,3)= K(0,3)+ 1E3:GOSUB 3620 3310 PLOT 3,25,2:PRINT "BY "FS$" AT"FY" ,"11- FX 3320 IF ABS (FX- GX)> 1OR ABS (FY- GY)> 1THEN RETURN 3330 IF FX< > GXOR FY< > GYGOTO 3410 3340 IF BATHEN BA= 0:S1= B1:S2= B2:GOTO 3360 3350 S1= FN Q(N):S2= FN Q(N):IF Q(S1,S2)< > 5GOTO 3350 3360 K(0,0)= 3:K(0,1)= S1:K(0,2)= S2:FS= - 1 3370 Q(S1,S2)= 6 3380 PLOT 3,127,S2* 3- 1,S1* 2+ 10,4:PRINT FS$; 3390 IF Z1> 0THEN PLOT 3,Z1,Z2:PRINT ""ABS (G(Z3,Z4)) 3400 NO= 9:GOSUB 3610:RETURN 3410 PLOT 3,30,5:PRINT "WARNING!" 3420 Z1= (FY- GY)* 4+ 55:Z2= (FX- GX)* 3+ 15 3430 PLOT 6,7,3,Z1,Z2 3440 Z3= FX:Z4= FY:PLOT 31:PRINT ABS (G(FX,FY)):PLOT 15 3450 NO= 7:GOSUB 3610 3460 PLOT 3,30,5:PRINT ""SPC( 9)"":RETURN 3470 K(0,3)= K(0,3)- 500 3480 PLOT 14,3,28,7:PRINT FS$" HIT!" 3490 PLOT 3,26,9:PRINT "ENERGY AT"INT (K(0,3)/ 15)" %":NO= 1:GOSUB 3610 3500 IF K(0,3)< = 0GOTO 3560 3510 FX= FX+ 2* SGN (5.1- FX):FY= FY+ 2* SGN (5.1- FY) 3520 IF G(FX,FY)= 0GOTO 3510 3530 FS= 0:PLOT 3,127,K(0,2)* 3- 1,K(0,1)* 2+ 10,6:PRINT SP$ 3540 Q(K(0,1),K(0,2))= 5:IF K(0,3)> 0THEN GOSUB 3250 3550 GOTO 2330 3560 PLOT 6,8,3,0,9,14,11,3,25,9,6,7:PRINT " "FS$" DESTROYED ! " 3570 K(0,3)= 0:EK= EK+ 500:FX= 0:FY= 0:GOTO 3530 3580 AA= K(0,1):BB= K(0,2):GOSUB 2200:NO= 3 3590 T= AN+ 80+ 20* RND (1):S1= AA:S2= BB:FT= - 1:GOSUB 3610 3600 U= 500:Q= 0:ZZ= 0:GOTO 1590 3610 C= CALL (256* NO):RETURN 3620 PLOT 3,0,ZZ,11,3,20,ZZ:PRINT "FEDERATION BASE DESTROYED!" 3630 NO= 2:G(X,Y)= ABS (G(X,Y))- 10:B= B- 1:GOSUB 3610:RETURN 3640 PLOT 6,75,27,25,96,3,30,15:PRINT EN$ 3650 D(FN Q(9))= - 2:D(FN Q(9))= - 2:PLOT 3,64,0 3660 GX= FN Q(10):GY= FN Q(10):ES= - 1:BH= 0:GOTO 350 3670 IF D(7)< 0GOTO 940 3680 T= I* 90- 1170:I= 7:GOTO 1200