
  CONST
    initial_wait_time = 1000,
    data_header_length = 6,
    command_block_size = 14,
    batch_command_size = 2043,
    max_label_size = 65535,
    starting_mark = '0000',

    {data phase commands}
    ss_command = '30',
    ms_command = '31',
    es_command = '32',
    rr_command = '33',
    mr_command = '34',
    qr_command = '35',
    er_command = '36',
    sr_command = '37',
    pr_command = '38',
    ps_command = '39',

    {condition_codes}
    ok_condition = '0',
    ok = '0000',
    hold_condition = '1',
    temp_hold = '0010',
    pm_hold = '0011',    {pm message}
    opes_hold = '0012',  {I/O station operator}
    err_condition = '2',
    receive_err_retry = '0020',
    receive_err_no_retry = '0021',
    receive_detected_prot_err = '0022',
    receive_noGO = '0023',
    appl_termination_retry = '0025',
    appl_termination_no_retry = '0026',
    send_err_retry = '0028',
    send_err_no_retry = '0029',
    send_detected_prot_err = '002A',
    send_noGO = '002B',

    {A-A protocol data_block_clarifier codes}
    nfc$dbc_no_mark = 00(16),
    nfc$dbc_eor = 20(16),
    nfc$dbc_eof = 2f(16),
    nfc$dbc_eoi_bit = 40(16),
    nfc$dbc_ve_label = 8f(16);

  TYPE
    batch_data_header = packed record
      data_block_clarifier: 0 .. 0ff(16),
      byte_count: 0 .. 0ffff(16),
      application_block_number: 0 .. 0ffff(16),
      reserved: 0 .. 01f(16),
      unused_bit_count: 0 .. 07(16),
    recend,
    data_phase_command = record
      command_id: string(2),
      parameter_count: string(2),
      parameter_prefix: string(6),
      condition_code: string(4),
    recend,
    transfer_params = record
      connection_fid: amt$file_identifier,
      file_name: amt$local_file_name,
      facilities: nft$facility_group,
      transfer_mode: nft$transfer_modes,
      block_size: nft$block_size,
      min_timeout: nft$timeout,
      protocol_version: nft$parameter_00_values,
      network_type: nft$network_type,
      validation_ring: ost$valid_ring,
      transfer_status: ost$status,
      status: ost$status,
    recend,
    progress_states = (not_started, label_in_progress, label_complete,
      file_in_progress, transfer_complete),
    transfer_progress = record
      general_position: progress_states,
      file_byte_address: ^SEQ (*),
      current_byte_address: ^SEQ (*),
      current_byte_count: 0 .. 7fffffff(16),
      remaining_data: 0 .. 7fffffff(16),
    recend;
