Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

PINF - Globale Programminformationen ausgeben

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

Binden und Laden; siehe "Binden und Laden"

Makrotyp:

S-Typ, MF-Format 2: Standardform/C-/D-/L-/E-/M-Form;

siehe "S-Typ-Makroaufrufe"


Zum dynamischen Bindelader DBL siehe auch Handbuch „BLSSERV“ [4].

Makrobeschreibung

Der Makroaufruf PINF informiert den Benutzer über Programme, die mit den Kommandos LOAD-EXECUTABLE-PROGRAM oder START-EXECUTABLE-PROGRAM (bzw. LOAD-PROGRAM oder START-PROGRAM) geladen wurden. Folgende Informationen können abgefragt werden:

  • der internen Programmname (SELECT=INTNAME),

  • die interne Programmversion (SELECT=INTVERS),

  • das Erzeugungsdatum des Programmes (SELECT=INTDATE),

  • der Copyright-Name des Programmes (SELECT=COPRIGHT),

  • der Name der Bibliothek, in der sich das Programm befand (SELECT=FILENAME),

  • der Elementname des Programmes in der Bibliothek (SELECT=ELEMNAME),

  • die Elementversion (SELECT=ELEMVERS),

  • den Elementtyp (SELECT=ELEMTYPE),

  • der Name, der im Ladeaufruf (bei START-PROGRAM bzw. LOAD-PROGRAM) angegeben wurde (SELECT=SPECNAME),

  • einen Indikator, der anzeigt, ob das geladene Programm vom statischen Lader ELDE geladen wurde oder das erste Modul einer Ladeeinheit war und vom DBL geladen wurde (SELECT=LOADTYPE).

Das Ausgabefeld enthält alle Informationen in sedezimaler Form.

Makroaufrufformat und Operandenbeschreibung

PINF

SELECT=INTNAME / INTVERS / INTDATE / COPRIGHT / FILENAME / ELEMNAME / ELEMVERS /

ELEMTYPE / SPECNAME / LOADTYPE

,VERSION=001 / 002

,ADDR=adr / (r)

[,LEN=integer]

,MF=S / C / D / E / L / M

[,PARAM=adr / (r)]

,PREFIX=P / p

,MACID=BPI / macid

In der nachfolgenden Operandenbeschreibung sind die Operanden alphabetisch geordnet.

ADDR=adr
gibt die symbolische Adresse eines Feldes an, in dem der DBL die Informationen ablegen soll.

(r)
r = Register mit dem Adresswert adr. Angabe nur mit MF=M.

LEN=
gibt die Länge des bei ADDR angegebenen Ausgabefeldes in Byte an.
Wenn der Operand nicht angegeben wird, dann wird die Mindestlänge (4 Byte) verwendet.

integer
Die Mindestlänge ist 4 Byte. Werden bei SELECT mehrere Informationen angegeben, so muss die Gesamtlänge des Ausgabefeldes gleich der Summe aller
Informationslängen (siehe Operand SELECT) sein.

MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der angegebenen Operanden PARAM, PREFIX und MACID 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 C-Form, D-Form oder M-Form des Makroaufrufs kann ein Präfix PREFIX und bei der C-Form oder M-Form zusätzlich eine Macid MACID angegeben werden (siehe AAbschnitt „S-Typ-Makroaufrufe“).

SELECT=

Legt die Art der Information fest, die ausgegeben wird. Anzugeben sind die symbolischen Namen der gewünschten Informationen. Gleichzeitig dürfen maximal 8 Informationen gefordert werden. Die folgenden Tabellen enthalten die Beschreibung der Teilinformationen mit symbolischen Namen und ihrer Länge.

Bedeutung der Ausgabe bei VERSION=001

In der Spalte Beschreibung bedeutet:

(D):
Das Programm wurde durch den dynamischen Bindelader DBL geladen, die Information bezieht sich auf das erste geladene Modul (LLM oder Bindemodul) der Ladeeinheit.

(S):
Das Programm wurde durch den statischen Lader ELDE geladen (Lademodul, Typ-C-Element einer Bibliothek), oder es handelt sich um ein PAM-LLM, das durch den dynamischen Bindelader DBL geladen wurde.


