Allgemeines
Anwendungsgebiet: | Ein-/Ausgabe von Dateien und Sätzen; siehe "Dateien und Sätze" |
Makrotyp: | S-Typ, MF-Format 1: 24-Bit-Schnittstelle: Standardform/E-/L-Form; 31-Bit-Schnittstelle: Standardform/E-/L-/C-/D-Form; siehe "S-Typ-Makroaufrufe" |
Die Datei SYSLST ist eine vom Betriebssystem pro Task angelegte temporäre (System-) Datei. Der Inhalt von SYSLST wird bei Taskbeendigung auf den Drucker ausgegeben und die Datei gelöscht. Das Kommando ASSIGN-SYSLST bietet dem Anwender die Möglichkeit, der SYSLST-Datei eine eigene (katalogisierte) Datei, eine S-Variable oder ein Element einer PLAM-Bibliothek zuzuordnen.
Im Gegensatz zur (System-)Datei SYSLST sind die (System-)Dateien SYSLST01 bis SYS-LST99 nur wirksam, wenn ihnen katalogisierte Dateien zugeordnet werden (siehe auch Makro SYSFL).
Makrobeschreibung
Mit dem Makro WRLST kann der Anwender einen Datensatz in die Datei SYSLST oder eine der Dateien SYSLST01 bis SYSLST99 schreiben. Mit jedem Makroaufruf wird ein Datensatz in die spezifizierte Datei übertragen. Der Eintrag erfolgt in die Datei SYSLST, wenn der Operand NUMBER nicht angegeben wird.
Makroaufrufformat und Operandenbeschreibung
WRLST |
{satz,fehler[,NUMBER=n][,PARMOD= {24 / 31}] / (1)} [,MF=(D,pre) / D / I / (E,..) / L / C / (C,pre)]] |
satz
symbolische Adresse des Datensatzes, der übertragen werden soll. Der Satz beginnt mit dem Satzlängenfeld, gefolgt von dem Vorschubsteuerzeichen und den zu übertragenden Daten.
Satzaufbau (Beispiel):
satz DC Y (satzend-satz) DS CL2 reservierte Byte DC X'nm' Druckvorschubzeichen daten DC C'datensatz' zu übertragender Datensatz satzend EQU *
Hinweis
Das Druckvorschubzeichen gibt den gewünschten Papiervorschub auf dem Drucker an. Die gültigen Druckvorschubzeichen sind:
X'4n' | Zeilenvorschub um n vor dem Drucken und 1 Zeile nach dem Drucken. Der |
X'0n' | Vorschieben um n Zeilen nach dem Drucken. Der Bereich von n ist (0 - F)16; |
X'Cn' | Springe unmittelbar zu Kanal n der Lochstreifensteuerung des Druckers. Der |
X'8n' | Drucke und springe zu Kanal n der Lochstreifensteuerung des Druckers. Der |
fehler
symbolische Adresse zu der verzweigt wird, wenn einer der folgenden Fehler bei der Makroausführung auftritt (s. Rückinformation):
nicht behebbarer Fehler
Operandenfehler
Satz wird abgeschnitten
Speicherplatz
Im Fehlerfall enthält Register R14 die Adresse des dem WRLST-Aufruf folgenden Befehls. Der Fehlercode wird im Register R15 übergeben.
31-Bit-Schnittstelle: Bei Angabe fehler = 0 (Adresse X'00..0') wird das Programm mit dem den WRLST-Makro folgenden Befehl fortgesetzt.
NUMBER=
bezeichnet eine der Dateien SYSLST01 bis SYSLST99.
n
(zweistellige) Zahl aus der Menge (01,02, ..., 99).
PARMOD=
steuert die Makroauflösung. Es wird entweder die 24-Bit- oder die 31-Bit-Schnittstelle generiert. Wenn PARMOD nicht spezifiziert wird, erfolgt die Makroauflösung entsprechend der Angabe für den Makro GPARMOD oder der Voreinstellung für den Assembler (= 24-Bit-Schnittstelle).
24
Die 24-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 24-Bit-Adressen (Adressraum <= 16 MB).
31
Die 31-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 31-Bit-Adressen (Adressraum <= 2 GB). Datenlisten beginnen mit dem Standardheader.
(1)
Register R1 enthält die Adresse des Datenbereichs. Die Liste ist auf Wortgrenze auszurichten.
MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. nachfolgenden Operanden (z.B. für einen Präfix) siehe Abschnitt „S-Typ-Makroaufrufe“. Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei „Makrotyp“ angegeben und aus dem Aufrufformat ersichtlich.
Bei der D-Form des Makroaufrufs kann ein Präfix (pre = 1..3 Buchstaben), wie im Aufrufformat dargestellt, angegeben werden.
Es gibt keine Voreinstellung.
Mit MF=I wird der Standardheader initialisiert.
Bei MF=E wird der Standardheader im Datenbereich nicht automatisch versorgt. Die Adresse des Datenbereichs muss in Register R1 übergeben werden. Die Liste ist auf Wortgrenze auszurichten; Aufbau siehe unten.
Aufbau des Datenbereichs
Adressierungs- | Byte | Inhalt |
24-Bit-Modus | 0 | SYSLSTn (n = Nummer der SYSLST-Datei). |
1 - 3 | Adresse des zu übertragenden Satzes (Operand satz). | |
4 - 7 | Adresse, zu der im Fehlerfall verzweigt wird (Operand fehler). | |
31-Bit-Modus | 0 - 7 | Standardheader. Aufbau: |
8 - 11 | Adresse, zu der im Fehlerfall verzweigt wird (Operand fehler). | |
12 - 15 | Adresse des zu übertragenden Satzes (Operand satz). | |
16 | SYSLSTn (Nummer der SYSLST-Datei; Operand NUMBER) |
Hinweise zum Makroaufruf
Bei normaler Beendigung wird mit dem der Makroauflösung folgenden Befehl fortgesetzt. Ein Abschneiden tritt bei Überschreiten der Länge von 137 oder 165 Byte auf (4 Byte Satzlängenfeld + 1 Byte Vorschubsteuerzeichen + 132 bzw. 160 Zeichen) gemäß dem im Makro SYSFL angegebenen Druckertyp. Register R14 enthält die Adresse des dem Makroaufruf folgenden Befehls. Register R15 wird nicht verändert, wenn kein Fehler auftritt.
Wenn SYSLST nicht katalogisiert wurde, geschieht Folgendes: SYSLST wird nach Auftragsbeendigung auf den Drucker ausgegeben. Danach wird die SYSLST-Datei gelöscht.
Wird SYSLST bzw. SYSLSTn einer katalogisierten Datei zugeordnet, kann diese auch langfristig bearbeitet werden. Der Benutzer ist in diesem Fall selbst für das Ausdrucken bzw. das Löschen der Datei verantwortlich.
Rückinformation und Fehleranzeigen
R15:
+---------------+ | | | | | |0|0|0|0|0|0|a|a| +---------------+
Über die Ausführung des Makros WRLST wird im Register R15 ein Returncode übergeben.
X'aa' | Erläuterung |
X'04' | Nicht behebbarer Fehler |
X'08' | Operandenfehler |
X'0C' | Abschneiden des zu schreibenden Satzes. Satzinhalt (ohne Satzlängenfeld) überschreitet |
X'10' | Kein weiterer Speicherplatz für die SYSLSTn zugeordnete Datei. Die letzte PAM-Seite wurde |
31-Bit-Schnittstelle:
Im Standardheader wird kein Returncode übergeben. Bei fehlerhafter Versorgung des Feldes UNIT im Standardheader wird ein Userdump erzeugt.
Die zwei linksbündigen Byte des Registers R15 werden nicht versorgt.
Wird SYSLST einer katalogisierten Datei zugeordnet, die keine sekundäre Speicherplatzanforderung (S-ALLOC=0 im Dateikatalog) erlaubt, und es ist kein weiterer Speicherplatz in dieser Datei verfügbar, wird der Returncode X'10' zurückgegeben.