{
{ dmt$ms_device_file_list_entry
{

  TYPE
    dmt$ms_device_file_list_entry = record
      pad: 0 .. 0ffff(16),
      case flags: dmt$dfl_entry_flags of

      = dmc$dfle_assigned_to_file =
        dau_chain_status: dmt$dau_chain_status,
        daus_per_allocation_unit: dmt$daus_per_allocation,
        file_byte_address: amt$file_byte_address,
        file_hash: dmt$file_hash,
        file_kind: gft$file_kind,
        first_dau_address: dmt$dau_address,
        global_file_name: dmt$global_file_name,
        fmd_length: amt$file_byte_address,
        logical_length: amt$file_byte_address,
        end_of_information: amt$file_byte_address,
        end_of_file: amt$file_byte_address,
        login_set: dmt$dfl_login_set,
        damage: dmt$file_damage,

      = dmc$dfle_assigned_to_mainframe =
        mainframe_assigned: dmt$mainframe_assigned,
      casend,
    recend,

    dmt$ms_device_file_list_header = record
      unused: string (23),
      number_of_entries: dmt$device_file_list_index,
      version_number: dmt$ms_dflt_version_number,
    recend,

    dmt$dfl_login_set = set of dmt$login_table_entry_index;

  TYPE
    dmt$ms_device_file_list_table = record
      header: dmt$ms_device_file_list_header,
      entries: array [1 .. * ] of dmt$ms_device_file_list_entry,
    recend;

  CONST
    dmc$device_file_list_dfl_index = 1,

    dmc$dat_dfl_index = 2,

    dmc$directory_dfl_index = 3,

    dmc$label_dfl_index = 4,

    dmc$login_table_dfl_index = 5,

    dmc$min_volume_dfl_entries = 30,

    dmc$max_volume_dfl_entries = 65535,

    dmc$default_volume_dfl_entries = 3000,

    dmc$min_device_file_list_ord = 10;

  TYPE
    dmt$device_file_list_keywords = (dmc$dfle_byte_address,
      dmc$dfle_daus_per_allocation, dmc$dfle_file_hash, dmc$dfle_file_type,
      dmc$dfle_global_file_name);

  TYPE
    dmt$device_file_list_attribute = record
      case keyword: dmt$device_file_list_keywords of

      = dmc$dfle_byte_address =
        value: amt$file_byte_address,

      = dmc$dfle_daus_per_allocation =
        daus_per_allocation: dmt$daus_per_allocation,

      = dmc$dfle_file_hash =
        file_hash: dmt$file_hash,

      = dmc$dfle_global_file_name =
        gfn: dmt$global_file_name,

      = dmc$dfle_file_type =
        file_kind: gft$file_kind,
      casend,
    recend;

  TYPE
    dmt$ms_dflt_version_number = (dmc$dflt_0_0, dmc$dflt_1_0),

    dmt$dfl_entry_flags = (dmc$dfle_available, dmc$dfle_assigned_to_mainframe,
      dmc$dfle_assigned_to_file);

  TYPE
    dmt$dau_chain_status = (dmc$dau_chain_linked, dmc$dau_chain_not_linked);

  CONST
    dmc$dfl_allocation_size = dmc$default_req_alloc_size,

    dmc$dfl_transfer_size = dmc$default_transfer_size;

?? PUSH (LISTEXT := ON) ??
*copyc amt$file_byte_address
*copyc dmt$allocation_size
*copyc dmt$device_allocation_unit
*copyc dmt$device_file_list_index
*copyc dmt$file_damage
*copyc dmt$file_hash
*copyc dmt$global_file_name
*copyc dmt$mainframe_assigned
*copyc dmt$transfer_size
*copyc gft$file_kind
?? POP ??