symb.
Name

Länge
(Byte)

Beschreibung

INTNAME

41

interner Programmname:
(D):
interner Name des LLM oder der erste CSECT-Name des Bindemoduls,
wenn es aus der EAM-Bindemoduldatei geladen wurde
(S):
interner Name des Lademoduls oder des PAM-LLM

INTVERS

24

interne Programmversion:
(D):
interne Version des LLM
(S):
interne Version des Programms oder des PAM-LLM

INTDATE

10

Erzeugungsdatum des Programmes in der Form yyyy-mm-dd
yyyy=Jahr, mm=Monat, dd=Tag
(D):
bei LLMs deren Erzeugungsdatum
bei Bindemodulen das Ausführungsdatum des Type-R-Elementes bzw.
des Elementes aus der EAM-Bindemoduldatei
(S):
Erzeugungsdatum des Lademoduls oder des PAM-LLM

COPRIGHT

64

Copyright-Name des Programmes
(D):
Copyright-Name des LLM
(S):
Copyright-Name des Lademoduls oder des PAM-LLM

FILENAME

54

(D):
Name der Bibliothek (Programmbibliothek oder OML), beim Laden aus
der EAM-Bindemoduldatei enthält das Feld Leerzeichen
(S):
Name der katalogisierten Datei (des Lademoduls oder des PAM-LLMs)
oder der Name der Bibliothek, die das Element vom Typ C (das
Lademodul) enthält

ELEMNAME

64

(D):
bei LLMs der Typ-L-Elementname,
bei Bindemodulen entweder der Typ-R-Elementname in der
Programmbibliothek, der Elementname in einer OML oder der erste CSECT-Name
des Bindemoduls ,wenn er aus der EAM-Bindemoduldatei geladen wurde.


(S):
Name des Typ-C-Elementes in einer Programmbibliothek.

ELEMVERS

24

(D):
bei LLMs die Version des Typ-L-Elements, bei Bindemodulen die Version
des Typ-R-Elementes in der Programmbibliothek
(S):
die Version des Typ-C-Elementes in der Programmbibliothek

ELEMTYPE

8

Enthält einen Buchstaben, der den Elementtyp kennzeichnet und 7
Leerzeichen.
(D): L = LLM, R = Bindemodul
(S): C = Lademodul

SPECNAME

64

Enthält den Namen, der im Ladeaufruf (bei START-PROGRAM oder
LOAD-PROGRAM) angegeben wurde:
(D):
das angegebene Symbol oder die Zeichenfolge „EAM OMF“ für die
EAM-Bindemodulbibliothek
(S):
der Name der katalogisierten Datei (des Lademoduls oder des PAM-
LLMs) oder der Name des Typ-C-Elementes in einer Programmbibliothek

LOADTYPE

1

Indikator für den Typ des geladenen Programmes:
= 0 : (S)
das Programm wurde vom statischen Lader ELDE geladen oder es
handelt sich um ein PAM-LLM.
!= 0 : (D)
das Programm wurde durch den DBL geladen und die Informationen
beziehen sich auf das erste Modul der Ladeeinheit


Bedeutung der Ausgabe bei VERSION=002

In der Spalte Beschreibung bedeutet:

(D):
Das Programm wurde durch den dynamischen Bindelader DBL geladen, die Information bezieht sich auf das erste geladene Modul (LLM oder Bindemodul) der Ladeeinheit oder auf ein PAM-LLM.

(S):
Das Programm wurde durch den statischen Lader ELDE geladen (Lademodul, Typ-C-Element einer Bibliothek).

symb.
Name

Länge
(Byte)

Beschreibung

INTNAME

41

interner Programmname:
(D):
interner Name des (PAM-)LLM oder der erste CSECT-Name des
Bindemoduls, wenn es aus der EAM-Bindemoduldatei geladen wurde
(S):
interner Name des Lademoduls

INTVERS

24

interne Programmversion:
(D):
interne Version des (PAM-)LLM
(S):
interne Version des Programms

INTDATE

10

