Amstrad CPC

The Amstrad CPC (short for "Colour Personal Computer") is a series of 8-bit home computers produced by Amstrad between 1984 and 1990. It was designed to compete in the mid-1980s home computer market dominated by the Commodore 64 and the ZX Spectrum, where it successfully established itself primarily in the United Kingdom, France, Spain, and the German-speaking parts of Europe.

The series spawned a total of six distinct models: The CPC 464, CPC 664, and CPC 6128 were highly successful competitors in the European home computer market. The later 464 plus and 6128 plus, intended to prolong the system's lifecycle with hardware updates, were considerably less successful, as was the attempt to repackage the plus hardware into a game console as the GX4000.

The CPC models' hardware is based on the Zilog Z80A CPU, complemented with either 64 or 128 KB of RAM. Their computer-in-a-keyboard design prominently features an integrated storage device, either a compact cassette deck or 3-inch floppy disk drive. The main units were only sold bundled with either a colour, green-screen or monochrome monitor that doubles as the main unit's power supply. Additionally, a wide range of first and third-party hardware extensions such as external disk drives, printers, and memory extensions, was available.

The CPC series was pitched against other home computers primarily used to play video games and enjoyed a strong supply of game software. The comparatively low price for a complete computer system with dedicated monitor, its high-resolution monochrome text and graphic capabilities and the possibility to run CP/M software also rendered the system attractive for business users, which was reflected by a wide selection of application software.

During its lifetime, the CPC series sold approximately three million units.

The original range
The philosophy behind the CPC series was twofold, firstly the concept was of an "all-in-one", where the computer, keyboard and its data storage device were combined in a single unit and sold with its own dedicated display monitor. Most home computers at that time such as ZX Spectrum series, Commodore 64, and BBC Micro relied on the use of the domestic television set and a separately connected tape recorder or disk drive. In itself, the all-in-one concept was not new, having been seen before on business-oriented machines and the Commodore PET.

Secondly, Amstrad founder Alan Sugar wanted the machine to resemble a "real computer, similar to what someone would see being used to check them in at the airport for their holidays", and for the machine to not look like "a pregnant calculator" – in reference presumably to the ZX81 and ZX Spectrum with their low cost, membrane-type keyboards.



CPC 464
The CPC 464 was one of the most successful computers in Europe and sold more than two million units.

The CPC 464 featured 64 KB RAM and an internal cassette deck. It was introduced in June 1984 in the UK. Initial suggested retail prices for the CPC 464 were £249.00/DM899.00 with a green screen and £359.00/DM1398.00 with a colour monitor. Following the introduction of the CPC 6128 in late 1985, suggested retail prices for the CPC 464 were cut by £50.00/DM100.00.

In 1990, the 464plus replaced the CPC 464 in the model line-up, and production of the CPC 464 was discontinued.

CPC 664


The CPC 664 features 64 KB RAM and an internal 3-inch floppy disk drive. It was introduced on 25 April 1985 in the UK. Initial suggested retail prices for the CPC 664 were £339.00/DM1198.00 with a green screen and £449.00/DM1998.00 with a colour monitor.

After the successful release of the CPC 464, consumers were constantly asking for two improvements: more memory and an internal disk drive. For Amstrad, the latter was easier to realise. At the deliberately low-key introduction of the CPC 664, the machine was positioned not only as the lowest-cost disk system but even the lowest-cost CP/M 2.2 machine. In the Amstrad CPC product range the CPC 664 complemented the CPC 464 which was neither discontinued nor reduced in price.

Compared to the CPC 464, the CPC 664's main unit has been significantly redesigned, not only to accommodate the floppy disk drive but also with a redesigned keyboard area. Touted as "ergonomic" by Amstrad's promotional material, the keyboard is noticeably tilted to the front with MSX-style cursor keys above the numeric keypad. Compared to the CPC 464's multicoloured keyboard, the CPC 664's keys are kept in a much quieter grey and pale blue colour scheme.

