Allgemeines
Anwendungsgebiet: | Abfragen und Zugriffe zu Listen und Tabellen; siehe "Abfragen und Zugriff zu Listen und Tabellen"; Kommunikation; siehe "Kommunikation (Programm, Anwender, System)" |
Makrotyp: | S-Typ, MF-Format 1: 24-Bit-Schnittstelle: Standardform/E-Form/L-Form; 31-Bit-Schnittstelle: Standardform; siehe "S-Typ-Makroaufrufe" |
Ein Job (Auftrag) beginnt mit dem Kommando SET-LOGON-PARAMETERS und endet mit dem Kommando EXIT-JOB. Ein Job kann auch dadurch erzeugt werden, dass mit dem Kommando ENTER-PROCEDURE eine Prozedurdatei an das System übergeben wird. Ein Job wird vom Betriebssystem je nach seinen Jobdaten (Jobattributen) in eine Jobklasse eingereiht. Zu den Jobdaten zählen sowohl benutzerspezifische (Abrechnungs-) Daten als auch jobspezifische Daten (Jobname, Jobklasse, Jobpriorität, Startzeit,...). Die letztgenannten Angaben übergibt der Anwender dem Betriebssystem im Kommando SET-LO-GON-PARAMETERS bzw. im Kommando ENTER-JOB oder ENTER-PROCEDURE.
Makrobeschreibung
Der Makro JINF überträgt eine Liste von Jobdaten in einen anzugebenden Bereich. Die Liste ist unterteilt in Daten, die im Kommando SET-LOGON-PARAMETERS bzw. ENTER-JOB spezifiziert wurden und in aktuelle Jobdaten (Job-Startzeit, Anzahl Jobwiederholungen). Der Makro DJINF erzeugt eine Beschreibung (DSECT/ Datenabschnitt) zu der Ausgabeliste. Die Längen der einzurichtenden Bereiche sind dieser Beschreibung zu entnehmen.
Im 31-Bit-Adressierungsmodus muss der einzurichtende Bereich (Operand PARLIST) mit dem Standardheader beginnen.
Makroaufrufformat und Operandenbeschreibung
JINF |
{ [PARMOD=24] [,JATTR={adr / (r)}] [,RUNTIME={adr / (r)}] [,MF={L / (E,..)}] / [PARMOD=31],PARLIST={adr / (r)} } |
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.
JATTR=
beschreibt die Adresse eines Bereichs zur Aufnahme der Jobdaten bei Auftragserzeugung. Der Bereich ist auf Wortgrenze auszurichten.
adr
symbolische Adresse (Name) des Bereichs
(r)
r = Register mit dem Wert der Adresse adr
RUNTIME=
beschreibt die Adresse eines Bereichs zur Aufnahme aktueller Jobdaten (Job-Startzeit, Anzahl Jobwiederholungen). Der Bereich ist auf Wortgrenze auszurichten.
adr
symbolische Adresse (Name) des Bereichs
(r)
r = Register mit dem Wert der Adresse adr
PARLIST=
beschreibt die Adresse eines Bereichs zur Aufnahme der Jobdaten. Der Bereich ist auf Wortgrenze auszurichten und muss mit dem Standardheader beginnen. Bei Verwendung des durch DJINF erzeugten Datenabschnitts ist der Standardheader initialisiert; in allen anderen Fällen muss der Standardheader durch den Anwender initialisiert werden.
adr
symbolische Adresse (Name) des Bereichs
(r)
r = Register mit dem Adresswert adr
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.
Rückinformation und Fehleranzeige
Während der Makrobearbeitung enthält Register R1 die Adresse der Operandenliste.
R15:
+---------------+ | | | | | |0|0|a|a|a|a|a|a| +---------------+
Über die Ausführung des Makros JINF wird im Register R15 ein Returncode übergeben.
X'aaaaaa' | Erläuterung |
X'000000' | Normale Ausführung. |
X'000008' | Operandenfehler oder unzureichende Länge oder PARLIST mit PARMOD=24 |
X'00000C' | Systemfehler |
Weitere Returncodes, deren Bedeutung durch Konvention makroübergreifend festgelegt ist, können der Tabelle „Standard-Returncodes“ (Standardheader) entnommen werden.
Beispiel
JINF START JINF AMODE ANY PRINT NOGEN BALR 3,0 USING *,3 JINF PARLIST=JIJOBDPL,PARMOD=31 --------------------------------(1) MVC EMPF1,JIJOUID ---------------------------------------------(2) MVC EMPF2,JIJOACC MVC EMPF3,JIJOJCLA MVC EMPF4,JIJOTSN WROUT AUS1,ERROR,MODE=LINE,PARMOD=31 TERM TERM ERROR TERM DUMP=Y DS 0F AUS1 DC Y(AUS1END-AUS1) DS CL3 DC C'USER ID: ' EMPF1 DS CL8 F1 DC X'15' DC C'ACCOUNT NUMBER: ' EMPF2 DS CL8 F2 DC X'15' DC C'JOB CLASS: ' EMPF3 DS CL8 F3 DC X'15' DC C'TSN: ' EMPF4 DS CL4 AUS1END EQU * DJINF DSECT=NO,PARLIST=YES ---------------------------------------(3) END
Mit diesem Programm werden unter Benutzung der symbolischen Namen in der Datenliste (Makro DJINF) einige Jobdaten (Benutzerkennung, Abrechnungsnummer, Jobklasse, Task Sequence Number = TSN) ausgegeben. Die Programmausführung erfolgt im 31-Bit-Adressierungsmodus.
Ablaufprotokoll:
/start-assembh % BLS0500 PROGRAM 'ASSEMBH', VERSION '<ver>' OF '<date>' LOADED % ASS6010 <ver> OF BS2000 ASSEMBH READY //compile source=*library-element(macexmp.lib,jinf), - // compiler-action=module-generation(module-format=llm), - // module-library=macexmp.lib, - // listing=parameters(output=*library-element(macexmp.lib,jinf)) % ASS6011 ASSEMBLY TIME: 344 MSEC % ASS6018 0 FLAGS, 0 PRIVILEGED FLAGS, 0 MNOTES % ASS6019 HIGHEST ERROR-WEIGHT: NO ERRORS % ASS6006 LISTING GENERATOR TIME: 81 MSEC //end % ASS6012 END OF ASSEMBH /start-executable-program library=macexmp.lib,element-or-symbol=jinf % BLS0523 ELEMENT 'JINF', VERSION '@' FROM LIBRARY ':2OSG:$QM212.MACEXMP.LIB' IN PROCESS % BLS0524 LLM 'JINF', VERSION ' ' OF '<date> <time>' LOADED USER ID: QM212 ------------------------------------------------------(4) ACCOUNT NUMBER: 89002 JOB CLASS: JCDSTD TSN: 2QSE
(1) | Aufruf des Makros JINF. |
(2) | Jobdaten in das Ausgabefeld übertragen und mit dem Makro WROUT zeilenweise ausgeben. |
(3) | Aufruf des Makros DJINF zur Generierung der Datenliste (Ausgabebereich).Die Initialisierungswerte für den Standardheader sind eingetragen. |
(4) | Es folgt die Ausgabe (zeilenweise) der ausgewählten Jobdaten nach SYSOUT. |