METEORITES
by Gavin Smyth
from ZX Computing Dec'84/Jan'85

METEOR MADNESS

Gavin Smyth triumphs again with another
all action machine code masterpiece.


Remember 'METEORS' on the first games tape for the ZX81? In
my opinion, it was the best game on that tape, but it did
have a few disadvantages:

  The graphics could be better.

  The ship is at the top of the screen and 'moves' down:
  the opposite would be more convenient.

  The ship moves across the screen and so can be 'trapped'
  at the edges with no chance of avoiding the asterisks.

  Finally, since the game is in BASIC, it is quite slow.

This game for the ZX Spectrum (16K or 48K) overcomes all
these and has a few extra features. It is written completely
in machine code and uses smooth high resolution colour
graphics with continuous sound. The ship cannot be trapped
at screen edges because it stays in the centre while the
meteorites flow past (or into!) it. The program has three
separate pixel scroll routines to achieve this and these can
easily be altered to be called from BASIC for your own
programs. The game also has an eight digit score counter,
although so far I have only needed the first four!

You are in empty space when a meteorite appears on your long
distance green radar screen. Soon you can spot it on visual
- as it gets closer, it glows red hot. (Who cares if there
is nothing in space to make it glow? It still looks
interesting on screen,) Can you avoid all the rocks in the
increasingly dense meteor storm?

Occasionally, 'antimatter asteroids' show up on the screen -
if you can hit these exactly on the nose of the ship, the
whole screen is cleared of meteors, giving you a short time
to recover. The test for this is simple, so some other
meteorites may be found to contain some antimatter!
Colliding with anything else reduces the strength of your
shields - after five hits, you are spectacularly blown up.


Entering the program

The method of entering the program is slightly different for
16K and 48K owners, but whichever machine you have, first
enter the four line "initial program" listing and SAVE it by
SAVE "meteor" LINE 1 on the piece of tape you will use for
your final program. Rewind and VERIFY and then leave the
tape at this position to record the machine code on once it
has been entered.


48K Spectrums

Type in the listing of DATA statements and add the 48K
loader program to the end of your program. I suggest you
save the final program in case any errors get through;
although a checksum has been built in, it's not foolproof!

RUN your program and correct any errors in lines indicated.
Should the program crash then type PRINT a and press ENTER;
the number displayed is the line in which something is
wrong. Check and correct it.


16K Spectrums

Do not type in the DATA listing, but enter the 16K loader
program. Run the program and enter the DATA of each line, a
whole line at a time. The program will tell you of any
errors and you'll have to re-enter the whole of that line.
Should the program crash, type PRINT a: GO TO 9033 and press
ENTER. Re-enter the line whose number is displayed on the
screen.


Both Spectrums

When the "SAVING PROGRAM" message appears, put your original
tape into the recorder (the one with the initial program
recorded on it), start recording and press any key as for a
usual SAVE.

It may be prudent to make a back up copy by typing GO TO
9100, ENTER and saving on a spare piece of tape of tape
until you're sure your master is OK.

Verify by typing VERIFY "" CODE, rewinding the tape and
pressing ENTER and PLAY on the recorder.

To test the program type RANDOMIZE USR 31000 and look out!

To load in the game on subsequent occasions position the
tape at the start and type LOAD "". It will load, auto run,
load the machine code and start the game.


[The following letter was printed in the Aug/Sep.1985 issue.]

The Meteor Madness game - written by Gavin Smythe is a masterpiece -
however it does not allow you to terminate it when finished. This can be
important when the game is part of a menu-driven program which resides
on a microdrive cartridge and controls games, screens, programs, etc.

Another key pressed (i.e. 'J' for load) has to be defined. This can be
achieved: Key 'j' pressed calls a routine which 

a) reads the keyboard
b) calls, in the control program, two ROM routines, i.e.: 1BB3
(LINE-END) and 1BBF (NEXT-LINE)

ad b.)
1 REM * INITIAL PROGRAM *
2 CLEAR 30999
4 RANDOMIZE USR 31000
5           CLEAR:LOAD *"M";1;"run"

ad a.) 48K loader program: amend line 440,:"CDF47E00000000000000"
(disable val=check in 9000)

ADD LINES
1090 DATA "3EBFDBFEE6011280A"
2000 DATA "3EBFDBFEE6002003"
2010 DATA "20EEC9CDB31BCDBF"
2020 DATA "1B000000"

SAVE the CODE with 1520 bytes and increase loopcount to 62527.

The Flight Simulation game annoys with its yellow border. If anyone
wants to change the colour of the Border then:

POKE 51147,x

will make it possible, where x is the colour (0-1). Save the amended
CODE with 32768, 32000.

Yours faithfully
M. Capek
Victoria, Australia.


--
Another Fine Product transcribed by:
Jim Grimwood (jimg@globalnet.co.uk), Weardale, England
--
