                              CPC ATTACK! LISTINGS
                         Compiled by Nicholas Campbell
                         -----------------------------

This instruction file is broken down into monthly sections. All of the programs
can be found on the file CPCATTAC.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,
compatibility with BASIC 1.0) 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.

                                     * * *

                                   June 1992

INPUT ROUTINE [INPUT]                                                       ***
-------------------------------------------------------------------------------
BASIC's INPUT command isn't exactly customisable, so if you want the user to
enter a string with only a set number of characters, or you don't want the user
to be able to enter certain characters, you need to write your own custom
routine to do this - and here's one. The routine starts from line 5000 and a
demonstration is included. x and y are the coordinates to place the box in
which the string is entered, w is the maximum length of the string, bad$
contains the characters which the user cannot enter, numstr is the type of
input (0 for a string, 1 for a decimal number, 2 for an integer), and fcol and
bcol are the pen and paper colours respectively. The string that the user has
inputted is returned in ans$.

There were some errors in the original listing, but I have fixed all of them.

ROM DISABLER [ROMDISAB]                                                     ***
-------------------------------------------------------------------------------
Some games won't load if you have any ROMs installed, so you need to disable
them before running them, which soon becomes irritating. Instead, you can use
this small routine to reset the computer and only enable certain ROMs. To use
it, type CALL &A000,a,b,c,... where a, b, c etc. are the ROMs you wish to
enable; all other ROMs will be disabled. If you enter CALL &A000 on its own,
all ROMs, including the AMSDOS ROM, will be disabled.

ADVANCED ART STUDIO SCREEN LOADER by David Carter [AASLOAD]                 ***
-------------------------------------------------------------------------------
Load and display Advanced Art Studio screens from BASIC. If there is a .PAL
file as well, the program will set the inks correctly, but not the border or
the mode. It is set up to use MODE 0, but you can change the mode in line 160.

                                     * * *

                                   July 1992

MIRROR by Tim Wheeler [MIRROR]                                              ***
-------------------------------------------------------------------------------
A routine which displays text in MODE 1 or 2 and also draws a reflection of it
below, in either normal or italic style. You can also choose the colour to
write the text in.

                                     * * *

                                  August 1992

MENU [MENU]                                                                 ***
-------------------------------------------------------------------------------
Add a menu system to your discs, allowing you to select a program from a fancy
menu. You can include up to 21 items in the menu. The menu items are stored as
DATA statements from line 730 onwards.

Keys: Cursor keys - select item, RETURN, ENTER - run program.

The original listing only worked on BASIC 1.1, but I have altered it so that it
works on BASIC 1.0 as well.

XOR DISPLAY by Glynne Davies [XORDISP]                                      ***
-------------------------------------------------------------------------------
A colourful graphic demo showing how XOR graphics work. A message is displayed
on the screen and soonb disappears under a mask of coloured lines. Wait for
about two and a half minutes, though, and it will reappear.

                                     * * *

                                 September 1992

RAMTEST AND MACHINE TYPE ROUTINE by Rob Scott [MACHTEST]                    ***
-------------------------------------------------------------------------------
A short machine code routine that detects what type of machine you are using,
and if it has any extra RAM. When it is run, the variable machine contains 0 if
you are using a 464, 1 if it is a 664, 2 if it is a 6128, and 4 if it is a
Plus. The variable ramyes is 0 if you have 64K and 1 if you have more.

                                     * * *

                                  October 1992

LOADER FOR DRIVE B (ROMDOS FORMAT) by Rob Scott [DRIVEB]                   ****
-------------------------------------------------------------------------------
Some programs won't load from drive B; when they re-initialise AMSDOS, they
also reset to drive A. This loader rectifies this for the large majority of
programs by patching the firmware. It catalogues the disc and asks you which
file you want to run. If the program fails to load from drive B, try changing
the address where the loader routine is located in line 150.

MULTICON by Rob Scott [MULTICON, SCRDISP]                                 *****
-------------------------------------------------------------------------------
Convert Multiface screens to Advanced Art Studio format with ease. It also
saves a palette file and can also convert Spectrum screens. If you don't have
Advanced Art Studio, you can still display the converted screen using the
SCRDISP program. This is an excellent utility.

The original listing only worked on BASIC 1.1, but I have altered it so that it
works on BASIC 1.0 as well.

DEEPLY DIPPY by Richard Wildey [DIPPY]                                       **
-------------------------------------------------------------------------------
And now for something completely different. Enter a message and get a printout
of it on paper, in a wavy shape. You can change the curve factor from 1 to 10;
the higher the number, the more the message will curve.

SPYGLASS by David Hall [SPYGLASS]                                           ***
-------------------------------------------------------------------------------
Zoom in on MODE 0 screens using a magnifying glass. It doesn't have much
serious use but is more of a curiosity to mess about with. Load a screen in
MODE 0 and type CALL 10000 to use the magnifying glass. Make sure the screen
has not scrolled before typing CALL 10000 or you'll have some problems moving
the magnifying glass.

Keys: Cursor keys - move magnifying glass, ESC - quit.

FLIPPY by Rob Scott [FLIPPY] - 128K only                                   ****
-------------------------------------------------------------------------------
Have you ever worked on a BASIC program, only for the computer to crash and
lose all your work? This set of RSXs saves the current BASIC program to the
extra 64K of memory every 11 seconds. If you need to recover your program after
the computer has reset, load this program again to re-initialise the RSXs, and
you can rescue your BASIC program. The length of your program must not exceed
15000 bytes, though, or it won't be possible to save (and therefore recover)
all of it. |FLIPON turns the save mode on; you'll see the border alternate
between black and blue to let you know it's working. |FLIPOFF turns it off,
|RESCUE recovers your BASIC program, |BASINF displays information about the
current BASIC program, and |FHELP displays a help message. This program does
not work on 464s, even if extra RAM is available.

                                     * * *

                                 November 1992

DATA DISK FORMATTER by Paul Fairman [FORMAT]                                ***
-------------------------------------------------------------------------------
Formats discs to data format quickly and efficiently. Make sure you really want
to format the disc that's in the drive before you press a key!

HARDCAT by Michael Beckett [HARDCAT]                                        ***
-------------------------------------------------------------------------------
Nothing to do with tough moggies, this one. Instead, it's an RSX that prints
out the directory of a disc on the printer. To use it, type |HCAT.

SCREEN DUMP by Michael Beckett [SCRDUMP]                                    ***
-------------------------------------------------------------------------------
Another RSX which should be useful if you own a printer. This one prints out
the current screen. To use it, type |SCRDUMP,q where q is a number from 1 to 3
which represents the print quality; 1 is draft, 2 is normal, and 3 is high
quality.

SKODA SIMULATOR by Michael Beckett [SKODASIM]                             *****
-------------------------------------------------------------------------------
It's every Skoda driver's worst nightmare; you're driving along a stretch of
road, when a swarm of Reliant Robins travelling at 5mph comes at you in the
opposite direction. The aim is to travel for eight kilometres and avoid
crashing into any of the Reliant Robins. Nice, smooth graphics and just the
right level of difficulty make this game a winner.

Keys: Z - left, \ - right.

HEART ATTACK by David Hall [HEARTATT]                                      ****
-------------------------------------------------------------------------------
Shoot the hearts as they appear on the screen. You have less than two seconds
to aim and shoot the heart before it disappears again; if you don't shoot it,
the game ends. It's not a bad game, and the graphics are nice, particularly the
way the heart beats. Wait 11 seconds for the program to set up.

Keys: Joystick.

The original listing only worked on BASIC 1.1, but I have altered it so that it
works on BASIC 1.0 as well.
