~~NOTOC~~
A> CPS8256 (Centronics Parallel- und RS232C Serielle Schnittstelle)
Beschreibung, Kontext und Historie

Das Interface CPS8256 wurde 1985 von Amstrad plc zeitgleich mit der Einführung der Modelle Amstrad PCW 8256 und PCW 8512 offiziell auf den Markt gebracht. Es stellt die wichtigste offizielle Erweiterung für die gesamte PCW-Reihe dar. Das Basisdesign des PCW verzichtete bewusst auf universelle Kommunikationsanschlüsse und beschränkte sich auf proprietäre Verbindungen, die ausschließlich für den eigenen Monitor und den nativen Nadeldrucker vorgesehen waren. Das CPS8256 wurde entwickelt, um diese Isolation aufzubrechen. Es ermöglichte erstmals den direkten Anschluss von Telefonmodems, seriellen Mäusen, Plottern sowie die Ausgabe an Matrix-, Typenrad- oder Laserdrucker von Drittanbietern.

In Bezug auf die historische Dokumentation hielt sich in Computerzeitschriften der 1980er Jahre hartnäckig das Gerücht, dass die Parallelschnittstelle nicht dem Centronics-Standard entsprach, da sie mit einer reinen Wortlänge von 8 Bit statt 7 Bit arbeitete. Low-Level-Hardwareanalysen haben dies als Mythos entkräftet: Der physische Port entspricht zu 100 % den elektrischen Leitungen und dem Protokoll des Standards. Der eigentliche Konflikt lag in der mitgelieferten Textverarbeitung LocoScript von Locomotive Software. Diese nutzte eine interne Zeichentabelle und proprietäre Formatierungssteuerzeichen. Dies führte zu unleserlichem Zeichensalat beim Drucken, sofern Textdokumente vor der Ausgabe über den Parallelport nicht explizit in ein Standard-ASCII-Format exportiert oder konvertiert wurden.

Diese Erweiterung veränderte das professionelle Ökosystem des PCW grundlegend. Sie ermöglichte asynchrone Verbindungen zu Mainframes oder IBM-kompatiblen PCs über Transfer-Suites wie LocoLink oder Terminal-Protokolle wie Kermit. Dadurch etablierte sich der Computer als offene Büro-Workstation statt als geschlossene Schreibmaschine.

Hardware-Architektur und Silizium-Komponenten

Aus elektronischer Sicht beherbergt das CPS8256 eine Reihe integrierter Schaltkreise der Zilog-Logikfamilie (oder lizenzierte Klone), die perfekt aufeinander abgestimmt sind, um asynchrone E/A-Operationen zu verwalten, ohne die Z80-Haupt-CPU des Computers zu überlasten:

Z80 Eingabe/Ausgabe (I/O) Port-Mapping

Das CPS8256-Interface wird auf dem Systembus decodiert, indem es einen festen Bereich von 8 adressierbaren Ports belegt, der von 0E0h bis 0E7h reicht. Das Hardware-Register-Layout gliedert sich wie folgt:

Port (Hex) Port (Dez) Zugriff Systemfunktion und Registerziel
0E0h 224 R / W Z80 DART (Kanal A) - Datenregister: Liest eingehende Zeichen aus dem seriellen Puffer (Rx) und schreibt zu übertragende Daten (Tx).
0E1h 225 R / W Z80 DART (Kanal A) - Kontrollregister: Schreiben, um auf interne Register (WR0-WR5) zu verweisen, und Lesen von Statusregistern (RR0-RR1).
0E2h 226 Nur Schreiben Centronics Parallelport - Ausgaberegister (Data Latch): Speichert und hält das 8-Bit-Datenbyte auf den physischen Leitungen D0-D7 für den Drucker.
0E3h 227 Nur Lesen Centronics Parallelport - Statusregister: Echtzeit-Auslesen der physischen Hardware-Steuerleitungen (Busy, /Ack, Paper Empty, Select).
0E4h 228 Nur Schreiben Z80 CTC (Kanal 0) - Sender-Timer: Setzt die Zeitkonstante, die die Baudrate für die serielle Übertragung (Tx) definiert.
0E5h 229 Nur Schreiben Z80 CTC (Kanal 1) - Empfänger-Timer: Setzt die Zeitkonstante, die die Baudrate für den seriellen Empfang (Rx) definiert.
0E6h 230 Vom Decodierungs-Hardware reservierte Leitung / Im Standarddesign von Amstrad ungenutzt.
0E7h 231 Nur Schreiben Z80 CTC (Kanal 3) - Allgemeines Kontrollregister: Initialisiert den Betriebsmodus der Zählerschaltungen und Hardware-Timer-Interrupts.
Interne Registerstruktur des Z80 DART (Port 0E1h)

Für die direkte Low-Level-Programmierung (z. B. in Z80-Assembler unter Umgehung von CP/M-BIOS-Aufrufen) arbeitet der Kontrollport des CPS8256 sequenziell. Die interne Registernummer, auf die zugegriffen werden soll, wird nach 0E1h geschrieben, und im folgenden I/O-Taktzyklus wird der Konfigurationswert an denselben Port gesendet oder von ihm gelesen. Die kritischen Bit-Funktionen zur Erhaltung des Systems sind im Folgenden aufgeführt:

Anschlüsse und Pinbelegungen (Pinout)

Das CPS8256 verfügt über zwei international standardisierte physische Anschlüsse, die gemäß den elektronischen Designspezifikationen von Amstrad verdrahtet sind:

1. Serieller Port (DB25-Stecker - DTE-Standardkonfiguration):

DB25 Pin RS-232C Signal Fluss (PCW) Funktion der elektrischen Leitung
Pin 1 GND (Shield) Schutzerde (Chassismasse / Abschirmungsreferenz des Kabels).
Pin 2 TXD (Transmit Data) Ausgang Serielle Sendeleitung für asynchrone Binärdaten.
Pin 3 RXD (Receive Data) Eingang Serielle Empfangsleitung für asynchrone Binärdaten.
Pin 4 RTS (Request To Send) Ausgang Hardware-Flusssteuerungsanforderung des PCW zum Senden von Daten.
Pin 5 CTS (Clear To Send) Eingang Signal vom Peripheriegerät, das dem PCW das Senden von Daten erlaubt.
Pin 6 DSR (Data Set Ready) Eingang Bestätigung, dass das externe Gerät/Modem eingeschaltet und bereit ist.
Pin 7 GND (Signal Ground) Gemeinsame Massegreferenz für alle digitalen Datensignale.
Pin 8 DCD (Data Carrier Detect) Eingang Leitung zur Erkennung des Telefon-Trägertons (von Modems verwendet).
Pin 20 DTR (Data Terminal Ready) Ausgang Signal zur Bestätigung, dass der Amstrad PCW online und betriebsbereit ist.
Pin 22 RI (Ring Indicator) Eingang Anzeigeleitung für die Erkennung von Telefonklingeln.

2. Parallelport (36-polige Amphenol Centronics-Buchse):

Betriebssystemunterstützung und Emulator-Integration
Dokumentation und Downloads