Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

TMODE - Auftragsattribute abfragen

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

Abfragen und Zugriff zu Listen und Tabellen; siehe "Abfragen und Zugriff zu Listen und Tabellen";

Kommunikation; siehe "Kommunikation (Programm, Anwender, System)"

Makrotyp:

O-Typ;

siehe "O-Typ-Makroaufrufe"


Zur Beschreibung der Ausgabefelder siehe Makro DTMODE. Die symbolischen Feldnamen bei Generierung der 24-Bit-Schnittstelle beginnen mit dem Präfix TSK statt TMOD.

Makrobeschreibung

Durch den Aufruf des Makros TMODE erhält das Benutzerprogramm Information über den Auftrag (Job), unter dem es abläuft. Das Benutzerprogramm stellt einen Bereich zur Verfügung, in dem die Information gespeichert werden soll.
Das Aufrufformat ist von der gewünschten Schnittstelle abhängig.

Hinweis

Die Benutzerkennung, unter der das Benutzerprogramm läuft, kann auch mit dem Makro RDUID abgefragt werden. Die Privilegierung des Auftrags, unter dem es läuft, lässt sich auch mit dem Makro CHKPRV abfragen.

Makroaufrufformate und Operandenbeschreibungen

Format 1: Aufruf der 24-Bit-Schnittstelle

[name] TMODE

[ {bereich[,länge] / D}]

[,PARMOD=24]

name
Name der DSECT, wenn der Operand D angegeben wird.Voreinstellung: name = TSKINF0.

bereich
bereich = Name eines Bereichs, in dem die Information über den Auftrag abgespeichert wird. Der Name D ist nicht zulässig.

länge

Länge des Bereichs in Byte. Wenn dieser Operand nicht angegeben wird, wird das Längenattribut von bereich verwendet. Wenn in jedem dieser beiden Fälle die Längenangabe kleiner ist als die Länge der angebotenen Information, dann werden nur so viele Daten zur Verfügung gestellt, wie in diesen Bereich passen.
Die Länge der angebotenen Informationen steht als symbolische Konstante L@TS-
KINF(EQU-Wert) zur Verfügung.

D
Eine Dummy Section (DSECT) zu der Ausgabeliste wird generiert.

PARMOD=
steuert die Makroauflösung. 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).

keine Angabe
Die Operandenwerte können auch in einem Datenbereich übergeben werden, deren Adresse Register R1 enthalten muss. Aufbau der Operandenliste:

Byte

Operand

0

muss auf X' 00' gesetzt sein; wichtig, da nur dann die ordnungsgemäße Makroausführung
gewährleistet ist.
Wenn nicht angegeben, wird u.U. ein falscher Returncode übergeben.

1 - 3

Adresse des Bereichs, in dem die Information über den Auftrag gespeichert werden soll.

4 - 5

Länge dieses Bereichs (hier kann die symbolische Konstante L@TSKINF angegeben
werden).

Format 2: Aufruf der 31-Bit-Schnittstelle

TMODE

[PARMOD=31]

[,PARLIST=adr / (r)]

PARMOD=
steuert die Makroauflösung. 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).

31
Die 31-Bit-Schnittstelle wird generiert. Datenlisten und Befehle benutzen 31-Bit-Adressen (Adressraum <= 2 GB). Datenlisten beginnen mit dem Standardheader.

PARLIST=
bezeichnet die Adresse eines Bereichs zur Aufnahme der Auftragsdaten. Der Bereich ist auf Wortgrenze auszurichten und muss mit dem Standardheader beginnen.
Der Makro DTMODE erzeugt eine Beschreibung des Ein-/Ausgabebereichs als DSECT oder als Datenabschnitt; der Standardheader ist initialisiert.

adr
symbolische Adresse (Name) des Bereichs.

(r)
r = Register mit dem Adresswert adr.

Rückinformation und Fehleranzeigen

R15:

+---------------+
|   |   |   |   |
|0|0|a|a|a|a|a|a|
+---------------+

Über die Ausführung des Makros TMODE wird im Register R15 ein Returncode übergeben.

X'aaaaaa'

Erläuterung

X'000000'

Funktion ausgeführt.

X'000004'

Operandenfehler.

X'00000C'

Systemfehler.

X'01FFFF'

Falsche Angabe für UNIT/FUNCTION im Standardheader.

X'03FFFF'

Falsche Angabe für VERSION im Standardheader.

Beispiel

