COMPILATION LISTING OF SEGMENT salv_err_msg Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1114.69_Tue_mdt Options: optimize list 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 /****^ HISTORY COMMENTS: 14* 1) change(76-01-01,Kobziar), approve(), audit(), install(): 15* Pre-hcom comments. 16* written 1-76 by Kobziar 17* Rewritten 7/77 by S.E. Barr 18* Modified 16 August, 1981, W. Olin Sibert, to eliminate use of 19* online_salvager_output 20* Modified July 1982 by J. Bongiovanni to eliminate salv_data$console 21* Modified 831111 BIM to not drop 4,5 on the floor 22* 2) change(86-11-11,Lippard), approve(86-12-08,MCR7590), 23* audit(87-04-16,Dickson), install(87-04-28,MR12.1-1028): 24* Stop going OOSB when given a standard (error_table_) error code. 25* END HISTORY COMMENTS */ 26 27 28 /* format: style4 */ 29 30 salv_err_msg: proc (a_severity); 31 32 33 /* * Logs messages in the syserr log. Translates salvager severity to 34* * syserr severity. 35* * 36* * Salv Sys Interpretation 37* * --------------------------- 38* * 1 CRASH After printing the message on the operator's console, crash the system. 39* * 2 ANNOUNCE Print message on salvager output and operators's console. 40* * 4,5 LOG Print on console if log is full, else just log. 41* * 6 JUST_LOG As the man said ... 42**/ 43 44 /* PARAMETERS */ 45 46 dcl a_severity fixed bin; /* severity level for message */ 47 dcl a_path char (*); /* pathname assoc. with message */ 48 dcl arg_msg_ptr ptr unal; /* Multics standard error code */ 49 50 /* AUTOMATIC */ 51 52 dcl severity fixed bin; /* copy of severity level */ 53 dcl syserr_severity fixed bin; /* correct syserr message code */ 54 dcl code fixed bin (35); 55 dcl have_code bit (1) aligned; /* ON, for code entry point. */ 56 dcl path char (170); /* : */ 57 dcl line_len fixed bin; /* number of characters in message */ 58 dcl line char (303); /* 168 (path) +2 (:nl) +132 (message) +1 (nl) */ 59 dcl start fixed bin; /* number of first argument for formline_ */ 60 dcl msg_ptr ptr unal; /* packed ptr into error table */ 61 dcl msg_len fixed bin; /* number of characters remaining in line for message. */ 62 63 dcl (addr, length, substr, rtrim, min, ptr, rel, unspec) builtin; 64 65 dcl 1 et aligned based (msg_ptr), /* An error table message */ 66 2 len fixed bin (8) unal, /* Length of the message */ 67 2 msg char (et.len) unal; /* The message */ 68 69 /* EXTERNAL */ 70 71 dcl error_table_$ fixed bin ext; 72 dcl syserr entry options (variable); 73 dcl formline_ entry (fixed bin, fixed bin, ptr, fixed bin, fixed bin); 74 dcl utility_print entry (fixed bin, char (*)); 75 76 /* CONSTANTS */ 77 78 dcl COLON_NEW_LINE char (2) int static options (constant) init (": 79 "); 80 dcl NEW_LINE int static options (constant) char (1) init (" 81 "); 82 83 /* INTERNAL STATIC */ 84 85 dcl sys_last_path char (170) int static init (""); /* Last path printed on console. */ 86 87 /* */ 88 start = 2; 89 path = ""; 90 have_code = "0"b; 91 goto START; 92 93 94 path: entry (a_severity, a_path); 95 96 start = 3; 97 path = a_path; 98 have_code = "0"b; 99 goto START; 100 101 102 code: entry (a_severity, a_path, arg_msg_ptr); 103 104 start = 4; 105 path = a_path; 106 have_code = (unspec (arg_msg_ptr) ^= "0"b); 107 goto START; 108 109 START: 110 111 /* Format line and path */ 112 113 severity = a_severity; 114 line_len = length (line); 115 call formline_ (start, start + 1, addr (line), line_len, (0)); 116 117 /* Get error table message. */ 118 119 if have_code then do; 120 msg_ptr = arg_msg_ptr; 121 if baseno (msg_ptr) = "007777"b3 then msg_ptr = ptr (addr (error_table_$), rel (msg_ptr)); 122 msg_len = length (line) - line_len; 123 if msg_len > 0 then do; 124 substr (line, line_len + 1, msg_len) = et.msg; 125 line_len = line_len + et.len; 126 end; 127 end; 128 line_len = min (line_len + 1, length (line)); /* Make sure there is space for new-line */ 129 substr (line, line_len, 1) = NEW_LINE; 130 131 if path ^= "" then path = rtrim (path) || COLON_NEW_LINE; 132 133 /* Online salvage already has pathname */ 134 135 if severity < 0 then severity = 0; 136 if severity > 6 then severity = 6; 137 if salv_data$rpv then if severity < 4 then severity = 2; 138 139 go to SALV_SEVERITY (severity); 140 141 SALV_SEVERITY (1): 142 syserr_severity = CRASH; 143 go to SYSERR; 144 SALV_SEVERITY (3): /* supposedly unused */ 145 SALV_SEVERITY (0): 146 SALV_SEVERITY (2): 147 syserr_severity = ANNOUNCE; 148 go to SYSERR; 149 SALV_SEVERITY (4): 150 SALV_SEVERITY (5): 151 syserr_severity = LOG; 152 go to SYSERR; 153 SALV_SEVERITY (6): 154 syserr_severity = JUST_LOG; 155 156 SYSERR: 157 if path ^= "" & path ^= sys_last_path then do; 158 call syserr (syserr_severity, "^a^a", path, substr (line, 1, line_len - 1)); 159 sys_last_path = path; 160 end; 161 else call syserr (syserr_severity, substr (line, 1, line_len - 1)); 162 163 return; 164 165 /* BEGIN INCLUDE FILE ... salv_data.incl.pl1 ... last modified July 1982 */ 1 2 1 3 dcl salv_data$debug bit (1) aligned external; /* ON, For additional debugging messages. */ 1 4 dcl salv_data$dump bit (1) aligned external; /* ON, to dump bad directories and VTOC entries. */ 1 5 dcl salv_data$lock bit (36) external aligned; /* lock to prevent more than one process from using salv_data. */ 1 6 dcl salv_data$on_line bit (1) aligned external; /* ON, for online salvage. */ 1 7 dcl salv_data$print_path bit (1) aligned external; /* ON, if pathname of each directory should be printed. */ 1 8 dcl salv_data$printer_delay fixed bin aligned external; /* Number of minutes to wait for a not ready printer. */ 1 9 dcl salv_data$rpv bit (1) aligned external; /* ON, for root physical volume salvage. */ 1 10 dcl salv_data$vol_read_ahead fixed bin external; 1 11 1 12 1 13 /* END INCLUDE FILE ... salv_data.incl.pl1 ... */ 165 166 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 2 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 2 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 2 4 2 5 /* This include file has an ALM version. Keep 'em in sync! */ 2 6 2 7 dcl ( 2 8 2 9 /* The following constants define the message action codes. This indicates 2 10*how a message is to be handled. */ 2 11 2 12 SYSERR_CRASH_SYSTEM init (1), 2 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 2 14 2 15 SYSERR_TERMINATE_PROCESS init (2), 2 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 2 17 2 18 SYSERR_PRINT_WITH_ALARM init (3), 2 19 BEEP init (3), /* Beep and print the message on the console. */ 2 20 2 21 SYSERR_PRINT_ON_CONSOLE init (0), 2 22 ANNOUNCE init (0), /* Just print the message on the console. */ 2 23 2 24 SYSERR_LOG_OR_PRINT init (4), 2 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 2 26 2 27 SYSERR_LOG_OR_DISCARD init (5), 2 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 2 29 2 30 2 31 /* The following constants are added to the normal severities to indicate 2 32*different sorting classes of messages. */ 2 33 2 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 2 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 2 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 2 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 2 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 2 39 ) fixed bin internal static options (constant); 2 40 2 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 166 167 168 end salv_err_msg; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1114.6 salv_err_msg.pl1 >udd>sm>ds>w>ml>salv_err_msg.pl1 165 1 10/25/82 1115.6 salv_data.incl.pl1 >ldd>incl>salv_data.incl.pl1 166 2 05/17/85 0715.7 syserr_constants.incl.pl1 >ldd>incl>syserr_constants.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ANNOUNCE constant fixed bin(17,0) initial dcl 2-7 ref 144 COLON_NEW_LINE 000425 constant char(2) initial packed unaligned dcl 78 ref 131 CRASH constant fixed bin(17,0) initial dcl 2-7 ref 141 JUST_LOG constant fixed bin(17,0) initial dcl 2-7 ref 153 LOG constant fixed bin(17,0) initial dcl 2-7 ref 149 NEW_LINE constant char(1) initial packed unaligned dcl 80 ref 129 a_path parameter char packed unaligned dcl 47 ref 94 97 102 105 a_severity parameter fixed bin(17,0) dcl 46 ref 30 94 102 109 addr builtin function dcl 63 ref 115 115 121 arg_msg_ptr parameter pointer packed unaligned dcl 48 ref 102 106 120 error_table_$ 000064 external static fixed bin(17,0) dcl 71 set ref 121 et based structure level 1 dcl 65 formline_ 000070 constant entry external dcl 73 ref 115 have_code 000102 automatic bit(1) dcl 55 set ref 90* 98* 106* 119 len based fixed bin(8,0) level 2 packed packed unaligned dcl 65 ref 124 125 length builtin function dcl 63 ref 114 122 128 line 000157 automatic char(303) packed unaligned dcl 58 set ref 114 115 115 122 124* 128 129* 158 158 161 161 line_len 000156 automatic fixed bin(17,0) dcl 57 set ref 114* 115* 122 124 125* 125 128* 128 129 158 158 161 161 min builtin function dcl 63 ref 128 msg 0(09) based char level 2 packed packed unaligned dcl 65 ref 124 msg_len 000275 automatic fixed bin(17,0) dcl 61 set ref 122* 123 124 msg_ptr 000274 automatic pointer packed unaligned dcl 60 set ref 120* 121 121* 121 124 124 125 path 000103 automatic char(170) packed unaligned dcl 56 set ref 89* 97* 105* 131 131* 131 156 156 158* 159 ptr builtin function dcl 63 ref 121 rel builtin function dcl 63 ref 121 rtrim builtin function dcl 63 ref 131 salv_data$rpv 000072 external static bit(1) dcl 1-9 ref 137 severity 000100 automatic fixed bin(17,0) dcl 52 set ref 109* 135 135* 136 136* 137 137* 139 start 000273 automatic fixed bin(17,0) dcl 59 set ref 88* 96* 104* 115* 115 substr builtin function dcl 63 set ref 124* 129* 158 158 161 161 sys_last_path 000010 internal static char(170) initial packed unaligned dcl 85 set ref 156 159* syserr 000066 constant entry external dcl 72 ref 158 161 syserr_severity 000101 automatic fixed bin(17,0) dcl 53 set ref 141* 144* 149* 153* 158* 161* unspec builtin function dcl 63 ref 106 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BEEP internal static fixed bin(17,0) initial dcl 2-7 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 2-7 SYSERR_CRASH_SYSTEM internal static fixed bin(17,0) initial dcl 2-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 2-7 SYSERR_LOG_OR_PRINT internal static fixed bin(17,0) initial dcl 2-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 2-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 2-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 2-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 2-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 2-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 2-7 SYSERR_UNSUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 2-7 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 2-7 code automatic fixed bin(35,0) dcl 54 salv_data$debug external static bit(1) dcl 1-3 salv_data$dump external static bit(1) dcl 1-4 salv_data$lock external static bit(36) dcl 1-5 salv_data$on_line external static bit(1) dcl 1-6 salv_data$print_path external static bit(1) dcl 1-7 salv_data$printer_delay external static fixed bin(17,0) dcl 1-8 salv_data$vol_read_ahead external static fixed bin(17,0) dcl 1-10 utility_print 000000 constant entry external dcl 74 NAMES DECLARED BY EXPLICIT CONTEXT. SALV_SEVERITY 000000 constant label array(0:6) dcl 141 ref 139 START 000124 constant label dcl 109 ref 91 99 107 SYSERR 000321 constant label dcl 156 ref 143 148 152 code 000072 constant entry external dcl 102 path 000041 constant entry external dcl 94 salv_err_msg 000021 constant entry external dcl 30 NAME DECLARED BY CONTEXT OR IMPLICATION. baseno builtin function ref 121 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 516 612 426 526 Length 1016 426 74 170 70 54 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME salv_err_msg 230 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 sys_last_path salv_err_msg STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME salv_err_msg 000100 severity salv_err_msg 000101 syserr_severity salv_err_msg 000102 have_code salv_err_msg 000103 path salv_err_msg 000156 line_len salv_err_msg 000157 line salv_err_msg 000273 start salv_err_msg 000274 msg_ptr salv_err_msg 000275 msg_len salv_err_msg THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. formline_ syserr THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$ salv_data$rpv CONSTANTS 000425 aa 072 012 000 000 : 000007 aa 524000000000 000010 aa 526000000252 000011 aa 524000000004 000012 aa 136 141 136 141 ^a^a 000013 aa 466000000000 000014 aa 526077777777 000015 aa 404000000021 LABEL ARRAYS 000000 aa 000311 7100 04 tra 201,ic 000311 000001 aa 000305 7100 04 tra 197,ic 000306 000002 aa 000307 7100 04 tra 199,ic 000311 000003 aa 000306 7100 04 tra 198,ic 000311 000004 aa 000310 7100 04 tra 200,ic 000314 000005 aa 000307 7100 04 tra 199,ic 000314 000006 aa 000311 7100 04 tra 201,ic 000317 BEGIN PROCEDURE salv_err_msg ENTRY TO salv_err_msg STATEMENT 1 ON LINE 30 salv_err_msg: proc (a_severity); 000016 at 000001000015 000017 ta 000016000000 000020 da 000052300000 000021 aa 000360 6270 00 eax7 240 000022 aa 7 00034 3521 20 epp2 pr7|28,* 000023 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000024 aa 000002000000 000025 aa 000000000000 STATEMENT 1 ON LINE 88 start = 2; 000026 aa 000002 2360 07 ldq 2,dl 000027 aa 6 00273 7561 00 stq pr6|187 start STATEMENT 1 ON LINE 89 path = ""; 000030 aa 040 100 100 400 mlr (),(pr),fill(040) 000031 aa 000000 00 0000 desc9a 0,0 000032 aa 6 00103 00 0252 desc9a pr6|67,170 path STATEMENT 1 ON LINE 90 have_code = "0"b; 000033 aa 6 00102 4501 00 stz pr6|66 have_code STATEMENT 1 ON LINE 91 goto START; 000034 aa 000070 7100 04 tra 56,ic 000124 ENTRY TO path STATEMENT 1 ON LINE 94 path: entry (a_severity, a_path); 000035 at 000002000015 000036 ta 000014000000 000037 ta 000035000000 000040 da 000057300000 000041 aa 000360 6270 00 eax7 240 000042 aa 7 00034 3521 20 epp2 pr7|28,* 000043 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 000044 aa 000004000000 000045 aa 000000000000 000046 aa 6 00042 3735 20 epp7 pr6|34,* 000047 aa 7 00002 2361 20 ldq pr7|2,* 000050 aa 000002 6040 04 tmi 2,ic 000052 000051 aa 777777 3760 07 anq 262143,dl 000052 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000053 aa 6 00276 7561 00 stq pr6|190 STATEMENT 1 ON LINE 96 start = 3; 000054 aa 000003 2360 07 ldq 3,dl 000055 aa 6 00273 7561 00 stq pr6|187 start STATEMENT 1 ON LINE 97 path = a_path; 000056 aa 6 00032 3735 20 epp7 pr6|26,* 000057 aa 7 00004 3715 20 epp5 pr7|4,* 000060 aa 6 00276 2351 00 lda pr6|190 000061 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 000062 aa 5 00000 00 0005 desc9a pr5|0,al a_path 000063 aa 6 00103 00 0252 desc9a pr6|67,170 path STATEMENT 1 ON LINE 98 have_code = "0"b; 000064 aa 6 00102 4501 00 stz pr6|66 have_code STATEMENT 1 ON LINE 99 goto START; 000065 aa 000037 7100 04 tra 31,ic 000124 ENTRY TO code STATEMENT 1 ON LINE 102 code: entry (a_severity, a_path, arg_msg_ptr); 000066 at 000003000015 000067 tt 000014000013 000070 ta 000066000000 000071 da 000064300000 000072 aa 000360 6270 00 eax7 240 000073 aa 7 00034 3521 20 epp2 pr7|28,* 000074 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 000075 aa 000006000000 000076 aa 000000000000 000077 aa 6 00042 3735 20 epp7 pr6|34,* 000100 aa 7 00002 2361 20 ldq pr7|2,* 000101 aa 000002 6040 04 tmi 2,ic 000103 000102 aa 777777 3760 07 anq 262143,dl 000103 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000104 aa 6 00276 7561 00 stq pr6|190 STATEMENT 1 ON LINE 104 start = 4; 000105 aa 000004 2360 07 ldq 4,dl 000106 aa 6 00273 7561 00 stq pr6|187 start STATEMENT 1 ON LINE 105 path = a_path; 000107 aa 6 00032 3735 20 epp7 pr6|26,* 000110 aa 7 00004 3715 20 epp5 pr7|4,* 000111 aa 6 00276 2351 00 lda pr6|190 000112 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 000113 aa 5 00000 00 0005 desc9a pr5|0,al a_path 000114 aa 6 00103 00 0252 desc9a pr6|67,170 path STATEMENT 1 ON LINE 106 have_code = (unspec (arg_msg_ptr) ^= "0"b); 000115 aa 7 00006 3535 20 epp3 pr7|6,* 000116 aa 000 000 066 500 cmpb (pr),(),fill(0) 000117 aa 3 00000 00 0044 descb pr3|0,36 000120 aa 000000 00 0000 descb 0,0 000121 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 000122 aa 6 00102 7551 00 sta pr6|66 have_code STATEMENT 1 ON LINE 107 goto START; 000123 aa 000001 7100 04 tra 1,ic 000124 STATEMENT 1 ON LINE 109 START: /* Format line and path */ severity = a_severity; 000124 aa 6 00032 3735 20 epp7 pr6|26,* 000125 aa 7 00002 2361 20 ldq pr7|2,* a_severity 000126 aa 6 00100 7561 00 stq pr6|64 severity STATEMENT 1 ON LINE 114 line_len = length (line); 000127 aa 000457 2360 07 ldq 303,dl 000130 aa 6 00156 7561 00 stq pr6|110 line_len STATEMENT 1 ON LINE 115 call formline_ (start, start + 1, addr (line), line_len, (0)); 000131 aa 6 00273 2361 00 ldq pr6|187 start 000132 aa 000001 0760 07 adq 1,dl 000133 aa 6 00277 7561 00 stq pr6|191 000134 aa 6 00157 3715 00 epp5 pr6|111 line 000135 aa 6 00300 6515 00 spri5 pr6|192 000136 aa 6 00302 4501 00 stz pr6|194 000137 aa 6 00273 3521 00 epp2 pr6|187 start 000140 aa 6 00306 2521 00 spri2 pr6|198 000141 aa 6 00277 3521 00 epp2 pr6|191 000142 aa 6 00310 2521 00 spri2 pr6|200 000143 aa 6 00300 3521 00 epp2 pr6|192 000144 aa 6 00312 2521 00 spri2 pr6|202 000145 aa 6 00156 3521 00 epp2 pr6|110 line_len 000146 aa 6 00314 2521 00 spri2 pr6|204 000147 aa 6 00302 3521 00 epp2 pr6|194 000150 aa 6 00316 2521 00 spri2 pr6|206 000151 aa 6 00304 6211 00 eax1 pr6|196 000152 aa 024000 4310 07 fld 10240,dl 000153 aa 6 00044 3701 20 epp4 pr6|36,* 000154 la 4 00070 3521 20 epp2 pr4|56,* formline_ 000155 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 119 if have_code then do; 000156 aa 6 00102 2351 00 lda pr6|66 have_code 000157 aa 000043 6000 04 tze 35,ic 000222 STATEMENT 1 ON LINE 120 msg_ptr = arg_msg_ptr; 000160 aa 6 00032 3735 20 epp7 pr6|26,* 000161 aa 7 00006 3715 20 epp5 pr7|6,* 000162 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 000163 aa 5 00000 00 0044 descb pr5|0,36 arg_msg_ptr 000164 aa 6 00056 00 0044 descb pr6|46,36 000165 aa 6 00056 2351 00 lda pr6|46 000166 aa 000044 7730 00 lrl 36 000167 aa 6 00274 7561 00 stq pr6|188 msg_ptr STATEMENT 1 ON LINE 121 if baseno (msg_ptr) = "007777"b3 then msg_ptr = ptr (addr (error_table_$), rel (msg_ptr)); 000170 aa 000044 7370 00 lls 36 000171 aa 007777 3750 03 ana 4095,du 000172 aa 007777 1150 03 cmpa 4095,du 000173 aa 000010 6010 04 tnz 8,ic 000203 000174 aa 6 00044 3701 20 epp4 pr6|36,* 000175 la 4 00064 3535 20 epp3 pr4|52,* error_table_$ 000176 aa 6 00274 2351 00 lda pr6|188 msg_ptr 000177 aa 000022 7350 00 als 18 000200 aa 3 00000 3521 00 epp2 pr3|0 000201 aa 000000 3120 01 eawp2 0,au 000202 aa 6 00274 5421 00 sprp2 pr6|188 msg_ptr 000203 aa 6 00300 2521 00 spri2 pr6|192 000204 aa 6 00320 2535 00 spri3 pr6|208 STATEMENT 1 ON LINE 122 msg_len = length (line) - line_len; 000205 aa 000457 2360 07 ldq 303,dl 000206 aa 6 00156 1761 00 sbq pr6|110 line_len 000207 aa 6 00275 7561 00 stq pr6|189 msg_len STATEMENT 1 ON LINE 123 if msg_len > 0 then do; 000210 aa 000012 6044 04 tmoz 10,ic 000222 STATEMENT 1 ON LINE 124 substr (line, line_len + 1, msg_len) = et.msg; 000211 aa 6 00274 7631 00 lprp3 pr6|188 msg_ptr 000212 aa 3 00000 2351 00 lda pr3|0 et.len 000213 aa 000077 7330 00 lrs 63 000214 aa 6 00156 7271 00 lxl7 pr6|110 line_len 000215 aa 6 00275 7261 00 lxl6 pr6|189 msg_len 000216 aa 040 157 100 540 mlr (pr,rl),(pr,rl,x7),fill(040) 000217 aa 3 00000 20 0006 desc9a pr3|0(1),ql et.msg 000220 aa 6 00157 00 0016 desc9a pr6|111,x6 line STATEMENT 1 ON LINE 125 line_len = line_len + et.len; 000221 aa 6 00156 0561 00 asq pr6|110 line_len STATEMENT 1 ON LINE 126 end; STATEMENT 1 ON LINE 127 end; STATEMENT 1 ON LINE 128 line_len = min (line_len + 1, length (line)); 000222 aa 6 00156 2361 00 ldq pr6|110 line_len 000223 aa 000001 0760 07 adq 1,dl 000224 aa 000457 1160 07 cmpq 303,dl 000225 aa 000002 6040 04 tmi 2,ic 000227 000226 aa 000457 2360 07 ldq 303,dl 000227 aa 6 00156 7561 00 stq pr6|110 line_len STATEMENT 1 ON LINE 129 substr (line, line_len, 1) = NEW_LINE; 000230 aa 012 106 100 400 mlr (),(pr,ql),fill(012) 000231 aa 000000 00 0000 desc9a 0,0 000232 aa 6 00156 60 0001 desc9a pr6|110(3),1 line STATEMENT 1 ON LINE 131 if path ^= "" then path = rtrim (path) || COLON_NEW_LINE; 000233 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 000234 aa 6 00103 00 0252 desc9a pr6|67,170 path 000235 aa 000173 00 0000 desc9a 123,0 000426 = 000007000000 000236 aa 000027 6000 04 tze 23,ic 000265 000237 aa 000 000 165 500 tctr (pr) 000240 aa 6 00103 00 0252 desc9a pr6|67,170 path 000241 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 000242 aa 6 00056 0001 00 arg pr6|46 000243 aa 6 00056 2361 00 ldq pr6|46 000244 aa 0 00242 3761 00 anq pr0|162 = 000777777777 000245 aa 6 00302 7561 00 stq pr6|194 000246 aa 000252 2360 07 ldq 170,dl 000247 aa 6 00302 1761 00 sbq pr6|194 000250 aa 6 00302 7561 00 stq pr6|194 000251 aa 000002 0760 07 adq 2,dl 000252 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 000253 aa 6 00302 2351 00 lda pr6|194 000254 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000255 aa 6 00103 00 0005 desc9a pr6|67,al path 000256 aa 2 00000 00 0005 desc9a pr2|0,al 000257 aa 040 105 100 404 mlr (ic),(pr,al),fill(040) 000260 aa 000146 00 0002 desc9a 102,2 000425 = 072012000000 000261 aa 2 00000 00 0002 desc9a pr2|0,2 000262 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 000263 aa 2 00000 00 0006 desc9a pr2|0,ql 000264 aa 6 00103 00 0252 desc9a pr6|67,170 path STATEMENT 1 ON LINE 135 if severity < 0 then severity = 0; 000265 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000266 aa 6 00100 2361 00 ldq pr6|64 severity 000267 aa 000002 6050 04 tpl 2,ic 000271 000270 aa 6 00100 4501 00 stz pr6|64 severity STATEMENT 1 ON LINE 136 if severity > 6 then severity = 6; 000271 aa 6 00100 2361 00 ldq pr6|64 severity 000272 aa 000006 1160 07 cmpq 6,dl 000273 aa 000003 6044 04 tmoz 3,ic 000276 000274 aa 000006 2360 07 ldq 6,dl 000275 aa 6 00100 7561 00 stq pr6|64 severity STATEMENT 1 ON LINE 137 if salv_data$rpv then if severity < 4 then severity = 2; 000276 aa 6 00044 3701 20 epp4 pr6|36,* 000277 la 4 00072 2351 20 lda pr4|58,* salv_data$rpv 000300 aa 000005 6000 04 tze 5,ic 000305 000301 aa 000004 1160 07 cmpq 4,dl 000302 aa 000003 6050 04 tpl 3,ic 000305 000303 aa 000002 2360 07 ldq 2,dl 000304 aa 6 00100 7561 00 stq pr6|64 severity STATEMENT 1 ON LINE 139 go to SALV_SEVERITY (severity); 000305 ta 000000 7100 06 tra 0,ql STATEMENT 1 ON LINE 141 SALV_SEVERITY (1): syserr_severity = CRASH; 000306 aa 000001 2360 07 ldq 1,dl 000307 aa 6 00101 7561 00 stq pr6|65 syserr_severity STATEMENT 1 ON LINE 143 go to SYSERR; 000310 aa 000011 7100 04 tra 9,ic 000321 STATEMENT 1 ON LINE 144 SALV_SEVERITY (3): /* supposedly unused */ SALV_SEVERITY (0): SALV_SEVERITY (2): syserr_severity = ANNOUNCE; 000311 aa 000000 2360 07 ldq 0,dl 000312 aa 6 00101 7561 00 stq pr6|65 syserr_severity STATEMENT 1 ON LINE 148 go to SYSERR; 000313 aa 000006 7100 04 tra 6,ic 000321 STATEMENT 1 ON LINE 149 SALV_SEVERITY (4): SALV_SEVERITY (5): syserr_severity = LOG; 000314 aa 000004 2360 07 ldq 4,dl 000315 aa 6 00101 7561 00 stq pr6|65 syserr_severity STATEMENT 1 ON LINE 152 go to SYSERR; 000316 aa 000003 7100 04 tra 3,ic 000321 STATEMENT 1 ON LINE 153 SALV_SEVERITY (6): syserr_severity = JUST_LOG; 000317 aa 000005 2360 07 ldq 5,dl 000320 aa 6 00101 7561 00 stq pr6|65 syserr_severity STATEMENT 1 ON LINE 156 SYSERR: if path ^= "" & path ^= sys_last_path then do; 000321 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 000322 aa 6 00103 00 0252 desc9a pr6|67,170 path 000323 aa 000105 00 0000 desc9a 69,0 000426 = 000007000000 000324 aa 000052 6000 04 tze 42,ic 000376 000325 aa 040 100 106 500 cmpc (pr),(pr),fill(040) 000326 aa 6 00103 00 0252 desc9a pr6|67,170 path 000327 ia 4 00010 00 0252 desc9a pr4|8,170 sys_last_path 000330 aa 000046 6000 04 tze 38,ic 000376 STATEMENT 1 ON LINE 158 call syserr (syserr_severity, "^a^a", path, substr (line, 1, line_len - 1)); 000331 aa 6 00156 2361 00 ldq pr6|110 line_len 000332 aa 000001 1760 07 sbq 1,dl 000333 aa 6 00277 7561 00 stq pr6|191 000334 aa 524000 2760 03 orq 174080,du 000335 aa 6 00302 7561 00 stq pr6|194 000336 aa 777454 2350 04 lda -212,ic 000012 = 136141136141 000337 aa 6 00303 7551 00 sta pr6|195 000340 aa 6 00277 2361 00 ldq pr6|191 000341 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 000342 aa 6 00334 2521 00 spri2 pr6|220 000343 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000344 aa 6 00157 00 0006 desc9a pr6|111,ql line 000345 aa 2 00000 00 0006 desc9a pr2|0,ql 000346 aa 6 00101 3521 00 epp2 pr6|65 syserr_severity 000347 aa 6 00326 2521 00 spri2 pr6|214 000350 aa 6 00303 3521 00 epp2 pr6|195 000351 aa 6 00330 2521 00 spri2 pr6|216 000352 aa 6 00103 3521 00 epp2 pr6|67 path 000353 aa 6 00332 2521 00 spri2 pr6|218 000354 aa 777441 3520 04 epp2 -223,ic 000015 = 404000000021 000355 aa 6 00336 2521 00 spri2 pr6|222 000356 aa 777433 3520 04 epp2 -229,ic 000011 = 524000000004 000357 aa 6 00340 2521 00 spri2 pr6|224 000360 aa 777430 3520 04 epp2 -232,ic 000010 = 526000000252 000361 aa 6 00342 2521 00 spri2 pr6|226 000362 aa 6 00302 3521 00 epp2 pr6|194 000363 aa 6 00344 2521 00 spri2 pr6|228 000364 aa 6 00324 6211 00 eax1 pr6|212 000365 aa 020000 4310 07 fld 8192,dl 000366 la 4 00066 3521 20 epp2 pr4|54,* syserr 000367 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 159 sys_last_path = path; 000370 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000371 aa 6 00044 3701 20 epp4 pr6|36,* 000372 aa 000 100 100 500 mlr (pr),(pr),fill(000) 000373 aa 6 00103 00 0254 desc9a pr6|67,172 path 000374 ia 4 00010 00 0254 desc9a pr4|8,172 sys_last_path STATEMENT 1 ON LINE 160 end; 000375 aa 000026 7100 04 tra 22,ic 000423 STATEMENT 1 ON LINE 161 else call syserr (syserr_severity, substr (line, 1, line_len - 1)); 000376 aa 6 00156 2361 00 ldq pr6|110 line_len 000377 aa 000001 1760 07 sbq 1,dl 000400 aa 6 00277 7561 00 stq pr6|191 000401 aa 524000 2760 03 orq 174080,du 000402 aa 6 00302 7561 00 stq pr6|194 000403 aa 6 00277 2361 00 ldq pr6|191 000404 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 000405 aa 6 00310 2521 00 spri2 pr6|200 000406 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000407 aa 6 00157 00 0006 desc9a pr6|111,ql line 000410 aa 2 00000 00 0006 desc9a pr2|0,ql 000411 aa 6 00101 3521 00 epp2 pr6|65 syserr_severity 000412 aa 6 00306 2521 00 spri2 pr6|198 000413 aa 777402 3520 04 epp2 -254,ic 000015 = 404000000021 000414 aa 6 00312 2521 00 spri2 pr6|202 000415 aa 6 00302 3521 00 epp2 pr6|194 000416 aa 6 00314 2521 00 spri2 pr6|204 000417 aa 6 00304 6211 00 eax1 pr6|196 000420 aa 010000 4310 07 fld 4096,dl 000421 la 4 00066 3521 20 epp2 pr4|54,* syserr 000422 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 163 return; 000423 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000424 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 168 end salv_err_msg; END PROCEDURE salv_err_msg ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved