Sea Mines
---------

"Sea Mines" is a simple pseudo-hi-res game for the ZX81, which was
published in the Sep. '83 issue of "Your Computer". I just entered it
(and fixed a minor bug where GOSUB was erroneously used instead of
GOTO). The program is by Grant Passmore, with thanks "to Richard
Taylor for his high-resolution routine". It's reproduced without
permission.

In the game, you use the cursor keys to navigate your submarine
through the mines. The movement is continuous - press a cursor key
once and you keep moving that way until you change direction.
Experiment with it a bit and you'll get the idea. In addition to
avoiding the mines, you mustn't surface (the destroyer gets you if you
do), or hit the seabed. So you have to work your way up to one of the
two small gaps just below the surface on the sides of the screen.
Really quite a simple game overall, but it can get tricky.

I've produced two versions: the original (seamnorg.p) which requires
you to do "POKE 16389,103" then "NEW" before loading; and a version I
modified (seamines.p) to move the RAMTOP itself, so you can load it
like any other program, without having to bother with POKEing first.
(I'm surprised the author didn't think of this, it only takes about 60
bytes and it's dead easy to do.)

Anyway, it's an interesting addition to any hi-res collection, or
something, and at least I've saved you typing in a 2k hexdump. :-)

- Russell Marks.


SEA MINES
by Grant Passmore
from Your Computer, September 1983

High resolution on the high seas - that destroyer will blast you out
of the water if you surface. Even if you don't Grant Passmore's mines
stand between you and safety.

CAN You navigate your submarine through a channel without hitting the
seabed or the surface? Fine. But can you also guide the craft through
a lethal enemy minefield without getting blown up? Enough to give even
the most experienced submariner a sinking feeling.

There are six skill levels and four game speeds. Each skill level
increases the number of mines. The skill level and game speed both
affect your score.

The program is in two sections, a 2K machine-code routine and a Basic
listing. The game is contained in the machine code. The Basic sets the
game speed, the number of mines and after each game gives a report and
calculates your score. N/L is Newline.

To load the program, lower RAMtop:
	POKE 16389,103 (N/L)
	NEW (N/L)
Next, reserve memory for machine code. You have to create a Rem
statement 2,272 bytes long to do this.
	Line 1. REM followed by 96 full stops.
	Line 2 to line 18. REM followed by 122 full stops.
You should now have a program consisting of 18 Rem lines. To make
these 18 lines one line enter the following direct commands:
	POKE 16514,118 (N/L)
	POKE 16515,118 (N/L)
	POKE 16511,226 (N/L)
	POKE 16512,8   (N/L)
Input line 4: SAVE "SEA MINE(Inv S)"
	LIST 4 (N/L)
	POKE 16419,4 (N/L)

Then enter the hexadecimal loader routine.
	GOTO 9000 (N/L)
On the prompt enter 16514 then key in the machine-code listing. When
you have finished, Save the machine code on tape a couple of times. To
test the machine code, add the following lines:
	10 RAND USR 18400
	20 RAND USR 18433
	30 STOP
	GOTO 10 (N/L)

You should now have a picture of a submarine in a deep trench with a
frigate waiting on the surface and the seabed climbing steeply up
either side of the screen. There should also be a scattering of mines
above the submarine. Press key 6 - the down cursor - and the submarine
should slowly move down to the sea bed and be destroyed. The program
will then return to Basic with report code 9/30.

If it does not run correctly then lower RAMtop and reload the game
from tape. Use the program in the hexadecimal loader routine starting
at 9200 to check your machine-code listing against the published
listing. Correct any mistakes you find and then rerun the test
program. When the machine code has been debugged Save it. Delete all
the lines from line 10 onwards.

Variables:
	CLEAR (N/L)
Enter program 2 to assign the characters to T$. Then Run the program
and enter the numbers in listing 1.
	GOTO 10 (N/L)
Delete all the lines from line 10 onwards. Never Run or Clear the
computer, use Goto instead of Run.

Finally, enter the Basic listing. To Save the game and [to] make it
autostart when loaded do the following:
	1. Enter GOTO 1 - do not press N/L yet
	2. Start the tape recorder
	3. Press N/L
Before you load the game from tape again you will have to lower RAMtop.
	POKE 16389,103 (N/L)
	NEW (N/L)
	LOAD ""
	start tape
	(N/L)

Thanks to Richard Taylor for high-resolution routine.