Erzeugungsdatum des Programmes in der Form yyyy-mm-dd
yyyy=Jahr, mm=Monat, dd=Tag
(D):
bei (PAM-)LLMs deren Erzeugungsdatum
bei Bindemodulen das Ausführungsdatum des Type-R-Elementes bzw.
des Elementes aus der EAM-Bindemoduldatei
(S):
Erzeugungsdatum des Lademoduls

COPRIGHT

64

Copyright-Name des Programmes
(D):
Copyright-Name des (PAM-)LLM
(S):
Copyright-Name des Lademoduls

FILENAME

54

(D):
Name der Bibliothek (Programmbibliothek oder OML) oder PAM-LLM-
Dateiname, beim Laden aus der EAM-Bindemoduldatei enthält das Feld
Leerzeichen
(S):
Name der katalogisierten Datei (des Lademoduls) oder der Name der
Bibliothek, die das Element vom Typ C (das Lademodul) enthält

ELEMNAME

64

(D):
bei LLMs der Typ-L-Elementname,
bei Bindemodulen entweder der Typ-R-Elementname in der
Programmbibliothek, der Elementname in einer OML oder der erste CSECT-Name
des Bindemoduls, wenn er aus der EAM-Bindemoduldatei geladen wurde.


(S):
Name des Typ-C-Elementes in einer Programmbibliothek.

ELEMVERS

24

(D):
bei LLMs die Version des Typ-L-Elements, bei Bindemodulen die Version
des Typ-R-Elementes in der Programmbibliothek
(S):
die Version des Typ-C-Elementes in der Programmbibliothek

ELEMTYPE

8

Enthält einen Buchstaben, der den Elementtyp kennzeichnet und
7 Leerzeichen.
(D):
L = LLM, R = Bindemodul
(S):
C = Lademodul

SPECNAME

64

Enthält den Namen, der im Ladeaufruf (bei START-PROGRAM oder
LOAD-PROGRAM) angegeben wurde:
(D):
das angegebene Symbol oder die Zeichenfolge „EAM OMF“ für die
EAM-Bindemodulbibliothek oder der PAM-LLM-Dateiname
(S):
der Name der katalogisierten Datei (des Lademoduls) oder der Name
des Typ-C-Elementes in einer Programmbibliothek

LOADTYPE

1

Indikator für den Typ des geladenen Programmes:
= 0 : (S)
das Programm wurde vom statischen Lader ELDE geladen.
!= 0 : (D)
das Programm wurde durch den DBL geladen und die Informationen
beziehen sich auf das erste Modul der Ladeeinheit

VERSION=

Legt die gewünschte Makro-Version und damit das Layout der Ausgabe fest.

001
Version 1 des PINF-Makros wird verwendet. In diesem Fall wird bei der Ausgabe nicht zwischen Lademodulen und PAM-LLMs unterschieden.

002
Version 2 des PINF-Makros wird verwendet. Diese Angabe wird ab BLSSERV V2.5 unterstützt.

Die ausgegebene Information für PAM-LLMs unterscheidet sich von der Information für Lademodule.

Hinweise zum Makroaufruf

Eine dynamische Änderung des Datenbereichs wird normalerweise mit einem Makroaufruf der Form MF=M durchgeführt.

Wird die Änderung jedoch direkt mit symbolischen Namen von MF=D vorgenommen, sollte der Benutzer beachten, dass für den Makro-Prozessor

  • die Einträge sequenziell ab der ersten Position erfolgen müssen

  • Einträge, die den aktuell vorhandenen folgen, ignoriert werden

  • ein Null-Eintrag in den aktuell vorhandenen Einträgen ignoriert, aber trotzdem als gültiger Eintrag gewertet wird.

Rückinformation und Fehleranzeigen

Die geforderten Informationen werden in dem Feld übergeben, das mit dem Operanden ADDR festgelegt wurde.

Standardheader:

+---------------+
|   |   |   |   |
|c|c|b|b|a|a|a|a|
+---------------+

Über die Ausführung des Makros PINF wird im Standardheader folgender Returncode übergeben (cc=Subcode2, bb=Subcode1, aaaa=Maincode):

