ANIMATED ACTION!
David Oxley presents an easy program for storing several images in succession
on the 48K Spectrum.

This program provides a simple method of storing 16 images in succession and
has the ability to display any one image on request, or to flick through all
16, so creating an animated effect.

The program achieves its high speed by using two very simple 12-byte machine
code routines: one to store and one to recall the displays. One advantage is
that no matter how long it takes to set up the displays, the end results can
be viewed in a matter of seconds.

The program will only work on the 48K Spectrum, because it uses just over 32K
to store and display the images. As it stands, no allowance has been made for
colour, although by the addition of two more routines to store and recall the
attribute bytes (22528 to 22783), this could be easily overcome.

Only 16 images are allowed for, but more could be accomodated - at the cost
of losing available RAM. Even so, the 16 pictures still leave a 16K Spectrum,
8.6K of which is not taken up by the screen nor by the system variables, etc.
A program could be designed to control the images in, for example, a
mini-adventure where the top third of the screen could be used to display
present whereabouts.

Fed the correct data, the program could simulate the movements of somebody
walking across the screen, or a dramatic explosion at the end of a game. The
possibilities are endless, given the imagination to construct the designs.

Notes on the main program:

Line(s)
10 to 40	Reset RAMTOP and load the machine code.
50		n holds the number of the present screen.
90 to 9000	Space for you to put the drawing routines.

If you want to design each picture in direct mode, enter line 100 STOP. When
you have completed the design of that screen, type CONTINUE.

9000 to 9030	The POKE in line 9000 sets the high byte of the DE register pair
		to store the 'n th' screen in the correct place.

The USR call executes the 'store' machine code routine. The screen is then
cleared, and if fewer than 17 screens have been counted the program continues
at line 90.

9100 to 9130	The FOR-NEXT loop calls up each display sequentially by POKEing
		and then executing the machine code.
9140 to 9170	These lines simply flick through the displays in reverse order.

Two short demonstration programs are also included which can simply be MERGEd
into the main program and consequently run. The results are quite astounding!





THE FLY
By Carlton Lawson
on Spectrum

Instructions for this game are in the program.

Enter lines 1 to 17 (set up user-definable graphics) the Run this to allow
the graphics to be established.

Program notes:

Lines
18 to 51	Sets up variables.
60, 70, 110	Are responsible for printing the graphics. Although these are
		written out in full on the listing, in practice, the Spectrum
		has to be put into Graphics mode and the appropriate letter
		entered.
130		Checks to see if the Fly has been caught.
260 to 9030	Deal with the end of the game and the instructions.




SEARCHER
by Andrew Filby
from Popular Computing Weekly 21-27 April 1983


This program called Searcher has been written mainly in BASIC, but I
have also used two machine code routines. The first machine code
routine scrolls the whole screen from right to left, which makes the
graphics smooth and fairly fast. The second machine code routine is
used to invert the whole screen without clearing it, which contributes
to a dramatic explosion effect.

The program was written on a 48k Spectrum, but could be used by a 16k
machine by lowering the machine code addresses.

The object of the game is to fly for as long as possible without
hitting the aliens or the walls. There are two kinds of alien, one is
worth 20 points and the other is worth 40 points. Each wall dodged is
worth 50 points.

When you have used your three lives, you are given your score and a
message suggesting how good your score was. Full instructions are
included in the program.

The routine at line 4000 is used to find out if an alien has been shot
by your laser. This routine enables INKEY$ to recognise user-defined
graphics. [He means SCREEN$. JimG] The code of the character is stored
in the variable I.


Variables used

f  = FOR/NEXT loop
g  = FOR/NEXT loop
a  = height of mountain
sc = score
x  = x coord of ship
y  = y coord of ship
fl = mountain going up or down
h  = increasing/decreasing height of mountain
as = over 1000 points?
rnd= height of new alien
i  = CODE of user graphic
z  = call of machine code
l  = lives
d  = random position of wall
q  = FOR/NEXT loop
a$ = message





TARGET
By Robert Kirkland
on Spectrum

In this program you are in command of a missile base and it is your job to
stop the enemy from landing on earth. The aliens will appear at a random
position on the screen. Your sight starts in the centre; position it over the
enemy ship and press the 0 key to fire your laser. If you hit a victory roll
is played and another ship will appear. This goes on until your time is up
(you have two minutes).

Both your score and time are displayed on the screen throughout the game.

Program notes:
1-40		Set up variables.
100-999		Main loop.
1000-1060	Subroutine for if you press a key.
2000-2050	Subroutine for if you [line ends].
3000-3090	Subroutine to move an alien.
4000-4020	Subroutine for if you hit an alien.
5000-5210	Subroutine to set up user defined graphics
6000-6310	Time up routine.
7000-7300	Instructions.




TITLES
By Dennis Lyons
on Spectrum

An easy method of producing titles, ready to store on your video recorder.
Steve Mercer's color strips program (February 3) may be usefully merged. Just
connect your aerial lead direct to your video recorder, you cannot damage it!

The program allows you to select a border and paper colour for the whole
screen, then allows you to input individually centred lines of text display,
each one having separate colour on contrasting ink, with flash and bright on
or off.

Pressing Enter in response to the Title prompt gives a blank line (scroll
down one line), and to finish enter "*".

The display is then finalised and held until any key is pressed (no prompts
or error messages to mar the display). Then the next display page is started.

If hard copy is wanted enter a new line:

	265 COPY




