?? NEWTITLE := '~~~~~   common deck DSI$DEADSTART_UTILITIES', EJECT ??

  TYPE
    error_codes = (
{} no_pp_available,
{} directory_too_small_for_pp_lib,
{} pp_too_large,
{} deadstrt_level_used_was_unknown,
{} nosve_down,
{} attempted_to_ds_a_running_nosve,
{} pp_illegally_assigned_to_nve,
{} unknown_deadstrt_tape_header_id,
{} nosve_boot_progs_not_installed,
{} insufficient_memory_load_core,
{} error_dumping_nos_ve,
{} chosen_memory_less_then_nve_min,
{} unable_to_obtain_request_memory,
{} error_in_linking_data_to_nosve,
{} ssr_image_not_found,
{} incorrect_ssr_set_operation,
{} ssr_element_was_too_large,
{} incorrect_nve_request,
{} cant_request_tape_pos_recovery,
{} request_tape_position_unknown,
{} controlware_buffer_too_small,
{} invalid_ssr,
{} fatal_170_error,
{} ok,
{} ve_not_enabled_in_cmrdeck),
    error_types = (fatal_error, checkpoint_error, warning);

?? SKIP := 3 ??

  VAR
    r1g_error_flag: 0 .. 77(8),
    ds_error_messages: [STATIC] array [error_codes] of string (40) := [
{} 'NO PP AVAILABLE.                        ',
{} 'DIRECTORY TOO SMALL FOR PP LIBRARY.     ',
{} 'PP TOO LARGE.                           ',
{} 'DEADSTART LEVEL USED WAS UNKNOWN.       ',
{} 'NOS/VE DOWN.                            ',
{} 'ATTEMPTED TO DEADSTART A RUNNING NOSVE. ',
{} 'PP ILLEGALLY ASSIGNED TO NVE.           ',
{} 'UNKNOWN DEADSTART TAPE HEADER ID.       ',
{} 'NOS/VE BOOT PROGRAMS NOT INSTALLED.     ',
{} 'INSUFFICIENT MEMORY TO LOAD SYSTEM CORE.',
{} 'ERROR DUMPING NOS/VE, TRY AGAIN.        ',
{} 'CHOSEN MEMORY WAS LESS THEN NVE MINIMUM.',
{} 'UNABLE TO OBTAIN REQUESTED MEMORY.      ',
{} 'ERROR OCCURRED IN LINKING DATA TO NOSVE.',
{} 'SSR IMAGE NOT FOUND.                    ',
{} 'INCORRECT SSR SET OPERATION.            ',
{} 'SSR ELEMENT WAS TOO LARGE.              ',
{} 'INCORRECT NVE REQUEST.                  ',
{} 'CANNOT REQUEST TAPE POSITION IN RECOVERY',
{} 'REQUEST FOR TAPE POSITION WAS UNKNOWN.  ',
{} 'CONTROLWARE BUFFER IN SSR TOO SMALL.    ',
{} 'SSR IMAGE IS DAMAGED OR INVALID.        ',
{} 'FATAL 170 ERROR, SEE DAYFILE FOR DETAILS',
{} 'OK, NO ERROR.                           ',
{} 'VE NOT ENABLED IN CMRDECK.              '];

?? SKIP := 3 ??
{**********************************************************

{ PURPOSE:
{   Record the error in the dayfile and abort if fatal error.

  PROCEDURE error_processor
    (    error_code: error_codes;
         error_type: error_types);

{  Record error in dayfile.

    dyfstring (ds_error_messages [error_code], 0);

{  Terminate dsc job - step on fatal error.

    IF error_type <> warning THEN
      jcr.global_error_flag := 77(8); {deadstart error
      jcr.global_r1 := $INTEGER (error_code);
      jcrset;
      endprgr; {exit with error
    IFEND;

  PROCEND error_processor;
?? OLDTITLE ??
