Reviewer: Simon Beesley

Magazine: Your Computer

Date: June 1984


Is Amstrad’s CPC-464 a treasure chest or a Pandora’s Box? Simon Beesley plugs in and goes.

Amstrad made its mark in the hi-fi market by selling high-specification stereos, which could simply plug in and go, at a low price. Adapting the same formula to the home computer market the company is now offering a complete system for £229.

The Amstrad CPC-464 comes with a built-in cassette recorder and a monochrome monitor. With a colour monitor it will cost £329. These are recommended retail prices. By the time the machine appears in chains like Boots, Rumbelows and Dixons it will probably be selling at around £200 and £300. A disc package will follow in September comprising a three inch disc drive, disc controller, CP/M and Logo, all for £199.

The Amstrad computer is built around a Z-80A processor which runs at 4MHz. On board it carries 64K RAM and 32K ROM. By plugging an expansion board into the disc interface at the back you will be able to add alternative ROM or RAM cartridges, 16K at a time.

Along with the disc interface there is also a stereo jack for sound output, a joystick port and a parallel printer interface. At the side of the unit there is a power switch and volume control for the internal speaker.

The keyboard has 74 keys with a good springy feel to them. It includes a numeric keypad which also doubles up to provide function keys each capable of producing a string of 32 characters.

Amstrad is making the fact that the machine comes as an integrated system a prominent selling point. My own view is that the virtues of this feature have been overstated. After all most users do not find the business of connecting up a cassette recorder and a TV especially cumbersome. And probably most buyers will opt for the cheaper system using a modulator for colour display on a TV while retaining the monochrome monitor for 80-column business software.

Amstrad’s designers have taken pains to ensure that the display is rock steady, and even on a colour TV it should be superior to that of the average home micro. The character typeface, incidentally, is an exceptionally clear one which uses two dots to form each vertical stroke.

What does make the built-in cassette recorder a welcome feature is that it should rule out the sort of loading and saving problems that bedevil almost every other micro. As an extra aid to reliable storage there is a choice of two data transmission rates, 1,000 baud and 2,000 baud.

Saving from Basic is also well catered for. As well as saving a program in its normal tokenised form you can also save it as an ASCII file or as a protected file. Once protected it can only be loaded with the Run command which should guarantee security. In addition there is a command to save any block of memory, equivalent to the Spectrum’s Save Code or the BBC’s *Save.

This spread of commands devoted just to tape storage is indicative of Locomotive Basic’s scope. By allowing 16K each for the Basic interpreter and operating system as opposed to the more usual 8K the designers were able to make the ROM software both highly extensive and fast. As far as speed goes it is only a shade slower than the BBC micro.

Unlike the BBC ROMs Amstrad’s 32K ROM does not limit the amount of RAM available. The screen memory occupies 16K of the 64K RAM and the operating system takes a further 5K for work space, leaving the user with just over 43K RAM.

People who are used to the idea that 8-bit micro have only 64K to share between ROM and RAM may find this puzzling. The way it works is by switching between ROM and RAM. When, for example, the display controller reads the screen memory in RAM the Z-80 processor goes into a wait state. It then switches to the Basic in ROM which occupies the same top 16K as the screen.

Similarly, the ROM-based operating system and Basic program area occupy the same space at the bottom of memory. The processor copes with this by alternatively turning ROM and RAM on and off.

Locomotive’s Basic is a version of Microsoft, greatly enhanced by graphics and sound commands, and a number of other unique features. Thus Locate to position the text cursor and Print Using, which formats print output, are familiar enough; but After and Every are special to the Amstrad.

They give the Basic programmer a chance to use interrupt routines, a feature normally only available from machine code.

The Every command interrupts a program at regular intervals and directs it to a subroutine.

EVERY 10 GOSUB 200

calls the subroutine at line 200 every 10/50s of a second. The After command does the same thing but only once.

Speed Key and Speed Ink are likewise unusual. The first sets the key repeat period while the second determines the rate at which colours flash. Key Def is another newcomer which redefines the keys so that, for example, you could convert the N key to print the question mark character.

Along with such novelties there is a particularly full set of programming aid commands and debugging features. These include Renumber, Delete, Trace and some extra error-trapping instructions, On Break Gosub and On Break Stop.

To force a break you need to press the escape key twice; pressing it once simply halts the program until you hit the space-bar - another useful feature not commonly found on home micros.

To edit a program you have a choice of using either the standard Microsoft line editor with its Edit command or the copy cursor. The latter is much easier and lets you move to any line and then copy part or all of it down to the bottom of the screen.