The back of the CPC 664 main unit features the same connectors as the CPC 464, with the exception of an additional 12V power lead. Unlike the CPC 464's cassette tape drive that could be powered off the main unit's 5V voltage, the CPC 664's floppy disk drive requires an additional 12V voltage. This voltage had to be separately supplied by an updated version of the bundled green screen/colour monitor (GT-65 and CTM-644 respectively).

The CPC 664 was only produced for approximately six months. In late 1985, when the CPC 6128 was introduced in Europe, Amstrad decided not to keep three models in the line-up, and production of the CPC 664 was discontinued.

CPC 6128
The CPC 6128 features 128 KB RAM and an internal 3-inch floppy disk drive. Aside from various hardware and firmware improvements, one of the CPC 6128's most prominent features is the compatibility with the CP/M+ operating system that rendered it attractive for business uses.

The CPC 6128 was released on 13 June 1985 and initially only sold in the US. Imported and distributed by Indescomp, Inc. of Chicago, it was the first Amstrad product to be sold in the United States, a market that at the time was traditionally hostile towards European computer manufacturers. Two months later, on 15 August 1985, it arrived in Europe and replaced the CPC 664 in the CPC model line-up. Initial suggested retail prices for the CPC 6128 were US$699.00/£299.00/DM1598.00 with a green screen and US$799.00/£399.00/DM2098.00 with a colour monitor.

In 1990, the 6128plus replaced the CPC 6128 in the model line-up, and production of the CPC 6128 was discontinued.

The plus range
In 1990, confronted with a changing home computer market, Amstrad decided to refresh the CPC model range by introducing a new range variantly labelled plus or PLUS, 1990, or CPC+ range. The main goals were numerous enhancements to the existing CPC hardware platform, to restyle the casework to provide a contemporary appearance, and to add native support of cartridge media. The new model palette includes three variants, the 464plus and 6128plus computers and the GX4000 video game console. The "CPC" abbreviation was dropped from the model names.

The redesign significantly enhanced the CPC hardware, mainly to rectify its previous shortcomings as a gaming platform. The redesigned video hardware allows for hardware sprites and soft scrolling, with a colour palette extended from a maximum of 16 colours (plus separately definable border) at one time from a choice of 27, increased to a maximum of 31 (16 for background and 15 for hardware sprites) out of 4096. The enhanced sound hardware offers automatic DMA transfer, allowing more complex sound effects with a significantly reduced processor overhead. Other hardware enhancements include the support of analogue joysticks, 8-bit printers, and ROM cartridges up to 4 Mbits.

The new range of models was intended to be completely backwards compatible with the original CPC models. Its enhanced features are only available after a deliberately obscure unlocking mechanism has been triggered, thus preventing existing CPC software from accidentally invoking them.

Despite the significant hardware enhancements, many viewed it as outdated, being based on an 8-bit CPU, and it failed to attract both customers and software producers who were moving towards systems such as the Amiga and Mega Drive which was launched a few short months after the plus range. The plus range was a commercial failure, and production was discontinued shortly after its introduction in 1990.

464 plus, 6128 plus
The 464 plus and 6128 plus models were intended as "more sophisticated and stylish" replacements of the CPC 464 and CPC 6128. Based on the redesigned plus hardware platform, they share the same base characteristics as their predecessors: The 464 plus is equipped with 64 KB RAM and a cassette tape drive, the 6128 plus features 128 KB RAM and a 3" floppy disk drive. Both models share a common case layout with a keyboard taken over from the CPC 6128 model, and the respective mass storage drive inserted in a case breakout.

In order to simplify the EMC screening process, the edge connectors of the previous models have been replaced with micro-ribbon connectors as previously used on the German Schneider CPC 6128. As a result, a wide range of extensions for the original CPC range are connector-incompatible with the 464 plus and 6128 plus. In addition, the 6128plus does not have a tape socket for an external tape drive.

