Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

NKGTYPE - Geräteinformationen ausgeben

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

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

Makrotyp:

S-Typ, MF-Format 1: 31-Bit-Schnittstelle: Standardform/E-/L-/D-Form; siehe "S-Typ-Makroaufrufe"

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

Makrotyp: S-Typ, MF-Format 1: 31-Bit-Schnittstelle: Standardform/E-/L-/D-Form; siehe "S-Typ-Makroaufrufe"

Gerätetyp:

Jedes Gerät ist einem Gerätetyp (DEVICE-Typ) zugeordnet. Die Geräte eines Gerätetyps besitzen gleiche Geräteeigenschaften. Ein Gerätetyp kann über seinen (abdruckbaren) Namen oder über eine Kurzbezeichnung, dem Gerätetypcode, angesprochen werden. Namen für Gerätetypen sind z.B HNC, D3435; Gerätetypcodes dafür X'6D', X'A5'.

Volumetyp:

Der Volumetyp bezeichnet eine Kombination von (Geräte-) Eigenschaften, die für das Benutzen eines Volumes (Datenträgers) von Bedeutung sind, z.B. Schreibdichte bei Bändern. Gerätetypen, die den geforderten Eigenschaften genügen, sind einem Volumetyp zugeordnet; z.B. gehört der Gerätetyp LTO-U4 zum Volumetyp TAPE-U4 (Magnetbandkassette 896 Spur). Für Platten ist die Zuordnung von Gerätetypen zu Volumetypen eineindeutig (identische Namen). Ein Volumetyp kann über seinen (abdruckbaren) Namen oder über den Volumetypcode angesprochen werden. Namen sind z.B. TAPE-U4; Volumetypcode X'CE'.

Gerätefamilie:

Eine Menge von Gerätetypen mit bestimmten Geräteeigenschaften ist einer Gerätefamilie (FAMILY-Typ) zugeordnet. Ein Gerätetyp gehört immer nur zu einer Gerätefamilie. Eine Gerätefamilie kann über den (abdruckbaren) Namen oder über eine Kurzbezeichnung, dem Familycode, angesprochen werden. Namen für Gerätefamilien sind z.B. DISK, MBK; Familycodes dafür X'A0', X'C0'.

Geräteklasse:

Eine Menge von Gerätetypen ist einer Geräteklasse (CLASS-Typ) zugeordnet. Es gibt die drei Geräteklassen UR, TAPE und DISK (UR für UNIT-RECORD-Geräte). Geräteklassen können nur über ihren (abdruckbaren) Namen angesprochen werden.

In der „Gerätetyp-Tabelle“ (Handbuch „Systeminstallation“ [11]) sind die Namen von Gerätetypen und Gerätefamilien mit den zugehörigen Gerätetyp- und Familycodes enthalten.

Makrobeschreibung

Der Makro NKGTYPE informiert über Namen, Gerätetypcode, Geräteeigenschaften, Pfadadressen und Pfadeigenschaften eines Geräte- oder Volumetyps oder über Namen und Gerätetypcodes der Gerätetypen, die zu einer Gerätefamilie oder Geräteklasse gehören.


Der Umfang der auszugebenden Informationen kann mit dem Operanden INF=... gesteuert werden. Der Datenbereich beginnt mit dem Standardheader. Der Anwender kann sich eine DSECT zu dem In-/Output-Bereich generieren lassen. Die Größe der DSECT wird ebenfalls mit dem Operanden INF gesteuert.

Makroaufrufformat und Operandenbeschreibung

NKGTYPE

[p] [,MF=(E,..) / L / D]

,FORMAT=INTERNAL / PRINTABLE

,TYPE=UNKNOWN / DEVICE / VOLUME / FAMILY / CLASS

[,INTYP=adr]

,INF=STD / LIST / LOCLIST / VLIST / GEN / STD-LIST

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 MF=D kann ein Präfix (p = 1 Buchstabe), wie im Aufrufformat dargestellt, angegeben werden.

Fehlt der MF-Operand, so werden Parameterliste und Sprungfolge erzeugt. R1 zeigt dann nach Ausführung auf die Parameterliste.

FORMAT=
gibt an, ob der Name oder die Kurzbezeichnung angegeben ist.

