10 REM ... MIDWY.ECB 15 PRINT "&K&J": REM...*MIDWAY*...Revised* 06-03-79 R.E.H. 20 DIM A(30),B(30),C(30),F(30),H(30),I(30),L(30),N(10) 30 DIM Q(110),T(30),V(30),X(30),Y(30),Z(10),A$(120),Q$(410) 40 DIM A1$(19),A3$(29),A8$(11),B$(45),D$(51) 50 DIM F$(24),N3$(11),N9$(17),T2$(17),T4$(14),Z$(17) 60 FOR X=1 TO 29 65 LET H(X)=8: LET V(X)=8 70 LET F(X)=10000: LET I(X)=5: LET L(X)=30 75 NEXT X 80 REM.*** T(P) = Type of unit: 0 = LAND TARGET 81 REM... 1 = SEARCH PLANE 6 = Light cruiser 82 REM... 2 = FIGHTER 7 = Heavy cruiser 83 REM... 3 = DIVE BOMBER 8 = Battleship 84 REM... 4 = TORP BOMBER 9 = Aircraft carrier 90 PRINT " YOU are the captain of the aircraft carrier *ENTERPRISE*" 100 DATA 1,1,1,.5,.5,.5,.5,.5,.5,5,5,4,.5,.5,.5,.5,.5,.5,.5 105 DATA 5,6,4,3,1,1,1,1,1,1 110 DATA 3,2,5,1,1,1,3,6,2,5,4,3,1,1,4,4,3,9,5,5,6,4,3,1,1,3,4,7,9 120 DATA 0,0,0,1,1,1,2,3,4,9,7,6,1,1,2,2,3,3,4,9,8,7,6,1,1,2,2,3,4,-1 130 DATA 2,2,5,3,4,5,6,7,8,6,4,8,6,6,6,6,6,6,6,6,6,8,4,6,6,6,6,6,6 135 DATA 5,2,8,8,8,8,8,8,8,6,6,6,6,6,6,6,6,6,6,2,6,3,3,2,2,2,2,2,2 140 DATA 0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0,1,1,0,1 145 DATA 3,7,7,9,1,1,3,-1 147 DATA 6,10,14,18,22,26,30,34,38,42 150 FOR X=1 TO 29: READ A(X): NEXT X 160 FOR X=1 TO 29: READ C(X): NEXT X 170 FOR X=1 TO 30: READ T(X): NEXT X 180 FOR X=1 TO 29: READ Y(X): NEXT X 185 FOR X=1 TO 29: READ X(X): NEXT X 190 FOR X=1 TO 9: READ J(X),K(X): NEXT X 200 READ J1,J3,J4,J5,S1,S5,I,J0 210 FOR X=1 TO 10: READ N(X): NEXT X 220 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,9 230 READ A,N,N1,N2,N4,N5,M,P1,P3,P4,W,Z,Z1,Z2,N3 240 PRINT " and YOU are in THE BATTLE OF *MIDWAY*": PRINT 300 LET A$="AmmoOil*Hngr=Pb==Pb==Pb==F3==D6==T2=" 305 LET A$=A$+"[E=]=Sp==Sp==F4==F4==D3==D9==T5=" 310 LET A$=A$+"[K*](B*>*Sp**Sp**Z3**Z4**D7**T9*...." 315 DATA "(*)---<1>-<2>-<3>-<4>-<5>-<6>-<7>-<8>-<9>-<10>--(*)" 320 DATA "|-00--01--02--03--04--05--06--07--08--09--| " 325 DATA "*** B A M ! ***"," ..... ..... ....." 330 DATA " "," **** B A W O O O O O M *****" 340 DATA " MIDWAY "," AMERICAN "," JAP "," COMMANDER " 350 READ D$,B$,A1$,F$,A2$,A3$,M$,C$,J$,A8$ 360 DATA " HEADING:"," RED"," YELLOW"," is FLYING " 365 DATA "CRASHED "," Landed,"," left "," Quadrant " 370 DATA " Not ready "," ARMED/Ready","+CLOUDS+" 375 DATA " * SHOT DOWN *"," TARGET "," DESTROYED "," MISSED !!!" 380 DATA "*BOMBED*"," Hits on "," |"," for "," in "," GREEN" 390 READ H$,N1$,N2$,N3$,N4$,N5$,N6$,N7$,N8$,N9$ 395 READ T3$,T4$,T5$,T6$,T7$,T8$,T9$,X$,X1$,X2$,X3$ 400 LET V(10)=INT(RND(0)*5)+3: LET H(10)=INT(RND(0)*3)+6 410 FOR D=11 TO 19: LET V(D)=V(10): LET H(D)=H(10): NEXT D 420 GOSUB 900: LET I(3)=3: LET L(30)=30 500 LET V(20)=INT(RND(0)*9)+1: LET H(20)=0 510 IF V(20)=0 THEN LET H(20)=INT(RND(0)*7)+1 520 IF V(20)=9 THEN LET H(20)=INT(RND(0)*4) 530 LET V(30)=INT(RND(0)*9)+1: LET H(30)=INT(RND(0)*3)+3 540 FOR D=21 TO 29: LET V(D)=V(20): LET H(D)=H(20): NEXT D 550 FOR P=24 TO 29: GOSUB 7500: NEXT P 560 LET Y2=V(30): LET X1=0: LET X2=H(30) 570 GOSUB 700 580 FOR D=20 TO 29: LET L(D)=30: LET I(D)=C0: NEXT D 600 PRINT " YOU must shoot down ";J4+J5;" Jap bombers " 610 PRINT " or sink ";S5;" Jap aircraft carrier" 620 PRINT " 27 planes are on the ENTERPRISE and 14 are on MIDWAY" 650 PRINT "&J'-1' GIVES COMMAND OPTIONS AND ... ALSO CMD # 7 OPTIONS." 660 LET M=2: LET P=10: REM. [=E=] MOVES FIRST 695 GOTO 5000 700 REM...COURSE calculator 710 LET Y=Y1-Y2: LET X=X1-X2 720 IF X=0 THEN 730 ELSE LET Z=Y/X 725 IF Z<=1 THEN 740 730 IF Y>0 THEN LET C0=3 ELSE LET C0=7 735 IF X=0 THEN 790 ELSE LET Z=X/Y: GOTO 780 740 IF Z>-1 THEN 750 742 IF Y>0 THEN LET C0=2 ELSE LET C0=6 745 IF Z=-1 THEN 790 ELSE LET Z=1-ABS(X/Y): GOTO 780 750 IF Z<=0 OR Z>1 THEN 760 752 IF Y>0 THEN LET C0=4 ELSE LET C0=8 755 IF Z=1 THEN 790 ELSE LET Z=1-ABS(Z): GOTO 780 760 IF Z<=-1 OR Z>0 THEN LET Z=X/Y 770 IF X<0 THEN LET C0=1 ELSE LET C0=5 780 LET C0=C0+ABS(Z) 790 LET I1=(X1-X2)*(X1-X2): LET I2=(Y1-Y2)*(Y1-Y2) 795 LET D0=SQR(I1+I2): RETURN 800 REM. *** QUADRANT DISPLAY SET-UP *** 830 GOSUB 2000 850 GOSUB 2800 860 RETURN 900 FOR X=4 TO 19: REM. SUB-ROUTINE FOR INITIAL LANDING 910 IF A(X)=.5 THEN 920 ELSE 990 920 IF T(X)>5 THEN 990 930 IF V(X)=8 AND H(X)=8 AND X<10 THEN LET Y(X)=X-1 ELSE 940 935 LET X(X)=7: LET I(X)=3 940 IF V(X)=8 AND H(X)=8 AND X>12 THEN LET Y(X)=7 ELSE 950 945 LET X(X)=X-12: LET I(X)=5 950 IF V(X)=8 AND H(X)=8 AND A(3)<1 THEN 990 960 LET A(X)=.3: REM. LANDED, RE-FUELED + RE-ARMED 970 IF T(X)=2 THEN LET F(X)=900 ELSE LET F(X)=1000 975 IF T(X)=1 THEN IF X<7 THEN LET F(X)=1600 ELSE LET F(X)=1200 980 IF T(X)>2 AND T(X)<6 THEN LET B(X)=C(X) 990 NEXT X 995 RETURN 1000 FOR B=P TO D4: REM. *** PLANE MOVEMENT SUBROUTINE *** 1005 IF N2=P AND B>P THEN 1090 1010 IF A(B)<.7 THEN 1090 1040 IF C0>0 THEN LET I(B)=INT(C0+.5) 1050 FOR Z=1 TO N3 1060 LET Y(B)=Y(B)+J(I(B)): LET X(B)=X(B)+K(I(B)) 1070 IF Y(B)<0 THEN LET V(B)=V(B)-1 1071 IF Y(B)>9 THEN LET V(B)=V(B)+1 1072 IF X(B)<0 THEN LET H(B)=H(B)-1 1073 IF X(B)>9 THEN LET H(B)=H(B)+1 1074 IF Y(B)<0 THEN LET Y(B)=Y(B)+10 1075 IF Y(B)>9 THEN LET Y(B)=Y(B)-10 1076 IF X(B)<0 THEN LET X(B)=X(B)+10 1077 IF X(B)>9 THEN LET X(B)=X(B)-10 1079 IF B>9 AND B<13 OR B>19 AND B<24 THEN 1089 1080 LET F(B)=F(B)-10: REM. GAS TO FLY 1 SPACE 1081 IF F(B)<=0 AND A(B)=1 THEN PRINT ,A1$ 1082 IF F(B)<=0 AND A(B)=1 THEN PRINT A$((B*4)-3,B*4);N4$ 1085 IF F(B)<=0 THEN LET A(B)=.1: LET C(B)=0 1089 NEXT Z 1090 NEXT B 1092 IF N2=0 THEN LET P=D4 1095 RETURN 1100 FOR Y=13 TO 19 1110 IF A(Y)>.1 AND A(Y)<.7 THEN LET V(Y)=V(10) ELSE 1130 1120 LET H(Y)=H(10): LET Y(Y)=Y(10): LET X(Y)=X(10) 1130 NEXT Y 1140 RETURN 2000 IF V(P)=Q1 AND H(P)=Q2 THEN RETURN 2010 LET Q$=A2$: REM.....Lay Out Quadrant Display. 2020 FOR X=1 TO 100: LET Q$=Q$+A2$: NEXT X 2030 LET Q1=V(P): LET Q2=H(P) 2100 IF Q1=8 AND Q2=8 THEN 2200 ELSE 2700 2200 LET Q$(5,7)=">A<": LET Q$(28,33)="*----*" 2210 LET Q$(49,79)="[*2*] ***1** * * >A<" 2220 LET Q$(89,113)="{OIL} *AMMO* * *" 2230 LET Q$(128,153)="/[*2*]\ >A< ***1** * *" 2240 LET Q$(188,197)="* **3**" 2250 LET Q$(221,238)=">A< * HANGR" 2260 LET Q$(244,277)="*** U.S. Airfield ******* **3**" 2270 LET Q$(284,284)="*": LET Q$(316,319)=":>A<" 2280 LET Q$(324,357)="**** MIDWAY FIELD ******* *****" 2290 LET Q$(388,393)="******" 2700 LET N$=" GREEN": REM. CONDITION GREEN 2710 FOR E=20 TO 29 2720 IF A(E)<1 THEN 2770 2730 LET V=V(P)-V(E): LET H=H(P)-H(E) 2740 IF V>-2 AND V<2 AND H>-2 AND H<2 THEN LET N$=N2$ 2750 IF V=0 AND H=0 THEN LET N$=N1$: REM. CONDITION RED 2760 IF V=0 AND H=0 THEN EXIT 2790 2770 NEXT E 2775 IF A(P)=.5 THEN LET N$=" ARMED": REM. CONDITION ARMED 2780 IF A(P)=.3 OR A(P)=.4 THEN LET N$=N5$ 2790 RETURN 2800 FOR X=4 TO 29 2810 IF C(X)<1 OR A(X)<.3 THEN 2880 2820 IF A(X)<.7 AND V(X)=V(10) AND H(X)=H(10) THEN 2880 2830 IF A(X)<.7 AND V(X)=V(20) AND H(X)=H(20) THEN 2880 2840 IF V(X)=Q1 AND H(X)=Q2 THEN 2850 ELSE 2880 2850 LET Q=(Y(X)*40)+(X(X)*4): LET I=(X*4)-3 2860 LET Q$(Q+1,Q+4)=A$(I,I+3) 2880 NEXT X 2900 PRINT "&K": PRINT B$: REM...Print out the quadrant display 2905 IF Q1<0 OR Q1>9 OR Q2<0 OR Q2>9 THEN LET N$="** OFF MAP **" 2910 FOR Q=1 TO 400 STEP 40 2920 IF Q<441 THEN PRINT "|";Q$(Q,Q+39); 2930 IF Q=1 THEN PRINT " | 0 Quadrant(";Q1;"-";Q2;")" 2935 IF Q=41 AND P>3 THEN PRINT " | 1 Move Rate ";N3 2937 IF Q=41 AND P<4 THEN PRINT X$;1 2940 IF Q=81 THEN PRINT " | 2 Condition:" 2945 IF Q=121 THEN PRINT X$;3;N$ 2950 IF Q=161 AND P>3 THEN PRINT " | 4 MOVE NEXT:" 2952 IF Q=161 AND P<4 THEN PRINT X$;4 2955 IF Q=201 AND P>3 THEN PRINT " | 5 ---> ";P$ 2957 IF Q=201 AND P<4 THEN PRINT X$;5 2960 IF Q=241 THEN 2962 ELSE 2970 2962 IF P<4 THEN PRINT X$;6 2965 IF P>3 AND P<10 OR P>12 THEN PRINT " | 6 Planes Last" 2967 IF P>9 AND P<13 THEN PRINT " | 6 Ships Last" 2970 IF Q=281 AND P<4 THEN PRINT X$;7 2972 IF Q=321 AND P<4 THEN PRINT X$;8 2973 IF Q=361 AND P<4 THEN PRINT X$;9 2975 IF Q=281 AND P>3 THEN PRINT " | 7 HEADING: ";I(P) 2977 IF Q=321 AND P<4 THEN 2990 2980 IF Q=321 THEN PRINT " | 8 Sector (";Y(P);"-";X(P);")" 2990 IF Q=361 AND P>3 THEN PRINT " | 9 Fuel left ";F(P) 2992 NEXT Q 2994 PRINT B$; 2995 INPUT (2,0)" NEXT CMD?",J0 2999 RETURN 3000 FOR K=P TO 31 3010 IF A(K)>.3 THEN LET P=K 3020 IF A(K)>.3 THEN 3040 3030 NEXT K 3040 IF K>29 THEN LET P1=0 3050 IF K>29 THEN LET P=4 3060 IF P<10 THEN LET M=1 3070 IF P>9 AND P<13 THEN LET M=2 3080 IF P>12 AND P<20 THEN LET M=3 3090 IF P>19 THEN LET M=4 3095 RETURN 3100 REM...CLEAR Map counters 3110 LET Z=(V(P)*10)+H(P) 3120 FOR Y=Z-10-U TO Z+10+U STEP 10 3130 FOR X=Y TO Y+2 3140 IF T(P)=0 OR T(P)>5 OR X=Z THEN 3150 ELSE 3160 3150 IF X>0 AND X<101 THEN LET Q(X)=.1 3160 NEXT X 3170 NEXT Y 3190 RETURN 3200 IF T(P)=0 OR T(P)>6 THEN LET U=1 ELSE LET U=0 3205 GOSUB 3100 3210 FOR Q=1 TO 29: REM...RADAR/visual scan counter 3220 IF V(Q)V(P)+U THEN 3280 3230 IF H(Q)H(P)+U THEN 3280 3240 LET Z=(V(Q)*10)+H(Q): IF A(Q)<.7 OR C(Q)<1 THEN 3280 3250 IF Z<1 OR Z>100 THEN 3280 3260 IF T(Q)=0 OR T(Q)>5 THEN LET Q(Z)=Q(Z)+100 3270 IF T(Q)>0 AND T(Q)<6 THEN LET Q(Z)=Q(Z)+C(Q) 3280 NEXT Q 3290 RETURN 3300 PRINT ,"*** SHOOTING COMPLETED ***" 3310 GOTO 5000 3350 PRINT A2$;A$((E*4)-3,(E*4)); 3360 PRINT " is not in ";N7$;V(P);H(P): GOTO 5400 3370 PRINT ,"*** NO POSSIBLE TARGETS ***&J" 3375 GOTO 5400 3380 PRINT A2$;A$((P*4)-3,P*4);" is OUT of BOMBS!" 3395 GOTO 5400 3400 FOR E=20 TO 29: REM. *** LOOK FOR JAPS TO ATTACK *** 3410 IF A(E)<.7 OR C(E)<1 THEN 3460 3420 IF E<24 THEN IF T(P)=2 THEN 3460 3430 IF E>23 THEN IF T(P)=3 OR T(P)=4 THEN 3460 3440 IF V(P)=V(E) AND H(P)=H(E) THEN LET H=H+1 ELSE 3460 3450 PRINT P$;" COULD possibly ATTACK ";A$((E*4)-3,E*4);E 3460 NEXT E 3490 RETURN 3500 FOR E=P TO 19: REM. 'PASS MOVE' SUBROUTINE 3510 IF A(E)<1 OR E>9 AND E<13 THEN 3550 3520 IF A(E)=1 THEN 5400 3530 LET P=P+1 3540 GOSUB 3000 3550 NEXT E 3590 IF H>0 THEN 5000 ELSE 5400 3700 LET V=0: LET H=0: REM.....For Ocean Map. 3710 IF M9=1 THEN RETURN 3720 FOR Q=1 TO 100: LET Q(Q)=0: NEXT Q 3730 FOR Q=1 TO 29 3740 IF V(Q)<1 OR V(Q)>10 OR H(Q)<1 OR H(Q)>10 THEN 3790 3750 IF A(Q)>=.7 THEN LET Z=(V(Q)*10)+H(Q) ELSE 3790 3760 IF T(Q)=0 OR T(Q)>5 THEN LET Q(Z)=Q(Z)+100: REM...Ships/targets 3770 IF T(Q)>0 AND T(Q)<5 THEN LET Q(Z)=Q(Z)+1: REM...Planes 3790 NEXT Q 3795 RETURN 3800 PRINT ,"You have these "; 3810 IF M=2 THEN PRINT "ships:" ELSE PRINT "planes:" 3820 FOR X=P TO D4 3830 IF A(X)<1 THEN 3850 3840 PRINT "(";X;" ) ";A$((X*4)-3,X*4);A2$; 3850 NEXT X 3890 RETURN 4000 IF A(P)=.4 THEN 4500 ELSE LET N5=N3: GOSUB 3800: PRINT 4005 PRINT A2$;"You can move from unit #";P;" to unit #";D4 4010 PRINT "or any number in between. ('0' moves all units)&J" 4015 INPUT (2,0)"*** INPUT the LAST unit to move ---=>",X0 4020 IF X0=0 THEN 4030 4025 IF X0

