
  CONST
    amc$int_file_byte_limit = 2147483648, { 2** 31 bytes}
    amc$int_max_files = 2000,
    amc$int_maximum_record = amc$int_file_byte_limit - 1;

  TYPE
    amt$int_file_byte_address = 0 .. amc$int_file_byte_limit - 1,
    amt$file_name = string ( * ),
    amt$interim_file_identifier = record
      ordinal: amt$int_file_id_ordinal,
      sequence: amt$int_file_id_sequence,
      prim_ptr: amt$owncode_pointer,
      sec_ptr: amt$owncode_pointer,
    recend,
    amt$int_file_id_ordinal = 1 .. amc$int_max_files,
    amt$int_file_id_sequence = 0 .. 4095,
    amt$int_file_position = (int$bov, int$boi, int$mid_record, int$eor,
          int$prior_to_eop, int$eop, int$eoi, int$eov),
    amt$owncode_pointer = ^procedure (    file_id: amt$interim_file_identifier;
                                          call_block: amt$call_block_seq;
                                          access_method_pointer:
                                       amt$owncode_pointer;
                                      VAR status: ost$status),
    amt$call_block_seq = SEQ (REP 320 of cell),
    amt$int_transfer_count = 0 .. amc$int_maximum_record,
    amt$int_working_storage_length = 0 .. amc$int_maximum_record;

