


{CYBER 180 processor exchange package.

  TYPE
    ost$exchange_package = packed record
      p_register: ost$p_register,
      undefined1: 0 .. 0f(16),
      vmid: ost$virtual_machine_identifier,
      undefined2: 0 .. 0f(16),
      uvmid: ost$virtual_machine_identifier,
      a0_dynamic_space_pointer: ^cell,
      flags: ost$flags,
      undefined3: 0 .. 03ff(16),
      trap_enable: ost$trap_enable,
      a1_current_stack_frame: ^cell,
      user_mask: ALIGNED ost$user_conditions,
      a2_previous_save_area: ^ost$minimum_save_area,
      monitor_mask: ALIGNED ost$monitor_conditions,
      a3: ^cell,
      user_condition_register: ost$user_conditions,
      a4: ^cell,
      monitor_condition_register: ost$monitor_conditions,
      a5: ^cell,
      undefined4: 0 .. 0f(16),
      keypoint_class_number: ost$keypoint_class,
      last_processor_id: 0 .. 0ff(16),
      a6: ^cell,
      keypoint_mask: ALIGNED ost$keypoint_mask,
      a7: ^cell,
      keypoint_code_1: 0 .. 0ffff(16),
      a8: ^cell,
      keypoint_code_2: 0 .. 0ffff(16),
      a9: ^cell,
      process_interval_timer_1: 0 .. 0ffff(16),
      aa: ^cell,
      process_interval_timer_2: 0 .. 0ffff(16),
      ab: ^cell,
      base_constant_1: 0 .. 0ffff(16),
      ac: ^cell,
      base_constant_2: 0 .. 0ffff(16),
      ad: ^cell,
      model_dependent_flags: 0 .. 0ffff(16),
      ae: ^cell,
      undefined5: 0 .. 0f(16),
      segment_table_length: ost$segment,
      af: ^cell,
      x_registers: array [ost$register_number] of ost$x_register,
      model_dependent_word: integer {ost$word} ,
      segment_table_address_1: 0 .. 0ffff(16),
      untranslatable_pointer: ost$pva,
      segment_table_address_2: 0 .. 0ffff(16),
      trap_pointer: ^cell,
      debug_index: 0 .. 63,
      undefined6: 0 .. 7,
      debug_mask_register: ost$debug_mask,
      debug_list_pointer: ^ost$debug_list,
      tos_registers: array [ost$valid_ring] of ost$top_of_stack_pointer,
    recend;

  TYPE
    ost$flags = set of (osc$critical_frame, osc$on_condition,
          osc$keypoint_enable, osc$process_not_damaged);

  TYPE
    ost$top_of_stack_pointer = packed record
      undefined: 0 .. 0fff(16),
      largest_ring_number: ost$ring, {only present in ring 1 TOS}
      pva: ost$pva,
    recend;

*copyc osd$virtual_address
*copyc osd$registers
*copyc ost$virtual_machine_identifier
*copyc ost$keypoint_class
*copyc osd$conditions
*copyc ost$trap_enable
*copyc ost$stack_frame_save_area
*copyc ost$debug_list
*copyc ost$debug_mask
*copyc ost$debug_code
