
{ DECK: IOT$DISK_DETAILED_STATUS_844 }

 CONST
   ioc$unique_status = ioc$disk_detailed_status_length - 4;


 TYPE
    iot$common_disk_status = packed record
      general_status: ALIGNED [0 MOD 8] iot$general_status,
      detailed_status: array [1 .. ioc$unique_status] of ost$word,
    recend,



    iot$disk_detailed_status_844 = packed record
      general_status: ALIGNED [0 MOD 8] iot$general_status,
      part1: ALIGNED [0 MOD 8] iot$disk_detailed_status1,
      status_844: ALIGNED [0 MOD 8] iot$status_844,
      part3: ALIGNED [0 MOD 8] iot$disk_detailed_status3,
      part4: ALIGNED [0 MOD 8] iot$disk_detailed_status1,
      status_844_b: ALIGNED [0 MOD 8] iot$status_844,
      part6: ALIGNED [0 MOD 8] iot$disk_detailed_status3,
    recend,



    iot$disk_detailed_status_885 = packed record
      general_status: ALIGNED [0 MOD 8] iot$general_status,
      part1: ALIGNED [0 MOD 8] iot$disk_detailed_status1,
      status_885: ALIGNED [0 MOD 8] iot$status_885,
      part3: ALIGNED [0 MOD 8] iot$disk_detailed_status3,
      part4: ALIGNED [0 MOD 8] iot$disk_detailed_status1,
      status_885_b: ALIGNED [0 MOD 8] iot$status_885,
      part6: ALIGNED [0 MOD 8] iot$disk_detailed_status3,
    recend,


    iot$general_status = packed record
      port: boolean,
      channel: 0 .. 07fff(16),
      starting_cylinder: 0 .. 0ffff(16),
      starting_track: 0 .. 0ffff(16),
      starting_sector: 0 .. 0ffff(16),

      control_module: 0 .. 1fff(16),
      unit: 0 .. 7,
      request_retry: 0 .. 0ffff(16),
      failing_track: 0 .. 0ffff(16),
      failing_sector: 0 .. 0ffff(16),

      sector_size_not_4096: boolean,
      not_same_host_id: boolean,
      confidence_cylinder_is_flawed: boolean,
      running_the_confidence_test: boolean,
      master_clear_did_not_work: boolean,
      drive_if_integrity_error: boolean,
      host_if_integrity_error: boolean,
      channel_initialization_error: boolean,
      timeout_pause: boolean,
      timeout_tip: boolean,
      cannot_select_controller: boolean,
      incorrect_controller_selected: boolean,
      error_log_present: boolean,
      error_register_image_present: boolean,
      device_status_present: boolean,
      detailed_status_present: boolean,

      channel_down: boolean,
      control_module_down: boolean,
      unit_down: boolean,
      level_1_diagnostics_passed: boolean,
      level_1_diagnostics_started: boolean,
      selective_reset_successful: boolean,
      selective_reset_attempted: boolean,
      soft_sectoring_complete: boolean,
      soft_sectoring_started: boolean,
      pp_timed_out_a_command: boolean,
      spindle_powered_up: boolean,
      power_up_spindle_started: boolean,
      level_2_diagnostics_passed: boolean,
      level_2_diagnostics_started: boolean,
      control_module_reload_completed: boolean,
      control_module_reload_started: boolean,

      fill4: 0 .. 1,
      timeout_t_register_byte_count: boolean,
      timeout_tip_or_t_reg_not_empty: boolean,
      data_transfer_error: boolean,
      invalid_execution_status: boolean,
      select_active_dropped_data: boolean,
      select_active_dropped_error_log: boolean,
      incomplete_error_log_transfer: boolean,
      sa_dropped_error_register_image: boolean,
      incomplete_error_reg_image_xfer: boolean,
      sa_dropped_device_status: boolean,
      incomplete_device_status_xfer: boolean,
      sa_dropped_hydra_status: boolean,
      incomplete_status_transfer: boolean,
      fill6: boolean,
      incomplete_command_block_xfer: boolean,

      sector_retry_count: 0 .. 0ffff(16),

      first_general_status: ALIGNED [0 MOD 8]   0 .. 0ffff(16),
      last_general_status: 0 .. 0ffff(16),
      function_timeout: 0 .. 0ffff(16),

      adapter_controlware_error: boolean,
      controller_reserved: boolean,
      unit_reserved: boolean,
      not_ready: boolean,
      load_attention_delay_error: boolean,
      bad_status_loading_controlware: boolean,
      read_error: boolean,
      unrecovered_media_error: boolean,
      media_failure: boolean,
      input_channel_active: boolean,
      output_channel_full: boolean,
      autoload_function_timeout: boolean,
      controlware_load_attempted: boolean,
      ram_parity_error: boolean,
      clear_unit_reserve: boolean,
      incomplete_sector_transfer: boolean,
    recend,



    iot$disk_detailed_status1 = packed record
{Word 1.}
      fill1: 0 .. 0f(16),
      strobe_offset_retry_count: 0 .. 0ff(16),
      address_error: boolean,
      cylinder_number_error: boolean,
      track_number_error: boolean,
      sector_number_error: boolean,

