Ein physikalischer Block ist die Einheit der Datenübertragung zu oder von einem Ein-/Ausgabegerät. Die Daten zwischen 2 Blocklücken eines Magnetbandes bilden einen physikalischen Block. Ein solcher Block reicht nie über die Bandgrenze hinaus. Bei Banddateien wird unterschieden zwischen Standard-Blockformat und Nicht-Standard-Blockformat.
Eine Banddatei wird grundsätzlich mit dem Gerätetreiber PTAM verarbeitet.
Standard-Blockformat
BLOCK-CONTROL-INFO=*PAMKEY, BUFFER-LENGTH=*STD(SIZE=n)
Ein Standardblock entspricht n PAM-Seiten. Der PAM-Schlüssel wird durch die Datenkettungseinrichtung der PAM-Seite vorangestellt und steht nicht gesondert auf dem Band. Als Treiber für Bänder steht nur PTAM zur Verfügung.
Die Angabe BUFFER-LENGTH bestimmt, aus wie vielen PAM-Seiten ein Standardblock besteht. Bei der Zugriffsmethode SAM ist ein Standardblock nicht immer vollständig mit logischen Sätzen belegt. Der Platz zwischen Ende des letzten logischen Satzes und dem Ende des Blocks hat undefinierten Inhalt (siehe „Rest-Byte“ im Beispiel unten).
Eine gekettete Ein-/Ausgabe ist auf Bändern nicht möglich.
Beispiel
BUFFER-LENGTH=*STD(SIZE=2), RECORD-FORMAT=*VARIABLE
Nicht-Standard-Blockformate
Ein Nicht-Standardblock ist ein Datenblock auf Magnetband, dem kein PAM-Schlüssel vorangestellt ist. Nicht-Standardblöcke können höchstens so lang sein, wie im Kommando ADD-FILE-LINK beim Operanden BUFFER-LENGTH angegeben ist (max. 32768 Byte). Nicht-Standardblöcke werden immer dann erzeugt, wenn BLOCK-CONTROL-INFO=*WITHIN-DATA-BLOCK oder *NO angebeben wurde, auch in Verbindung mit der Angabe BUFFER-LENGTH=*STD(SIZE=n).
Für eine Bearbeitung mit UPAM muss BUFFER-LENGTH ein Vielfaches von 2048 betragen.
Datenblock mit Verwaltungsinformation (BLOCK-CONTROL-INFO=*WITHIN-DATA-BLOCK)
Dem Block wird kein PAM-Schlüssel vorgeschaltet. Stattdessen stellen SAM und UPAM an den Beginn eines jeden Logischen Blockes ein 12 Byte langes Blockkontrollfeld (Control Field, CF), an das SAM ein 4 Byte langes Datenlängenfeld (Data Length, DL) anfügt. Diese 12 Byte (CF bei UPAM) bzw. 16 Byte (CF und DL bei SAM) werden als Pufferverschiebung behandelt.
Beispiel
BLOCK-CONTROL-INFO=*WITHIN-DATA-BLOCK,BUFFER-LENGTH=*STD(SIZE=2),
RECORD-FORMAT=*VARIABLE, ACCESS-METHOD=*SAM
Datenblock ohne Verwaltungsinformation (BLOCK-CONTROL-INFO=*NO)
Dieser Block enthält keine block-spezifische Verwaltungsinformation. Dieses Format existiert für UPAM- und SAM-Dateien.
Beispiel
BLOCK-CONTROL-INFO=*NO,BUFFER-LENGTH=4096,RECORD-FORMAT=*VARIABLE,
ACCESS-METHOD=*SAM, Datenlänge 3900 Byte
Auf das Band werden nur die Daten geschrieben (hier 3900 Byte).
Innerhalb einer Datei können die Datenblöcke unterschiedlich lang sein. Es kann jedoch kein Block die im Operanden BUFFER-LENGTH des Kommandos ADD-FILE-LINK definierte maximale Blocklänge überschreiten.
Für SAM-Dateien gilt:
Das Datenlängenfeld (DL) ist lt. DIN-Norm nicht Bestandteil des Satzes, bei Sätzen vom Format V (RECORD-FORMAT=*VARIABLE) entsteht deshalb eine Pufferverschiebung (BLOCK-OFFSET) um vier Byte.
Geben Sie beim Kommando ADD-FILE-LINK den Operanden BLOCK-OFFSET=0 an, erfolgt keine Pufferverschiebung, d.h., es wird kein Blocklängenfeld berücksichtigt.
Blockverlängerung durch Füllzeichen wird von der Zugriffsmethode SAM und von der Kennsatzbehandlung beim Lesen unterstützt (z.B. Lesen von Nicht-BS2000-Bändern).
Aufbau von Daten- und Satzlängenfeld (nur bei SAM-Dateien)
im EBCDI-Code: | 2 Byte lange Binärzahl, die die Block- bzw. Satzlänge enthält, gefolgt von zwei Leerzeichen (2X'40') |
im ISO-Code: | eine vierstellige Dezimalzahl (entspricht Format D) |
Da im Format D die Dezimalzahl maximal vierstellig ist, ist die maximale Blocklänge 9999 Byte.
Dieses Blockformat ist das Blockformat für den Datenaustausch nach DIN 66029 und wird auf- und abwärts kompatibel bleiben.
Beispiel: SAM-Datei mit Sätzen variabler Länge und Nicht-Standardblöcken
Der Block (Blocklänge = 198 Byte) enthält 3 Sätze von 76, 84 bzw. 34 Byte Länge. Block- und Satzlängenfelder (BL/SL) haben folgenden Inhalt:
BL | SL-1 | SL-2 | SL-3 | |
EBCDI-Code (Format V) | 00C64040 | 004C4040 | 00544040 | 00224040 |
ISO-Code (Format D) | F0F1F9F8 | F0F0F7F6 | F0F0F8F4 | F0F0F3F4 |
Zugriffsmethoden und Blockformat bei Banddateien
Das Blockformat (Standard- oder Nicht-Standardblock) wird durch die Angabe bei den Operanden BLOCK-CONTROL-INFO, BUFFER-LENGTH oder LABEL-TYPE (Blocklänge bzw. Band-Normtyp) und die Zugriffsmethode bestimmt. Die folgende Tabelle zeigt die zulässigen BLOCK-CONTROL-INFO-Werte in Abhängigkeit von der Zugriffsmethode:
BLOCK-CONTROL-INFO | UPAM | SAM | BTAM |
---|---|---|---|
*PAMKEY | + | + | |
*WITHIN-DATA-BLOCK | + | + | |
*NO | + | + | + |
Der vorhergehenden Tabelle ist zu entnehmen, dass BTAM nur Dateien mit Nicht-Standardblöcken (BLOCK-CONTROL-INFO=*NO) verarbeiten kann. Mit den Zugriffsmethoden
SAM und UPAM können Dateien aller Blockformate (Standard- und Nicht-Standardblöcke) verarbeitet werden (BLOCK-CONTROL-INFO=*PAMKEY/*WITHIN-DATA-BLOCK/*NO).
Eine Datei kann nicht gleichzeitig Standard- und Nicht-Standardblöcke enthalten.