0HIMEM :41000
5TEXT
10 pm$="Missile Monitor"
15FOR n=1 TO 4
20? CHR$(162)
25NEXT n
30 tb=16-INT(LEN(pm$)/2)
35? TAB(tb); pm$
40FOR n=1 TO 4:? CHR$(162):NEXT n
41NORMAL
42 d=d+1:IF d/2=INT(d/2) THEN INVERSE
45? " Hit Controller Button to Play"; CHR$(160)
50 iv=0: r=0
55NORMAL:IF iv=1 THEN INVERSE
60? " Hit"; CHR$(160)
65 c=0
70 c=c+1: r=r+1:IF (PDL(7)=0) AND (PDL(9)=0) AND (c<40) THEN 70
80IF c=40 THEN  iv=1-iv:GOTO 55
90 r=RND(-r)
92NORMAL
95CLEAR
100GOSUB 8000
150GOSUB 1000
160GOSUB 1100
170GOSUB 1200
171HOME:?:? " Level: "; gm+1
172GOSUB 4000
173 ht=0: nm=0
175GOSUB 1400
177IF PDL(9) THEN GOSUB 1500
180GOSUB 1300:IF ht<3 AND nm<25 THEN 175
190IF ht>2 THEN 400
200 gm=gm+1:IF gm>4 THEN 300
205HGR
210SCALE =1
220ROT =0
230GOTO 170
300HOME
310? " **** You Win! ****"
320? "Would you like to play again? "; 
325? "(Y/N)"
330GET a$
340IF a$="y" OR a$="Y" THEN 95
350TEXT
360END
400HOME
410? " **** You Lose! ****"
420? "Would you like to play again? "; 
425? "(Y/N)"
430GET a$
440IF a$="y" OR a$="Y" THEN 95
450TEXT
460END
1000HGR
1005SCALE =1
1006ROT =0
1010HCOLOR =1
1099RETURN
1100DIM x(4), c(4), d(4)
1105DIM cl(4): cl(0)=8: cl(1)=15: cl(2)=5: cl(3)=6: cl(4)=1
1110 x=128: y=100
1199RETURN
1200FOR n=1 TO 4
1220 x(n)=INT(RND(10)*256)
1225 y(n)=1
1230 c(n)=RND(1)
1235IF x(n)>128 THEN  c(n)=-c(n)
1237 d(n)=1:IF n<gm THEN  d(n)=2
1240NEXT n:RETURN
1300HCOLOR =1
1305FOR n=1 TO 4
1310HPLOT x(n), y(n)
1320 x(n)=x(n)+c(n): y(n)=y(n)+d(n)
1325IF y(n)>130 THEN GOSUB 2500
1335NEXT n
1340RETURN
1400 a=PDL(5)
1405 xc=0: yc=0
1410IF a=1 THEN  yc=-8
1420IF a=2 THEN  xc=8
1430IF a=4 THEN  yc=8
1440IF a=8 THEN  xc=-8
1442IF (x+xc>250) OR (x+xc<5) OR (y+yc>108) OR (y+yc<5) THEN RETURN
1447XDRAW 1 AT x, y
1450 y=y+yc: x=x+xc
1460DRAW 1 AT x, y
1470RETURN
1500HCOLOR =2
1515DRAW 2 AT x+5, y
1520FOR n=1 TO 4
1530IF ABS(x(n)-x)+ABS(y(n)-y)<10 THEN GOSUB 1600
1540NEXT n
1550HCOLOR =0
1565XDRAW 2 AT x+5, y
1570RETURN
1600 nm=nm+1
1605IF RND(1)>.5 THEN 1630
1610 y(n)=1: x(n)=INT(RND(1)*255+1): c(n)=RND(1)
1620IF x(n)>128 THEN  c(n)=-c(n)
1625RETURN
1630IF n=1 THEN 1610
1640 x(n)=x(n-1): y(n)=y(n-1): c(n)=RND(1)
1650IF x(n)>128 THEN  c(n)=-c(n)
1660RETURN
2500HCOLOR =15
2501 ht=ht+1:IF x(n)>255 THEN  x(n)=255
2502DRAW 4 AT x(n), y(n)
2503XDRAW 4 AT x(n), y(n)
2504DRAW 2 AT x(n), y(n)
2505HCOLOR =5
2506SCALE =2:DRAW 2 AT x(n), y(n)
2510XDRAW 2 AT x(n), y(n)
2515SCALE =1:XDRAW 2 AT x(n), y(n)
2520GOSUB 1600:RETURN
4000HCOLOR =cl(gm)
4005FOR n=10 TO 230 STEP 30
4010DRAW 3 AT n, 150
4020NEXT n
4025HCOLOR =6
4030HPLOT 0, 158 TO 255, 158
4040RETURN
8000 qs=4: pt=16766: tl=43000
8005 of=qs*2+3
8010 by=tl:GOSUB 8100
8015POKE pt, lo:POKE pt+1, hi
8020POKE tl, qs
8030FOR n=1 TO qs
8040 by=of:GOSUB 8100
8050POKE tl+n*2, lo:POKE tl+n*2+1, hi
8060READ a:POKE tl+of, a: of=of+1
8065IF a<>0 THEN 8060
8070NEXT n
8080RETURN
8100 hi=INT(by/256): lo=by-hi*256
8130RETURN
9510DATA  45,45,221,147,34,36,36,36,0
9610DATA  60,60,60,60,55,55,55,46,46,46,37
9620DATA  37,60,60,60,39,63,55,46,46,54,54
9630DATA  46,45,36,36,45,54,46,45,36,36,36
9640DATA  60,60,60,63,55,54,39,60,36,60,55
9650DATA  54,46,54,54,54,62,60,60,39,36,44
9660DATA  44,45,46,0
9710DATA  36,36,36,36,36,36,36,36,36,36,44
9720DATA  45,45,53,54,54,54,54,54,54,54,54
9730DATA  54,54,54,77,36,36,36,36,36,36,36
9740DATA  44,45,45,53,54,54,54,54,54,54,54
9750DATA  118,33,36,36,36,36,36,36,36,36,36
9760DATA  36,36,60,63,63,54,54,54,36,36,36
9770DATA  36,36,39,36,39,36,39,36,55,54,55
9780DATA  54,55,54,55,54,0
9810DATA  39,39,127,73,33,36,39,103,137,146,41
9820DATA  44,45,172,210,27,54,45,46,222,219,46
9830DATA  46,238,219,39,36,4,0
