The printer port supports parallel one-directional 7bit data, strobe, and busy signals.
How it works
To send a byte to the printer, you first have to verify if it's ready, via bit6 of port B of the PPI located at &F500.
When this bit is 0, you can send a byte. When it's 1, the printer is busy (its buffer is full, it's out of paper, it's turned off, not Online, ...). Note that the system can differentiate between a full buffer and another type of error when the control bit stays at state 1 for too long.
On CPC, the printer is operated as follows: to send a byte, use port &EF00 by sending the value 3 times (1st: Bit7=0; 2nd: Bit7=1; 3rd: Bit7=0), with bit7 used to validate the byte. For this reason, only the 7 least significant bits were taken into account.
On Plus machines, the 8th bit of the printer port is on bit3 of register 12 of the emulated CRTC. This bit must have "seemed" unused to Amstrad engineers. Unfortunately, they didn't know about the Overscan Bits.
Data / Strobe
Port &EFxx - Printer Port Output 74LS273 (7bit Data and Strobe) (W)
Bit 0-6 Printer Data (7bit) (0=Low, 1=High) Bit 7 Printer Strobe (0=High, 1=Low)
Busy (PPI PortB Bit6)
Port &F5xx - PPI Port B
Bit 0 VSYNC CRTC Vsync flag (1=VSYNC active) Bit 1-3 LK1-3 Distributor Code (see below) Bit 4 LK4 Desired Screen Refresh Rate (0=60Hz, 1=50Hz) (see below) Bit 5 /EXP External Input (used for external hardware only) Bit 6 BUSY Printer Busy flag (1=Busy, 0=Ready) Bit 7 RD DATA Tape Data Input
General Specifications
For (detailed) general information about Amstrad/Scheider printers, see:
- Amstrad/Schneider Printer Models
- Amstrad/Schneider Printer Technical Specifications
- Amstrad/Schneider Printer Control Codes
- Amstrad/Schneider Printer Support for 7bit Printer Ports
- Amstrad/Schneider Printer Character Sets
- Amstrad/Schneider Printer Buttons and DIP Switches
- Amstrad/Schneider Printer Resources (User and Service Manuals, Datasheets, ROM-images)
Pinouts
Upgrade to 8bit data
KC Compact Printer Port
The Printer Port in the KC Compact is fully compatible with the CPCs Printer Port, and includes some additional features:
- Port &EFxx is CIO Port A, by default configured as Output, with inverted polarity on bit7 (same as on CPC). However, CIO Port A could be reprogrammed by software (for example: making it an Input, or disabling the bit7 inversion)
- The 8th Printer bit connects to Bit5 of PIO Port C (same as the Happy Computer 8bit Printer Port mod)
- The "TEST" Feature of the KC Compact BIOS allows to boot the computer remotely via some kind of "network" connection, which connects to some of the CIO Port A signals
Aleste 520EX Printer Port
The Aleste 520EX is not compatible with the CPCs Printer Port (it's having other, non-printer related hardware mapped to &EFxx). Aside from the compatibility problem it's better than the CPCs port: Data is 8bit bi-directional.
Non-Printer Devices that connect to the Printer Port
- Ambug Robot (DIY) (connects to printer & joystick port)
- Data Media Printerinterface (printer splitter for connecting 2 or 3 software-selectable printers to the CPC)
- Digiblaster (Playback) (DIY) (8bit DAC on printer port)
- Fischertechnik Interface
- FuturePlayer (modern MP3 playback, max 128kbps) (Dr.Zed)
- KDS Power Controller (a box with eight relays)
- Simple RS232 for Printer usage (DIY) (one-directional, transmit only)
- Virtual Net 96 (Wizcat)