INTERNAL
Die Kurzbezeichnung (Gerätetypcode/ Volumetypcode/Familycode) ist angegeben.

PRINTABLE
Der (abdruckbare) Name ist angegeben.

TYPE=

bezeichnet die Zugehörigkeit zu einem Gerätetyp, Volumetyp, einer Gerätefamilie oder Geräteklasse.

UNKNOWN
Die Zugehörigkeit ist nicht bekannt. Die Typlisten werden in der Reihenfolge Geräteklasse, Gerätefamilie, Volumetyp, Gerätetyp durchsucht (ebenfalls die Listen der entsprechenden Aliasnamen). Die Liste der Geräteklasse wird nur durchsucht, wenn der (abdruckbare) Name angegeben ist.

DEVICE
Es wird nur die Liste der Gerätetypen und die Liste der entsprechenden Aliasnamen durchsucht.

VOLUME
Es wird nur die Liste der Volumetypen und die Liste der entsprechenden Aliasnamen durchsucht.

FAMILY
Es wird nur die Liste der Gerätefamilien durchsucht.

CLASS
Es wird nur die Liste der Geräteklassen durchsucht.

INTYP=
bezeichnet das Feld, das den Namen oder die Kurzbezeichnung enthält. Wenn der Operand INTYP nicht spezifiziert wird, muss der Aufrufer das Inputfeld NKGDIPTI/NKGDIPPR im Datenbereich versorgen. Feldlänge:

  • 8 Byte bei Angabe des (abdruckbaren) Namens. Eintrag linksbündig mit nachfolgenden Leerzeichen.

  • 2 Byte bei Angabe des Gerätetyp- oder Familycodes. Eintrag linksbündig mit nachfolgenden Nullen.

    adr
    symbolische Adresse des Feldes

INF=
bestimmt den Umfang der auszugebenen Information.

STD
Die Standardausgabe wird generiert:

  • Typliste, in der der Name oder die Kurzbezeichnung gefunden wurde;

  • Geräteklasse (CLASS-Typ).

  • Name und Kurzbezeichnung.

  • Bei Angabe eines Gerätetyps wird zusätzlich eine Liste mit Gerätetypmerkmalen ausgegeben (Familycode, Aufzeichnungsdichte eines Magnetbandgeräts, ...).

LIST

Zusätzlich zur Standardausgabe wird eine Liste der korrespondierenden Gerätetypen ausgegeben:

    • Bei Angabe eines Gerätetyps, Ausgabe einer Liste der korrespondierenden Volumetypen und umgekehrt.

    • Bei Angabe eines Gerätefamilie oder Geräteklasse, Ausgabe einer Liste mit Namen und Gerätetypcodes, der zu der Gerätefamilie oder Geräteklasse gehörenden Gerätetypen.

LOCLIST
Zusätzlich zur Standardausgabe wird eine Liste der korrespondierenden Typen im angegebenen Lagerort ausgegeben. Der Name des Lagerorts ist in der Parameterliste explizit zu versorgen. Ist das Feld für den Lagerort nicht versorgt, werden die korrespondierenden Typen aus der Menge der Geräte ermittelt, die keinem Lagerort zugeordnet sind (Restpool).
Es ist nur möglich, einen Gerätetyp oder einen Volumetyp anzugeben.
Bei Angabe eines Gerätetyps (TYPE=DEVICE) erhält man die Liste der korrespondierenden Volumetypen, bei Angabe eines Volumetyps (TYPE=VOLUME) die der korrespondierenden Gerätetypen.

VLIST
Angabe nur für eine Geräteklasse sinnvoll.
Zusätzlich zur Standardausgabe wird eine Liste der zu der Geräteklasse gehörenden Volumetypen ausgegeben.

GEN
Angabe nur für einen Gerätetyp sinnvoll.
Zusätzlich zur Standardausgabe wird eine Liste der Generierungsmöglichkeiten (Pfadadressen und Pfadeigenschaften, wie Kanaltyp, Steuerungstyp, ...) ausgegeben.

STD-LIST
Angabe nur bei TYPE=CLASS sinnvoll.
Im Gegensatz zu INF=LIST wird nur die Liste der bis BS2000/OSD-BC V2.0 unterstützten Plattengeräte und STDDISK ausgegeben.
Dieser Wert wurde zur Unterstützung des SDF-Datentyps <device> eingeführt. Neue Platten sollen in Benutzerkommandos nur noch mit dem Standard-Plattentyp STDDISK angefordert werden.

