Description of MODLIST output for a program object

The listing produced by LISTLOAD OUTPUT=MODLIST consists of multiple parts (see Example: Output for LISTLOAD OUTPUT=MODLIST,ADATA=YES for a program object):
A page heading, displayed at the top of each page.
The page heading consists of one or two heading lines, in the following format:
     LISTING OF PROGRAM OBJECT xxxxxxxx

The heading lines are followed by the title line, entered in the TITLE parameter of the LISTLOAD control statement.

The binder-generated program object identification record (IDRB).
The IDRB record is displayed on a line by itself, in the format:
  THIS PROGRAM OBJECT WAS ORIGINALLY PRODUCED BY 5695PMB01 AT LEVEL 01.12 
  ON mm/dd/yyyy AT hh:mm:ss

The binder program identifier, version and level, date and time of binding are presented here. The IDRB line is followed by a line of dashes.

An individual listing for each control section in the program object, separated by a dashed line.
For each control section in the module, the ESD Section Definition (SD) record is formatted, followed by all data classes in the following sequence:
  1. IDRZ - SPZAP identification data
  2. IDRL - Language translator identification data
  3. IDRU - User-supplied identification data
  4. SYM - internal symbol dictionary
  5. ESD - External Symbol Dictionary
  6. RLD - ReLocation Dictionary
  7. TEXT - Instructions and data for the CSECT
  8. ADATA - ADATA information
The SD record occupies two print lines:
  • The first begins with one of the constants CONTROL SECTION, SEGMENT TABLE, ENTRY TABLE, or MODULE SECTION, and displays either the section or common name. If there is no user-defined name, then a binder-generated name will be displayed as follows:
    • $PRIVxxxxx, where x is a number for user sections which originally had blank names or were unnamed.
    • $BLANKCOM - unnamed common
    • $MODULE - binder-generated section containing module level information, and is only output when SECTION1=YES
    • $SUMMARY - binder-generated section containing merge classes for the module
  • The second line displays the USABILITY, AMODE, the overlay segment and region. USABILITY must contain one of the values UNSPECIFIED, NON-REUSABLE, REUSABLE, REENTRANT or REFRESHABLE. For non-overlay modules, the latter two fields will contain zero.
