ROM Computer Magazine Archive ROM MAGAZINE ISSUE 7 — AUGUST/SEPTEMBER 1984 / PAGE 16

DEPTH WARRIOR

    In the last issue we heard of the trouble on Clarexa, the planet that was so over-populated that the people had to live in the clouds. On Nexa, thirty-three light years away, lives an entire population underwater. The reason for this was, the air on the surface became so polluted that it wasn't safe for any human life form. This was when the people moved to the sea.
    The Sea World was working out fine until the people divided up into four separate groups. Each group had their own name: The Spartans, the Neptunes, the Troutens, and the Octopans. As time went on, fish and sea kelp became more and more scarce, making war inevitable. Instead of having an all out underwater war, the Sea People decided to have their best warriors fight it out. Each group would receive points for each submarine that was destroyed. If your ship was destroyed by an enemy craft, you would float to the surface and a new submarine would appear.
    This game, "Depth Warrior", which is a sequel to last issue's "Sky Warrior", places two to four underwater submarines in a battle of skill and strategy. The Ocean depths contain four different levels, each with a different shade of blue. The same is for the four submarines. This makes it easy for enemy submarines to hide from one another at different levels.
    Your submarine can maneuver in any of the eight joystick directions. The same goes for the torpedoes, they can be fired in any direction by pushing the firing button. By moving your submarine into water of the same color you are able to sneak up on enemy craft. This makes it difficult to fire at something which you can't see.
    The object of the game, as I said in the opening paragraph, is to shoot enemy submarines. This is done by maneuvering your craft into the right position so as to get a good shot at another one's craft. Once a submarine has been shot, it will once again be restored to running condition, enabling another warrior to go back into combat.
    Each of the four water levels give different points for shooting enemy submarines. The more points that are accumulated, the lower the level at which your vessel is in the water. So, if you were at the bottom level and shot a submarine, you would get about three times more points than if you were at the top. At the top of the screen is a red level. This, called the surface level, is to where ships float when destroyed. If you shoot an enemy submarine while on this level you will receive negative points. The amount of points required to win the game can be decided upon at the start. The score to win is then displayed at the bottom of the screen.
    Within the ocean there are five power lines. These power lines can be passed over without doing any damage to your sub. If they are then shot at and hit, your submarine's torpedos will be disabled until you move up a level in the water. These lines can be an advantage to a player who wants to hide behind one, because a torpedo will usually not pass through. These lines can be quite frustrating if you have an enemy craft all lined up ready to destroy.
    Strategies-The way of playing this game is somewhat like that of "Hide & Seek". By keeping your ship in the level of your same color, it is possible to hide from enemy submarines. Then, when you think you know where it is (the enemy) let a torpedo go. This will also give you some bearing on where you ship is at the time. Another plan of attack is to try and destroy your opponent while on lower levels, for this will give you the greatest amount of points.
    The game listing is in three different parts. The first program redefines the character set, the second one loads in the main program (machine code), and the third part loads in the basic set up of the game. When typing in the program, name the first program as CHAR.DAT, the second MAIN.DAT, and the third BASIC. This will then run all three programs when you run CHAR.DAT, because it calls each program from your disk. If you're a cassette user, save each program by typing SAVE `C:'. Then, at line 20 in program one, change it to RUN `C:' and line 20 in program two, do the same thing. Then make sure the programs are saved in the right order on your cassette.
    This game runs on 48K and can be played by 2 to 4 players with joysticks. This game can be acquired by sending $3.00 and a blank disk or cassette to:

ROM MAGAZINE
P.O. BOX 252
Maple Ridge,B.C.
Canada
V2X 7G1


Basic Listing

5 REM THIS IS PART 1 OF THE PROGRAM
6 REM IT LOADS IN THE CHARACTER SET!
7 REM
10 FOR I=34816 TO 35840:READ X:POKE I,X:NEXT I
15 REM RUN THE NEXT PART
20 RUN "D:MAIN.DAT"
10000 DATA 0,0,0,0,0,0,0,0,48,48,48,48,0,48,48,0,108,108,72,0,0,0,0,0
10010 DATA 0,104,236,104,104,236,104,0,16,124,144,120,20,248,16,0,236,172,232,16,32,92,212,220
10020 DATA 60,64,64,124,128,128,124,0,48,48,32,0,0,0,0,0,12,16,32,32,32,16,12,0
10030 DATA 96,16,8,8,8,16,96,0,0,168,112,216,112,168,0,0,0,16,16,124,16,16,0,0
10040 DATA 0,0,0,0,0,48,48,32,0,0,0,124,0,0,0,0,0,0,0,0,0,48,48,0
10050 DATA 12,12,8,16,32,96,96,0,124,140,148,164,196,132,120,0,24,40,8,8,8,8,8,0
10060 DATA 248,4,4,120,128,0,252,0,252,8,0,56,4,4,248,0,24,32,64,252,0,24,24,0
10070 DATA 252,0,0,248,4,4,248,0,32,32,64,80,136,136,112,0,252,0,8,16,16,32,32,0
10080 DATA 120,132,132,72,132,132,120,0,56,68,68,40,8,16,16,0,0,0,48,48,0,48,48,0
10090 DATA 0,0,48,48,0,48,48,32,0,36,72,144,72,36,0,0,0,0,248,0,248,0,0,0
10100 DATA 0,144,72,36,72,144,0,0,120,4,4,8,16,0,16,0,0,0,8,108,168,168,116,0
10110 DATA 16,16,40,40,68,68,124,0,252,2,2,252,130,130,252,0,60,64,128,128,128,64,60,0
10120 DATA 240,8,132,132,132,136,240,0,254,0,0,254,128,128,254,0,254,0,0,254,128,128,128,0
10130 DATA 60,64,128,156,128,68,56,0,132,132,132,244,132,132,132,0,56,0,16,16,16,16,56,0
10140 DATA 28,0,8,8,8,8,112,0,132,136,144,160,144,136,132,0,128,128,128,128,128,128,252,0
10150 DATA 252,130,146,146,146,146,146,0,248,132,132,132,132,132,132,0,120,132,132,132,132,132,120,0
10160 DATA 248,4,4,248,128,128,128,0,120,132,132,132,132,132,64,60,248,4,4,248,4,4,4,0
10170 DATA 64,64,32,16,8,8,240,0,252,0,128,128,128,128,124,0,132,132,132,132,132,132,124,0
10180 DATA 132,132,132,72,72,48,8,0,164,164,148,148,72,72,72,0,68,40,16,16,16,40,68,0
10190 DATA 132,132,132,120,0,48,48,0,252,0,8,16,32,64,252,0,60,32,32,32,32,32,32,60
10200 DATA 192,192,64,32,16,8,12,12,120,8,8,8,8,8,8,120,0,16,40,124,0,0,0,0
10210 DATA 0,0,0,0,0,0,0,255,0,54,127,127,62,28,8,0,7,6,7,3,3,3,127,127
10220 DATA 192,192,192,128,128,128,252,252,3,195,195,195,243,63,151,128,134,134,134,158,248,224,0
10230 DATA 0,0,0,0,0,12,14,202,0,0,0,0,0,48,176,163,42,46,42,46,42,202 14,12
10240 DATA 168,184,168,184,168,163,176,48,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0
10250 DATA 15,15,15,15,0,0,0,0,240,240,240,240,0,0,0,0,255,255,0,0,0,0,0,0
10260 DATA 0,0,0,0,0,0,255,255,0,0,0,0,240,240,240,240,0,28,28,119,119,8,28,0
10270 DATA 0,0,0,31,31,24,24,24,0,0,0,255,255,0,0,0,24,24,24,255,255,24,24,24
10280 DATA 0,0,60,126,126,126,60,0,0,0,0,0,255,255,255,255,192,192,192,192,192,192,192,192
10290 DATA 0,0,0,255,255,24,24,24,24,24,24,255,255,0,0,0,240,240,240,240,240,240,240,240
10300 DATA 24,24,24,31,31,0,0,0,120,96,120,96,126,24,30,0,0,24,60,126,24,24,24,0
10310 DATA 0,24,24,24,126,60,24,0,0,24,48,126,48,24,0,0,0,24,12,126,12,24,0,0
10320 DATA 0,24,60,126,126,60,24,0,0,0,124,132,132,132,100,0,128,128,184,132,132,132,248,0
10330 DATA 0,0,124,128,128,128,124,0,4,4,116,132,132,132,124,0,0,0,124,136,144,128,124,0
10340 DATA 56,64,64,120,64,64,64,0,0,0,120,132,132,100,4,248,128,128,184,132,132,132,132,0
10350 DATA 32,0,32,32,32,32,32,0,8,0,8,8,8,8,8,48,128,128,132,136,176,136,132,0
10360 DATA 32,32,32,32,32,32,32,0,0,0,216,164,164,164,164,0,0,0,248,132,132,132,132,0
10370 DATA 0,0,120,132,132,132,120,0,0,0,248,132,132,184,128,128,0,0,124,132,132,132,116,4
10380 DATA 0,0,112,128,128,128,128,0,0,0,124,128,120,4,248,0,128,128,240,128,128,128,112,0
10390 DATA 0,0,132,132,132,132,120,0,0,0,136,136,136,80,32,0,0,0,148,148,148,148,108,0
10400 DATA 0,0,136,80,32,80,136,0,0,0,184,132,132,72,48,224,0,0,252,8,48,64,252,0
10410 DATA 0,24,60,126,126,24,60,0,24,24,24,24,24,24,24,24,0,126,120,124,110,102,6,0
10420 DATA 8,24,56,120,56,24,8,0,16,24,28,30,28,24,16,0,0


5 REM THIS IS PART TWO OF THE PROGRAM
6 REM IT LOADS IN THE MAIN PROGRAM
10 FOR I=16384 TO 18450:READ X:POKE I,X:NEXT I
20 RUN "D:BASIC"
20000 DATA 104,169,0,141,48,2,169,70,141,49,2,165,88,141,4,70,165,89,141,5,70,169,58,141
20010 DATA 47,2,169,3,141,29,208,169,96,141,7,212,169,8,141,111,2,169,192,141,14,212,169,33
20020 DATA 141,0,2,169,70,141,1,2,160,0,152,153,0,100,153,0,101,153,0,102,153,0,103,153
20030 DATA 0,99,200,208,238,169,0,141,210,68,141,178,68,141,198,2,169,118,141,192,2,169,116,141
20040 DATA 193,2,169,114,141,194,2,169,112,141,195,2,169,40,141,0,210,169,175,141,169,68,160,0
20050 DATA 169,140,32,153,68,24,105,60,153,201,68,169,140,32,153,68,24,105,60,153,205,68,169,0
20060 DATA 153,197,68,153,173,68,200,192,4,144,221,169,0,133,204,169,100,133,205,173,10,210,141,199
20070 DATA 2,172,210,68,185,173,68,240,6,32,5,68,76,241,64,32,30,65,32,140,67,172,210,68
20080 DATA 32,10,66,172,210,68,185,197,68,240,38,32,58,67,32,61,66,185,0,208,240,3,32,117
20090 DATA 67,173,177,68,240,19,172,210,68,140,0,6,185,205,68,141,1,6,169,0,141,177,68,96
20100 DATA 104,238,210,68,230,205,32,83,68,173,210,68,201,4,144,169,169,0,141,210,68,32,72,68
20110 DATA 174,178,68,138,24,105,16,141,178,68,201,64,208,5,169,0,141,178,68,76,155,64,172,210
20120 DATA 68,185,120,2,170,138,41,1,208,13,185,205,68,201,50,144,6,56,233,2,153,205,68,138
20130 DATA 41,2,208,13,185,205,68,201,230,176,6,24,105,1,153,205,68,138,41,4,208,18,185,201
20140 DATA 68,56,233,1,153,201,68,201,50,176,5,169,200,153,201,68,138,41,8,208,18,185,201,68
20150 DATA 24,105,1,153,201,68,201,200,144,5,169,50,153,201,68,185,197,68,208,47,185,132,2,208
20160 DATA 42,169,1,153,197,68,185,201,68,24,105,3,153,181,68,185,205,68,24,105,4,153,185,68
20170 DATA 185,120,2,201,15,240,12,201,14,208,9,169,1,153,193,68,76,171,65,96,201,13,208,8
20180 DATA 169,2,153,193,68,76,0,66,201,7,208,8,169,4,153,193,68,76,0,66,201,11,208,8
20190 DATA 169,3,153,193,68,76,0,66,201,6,208,8,169,5,153,193,68,76,0,66,201,5,208,8
20200 DATA 169,6,153,193,68,76,0,66,201,9,208,8,169,7,153,193,68,76,0,66,201,10,208,8
20210 DATA 169,8,153,193,68,76,0,66,96,169,0,153,193,68,153,197,68,96,172,210,68,185,201,68
20220 DATA 153,0,208,172,210,68,152,10,10,10,10,10,10,24,109,178,68,170,185,205,68,168,189,92
20230 DATA 70,145,204,200,232,238,180,68,173,180,68,201,16,144,239,169,0,141,180,68,96,172,210,68
20240 DATA 185,181,68,141,4,210,169,136,141,5,210,162,0,169,1,141,31.,208,232,208,248,185,193,68
20250 DATA 170,224,1,208,16,185,185,68,56,233,2,153,185,68,201,50,176,3,76,117,67,224,2,208
20260 DATA 16,185,185,68,24,105,2,153,185,68,201,230,144,3,76,117,67,224,3,208,16,185,181,68
20270 DATA 56,233,4,153,181,68,201,40,176,3,76,117,67,224,4,208,16,185,181,68,24,105,4,153
20280 DATA 181,68,201,200,144,3,76,117,67,224,5,208,32,185,185,68,56,233,2,153,185,68,201,50
20290 DATA 176,3,76,117,67,185,181,68,24,105,4,153,181,68,201,200,144,3,76,117,67,224,6,208
20300 DATA 32,185,185,68,24,105,2,153,185,68,201,230,144,3,76,117,67,185,181,68,24,105,4,153
20310 DATA 181,68,201,200,144,3,76,117,67,224,7,208,30,185,181,68,56,233,4,153,181,68,201,40
20320 DATA 176,3,76,117,67,185,185,68,24;105,2,153,185,68,201,230,144,3,76,117,67,224,8,208
20330 DATA 32,185,181,68,56,233,4,153,181,68,201,40,176,3,76,117,67,185,185,68,56,233,2,153
20340 DATA 185,68,201,30,176,3,76,117,67,96,172,210,68,162,0,169,1,141,31,208,232,208,248,185
20350 DATA 181,68,153,4,208,174,210,68,185,185,68,168,169,0,136,153,0,99,136,153,0,99,200,200
20360 DATA 189,227,68,153,0,99,200,153,0,99,200,169,0,153,0,99,200,153,0,99,96,169,0,172
20370 DATA 210,68,153,197,68,141,4,210,141,5,210,169,0,153,0,99,200,208,250,96,172,210,68,185
20380 DATA 8,208,208,5,185,12,208,240,107,141,179,68,169,1,141,30,208,173,179,68,41,1,201,1
20390 DATA 208,16,169,0,205,210,68,240,83,169,1,141,173,68,141,177,68,96,173,179,68,41,2,201
20400 DATA 2,208,16,169,1,205,210,68,240,58,169,1,141,174,68,141,177,68,96,173,179,68,41,4
20410 DATA 201,4,208,16,169,2,205,210,68,240,33,169,1,141,175,68,141,177,68,96,173,179,68,41
20420 DATA 8,201,8,208,15,169,3,205,210,68,240,8,169,1,141,176,68,141,177,68,96,172,210,68
20430 DATA 32,140,67,172,210,68,169,72,141,3,210,185,205,68,56,233,1,153,205,68,141,2,210,168
20440 DATA 162,0,189,211,68,145,204,200,232,224,16,144,245,172,210,68,185,205,68,201,50,176,16,169
20450 DATA 50,153,205,68,169,0,153,173,68,141,2,210,141,3,210,96,169,0,133,20,165,20,201,5
20460 DATA 144,250,96,238,171,68,173,171,68,201,5,144,59,169,0,141,171,68,173,170,68,240,26,238
20470 DATA 172,68,173,172,68,201,5,144,39,169,0,141,172,68,141,170,68,169,175,141,169,68,76,152
20480 DATA 68,206,169,68,169,40,141,0,210,173,169,68,141,1,210,201,160,208,5,169,1,141,170,68
20490 DATA 96,141,168,68,238,168,68,173,10,210,205,168,68,176,248,96,0,175,0,0,0,0,0,0
20500 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,1,2,3,4,0,0,0
20510 DATA 0,60,100,140,180,60,100,140,180,0,0,0,128,64,2,4,64,1,46,16,128,1,64,2
20520 DATA 8,0,0,3,12,48,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20530 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20540 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20550 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20560 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20570 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20580 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20590 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20600 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20610 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20620 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20630 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20640 DATA 112,112,240,66,0,0,130,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132
20650 DATA 132,132,130,130,130,65,0,70,0,72,138,72,238,32,70,174,32,70,189,67,70,141,10,212
20660 DATA 141,24,208,141,26,208,224,24,208,5,169,0,141,32,70,104,170,104,64,56,54,52,118,118
20670 DATA 116,116,116,116,114,114,114,114,114,114,112,112,112,112,112,112,50,50,50,50,0,7,8,208
20680 DATA 224,192,192,240,125,143,77,56,0,0,0,0,0,0,1,194,252,192,192,240,124,143,76,56
20690 DATA 0,0,0,0,0,0,0,192,224,208,200,247,125,143,77,56,0,0,0,0,0,0,0,192
20700 DATA 252,194,193,240,124,143 85,57,17,0,0,0
20710 DATA 0,0,0,0,0,0,40,17,109,167,109,17,40,0,0,0,0,0,0,0,0,0,16,56
20720 DATA 84,167,84,56,16,0,0,0,0,0,0,0,0,0,40,17,109,167,109,17,40,0,0,0
20730 DATA 0,0,0,0,0,57,109,63,22,18,32,64,128,0,0,0,0,0,0,0,0,56,109,63
20740 DATA 22,18,16,16,16,0,0,0,0,0,0,0,0,56,108,63,22,18,8,4,2,0,0,0
20750 DATA 0,0,0,0,0,56,108,63,23,18,16,16,16,0,0,0,0,0,0,0,0,112,49,123
20760 DATA 127,255,214,253,253,255,121,1,0,0,0,0,0,112,49,123,127,255,214,252,253,255,121,0
20770 DATA 0,0,0,0,0,112,49,123,127,255,214,252,252,255,120,0,0,0,0,0,0,112,49,123
20780 DATA 127,255,214,252,253,255,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20790 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20800 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20810 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20820 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20830 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20840 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20850 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20860 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
20850 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,


5 DIM SCORE(4)
7 GOSUB 1000
8 FOR I=1 TO 4:SCORE(I)=O:NEXT I
10 GRAPHICS 0:POKE 752,1:POKE 559,0:POKE 756,PEEK(106)-24:SETCOLOR 1,0,0
20 ? "AAAA AAAA AAAA  AAAA"
22 ? "       Depth Warrior       "
23 FOR X=3 TO 35 STEP 8
25 Y=INT(15*RND(0)+5)
30 POSITION X,Y: ? "↓←← "FOR Y1=Y+2 TO 21:POSITION X,Yl:? "":NEXT Yl:NEXT X
40 POSITION 8,22:? "WINNING SCORE IS ";MAXSCORE
100 U=USR(16384)
110 A=PEEK(1536):A=A+1:SCORE(A)=SCORE(A)+(PEEK(1537)-50)
120 POSITION ((A-1)*10)+2,0:? SCORE(A)
130 IF SCORE(A)>MAXSCORE THEN 3000
200 U=USR(16624)
210 GOTO 110
1000 GRAPHICS 2:SETCOLOR 2,0,0:POKE 756,PEEK(106)-24
1010 ? #6;"     PREPARE"
1020 ? #6;"  FOR THE BATTLE"
1030 ? #6;"     OF YOUR"
1040 ? #6;"      LIFE!"
1050 FOR I=255 TO 0 STEP -0.5:POKE 708,I:SOUND O,I,8,10:NEXT I:SETCOLOR 0,7,4
1060 SOUND 0,250,10,8:SOUND 1,252,10,8
1070 POSITION 4,6:? #6;"DEPTH WARRIOR"
1080 FOR T=1 TO 500:NEXT T
1090 POSITION 4,8:? #6;"BY JACK CHUNG"
1100 FOR T=1 TO 500:NEXT T
1900 SOUND 0,0,0,0:SOUND 1,0,0,0
2000 TRAP 2000:? "isWhat is the score to win ";:INPUT MAXSCORE
2001 TRAP 49999
2010 RETURN
3000 FOR I=0 TO 3:SOUND I,0,0,0:NEXT I
3010 GRAPHICS O:POKE 559,62:SETCOLOR 2,0,0:FOR I=0 TO 7:POKE 53248+I,0:NEXT I:POKE 756,PEEK(106)-24:POKE 752,1
3020 ? :? :? :? "PLAYER ";A;" YOU ARE THE NEW DEPTH WARRIOR"
3030 POSITION 0,10:? "         PRESS *START* TO BEGIN         "
3031 POSITION 0,11:? "         PRESS *OPTION* TO SET WIN SCORE"
3032 SOUND 0,250,10,8:SOUND 1,252,10,8
3035 SETCOLOR 4,INT(16*RND(0)+1),6
3040 IF PEEK(53279)=6 THEN SOUND 0,0,0,0:SOUND 1,0,0,0:GOTO 8
3045 IF PEEK(53279)=3 THEN SOUND 0,0,0,0:SOUND 1,0,0,0:GOTO 3060
3050 GOTO 3035
3060 POSITION 2,14:? "WHAT IS THE SCORE TO WIN ";:INPUT MAXSCORE
3070 GOTO 8

DATA CHECK

1 REM * CHECK DATA: DEPTH.CHAR *
5 DATA 7267,430,487,502,972,745,312,533,786,42,19,306,134,9,107,170,761,952
10110 DATA 9746,413,603,521,577,82,423,607,451,251,856,649,61,873,755,753,934,937
10280 DATA 7232,635,489,84,933,582,484,606,80,337,574,605,393,157,279,994,82,423,607,451,251,856,649,61,873,755,753,934,937
10280 DATA 7232,635,489,84,933,582,484,606,80,337,574,605,30

0 REM * CHECK DATA: DEPTH.MAN *
5 DATA 10604,631,394,970,110,559,701,411,906,842,846,87,557,612,625,792,873,688
20130 DATA 10981,679,750,844,776,641,423,380,424,759,784,6,898,712,768,659,761,717
20300 DATA 11940,758,748,722,727,813,822,570,799,701,775,676,769,669,792,47,622,930
20470 DATA 13504,942,801,463,932,138,144,915,916,917,918,919,920,921,913,914,915,916
20640 DATA 10600,113,673,783,881,533,884,131,567,798,689,536,678,657,181,658,923,915
20810 DATA 5579,916,917,918,919,920,989

0 REM * CHECK DATA: DEPTH.BAS *
5 DATA 6005,3,851,151,462,881,34,518,353,317,208,71,404,319,270,69,825,269
1010 DATA 9701,411,753,402,240,777,265,522,714,444,707,946,661,5,894,419,748,793
3030 DATA 5371,527,877,266,145,699,846,935,286,790


Assembler Listing

00010    .LI OFF
00020 *************************
00030 * DEPTH WARRIOR         *
00040 * BY JACK CHUNG         *
00050 * FOR ATARI WITH        *
00060 * 48 K                  *
00061 *                       *
00062 * This is the second    *
00063 * game of the warrior   *
00064 * series.               *
00065 *                       *
00070 *************************
00080 ;
00090 ;
00100 ;
00110 ;
00120 RANDOM    .EQ $D20A
00130 VERTI     .EQ $200
00140 DMACTL    .EQ $22F
00150 DLST      .EQ $230
00160 GRACTL    .EQ $D01D
00170 PMBASE    .EQ $D407
00180 COLPMO    .EQ $02CO
00190 HPOSPO    .EQ $D000
00200 STICK     .EQ $0278
00210 TRIGO     .EQ $DO10
00220 NMIEN     .EQ $D40E
00230 PRIOR     .EQ $026F
00240 SOUND     .EQ $D200
00250 SCREEN    .EQ 560
00260 LDM       .EQ $84
00270 JVB       .EQ $41
00280 WSYNC     .EQ $D40A
00290
00300 ADR       .EQ $80
00310
00320           .OR $4000
00330 RIGHT     .EQ $8
00340 LEFT      .EQ $4
00350 DOWN      .EQ $2
00360 UP        .EQ $1
00370 HSPEED    .EQ 4
00380 VSPEED    .EQ 2
00390
00400 PLAYER    .EQ $6000
00410 SPRITE    .EQ $CC
00420
00430 START  PLA
00440        LDA #DSP     ;Tell THE COMPUTER WHERE IS
00450        STA 560      ;THE DISPLAY LIST
00460        LDA /DSP
00470        STA 561
00480        LDA 88
00490        STA DSP+4
00500        LDA 89
00510        STA DSP+5
00520        LDA #$3A    ;SET UP
00530        STA DMACTL    ;PLAYER
00540        LDA #$03    ;MISSLE
00550        STA GRACTL    ;SHAPES
00560        LDA /PLAYER
00570        STA PMBASE
00580        LDA #8
00590        STA PRIOR
00600        LDA #$CO
00610        STA NMIEN
00620        LDA #DLI    ;TELL THE COMPUTER WHERE
00630        STA 512    ;IS THE DISPLAY LIST INTERUPT ROUTINE
00640        LDA /DLI
00650        STA 513
00660        LDY #0    ;CLEAN UP
00670        TYA       ;PLAYER MISSLE MEMORY
00680 .1     STA PLAYER+$400,Y
00690        STA PLAYER+$500,Y
00700        STA PLAYER+$600,Y
00710        STA PLAYER+$700,Y
00720        STA PLAYER+$300,Y
00730        INY
00740        BNE .1
00750        LDA #$00
00751        STA MAN
00752        STA SH
00760        STA $2C6
00770        LDA #$76      ;SET PLAYER
00780        STA COLPMO    ;COLORS
00790        LDA #$74
00800        STA COLPMO+1
00810        LDA #$72
00820        STA COLPMO+2
00830        LDA #$70
00840        STA COLPMO+3
00850        LDA #40      ;SOUND 0
00860        STA SOUND    ;40,10,14
00870        LDA #$AF
00880        STA VOLUME
00890        LDY #0
00900 .2     LDA #140
00910        JSR RND
00920        CLC
00930        ADC #60
00940        STA OX,Y
00950        LDA #140
00960        JSR RND
00970        CLC
00980        ADC #60
00990        STA OY,Y
00991        LDA #0
00992        STA MISSLEON,Y
00993        STA PHIT,Y
01000        INY
01010        CPY #4
01020        BCC .2
01030 MAIN   LDA #$00    ;START
01040        STA SPRITE
01050        LDA #$64
01060        STA SPRITE+1
01070        LDA RANDOM
01080        STA 711
01090 OK     LDY MAN
01100        LDA PHIT,Y
01110        BEQ OK1
01120        JSR KILL
01130        JMP TT
01140 OK1    JSR RSTICK
01150        JSR HIT
01160        LDY MAN
01170 .11    JSR MOVE
01180        LDY MAN
01190        LDA MISSLEON,Y
01200        BEQ TT
01210        JSR MDRAW
01220        JSR MISSLE
01230        LDA 53248,Y
01240        BEQ CONT1
01250        JSR FINISH
01260 CONT1  LDA JUMPOUT
01270        BEQ TT
01280        LDY MAN
01290        STY TEMP1
01300        LDA OY,Y
01310        STA TEMP2
01320        LDA #0
01330        STA JUMPOUT
01340        RTS ;RTS
01350 TTT    PLA
01360 TT     INC MAN
01370        INC SPRITE+1
01380        JSR PING
01390        LDA MAN
01400        CMP #4
01410        BCC OK
01420        LDA #0
01430        STA MAN
01440        JSR DELAY
01450        LDX SH     ;THIS IS
01460        TXA
01470        CLC
01480        ADC #16    ;NEXT SHAPE
01490        STA SH     ;CONFUSING
01500        CMP #64
01510        BNE M01
01520        LDA #0
01530        STA SH
01540 M01    JMP MAIN
01550
01560 ;
01570 ;CHECK JOYSTICKS AND MOVE
01580 ;THE PLAYERS
01590 ;
01600 RSTICK LDY MAN
01610        LDA STICK,Y
01620        TAX
01630        TXA
01640        AND #UP
01650        BNE .1
01660        LDA OY,Y
01670        CMP #50
01680        BCC .1
01690        SEC
01700        SBC #2
01710        STA OY,Y
01720 .1     TXA
01730        AND #DOWN
01740        BNE .2
01750        LDA OY,Y
01760        CMP #230
01770        BCS .2
01780        CLC
01790        ADC #1
01800        STA OY,Y
01810 .2     TXA
01820        AND #LEFT
01830        BNE .3
01840        LDA OX,Y
01850        SEC
01860        SBC #1
01870        STA OX,Y
01880        CMP #50
01890        BCS .3
01900        LDA #200
01910        STA OX,Y
01920 .3     TXA
01930        AND #RIGHT
01940        BNE .4
01950        LDA OX,Y
01960        CLC
01970        ADC #1
01980        STA OX,Y
01990        CMP #200
02000        BCC .4
02010        LDA #50
02020        STA OX,Y
02030 .4     LDA MISSLEON,Y
02040        BNE RETURN1
02050        LDA 644,Y
02060        BNE RETURN1
02070        LDA #1
02080        STA MISSLEON,Y
02090        LDA OX,Y
02100        CLC
02110        ADC #3
02120        STA MX,Y
02130        LDA OY,Y
02140        CLC
02150        ADC #4
02160        STA MY,Y
02170        LDA 632,Y
02180        CMP #15
02190        BEQ RETURN1
02200        CMP #14
02210        BNE A1
02220        LDA #1
02230        STA DIR,Y
02240        JMP RETURN1
02250 ;
02260 RETURN1 RTS
02270 ;
02280 A1     CMP #13
02290        BNE A2
02300        LDA #2
02310        STA DIR,Y
02320        JMP FINI
02330 ;
02340 A2     CMP #7
02350        BNE A3
02360        LDA #4
02370        STA DIR,Y
02380        JMP FINI
02390 ;
02400 A3     CMP #11
02410        BNE A4
02420        LDA #3
02430        STA DIR,Y
02440        JMP FINI
02450 ;
02460 A4     CMP #6
02470        BNE A5
02480        LDA #5
02490        STA DIR,Y
02500        JMP    FIN I
02510 ;
02520 A5     CMP #5
02530        BNE A6
02540        LDA #6
02550        STA DIR,Y
02560        JMP FINI
02570 ;
02580 A6     CMP #9
02590        BNE A7
02600        LDA #7
02610        STA DIR,Y
02620        JMP FINI
02630 ;
02640 A7     CMP #10
02650        BNE FINI
02660        LDA #8
02670        STA DIR,Y
02680        JMP FINI
02690 FINI   RTS
02700 ;
02710 ;
02720 ;
02730 ;
02740 FINI1  LDA #0
02750        STA DIR,Y
02760        STA MISSLEON,Y
02770        RTS
02780 ;
02790 ;
02800 ;DRAW PROPER SHAPES FOR
02810 ;THE FOUR VEHICLES
02820 ;
02830 MOVE   LDY MAN
02840        LDA OX,Y
02850        STA HPOSPO,Y
02860        LDY MAN
02870        TYA
02880        ASL    ;*2
02890        ASL    ;*4
02900        ASL    ;*8
02910        ASL    ;*16
02920        ASL    ;*32
02930        ASL    ;*64
02940        CLC
02950        ADC SH
02960        TAX
02970        LDA OY,Y
02980        TAY
02990 MOO    LDA SHAPE,X
03000        STA (SPRITE),Y
03010        INY
03020        INX
03030        INC COUNT
03040        LDA COUNT
03050        CMP #16
03060        BCC MOO
03070        LDA #0
03080        STA COUNT
03090        RTS
03100 ;
03110 ;
03120 ;MOVE THE MISSLES IN THE
03130 ;PROPER DIRECTION AND ADD SOUND
03140 ;
03150 MISSLE LDY MAN
03160        LDA MX,Y
03170        STA SOUND+4.
03180        LDA #$88
03190        STA SOUND+5
03200        LDX #0
03210 LOOP2  LDA #1
03220        STA 53279
03230        INX
03240        BNE LOOP2
03250        LDA DIR,Y
03260        TAX
03270        CPX #1
03280        BNE .1
03290        LDA MY,Y
03300        SEC
03310        SBC #VSPEED
03320        STA MY,Y
03330        CMP #50
03340        BCS .1
03350        JMP FINISH
03360 .1     CPX #2
03370        BNE .2
03380        LDA MY,Y
03390        CLC
03400        ADC #VSPEED
03410        STA MY,Y
03420        CMP #230
03430        BCC .2
03440        JMP FINISH
03450 .2     CPX #3
03460        BNE .3
03470        LDA MX,Y
03480        SEC
03490        SBC #HSPEED
03500        STA MX,Y
03510        CMP #40
03520        BCS .3
03530        JMP FINISH
03540 .3     CPX #4
03550        BNE .4
03560        LDA MX,Y
03570        CLC
03580        ADC #HSPEED
03590        STA MX,Y
03600        CMP #200
03610        BCC .4
03620        JMP FINISH
03630 .4     CPX #5
03640        BNE .5
03650        LDA MY,Y
03660        SEC
03670        SBC #VSPEED
03680        STA MY,Y
03690        CMP #50
03700        BCS .55
03710        JMP FINISH
03720 .55    LDA MX,Y
03730        CLC
03740        ADC #HSPEED
03750        STA MX,Y
03760        CMP #200
03770        BCC .5
03780        JMP FINISH
03790 .5     CPX #6
03800        BNE .6
03810        LDA MY,Y
03820        CLC
03830        ADC #VSPEED
03840        STA MY,Y
03850        CMP #230
03860        BCC .66
03870        JMP FINISH
03880 .66    LDA MX,Y
03890        CLC
03900        ADC #HSPEED
03910        STA MX,Y
03920        CMP #200
03930        BCC .6
03940        JMP FINISH
03950 .6     CPX #7
03960        BNE .7
03970        LDA MX,Y
03980        SEC
03990        SBC #HSPEED
04000        STA MX,Y
04010        CMP #40
04020        BCS .77
04030        JMP FINISH
04040 .77    LDA MY,Y
04050        CLC
04060        ADC #VSPEED
04070        STA MY,Y
04080        CMP #230
04090        BCC .7
04100        JMP FINISH
04110 .7     CPX #8
04120        BNE .8
04130        LDA MX,Y
04140        SEC
04150        SBC #HSPEED
04160        STA MX,Y
04170        CMP #40
04180        BCS .88
04190        JMP FINISH
04200 .88    LDA MY,Y
04210        SEC
04220        SBC #VSPEED
04230        STA MY,Y
04240        CMP #30
04250        BCS .8
04260        JMP FINISH
04270 .8     RTS
04280 ;
04290 ;DRAW MISSLE SHAPES
04300 ;
04310 MDRAW  LDY MAN
04320        LDX #0
04330 LOOP   LDA #1
04340        STA 53279
04350        INX
04360        BNE LOOP
04370        LDA MX,Y
04380        STA $D004,Y
04390        LDX MAN
04400        LDA MY,Y
04410        TAY
04420        LDA #0
04430        DEY
04440        STA PLAYER+$300,Y
04450        DEY
04460        STA PLAYER+$300,Y
04470        INY
04480        INY
04490        LDA MSHAPE,X
04500        STA PLAYER+$300,Y
04510        INY
04520        STA PLAYER+$300,Y
04530        INY
04540        LDA #0
04550        STA PLAYER+$300,Y
04560        INY
04570        STA PLAYER+$300,Y
04580        RTS
04590 ;
04600 ;CLEAN UP
04610 ;
04620 FINISH LDA #0
04630        LDY MAN
04640        STA MISSLEON,Y ;STOP MISSLE
04650        STA SOUND+4    ;SHUT OFF SOUND
04660        STA SOUND+5
04670        LDA #0
04680 CLEAN  STA PLAYER+$300,Y
04690        INY
04700        BNE CLEAN
04710        RTS
04720 ;
04730 ;DETERMINE WHICH PLAYER IS
04740 ;
04750 HIT    LDY MAN
04760        LDA 53256,Y
04770        BNE CONT
04780        LDA 53260,Y
04790        BEQ RETURN
04800 CONT   STA TEMP
04810        LDA #1
04820        STA 53278
04830        LDA TEMP
04840        AND #1
04850        CMP #1
04860        BNE B1
04870        LDA #0
04880        CMP MAN
04890        BEQ RETURN
04900        LDA #1
04910        STA PHIT
04920        STA JUMPOUT
04930        RTS
04940 ;
04950 B1     LDA TEMP
04960        AND #2
04970        CMP #2
04980        BNE B2
04990        LDA #1
05000        CMP MAN
05010        BEQ RETURN
05020        LDA #1
05030        STA PHIT+1
05040        STA JUMPOUT
05050        RTS
05060 ;
05070 B2     LDA TEMP
05080        AND #4
05090        CMP #4
05100        BNE B3
05110        LDA #2
05120        CMP MAN
05130        BEQ RETURN
05140        LDA #1
05150        STA PHIT+2
05160        STA JUMPOUT
05170        RTS
05180 ;
05190 B3     LDA TEMP
05200        AND #8
05210        CMP #8
05220        BNE RETURN
05230        LDA #3
05240        CMP MAN
05250        BEQ RETURN
05260        LDA #1
05270        STA PHIT+3
05280        STA JUMPOUT
05290 RETURN RTS
05300 ;
05310 ;FLOATING DEBRIS ROUTINE
05320 ;
05330 KILL   LDY MAN
05340        JSR HIT
05350        LDY MAN
05360        LDA #$48
05370        STA SOUND+3
05380        LDA OY,Y
05390        SEC
05400        SBC #1
05410        STA OY,Y
05420        STA SOUND+2
05430        TAY
05440        LDX #0
05450 L1     LDA DSHAPE,X
05460        STA (SPRITE),Y
05470        INY
05480        INX
05490        CPX #16
05500        BCC L1
05510        LDY MAN
05520        LDA OY,Y
05530        CMP #50
05540        BCS SKIP
05550        LDA #50
05560        STA OY,Y
05570        LDA #0
05580        STA PHIT,Y
05590        STA SOUND+2
05600        STA SOUND+3
05610 SKIP   RTS
05620 ;
05630 ;
05640 ;
05650 DELAY  LDA #0
05660        STA 20
05670 .1     LDA 20
05680        CMP #5
05690        BCC .1
05700        RTS
05710 ;
05720 ;MAKE THE PING SOUND FOR
05730 ;SFX
05740 ;
05750 PING   INC TIMER
05760        LDA TIMER    ;TIMER
05770        CMP #5    ;LOOP
05780        BCC EXIT
05790        LDA #0
05800        STA TIMER
05810        LDA SILENT
05820        BEQ CONTINUE
05830        INC TIMERI
05840        LDA TIMER1
05850        CMP #5
05860        BCC EXIT
05870        LDA #0
05880        STA TIMER1
05890        STA SILENT
05900        LDA #$AF
05910        STA VOLUME
05920        JMP EXIT
05930 CONTINUE DEC VOLUME ;FOR I=15
05940        LDA #40
05950        STA SOUND
05960        LDA VOLUME ;TO 0 STEP
05970        STA SOUND+1
05980        CMP #$AO    ;-.2
05990        BNE EXIT
06000        LDA #1    ;FOR I=1
06010        STA SILENT ;TO 400
06000        LDA #1    ;FOR I=1
06010        STA SILENT ;TO 400
06020 EXIT   RTS
06030 ;
06040 ;RANDOM NUMBER GENERATOR
06050 ;
06060 RND    STA RTEMP
06070        INC RTEMP
06080 RNDWAIT LDA RANDOM
06090        CMP RTEMP
06100        BCS RNDWAIT
06110        RTS
06120 ;
06130 ;
06140 ;
06150 ;
06160 RTEMP  .DA #0
06170 VOLUME .DA #$AF
06180 SILENT .DA #0
06190 TIMER  .DA #0
06200 TIMER1 .DA #0
06210 PHIT   .DA #0,#0,#0,#0
06220 JUMPOUT .DA #0
06230 SH     .DA #0
06240 TEMP   .DA #0
06250 TEMP1  .EQ $600
06260 TEMP2  .EQ $601
06270 COUNT  .DA #0
06280 MX     .DA #0,#0,#0,#0
06290 MY     .DA #0,#0,#0,#0
06300 MDIR   .DA #1,#2,#3,#4
06310 DIR    .DA #1,#2,#3,#4
06320 MISSLEON .DA #0,#0,#0,#0
06330 OX     .DA #60,#100,#140,#180
06340 OY     .DA #60,#100,#140,#180
06350 FRAME  .HS 00
06360 MAN    .DA #0
06370 ;
06380 DSHAPE
06390    .DA #0,#128,#64,#2,#4,#64,#1,#46,#16,#128,#1,#64,#2,#8,#0,#0
06400 MSHAPE .DA #3,#12,#48,#192
06410 ;
06420        .OR $4600
06430 DSP    .HS 7070FO
06440        .DA #$42
06450        .DA #0
06460        .DA #0
06470        .DA #$82    1
06480        .DA #LDM    2
06490        .DA #LDM    3
06500        .DA #LDM    4
06510        .DA #LDM    5
06520        .DA #LDM    6
06530        .DA #LDM    7
06540        .DA #LDM    8
06550        .DA #LDM    9
06560        .DA #LDM    10
06570        .DA #LDM    11
06580        .DA #LDM    12
06590        .DA #LDM    13
06600        .DA #LDM    14
06610        .DA #LDM    15
06620        .DA #LDM    16
06630        .DA #LDM    17
06640        .DA #LDM    18
06650        .DA #LDM    19
06660        .DA #LDM    20
06670        .DA #$82    21
06680        .DA #$82    22
06690        .DA #$82    23
06700        .DA #JVB
06710        .DA DSP
06720 COUNTR .DA #0
06730 ;
06740 ;DISPLAY LIST INTERUPT ROUTINE
06750 ;
06760 ;
06770 DLI
06780        PHA
06790        TXA
06800        PHA
06810        INC COUNTR
06820        LDX COUNTR
06830        LDA COLBAK,X
06840        STA WSYNC
06850        STA $D018
06860        STA $D01A
06870        CPX #24
06880        BNE ENDDLI
06890        LDA #$00
06900        STA COUNTR
06910 ENDDLI PLA
06920        TAX
06930        PLA
06940        RTI
06950 ;
06960 ;
06970 ;
06980 COLBAK .DA #$38,#$36,#$34,#$76,#$76,#$74,#$74
06990        .DA #$74,#$74,#$72,#$72,#$72,#$72,#$72,#$72,#$70
07000        .DA #$70,#$70,#$70,#$70,#$70,#$32,#$32,#$32,#$32
07010 ;
07020 ;
07030 ;
07040 SHAPE
07050    .DA #0,#7,#8,#208,#224,#192,#192,#240,#125,#143,#77,#56,#0,#0,#0,#0
07060    .DA #0,#0,#1,#194,#252,#192,#192,#240,#124,#143,#76,#56,#0,#0,#0,#0
07070    .DA #0,#0,#0,#192,#224,#208,#200,#247,#125,#143,#77,#56,#0,#0,#0,#0
07080    .DA #0,#0,#0,#192,#252,#194,#193,#240,#124,#143,#76,#56,#0,#0,#0,#0
07090    .DA #0,#0,#17,#57,#85,#167,#85,#57,#17,#0,#0,#0,#0,#0,#0,#0
07100    .DA #0,#0,#40,#17,#109,#167,#109,#17,#40,#0,#0,#0,#0,#0,#0,#0
07110    .DA #0,#0,#16,#56,#84,#167,#84,#56,#16,#0,#0,#0,#0,#0,#0,#0
07120    .DA #0,#0,#40,#17,#109,#167,#109,#17,#40,#0,#0,#0,#0,#0,#0,#0
07130    .DA #0,#57,#109,#63,#22,#18,#32,#64,#128,#0,#0,#0,#0,#0,#0,#0
07140    .DA #0,#56,#109,#63,#22,#18,#16,#16,#16,#0,#0,#0,#0,#0,#0,#0
07150    .DA #0,#56,#108,#63,#22,#18,#8,#4,#2,#0,#0,#0,#0,#0,#0,#0
07160    .DA #0,#56,#108,#63,#23,#18,#16,#16,#16,#0,#0,#0,#0,#0,#0,#0
07170    .DA #0,#112,#49,#123,#127,#255,#214,#253,#253,#255,#121,#1,#0,#0,#0,#0
07180    .DA #0,#112,#49,#123,#127,#255,#214,#252,#253,#255,#121,#0,#0,#0,#0,#0
07190    .DA #0,#112,#49,#123,,#127,#255,#214,#252,#252,#255,#120,#0,#0,#0,#0,#0
07200    .DA #0,#112,#49,#123,#127,#255,#214,#252,#253,#255,#121,#0,#0,#0,#0,#07,#255,#214,#252,#252,#255,#120,#0,#0,#0,#0,#0