Jump to content

Amstrad CPC

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 146.80.9.65 (talk) at 15:39, 22 March 2006 (Amstrad vs C64). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Amstrad CPC 464, with CTM644 colour monitor

The Amstrad CPC was a series of 8-bit home computers produced by Amstrad during the 1980s and early 1990s. CPC stood for 'Colour Personal Computer', although it was possible to purchase a CPC with a green screen (GT65/66) as well as with the standard colour screen (CTM640). The first machine, the CPC 464 was introduced in 1984. It was designed to be a direct competitor to the Commodore 64 and Sinclair ZX Spectrum systems.

Outwardly, the most distinguishing features of Amstrad's offering were the matte black console case with sharp corners and narrowly rectangular form factor (the latter due to the built-in cassette tape deck (CPC 464) or floppy disk drive (CPC 664 and CPC 6128), the keyboard's distinctly coloured special keys (all the non-typewriter-standard keys), and the unique power supply hookup with one lead going from the console to the monitor (or RF modulator) and one lead going the other way. A television could be used with an optional adapter.

The Amstrad CPC sold as a "complete system"

File:Amstrad CPC Advert.png
UK advert for the Amstrad CPC 464

Amstrad initially promoted the CPC as being an improvement on the competing ZX Spectrum and C64 because it was a complete system - including everything required to use the machine in one box. Compared to a C64 or a ZX Spectrum, the Amstrad CPCs shipped with their own monitor, had a built in tape recorder or floppy disk drive and even a small loudspeaker. This marketing gave a more "professional" appeal to the Amstrad CPC by marketing it in the same way as business-oriented systems, rather than gaming or home oriented ones.

As a late entrant to the European 8-bit market, the CPC range never achieved the sales volume of either the ZX Spectrum or the C64, but the advantages of a proper typewrite-style keyboard and integrated tape or floppy drive saw it obtain considerable market share in the late 80s. Despite strong competition in the UK, it became the most popular and best-selling computer in France at this time.

The CPC family

The Amstrad CPC 464, 472, 664, 6128

The original CPC was sold in the following configurations:

  • CPC 464Tape deck, 64 KB RAM, square-edged keyboard
  • CPC 472 – Tape deck, 72K RAM (although the extra 8K of RAM cannot be used); produced in small numbers for the Spanish market to avoid a legal ruling requiring that all computers with 64 KB or less RAM must be localized to the Spanish language, including the keyboard and screen messages.
  • CPC 6643" Floppy disk drive, 64K RAM, bowed keyboard; short-lived model, quickly replaced by the better-specified 6128
  • CPC 6128 – 3" Floppy disk drive, 128K RAM (accessed using bank switching), more PC-like keyboard

External disk drives such as the DDI-1/FD-1 were available for the 464. A cassette adapter was available for the 664 and 6128. All 128K models were backward compatible with the 64K variants. A third-party hardware addon, the Multiface, allowed backup of most tape software to disk.

Most games and software targeted the 64K RAM 464 and 664 models. Only a handful of titles exclusively targeted the 128K machines.

The memory layout of the system allowed the CPCs to run CP/M 2.2 and CP/M software adapted especially for the machines was not uncommon. An Amstrad-specific variant of CP/M 3.0 (aka CP/M Plus) was developed for the 6128 and used in later years.

West Germany: Schneider CPC 464, 664 and 6128

Amstrad's German partner company Schneider produced its own models of the CPC 464, 664 and 6128. These machines had grey keys in place of the Amstrad coloured alternatives and an industry standard Centronics port in place of the expansion edge connector but were otherwise identical at the hardware level. Documentation and case labels were translated into German.

East Germany: KC compact

Like most other computers of the era, the CPC inspired a clone in the Eastern bloc, the KC compact made in East Germany using Russian and East German components.

The machine differed from a CPC visually with a different style of case, external power supply and (optional and even more scarce than the main device) external 5.25" 'Robotron' disc drive. Unlike the Amstrad models it could be used with a television screen out of the box. It ran BASIC 1.1 and a CP/M 2.6 clone, the German speaking MicroDOS. It had 64K RAM built in and an additional 64K RAM was provided with the external disc/tape drive adapter.

The Z80 processor was replaced with a U 880 (which is 100% bug-compatible), and some proprietary Amstrad I/O chips replaced with clones based on the Z8536. This clone machine was around 95% compatible with the original.