The plus range is not equipped with an on-board ROM, and thus the 464 plus and the 6128 plus do not contain a firmware. Instead, Amstrad provided the firmware for both models via the ROM extension facility, contained on the included Burnin' Rubber and Locomotive BASIC cartridge. This resulted in reduced hardware localization cost (only some select key caps and case labels had to be localized) with the added benefit of a rudimentary copy protection mechanism (without a firmware present, the machine itself could not copy a game cartridge's content). As the enhanced V4 firmware's structural differences causes problems with some CPC software directly calling firmware functions by their memory addresses, Amstrad separately sold a cartridge containing the original CPC 6128's V3 firmware.

Both the 464 plus and the 6128 plus were introduced to the public in September 1990. Initial suggested retail prices were GB£229/1990 FRF with a monochrome monitor and GB£329/2990 FRF with a colour monitor for the 464 plus, and GB£329/2990 FRF with a monochrome monitor and GB£429/3990 FRF with a colour monitor for the 6128plus.

GX4000


Developed as part of the plus range, the GX4000 was Amstrad's short-lived attempt to enter the video game consoles market. Sharing the plus range's enhanced hardware characteristics, it represents the bare minimum variant of the range without a keyboard or support for mass storage devices. It came bundled with 2 paddle controllers and the racing game Burnin' Rubber.

CPC 472
During the August holidays of 1985, Spain briefly introduced an import tax of 15 000 pesetas (€90.15) on computers containing 64 KB or less of RAM (Royal Decree 1215/1985 and 1558/1985 ), and a new law (Royal Decree 1250/1985 ) mandated that all computers sold in Spain must have a Spanish keyboard. To circumvent this, Amstrad's Spanish distributor Indescomp (later to become Amstrad Spain) created and distributed the CPC 472, a modified version of the CPC 464. Its main differences are a small additional daughter board containing a CPC 664 ROM chip and an 8 KB memory chip, and a keyboard with a ñ key (although some of them were temporarily manufactured without the ñ key). The sole purpose of the 8 KB memory chip (which is not electrically connected to the machine, so consequently rendered unusable) is to increase the machine's total memory specs to 72 KB in order to circumvent the import tax. Some months later, Spain joined the European Communities by the Treaty of Accession 1985 and the import tax was suppressed, so Amstrad added the ñ key for the 464 and production of the CPC 472 was discontinued.

KC compact
The  ("Kleincomputer" - which means "small computer" - being a rather literal German translation of the English "microcomputer") is a clone of the Amstrad CPC built by East Germany's VEB Mikroelektronik Mühlhausen, part of VEB Kombinat Mikroelektronik Erfurt, in October 1989. Although the machine included various substitutes and emulations of an Amstrad CPC's hardware, the machine is largely compatible with Amstrad CPC software. It is equipped with 64 KB of memory and a CPC 6128's firmware customized to the modified hardware, including a copy of Locomotive BASIC 1.1 modified in the startup banner only. The expansion port is a K 1520 bus slot. The KC compact is the last 8-bit computer introduced in East Germany. Due to the German reunification happening at the time of the release only a very small number of systems were sold. The KC compact can be emulated by free software JKCEMU.

Aleste 520EX
In 1993, Omsk, Russia based company Patisonic released the Aleste 520EX, a computer highly compatible with the Amstrad CPC 6128. It could also be switched into an MSX mode. An expansion board named Magic Sound allowed to play Scream Tracker files.

Reception
A BYTE columnist in January 1985 called the CPC 464 "the closest yet to filling" his criteria for a useful home computer, including good keyboard, 80-column text, inexpensive disk drive, and support for a mainstream operating system like CP/M.

Processor
The entire CPC series is based on the Zilog Z80; a processor, clocked at 4 MHz.

In order to avoid the CPU and the video logic simultaneously accessing the shared main memory and causing video corruption ("snowing"), CPU memory access is constrained to occur on microsecond boundaries. This effectively pads every machine cycle to four clock cycles, causing a minor loss of processing power and resulting in what Amstrad estimated to be an "effective clock rate" of "approximately 3.3 MHz".