D4 THEN 4000 ELSE LET D4=X0 4030 IF X0=P THEN LET N2=P ELSE LET N2=0 4035 PRINT : IF M=2 THEN LET D5=3 ELSE LET D5=9 4040 GOSUB 3820: PRINT : PRINT ," New ";H$;"? [1-8] " 4042 PRINT P$;H$;I(P) 4045 INPUT (1,0)" ('0' MEANS keep same heading) ---=>",C0 4050 IF C0<0 OR C0>8 THEN 4035 ELSE PRINT 4052 GOSUB 3820: PRINT : IF C0=0 THEN LET C0=I(P) 4053 IF M=2 AND D5>C(P) THEN LET D5=C(P) 4055 PRINT " Can Move 1 -";D5; 4060 PRINT " spaces at one time. ('0' ABORTS MOVE)" 4065 PRINT "...SPEED? or the no. of spaces to move (1 -";D5; 4070 INPUT (1,0)") ---=>",W0 4072 IF W0=0 THEN 5400 ELSE PRINT 4075 IF W0<1 OR W0>D5 THEN 4050 4080 LET N3=W0: LET C0=INT(C0) 4085 IF C0>=0 AND C0<9 THEN GOSUB 1000 4088 IF T(P)=9 THEN GOSUB 1100 4090 LET P=P+1: LET Q1=-1 4095 LET N3=N5: GOTO 5400 4100 GOSUB 800: REM. COMMAND # 1 --- SEE WHERE YOU ARE 4195 GOTO 5400 4200 IF T(P)>0 THEN PRINT P$; ELSE PRINT M$;: REM...radar 4205 IF T(P)=0 OR T(P)>6 THEN PRINT " radar"; ELSE PRINT " visual"; 4210 PRINT " scan from ";N7$;V(P);H(P);"&J" 4215 GOSUB 3200: LET Z=(V(P)*10)+H(P) 4220 FOR Y=Z-11 TO Z+11 STEP 10 4230 LET B=2 4240 FOR X=Y TO Y+2 4250 IF Q(X)>9 THEN LET V=1 ELSE LET V=2 4255 IF Q(X)>99 THEN LET V=0 4260 PRINT TAB(B+V);: LET B=B+8 4270 IF Q(X)>0 THEN PRINT INT(Q(X)); ELSE PRINT "?"; 4280 NEXT X 4285 PRINT : PRINT F$ 4290 NEXT Y 4295 PRINT : GOTO 5400 4300 IF P3=P AND A(P)<.7 THEN 3300 ELSE LET D=P 4305 IF B(P)=0 THEN IF T(P)>2 AND T(P)<6 THEN 3380 4307 IF T(P)>5 THEN 4378: REM..... SHOOTING.... 4310 IF T(P)=1 THEN 5400 ELSE LET H=0 4315 GOSUB 3400: IF H=0 THEN 3370 4320 IF T(P)=2 THEN LET D1=-1 ELSE LET D1=1 4325 PRINT "&J ATTACK WHICH TARGET ? (Use number after "; 4330 INPUT (2,0)"symbol)---=>",E 4335 IF E<=0 THEN 5400 ELSE LET E=INT(E) 4337 IF D1=-1 AND E<24 OR D1=-1 AND E>29 THEN 4315 ELSE PRINT 4338 IF D1=1 AND E<20 OR D1=1 AND E>23 THEN 4315 ELSE PRINT 4340 IF V(P)=V(E) AND H(P)=H(E) THEN 4341 ELSE 3350 4341 LET Z=INT(RND(0)*C(E)+(RND(0)*D1))-1 4342 IF Z>C(P) THEN LET Z=C(P) 4343 LET Y(P)=Y(E): LET X(P)=X(E): IF T(E)=1 THEN LET Z=0 4344 IF T(E)=1 OR T(E)=3 OR Z<0 THEN LET Z=0 4345 IF Z>0 THEN PRINT A2$;Z;" units SHOT DOWN attacking ";A$((E*4)-3,E*4) 4347 IF Z<1 THEN PRINT P$;" engaging ";A$((E*4)-3,E*4) 4350 IF Z>0 THEN LET C(P)=C(P)-Z 4352 LET B(P)=0: IF C(P)<1 THEN LET A(P)=.1 4355 IF A(P)>=.7 THEN LET H=INT(RND(0)*C(P)-(D1*RND(0))) ELSE 5000 4360 IF D1=1 AND H>=0 THEN PRINT A2$;H;T9$;T5$;A$((E*4)-3,E*4) 4365 IF D1=-1 AND H>0 THEN PRINT A2$;H;" ENEMY AIRCRAFT ";T4$ 4370 LET A(P)=.7: IF H>0 THEN LET C(E)=C(E)-H 4372 IF C(E)<1 THEN LET A(E)=.1 4375 IF P>12 THEN LET L(P)=INT(V(10)*10)+INT(H(10)) 4376 IF P<10 THEN LET L(P)=88 4377 GOTO 4900 4378 LET E=19 4380 LET E=E+1 4381 LET I$=A$(((E)*4)-3,E*4) 4383 IF V(E)=V(P) AND H(E)=H(P) THEN LET H=INT(RND(0)*A(P)-RND(0)) ELSE 4389 4384 IF A(E)>0 THEN PRINT A2$;P$;" FIRING at ";I$ ELSE 4389 4385 IF H>0 THEN PRINT H;T9$;I$: LET A(E)=A(E)-H ELSE PRINT T7$ 4387 IF A(E)<1 THEN PRINT I$;" *** S U N K ***" 4388 GOTO 4395 4389 IF E<23 THEN 4380 4395 GOTO 4088 4400 IF P1=P THEN 3300 ELSE LET X3=0: LET Z=0: LET P1=0 4405 IF T(P)=0 OR T(P)>5 THEN LET P1=P ELSE 5400 4410 IF T(P)=0 OR T(P)>5 THEN PRINT ELSE 5400 4415 GOSUB 800 4420 FOR X=10 TO 12 4423 IF V(X)=Q1 AND H(X)=Q2 THEN LET X3=X3+A(X) 4425 NEXT X 4428 IF Q1=8 AND Q2=8 THEN LET X3=10 4429 IF X3=0 THEN 3370 4430 FOR E=24 TO 29: REM. FIGURE OUT JAP NUMBER 4435 IF A(E)<.7 OR C(E)<1 THEN 4438 4436 IF V(P)=V(E) AND H(P)=H(E) THEN EXIT 4440 4438 NEXT E 4439 GOTO 3370 4440 LET Z1=INT(RND(0)*4+1)-3: REM. GET Z= -2,-1,0,+1 4445 LET H=INT(RND(0)*C(X3))+(Z1): REM. NO. OF PLANES SHOT DN 4450 IF H<0 THEN LET H=0 ELSE PRINT 4455 IF H>C(E) THEN LET H=C(E) ELSE PRINT 4460 PRINT A2$;H;" PLANES from Squadron ";A$((E*4)-3,E*4);T4$ 4470 LET C(E)=C(E)-H: REM. SUBTRACT LOSES 4480 IF C(E)<=0 THEN LET A(E)=0: LET B(E)=0: LET C(E)=0 4490 IF C(E)=0 THEN PRINT ,A$((E*4)-3,E*4);" *** TOTALLY ANNIALATED ***" 4495 IF H=0 THEN 5400 ELSE 5000 4500 IF T(P)=0 OR T(P)>5 THEN 5400 ELSE PRINT 4510 LET L9=10: LET Z$=A$(37,40) 4515 IF V(P)=8 AND H(P)=8 THEN LET Z$=M$: LET L9=3 4520 IF A(P)=.4 THEN 4530 ELSE 4550 4530 LET V(P)=V(L9): LET H(P)=H(L9) 4535 PRINT P$;" took-off from ";Z$;X2$;N7$;V(P);H(P) 4540 LET A(P)=1: LET I(P)=I(L9) 4545 LET Y(P)=INT(RND(0)*10): LET X(P)=INT(RND(0)*10) 4549 GOTO 4900: REM. LOOSE MOVE 4550 IF V(P)=V(L9) AND H(P)=H(L9) AND A(P)>=.7 THEN LET A(P)=.5 4560 IF A(P)>.5 THEN PRINT P$;" CAN'T LAND on WATER !&J" 4565 IF A(P)>.5 THEN 5400 4570 IF A(P)=.5 THEN PRINT P$;N5$;" on ";Z$;X2$;N7$;V(P);H(P) 4580 IF A(P)=.4 THEN PRINT P$;" is ALREADY on ";Z$ 4590 IF A(P)=.5 THEN GOSUB 900: REM. LAND 4595 IF A(P)=.3 THEN 4900 ELSE 5400: REM. LOOSE MOVE 4600 FOR X=3 TO 9 4602 LET P$=A$((X*4)-3,X*4): LET I$=A$(((X+10)*4)-3,(X+10)*4) 4605 IF X=3 THEN PRINT A2$;: REM. *** COMMAND # 6 4607 IF X=3 THEN 4650 4610 IF A(X)=.3 THEN PRINT X;" ";P$;N5$;N8$; 4620 IF A(X)=.4 THEN PRINT X;" ";P$;N5$;N9$; 4625 IF A(X)=.7 THEN PRINT X;" ";P$;X2$;N7$;V(X);H(X); 4630 IF A(X)=1 THEN PRINT X;" ";P$;N3$;X2$;V(X);H(X); 4640 IF A(X)<.3 THEN PRINT X;P$;" is dead"; 4650 IF A(X+10)=.3 THEN PRINT TAB(35);X+10;" ";I$;N5$;N8$ 4660 IF A(X+10)=.4 THEN PRINT TAB(35);X+10;" ";I$;N5$;N9$ 4670 IF A(X+10)=.7 THEN PRINT TAB(35);X+10;" ";I$;X2$;N7$;V(X+10);H(X+10) 4680 IF A(X+10)=1 THEN PRINT TAB(35);X+10;" ";I$;N3$;X2$;V(X+10);H(X+10) 4685 IF A(X+10)<.3 THEN PRINT TAB(35);X+10;I$;" is dead" 4690 NEXT X 4695 GOTO 5400 4700 INPUT (2,0)" Next Command Decision ADMIRAL ? (0-5) ",A 4710 IF A=8 THEN 8800 4720 IF A<0 OR A>5 THEN 4740 ELSE PRINT 4730 ON A+1 GOTO 8000,8100,8200,8300,8400,8500 4740 PRINT ,"*** COMMAND OPTIONS ***&J" 4750 PRINT ,0;" - Ocean Map": PRINT ,1;" - Game Status" 4760 PRINT ,2;" - Plot Distance": PRINT ,3;" - Target Quadrant Assign" 4770 PRINT ,4;" - Arm/Unarm Planes": PRINT ,5;" - Transfer Planes" 4780 PRINT ,6;" -": PRINT ,7;" -": PRINT ,8;" - De-bug info" 4790 PRINT 4795 GOTO 4700 4800 PRINT ,P$;" possible targets:&J": LET H=0 4810 GOSUB 3400 4820 IF H=0 THEN 3370 4895 GOTO 5400 4900 LET I=0 4910 LET N2=P: REM. === COMMAND # 9 --- PASS MOVE 4920 IF M=1 AND P<3 THEN LET P=3 4930 IF P=10 THEN GOSUB 1100 4940 IF P>9 AND P<13 THEN LET P=13: LET M=3 ELSE LET P=P+1 4950 GOSUB 3000 4990 GOTO 3500 5000 IF J0>-1 THEN 5400 ELSE PRINT 5010 FOR E=4 TO 29 5015 IF A(E)<=.1 THEN LET B(E)=0: LET C(E)=0 5020 IF E>19 THEN 5060 5030 IF T(E)=2 THEN LET E$="=F-=" 5040 IF T(E)=3 THEN LET E$="=D-=" 5050 IF T(E)=4 THEN LET E$="=T-=" 5055 GOTO 5085 5060 IF E<20 THEN 5085 5065 IF T(E)=2 THEN LET E$="*Z-*" 5070 IF T(E)=3 THEN LET E$="*D-*" 5080 IF T(E)=4 THEN LET E$="*T-*" 5085 IF T(E)>5 OR T(E)<2 THEN 5095 5087 LET I=(E*4)-3: LET E$(3,3)=CHR(C(E)+48) 5090 IF A(E)>0 THEN LET A$((E*4)-3,E*4)=E$ 5095 NEXT E 5100 LET C0=0: LET C1=0: LET C3=0: LET C4=0 5102 LET C5=0: LET C6=0: LET K1=0: LET K3=0 5103 LET K4=0: LET K5=0: LET S1=0: LET S3=0: LET S4=0 5104 LET S5=0: LET T1=0: LET T2=0: LET T3=0 5105 FOR D=1 TO 29: REM.....COUNT SHIPS/PLANES 5110 IF D=10 AND A(10)>0 THEN LET S1=1 5115 IF D=11 AND A(11)>0 THEN LET S3=1 5120 IF D=12 AND A(12)>0 THEN LET S4=1 5125 IF D=1 AND A(1)>0 THEN LET T1=1 5130 IF D=2 AND A(2)>0 THEN LET T2=1 5140 IF D=3 AND A(3)>0 THEN LET T3=1 5150 IF D=20 AND A(20)>0 THEN LET S5=1 5200 IF D>3 AND D<7 AND A(D)>0 THEN LET C0=C0+1 5210 IF D>23 AND D<26 AND C(D)>0 THEN LET C1=C1+C(D) 5230 IF D=7 OR D=15 OR D=16 THEN LET C3=C3+C(D) 5240 IF D=8 OR D=17 OR D=18 THEN LET C4=C4+C(D) 5250 IF D=9 OR D=19 THEN LET C5=C5+C(D) 5260 IF D=21 AND C(D)>0 THEN LET J7=1 5270 IF D=22 AND C(D)>0 THEN LET J8=1 5280 IF D=23 AND C(D)>0 THEN LET J9=1 5300 IF D=24 OR D=25 THEN LET K1=K1+C(D) 5310 IF D=26 OR D=27 THEN LET K3=K3+C(D) 5320 IF D=28 AND C(D)>0 THEN LET K4=K4+C(D) 5330 IF D=29 AND C(D)>0 THEN LET K5=K5+C(D) 5395 NEXT D 5400 IF S5=0 THEN LET W=1: REM... U.S. Won! 5410 IF M=1 THEN LET D3=4: LET D4=9 5420 IF M=2 THEN LET D3=10: LET D4=12 5430 IF M=3 THEN LET D3=13: LET D4=19 5440 IF M=1 THEN LET D1=4: LET D2=9 ELSE LET D1=13: LET D2=19 5445 IF M<4 AND D4

