COMPILATION LISTING OF SEGMENT ws_trace_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/07/87 1501.0 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 6* * * 7* *********************************************************** */ 8 9 /****^ HISTORY COMMENTS: 10* 1) change(86-12-05,RBarstad), approve(86-12-11,MCR7585), 11* audit(87-06-05,Gilcrease), install(87-08-07,MR12.1-1075): 12* Created. 13* END HISTORY COMMENTS */ 14 15 /* format: style3,ifthenstmt,indthenelse,^indnoniterdo,^indprocbody,initcol3,dclind5,idind32 */ 16 ws_trace_: 17 proc () options (variable); 18 19 /* ------------------------ DESCRIPTION ---------------------------------- */ 20 21 /****^ VERSION 1.10 22* 23* Trace and debug routine for mowse video support. Allows output 24* normally written to the terminal to be saved to a trace file. 25* Also has entries to set and get the trace and debug settings. 26* 27**/ 28 29 /* ------------------------ PARAMETERS ----------------------------------- */ 30 31 /* ------------------------ AUTOMATIC ------------------------------------ */ 32 33 dcl arg_list_ptr ptr; 34 dcl message char (512) unal; 35 dcl raw_message_length fixed bin (21); 36 dcl message_length fixed bin (21); 37 dcl adj_bit_count fixed bin (35); 38 dcl bit_count fixed bin (24); 39 dcl code fixed bin (35); /* local version of code */ 40 dcl created bit (1) aligned; 41 dcl date_time_ entry (fixed bin (71), char (*)); 42 dcl dir_name char (168); 43 dcl i fixed bin (21); 44 dcl last_char fixed bin (21); 45 dcl lock_chars char (12) aligned; 46 dcl now char (24); 47 dcl process_id fixed bin based (addr (ws_seg.lock)); 48 dcl retval fixed bin (35); 49 dcl ws_io_ptr ptr; 50 51 dcl 01 ws_seg aligned based (ws_io_ptr), 52 02 lock bit (36), 53 02 next_byte fixed bin (21), 54 02 string char (MAX_CHARS); 55 56 /* ------------------------ ENTRIES -------------------------------------- */ 57 58 dcl cu_$arg_list_ptr entry (ptr); 59 dcl ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin (21), bit (1) aligned, 60 bit (1) aligned); 61 62 dcl adjust_bit_count_ entry (char (168), char (32), bit (1) aligned, fixed bin (35), fixed bin (35)); 63 dcl cv_bin_$oct entry (fixed bin, char (12) aligned); 64 dcl get_wdir_ entry () returns (char (168)); 65 dcl hcs_$set_bc_seg entry (ptr, fixed bin (24), fixed bin (35)); 66 dcl initiate_file_$create entry (char (*), char (*), bit (*), ptr, bit (1) aligned, fixed bin (24), 67 fixed bin (35)); 68 dcl set_lock_$lock entry (bit (36) aligned, fixed bin, fixed bin (35)); 69 dcl set_lock_$unlock entry (bit (36) aligned, fixed bin (35)); 70 dcl sub_err_ entry () options (variable); 71 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 72 73 /* ------------------------ EXTERNALS ------------------------------------ */ 74 75 dcl ( 76 error_table_$invalid_lock_reset, 77 error_table_$lock_not_locked, 78 error_table_$locked_by_this_process 79 ) fixed bin (35) ext static; 80 81 /* ------------------------ CONSTANTS ------------------------------------ */ 82 83 dcl ( 84 SEG_NAME char (32) init ("ws_tty_.trace"), 85 MAX_CHARS fixed bin (21) init (1044472), 86 /* 255*1024*4-2*4 */ 87 FUDGE fixed bin init (40), /* 12+1+24+1+2: size of process id+date&time+NL+spaces */ 88 BLANK char (1) init (" "), 89 NL char (1) init (" 90 "), /* new line (line feed) */ 91 WAIT_TIME fixed bin init (10), 92 DATE_LEN fixed bin init (16) 93 ) internal static options (constant); 94 95 96 /* ------------------------ BUILTINS and CONDITIONS ---------------------- */ 97 98 dcl (addr, clock, divide, length, rtrim, substr) 99 builtin; 100 101 102 /* ------------------------ MAIN ENTRY ----------------------------------- */ 103 104 /****^ algorithm 105* 106* set the lock control word 107* 108* write the date and time 109* write the caller name and message 110* write a new line 111* 112* update the seg byte count 113* update the seg bit count 114* 115* unlock the lock 116**/ 117 118 /* get and convert the callers ioa string */ 119 120 message = " "; 121 call cu_$arg_list_ptr (arg_list_ptr); 122 call ioa_$general_rs (arg_list_ptr, 1, 2, message, raw_message_length, "1"b, "0"b); 123 raw_message_length = length (rtrim (message)); 124 message = esc_canon (message, raw_message_length, message_length); 125 126 /* initialize and get the seg */ 127 128 dir_name = get_wdir_ (); 129 130 call initiate_file_$create (dir_name, SEG_NAME, "101"b, ws_io_ptr, created, bit_count, code); 131 if code ^= 0 then goto err_exit; 132 if bit_count = 0 133 then do; /* virgin seg */ 134 bit_count = 72; 135 next_byte = 2; 136 substr (string, 1, 1) = NL; 137 call hcs_$set_bc_seg (ws_io_ptr, bit_count, code); 138 if code ^= 0 then goto err_exit; 139 end; 140 141 142 /* lock */ 143 144 call set_lock_$lock (ws_seg.lock, WAIT_TIME, code); 145 if code ^= 0 146 then if code ^= error_table_$invalid_lock_reset 147 then if code ^= error_table_$locked_by_this_process then goto err_exit; 148 149 /* write the stuff to it */ 150 151 if (next_byte + FUDGE + message_length) > MAX_CHARS 152 then do; 153 next_byte = 2; 154 substr (string, 1, 1) = NL; 155 end; 156 157 /* convert and write lock id */ 158 159 call cv_bin_$oct (process_id, lock_chars); 160 substr (string, next_byte, 12) = lock_chars; 161 next_byte = next_byte + 12; 162 substr (string, next_byte, 1) = BLANK; 163 next_byte = next_byte + 1; 164 165 /* write date and time */ 166 167 call date_time_ (clock (), now); 168 substr (string, next_byte, DATE_LEN) = substr (now, 1, DATE_LEN); 169 next_byte = next_byte + DATE_LEN; 170 substr (string, next_byte, 1) = BLANK; 171 next_byte = next_byte + 1; 172 173 /* write caller's message */ 174 175 substr (string, next_byte, message_length) = substr (message, 1, message_length); 176 next_byte = next_byte + message_length; 177 substr (string, next_byte, 1) = NL; 178 next_byte = next_byte + 1; 179 180 /* set bit count blank to next NL (or end) */ 181 182 call adjust_bit_count_ (dir_name, SEG_NAME, "1"b, adj_bit_count, code); 183 if code ^= 0 then goto unlock_exit; 184 last_char = divide (adj_bit_count - 72, 9, 7); 185 do i = next_byte to last_char while (substr (string, i, 1) ^= NL); 186 substr (string, i, 1) = "$"; 187 end; 188 189 /* unlock and terminate seg */ 190 191 call set_lock_$unlock (ws_seg.lock, code); 192 if code ^= 0 193 then if code ^= error_table_$lock_not_locked then goto err_exit; 194 195 call terminate_file_ (ws_io_ptr, (adj_bit_count), TERM_FILE_TERM, code); 196 if code ^= 0 then goto err_exit; 197 goto exit; 198 199 unlock_exit: 200 ; 201 call set_lock_$unlock (ws_seg.lock, code); 202 goto exit; /* code doesn't matter */ 203 204 err_exit: 205 ; 206 207 call sub_err_ (code, "ws_trace_", ACTION_CAN_RESTART, sub_error_info_ptr, retval, 208 "While attempting to access trace dump file ^a>^a", dir_name, SEG_NAME); 209 210 exit: 211 ; 212 return; 213 214 /* ------------------------ END MAIN ------------------------------------- */ 215 216 esc_canon: 217 proc (in_string, I_length, O_length) returns (char (512)); 218 219 dcl in_string char (*) parm; 220 dcl I_length fixed bin (21) parm; 221 dcl O_length fixed bin (21) parm; 222 223 dcl in_char char (1); 224 dcl out_string char (512); 225 dcl i fixed bin; 226 dcl FIRST_CHAR char (1) int static options (constant) init (" "); 227 dcl LAST_CHAR char (1) int static options (constant) init ("~"); 228 dcl ESC_CHAR char (1) int static options (constant) init ("\"); 229 dcl in_length, 230 out_length fixed bin (21); 231 dcl cv_bin_$oct entry (fixed bin, char (12) aligned); 232 dcl ascii_chars char (12) aligned; 233 dcl rank builtin; 234 dcl MAX_LEN fixed bin int static options (constant) init (512); 235 236 237 in_length = I_length; 238 out_length = 0; 239 out_string = " "; 240 241 do i = 1 to in_length; 242 in_char = substr (in_string, i, 1); 243 if ((in_char < FIRST_CHAR) | (in_char > LAST_CHAR)) & (i < in_length) 244 then do; /* control char */ 245 if out_length + 4 >= MAX_LEN then goto esc_done; 246 out_length = out_length + 1; 247 substr (out_string, out_length, 1) = ESC_CHAR; 248 out_length = out_length + 1; 249 call cv_bin_$oct (rank (in_char), ascii_chars); 250 substr (out_string, out_length, 3) = substr (ascii_chars, 10, 3); 251 if (substr (out_string, out_length, 1) = " ") then substr (out_string, out_length, 1) = "0"; 252 if (substr (out_string, out_length + 1, 1) = " ") then substr (out_string, out_length + 1, 1) = "0"; 253 out_length = out_length + 2; 254 end; 255 else do; /* normal char */ 256 if out_length + 1 >= MAX_LEN then goto esc_done; 257 out_length = out_length + 1; 258 substr (out_string, out_length, 1) = in_char; 259 end; 260 end; 261 esc_done: 262 O_length = out_length; 263 return (out_string); 264 end esc_canon; 265 266 /* ------------------------ ENTRIES ------------------------------------- */ 267 268 set_debug: 269 entry (debug_switch); 270 dcl debug_switch bit (1) parm; /* 1=on, 0=off */ 271 ws_tty_data$Flags.Debug = debug_switch; 272 return; 273 274 get_debug: 275 entry (debug_switch); 276 debug_switch = ws_tty_data$Flags.Debug; 277 return; 278 279 set_trace: 280 entry (trace_switch); 281 dcl trace_switch bit (1) parm; /* 1=on, 0=off */ 282 ws_tty_data$Flags.Trace = trace_switch; 283 return; 284 285 get_trace: 286 entry (trace_switch); 287 trace_switch = ws_tty_data$Flags.Trace; 288 return; 289 290 /* ------------------------ END PROGRAM ---------------------------------- */ 291 292 /* ------------------------ INCLUDES ------------------------------------- */ 293 1 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 1 2 /* format: style2,^inddcls,idind32 */ 1 3 1 4 declare 1 terminate_file_switches based, 1 5 2 truncate bit (1) unaligned, 1 6 2 set_bc bit (1) unaligned, 1 7 2 terminate bit (1) unaligned, 1 8 2 force_write bit (1) unaligned, 1 9 2 delete bit (1) unaligned; 1 10 1 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 1 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 1 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 1 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 1 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 1 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 1 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 1 18 1 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 294 2 1 /* BEGIN INCLUDE FILE sub_error_info.incl.pl1 */ 2 2 /* format: style2 */ 2 3 2 4 /* The include file condition_info_header must be used with this file */ 2 5 2 6 declare sub_error_info_ptr pointer; 2 7 declare 1 sub_error_info aligned based (sub_error_info_ptr), 2 8 2 header aligned like condition_info_header, 2 9 2 retval fixed bin (35), /* return value */ 2 10 2 name char (32), /* module name */ 2 11 2 info_ptr ptr; 2 12 2 13 declare sub_error_info_version_1 2 14 internal static options (constant) fixed bin init (1); 2 15 2 16 /* END INCLUDE FILE sub_error_info.incl.pl1 */ 295 3 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 3 2 /* format: style2 */ 3 3 3 4 declare condition_info_header_ptr 3 5 pointer; 3 6 declare 1 condition_info_header 3 7 aligned based (condition_info_header_ptr), 3 8 2 length fixed bin, /* length in words of this structure */ 3 9 2 version fixed bin, /* version number of this structure */ 3 10 2 action_flags aligned, /* tell handler how to proceed */ 3 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 3 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 3 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 3 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 3 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 3 16 3 pad bit (32) unaligned, 3 17 2 info_string char (256) varying, /* may contain printable message */ 3 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 3 19 3 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 296 4 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 4 2 /* format: style3 */ 4 3 4 4 /* These constants are to be used for the flags argument of sub_err_ */ 4 5 /* They are just "string (condition_info_header.action_flags)" */ 4 6 4 7 declare ( 4 8 ACTION_CAN_RESTART init (""b), 4 9 ACTION_CANT_RESTART init ("1"b), 4 10 ACTION_DEFAULT_RESTART 4 11 init ("01"b), 4 12 ACTION_QUIET_RESTART 4 13 init ("001"b), 4 14 ACTION_SUPPORT_SIGNAL 4 15 init ("0001"b) 4 16 ) bit (36) aligned internal static options (constant); 4 17 4 18 /* End include file */ 297 5 1 /* BEGIN INCLUDE FILE ws_tty_data */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(86-12-05,RBarstad), approve(86-12-11,MCR7585), 5 5* audit(86-12-12,Gilcrease), install(87-08-07,MR12.1-1075): 5 6* ws_tty_ external static 5 7* END HISTORY COMMENTS */ 5 8 5 9 dcl 1 ws_tty_data$Flags aligned external static, 5 10 3 Debug bit (1) unaligned, 5 11 3 Trace bit (1) unaligned, 5 12 3 Pad bit (34) unaligned; 5 13 5 14 /* END INCLUDE FILE ws_tty_data */ 298 299 end ws_trace_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/07/87 1449.8 ws_trace_.pl1 >special_ldd>install>MR12.1-1075>ws_trace_.pl1 294 1 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 295 2 07/18/81 1100.0 sub_error_info.incl.pl1 >ldd>include>sub_error_info.incl.pl1 296 3 03/24/82 1347.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.incl.pl1 297 4 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 298 5 08/07/87 1447.9 ws_tty_data.incl.pl1 >special_ldd>install>MR12.1-1075>ws_tty_data.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. ACTION_CAN_RESTART 000026 constant bit(36) initial dcl 4-7 set ref 207* BLANK constant char(1) initial unaligned dcl 83 ref 162 170 DATE_LEN constant fixed bin(17,0) initial dcl 83 ref 168 168 169 Debug 000046 external static bit(1) level 2 packed unaligned dcl 5-9 set ref 271* 276 ESC_CHAR constant char(1) initial unaligned dcl 228 ref 247 FIRST_CHAR constant char(1) initial unaligned dcl 226 ref 243 FUDGE constant fixed bin(17,0) initial dcl 83 ref 151 I_length parameter fixed bin(21,0) dcl 220 ref 216 237 LAST_CHAR constant char(1) initial unaligned dcl 227 ref 243 MAX_CHARS 000001 constant fixed bin(21,0) initial dcl 83 ref 136 151 154 160 162 168 170 175 177 185 186 MAX_LEN constant fixed bin(17,0) initial dcl 234 ref 245 256 NL 001114 constant char(1) initial unaligned dcl 83 ref 136 154 177 185 O_length parameter fixed bin(21,0) dcl 221 set ref 216 261* SEG_NAME 000002 constant char(32) initial unaligned dcl 83 set ref 130* 182* 207* TERM_FILE_TERM 000000 constant bit(3) initial unaligned dcl 1-14 set ref 195* Trace 0(01) 000046 external static bit(1) level 2 packed unaligned dcl 5-9 set ref 282* 287 WAIT_TIME 000012 constant fixed bin(17,0) initial dcl 83 set ref 144* addr builtin function dcl 98 ref 159 adj_bit_count 000304 automatic fixed bin(35,0) dcl 37 set ref 182* 184 195 adjust_bit_count_ 000016 constant entry external dcl 62 ref 182 arg_list_ptr 000100 automatic pointer dcl 33 set ref 121* 122* ascii_chars 000616 automatic char(12) dcl 232 set ref 249* 250 bit_count 000305 automatic fixed bin(24,0) dcl 38 set ref 130* 132 134* 137* clock builtin function dcl 98 ref 167 167 code 000306 automatic fixed bin(35,0) dcl 39 set ref 130* 131 137* 138 144* 145 145 145 182* 183 191* 192 192 195* 196 201* 207* condition_info_header based structure level 1 dcl 3-6 created 000307 automatic bit(1) dcl 40 set ref 130* cu_$arg_list_ptr 000012 constant entry external dcl 58 ref 121 cv_bin_$oct 000020 constant entry external dcl 63 in procedure "ws_trace_" ref 159 cv_bin_$oct 000050 constant entry external dcl 231 in procedure "esc_canon" ref 249 date_time_ 000010 constant entry external dcl 41 ref 167 debug_switch parameter bit(1) unaligned dcl 270 set ref 268 271 274 276* dir_name 000310 automatic char(168) unaligned dcl 42 set ref 128* 130* 182* 207* divide builtin function dcl 98 ref 184 error_table_$invalid_lock_reset 000040 external static fixed bin(35,0) dcl 75 ref 145 error_table_$lock_not_locked 000042 external static fixed bin(35,0) dcl 75 ref 192 error_table_$locked_by_this_process 000044 external static fixed bin(35,0) dcl 75 ref 145 get_wdir_ 000022 constant entry external dcl 64 ref 128 hcs_$set_bc_seg 000024 constant entry external dcl 65 ref 137 i 000362 automatic fixed bin(21,0) dcl 43 in procedure "ws_trace_" set ref 185* 185* 186* i 000613 automatic fixed bin(17,0) dcl 225 in procedure "esc_canon" set ref 241* 242 243* in_char 000412 automatic char(1) unaligned dcl 223 set ref 242* 243 243 249 249 258 in_length 000614 automatic fixed bin(17,0) dcl 229 set ref 237* 241 243 in_string parameter char unaligned dcl 219 ref 216 242 initiate_file_$create 000026 constant entry external dcl 66 ref 130 ioa_$general_rs 000014 constant entry external dcl 59 ref 122 last_char 000363 automatic fixed bin(21,0) dcl 44 set ref 184* 185 length builtin function dcl 98 ref 123 lock based bit(36) level 2 dcl 51 set ref 144* 159 191* 201* lock_chars 000364 automatic char(12) dcl 45 set ref 159* 160 message 000102 automatic char(512) unaligned dcl 34 set ref 120* 122* 123 124* 124* 175 message_length 000303 automatic fixed bin(21,0) dcl 36 set ref 124* 151 175 175 176 next_byte 1 based fixed bin(21,0) level 2 dcl 51 set ref 135* 151 153* 160 161* 161 162 163* 163 168 169* 169 170 171* 171 175 176* 176 177 178* 178 185 now 000367 automatic char(24) unaligned dcl 46 set ref 167* 168 out_length 000615 automatic fixed bin(21,0) dcl 229 set ref 238* 245 246* 246 247 248* 248 250 251 251 252 252 253* 253 256 257* 257 258 261 out_string 000413 automatic char(512) unaligned dcl 224 set ref 239* 247* 250* 251 251* 252 252* 258* 263 process_id based fixed bin(17,0) dcl 47 set ref 159* rank builtin function dcl 233 ref 249 249 raw_message_length 000302 automatic fixed bin(21,0) dcl 35 set ref 122* 123* 124* retval 000375 automatic fixed bin(35,0) dcl 48 set ref 207* rtrim builtin function dcl 98 ref 123 set_lock_$lock 000030 constant entry external dcl 68 ref 144 set_lock_$unlock 000032 constant entry external dcl 69 ref 191 201 string 2 based char level 2 dcl 51 set ref 136* 154* 160* 162* 168* 170* 175* 177* 185 186* sub_err_ 000034 constant entry external dcl 70 ref 207 sub_error_info_ptr 000400 automatic pointer dcl 2-6 set ref 207* substr builtin function dcl 98 set ref 136* 154* 160* 162* 168* 168 170* 175* 175 177* 185 186* 242 247* 250* 250 251 251* 252 252* 258* terminate_file_ 000036 constant entry external dcl 71 ref 195 trace_switch parameter bit(1) unaligned dcl 281 set ref 279 282 285 287* ws_io_ptr 000376 automatic pointer dcl 49 set ref 130* 135 136 137* 144 151 153 154 159 160 160 161 161 162 162 163 163 168 168 169 169 170 170 171 171 175 175 176 176 177 177 178 178 185 185 186 191 195* 201 ws_seg based structure level 1 dcl 51 ws_tty_data$Flags 000046 external static structure level 1 dcl 5-9 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CANT_RESTART internal static bit(36) initial dcl 4-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 4-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 4-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 4-7 TERM_FILE_BC internal static bit(2) initial unaligned dcl 1-12 TERM_FILE_DELETE internal static bit(5) initial unaligned dcl 1-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial unaligned dcl 1-16 TERM_FILE_TRUNC internal static bit(1) initial unaligned dcl 1-11 TERM_FILE_TRUNC_BC internal static bit(2) initial unaligned dcl 1-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial unaligned dcl 1-15 condition_info_header_ptr automatic pointer dcl 3-4 sub_error_info based structure level 1 dcl 2-7 sub_error_info_version_1 internal static fixed bin(17,0) initial dcl 2-13 terminate_file_switches based structure level 1 packed unaligned dcl 1-4 NAMES DECLARED BY EXPLICIT CONTEXT. err_exit 000554 constant label dcl 204 ref 131 138 145 192 196 esc_canon 000727 constant entry internal dcl 216 ref 124 esc_done 001061 constant label dcl 261 ref 245 256 exit 000630 constant label dcl 210 ref 197 202 get_debug 000654 constant entry external dcl 274 get_trace 000712 constant entry external dcl 285 set_debug 000635 constant entry external dcl 268 set_trace 000673 constant entry external dcl 279 unlock_exit 000541 constant label dcl 199 ref 183 ws_trace_ 000056 constant entry external dcl 16 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1370 1442 1117 1400 Length 1760 1117 52 302 250 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ws_trace_ 484 external procedure is an external procedure. esc_canon internal procedure shares stack frame of external procedure ws_trace_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ws_trace_ 000100 arg_list_ptr ws_trace_ 000102 message ws_trace_ 000302 raw_message_length ws_trace_ 000303 message_length ws_trace_ 000304 adj_bit_count ws_trace_ 000305 bit_count ws_trace_ 000306 code ws_trace_ 000307 created ws_trace_ 000310 dir_name ws_trace_ 000362 i ws_trace_ 000363 last_char ws_trace_ 000364 lock_chars ws_trace_ 000367 now ws_trace_ 000375 retval ws_trace_ 000376 ws_io_ptr ws_trace_ 000400 sub_error_info_ptr ws_trace_ 000412 in_char esc_canon 000413 out_string esc_canon 000613 i esc_canon 000614 in_length esc_canon 000615 out_length esc_canon 000616 ascii_chars esc_canon THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry divide_fx3 clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. adjust_bit_count_ cu_$arg_list_ptr cv_bin_$oct cv_bin_$oct date_time_ get_wdir_ hcs_$set_bc_seg initiate_file_$create ioa_$general_rs set_lock_$lock set_lock_$unlock sub_err_ terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$invalid_lock_reset error_table_$lock_not_locked error_table_$locked_by_this_process ws_tty_data$Flags LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000055 120 000063 121 000066 122 000074 123 000143 124 000155 128 000160 130 000167 131 000232 132 000234 134 000236 135 000240 136 000243 137 000245 138 000260 144 000262 145 000275 151 000304 153 000312 154 000314 159 000316 160 000327 161 000334 162 000336 163 000342 167 000343 168 000362 169 000370 170 000372 171 000376 175 000377 176 000404 177 000406 178 000412 182 000413 183 000434 184 000436 185 000447 186 000464 187 000467 191 000471 192 000502 195 000507 196 000536 197 000540 199 000541 201 000542 202 000553 204 000554 207 000555 210 000630 212 000631 268 000632 271 000642 272 000651 274 000652 276 000661 277 000670 279 000671 282 000700 283 000707 285 000710 287 000717 288 000726 216 000727 237 000740 238 000743 239 000744 241 000747 242 000755 243 000763 245 000773 246 000777 247 001000 248 001004 249 001005 250 001021 251 001025 252 001034 253 001043 254 001045 256 001046 257 001052 258 001053 260 001057 261 001061 263 001064 ----------------------------------------------------------- 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