Amstrad CPC
From Wikipedia, the free encyclopedia
Amstrad CPC | |
---|---|
Type | Personal computer |
Released | 1984 |
Discontinued | 1990 |
Processor | Zilog Z80A @ 4 MHz |
Memory | 64 to 128 KiB |
OS | Locomotive BASIC 1.0, 1.1 and CP/M |
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. The CPC range was very successful, and over 3 million were sold during the machine's lifespan [1].
Outwardly, the most distinguishing features of Amstrad's offering were the matt 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 on the 464 and 664), and the unique power supply hookup with one lead going from the monitor to the computer (or RF modulator) and, on disc-based machines, one lead going the other way. A television could be used with an optional adapter, and an optional tuner was available to turn the monitor into a TV.
Contents |
[edit] The Amstrad CPC sold as a "complete system"
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 total sales volume of either the ZX Spectrum or the C64, but the advantages of a proper typewriter-style keyboard and integrated tape or floppy drive saw it obtain considerable market share in the late 80s. It became the best-selling computer in France at this time, and was also popular in Spain. Many of the best software titles for the CPC were created on the continent, but only a limited number saw commercial release in the UK.
[edit] The CPC family
[edit] The Amstrad CPC 464, 472, 664, 6128
The original CPC was sold in the following configurations:
- CPC 464 – Tape deck, 64 KiB RAM, square-edged keyboard
- CPC 472 – Tape deck, 72 KiB RAM (although the extra 8 KiB of RAM cannot be used because the chip wasn't connected, only soldered to a dummy PCB); produced in small numbers for the Spanish market to avoid a legal ruling requiring that all computers with 64 KiB or less RAM must be localized to the Spanish language, including the keyboard and screen messages. The law was subsequently changed to include machines with more than 64 KiB RAM so a localised version of the 472 also exists [2].
- CPC 664 – 3" Floppy disk drive, 64 KiB RAM, bowed keyboard; short-lived model, quickly replaced by the better-specified 6128
- CPC 6128 – 3" Floppy disk drive, 128 KiB RAM (accessed using bank switching), more PC-like keyboard
An external disk drive (DDI-1) was available for the 464, incorporating the DOS in an interface unit. A second drive (FD-1) could be added to both this and 664/6128 machines. Cassette recorders could also be connected to the 664 and 6128. By and large, the later versions were compatible with earlier machines, though there were some incompatibilities in undocumented features. Third-party hardware add-ons such as Romantic Robot's popular Multiface allowed DIY backup of most tape software to disk.
Most games, especially in the early years, targeted the 64-KiB RAM 464 and 664 models. However, an increasing number of applications and demos made use of the extra memory of the 6128 as time went on, to the extent that much CPC software from the 1990s will not run on an unexpanded 464/664. RAM expansions were available, the most popular being produced by dk'Tronics.
The memory layout of the system allowed the CPCs to run CP/M 2.2 and CP/M software adapted especially for the machines' terminal emulation was not uncommon. An Amstrad-specific variant of CP/M 3.1 (aka CP/M Plus) was shipped with the 6128.
[edit] 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 industry-standard D-connector Centronics ports in place of the edge connectors. They were otherwise identical at the hardware level, with a link on the PCB being set to configure the sign-on message as Schneider rather than Amstrad. Documentation and case labels were translated into German.
[edit] 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 Soviet 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 clone, the German-language MicroDOS. It had 64-KiB RAM built in and an additional 64-KiB 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.
[edit] The CPC 5512
The "CPC 5512" was an April Fool concocted by weekly French computer magazine, Hebdogiciel. The purported specifications included 512 KiB RAM, a 5.25" floppy disk drive, and Digital Research's GEM on a CPC 6128 clone. Amstrad France eventually decided not to sue for lost trade, but forced the magazine to offer a refund of the purchase price to any disappointed readers.
[edit] 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 separate modes and pixel scrolling both became full supported hardware features, although the former was easy, and the latter possible to some degree, 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, enabling high-quality samples to be replayed with minimal processor overhead; the sound chip itself, however, 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 out-of-date by 1990, and Amstrad's marketing failed to promote any significant advantage over the competing Atari ST and Commodore Amiga systems. There is some anecdotal suggestion that users resented the substantial price hike for cartridge games compared to their tape and disc counterparts, likely exacerbated by the tendency to rerelease old CPC games on cartridge without taking advantage of the enhanced Plus hardware.
[edit] Hardware description
All CPC models were based on a Zilog Z80 processor clocked at 4MHz. 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 speed is therefore roughly equivalent to a 3.3MHz machine.
The system came with 64 KiB or 128 KiB of RAM depending on the model (capable of being expanded to 512k within the Amstrad-standard address space). The machines also featured an (almost) standard 9-pin Atari-style joystick socket which was able to take two joysticks via a splitter.
[edit] Video (graphics): modes, outputs
Underlying the CPC's 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. Three built-in display resolutions were available, though increased screen size 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 6-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 6-pin DIN connector is capable of driving a SCART television with a correctly wired lead. The video signals are PAL frequency 1v p-p analogue RGB with composite sync.
[edit] Audio (sound)
The CPC used 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 was provided in mono by a small (4 cm) built-in loudspeaker with volume control, driven by an internal amplifier. Stereo output was provided through a 3.5mm headphones jack.
Playback of digital sound samples at a resolution of approximately 5-bit, as heard on the title screen of the game RoboCop, was possible by sending a stream of values to the sound chip. This trick was very processor-intensive and hard to combine with any other processing.
[edit] The 3" floppy disk drives
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 chosen 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 commonly formatted to 180 kB (in AMSDOS format, comprising 2 kB directory and 178 kB storage) for a total of 360 kB 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 typically 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. 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 (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, led to the format being discontinued shortly after the CPC itself was discontinued.
Apart from Amstrad's other 3" machines (the PCW and the ZX Spectrum +3), the few other computer systems to use them included the Sega SF-7000 and mostly obscure and exotic CP/M systems such as the Tatung Einstein and Osborne machines. They also found some use on embedded systems.
The Shugart-standard interface meant that Amstrad CPC machines were able to use both 3½" and 5¼" drives through their "external drive" port - either one specially designed for use by the CPC or an adapted IBM PC drive. Programs such as ROMDOS and ParaDOS extended the standard AMSDOS system to provide support for double-sided, 80-track formats, enabling up to 800k to be stored on a single disk.
[edit] Serial port adaptor
Amstrad issued two RS-232-C D25 serial interfaces, attached to the expansion connector at the rear of the machine, with a through-connector for the CPC464 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. Other serial interfaces were available from third-party vendors such as KDS Electronics and Cirkit.
[edit] Software
[edit] 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 - an improved version of Locomotive Software's Z80 BASIC for the BBC Microcomputer co-processor board. This 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 generic Microsoft implementations.
[edit] 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. Popular assemblers were Hisoft's Devpac, Arnor's Maxam, and (in France) DAMS. All 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.
[edit] Criticism of CPC software (games)
The quality of CPC games has been sometimes criticized due to the existence of releases that were simply a ZX Spectrum port, thus not measuring taking full advantage of the CPC capabilities.
The CPC shared the Z80a processor with the ZX Spectrum. Consequently many game manufacturers, seeking to cut costs, 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, CPC versions would typically look better due to the lack of the attribute clash characteristic of the ZX Spectrum.
For the majority who targeted the CPC, challenges included the lack of hardware support for sprites, and difficulties in implementing smooth scrolling — particularly tricky at a rate of under 8 pixels per frame in the vertical direction. The complicated memory arrangement also made software sprite routines complex and comparatively slow-running, hindering the creation of smooth-running and colourful games.
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. When the CPC was programmed by an expert in the field, the smooth scrolling, colourful graphics and crisp music and sound effects could rival, and in several cases (such as Chase H.Q.) surpass, those of the C64. Nonetheless, the general perception of the CPC, several decades on, is one of a machine whose commercial success could have been greater.
That said, it is important to remark that numerous software companies from that era, such as Ocean Software, Codemasters, Elite Systems, Palace Software, Incentive, Hewson Consultants, Loriciels and Dinamic Software, among others, released quality titles on a regular basis which kept CPC users more than happy. It is also significant that the CPC had much greater support for serious, non-game software than the ZX Spectrum or (in Europe) the C64, not least due to its 80-column text mode. A large userbase persisted well into the 1990s, even from a smaller start than the Spectrum or C64, largely because of those people still using CPC word-processors such as Protext.
[edit] Notable games, with screenshots
[edit] Magazines
Magazines available for the system (at various times) included Amtix!, Computing With The Amstrad, Amstrad Computer User (Amstrad official publication), Amstrad Action, Amstradbladet, and CPC Attack.
[edit] 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 frequent in specialist magazines but also among users themselves. Because many games were released simultaneously for the three machines, it was easy - and tempting - to compare quality, technical characteristics, and platform-dependent peculiarities.
[edit] Amstrad vs C64
In general, C64 users were prone to snub both other competing machines as "largely inferior". In general, the C64 had better sound and scrolling than its competitors, thanks to its dedicated hardware. In particular, its sound-generation facilities were better, due to the SID chip.
However, 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. Although an objective viewpoint might see the C64 as the most successful 8-bit games machine, the CPC managed a much more respectable showing for non-games software.
[edit] Amstrad vs Spectrum
Major rivalry existed between ZX Spectrum and CPC users, especially in the UK. 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.
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.
The Amstrad CPC had better graphics capabilities than the ZX Spectrum, but several early CPC games were directly derived from their ZX Spectrum counterparts, resulting in a number of low quality titles which hurt the machine's reputation. Even when that was not the case, CPC titles sometimes lacked smooth scrolling due to programming complexities.
Again, the 80-column display and large install base of disk users made the CPC a more convincing choice for non-games work.
[edit] Amstrad vs BBC Micro
The CPC has occasionally been described as 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 NEC µPD765A (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 similar to that in 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.
[edit] 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 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, which in due course became vastly successful, and the ANT project never came to market.
In 1986, Amstrad purchased the entire computer product range from Sinclair and the rights to use its brand name, discontinuing the unsuccessful Sinclair QL 68008-based model and relaunching the Sinclair ZX Spectrum 128 in "+2" and "+3" variants with better keyboards and integral storage drives. The case and design of these recognisably drew from the CPC series. Again, Locomotive were responsible for much of the firmware in the +3.
[edit] Hardware tricks on the CPC series
[edit] 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 - though these are not supported by Locomotive BASIC. Careful timing of palette switches allows all 27 hardware colours to be visible in any display mode. Due to high CPU use, programs with variable CPU load, such as games, would not usually change the palette more than six times per frame (the frequency of the CPC's hardware interrupt).
Changing the video address in mid-frame, which itself is only possible by fooling the CRTC into thinking that the end of frame has occurred, splits the screen in two separate areas that can be hardware-scrolled independently.
The custom VGA (Video Gate Array) chip could also be reprogrammed in the middle of the frame. Changing the display mode, for example, allows the programmer to divide the screen into a colourful playing area and a high resolution score area -- as in Sorcery by Virgin Games[3].
[edit] 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 roughly 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. A very few pieces of software used this trick to produce "realistic" percussion sounds.
[edit] Emulators
[edit] Software-based
- Arnold (Windows / Unix / Linux / Mac): http://arnold.emuunlim.com
- Caprice (Windows / Unix / Linux): http://sourceforge.net/projects/caprice32
- Caprice (Gamepark GP2X): http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,5,1174
- WinAPE (Windows): http://www.winape.net
- WinCPC (Windows): http://www.wincpc.ch
- VirtualCPC (Windows): http://www.geocities.com/virtualcpc
- CPCast (Dreamcast): http://ltk.dciberia.net/dreamcast/cpcast/cpcast.htm
- Pituka (Gamepark32): http://david.dantoine.org/contenido/4
- AMI-CPC (Amiga): http://home.nordnet.fr/~ldeplanque
[edit] Hardware-based
- TurboCPC core (terasIC T-Rex C1): http://www.symbos.de/trex.htm
- TurboCPC core (C-One): http://c64upgra.de/c-one/
[edit] See also
- List of Amstrad CPC games
- Amstrad PCW (CP/M wordprocessor/personal computer range)
- CP/M
- Sinclair Research
- ZX Spectrum
- SymbOS (multitasking operating system)
[edit] Notes and references
[edit] External links
- Amstrad official website
- CPC Wiki - user-edited reference to CPC hardware, software and folklore
- CPC Zone
- Amstrad ESP
- TSBTK A humourous look at CPC games and culture
- The Unofficial Amstrad WWW Resource
- Amstrad CPC Imperium / Amsoft Headquarter
- The Amstrad CPC Games Resource
- CPC Game Reviews
- Amstrad Zone
- Amstrad CPC Info
- SymbOS Multitasking Operating System
- Amstrad<->PC
- CPC/Amstrad support site run by Amstrad employee
- CPCScene Radio / Amstrad CPC music from games and demos
- WACCI.org.uk / UK user group providing Armstrad Support