Mit dem Makro TMODE sollen einige Auftragsattribute, wie Typ der Datensichtstation, Größe des Puffers der Datensichtstation, TSN des Auftrags, Benutzerkennung usw. abgefragt werden. Die Ausführung erfolgt im 31-Bit-Adressierungsmodus, der Ausgabebereich wird mit dem Makro DTMODE generiert (der Standardheader ist initialisiert). Für die Ausgabe mit dem Makro WROUT werden die Ausgabefelder geeignet aufbereitet.

  TMODE    START
           PRINT NOGEN
  TMODE    AMODE ANY
           BALR  3,0
           USING *,3
           TMODE PARMOD=31,PARLIST=TMODPL -------------------------------(1)
           UNPK  HFIELD(3),TMODTYPE(2)
           MVC   TASKT+2(2),HFIELD
           TR    TASKT+2(2),CODTAB
           UNPK  HFIELD(5),TMODBUFS(3)
           MVC   TASKB+2(4),HFIELD
           TR    TASKB+2(4),CODTAB
           UNPK  HFIELD(3),TMODPRI(2)
           MVC   TASKP+2(2),HFIELD
           TR    TASKP+2(2),CODTAB
           MVC   TSN,TMODTSN
           MVC   USERID,TMODUSER
           MVC   ACC,TMODACCT
           MVC   JOB,TMODNAME
           WROUT AUSB,TERM,MODE=LINE,PARMOD=31 --------------------------(2)
2                *,@DCEO      999    921011   53531004
  TERM     TERM
           DS    0F
  AUSB     DC    Y(AUSBE-AUSB)
           DS    CL3
           DC    X'15'
           DC    C'TERMINAL TYPE: '
  TASKT    DC    C'X''00'''
           DC    X'15'
           DC    C'BUFFER TERMINAL: '
  TASKB    DC    C'X''0000'''
           DC    X'15'
           DC    C'RUN PRIORITY: '
  TASKP    DC    C'X''00'''
           DC    X'15'
           DC    C'TSN: '
  TSN      DS    CL4
         DC    X'15'
         DC    C'USER ID: '
USERID   DS    CL8
         DC    X'15'
         DC    C'ACCOUNT NUMBER: '
ACC      DS    CL8
         DC    X'15'
         DC    C'JOB NAME: '
JOB      DS    CL8
         DC    X'15'
AUSBE    EQU   *
HFIELD   DS    CL5
CODTAB   DS    CL240
         DC    C'0123456789'
         DC    C'ABCDEF'
         DS    0F
         DTMODE DSECT=NO ----------------------------------------------(3)
         END

Ablaufprotokoll:

/start-assembh 
%  BLS0500 PROGRAM 'ASSEMBH', VERSION '<ver>' OF '<date>' LOADED
%  ASS6010 <ver> OF BS2000 ASSEMBH  READY 
//compile source=*library-element(macexmp.lib,tmode), - 
//        compiler-action=module-generation(module-format=llm), - 
//        module-library=macexmp.lib, - 
//        listing=parameters(output=*library-element(macexmp.lib,tmode))
%  ASS6011 ASSEMBLY TIME: 336 MSEC 
%  ASS6018 0 FLAGS, 0 PRIVILEGED FLAGS, 0 MNOTES 
%  ASS6019 HIGHEST ERROR-WEIGHT: NO ERRORS 
%  ASS6006 LISTING GENERATOR TIME: 86 MSEC 
//end 
%  ASS6012 END OF ASSTRAN
/start-executable-program library=macexmp.lib,element-or-symbol=tmode 
%  BLS0523 ELEMENT 'TMODE', VERSION '@' FROM LIBRARY
   ':2OSG:$QM212.MACEXMP.LIB' IN PROCESS 
%  BLS0524 LLM 'TMODE', VERSION ' ' OF '<date> <time>' LOADED 
TERMINAL TYPE: X'35' ----------------------------------------------------(4)
BUFFER TERMINAL: X'07F8' 
RUN PRIORITY: X'D2' 
TSN: 2QSE 
USER ID: QM212
ACCOUNT NUMBER: 89002
JOB NAME: MACTEST  

(1)

Aufruf des Makros TMODE. Die 31-Bit-Schnittstelle wird generiert; der Ausgabebereich wird mit dem Makro DTMODE erzeugt.

(2)

Ausgabe der abgefragten Werte mit WROUT im LINE-Modus. Einige Werte mussten zuvor für die Ausgabe aufbereitet werden (entpacken und in abdruckbare Zeichen umwandeln).

(3)

Der Ausgabebereich wird mit dem Makro DTMODE erzeugt. Der Standardheader ist initialisiert.

(4)

Ausgabe im LINE-Modus:

Typ der Datenstation = X'35'

Puffergröße = 2040 Byte

Runpriorität = 210

usw.