The CPC 5512

The "CPC 5512" was a non-functional fake concocted by a French magazine; the specifications included 512K RAM, a 5.25" floppy disk drive, and GEM on a CPC 6128 clone.

PLUS models

In 1990 Amstrad introduced the "Plus" series which tweaked the hardware in many ways and added a cartridge slot to all models. Most improvements were to the video display which saw an increase in palette to 4096 colours and gained a capacity for hardware sprites. Splitting the display into two separate windows and pixel scrolling both became full supported hardware features although both were possible on the non-"Plus" hardware using clever programming of the existing Motorola 6845.

An automatic DMA transfer system for feeding the sound chip was also added but the sound chip itself remained unchanged. Additionally, the BASIC command set for disc access was improved.

A cut down CPC+ without the keyboard nor support for non-cartridge media was released simultaneously as the GX4000 video game console.

These models did not do very well in the marketplace, failing to attract any substantial third party support. The 8-bit technology behind the CPC was starting to look a little out of date by 1990 and users resented the substantial price hike for cartridge games compared to their tape and disc counterparts.

Hardware description

All CPC models were based on a Zilog Z80 processor clocked at 4 MHz. Because a common pool of RAM is shared with the video circuits, the Z80 may only make a memory accesses every four cycles - which has the effect of rounding all instruction cycle lengths up to the next multiple of four.

The system came with 64 KB or 128 KB of RAM depending on the model (capable of being expanded to 512k). The machines also featured a standard 9-pin Atari-style joystick socket which was able to take two joysticks via a splitter.

Video (graphics): modes, outputs

Underlying the CPCs video output was the Motorola 6845 address generator. This chip was connected to a pixel generator that supported 4 bpp, 2 bpp and 1 bpp output (bpp = bits per pixel). The address generator was clocked at a constant rate so the 4 bpp display generated half as many pixels as the 2 bpp and a quarter as many as the 1 bpp.

The ROM featured three built-in display resolutions but many others could be achieved by reprogramming the 6845.

The standard video modes were:

  • Mode 0: 160×200 pixels with 16 colors (4 bpp)
  • Mode 1: 320×200 pixels with 4 colors (2 bpp)
  • Mode 2: 640×200 pixels with 2 colors (1 bpp)

A colour palette of 27 colors was supported, derived from RGB colour space with each component assigned as either off, half on or on. The later Plus models extended this to 4096 colours and added support for hardware sprites.

This hardware compares well with the other 8-bit computers. In particular the CPC lacks the colour clash of the ZX Spectrum and clever programming of the 6845 could produce overscan, different resolutions (although with the same pixel density) and smooth pixel scrolling.

The machine lacked either an RF TV or composite video output and instead shipped with a proprietary 5-pin DIN connector intended for use solely with the supplied Amstrad monitor. An external adapter for RF TV was available to be bought separately.

The five-pin DIN connector is capable of driving a SCART television with a correctly wired lead.

Audio (sound)

The CPC used the General Instruments 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 was provided in mono by a small (4 cm) built-in loudspeaker with volume control, driven by an unusually powerful amplifier. Stereo output was provided through a 3.5mm headphones jack, not present on some early CPC464 models. In those models, what looked like a standard 3.5" headphone jack was actually used for connecting an external tape recorder, although later models used a five-pin DIN connector for the same purpose.

Playback of digital sound samples at a resolution of a little better than 5-bit, as heard on the title screen of the game RoboCop, was possible through clever programming of the sound chip. This trick was very processor intensive and hard to combine with any other processing.

The 3" floppy disk drives

The CF has a harder casing than a 3½" floppy; the metal door is opened by a sliding plastic tab on the right side.

Amstrad's idiosyncratic choice of Hitachi's 3" floppy disk drive, when the rest of the PC industry was moving to Sony's 3.5" format, is often claimed to be due to Amstrad bulk-buying a large consignment of 3" drive units in Asia. The cheapest drive (built-in in later models) was a single-sided 40-track unit that required the user to physically remove and flip the disk to access both sides. Each side had its own independent write-protect switch. The sides were termed "A" and "B", with each one holding 180KB (178KB in AMSDOS format) for a total of 360KB per disc.