{Word 2.}
      fill2: 0 .. 0f(16),
      address_checkword_error: boolean,
      non_correct_address_checkword: boolean,
      data_checkword_error: boolean,
      non_correct_data_checkword: boolean,
      status_word_4: 0 .. 0ff(16),

{Word 3.}
      fill3: 0 .. 0f(16),
      pp_command: 0 .. 0ff(16),
      parameters_illegal: boolean,
      illegal_parameter_count: boolean,
      fill4: boolean,
      no_reply_esm: boolean,

{Word 4.}
      fill5: 0 .. 0f(16),
      ma401_controlware: boolean,
      subsystem_7155: boolean,
      controlware_revision_number: 0 .. 0f(16),
      unit_number: 0 .. 3f(16),
    recend,



    iot$status_844 = packed record
{Word 5.}
      fill6: 0 .. 0f(16),
      cylinder2: 0 .. 1ff(16),
      track1: 0 .. 7,

{Word 6.}
      fill7: 0 .. 0f(16),
      track2: 0 .. 3,
      sector: 0 .. 1f(16),
      sector_flaw_bit: boolean,
      track_flaw_bit: boolean,
      factory_flaw_map: boolean,
      utility_flaw_map: boolean,
      cylinder1: 0 .. 1,

{Word 7.}
      fill8: 0 .. 0ffff(16),

{Word 8.}
      fill9: 0 .. 0ffff(16),

{Word 9.}
      fill10: 0 .. 0f(16),
      sector_alert: boolean,
      seek_error: boolean,
      unit_busy: boolean,
      unit_selected: boolean,
      unit_ready: boolean,
      unit_on_line: boolean,
      dsu_844_4x: boolean,
      fill11: 0 .. 3,
      end_of_cylinder: boolean,
      end_of_travel: boolean,
      index_mark: boolean,

{Word 10.}
      fill12: 0 .. 0f(16),
      on_cylinder: boolean,
      seek_error_noc: boolean,
      pack_unsafe: boolean,
      sector_mark: boolean,
      seek: boolean,
      volt_current: 0 .. 0f(16),
      w_r_not_on_cylinder: boolean,
      ac_write_fault: boolean,
      interlock_status1: boolean,

{Word 11.}
      fill13: 0 .. 0f(16),
      interlock_status2: 0 .. 0fff(16),

{Word 12.}
      fill14: 0 .. 0ffff(16),
    recend,



    iot$status_885 = packed record
{Word 5.}
      fill6: 0 .. 0f(16),
      track_flaw_bit: boolean,
      flag_factory_flaw_bit: boolean,
      fill7: 0 .. 0f(16),
      cylinder1: 0 .. 3f(16),

{Word 6.}
      fill8: 0 .. 0f(16),
      cylinder2: 0 .. 0f(16),
      track: 0 .. 0ff(16),

