  PROCEDURE pfp$test_condition_handler
    (    debug_value: integer);

    VAR
      condition: pmt$condition,
      local_status: ost$status,
      p_obj1: ^pft$physical_object,
      p_obj2: ^pft$physical_object,
      psa: ^ost$stack_frame_save_area;

    IF debug_value = 0 THEN
      RETURN;
    IFEND;

    CASE debug_value OF
    = 0 =
      ;
    = 1 =
      osp$set_status_abnormal (pfc$permanent_file_manager_id, pfe$pf_system_error,
            'OSP$SYSTEM_ERROR test.', local_status);
      osp$system_error ('osp$system_error test.', ^local_status);
    = 2 =
      condition.selector := pmc$system_conditions;
      condition.system_conditions := $pmt$system_conditions [pmc$access_violation];
      psa := #PREVIOUS_SAVE_AREA ();
      pmp$test_condition_handler (condition, psa, local_status);
    = 3 =
      condition.selector := pmc$system_conditions;
      condition.system_conditions := $pmt$system_conditions [pmc$instruction_specification];
      psa := #PREVIOUS_SAVE_AREA ();
      pmp$test_condition_handler (condition, psa, local_status);
    = 4 =
      condition.selector := pmc$system_conditions;
      condition.system_conditions := $pmt$system_conditions [pmc$address_specification];
      psa := #PREVIOUS_SAVE_AREA ();
      pmp$test_condition_handler (condition, psa, local_status);
    = 5 =
      condition.selector := pmc$system_conditions;
      condition.system_conditions := $pmt$system_conditions [pmc$invalid_segment_ring_0];
      psa := #PREVIOUS_SAVE_AREA ();
      pmp$test_condition_handler (condition, psa, local_status);
    = 6 =
      condition.selector := pmc$system_conditions;
      condition.system_conditions := $pmt$system_conditions [pmc$divide_fault];
      psa := #PREVIOUS_SAVE_AREA ();
      pmp$test_condition_handler (condition, psa, local_status);
    = 7 =
      condition.selector := pmc$block_exit_processing;
      condition.reason := $pmt$block_exit_reason [pmc$block_exit];
      psa := #PREVIOUS_SAVE_AREA ();
      pmp$test_condition_handler (condition, psa, local_status);
    = 8 =
      condition.selector := pmc$block_exit_processing;
      condition.reason := $pmt$block_exit_reason [pmc$program_termination];
      psa := #PREVIOUS_SAVE_AREA ();
      pmp$test_condition_handler (condition, psa, local_status);
    = 9 =
      condition.selector := pmc$block_exit_processing;
      condition.reason := $pmt$block_exit_reason [pmc$program_abort];
      psa := #PREVIOUS_SAVE_AREA ();
      pmp$test_condition_handler (condition, psa, local_status);
    = 10 =
      condition.selector := mmc$segment_access_condition;
      condition.segment_access_condition.identifier := mmc$sac_read_beyond_eoi;
      psa := #PREVIOUS_SAVE_AREA ();
      pmp$test_condition_handler (condition, psa, local_status);
    = 11 =
      condition.selector := mmc$segment_access_condition;
      condition.segment_access_condition.identifier := mmc$sac_segment_access_error;
      psa := #PREVIOUS_SAVE_AREA ();
      pmp$test_condition_handler (condition, psa, local_status);
    = 12 =
      condition.selector := mmc$segment_access_condition;
      condition.segment_access_condition.identifier := mmc$sac_ring_violation;
      psa := #PREVIOUS_SAVE_AREA ();
      pmp$test_condition_handler (condition, psa, local_status);
    = 13 =
      RETURN;
    = 14 =
      p_obj1 := p_obj2;
    = 15 =
      ;
    ELSE
    CASEND;

  PROCEND pfp$test_condition_handler;

*copyc osp$set_status_abnormal
*copyc pft$physical_object
*copyc osp$system_error
*copyc pfe$error_condition_codes
*copyc pmp$test_condition_handler

  VAR
    osv$debug: [XREF] array [0..15] of integer;
