   COMPUTING WITH THE AMSTRAD CPC/CPC COMPUTING 10-LINERS AND LISTINGS - 1988
                         Compiled by Nicholas Campbell
   --------------------------------------------------------------------------

This instruction file is broken down into monthly sections. The programs from
January to June 1988 can be found on the file CWT1988A.DSK, the ones from July
to September 1988 are to be found on the file CWT1988B.DSK, and the ones from
October to December 1988 are to be found on the file CWT1988C.DSK. The file
name for each program is written in square brackets, and you can run each
program by typing RUN"filename" at the Ready prompt. A list of all the files on
a .DSK file can be shown by typing CAT at the Ready prompt. My own rating out
of 5 for each program is shown in stars. There are also brief comments on how
to use each program if it is not already explained in the program itself, and
any major changes from the original listing (e.g. bug fixes, error checking)
are also mentioned. I have also made changes to the presentation of several
listings by adding PAPER and PEN commands where necessary, as well as the use
of CALL &BC02 to reset the colours, but such alterations are not mentioned.

A few programs have been omitted because their alleged authors stole someone
else's code and claimed it as their own. This is plagiarism and I do not
condone it.

                                     * * *

                                  January 1988

BIOMORPHS by Christian Pinder [BIOMORPH]                                  *****
-------------------------------------------------------------------------------
This fascinating program demonstrates how natural selection works, and how
lifeforms evolve. All lifeforms contain genes, and this program simulates the
evolution of biomorphs. You start with a biomorph and watch it produce twelve
offspring, each of which has one of its six genes altered slightly. You then
select one of these offspring, and watch it produce twelve offspring which are
based on its genes, and each of these offspring also has one of its genes
altered slightly. You will notice how small mutations in the genes can produce
different biomorphs.

The six genes in each biomorph and their minimum and maximum values are:

0 - depth of recursion (minimum = 1, maximum = 9)
1 - line size (-15, 15)
2 - branching angle (-3.14,3.14)
3 - amount branching angle increases at each branch (-3.14,3.14)
4 - amount colour value increases at each branch (0,1)
5 - displayed colour

Pressing TAB after all twelve offspring have been drawn on the screen lists the
values of five of the six genes (the value of the colour gene is not shown and
does not affect the shape of the biomorph). If you have created a particularly
interesting biomorph, you can use these values again later on.

The menu offers three options. Pressing A uses an alien biomorph with pre-
defined genes; pressing B creates a biomorph with random genes; pressing C lets
you enter your own values for five of the six genes (you cannot select the
colour gene).

This really is a marvellous program, and CWTA CPC even ran a competition,
allowing readers to send in examples of their own biomorphs! If you're
interested, the genes for the winning biomorph are 6, -14, 1.84, 1, and 0.99.

SWAPPER by Andrew MacPhee [SWAPPER]                                         ***
-------------------------------------------------------------------------------
A nice little puzzle game. Enter the filename of a 17K screen to load and see
it being split into 16 pieces and then rearranged. Now you have to put the
screen back to its original state by swapping pieces. On each turn, enter the
two pieces (numbered from 1 to 16) you want to swap, separated by a comma. If
you don't have any screens to load, press RETURN when you are asked for the
filename, and a screen consisting of random lines will be drawn for you
instead. Note that the program does not set the inks - you will have to do this
yourself. You will also need to set the screen mode manually by changing line
10.

KEYBOARD 10-LINER by David Bozon [KEYBOARD]                                ****
-------------------------------------------------------------------------------
Turn your CPC's keyboard into a piano and play some tunes. Press the keys shown
below the piano keys on the screen to see which key on the keyboard corresponds
to which note. You'll also see the note being highlighted on the screen. You
might want to try some of these tunes (sent in by a CWTA CPC reader):

Happy Birthday
ZZXZVC ZZXZBV
ZZNVVCX MMNVBV

Oh Susanna
ZXCBB NBCZ XCCXZX
ZXCBB NBCZ XCCXXZ
VVV NNN BBCZX
ZXCBBNBCZ XCCXXZ

Twinkle, Twinkle, Little Star
ZZBBNNB VVCCXXZ
ZZBBNNB VVCCXXZ
BBVVCCX BBVVCCX
ZZBBNNB VVCCXXZ

Jingle Bells
CCC CCC CBZXC
VVV VVCC CCCXXCX B
CCC CCC CBZXC
VVV VVCC CCBBVXZ

London Bridge
BNBVCVB XCV CVB
BNBVCVB XBCXZ

SCROLLING SCENERY by Andrew Wyatt [SCROLLIN]                                ***
-------------------------------------------------------------------------------
A nice graphic demo which uses palette switching to achieve animation. The 3D
effect is quite striking.

SING ALONGA CPC by Jessica O'Donovan [SINGALON]                            ****
-------------------------------------------------------------------------------
Apparently, Jessica is only seven years old! Although she did get help from her
brother Alex (although how much help is unknown), it's a very impressive
program. It plays a very groovy bit of music which lasts 45 seconds and then
repeats, and it's well worth listening to.

HIGHLIGHTER by Brendan Newbanks [HIGHLIGH]                                  ***
-------------------------------------------------------------------------------
A routine to use in your own programs, which draws an outline around text to
make it look fancier. There is a demonstration included with the program,
although it only works properly in MODE 1. a$ contains the text to display, x
and y are the screen coordinates, and s and t are the pen colours to draw the
shadow and the text with.

SAVE SANTA! by Tiffany Wood [SAVESANT]                                     ****
-------------------------------------------------------------------------------
It's Christmas Eve, and Santa's warehouse has been invaded by nasties from a
crate of video games that the elves dropped! Santa must collect presents from
ten rooms in the warehouse and clear each room of nasties, by shooting them
with snowballs. There are also fires in each warehouse which must also be
avoided. It's quite a tough game and it can be frustrating, as it's a bit
awkward to fire snowballs in the right direction and the number of nasties can
be overwhelming. It's still good, though, and the graphics are nice as well.
Wait 7 seconds for the program to set up.

Keys: Cursor keys or joystick - move, SPACE, Fire - fire snowball.

SOLISQUARE by Willie Lawrie [SOLISQUA]                                     ****
-------------------------------------------------------------------------------
A clever little board game here. Try and get all the tiles on a 3x3 grid to
match a target pattern on each of the three levels. This is done by swapping
the colours of the tiles. Selecting any of the tiles changes its colour and
also changes the colour of neighbouring tiles from black to orange, or vice
versa. However, you can only select a tile if it is black, so if you turn all
the tiles orange, you've lost! It's definitely not as easy as it seems - even
the first level has left me baffled - and there's a time limit as well!

Keys: 1-9 - change colours of tiles.

PATTERN FILL by Ian C. Sharpe [PATTFILL, PATTDES]                           ***
-------------------------------------------------------------------------------
The standard FILL routine supplied with BASIC 1.1 doesn't allow you to fill
areas using a pattern, but here's a routine which does just this. Run it, use
the MOVE command to select the position where you want to start filling an
area, and type CALL &9000,w,h,@a$. The fill pattern is actually supplied as a
string (a$), which tells the routine which ink to fill each pixel, while w and
h specify the width and height of the pattern.

To specify the fill pattern in the string, use the numbers 0 to 9 to represent
inks 0 to 9, and the letters A to F to represent inks 10 to 15 (if you are
using MODE 0 for your pattern). There is a pattern designer included which
lets you design a fill pattern and save it as a small BASIC program. The file
contains the string that you need to use in the fill routine, and the width
and height of the pattern. To use it, design your pattern and press TAB once.
Now move the crosshairs in order to specify the width and height of the
pattern that you have designed, and press TAB again. The program will then ask
you for the name of the string (e.g. a$), the number of the line which
contains the string (e.g. 10), and the name of the file to save. 

Keys: Cursor keys - move cursor, SPACE - plot pixel, SHIFT+cursor up/down -
select ink, TAB - go to next stage.
 
                                     * * *

                                 February 1988