X'cc'

X'bb'

X'aaaa'

Erläuterung

X'00'

X'00'

X'0000'

Der Makro wurde normal ausgeführt.

X'00'

X'40'

X'0001'

Die gewünschte Information ist noch nicht definiert (Warnung) oder wird
nicht mehr unterstützt.

X'00'

X'01'

X'0010'

Das Ausgabefeld ist zu klein.

X'00'

X'01'

X'0020'

Bei SELECT wurde ein unbekannter symbolischer Name angegeben.

X'00'

X'01'

X'0070'

Der Speicherbereich für das Ausgabefeld ist nicht zugewiesen.

X'00'

X'20'

X'0090'

Interner Fehler.

X'00'

X'01'

X'0100'

Der SELECT-Operand fehlt.

X'00'

X'01'

X'0110'

Bei SELECT wurden mehr als 8 Informationen angegeben.

X'00'

X'01'

X'FFFF'

Die Funktion wird nicht mehr oder noch nicht unterstützt.

X'00'

X'02'

X'FFFF'

Die Funktion ist nicht verfügbar.

X'00'

X'03'

X'FFFF'

Die Version der Schnittstelle wird nicht unterstützt.

Beispiel

Das Programm PINFBSP ruft den Makro PINF auf und gibt folgende Informationen aus:

  • den internen Programmnamen

  • den Bibliotheksnamen

  • den Namen des Elements in der Bibliothek

  • den Elementtyp

  • die Elementversion

  • den im Ladeaufruf angegebenen Namen.

PINFBSP  CSECT
PINFBSP  AMODE ANY
PINFBSP  RMODE ANY
         BASR   10,0
         USING  *,10
         GPARMOD 31
         PRINT  GEN
         EJECT
*
***** PINF SELECT = INTNAME *****
*
INTNAM   MVC    MTEXT(24),=CL24'PINF SEL=INTNAME'
         MVC    MEXPECT(4),=XL4'00000000'
         PINF   SELECT=INTNAME,ADDR=ZONE,LEN=41 --------------------------(1)
         L      15,4(1) --------------------------------------------------(2)
         CL     15,MEXPECT
         BE     WINTNAM --------------------------------------------------(3)
         BAS    12,MEREXP ------------------------------------------------(4)
         B      FILNAM ---------------------------------------------------(5)
WINTNAM  MVC    MAREA,MTEXT ----------------------------------------------(6)
         MVC    ZAREA(41),ZONE
         BAS    12,WRINFO
*
***** PINF SELECT = FILENAME *****
*
FILNAM   MVC    MTEXT(24),=CL24'PINF SEL=FILENAME'
         MVC    MEXPECT(4),=XL4'00000000'
         PINF   SELECT=FILENAME,ADDR=ZONE,LEN=54 -------------------------(7)
         L      15,4(1)
         CL     15,MEXPECT
         BE     WFILNAM
         BAS    12,MEREXP
         B      ELMT
WFILNAM  MVC    MAREA,MTEXT ----------------------------------------------(8)
         MVC    ZAREA(54),ZONE
         BAS    12,WRINFO 
*
***** PINF SELECT = ELEMNAME, ELEMVERS, ELEMTYPE *****
*
ELMT     MVC    MTEXT(24),=CL24'PINF SEL=ELEMxxxx'
         MVC    MEXPECT(4),=XL4'00000000'
         PINF   SELECT=(ELEMNAME,ELEMVERS,ELEMTYPE),ADDR=ZONE,LEN=96 -----(9)
         L      15,4(1)
         CL     15,MEXPECT
         BE     WELMT
         BAS    12,MEREXP
         B      SPNAM
WELMT    MVC    MAREA(24),=CL24'PINF SEL=ELEMNAME' ----------------------(10)
         MVC    ZAREA(64),ZONE
         BAS    12,WRINFO 
*
         MVC    MAREA(24),=CL24'PINF SEL=ELEMVERS' ----------------------(11)
         MVC    ZAREA(24),ZONE+64
         BAS    12,WRINFO
