Skip to content

Amstrad CPC ​

The Amstrad CPC uses the Z80 (CPU families). Wait states stretch every instruction to a multiple of 4 T-states. The CRTC type changes the edges of the picture. Games with split screens or overscan depend on those edges. CPC tapes use the TZX structure.

CPC 464, 664, 6128 and the Plus range ​

Hardware ​

ModelLaunch
CPC 464June 1984
CPC 664April 1985
CPC 6128Mid-1985
Plus range and GX4000September 1990
FactValue
CPUZ80A at 4 MHz; wait states give about 3.3 MHz
RAM64 or 128 KB
Video6845 CRTC plus gate array; 27 colours (4096 on the Plus)
Modes160x200 in 16 colours, 320x200 in 4, 640x200 in 2, at 50 Hz
SoundAY-3-8912
Disks3-inch, typically 180 KB per side

Source: Wikipedia: Amstrad CPC.

Timing. Every instruction is stretched to a multiple of 4 T-states. The unit is the "NOP time" of 1 microsecond (not confirmed) (CPCWiki: CPU timing). CRTC types 0 to 4 differ at the edges. Games with split screens and overscan depend on these differences (not confirmed) (CPCWiki: CRTC). The gate array interrupts every 52 lines, six times a frame (not confirmed) (CPCWiki: Gate Array).

How games were made and loaded ​

Games came on tape and on 3-inch disk. Disk protection is described on CPCWiki: Copy protection.

Media and image formats ​

FormatWhat it holds
CDTTape in the TZX structure, with timings scaled by 4/3.5 (TZX format)
Extended DSKDisk with the size and status of each sector; keeps many protections (not confirmed) (CPCWiki: DSK format)

Tools ​

CPCWiki (cpcwiki.eu) is the community reference.

Projects to learn from ​

None listed yet.

For an exact reimplementation ​

  • Count time in NOP units of 4 T-states. A Z80 cycle table from another machine gives the wrong times.
  • Record the CRTC type of the reference machine if the game uses split screens or overscan.
  • If the game times its frame from the gate array's six interrupts per frame, the port must do the same.
  • Keep the extended DSK or CDT image as the record of what shipped.

Code: Apache 2.0. Content: CC0 1.0. No game material: bring your own copy.