{Word 7.}
      fill9: 0 .. 0f(16),
      sector: 0 .. 0ff(16),
      unit_ready_and_safe: boolean,
      system_maintenance_switch: boolean,
      drive_id: 0 .. 3,

{Word 8.}
      fill10: 0 .. 0f(16),
      drive_id2: 0 .. 3f(16),
      fixed_heads_installed: boolean,
      write_enable: boolean,
      on_line: boolean,
      air_switch: boolean,
      start_switch_on: boolean,
      motor_at_speed: boolean,

{Word 9.}
      fill11: 0 .. 0f(16),
      index: boolean,
      sector_mark: boolean,
      on_cylinder: boolean,
      selected_and_reserved: boolean,
      ready_and_safe: boolean,
      on_sector: boolean,
      status_valid: boolean,
      status_parity_error: boolean,
      seek_timeout_error: boolean,
      seek_overshoot_error: boolean,
      servo_off_track: boolean,
      rezero_mode_latch: boolean,

{Word 10.}
      fill12: 0 .. 0f(16),
      status_word_2: 0 .. 0f(16),
      status_word3: 0 .. 0ff(16),

{Word 11.}
      fill13: 0 .. 0f(16),
      capable_enable_error: boolean,
      write_overrun: boolean,
      multi_head_error: boolean,
      write_current_error: boolean,
      write_transition_error: boolean,
      control_error: boolean,
      index_check: boolean,
      head_short: boolean,
      no_control_select_active: boolean,
      write_while_in_offset: boolean,
      fill14: 0 .. 3,

{Word 12.}
      fill15: 0 .. 0f(16),
      early_strobe: boolean,
      late_strobe: boolean,
      forward_offset: boolean,
      reverse_offset: boolean,
      fill16: boolean,
      sector_compare_error: boolean,
      drive_check_error: boolean,
      fill17: boolean,
      read_write_error: boolean,
      fill18: 0 .. 3,
      access_check: boolean,
    recend,



    iot$disk_detailed_status3 = packed record
{Word 13.}
      fill19: 0 .. 0f(16),
      write_buffer_to_disk_error: boolean,
      coupler_connected_before_gs: boolean,
      dsu_reserved_before_seek: boolean,
      word_address: 0 .. 1ff(16),

{Word 14.}
      fill20: 0 .. 0f(16),
      status_word: 0 .. 0fff(16),

{Word 15.}
      fill21: 0 .. 0f(16),
      status_word_2: 0 .. 0fff(16),

{Word 16.}
      fill22: 0 .. 0f(16),
      lost_dsu_clock: boolean,
      checkword_error_head3: boolean,
      checkword_error_head_2: boolean,
      checkword_error_head1: boolean,
      checkword_error_head_0: boolean,
      data_parity_error: boolean,
      processor_instruction_timeout: boolean,
      lost_control_word: boolean,
      up_down_count_non_zero: boolean,
      pack_unsafe_not_ready: boolean,
      bm_register_parity_error: boolean,
      write_verify_error: boolean,

{Word 17.}
      fill23: 0 .. 0f(16),
      sync_byte_search: boolean,
      sector_length_violation: boolean,
      lost_data: boolean,
      sync_byte_miscompare: boolean,
      checkword_error_correction: boolean,
      bm_output_register_full: boolean,
      bm_input_register_full: boolean,
      channel_reserved: boolean,
      channel_deadman_timeout: boolean,
      channel_active: boolean,
      data_field_error: boolean,
      address_field_error: boolean,

{Word 18.}
      fill24: 0 .. 0f(16),
      access_d_connected: boolean,
      access_c_connected: boolean,
      access_b_connected: boolean,
      access_a_connected: boolean,
      controlware: 0 .. 7,
      status_not_valid: boolean,
      large_sector_mode: boolean,
      fill25: 0 .. 7,

