Z80 PIO (in der DDR U855) - Programmierung history menue Letztmalig dran rumgefummelt: 02.09.20 14:40:19
Zur Programmierung eines PIO sind maximal sechs Steuerbytes notwendig - im Extremfall ein Interrptsteuerwort, ein Betriebsartensteuerwort sowie eine Kanalsteuermuster, welches als Interruptauslöser dient.

  1. Betriebsartenauswahl
  2. Ein- und Ausgangsfestlegung
  3. Unterbrechungsvektor
  4. Unterbrechungssteuerwort
  5. Unterbrechungssteuerwort für Bit- Ein- und Ausgabe

Abhängig von der Betriebsart ist der PIO in der Lage, folgende Funktionen jeweils mit bzw. ohne Interruptanforderung eines Kanals auszuführen:
  • Einlesen oder Ausgeben eines Byte-Musters auf softwaretechnische Anforderung hin (das anliegende Bitmuster wird via Befehl aktuell eingelesen)
  • Erkennen eines Byte-Musters als Eingabekombination hin und Auslösen eines Interrupts
  • "quasi"-gleichzeitiges Senden sowie Empfangen von Byte-Mustern auf zwei Ports eines Schaltkreises
  • bitweises Ein- und Auslesen in Echtzeit auf einem oder beiden Ports eines Schaltkreises
Spätestens hier beweist sich der Spruch: "Es gibt zehn Arten von Menschen: die einen verstehen das Binärsystem, die anderen nicht!" - deshalb hier noch mal zu den entsprechenden Zahlensystemen ;-)
alle folgenden Bitmuster müssen via OUT-Befehlen auf die Steuerdresse des jeweiligen Bausteins mit Kanaladresse gesendet werden
Detailierte Funktionsbeschreibung und Programmierbeispiele findet man auch hier
Beispielprogramme zur PIO-Programmierung

Reihenfolge der Programmierung für Bitbetrieb sowie Interruptanforderung (nach Anja Leheis - März 2013):

für den Profi - Kurzreferenz zur PIO-Programmierung

Die Arbeitsweise des U855-PIO in einem speziellen Einsatzfall wird vom Programmierer über eine Reihe von Steuerwortausgaben an die Steuerwortadresse (control) des jeweiligen U855 Kanales festgelegt. Dabei ist zu 
beachten, dass auch ein einmal programmierter PIO durch erneute Steuerwortausgaben teilweise oder vollständig umprogrammiert werden kann. Die verschiedenen Steuerwörter des U855-PIO unterteilen sich in zwei Gruppen:

Steuerwörter mit Adressenkennzeichen können jederzeit, ohne eine bestimmte Reihenfolge einhalten zu müssen, ausgegeben werden. Steuerwortausgaben mit sequentieller Kennzeichnung müssen vom Programmierer genauestens 
eingehalten werden. Anderenfalls kommt der PIO-Programmiervorgang vollständig durcheinander. Der Aufbau und die Bitbelegung der Steuerwörter ist der Tafel oben zu entnehmen.