KNIGHT by Jordi Domenech [KNIGHT]                                            **
-------------------------------------------------------------------------------
Did you know that it is possible for the knight to move through all 64 squares
on a chess board without moving on to any square more than once? This program
shows how it's done, and even more amazingly, you can place the knight on any
square and the program will calculate the route to take. Enter the square to
start on (from 0 to 63 - 0 is the bottom left square, 63 is the top right) and
watch the program do the rest.

SOUND PROGRAMMING by Alex O'Donovan [SOUNDPRO]                             ****
-------------------------------------------------------------------------------
Another excellent piece of music lasting 1 minute and 45 seconds before
repeating itself. How is it that music this good can fit into ten lines of
BASIC?

ROAD HOG by Bill Hamley [ROADHOG]                                             *
-------------------------------------------------------------------------------
Manoeuvre the smiling face (which is supposed to represent a car) along the
twisting road and see how long you can survive without crashing off the road or
into the obstacles on the road. The graphics are awful and the game is rather
boring.

Keys: Cursor keys.

PERMSORT by Alan Smith [PERMSORT]                                           ***
-------------------------------------------------------------------------------
This clever program finds all the possible letter permutations of a word, which
may be useful for anagram and crossword puzzle solvers. Enter a word and it
lists all the anagrams of it. Note that if any letters occur more than once,
you should enter the repeating letters next to each other e.g. 'that' should be
entered as 'ttha'. This prevents the same permutations appearing more than once
in the list.

QUICK DRAGONS by Martin Wielgus [DRAGON]                                    ***
-------------------------------------------------------------------------------
Dragon curves are great, but they can take a long time to draw. Thankfully,
this one is small and fast. Enter a step size, to determine how large the
dragon curve will be, and watch it being drawn.

TURBOTEXT by Chris Nixon [TURBOTEX]                                          **
-------------------------------------------------------------------------------
The CPC is fairly good at handling text, but it can be a bit slow at printing
text to the screen. This program allows you to increase the speed at which text
is printed. It is claimed that displaying text is 44% faster in MODE 0, 67%
faster in MODE 1, and 87% faster in MODE 2. When the program is run, it sets up
two RSXs, |TURBO and |NORMAL, which should be self-explanatory. Unfortunately,
the program isn't quite as useful as it could be - characters start to go
missing when the screen scrolls in MODEs 1 and 2. It's a shame, because this
routine would otherwise be quite useful. Wait 9 seconds for the program to set
up.
           
MICRO-WHIST by Roland A. Waddilove [WHIST]                                 ****
-------------------------------------------------------------------------------
This is a simulation of the popular card game, whist. You play against the
computer. In each round, both players are dealt nine cards and take turns to
play a card. The winner of the previous round also chooses a trump suit; cards
belonging to this suit are known as trump cards. The aim is to win more tricks
than your opponent in each round, and the first player to win five rounds wins
the game.

