Makrotyp: S-Typ (E-Form/L-Form/D-Form/C-Form/M-Form) (siehe "Typen von Makroaufrufen")
Allgemeines
Unabhängig von der DIV-Funktion (Operand FCT) können bei einem DIV-Makro alle Operanden spezifiziert werden. Welche Operanden ausgewertet werden, hängt von der ausgewählten DIV-Funktion ab.
Zunächst werden alle Operanden in einer Übersicht dargestellt. Das Format und die Operanden, die bei den einzelnen Funktionen ausgewertet werden, werden pro Funktionseinheit beschrieben. Im Anschluss an die Formatübersicht werden kurz die Funktionen des DIV-Makros aufgelistet.
Operandenwerte, die nicht Adress- und nicht Register-Angaben sind, werden in der Operandenbeschreibung als „direkte Angabe“ bezeichnet.
Der Operandenwert „adr“ definiert eine symbolische Adresse, die in einer A-Konstanten abgelegt werden kann, d.h., die symbolische Adresse muss zum Übersetzungszeitpunkt berechnet werden können und darf nicht in einer DSECT enthalten sein.
Die Formen des MF-Operanden sind detailliert im Anhang ("Typen von Makroaufrufen") beschrieben.
Parameterliste
Die Parameterliste des Makros enthält einen Header, dessen Felder beim Aufbau der Parameterliste mithilfe der L-Form automatisch versorgt werden.
Wird eine Parameterliste mit der D-Form oder C-Form dynamisch aufgebaut, ist sie zuvor durch eine mithilfe der L-Form erzeugten Parameterliste zu initialisieren. Nur auf diese Weise ist eine korrekte Versorgung des Header einer Parameterliste gewährleistet.
Wird in der folgenden Operandenbeschreibung auf Felder der Parameterliste Bezug genommen, so werden die Namen der Parameterliste angegeben, wie sie durch MF=D (ohne Angabe bei PREFIX) generiert werden.
Spezielle Parameter in der Parameterliste
Folgende Parameter sind Returnparameter, auf die nur direkt über die Parameterliste zugegriffen werden kann.
DIVPID
In DIVPID wird die Identifikation des OPEN zur Verfügung gestellt. Sie muss beim Aufruf weiterer DIV-Funktionen, die zu diesem OPEN gehören, in den Parameterlisten enthalten sein. Wird dieselbe Parameterliste benutzt, ist dies der Fall.
DIVPSIZE
In DIVPSIZE wird die logische Dateigröße in 4096-Byte-Seiten von OPEN zur Verfügung gestellt. DIVPSIZE enthält die Nummer der logisch letzten 4-KB-Seite (1 bedeutet, dass die erste Seite der Datei die logisch letzte Seite ist, 0 bedeutet, dass die Datei leer ist). DIVPSIZE kann zur Speicherbeschaffung für ein Fenster ausgewertet werden.
Wenn die Datei zuvor von der Zugriffsmethode UPAM bearbeitet wurde, ist es möglich, dass das logische Dateiende nicht an einer 4-KB-Seitengrenze liegt. In diesem Fall enthält DIVPSIZE den aufgerundeten Wert. Die letzte Halbseite vor dem logischen Dateiende erscheint dann in einem Fenster mit X'00' initialisiert.
Da die Datei durch SAVE logisch verkürzt oder verlängert werden kann, wird DIVPSIZE nach einem erfolgreichen SAVE-Aufruf aktualisiert. DIVPSIZE enthält dann die Nummer der logisch letzten 4-KB-Seite der Datei (1 bedeutet, dass die erste Seite der Datei die logisch letzte Seite ist, 0 bedeutet, dass die Datei leer ist).
Modifikation der Dateieigenschaften durch Kommando oder Makro
Durch das Kommando ADD-FILE-LINK (oder durch den Makro FILE) kann der SHARUPD-Modus (NO | WEAK | YES) geändert werden.
Der OPEN-Modus (INPUT|INOUT|OUTIN) kann vom Kommando ADD-FILE-LINK bzw. vom Makro FILE nicht geändert werden.
Im Kommando ADD-FILE-LINK darf in den Operanden ACCESS-METHOD bzw. BLOCK-CONTROL-INFO keine Angabe erfolgen, die im Widerspruch zu den Dateistrukturattributen FILE_STRUC=PAM beziehungsweise BLK-CONTR=PAM steht. Das Gleiche gilt für die Operanden FCBTYPE beziehungsweise BLKCTRL des Makros FILE.
Formatübersicht
Operation | Operanden |
|
|
| |
| |
|
Funktionsübersicht
Funktion | Kurzbeschreibung | siehe |
FCT = *OPEN | DIV-/PAM-Datei eröffnen | |
FCT = *MAP | Fenster im Adressraum anlegen | |
FCT = *SAVE | Geänderte Fensterseiten in die Plattendatei zurückschreiben | |
FCT = *RESET | Änderungen in Fensterseiten rückgängig machen | |
FCT = *UNMAP | Fenster abbauen | |
FCT = *CLOSE | Plattendatei schließen |