Amstrad CPS8256 technische Referenz

Quellen für dieses Dokument sind zwei PD Dateien, DART.DOC (von SJ Dibble) and AMS-SIO.DAT, die nur den seriellen Port beschreiben. Informationen über den parallelen Port und andere Seriell/Parallel-Interfaces sind willkommen.

Richard Fairhurst, 1997

Portadressen

Die folgenden I/O Adressen werden von der CPS8256 belegt. Zum Vergleich sind die äquivalenten Ports für Interfaces von Amstrad, Pace und Cirkit für den CPC in Klammern dargestellt.

&E0 (&FADC) DART Daten
&E1 (&FADD) DART Kontrolle
&E2 (&FADE) DART Daten (Port B)
&E3 (&FADF) DART Kontrolle (Port B)
&E4 (&FBDC) 8253 Zähler 0
&E5 (&FBDD) 8253 Zähler 1
&E6 (&FBDE) ungenutzt
&E7 (&FBDF) 8253 Schreibwort-Modus

Baudraten

Um die Baudrate für den Sender einzustellen, wird &36 nach Port &E7 geschrieben, gefolgt von zwei Werten aus folgender Tabelle (in der angegebenen Reihenfolge) nach &E4. Für die Empfangsrate wird &36 durch &76 ersetzt. Diese Werte wurden ermittelt mit dem CTC 8253 an 1,84375MHz.

Zu beachten ist, daß der 8250 nur zuverlässig mit Geschwindigkeiten bis 9600 Baud ist. Für schnellere Geschwindigkeiten sollte dieser Chip gegen einen 16550AF ausgewechselt werden, der Pin-kompatibel zum 8250 ist (Danke an Rob Scott für diese Information.)

31250 &00, &04
19200 &00, &07
9600 &00, &0D
7200 &00, &11
4800 &00, &1A
3600 &00, &23
2400 &00, &34
2000 &00, &3F
1800 &00, &45
1200 &00, &68
600 &00, &D0
300 &01, &A0
200 &02, &71
150 &03, &41
110 &04, &70
75 &06, &83
50 &09, &C4
45 &0A, &D9

DART-Register

Andere Kontrollfunktinen betreffen die Programmierung des DART. Um einen Wert in ein Register zu schreiben, wird zuerst die Nummer des Registers und danach der neue Wert nach &E1 geschrieben. Um einen Wert zu lesen, wird erst das Register angegeben, danach kann der Wert aus dem selben Port gelesen werden.

Schreibregister 0

&18: Port zurücksetzen
&38: Fehlerstatusbits zurücksetzen

Schreibregister 3

Bit 7 und Bit 6: Rx Datenbits (11 8 Bits, 10 7, 01 6, 00 5)
Bit 5: Hardware Handshaking mittels RTS/CTS
Bit 4 to b1: müssen 0 sein
Bit 0: Rx Datenleitung aktivieren

Schreibregister 4

Bit 7 und Bit 6: DART Clock-Mods (gesetzt auf 01)
Bit 5 und Bit 4: nicht benutzt (setzen auf 0)
Bit 3 und Bit 2: Stopbits (11 2 Bits, 10 1, 01 1,5, 00 nicht erlaubt)
Bit 1: Art der Parity (1 gerade, 0 ungerade)
Bit 0: Parity-Überprüfung ein/aus

Schreibregister 5

Bit 7: DTR aktiviert/nicht aktiviert
Bit 6 und b5: Tx Datenbits (11 8 Bits, 10 7, 01 6, 00 5)
Bit 4: Break-Signal senden
Bit 3: Tx Datenleitung aktivieren
Bit 2: nicht benutzt
Bit 1: RTS aktiviert/nicht aktiviert
Bit 0: nicht benutzt

Leseregister 0

Bit 7: Break-Signal empfangen
Bit 6: nicht benutzt
Bit 5: CTS
Bit 4: Anzeige des Ring-Signals
Bit 3: DCD (Carrier Detect)
Bit 2: Tx Puffer bereit
Bit 1: Interrupt bezogen
Bit 0: Rx Zeichen vorhanden

Leseregister 1

Bit 7: nicht benutzt
Bit 6: Framing Error
Bit 5: Rx Overrun Error
Bit 4: Parity Error
Bit 3 bis Bit 1: nicht benutzt
Bit 0: alles gesendet

Übersetzt durch Werner Cirsovius