Rückinformation und Fehleranzeigen

Register R1 enthält die Adresse des Datenbereichs.

R15:

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

Über die Ausführung des Makros NKGTYPE wird ein gegliederter Returncode (cc=Subcode2, bb=Subcode1, aaaa=Maincode) im Register R15 übergeben.

X'cc'

X'bb'

X'aaaa'

Erläuterung

X'00'

X'00'

X'0000'

Normale Ausführung, Eintrag gefunden.

X'00'

X'04'

X'0004'

Eintrag nicht gefunden.

X'00'

X'08'

X'0004'

Angabe für INF=... ist widersprüchlich zu der Angabe bei TYPE=... .

X'00'

X'10'

X'0004'

Der (abdruckbare) Name ist unvollständig oder nicht eindeutig angegeben.

X'00'

X'20'

X'0004'

Systemfehler.

X'00'

X'0C'

X'0004'

Ungültige Adresse des Datenbereichs.

X'00'

X'FF'

X'0004'

Operandenfehler.


Layout der DSECT für den Ein-/Ausgabebereich bei INF=STD

           NKGTYPE MF=D
1                *,VERSION 701
1          #INTF MACNAME=NKGTYPE,REFTYPE=REQUEST,MACVERS=701,            C
1                INTNAME=011.001,INTVERS=1
1          MFPRE DNAME=KGDTYP,MF=D,MACID=KGD,ALIGN=F,PREFIX=N,           C
1                DMACID=KGD
2 NKGDTYP  DSECT ,
2                *,##### PREFIX=N, MACID=KGD #####
1 NKGDPLS  DS    0F       DCL 1 NKGTYPE_PARAMETERLIST_START
1 NKGDFHDR FHDR  MF=(C,NKGD),EQUATES=NO
2 NKGDFHDR DS    0A
2 NKGDFHE  DS    0XL8            0   GENERAL PARAMETER AREA HEADER
2 *
2 NKGDIFID DS    0A              0   INTERFACE IDENTIFIER
2 NKGDFCTU DS    AL2             0   FUNCTION UNIT NUMBER
2 *                                  BIT 15    HEADER FLAG BIT,
2 *                                  MUST BE RESET UNTIL FURTHER NOTICE
2 *                                  BIT 14-12 UNUSED, MUST BE RESET
2 *                                  BIT 11-0  REAL FUNCTION UNIT NUMBER
2 NKGDFCT  DS    AL1             2   FUNCTION NUMBER
2 NKGDFCTV DS    AL1             3   FUNCTION INTERFACE VERSION NUMBER
2 *
2 NKGDRET  DS    0A              4   GENERAL RETURN CODE
2 NKGDSRET DS    0AL2            4   SUB RETURN CODE
2 NKGDSR2  DS    AL1             4   SUB RETURN CODE 2
2 NKGDSR1  DS    AL1             5   SUB RETURN CODE 1
2 NKGDMRET DS    0AL2            6   MAIN RETURN CODE
2 NKGDMR2  DS    AL1             6   MAIN RETURN CODE 2
2 NKGDMR1  DS    AL1             7   MAIN RETURN CODE 1
2 NKGDFHL  EQU   8               8   GENERAL OPERAND LIST HEADER LENGTH
2 *
1          SPACE 1
1 *        EQUATES FOR THE MAIN RETURN CODE
1          SPACE 1
1 NKGDSUCC EQU   X'0000'          SUCCESS : ENTRY FOUND
1 *                               OUTPUT AREA CONTAINS VALID DATA
1 NKGDPERR EQU   X'0004'          UNSUCCESS
1 *                               OUTPUTAREA IS SET TO ZERO (X'00')
1 *                               SEE SUB RETURN CODE 1 FOR DETAIL
1          SPACE 1
1 *        EQUATES FOR THE SUB RETURN CODE 1 (RR IN X'00RR0004)
1          SPACE 1
1 NKGDSENF EQU   X'04'            ENTRY NOT FOUND
1 NKGDICIT EQU   X'08'            UNCONSISTENCY BETWEEN INF AND TYPE P.
1 NKGDS1SY EQU   X'20'            SYSTEM ERROR   (RC-CLASS C)         215
1 NKGDSPIA EQU   X'10'            PRINTABLE INPUT IS AMBIGUOUS
1 NKGDSPER EQU   X'FF'            PARAMETER ERROR
1 NKGDNAP1 EQU   X'0C'            PARAMETER LIST OR INPUT-TYPE NOT
1 *                               ACCESSIBLE (THIS RC IS ONLY
1 *                               POSSIBLE FOR P1-USERS, FOR WHICH A
1 *                               ADDRESS VALIDATION IS DONE, THIS RC
1 *                               IS ONLY SET TO CALLERS R15)
1          SPACE 1
1 *        EQUATES FOR THE SUB RETURN CODE 2  (SS IN X'SS000000)      101
1          SPACE 1
1 *********************************
1 *        INPUT PARAMETER        *
1 *********************************
1 NKGDINP  DS    0F        2 INPUT_PARAMETER
1 NKGDTPES DS    X           3 TYPE_SET
1 NKGDDEVC EQU   C'D'          (DEVICE  = D,
1 NKGDVOLM EQU   C'V'           VOLUME  = V,
1 NKGDFAML EQU   C'F'           FAMILY  = F,
1 NKGDCLSS EQU   C'C'           CLASS   = C,
1 NKGDUNKN EQU   C'U'           UNKNOWN = U)
1 NKGDFRMT DS    X           3 FORMAT_SET
1 NKGDINTR EQU   X'01'         (INTERNAL  = 1,
1 NKGDPRNT EQU   X'02'          PRINTABLE = 2)
1 NKGDTYPE DS    X           3 INPUT_TYPE_SET
1 NKGDTSTD EQU   X'00'         (TYPE_EXPLIZIT_IN_PARAMLIST   = 0,
1 NKGDADDR EQU   X'01'          TYPE_ADDR_SPECIFIED          = 1,
1 NKGDREG  EQU   X'02'          NO MORE USED SINCE V11.2A )
1 NKGDINFS DS    X           3 INFORMATION_SET
1 NKGDISTD EQU   X'01'         (STANDARD                     = 1,
1 NKGDIGEN EQU   X'02'          GENERATION                   = 2,
1 NKGDILST EQU   X'04'          LIST_OF_CORRESPONDING_TYPES  = 4,
1 *I.ICHR  EQU   X'08'          DISK_CHARACTERISTICS NO LONGER SUPP.
1 NKGDVLST EQU   X'10'          LIST_OF_CLASS_SPEC_VOL_TYPES = 16,
1 NKGDSLST EQU   X'20'          Standard_List_of_CLASS       = 32,
1 NKGDLLST EQU   X'40'          LIST-OF-CORR-TYPES-IN-LOCATION=64 )
1          SPACE 1
1 NKGDIADR DS    A           3 ADDR(INPUT_TYPE)
1          ORG   NKGDIADR
1 NKGDIREG DS    A           3 NO MORE USED SINCE V11.2A
1 NKGDIPTI DS    XL2         3 INPUT_TYPE_INTERNAL_FORMAT
1          DS    0A
1 NKGDIPPR DS    CL8         3 INPUT_TYPE_PRINTABLE_FORMAT
1 NKGDILOC DS    CL8         3 INPUT_LOCATION
1          SPACE 2
1 *********************************
1 *        OUTPUT PARAMETER       *
1 *********************************
1 NKGDOUTP DS    0F        2 OUTPUT_PARAMETER
1 NKGDOPLI DS    CL1         3 OUTPUT_LIST_INDICATOR SET
1 NKGDOTTL EQU   C'D'          (ENTRY_FOUND_IN_DEVICE_TYPE_LIST=D,
1 NKGDOVTL EQU   C'V'           ENTRY_FOUND_IN_VOLUME_TYPE_LIST=V,
1 NKGDOFTL EQU   C'F'           ENTRY_FOUND_IN_FAMILY_TYPE_LIST=F,
1 NKGDOCTL EQU   C'C'           ENTRY_FOUND_IN_CLASS_TYPE_LIST =C)
1 NKGDSECL DS    XL1         3 SECOND_LIST_INDICATOR
1 NKGDSVTL EQU   X'01'         4 E._FOUND_ALSO_IN_VOL_TYPE_L = 1
1 NKGDSDTL EQU   X'02'         4 E._FOUND_ALSO_IN_DEV_TYPE_L = 2
1 NKGDSFML EQU   X'04'         4 E._FOUND_ALSO_IN_FAM_TYPE_L = 4
1 NKGDOPNI DS    XL1         3 NAME_INDICATOR
1 *                             /* TO TEST ON BIT LEVEL */
1 NKGDOINS EQU   X'01'         4 INPUT_NAME_IN_SHORT_FORMAT = 1
1 NKGDOANT EQU   X'02'         4 ALIAS_NAME_TRANSLATED      = 2
1 NKGDDCLS DS    X           3 DEVICE_CLASS SET
1 NKGDURD  EQU   C'U'            (UR_DEVICE  =U,
1 NKGDDISC EQU   C'D'             DISC_DEVICE=D,
1 NKGDTAPE EQU   C'T'             TAPE_DEVICE=T)
1          DS    X           3 RESERVED
1 NKGDDVTI DS    XL2         3 TYPE_INTERNAL_FORMAT
1 NKGDDVTP DS    CL8         3 TYPE_PRINTABLE_FORMAT
1 NKGDRESP DS    X           3 RESERVATION_POSSIBILITY_INDICATOR
1 NKGDRESN EQU   X'01'         4 RESERVATION_BY_TYPE_NOT_POSSIBLE = 1
1 NKGDALNP EQU   X'02'         4 ALLOCATION_BY_TYPE_NOT_POSSIBLE  = 2
1 NKGDRMNN EQU   X'04'         4 RESERVATION_BY_MNEM_NOT_POSSIBLE = 4
1 NKGDAMNN EQU   X'08'         4 ALLOCATION_BY_MNEM_NOT_POSSIBLE  = 8
1 NKGDATNA EQU   X'10'         4 ATTACH_NOT_ALLOWED               =16
1          DS    F           3 RESERVED
1          SPACE 2
1 ***********************************************************
1 *
1 *   VOLUME-TYPE-ATTRIBUTES
1 *   ONLY VALID IF NKGDOPLI=NKGDOVTL
1 *   (ENTRY_FOUND_IN_VOLUME_TYPE_LIST_
1 *
1 ***********************************************************
1 NKGDDNSF DS    X           3 DENSITY_FLAG
1 NKGDCORD EQU   X'01'         4 VOL_TYPE_CORRESPONDS_TO_ONE_DENSITY
1 NKGDVLEV DS    X           3 TAPE_LEVEL_INDICATOR
1 NKGDLV9  EQU   X'01'         4 9_LEVEL_TAPE
1 NKGDLV18 EQU   X'02'         4 MBK_Mode
1 NKGDLVV  EQU   X'04'         4 VIDEO_TAPE
1 NKGDLVSC EQU   X'08'         4 STREAMING_CARTRIGE_TAPE
1 NKGDITYP DS    XL2         3 VOLUME_TYPE_FOR_LABEL_INITIALISATION
1 NKGDVL#2 EQU   *             VOLUME_TYPE_DESCRIPTION_EXTENSION
1 NKGDVRCM EQU   *           3 VOLUME_TYPE_RECORDING_MODE
1 NKGDVTPM DS    X             4  VOLUME_TAPE_MODE ( /* 9_LEVEL_TAPE*/
1 *I.800   EQU   X'01'              DENSITY_800_BPI  = 1,
1 *I1600   EQU   X'02'              DENSITY_1600_BPI = 2,
1 *I6250   EQU   X'04'              DENSITY_6250_BPI = 4 )
1          ORG   NKGDVTPM
1 NKGDV18M DS    X            4   VOLUME_MBK_MODE  (/* 18_LEVEL_TAPE*/
1 *I.COMP  EQU   X'01'              DATA_COMPACTION        = 1
1 *I.256P  EQU   X'02'              256kB_blocks_possible  = 2
1 *I.MLTE  EQU   X'20'              LTO_encrypted          = 32
1 *I.MLTO  EQU   X'40'              MODE LTO               = 64 )
1 NKGDWORN EQU   X'80'              WORM-Medium            = 128 )
1 NKGDTRCT DS    CL2        3 DMS_TAPE_RECORDING_TECHNIQUE(
1 NKGDDLNR EQU   C'  '              NORMAL_DENSITY       ,
1 NKGDDLCM EQU   C'P '              COMPACTION           )
1 NKGDDHDI DS    C          3 DMS_HDR2_DENSITY_INDICATOR(
1 NKGDDH8  EQU   C'2'               HDR2_800_BPI         ,
1 NKGDDH16 EQU   C'3'               HDR2_1600_BPI        ,
1 NKGDDH62 EQU   C'4'               HDR2_6250_BPI        ,
1 NKGDDHDM EQU   C' '               HDR2_MBK             )
1 NKGDTCRS DS    X          3 TYPE_CONCERNED_BY_RESTRICTION
1 NKGDRCNW EQU   X'01'         CONCERNED_BY_RESTRICTION_NO_WRITE
1 NKGDLTOT DS    X          3 LTO_MEDIUM_TYPE
1          ORG   NKGDVL#2
1          SPACE 2
1 ***********************************************************
1 *
1 *   GENERATION-UNDEPENDENT DEVICE-TYPE-ATTRIBUTES
1 *       ONLY VALID IF NKGDOPLI=NKGDOTTL
1 *       (ENTRY_FOUND_IN_DEVICE_TYPE_LIST)
1 *
1 ***********************************************************
1 NKGDFAMD DS    0XL10       3 FAMILY_DESCRIPTION
1 NKGDFAMI DS    XL2           4 FAMILY_INTERNAL_FORMAT
1 NKGDFAMP DS    CL8           4 FAMILY_PRINTABLE_FORMAT
1 NKGDDEFI DS    X           3 DEFAULT_INTERRUPTION_SUBCLASS_CODE_SET
1 NKGDDEF0 EQU   X'00'
1 NKGDDEF1 EQU   X'01'
1 NKGDDEF2 EQU   X'02'
1 NKGDDEF3 EQU   X'03'
1 NKGDDEF4 EQU   X'04'
1 NKGDDEF5 EQU   X'05'
1 NKGDDEF6 EQU   X'06'
1 NKGDDEF7 EQU   X'07'
1 NKGDHWA2 DS    X           3 HARDWARE_ATTRIBUTES BYTE 2
1 *        EQUATES  CF BELOW
1 NKGDDSSP DS    0XL2        3 DISC_SUB_ATTRIBUTES
1 NKGDDMDE DS    X             4 DISC_MODE
1 NKGDMOVJ EQU   X'01'           5 MOVABLE  =1
1 NKGDFIXH EQU   X'02'           5 FIX_HEAD =2
1 NKGDSTRU DS    X             4 DISK_STRUCTUR_SET
1 NKGDSFBA EQU   X'01'           (FBA-DISK          =1,
1 NKGDSCKD EQU   X'02'            CKD-DISK          =2,
1 NKGDSPAD EQU   X'04'            PAD_DISK          =4,
1 NKGDSCHD EQU   X'08'            CHANNEL_DEPENDENT =8, &CTL-DEPENDENT
1 NKGDSECK EQU   X'10'            ECKD_DISK         =16,
1 NKGDSEMU EQU   X'20'            EMULATED_DISK     =32)
1          ORG   NKGDDSSP
1 NKGDTSSP EQU   *           3 TAPE_SUB_ATTRIBUTES
1 NKGDTMDE DS    X             4 TAPE_MODE  /* 9_LEVEL_TAPE */
1 NKGDL9M  EQU   NKGDTMDE
1 NKGD800  EQU   X'01'           5 No longer used
1 NKGD1600 EQU   X'02'           5 1600BPI_SUPPORTED        =2
1 NKGD6250 EQU   X'04'           5 6250BPI_SUPPORTED        =4
1          ORG   NKGDTMDE
1 NKGDL18M DS    X             4 MBK_MODE
1 NKGDCOMP EQU   X'01'           5 DATA_COMPATCION_SUPPORTED = 1
1 NKGDTPLV DS    X           3 TAPE_LEVEL_INDICATOR
1 *&I.LV9  EQU   X'01'         4 9_LEVEL_TAPE              = 1
1 *&I.LV18 EQU   X'02'         4 MBK_Mode                  = 2
1 *&I.LVV  EQU   X'04'         4 VIDEO_TAPE
1 *&I.LVSC EQU   X'08'         4 STREAMING_CARTRIGE_TAPE
1          ORG   NKGDDSSP
1 NKGDCNSP EQU   *           3 CONSOLE_SUB_ATTRIBUTES
1 NKGDCMDE DS    X             4 CONSOLE_MODE
1 NKGDCDIS EQU   X'01'           5 DISPLAY =1
1 NKGDCHDC EQU   X'02'           5 HARDCOPY=2
1          ORG   NKGDDSSP+L'NKGDDSSP
1 NKGDHWAT DS    X          3 HARDWARE_ATTRIBUTES
1 NKGDRERE EQU   X'01'        4 RESERVE_RELEASE_SUPPORTED = 1  (D)
1 NKGDSDNC EQU   X'02'        4 SET_DENSITY_NECCESSARY    = 2  (T)
1 NKGDSTRM EQU   X'04'        4 STREAMING_MODUS_POSSIBLE  = 4  (T)
1 NKGDDISP EQU   X'08'        4 DISPLAY                   = 8  (T,D)
1 NKGDBUFF EQU   X'10'        4 CONTROLLER_WITH_BUFFER    =16  (T,D)
1 NKGDPOSI EQU   X'20'        4 CTL_SUPPORTS_POSITIONING  =32  (T)
1 NKGDNRRV EQU   X'40'        4 NO_READ_REVERSE_SUPPORTED =64  (T)
1 NKGDSTKP EQU   X'80'        4 STACKER_POSSIBLE          =128 (T)
1 *  HWA2                   3 HARDWARE_ATTRIBUTES BYTE 2
1 NKGDSSDD EQU   X'01'        4 SOLID_STATE_DISC_DEVICE   = 1  (D)
1 NKGDRSTP EQU   X'02'        4 RANDOM_STACKER_POSSIBLE   = 2  (T)
1 NKGDFORI EQU   X'04'        4 FORMATTING_DURING_INIT_NECESSARY= 4(T)
1 NKGDGENF DS    X          3 GENERATION_FACILITIES
1 NKGDSICH EQU   X'01'        4 CFCS12_CHANNEL_TYPE =1
1 NKGDFJCH EQU   X'02'        4 CFCS3_CHANNEL_TYPE  =2
1 NKGDPADT DS    A          3 ADRESS_OF_ADAM_TRANSLATION
1 NKGDCBUF DS    F          3 CONTROLLER_BUFFER_SIZE (BYTES)
1 NKGDDCAP DS    F          3 MAXIMAL DISC CAPACITY (#HP'S PER VOL)
1 NKGD#CYL DS    H          3 MAXILAL NUMBER OF CYCLINDERS PER VOL
1 NKGDDFVT DS    XL2        3 DEFAULT_VOLUME_TYPE (DEFAULT_DENSITY)
1 NKGDURST DS    X          3 USE_RESTRICTION
1 NKGDRNWR EQU   X'01'        RESTRICTION_NO_WRITE_POSSIBLE
1 NKGDLTOL DS    X          3 LTO_LEVEL
1          DS    XL2        3 RESERVED
1 NKGDOPL1 EQU   *-NKGDOUTP
1 NKGDOPLN EQU   *-NKGDOUTP  LENGTH_OF_THE_OUTPUT_PARAMETERLIST
1          DS    0XL(1-(NKGDOPLN-60)*(NKGDOPLN-60))
1 NKGDPLLN EQU   *-NKGDPLS   TOTAL_LENGTH_OF_THE_PARAMETERLIST

Beispiel

Die zu der Gerätefamilie X'A0' (=Plattenspeichergeräte) gehörenden Gerätetypen sollen ausgegeben werden. Der Makroaufruf erfolgt in der E-/L-Form.

NKGTYPE  START
         PRINT NOGEN
         BALR  3,0
         USING *,3
         NKGTYPE MF=(E,NKGL)
END      TERM
NKGL     NKGTYPE MF=L,TYPE=FAMILY,INTYP=ADDR,INF=LIST
ADDR      DC    X'A000' --------------------------------------------------(1)
         END

Ablaufprotokoll:   

/start-assembh
%  BLS0500 PROGRAM 'ASSEMBH', VERSION '<ver>' OF '<date>' LOADED
%  ASS6010 <ver> OF BS2000 ASSEMBH  READY 
//compile source=*library-element(macexmp.lib,nkgtype), -
//        compiler-action=module-generation(module-format=llm), -
//        module-library=macexmp.lib, -
//        listing=parameters(output=*library-element(macexmp.lib,nkgtype)), -
//        test-support=*aid
%  ASS6011 ASSEMBLY TIME: 306 MSEC
%  ASS6018 0 FLAGS, 0 PRIVILEGED FLAGS, 0 MNOTES
%  ASS6019 HIGHEST ERROR-WEIGHT: NO ERRORS
%  ASS6006 LISTING GENERATOR TIME: 94 MSEC
//end
%  ASS6012 END OF ASSEMBH
/load-executable-program library=macexmp.lib,element-or-symbol=nkgtype, -
/     test-options=*aid
%  BLS0523 ELEMENT 'NKGTYPE', VERSION '@' FROM LIBRARY
   ':2OSG:$QM212.MACEXMP.LIB' IN PROCESS
%  BLS0524 LLM 'NKGTYPE', VERSION ' ' OF '<date> <time>' LOADED
%  BLS0551 COPYRIGHT (C) 2021 FUJITSU TECHNOLOGY SOLUTIONS GMBH. ALL RIGHTS RESE
RVED                                                                            
/%on %any <%d %§(nkgl)-> %xl568>;%r --------------------------------------(2)
*** TID: 00200175 *** TSN: 5UTP *********************************************** 
CURRENT PC: 0000002C    CSECT: NKGTYPE  *************************************** 
V'00000030' = NKGTYPE  + #'00000030'                                            
00000030 (00000030) 000B0101 00000000 C6010104 000002BA    ........F.......     
00000040 (00000040) 00000000 00000000 00000000 00000000    ................     
00000050 (00000050) 00000000 C60000C4 00A000C4 C9E2D240    ....F..D...DISK      
00000060 (00000060) 40404003 00000000 00000000 00000000       .............     
00000070 (00000070) 00000000 00000000 00000000 00000000    ................     
00000080 (00000080) 00000000 00000000 00000000 00000000    ................     
00000090 (00000090) 00040000 A500C4F3 F4F3F540 4040A600    ....v.D3435   w.     
000000A0 (000000A0) C4F3F4F3 F560C6D7 AA00E2E3 C4C4C9E2    D3435-FP..STDDIS     
000000B0 (000000B0) D240A900 D5C5E3E2 E3D6D940 00000000    K z.NETSTOR ....     
000000C0 (000000C0) 00000000 00000000 00000000 00000000    ................     
           REPEATED LINES:    24                                                
00000250 (00000250) 00000000 00000000 00000000 00000000    ................     
00000260 (00000260) 00000000 00000000                      ........             
(1)Eingabe des Familycodes für Plattenspeichergeräte.
(2)

Der Ein-/Ausgabebereich wird mit der Testhilfe AID angezeigt.

Der Ein-/Ausgabebereich beginnt bei Adresse X'000034'.
Die Bytes 3 - 7 enthalten den Returncode X'00000000'.
Es folgen die Inputdaten (DSECT-Bereich „INPUT PARAMETER“):
X'C6': TYPE=FAMILY,
X'01': FORMAT=INTERNAL,
X'01': INTYP=ADDR,
X'04': INF=LIST,
X'000002BA' ist die virtuelle Adresse des Feldes ADDR.

Der Ausgabebereich (DSECT-Bereich „OUTPUT PARAMETER“) beginnt bei Adresse X'000054'. Es bedeuten:
X'C6': Der Eintrag wurde in der Liste der Gerätefamilien gefunden.
X'C4': Plattengerät.
X'A0': Familycode.
X'C4C9E2D240404040': DISK = Name der Gerätefamilie.

Ab Adresse X'000090' steht die erweiterte Ausgabe für INF=LIST.
X'0004': Die Gerätetypliste enthält 4 Einträge.
Nach 2 reservierten Byte folgen hintereinander Gerätetypcode und (abdruckbarer) Name der Gerätetypen.