1. Betriebsartenauswahl history menue scroll up
Betriebsart D7 D6 D5 D4 D3 D2 D1 D0
Byte-Ausgabe 0 0 X X 1 1 1 1
Byte-Eingabe 0 1 X X 1 1 1 1
Byte-Ein- /Ausgabe (nur Kanal A 1 0 X X 1 1 1 1
Bit-Ein- /Ausgabe 1 1 X X 1 1 1 1

Tabelle 1 - PIO-Betriebsarten-Programmierung

Byte-Funktionen mit Quittungsbetrieb (Handshake)
Bitweise Programmierung erfordert Ein- und Asgabe-Festlegung (siehe 2.)
Empfohlenes Steuerwort für Byte-Ausgabe: 0FH (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!)
Empfohlenes Steuerwort für Byte-Eingabe: 4FH (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!)
Empfohlenes Steuerwort für Byte-Ein/Ausgabe auf Kanal A: 8FH (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!)
Empfohlenes Steuerwort für Bit-Ein/Ausgabe: CFH (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!)

2. Ein- und Ausgangsfestlegung (nur bei Einzelbit-Betrieb) history menue scroll up
Funktion D7 D6 D5 D4 D3 D2 D1 D0
Leitung ist Ausgang 0 0 0 0 0 0 0 0
Leitung ist Eingang 1 1 1 1 1 1 1 1

Tabelle 2 - PIO-Ein- und Ausgangsfestlegung für den Einzelbit-Betrieb


3. Interruptvektor history menue scroll up
Funktion D7 D6 D5 D4 D3 D2 D1 D0
7-Bit Interruptvektor V7 V6 V5 V4 V3 V2 V1 0

Tabelle 3 - PIO-Interruptvektorfestlegung

der Interruptvektor existiert für jeden Kanal getrennt
Bit0 = 0 Kennung für Interruptvektor
Interruptvektor muss zwischen:  00H und 7EH liegen - allerdings Bitmuster verschoben, damit Bit 0 auf 0 bleiben kann (nur gerade Hexzahlen wählen, als 0, 2, 4, 6, 8, A, C, E,

4. Unterbrechungssteuerwort history menue scroll up
Unterbrechungsfreigabe D7 D6 D5 D4 D3 D2 D1 D0
Unterbrechung durch PIO-Kanal gesperrt 0 X X X 0 0 1 1
Unterbrechung durch PIO-Kanal erlaubt 1 X X X 0 0 1 1

Tabelle 4 - PIO-Unterbrechungssteuerwort

Empfohlenes Steuerwort für Interruptsperre: 03H (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!)
Empfohlenes Steuerwort für Interruptsperre: 83H (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!)

5. Unterbrechungssteuerwort für Bit- Ein- und Ausgabe history menue scroll up
Funktion D7 D6 D5 D4 D3 D2 D1 D0
Bitmuster zur Kennung als Unterbrechungssteuerwort X X X X 0 1 1 1
Bitmaske zur Festlegung der Unterbrechungslösung zu berücksichtigenden Leitungen folgt X X X 1 X 1 1 1
Bitmaske zur Festlegung der Unterbrechungslösung zu berücksichtigenden Leitungen folgt nicht X X X 0 X 1 1 1
1-Zustand der Kanalleitung löst Unterbrechung aus X X 1 X X 1 1 1
0-Zustand der Kanalleitung löst Unterbrechung aus X X 0 X X 1 1 1
UND-Verknüpfung der ausgewählten Kanalleitungen   0 X X X 1 1 1
ODER-Verknüpfung der ausgewählten Kanalleitungen X 1 X X X 1 1 1
Unterbrechung durch PIO-Kanal erlaubt 1 X X X X 1 1 1
Unterbrechung durch PIO-Kanalgesperrt 0 X X X X 1 1 1

Tabelle 5 - PIO-Interruptsteuerwort für PIO-Kanal im  Einzelbitbetrieb

Empfohlenes Steuerwort: 07H (für Bitmaske zur Leitungsfestlegung folgt nicht; 0-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt)
Empfohlenes Steuerwort: 17H (für Bitmaske zur Leitungsfestlegung folgt; 0-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt)
Empfohlenes Steuerwort: 27H (für Bitmaske zur Leitungsfestlegung folgt nicht; 1-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt)
Empfohlenes Steuerwort: 37H (für Bitmaske zur Leitungsfestlegung folgt; 1-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt)
Empfohlenes Steuerwort: 47H (für Bitmaske zur Leitungsfestlegung folgt nicht; 0-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt)
Empfohlenes Steuerwort: 57H (für Bitmaske zur Leitungsfestlegung folgt; 0-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt)
Empfohlenes Steuerwort: 67H (für Bitmaske zur Leitungsfestlegung folgt nicht; 1-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt)
Empfohlenes Steuerwort: 77H (für Bitmaske zur Leitungsfestlegung folgt; 1-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt)
Empfohlenes Steuerwort: 87H (für Bitmaske zur Leitungsfestlegung folgt nicht; 0-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben)
Empfohlenes Steuerwort: 97H (für Bitmaske zur Leitungsfestlegung folgt; 0-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben)
Empfohlenes Steuerwort: A7H (für Bitmaske zur Leitungsfestlegung folgt nicht; 1-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben)
Empfohlenes Steuerwort: B7H (für Bitmaske zur Leitungsfestlegung folgt; 1-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben)
Empfohlenes Steuerwort: C7H (für Bitmaske zur Leitungsfestlegung folgt nicht; 0-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben)
Empfohlenes Steuerwort: D7H (für Bitmaske zur Leitungsfestlegung folgt; 0-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben)
Empfohlenes Steuerwort: E7H (für Bitmaske zur Leitungsfestlegung folgt; 1-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben)
Empfohlenes Steuerwort: F7H (für Bitmaske zur Leitungsfestlegung folgt; 1-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben)

Bitmuster zur Leitungsverknüpfung der gewählten Interruptlogik

  D7 D6 D5 D4 D3 D2 D1 D0
Leitung in die Verknüpfung einbezogen 0 0 0 0 0 0 0 0
Leitung in die Verknüpfung nicht einbezogen 1 1 1 1 1 1 1 1

Tabelle 6 - PIO-Bitmaske zur Interruptverknüpfung der E/A-Leitungen

die Bitmaske für die Unterbrechungsauslösung der zu berücksichtigenden Leitungen muss unmittelbar nach dem Unterbrechungssteuerwort folgen
Bit4 = 1 im Unterbrechungssteuerwort


zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost am 28. März 2002 um 7.36 Uhr

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist