  TYPE
    pmt$linker_debug_table_header = record
      version: pmt$linker_debug_table_version,
      build_level: pmt$os_name,
      date: ost$date,
      time: ost$time,
      number_of_modules: pmt$number_of_debug_items,
      first_module_address_table_item: REL (pmt$adaptable_sequence)
             ^pmt$module_item,
      number_of_entry_points: pmt$number_of_debug_items,
      entry_point_items: REL (pmt$adaptable_sequence) ^pmt$entry_point_items,
      number_of_addresses: pmt$number_of_debug_items,
      address_items: REL (pmt$adaptable_sequence) ^pmt$address_items,
    recend;

 CONST
    pmc$linker_debug_table_version = 'LDT_V0.2',
    pmc$maximum_debug_items = 0ffffffff(16);

  TYPE
    pmt$linker_debug_table_version = string (8),
    pmt$number_of_module_addr_items = pmt$number_of_debug_items,
    pmt$number_of_debug_items = 0 .. pmc$maximum_debug_items,
    pmt$entry_point_items = array [1 .. *] of pmt$entry_point_item,
    pmt$address_items = array [1 .. *] of pmt$address_item;

  TYPE
    pmt$module_item = record
      identification: llt$identification,
      next_module: REL (pmt$adaptable_sequence) ^pmt$module_item,
      number_of_line_address_tables: pmt$number_of_debug_items,
      line_address_tables: REL (pmt$adaptable_sequence) ^array [0 .. *] of
              ^llt$line_address_table,
      number_of_debug_symbol_tables: pmt$number_of_debug_items,
      debug_symbol_tables: REL (pmt$adaptable_sequence) ^array [0 .. *] of
              ^llt$debug_symbol_table,
      section_item: array [0 .. *] of pmt$section_item,
    recend;

  TYPE
    pmt$section_item = record
      kind: llt$section_kind,
      section_ordinal: llt$section_ordinal,
      address: pmt$segment_and_offset,
      length: ost$segment_length,
      segment_access_control: ost$segment_access_control,
      ring: pmt$ring_attributes,
      key_lock: ost$key_lock,
      name: pmt$program_name,
    recend;

  TYPE
    pmt$ring_attributes = record
      r1: ost$ring,
      r2: ost$ring,
      r3: ost$ring,
    recend;

  TYPE
    pmt$entry_point_item = record
      name: pmt$program_name,
      address: pmt$segment_and_offset,
    recend;

  TYPE
    pmt$address_item = record
      segment_offset: pmt$segment_and_offset,
      module_item: REL (pmt$adaptable_sequence) ^pmt$module_item,
      from_an_entry_point: boolean,
    recend;

  TYPE
    pmt$segment_and_offset = 0 .. 0fffffffffff(16);

?? PUSH (LISTEXT := ON) ??
*copyc pmt$os_name
*copyc llt$identification
*copyc llt$section_address
*copyc llt$section_kind
*copyc osd$virtual_address
*copyc ost$segment_access_control
*copyc llt$line_address_table
*copyc llt$debug_symbol_table
*copyc pmt$adaptable_sequence
?? POP ??
