Description: Like the LEDATA record, the LIDATA record contains binary data -- executable code or program data. The data in an LIDATA record, however, is specified as a repeating pattern (iterated), rather than by explicit enumeration.

The data in an LIDATA record may be modified by the linker if the LIDATA record is immediately followed by a FIXUPP record.

   1 byte  2 bytes
  ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂ---
  ³  A3   ³ Record         ³
  ³       ³  Length        ³
  ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁ---

                 1 or 2    4 bytes       <from Record Length> 1 byte
              --ÂÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ¿
                ³ Seg.    ³ Data        ³     Data           ³Chk sum³
                ³  Index  ³  Offset     ³       Block        ³ or 0  ³
              --ÁÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÙ
                                         <----- repeat ----->

LIDATA logical iterated data record
Segment Index and Data Offset

The segment index and data offset (4 bytes) are the same as for an LEDATA record. The index must be nonzero.


Data Block

The data blocks have the following form:

   4 bytes       2 bytes       <-- from block count -->
 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
 ³ Repeat       ³ Block       ³    Content             ³
 ³  Count       ³  Count      ³                        ³
 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
  <-------------------- Data Block ------------------->

Repeat Count

The Repeat Count is a 32-bit value which determines the number of repeats of the content portion.

CONFLICT:The PharLap OMF uses a 16-bit repeat count even in 32-bit records.
Block Count

The Block Count is a 16-bit word whose value determines the interpretation of the content portion, as follows:

  • indicates that the content field that follows is a one byte "count" value followed by "count" data bytes. The data bytes will be mapped to memory, repeated Repeat Count times.

  • indicates the content field that follows is comprised of one or more Data Blocks. The Block Count value specifies the number of Data Blocks (recursive definition).

    Notes:

    A subsequent FIXUPP record may occur; the fixup is applied before the iterated data block is expanded. It is a translator error for a fixup to reference any of the count fields.


    [Back: A1H LEDATA Logical Enumerated Data Record]
    [Next: B0H COMDEF Communal Names Definition Record]