Classic Computer Magazine Archive ANTIC VOL. 3, NO. 6 / OCTOBER 1984

bonus game


Bonus undersea action game


This arcade-style Basic action game requires a joystick and runs on all Atari computers of any memory configuration.  Antic Disk subscribers RUN "D:DIVER.BAS":

First type in the listing.  Check it with TYPO, and SAVE an extra copy as a backup.  Now RUN the program.

diver screenYou are in command of Diver, a small one-man diving bell.  You are exploring dangerous reefs in search of chests containing precious treasure.  Some chests, however, may only contain sand and seaweed.  There are many hazards and you have only three Divers.
   The joystick moves Diver up, down, right, and left.  To pick up treasure chests, position Diver directly above a chest and press the joystick button.  To avoid danger, it may be necessary to surface.  Go to the top and press the joystick button.  To submerge, press the button again.
   If Diver hits a reef or an enemy object he will be destroyed.  Diver has limited supply of oxygen, indicated by an "oxygen bar" at the bottom of the screen.  Oxygen may be replenished by surfacing.

OctopusThe ocean is inhabited by large and aggressive octopi.  One touch from them will destroy Diver.  Diver is safe from an octopus's relentless pursuit only when surfaced.
   Occasionally a sea mine may appear.  It is large and has a timer in the center.  When the timer reaches zero, everything under water is destroyed.  The only way Diver may avoid this disaster is to surface.
   Submarines patrol these waters frequently, so watch out!  The submarine's sonar will take a couple of seconds to detect you.  When it does, it fires a laser that never misses!  But, the sonar cannot penetrate the reefs, and Diver is safe when below the reef's highest point.  Diver also is protected from the sub when surfaced.
   Surfacing will reveal what your treasure chests contain!  Rewards range from zero to 150 points.  You receive ten points for just picking up a chest.  One point is deducted for each unit of oxygen remaining when you surface.  A free Diver is added when you advance to the next skill level if you have less than three Divers already.
   After a few dives, you should be a regular Jacques Cousteau.


10-    30 Initialization.
100-  200 Player input.
300-  310 Move Diver and check for collision.
400-  410 Get treasure.
420-  440 Surfacing.
450-  490 Determine the treasure found.
500-  570 Sink Diver and reset variables.
600-  670 The sea mine, the octopus, and the submarine all appear at random.  These lines check for each random, set varables, and flags.
700-  740 Check flags and branch to appropriate subroutines.
800-  840 Advancement to next coral reef.
850-  870 Advancement to next skill level.
900-  905 Set up text window.
910-  940 Print score and other statistics.
1000- 1030 Draw coral reef.
1100- 1146 Data for coral reefs.
1200- 1240 Game over.
1300- 1320 Initialize treasures and values for each.
1500- 1570 Title page.
2000- 2110 Subroutine for the octopus.
2200- 2290 Subroutine for sea mine.
2300- 2400 Subroutine for submarine.
3000- 3060 Sound routines.
30000-30016 Initialization for redefined character set.


BX    -x coordinate of sea mine
BY    -y coordinate of sea mine
C1    -counter for octopus
C2    -counter for mine
C3    -counter for sub
CHR   -ATASCII value of character from LOCATE command
CR    -coral reef #
DL    -location of Display List DL = PEEK(560) + PEEK(561) *256
DV    -# of Divers left
DV$   -string container Diver
DX    -x coordinate of Diver
DY    -y coordinate of Diver
Fl    -if Fl=1 then sea mine is present
F2    -if F2=1 then Diver surfaced
F3    -if F3=1 then octopus is present
F4    -if F4=1 then sub is present
F6    -flag for start of game
HSC   -high score
HT    -height of each coral reef
NDX   -new Diver x coordinate
NDY   -new Diver y coordinate
NOCX  -new x coordinate of octopus
NOCY  -new y coordinate of octopus
OB    -total # of treasure chests collected
OC    -oxygen counter
OCX   -octopus x coordinate
OCY   -octopus y coordinate
OX    -# of oxygen units
OX$   -string containing "oxygen bar"
PT(n) -value for each string
S     -set to STICK(O)
S$    -string for sub
SC    -score
SK    -skill level
START -starting location of redefined character set. START=(PEEK(106)+l)* 256
SX    -x coordinate of sub
SY    -y coordinate of sub
TC    -# of treasure chests in possession
TC$   -string containing treasure chests
TICKER-value of ticker on mine
TR$   -contains all treasure contents
X(n),Y(n)-used for sinking of Diver
C,N,PT,X,X1,Y,Z,Zl-multi-purpose variables

Steve May, 15 years old, is a Mansfield, Ohio high school student. He has been programming with Atari computers for over four years, and is currently teaching himself machine language.

Listing 1: DIVER.BAS Download