{Word 19.}
      fill26: 0 .. 0f(16),
      extended_addressing: boolean,
      high_speed_data: boolean,
      upper_half_of_buffer_memory: boolean,
      fill27: 0 .. 3,
      status_word_valid: boolean,
      fill28: boolean,
      channel_parity_error: boolean,
      write_function: boolean,
      double_error: boolean,
      accept: boolean,
      abort: boolean,

{Word 20.}
      fill29: 0 .. 0f(16),
      error_head3: boolean,
      error_head_2: boolean,
      error_head1: boolean,
      error_head_0: boolean,
      controller_number: 0 .. 0ff(16),
    recend,



    iot$isd_status = packed record
      general_status: ALIGNED [0 MOD 8] iot$general_status,
      detailed_status1: ALIGNED [0 MOD 8] iot$isd_detailed_status,
      detailed_status2: ALIGNED [0 MOD 8] iot$isd_detailed_status,
    recend,


    iot$isd_detailed_status = packed record
{Word 1.}
      fill1: 0 .. 0ffff(16),

{Word 2.}
      fill2: 0 .. 0ffff(16),

{Word 3.}
      fill3: 0 .. 0f(16),
      pp_command: 0 .. 0ff(16),
      parameters_illegal: boolean,
      fill4: boolean,
      multiple_select: boolean,
      fill5: boolean,

{Word 4.}
      fill6: 0 .. 1f(16),
      isd_subsystem: boolean,
      controlware_revision_number: 0 .. 0f(16),
      cm_number: 0 .. 7,
      unit_number: 0 .. 7,

{Word 5.}
      fill7: 0 .. 0ffff(16),

{Word 6.}
      fill8: 0 .. 0ffff(16),

{Word 7.}
      fill9: 0 .. 0f(16),
      normal_end: boolean,
      check_end: boolean,
      execution_status: 0 .. 7,
      system_intervention_code_valid: boolean,
      manual_intervention_code_valid: boolean,
      delay_status_valid: boolean,
      drive_number: 0 .. 0f(16),

{Word 8.}
      fill10: 0 .. 0f(16),
      command_block_number: 0 .. 0f(16),
      level_i_diagnostic_code: 0 .. 0ff(16),

{Word 9.}
      fill11: 0 .. 0f(16),
      system_intervention_code: 0 .. 0ff(16),
      level_ii_diagnostic_code_1: 0 .. 0f(16),

{Word 10.}
      fill12: 0 .. 0f(16),
      level_ii_diagnostic_code_2: 0 .. 0f(16),
      manual_intervention_code: 0 .. 0ff(16),

{Word 11.}
      fill13: 0 .. 0f(16),
      delay_code: 0 .. 0ff(16),
      drive_ready: boolean,
      drive_present: boolean,
      fill14: 0 .. 3,

{Word 12.}
      fill29: 0 .. 0f(16),
      cylinder: 0 .. 0fff(16),

{Word 13.}

      fill15: 0 .. 0f(16),
      track: 0 .. 0ff(16),
      sector1: 0 .. 0f(16),

{Word 14.}
      fill16: 0 .. 0f(16),
      sector2: 0 .. 07,
      sector3: 0 .. 1,
      device_id: 0 .. 0ff(16),

{Word 15.}
      fill17: 0 .. 0f(16),
      device_capacity: 0 .. 0f(16),
      device_model: 0 .. 0f(16),
      no_head_select: boolean,
      write_fault: boolean,
      off_cylinder: boolean,
      read_and_write_fault: boolean,

{Word 16.}
      fill18: 0 .. 0f(16),
      voltage_fault: boolean,
      head_select_fault: boolean,
      seek_error: boolean,
      write_protect: boolean,
      address_mark_found: boolean,
      write_protect2: boolean,
      on_cylinder: boolean,
      unit_ready: boolean,
      fill19: 0 .. 3,
      offset_action: boolean,
      check_diagnostic: boolean,

{Word 17.}
      fill20: 0 .. 0f(16),
      cm_model_number: 0 .. 0f(16),
      adapter_failure: boolean,
      cm_failure: boolean,
      drive_failure: boolean,
      failure_code: 0 .. 1f(16),

