Last modified on 9 January 2010, at 09:48

Amstrad Serial Interface

Revision as of 09:48, 9 January 2010 by Nocash (Talk | contribs) (Schematic and More (CPS8256))

The Pace RS232 interface, as sold by Amstrad

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

Original serial interface

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.

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

As a result, Amstrad dropped their original design and instead chose to remanufacture a Pace design. This included significantly improved hardware (a more compact interface and no external PSU) and vastly superior software.

The software was a ROM version of Pace's terminal utility, Commstar. 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.

I/O Ports

 FADCh Amstrad RS323 Z8470 (Z80 DART) Channel A Data             (R/W)
 FADDh Amstrad RS323 Z8470 (Z80 DART) Channel A Control/Status   (R/W)
 FADEh Amstrad RS323 Z8470 (Z80 DART) Channel B Data             (R/W)
 FADFh Amstrad RS323 Z8470 (Z80 DART) Channel B Control/Status   (R/W)
 FBDCh Amstrad RS323 8253 Baudrate Timer 0 Channel A TX Clock    (R/W)
 FBDDh Amstrad RS323 8253 Baudrate Timer 1 Channel A RX Clock    (R/W)
 FBDEh Amstrad RS323 8253 Baudrate Timer 2 Channel B RX/TX Clock (R/W)
 FBDFh Amstrad RS323 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.

CP/M

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.

8250 Information (probably nonsense)

Below is information about the 8250 UART chip. As far as known, the Amstrad Serial Interface does NOT use that chip, a 8253 yes, but not a 8250. No idea why that information is here...?

Like the original interface, the Pace design used an 8250 UART chip (really???), which was reliable up to 9600 baud and could sometimes function at faster speeds. The possibility has been discussed of replacing this with a pin-compatible 16550 and gaining even faster transfer speeds, but this is not believed to have been tested.

This webpage about the CPS8256 (the Amstrad serial interface for the PCW) also includes some CPC information. Caution: that webpage seems to be confused/bugged. There is no 8250 chip used at all. Baudrate MSB/LSB are exchanged, and for both CPC and PCW, the clock source should be 2MHz instead of 1.84375MHz, etc.

Link to Article on Wikipedia about the 8250 UART used (or rather NOT used???) in the interface

Manual

Manual of the original RS232 by Amstrad (OCR)

Pictures

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 www.z80.eu.

Reviews