Memory
Amstrad CPCs are equipped with either 64 (CPC 464, CPC 664, 464plus, GX4000) or 128 (CPC 6128, 6128plus) KB of RAM. This base memory can be extended by up to 512 KB using memory expansions sold by third-party manufacturers, and by up to 4096 KB using experimental methods developed by hardware enthusiasts. Because the Z80 processor is only able to directly address 64 KB of memory, additional memory from the 128 KB models and memory expansions is made available using bank switching.

Video
Underlying a CPC's video output is the unusual pairing of a CRTC (Motorola 6845 or compatible) with a custom-designed gate array to generate a pixel display output. CPC 6128s later in production as well as the models from the plus range integrate both the CRTC and the gate array's functions with the system's ASIC.

Three built-in display resolutions are available: 160×200 pixels with 16 colours ("Mode 0", 20 text columns), 320×200 pixels with 4 colours ("Mode 1", 40 text columns), and 640×200 pixels with 2 colours ("Mode 2", 80 text columns). Increased screen size can be achieved by reprogramming the CRTC.

The original CPC video hardware supports a colour palette of 27 colours, generated from RGB colour space with each colour component assigned as either off, half on, or on (3 level RGB palette). The plus range extended the palette to 4096 colours, also generated from RGB with 4 bits each for red, green and blue (12-bit RGB).

With the exception of the GX4000, all CPC models lack an RF television or composite video output and instead shipped with a 6-pin RGB DIN connector, also used by Acorn computers, to connect the supplied Amstrad monitor. This connector delivers a 1v p-p analogue RGB with a 50 Hz composite sync signal that, if wired correctly, can drive a 50 Hz SCART television. External adapters for RF television were available as a first-party hardware accessory.

Audio
The CPC uses the General Instrument AY-3-8912 sound chip, providing three channels, each configurable to generate square waves, white noise or both. A small array of hardware volume envelopes are available.

Output is provided in mono by a small (4 cm) built-in loudspeaker with volume control, driven by an internal amplifier. Stereo output is provided through a 3.5 mm headphones jack.

It is possible to play back digital sound samples at a resolution of approximately 5-bit by sending a stream of values to the sound chip. This technique is very processor-intensive and hard to combine with any other processing. Examples are the title screens or other non-playable scenes of games like Chase H.Q., Meltdown, and RoboCop. The later Plus models incorporated a DMA engine in order to offload this processing.

Floppy disk drive
Amstrad uses Matsushita's 3" floppy disk drive [ref: CPCWiki], which was compatible with Hitachi's existing 3" floppy disk format. The chosen drive (built-in for later models) is a single-sided 40-track unit that requires the user to remove and flip the disk to access the other side. Each side has its own independent write-protect switch. The sides are termed "A" and "B", with each one commonly formatted to 180 KB (in AMSDOS format, comprising 2 KB directory and 178 KB storage) for a total of 360 KB per disk.

The interface with the drives is an NEC 765 FDC, used for the same purpose in the IBM PC/XT, PC/AT and PS/2 machines. Its features are not fully used in order to cut costs, namely DMA transfers and support for single density disks; they were formatted as double density using modified frequency modulation.

Discs were shipped in a paper sleeve or a hard plastic case resembling a compact disc "jewel" case. The casing is thicker and more rigid than that of 3.5 inch diskettes, and designed to be mailed without any additional packaging. A sliding metal cover to protect the media surface is internal to the casing and latched, unlike the simple external sliding cover of Sony's version. They were significantly more expensive than both 5.25 inch and 3.5 inch alternatives. This, combined with their low nominal capacities and their essentially proprietary nature, led to the format being discontinued shortly after the CPC itself was discontinued.

Apart from Amstrad's other 3-inch machines (the PCW and the ZX Spectrum +3), the few other computer systems to use them included the Sega SF-7000 and CP/M systems such as the Tatung Einstein and Osborne machines. They also found use on embedded systems.

The Shugart-standard interface means that Amstrad CPC machines are able to use standard 3", 3½" or 5¼" drives as their second drive. Programs such as ROMDOS and ParaDOS extend the standard AMSDOS system to provide support for double-sided, 80-track formats, enabling up to 800 KB to be stored on a single disk.

