490 IF FL = 1 THEN XDRAW 2 AT XC,YC: REM EXPLOSIONS
500 IF FL = 2 THEN XDRAW 2 AT A(X,1),A(X,2)
510 FOR Z = 1 TO 500: NEXT Z
520 IF FL = 1 THEN XDRAW 2 AT XC,YC
530 IF FL = 2 THEN XDRAW 2 AT A(X,1),A(X,2)
540 HCOLOR= 0: DRAW 1 AT A(X,1),A(X,2)
550 HCOLOR= 3:A(X,1) = 0:A(X,2) = 0
560 ST$(X) = "KILLED"
570 HOME : VTAB 23
580 IF FL = 1 THEN PRINT "MAN #";X;" KILLED BY MINE."
590 IF FL = 2 THEN PRINT "MAN #";X;" BLOWS HIMSELF UP!"
600 FOR Z = 1 TO 1000: NEXT Z
610 HOME : VTAB 23: RETURN
620 FOR E = 1 TO 200: NEXT E: RETURN
630 IF C$ = "D" THEN FF(X) = 1
640 IF C$ = "U" THEN FF(X) = 0
650 IF C$ = "L" THEN SH(X) = 1: GOTO 760
660 IF C$ = "A" AND PO$(X) = "R" THEN HOME : VTAB 23: PRINT "YOU CAN'T AIM WHILE RUNNING.": FOR E = 1 TO 1000: NEXT E: HOME : VTAB 23:FL = 3: RETURN
670 IF C$ = "F" AND SH(X) >0 AND PO$(X) < >"A" THEN HOME : VTAB 23: PRINT "YOU JUST SHOT YOURSELF IN THE FOOT.": PRINT "YOU DIDN'T AIM FIRST.": FOR E = 1 TO 1500: NEXT E:SH(X) = SH(X) -1:PO$(X) = C$: RETURN
680 IF C$ = "F" AND SH(X) = 0 THEN HOME : VTAB 23: PRINT "CLICK - RIFLE NOT LOADED!": FOR E = 1 TO 1000: NEXT E:PO$(X) = C$: RETURN
690 IF C$ = "F" THEN PO$(X) = C$: GOTO 2730
700 IF PO$(X) = "P" AND C$ < >"T" THEN FL = 2: GOSUB 450: GOSUB 490:PO$(X) = C$: RETURN
710 IF C$ = "P" AND G(X) = 0 THEN HOME : VTAB 23: PRINT "NO GRENADES LEFT.": FOR E = 1 TO 1000: NEXT E: HOME : VTAB 23:FL = 3: RETURN
720 IF C$ = "T" AND G(X) = 0 THEN HOME : VTAB 23: PRINT "NO GRENADES LEFT.": FOR E = 1 TO 1000: NEXT E: HOME : VTAB 23:FL = 3: RETURN
730 IF C$ = "T" AND PO$(X) < >"P" THEN HOME : VTAB 23: PRINT "NICE THROW": FOR E = 1 TO 1000: NEXT E: PRINT " - BUT YOU FORGOT TO PULL THE PIN": FOR E = 1 TO 1000: NEXT E:G(X) = G(X) -1:EE(X) = 1: HOME : VTAB 23:PO$(X) = C$: RETURN
740 IF C$ = "P" AND A(X,2) = >85 AND A(X,1) >1 THEN HOME : VTAB 23: PRINT "CAN'T SEE THE MACHINE GUN FROM HERE,SIR.": FOR E = 1 TO 1500: NEXT E:FL = 3: HOME : VTAB 23: RETURN
750 IF C$ = "T" THEN PO$(X) = C$: GOTO 2960
760 PO$(X) = C$: RETURN
770 HCOLOR= 0: DRAW 1 AT XO,YO: HCOLOR= 3: DRAW 1 AT XC,YC:PO$(X) = "STUCK":A(X,1) = XC:A(X,2) = YC: RETURN
780 IF A(X,2) = >60 AND A(X,2) = <70 AND A(X,1) = >225 AND A(X,1) = <235 THEN AA = 1: RETURN
790 IF A(X,2) = >115 AND A(X,2) = <125 AND A(X,1) = >190 AND A(X,1) = <200 THEN AA = 1: RETURN
800 IF A(X,2) = >80 AND A(X,2) = <90 AND A(X,1) = >130 AND A(X,1) = <140 THEN AA = 1: RETURN
810 IF A(X,2) = >95 AND A(X,2) = <105 AND A(X,1) = >50 AND A(X,1) = <65 THEN AA = 1: RETURN
820 RETURN
830 HOME : NORMAL : VTAB 23: PRINT "NICE THROW": FOR E = 1 TO 1000: NEXT E: XDRAW 2 AT D1,D2
840 GOSUB 450
850 HOME : NORMAL : VTAB 24: PRINT "NOT WITHIN OUR RANGE, SIR."
860 FOR E = 1 TO 1000: NEXT E
870 XDRAW 2 AT D1,D2
880 RETURN
890 HPLOT X -1,Y TO X +1,Y: REM TREE SHAPE
900 HPLOT X -2,Y +2 TO X +2,Y +2
910 HPLOT X -4,Y +4 TO X +4,Y +4
920 HPLOT X -6,Y +6 TO X +6,Y +6
930 HPLOT X +1,Y +6 TO X +1,Y +10
940 RETURN
950 HPLOT X,Y TO X +4,Y -3: RETURN
960 :
970 REM ** DISPLAY MAP OF AREA **
980 :
990 HGR
1000 HCOLOR= 1: SCALE= 1: ROT= 0
1010 FOR X = 10 TO 250 STEP 20: REM TREES
1020 Y = 5: GOSUB 890: NEXT X
1030 FOR X = 20 TO 260 STEP 20
1040 Y = 20: GOSUB 890: NEXT X
1050 FOR X = 10 TO 250 STEP 20
1060 Y = 30: GOSUB 890: NEXT X
1070 HCOLOR= 5: REM ROCKS
1080 HPLOT 228,59 TO 229,59 TO 230,60 TO 228,60 TO 228,61 TO 231,61 TO 231,62 TO 227,62 TO 227,63 TO 232,63 TO 233,64 TO 226,64
1090 HPLOT 190,108 TO 192,108 TO 193,109 TO 189,110 TO 193,110 TO 194,111 TO 188,111 TO 187,112 TO 195,112 TO 186,114 TO 196,114
1100 HPLOT 132,75 TO 133,75 TO 134,76 TO 132,76 TO 131,77 TO 134,77 TO 135,78 TO 131,78 TO 130,79 TO 136,79
1110 HPLOT 52,92 TO 54,92 TO 55,93 TO 51,94 TO 57,94 TO 58,95 TO 50,95 TO 50,96 TO 60,96 TO 62,97 TO 50,97
1120 HCOLOR= 2
1130 HCOLOR= 2: FOR X = 107 TO 135 STEP 4
1140 Y = 117: GOSUB 950: NEXT X: REM BARBED WIRE
1150 FOR X = 234 TO 265 STEP 4
1160 Y = 97: GOSUB 950: NEXT X
1170 FOR X = 1 TO 60 STEP 4
1180 Y = 108: GOSUB 950: NEXT X
1190 HCOLOR= 3: HPLOT 2,150 TO 278,150: REM WAVES
1200 HCOLOR= 6: HPLOT 2,153 TO 278,153
1210 HPLOT 2,156 TO 278,156
1220 HCOLOR= 5: HPLOT 2,41 TO 278,41: HPLOT 2,43 TO 278,43: REM CLIFFS
1230 :
1240 REM ** SHOW MEN **
1250 :
1260 HCOLOR= 3:I = ( INT( RND(1) *46) +5) *5
1270 DRAW 1 AT I -10,125:A(1,1) = I -10:A(1,2) = 125: GOSUB 620
1380 DRAW 1 AT I +10,140:A(12,1) = I +10:A(12,2) = 140: GOSUB 620
1390 HOME : VTAB 23: PRINT "LANDING COMPLETED.": FOR Z = 1 TO 1000: NEXT Z
1400 DRAW 1 AT 35,35
1410 DRAW 1 AT 260,35
1420 GOTO 2040
1430 :
1440 REM ** MOVEMENT PHASE **
1450 :
1460 FOR X = 1 TO 12
1470 FL = 0
1480 IF ST$(X) = "KILLED" THEN 2030
1490 HOME : VTAB 22: PRINT "MAN #";
1500 PRINT TAB( 7)"STATUS";
1510 PRINT TAB( 14)"POSITION";
1520 PRINT TAB( 23)"SHOTS";
1530 PRINT TAB( 30)"GRENADES"
1540 PRINT TAB( 3)X;
1550 PRINT TAB( 8)PO$(X);
1560 IF FF(X) = 0 THEN PRINT TAB( 16)"UP";
1570 IF FF(X) = 1 THEN PRINT TAB( 16)"DOWN";
1580 PRINT TAB( 25)SH(X);
1590 PRINT TAB( 32)G(X)
1600 FOR Y = 1 TO 10
1610 XDRAW 1 AT A(X,1),A(X,2)
1620 FOR E = 1 TO 10: NEXT E
1630 XDRAW 1 AT A(X,1),A(X,2)
1640 NEXT Y
1650 I = PEEK( -16384): IF I >127 THEN POKE -16368,0
1660 PRINT "COMMAND? (ENTER '?' TO SEE LEGEND )";: GET C$
1670 IF C$ < >"R" AND C$ < >"C" AND C$ < >"D" AND C$ < >"U" AND C$ < >"A" AND C$ < >"F" AND C$ < >"L" AND C$ < >"P" AND C$ < >"T" AND C$ < >"?" AND C$ < >"Q" THEN 1490
1680 IF C$ = "Q" THEN 3820
1690 IF C$ = "?" THEN HOME : VTAB 21: PRINT "C-CRAWL R-RUN S-SET POSITION A-AIM": PRINT "F-FIRE L-LOAD D-LIE DOWN U-STANDUP": PRINT "P-PULL PIN T-THROW GRENADE Q-QUIT": INPUT "PRESS RETURN TO CONTINUE..";Z$: IF Z$ = "" THEN HOME : VTAB 23: GOTO 1490
1700 IF PO$(X) = "P" AND C$ < >"T" THEN FL = 2: GOSUB 450: GOSUB 490: GOTO 2030
1710 IF C$ < >"R" AND C$ < >"C" THEN GOSUB 630: IF FL = 3 THEN FL = 0: GOTO 1490
1720 IF C$ < >"R" AND C$ < >"C" THEN 2030
1730 IF C$ = "R" AND FF(X) = 1 THEN HOME : VTAB 23: PRINT "YOU MUST STANDUP BEFORE RUNNING": FOR E = 1 TO 1000: NEXT E: GOTO 1490
1740 IF C$ = "C" AND FF(X) = 0 THEN HOME : VTAB 23: PRINT "YOU MUST LIE DOWN BEFORE CRAWLING": FOR E = 1 TO 1000: NEXT E: GOTO 1490
1750 XC = A(X,1):YC = A(X,2)
1760 XO = XC:YO = YC
1770 IF C$ = "C" THEN ST = 5:PO$(X) = C$
1780 IF C$ = "R" THEN ST = 20:PO$(X) = C$
1790 K = PEEK( -16384): IF K >127 THEN POKE -16368,0
1800 XDRAW 1 AT XC,YC
1810 IF K <128 THEN K$ = "": GOTO 1830
1820 K$ = CHR$(K -128)
1830 IF K$ = "I" THEN YC = YC -5
1840 IF YC < >110 THEN 1880
1850 FOR U = 1 TO 20
1860 IF XC = M(U,1) THEN FL = 1: GOSUB 450: GOSUB 490:M(U,1) = 0:M(U,2) = 0: GOTO 2030: REM MINE EXPLOSION
1870 NEXT U
1880 IF YC = 115 AND XC >110 AND XC <135 THEN YC = 115: GOSUB 770: GOTO 2030: REM BARBED WIRE
1890 IF YC = 95 AND XC >235 AND XC <265 THEN YC = 95: GOSUB 770: GOTO 2030
1900 IF YC = 105 AND XC >2 AND XC <60 THEN YC = 105: GOSUB 770: GOTO 2030
1910 IF YC = <40 THEN HOME : VTAB 23: PRINT "FELL OFF THE CLIFF - TOUGH LUCK.": FOR E = 1 TO 2000: NEXT E: HCOLOR= 0: DRAW 1 AT XO,YO: DRAW 1 AT XC,YC: HCOLOR= 3:ST$(X) = "KILLED":A(X,1) = 0:A(X,2) = 0: GOTO 2030
1920 IF K$ = "J" THEN XC = XC -5
1930 IF XC = <5 THEN FL = 1: GOSUB 450: GOSUB 490: GOTO 2030
1940 IF K$ = "K" THEN XC = XC +5
1950 IF XC = >275 THEN FL = 1: GOSUB 450: GOSUB 490: GOTO 2030
1960 IF K$ = "M" THEN YC = YC +5
1970 IF INT( SQR((YC -YO) ^2 +(XC -XO) ^2)) > = ST THEN HCOLOR= 0: DRAW 1 AT XO,YO: HCOLOR= 3: DRAW 1 AT XC,YC:A(X,1) = XC:A(X,2) = YC: HOME : VTAB 23: PRINT "YOU ARE ONLY ALLOWED ";ST/5;" PACES": FOR E = 1 TO 1000: NEXT E: HOME : GOTO 2030
1980 IF K$ = "S" THEN HCOLOR= 0: DRAW 1 AT XO,YO: HCOLOR= 3: DRAW 1 AT XC,YC:PO$(X) = C$:A(X,1) = XC:A(X,2) = YC: GOTO 2030
1990 IF YC = >150 THEN HOME : VTAB 23: PRINT "MAN #";X;" DROWNED IN THE SEA": FOR E = 1 TO 1000: NEXT E: HCOLOR= 0: DRAW 1 AT XO,YO: DRAW 1 AT XC,YC: HCOLOR= 3:ST$(X) = "KILLED":A(X,1) = 0:A(X,2) = 0: GOTO 2030
2180 IF MX >275 OR MX <5 OR MY >150 OR MY <60 THEN 2170
2190 XDRAW 2 AT MX,MY
2200 GOSUB 450
2210 FOR Z = 1 TO 500: NEXT Z
2220 XDRAW 2 AT MX,MY
2230 FOR X = 1 TO 12
2240 IF PO$(X) = "KILLED" THEN 2270
2250 DMS = INT( SQR((A(X,1) -MX) ^2 +(A(X,2) -MY) ^2)): REM DISTANCE FROM EXPLOSION
2260 IF DMS <6 THEN VTAB 24: NORMAL : PRINT "MAN #";X;" KILLED BY MORTAR FIRE": FOR Z = 1 TO 1000: NEXT Z: HCOLOR= 0: DRAW 1 AT A(X,1),A(X,2): HCOLOR= 3:ST$(X) = "KILLED":A(X,1) = 0:A(X,2) = 0
2350 IF A(X,2) <85 AND A(X,1) >1 THEN DF = 1: REM CAN SEE MACHINE GUN
2360 GOSUB 450
2370 NEXT X
2380 IF DF = 0 THEN 2430
2390 NORMAL : VTAB 24: PRINT "WE CAN SEE MACHINE GUN, SIR!"
2400 FOR Y = 1 TO 30
2410 HCOLOR= 3: HPLOT MG(1),MG(2) TO MG(1),MG(2) +2: FOR E = 1 TO 10: NEXT E: HCOLOR= 0: HPLOT MG(1),MG(2) TO MG(1),MG(2) +2: FOR E = 1 TO 10: NEXT E
2420 NEXT Y
2430 FOR X = 1 TO 12
2440 IF ST$(X) = "KILLED" THEN 2540
2450 IF A(X,2) = <50 THEN 2540
2460 AA = 0: GOSUB 780: IF AA = 1 THEN 2540: REM ROCK COVER
2470 IF VV = 1 THEN DR = INT( RND(1) *15) +1: REM DIE ROLL
2480 IF VV = 2 THEN DR = INT( RND(1) *9) +1: REM DIE ROLL
2490 IF FF(X) = 1 THEN DR = DR +2
2500 IF A(X,2) >100 THEN DR = DR +1
2510 IF A(X,2) = <100 THEN DR = DR -2
2520 IF A(X,2) <80 THEN DR = DR -2
2530 IF DR = <3 THEN NORMAL : VTAB 24: PRINT "MAN #";X;" KILLED BY MACHINE GUN FIRE": FOR Z = 1 TO 1000: NEXT Z: HCOLOR= 0: DRAW 1 AT A(X,1),A(X,2): HCOLOR= 3:ST$(X) = "KILLED":A(X,1) = 0:A(X,2) = 0
2540 NEXT X
2550 NORMAL
2560 :
2570 REM * DEFENDER FIRING *
2580 :
2590 IF LL = 0 AND RR = 0 THEN 2710
2600 HOME : VTAB 22: INVERSE : PRINT "ENEMY SNIPER FIRE": FOR E = 1 TO 500: NEXT E
2610 FOR X = 1 TO 12
2620 IF ST$(X) = "KILLED" THEN 2700
2630 IF A(X,2) = >100 THEN 2700
2640 AA = 0: GOSUB 780: IF AA = 1 THEN 2700: REM ROCK COVER
2650 DR = INT( RND(1) *6) +1: REM DIE ROLL
2660 IF A(X,2) <80 THEN DR = DR -1
2670 IF A(X,2) <60 THEN DR = 1
2680 GOSUB 450
2690 IF DR = <2 THEN NORMAL : VTAB 24: PRINT "MAN #";X;" KILLED BY SNIPER FIRE": FOR Z = 1 TO 1500: NEXT Z: HCOLOR= 0: DRAW 1 AT A(X,1),A(X,2): HCOLOR= 3:ST$(X) = "KILLED":A(X,1) = 0:A(X,2) = 0
2700 NEXT X
2710 NORMAL
2720 GOTO 1430
2730 :
2740 REM ** ATTACKER FIRING **
2750 :
2760 NORMAL : HOME : VTAB 23
2770 IF LL = 0 AND RR = 0 THEN PRINT "BOTH SNIPERS ARE ALREADY KILLED, SIR?": FOR E = 1 TO 1000: NEXT E: GOTO 760
2780 PRINT "ENTER TARGET FOR MAN #";X
2790 INPUT "L)EFT SNIPER OR R)IGHT SNIPER? ";ZZ$
2800 IF ZZ$ = "L" AND LL = 0 THEN HOME : VTAB 23: PRINT "NO SNIPER THERE, SIR?": FOR E = 1 TO 1000: NEXT E: GOTO 2760
2810 IF ZZ$ = "R" AND RR = 0 THEN HOME : VTAB 23: PRINT "NO SNIPER THERE, SIR?": FOR E = 1 TO 1000: NEXT E: GOTO 2760
3020 IF DMG = <RG THEN HOME : VTAB 23: PRINT "NICE THROW": FOR E = 1 TO 1000: NEXT E: GOSUB 450: XDRAW 2 AT MG(1),MG(2): HOME : VTAB 23: FLASH : PRINT "MACHINE GUN DESTROYED!!!": FOR E = 1 TO 1000: NEXT E: XDRAW 2 AT MG(1),MG(2):GG = 0: GOTO 3670
3030 D1 = A(X,1) - INT((RG/DMG) *(A(X,1) -MG(1)))
3040 D2 = A(X,2) - INT((RG/DMG) *(A(X,2) -MG(2)))
3050 G(X) = G(X) -1
3060 GOSUB 830
3070 GOTO 760
3080 :
3090 REM ** INSTRUCTIONS **
3100 :
3110 HOME : HTAB 15: PRINT "INSTRUCTIONS": PRINT
3120 PRINT TAB( 5)"YOUR MISSION IS TO LAND AND SECURE"
3130 PRINT "THE BEACH HEAD WITH MINIMAL LOSS"
3140 PRINT "OF LIFE."
3150 PRINT : HTAB 5: PRINT "YOU WILL LAND 12 MEN ON THE"
3160 PRINT "BEACH AND PROCEED TO LOCATE AND DESTROY"
3170 PRINT "THE MACHINE GUN NEST LOCATED THERE."
3180 PRINT : HTAB 5: PRINT "THIS WILL BE A FORMIDABLE IF NOT"