Relocation directory data item

The format of a relocation directory ("RLD") data item is shown in Table 1. Note that a relocation directory data item can be from 8 to 28 bytes long, depending on which fields are present. The presence or absence of each field is determined by the "Flags" field. Offsets shown assume all fields are present.

Table 1. Relocation directory data element
Field Offset Type Description
Flags 0-5 Byte(6) Flags describing this RLD item. The flags are shown in Table 1.
  6-7 Byte(2) Reserved.
R Pointer 8-11 Binary(4) ESDID of the ESD entry (ED or ER) which will be used as the basis for relocation.
  • For internal references, this will be the ED ESDID defining the referenced element. (The offset of the referenced position within the referenced element will have been placed by the translator in the target text field of the address constant.)
  • For external references, this will be the ER or PR ESDID describing the referenced symbol.
P Pointer 12-15 Binary(4) ESDID of the element within which this address constant resides.
Offset 16-19 Binary(4) Offset within the element described by the P pointer where the adcon is located; the place where the address constant can be found; the position of the field to be updated or relocated. This field is called the fixup target, relocation target, or simply target.
Note: The constant part of a translator's address expression is stored in the "Target Field" (at this offset, in the element defined by the P pointer). It can contain a constant, an offset, or be ignored ("not fetched").
  20-23 Binary(4) Reserved.
  24-27 Binary(4) Reserved.

Note that RLD records will normally be smaller if the RLD data is sorted by P-pointer, because typical text elements contain more than a single adcon.