5.1.4. Extended Linear Address Record (32- bit format only)

+------------------+---------------+-------------+----------------+---------------+-------------------+
|      RECORD      |               |     LOAD    |                |               |                   |
|       MARK       |     RECLEN    |    OFFSET   |     RECTYP     |      ULBA     |      CHKSUM       |
|       ': '       |      '02'     |    '0000'   |      '04'      |               |                   |
+------------------+---------------+-------------+----------------+---------------+-------------------+
     1- byte           1- byte        2- bytes         1- byte         2- bytes           1- byte

The 32- bit Extended Linear Address Record is used to specify bits 16- 31 of the Linear Base Address (LBA), where bits 0- 15 of the LBA are zero. Bits 16- 31 of the LBA are referred to as the Upper Linear Base Address (ULBA). The absolute memory address of a content byte in a subsequent Data Record is obtained by adding the LBA to an offset calculated by adding the LOAD OFFSET field of the containing Data Record to the index of the byte in the Data Record (0, 1, 2, ... n). This offset addition is done modulo 4G (i. e., 32- bits), ignoring any carry, so that offset wrap- around loading (from OFFFFFFFFH to OOOOOOOOOH) results in wrapping around from the end to the beginning of the 4G linear address defined by the LBA. The linear address at which a particular byte is loaded is calculated as:

(LBA + DRLO + DRI) MOD 4G

where: DRLO is the LOAD OFFSET field of a Data Record. DRI is the data byte index within the Data Record.

When an Extended Linear Address Record defines the value of LBA, it may appear anywhere within a 32- bit hexadecimal object file. This value remains in effect until another Extended Linear Address Record is encountered. The LBA defaults to zero until an Extended Linear Address Record is encountered.

The contents of the individual fields within the record are:

RECORD MARK

This field contains 03AH, the hexadecimal encoding of the ASCII colon (': ') character. RECLEN

The field contains 03032H, the hexadecimal encoding of the ASCII characters '02', which is the length, in bytes, of the ULBA data information within this record.

LOAD OFFSET

This field contains 030303030H, the hexadecimal encoding of the ASCII characters '0000', since this field is not used for this record.

RECTYP

This field contains 03034H, the hexadecimal encoding of the ASCII character '04', which specifies the record type to be an Extended Linear Address Record.

ULBA

This field contains four ASCII hexadecimal digits that specify the 16- bit Upper Linear Base Address value. The high- order byte is the 10th/ llth character pair of the record. The low- order byte is the 12th/ 13th character pair of the record.

CHKSUM

This field contains the check sum on the RECLEN, LOAD OFFSET, RECTYP, and ULBA fields.