The Amstrad CPC 472 - A spanish computer
The Amstrad CPC 472 is belongs to the CPC range, Color Personal Computer. The CPC 472 was sold exclusively in Spain between 1985 and 1986. It is functionally identical to the Amstrad CPC 464.
The Spanish government at the time was trying to curb the import of foreign products, and one of the articles of the customs tariff, explicitly taxed computers that had 64KByte or less of memory. This law was, by Royal decree, lobied by the Dragon Computer company. Dragon was a subsidiary of a Brittish toy company, but was bought by the Spanish Eurohard. In order to make the Dragon computer successful, the company agressively sought protection from foreign imports. The import tariff on computers with 64KByte of RAM or less was the result.
Amstrad took issue with this and specifically designed the CPC472. The engineers had put an extra 8Kbyte RAM chip in the original CPC464 to create a total of 72KByte of memory, and as such, it was not subject to Spain's import tariff.
Amstrad CPC Computers
Amstrad was known for cheap hi-fi products but had not broken into the home computer market until the CPC 464. Their consumer electronic sales were starting to plateau and owner and founder Alan Sugar stated "We needed to move on and find another sector or product to bring us back to profit growth". Work started on the Amstrad home computer in 1983 with engineer Ivor Spital who concluded that Amstrad should enter the home computer market, offering a product that integrated low-cost hardware to be sold at an affordable "impulse-purchase price". Spital wanted to offer a device that would not commandeer the family TV but instead be an all-in-one computer with its own monitor, thus freeing up the TV and allowing others to play video games at the same time. Bill Poel, General Manager of Amsoft (Amstrad's software division), said during the launch press release that if the computers were not on the shelves by the end of June "I will be prepared to sit down and eat one in Trafalgar Square".
Many programs and peripherals were developed for the CPC computers. Amstrad's Operating System was AMSDOS. This OS is embedded in Basic using so-called RSX commands starting with |, but it could not format disks, for that you needed a special application. The 464 also could use CP/M 2.2 or 3.0 when used with an external Floppy disk unit (3" Hitachi, 180 KB / face). A lot of great CP/M software was adapted for the Amstrad CPC.
About 42 KB RAM was available for the user, the video memory and the ROM were mapped on the same addresses with a dedicated chip to switch the memory banks automatically.
The first Amstrad CPC prototype (called "Arnold", which gave the name ROLAND (Arnold acronym) to several CPC games) was built around a 6502 processor and then changed to a Z80 late in the computer's development. A few months later, the CPC series would be completed with a computer which offered a built-in floppy disk unit: the CPC 664.
The CPC series are powered by the Zilog Z80 processor after the original attempts to use the 6502 processor, being used in the Apple II amongst many other 8-bit computer families, failed. The Z80 runs at 4 MHz, has 64K of memory and runs AMSDOS, Amstrad's own OS. The unit includes a built in tape drive and the choice of a colour or green monochrome monitor.
Normal Video Modes
- Mode 0 - 160x200 in 16 colors
- Mode 1 - 320x200 in 4 colors
- Mode 2 - 640x200 in 2 colors
- Mode 3 - 160x200 in 4 colors*
Each color can be chosen from a palette of 27 colors total. The dimensions in pixels given could be raised with clever use of FullScreen Trick (often dubbed erronuously as overscan mode). This then allows with a video memory of 24 KB (approximately) to have alternate video modes.
Alternate Video Modes
- Alt Mode 0 - 192x272 in 16 colors
- Alt Mode 1 - 384x272 in 4 colors
- Alt Mode 2 - 768x272 in 2 colors
Amstrad Basic
Amstrad BASIC, officially known as Locomotive BASIC, was the built-in programming language and operating environment for the Amstrad CPC series (beginning with the CPC464 in 1984). Unlike the very limited BASICs bundled with machines such as the Commodore 64, Locomotive BASIC was designed to be both fast and feature-rich. It offered advanced constructs such as WHILE…WEND loops, REPEAT…UNTIL, structured error handling via ON ERROR GOTO, and integer as well as floating-point math routines. The interpreter was tightly integrated with the CPC’s firmware, which exposed consistent routines for screen handling, sound generation, cassette/disk I/O, and even the CRTC-driven video modes. Because of this, programmers could write comparatively high-level code without constantly dropping down into Z80 assembly, yet still exploit the CPC’s hardware in a predictable, consistent way.
Graphically, Locomotive BASIC was particularly powerful compared to its contemporaries. It supported three standard screen modes (160×200 with 16 colors, 320×200 with 4 colors, 640×200 with 2 colors), all addressable directly from BASIC commands such as MODE, PLOT, DRAW, and INK. Unlike Commodore’s PETSCII-style character graphics or the Spectrum’s blocky color attributes, the CPC offered flexible raster graphics primitives from within BASIC itself, without requiring PEEK/POKE gymnastics. Furthermore, sound was integrated via the SOUND command, providing programmable frequency, duration, envelope, and channel selection on the AY-3-8912 sound chip. These facilities placed Locomotive BASIC closer in spirit to Microsoft Extended BASIC implementations, though with custom extensions tuned for the Amstrad firmware.
In comparison with rival systems: Commodore 64 BASIC V2 was notoriously spartan, lacking any graphics or sound commands, leaving users dependent on memory-pokes or machine language for non-text applications. Atari BASIC (on Atari 400/800) did provide sound and graphics primitives, but with a slower interpreter and more cumbersome syntax. Sinclair Spectrum BASIC integrated graphics commands but was encumbered by its single-key keyword entry system, which simplified typing but limited editing flexibility and speed. Amstrad’s Locomotive BASIC distinguished itself as both complete and performant, balancing structured programming facilities with direct hardware access, and in doing so made the CPC line particularly attractive for hobbyists and semi-professional developers who wanted more than a token BASIC environment.
Amstrad Memory Layout
The Amstrad CPC 464 has a 64 KB Z80 address space, but the way RAM and the video circuitry interact is distinctive. The design routes video fetches directly from the same DRAM that the CPU uses, meaning “video memory” is shared. The CPC line of Amstrad used a 6845-class CRTC for their video. Amstrad sourced multiple pin-compatible variants such as the HD6845S, the UM6845, the UM6845R, and in some units they used the Motorola MC6845. In later models the CPC integrated a compatible 6845-compatible CRTC into the ASIC.
Video RAM Mapping
The CRTC shares memory with the CPU, but has it's own 14-bit "MA" counter (Memory Addresss Counter). The Gate-Array translates the address into a physical DRAM addresss. As a result, the screen memory can be located anywhere in the 64kByte RAM space, in 2kByte chunks. Common default is the 0xC000-0xFFFF area, a 16kByte piece of RAM used for Video. The Video logic uses Z80 cycles to fetch display data, the Z80 and the CRTC share DRAM bandwith on an interleaved cycle basis, effectively reducing the Z80 speed by about 0.7MHz.
Key details
The CRTC generates sequential addresses for each raster line, but because of the CPC's video mode packing (1, 2, or 4 pixels per byte, depending on the mode), the logical line addresses are non-linear. The Gate-Array maps the CRTC address lines into DRAM in a row interleaved way:- Bits A00-A02: byte within character row
- Bits A03-A10: select character row and horizontal position
- Bits A11-A13: select block of 2kB within the 16kB video region
Video - The Motorola 6845 CRTC
The Motorola 6845 CRT Controller (CRTC), later second-sourced by Hitachi (HD6845), Rockwell, and others, was one of the most influential video timing chips of the late 1970s and 1980s. It was not a graphics generator in itself; instead, it produced the precise timing signals needed to drive a raster display, such as horizontal and vertical sync pulses, row and character addresses, and memory fetch cycles. Systems attached external character generators (ROMs) or pixel logic to interpret the memory data, while the 6845 ensured the scanlines appeared in the correct order and at stable refresh rates. Its programmability, registers controlling horizontal total, vertical total, sync widths, cursor position, and so forth, made it adaptable across a wide range of systems, from text terminals to microcomputers.
The 6845’s flexibility came from its ability to map arbitrary chunks of RAM to display regions using start address registers, row address counters, and cursor control. For instance, a designer could allocate just 2 KB of RAM for a 40×25 text screen, or more for bitmapped graphics, with the 6845 providing the address sequencing. Many early microcomputers such as the BBC Micro, Amstrad CPC, and Commodore PET derivatives used the chip, often combining it with a custom video gate array or ULA to generate the pixel stream. IBM also adopted the 6845 in its original Monochrome Display Adapter (MDA) and Color Graphics Adapter (CGA), cementing its influence on the emerging PC standard.
Although by itself the 6845 did not support modern concepts like sprites or hardware scrolling, its register set was exploited creatively. Programmers discovered that by rewriting registers mid-frame (a technique known as “raster tricks”), they could produce split-screen effects, palette changes, or smooth scrolling beyond the documented capabilities. Over time, more integrated graphics controllers absorbed the 6845’s functionality into larger chips that combined timing, pixel generation, and sometimes even acceleration. Nonetheless, the 6845’s architectural model, separating timing control from pixel memory, shaped early video hardware design and left a strong legacy in the personal computer industry.
The 6845s main function is to properly time access to the display memory, and to calculate the memory address of the next portion to be drawn. Other circuitry in the machine then uses the address provided by the 6845 to fetch the pattern and then draw it. The implementation of that hardware is entirely up to the designer and varied widely among machines. The 6845 is intended for character displays, but could also be used for pixel-based graphics, with some clever programming.
Computers that used the 6845 are, among others:
- BBC Micro
- Amstrad CPC
- Videx VideoTerm display cards for Apple II
Sound - The AY-3-8910 PSG
The AY-3-8910 is a 3-voice Programmable Sound Generator, or PSG. It was designed by General Instruments in 1978 for use with their own 8-bit PIC1650 and their 16-bit CP1610 computers.
The PSG is widely used in many arcade cabinets, pinball machines, and many micro-computers. Here is a list of some of the major brands of computer that used the AY-3-8910:
- Intellivision
- Vectrex
- Amstrad CPC range
- Oric-1
- Color Genie
- Elektor TV Games Computer
- All MSX-1 and MSX-2 computers
- ZX Spectrum home computers
General Instrument spun of MicroChip Technology in 1987 and the chip was sold under the MicroChip brand, and licensed to Yamaha as the YM2149F which the Atari ST range of computers use. Functionally the PSG is very similar to the Texas Instruments SN76489.
Variants:
-
AY-3-8910
Comes with 2 general purpose 8-bit parallel I/O ports, used for Keyboard and Joystick in for instance MSX. -
AY-3-8912
Same chip, but in a 28-pin package. Parallel port B is not connected to save cost and space. -
AY-3-8913
Same chip, but in a 24-pin package. Both parallel ports are not connected. -
AY-3-8914
The AY-3-8914 has the same pinout and is in the same 40-pin package as the AY-3-8910, except the control registers on the chip are shuffled around, and the 'expected input' on the A9 pin may be different. It was used in Mattel's Intellivision console and Aquarius computer. -
AY-3-8930
Backwards compatible but BC2 pin is ignored
YM2149F -
YM3439-D
CMOS version of the Y2149 in 40-pin DIP -
YM3439-F
CMOS version of the Y2149 in 44-pin QFP -
YMZ294
Variant of the YM3249 in an 18-pin package. Parallel ports not connected, and all sound channels mixed on 1 port. -
T7766A
Toshiba variant of the AY-3-8910, fully compatible. Used in some MSX models. - Winbond WF19054, JFC95101, and File KC89C72: Fully compatible versions of the AY-3-8910 produced for slot machines.
Yamaha Produced chip, same pin-out as the AY-3-8910, but pin 26 could halve the master clock. Can be used to replace the AY-3-8910 if pin 26 is left disconnected.
CPU - The Zilog Z80
The Z80 quickly became popular in the personal computer market, with many early personal computers, such as the TRS-80 and Sinclair ZX80, using the Z80 as their central processing unit (CPU). It was also widely used in home computers, such as the MSX range, SORD, and the Amstrad CPC, as well as in many arcade games. Additionally, it was also used in other applications such as industrial control systems, and embedded systems. The Z80 was widely used until the mid-1980s, when it was gradually replaced by newer microprocessors such as the Intel 80286 and the Motorola 68000.
The Z80 microprocessor was developed by Zilog, a company founded by Federico Faggin in 1974. The Z80 was released in July 1976, as a successor to the Intel 8080. It was designed to be fully compatible with the 8080, but also included new features such as an improved instruction set, more powerful interrupts, and a more sophisticated memory management system.
Originally the Z80 was intended for use in embedded systems, just as the 8080 CPU. But the combination of compatibility, superior performance to other CPUs of the era, and the affordability led to a widespread use in arcade video game systems, and later in home computers such as the Osborne 1, TRS-80, ColecoVision, ZX Spectrum, MSX, Sega's Master System and many more. The Z-80 ran the original Pac-Man arcade cabinet. The Z-80 was used even in the Game Gear (1990s), and the TI-81 and succeeding graphic calculators.
The Z-80 remained in production until June of 2024, 48 years after its original release. Zilog replaced the processor with its successor the eZ80, an 8-bit microprocessor that features expanded memory addressing up to 16 megabytes, and running up to 50MHz, comparable to a Z80 clocked at 150MHz.
320x200, 4 colors
640x200, 2 colors
27 color palette
