Amstrad Serial Interface

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
The Pace RS232 interface, as sold by Amstrad

The two Amstrad Interfaces

Amstrad released two RS232 interfaces, both using the same input/output addresses - and, ultimately, therefore establishing the standard for serial interfaces.

The main difference between the interfaces is that they contain different firmware, and the older one required an external power supply.

Original serial interface (1985)

Amstrad's first serial interface was one of the original peripherals released for the CPC. It was remarkable (in a bad way) for the necessity for an external, brick-like power supply.

Software was supplied on ROM, mostly comprising utility commands for hobbyists rather than a comms application per se - though there was limited terminal emulation for connecting to the then-popular Prestel service]. The original, UK version included commands for file transfer entitled |SUCK and |BLOW, which used a proprietary Amstrad format similar to XModem-1k but, annoyingly, subtly incompatible. These commands were reputedly renamed for the US edition to avoid causing offence.

The French company M.E.R.C.I. sold a custom version of this interface, replacing the original 8k ROM with an 16k Rom adding a minitel emulator.

Because of the external power supply and the poor quality of the software, this model failed to establish itself as the "standard" serial interface in the way that (say) the DDI-1 did for disc drives. This allowed other serial interfaces to flourish, such as those sold by Cirkit and KDS.

Pace serial interface (1986)

As a result, Amstrad dropped their original design and instead chose to remanufacture a PACE design. This included improved hardware (a more compact interface thanks to SMD components and no external PSU) and vastly superior software. However, this redesign also reduced the quality of RS232 signalling by using 0V/5V output voltage instead of -12V/12V.

The software was a ROM version of the Commstar terminal utility from HoneySoft. This was a user-friendly program with standard XModem file transfer functions. However, one foolish design decision was the idea of using a 24x80 screen with a single-line status display - though presenting a good user interface, this forced the use of software rather than hardware scrolling, making the interface unusable for terminal emulation at any speed above 2400 baud.

The Amstrad/Pace version was announced on Amstrad Computer User, Dec 1986, page 6. A review occured in Amstrad Computer User, April 1987, pages 46 and 47.

I/O Ports

Here are the I/O Ports (same for original and Pace version):

 FADCh Amstrad RS232 Z8470 (Z80 DART) Channel A Data             (R/W)
 FADDh Amstrad RS232 Z8470 (Z80 DART) Channel A Control/Status   (R/W)
 FADEh Amstrad RS232 Z8470 (Z80 DART) Channel B Data             (R/W)
 FADFh Amstrad RS232 Z8470 (Z80 DART) Channel B Control/Status   (R/W)
 FBDCh Amstrad RS232 8253 Baudrate Timer 0 Channel A TX Clock    (R/W)
 FBDDh Amstrad RS232 8253 Baudrate Timer 1 Channel A RX Clock    (R/W)
 FBDEh Amstrad RS232 8253 Baudrate Timer 2 Channel B RX/TX Clock (R/W)
 FBDFh Amstrad RS232 8253 Baudrate Timer 0-2 Control Registers   (W)

Note: Some interfaces might use a Z80 SIO (which is backwards compatible to the Z80 DART).

For details on the I/O ports, see:

Although the Z80-DART (and Z80-SIO) support two channels, most or all existing CPC interfaces seem to use only one channel.


The I/O ports are directly supported under CP/M (without needing additional drivers). Like many CP/M functions, the functions are located in the AMSDOS ROM (not on the CP/M disc). These functions are using hardcoded RAM addresses, which conflict with the BASIC memory map, so they can be used only under CP/M, not under BASIC.

Alternative software

The limitations of the Commstar software, and the desire to use more recently developed file transfer protocols (such as XModem-1k, YModem and ZModem) meant that many users chose to use their Amstrad serial interface with third-party software. This included:

  • Ansiterm - a fast AMSDOS utility (also known as ANSI.ARC)
  • Charley's Comms ROM - sideways ROM capable of 4800 baud terminal emulation
  • ZMP - ZModem file transfer under CP/M

A vast range of comms software was available for CP/M, including bulletin board hosts, offline readers (notably CRR - CP/M Read and Reply), and many terminals.


Schematic and More (CPS8256)

Below shows schematic and pictures for the CPS8256 Serial Interface (for the Amstrad PCW, aka Schneider Joyce), ie. it is not really CPC hardware, however, the CPC interface should use a similar design (the major difference is probably that the CPC version contains a BIOS ROM, but no Centronics port). Credits: The gif and jpg's are from