The Amstrad CPC 464 Plus
The Amstrad 464Plus is based on the architecture of the original Amstrad CPC464 but in a completely redesigned modern case. It was an effort to re-vamp the brand and create a computer that was aesthetically more pleasing than the large rectangular brick of the CPC464.
Amstrad CPC Plus
In 1990, confronted with a changing home computer market, Amstrad decided to refresh the CPC model range by introducing a new range variantly labeled CPC Plus.
The main goals for the Plus range were:
- Enhancement to the existing platform
- Restyled case with a modern look
- Support for cartridge games
The redesigned video hardware allows for various upgraded features
- Hardware Sprites in 15 colors
- Soft scrolling
- Enhanced color palette: extended to 31 out of 4096.
Sound was also enhanced, including 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 an obscure unlocking mechanism has been triggered, 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 Commodore Amiga and Sega 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.
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.
CPC Asic Chip
“CPC ASIC” refers to two different integrations in the CPC line. The 1988 cost-down CPC464/6128 used a 100-pin pre-ASIC (Amstrad 40226) that consolidated the Gate-Array, the RAM-management PAL and a 6845-class CRTC into one device; it adds no new graphics or audio features versus earlier CPCs and is commonly labeled CRTC type 4 in scene documentation. The later 1990 CPC+/GX4000 machines used a distinct ASIC (AMS40489) that both replaces earlier custom logic and adds new display/audio capabilities; CPCWiki describes it as the “second heart” of the Plus range.
Technically, the CPC+ ASIC integrates the Gate-Array, a 6845-compatible CRTC, the 8255 PPI (with caveats), printer-port glue, and exposes an extended register set that can be paged into 0x4000–0x7FFF after a purposely obscure unlock I/O sequence. Once paged, the ASIC provides 16 hardware sprites (fixed 16×16, 4 bpp, 256-byte patterns each) with per-sprite control blocks at 0x6000–0x607F and sprite pattern RAM at 0x4000 + n×0x100. It also replaces the CPC’s 27-colour scheme with a 12-bit (4:4:4) palette selecting 32 pens from 4096 colours, memory-mapped at 0x6400–0x643F (main inks 0–15, border, and sprite inks 1–15). DMA-driven sound is supplied via three DMA channels targeting the AY-3-8912 registers; control/status and channel pointers live at 0x6C00–0x6C0F.
Timing/compatibility details matter. The Plus boots in CPC-compatible mode; enhanced features are inert until the unlock sequence runs. Certain I/O semantics differ (e.g., on the Plus, INs to Gate-Array/CRTC ports act like OUTs), the ASIC’s CRTC timing shifts some effects (e.g., colour changes appear ~½ NOP later), and the PPI emulation is not cycle-accurate, which breaks a few programs unless adjusted. In community taxonomy, the CPC+ ASIC CRTC is “type 3”, while the pre-ASIC cost-down CRTC is “type 4”.
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
4096 color palette
