IBM 5106 Bandlaufwerk

Inhalt

Übersicht

IBM 5106 Bandlaufwerk
DC-300 Kassette

Das externe IBM 5106 Bandlaufwerk ist baugleich mit dem in der IBM 5100 und 5110 Modell 1 eingebauten Laufwerk und kann (theoretisch) auch nur an dieses angeschlossen werden, da dem Modell 2 und der 5120 die ROS-Routinen zur Ansteuerung anscheinend fehlen. Als Datenträger werden 3M DC-300 QIC Kassetten benutzt, die mechanisch baugleich zu DC-600, DC-6150 und DC-6525 Kassetten sind.
Statt der DC-300 Kassetten kann man problemlos auch DC-600 Kassetten einsetzen. Diese besitzen ein längeres Band und weisen daher auch eine größere Kapazität auf, sind von den magnetischen Eigenschaften her aber sehr ähnlich, so daß sie in den IBM-Laufwerken ohne Probleme eingesetzt werden können.

Eigenschaften:

Der Adapter des Bandlaufwerks ist in der Lage, die vom Band gelesenen Bits einzeln zum Rechner zu schicken (per Interrupt), oder zuerst 8 Bits zusammenzufügen und dann als Byte zu übergeben. Je nachdem, ob sich der Adapter im Bitmodus oder Bytemodus befindet, wird beim Lesen nach jedem Bit oder alle 8 Bits ein Interrupt erzeugt. Das Schreiben erfolgt immer bitweise; der Rechner muß die Bytes bitweise zum Adapter übertragen.
Das Laufwerk ist zudem in der Lage, sowohl vor- als auch rückwärts zu lesen. Dies wird z.B. zum Auffinden des Anfangs einer Datei benutzt.

Aufzeichnung

Der Adapter für das interne Bandlaufwerk sitzt auf der Base I/O-Karte H2 (siehe Steckkarten). Ein evtl. extern angeschlossenes Laufwerk besitzt einen eigenen Adapter, da die Steuersignale nicht am externen Bus anliegen.

Spuren

Das Bandlaufwerk zeichnet insgesamt zwei Spuren auf und vefügt über einen Zweispurkopf. Im Gegensatz zu heutigen QIC-Streamern kann nicht in Serpentinen aufgezeichnet werden, zumal die zwei Spuren bereits die Bandbreite voll ausnutzen. Die obere Spur enthält Formatsätze, die untere Kopf- oder Datensätze.

Spuren auf dem Band

Dateien

Eine Datei auf dem Band besteht aus einem Kopfsatz mit Informationen über die Datei sowie den Datensätzen, in denen die Nutzdaten untergebracht sind. Dabei muß die Anzahl der Datensätze gerade sein, die minimale Anzahl sind zwei Sätze, d.h. 1 kB, da das MARK-Kommando nur Vielfaches von 1 kB markiert. Zwischen jedem Satz befindet sich ein Formatsatz auf der oberen Spur.

Aufbau einer Datei auf Band

Formatsatz (Format Record)

Formatsätze, die in der oberen Spur aufgezeichnet werden, geben an, ob der folgende Satz in der unteren Spur einen Kopfsatz oder einen Datensatz (s.u.) enthält. Außerdem dienen sie als Start-/Stopzone (ähnlich den GAPs bei Disketten) und zur Synchronisation.

Die ersten 251 Bytes enhalten den Wert $55 und dienen als Start-/Stopzone. In diesem Bereich wird das Band gestartet oder gestoppt und läuft demnach nicht mit konstanter Geschwindigkeit.
Im Anschluß folgen drei Bytes $00, $00 und $E7. Beim Lesen werden die Bytes bitweise verarbeitet bis die I/O-Routine einmal $00 und anschließend $E7 sieht. Die I/O-Routine hat sich auf diese Weise mit den Daten vom Band synchronisiert. Danach wird der Adapter in den Bytemodus umgeschaltet.
Es folgt das Kennbyte für die untere Spur ($81 für Kopfsatz, $18 für Datensatz) und zwei Bytes, die die Satznummer angeben.
Nach 29 Nullbytes kommen wieder das Kennbyte und die drei Bytes $E7, $00 und $00, diesmal aber in umgekehrter Reihenfolge, damit sie beim Rückwärtslesen erkannt werden.

Kopfsatz (Header Record)

Der Kopfsatz kennzeichnet den Beginn einer Banddatei. Das erste Byte gibt den Dateityp an, wie er auch im Inhaltsverzeichnis aufgelistet wird. Dann folgen zwei Bytes mit der Dateinummer und zwei Bytes mit der Dateigröße in Bytes (nicht die bei der Markierung angegebene maximale Größe!). Der Rest des Satzes ist sprachabhängig, enthält aber u.a. den optionalen Dateinamen.

Datensatz (Data Record)

Im Datensatz stehen die eigentlichen Daten. Nach den drei Synchronisationsbytes (s.o) folgt ein Satzkennbyte ($81=Kopfsatz, $42=End of Data, $24=Bad Record, $18=Data Record) und 512 Bytes mit den Daten. Anschließend folgen zwei CRC-Bytes (ähnlich wie bei der Diskettenaufzeichnung) und zwei Nullbytes.