{WOrd 18.}
      fill21: 0 .. 0f(16),
      fill22: 0 .. 0f(16),
      controlware: 0 .. 7,
      cos_revision_number: 0 .. 1f(16),

{Word 19.}
      fill23: 0 .. 0f(16),
      fill24: boolean,
      no_attention_bit: boolean,
      cm_busy: boolean,
      fill25: boolean,
      isi_select_active: boolean,
      isi_pause: boolean,
      disable_isi_parity_error: boolean,
      force_sync_in: boolean,
      isi_parity_error: boolean,
      isi_select_hold: boolean,
      isi_command_sequence: boolean,
      isi_deadman_time_out: boolean,

{Word 20.}
      fill26: 0 .. 0f(16),
      fill27: 0 .. 3,
      memory_parity_error: boolean,
      buffer_memory_parity_error: boolean,
      word_transfer_in_progress: boolean,
      read_not_equal_write_address: boolean,
      ici_parity_error: boolean,
      fill28: boolean,
      ici_full: boolean,
      channel_reserved: boolean,
      channel_deadman_time_out: boolean,
      channel_active: boolean,
    recend,

{Hydra status.

    iot$hydra_status = packed record
      general_status: ALIGNED [0 MOD 8] iot$general_status,
      operational_status: 0 .. 0ffff(16),
      t_register: 0 .. 0ffffffffffff(16),
      control_register: 0 .. 0ffff(16),
      flag_mask_register: 0 .. 0ffff(16),
      idle_status: 0 .. 0ffff(16),
      bit_significant_response: 0 .. 0ffff(16),
      cm_status1: iot$hydra_cm_status,
      device_status1: iot$hydra_device_status,
      cm_status2: iot$hydra_cm_status,
      device_status2: iot$hydra_device_status,
      error_register_image: array [1 .. 12] of ost$word,
      error_log: array [1 .. 12] of ost$word,
    recend,


    iot$hydra_cm_status = packed record
{Word 0.}
      normal_end: boolean,
      check_end: boolean,
      execution_status: 0 .. 7,
      system_intervention_code_valid: boolean,
      manual_intervention_code_valid: boolean,
      delay_status_valid: boolean,
      device_number: 0 .. 0f(16),
      command_block_number: 0 .. 0f(16),

{Word 1.}
      fru1: 0 .. 0f(16),
      fru2: 0 .. 0f(16),
      system_intervention_code: 0 .. 0ff(16),

{Word 2.}
      fru3: 0 .. 0f(16),
      fru4: 0 .. 0f(16),
      manual_intervention_code: 0 .. 0ff(16),

{Word 3.}
      model_number: 0 .. 0f(16),
      type_number: 0 .. 0f(16),
      delay_code: 0 ..0ff(16),

{Word 4.}
      transfer_count_residue: 0 .. 0ffff(16),

{Word 5.}
      device_ready: 0 .. 0ff(16),
      device_present: 0 .. 0ff(16),
    recend,


    iot$hydra_device_status = packed record
{Word 0.}
      device_id: 0 .. 0ff(16),
      device_capacity: 0 .. 0f(16),
      device_model: 0 .. 0f(16),

{Word 1.}
      cylinder: 0 .. 0ffff(16),

{Word 2.}
      track: 0 ..0ff(16),
      sector: 0 .. 0ff(16),

{Word 3.}
      no_head_select: boolean,
      write_fault: boolean,
      write_and_off_cylinder: boolean,
      read_and_write_fault: boolean,
      voltage_fault: boolean,
      head_select_fault: boolean,
      seek_rps_error: boolean,
      write_offset: boolean,
      volt_warning: boolean,
      mpu_fault: boolean,
      on_cylinder: boolean,
      disk_ready: boolean,
      rps_sector: boolean,
      diagnostic_mode: boolean,
      offset_active: boolean,
      check_diagnostic: boolean,
    recend,

    iot$channel_error_status = packed record
      fill: 0 .. 3,
      uncorrected_cm_error: boolean,
      cm_reject: boolean,
      invalid_cm_response: boolean,
      response_code_parity_error: boolean,
      cmi_read_data_parity_error: boolean,
      test_mode_compare_error: boolean,
      overflow_error: boolean,
      isi_input_error: boolean,
      isi_timeout: boolean,
      jp_jy_data_error: boolean,
      bas_parity_error: boolean,
      jz_error: boolean,
      jp_jy_error: boolean,
      jn_jx_error: boolean,
    recend,



{895 Status.}

    iot$895_detailed_status = packed record
      general_status: ALIGNED [0 MOD 8] iot$general_status,
      first_error_register: 0 .. 0ffff(16),
      last_error_register: 0 .. 0ffff(16),
      op_status: 0 .. 0ffff(16),
      error_code: 0 .. 0ffff(16),
      detailed_status_1: ALIGNED [0 MOD 8] iot$895_sense_status,
      controller_status_1: ALIGNED [0 MOD 8] iot$controller_status,
      detailed_status_2: ALIGNED [0 MOD 8] iot$895_sense_status,
      controller_status_2: ALIGNED [0 MOD 8] iot$controller_status,
    recend,


    iot$895_sense_status = packed record

{Sense Byte 0}
      fill1: 0..0f(16),
      command_reject: boolean,
      intervention_required: boolean,
      bus_out_parity: boolean,
      equipment_check: boolean,
      data_check: boolean,
      overrun: boolean,
      not_used1: 0..3,

{Sense Byte 1}
      permanent_device_error: boolean,
      invalid_track_format: boolean,
      end_of_cylinder: boolean,
      message_to_operator: boolean,
      fill2: 0..0f(16),
      no_record_found: boolean,
      file_protected: boolean,
      not_used2: 0..3,

 {Sense Byte 2}
      not_used3: 0..1,
      correctable: boolean,
      first_logged_error: boolean,
      environmental_data_present: boolean,
      not_used4: 0..0f(16),

{Sense Byte 3}
      fill3: 0..0f(16),
      controller_id: 0..0ff(16),
{        Sense Byte 4}
      dynamic_path_select: boolean,
      not_used5: 0..1,
      path_error: boolean,
      not_used6: 0..1,

{Sense Byte 4}
      fill4: 0..0f(16),
      device_address: 0..0f(16),

{        Sense Byte 5}
      cylinder_address_1: 0..0ff(16),

{Sense Byte 6}
      fill5: 0..0f(16),
      not_used7: 0..3,
      cylinder_address_2: 0..3,
      head_address: 0..0f(16),

{Sense Byte 7}
      format_code: 0..0f(16),
      fill6: 0..0f(16),
      message_code: 0..0f(16),

      sense_byte_8: 0..0ff(16),
      fill7: 0..0f(16),
      sense_byte_9: 0..0ff(16),
      sense_byte_10a: 0..0f(16),
      fill8: 0..0f(16),
      sense_byte_10b: 0..0f(16),
      sense_byte_11: 0..0ff(16),
      fill9: 0..0f(16),
      sense_byte_12: 0..0ff(16),
      sense_byte_13a: 0..0f(16),
      fill10: 0..0f(16),
      sense_byte_13b: 0..0f(16),
      sense_byte_14: 0..0ff(16),
      fill11: 0..0f(16),
      sense_byte_15: 0..0ff(16),
      sense_byte_16a: 0..0f(16),
      fill12: 0..0f(16),
      sense_byte_16b: 0..0f(16),
      sense_byte_17: 0..0ff(16),
      fill13: 0..0f(16),
      sense_byte_18: 0..0ff(16),
      sense_byte_19a: 0..0f(16),
      fill14: 0..0f(16),
      sense_byte_19b: 0..0f(16),
      sense_byte_20: 0..0ff(16),
      fill15: 0..0f(16),
      sense_byte_21: 0..0ff(16),
      sense_byte_22a: 0..0f(16),
      fill16: 0..0f(16),
      sense_byte_22b: 0..0f(16),
      sense_byte_23: 0..0ff(16),

    recend,


    iot$controller_status = packed record

{Word 17}
      fill1: 0..0f(16),
      controlware_type: 0..3,
      controlware_revision: 0..0f(16),
      current_record: 0..3f(16),

{Word 18}
      fill2: 0..0f(16),
      not_used1: 0..0f(16),
      normal_end: boolean,
      channel_parity: boolean,
      memory_parity: boolean,
      deadman_timeout: boolean,
      coupler_memory_parity: boolean,
      transfer_indicator: boolean,
      character_fill: boolean,
      not_used2: 0..1,

{Word 19}
      fill3: 0..0f(16),
      controlware_detected_error: boolean,
      ccc_status_byte_error: boolean,
      fsc_sequence_error: boolean,
      parity_error: boolean,
      bit_7: boolean,
      bit_6: boolean,
      bit_5: boolean,
      bit_4: boolean,
      bit_3: boolean,
      bit_2: boolean,
      bit_1: boolean,
      bit_0: boolean,

{Word 20}
      fill4: 0..0f(16),
      capacity: 0..3,
      always_ones: 0..3,
      ccc_serial_number: 0..0ff(16),
    recend,

    iot$detailed_status_9836_1 = packed record
        { CM word 1 }
      port: boolean,
      channel: 0 .. 07fff(16),
      starting_cylinder: 0 .. 0ffff(16),
      starting_track: 0 .. 0ffff(16),
      starting_sector: 0 .. 0ffff(16),
        { CM word 2 }
      unit: 0 .. 0ffff(16),
      request_retry: 0 .. 0ffff(16),
      failing_track: 0 .. 0ffff(16),
      failing_sector: 0 .. 0ffff(16),
        { CM word 3 }
      residual_word_count: 0 .. 0ffff(16),
      failing_function: 0 .. 0ffff(16),
      id: 0 .. 0ffff(16),
      error_id: 0 .. 0ffff(16),
        { CM word 4 }
      microcode_revision: 0 .. 0ffff(16),                  {upper code part number for 5831}
      ipi_channel_status_register: 0 .. 0ffff(16),
      ipi_channel_error_register: 0 .. 0ffff(16),
      lower_code_part_number: 0 .. 0ffff(16),              {5831 only}
        { CM word 5 }
      ipi_dma_error_register: 0 .. 0ffff(16),
      operational_status_register: 0 .. 0ffff(16),
      control_register: 0 .. 0ffff(16),
      actual_drive_type: 0 .. 0ffff(16),
      response_packets: ALIGNED [0 MOD 8] packed array [1 .. 128] OF 0 .. 0ff(16),
    recend,

    iot$9836_analyzed_response_pkt = record
      id23_present: boolean,
      id23_error_code: integer,
      id23_facility_status: integer,
      id24_present: boolean,
      id24_byte1_bit7: boolean,
      id24_byte1_bit6: boolean,
      id24_byte1_bit1: boolean,
      id24_byte1_not_bit7_or_6: boolean,
      id26_present: boolean,
      id26_byte1_bit4: boolean,
      id26_byte1_bit3: boolean,
      id26_byte2_bit6: boolean,
      id26_byte2_bit5: boolean,
      id26_byte2_bit4: boolean,
      id26_byte4_bit4: boolean,
      id26_byte10: 0 .. 0ff(16),       {byte 10(16) for 5831}
      id26_error_code: integer,        {from byte 0b(16), 21(16) for 5831}
      id29_present: boolean,
      id29_byte2_bit6: boolean,
      id29_byte2_bit5: boolean,
      id29_byte2_bit4: boolean,
      id29_byte2_bit3: boolean,
      id29_byte2_bit2: boolean,
      id29_byte6_bit7: boolean,
      id29_error_code: integer,        {from byte 0f(16), 21(16) for 5831}
    recend;