When a player plays a card, the other player must play a card of the same suit.
The player with the card of the highest value wins a trick. If a player does
not have any cards of the same suit, then any card can be played. If a trump
card is played, that player wins a trick; if you don't have any trump cards,
the other player wins a trick. Therefore, keep your trump cards available if
possible! The rules may seem complicated, but they're not, and you'll get the
hang of the game after a few goes. The graphics are pretty good (although I
don't like the bright green colour) and it's a fun game to play. Wait a few
seconds for the program to set up.

Keys: A-I - select card.

THE GRIM MARSHES by Clive Gifford [GRIMMARS]                               ****
-------------------------------------------------------------------------------
You have been kidnapped, robbed, beaten and left for dead by armed raiders. But
you are in the Grim Marshes, and you've got less than an hour to escape before
you succumb to your injuries and become a victim of the Grim Marshes. This is a
very small and compact text adventure with only 25 rooms and eight commands,
but it's still fun to play. The commands available are NORTH, SOUTH, EAST,
WEST (you can't enter N, S, E and W), TIME, TAKE, WEAR and CLIMB. Due to the
program's simplicity, when you enter TAKE, you take all of the objects in the
room! But enjoy it, anyway.

The original listing contained a large number of errors, but I have fixed all
of them.

SCREEN DUMP FOR KDS 8 BIT PRINTER PORT by Ian C. Sharpe [KDUMP] - BASIC     ***
1.1
-------------------------------------------------------------------------------
This program creates an RSX called |KDUMP, which prints a copy of the current
screen to the printer using KDS's 8-bit printer port. You need to run KDS's own
initialisation program, and then run this program. By default, the RSX is
designed for printers which use ESC+K to switch to bit image printing, but if
you change the CALL &9000 in line 150 to CALL &9000,1, the RSX will work with
Epson-compatible printers.

PROTEXT CAPS LOCK INDICATOR [PROTCAPS]                                      ***
-------------------------------------------------------------------------------
When you use Protext, the current state of the CAPS LOCK key is shown in the
top right of the screen. This little routine also changes the colour of the
border to make it more obvious whether caps lock mode is on or off.

                                     * * *

                                   March 1988

NOTE: A 10-liner called Spiral by Michael Wilcox, which was published in this
issue, is a version of a program in the CPC manual, so it's not on the disc.

MELTDOWN by Robin Nixon [MELTDOWN]                                         ****
-------------------------------------------------------------------------------
This is a board game for two players which is played on a 10 x 10 grid. Each
player takes turns to place a counter either on an empty square or a square
which is already occupied. Up to three counters can be placed on a square; any
more and the square explodes and the counters are moved on to the four adjacent
squares. The adjacent squares in turn may contain too many counters and they
will also explode, causing a chain reaction to occur. The aim is to remove all
of your opponent's counters from the board - any of your opponent's counters
which are adjacent to an exploding square will be removed. However, once the
game starts going, both players will have too many counters on the board for
this to be feasible, and games can last for an eternity. The presentation is
nice, especially the isometric view of the board, but it can be rather
difficult to work out which square you want to place a counter on.

PIXELATOR by Robin Nixon [PIXEL]                                          *****
-------------------------------------------------------------------------------
A great utility which allows you to edit MODE 0 screens, pixel by pixel. The
BASIC program saves a binary file called PIXEL.BIN which is located at &8000.
To use the actual utility, load the screen you wish to edit at &4000, and then
load PIXEL.BIN at &8000, like this:

MODE 0:MEMORY &3FFF:LOAD"filename.scr",&4000:LOAD"pixel.bin",&8000:CALL &8000

When editing a screen, part of it will be shown on a magnifying glass, through
which all editing occurs. You can move the section of the screen being edited,
and the position of the magnifying glass can also be moved if it's sitting on
top of the section of the screen that you are editing, so that you can see the
results. It's also possible to change the inks from a menu and save the
final screen. It's a really neat utility if you need to do this sort of precise
editing, although it's a shame it only works with MODE 0 screens.

Keys: Main menu: TAB - Go to editing mode, I - change an ink, L - load screen,
S - save screen, ESC - return to BASIC; Ink selection: cursor up - next colour,
cursor down - previous colour, cursor left - first colour (black), cursor right
- last colour (bright white), RETURN - select colour; Editing: cursor keys -
move cursor, SHIFT+cursor keys - select area of screen within magnifying glass,
CONTROL+cursor keys - move magnifying glass, COPY+cursor keys - select inks,
TAB - return to main menu, CLR - hide magnifying glass, SPACE - change pixel,
ESC - return to BASIC.

The original listing contained an error which was pointed out by a reader in
the June 1988 issue of CWTA CPC. I have fixed this error.

CLEAR SCREEN ROUTINE [CLS]                                                  ***
-------------------------------------------------------------------------------
A short machine code routine which clears the screen more than three times
faster than BASIC's CLS command. It installs itself just below HIMEM and it'll
tell you what you need to type in to use it. You might find it useful in your
own programs.

TEXTDUMP by Angus Lear [TEXTDUMP]                                            **
-------------------------------------------------------------------------------
A short program which takes the current text on the screen and outputs it to
the printer. Just type CALL &A000 to make a hard copy of the screen.

A correction for this listing appeared in the July 1988 issue of CWTA CPC, and
I have amended the listing accordingly.

CALCULATOR by David Bozon [CALCULAT]                                       ****
-------------------------------------------------------------------------------
A nice and well presented program which turns your CPC into a basic calculator
with the ability to add, subtract, multiply and divide numbers. It also does
something that most calculators cannot do - it displays the time! When you
first run the program, it will ask you for the time, and you should enter it
in the format HH:MM, where HH is the hours (from 1 to 12), and MM is the
minutes. It looks great and is fun to play with for a while, but you'll
eventually realise that it's rather tricky to use.

The original listing lacked some error-checking routines, but I have added
some.

TRENCH DIGGER by D. Wilkes [TRENCH]                                         ***
-------------------------------------------------------------------------------
Guide your trench digger around the maze and avoid crashing into the walls or
into your own tail. Basically, it's like Tron, but you're on your own and the
aim is to survive for as long as possible! A high score is kept as well. Wait a
few seconds for the program to set up.

Keys: Cursor keys.

                                     * * *

                                   April 1988

NOTE: A 10-liner called Grapics by Salim Benadel, which was published in this
issue, is a version of a program in the CPC manual (the same one that Spiral,
in the previous issue of CWTA CPC, was based on!), so it's not on the disc.

DISC LIBRARY by Vesa Polkki [DISCLIB]                                       ***
-------------------------------------------------------------------------------
Have you ever had trouble recalling which disc that file is on? This utility
should help you. It reads your disc catalogues and stores them in a database.
You can then search the entire database for a file, erase files with a certain
extension from the database, or print out the database to either the screen or
the printer. The program can apparently store nearly 1000 files - if you need
more, you're going to have to work with more than one file, but this shouldn't
be a big problem. It's a reasonably good utility, but there are disadvantages;
the search option doesn't allow wildcard characters (i.e. * and ?), hidden
files aren't stored in the database, and if you have two disc drives, you can't
choose which drive to read a catalogue from.

A correction for this listing appeared in the May 1988 issue of CWTA CPC, and I
have amended the listing accordingly.

CUBE WARS by Johnathan Pugh [CUBEWARS]                                    *****
-------------------------------------------------------------------------------
A version of the classic Q*Bert, where as the sole ruler of five planetoids in
another dimension, you must paint the cubes that make up each planetoid from
blue to yellow. However, there is a green monster, or a thingy as it's also
known, which also wanders the planetoid. Also be careful not to fall over the
edge. When you have completed the fifth level, you return to the first one. An
addictive and fun game which isn't too difficult, although the keyboard is
sometimes unresponsive. Wait 12 seconds for the program to set up.

Keys: Q - up/left, R - up/right, Z - down/left, C - down/right, or joystick,
P - pause, SPACE - resume, M - turn sound effects on/off.

DISC FILE HEADER READER by Simon Mugan [DISCREAD]                           ***
-------------------------------------------------------------------------------
A useful utility which reads the headers of all the files on a disc and tells
you information about them - their file types (BASIC, binary, ASCII etc.),
start addresses, lengths, whether they're protected or not, and their entry
addresses if they have one. It can also send the information to the printer.

INTERRUPT SCROLLER by Jakob Givoni [INTSCROL]                                **
-------------------------------------------------------------------------------
As the name suggests, this program displays a scrolling message along the
bottom of the screen, but it allows you to carry on working with the computer
while it's running. Unfortunately, it's not all that good; the scrolling is
very flickery, it behaves oddly when text scrolls off the bottom of the screen,
and it only works properly in MODE 1. You can stop the scrolling by typing CALL
40082, and start it again by typing CALL 40000.

SUPERSHIFT TYPING AID FOR PROTEXT by Chris Nixon [SUPERSHI]                ****
-------------------------------------------------------------------------------
It is possible to customise Protext with extra features by writing your own
RSXs, and this is one such feature. It's a typing aid which sets up two RSXs,
|SON and |SOFF, to enable and disable the feature. When you enable Supershift,
if you type a punctuation character such as a full stop, comma, exclamation
mark or question mark while you are using Protext, a space is automatically
inserted. In addition, if you type a full stop, the next letter you type will
automatically be entered in upper case without you needing to use the SHIFT
key. It takes some time to adjust your habits to use Supershift properly, and
in fact, it was actually designed for people with impaired typing ability who
find word processing a slow task. Other people may find it useful, although one
quibble of mine is that it doesn't automatically capitalise letters after
exclamation marks or question marks. Wait a few seconds for the program to set
up.

                                     * * *

                                    May 1988

MENACE OF THE ATOM MONSTER by Clive Gifford [MENACE]                       ****
-------------------------------------------------------------------------------
A worker at a military research establishment has stolen a plutonium fuel cell.
He took it home and he has turned into a demented monster. You go to his house,
and as you enter, the doors shut and you cannot leave. You are alone with the
Atom Monster... This is a another mini-text adventure with 16 locations. Your
task is to find the former worker and destroy him, but he moves about the house
pursuing you! There are only eleven commands and eight objects, but it's
surprisingly good considering the program's small size. The commands available
are NORTH, SOUTH, EAST, WEST (you can't enter N, S, E and W), TAKE, DROP, OPEN,
UNLOCK, WEAR, FIGHT and KILL.

CAVERNS by W. Booth [CAVERNS]                                             *****
-------------------------------------------------------------------------------
Negotiate your ship through the cavern without crashing into the walls, or the
game ends. The caverns are narrow in places, and to make things more difficult,
the controls are reversed, so that when you press the up key, for example, you
actually move downwards. The collision detection isn't great but it's still an
excellent game for ten lines of BASIC, and it's also one of those games where
you always want to have one more go!

Keys: Cursor keys or joystick.

BEAT by Graham Read [BEAT]                                                  ***
-------------------------------------------------------------------------------
Following on from Alex O'Donovan's little tunes, here's one by someone else. It
seems to be a reworking of Alex's Muzakology tune in the November 1987 issue of
CWTA CPC, but this version sounds rather out of tune and isn't as good as
Alex's other tunes.

TELSTAR by Jostein Rortveit [TELSTAR]                                       ***
-------------------------------------------------------------------------------
The classic Telstar tune is reproduced in this program - well, 20 seconds of
it, anyway. It also draws a star on the screen to accompany it.

FASTFORM by Ian C. Sharpe [FORMDATA, FORMAT]                                ***
-------------------------------------------------------------------------------
Two RSXs to format discs to data format quickly. The first program
(FORMDATA.BAS) generates the machine code for the RSXs and saves it to disc as
FORMAT.BIN. The second program (FORMAT.BAS) loads this file and initialises the
RSXs. Type |FORMAT,0 to format a disc in drive A, and |FORMAT,1 to format a
disc in drive B. The other RSX is |VERIFY, which checks that there are no
corrupted sectors on the disc after you've formatted it. Type |VERIFY,0 to
verify a disc in drive A, and |VERIFY,1 to verify a disc in drive B.

MULTIDUMP by Ian C. Sharpe [MULTIDUM]                                      ****
-------------------------------------------------------------------------------
An RSX that allows you to print screen dumps to your printer in monochrome. To
use it, type |MULTIDUMP,size,colour. size is a number from 1 to 3 - 1 prints a
small screen, and 3 prints a large screen. colour represents the ink number
that you wish to use as the background colour; this is usually 0. This ink will
be left as white when the screen is printed. There is also another RSX,
|MCONFIG, which allows the program to work with some printers which are not
Epson-compatible. Wait 10 seconds for the program to set up.

DATA LOADER GENERATOR by Ian C. Sharpe [DATALOAD]                           ***
-------------------------------------------------------------------------------
A program that converts machine code to DATA statements and writes a loader to
set the code up, in the format used by CWTA CPC. You need to load the binary
file containing the machine code before running this program. It will ask you
for the start and end addresses of the code, the number of the first line of
the BASIC program that will be generated, the line increment (usually 10), and
the name of the file to save the BASIC program to.

STOP PRESS CONVERSION by John Blessing [CONVDATA, CONVERT]                 ****
-------------------------------------------------------------------------------
This is an improved version of a utility that appeared in the October 1987
issue of CWTA CPC. It is a replacement for Stop Press' print function, which
can take over half an hour even in draft mode and over one hour for standard
quality printing if you are using a dot matrix printer! This program reduces
that time quite considerably, and it also improves on the original version in
that it can now print properly with a greater variety of printers which use
1280 bits in graphics mode instead of 960 bits.

The first program (CONVDATA.BAS) generates the machine code for the main
program and saves it to disc as CONVERT.BIN. The second program (CONVERT.BAS)
is the main program which uses the printing routine.

SCRAMBLE by Paul Robson [SCRAMBLE]                                         ****
-------------------------------------------------------------------------------
A taxing puzzle game where you must position all the symbols correctly on a 5x5
grid by pushing rows and columns. There are five types of symbols, and each
type of symbol is a different colour. You must position the symbols in the rows
corresponding to their colour, which is shown by the triangles on the right of
the screen. At the start of the game, one symbol is removed to leave a gap.
However, there are some restrictions in the way you can move rows and columns.
On level 1, the outer rows and columns can be moved freely, but the three inner
rows and columns can only be moved if they contain the gap. On level 2,
movement of the inner rows and columns becomes even more restricted. It's very
difficult even on level 1, but apparently it can be done.

Keys: Cursor keys or joystick - move cursors, SPACE, Fire - push column/row.

SCREEN COPIER [SCRCOPY]                                                      **
-------------------------------------------------------------------------------
A very small machine code routine that stores screens in another area of
memory. Type CALL &100 to store a screen and CALL &10C to recall the stored
screen. Unfortunately, its location means that it may be overwritten while a
BASIC program is running!

                                     * * *

                                   June 1988

WAVES by John Carpenter [WAVES]                                            ****
-------------------------------------------------------------------------------
A beautiful graphic demo that draws a multi-coloured 3D shape on the screen.
It takes 7 minutes and 48 seconds to draw but it's well worth seeing.

REACTION TESTER by Sue Howe [REACTION]                                       **
-------------------------------------------------------------------------------
See how quick your reflexes are. As soon as the penny starts to drop, press the
SPACE bar. The further down the column it falls, the slower your reflexes are.
It isn't possible to cheat by holding down the SPACE bar before the penny
drops, by the way. Not a bad game, but it's too hard; I can't beat a rating of
"Wake up!" and I reckon my reflexes are pretty good.

Keys: SPACE.

FIT TO DRIVE? by David Bird [FITDRIVE]                                      ***
-------------------------------------------------------------------------------
Another test, this time of your sobriety. A star wanders about the screen, and
you have to position the crosshairs on it or close to it, and do this for three
minutes. It's easy at first, since the star doesn't move much, but as time
ticks away, its movement becomes increasingly erratic, and positioning the
crosshairs correctly therefore becomes trickier.

Keys: Cursor keys.

ICBM DEFENDER by Robin Nixon [ICBMDEF]                                       **
-------------------------------------------------------------------------------
A malfunction in a military computer in a hostile country has sent a wave of
intercontinental ballistic missiles (ICBMs) hurtling towards the USA and
Canada. 18 cities are under attack. Each wave of ICBMs consists of 18 missiles
which start at the right of the screen and fly towards the left. Each missile
will destroy one city. Destroying all the missiles in a wave produces another
faster wave, so the game never ends. A rather poor game with minimal graphics
and sound effects; the missiles take a long time to traverse the screen and
the game is dull as a result.

Keys: SPACE - position cursors.

BASIC LINE MOVER by Ian C. Sharpe [LMOVE]                                   ***
-------------------------------------------------------------------------------
An RSX which, as the name suggests, moves lines from one position to another in
your BASIC programs. Normally if you want to rearrange a BASIC program, you
have to re-enter the appropriate lines manually, or use the copy cursor, and
both methods take time. This RSX does it all automatically. To use it, type
|LMOVE,first,last,before. first and last are the first and last line numbers of
the block of lines to move. The block is moved just before the line number
specified by before. You will need to renumber the lines in your program using
the RENUM command, but this RSX should save you some time and effort. Wait a
few seconds for the program to set up.

BASIC LINE WRAPPER by Ian C. Sharpe [LINEWRAP]                                *
-------------------------------------------------------------------------------
This program was designed for people who edit BASIC programs in Tasword, which
can't handle lines over about 120 characters long. This program splits long
lines over several lines and saves the file as TEMP, which can then be loaded
into Tasword and edited. When you've finished editing, the lines in the TEMP
file can be joined together again. Personally, I don't see much use in this
program, and I don't see why editing a BASIC program in Tasword is convenient.

MULTIFACE 2 SCREEN LOADER by Ian C. Sharpe [MFLOAD]                           *
-------------------------------------------------------------------------------
This RSX allows you to load screens saved with the Multiface from BASIC, and to
extract the inks and mode into variables and arrays. The RSX is used as
follows:

f$="filename.bin":DIM i%(16):m%=0:|MFLOAD,@f$,@i%(0),@m%

This loads the file specified in f$, and extracts the inks into the array i%,
and the mode into the variable m%. Unfortunately, there is a big disadvantage;
it's designed to work with old versions of the Multiface, which use a different
loader to newer versions (which I own) - so it's not of much use to me. It
would be much more useful if the RSX worked with all versions.

SORTING ALGORITHMS by Simon Monk & Sue Bradshaw [SORTTEST, SELSORT,         ***
INSSORT]
-------------------------------------------------------------------------------
These programs are part of a series on sorting data. There are two sorting
algorithms in this part - selection sort (SELSORT.BAS) and insertion sort
(INSSORT.BAS). The SORTTEST.BAS program contains a routine to test the speed of
each of these algorithms, using anywhere between 2 and 10,000 numbers. To use
it, first type LOAD"SORTTEST" to load the testing routine, then type
MERGE"SELSORT" or MERGE"INSSORT" to merge the appropriate sorting algorithm
with the testing routine. If you experiment with both algorithms, you'll
discover that insertion sort is quicker than selection sort, especially when
you're sorting large amounts of data. However, even in BASIC, both algorithms
are slow when you try to sort about 50 items or more.

                                     * * *

                                   July 1988

CODEMASTER by R. Jackson [CODEMAST]                                         ***
-------------------------------------------------------------------------------
A version of Mastermind using coloured counters instead of numbers. You have
ten attempts to guess the correct sequence of counters. You will then be told
how many counters are in the correct position (represented by black circles),
and how many counters are in the wrong position (represented by white circles).
Unlike most versions of Mastermind, however, you aren't told which counters
correspond to the black and white circles, which makes the game a lot harder.
There are four levels of difficulty; level 1 uses six counters, and level 4
uses nine counters. Successfully guessing the correct sequence takes you to the
next level. A reasonably good test of logical thinking which may be slightly
too difficult for some, and the presentation could be a lot better; the
extensive use of cyan looks horrible.

Keys: Cursor keys - move cursor, 1-9 - select counter, RETURN - confirm choice
of counters.

SIMON by Alistair Young [SIMON]                                             ***
-------------------------------------------------------------------------------
The memory game in ten lines. Watch the sequence of circles light up, complete
with sound effects, and then try to recall the sequence from memory - OK for a
while.

Keys: Cursor keys.

SPACE ATTACK by Stephen McCormick [SPACEATT]                                ***
-------------------------------------------------------------------------------
Guide your spacecraft through space, dodging aliens and bombs and collecting
the stranded humans. A simple game with fast scrolling which is fun at first,
but is too easy.

Keys: Z - left, M - right, or joystick.

MENUETTO IN F MAJOR by Alistair Young [MENUETTO]                            ***
-------------------------------------------------------------------------------
Listen to one of Handel's compositions recreated on your CPC. You can alter the
speed of the tune by changing the value of c in line 20, and if you want a
different sound, change ev from 0 to 1.

A correction for this listing appeared in the September 1988 issue of CPC
Computing, and I have amended the listing accordingly.

WALKER by Alistair Young [WALKER]                                          ****
-------------------------------------------------------------------------------
A neat puzzle game where you must draw a line around a pattern without drawing
over a line twice. You begin each level by selecting an appropriate starting
position, and then draw the line over the pattern which is already marked out.
The first few levels are easy, and while they do become more difficult as you
progress (there are eight levels in total), I didn't have too much trouble
completing all of them. It's still quite a clever game, though.

Keys: N - up, S - down, W - left, E - right, SPACE - select starting position.

SORTING ALGORITHMS by Simon Monk & Sue Bradshaw [SORTTEST, BUBBSORT,        ***
QUICSORT, SHELSORT]
-------------------------------------------------------------------------------
The second part of the series on sorting data offers three more sorting
algorithms - bubble sort (BUBBSORT.BAS), quick sort (QUICSORT.BAS) and shell
sort (SHELSORT.BAS). As before, load the SORTTEST.BAS program first and then
type MERGE"BUBBSORT", MERGE"QUICSORT" or MERGE"SHELSORT" to merge the
appropriate sorting algorithm with the testing routine. You'll discover that
bubble sort is much slower than the other two algorithms, while quick sort and
shell sort are faster than both selection sort and insertion sort (which were
the algorithms featured in the first part).

So which algorithm should you use? Bubble sort is easy to program but is only
useful with five items of data or less; it's too slow if you have more than
this. Selection sort and insertion sort are best if you have between five and
25 items of data. More than this, and you should use shell sort or quick sort.
Shell sort is easier to program than quick sort and isn't much slower when you
are sorting between 25 and 100 items of data. If you have more than 100 items
of data, then quick sort is the one to use.

NEWMARKET by Steve Bissell [NEWMARK]                                      *****
-------------------------------------------------------------------------------
An adaptation of a popular card game, also known as Michigan in America. This
is a four-player game where you play three computer opponents. Each game can
last from anywhere between 15 minutes and two hours, and you can decide the
time period before starting a game. At the start of each game, one player is
chosen at random to shuffle and deal the cards. In each round, the players are
dealt either 10 or 11 cards each, although there is no advantage in having more
or fewer cards. This player starts the first round. There is also a 'dummy
hand' of 10 cards. Each player is asked in turn if he/she wants to buy the
dummy hand for 5. If you choose to do so, your cards are replaced with those
from the dummy hand. You have the option of seeing your cards before choosing
to buy the dummy hand. The money spent on the dummy hand goes into the kitty.

Before each round, all the players place 5 into the kitty, and another 5 on
one of four picture cards from another pack - the Ace of Hearts, the King of
Spades, the Jack of Diamonds, and the Queen of Clubs. Play now commences, with
the first player choosing his/her lowest red card (Diamonds or Hearts). Any
player who has the following card in the same suit must play it. If no one has
the following card, then the last player to play now plays his/her lowest black
card (Clubs or Spades), and play continues in the same way until no one has the
following black card. Play will then continue using the lowest red card. If the
player does not have any red cards, then the next player must play his/her
lowest red card. If there are no more red cards, the round is over and a new
round is started, with all the money left in the kitty. These rules also apply
to black cards.

If any player plays one of the four picture cards, he/she wins all the money
bet on that card. The first player to use all of his/her cards wins the money
in the kitty. However, any money bet on the picture cards remains there for the
next round. When the time limit expires, the overall winner is the player with
the most money.

It all sounds complicated, but once you start playing it, you should understand
the rules quite quickly. It's a fun card game to play, even though the computer
players seem to have an unfair advantage! The game is very well presented with
good graphics and some sound effects as well.

Keys: A, J, K, Q - select picture card, cursor keys - select card to play,
SPACE - play card.

LETTERHEAD DESIGNER by Chris Nixon [LETTDES]                              *****
-------------------------------------------------------------------------------
Make your letters look nicer by designing letter heads for them. This drawing
package lets you draw lines and boxes, and write text in five different styles.
The results can then be printed out using any Epson-compatible printer. When
the program has set up, a screen appears with fourteen icons at the bottom.
Starting from the top left, they are:

Move cursor - move the cursor to a specific position on the screen; enter the
x- and y-coordinates, separated by a comma
Draw - move the cursor using the cursor keys, and draw lines using the SPACE
bar for ink 0 and DEL for ink 1; you can also plot dots using this option
Rubber - erase a rectangular section of the screen
Draw line - draw a line
Draw box - draw either an outline of a box, or a filled box, depending on the
setting of the box type icon
Write text - write text in the currently selected font; enter the text first
and then move the rectangle to the desired position
Camera - copy a rectangular area of the screen to another area; there may be
problems copying if the two areas overlap each other
Save design - save the current screen to cassette or disc
Load design - load a screen from cassette or disc
Print design - print the design to the printer
Font - select the font to write text in (1 = normal, 2 = faint, 3 = bold, 4 =
italic, 5 = double height); the selected font is displayed in the icon
Drawing mode - toggle the drawing mode (OVER/XOR); if XOR is selected, lines,
boxes and text appear in inverse colours
Cursor speed - toggle the cursor speed (slow/fast); two arrows in the icon
represents slow speed, and four arrows represents fast speed
Box type - toggle the box type (outline/filled)

Not every conceivable function is available, but this should be enough to allow
you to create some fairly nice letter heads. Wait 33 seconds for the program to
set up.

Keys: Cursor keys - move cursor, COPY, Fire - select.

The original listing lacked some error-checking routines, but I have added
some.

                                     * * *

                                  August 1988

LUCAS' PROBLEM by Henry Watton [LUCASPRO]                                   ***
-------------------------------------------------------------------------------
This is an ancient yet intriguing puzzle. Nine squares are lined up in a row.
The four squares on the left contain blue counters, and the four squares on the
right contain red counters. The aim is to move all the blue counters to the
right, and all the red counters to the left. The blue counters can only move
right, and the red counters can only move left. You can move a counter if there
is an empty space next to it, or you can jump over another counter into an
empty space.

Keys: 1-9 - move counter, 0 - restart.

The original listing lacked some error-checking routines, but I have added
some.

THE SNAKE by John Dawson [SNAKE]                                            ***
-------------------------------------------------------------------------------
Watch the snake slither around the screen, bumping into the blocks as it
moves. A fairly interesting graphic demo to watch, although it isn't possible
to control the snake yourself.

CECIL THE CENTIPEDE by Simon Mathews [CECIL]                                ***
-------------------------------------------------------------------------------
Guide Cecil around the Megacarats mine, collecting 150 diamonds while avoiding
the poisonous fungi and his own tail, or the game is over. The mine contains
200 diamonds, so you can avoid the harder ones. Cecil moves a bit slowly, but
despite this, it isn't as easy to collect all those diamonds as you might
think.

Keys: Z - left, X - right, K - up, M - down.

BOX CLEVER by Karen Jackson [BOXCLEV]                                       ***
-------------------------------------------------------------------------------
Place nine randomly chosen numbers in nine boxes so that they are in ascending
order. The catch is that each number appears one at a time, so you don't know
which numbers are coming next. Furthermore, you can't move numbers after
you've placed them. When you've placed all the numbers, you'll get a score
from 1 to 10; if you have somehow managed to place all the numbers in the
correct order, you score a bonus point. It's such a simple concept for a game
and yet it's fun to play.

Keys: 1-9 - select box.

The original listing lacked some error-checking routines, but I have added
some.

3D ANIMATED GRAPHICS by Ian C. Sharpe [3DANIMAT]                          *****
-------------------------------------------------------------------------------
Inspired by the John Carpenter's Waves 10-liner in the June 1988 issue of CWTA
CPC, Ian improves on the routine by adding eight frames of animation to it, and
including another animation using a wave-like formation of beads. It takes a
lot of time to draw the animations (the wave animation takes 1 hour and 4
minutes to draw, and the bead animation takes 5 minutes and 29 seconds) and the
resulting frames use a huge amount of memory (both animations occupy 32K of
memory each!), but fortunately, you can save the animations to cassette or disc
so you don't have to redraw them every time. (I have included both of these
files on the disc; the filenames are WAVES.BIN and BEADS.BIN.) The bead
animation is OK, but the wave animation is very impressive indeed.

SCREEN COPIER AND INK SAVER by Ian C. Sharpe [SCRCOPY2]                     ***
-------------------------------------------------------------------------------
An improved version of an earlier screen copying routine. In addition to
providing machine code routines to store and display screens, there are also
routines to save the current inks, and to set the inks to specified colours.
Type CALL &100 to save the current screen and CALL &10C to recall it.
CALL &118,address saves the current inks to an address in memory, and
CALL &132,address sets the inks to the colours stored at an address in memory.

MACHINE CODE SHELL SORT by Mike Mee [MCSHSORT]                             ****
-------------------------------------------------------------------------------
After the various number sorting algorithms featured in the previous two parts
of the series, here is an ultra-fast machine code shell sorting routine which
sorts arrays of strings in either ascending or descending order. It also has
the advantage of being relocatable, so the routine can be placed anywhere
suitable in memory. To use it, type:

CALL sort,sort,order,@array$(0),size-1

where sort is the start address of the code, order is 56 for ascending order
and 48 for descending order, array$ is the array containing the strings to
sort, and size is the size of the array. It's a very user-unfriendly way to use
the routine in my opinion, but this is offset by the speed at which it sorts.
There's a demonstration included to show you how to use it.

HOUSE OF SPIDERS by Johnathan Pugh [SPIDERS]                              *****
-------------------------------------------------------------------------------
You have broken into a house looking for some gems, but it turns out to be full
of spiders - and very large spiders at that! This is a nice platform game with
six levels. You must collect all the gems on each level and use the lifts to
access platforms. Being caught by a spider loses one of your three lives, and
you will also lose a life if you fall too far or are crushed by a lift. This is
another very playable game form Johnathan with good graphics, although once
again, the music and sound effects are terrible!

Keys: Z - left, C - right, P - pause, SPACE - resume.

                                     * * *

                                 September 1988

EXTRA FONTS by Chris Nixon [EXTRAFON]                                      ****
-------------------------------------------------------------------------------
Several font styles to change the appearance of your text. |BOLD changes text
to bold, |ITALIC changes text to italic, |UNDER underlines text, |FEINT causes
text to appear faint and fuzzy, and |NORMAL returns text to its normal style. A
very useful set of RSXs indeed, although it should be noted that it doesn't
work with text printed after using the TAG command. Wait a few seconds for the
program to set up.

SURAKARTA by Paul Robson [SURAKART]                                        ****
-------------------------------------------------------------------------------
A two-player version of a board game that originated in Java, an island of
Indonesia. The game is played on a 6x6 grid, and each player has twelve
counters. Before the game starts, you are asked how many counters remain on the
board in order for a player to win, and how many rounds there will be. A
counter can move horizontally, vertically or diagonally by one square, but
capturing your opponent's counters is done very differently. You can't capture
a counter by moving directly on to it or jumping over it. Instead, you move the
counter along one of the eight yellow lines that run outside the grid. The
counter travels along this line until it encounters an opponent's counter, and
it will then be captured. It's even possible for a counter to work its way
along more than one line and go around most of the board under the right
circumstances! The game combines the simplicity of draughts with the strategy
and thinking that is required of chess. It's a shame that there is no computer
opponent to play against, though.

Keys: f5 - select counter to move, f1-f4, f6-f9 - move counter, RETURN - select
counter to move along lines, f2, f4, f6, f8 - move counter.

MONTE VEGAS by Pierre Fostier [MONTEVEG]                                    ***
-------------------------------------------------------------------------------
Play a fruit machine with four symbols and win some money. The machine has four
reels with four symbols on each reel. You start with 1200 credits and each go
costs 100 credits. You win 500 credits if you obtain three matching symbols,
and if you obtain four matching symbols, you'll win the jackpot of 10000
credits. It's a bit too easy, though, and all you can do is press any key
continually until you win the jackpot; there are none of the extra features
found on most fruit machines.

There was an error in the original listing, but I have fixed it.

WHEEL OF FORTUNE by David Atkinson [WHEELFOR]                              ****
-------------------------------------------------------------------------------
Another gambling game, this time a cut-down version of roulette with nine
numbers on the wheel. On each turn, you are offered four types of bet - odd
numbers, even numbers, one particular number, or nought (zero) - each with
varying odds. You start with 10, and if you obtain more than 1000, you win
the game. This is a good game which shows just what can be done in ten lines of
BASIC.

REBOUND by Terry Crisp [REBOUND]                                              *
-------------------------------------------------------------------------------
A bat-and-ball game with two bats and two balls. You must keep both balls in
the air; if either ball falls past the bats, the game is over. A boring game
with minimal graphics; there isn't even a score to show how well you're doing.

Keys: Z, X - move left bat, N, M - move right bat.

SUPER SORTER by Bernard Harrison [SUPERSOR]                                  **
-------------------------------------------------------------------------------
Continuing the theme of sorting algorithms, this is yet another one contributed
by a CPC Computing reader. It sorts arrays of integers very quickly indeed.
There are two big problems with it, however; it removes duplicate numbers from
the sorted list, and it consumes a lot of memory.

BOMB DISPOSAL by Amanda French [BOMBDISP]                                   ***
-------------------------------------------------------------------------------
A bomb is placed randomly on a screen filled with blocks, and you must find it
and defuse it before the timer runs out and it explodes - and the timer
decreases very rapidly. Defuse the bomb successfully and another one will be
set up for you to defuse. You have five lives and lose a life when the timer
runs out.

Keys: Z - left, X - right, K - up, M - down.

GET IT RIGHT MKII by Roland A. Waddilove and Arthur Smart [GETRIGHT]
-------------------------------------------------------------------------------
This is an improved version of CWTA CPC's and CPC Computing's program to check
that you've typed in listings from the magazine correctly. Run this program
first, then load the program that you wish to check, but don't run it; this is
important! Then type CALL &9000,line to display the five-digit checksums for
each line, where line is the line number to start checking from. If a checksum
doesn't match the one printed in the magazine, you've typed that line wrongly,
or you have run the program before checking it.

                                     * * *

                                  October 1988

MAXAM UTILITIES by David Instone-Brewer [ASM+STEP]                        *****
-------------------------------------------------------------------------------
Here are two RSXs which add extra functionality to the Maxam assembler, and
Protext as well, if you've got it. The program saves a file to the disc called
something like ASM+STEP.&9E. The &9E extension means that the file must be
loaded to &9E00, so the extension (and therefore the address which the program
is loaded to) depends on the value of HIMEM when you run the program. To load
and initialise the RSXs again, type:

MEMORY &9DFF:LOAD"ASM+STEP.&9E",&9E00:CALL &9E00

or the equivalent, depending on the file extension.

The first RSX is called |ASM. Maxam 1.5 users already have this command, which
allows you to assemble a Maxam file from Protext. However, users with earlier
versions of Maxam have to load their files into Maxam's editor and then
assemble it. Thanks to the addition of the |ASM command, you can now assemble
your files from Protext, which has a better editor than Maxam.

The second RSX is called |STEP. It allows you to step through a machine code
program one instruction at a time. To use it, type |STEP,address, where address
is the start address of the code that you wish to monitor. Each instruction is
displayed on the screen, along with the values of all the registers. To
execute the instruction, press any key other than ESC, RETURN, DEL and TAB
(these keys have special functions). If you encounter a CALL instruction and
want to execute this subroutine without stepping through it one instruction at
a time, press RETURN; note that if a firmware CALL is encountered, it will
automatically execute it without stepping through it. To prevent the current
instruction from being executed, press DEL.

You can also change the values of the registers at any time by pressing TAB.
You can then enter new values, or leave them unchanged by pressing RETURN at
the appropriate moment. You can even change the current instruction and the
status of the flags, although be careful not to enter an instruction that is
longer than the current one (e.g. entering JP &8000 (three bytes) in place of
LD A,1 (two bytes) will cause problems).

You can stop at any time by pressing ESC, and entering |STEP again, without any
parameters, will restart the stepping process where you left off. There are a
few restrictions on the use of the |STEP RSX; you must have interrupts enabled,
and you cannot step through some of the RST instructions, but these rarely
occur so it's not a big problem. In fact, the RSX works by intercepting the RST
6 function which is used by Maxam to enable breakpoints. The program is
designed for early versions of Maxam, and using |STEP with Maxam 1.5 is much
more awkward.

These two RSXs should both prove extremely useful for machine code programmers,
especially now that you can include a debugging routine with Maxam. Wait 24
seconds for the program to set up.

Keys: |STEP RSX: RETURN - execute CALL instruction without stepping through it,
DEL - do not execute instruction, TAB - change registers/instruction/flags, ESC
- quit, any other key - execute instruction.

SCREEN MODE CONVERTER by Jeremy Dutton [SCRMODE]                           ****
-------------------------------------------------------------------------------
A useful utility which converts screens from MODE 1 to MODE 2, which is useful
for loading screens into DTP packages. Change the filenames in lines 30 and 70,
then run the program. Press SPACE after the screen has loaded and watch as it
is instantly converted to MODE 2. If you're satisfied with the result, press
RETURN and the new screen will be saved to disc. It doesn't work brilliantly
with all screens, but the results are still quite good.

There was an error in the original listing, but I have fixed it.

DIRECTORY CHECKER by Ronnie Heywood [DIRCHECK]                                *
-------------------------------------------------------------------------------
A utility to catalogue different user areas of discs from 0 to 15, and also to
catalogue erased files. Unless you often save files in different user areas
(and very few people do, as far as I know), this program will be of little or
no use to you.

Keys: Cursor up/down - select user area, E - catalogue erased files, SPACE -
catalogue selected user area, RETURN - return to menu.

3D DONUT by Ian Breeze [3DDONUT]                                           ****
-------------------------------------------------------------------------------
A graphic demo which draws a wireframe doughnut shape. It takes 1 minute and 31
seconds to draw and looks rather neat, although some colour would be nice.

CUBOTS by Paul Robson [CUBOTS]                                              ***
-------------------------------------------------------------------------------
The starship Flittermouse has landed on a cube-shaped planet called Cubik,
which is guarded by several Cubots. The Cubots have split the starship into
many pieces, and Recovery Officer Dent must retrieve them. There are three
levels with five pieces on each level, and the pieces must be taken, one at a
time, to the launch pad. However, navigating Cubik is not easy. Dent must use
the tunnels to travel from one side of Cubik to another. Some of these go
nowhere, others will take you to the same side you entered, and the rest take
you to another side. It's up to you to discover which tunnels you need to use.
There is a guide at the bottom left of the screen to help you orientate
yourself. There is also a time limit of 9 minutes and 10 seconds for each
level.

To make things more difficult, each piece is locked behind a gate, and only one
piece is accessible at the start of each level. When you collect it, the gate
for another piece will open. Contact with a Cubot, either stationary or moving,
kills you instantly, and falling off the sides of Cubik is not recommended
either, as Dent will fall into space.

This is a reasonably good game with average graphics, but it's a bit difficult,
as the keys are over-responsive and it's very easy to walk into a Cubot or fall
off the edge. It's also annoying that you only have one life.

Keys: Cursor keys or joystick.

NON-REPEATING RANDOM NUMBERS by Arthur Pounsett [RANDNUMS]                   **
-------------------------------------------------------------------------------
A short demonstration routine which selects numbers at random, without
repeating them. The program uses numbers between 1 and 200 as the default and
displays the numbers on the screen as they are picked.

                                     * * *

                                 November 1988

SPRITE SYSTEM by Ian C. Sharpe [SPRSYS, DEMODATA, DEMO]                    ****
-------------------------------------------------------------------------------
If you want to use sprites in your own BASIC programs, this utility lets you
design up to 25 sprites, although you can only use MODE 0 and all the sprites
must be 8x8 pixels in size. On the left of the screen is a list of the inks and
their colour values, which you'll need to write down so that you can set them
correctly in your BASIC game. On the right of the screen is a column where the
sprites are stored; the editor refers to this as the bank. The middle of the
screen contains a rectangle where you edit a sprite.

When you have saved your sprites, you can load them into your BASIC program by
typing:

MEMORY &7FFF:LOAD"filename.bin",&8032:CALL &8032

replacing filename.bin with the name of the file containing your sprites.

To display a sprite, use one of the following commands:

CALL &804C,x,y,number
CALL &804C,oldx,oldy,oldnumber,x,y,number

The first command displays a sprite at the coordinates specified in x and y,
and number contains the number of the sprite. The second command is more
complex; it removes a sprite and displays a sprite elsewhere. Let's say that a
sprite has been placed at the coordinates specified by oldx and oldy, and we
want to remove it from the screen, and display a sprite at another location. In
this instance, oldx and oldy contain the coordinates of the sprite to remove,
and oldnumber contains the number of the sprite to display on top of that
sprite (this will usually be 0, and you should define sprite 0 to be blank for
this purpose). x and y contain the coordinates to display the new sprite, and
number is the number of the new sprite. The second command is effectively the
same as:

CALL &804C,oldx,oldy,oldnumber:CALL &804C,x,y,number

A small game also accompanies the program. It's a simple Space Invaders clone
which uses Sprite System to display sprites. Five aliens fall down the screen
and reappear at the top, and you have to shoot all of them and avoid them
crashing into your spaceship. The graphics are actually quite impressive. The
DEMODATA.BAS program generates the machine code for this game, which is saved
as DEMO.BIN. This file can be loaded into Sprite System.

Keys: Editor: Cursor keys - move cursor, SPACE - plot pixel, DEL - delete
pixel, SHIFT+cursor up/down - select ink, SHIFT+cursor left/right - change
first colour of ink, CONTROL+cursor left/right - change second colour of ink,
CONTROL+cursor up/down - select sprite in bank, CONTROL+G - get sprite from
bank, CONTROL+P - put sprite in bank, CONTROL+M - mirror sprite horizontally,
CONTROL+V - mirror sprite vertically, CONTROL+L - load sprites, CONTROL+S -
save sprites, CONTROL+H - help; Game: Cursor keys and SPACE.

FILE INTERROGATOR by Paul Ford [FILEINT]                                      *
-------------------------------------------------------------------------------
This isn't much of a file interrogator, really; it catalogues the cassette or
disc and then displays the first 255 bytes of a specified file in ASCII format.
Frankly, it's useless; the results shown on the screen are meaningless if you
are looking at a BASIC or binary file, and ASCII files can be loaded into a
text editor, anyway.

ESCHER'S TRIANGLE by E. Freestone [ESCHER]                                 ****
-------------------------------------------------------------------------------
This famous optical illusion - a triangle which cannot exist in real life - is
brought to your screen. Wait 18 seconds for it to appear.

LUCAS' PROBLEM SOLUTION by Sally Douglas [LUCASSOL]                         ***
-------------------------------------------------------------------------------
Henry Watton's 10-liner in the August 1988 issue of CWTA CPC confounded a lot
of people, so here's the solution in 24 moves. Press SPACE to see the next move
and watch how Lucas' problem is solved.

3D SURFACES by Hung Tan Ngo [3DSURFAC]                                     ****
-------------------------------------------------------------------------------
Draw your own curved 3D surface with this nice program. On running the program,
you are presented with two axes, and you move a line right across the screen
(it starts at the bottom left-hand corner), which represents the bottom edge of
the surface. When the line touches the y-axis, it reappears at the top of the
screen, and you then draw the top edge of the surface using the same method.
When both edges have been drawn, you can then plot the surface using vertical
lines going from south to north, and horizontal lines going from east to west
(although the horizontal lines take about 1 minute and 40 seconds to draw). The
overall effect looks good and it's fun to play with the program.

Keys: Q, W - move line downwards, E, R - move line upwards, T - move line
right.

ADVANCED ART STUDIO SCREEN LOADER by Simon Bond [AASLOAD]                 *****
-------------------------------------------------------------------------------
Now you can load Advanced Art Studio screens in your own programs thanks to
this utility. It will even handle compressed screens! The palette file which
Advanced Art Studio saves along with the screen is used to set the mode, border
and inks, so make sure you save a palette file along with the screen. The
routine is located at 20000 in memory, and if a screen has loaded successfully,
location 20415 holds 0. If a screen did not load successfully, it holds 255.
Wait a few seconds for the program to set up.

MICRO DESIGN PRINTOUT UTILITY by Richard Giles [MDPRINT]                   ****
-------------------------------------------------------------------------------
Micro Design is a very useful program, but when printing your work, some
printers print pages which are compressed sideways. This utility prints pages
using the full width of the paper and is apparently much quicker than the
standard routine. To use this utility, you need to save your page as upright A4
and at full screen size. Now run this program, enter the filename of the page,
and it should start printing. If the error "Graphics window is the wrong size!"
appears, you haven't saved your page at full screen size. If you need to abort
the printing of a page, hold down ESC and your printer should stop printing.
The program takes a few seconds to set up the machine code.

MODIFIED PICTURE SAVER by Ian Purdie [PICSAVE]                              ***
-------------------------------------------------------------------------------
Several routines to save and load screens appeared in CWTA CPC in the last few
months, and here's an improved version of a routine which originally appeared
in the August 1988 issue of CWTA CPC. It saves screens to cassette only,
including the mode, border and inks. The screens are saved as headerless files,
which speeds up the loading time. Four RSXs are provided - |SAVEPIC copies the
current screen from &C000 to &4000 and saves it, |LOADPIC loads a screen to
&4000 and then copies it to &C000, |COPYD copies the current screen to &4000,
and |COPYU copies a stored screen to &C000. Wait a few seconds for the program
to set up.

                                     * * *

                                 December 1988

RUBIK'S CLOCK SOLVER by Phil Lawson [RUBIKS]                               ****
-------------------------------------------------------------------------------
Rubik's Clock was another of Professor Rubik's brain-teasing puzzles, along
with his famous coloured cube. Some people have said that the puzzle is
impossible to solve - but this step-by-step guide shows that this is not true!
Find your Rubik's Clock and use this program to solve it.

DISC FILE COPIER by David Instone-Brewer [COPY]                           *****
-------------------------------------------------------------------------------
One of the problems with AMSDOS is that it doesn't have a built-in file copying
function. Well, here's an RSX which does just that! Run the program, and it
will save a file to the disc called something like COPY.&A1. The &A1 extension
means that the file must be loaded to &A100, although when the program sets up
the RSX, it locates it below HIMEM, so the extension (and therefore the
address which the program is loaded to) depends on the value of HIMEM when you
run the program. To load and initialise the RSX again, type:

MEMORY &A0FF:LOAD"COPY.&A1",&A100:CALL &A100

or the equivalent, depending on the file extension.

The program sets up an RSX called |COPY which copies any file - ASCII, BASIC,
binary or CP/M .COM files - from one disc to another. Some examples of how to
use it are:

|COPY,"file.ext" - copy a file from the current drive to another disc, using
the same drive.
|COPY,"file.ext>B" - copy a file from the current drive to drive B.
|COPY,"A:file.ext>B" - copy a file from drive A to drive B.

CPC464 owners will need to use something like a$="A:file.ext>B":|COPY,@a$ for
the RSX to work. There is also an alternative RSX called |KOPY which performs
exactly the same function, in case an RSX called |COPY has already been loaded
by another program. Wait 23 seconds for the program to set up.

There was an error in the original listing, but I have fixed it.

PRIME NUMBER SIEVE by Simon Benge [PRIMENUM]                                ***
-------------------------------------------------------------------------------
A small program which displays all the prime numbers up to a specified number,
using a method known as the Sieve of Eratosthenes. Enter a number and the
program will calculate all the prime numbers from 2 to that number and display
them. It also tells you how long it took to calculate all the prime numbers,
which takes slightly more than two minutes if you enter 4000 as the maximum
number. Don't enter too large a number, or the program will run out of memory
and be unable to perform the calculations.

POLAR CURVES by Maurizio de Cesare [POLARCUR]                              ****
-------------------------------------------------------------------------------
For the mathematicians among you, here is a program which draws polar curves.
First enter the number of divisions (larger values such as 64 and 128 draw the
curve more accurately but take longer to draw) and the interval in multiples of
pi (entering 2 draws a complete curve, although values such as 4 and 8 may be
needed to draw certain curves fully), and whether you would like text output
(which shows the values of variables at the top of the screen while the curve
is being drawn) and the two axes to be shown or not. Then watch as the curve is
drawn on the screen.

The default function supplied with the program is 50-40*SIN(4*th), which
produces a flower shape. Replace this function in line 50 with some of the
ones below to produce other patterns:

80                  80*COS(3*th)        50-40*SIN(3*th)     50*(COS(2*th)-0.5)
2*th                60+30*COS(6*th)     70-40*SIN(2*th)     2*EXP(th/(2*PI))
80*SIN(th)          70+10*COS(6*th)     80*(COS(th)-0.5)    60+30*RND
80*COS(2*th)        70+10*COS(12*th)    40*(COS(2*th)-1)

ZOMBIE ISLAND by Patrick Beautement [ZOMBIE]                                 **
-------------------------------------------------------------------------------
You're on an island which is inhabited by zombies, and they are moving closer
towards you. Your only chance of survival is to move so that they fall into the
pits scattered about the island, or allow one zombie to squash another by
walking into it. During the game, enter a compass direction and your character
will move that way. It's not a very good or interesting game, and the zombies
move so randomly that surviving for more than a few turns is entirely based on
luck and not skill. The graphics are poor as well.

MONSTER MAZE by Peter Timming [MONSTMAZ]                                    ***
-------------------------------------------------------------------------------
A monster is trapped inside a maze (well, a room full of randomly positioned
blocks) and you have to shoot it using the crosshairs on the screen in the
shortest possible time. However, the guardian of the maze is also chasing you,
and you must avoid it, or the game is over. The guardian can be trapped by the
blocks, but you'll need to be quick to outrun it. A simple little game which is
fun for a while.

Keys: A - up, Z - down, < - left, > - right, SPACE - shoot.

MINI-ADVENTURE CREATOR by Clive Gifford [MINIADV]                            **
-------------------------------------------------------------------------------
CWTA CPC has already published some of Clive's text adventure listings, but
this program allows you to create your own mini-adventures - although it is
very limited indeed, and frankly, you'd be better off writing your own program
from scratch. There is a built-in sample of what the program can do, called
Enchanted Castle; enter Y when asked to use the pre-programmed data when you
run the program. It only has five locations and five objects.

If you want to create your own mini-adventure, you then need to enter all the
data - and there's no way of saving it unless you write your own routine. First
of all, you are asked how many objects and locations there are. Next, for each
object, you are asked its name and which location it starts in, using a comma
to separate the two values. You are then asked whether the object can be taken;
enter 1 for yes, 0 for no, and a negative number to decrease the player's
strength by that amount if he/she tries to take the object. Next, you are asked
if the object is a key or other object to open doors; enter 2 for yes, 0 for
no.

After entering the object data, you now enter the location data. For each
location, you are asked for its name (the bit that follows "You are in..."),
and the locations you enter if you go north, south, east, west, up and down;
enter the location number for each direction, 0 if you can't go in that
direction, and a negative location if you need a key or other object to go in
that direction. Finally, after entering the location data, enter the player's
starting strength and the location that the player must reach to finish the
game.

A little experimentation with the program reveals that only very basic text
adventures can be created, and there is no facility for puzzles of any sort to
be solved by the player. Other than keys, any objects in the game cannot be
used for any purpose!

The commands available in the Enchanted Castle mini-adventure are NORTH, SOUTH,
EAST, WEST, UP, DOWN (you can't enter N, S, E, W, U or D), TAKE, DROP, UNLOCK
and QUIT. To take and drop objects, enter TAKE or DROP, press RETURN, and then
enter the object you wish to take or drop.

DYNAMITE DUNGEONS by Phil Lawson [DYNAMDUN]                                ****
-------------------------------------------------------------------------------
The Society Against Enjoying Christmas has captured Santa in an underground
dungeon and randomly placed 200 sticks of dynamite in it. As Santa, you have to
collect all the sticks before your time runs out, and you must also avoid the
moving skulls which are out to get you! As well as sticks of dynamite, there
are also puddings which increase the timer, and keys which open all the doors
in the dungeon. The graphics are fairly good, but the dungeon is very large
indeed and it's unlikely that you will be able to complete even the first
level; finding the last few sticks of dynamite in such a large dungeon is a
very difficult task.

Keys: Z - left, X - right, K - up, M - down, Q - quit.
