YOUR COMPUTER, December 1985
============================


LUCIFER
-------
Olaf Astrand  Sweden  Spectrum

First enter the BASIC program and save it by using:
	SAVE "Lucifer" LINE 0
Restart your Spectrum and enter code loader, run it and enter Main Code. When
you have done that Enter (Stop) and save code with:
	SAVE "MC" CODE 46000,950
Then run code loader
and enter Sprite Code, Address 40074  40840. Save it:
	SAVE "SPRITES" CODE 40000,850
Restart/Rewind and load all parts.

Controls Are:
Q     = DROP
A     = TAKE
N     = LEFT
M     = RIGHT
SPACE = JUMP


**********************************************************************


ROCKETMAN MIKE
by Karl Jeffery
from Your Computer, December 1985

Karl Jeffery takes off on a Spectrum

If you enjoyed Mad Caverns you'll go bananas over Rocket Man Mike -
another commercial quality game from Karl Jeffery, the author of one
of 1984's chart-toppers, Mutant Monty. Guide Mike around 10 screens
collecting the amulets. Moving to the top of the screen takes you to
the bottom of the next, so learning the geography of the place is easy.

To enter the game type in and save listings 1 and 2. On the other side
of your tape save:
	10 CLEAR 32667: LOAD "" CODE 32668: PRINT USR 39202
Save it with:
	SAVE "ROCKET" LINE 10
Now load and run listing 1. When it has finished Poking the machine
code into memory, load and run listing 2, which Pokes the second part
of the code. You can then save the: blocks of code together, after the
loader program, by typing:
	SAVE "code" CODE 50000, 8500

The controls for the game are as follows:
Z,C,B,M,Space            Right
Caps,X,V,N,Symbol Shift  Left
Q,W,E,R,T,Y,I,O,P        Thrust up
A,S,D,F,G,H,J,K,L        Hover/Stop
1                        Pause
Caps and Space           Quit the game

A 15-screen version of the game, with extra music, is available for
#3.50, while a full source code listing is available for #1.50. Write
to Karl Jeffery, [...].


**********************************************************************


SCROLLS
by T.A. Bratley
from Your Computer, December 1985

[The decimal loader and demonstration program mentioned in the]
[article were not printed in the magazine.                JimG]

>T.A. Bratley * Spectrum * Grimsby, South Humberside

Here is a set of eight versatile, easily used and interesting scroll
routines which can be added to your Basic programs to clear all or
part of a screen in one of 8 directions. The routines scroll one
character square at a time in the following compass directions:
	N, S, E, W, NE, NW, SE, SW.
The old character square is blanked out and its attribute is replaced
with one of your choice.

The difference between these and previously published routines is that
any section of the screen can be scrolled in any direction and leave
any colour attribute behind. This includes the bottom two lines.

There are only five parameters you have to supply in order to define
the section of the screen to be scrolled, and below are the addresses
you need to poke for both 16K and 48K machines. (16 in brackets)
	POKE 64000, (31232), h.  (1 to 24)
	POKE 64001, (31233), w.  (1 to 32)
	POKE 64002, (31234), r.  (0 to 23)
	POKE 64003, (31235), c.  (0 to 31)
	POKE 64004, (31236), a.  (attribute)
This defines a box of height h, width w, with a top left-hand corner
at r,c (where r and c are the normal PRINT AT coordinates), to be
replaced with a new attribute a.

Height and width must always be at least one because a box must have
two dimensions, and care must be taken to see that the box does not
exceed the screen limits.

The attribute is calculated in the usual way by multiplying the paper
colour by eight and then adding the ink value. If BRIGHT is required
add a further 64 to the total so far, and finally if FLASH is required
add a further 128.

After poking the values for machine code routines to use you will then
have to select whichever scroll direction you require. The table below
gives you the addresses for both machines:
	DIRECTION  16K     48K
	N          31241   64009
	S          31253   64021
	E          31265   64033
	W          31277   64045
	NE         31289   64057
	SE         31303   64071
	SW         31317   64085
	NW         31331   64099

These routines use the values r,c (row, column) to calculate the
actual memory address of the top left-hand corner of the box and its
corresponding attribute address. They then take the width and height
of the box and use the lower of these two valves as a loop counter
within the machine code to repeatedly call the appropriate routines
until the box is cleared. This saves using a For-Next loop in Basic
and therefore speeds up the scrolling. However, this has a slight
disadvantage in that very small boxes are scrolled off so fast that
the effect is lost.

Because the machine code is not relocatable I have given two decimal
dumps for the 16K and 48K machine. The 16K version is entered at 31232
and the 48K version at 64000, and both are 654 bytes in length.

To enter the code use the decimal loader in Program 1. There is a
checksum at the end to make sure no data entry errors have been made.
	16K Checksum = 73333
	48K Checksum = 83923
You can obtain a printout of the decimal dump by typing GOTO 1000, if
an error has been made. If you have no printer change the LPrint
statements to Print statements and check it on the screen. When you
are sure everything is OK then save the code by typing;
	16K SAVE "Scrolls" CODE 31232, 654
	48K SAVE "Scrolls" CODE 64000, 654
To load the code CLEAR 31231 for a 16K or 63999 for a 48K, then LOAD
"" CODE.

I have written a demonstration program which runs through all the
routines with different size boxes to give you some idea of what the
routines can do.

A good idea is to set up the parameters of the box first then load a
Screen$ from a commercial game and finally run a routine to clear part
of the screen. This gives you a very interesting effect, especially
the diagonal scrolls.


**********************************************************************


