ROM Computer Magazine Archive ROM MAGAZINE ISSUE 3 — DECEMBER 1983/JANUARY 1984 / PAGE 32

Captain Campsite
by Bob Cockroft

    Imagine yourself in a sub-tropical forest enjoying the peace and tranquility of the natural surroundings. The sounds of the woods are all around you as you sit in the long green grass in front of your cabin. With only your favorite comic book and a limited supply of food you are isolated from the rest of the world.
    Suddenly, out of the trees come various types of carnivorous animals that are running with alarming speed toward the cabin. Realizing that it is the food supply they want, you grab your automatic tranquilizer gun and prepare to defend what is yours. Shooting upon the aggressive intruders, you watch them fall into a deep sleep. As you race from one side of the cabin to the other, your shooting skills are put to the limit. Remembering that it is important to avoid getting to close to those dangerous animals, you are forced to skillfully maneuver yourself in order not to be eaten. In addition, trees, stumps and the cabin are also deadly hazards if run into. Your shooting does not seem to discourage them. From all directions they come with increasing speed and fury. The situation is beginning to seem hopeless. This is a job for CAPTAIN CAMPSITE.!
    Although speed and accuracy in shooting are the qualities that will determine success in this game, some words on tactics may prove to be helpful. To make the game realistic, the animals were designed to have a chance to withstand certain hits on their body making the animals sometimes very tricky to put to sleep. What this means in terms of tactics is that hits to the thickest sections of an animal's body are most likely to be effective. Therefore head-on hits, parallel to the horizontal plain of their body are usual most devastating. It is also important not to venture far away from your cabin. Remember that the food container in the center of the cabin is the target of the animals, not you. In addition, by getting to far away, the chance of an animal getting between you and the food is increased. Also, the trees will sometimes impede the way back to the cabin. If all of what I have said does not seem to be helpful, maybe it will be best to just practice. GOOD LUCK!
    IF you find the program seems too long to type in you can send $5.00 to: ROM, P.O. BOX 252, Maple Ridge, B.C.V2X 7G1. Specify whether you want disk or cassete.

Captain Campsite screen

Basic Listing