*
         MVC    MAREA(24),=CL24'PINF SEL=ELEMTYPE'-----------------------(12)
         MVC    ZAREA(8),ZONE+88
         BAS    12,WRINFO
*
***** PINF SELECT = SPECNAME *****
*
SPNAM    MVC    MTEXT(24),=CL24'PINF SEL=SPECNAME'
         MVC    MEXPECT(4),=XL4'00000000'
         PINF   SELECT=SPECNAME,ADDR=ZONE,LEN=64 ------------------------(13)
         L      15,4(1)
         CL     15,MEXPECT
         BE     WSPNAM
         BAS    12,MEREXP
         B      MTERM
WSPNAM   MVC    MAREA,MTEXT ---------------------------------------------(14)
         MVC    ZAREA(64),ZONE
         BAS    12,WRINFO
*
MTERM    TERM -----------------------------------------------------------(15)
MTERMD   TERM DUMP=Y ----------------------------------------------------(16)
*
****  Definitions  ****
MEREXP   DS     0H
         MVC    MPACK(4),MEXPECT ----------------------------------------(17)
         UNPK   MEXP+1(9),MPACK(5)
         NC     MEXP+1(8),=X'0F0F0F0F0F0F0F0F'
         TR     MEXP+1(8),MTAB
         MVI    MEXP,C'('
         MVC    MEXP+9(10),MCEXP
*
MEREAL   ST     15,MPACK ------------------------------------------------(18)
         UNPK   MRS(9),MPACK(5)
         NC     MRS(8),=X'0F0F0F0F0F0F0F0F'
         TR     MRS(8),MTAB
         MVI    MRS+8,MBLANK
*
MEWROUT  DS     0H
         WROUT  MMSG,MTERMD----------------------------------------------(19)
         MVI    MTEXT,MBLANK --------------------------------------------(20)
         MVC    MTEXT+1(51),MTEXT
         BR     12
*
WRINFO   DS     0H
         WROUT  AREA,MTERMD ---------------------------------------------(22)
         MVI    ZAREA,MBLANK
         MVC    ZAREA+1(95),ZAREA
         BR     12
*
**** DATA DEFINITION ****
*
AREA     DC     Y(LAREA)
         DC     CL3' '
MAREA    DC     CL24' '
ZAREA    DC     CL96' '
LAREA    EQU    *-AREA
MMSG     DC     Y(MMSGE)
         DC     C'    ==ERROR==    '
MTEXT    DC     CL24' '
MRS      DC     CL9' '
MEXP     DC     CL19' '
MMSGE    EQU    *-MMSG
MBLANK   EQU    X'40'
MCEXP    DC     C' EXPECTED)'
MPACK    DS     F
         DC     X'00'
MTAB     DC     C'0123456789ABCDEF'
MEXPECT  DC     F'0'
ZONE     DS     CL96
         END

(1)

Der Makro PINF wird aufgerufen. Angefordert wird der interne Programmname, der mit einer maximalen Länge von 41 Byte im Feld ZONE abgelegt werden soll.

(2)

Der Makro-Returncode, der im 2. Wort des Standardheader abgelegt ist, wird in Register R15 geladen. Danach wird der tatsächliche Returncode mit dem zu erwartenden Returncode X'00000000' verglichen.

(3)

Bei fehlerfreier Makroausführung wird zur Ausgabe der von PINF gelieferten Information verzweigt.

(4)

Bei fehlerhafter Makroausführung wird zur Fehlerbehandlungsroutine verzweigt.

(5)

Nach der Fehlerbehandlung wird das Programm mit dem nächsten PINF-Aufruf fortgesetzt.

(6)

Ausgabe des internen Programmnamens, der vom PINF-Makro im Feld ZONE abgelegt wurde.

(7)

Der Makro PINF wird erneut aufgerufen. Angefordert wird der Name der Programmbibliothek, der mit einer maximalen Länge von 54 Byte im Feld ZONE abgelegt werden soll.

(8)

Ausgabe des Bibliotheksnamens.

(9)

Der Makro PINF wird wieder aufgerufen. Angefordert werden:

  • der Name des Elementes in der Programmbibliothek,

  • die Elementversion,

  • der Elementtyp.