The 3-inch disks themselves are usually known as "discs" on the CPC, following the spelling on the machine's plastic casing and conventional British English spelling.

Expansion
The hardware and firmware was designed to be able to access software provided on external ROMs. Each ROM has to be a 16 KB block and is switched in and out of the memory space shared with the video RAM. The Amstrad firmware is deliberately designed so that new software could be easily accessed from these ROMs. Popular applications were marketed on ROM, particularly word processing and programming utility software (examples are Protext and Brunword of the former, and the MAXAM assembler of the latter type).

Such extra ROM chips do not plug directly into the CPC itself, but into extra plug-in "rom boxes" which contain sockets for the ROM chips and a minimal amount of decoding circuitry for the main machine to be able to switch between them. These boxes were either marketed commercially or could be built by competent hobbyists and they attached to the main expansion port at the back of the machine. Software on ROM loads much faster than from disc or tape and the machine's boot-up sequence was designed to evaluate ROMs it found and optionally hand over control of the machine to them. This allows significant customisation of the functionality of the machine, something that enthusiasts exploited for various purposes. However, the typical users would probably not be aware of this added ROM functionality unless they read the CPC press, as it is not described in the user manual and was hardly ever mentioned in marketing literature. It is, however, documented in the official Amstrad firmware manual.

The machines also feature a 9-pin Atari joystick port that will either directly take one joystick, or two joysticks by use of a splitter cable.

RS232 serial adapters
Amstrad issued two RS-232-C D25 serial interfaces, attached to the expansion connector on the rear of the machine, with a through-connector for the CPC 464 disk drive or other peripherals.

The original interface came with a Book of Spells for facilitating data transfer between other systems using a proprietary protocol in the device's own ROM, as well as terminal software to connect to British Telecom's Prestel service. A separate version of the ROM was created for the U.S. market due to the use of the commands "|SUCK" and "|BLOW", which were considered unacceptable there.

Software and hardware limitations in this interface led to its replacement with an Amstrad-branded version of a compatible alternative by Pace. Serial interfaces were also available from third-party vendors such as KDS Electronics and Cirkit.

BASIC and operating system
Like most home computers at the time, the CPC has its OS and a BASIC interpreter built in as ROM. It uses Locomotive BASIC - an improved version of Locomotive Software's Z80 BASIC for the BBC Micro co-processor board. It is particularly notable for providing easy access to the machine's video and audio resources in contrast to the POKE commands required on generic Microsoft implementations. Other unusual features include timed event handling with the AFTER and EVERY commands, and text-based windowing.

CP/M
Digital Research's CP/M operating system was supplied with the 664 and 6128 disk-based systems, and the DDI-1 disk expansion unit for the 464. 64k machines shipped with CP/M 2.2 alone, while the 128k machines also include CP/M 3.1. The compact CP/M 2.2 implementation is largely stored on the boot sectors of a 3" disk in what was called "System format"; typing |CPM from Locomotive BASIC would load code from these sectors, making it a popular choice for custom game loading routines. The CP/M 3.1 implementation is largely in a separate file which is in turn loaded from the boot sector. Much public domain CP/M software was made available for the CPC, from word-processors such as VDE to complete bulletin board systems such as ROS.

Other languages
Although it was possible to obtain compilers for Locomotive BASIC, C and Pascal, the majority of the CPC's software was written in native Z80 assembly language. Popular assemblers were Hisoft's Devpac, Arnor's Maxam, and (in France) DAMS. Disk-based CPC (not Plus) systems shipped with an interpreter for the educational language LOGO, booted from CP/M 2.2 but largely CPC-specific with much code resident in the AMSDOS ROM; 6128 machines also include a CP/M 3.1, non-ROM version. A C compiler was also written and made available for the European market through Tandy Europe, by Micro Business products.

