5 REM...BUZBM.ECB Last Revised 04-25-83 R.E.H. 10 REM...BUZZ-BOMB AIR WAR GAME 15 REM... by RALPH HOPKINS EAGAN,MN 1/1/77 20 DIM A(30),B(30),C(14),D(30),E(9),F(30),G(30),H(30),I(30) 21 DIM J(10),K(10),N(10),O(101),Q(101),R(21),M(30),L(21) 22 DIM S(21),T(21),U(21),V(30),W(21),X(30),Y(30),Z(101) 25 DIM A$(93),B$(37),B9$(330),D$(51),M$(15),T4$(14),T6$(11) 27 DIM L$(100),Q$(330),S$(90),S1$(30) 30 DEF FNR(R0)=INT(RND(0)*R0) 31 LET S1=FNR(5)+5 33 LET S2=INT(FNR(3.3)+3) 35 LET S3=INT(FNR(3.3)+3) 37 LET S9=FNR(2.6)+4: PRINT "&K&J&J&J" 40 PRINT ,"# * # ... + + + + + + + + + + ... # * #" 42 PRINT ," * * ... ... * *" 45 PRINT ," <+> ... B U Z Z - B O M B ... <+>" 47 PRINT ," * * ... ... * *" 50 PRINT ,"# * # ... + + + + + + + + + + ... # * #" 60 LET A$=" ": LET A5$="BUZZ BOMB " 70 LET B$="X-1--2--3--4--5--6--7--8--9--10-X==X " 80 LET J$="&J": PRINT J$,J$ 90 LET C$=A$: LET P$=A$: LET P1$=A$: LET E$="German ": LET F$="British " 95 LET D$="(*)---<1>-<2>-<3>-<4>-<5>-<6>-<7>-<8>-<9>-<10>--(*)" 100 LET L$="P-FACP-FACARMTSARMTS[OIL][OIL]PORTSPORTSPORTSRADAR" 110 LET L$=L$+"BEARGHANGRHANGRHANGRHANGRHANGRCITY CITY CITY CITY " 130 LET Q$=" ": LET Q$=Q$+Q$+Q$ 140 LET Q$=Q$+Q$+Q$+Q$+Q$: LET B9$=Q$ 150 LET S$="<1><2><3><4><5><6><7><8><9><0>*1**2**3**4**5**6**7*" 155 LET S$=S$+"*8**9* @1@@2@@3@@4@@5@@6@@7@@8@@9@ " 157 LET S1$="#1##2##3##4##5##6##7##8##9##0#" 160 DATA 6,10,14,18,22,26,30,34,38,42 165 FOR X=1 TO 10: READ N(X): NEXT X 170 FOR X=1 TO 100: LET O(X)=0: NEXT X 180 PRINT " ~ Symbols = OCEAN. 'BLANK' areas = Dry land." 190 PRINT " Each plane is numbered. SPITFIRES are *1*, *2*, *3* etc." 195 PRINT E$;"BUZZ-BOMB's are <1> <2> etc. HE-111's are #1# #2# etc." 200 DATA 1,2,3,4,5,6,7,8,9,0,2,1,7,6,4,4,0,0,0,0,1,2,2,1,7,6,7,6,4 210 DATA 8,9,8,9,8,9,8,9,8,0,8,8,8,8,7,6,0,0,0,0,5,5,4,4,5,5,4,4,5 220 DATA 2,5,2,7,2,8,3,8,9,1,8,4,1,2,6,6,7,4,4,4,11 230 DATA 4,5,7,7,6,4,8,8,5,2,4,7,7,4,6,8,3,5,5,5,11 240 DATA 7,7,2,2,2,2,7,7,7,7,7,7,7,7,7,7,7,2,2,5,1 245 DATA 4,4,5,5,2,2,8,8,8,2,4,6,6,6,6,6,6,6,9,9,1 250 DATA 0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0,1,1,0,1 260 DATA -1,0,2,3,2,2,1,3,2,0,1,1,1,0,0 270 FOR X=1 TO 29: READ Y(X): NEXT X 275 FOR X=1 TO 29: READ X(X): NEXT X 280 FOR X=1 TO 21: READ S(X): NEXT X 285 FOR X=1 TO 21: READ T(X): NEXT X 287 FOR X=1 TO 21: READ U(X): NEXT X 288 FOR X=1 TO 21: READ W(X): NEXT X 290 FOR X=1 TO 9: READ J(X),K(X): NEXT X 295 READ C7,S0,S4,S5,S6,S7,S8,W,M,N2,N5,C0,W0,P7,P9 300 LET Z=FNR(100): LET R(21)=1 301 FOR X=11 TO S9+11: LET R(X)=100+Z+X: NEXT X 302 FOR X=1 TO 11: LET R(X)=R(X)+Z+X: NEXT X 303 FOR X=1 TO 4: LET R(X)=R(X)+FNR(100)+50: NEXT X 304 IF S9<6 THEN LET C9=17 ELSE LET C9=18: REM...CITY set-up 305 FOR X=C9 TO 20: LET R(X)=100+Z+X: LET S(X)=4: LET T(X)=5: NEXT X 306 IF C9=18 THEN LET L$(81,85)="HANGR" 307 IF S9+11<17 THEN LET U(17)=5: LET W(17)=6 308 LET S8=21-C9: REM...City units 310 FOR X=11 TO S2+10 311 LET A(X)=1: LET D(X)=120: LET F(X)=1100: LET G(X)=1000 312 NEXT X 313 FOR X=11 TO S3+20: LET B(X)=0: NEXT X 314 FOR X=21 TO S3+20: LET D(X)=120: NEXT X 316 FOR X=1 TO S1: REM...Arm Buzz bombs 317 LET V(X)=FNR(9): LET H(X)=10 318 LET A(X)=1: LET D(X)=50: LET F(X)=650: LET G(X)=0: LET B(X)=750 319 NEXT X 320 LET V=FNR(6)+4: LET H=FNR(4)+6 325 FOR X=11 TO S2+10: LET V(X)=V: LET H(X)=H: NEXT X 330 LET S(10)=FNR(7)+1: LET T(10)=FNR(7)+1 340 IF V<3 THEN LET I=8 ELSE LET I=1 345 FOR X=11 TO S3+20: LET I(X)=I: NEXT X 360 DATA " left ","Quadrant " 370 DATA "+CLOUDS+"," * SHOT DOWN *"," TARGET " 375 DATA " DESTROYED "," MISSED !!!","*BOMBED*"," hits on " 380 READ N6$,N7$ 390 READ T3$,T4$,T5$,T6$,T7$,T8$,T9$ 395 FOR X=1 TO S3+20: LET M(X)=D(X): NEXT X 396 FOR X=1 TO S9+11: LET L(X)=R(X): NEXT X 397 FOR X=1 TO 9: LET E(X)=0: NEXT X 400 FOR X=1 TO 6: REM...Relocate 1st 6 targets 410 IF RND(0)>.7 THEN LET S(X)=S(X)+1 415 IF RND(0)<.2 THEN LET S(X)=S(X)-1 420 IF RND(0)>.9 OR RND(0)<.07 THEN LET T(X)=T(X)+1 430 NEXT X 440 LET Z1=RND(0) 450 FOR X=13 TO S9+11: REM...Re-loc. all but 1st Airfield 455 IF Z1>.8 THEN LET S(X)=S(X)+1 460 IF RND(0)>.75 THEN LET T(X)=T(X)+1 465 IF Z1<.2 THEN LET S(X)=S(X)-1 467 NEXT X 468 IF T(15)=T(16) THEN LET T(15)=T(15)+2 470 LET L9=FNR(S9)+12 475 FOR P=21 TO S3+20: REM...Land squadron 2 480 LET A(P)=.5 485 IF S3>6 THEN LET L9=FNR(S9)+11 487 GOSUB 900 490 NEXT P 495 GOTO 600 500 REM...COURSE CALCULATOR 510 LET Y=Y1-Y2: LET X=X1-X2 520 IF X=0 THEN 530 ELSE LET Z=Y/X 525 IF Z<=1 THEN 540 530 IF Y>0 THEN LET C0=3 ELSE LET C0=7 535 IF X=0 THEN 590 ELSE LET Z=(X/Y) 539 GOTO 580 540 IF Z>-1 THEN 550 542 IF Y>0 THEN LET C0=2 ELSE LET C0=6 545 IF Z=-1 THEN 590 ELSE LET Z=1-ABS(X/Y) 549 GOTO 580 550 IF Z<=0 OR Z>1 THEN 560 552 IF Y>0 THEN LET C0=4 ELSE LET C0=8 555 IF Z=1 THEN 590 ELSE LET Z=1-ABS(Z) 559 GOTO 580 560 IF Z<=-1 OR Z>0 THEN LET Z=X/Y 570 IF X<0 THEN LET C0=1 ELSE LET C0=5 580 LET C0=C0+ABS(Z) 590 LET I1=(X1-X2)*(X1-X2): LET I2=(Y1-Y2)*(Y1-Y2) 591 LET D0=SQR(I1+I2) 595 RETURN 600 PRINT "&K&J You are the ";F$;"wing COMMANDER controlling" 610 PRINT " two squadrons of SPITFIRES defending against the" 620 PRINT " LUFTWAFFE over BRITAN.&J&J You are commanding:" 630 PRINT S2;" SPITFIRES marked *1*, *2*, *3* etc." 640 PRINT " and ";S3;" SPITFIRES marked @1@, @2@, @3@ etc." 645 PRINT "&J YOU HAVE BEEN ASSIGNED the task of shooting" 650 PRINT "down all BUZZ-BOMBS to win or prevent them from" 660 PRINT "destroying all of the target types they are after." 670 LET R0=INT((RND(0)*12.7)+1.5) 680 PRINT : LET P=11 690 PRINT " '-1' Gives command options , '0' ABORTS MOST INPUTS" 695 GOTO 5000 700 LET N$="GREEN" 710 FOR X=1 TO 9 720 IF A(X)=1 THEN LET V=V(P)-V(X): LET H=H(P)-H(X) ELSE 770 740 IF V>-2 AND V<2 AND H>-2 AND H<2 THEN LET N$="YELLOW" 750 IF V=0 AND H=0 THEN LET N$="RED": EXIT 795 770 NEXT X 795 RETURN 800 LET Q1=V(P): LET Q2=H(P) 820 GOSUB 2000 895 RETURN 900 IF A(P)=.5 THEN LET V(P)=S(L9) ELSE 995 910 LET H(P)=T(L9) 920 IF P<20 THEN LET Y(P)=P-2-S2 ELSE LET Y(P)=P-12-S3 950 LET X(P)=8: LET I(P)=3: LET F(P)=1100: LET G(P)=1000 960 LET B(P)=4: LET A(P)=.3 980 IF D(P)<80 THEN LET D(P)=D(P)+FNR(P)+10 995 RETURN 1000 FOR B=P TO D2 1005 IF N2=P AND B>P THEN 1080 1010 IF A(B)<1 THEN 1080 1020 LET I(B)=C0: GOSUB 1600 1030 LET Y1=Y(B): LET X1=X(B) 1040 LET Z=(Y1*30)+(X1*3)-2 1045 IF F(B)>0 THEN LET Q$(Z,Z+2)=A$ 1050 LET F(B)=F(B)-INT(W0*10) 1055 IF F(B)>0 THEN GOSUB 1500 1060 IF F(B)<0 THEN LET I=(B*3)-2 ELSE 1080 1065 PRINT "&J&J";S$(I,I+2);" CRASHED !!!" 1070 LET A(B)=.1 1080 NEXT B 1090 IF M>1 AND N2=0 THEN LET P=D2+1 1095 RETURN 1200 LET Y2=Y(E): LET X2=X(E): LET Y1=Y(P): LET X1=X(P): RETURN 1250 LET Y1=Y(P): LET X1=X(P): LET Y2=U(E): LET X2=W(E): RETURN 1300 LET Y1=Y(D)+Y: LET X1=X(D)+X: LET Y2=Y1+Y: LET X2=X1+X: RETURN 1400 IF T0=1 THEN LET Z$=S$(E*3-2,E*3) 1405 IF T0=2 THEN LET Z$=L$(E*5-4,E*5) 1410 IF RND(0)>.07 THEN 1450 ELSE PRINT 1415 IF T0=2 AND E>2 AND E<7 THEN 1420 ELSE 1450 1420 IF T0=1 THEN LET A(E)=.1: LET D(E)=0 ELSE LET R(E)=0 1425 IF J=4 AND T0=1 AND RND(0)>.75 THEN 1450 1430 PRINT A$,"<<<< B O O O M M >>>>";"&J&J" 1440 PRINT A$,Z$;" EXPLODED in FLAMES !!!" 1450 IF T0=2 THEN 1480 1460 IF D(E)<=0 AND A(E)>.1 THEN PRINT A$,Z$;T4$ ELSE RETURN 1470 LET A(E)=.1: LET D(E)=-1: RETURN 1480 IF R(E)>0 THEN RETURN ELSE LET R(E)=0 1490 PRINT A$;Z$;T5$;E;T6$: RETURN 1500 LET Y3=(V(B)*10)+Y1+(Y*W0): LET Z=ABS(INT(Y3/10)) 1510 LET X3=(H(B)*10)+X1+(X*W0) 1520 IF Z>=0 AND Z<=9 THEN LET V(B)=Z 1525 IF X3=10 THEN 1540 ELSE LET Z=ABS(INT(X3/10)) 1530 IF Z>=1 AND Z<=10 THEN LET H(B)=Z 1540 LET Y(B)=ABS(INT(Y3-V(B)*10)) 1545 LET X(B)=ABS(INT(X3-H(B)*10)) 1550 IF X(B)=0 THEN LET X(B)=10: LET H(B)=H(B)-1 1560 IF V(B)<0 THEN LET V(B)=0 1565 IF H(B)<1 THEN LET H(B)=1 1570 IF V(B)>9 THEN LET V(B)=9 1575 IF H(B)>10 THEN LET H(B)=10 1580 IF Y(B)<0 THEN LET Y(B)=0 1585 IF X(B)<1 THEN LET X(B)=1 1590 IF Y(B)>9 THEN LET Y(B)=9 1592 IF X(B)>10 THEN LET X(B)=10 1595 RETURN 1600 IF C0<1 OR C0>=9 THEN LET C0=1 1620 LET Y=J(C0)+(J(C0+1)-J(C0))*(C0-INT(C0)) 1630 LET X=K(C0)+(K(C0+1)-K(C0))*(C0-INT(C0)) 1695 RETURN 1700 PRINT ," -1 = Lists all these commands" 1710 PRINT ,"OPTION 0 = Look at a coded map of BRITAN" 1720 PRINT ,"OPTION 1 = See how many TARGETS/PLANES are left" 1730 PRINT ,"OPTION 2 = Request ";F$;"TARGET locations" 1740 PRINT ,"OPTION 3 = Report any ";E$;"planes in quadrant" 1750 PRINT ,"OPTION 4 = Report any local ";F$;"TARGET damage" 1760 PRINT ,"OPTION 5 = Aircraft squadron";M-1;" DAMAGE report" 1770 PRINT ,"OPTION 6 = Long range RADAR report" 1780 PRINT ,"OPTION 7 = ";E$;"courses and distances for ";P$ 1790 RETURN 1800 PRINT "RADAR station in quadrant ";S(10);T(10); 1810 PRINT " has been destroyed.": PRINT 1820 PRINT " Further RADAR operation will be impossible." 1830 PRINT 1840 GOTO 5500 1900 FOR Y=X+1 TO 9 1910 IF V(Y)=V(X) AND H(Y)=H(X) THEN LET Z=Z+1 ELSE 1930 1920 LET A(Y)=.9 1930 NEXT Y 1940 RETURN 1950 FOR Y=1 TO 9 1960 IF A(Y)=.9 THEN LET A(Y)=1 1970 NEXT Y 1980 GOTO 5400 2000 LET Q$=B9$ 2010 FOR X=1 TO 20 2020 IF Q1=S(X) AND Q2=T(X) THEN 2030 ELSE 2690 2030 LET Q=INT((U(X)*30)+(W(X)*3)-3): LET I=(X*5)-4 2040 IF R(X)<=0 THEN LET Q$(Q,Q+5)="((*)) " 2050 IF R(X)>0 THEN LET Q$(Q,Q+4)=L$(I,I+4) 2060 LET Z$="*0": IF X>9 THEN LET Z$="1#" 2070 LET Z=X: IF Z>9 THEN LET Z=X-10 2080 LET Z=Z+48: LET Z$(2,2)=CHR(Z) 2090 IF X2 AND X<5 THEN LET Q$(57,59)=">A<" ELSE 2300 2210 LET Q$(42,46)="//#\\" 2220 LET Q$(71,71)="(": REM....ARMTS 2225 LET Q$(77,77)=")" 2230 LET Q$(94,106)=">A< \\#//" 2240 LET Q$(44,44)=Z$(2,2): LET Q$(104,104)=Z$(2,2) 2300 IF X>4 AND X<7 THEN LET Q$(1,9)=">A< >A<" ELSE 2400 2310 LET Q$(33,37)=".:#:." 2330 LET Q$(93,97)="[###]": REM...[OIL] 2340 LET Q$(121,129)=">A< >A<" 2350 LET Q$(35,35)=Z$(2,2): LET Q$(95,95)=Z$(2,2) 2400 IF X>11 AND X6 AND X<10 THEN LET Q$(85,87)=">A<" ELSE 2600 2510 LET Q$(146,150)="..::" 2520 LET Q$(173,180)=".::' ~ " 2530 LET Q$(196,198)=">A<": REM...Ports 2540 LET Q$(201,210)="-=#=- ~ ~ " 2550 LET Q$(220,230)=">A< ..::' (" 2560 LET Q$(236,240)=") ~ " 2570 LET Q$(250,270)="..::' ~ ~ -=#=- ~ ~ " 2580 LET Q$(273,300)="...::://'' ~ ~ ~ ~ ~ " 2590 LET Q$(203,203)=Z$(2,2): LET Q$(263,263)=Z$(2,2) 2600 IF X=11 THEN LET Q$(133,135)=">A<" ELSE 2650 2610 LET Q$(127,129)=">A<" 2620 LET Q$(189,193)="*#11*" 2630 LET Q$(218,218)="{": LET Q$(224,224)="}": REM....BEARG 2640 LET Q$(244,254)=">A< ..#11.." 2650 IF X=10 THEN LET Q$(184,185)="=)" ELSE 2690 2660 LET Q$(304,306)=">A<" 2670 LET Q$(243,246)="*10**" 2690 NEXT X 2700 IF Q1=9 AND Q2>5 THEN 2750: REM...Locate OCEAN 2710 IF Q1=8 AND Q2>8 THEN 2750 2720 IF Q1=4 AND Q2>7 THEN 2750 2730 IF Q2=10 AND Q1<6 THEN 2750 2740 IF Q1=3 AND Q2>8 THEN 2750 2745 IF Q1=2 AND Q2>8 THEN 2750 ELSE 2800 2750 FOR X=1 TO 300 STEP 3: LET Q$(X,X+2)=" ~ ": NEXT X 2800 LET O((Q1*10)+Q2)=0 2810 FOR X=1 TO S3+20 2820 IF A(X)=.1 AND V(X)=Q1 AND H(X)=Q2 THEN 2830 ELSE 2845 2830 LET Q=(Y(X)*30)+(X(X)*3)-2: LET I=(X*3)-2 2840 LET Q$(Q,Q+2)="(*)" 2845 NEXT X 2850 FOR X=1 TO S3+20 2860 IF A(X)>.1 AND V(X)=Q1 AND H(X)=Q2 THEN 2870 ELSE 2885 2870 LET Q=(Y(X)*30)+(X(X)*3)-2: LET I=(X*3)-2 2880 LET Q$(Q,Q+2)=S$(I,I+2) 2885 NEXT X 2890 RETURN 2900 IF Q1=0 THEN PRINT "X-1--MAP EDGE-6--7--MAP EDGE-10-XXX" 2901 IF Q1<>0 THEN PRINT B$ 2905 IF Q1<0 OR Q1>9 OR Q2<1 OR Q2>10 THEN LET Q1=0: LET Q2=1 2908 GOSUB 700 2910 FOR Q=1 TO 300 STEP 30 2920 IF Q<331 THEN PRINT "X";Q$(Q,Q+29); 2930 IF Q=1 THEN PRINT " X 0 Quadrant(";Q1;" -";Q2;" )" 2935 IF Q=31 THEN PRINT " X 1"; ELSE 2940 2937 IF C=1 THEN PRINT " Sector (";Y(P);" -";X(P);" )" ELSE PRINT 2940 IF Q=61 THEN PRINT " X 2 CONDITION: ";N$ 2945 IF Q=91 THEN PRINT " X 3" 2950 IF Q=121 THEN PRINT " X 4 PLANE MOVING NEXT:" 2955 IF Q=151 THEN PRINT " X 5 ---=> ";P$ 2960 IF Q=181 THEN PRINT " X 6 Present heading: ";I(P) 2975 IF Q=211 THEN PRINT " X 7 Ammo left: ";G(P);" shells" 2980 IF Q=241 THEN PRINT " X 8 Fuel left:";F(P);" gallons" 2990 IF Q=271 THEN PRINT " X 9" 2992 NEXT Q 2995 IF C=4 THEN PRINT B$ ELSE PRINT B$; 2997 IF C=4 OR C>7 THEN RETURN ELSE INPUT " Next command--=>",C 2999 RETURN 3000 FOR K=P TO 30 3010 IF A(K)>.2 THEN LET P=K: EXIT 3060 ELSE 3030 3030 NEXT K 3040 IF K>S3+20 THEN LET P=1: LET P7=0: GOTO 3000 3060 IF P<20 THEN LET M=2 ELSE LET M=3 3070 IF P<10 THEN LET M=1 3095 RETURN 3100 LET Q1=V(D): LET Q2=H(D) 3110 GOSUB 2000 3120 LET C0=INT(I(D)) 3130 GOSUB 1600 3150 GOSUB 1300 3160 LET A7=(X1*3)+(Y1*30)-2: LET T1$=T3$ 3170 LET A8=(X2*3)+(Y2*30)-2: LET T2$=T3$ 3180 IF A7>0 AND A7<299 THEN LET T1$=Q$(A7,A7+2) 3190 IF A8>0 AND A8<299 THEN LET T2$=Q$(A8,A8+2) 3195 RETURN 3200 FOR X=P TO D2: REM...Skip take-off 3210 LET P=X 3220 IF A(X)<.3 THEN 3250 ELSE LET I=X*3 3230 IF A(X)=1 THEN EXIT 3260 ELSE LET E=X 3240 PRINT ,S$(I-2,I);" remaining on the ground." 3245 IF P=D2 THEN LET P=P+1 3250 NEXT X 3260 IF E>0 THEN 5400 3270 LET P=P5 3280 PRINT S$(P*3-2,P*3);" is flying." 3290 GOTO 5400 3300 PRINT J$,"*+* B A M M *+*",J$,A$,H0;T9$; 3305 IF T0=1 THEN LET I=E*3-2 ELSE LET I=E*5-4 3310 IF T0=1 THEN PRINT S$(I,I+2) ELSE PRINT L$(I,I+4);E 3320 IF T0=1 THEN LET D(E)=D(E)-H0 ELSE LET R(E)=R(E)-H0 3330 GOSUB 1400 3395 GOTO 5000 3400 PRINT "Enter 2 numbers for the Quadrant to be defended" 3410 PRINT " (Vertical, Horizontal) ---=>"; 3420 INPUT Q1,Q2 3430 IF Q1<0 OR Q1>9 THEN 3480 3440 IF Q2<0 OR Q2>9 THEN 3480 3450 GOSUB 2000 3460 GOSUB 2900 3470 RETURN 3480 PRINT "Valid numbers are 0 to 9": PRINT : GOTO 3400 3500 FOR X=P TO D2: REM...Land 3505 LET P=X 3510 IF A(X)<1 THEN 3570 3520 FOR L9=12 TO S9+11 3530 IF V(X)=S(L9) AND H(X)=T(L9) THEN LET I=P*3 ELSE 3560 3540 LET A(X)=.5: LET E=X: GOSUB 900 3550 PRINT ,S$(I-2,I);" landed on";: GOSUB 3595 3555 IF P=D2 THEN LET P=P+1 3560 NEXT L9 3570 NEXT X 3580 IF E>0 THEN 5400 ELSE LET P=P5 3590 PRINT "No planes could land.": GOTO 5400 3595 PRINT " Airfield";L9;" Quadrant";S(L9);T(L9): RETURN 3600 FOR Q=P TO D2: REM...Take-off 3605 LET P=Q 3610 IF A(Q)<.3 THEN 3680 3620 FOR L9=12 TO S9+11 3630 IF V(Q)=S(L9) AND H(Q)=T(L9) THEN LET I=Q*3 ELSE 3670 3640 IF A(Q)=1 THEN EXIT 3682 ELSE LET N2=P 3645 IF R(L9)<=.1 AND RND(0)>.6 THEN LET F(Q)=FNR(N5)*10 3650 LET A(Q)=1: LET W0=3: LET E=P: LET C0=3: GOSUB 1000 3660 PRINT TAB(9);S$(I-2,I);" took-off from";: GOSUB 3595 3665 IF P=D2 THEN LET P=P+1 3670 NEXT L9 3680 NEXT Q 3690 IF E>0 THEN 5400 ELSE 3270 3700 LET V=0: LET H=0: LET U=0: LET W=0: REM...4 MAP 3710 FOR Q=1 TO 100: LET Z(Q)=O(Q): NEXT Q 3720 FOR Q=1 TO S3+20 3740 IF A(Q)=1 THEN LET Z=(V(Q)*10)+H(Q) ELSE 3760 3750 IF Q>10 THEN LET Z(Z)=Z(Z)+1: REM ...Your plane count 3760 IF Q<21 THEN LET Z=(S(Q)*10)+T(Q) ELSE 3790 3770 IF R(Q)>0 THEN LET Z(Z)=Z(Z)+100: REM ...Cnt Targets 3790 NEXT Q 3795 RETURN 3800 PRINT ,"You have these planes flying:" 3810 FOR X=P TO D2 3820 IF A(X)=1 THEN PRINT S$((X*3)-2,X*3);A$; 3830 NEXT X 3840 PRINT : LET Z=(M*10)-10: RETURN 3900 PRINT ,"You have these SPITFIRES:" 3910 FOR X=P TO D2 3915 IF A(X)<.3 THEN 3950 3920 PRINT ,S$(X*3-2,X*3);A$; 3930 IF A(X)=1 THEN PRINT " is flying " 3940 IF A(X)=.3 THEN PRINT " landed..." 3950 NEXT X 3960 LET P5=P: LET E=0: LET Z=(M*10)-10 3970 PRINT 3980 RETURN 4000 GOSUB 3800 4005 PRINT A$;"You can move from plane ";P-Z;" to ";D2-Z 4010 PRINT " or any number in between. ('0' MOVES ALL PLANES)&J" 4015 INPUT " Input the 'LAST' plane to move ---=>",X0 4020 IF X0=0 THEN 4030 4025 IF X0D2-Z THEN 4000 ELSE LET D2=X0+Z 4030 PRINT : PRINT P$;" New heading?"; 4035 INPUT " ('0' MEANS KEEP SAME HEADING)---=>",C0 4040 IF C0<0 OR C0>=9 THEN 4000 4050 IF C0=0 THEN 4060 4055 FOR I=P TO D2: LET I(I)=C0: NEXT I 4060 PRINT : PRINT P$;"...Speed ?;"; 4065 INPUT " or no. of spaces to move(1-6)---=>",W0 4070 IF W0=0 THEN 5400 4080 IF W0<1 OR W0>6 THEN 4060 ELSE LET W0=INT(W0) 4090 GOTO 4900 4100 GOSUB 800 4110 GOSUB 2900 4195 GOTO 5530 4200 FOR D=P TO D2 4210 IF A(D)=1 THEN GOSUB 3100 ELSE 4250 4220 LET P$=S$(D*3-2,D*3) 4230 PRINT A$;P$;" Heading: ";I(D); 4240 PRINT " Possible targets(?)---=>";T1$;T2$ 4250 NEXT D 4290 PRINT 4295 GOTO 5400 4300 IF G(P)<=0 THEN PRINT A$,P$;" ** YOU ARE OUT OF AMMO **" 4305 IF G(P)<=0 OR A(P)=.3 THEN 5500 ELSE LET Z=FNR(180)+20 4310 IF P3=P THEN 4395 ELSE LET P3=P: LET D=P 4315 PRINT " RAT-A-TAT-TAT-TAT",Z;" shells shot by ";P$;J$ 4320 LET H0=FNR(Z/2)-FNR(25) 4325 LET G(P)=G(P)-Z: LET F(P)=F(P)-10 4330 IF H0>0 THEN LET C0=I(P) ELSE PRINT A$,P$;T7$ 4335 IF H0>0 THEN GOSUB 1600 ELSE 5500 4340 GOSUB 1300 4350 FOR E=1 TO S3+20: REM...All planes 4351 IF A(E)<.3 THEN 4365 4353 IF V(P)=V(E) AND H(P)=H(E) THEN LET T0=1 ELSE 4365 4355 IF Y(E)=Y(P) AND X(E)=X(P) THEN EXIT 3300 4357 IF Y(E)=Y1 AND X(E)=X1 THEN EXIT 3300 4360 IF Y(E)=Y2 AND X(E)=X2 THEN EXIT 3300 4365 NEXT E 4370 FOR E=1 TO 20: REM...Ground targets 4372 IF V(P)=S(E) AND H(P)=T(E) THEN LET T0=2 ELSE 4385 4375 IF U(E)=Y1 AND W(E)=X1 THEN EXIT 3300 4377 IF U(E)=Y1 AND W(E)+1=X1 THEN EXIT 3300 4380 IF U(E)=Y2 AND W(E)=X2 THEN EXIT 3300 4382 IF U(E)=Y2 AND W(E)+1=X2 THEN EXIT 3300 4385 NEXT E 4390 PRINT J$,"*** NO POSSIBLE TARGETS ***&J": GOTO 5400 4395 PRINT ,"*** YOU SHOT ALLREADY - Try again next turn ***&J" 4399 GOTO 5500 4400 IF P1=M THEN 4395 ELSE LET X3=0: LET Z=0 4410 PRINT "What Quadrant do you want to defend?": GOSUB 3400 4420 FOR X=1 TO 98: REM...Count >A< guns 4425 IF Q$(X*3-2,X*3)=">A<" THEN LET X3=X3+1 4428 NEXT X 4429 IF X3=0 THEN 4390 4430 FOR I=1 TO 9 4435 IF A(I)=1 AND V(I)=Q1 AND H(I)=Q2 THEN EXIT 4440 4438 NEXT I 4439 GOTO 4390 4440 LET Z=INT(RND(0)*X3*X3)+(1*X3): LET X=FNR(99) 4445 LET Z$=S$(I*3-2,I*3): LET P1=M: LET D(I)=D(I)-Z 4447 IF G(I)=0 THEN LET M$=A5$ ELSE LET M$=E$+"bomber " 4450 IF Z<=0 THEN PRINT ,M$;" missed.": GOTO 5400 4455 PRINT ,Z;T9$;M$;Z$ 4460 IF X>7 THEN 4470 ELSE PRINT ,"What a lucky hit!!" 4465 PRINT ,M$;Z$;" *** EXPLODED! ***": PRINT 4467 LET D(I)=-1: LET A(I)=.1: GOTO 5000 4470 IF X<93 THEN 4480 ELSE PRINT ,M$;Z$;" CRASHED"; 4475 IF RND(0)>.6 THEN PRINT "!" ELSE PRINT "in FLAMES!" 4477 LET D(I)=-2: LET A(I)=.1: GOTO 5000 4480 IF D(I)<=0 THEN LET A(I)=.1 4485 IF A(I)>.1 THEN 5400 4490 PRINT ,M$;T4$: GOTO 5000 4500 GOSUB 3900 4505 PRINT "(1) Land plane ";P-Z;" to ";D2-Z 4510 PRINT "(2) Take-off with plane ";P-Z;" to ";D2-Z 4515 PRINT "(3) Stay on airfield: plane ";P-Z;" to ";D2-Z 4520 INPUT "Enter option 0 to 3 ---=>",C 4525 IF C=0 THEN 5400 ELSE LET C=INT(C) 4530 IF C<1 OR C>3 THEN 5400 ELSE PRINT 4540 PRINT "Enter the 'LAST' plane to "; 4545 IF C=1 THEN PRINT "land"; 4550 IF C=2 THEN PRINT "take-off"; 4555 IF C=3 THEN PRINT "stay on an airfield"; 4560 INPUT " (0=ALL) ---=>",X0 4565 PRINT 4570 IF X0=0 THEN 4590 ELSE LET X0=INT(X0) 4580 IF X0D2-Z THEN 4500 ELSE LET D2=X0+Z 4590 ON C GOTO 3500,3600,3200 4600 PRINT ,"*** REPORT FOR SQUADRON ";M-1;" ***&J" 4610 FOR X=D1 TO D2 4620 LET Z$=S$(X*3-2,X*3) 4630 IF A(X)<=.1 THEN PRINT A$;Z$;A$;T4$: GOTO 4680 4640 PRINT Z$;" Course: ";I(X);TAB(20); 4650 PRINT " in Quadrant ";V(X);H(X); 4660 PRINT " at Sector ";Y(X);X(X) 4680 NEXT X 4690 PRINT 4695 GOTO 5500 4700 PRINT 4710 IF C7=-1 THEN GOSUB 1700 4720 IF C7<>-1 THEN PRINT ,"-1 Gives command summary" 4730 PRINT 4740 PRINT "<***> Which option Commander ? (-1,0 to 7) ---=>"; 4750 INPUT C7 4760 IF C7<0 THEN 4700 ELSE PRINT 4770 LET C7=INT(C7) 4780 IF C7>7 THEN 5500 4790 ON C7+1 GOTO 8000,8100,8200,8300,8400,8500,8600,8700 4795 GOTO 5500 4800 GOSUB 3800 4805 PRINT "Choose flight formation: (1)STACK (2)STRAIGHT LINE"; 4810 INPUT "---=>",C 4812 IF C=0 THEN 5500 ELSE LET C0=I(P) 4815 IF C<1 OR C>2 THEN 4800 ELSE LET V1=V(P) 4820 FOR E=P TO D2 4825 IF V(E)=V(P) AND H(E)=H(P) THEN LET Z=P ELSE EXIT 4850 4830 IF A(E)=1 THEN LET Y(E)=Y(P) ELSE 4845 4840 LET X(E)=X(P): LET I(E)=I(P) 4845 NEXT E 4850 IF C=1 THEN 4890 ELSE LET H1=H(P) 4855 FOR P=Z TO D2 4860 IF A(P)=1 THEN LET W0=D2-P ELSE 4885 4870 IF V1=V(P) AND H1=H(P) THEN LET N2=P ELSE EXIT 4892 4880 GOSUB 1000 4885 NEXT P 4890 IF M=2 THEN LET P=19 ELSE LET P=1 4892 LET W0=6 4895 GOTO 4990 4900 PRINT 4905 FOR E=P TO D2 4910 IF A(E)<=.3 THEN 4970 ELSE LET N2=P 4920 LET C0=I(P) 4930 PRINT ,S$(P*3-2,P*3);" moving";W0;" unit"; 4940 IF W0>1 THEN PRINT "s"; 4950 PRINT " on course";C0 4960 GOSUB 1000 4970 LET P=P+1 4980 NEXT E 4990 IF W0>N5 THEN LET N5=W0 4995 PRINT : GOTO 5400 5000 PRINT : LET R1=0 5010 FOR X=1 TO 14: LET C(X)=0: NEXT X 5100 FOR X=1 TO S3+20: REM...Plane count 5110 IF A(X)<=.1 THEN 5190 5120 IF X>9 THEN 5160 5130 IF G(X)=0 THEN LET C(1)=C(1)+1 5140 IF G(X)<>0 THEN LET C(12)=C(12)+1 ELSE 5160 5150 IF B(X)>0 THEN LET C(11)=C(11)+1: REM...planes w/bombs 5160 IF X>10 AND X<20 THEN LET C(2)=C(2)+1 5170 IF X>20 THEN LET C(3)=C(3)+1 5190 NEXT X 5200 FOR X=1 TO 20: REM...Target count 5205 IF R(X)<=0 THEN 5290 5210 IF X<3 THEN LET C(7)=C(7)+1: REM...P-FAC 5220 IF X=3 OR X=4 THEN LET C(6)=C(6)+1: REM...ARMTS 5230 IF X=5 OR X=6 THEN LET C(4)=C(4)+1: REM...OIL 5240 IF X>6 AND X<10 THEN LET C(5)=C(5)+1: REM...PORTS 5250 IF X=10 THEN LET C(14)=1: REM...RADAR 5260 IF X=11 THEN LET C(13)=1: REM...BEARG 5270 IF X>11 AND X=C9 THEN LET C(8)=C(8)+1: REM...CITY 5290 NEXT X 5300 IF C(4)=0 OR C(5)=0 THEN LET W=2 5310 IF C(6)=0 OR C(7)=0 THEN LET W=2 5320 IF C(8)=0 OR C(9)=0 THEN LET W=2 5330 IF C(13)=0 THEN LET W=2 5350 IF C(1)=0 AND C(11)=0 THEN LET W=1 5360 IF C(1)=0 AND C(12)=0 THEN LET W=1 5400 IF W=1 OR W=2 OR W>3 THEN 9000 ELSE GOSUB 3000 5410 LET Z=P*3-2: LET P$=S$(Z,Z+2) 5430 IF A(P)<=.1 THEN GOSUB 3000 5440 IF P$=" " THEN GOSUB 3000 5450 IF M=2 THEN LET D1=11 ELSE LET D1=21 5460 IF M=2 THEN LET D2=S2+10 ELSE LET D2=S3+20 5470 IF I(P)=0 THEN LET I(P)=1.1 5500 IF M=1 THEN 6000 5510 IF M=2 THEN PRINT "* ";F$;"Squadron 1 turn *, ";P$; 5515 IF M=3 THEN PRINT "@ ";F$;"Squadron 2 turn @, ";P$; 5520 IF M>1 THEN INPUT " Next COMMAND? (0-9)",C 5525 LET E0=P: IF C(1)=S1 THEN LET P3=0: LET P4=0 5526 IF C=10 THEN 8800: REM...Debug 5530 IF C<0 OR C>9 THEN 5800 ELSE PRINT 5540 IF C<2 THEN PRINT ELSE GOSUB 5900 5550 ON C+1 GOTO 4000,4100,4200,4300,4400,4500,4600,4700,4800,4900 5800 PRINT 5810 FOR C=0 TO 9 5820 GOSUB 5900 5830 NEXT C 5850 PRINT : GOTO 5500 5900 PRINT "*COMMAND* ";C;" *** ---=>"; 5905 IF C=0 THEN PRINT " MOVE PLANES" 5910 IF C=1 THEN PRINT " PLANES'S QUADRANT SCAN" 5920 IF C=2 THEN PRINT " POSSIBLE SHOOTING TARGETS" 5930 IF C=3 THEN PRINT " . . . SHOOTING . . ." 5940 IF C=4 THEN PRINT " FIRE ANTI-AIRCRAFT GUNS" 5950 IF C=5 THEN PRINT " LANDINGS and TAKEOFFS" 5960 IF C=6 THEN PRINT " PLANE HEADINGS AND LOCATIONS" 5970 IF C=7 THEN PRINT " COMMANDER BRIEFING (8 OPTIONS)" 5980 IF C=8 THEN PRINT " SPECIAL MOVEMENT OPTIONS" 5990 IF C=9 THEN PRINT " MOVE ALL PLANES ON PRESENT HEADING" 5995 RETURN 6000 PRINT J$,"* ";E$;"planes moving";N5;" now *&J" 6010 IF C(1)<4 AND P9=0 THEN LET P9=1 ELSE 6090 6020 FOR P=1 TO 9: REM...New HE-111's 6030 IF A(P)>.1 THEN 6080 ELSE LET A(P)=1: LET H(P)=9 6040 LET I=P*3-2: LET S$(I,I+2)=S1$(I,I+2): LET S0=S0+1 6050 LET B(P)=350: LET F(P)=2000: REM...Bombs + fuel 6060 LET G(P)=600: LET D(P)=110: LET M(P)=110: REM...Ammo + defense 6070 LET V(P)=FNR(5)+5: LET H(P)=10: LET X(P)=10: REM...Entry point 6080 NEXT P 6090 LET P=0 6100 LET P=P+1 6110 IF A(P)=1 THEN LET F0=0 ELSE 6890 6120 IF E(P)=21 AND B(P)>0 THEN LET E(P)=0: REM...Need a target 6130 IF E(P)>0 THEN 6170 6140 GOSUB 7700: REM...Pick out a random target 6145 LET E=D3 6150 IF D4>1 THEN LET E=FNR(D4)+D3 6160 IF R(E)>0 THEN LET E(P)=E ELSE LET E(P)=FNR(20)+1 6170 LET W0=1 6180 LET X=(P*3)-2: LET P$=S$(X,X+2) 6200 LET Z0=0 6210 IF G(P)=0 THEN 6300 6220 IF B(P)>0 THEN 6300 6230 LET I(P)=8: GOTO 6800 6300 LET Z0=Z0+1 6305 IF G(P)>0 AND Z0=3 THEN 6850: REM...HE-111'a are slower 6307 IF Z0=6 THEN 6850: REM...Speed difference 6310 IF G(P)=0 THEN 6400 6320 FOR F=11 TO S3+20 6325 IF A(F)<1 THEN 6390 6330 IF F0>1 THEN EXIT 6400 6340 IF V(P)=V(F) AND H(P)=H(F) THEN 6350 ELSE 6390 6350 GOSUB 7300: REM...gunners shoot 6390 NEXT F 6400 IF G(P)=0 AND F(P)=200 THEN GOSUB 7200 6405 IF G(P)>0 AND F(P)=900 THEN GOSUB 7200 6407 IF G(P)>0 AND D(P)<80 THEN GOSUB 7200 6410 LET E=E(P): REM...Navigation 6420 GOSUB 7100 6460 LET V=V1-V2: LET H=H1-H2: REM...Get difference 6470 IF V=0 AND H=0 THEN 6500 6480 GOSUB 7000: REM...Navigate to target 6490 GOTO 6800: REM...Move 6500 FOR I=1 TO 20: REM...Bombing 6510 IF S(I)=V(P) AND T(I)=H(P) THEN 6520 ELSE 6620 6520 IF U(I)=Y(P) AND W(I)=X(P) THEN 6530 ELSE 6620 6530 PRINT A$;P$;" is over target ";I,L$((I*5)-4,I*5) 6540 LET Z=FNR(B(P))+200: LET B(P)=0: LET Z$="&J&[&E&G" 6550 PRINT TAB(8);P$;" ";Z$;" ";Z$;" ";Z$;" ";Z$;Z$;Z$;Z$;Z$;Z$ 6560 PRINT ,"*** B A W W O O O M ***" 6570 LET R(I)=R(I)-Z: LET E(P)=21 6580 PRINT A$;T5$;I; 6590 IF R(I)<=0 THEN PRINT T6$ ELSE PRINT T7$ 6600 IF G(P)=0 THEN LET A(P)=0: REM...Buzz-bomb destroyed 6610 IF A(P)=1 THEN EXIT 6800 ELSE EXIT 6890 6620 NEXT I 6800 LET N2=P: LET D2=P: LET C0=I(P): REM...MOVE ROUTINE 6830 GOSUB 1000 6840 IF R(E(P))<=0 THEN LET E(P)=21: REM...Bad target select 6850 IF Z0=N5 THEN GOSUB 7400 6880 IF Z00 AND H<0 THEN LET I(P)=2 7030 IF V>0 AND H=0 THEN LET I(P)=3 7040 IF V>0 AND H>0 THEN LET I(P)=4 7050 IF V=0 AND H>0 THEN LET I(P)=5 7060 IF V<0 AND H>0 THEN LET I(P)=6 7070 IF V<0 AND H=0 THEN LET I(P)=7 7080 IF V<0 AND H<0 THEN LET I(P)=8 7095 RETURN 7100 LET V1=(V(P)*10)+Y(P): REM...Where German is 7110 LET H1=(H(P)*10)+X(P) 7120 LET V2=(S(E)*10)+U(E): REM...Where target is 7130 LET H2=(T(E)*10)+W(E) 7140 RETURN 7200 LET D4=1E3: REM...Distance to nearest British target 7210 IF B(P)=0 THEN RETURN 7220 FOR E=1 TO 20 7230 IF R(E)<=0 THEN 7280 7240 GOSUB 7100 7250 LET Y=(V1-V2)*(V1-V2): LET X=(H1-H2)*(H1-H2) 7260 LET D0=SQR(Y+X) 7270 IF D4>D0 THEN LET E(P)=I: LET D4=D0 7280 NEXT I 7290 RETURN 7300 IF G(P)<1 THEN RETURN : REM...gunners shoot 7310 IF ABS(Y(P)-Y(F))>1 THEN RETURN : REM...Range = 1 square 7320 IF ABS(X(P)-X(F))>1 THEN RETURN : REM...around HE-111's 7330 PRINT ,"TAT-TAT-TAT","++++ W H A M M O O ++++" 7340 LET Z=FNR(50)+15: LET G(P)=G(P)-Z*2: LET H0=FNR(Z/2)+1 7350 LET D(F)=D(F)-H0: LET F0=1: LET I=F*3: PRINT 7360 PRINT H0;T9$;S$(I-2,I);" from ";P$ 7370 LET F0=F0+1: REM...Gunners shot counter 7380 IF D(F)>0 THEN RETURN ELSE LET A(F)=.1 7385 PRINT A$;S$(F*3-2,F*3);T4$;" in ";N7$;V(F);H(F) 7390 RETURN 7400 FOR F=1 TO 20 7410 IF S(F)=V(P) AND T(F)=H(P) THEN LET T0=1 ELSE 7490 7420 IF A(P)=1 THEN LET E=P ELSE 7490 7430 LET H0=FNR(8)+INT(W0+W0)-FNR(4) 7435 IF R(F)<=0 AND H0>1 THEN LET H0=INT(H0/2) 7440 IF H0>0 THEN LET D(P)=D(P)-H0 ELSE 7490 7450 PRINT A$;H0;" ANTI-AIRCRAFT hits on ";P$; 7455 PRINT " in quadrant";S(F);T(F) 7460 IF D(P)<=0 THEN GOSUB 1400 7470 IF A(P)=.1 THEN PRINT A$;P$;T4$;" in ";N7$;S(F);T(F) 7480 EXIT 7495 7490 NEXT F 7495 RETURN 7700 LET D4=2: REM...Select target parameters 7710 IF R0<3 THEN LET D3=1: RETURN : REM...P-FAC 7720 IF R0<5 THEN LET D3=3: RETURN : REM...ARMTS 7730 IF R0<7 THEN LET D3=5: RETURN : REM...[OIL] 7740 IF R0<10 THEN LET D3=7: LET D4=3: RETURN : REM...PORTS 7750 IF R0=10 THEN LET D3=10: LET D4=1: RETURN : REM...RADAR 7760 IF R0=11 THEN LET D3=11: LET D4=1: RETURN : REM...BEARG 7770 IF R00 THEN LET I=INT(V/10) ELSE LET I=0 8035 LET Z$(2,2)=CHR(I+48): PRINT Z$; 8040 FOR H=1 TO 10 8050 PRINT TAB(N(H));Z(V+H); 8055 NEXT H 8060 PRINT TAB(48);Z$;" "; 8070 LET Y=(M-1)*10: LET X=Y+I: LET Q=X*3-2 8075 IF X=0 THEN PRINT : GOTO 8085 8080 IF A(X)>.1 THEN PRINT S$(Q,Q+2);V(X);H(X) ELSE PRINT 8085 NEXT V 8090 PRINT D$;J$ 8095 GOTO 5500 8100 PRINT E$;" BUZZ-BOMBS ";N6$;C(1), 8102 IF S1-C(1)>0 THEN PRINT T4$;S1-C(1) ELSE PRINT 8105 IF P9>0 THEN PRINT E$;"HE-111 Bombers ";N6$;C(12), 8107 IF P9>0 THEN IF S0-C(12)>0 THEN PRINT T4$;S0-C(12) ELSE PRINT 8110 PRINT F$;"Squad. 1 Fighters ";N6$;C(2), 8112 IF S2-C(2)>0 THEN PRINT T4$;S2-C(2) ELSE PRINT 8115 PRINT F$;"Squad. 2 Fighters ";N6$;C(3), 8117 IF S3-C(3)>0 THEN PRINT T4$;S3-C(3) ELSE PRINT 8120 PRINT F$;"AIRCRAFT FACTORIES";N6$;C(7), 8125 IF S7-C(7)>0 THEN PRINT T8$;S7-C(7) ELSE PRINT 8130 PRINT F$;"AIRFIELDS ";N6$;C(9), 8135 IF S9-C(9)>0 THEN PRINT T8$;S9-C(9) ELSE PRINT 8140 PRINT F$;"AMMUNITION DEPOTS ";N6$;C(6), 8145 IF S6-C(6)>0 THEN PRINT T8$;S6-C(6) ELSE PRINT 8150 PRINT F$;"BALL BEARING plant";N6$;C(13), 8155 IF C(13)=0 THEN PRINT T8$;1 ELSE PRINT 8160 PRINT F$;"CITY units ";N6$;C(8), 8165 IF S8-C(8)>0 THEN PRINT T8$;S8-C(8) ELSE PRINT 8170 PRINT F$;" [OIL] TANKS ";N6$;C(4), 8175 IF S4-C(4)>0 THEN PRINT T8$;S4-C(4) ELSE PRINT 8180 PRINT F$;"PORTS (shipping)";N6$;C(5), 8185 IF S5-C(5)>0 THEN PRINT T8$;S5-C(5) ELSE PRINT 8190 PRINT F$;"RADAR INSTALATION ";N6$;C(14); 8192 IF C(14)=0 THEN PRINT T8$;1 ELSE PRINT 8193 PRINT 8195 GOTO 5500 8200 PRINT "&K": PRINT 8205 PRINT "*** INTELLIGENCE REPORTS OF TARGET LOCATIONS ***" 8210 FOR X=1 TO 20 8220 IF R(X)>0 THEN LET Z$=L$(X*5-4,X*5) 8230 IF R(X)<=0 THEN LET Z$="((*))" 8240 IF X<11 THEN CURSOR X+2,1 ELSE CURSOR X-8,32 8250 PRINT Z$;%3I;X;A$;N7$;S(X);T(X); 8280 NEXT X 8290 CURSOR 13,1 8295 PRINT : GOTO 5400 8300 PRINT A$;P$;" OBSERVING FROM QUADRANT ";V(P);H(P) 8305 PRINT "&J*** OBSERVATION REPORT of any nearby GERMANS ***&J" 8310 FOR X=1 TO 9 8320 IF A(X)<1 THEN 8380 8330 IF V(P)=V(X) AND H(P)=H(X) THEN 8340 ELSE 8380 8340 PRINT S$(X*3-2,X*3);" COURSE: ";I(X); 8350 PRINT " at Sector ";Y(X);X(X);" "; 8360 IF A(X)=.3 THEN PRINT "*** LANDED! ***": GOTO 8380 8370 LET Z=M(X)-D(X): IF Z=0 THEN PRINT " ": GOTO 8380 8375 PRINT INT((Z/M(X))*100);" % Damage!" 8380 NEXT X 8390 GOTO 8490 8400 PRINT A$;P$;" OBSERVING from QUADRANT ";V(P);H(P): PRINT 8405 PRINT "*** OBSERVATION REPORT of any TARGET damage ***": PRINT 8410 FOR X=1 TO 20 8430 IF V(P)=S(X) AND H(P)=T(X) THEN 8440 ELSE 8480 8440 PRINT L$(X*5-4,X*5);" ";X;TAB(9); 8450 PRINT " at Sector ";U(X);W(X);" "; 8455 LET Z=L(X)-R(X) 8460 IF R(X)<=0 THEN PRINT "*** DESTROYED !!! ***": GOTO 8480 8470 IF Z=0 THEN PRINT "... STILL INTACT! ...": GOTO 8480 8475 PRINT %3I;INT((Z/L(X))*100);" % Damage!" 8480 NEXT X 8490 PRINT : PRINT ,"*** END OF REPORT ***": PRINT 8495 GOTO 5400 8500 PRINT : PRINT ,"### PLANE DAMAGE REPORT ###": PRINT 8510 FOR X=D1 TO D2 8530 PRINT A$;S$(X*3-2,X*3);" ... "; 8540 IF A(X)<=.1 THEN PRINT "### DESTROYED ###": GOTO 8580 8550 LET Z=M(X)-D(X): IF Z=0 THEN PRINT "NONE.": GOTO 8580 8560 PRINT %3I;INT((Z/M(X))*100);" % Damage!" 8580 NEXT X 8590 PRINT 8595 GOTO 5400 8600 PRINT : PRINT ,"### LONG RANGE RADAR REPORT ###": PRINT 8610 IF R(10)<=0 THEN 1800 8620 FOR X=1 TO 9 8630 IF A(X)<1 THEN 8670 ELSE LET Z=1 8640 IF X<9 THEN GOSUB 1900 8650 IF Z>1 THEN PRINT TAB(11);Z;" "; ELSE PRINT , 8660 PRINT E$;"aircraft in quadrant";%3I;V(X);H(X) 8670 NEXT X 8680 PRINT 8690 GOTO 1950 8700 PRINT TAB(9); 8705 PRINT ,"### ENEMY COURSE RADAR REPORT for ";P$;" ###" 8710 IF R(10)<=0 THEN 1800 ELSE PRINT 8720 FOR I=1 TO 9 8730 IF A(I)<1 THEN 8770 8740 LET Y1=V(P)*10+Y(P): LET X1=H(P)*10+X(P) 8745 LET Y2=V(I)*10+Y(I): LET X2=H(I)*10+X(I) 8750 GOSUB 500: IF D0>10 THEN LET D0=INT(D0) 8760 PRINT A$;E$;"on course =";%4F1;C0, 8765 PRINT " distance: ";%Z4F1;D0;" units" 8770 NEXT I 8780 PRINT 8790 GOTO 5400 8800 FOR X=1 TO 9: REM...Debug 8810 PRINT S$(X*3-2,X*3);I(X);D(X);M(X), 8820 PRINT V(X);H(X);Y(X);X(X),B(X);G(X);F(X),A(X);E(X) 8830 NEXT X 8840 GOTO 5400 9000 IF W=1 THEN PRINT "&K&J","*=*=* Y O U W O N *=*=*" ELSE PRINT 9010 IF W=2 THEN PRINT J$,"* THE GERMANS WON! *" ELSE PRINT 9020 IF W=1 THEN 9500 ELSE PRINT 9100 PRINT F$;" planes";T4$ 9110 FOR X=11 TO S3+20 9115 IF X>S2+10 AND X<21 THEN 9130 9120 IF A(X)<.3 THEN PRINT S$(X*3-2,X*3);A$; 9130 NEXT X 9140 PRINT 9500 IF C(1)=0 THEN PRINT ,"All ";A5$;"'s ";T6$ 9510 IF C(12)=0 THEN PRINT ,"All HE-111 bombers ";T6$ 9540 PRINT 9600 PRINT F$;T5$;T8$ 9610 FOR X=1 TO 19 9620 IF X>S9+10 AND X<17 THEN 9640 9630 IF R(X)<=0 THEN PRINT L$(X*5-4,X*5);X, 9640 NEXT X 9650 PRINT 9700 PRINT " Type 'RUN' to play again." 9990 END