Load Module Record Formats
SYM Record
+---+---+-------+-------------~ ~-----+
| 0 | 1 | 2,3 | 4-243 ~ |
+---+---+-------+-------------~ ~-----+
| | | |
| | | +-SYM data and ESD data
| | |
| | +-Count in bytes of SYM and ESD data
| |
| +-Subtype (information for TESTRAN)
| 1000 0000 this SYM record contains ESD items
| (SD, PC, or CM) from a load module
| that was not under test. The TEST
| attribute was not specified when it
| was link edited.
|
+- Identification specifies SYM record 0100 0000 (x40)
CESD Record
+---+-----------+-------+-------+-------------~ ~--------+
| 0 | 1-3 | 4,5 | 6,7 | 8-247 ~ |
+---+-----------+-------+-------+-------------~ ~--------+
| | | | |
| | | | +- ESD data see below
| | | |
| | | +-Count, in bytes of ESD data
| | |
| | +-ESDID of first ESD item
| |
| +-Spare binary zeros (3 bytes)
|
+-Identification 0010 0000 (x20)
CESD Data
+------~ ~---+---+-----------+---+-----------+
| 1-8 | 9 | 10-12 | 13| 14-16 |
+------~ ~---+---+-----------+---+-----------+
| | | | |
| | | | +-ID/Length
| | | | length (3 bytes) when
| | | | type is: SD, PC, CM or PR
| | | | ID (2 bytes) when type is LR
| | | | Zero (3 bytes) when type is
| | | | WX, NULL or ER (Hex 06
| | | | indicates never call)
| | | |
| | | +-Segment Number in which this
| | | symbol appears. Zero when type is
| | | ER, WX or NULL (1 byte)
| | |
| | +-Address linkage editor assigned address of
| | this symbol. Zero when type is ER, WX or NULL.
| |
| +-Type Selection Definition (SD) xxxx 0000
| Label Reference (LR) xxxx 0011
| Private Code (PC) xxxx 0100
| Common (CM) xxxx 0101
| Pseudo Register (PR) xxxx 0110
| NULL 0000 0111
| External Reference (ER) xxxx 0010
| Weak External Reference (WX) xxxx 1010
| Sub classification
| Delete xxx1 xxxx
| Replace xxx1 xxxx
| Insert xx1x xxxx
| Chain x1xx xxxx
| Map 1xxx xxxx
|
+-Symbol 8 bytes symbol name (zero when type is NULL)
Control Record
+---+-----------+-------+-------+---~ ~---+---~ ---+
| 0 | 1-3 | 4-5 | 6-7 | 8-15 | 16-205 |
+---+-----------+-------+-------+---~ ~---+---~ ---+
| | | | | |
| | | | | +-Control Data (see below)
| | | | |
| | | | +-Channel Command Word (CCW)
| | | |
| | | +-Count (2 bytes binary zero)
| | |
| | +-Count in bytes of the control data (CESD ID,
| | length of control section) following the CCW field
| |
| +-Spare binary zero
|
+-Identification * Control Record 0000 0001
* Control Record that precedes the last text
record of this overlay segment 0000 0101 (EOS)
* Control Record that precedes the last text
record of the module 000 1101 (EOM)
Control Data (for Control Record)
+---+---+---+---+---+-~ ~-+---+---+---+
| C | L | C | L | C | ~ | L | C | L |
+---+---+---+---+---+-~ ~-+---+---+---+
| |
| +-Length of text record and/or length of control section
| specifies the length of the control section (in bytes)
| to which the text in the following record belongs, or the
| number of bytes of a control section contained in the
| following text record (2 bytes)
|
+-CESD entry number specifies the composite external symbol
directory entry that contains the control
section name of the control section of
which this text is a part (2 bytes)
Relocation Directory Record
+---+-----------+-------+-------+---~ ~---+-----~ ~-----+
| 0 | 1-3 | 4,5 | 6,7 | 8-15 | 16-255 |
+---+-----------+-------+-------+---~ ~---+-----~ ~-----+
| | | | | |
| | | | | +-RLD data (see below)
| | | | |
| | | | +-Spare binary zeros (8 bytes)
| | | |
| | | +-Count in bytes, of the relocation
| | | dictionary information following
| | | the spare 8-byte field (2 bytes)
| | |
| | +-Count binary zeros (2 bytes)
| |
| +-Spare binary zeros (3 bytes)
|
+-Identification (1 byte)
* a relocation dictionary record 0000 0010
* the last record of the segment 0000 0010
* the last record of the module - 0000 1110
RLD Data
+---+---+-+-----+-+-----+--~ ~--+-+-----+-+-----+-+-----+
| R | P |F| A |F| A | |F| A |F| A |F| A |
+---+---+-+-----+-+-----+--~ ~--+-+-----+-+-----+-+-----+
| | | |
| | | +-Address linkage editor assigned address
| | | of the address constant (3 bytes)
| | |
| | +-Flag (see below) (1 byte)
| |
| +-Position Pointer contains the entry number of the CESD
| entry (or translation table entry) that indicates which
| control section holds the address constant (2 bytes)
|
+-Relocation Pointer contains the entry number of the CESD
entry (or translation table entry) that indicates which
symbol value is to be used in the computation of the
address constants value (2 bytes)
Flag Data xxxxLLST
xxxx specifies the type of this RLD item (address constant)
0000 nonbranch-type in assembler language, DC A(name)
0001 branch-type in assembler language, DC V(name)
0010 pseudo register displacement value
0011 pseudo register cumulative displacement value
1000 and 1001 this address constant is not to be relocated
Because it refers to an unresolved symbol
LL specifies the length of the address constant
01 2 byte
10 3 byte
11 4 byte
S specifies the direction of relocation
0 positive
1 negative
T specifies the type of the next RLD item
0 the following RLD item has a different relocation and/or
position pointer
1 the following RLD item has the same relocation and
position pointer as this and therefore is omitted
Control and Relocation Directory Record
+---+-----------+-------+-------+---~ ~---+-----~ ~-----+
| 0 | 1-3 | 4,5 | 6,7 | 8-15 | 16-255 |
+---+-----------+-------+-------+---~ ~---+-----~ ~-----+
| | | | | |
| | | | | +-RLD data
| | | | |
| | | | +-CCW (8 bytes)
| | | |
| | | +-Count in bytes, of the relocation
| | | dictionary information following
| | | the spare 8-byte field (2 bytes)
| | |
| | +-Count in bytes, of control information
| | following the last RLD address field.
| | The control information contains the ID
| | and length of control sections in the
| | following text record. (2 bytes)
| |
| +-Spare binary zeros (3 bytes)
|
+-Identification (1 byte)
* control and RLD record 0000 0011
* control and RLD record followed by the
Last text record of a segment 0000 0111 (EOS)
* control and RLD record followed by the
Last text record of the module 0000 1111 (EOM)
CSECT Identification Record (IDR)
+---+---+---+-----~ ~-----+
| 0 | 1 | 2 | 3-255 |
+---+---+---+-----~ ~-----+
| | | |
| | | +- IDR Data
| | |
| | +-Sub-Type Indicator specified type of IDR data
| | contained on this record (bits 1-3 reserved)
| | ---- 0001 data supplied by HMASPZAP
| | ---- 0010 Linkage Editor data
| | ---- 0100 Translator-supplied data
| | ---- 1000 User (System) supplied data (from
| | IDENTIFY function)
| | 1--- ---- Indicates the last IDR of this load module
| |
| +-Byte Count of IDR data in this record, including the field
| (value range 6 to 255)
|
+-Identification indicates that this is:
1000 0000 a CSECT Identification Record
HMAZAP Data
+---+-------+-----------+-----~ ~-----+-----~ ~-----+
| 0 | 1-2 | 3-5 | 6-13 | 14-247 |
+---+-------+-----------+-----~ ~-----+-----~ ~-----+
| | | | |
| | | | +-Up to 18 repetitions
| | | | of bytes 1-13
| | | |
| | | +-Data specified during HMASPZAP processing
| | |
| | +-Date of HMASPZAP processing (packed decimal) YYDDD
| |
| +-ESDID of CSECT processed by HMASPZAP
|
+-Flags and count
Bit 0 reserved
Bit 1 chain bit a 1 indicates that the next record is also
available for HMASPZAP data
Bis 2-7 number of HMASPZAP entries used on this record
(value range 0 to 19)
Linkage Editor Data
+-----~ ~-----+-------+-----------+
| 0-9 | 10-11 | 12-14 |
+-----~ ~-----+-------+-----------+
| | |
| | +-Date of last linkage editor processing
| | of this module (packed decimal) YYDDD
| |
| +-Version and Modification level of the linkage
| editor that produced this module
| (packed decimal) VVMM
|
+-Program Name of the linkage editor that produced this module
Translator Data
+-------+-----~ ~-----~ ~-------------+
| 0-1 | Variable n to n+14 |
+-------+-----~ ~-----~ ~-------------+
| | |
| | +-Translator description data
| |
+-------+-> ESDID(s) or CSECT(s) whose object code was
produced by the translator described in
this data item. This field is repeated as
many times as necessary with the high order
bit of the last ESDID in the list set to 1
Translator Description
+---+---~ ~---+-----+-----------+-----~ ~-----+
| 0 | 1-10 |11-12| 13-15 | |
+---+---~ ~---+-----+-----------+-----~ ~-----+
| | | | |
| | | | +-When present, same as bytes 1-15
| | | | but data applies to a translator
| | | | whose output is source code
| | | | (a PL/S compiler)
| | | |
| | | +-Date of compilation/assembly (packed decimal)
| | | YYDDD
| | |
| | +-Version and Modification level of translator
| | (packed decimal) VVMM
| |
| +-Program name of translator, left justified and padded to
| the right with blanks
|
+-Indicator:
0000 0000 only one translator was described on object END
card for these CSECTS
0000 0001 two translators were described on object END card
(that is, PL/S Compiler and Assembler) and are
Included here.
User Data (Linkage Editor IDENTIFY Function)
+-------+-----------+---+----------~ ~------------+
| 0-1 | 2-4 | 5 | variable 1 to 40 bytes |
+-------+-----------+---+----------~ ~------------+
| | | |
| | | +-From 1 to 40 bytes of variable user
| | | (or system) supplied data as specified
| | | on the Linkage Editor IDENTIFY control
| | | statement. Assumed to be printable
| | | EBCDIC characters.
| | |
| | +-Count number of characters in the user
| | data field
| |
| +-Date on which this data was supplied to the module via
| via the Linkage Editor IDENTIFY control statement.
|
+-ESDID of the CSECT to which the user data applies