Roland
In an attempt to give the CPC a recognisable mascot, a number of games by Amstrad's in-house software publisher Amsoft have been tagged with the Roland name. However, as the games had not been designed around the Roland character and only had the branding added later, the character design varies immensely, from a spiky-haired blonde teenager (Roland Goes Digging) to a white cube with legs (Roland Goes Square Bashing) or a mutant flea (Roland in the Caves). The only two games with similar gameplay and main character design are Roland in Time and its sequel Roland in Space. The Roland character was named after Roland Perry, one of the lead designers of the original CPC range.

Schneider Computer Division
In order to market its computers in Germany, Austria, and Switzerland where Amstrad did not have any distribution structures, Amstrad entered a partnership with Schneider Rundfunkwerke AG, a German company that - very much like Amstrad itself - was previously only known for value-priced audio products. In 1984, Schneider's Schneider Computer Division daughter company was created specifically for the task, and the complete Amstrad CPC line-up was branded and sold as Schneider CPC.

Although they are based on the same hardware, the Schneider CPC models differ from the Amstrad CPC models in several details. Most prominently, the Schneider CPC 464 and CPC 664 keyboards featured grey instead of coloured keys, but still in the original British keyboard layout. To achieve a German "QWERTZ" keyboard layout, Schneider marketed a small software program to reassign the keys as well as sticker labels for the keys. In order to conform with stricter German EMC regulations, the complete Schneider CPC line-up is equipped with an internal metal shielding. For the same reason, the Schneider CPC 6128 features micro ribbon type connectors instead of edge connectors. Both the greyscale keyboard and the micro ribbon connectors found their way up into the design of later Amstrad CPC models.

In 1988, after Schneider refused to market Amstrad's AT-compatible computer line, the cooperation ended. Schneider went on to sell the remaining stock of Schneider CPC models and used their now well-established market position to introduce its own PC designs. With the formation of its German daughter company Amstrad GmbH to distribute its product lines including the CPC 464 and CPC 6128, Amstrad attempted but ultimately failed to establish their own brand in the German-speaking parts of Europe.

Community
The Amstrad CPC enjoyed a strong and long lifetime, mainly due to the machines use for businesses as well as gaming. Dedicated programmers continued working on the CPC range, even producing graphical user interface (GUI) operating systems such as SymbOS. Internet sites devoted to the CPC have appeared from around the world featuring forums, news, hardware, software, programming and games. CPC Magazines appeared during the 1980s including publications in countries such as Britain, France, Spain, Germany, Denmark, Australia, and Greece. Titles included the official Amstrad Computer User publication, as well as independent titles like Amstrad Action, Amtix!, Computing with the Amstrad CPC, CPC Attack, Australia's The Amstrad User, France's Amstrad Cent Pour Cent and Amstar. Following the CPC's end of production, Amstrad gave permission for the CPC ROMs to be distributed freely as long as the copyright message is not changed and that it is acknowledged that Amstrad still holds copyright, giving emulator authors the possibility to ship the CPC firmware with their programs.

Influence on other Amstrad machines
Amstrad followed their success with the CPC 464 by launching the Amstrad PCW word-processor range, another Z80-based machine with a 3" disk drive and software by Locomotive Software. The PCW was originally developed to be partly compatible with an improved version of the CPC (ANT, or Arnold Number Two - the CPC's development codename was Arnold). However, Amstrad decided to focus on the PCW, and the ANT project never came to market.

On 7 April 1986, Amstrad announced it had bought from Sinclair Research "...the worldwide rights to sell and manufacture all existing and future Sinclair computers and computer products, together with the Sinclair brand name and those intellectual property rights where they relate to computers and computer-related products." which included the ZX Spectrum, for £5 million. This included Sinclair's unsold stock of Sinclair QLs and Spectrums. Amstrad made more than £5 million on selling these surplus machines alone. Amstrad launched two new variants of the Spectrum: the ZX Spectrum +2, based on the ZX Spectrum 128, with a built-in tape drive (like the CPC 464) and, the following year, the ZX Spectrum +3, with a built-in floppy disk drive (similar to the CPC 664 and 6128), taking the 3" discs that Amstrad CPC machines used.