Für diese 3 Informationen sind insgesamt 96 Byte zu reservieren.

(10)

Ausgabe des Elementnamens. Er beginnt am Anfang des Feldes ZONE und hat eine Länge von 64 Byte.

(11)

Ausgabe der Elementversion. Sie beginnt an der symbolischen Adresse ZONE+64 und hat eine Länge von 24 Byte.

(12)

Ausgabe des Elementtyps. Er beginnt an der symbolischen Adresse ZONE+88 und hat eine Länge von 8 Byte.

(13)

Der Makro PINF wird erneut aufgerufen: Angefordert wird der Symbolname, der im Ladeaufruf (z.B. bei START-EXECUTABLE-PROGRAM) angegeben ist. Der Symbolname soll mit einer maximalen Länge von 64 Byte im Feld ZONE abgelegt werden.

(14)

Ausgabe des Symbolnamens aus dem Ladeaufruf.

(15)

Normales Programmende.

(16)

Programmende mit DUMP, falls Fehler im WROUT-Makro auftreten.

(17)

Aufbereitung des zu erwartenden Makro-Returncodes als Zeichenkette, die später ausgegeben wird.

(18)

Aufbereitung des tatsächlichen Makro-Returncodes als Zeichenkette, die später ausgegeben wird.

(19)

Ausgabe einer Fehlermeldung, falls der PINF-Makro einen Returncode != X'00000000' geliefert hat. Folgende Meldung wird in diesem Fall ausgegeben:

==ERROR==    PINF SEL=zzzzzzzz    xxxxxxxx (00000000 EXPECTED)

(20)

Dabei ist zzzzzzzz die ausgewählte Information und xxxxxxxx der Wert des tatsächlichen Makro-Returncodes

(21)

Die Felder MTEXT, MRS und MEXP werden mit Leerzeichen (X'40') belegt und das Programm wird fortgesetzt.

(22)

Ausgabe der geforderten Programminformation. Danach wird das Feld ZAREA mit Leerzeichen (X'40') belegt und das Programm wird fortgesetzt.

Ablaufprotokoll

/start-assembh
%  BLS0500 PROGRAM 'ASSEMBH', VERSION '<ver>' OF '<date>' LOADED
%  ASS6010 <ver> OF BS2000 ASSEMBH  READY 
//compile source=*library-element(macexmp.lib,pinfbsp), -
//        compiler-action=module-generation(module-format=llm), -
//        module-library=macexmp.lib, -
//        listing=parameters(output=*library-element(macexmp.lib,pinfbsp))
%  ASS6011 ASSEMBLY TIME: 381 MSEC
%  ASS6018 0 FLAGS, 0 PRIVILEGED FLAGS, 0 MNOTES
%  ASS6019 HIGHEST ERROR-WEIGHT: NO ERRORS
%  ASS6006 LISTING GENERATOR TIME: 143 MSEC
//end
%  ASS6012 END OF ASSEMBH
/start-executable-program library=macexmp.lib,element-or-symbol=pinfbsp
%  BLS0523 ELEMENT 'PINFBSP', VERSION '@' FROM LIBRARY
   ':2OSG:$QM212.MACEXMP.LIB' IN PROCESS
%  BLS0524 LLM 'PINFBSP', VERSION ' ' OF '<date> <time>' LOADED
PINF SEL=INTNAME        PINFBSP -----------------------------------------(23)
PINF SEL=FILENAME       :2OSG:$QM212.MACEXMP.LIB
PINF SEL=ELEMNAME       PINFBSP
PINF SEL=ELEMVERS       ~
PINF SEL=ELEMTYPE       L
PINF SEL=SPECNAME       PINFBSP

(23)

Ausgabe der angeforderten Informationen auf SYSOUT. Der interne Programmname ist PINFBSP. Das Modul wurde aus der Programmbibliothek MACEXMP.LIB geholt. Es ist dort als LLM mit dem Namen PINFBSP gespeichert. Im Ladeaufruf (bei START-EXECUTABLE-PROGRAM) wurde der Name PINFBSP angegeben.