2 REM * REQUIRES 48K OF MEMORY
3 REM * CAPTAIN CAMPSITE *
4 BEM *
5 DIM RAD[$(17),YN$(4)
10 LEVEL=1:LIVES=1:PLAY=1:LIVES1=1:SECOND=0
12 RESTORE
15 POKE 752,1
20 SCORE1=0:SCOBE2=0:SCOBE3=0:SCORE4=0
30 SPEED=100
80 GRAPHICS 0
90 RAMT=PEEK[(106)-4
150 CHBASE=57344
170 NET=RAMT*256
180 POKE 106,PEEK[(106)-5
185 GRAPHICS 0
186 POSITION 13,8:? "Captain Campsite"
188 POSITION 15,10:? "LOADING DATA":POSITION 15,11:? "Please Wait"
189 POSITION 15,12:? "2:06 minutes"
190 REM * MOVE ROM SET TO NEW LOCATION *
200 FOR W=1 TO 1024:POKE NSET+W-1,PEEK(CBASE+W-1}
210 NEXT W
220 FOR NUM=33 TO 40
230 SET=NSET+NUM*8
240 FOR L1=0 TO 7
245 READ D
250 POKE SET+L1,D
260 NEXT Ll
265 NEXT NUM
270 IF SECOND=1 THEN 500
299 REM * LOAD MACHINE CODE *
300 FOR X=34000 TO 37571
305 READ D
310 POKE X,D
315 NEXT X
499 REM * OPTION SECTION *
500 GRAPHICS 1:SETCOLOR 2,16,1
520 POSITION 1,2:? "use OPTION S.• SELECT buttons to change the skill level"
525 POSITION 1,4:? "use START button to continue"
528 POSITION 0,4:? #6;"WHAT SKILL LEVEL?:";:? #6;LEVEL
530 IF PEEK(53279)=3 AND LEVEL<7 THEN LEVEL=LEVEL+1
540 IF PEEK(53279)=5 AND LEVEL>0 THEN LEVEL=LEVEL-1
545 FOR X=1 TO 100:NEXT X
550 IF PEEK(53279)=6 THEN 570
560 GOTO 528
570 POSITION 0,6:? #6;"HOW MANY LIVES?:";:? #6;LIVES
580 IF PEEK(53279)=3 AND LIVES<"6 THEN LIVES=LIVES+1
590 IF PEEK(53279)=5 AND LIVES >0 THEN LIVES=LIVES-1
595 FOR X=1 TO 100:NEXT X
600 IF PEEK (53279)=6 THEN 620
610 GOTO 570
620 POSITION 0,8:? #6;"HOW MANY PLAYERS?:";:? #6;PLAY
630 IF PEEK(53279)=3 AND PLAY<4 THEN PLAY=PLAY+1
640 IF PEEK(53279)=5 AND PLAY>l THEN PLAY=PLAY-1
645 FOR X=1 TO 100:NEXT X
650 IF PEEK(53279)=6 THEN 662
660 GOTO 620
662 IF PLAY>0 THEN LIVES1=LIVES
664 IF PLAY>1 THEN LIVES2=LIVES
666 IF PLAY>2 THEN LIVES3=LIVES
666 IF PLAY>3 THEN LIVES4=LIVES
670 IF LIVES1<1 AND LIVES2<1 AND LIVES3<1 AND LIVES4<1 THEN 1500
675 REM *
676 REM * MAIN LOOP *
679 PL=0
680 PL=PL+1
682 IF PL=1 AND LIVES1<1 THEN 1200
684 IF PL=2 AND LIVES2<1 THEN 1200
686 IF PL=3 AND LIVES3<1 THEN 1200
688 IF PL=4 AND LIVES4<1 THEN 1200
770 REM * PRE SCREEN SECTION *
782 IF PL=1 THEN LIV=LIVES1
784 IF PL=2 THEN LIV=LIVES2
786 IF PL=3 THEN LIV=LIVES3
788 IF PL=4 THEN LIV=LIVES4
800 GRAPHICS 1:COLOR 1:SETCOLOR 2,16,1
810 POSITION 6,8:? #6;"LEVEL ";:? #6;LEVEL
820 POSITION 6,10:? #6;"PLAYER ";:? #6;PL
830 POSITION 6,12:? #6;"LIVES ":? #6;LIV
835 FOR X=1 TO 300:NEXT X
839 REM * DRAW THE SCREEN *
840 GRAPHICS 0:SETCOLOR 2,12,1
842 POKE 752,1
845 POKE 756,NSET/256
850 FOR Y=10 TO 13:POSITION 17,Y:? "I":POSITION 21,Y:? "L":NEXT Y
860 FOR X=17 TO 21:POSITION X,10:? "K":POSITION X,13:? "J":NEXT X
865 POSITION 19,10:? " "
870 POSITION 10,5:? "F":POSITION 35,2:? "F":POSITION 13,17:? "F":POSITION 20,22:? "F"
880 POSITION 5,5:? "F":POSITION 30,4:? "F":POSITION 30,22:? "F":POSITION 14,3'? "F"
890 POSITION 30,12:? "G":POSITION 32,8:? "G":POSITION 5,17:? "G":POSITION 4,10:? "G"
900 POSITION 10,2:? "G":POSITION 22,21:? "G":POSITION 22,4:? "G":POSITION 34,17:? "G"
910 POSITION 8,12:? "H":POSITION 10,15:? "H":POSITION :36,18:? "H":POSITION 28,4:? "H":POSITION 1,17:? "H"
920 POSITION 2,2:? "G":POSITION 38,10:? "H"
922 POSITION 19,12:? "M"
924 POKE 1577,7+INT(LEVEL/2)
925 POKE 33999,104
930 X=USR(33999)
999 REM * AFTER BATTLE STATUS *
1000 IF PEEK(1575)=0 THEN 1050
1010 IF PL=1 THEN LIVES1=LIVES1-1
1020 IF PL=2 THEN LIVES2=LIVES2-1
1030 IF PL=3 THEN LIVES3=LIVES3-1
1040 IF PL=4 THEN LIVES4=LIVES4-1
1049 REM * SCORE *
1050 PSCORE=PEEK(1576)*LEVEL+INT(RND(0)*10)
1060 IF PL=1 THEN SCORE1=SCORE1+PSCORE
1070 IF PL=2 THEN SCORE2=SCORE2+PSCORE
1080 IF PL=3 THEN SCORES=SCORES+PSCORE
1090 IF PL=4 THEN SCORE4=SCORE4+PSCORE
1100 GRAPHICS 0
1102 POKE 53248,0:POKE 53249,0:POKE 53250,0:POKE 53251,0:POKE 53252,0:POKE 53253,0:POKE 53254,0
1110 POSITION 19,4:? "SCORE"
1120 POSITION 2,6:? "PLAYER 1:";SCORE1
1130 IF PLAY>1 THEN POSITION 2,8:? "PLAYER 2:   ";SCORE2
1140 IF PLAY>2 THEN POSITION 2,10:? "PLAYER 3:   ";SCORE3
1150 IF PLAY>3 THEN POSITION 2,12:? "PLAYER 4:   ";SCORE4
1160 POSITION 2,15:? " press START button to continue"
1170 IF PEEK(53279)=6 THEN 1190
1180 GOTO 1170
1190 SPEED=100-(LEVEL*5)
1195 IF SPEED<1 THEN SPEED=1
1196 IF SPEED>255 THEN SPEED=255
1197 POKE 1563,SPEED
1200 IF PL<>PLAY THEN 680
1205 LEVEL=LEVEL+1
1210 GOTO 670
1499 REM * FINAL STATUS SECTION *
1500 GRAPHICS 0
1510 COLOR 1:SETCOLOR 2,16,1
1520 POSITION 15,4:? "FINAL RESULTS"
1530 POSITION 12,6:? "SCORE     RANK"
1590 FOR TL=1 TO 4
1592 IF TL=1 THEN SC=SCORE1
1594 IF TL=2 THEN SC=SCORE2
1596 IF TL=3 THEN SC=SCORE3
1598 IF TL=4 THEN SC=SCORE4
1600 IF SC<400,THEN RAN$="PEST     "
1610 IF SC>399 THEN RAN$="BROWNY     "
1620 IF SC>500 THEN RAN$="BOY SCOUT "
1630 IF SC>600 THEN RAN$="CAMPER     "
1640 IF SC>700 THEN RAN$="WOODSMAN   "
1650 IF SC>800 THEN RAN$="EXPLORER   "
1660 IF SC>1000 THEN RAN$="CAPTIAN CAMPSITE "
1670 IF TL=1 THEN POSITION 2,8:? "PLAYER 1 ";SCORE1;"  ";RAN$
1680 IF TL=2 THEN POSITION 2,10:? "PLAYER 2 ";SCORE2;"    ";RAN$
1690 IF TL=3 THEN POSITION 2,12:? "PLAYER 3 ";SCORE3;"    ";RAN$
1700 IF TL=4 THEN POSITION 2,14:? "PLAYER 4 ";SCORE4;"    ";RAN$
1705 NEXT TL
1800 ? :? "press the RESET button before restarting program"
10000 DATA 4,156,208,90,78,120,16,16
10010 DATA 16,56,16,124,56,254,124,16
10020 DATA 0,0,0,0,0,24,24,60
10030 DATA 255,235,255,235,255,235,255,255
10040 DATA 255,255,213,255,213,255,255,255
10050 DATA 255,255,255,213,255,213,255,255
10060 DATA 255,215,255,215,255,215,255,255
10080 DATA 116,46,127,85,73,85,127,0
12000 DATA 169,62,141,47,2,169,110,141,192,2,169,88,141,193,2,169,28,141,194,2,169,63,141,195
12005 DATA 2,165,106,169,112,141,7,212,169,3,141,29,208,169,120,141,1,6,169,100,141,0,6,169
12010 DATA 0,141,5,6,141,8,6,141,9,6,169,0,169,1,141,30,208,169,0,141,40,6,169,0
12015 DATA 162,0,157,0,116,157,0,117,157,0,118,157,0,119,157,0,115,232,224,255,208,236,162,0
12020 DATA 157,19,6,232,224,4,208,248,173,10,210,141,43,6,169,0,133,77,238,28,6,169,0,141
12025 DATA 3,210,141,39,6,173,28,6,205,27,6,208,8,169,0,141,28,6,76,66,140,173,9,208
12030 DATA 201,0,208,47,173,10,208,201,0,208,40,173,11,208,201,0,208,33,173,4,208,201,0,240
12035 DATA 3,76,138,146,173,12,208,201,0,240,7,201,1,240,3,76,138,146,173,40,6,205,41,6
12040 DATA 208,7,96,169,200,141,39,6,96,174,132,2,224,0,208,3,76,170,136,173,5,6,201,0
12045 DATA 240,3,76,170,136,173,42,6,201,10,240,6,238,42,6,76,147,138,169,0,141,42,6,173
12050 DATA 120,2,141,3,6,201,14,240,35,201,10,208,3,76,167,135,201,11,208,3,76,167,135,201
12055 DATA 15,208,3,76,105,136,201,13,240,43,201,9,208,3,76,167,135,76,223,134,172,0,6,174
12060 DATA 1,6,142,0,208,192,25,240,3,206,0,6,173,3,6,201,14,240,7,201,13,240,3,76
12065 DATA 134,138,76,43,134,172,0,6,174,1,6,142,0,208,192,225,240,3,238,0,6,173,3,6
12070 DATA 201,14,240,7,201,13,240,3,76,134,138,162,0,236,2,6,240,23,232,224,4,208,246,236
12075 DATA 2,6,240,10,232,224,8,208,246,169,0,141,2,6,76,148,134,76,76,134,238,2,6,172
12080 DATA 0,6,169,0,153,255,115,153,13,116,153,0,116,153,12,116,169,28,153,1,116,153,3,116
12085 DATA 153,8,,116,169,20,153,2,116,169,8,153,4,116,153,7,116,169,62,153,5,116,169,40,153
12090 DATA 6,116,169,52,153,9,116,169,4,153,10,116,169,6,153,11,116,76,220,134,238,2,6,172
12095 DATA 0,6,169,0,153,13,116,153,0,116,153,12,116,153,255,115,169,28,153,1,116,153,3,116
12100 DATA 153,8,116,169,20,153,2,116,169,8,153,4,116,153,7,116,169,62,153,5,116,169,10,153
12105 DATA 6,116,169,48,153,11,116,169,22,153,9,116,169,16,153,10,116,76,220,134,76,134,138,172
12110 DATA 0,6,174,1,6,142,0,208,224,240,240,3,238,1,6,162,0,236,4,6,240,23,232,224
12115 DATA 3,208,246,236,4,6,240,10,232,224,6,208,246,169,0,141,4,6,76,86,135,76,16,135
12120 DATA 238,4,6,172,0,6,169,0,153,0,116,153,12,116,153,13,116,153,153,115,169,28,153,1
12125 DATA 116,153,3,116,153,8,116,169,20,153,2,116,169,8,153,4,116,153,6,116,153,7,116,169
12130 DATA 52,153,9,116,169,6,153,11,116,169,36,153,10,116,169,30,153,5,116,76,147,135,238,4
12135 DATA 6,172,0,6,169,0,153,0,116,153,12,116,169,28,153,1,116,153,3,116,153,8,116,169
12140 DATA 20,153,2,116,169,22,153,9,116,169,8,153,4,116,153,6,116,153,7,116,169,12,153,5
12145 DATA 116,169,16,153,10,116,169,24,153,11,116,173,3,6,201,6,208,3,76,236,133,201,5,203
12150 DATA 3,76,13,134,76,134,138,172,0,6,174,1,6,142,0,208,224,20,240,3,206,1,6,162
12155 DATA 0,236,4,6,240,23,232,224,3,208,246,236,4,6,240,10,232,224,6,208,246,169,0,141
12160 DATA 4,6,76,24,136,76,216,135,238,4,6,172,0,6,169,0,153,0,116,153,12,116,169,28
12165 DATA 153,1,116,153,3,116,153,8,116,169,60,153,5,116,169,20,153,2,116,169,52,153,9,116
12170 DATA 169,8,153,4,116,153,6,116,153,7,116,169,12,153,11,116,169,4,153,10,116,76,85,136
12175 DATA 238,4,6,172,0,6,169,0,153,0,116,153,12,116,169,28,153,1,116,153,3,116,153,8
12180 DATA 116,169,20,153,2,116,169,8,153,4,116,153,6,116,153,7,116,169,22,153,9,116,169,18
12185 DATA 153,10,116,169,48,153,11,116,169,24,153,5,116,173,3,6,201,10,208,3,76,236,133,201
12190 DATA 9,208,3,76,13,134,76,134,138,172,0,6,174,1,6,142,0,208,169,0,153,11,116,153
12195 DATA 12,116,153,0,116,169,28,153,1,116,153,3,116,153,8,116,169,20,153,2,116,153,9,116
12200 DATA 169,8,153,4,116,153,7,116,169,62,153,5,116,169,42,153,6,116,169,54,153,10,116,76
12205 DATA 134,138,174,5,6,224,0,208,6,173,120,2,141,25,6,173,25,6,201,15,208,3,76,105
12210 DATA 136,169,220,141,2,210,169,204,141,3,210,173,25,6,201,14,208,3,76,244,136,201,13,208
12215 DATA 3,76,55,137,201,6,208,3,76,120,137,201,7,208,3,76,120,137,201,5,208,3,76,120
12220 DATA 137,76,0,138,172,0,6,174,1,6,142,0,208,172,0,6,169,0,153,0,116,153,11.116
12225 DATA 169,28,153,1,116,153,8,116,169,20,153,2,116,153,9,116,169,29,153,3,116,169,9,153
12230 DATA 4,116,169,15,153,5,116,169,8,153,6,116,153,7,116,169,54,153,10,116,76,164,138,172
12235 DATA 0,6,174,1,6,142,0,208,172,0,6,169,0,153,0,116,153,11,116,169,28,153,1,116
12240 DATA 153,3,116,153,8,116,169,20,153,2,116,153,9,116,169,8,153,4,116,169,15,153,5,116
12245 DATA 169,9,153,6,116,153,7,116,169,54,153,10,116,76,164,138,172,0,6,174,1,6,142,0
12250 DATA 208,172,0,6,169,0,153,0,116,153,153,115,153,12,116,153,11,116,169,28,153,1,116,153
12255 DATA 3,116,169,20,153,2,116,169,8,153,7,116,169,14,153,8,116,169,10,153,9,116,169,59
12260 DATA 153,10,116,173,25,6,172,0,6,201,7,208,3,76,202,137,201,6,208,3,76,218,137,76
12265 DATA 238,137,169,8,153,4,116,153,6,116,169,15,153,5,116,76,138,169,9,153,4,116,169
12270 DATA 14,153,5,116,169,8,153,6,116,169,56,76,164,138,169,8,153,4,116,169,14,153,5,116
12275 DATA 169,9,153,6,116,76,164,138,173,0,6,174,1,6,142,0,208,172,0,6,169,0,153,0
12280 DATA 116,153,153,115,153,12,116,153,11,116,169,28,153,1,116,153,3,116,169,20,153,2,116,169
12285 DATA 8,153,7,116,169,56,153,8,116,169,40,153,9,116,169,110,153,10,116,173,25,6,172,0
12290 DATA 6,201,11,208,3,76,82,138,201,10,208,3,76,98,138,76,116,138,169,8,153,4,116,153
12295 DATA 6,116,169,120,153,5,116,76,164,138,169,72,153,4,116,169,56,153,5,116,169,8,153,6
12300 DATA 116,76,164,138,169,8,153,4,116,169,56,153,5,116,169,72,153,6,116,76,164,138,173,5
12305 DATA 6,201,0,240,3,76,164,138,76,147,138,160,0,162,0,232,224,255,208,251,200,192,5,208
12310 DATA 251,76,56,133,173,5,6,201,0,208,17,169,1,141,5,6,172,0,6,140,6,6,174,1
12315 DATA 6,142,7,6,173,25,6,201,14,208,3,76,236,138,201,13,208,3,76,10,139,201,11,208
12320 DATA 3,76,97,139,201,10,208,3,76,97,139,201,9,208,3,76,97,139,201,15,208,3,76,147
12325 DATA 138,76,40,139,173,6,6,201,10,240,10,206,6,6,173,25,6,201,14,208,10,169,6,141
12330 DATA 9,6,169,0,141,26,6,76,150,139,173,6,6,201,245,240,10,238,6,6,173,25,6,201
12335 DATA 13,208,10,169,6,141,9,6,169,10,141,26,6,76,150,139,169,5,141,26,6,174,7,6
12340 DATA 169,6,141,9,6,238,8,6,224,225,240,7,224,224,:240,3,238,7,6,173,25,6,201,6
12345 DATA 208,8,169,3,141,26,6,76,236,138,201,5,208,8,169,7,141,26,6,76,10,139,76,150
12350 DATA 139,169,5,141,26,6,174,7,6,169,0,141,9,6,224,25,240,3,206,7,6,173,25,6
12355 DATA 238,8,6,201,10,208,8,169,3,141,26,6,76,236,138,201,9,208,8,169,7,141,26,6
12360 DATA 76,10,139,76,150,139,169,1,141,5,6,173,6,6,24,109,26,6,168,173,7,6,24,109
12365 DATA 9,6,141,4,208,169,0,153,3,115,153,255,114,153,1,115,169,1,153,0,115,173,0,208
12370 DATA 201,0,208,10,238,8,6,173,8,6,201,80,208,11,169,0,141,8,6,141,5,6,153,0
12375 DATA 115,173,8,208,141,29,6,173,29,6,168,192,0,208,3,76,58,140,192,1,208,3,76,58
12380 DATA 140,192,8,208,3,76,42,140,192,4,208,3,76,26,140,192,2,208,3,76,10,140,136,76
12385 DATA 227,139,162,1,56,233,2,141,29,6,169,0,157,19,6,76,0,146,162,2,56,233,4,141
12390 DATA 29,6,169,0,157,19,6,76,46,146,162,3,56,233,8,141,29,6,169,0,157,19,6,76
12395 DATA 92,146,169,1,141,30,208,76,147,138,162,0,169,0,141,24,6,232,224,4,208,3,76,93
12400 DATA 133,189,19,6,201,0,208,3,76,94,140,76,199,140,160,0,169,0,224,1,208,11,153,255
12405 DATA 116,200,192,255,208,248,76,139,140,224,2,208,11,153,255,117,200,192,255,208,248,76,139,140
12410 DATA 153,255,118,200,192,255,208,248,76,139,140,169,1,157,19,6,173,43,6,48,12,160,5,173
12415 DATA 10,210,48,17,160,250,76,173,140,160,5,173,10,210,48,18,160,250,76,186,140,152,157,10
12420 DATA 6,173,10,210,157,14,6,76,91,140,152,157,14,6,173,10,210,157,10,6,76,91,140,169
12425 DATA 0,221,10,6,208,11,254,10,6,169,2,141,24,6,76,249,140,168,189,10,6,201,120,208
12430 DATA 3,76,249,140,152,24,105,1,201,121,208,221,222,10,6,169,0,169,1,141,24,6,76,249
12435 DATA 140,169,0,221,14,6,208,15,254,14,6,173,24,6,24,105,10,141,24,6,76,37,141,24
12440 DATA 105,1,201,126,208,229,222,14,6,173,24,6,24,105,20,141,24,6,76,37,141,238,23,6
12445 DATA 189,10,6,201,120,208,10,189,14,6,201,125,208,3,76,138,146,189,10,6,157,0,208,189
12450 DATA 14,6,168,173,23,6,201,2,208,5,169,0,141,23,6,224,2,208,3,76,218,142,224,1
12455 DATA 208,3,76,96,141,76,111,144,169,0,153,255,116,153,0,117,153,10,117,153,11,117,173,24
12460 DATA 6,201,20,208,3,76,162,141,201,10,208,3,76,0,142,169,0,153,1,117,153,2,117,153
12465 DATA 8,117,153,9,117,173,24,6,201,1,240,11,201,11,240,7,22,240,3,76,94,142,76
12470 DATA 156,142,173,23,6,201,0,208,3,76,214,141,169,2,153,1,117,169,7,153,2,117,153,6
12475 DATA 117,169,14,153,3,117,153,5,117,169,6,153,4,117,169,4,153,7,117,169,8,153,8,117
12480 DATA 153,9,117,76,253,145,169,4,153,1,117,169,14,153,2,117,153,6,117,169,7,153,3,117
12485 DATA 153,5,117,169,6,153,4,117,169,2,153,7,117,169,1,153,8,117,153,9,117,76,253,145
12490 DATA 173,23,6,201,0,208,3,76,52,142,169,8,153,1,117,153,2,117,169,4,153,3,117,169
12495 DATA 7,153,4,117,153,8,117,169,14,153,5,117,153,7,117,169,6,153,6,117,169,2,153,9
12500 DATA 117,76,253,145,169,1,153,1,117,153,2,117,169,2,153,3,117,169,14,153,4,117,153,8
12505 DATA 117,169,7,153,5,117,153,7,117,169,6,153,6,117,169,4,153,9,117,76,253,145,173,23
12510 DATA 6,201,0,208,3,76,130,142,169,4,153,3,117,169,158,153,4,117,169,127,153,5,117,169
12515 DATA 34,153,6,117,153,7,117,76,253,145,169,4,153,3,117,169,30,153,4,117,169,255,153,5
12520 DATA 117,169,20,153,6,117,153,7,117,76,253,145,173,23,6,201,0,208,3,76,192,142,169,32
12525 DATA 153,3,117,169,120,153,4,117,169,255,153,5,117,169,40,153,6,117,153,7,117,76,253,145
12530 DATA 169,32,153,3,117,169,121,153,4,117,169,254,153,5,117,169,68,153,6,117,153,7,117,76
12535 DATA 253,145,169,0,153,254,117,153,255,117,153,10,118,153,11,118,173,24,6,201,20,208,3,76
12540 DATA 28,143,201,10,208,3,76,135,143,169,0,153,1,118,153,2,118,153,8,118,153,9,118,173
12545 DATA 24,6,201,1,240,11,201,11,240,7,201,21,240,3,76,239,143,76,47,144,173,23,6,201
12550 DATA 0,208,3,76,90,143,169,34,153,0,118,169,20,153,1,118,153,6,118,169,8,153,2,118
12555 DATA 169,14,153,3,118,153,5,118,169,28,153,4,118,153,6,118,169,4,153,7,118,169,2,153
12560 DATA 8,118,169,1,153,9,118,76,253,145,169,4,153,0,118,153,1,118,153,2,118,169,28,153
12565 DATA 3,118,153,5,118,169,14,153,4,118,153,6,118,169,8,153,7,118,169,16,153,8,118,169
12570 DATA 32,153,9,118,76,253,145,173,23,6,201,0,208,3,76,194,143,169,2,153,118,169,1
12575 DATA 153,0,118,169,4,153,2,118,169,28,153,3,118,153,5,118,169,14,153,4,118,153,6,118
12580 DATA 169,8,153,7,118,169,20,153,8,118,169,34,153,9,118,76,253,145,169,16,153,1,118,169
12585 DATA 32,153,0,118,169,8,153,2,118,169,14,153,3,118,153,5,118,169,28,153,4,118,153,6
12590 DATA 118,169,4,153,7,118,153,8,118,153,9,118,76,253,145,173,23,6,201,0,208,3,76,19
12595 DATA 144,169,1,153,3,118,153,7,118,169,158,153,4,118,163,124,153,5,118,169,42,153,6,118
12600 DATA 76,253,145,169,0,153,3,118,169,128,153,7,118,169,12,153,4,118,169,63,153,5,118,169
12605 DATA 84,153,6,118,76,253,145,173,23,6,201,0,208,3,76,83,144,169,128,153,3,118,153,7
12610 DATA 118,169,121,153,4,118,169,62,153,5,118,169,84,153,6,118,76,253,145,169,0,153,3,118
12615 DATA 169,1,153,7,118,169,48,153,4,118,169,252,153,5,118,169,42,153,6,118,76,253,145,169
12620 DATA 0,153,255,118,153,0,119,153,10,119,153,3,119,173,24,6,201,20,208,3,76,177,144,201
12625 DATA 10,208,3,76,21,145,169,0,153,1,119,153,2,119,153,8,119,153,9,119,173,24,6,201
12630 DATA 1,240,11,201,11,240,7,201,21,240,3,76,121,145,76,187,145,173,23,6,201,0,208,3
12635 DATA 76,233,144,169,4,153,1,119,153,3,119,169,14,153,2,119,169,7,153,4,119,169,1,153
12640 DATA 5,119,169,63,153,6,119,169,32,153,7,119,169,48,153,8,119,169,16,153,9,119,76,253
12645 DATA 145,169,16,153,1,119,153,3,119,169,56,153,2,119,169,48,153,4,119,169,32,153,5,119
12650 DATA 153,6,119,169,62,153,7,119,169,2,153,8,119,169,126,153,9,119,76,253,145,173,23,6
12655 DATA 201,0,208,3,76,77,145,169,16,153,1,119,169,48,153,2,119,169,32,153,3,119,169,63
12660 DATA 153,4,119,169,1,153,5,119,169,7,153,6,119,169,4,153,7,119,153,9,119,169,14,153
12665 DATA 8,119,76,253,145,169,126,153,1,119,169,2,153,2,119,169,62,153,3,119,169,32,153,4
12670 DATA 119,153,5,119,169,48,153,6,119,169,56,153,8,119,169,16,153,7,119,153,9,119,76,253
12675 DATA 145,173,23,6,201,0,208,3,76,159,145,169,56,153,3,119,169,40,153,4,119,169,235,153
12680 DATA 5,119,169,10,153,6,119,169,14,153,7,119,76,253,145,169,131,153,3,119,169,130,153,4
12685 DATA 119,169,186,153,5,119,169,170,153,6,119,169,238,153,7,119,76,253,145,173,23,6,201,0
12690 DATA 208,3,76,225,145,169,28,153,3,119,169,20,153,4,119,169,212,153,5,119,169,87,153,6
12695 DATA 119,169,112,153,7,119,76,253,145,169,1,153,3,119,169,193,153,4,119,169,93,153,5,119
12700 DATA 169,85,153,6,119,169,119,153,7,119,76,253,145,76,68,140,189,14,6,168,169,8,153,0
12705 DATA 117,153,1,117,153,8,117,153,2,117,153,4,117,153,5,117,153,6,117,153,7,117,169,62
12710 DATA 153,3,117,169,0,153,9,117,238,40,6,76,223,139,189,14,6,168,169,8,153,0,118,153
12715 DATA 1,118,153,2,118,153,4,118,153,5,118,153,6,118,153,7,118,153,8,118,169,62,153,3
12720 DATA 118,238,40,6,169,0,153,9,118,76,223,139,189,14,6,168,169,8,153,0,119,153,1,119
12725 DATA 153,2,119,153,4,119,153,5,119,153,6,119,153,7,119,153,8,119,169,62,153,3,119,169
12730 DATA 0,153,9,119,238,40,6,76,223,139,162,0,189,0,6,168,169,8,153,0,116,153,1,116
12735 DATA 153,2,116,153,4,116,153,5,116,153,6,116,153,7,116,153,8,116,169,62,153,3,116,169
12740 DATA 0,153,9,116,153,10,116,153,12,116,153,11,116,169,10,141,39,6,96,0

Assembler Listing

00008  .LI  OFF
00009  .OR  $84D0
00010  .TA  $2600
00011  .TF  "D:ADVENT7.O8J"
00012 VERT  .EQ $600    ;VERT FOS
00013 H0RZ  .EQ $601    ;HORZ FOS
00014 VDIR  .EQ $602    ;DETERMINE VIERT FRAME
00018 STICK .ED $603    ;STICk: POSITION
00020 HDIR  .EQ $604    ;DETERMINE HORZ FRAME
00022 STRIG0 .EQ $284   ;TRIGGER POSTION
00024 PLAYER0 .EQ $7000 ;PLAYER0 BASE
00026 PLAYER1 .EQ $7100 ;PLAYER1 BASE
00028 PLAYER2 .EQ $7200 ;PLAYER2 BASE
00030 FLAYEF3 .EQ $7300 ;PLAYER3 BASE
00032 MIP .EQ $605      :MISSILE IN PROGRESS FLAG
00034 MVERT .EQ $606    ;MISSILE VERT POS
00036 MHORZ .EQ $607    ;MISSILE HORZ POS
00038 MCOUNT .EQ $608   ;MISSILE DISTANCE COUNTER
00040 MAJUST .EQ $609   ;MISSILE ADJUSS
00042 MSTICK .EQ $619   ;STORED STICK POS
00044 MAJUSTV .EQ $61A  ;MISSILE ADJUST
00046 HPOSE  .EQ $60A   ;HORZ FOS ANIMAL
00048 VPOSE  .EQ $60E   ;VERT POS ANIMAL
00050 LIVEN  .EQ $614   ;LIVE FLAG
00052 RNDE   .EQ $D20A  ;RANDOM
00054 ENCF   .EQ $617   ;ENCOUNTER FRAME
00056 ENDD   .EQ $618
00058 ENSFD  .EQ $61B   ;ENCOUNTER SPEED
00060 MONCON .EQ $610   ;ANIMAL COUNTER
00062 DCON   .EQ $61D   ;DEATH COUNTER
00068 LIVES  .EQ $627   ;LIFE FLAG
00070 SCORE  .EQ $628   ;SCORE
00072 MONCN  .EQ $629   ;NUMBER OF ANIMALS
00074 SLCWP  .EQ $62A   ;SLOW PLAYER0
00076 RAND   .EQ $62E   ;STORED RANDOM FACTOR
00500 BEGIN  LDA #62    ;SET UP PM GRAPHICS
00505  STA $22F         ;ENABLE P/M DMA SINGLE LINE
00510  LDA #110            ;COLOR
00515  STA $2C0
00516, LDA #88          ;COLOR 1
00517  STA $2C1
00518  LDA #28          ;COLOR 2
00519  STA $2C2
00520  LDA #63          ;COLOR 3
00522  STA $2C3
00525  LDA $6A          ;SET PMBASE ADDRESS
00530  LDA /PLAYER0
00535  STA $D407        ;STORE PMBASE VALUE
00540  LDA #3           ;ENABLE P/M DMA
00545  STA $D01D
00600  LDA #120         ;SET HORZ POS
00605  STA HORZ
00610  LDA #100         ;SET VERT POS
00615  STA VERT
00620  LDA #0           ;PRESET VARIABLES
00625  STA MIP
00630  STA MCOUNT
00640  STA MAJUST
00650  LDA #0
00660  LDA #1         ;CLEAR COLLISIONS
00665  STA $D01E
00680  LDA #0         ;CLEAR SCORE
00689  STA SCORE
00800 *
00805 *
00810 • CLEAR PLAYERS SECTION
00815 *
00820 CPS LDA #0
00825  LDX #0            ;CLEAR PLAYERS
00830 CPS1 STA PLAYERE0+$400,X
00835  STA PLAYER1+$400,X
00840  STA PLAYER2+$400,X
00845  STA PLAYER3+$400,X
00850  STA PLAYER0+$300,X
00855  INX
00860  CFX #255
00865  BNE CPS1
00870  LDX #0
00875 CPS2 STA LIVEN,X    ;GEAR VARIABLES
00888  INX
00890  CPX #4
00895  BNE CPS2
01000 START LDA RNDE    ;LOAD RANDOM FACTOR
01002 STAB RANG
01008  LDA #0           ;RESET ATTRACT MODE
01010  STA $4D
0I120  INC MONCON       ;INCREMENT ANIMAL C
01130  LDA #0           ;RESET GUN SOUND TO ZERO
01140  STA $D203
01142  STA LIVES        ;RESET     LIFE FLAG
01150  LDA MONCON
01160  CMP ENSPD
01170  BNE SIART1
01180  LDA #0
01190  STA MONCON
01200  JMP MOVEN
01210 START1 LDA $D009    ;COLLISION SECTION
01220  CMP #0     ;1,2,3 MISSILE TO PLAYER COLLSIONS
01230  BNE XCOL
01240 L200 LDA $D00A
01250  CMP #0
01260  BNE XCOL
01270 L201 LDA $D00B
01280  CMP #0
01290  BNE XCOL
01300  LDA $D004     :PLAYER0 TO PLAYFIELD COLLSICNS
01310  CMP #0
01320  BEQ L205
01330  JMF DCS0
01340 L205 LDA $D00C  ;PLAYER0 TO PLAYER COLLSIONS
01350  CMP #0
01360  BEQ L206
01370  CMP #1
01380  BEQ L206
01390  JMP DCS0
01400 L206 LDA SCORE   ;END LEVEL CHECK
01410  CMP NOMON
01420  BNE L207
01430  RTS
01440 XCOL LDA #200    ;PLAYER DEAD
01442  STA LIVES
01450  RTS
01480 L207 LDX STRIG0  ;IF BUTTON PRESS GOTO SHOOT
01490  CFX #0
01500  BNE L70
01550  JMP SHOOT       ;JUMP TO SHOOT SECTION
01552 L70 LDA MIP      ;CHECK IF MISSILE IN PROGRESS
01554  CMP #0
01556  BEQ LLL1
01558  JMP SHOOT
01560 LLL1 LDA SLOWP   ;SLOW PLAYER0 SECTION
01561  CMP #10
01562  BEQ LLL
01563  INC SLOWP
O1564  JMP SLOW1
01565 LLL LDA #0       ;RESET SLOW FLAG
01566  STA SLOWP
01576  LDA $278        ;LOAD STICK DATA
01577  STA STICK
01578  CMP #14         ;MOVE IN STICK DIRECTION
01579  BEG UP
01580  CMP #10         ;TO LEFT SECTION
01590  BNE S3
01600  JMP LEFT
01610 S3 CMP #11       ;TO LEFT SECTION
01620  BNE S5
01630  JMP LEFT
01640 S5 CMP #15
01650  BNE S6
01660  JMP NOMOVE     ;DO NOT MOUE
01670 S6 CMP #13
01680  BEQ DOWN       ;TO RIGHT SECTION
01690  CMP #9
01700  BNE S8
01710  JMP LEFT
01720 S8 JMP RIGHT    ;TO THE RIGHT SECTION
01730 *
0l740 *
01750 *
01760 * MOVEMENT UP
01770 *
01780 UP LDY VERT       ;LOAD VERT
01790  LDX HORZ         ;SET HORZ
01800  STX $D000
01810 CPY #25
01820  BEQ Ll
01830  DEC VERT         ;MOVE UP
01840 L1 LDA STICK      ;CHECK FOR DIAGONAL
01850  CMP #14
01860  BEQ L6
01870  CMP #13
01880  BEQ L6
01890  JMP SLOW         ;CONTINUE
01900 L6 JMP L7
01910 *
01920 *
01930 *
01940 * MOVEMENT DOWN
01950 *
01960 DOWN LDY VERT     ;LOAD VERT
01970  LDX HORZ         ;SET HORZ
01980  STX $D000
01990  CPY #225
02000  BEQ L5
02010  INC VERT         ;MOVE DOWN
02020 L5 LDA STICK      ;CHECK FOR DIAGONAL
02030  CMP #14
02040  DEC L7
02050  CMP #13
02060  BEQ L7
02070  JMF SLOW
02080 L7 LDX #0        ;DETERMINING WHICH PICTURE TO DRAW
02090 L74 CPX VDIR
02100  BEQ A2
02110  INX
02120  CPX #4
02130  BNE L74
02140 L76 CPX VDIR
02150  BEQ L75
02160  INX
02170  CPX #8
02180  BNE L76
02190  LDA #0
02200  STA VDIR
02210 L75 JMP VERT1
02220 A2 JMP VERT2
02230 *
02240 *
02250 *
02260 * VERTICAL MOVEMENT
02270 *
02280 VERT2 INC VDIR        ;DRAW VERT1CLA FRAME
02290  LDY VERT             ;LOAD VERT
02300  LDA #0               ;DRAW
02310  STA PLAYER0+$3FF,Y
02320  STA PLAYER0+$40D,Y
02330  STA PLAYER0+$400,Y
02340  STA PLAYER0+$40C,Y
02350  LDA #28
02360  STA FLAYER0+$401,Y
02370  STA PLAYER0+$403,Y
02380  STA PLAYER0+$408,Y
02390  LDA #20
02400  STA PLAYER0+$402,Y
02410  LDA #8
02420  STA PLAYER0+$404,Y
02430  STA PLAYER0+$407,Y
02440  LDA #62
02450  STA PLAYER0+$405,Y
02460  LDA #40
02470  STA PLAYER0+$406,Y
02480  LDA #52
02490  STA PLAYER0+$409,Y
02500  LDA #4
02510  STA PLAYER0+$40A,Y
02520  LDA #6
02530  STA PLAYER0+$40B,Y
02540  JMP HC
02550 *
02560 *
02570 *
02580 VERT1 INC VDIR       ;LOAD VERT FRAME1
02590  LDY VERT            ;LOAD VERT
02600  LDA #0              ;DRAW
02610  STA PLAYER0+$40D,Y
02620  STA PLAYER0+$400,Y
02630  STA PLAYER0+$40C,Y
02640  STA PLAYER0+$3FF,Y
02650  LDA #28
02660  STA PLAYER0+$401,Y
02670  STA PLAYER0+$403,Y
02680  STA PLAYER0+$408,Y
02690  LDA #20
02700  STA PLAYER0+$402,Y
02710  LDA #8
02720  STA PLAYER0+$404,Y
02730  STA PLAYER0+$407,Y
02740  LDA #62
02750  STA PLAYER0+$405,Y
02760  LDA #10
02770  STA PLAYER0+$406,Y
02780  LDA #48
02790  STA PLAYER0+$40B,Y
02900  LDA #22
02810  STA PLAYER0+$409,Y
02820  LDA #16
02830  STA PLAYER0+$40A,Y
02840  JMP HC
02850 HC JMP SLOW
02860 *
02870 *
02880 *
02890 * RIGHT MOVEMENT
02900 *
02910 RIGHT LDY VERT    ;LOAD VERT
02920  LDX HORZ         ;SET HORZ POS
02930  STX $D000
02940  CPX #240
02950  BEQ LS
02960  INC HORZ
02970 LB LDX #0       ;DETERMINE WHICH PICTURE TO DRAW
02980 L77 CPX HDIR
02990  BEQ A3
03000  INX
03010  CPX #3
03020  BNE L77
03030 L78 CPX HDIR
03040  BEQ L79
03050  INX
03060  CPX #6
03070  BNE L78
03080  LDA #0
03090  STA HDIR
03100 L79 JMP RIGHT2
03110 A3 JMP RIGHT1
03120 *
03130 *
03140 *
03150 RIGHT1 INC HDIR      ;INCREMENT FRAME COUNTER
03160  LDY VERT            ;LOAD VERT
03170  LDA #0              ;DRAW
03180  STA PLAYER0+$400,Y
03190  STA PLAYER0+$40C,Y
03200  STA PLAYER0+$40D,Y
03210  STA PLAYER0+$399,Y
03220  LDA #28
03230  STA PLAYER0+$401,Y
03240  STA PLAYER0+$403,Y
03250  STA PLAYER0+$408,Y
03260  LDA #20
03270  STA PLAYER0+$402,Y
03280  LDA #8
03290  STA PLAYER0+$404,Y
03300  STA PLAYER0+$406,Y
03310  STA PLAYER0+$407,Y
03320  LDA #52
03330  STA PLAYER0+$409,Y
03340  LDA #6
03350  STA PLAYER0+$40B,Y
03360  LDA #36
03370  STA PLAYER0+$40A,Y
03380  LDA #30
03390  STA PLAYER0+$405,Y
03400  JMP A6
03410 *
03420 *
03430 *
03440 RIGHT2 INC HDIR      ;INCREMENT FRAME COUNTER
03450  LDY VERT            ;LOAD VERT
03460  LDA #0              ;DRAW
03470  STA PLAYER0+$400,Y
03480  STA PLAYER0+$40C,Y
03490  LDA #28
03500  STA PLAYER0+$401,Y
03510  STA PLAYER0+$403,Y
03520  STA PLAYER0+$408,Y
03530  LDA #20
03540  STA PLAYER0+$402,Y
03550  LDA #22
03560  STA PLAYER0+$409,Y
03570  LDA #8
03580  STA PLAYER0+$404,Y
03590  STA PLAYER0+$406,Y
03600  STA PLAYER0+$407,Y
03610  LDA #12
03620  STA PLAYER0+$405,Y
03630  LDA #16
03640  STA PLAYER0+$40A,Y
03650  LDA #24
03660  STA PLAYER0+$40B,Y
03670 A6 LDA STICK        ;CHECK FOR DIAGONAL
03680  CMP #6
03690  BNE L10
03700  JMP UP
03710 L10 CMP #5
03720  BNE L11
03730  JMP DOWN
03740 Lll JMP SLOW
03750 *
03760 *
03770 *
03780 * LEFT MOVEMENI
03790 *
03800 LEFT LDY VERT       ;LOAD VERT
03810  LDX HORZ           ;SET HORZ POS
03820  STX $D000
03830  CPX #20
03840  BEQ L15
03850  DEC H0RZ           ;MOUE LEFT
03860 L15 LDX #0          ;DETERMINE WHICH PI
03870 L80 CPX HDIR
03880  INX
03900  CPX #3
03910  BNE L80
03920 L81 CPX HDIR
03930  BEQ L82
03940  INX
03950  CPX #6
03960  BNE L81
03970  LDA; #0
03980  STA HRIR
03990 L82 JMP LEFT2
04000 A4 JMP LEFT1
04010 *
04020 *
04030 *
04040 LEFT1 INC HDIR      ;INCREMENT FRAME COUNTER
04050  LDY VERT           ;LOAD VERT POS
04060  LDA #0             ;DRAW
04070  STA PLAYER0+$400,Y
04080  STA PLAYER0+$40C,Y
04090  LDA #28
04100  STA PLAYER0+$401,Y
04110  STA PLAYER0+$403,Y
04120  STA PLAYER0+$408,Y
04130  LDA #60
04140  STA PLAYER0+$405,Y
04150  LDA #20
04160  STA PLAYER0+$402,Y
04170  LDA #52
04180  STA PLAYER0+$409,Y
04190  LDA #8
04200  STA PLAYER0+$404,Y
04210  STA PLAYER0+$406,Y
04220  STA PLAYER0+$407,Y
04230  LDA #12
04240  STA PLAYER0+$40B,Y
04250  LDA #4
04260  STA PLAYER0+$40A,Y
04270  JMP A5
04280 *
04290 *
04300 *
04310 LEFT2 INC HDIR       ;INREMENT FRAME COUNTER
04320  LDY VERT            ;LOAD VERT POS
04330  LDA #0              ;DRAW
04340  STA PLAYER0+$400,Y
04350  STA PLAYER0+$40C,Y
04360  LDA #28
04370  STA PLAYER0+$401,Y
04380  STA PLAYER0+$403,Y
04390  STA PLAYER0+$408,Y
04400  LDA #20
04410  STA PLAYER0+$402,Y
04420  LDA #8
04430  STA PLAYER0+$404,Y
04440  STA PLAYER0+$406,Y
04450  STA PLAYER0+$407,Y
04460  LDA #22
04470  STA PLAYER0+$409,Y
04480  LDA #18
04490  STA PLAYER0+$40A,Y
04500  LDA #48
04510  STA PLAYER0+$40B,Y
04520  LDA #24
04530  STA PLAYER0+$405,Y
04540 A5 LDA STICK         ;CHECK. FOR DIAGONAL
04550  CMP #10
04560  BNE L20
04570  JMP UP
04580 L20 CMP #9
04590  BNE L2l
04600  JMP DOWN
04610 L21 JMP SLOW
04620 *
04630 *
04640 *
04650 *    PLAYER0 STANDING
04660 *
04670 NOMOVE LDY VERT      ;NOMOVE SECTION
04680  LDX HORZ            ;LOAD HORZ POS
04690  STX $D000
04700  LDA #0              ;DRAW
04710  STA PLAYER0+$40B,Y
04720  STA PLAYER0+$40C,Y
04730  STA PLAYER0+$400,Y
04740  LDA #28
04750  STA PLAYER0+$401,Y
04760  STA PLAYER0+$403,Y
04770  STA PLAYER0+$408,Y
04780  LDA #20
04790  STA PLAYER0+$402,Y
04800  STA PLAYER0+$409,Y
04810  LDA #8
04820  STA PLAYER0+$404,Y
04830  STA PLAYER0+$407,Y
04840  LDA #6
04850  STA PLAYER0+$407,Y
04860  LDA #42
04870  STA PLAYER0+$406,Y
04880  LDA #54
04890  STA PLAYER0+$40A,Y
04900  JMP SLOW
04910 * SHOOTING
04920 *
04930 SHOOT LDX MIP      ;CHECK IF MISSILE IN PROGRESS
04940  CPX #0
04950  BNE L154
04960  LDA $278          ;LOAD DIRECTION
04970  STA MSTICK
04980 L154 LDA MSTICK
04981  CMP #15
04982  BNE L34
04983  JMP NOMOVE
04984 L34 LDA #220      ;SOUND FOR THE GUN
04985  STA $D202
04986  LDA #204
04987  STA $D203
04988  LDA MSTICK       ;MOUE IN CORRECT DIRECTION
04990  CMP #14
05000  BNE L30
05010  JMP SUP          ;MISSILE MOUE UP
05020 L30 CMP L31
05040  JMP SDOWN        ;MISSILE Move DOWN
05050 L31 CMP #6
05060  BNE L32
05070  JMP SRIGHT       ;MISSILE MOVE RIGHT
05080 L32 CMF #7
05090  BNE L33
05100  JMP SRISHT       ;MISSILE MOVE RIGHT
05110 L33 CMP #5
05120  BNE L102
05130  JMP SR1GHT
05170 L102 JMF SLEFT    ;MISSILE MOVE LEFT
05180 *
05190 *
05200 *
05210 *               DRAW PLAYER0 SHOOTING UP
05220 SUP LDY VERT      ;LOAD VERT POS
05230  LDX HORZ         ;SET HORZ POS
05240  STX $D000
05250  LDY VERT
05260  LDA #0           ;DRAW
05270  STA PLAYER0+$400,Y
05280  STA PLAYER0+$40B,Y
05290  LDA #23
05300  STA PLAYER0+$401,Y
05310  STA PLAYER0+$40B,Y
05320  LDA #20
05330  STA PLAYER0+$402,Y
05340  STA PLAYER0+$409,Y
05350  LDA #29
05360  STA PLAYER0+$403,Y
05370  LDA #9
05380  STA PLAYER0+$404,Y
05390  LDA #15
05400  STA PLAYER0+$405,Y
05410  LDA #8
05420  STA PLAYER0+$406,Y
05430  STA PLAYER0+$407,Y
05440  LDA #54
05450  STA PLAYER0+$40A,Y
05460  JMP MISSM
05470 *                 DRAW PLAYER0 SHOOTING DOWN
05480 SDOWN LDY VERT         ;LOAD VERT POS
05490  LDX HORZ              ;SET HORZ POS
05500  STX $D000
05510  LDY VERT
05520  LDA #0                ;DRAW
05530  STA PLAYER0+$400,Y
05540  STA PLAYER0+$40B,Y
05550  LDA #28
05560  STA PLAYER0+$401,Y
05570  STA PLAYER0+$403,Y
05580  STA PLAYER0+$408,Y
05590  LDA #20
05600  STA PLAYER0+$402,Y
05610  STA PLAYER0+$409,Y
05620  LDA #8
05630  STA PLAYER0+$404,Y
05640  LDA #15
05650  STA PLAYER0+$405,Y
05660  LDA #9
05670  STA PLAYER0+$406,Y
05680  STA PLAYER0+$407,Y
05690  LDA #54
05700  STA PLAYER0+$40A,Y
05710  JMP MISSM
05720 *                  DRAW PLAYER0 SHOOTING LEFT
05730 SRIGHT LDY VERT     ;LOAD VERT
05740  LDX HORZ           ;SET HORZ POS
05750  STX $D000
05760  LDY VERT
05770  LDA #0             ;DRAW
05780  STA PLAYER0+$400,Y
05790  STA PLAYER0+$399,Y
05800  STA PLAYER0+$40C,Y
05810  STA PLAYER0+$40B,Y
05820  LDA #28
05830  STA PLAYER0+$401,Y
05840  STA PLAYER0+$403,Y
05850  LDA #20
05860  STA PLAYER0+$402,Y
05870  LDA #8
05880  STA PLAYER0+$407,Y
05890  LDA #14
05900  STA PLAYER0+$408,Y
05910  LDA #10
05920  STA PLAYER0+$409,Y
05930  LDA #59
05940  STA PLAYER0+$40A,Y
05950  LDA MSTICk         ;CHECK: FOR DIAGONAL
05960  LDY VERT
05870  CMP #7
05980  BNE L50
05990  JMP S11
06000 L50 CMP #6
06010  BNE L51
06020  JMP S10
06030 L51 JMP S9
06040 *              DRAW PLAYER0 SHOOTING RIGHT STRAIGHT
06050 Sll LDA #8
06060  STA PLAYER0+$404,Y
06070  STA PLAYER0+$406,Y
06080 LDA #15
06090  STA PLAYER0+$405,Y
06100  JMP MISSM
06110 *           DRAW PLAYER0 SHOOTING RIGHT UP
06120 S10 LDA #9
06130  STA PLAYER0+$404,Y
06140  LDA #14
06150  STA PLAYER0+$405,Y
06160  LDA #8
06170  STA PLAYER0+$406,Y
06180  LDA #56
06190 JMP MISSM
06200 *          DRAW PLAYER0 SHOOTING RIGHT DOWN
06210 S9 LDA #8
06220  STA PLAYER0+$404,Y
06230  LDA #14
06240  STA PLAYER0+$405,Y
06250  LDA #9
06260  STA PLAYER0+$406,Y
06270  JMP MISSM
06280 *
06290 *
06300 *                ;DRAW PLAYER0 SHOOTING LEFT
06310 SLEFT LDA VERT      ;LOAD VERT
06320  LDX HORZ           ;SET HORZ POS
06330  STX $D000
06340  LDY VERT
06350  LDA #0             ;DRAW
06360  STA PLAYER0+$400,Y
06370  STA PLAYER0+$399,Y
06380  STA PLAYER0+$40C,Y
06390  STA PLAYER0+$40B,Y
06400  LDA #28
06410  STA PLAYER0+$401,Y
06420  STA PLAYER0+$403,Y
06430  LDA #20
06440  STA PLAYER0+$402,Y
06450  LDA #8
06460  STA PLAYER0+$407,Y
06470  LDA #56
06480  STA PLAYER0+$408,Y
06490  LDA #40
06500  STA PLAYER0+$409,Y
06510  LDA #110
06520  STA PLAYER0+$40A,Y
06530  LDA MSTICk    ;CHECK IF PLAYER0 POINTING UP OR DOWN
06540  LDY VERT
06550  CMP #11
06560  BNE L60
06570  JMP SS7
06580 L60 CMP #10
06590  BNE L61
06600  JMP SS6
06610 L61 JMP SS5
06620 *                ;DRAW PLAYER0 SHOOTING LEFT STRAIGHT
06630 SS7 LDA #8
06640  STA PLAYER0+$404,Y
06650  STA PLAYER0+$406,Y
06660  LDA #120
06670  STA PLAYER0+$405,Y
06680  JMP MISSM
06690 *               ;DRAW FLAYER0 SH00TING LEFT UP
06700  SS6 LDA #72
06710  STA PLAYER0+$404,Y
06720  LDA #56
06730  STA PLAYER0+$405,Y
06740  LDA #8
06750  STA PLAYER0+$406,Y
06760  JMP MISSM
06770 *               ;DRAW PLAYER0 SHOOTING LEFT DOWN
06780 SS5 LDA #8
06790  STA PLAYER0+$404,Y
06800  LDA #56
06810  STA PLAYER0+$405,Y
06820  LDA #72
06830  STA PLAYER0+$406,Y
06840  JMP MISSM
06850 *
06860 *
06870 *
06880 SLOW LDA MIP    ;DEIERMINE WHETHER MISSILE IN PROGRESS
06890  CMP #0
06900  BEQ L140
06910  JMP MISSM
06920 L140 JMP SLOWl
06930 *
06940 *
06950 *
06960 * SLOW PLAYER0
06970 *
06980 SLOW1 LDY #0     ;SLOW DOWN THE PROGRAM
06990  LDX #0
07000 L72 INX
07010  CPX #255
07020  BNE L72
07030 L100 INY
07040  CPY #5
07050  BNE Ll00
07060  JMP START
07065 *
07070 MISSM LDA MIP     ;MOVE MISSILE
07080  CMP #0
07090  BNE Ll04
07100  LDA #1         ;RESET MISSILE STATUS
07110  STA MIP
07120  LDY VERT
07130  STY MVERT
07140  LDX HORZ
07150  STX MHORZ
07160 L104 LDA MSTICK   ;LOAD STORED STICK VALUE
07170  CMP #14
07180  BNE L105
07190  JMP MUP            ;MOVE UP
07200 L105 CMP #13
07210  BNE L106
07220  JMP MDOWN          ;MOVE DOWN
07230 L106 CMP #11
07240  BNE L107
07250  JMP MLEFT          ;MOVE. LEFT
07260 L107 CMP #10
07270  BNE L108
07280  JMP MLEFT          ;MOVE LEFT
07290 L108 CMP #9
07300  BNE L109
07310  JMP MLEFT          ;MOVE LEFT
07320 L109 CMP #15
07330  BNE L110
07340  JMP SLOW1
07350 L110 JMP MRIGHT     ;MOVE RIGHT
07360 *
07370 *
07780 *
07790 *
07400 * MISSILE MOVE UP
07410 *
07420 MUP LDA MVERT      ;LOAD MISSILE VERT POS
07430  CMP #10
07440  BEQ L111
07450  DEC MVERT         ;MOVE UP
07460  LDA MSTICK
07470  CMP #14
07480  BNE L151
07490 L111 LDA #6
07500  STA MAJUST        ;STORE AJUST VALUE
07510  LDA #0
07520  STA MAJUSTV
07530 L151 JMP MDRAW
07540 *
07550 *
07560 *
07570 * MISSILE MOVE DOWN
07580 *
07590 MDOWN LDA MVERT   ;LOAD MISSILE VERT POS
07600  CMP #245
07610  BEQ L112
07620  INC MVERT        ;MOVE DOWN
07630  LDA MSTICK
07640  CMP #13
07650  BNE L150
07660 L112 LDA #6       ;ADJUST MISSILE POSTION
07670  STA MAJUST
07680  LDA #10
07690  STA MAJUSTV
07700 L150 JMP MDRAW
07710 *
07720 *
07730 *
07740 *MISSILE MOVE RIGHT
07750 *
07760 MRIGHT LDA #5
07770  STA MAJUSTV
07780  LDX MHORZ
07790  LDA #6
07800  STA MAJUST
07810  INC MCOUNT
07820  CPX #225
07830  BEQ L114
07840  CPX #224
07850  BEQ L114
07860  INC MHORZ
07970 L114 LDA MSTICk    ;LOAD STORE STICK VALUE
07880  CMP #6
07890  BNE L115
07900  LDA #3
07910  STA MAJUSTV       ;ADJUST MISSILE POS
07920  JMP MUP
07930 L115 CMP #5
07940  BNE L117
07950  LDA #7
07960  STA MAJUSTV
07970  JMP MDOWN
07980 L117 JMP MDRAW
07990 *
08000 *
08010 *
08020 * MISSILE MOVE LEFT
08030 *
08040 MLEFT LDA #5       ;ADJUST MISSILE
08050  STA MAJUSTV
08060  LDX MHORZ
08070  LDA #0
08080  STA MAJUST
08090  CPX #25
08100  BEQ L118
08110  DEC MHORZ         ;MOVE MISSILE LEFT
08120 L118 LDA MSTICK    ;LOAD STORE STICK
08130  INC MCOUNT        ;STORE MISSILE DISTANCE COUNTER
08140  CMP #10
08150  BNE L119
08160  LDA #3
08170  STA MAJUSTV
08180  JMP MUP
08190 L119 CMP #9
08200  BNE L120
08210  LDA #7
08220  STA MAJUSTV
08230  JMP MDOWN
08240 L120 JMP MDRAW
08250 *
08260 *
08270 *
08280 * DRAW MISSILE
08290 *
08300 MDRAW LDA #1       ;SET MISSILE IN PROGRESS FLAG
08310  STA MIP
08320  LDA MVERT         ;LOAD MISSILE VERTICAL FOS
08330  CLC
08340  ADC MAJUSTV
08350  TAY
08360  LDA MHORZ         ;LOAD HURZ POS
08370  CLC
08380  ADC MAJUST
08390  STA $D004
08400  LDA #0
08410  STA PLAYER0+$303,Y    ;CLEAR MISSILE SPACES
OB420  STA PLAYER0+$2FF,Y
08430  STA PLAYER0+$301,Y
08440  LDA #1
08450  STA PLAYER0+$300,Y
08460  LDA $D000          ;MISSILE0 TO PLAYFIELD COLLISIONS
08470  CMP #0
08480  BNE L91
08490  INC MCOUNT         ;INCREMENT MISSILE DISTANCE COUNTER
08500  LDA MCOUNT
08510  CMP #80            ;MISSILE MAX DISTANCE
08520  BNE L142
08530 L91 LDA #0
08540  STA MCOUNT
08550  STA MIP
08560  STA PLAYER0+$300,Y
08570 L142 LDA $D008      ;CHECK FOR A HIT
08580  STA DCON
08590 LXX10 LDA DCON      ;DETERMINE WHICH ANIMAL DIES
08600  TAY
08610 LXX20 CPY #0
08620  BNE LXX1
08630  JMP DEAD
08640 LXX1 CPY #1
08650  BNE LXX3
08660  JMP DEAD
08670 LXX3 CPY #8
08680  BNE LXX5
08690  JMP XPL3            ;PLAYER3
08700 LXX5 CPY #4
08710  BNE LXX6
08720  JMP XPL2            ;PLAYER2
08730 LXX6 CPY #2
08740  BNE LXX7
08750  JMP XPL1            ;PLAYER1
08760 LXX7 DEY
08770  JMP LXX20
08780 XPL1 LDX #1          ;MODIFY DEAD FLAGS FOR PLAYER1
08790  SEC
08800  SBC #2
08810  STA DCON
08820  LDA #0
08830  STA LIVEN,X        ;SET TO DEAD VALUE
08840  JMP DCS1
08850 XPL2 LDX #2         ;MODIFY DEAD FALGS FOR PLAYER2
08860  SEC
08870  SBC #4
08880  STA DCON
08890  LDA #0
08900  STA LIVEN,X        ;SET TO DEAD VALUE
08910  JMP DCS2
08920 XPL3 LDX #3         ;SET TO DEAD PLAYER3
08930  SEC
08940  SBC #8
08950  STA DCON
08960  LDA #0
08970  STA LIVEN,X       ;SET TO DEAD VALUE
08980  JMP DCS3
08990 DEAD LDA #1
09000  STA $DO1E
09010 LXX2 JMP SLOWl
09020 *
09030 *
09040 * ENCOUNTER MOVEMENT SECTION *
09050 *
09060 MOVEN LDX #0
09070 MOVEN1 LDA #0
09080  STA ENDD
09090  INX             ;DETERMINE WHICH PLAYER TO CONTROL
09100  CPX #4
09110  BNE LL9
09120  JMP START1
O9130 *
09140 *
09150 LL9 LDA LIVEN,X  ;DETERMINE IF ANIMAL IS ALIVE
09160  CMP #0
09170  BNE LL1
09180  JMP GEN
09190 LL1 JMP DIREN
09200 *
09210 * MONSTER GENERATION SECTION
09220 *
09230 GEN LDY #0      ;ERASE DEAD ANIMALS
09250  LDA #0
09260  CPX #1
09270  BNE WW1
09280 WW2 STA PLAYER1+$3FF,Y    ;PLAYER1
09290  INY
09300  CPY #255
09310  BNE WW2
09320  JMP WW3
09330 WW1 CPX #2
09340  BNE WW4
09350 WW5 STA PLAYER2+$3FF,Y    ;PLAYER2
09360  INY
09370  CPY #255
09380  BNE WW5
09390  JMP WW3
09400 WW4 STA PLAYER3+$3FF,Y    ;PLAYER3
09410  INY
09420  CPY #255
09430  BNE WW4
09440  JMP WW3
09450 WW3 LDA #1      ;DETERMINE THE POS OF NEW ANIMALS
09460  STA LIVEN,X
09470  LDA RANG
09480  BMI LL2
09490  LDY #5
09500  LDA RNDE       ;LOAD CURRENI RANDOM FACTOR
09510  BM1 WFW
09520  LDY #250
09530  JMP WFW
09540 *
09550 LL2 LDY #5       ;TYPE 1
09560  LDA RNDE
09570  BMI WFW1
09580  LDY #250
09590  JMP WFW1
09600 *
09601 WFW TYA         ;LEFT OR RIGHT SIDE
09602  STA HPOSE,X
09603  LDA RNDE
09604  STA VPOSE,X
09605  JMP LL1
09610 *
09611 WFW1 TYA        ;TOP OR BOTTOM
09612  STA VPOSE,X
09613  LDA RNDE
09614  STA HPOSE,X
09615  JMP LL1
09620 * DETERMINE DIRECTION HORIZONTAL *
09630 *
09640 DIREN LDA #0
09650 LL5 CMP HPOSE,X
09660  BNE LL3
09670  INC HPOSE,X     ;MOVE TO THE RIGHT
09680  LDA #2
09690  STA ENDD
09700  JMP DIREN1
09710 LL3 TAY
09720  LDA HPOSE,X
09730  CMP #120
09740  BNE LL4
09750  JMP DIREN1      ;NO HORZ MOVEMENT
09760 LL4 TYA
09770  CLC
09780  ADC #1
09790  CMP #121
09800  BNE LL5
09810  DEC HPOSE,X     ;MOVE TO THE LEFT
09820  LDA #0
09830  LDA #1
09840  STA ENDD
09850  JMP DIREN1
09860 *
09870 *
09880 * DETERMINE DIRECTION VERTICAL *
09890 *
09900 DIREN1 LDA #0
09910 LL8 CMP VPOSE,X
09920  BNE LL6
09930  INC VPOSE,X      ;MOVE DOWN
09940  LDA ENDD
09950  CLC
09960  ADC #10
09970  STA ENDD
09980  JMP ENCDR
09990 LL6 CLC
10000  ADC #1
10010  CMP #126
10020  BNE LL8          ;NO VERT MOVEMENT
10030  DEC VPOSE,X      ;MOVE UP
10040  LDA ENDD
10050  CLC
10060  ADC #20
10070  STA ENDD
10080  JMP ENCDR
10090 *
1010O * DRAWING SECTION *
10110 *
10120 ENCDR INC ENCF    ;INCREMENT FRAME FLAG
10121  LDA HPOSE,X      ;DETERMINE IF ANIMAL IF OVER THE FOOD
10122  CMP #120
10123  BNE FF1
10124  LDA VPOSE,X
10126  CMP #125
10127  BNE FF1
10128  JMP DCS0
10130 FF1 LDA HPOSE,X    ;STORE HORIZONTAL POS
10140  STA $D000,X
10150  LDA VPOSE,X       ;LOAD VERT POS
10160  TAY
10170  LDA ENCF       ;FRAME FLAG CONTROL
10180  CMP #2
10190  BNE LL11
10200  LDA #0
10210  STA ENCF
10220 LL11 CPX #2    ;DETERMINE WHICH ANIMAL TO DRAW
10230  BNE LL99
10240  JMP PLA2
10250 LL99 CPX #1
10260  BNE LL10
10270  JMP PLA1
10280 LL10 JMP PLA3
10290 *
10300 *
10310 * DRAW PLAYER1
10320 *
10330 PLA1 LDA #0        ;ERASE ABOVE AND BELOW PLAYER
10340  STA PLAYER1+$3FF,Y
10350  STA PLAYER1+$400,Y
10360  STA PLAYER1+$40A,Y
10370  STA PLAYER1+$40B,Y
10380  LDA ENDD          ;DETERMINE WHICH TYPE OF FRAME
10390  CMP #20
10400  BNE LL12
10410  JMP USD1          ;GOTO UP 1
10420 LL12 CMP #10
10430  BNE LL13
10440  JMP DSD1          ;GOTO DOWN1
10450 LL13 LDA #0        ;ERASE MOVE ABOVE AND BELOW PLAYER
10460  STA PLAYER1+$401,Y
10470  STA PLAYER1+$402,Y
10480  STA PLAYER1+$408,Y
10490  STA PLAYER1+$409,Y
10500  LDA ENDD         ;DIRECTION OF PLAYER
10510  CMP #1
10520  BEQ LL14
10530  CMP #11
10540  BEG LL14
10550  CMP #21
10560  BEQ LL14
10570  JMP RSD1         ;GOTO RIGHT 1
10580 LL14 JMP LSD1     ;GOTO LEFT 1
10590 *
10600 * PLAYER1 UP
10610 USD1 LDA ENCF     ;DRAW UP FRAME 1
10620  CMP #0
10630  BNE LL15
10640  JMP USD11
10650 LL15 LDA #2
10660  STA PLAYER1+$401,Y
10670  LDA #7
10680  STA PLAYER1+$402,Y
10690  STA PLAYER1+$406,Y
10700  LDA #14
10710  STA PLAYER1+$403,Y
10720  STA PLAYER1+$405,Y
10730  LDA #6
10740  STA PLAYER1+$404,Y
10750  LDA #4
10760  STA PLAYER1+$407,Y
10770  LDA #8
10780  STA PLAYER1+$408,Y
10790  STA PLAYER1+$409,Y
10800  JMF NPLA
10810 *
10820 USD11 LDA #4        ;DRAW UP FRAME 11
10830  STA PLAYER1+$401,Y
10840  LDA #14
10850  STA PLAYERl+$402,Y
10860  STA PLAYER1+$406,Y
10870  LDA #7
10880  STA PLAYER1+$403,Y
10890  STA PLAYER1+$405,Y
10900  LDA #6
10910  STA PLAYER1+$404,Y
10920  LDA #2
10930  STA PLAYER1+$407,Y
10940  LDA #1
10950  STA PLAYER1+$408,Y
10960  STA PLAYER1+$409,Y
10970  JMP NPLA
10980 *
10990 * PLAYERS DOWN
11000 DSD1 LDA ENCF      ;DRAW DOWN SIDE 1
11010  CMP #0
11020  BNE LL16
11030  JMP DSD11
11040 LL16 LDA #8
11050  STA PLAYER1+$401,Y
11060  STA PLAYER1+$402,Y
11070  LDA #4
11080  STA PLAYER1+$403,Y
11090  LDA #7
11100  STA PLAYER1+$404,Y
11110  STA PLAYER1+$408,Y
11120  LDA #14
11130  STA PLAYER1+$405,Y
11140  STA PLAYER1+$407,Y
11150  LDA #6
11160  STA PLAYER1+$406,Y
11170  LDA #2
11180  STA PLAYER1+$409,Y
11190  JMP NPLA
11200 *
11210 DSD11 LDA #1      ;DRAW DOWN SIDE 11
11220  STA PLAYER1+$401,Y
11230  STA PLAYER1+$402,Y
11240  LDA #2
11250  STA PLAYER1+$403,Y
11260  LDA #14
11270  STA PLAYER1+$404,Y
11280  STA PLAYER1+$408,Y
11290  LDA #7
11300  STA PLAYER1+$405,Y
11310  STA PLAYER1+$407,Y
11320  LDA #6
11330  STA PLAYER1+$406,Y
11340  LDA #4
11350  STA PLAYER1+$409,Y
11360  JMP NPLA
11370 *
11380 * PLAYER1 RIGHT
11390 RSD1 LDA ENCF      ;DRAW RIGHT FRAME 1
11400  CMP #0
11410  BNE LL18
11420  JMP RSD11
11430 LL18 LDA #4
11440  STA PLAYER1+$403,Y
11450  LDA #158
11460  STA PLAYER1+$404,Y
11470  LDA #127
11480  STA PLAYER1+$405,Y
11490  LDA #34
11500  STA PLAYER1+$406,Y
11510  STA PLAYER1+$407,Y
11520  JMP NPLA
11530 *
11540 RSD11 LDA #4       ;DRAW RIGHT FRAME 11
11550  STA PLAYER1+$403,Y
11560  LDA #30
11570  STA PLAYER1+$404,Y
11580  LDA #255
11590  STA PLAYER1+$405,Y
11600  LDA #20
11610  STA PLAYER1+$406,Y
11620  STA PLAYER1+$407,Y
11630  JMP NPLA
11640 *
11650 * PLAYER1 LEFT
11660 LSD1 LDA ENCF      ;DRAW LEFT FRAME 1
11670  CMP #0
11680  BNE LL19
11690  JMP LSD11
11700 LL19 LDA #32
11710  STA PLAYER1+$403,Y
11720  LDA #120
11730  STA PLAYER1+$404,Y
11740  LDA #255
11750  STA PLAYER1+$405,Y
11760  LDA #40
11770  STA PLAYER1+$406,Y
11780  STA PLAYER1+$407,Y
11790  JMP NPLA
11800 *
11810 LSD11 LDA #32      ;DRAW LEFT FRAME 11
11820  STA PLAYER1+$403,Y
11830  LDA #121
11840  STA PLAYER1+$404,Y
11850  LDA #254
11860  STA PLAYER1+$405,Y
11870  LDA #68
11880  STA PLAYER1+$406,Y
11890  STA PLAYER1+$407,Y
11900  JMP NPLA
11910 *
11920 *
11930 * DRAW PLAYER2
11940 *
11950 PLA2 LOA #0       ;CLEAR ABOVE AND BELOW
11960  STA PLAYER2+$3FE,Y
11970  STA PLAYER2+$3FF,Y
11980  STA PLAYER2+$40A,Y
11990  STA PLAYER2+$40B,Y
12000  LDA ENDD
12010  CMP #20
12020  BNE LL50
12030  JMP USD2
12040 LL50 CMP #10
12050  BNE LL51
12060  JMP DSD2
12070 LL51 LDA #0      ;CLEAR MOVE ABOVE AND BELOW
12080  STA PLAYER2+$401,Y
12090  STA PLAYER2+$402,Y
12100  STA PLAYER2+$408,Y
12110  STA PLAYER2+$409,Y
12120  LDA ENDD
12130  CMP #1
12140  BEQ LL52
12150  CMP #11
12160  BEQ LL52
12170  CMP #21
12180  BEQ LL52
12190  JMP RSD2
12200 LL52 JMP LSD2
12210 *
12220 * PLAYER2 UP
12230 USD2 LDA ENCF     ;DKAW UP FRAME 2
12240  CMP #0
12250  BNE LL54
12260  JMP USD21
12270 LL54 LDA #34
12280  STA PLAYER2+$400,Y
12290  LDA #20
12300  STA PLAYER2+$401,Y
12310  STA PLAYER2+$406,Y
12320  LDA #8
12330  STA PLAYER2+$402,Y
12340  LDA #14
12350  STA PLAYER2+$403,Y
12360  STA PLAYER2+$405,Y
12370  LDA #28
12380  STA PLAYER2+$404,Y
12390  STA PLAYER2+$406,Y
12400  LDA #4
12410  STA PLAYER2+$407,Y
12420  LDA #2
12430  STA PLAYER2+$408,Y
12440  LDA #1
12450  STA PLAYER2+$409,Y
12460  JMP NPLA
12470 *
12480 USD21 LDA #4      ;DRAW UP FRAME 21
12490  STA PLAYER2+$400,Y
12500  STA PLAYER2+$401,Y
12510  STA PLAYER2+$402,Y
12520  LDA #28
12530  STA PLAYER2+$403,Y
12540  STA PLAYER2+$405,Y
12550  LDA #14
12560  STA PLAYER2+$404,Y
12570  STA PLAYER2+$406,Y
12580  LDA #8
12590  STA PLAYER2+$407,Y
12600  LDA #16
12610  STA PLAYER2+$408,Y
12620  LDA #32
12630  STA PLAYER2+$409,Y
12640  JMP NPLA
12650 *
12660 * PLAYER2 DOWN
12670 DSD2 LDA ENCF      ;DRAW DOWN FRAME 2
12680  CMP #0
12690  BNE LL58
12700  JMP DSD21
12710 LL58 LDA #2
12720  STA PLAYER2+$401,Y
12730  LDA #1
12740  STA PLAYER2+$400,Y
12750  LDA #4
12760  STA PLAYER2+$402,Y
12770  LDA #28
12780  STA PLAYER2+$403,Y
12790  STA PLAYER2+$405,Y
12800  LDA #14
12810  STA PLAYER2+$404,Y
12820  STA PLAYER2+$406,Y
12830  LDA #8
12840  STA PLAYER2+$407,Y
12850  LDA #20
12860  STA PLAYER2+$408,Y
12870  LDA #34
12800  STA PLAYER2+$409,Y
12890  JMP NPLA
12900 *
12910 DSD21 LDA #16      ;DRAW DOWN FRAME 21
12920 STA PLAYER2+$401,Y
12930  LDA #32
12940  STA PLAYER2+$400,Y
12950  LDA #8
12960  STA PLAYER2+$402,Y
12910  LDA #14
12980  STA PLAYER2+$403,Y
12990  STA PLAYER2+$405,Y
13000  LDA #28
13010  STA PLAYER2+$404,Y
13020  STA PLAYER2+$406,Y
13030  LDA #4
13040  STA PLAYER2+$407,Y
13050  STA PLAYER2+$408,Y
13060  STA PLAYER2+$409,Y
13070  JMP NPLA
13080 *
13090 * PLAYER2 RIGHT
13100 RSD2 LDA ENCF      ;DRAW RIGHT FRAME 2
13110  CMP #0
13120  BNE LL59
13130  JMP RSD21
13140 LL59 LDA #1
13150  STA PLAYER2+$403,Y
13160  STA PLAYER2+$407,Y
13170  LDA #158
13180  STA PLAYER2+$404,Y
13190  LDA #124
13200  STA PLAYER2+$405,Y
13210  LDA #42
13220  STA PLAYER2+$406,Y
13230  JMP NPLA
13240 *
13250 RSD21 LDA #0        ;DRAW RIGHT FRAME 21
13260  STA PLAYER2+$403,Y
13270  LDA #128
13280  STA PLAYER2+$407,Y
13290  LDA #12
13300  STA PLAYER2+$404,Y
13310  LDA #63
13320  STA PLAYER2+$405,Y
13330  LDA #84
13340  STA PLAYER2+$406,Y
13350  JMP NPLA
13360 *
13370 * PLAYER1 LEFT
13380 LSD2 LDA ENCF      ;DRAW LEFT FRAME 2
13390  CMP #0
13400  BNE LL60
13410  JMP LSD21
13420 LL60 LDA #128
13430  STA PLAYER2+$403,Y
13440  STA PLAYER2+$407,Y
13450  LDA #121
13460  STA PLAYER2+$404,Y
13470  LDA #62
13480  STA PLAYER2+$405,Y
13490  LDA #84
13500  STA PLAYER2+$406,Y
13510  JMP NPLA
13520 *
13530 LSD21 LDA #0      ;DRAW LEFT FRAME 21
13540  STA PLAYER2+$403,Y
13550  LDA #1
13560  STA PLAYER2+$407,Y
13570  LDA #48
15580  STA PLAYER2+$404,Y
13590  LDA #252
13600  STA PLAYER2+$405,Y
13610  LDA #42
13620  STA PLAYER2+$406,Y
13630  JMP NPLA
13640 *
13650 *
13660 * DRAW PLAYER3
13670 *
13680 PLA3 LDA #0       ;CLEAR ABOVE AND BELOW PLAYER
13690  STA PLAYER3+$3FF,Y
13700  STA PLAYER3+$400,Y
13710  STA PLAYER3+$40A,Y
13720  STA PLAYER3+$403,Y
13730  LDA ENDD
13740  CMP #20
13750  BNE LL62
13760  JMP USD3
13770 LL62 CMP #10
13780  BNE LL63
13790  JMP DSD3
13800 LL63 LDA #0
13810  STA PLAYER3+$401,Y
13820  STA PLAYER3+$402,Y
13830  STA PLAYER3+$406,Y
13840  STA PLAYER3+$409,Y
13850  LDA ENDD         ;LOAD DIRECTION
13860  CMP #1
13870  BEQ LL64
13880  CMP #11
13890  BEQ LL64
13900  CMP #21
13910  BEQ LL64
13920  JMP RSD3
13930 LL64 JMP LSD3
13940 *
13950 * PLAYERS UP
13960 USD3 LDA ENCF      ;DRAW UP FRAME 3
13970  CMP #0
13980  BNE LL65
13990  JMP USD31
14000 LL65 LDA #4
14010  STA PLAYER3+$401,Y
14020  STA PLAYER3+$403,Y
14000  LDA #14
14040  STA PLAYER3+$402,Y
14050  LDA #7
14060  STA PLAYER3+$404,Y
14070  LDA #1
14060  STA PLAYER3+$405,Y
14090  LDA #63
14100  STA PLAYER3+S406,Y
14110  LDA #32
14120  STA PLAYER3+$407,Y
14130  LDA #48
14140  STA PLAYER3+$408,Y
14150  LDA #16
14160  STA PLAYER3+$409,Y
14170  JMP NPLA
14180 *
14190 USD31 LDA #16       ;DRAW UP FRAME 31
14200  STA PLAYER3+$401,Y
14210  STA PLAYER3+$403,Y
14220  LDA #56
14230  STA PLAYER3+$402,Y
14240  LDA #48
14250  STA PLAYER3+$404,Y
14260  LDA #32
14270  STA PLAYER3+$405,Y
14280  STA PLAYER3+$406,Y
14290  LDA #62
14300  STA PLAYER3+$407,Y
14310  LDA #2
14320  STA PLAYER3+$408,Y
14330  LDA #126
14340  STA PLAYER3+$409,Y
14350  JMP NPLA
14360 *
14370 * PLAYER3 DOWN
14380 DSD3 LDA ENCF      ;DRAW DOWN FRAME 3
14390  CMP #0
14400  BNE LL66
14410  JMP DSD31
14420 LL66 LDA #16
14430  STA PLAYER3+$401,Y
14440  LDA #48
14450  STA PLAYER3+$402,Y
14460  LDA #32
14470  STA PLAYER3+$403,Y
14480  LDA #63
14490  STA PLAYER3+$404,Y
14500  LDA #1
14510  STA PLAYER3+$405,Y
14520  LDA #7
14530  STA PLAYER3+$406,Y
14540  LDA #4
14550  STA PLAYER3+$407,Y
14563  STA PLAYER3+$409,Y
14570  LDA #14
14580  STA PLAYER3+$408,Y
14590  JMP NPLA
14600 *
14610 DSD31 LDA #126      ;DRAW DOWN FRAME 31
14620  STA PLAYER3+$401,Y
14630  LDA #2
14640  STA PLAYER3+$402,Y
14650  LDA #62
14660  STA PLAYER3+$403,Y
14670  LDA #32
14680  STA PLAYER3+$404,Y
14690  STA PLAYER3+$405,Y
14700  LDA #48
14710  STA PLAYER3+$406,Y
14720  LDA #56
14730  STA PLAYER3+$408,Y
14740  LDA #16
14750  STA PLAYER3+$407,Y
14760  STA PLAYER3+$409,Y
14770  JMP NPLA
14780 *
14790 * PLAYER3 RIGHT
14600 RSD3 LDA ENCF       ;DRAW DOWN FRAME 3
14810  CMP #0
14820  BNE LL68
14830  JMP RSD31
14840 LL68 LDA #56
14850  STA PLAYER3+$403,Y
14860  LDA #40
14870  STA PLAYER3+$404,Y
14880  LDA #235
14890  STA PLAYER3+$405,Y
14900  LDA #10
14910  STA PLAYER3+$406,Y
14920  LDA #14
14530  STA PLAYER3+$407,Y
14940  JMP NPLA
14950 *
14960 RSD31 LDA #131     ;DRAW RIGHT FRAME 31
14970  STA PLAYER3+$403,Y
14980  LDA #130
14990  STA PLAYER3+$404,Y
15000  LDA #186
15010  STA PLAYER3+$405,Y
15020  LDA #170
15030  STA PLAYER3+$406,Y
15040  LDA #238
15050  STA PLAYER3+$407,Y
15060  JMP NPLA
15070 *
15080 * PLAYERS LEFT
15090 LSD3 LDA ENCF      ;DRAW LEFT FRAME 3
15100  CMP #0
15110  BNE LL69
15120  JMP LSD31
15130 LL69 LDA #28
15140  STA PLAYER3+$403,Y
15150  LDA #20
15160  STA PLAYER3+$404,Y
15170  LDA #212
15180  STA PLAYER3+$405,Y
15190  LDA #87
15200  STA PLAYER3+$406,Y
15210  LDA #112
15220  STA PLAYER3+$407,Y
15230  JMP NPLA
15240 *
15250 LSD31 LDA #1       ;DRAW LEFT FRAME 31
15260  STA PLAYER3,+$403,Y
15270  LDA #193
15280  STA PLAYER3+$404,Y
15290  LDA #93
15300  STA PLAYER3+$405,Y
15310  LDA #85
15320  STA PLAYER3+$406,Y
15330  LDA #119
15340  STA PLAYER3+$407,Y
15350  JMP NPLA
15360 NPLA JMP MOVEN1
15370 *
15380 *
15390 * DRAW CROSS SECTION
15400 *
15410 DCS1 LDA VPOSE,X    ;LOAD VERT POS
1:420  TAY
15430  LDA #8            ;DRAW CROSS
15440  STA PLAYER1+$400,Y
15450  STA PLAYER1+$401,Y
15460  STA PLAYER1+$408,Y
15470  STA PLAYER1+$402,Y
154BO  STA PLAYER1+$404,Y
15490  STA PLAYER1+$405,Y
15500  STA PLAYER1+$406,Y
15510  STA PLAYER1+$407,Y
15520  LDA #62
15530  STA PLAYER1+$403,Y
15540  LDA #0
15550  STA PLAYER1+$409,Y
15560  INC SCORE
15570  JMF LXX10
15580 DCS2 LDA VPOSE,X   ;LOAD VERT POS
15590  TAY
15600  LDA #8            ;DRAW CROSS
15610  STA PLAYER2+$400,Y
15620  STA PLAYER2+$401,Y
15630  STA PLAYER2+$402,Y
15640  STA PLAYER2+$4C>4,Y
15650  STA PLAYER2+$405,Y
15660  STA PLAYER2+$406,Y
15670  STA PLAYER2+$407,Y
15680  STA PLAYER2+$408,Y
15690  LDA #62
15700  STA PLAYER2+$403,Y
15710  INC SCORE
15720  LDA #0
15730  STA PLAYER2+$409,Y
15740  JMP LXX10
15750 DCS3 LDA VPOSE,X    ;LOAD VERT POS
15760  TAY
15770  LDA #8             ;DRAW CROSS
15780  STA PLAYER3+$400,Y
15790  STA PLAYER3+$401,Y
15800  STA PLAYER3+$402,Y
15810  STA PLAYER3+$404,Y
15820  STA FLAYER3+$405,Y
15830  STA PLAYER3+$406,Y
15940  STA PLAYER3+$407,Y
15350  STA FLAYER3+$408,Y
15860  LDA #62
15870  STA PLAYER3+$403,Y
15880  LDA #0
15890  STA PLAYER3+$409,Y
15900  INC SCORE
15910  JMF LXX10
15920 DCS0 LDX #0     ;PLAYER0 DEATH
15930  LDA VERT,X
15940  TAY
15950  LDA #8         ;DRAW CROSS
15960  STA PLAYER0+$400,Y
15970  STA PLAYER0+$401,Y
15980  STA PLAYER0+$402.Y
15990  STA PLAYER0+$404,Y
16000  STA PLAYER0+$405,Y
16010  STA PLAYER0+$406,Y
16020  STA PLAYER0+$407.Y
16030  STA PLAYER0+$408,Y
16040  LDA #62
16050  STA FLAYER0+$403,Y
16060  LDA #0
16O70  STA PLAYER0+$409,Y
16080  STA FLAYER0+$40A.Y
16090  STA PLAYER0+$40C,Y
16100  STA PLAYER0+$40B,Y
16105  LDA #10    ;TELL BASIC PROGRAM THAT PLAYER IS DEAD
16108  STA LIVES
16110  RTS
OK.