Captain
Campsite
by Bob Cockroft
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.
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.