10 OR V(10)>10 THEN LET W=3 5460 IF W>0 THEN 9500 ELSE GOSUB 3000 5470 IF A(P)=.7 THEN 5800 5480 IF J0>-1 THEN LET J=INT(J0) 5490 IF C(P)<=0 AND A(P)>.1 THEN 4900 5495 IF J=J0 AND J0>-1 THEN 5540 5500 IF M=1 AND P<4 THEN PRINT A2$;M$;A8$; 5503 LET P$=A$((P*4)-3,P*4): SET DS=0: LET H=0 5505 IF M=1 AND P>3 THEN PRINT P;M$;P$; 5510 IF M=2 THEN PRINT P;" ENTERPRISE ships: ";P$; 5520 IF M=3 THEN PRINT P;" ENTERPRISE Planes: ";P$; 5530 IF M<4 THEN INPUT (2,0)" NEXT COMMAND ? (0-9) ---=>",J 5540 IF M>3 THEN 6000 ELSE LET J0=-1: REM. JAP MOVE EXEC 5550 IF J<0 OR J>9 THEN 5670 ELSE PRINT 5600 IF P>3 THEN 5650 5610 IF J=0 OR J=3 OR J=5 OR J=8 THEN LET P=4 ELSE 5650 1534 PRINT "SORRY...ONLY CMD'S 1,2,4,6,7,9 are for the";M$;A8$ 5640 GOTO 5460 5650 IF J=1 THEN 5660 ELSE GOSUB 5700: PRINT 5660 ON J+1 GOTO 4000,4100,4200,4300,4400,4500,4600,4700,4800,4900 5670 PRINT "&K&J" 5680 FOR J=0 TO 9: GOSUB 5700: NEXT J 5690 PRINT 5695 GOTO 5500 5700 PRINT "*#* COMMAND ";J;" *#* --- "; 5705 IF J=0 THEN PRINT "Move Planes or Ships" 5710 IF J=1 THEN PRINT "Plane Quadrant Search" 5720 IF J=2 THEN PRINT "Fleet Radar" 5730 IF J=3 THEN PRINT "Shooting and Bombing Runs" 5740 IF J=4 THEN PRINT "Defensive Anti-aircraft" 5750 IF J=5 THEN PRINT "Plane Landings or Take-offs" 5760 IF J=6 THEN PRINT "Game Status: Planes & Targets" 5770 IF J=7 THEN PRINT "Command Decisions" 5780 IF J=8 THEN PRINT "Possible Targets" 5790 IF J=9 THEN PRINT "Pass Move" 5795 RETURN 5800 IF C(P)<1 THEN 5980: REM...AUTO navigation 5810 LET P$=A$((P*4)-3,P*4): LET Z=INT(L(P)/10) 5820 LET N3=9: LET N2=P: LET X=0: LET Y=0 5830 GOSUB 2700 5835 LET V=V(P)-Z: LET H=H(P)-INT(L(P)-(Z*10)) 5840 PRINT A2$,P$;" on patrol in ";V(P);H(P) 5845 IF N$=N1$ THEN LET A(P)=1: GOTO 4300 5850 IF V=0 AND H=0 THEN LET A(P)=1 ELSE 5870 5855 PRINT A2$;P$;X2$;N7$;V(P);H(P) 5860 PRINT A2$;"*** CONTROL RETURNED ***&J" 5865 GOTO 5400 5870 LET Q((V(P)*10)+H(P))=.1 5875 GOSUB 7000: GOSUB 1000: GOSUB 3200 5880 IF F(P)<400 THEN PRINT ,P$;" Fuel low: ";F(P) 5885 IF V=0 AND H=0 OR A(P)=1 THEN 5900 5890 IF B(P)=0 AND P>16 THEN LET L(P)=(V(10)*10)(10) 5892 IF F(P)<550 AND P>12 AND P<15 THEN LET L(P)=(V(10)*10)+(10) 5895 IF B(P)=0 AND @> AND P<10 THEN LET L@P)=88 5897 IF F(P)<800 AND P<7 THEN LET L(P)88 5900 LET V=INT(L(P)/10): LET H=L(P)-(V*10) 5905 PRINT A2$;$;X2$;N7$;V(P);H(P);H$;I(P);" for ";N7$;V;H 5910 FOR E=20 TO 29: REM. *** SEARCH FOR JAPS *** 5920 IF A(E)>=1 AND V(P)=V(E) AND H(P)=H(E) THEN 5925 ELSE 5970 5925 LET I$=A$((E*4)-3,E*4) 5930 PRINT A2$;P$;" REPORTS SPOTTING ";I$;X2$;N7$;V(P);H(P) 5940 PRINT : IF A(P)=.7 THEN LET A(P)=1 5950 EXIT 4300: REM. COMBAT ! 5970 NEXT E 5975 IF A(P)>=.7 AND B(E)=0 AND V(P)=V(10) AND H(P)=H(10) THEN 4500 5980 LET P=P+1 5990 GOSUB 3000 5995 GOTO 5400 6000 LET N1=N3: LET D4=29: PRINT : LET Z$=X3$ 6010 PRINT ,"* JAP FLEET MOVING NOW *&J" 6020 LET N4=N3: LET N5=N3: LET P=19 6030 LET P=P+1 6040 IF A(P)<1 OR C(P)<1 THEN 6890 6050 LET P$=A$((P*4)-3,P*4): GOSUB 7100: REM...get condition 6060 LET Z=L(P): LET V=V(P)-V(Z): LET H=H(P)-H(Z) 6070 IF I(P)<0 OR I(P)>=9 THEN LET I(P)=INT(RND(0)*8)+1 6075 IF Z$=N$ THEN 6080 ELSE LET Z$=N$ 6080 IF T(P)>5 OR F(P)>400 THEN 6100 6085 IF T(P)=2 THEN 6100 ELSE LET L(P)=20: GOSUB 7500 6090 IF A(P)=.3 THEN 6890 ELSE 6600 6100 IF T(P)<9 THEN 6200: REM.... [*K*] EXEC 6110 LET D=28: IF V(20)>3 AND H(20)>3 THEN GOSUB 7900 6115 LET D=29: IF V(20)>3 AND H(20)>3 THEN GOSUB 7900 6120 IF N$=N1$ THEN GOSUB 7400 ELSE 6140: REM...red: [K*] 6130 LET D=26: GOSUB 7900: REM...launch *Z3* 6135 LET D=27: GOSUB 7900: REM...launch *Z4* 6140 IF N$=N2$ THEN GOSUB 7700 ELSE 6160: REM...Yellow: [K*] 6150 LET D=25: GOSUB 7900: REM...launch *Sp* 6155 LET D=26: GOSUB 7900: REM...launch *Z3* 6160 IF N$=X3$ THEN LET L(P)=L(30) ELSE 6600: REM...Green 6170 LET D=24: IF H(P)>0 THEN GOSUB 7900: LET I(D)=8 6180 LET D=25: IF H(P)>2 THEN GOSUB 7900: LET I(D)=2 6190 LET D=25: IF RND(0)>.96 THEN GOSUB 7900 6195 LET D=27: IF RND(0)<.1 THEN GOSUB 7900: LET L(D)=20 6200 IF T(P)<6 OR T(P)>8 THEN 6300: REM...(B*> 6205 IF N$=X3$ THEN LET L(P)=L(30) 6210 IF N$=N1$ THEN GOSUB 7400 ELSE 6600 6220 FOR E=12 TO 10 STEP -1: REM... SURFACE COMBAT 6225 IF RND(0)>.7 OR A(E)<=0 THEN 6290: REM...SKIP a ship 6230 IF V(P)=V(E) AND H(P)=H(E) THEN LET H=0 ELSE 6290 6235 LET I$=A$((E*4)-3,E*4): IF T(30)>=T(E) THEN 6245 6240 LET T(30)=T(E): LET L(30)=E: LET V(30)=V(E): LET H(30)=H(E) 6245 LET H=INT(RND(0)*(A(P)-RND(0))) 6250 PRINT A2$;P$;" FIRING at ";I$, 6260 IF H>0 THEN PRINT H;T9$;I$ ELSE PRINT T7$ 6270 IF H>0 THEN LET A(E)=A(E)-H ELSE 6285 6275 IF A(E)<=0 THEN PRINT ,I$;" *** SUNK ***" ELSE 6285 6280 LET C(E)=0: GOSUB 7750: REM...New target 6285 EXIT 6600 6290 NEXT E 6300 IF T(P)>1 THEN 6400: REM...*Sp* seaplanes 6310 IF N$=N1$ THEN 6320 ELSE 6350 6320 IF V(P)=V(10) AND H(P)=H(10) AND A(10)>0 THEN 6890 6325 IF V(P)=V(11) AND H(P)=H(11) AND A(11)>0 THEN 6890 6330 IF V(P)=V(12) AND H(P)=H(12) AND A(12)>0 THEN 6600 6340 LET L(P)=20: REM... head home 6350 IF N$=N2$ THEN GOSUB 7700: GOTO 6810 ELSE LET Z1=0 6360 IF N$=X3$ THEN LET Z1=INT(RND(0)*3+1)-2 ELSE 6600 6370 IF RND(0)>.9 THEN LET I(P)=I(P)+(Z1) ELSE LET I(P)=1 6400 IF T(P)=2 THEN 6410 ELSE 6500: REM...fighters 6410 IF N$=N1$ THEN GOSUB 7300 ELSE 6430 6420 IF F(P)<400 THEN LET L(P)=20: GOTO 6600 ELSE 6890 6430 IF N$=N2$ THEN GOSUB 7700: GOTO 6810 6440 IF N$=X3$ THEN 6450 ELSE 6600: REM...GREEN: *Z3* *Z4* 6450 IF T(30)<0 AND RND(0)>.4 THEN LET L(P)=20 6460 IF T(30)=0 AND RND(0)>.8 THEN LET L(P)=20 6500 IF T(P)<3 OR T(P)>4 THEN 6600: REM...Bombers *D7* *T9* 6510 IF B(P)=0 THEN LET L(P)=20 6520 IF L(P)=20 THEN GOSUB 7500 6530 IF B(P)=0 THEN 6600 6540 IF N$=N1$ THEN GOSUB 7800: GOTO 6600: REM...Bombing 6550 IF N$=N2$ THEN LET L(P)=L(30): GOTO 6600 6560 IF T(P)<0 THEN LET L(P)=20 6600 LET Z=L(P): REM....NAVIGATION 6610 LET V=V(P)-V(Z): LET H=H(P)-H(Z): LET Y=0: LET X=0 6620 IF V=0 AND H=0 THEN 6630 ELSE 6800: REM..in TARGET QUAD 6630 IF T(P)=2 AND L(P)=20 THEN GOSUB 7500 6640 IF A(P)=.3 THEN 6890 6650 IF T(Z)=-1 THEN GOSUB 7750: REM....Get a new target 6660 LET Z=L(P): LET V=V(P)-V(Z): LET H=H(P)-H(Z) 6700 IF V=0 AND H=0 THEN 6710 ELSE 6800 6710 IF T(P)=2 AND L(P)=20 THEN GOSUB 7500 6730 IF T(P)<9 THEN 6800 6740 LET D=28: GOSUB 7900: REM...launch *D7* 6750 LET D=29: GOSUB 7900: REM...launch *T9* 6800 GOSUB 7000: LET I(P)=C0: REM...course directions 6810 IF T(P)<5 THEN 6830: REM. *** MOVE RESTRICTIONS *** 6820 IF V(P)=8 AND H(P)=8 THEN LET H(P)=H(P)-1 6830 IF T(P)>5 THEN LET N4=3 ELSE LET N4=N5 6835 LET N2=P: LET N3=N4: LET Z=(V(P)*10)+H(P): GOSUB 1000 6840 IF T(P)>5 AND V(P)=8 AND H(P)=8 THEN LET H(P)=H(P)-1 6845 IF T(P)=9 THEN GOSUB 7600: REM...Service planes 6880 IF M<>4 THEN 6900 6890 IF P0 AND H<0 OR Y>0 AND X<0 THEN LET C0=2 7030 IF V>0 AND H=0 OR Y>0 AND X=0 THEN LET C0=3 7040 IF V>0 AND H>0 OR Y>0 AND X>0 THEN LET C0=4 7050 IF V=0 AND H>0 OR Y=0 AND X>0 THEN LET C0=5 7060 IF V<0 AND H>0 OR Y<0 AND X>0 THEN LET C0=6 7070 IF V<0 AND H=0 OR Y<0 AND X=0 THEN LET C0=7 7080 IF V<0 AND H<0 OR Y<0 AND X<0 THEN LET C0=8 7095 RETURN 7100 LET N$=X3$: REM...Condition GREEN 7110 FOR E=1 TO 19 7120 IF A(E)<.7 OR C(E)<1 THEN 7180 7130 LET V=V(P)-V(E): LET H=H(P)-H(E) 7140 IF V>-2 AND V<2 AND H>-2 AND H<2 THEN LET N$=N2$ 7150 IF V=0 AND H=0 THEN LET N$=N1$ ELSE 7180 7160 IF T(30)5 THEN LET D=E: GOSUB 7760 7165 IF T(P)=2 AND T(E)<6 THEN LET L(P)=E 7170 EXIT 7190 7180 NEXT E 7190 RETURN 7300 FOR E=4 TO 19: REM... Fighter search by JAPS 7310 IF T(E)>5 THEN 7390 7315 IF A(E)<.4 AND X>9 THEN 7390 7320 IF A(E)<.3 THEN 7390 ELSE LET Z1=INT(RND(0)*3+1)-2 7330 LET Y(P)=Y(E)+Z1: LET X(P)=X(E)+Z1 7335 LET V=V(P)-V(E): LET H=H(P)-H(E) 7340 IF V=0 AND H=0 THEN LET H=INT(RND(0)*C(E))-1 ELSE 7390 7345 IF RND(0)>.4 THEN LET H=1 7350 IF C(E)=1 AND RND(0)>.8 THEN LET H=1 7355 IF H<1 THEN PRINT P$;" engaging ";I$ 7360 IF H>0 THEN LET C(E)=C(E)-H ELSE 7390 7365 LET I$=A$((E*4)-3,E*4): LET Z$=T4$ 7370 IF A(E)<.7 THEN LET Z$=" Shot to pieces" 7375 IF H>0 THEN PRINT H;" Planes from Squadron ";I$;Z$;" by ";P$ 7380 IF C(E)<1 THEN LET A(E)=0: LET C(E)=0 7385 EXIT 7395 7390 NEXT E 7395 RETURN 7400 FOR E=4 TO 19: REM... *** JAP ANTI-AIRCRAFT FIRE *** 7410 IF T(E)>5 OR A(E)<.7 THEN 7490 7420 IF V(P)=V(E) AND H(P)=H(E) THEN 7430 ELSE 7490 7430 LET I$=A$((E*4)-3,E*4) 7440 PRINT ,P$;" anti-aircraft engaging ";I$ 7450 IF RND(0)>(.05*C(P)) THEN 7490: REM. JAPS MISS !!! 7460 LET C(E)=C(E)-1: REM. SHOOT DOWN 1 PLANE 7470 IF C(E)<1 THEN LET A(E)=0: LET C(E)=0 7480 PRINT " One Plane from Squadron ";I$;T4$;X2$;N7$;V(P);H(P) 7485 IF RND(0)>.4 THEN EXIT 7495 7490 NEXT E 7495 RETURN 7500 IF A(P)=.3 THEN RETURN : REM....Land JAP planes on [K*] 7510 IF V(P)=V(20) AND H(P)=H(20) THEN LET A(P)=.3 ELSE 7595 7520 LET I(P)=I(20) 7530 IF T(P)=1 THEN LET F(P)=1100 ELSE LET F(P)=900 7540 IF T(P)>2 THEN LET F(P)=1000 7550 IF T(P)=3 OR T(P)=4 THEN LET B(P)=C(P) 7595 RETURN 7600 FOR F=24 TO 29: REM...SERVICE Landed planes 7610 IF A(F)=.3 OR A(F)=.4 THEN LET A(F)=A(F)+.1 7620 IF A(F)<1 THEN LET I(F)=I(20) ELSE 7650 7630 LET V(F)=V(20): LET H(F)=H(20) 7640 LET Y(F)=Y(20): LET X(F)=X(20) 7650 NEXT F 7660 RETURN 7700 LET C0=(RND(0)*8)+1: REM...Navigation: YELLOW 7710 IF F(P)>400 THEN LET I(P)=C0 7740 RETURN 7750 LET D=INT(RND(0)*3)+1: REM...Get a new target 7760 LET L(30)=D: LET T(30)=T(D) 7770 LET V(30)=V(D): LET H(30)=H(D) 7780 LET L(P)=30 7790 RETURN 7800 FOR E=1 TO 12: REM....JAP bomber targets 7810 IF T(E)>0 AND T(E)<6 THEN 7890 7820 IF A(E)<1 OR C(E)<1 THEN 7890 7830 IF V(P)=V(E) AND H(P)=H(E) THEN LET B(P)=0 ELSE 7890 7840 LET H=INT(RND(0)*C(P))-1: LET I$=A$((E*4)-3,E*4) 7850 PRINT A2$;P$;" Attacking ";I$ 7855 IF H>0 THEN PRINT ,A3$;"&J" ELSE PRINT ,A1$;"&J" 7860 IF H>0 THEN PRINT H;T9$;I$ ELSE PRINT T7$ 7870 IF H>0 THEN LET A(E)=A(E)-H ELSE EXIT 7895 7880 IF A(E)<=0 THEN PRINT ,I$;T6$: LET C(E)=0 7885 EXIT 7895 7890 NEXT E 7895 RETURN 7900 IF A(D)=.5 THEN LET A(D)=1 ELSE 7920: REM...launch Plane 7910 LET Y(D)=INT(RND(0)*9): LET X(D)=INT(RND(0)*9) 7920 RETURN 8000 IF A(10)=0 THEN PRINT A2$,"RADAR";T6$: GOTO 5100 8010 PRINT "&K" 8020 PRINT D$: LET Z$="( ) " 8030 FOR V=0 TO 90 STEP 10 8035 IF V>0 THEN LET I=INT(V/10) ELSE LET I=0 8040 LET Z$(2,2)=CHR(I+48): PRINT Z$; 8045 FOR H=1 TO 10 8050 PRINT TAB(N(H)); 8055 IF Q(V+H)>0 THEN PRINT INT(Q(V+H)); ELSE PRINT " ?"; 8060 NEXT H 8065 PRINT TAB(48);Z$;" "; 8070 IF V=20 AND T(P)>0 THEN PRINT P$; 8075 IF V=30 AND T(P)>0 THEN PRINT V(P);H(P); 8080 IF V=80 THEN PRINT M$; 8085 IF V=90 THEN PRINT "at 8 8" ELSE PRINT 8090 NEXT V 8095 PRINT D$;: GOSUB 2995: GOTO 5480 8100 INPUT (1,0)"PICK ONE: (1)MIDWAY/Ships (2)U.S. PLANES (3)JAPS ",I 8110 IF I=1 THEN PRINT M$;"Ammo Depots",N6$;T1 8115 IF I=1 THEN PRINT M$;"*Oil* Tanks",N6$;T2 8120 IF I=1 THEN PRINT M$;"Airfields",N6$;T3 8125 IF I=1 THEN PRINT C$;"Carriers",N6$;S1 8130 IF I=1 THEN PRINT C$;"Cruisers",N6$;S3+S4 8140 IF I=2 THEN PRINT M$;"Search Planes",,N6$;C0 8145 IF I=2 THEN PRINT " CRUISER Sea Planes",,N6$;C1 8150 IF I=2 THEN PRINT C$;"Fighters",,N6$;C3 8160 IF I=2 THEN PRINT C$;"Dive Bombers",,N6$;C4 8165 IF I=2 THEN PRINT C$;"Torpedo Bombers",,N6$;C5 8170 IF I=3 THEN PRINT J$;"CARRIER 'KAGA': [K*]",N6$;S5 8172 IF I=3 THEN PRINT J$;"BATTLE SHIP : (B*>",N6$;J7 8173 IF I=3 THEN PRINT J$;"HEAVY CRUSIER : ",N6$;J8 8174 IF I=3 THEN PRINT J$;"LIGHT CRUSIER : ",N6$;J9 8175 IF I=3 THEN PRINT J$;"SEA PLANES *Sp*",N6$;K1 8180 IF I=3 THEN PRINT J$;"FIGHTER (ZERO) *Z-*",N6$;K3 8185 IF I=3 THEN PRINT J$;"DIVE BOMBER *D-*",N6$;K4 8190 IF I=3 THEN PRINT J$;"TORPEDO BOMBER *T-*",N6$;K5 8195 PRINT : GOTO 5400 8200 REM..... CMD # 7.2 QUAD. TO QUAD. NAVIGATION 8295 PRINT : GOTO 5400 8300 GOSUB 9300: REM. CMD # 7.3 QUADRANT & TARGET ASSIGN"G 8310 INPUT (2,0)" ASSIGN TARGET DESTINATION to which plane ",D3 8320 IF D3<=0 THEN 5400 8325 IF A(D3)<.3 THEN 5400 ELSE LET D=D3*4 8330 IF D3D2 THEN 8300 ELSE LET I$=A$(D-3,D) 8340 PRINT "&J";I$;" to head for which ";N7$ 8350 PRINT " ( 2 Numbers - Please ) ---=>"; 8355 INPUT (1,0)V: INPUT (1,0)"---=>",H 8360 IF V<1 OR V>9 OR H<1 OR H>9 THEN 8340 8365 LET L(D3)=(V*10)+H 8370 PRINT "&J";I$;H$;X1$;N7$;V;H 8380 PRINT " *** === ENTER '0' TO EXIT === ***&J" 8385 IF A(D3)=1 THEN LET A(D3)=.7 8390 IF V(D3)=V AND H(D3)=H THEN LET A(D3)=1 8395 PAUSE 20: GOTO 8300 8400 GOSUB 9300: REM. CMD # 7.4 TRANSFER PLANES 8450 INPUT (2,0)" CHANGE WHICH UNIT NO...?...",D3 8452 IF D3<=0 THEN 5400 8455 IF D3D2 THEN PRINT " ....USE UNIT NO. PLEASE" 8460 IF D3D2 THEN 8400 ELSE PRINT 8465 PRINT " WHICH COMMAND OPTION....?..." 8470 PRINT " (0)EXIT (1)Arm Plane (2)UN-ARM Plane" 8472 PRINT " OR ....(3)Put planes NOW on auto control back on MANUAL "; 8475 INPUT (1,0)D4 8480 IF D4<1 OR D4>3 THEN 5400 8485 IF D4=1 THEN LET A(D3)=.4 8487 IF A(D4)=.7 AND D4=3 THEN LET A(D4)=1 8490 IF D4=2 THEN LET A(D3)=.3 8495 GOTO 8400 8500 PRINT " YOU have these planes left:&J" 8505 PRINT " On MIDWAY...# Planes...Unit #...On [E=] ...# Planes...Unit #" 8510 FOR D=4 TO 9 8515 LET P$=A$((D*4)-3,D*4): LET I$=A$(((D+10)*4)-3,(D+10)*4) 8520 PRINT TAB(3);P$;TAB(16);C(D);TAB(25);D; 8525 PRINT TAB(37);I$;TAB(48);C(D+10);TAB(56);D+10 8530 NEXT D 8535 PRINT " ENTER this 3 number format for plane transfers:" 8540 PRINT " 'FROM UNIT'...'TO UNIT '...'HOW MANY'---> "; 8545 INPUT D1,D2,D3 8550 IF D1<1 OR D2<1 OR D3<1 THEN 5400 8560 IF D3>C(D1) THEN PRINT ,C(D1);" PLANES are in Unit # ";D1 8570 IF D3>C(D1) OR D3<0 THEN 8500 ELSE PRINT 8580 IF D1<4 OR D1>19 OR D2<4 OR D2>19 THEN 5400 8585 LET C(D1)=C(D1)-D3 8590 LET C(D2)=C(D2)+D3 8595 GOTO 5000 8800 PRINT "E; A$(E);A(E);I(E);L(E);T(E),V(E);H(E);Y(E);X(E),C(E);F(E);B(E)" 8810 FOR E=1 TO 29 8820 PRINT E;A$((E*4)-3,E*4);A(E);I(E); 8825 PRINT L(E);T(E),V(E);H(E);Y(E);X(E),C(E);F(E);B(E) 8830 NEXT E 8840 PRINT 30,V(30);H(30),T(30);L(30) 8895 GOTO 5400 9300 PRINT "&K": PRINT ,"*#* Enter '0' to EXIT *#*&J" 9310 IF M=1 THEN PRINT M$;A8$; ELSE PRINT A$(37,40);A8$ 9320 PRINT ".....YOU HAVE THESE PLANES:" 9330 FOR D=D1 TO D2 9340 IF A(D)<.3 THEN 9390 9350 PRINT A2$;" UNIT # ";D;A2$;A$((D*4)-3,D*4); 9355 IF A(D)<.3 THEN PRINT " is DEAD!" 9360 IF A(D)=.3 THEN PRINT N5$;N8$ 9365 IF A(D)=.4 THEN PRINT N5$;N9$ 9370 IF A(D)=.7 THEN LET V=INT(L(D)/10) 9375 IF A(D)=.7 THEN PRINT X2$;V(D);H(D);A2$;H$;X1$;V;L(D)-(V*10) 9380 IF A(D)=1 THEN PRINT N3$;X2$;N7$;V(D);H(D) 9390 NEXT D 9395 RETURN 9500 IF W=1 THEN PRINT ,"*AMERICANS WON*" 9510 IF W=2 THEN PRINT ,"*JAPS WON*" 9520 IF W=3 THEN PRINT ,"# AMERICANS"; 9530 IF W=4 THEN PRINT ,"* Japs"; 9540 IF W>2 THEN PRINT " have withdrawn....Ship combat over.&J" 9550 IF W=3 AND C4+C5>5 THEN PRINT ,M$;" will be lost to the Japs." 9600 FOR X=1 TO 3 9610 IF A(X)>0 THEN PRINT ;: GOTO 9630 9620 PRINT " YOU LOST target: ";X;A2$;A$((X*4)-3,X*4); 9630 LET D=X+9: PRINT TAB(32); 9640 IF A(D)>0 THEN PRINT : GOTO 9660 9650 PRINT " YOU LOST ship: ";D;A2$;A$((D*4)-3,D*4) 9660 NEXT X 9700 PRINT "&J",J$;" ships sunk:" 9710 FOR X=20 TO 23 9720 IF A(X)>0 THEN PRINT A2$;: GOTO 9740 9730 PRINT A2$;A$((X*4)-3,X*4); 9740 NEXT X 9750 PRINT 9900 END