Herramientas de usuario

Herramientas del sitio


de:serieller_port

AMSTRAD CPS8256 TECHNISCHE REFERENZ


Die Quellen für dieses Dokument sind zwei PD-Textdateien, DART.DOC (von SJ Dibble) und AMS-SIO.DAT, die ausschließlich die serielle Schnittstelle behandeln. Informationen über den Parallelport und jede andere serielle/parallele Schnittstelle wären willkommen.

Richard Fairhurst, 1997

PORT-ADRESSEN

Das CPS8256 verwendet die folgenden E/A-Adressen. Als Referenz sind die entsprechenden Ports der Amstrad-, Pace- und Cirkit-Schnittstellen für den CPC in Klammern angegeben.

&E0 (&FADC) DART Daten
&E1 (&FADD) DART Steuerung
&E2 (&FADE) DART Daten (Port B)
&E3 (&FADF) DART Steuerung (Port B)
&E4 (&FBDC) 8253 Zähler 0
&E5 (&FBDD) 8253 Zähler 1
&E6 (&FBDE) nicht verwendet
&E7 (&FBDF) 8253 Modus-Wort (Schreiben)

BAUDRATEN

Um die Senderate (Transmit) einzustellen, senden Sie &36 an Port &E7 und zwei Werte aus der Tabelle (in der angegebenen Reihenfolge) an Port &E4. Um die Empfangsrate (Receive) einzustellen, ersetzen Sie &36 durch &76. Diese Werte beziehen sich auf den 8253 CTC bei einer Taktung von 1,84375 MHz.

Beachten Sie, dass der 8250 nur bis zu Geschwindigkeiten von 9600 Baud zuverlässig arbeitet. Für höhere Geschwindigkeiten sollte er durch einen 16550AF-Chip ersetzt werden, der zum 8250 kompatibel 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

Weitere Steuerungsfunktionen erfordern die Programmierung des DART. Um einen Wert in ein Register zu schreiben, senden Sie zuerst die Registernummer und dann den neuen Wert an &E1. Um einen Wert zu lesen, senden Sie die Registernummer und lesen Sie anschließend vom selben Port.

  • Register 0 schreiben
&18: Port zurücksetzen
&38: Fehlerbits zurücksetzen
  • Register 3 schreiben
b7 und b6: Rx-Datenbits (11 = 8 Bits, 10 = 7, 01 = 6, 00 = 5)
b5: Hardware-Handshake über RTS/CTS
b4 bis b1: müssen 0 sein
b0: Rx-Datenleitung aktivieren
  • Register 4 schreiben
b7 und b6: DART-Taktmodus (auf 01 setzen)
b5 und b4: ungenutzt (auf 0 setzen)
b3 und b2: Stoppbits (11 = 2 Bits, 10 = 1, 01 = 1.5, 00 = illegal)
b1: Paritätstyp (1 = gerade/even, 0 = ungerade/odd)
b0: Paritätsprüfung ein/aus
  • Register 5 schreiben
b7: DTR aktiviert/deaktiviert
b6: Tx-Datenbits (11 = 8 Bits, 10 = 7, 01 = 6, 00 = 5)
b4: Sende-Unterbrechung (Send Break)
b3: Tx-Datenleitung aktivieren
b2: ungenutzt
b1: RTS aktiviert/deaktiviert
b0: ungenutzt
  • Register 0 lesen
b7: Unterbrechung empfangen (Break received)
b6: ungenutzt
b5: CTS
b4: Rufanzeige (Ring Indicator)
b3: DCD (Trägererkennung)
b2: Sendepuffer bereit
b1: Interrupt-bezogen
b0: Empfangszeichen verfügbar
  • Register 1 lesen
b7: ungenutzt
b6: Framing-Fehler
b5: Rx-Überlauffehler
b4: Paritätsfehler
b3 bis b1: ungenutzt
b0: alle gesendet
de/serieller_port.txt · Última modificación: por jesus