On the graphics front the Amstrad is particularly well favoured. There are three modes. Text and graphics can operate together in each of them. Mode 1 is standard and gives 40 columns by 25 rows of text or 320 by 200 pixels with a choice of four colours.

In Mode 2 the resolution drops to 20 by 25 and 160 by 200 but the choice of colours is increased to 16.

Mode 0 provides 80 columns by 25 and a pixel resolution of 640 by 200, in two colours.

It will be seen that the screen modes are similar to the BBC’s without the BBC’s text-only modes. The similarity also extends to the way the Amstrad allows you to choose onscreen colours from a wide colour palette.

In all there are 27 colours ranging from blue, mauve, yellow and green to lime, pink, pastel green and bright yellow. The idea is that in each mode there are a limited number of colour pens and these can be assigned any of the colours in the palette.

Pen is the command which selects the current colour. Thus in Mode 2 PEN 3,10 activates Pen 3 and assigns to it colour 10 which is cyan. Any future text printed will be in cyan. As a further elaboration you can now use the Ink command to assign a different colour from the palette to colour 10.

INK 10,12

causes colour 10 now to be associated with yellow and means that all text or graphics on screen which is in cyan will be instantly changed to yellow. You can also use Ink to create any combination of flashing colours.

Equivalent to the BBC’s VDU 19 but easier to use, the Ink command is a powerful feature. As BBC owners have discovered palette switching allows you to produce fast animated effects without leaving Basic.

For pixel plotting there are absolute and relative commands to plot points, draw lines and move the cursor - Plot and PlotR, Draw and DrawR, Move and MoveR. Test and TestR report the ink colour of a given pixel, while XPOS and YPOS return the position of the graphics cursor.

Again, as on the BBC, there is also a facility for setting the mode in which a pixel is plotted. By sending a control character before the Ink command you can cause the new colour to be logically Anded, Ored or Exclusive Ored with the old colour. This is highly useful for animation and plotting shapes without obliterating the background, making all sorts of sprite-like effects possible.

For text there is a corresponding option which allows you print in transparent mode. Here the characters are superimposed on the background rather than printed over it.

These commands alone make the Amstrad’s graphics superior to those on, say, the Spectrum or the Oric. Unlike these machines you can also create genuine multicoloured characters since each pixel can be given a separate colour. Add to these features the facility for creating screen windows and you have a micro whose graphics are second only to the BBC’s.

Up to eight text windows can be defined. Each is linked to a text stream which makes it easy to print to a specific window. To give an example, WINDOW #2,0,10,10,0 would set up a square window in the bottom left corner;

PRINT #2

directs text to that window alone. In addition the Origin command sets up a single graphics window as well as fixing the X and Y origins.

The final bonus in the graphics department is the ease with which user-defined characters can be created. Above the normal ASCII codes the character set is filled with predefined graphics characters. When the machine is turned on, the dot patterns for the top 16 characters are read into RAM.

These can be redefined by the command Symbol followed by the character code and a list of eight numbers making up the new pattern. In addition you can redefine the rest of the set from codes 32 onwards. You simply enter the Symbol After instruction, which reserves memory for the number of definitions you require.

Sound on the Amstrad is equally impressive. Once again the designers seem to have taken a leaf out of the BBC’s book. The AY-3-8912 sound chip produces three voices which can either be output in mono through the internal speaker or sent in stereo to external speaker.

The Sound command can be used to produce a simple sound - either a musical note or white noise - where only the channel, tone, duration and volume are specified. Or it can be linked up with two Envelope commands to create much more complex sounds.

Env, the volume envelope command, allows you to divide a note up into a number of sections. In each you can specify how the volume is to rise or fall.

Ent, the tone envelope command, does the same thing for a note’s tone. Between them you can define up to 15 envelopes, synthesising a variety of musical instruments. By setting parameters in the Sound and Release commands you can also arrange that notes on different channels are synchronised.

On top of the features described so far it is likely that the Amstrad has a good deal of untapped potential, particularly for the machine-code programmer. Two such undocumented possibilities mentioned by Roland Perry, one of the designers, are hardware induced sideways scrolling and setting up alternative screen memories.

Locomotive has designed the operating system to be highly accessible to the user. Many of its routines are called via jumpblocks in RAM. This means that they can easily be altered or adapted.

All in all the Amstrad’s future looks rosy. Superior graphics and sound, an excellent Basic coupled with a flexible operating system would seem to be winning ingredients. Of course for most buyers a computer is only as good as the software that is available for it. But for a new machine the Amstrad looks likely to be well supported.

Already a number of best-selling titles have been converted, Harrier Attack and Bugaboo among them. The company’s target sales figure of 200,000 machines by the end of the year stands a good chance of being realised.

Conclusions