Each of the eight class subsections begin with an identifier line of the format:
===== class name =====
IDR detail is in the same format as described in Description of LISTIDR output, except that it is displayed only for the single section. The remainder of the classes are described below:
  • SYM data is displayed 40 bytes per line
  • ESD data occupies three to four lines per ESD record. The first containing the external name (abbreviated name, if name longer than 16 bytes), followed by the ESD record type in parenthesis. The rest of the formatted fields vary depending on the ESD record type:
    • ED records define an element definition. Its length, and various attributes will be used to bind and load the class contained in the section. Each ED record occupies three print lines:
      1. The first line displays:
        • CLASS name - up to 16 bytes.
        • LENGTH of defined class element in hexadecimal.
        • CLASS OFFSET - in hexadecimal.
        • FORMAT - where the first field is the class record format with either F (fixed length record), or V (variable length record), follows by the hexadecimal value of the record format in parenthesis.
      2. The second line shows:
        • NAME SPACE - in hexadecimal.
        • ALIGNMENT - any of the following:
          • DOUBLE WORD
          • QUAD WORD
          • 32 BYTE
          • 64 BYTE
          • 128 BYTE
          • 256 BYTE
          • 512 BYTE
          • 1024 BYTE
          • 2048 BYTE
          • PAGE
          DOUBLE WORD, QUAD WORD, or PAGE.
        • BIND METHOD - CATENATE or MERGE.
        • RMODE - 24, 64, ANY, or UNSPECIFIED
      3. The third line displays the binder and loader attributes:
        • Binder attributes can be DESCRIPTIVE DATA, TEXT, or REMOVABLE
        • Loader attributes can be NOLOAD, LOAD, DEFER, READ-ONLY (or FILL: UNSPEC is printed, if there is no fill character).
    • ER records define external references from the named section. For the $MODULE section these are external references with no corresponding RLDs. Each ER record occupies four print lines, where:
      1. The first line displays:
        • TEXT TYPE - can be either UNSPEC (unspecified), INSTRUC (instructions or code), DATA, or TRANS.DEF (translator defined).
        • CLASS OFFSET - in hexadecimal.
      2. The second line shows:
        • TARGET SECTION - Target section name (abbreviated name, if name is longer than 16 bytes).
        • TARGET CLASS - Name of class containing target label.
      3. The third line shows:
        • NAME SPACE - in hexadecimal.
        • SCOPE - Scope of name (SECTION, MODULE, LIBRARY, or IMP/EXP).
        • ELEMENT OFFSET - in hexadecimal.
        • AMODE - 24, 31, 64, ANY, MIN or UNSPEC
      4. The fourth line displays the ER status and autocall, where:
        • ER status can either be RESOLVED or UNRESOLVED
        • AUTOCALL can either be AUTOCALL or NEVERCALL
      5. The fifth line displays binder attributes. Possible attributes are XPL, STRONG or WEAK, MAPPED, INDIRECT, GENERATED, or MANGLED.
      6. If extended attributes exist, a sixth line displays the location of these attributes as the class and offset within that class.
    • LD records define a label or entry point in the named section. Each LD record occupies three print lines, where:
      1. The first line displays:
        • CLASS NAME - up to 16 bytes.
        • TEXT TYPE - can be either UNSPEC, INSTR, DATA, or TRANS.DEF
        • CLASS OFFSET - in hexadecimal.
      2. The second line shows:
        • NAME SPACE - in hexadecimal.
        • SCOPE - Scope of name (SECTION, MODULE, LIBRARY, or IMP/EXP).
        • ELEMENT OFFSET - in hexadecimal.
        • AMODE - can either be 24, 31, 64, MIN, ANY, or UNSPECIFIED
      3. The third line displays the binder attributes. Possible attributes are XPL (xplink), STRONG or WEAK, MAPPED, INDIRECT, GENERATED (the LD record was generated by the binder), or MANGLED. In addition, if the record contains the name of the symbol which defines the environment or associated data (ADA), that symbol will be printed.
      4. If extended attributes exist, a fourth line will contain the resident class and offset.
    • PD (Part Definition) and PR (Part Reference) records define parts or pseudo registers. The PR record is a local definition of the part (within the section), whereas the PD record is a global definition for all of the associated PRs (PRs with the same name). PR and PD records contain the same formatted fields. Each record occupies three print lines, where:
      1. The first line displays:
        • CLASS name - up to 16 bytes.
        • LENGTH - in hexadecimal.
        • CLASS OFFSET - in hexadecimal.
      2. The second line shows:
        • NAME SPACE - in hexadecimal.
        • ALIGNMENT - any of: the following:
          • BYTE
          • HALF WORD
          • FULL WORD
          • DOUBLE WORD
          • QUAD WORD
          • 32 BYTE
          • 64 BYTE
          • 128 BYTE
          • 256 BYTE
          • 512 BYTE
          • 1024 BYTE
          • 2048 BYTE
          • PAGE
        • PRIORITY - Controls the order of the part within the element.
        • SCOPE - Scope of part (SECTION, MODULE, LIBRARY, or IMP/EXP).
      3. The third line displays binder attributes. Possible attributes are: XPL, STRONG or WEAK, MAPPED, INDIRECT, GENERATED, or MANGLED.
  • RLD data is displayed one line per RLD record, by element offset of the associated address constant. Where multiple RLD records refer to the same adcon, the element offsets will be the same. RLD data shown consists of:
    • Element Offset - The offset, in hex, of the associated address constant within the element.
    • Class Offset - The offset, in hex, of the associated address constant within the class.
    • ADCON TYPE - The type of address constant associated with this RLD entry. The type may be:
      • BR - Branch or V-type
      • N_BR - Non-branch or A-type
      • SEGM - address of start of class
      • C OF - Q-type, offset from start of class
      • CPR - total length of the class
      • LTKN - loader token, for use of the system loader
      • R-IM - reference to an external symbol from a relative immediate instruction
      • DATA - data associated with the target symbol
      • LDIS - QY-type, reference to an external symbol from a long displacement instruction
    • Status - This field identifies the status of the associated address constant. Valid status values are: RES (resolved), UNRES (unresolved), and N-REL (non-relocatable constant).
    • LENGTH - The adcon length in hexadecimal.
    • ATTRIBUTES, which may be:
      • HOBCHG - High order bit of V-type adcon was changed by the binder. Possible value can be either YES or NO.
      • X - XPLINK linkage
      • S - part of a conditional sequential RLD string, will be followed by another RLD describing an adcon at the same location.
    • NAME SPACE of reference in hexadecimal.
    • TARGET NAME - Name of the referenced symbol.
    • PARTRES - If the RLD describes an adcon on a part (PR), this will be the name of the resident part.
    • XATTR NAME - Symbol defining the location at which the extended attributes (if any) are stored.
    • XATTR OFF - Offset from symbol XATTR NAME at which the extended attributes are stored.
  • TEXT data is displayed by class name. In addition to the hexadecimal representation, text data is in EBCDIC format.

    For the $MODULE section, instead of TEXT, it is identified as MAP and shows the binder-generated class B_MAP information.

    For the IEWBCIE section, when IMPEXP=SYMBOLS, instead of TEXT, it is identifed as IEWBCIET VERS nn (where nn is the import/export table version number) and shows information about the imported and exported symbols. Columns with the heading +OFF/ADDR distinguish offsets from addresses by preceding offsets with a plus sign (+). They are always preceded by their corresponding class. However, when an address is shown, it is relative to the module beginning at a zero origin, not relative to the beginning of the class. To determine the address within the class (as shown in the NUMERICAL MAP), subtract off the location of the class from the address (the location of the class is available in the SEGMENT MAP TABLE). The attributes shown as follows:
    O or X
    referred symbol is OS linkage or XPLINK linkage
    N or P
    reference is by name or reference is by pointer
    R or U
    reference is Resolved or Unresolved
  • ADATA information, if requested through ADATA=YES on the LISTLOAD OUTPUT=MODLIST control card, like TEXT data is displayed by class name in both hexadecimal and EBCDIC presentation. In the EBCDIC presentation, non-printable characters are replaced with periods (.).

    The abbreviation-to-long name equivalence table is displayed prior to end of the listing, with all the abbreviated names (external names exceeding 16 bytes in length) in the formatted part of the listing with their long names.

A trailer record.
** END OF PROGRAM OBJECT LISTING