
  TYPE
    bat$global_file_information = record
      open_count: ALIGNED [0 MOD 8] ost$compare_swap_lock,
      open_lock: ost$signature_lock,
      implicit_detach_inhibited: boolean,
      asis_bor_address: amt$file_byte_address,
      asis_file_position: amt$file_position,
      asis_open_address: amt$file_byte_address,
      cycle_damage_symptoms: fst$cycle_damage_symptoms,
      device_dependent_info: bat$device_dependent_info,
      eoi_byte_address: amt$file_byte_address,
      eoi_set: boolean,
      error_status: ost$status_condition,
      file_limit: amt$file_limit,
      last_access_operation: amt$last_access_operation,
      max_block_size: 0 .. amc$maximum_block - 1,
      max_data_size: 0 .. amc$maximum_block - 1,
      max_record_length: amt$max_record_length,
      min_block_length: amt$min_block_length,
      opened_access_modes: bat$access_counts,
      padding_character: amt$padding_character,
      positioning_info: bat$positioning_info,
      prevented_open_access_modes: bat$access_counts,
      record_delimiting_character: CHAR,
    recend,

    bat$device_dependent_info = record
      case device_class: rmt$device_class OF
        = rmc$connected_file_device =
          connected_file_descriptor: ^SEQ(*),
        = rmc$interstate_link_device =
          interstate_link_descriptor: ^SEQ(*),
        = rmc$local_queue_device =
          local_queue_descriptor: ^SEQ(*),
        = rmc$log_device =
          log_descriptor: ^SEQ(*),
        = rmc$magnetic_tape_device =
          tape_descriptor: ^SEQ(*), { ^bat$tape_descriptor }
        = rmc$mass_storage_device =
          mass_storage_descriptor: ^SEQ(*),
        = rmc$memory_resident_device =
          memory_resident_descriptor: ^SEQ(*),
        = rmc$network_device =
          network_global_file_information: ^nat$global_file_information,
          network_connection_id: nat$connection_id,
        = rmc$null_device =
          null_descriptor: ^SEQ(*),
        = rmc$pipeline_device =
          pipeline_descriptor: ^SEQ(*),
        = rmc$rhfam_device =
          rhfam_descriptor: ^SEQ(*),
        = rmc$terminal_device =
          terminal_descriptor: ^SEQ(*),
      casend,
    recend;

?? PUSH (LISTEXT := ON) ??
*copyc amc$fap_request_codes
*copyc amc$max_vol_number
*copyc amt$error_count
*copyc amt$file_byte_address
*copyc amt$file_limit
*copyc amt$file_position
*copyc amt$last_access_operation
*copyc amt$last_op_status
*copyc amt$max_block_length
*copyc amt$min_block_length
*copyc amt$residual_skip_count
*copyc amt$skip_count
*copyc amt$skip_direction
*copyc amt$skip_unit
*copyc amt$tape_mark_count
*copyc amt$volume_number
*copyc bat$access_counts
*copyc bat$positioning_info
*copyc bat$tape_descriptor
*copyc fst$cycle_damage_symptoms
*copyc fst$file_access_options
*copyc nat$connection_id
*copyc nat$global_file_information
*copyc ost$signature_lock
*copyc ost$status_condition
*copyc rmt$device_class
?? POP ??
