Datenübertragung

Bei jeder Übertragung, egal in welche Richtung, legt der IBM-Rechner die zugehörige Hauptgeräteadresse auf den Bus, so daß der entsprechende Adapter selektiert wird. Abhängig von den Steuersignalen werden nun Daten zwischen Adapter und Rechner nach einem bestimmten Protokoll ausgetauscht.
Die Zeitangaben für IRQ2 in den unten aufgeführten Timingdiagrammen beziehen sich auf den Diskettenadapter.

Übertragung von der Peripherie zum IBM-Rechner

Statusinformationen

Statusinformationen sollen den IBM-Rechner über den aktuellen Zustand des Adapters informieren, so daß dieser entsprechend agieren kann. Je nach Art des Adapters kann entweder nur ein Byte dafür vorgesehen sein, oder aber mehrere - beim Disketten- und Druckeradapter sind es zwei. Das erste Byte wird bei selektiertem Adapter auf den Bus gelegt, wenn die Opcode E-Leitung auf 1 liegt, dies ist beim Maschinenbefehl mit dem Opcode ExyF (daher der Signalname) der Fall.

Lesen eines Statusbytes

Beim zweiten Byte verfolgte die IBM seinerzeit verschiedene Wege.
Der Druckeradapter führt die Unterscheidung zwischen den Statusbytes über die Registernummer durch, in die das Byte gelesen werden soll. Interessanterweise legt der IBM-Rechner die Registernummer beim Zugriff auf die Bus Out-Leitungen; Byte 1 wird bei gerader Registernummer, Byte 2 bei ungerade Registernummer im Adapter ausgewählt. Gelesen wird auch hier mit dem Befehl ExyF (Opcode E).
Der Diskettenadapter hingegen liest das zweite Byte (das Access Sense Byte) als Datenbyte ein, das immer dann anliegt, wenn auch die Geräteadresse anliegt, Opcode E dabei aber auf 0 ist. Zudem darf die IRQ2-Leitung nicht gesetzt sein und der Adapter muß sich im Zugriffsmodus befinden, damit auch das richtige Byte gelesen wird. Der Befehl lautet hier 0xyE. Warum die IBM diese unterschiedlichen Wege wählte, ist nicht bekannt.

Daten

Die eigentlichen Nutzdaten können nur dann vom Adapter dem IBM-Rechner zur Verfügung gestellt werden, wenn acht einzelne Bits von der Oberfläche gelesen und zu einem Byte zusammengesetzt wurden. Dann wird vom Adapter die IRQ2-Leitung auf 0 gelegt, um dem IBM-Rechner zu signalisieren, daß ein Byte zur Abholung bereitsteht. Dies ist unabhängig von der Geräteadresse, da dies ein echter asynchroner Interrupt-Mechanismus ist.
Daraufhin legt der IBM-Rechner die Geräteadresse auf den Bus und liest das Datenbyte ein. Durch das Einlesen wird automatisch durch Get Strobe auch die IRQ2-Leitung auf 1 zurückgesetzt, um weitere Daten entgegennehmen zu können. Der Get Strobe-Impuls wird automatisch beim Maschinenbefehl 0xyE erzeugt, um dem Adapter anzuzeigen, daß das Byte erfolgreich übernommen wurde.

Lesen eines Datenbytes mit Interrupt-Aufforderung

Übertragung vom IBM-Rechner zur Peripherie

Befehle

Ein Befehl wird an einen Adapter geschickt, indem die Geräteadresse zusammen mit dem Befehlsbyte auf den Bus gelegt wird. Anschließend wird durch ein Control Strobe-Impuls dafür gesorgt, daß der Adapter das Byte in sein Befehlsregister übernimmt und es entsprechend auswertet. Ein Befehl kann zu jeder Zeit zum Adapter geschickt werden, unabhängig vom Status der Interrupt-Leitung oder des Adapters.

Senden eines Befehls zum Adapter

Daten

Daten werden ähnlich wie Befehle zum Adapter verschickt. Im Gegensatz zu einem Befehl wird ein Put Strobe-Impuls erzeugt, um das Datenbyte in das Datenregister bzw. -latch zu übernehmen. Dabei gibt es zwei Situationen, insbesondere beim Diskettenadapter, in denen Daten gesendet werden. Einerseits kann auf Anforderung durch den Adapter über die IRQ2-Leitung der Datentransfer erfolgen. In diesem Fall setzt der Put Strobe-Impuls automatisch die Interrupt-Leitung zurück. Andererseits kann auch durch den IBM-Rechner ohne Anforderung durch den Adapter, also bei inaktiver Interrupt-Leitung, ein Datenbyte gesendet werden. Beim Diskettenadapter dient dieses Byte als zweites Befehlsbyte, das nur im Zugriffsmodus erlaubt ist.

Senden eines Datenbytes zum Adapter

Die obige Abbildung zeigt den ersten Fall an, in dem der Datentransfer durch eine aktive Interrupt-Leitung angefordert wird. Das Bereitstellen des Bytes vom IBM-Rechner aus deaktiviert automatisch diese Leitung, um erneute Anforderungen stellen zu können.
Darunter ist die direkte Übertragung eines Datenbytes, das ohne Anforderung seitens des Adapters gesendet wird, abgebildet.

Senden eines Steuerbytes zum Adapter in Form eines Datenbytes