The interface with the drives was a NEC 765 FDC, used for the same purpose in the IBM PC/XT, PC/AT and PS/2 machines. Many of its features were unused in order to cut costs, namely DMA transfers and support for single density disks; they were formatted as double density using Modified frequency modulation.

Disks 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" diskettes and 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 (some reviews at the time reported driving over them with no problems). Because of this they were significantly more expensive than both 5.25" and 3.5" alternatives. This, combined with their low nominal capacities and their essentially proprietary nature, lead to the format being discontinued when the CPC itself was discontinued.

Apart from Amstrad's other 3" machines (the PCW and ZX Spectrum +3), the only other computer systems to use them were mostly obscure and exotic CP/M systems such as the Tatung Einstein and Osborne machines.

The data formatting of 3" disks was very similar to that of 5¼" disks, and the Amstrad CPC machines were able to use 5¼" drives through their "external drive" port - either one specially designed for use by the CPC or an adapted IBM-PC drive.

A more popular alternative was to attach an adapted IBM-PC 3½" drive for operation in either single-sided 180 KB or double-sided 360 KB mode, although with the later availability of the PARADOS Disc Operating System, 720k per disc became available.

Serial port adaptor

An official RS-232-C D25 serial port adaptor was produced that attached to the expansion connector at the rear of the machine, and had a through-connector for the CPC464 disk drive or other peripherals. The adaptor 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.

Similarities to the BBC Micro

The CPC has been termed an "improved Z80 implementation of the (earlier) BBC Micro" due to similarities in firmware and hardware. Both use the Motorola 6845 video address generator and the two have very similar sound output chips - the General Instrument AY-3-8912 in the CPC provides three tone channels each optionally with added noise and the Texas Instruments SN76489 in the BBC offers three tone channels and one exclusive noise channel.

The BBC Micro uses an Intel 8271 floppy disc controller. The CPC uses the Intel 8272, which is similar to the 8271 but contains the addition of a double density (MFM) mode.

The "two cursor" BASIC editing system seen on the Amstrad CPC (whereby holding Shift and using the cursor keys moves a shadow text cursor allowing text to be copied from another area of the screen to the normal cursor) is a lift from BBC BASIC, albeit substantially improved by allowing free movement of the normal cursor.

Both systems provide similar systems of full hardware abstraction through Operating System calls. This saves programs which don't require time critical hardware access from having to touch the underlying machine and provides a level of machine portability for those programs.

Software

Built-in BASIC and operating system

Like most home computers at the time, the CPC had its OS and a BASIC interpreter built in as ROM. It used Locomotive BASIC - a variant specifically written for the CPC hardware which as a result was faster, more comfortable and more powerful than the generic but common Microsoft BASIC used by the Commodore 64 and MSX amongst others. It was particularly notable for providing easy access to the machine's video and audio resources in contrast to the arcane POKE commands required on some Microsoft implementations (the MSX implementation of Microsoft Basic being an exception, which even allowed for hardware sprite manipulation and collision detection).

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 Z80a assembly language.

An interpreter for the educational language LOGO was also available.

Criticism of CPC software (games)

The quality of CPC software has been sometimes criticized due to the existence of games that were simply a ZX Spectrum port, thus not measuring up to the equivalent ZX Spectrum or C64 implementations in terms of taking full advantage of the CPC capabilities.

Because the CPC shared the Z80a processor with the ZX Spectrum, and could be made to run the same code using similar display modes, many game manufacturers developed games for the two systems in parallel or ported older Spectrum games, yielding products that did not take advantage of hardware scrolling or the availability of 4 and 16 colour modes. Despite this, ZX Spectrum ports did not show attribute clash on CPCs.

For those actually targeting the CPC there were various problems, such as the lack of hardware support for sprites and scrolling — long time thought impossible to do smoothly in the vertical direction — and the complicated memory arrangement. This made the creation of smooth-running and colourful games harder. Titles from the late 80s onwards tended to be coded more carefully than their mid 80s counterparts, making better use of the machine's graphics capabilities, e.g. featuring smooth scrolling and better color usage.

Games featuring poor scrolling, quasi-monochrome Spectrum-like graphics and sluggish controls - specially in the beginning of the CPC's commercial lifespan - were marketed alongside others including smooth scrolling, colourful graphics and crisp music and sound effects which almost rivalled those of the C64.

Although the machine received more software support than most other Z80-based systems, the overall impression left is that the commercial success of the system could have been greater.

That said, it is important to remark that numerous software companies from that era, such as Ocean Software, Elite, Palace Software, Incentive, Hewson Consultants, Loriciels or Dinamic Software among others released quality titles on a regular basis which kept CPC users more than happy with their Color Personal Computer.

Notable games, with screenshots

File:Cybernoid 2 cpc.PNG
Cybernoid 2
File:Turrican cpc.PNG
Turrican
File:Switchblade cpc.PNG
Switchblade
File:Crafton cpc.PNG
Crafton&Xunk


Magazines

Magazines available for the system (at various times) included Amtix, Computing With The Amstrad, Amstrad Computer User (Amstrad official publication), Amstrad Action, and CPC Attack.

The Amstrad CPC vs. its competitors

Since the Amstrad CPC was specifically built to compete with the ZX Spectrum and C64, and was a relatively late entrant into the 1980s 8-bit home computer market, comparisons between those computer systems were very frequent on specialized magazines but also among players themselves. Also, the three machines were practically the most software-wise supported 8-bit home computers in history, and had a virtually identical selection of games, although with major differences in quality, technical characteristics, and platform-dependant peculiarities.

Amstrad vs C64

In general, C64 users were prone to snub both other competing machines as "largely inferior", while a sort of hidden rivalry existed between ZX Spectrum and CPC users. The former considered the CPC to be just an overhyped clone of the their beloved Spectrum, while CPC users considered ZX Spectrum users as "poor, jealous cousins" who tainted their beloved machine with inferior game ports.

In fact, the C64 had in general better sound, graphics and scrolling than its competitors thanks to its dedicated hardware, particularly its sound capabalities were much better, thank to the SID chip.

The C64 had a wide selection of games designed to run from floppy disks, though C64 floppy drives were notoriously slow.

It also suffered from a poor built-in BASIC and was not ideal for users who wanted to learn to program in comparison to the other two machines.

Amstrad vs Spectrum

The ZX Spectrum had the simplest hardware of all three, though this meant a lower price. As a result, it suffered from colour clash and the internal speaker of the 48k versions had very poor sound compared to the C64 and CPC, although later models of the ZX Spectrum shared the AY-3-8192 sound chip with the CPC. Many third-party peripherials and some aspects of its built-in BASIC made it more appealing for DIY enthusiasts and hobbyist programmers.

The Amstrad CPC had better graphics capabilities than the ZX Spectrum, but a lot of its games were directly derived from their ZX Spectrum counterparts graphics-wise and sometimes sound-wise, which resulted in a long series of low quality titles which hurt the machine's reputation. Even when that was not the case, CPC titles rarely featured smooth scrolling or sprite handling due to programming complexities, although that was technically possible.

Later Amstrad

Ultimately, the company purchased Sinclair Research, discontinuing the unsuccessful Sinclair QL 16-bit business machine and relaunching the 128KB Sinclair Spectrum in "+2" and "+3" variants with better keyboards and integral storage. The case and design of these recognisably drew from the CPC series.

Hardware tricks on the CPC series

CRTC programming tricks

Simple reprogramming of the Motorola 6845 CRTC can produce extended graphic modes, with up to 784×384 pixels, that use the overscan area. Careful timing of palette switches allows all 27 hardware colours to be visible in any display mode but due to the high CPU use, programs with variable CPU load, such as games, can be limited to change the palette once or twice per frame.

The CRTC parameters also can be changed while a particular scanline of a frame is being draw, a technique with many applications. Changing the display mode in the middle of a frame allows to divide the screen, for example, into a colourful playing area and a high resolution score area -- like in Sorcery by Virgin Games[1]. Changing the video address in mid-frame splits the screen in two separate areas that can be hardware-scrolled independiently.

Sound tricks

Careful programming of the AY sound chip could cause it to produce a level wave. Adjustment of the output volume would cause related adjustments in the amplitude of the wave. Using this observation it was possible to output PCM digital audio at better than 5-bit quality, albeit at a very high CPU cost.

The machine had an internal mechanical relay for controlling the tape recorder's motor which when switched would produce an audible click. Some software used this trick to produce "realistic" percussion sounds, but usually such an abuse of the relay resulted in early failure.

See also