THIS FILE IS DAMAGED COMPILATION LISTING OF SEGMENT date_compiled Compiled by: Multics PL/I Compiler, Release 33a, of May 30, 1990 Compiled at: ACTC Technologies Inc. Compiled on: 07/17/90 1534.5 mdt Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1990 * 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 date_compiled: dtc: proc; 14 15 /* DATE_COMPILED - useful program tells when object was compiled. */ 16 /* Modified 08/04/83 by Jim Lippard to print error message when specified 17* component of a bound object is not found, to accept archive components, 18* and to upgrade code */ 19 /* Modified 06/02/84 by Jim Lippard to not print octal garbage when bad 20* pathnames are given and to reject starnames */ 21 22 23 /****^ HISTORY COMMENTS: 24* 1) change(85-09-05,Spitzer), approve(85-09-05,MCR7267), 25* audit(85-12-10,Lippard), install(85-12-16,MR12.0-1001): 26* 1) Bugfix to AF use 27* so it won't display an error when it finds a match. 2) Use all segnames 28* when given a bound component, rather than only the primary segname. 29* 2) change(85-12-19,Spitzer), approve(85-12-19,MCR7267), 30* audit(85-12-19,Martinson), install(85-12-19,MR12.0-1003): 31* Revoke changes made for 1). 32* 3) change(86-02-19,Spitzer), approve(86-02-19,PBF7267), 33* audit(86-03-12,Lippard), install(86-03-17,MR12.0-1031): 34* PBF to 1025. 35* 4) change(86-08-04,Lippard), approve(86-08-04,PBF7267), 36* audit(86-08-06,Hartogs), install(86-08-07,MR12.0-1121): 37* Print error message correctly for case when entry point is not found 38* in bound segment or archive. 39* 5) change(86-08-06,Elhard), approve(86-08-06,MCR7457), 40* audit(86-08-21,DGHowe), install(86-11-20,MR12.0-1222): 41* Modified to extract dates from all components of an object MSF. 42* 6) change(90-04-20,Vu), approve(90-04-20,MCR8172), audit(90-06-04,Blackmore), 43* install(90-07-17,MR12.4-1021): 44* date_compiled prints more than what is asked for. 45* END HISTORY COMMENTS */ 46 47 48 dcl ME char (13) internal static options (constant) init ("date_compiled"); 49 dcl dname char (168), 50 ename char (32), 51 cname char (32), 52 (idx, jdx) fixed bin, 53 bitc fixed bin (24), 54 (long, brief) bit (1), 55 firstarg bit (1), 56 archive bit (1), 57 msf bit (1), 58 nsr fixed bin, 59 nargs fixed bin, 60 an fixed bin, 61 ap ptr, 62 al fixed bin, 63 arg char (al) unaligned based (ap), 64 fb71u fixed bin (71) unal based, 65 code fixed bin (35), 66 rvp ptr, 67 rvl fixed bin, 68 rv char (rvl) var based (rvp), 69 afsw bit (1), 70 seg_ptr ptr, 71 comp_ptr ptr, 72 comp_bc fixed bin (24), 73 comp_name char (32), 74 eof bit (1) aligned; 75 76 dcl 1 search (25) aligned, 77 2 name char (32), 78 2 found bit (1); 79 80 dcl (addr, null, substr, fixed, hbound, index, addrel, reverse, rtrim) builtin; 81 82 dcl complain entry variable options (variable); 83 dcl check_star_name_$path entry (char(*), fixed bin(35)), 84 cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)), 85 cu_$arg_count entry (fixed bin, fixed bin (35)), 86 cu_$af_return_arg entry (fixed bin, ptr, fixed bin, fixed bin (35)), 87 decode_definition_ entry (ptr, ptr) returns(bit(1) aligned), 88 decode_definition_$full entry (ptr, ptr, ptr) returns (bit (1) aligned), 89 expand_pathname_$component entry (char (*), char (*), char (*), char (*), fixed bin (35)), 90 ioa_ entry options (variable), 91 date_time_ entry (fixed bin (71), char (*)), 92 active_fnc_err_ entry options (variable), 93 com_err_ entry options (variable); 94 95 dcl archive_$next_component entry (ptr, fixed bin (24), ptr, fixed bin (24), char (*), fixed bin (35)); 96 97 dcl pathname_$component entry (char (*), char (*), char (*)) returns (char (194)); 98 dcl pathname_ entry (char(*), char(*)) returns(char(168)); 99 dcl error_table_$badopt fixed bin (35) ext; 100 dcl error_table_$noarg fixed bin (35) ext; 101 dcl error_table_$nostars fixed bin (35) ext; 102 dcl error_table_$not_act_fnc fixed bin (35) ext; 103 dcl error_table_$too_many_args fixed bin (35) ext; 104 105 dcl get_system_free_area_ entry() returns(ptr); 106 dcl hcs_$get_bc_author entry (char (*), char (*), char (*), fixed bin (35)); 107 108 dcl object_lib_$initiate entry (char(*), char(*), char(*), bit(1), ptr, fixed bin(24), bit(1), fixed bin(35)); 109 dcl object_lib_$get_component_info 110 entry (ptr, ptr, char(8), char(*), ptr, fixed bin(35)); 111 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 112 113 dcl object_info_$display entry (ptr, fixed bin (24), ptr, fixed bin (35)), 114 get_bound_seg_info_ entry (ptr, fixed bin (24), ptr, ptr, ptr, fixed bin (35)); 115 116 dcl TRUE bit (1) internal static options (constant) init ("1"b); 117 dcl FALSE bit (1) internal static options (constant) init ("0"b); 118 119 /* ======================================================= */ 120 121 long, brief, archive = FALSE; 122 firstarg = TRUE; 123 nsr = 0; 124 125 call cu_$af_return_arg (nargs, rvp, rvl, code); 126 if code = error_table_$not_act_fnc then afsw = FALSE; else afsw = TRUE; 127 if afsw then complain = active_fnc_err_; 128 else do; 129 complain = com_err_; 130 call cu_$arg_count (nargs, code); 131 end; 132 if nargs = 0 then do; 133 call complain (error_table_$noarg, ME, "path"); 134 return; 135 end; 136 do an = 1 to nargs; 137 call cu_$arg_ptr (an, ap, al, code); 138 if index (arg, "-") = 1 then do; 139 if arg = "-long" | arg = "-lg" then long = TRUE; 140 else if arg = "-brief" | arg = "-bf" then brief = TRUE; 141 else do; 142 call complain (error_table_$badopt, ME, arg); 143 return; 144 end; 145 end; 146 else if firstarg then do; 147 firstarg = FALSE; 148 149 call expand_pathname_$component (arg, dname, ename, cname, code); 150 if code ^= 0 then do; 151 call complain (code, ME, "^a", arg); 152 returng#=Initializer SysDaemon z >system_control_1 >process_dir_dir>!zzzzzzzbBBBBBB?#?#?#?#?#?#?#?##?#?#?#?#?#?#?#?#?#@@$>cl seg_ptr ptr, /* ptr to segment */ 254 bitc fixed bin (24), /* lth of segment */ 255 ename char (32), /* name of segment */ 256 code fixed bin (35); /* errcode */ 257 258 dcl (bmp, sblkp, mapp, comp_name_ptr) ptr; 259 dcl answer char (256) var init (""); 260 dcl author char (32); 261 dcl atp ptr, atl fixed bin, based_author char (atl) based (atp); 262 dcl (idx, jdx, kdx) fixed bin; 263 dcl comp_name_len fixed bin; 264 dcl datstr char (16); 265 dcl user char (32); 266 dcl compiler char (64); 267 dcl name char (comp_name_len) based (comp_name_ptr); 268 dcl cname char (kk) based (qq); 269 dcl kk fixed bin, qq ptr; 270 dcl 1 dd like decode_definition_full aligned; 271 dcl 1 oi like object_info aligned; 272 273 /* include files at end */ 274 275 code = 0; 276 oi.version_number = object_info_version_2; 277 call object_info_$display (seg_ptr, bitc, addr (oi), code); 278 if code ^= 0 then return; 279 280 call date_time_ (oi.compile_time, datstr); 281 compiler = oi.compiler; 282 user = oi.userid; 283 if substr (user, 1, 1) <= " " then call hcs_$get_bc_author (dname, ename, user, code); 284 if long then do; 285 if oi.symbp ^= null & oi.cvers.offset ^= FALSE then do; 286 qq = addrel (oi.symbp, oi.cvers.offset); 287 kk = fixed (oi.cvers.length, 18); 288 if kk > 0 & substr (cname, 1, 1) > " " 289 then compiler = cname; 290 end; 291 end; 292 293 if oi.format.bound then do; 294 call get_bound_seg_info_ (seg_ptr, bitc, addr (oi), bmp, sblkp, code); 295 if code ^= 0 then do; 296 call complain (code, ME, "^a", pathname_$component (dname, ename, cname)); 297 return; 298 end; 299 if (nsr = 0) | archive then do; /* always title if bound seg is in archive */ 300 if brief then answer = datstr; 301 else answer = datstr || " " || rtrim (ename) || " " || rtrim (user) || " " || rtrim (compiler); 302 if afsw then go to afret; 303 call ioa_ ("Bound ^a", answer); 304 end; 305 do idx = 1 to n_components; 306 comp_name_ptr = addrel (sblkp, component (idx).name_ptr); 307 comp_name_len = fixed (component (idx).name_lng, 18); 308 jdx = fixed (component (idx).symb_start, 18); 309 if nsr > 0 then do; 310 do kdx = 1 to nsr; 311 if name = search.name (kdx) then goto doit1; 312 end; 313 314 eof = decode_definition_$full (addrel (oi.defp, bindmap.component(idx).defblock_ptr), addr (dd), addr (oi)); 315 do while (^eof & (dd.section = "segn") & ^dd.flags.ignore); 316 do kdx = 1 to nsr; 317 if dd.symbol = search.name (kdx) then goto doit1; 318 end; /* do kdx */ 319 eof = decode_definition_$full (dd.next_def, addr (dd), addr (oi)); 320 end; /* do while */ 321 go to skp1; 322 end; 323 doit1: mapp = addrel (oi.symbp, jdx); 324 call date_time_ ((addr (mapp -> sb.obj_creation_time) -> fb71u), datstr); 325 if nsr > 0 then search.found (kdx) = TRUE; 326 compiler = component (idx).comp_name; 327 if mapp -> sb.uid_offset > component (idx).symb_lng then author = "?.?.?"; 328 else do; 329 atp = addrel (mapp, mapp -> sb.uid_offset); 330 atl = fixed (mapp -> sb.uid_length, 18); 331 author = based_author; 332 if substr (author, 1, 1) < " " then author = "?.?.?"; 333 end; 334 if long then do; 335 if sb.decl_vers = 1 then do; 336 qq = addrel (sblkp, component (idx).symb_start); 337 kk = fixed (qq -> sb.gen_name_length, 18); 338 qq = addrel (qq, qq -> sb.gen_name_offset); 339 if kk > 0 340 then if substr (cname, 1, 1) > " " 341 then compiler = cname; 342 end; 343 end; 344 if brief then answer = datstr || " " || name; 345 else answer = datstr || " " || rtrim (name) || " " || rtrim (author) || " " || rtrim (compiler); 346 if afsw then go to afret; 347 call ioa_ (" ^a", answer); 348 skp1: end; 349 return; 350 end; 351 352 if brief then answer = datstr; 353 else answer = datstr || " " || rtrim (ename) || " " || rtrim (user) || " " || rtrim (compiler); 354 if afsw then do; 355 afret: rv = answer; 356 go to nlx; 357 end; 358 call ioa_ ("^a", answer); 359 1 1 /* BEGIN INCLUDE SEGMENT ... symbol_block.incl.pl1 1 2*coded February 8, 1972 by Michael J. Spier */ 1 3 1 4 /* last modified may 3, 1972 by M. Weaver */ 1 5 1 6 declare 1 sb aligned based(sblkp), /* structure describing a standard symbol block */ 1 7 2 decl_vers fixed bin, /* version number of current structure format */ 1 8 2 identifier char(8) aligned, /* symbolic code to define purpose of this symb block */ 1 9 2 gen_version_number fixed bin, /* positive integer designating version of object generator */ 1 10 2 gen_creation_time fixed bin(71), /* clock reading of date/time generator was created */ 1 11 2 obj_creation_time fixed bin(71), /* clock reading of date/time object was generated */ 1 12 2 generator char(8) aligned, /* name of processor which generated segment */ 1 13 2 gen_name_offset bit(18) unaligned, /* offset of generator name in words rel to base of symbol block */ 1 14 2 gen_name_length bit(18) unaligned, /* length of printable generator version name in characters */ 1 15 2 uid_offset bit(18) unaligned, /* offset of creator id in words rel to base of symbol block */ 1 16 2 uid_length bit(18) unaligned, /* length of standard Multics id of object creator in characters */ 1 17 2 comment_offset bit(18) unaligned, /* offset of comment in words relative to base of symbol block */ 1 18 2 comment_length bit(18) unaligned, /* length of printable generator comment in characters */ 1 19 2 tbound bit(18) unaligned, /* specifies mod of text section base boundary */ 1 20 2 stat_bound bit(18) unaligned, /* specifies mod of internal static base boundary */ 1 21 2 source_map bit(18) unaligned, /* offset relative to base of symbol block of source map structure */ 1 22 2 area_ptr bit(18) unaligned, /* offset of block info in words relative to base of symbol block */ 1 23 2 symb_base bit(18) unaligned, /* back pointer (rel to base of symb block) to base of symb section */ 1 24 2 block_size bit(18) unaligned, /* size in words of entire symbol block */ 1 25 2 next_block bit(18) unaligned, /* if ^= "0"b, is thread (rel to base of symb section) to next symb block */ 1 26 2 rel_text bit(18) unaligned, /* offset rel to base of symbol block of text sect relocation info */ 1 27 2 rel_def bit(18) unaligned, /* offset rel to base of symb block of def section relocation info */ 1 28 2 rel_link bit(18) unaligned, /* offset rel to base of symb block of link sect relocation info */ 1 29 2 rel_symb bit(18) unaligned, /* offset rel to base of symb block of symb sect relocation info */ 1 30 2 default_truncate bit(18) unaligned, /* offset RTBOSB for binder to automatically trunc. symb sect. */ 1 31 2 optional_truncate bit(18) unaligned; /* offset RTBOSB for binder to optionally truncate symb section */ 1 32 1 33 /* END INCLUDE SEGMENT ... symbol_block.incl.pl1 */ 360 2 1 /* BEGIN INCLUDE SEGMENT ... bind_map.incl.pl1 Michael J. Spier, 4/29/71 */ 2 2 /* last modified April, 1972 by M. Weaver */ 2 3 2 4 declare 1 bindmap aligned based(bmp), 2 5 2 6 2 dcl_version fixed bin, /* version number of this structure = 1 */ 2 7 2 n_components fixed bin, /* number of entries in this array */ 2 8 2 component(0 refer(bindmap.n_components)) aligned, 2 9 3 name, /* objectname of component object */ 2 10 4 name_ptr bit(18) unaligned, /* pointer to name string */ 2 11 4 name_lng bit(18) unaligned, /* length of name string */ 2 12 3 comp_name char(8) aligned, /* name of component's compiler */ 2 13 3 text_start bit(18) unaligned, /* text section relocation counter */ 2 14 3 text_lng bit(18) unaligned, /* length of text section */ 2 15 3 stat_start bit(18) unaligned, /* internal static relocation counter */ 2 16 3 stat_lng bit(18) unaligned, /* length of internal static */ 2 17 3 symb_start bit(18) unaligned, /* symbol section relocation counter */ 2 18 3 symb_lng bit(18) unaligned, /* length of symbol section */ 2 19 3 defblock_ptr bit(18) unaligned, /* pointer to components definition block */ 2 20 3 n_blocks bit(18) unaligned, /* number of symbol blocks the component has */ 2 21 2 bf_name aligned, /* name of bindfile */ 2 22 3 bf_name_ptr bit(18) unaligned, /* pointer to name string */ 2 23 3 bf_name_lng bit(18) unaligned, /* length of name string */ 2 24 2 bf_date_up char(24), /* date updated in archive */ 2 25 2 bf_date_mod char(24); /* date last modified */ 2 26 2 27 /* END INCLUDE SEGMENT ... bind_map.incl.pl1 */ 361 3 1 /* BEGIN INCLUDE FILE ... object_info.incl.pl1 3 2*coded February 8, 1972 by Michael J. Spier */ 3 3 /* modified May 26, 1972 by M. Weaver */ 3 4 /* modified 15 April, 1975 by M. Weaver */ 3 5 3 6 declare 1 object_info aligned based, /* structure containing object info based, returned by object_info_ */ 3 7 2 version_number fixed bin, /* version number of current structure format (=2) */ 3 8 2 textp pointer, /* pointer to beginning of text section */ 3 9 2 defp pointer, /* pointer to beginning of definition section */ 3 10 2 linkp pointer, /* pointer to beginning of linkage section */ 3 11 2 statp pointer, /* pointer to beginning of static section */ 3 12 2 symbp pointer, /* pointer to beginning of symbol section */ 3 13 2 bmapp pointer, /* pointer to beginning of break map (may be null) */ 3 14 2 tlng fixed bin, /* length in words of text section */ 3 15 2 dlng fixed bin, /* length in words of definition section */ 3 16 2 llng fixed bin, /* length in words of linkage section */ 3 17 2 ilng fixed bin, /* length in words of static section */ 3 18 2 slng fixed bin, /* length in words of symbol section */ 3 19 2 blng fixed bin, /* length in words of break map */ 3 20 2 format, /* word containing bit flags about object type */ 3 21 3 old_format bit(1) unaligned, /* on if segment isn't in new format, i.e. has old style object map */ 3 22 3 bound bit(1) unaligned, /* on if segment is bound */ 3 23 3 relocatable bit(1) unaligned, /* on if seg has relocation info in its first symbol block */ 3 24 3 procedure bit(1) unaligned, /* on if segment is an executable object program */ 3 25 3 standard bit(1) unaligned, /* on if seg is in standard format (more than just standard map) */ 3 26 3 gate bit(1) unaligned, /* on if segment is a gate */ 3 27 3 separate_static bit(1) unaligned, /* on if static not in linkage */ 3 28 3 links_in_text bit(1) unaligned, /* on if there are threaded links in text */ 3 29 3 perprocess_static bit (1) unaligned, /* on if static is not to be per run unit */ 3 30 3 pad bit(27) unaligned, 3 31 2 entry_bound fixed bin, /* entry bound if segment is a gate */ 3 32 2 textlinkp pointer, /* ptr to first link in text */ 3 33 3 34 /* LIMIT OF BRIEF STRUCTURE */ 3 35 3 36 2 compiler char(8) aligned, /* name of processor which generated segment */ 3 37 2 compile_time fixed bin(71), /* clock reading of date/time object was generated */ 3 38 2 userid char(32) aligned, /* standard Multics id of creator of object segment */ 3 39 2 cvers aligned, /* generator version name in printable char string form */ 3 40 3 offset bit(18) unaligned, /* offset of name in words relative to base of symbol section */ 3 41 3 length bit(18) unaligned, /* length of name in characters */ 3 42 2 comment aligned, /* printable comment concerning generator or generation of segment */ 3 43 3 offset bit(18) unaligned, /* offset of comment in words relative to base of symbol section */ 3 44 3 length bit(18) unaligned, /* length of comment in characters */ 3 45 2 source_map fixed bin, /* offset, relative to base of symbol section, of source map structure */ 3 46 3 47 /* LIMIT OF DISPLAY STRUCTURE */ 3 48 3 49 2 rel_text pointer, /* pointer to text section relocation info */ 3 50 2 rel_def pointer, /* pointer to definition section relocation info */ 3 51 2 rel_link pointer, /* pointer to linkage section relocation info */ 3 52 2 rel_static pointer, /* pointer to static section relocation info */ 3 53 2 rel_symbol pointer, /* pointer to symbol section relocation info */ 3 54 2 text_boundary fixed bin, /* specifies mod of text section base boundary */ 3 55 2 static_boundary fixed bin, /* specifies mod of internal static base boundary */ 3 56 /* currently not used by system */ 3 57 2 default_truncate fixed bin, /* offset rel to symbp for binder to automatically trunc. symb sect. */ 3 58 2 optional_truncate fixed bin; /* offset rel to symbp for binder to optionally trunc. symb sect. */ 3 59 3 60 declare object_info_version_2 fixed bin int static init(2); 3 61 3 62 /* END INCLUDE FILE ... object_info.incl.pl1 */ 362 363 end date_compiled_; 364 365 date_msf_compiled_: proc (seg_ptr, ename, code); 366 367 dcl seg_ptr ptr, /* ptr to component 0 */ 368 ename char (32), /* name of MSF */ 369 code fixed bin(35); /* errcode */ 370 371 dcl sys_areap ptr; 372 dcl based_authorp ptr; 373 dcl based_authorl fixed bin (18) unsigned; 374 dcl based_author char (based_authorl) based (based_authorp); 375 dcl cnamep ptr; 376 dcl cnamel fixed bin (18) unsigned; 377 dcl cname char (cnamel) based (cnamep); 378 dcl mapp ptr; 379 dcl sys_area area based (sys_areap); 380 dcl oip ptr; 381 dcl compiler char (64); 382 dcl user char (32); 383 dcl bmp ptr; 384 dcl sblkp ptr; 385 dcl c fixed bin; 386 dcl idx fixed bin; 387 dcl sr_idx fixed bin; 388 dcl date_str char (16); 389 dcl answer char (256) varying; 390 dcl author char (32); 391 dcl found bit (1); 392 dcl map_relp fixed bin (18) unsigned; 393 dcl comp_namep ptr; 394 dcl comp_namel fixed bin (18) unsigned; 395 dcl comp_name char (comp_namel) based (comp_namep); 396 dcl 01 oi aligned like object_info based (oip); 397 dcl 01 dd aligned like decode_definition_str; 398 dcl cleanup condition; 399 400 code = 0; 401 answer = ""; 402 sys_areap = get_system_free_area_ (); 403 comp_infop = null; 404 405 on cleanup begin; 406 if comp_infop ^= null 407 then do; 408 do c = 1 to component_info.max; 409 call terminate_file_ (component_info.comp (c).segp, component_info.comp (c).bc, TERM_FILE_TERM, 0); 410 end; 411 free component_info in (sys_area); 412 end; 413 end; 414 415 call object_lib_$get_component_info (seg_ptr, sys_areap, component_info_version_1, "display", comp_infop, code); 416 if code ^= 0 then return; 417 418 oip = addr (component_info.comp (0).info); 419 420 call date_time_ (oi.compile_time, date_str); 421 compiler = oi.compiler; 422 user = oi.userid; 423 424 if substr (user, 1, 1) = " " then call hcs_$get_bc_author (pathname_ (dname, ename), "0", user, code); 425 if long then do; 426 if oi.symbp ^= null & oi.cvers.offset ^= ""b then do; 427 cnamep = addrel (oi.symbp, oi.cvers.offset); 428 cnamel = fixed (oi.cvers.length, 18); 429 if cnamel > 0 & substr (cname, 1, 1) > " " 430 then compiler = cname; 431 end; 432 end; 433 434 if nsr = 0 then do; 435 if brief then answer = date_str; 436 else answer = date_str || " " || rtrim (ename) || " " || rtrim (user) || " " || rtrim (compiler); 437 if afsw then go to afret; 438 call ioa_ ("Bound ^a", answer); 439 end; 440 441 do c = 1 to component_info.max; 442 oip = addr (component_info.comp (c).info); 443 call get_bound_seg_info_ (component_info.comp (c).segp, component_info.comp (c).bc, oip, bmp, sblkp, code); 444 if code ^= 0 then do; 445 call complain (code, ME, "^a", pathname_ (dname, ename)); 446 go to return; 447 end; 448 449 do idx = 1 to bindmap.n_components; 450 comp_namep = addrel (sblkp, component (idx).name_ptr); 451 comp_namel = fixed (component (idx).name_lng, 18); 452 map_relp = fixed (component (idx).symb_start, 18); 453 if nsr > 0 then do; 454 found = FALSE; 455 do sr_idx = 1 to nsr; 456 if comp_name = search.name (sr_idx) then search.found (sr_idx), found = TRUE; 457 end; 458 eof = decode_definition_ (seg_ptr, addr (dd)); 459 eof = decode_definition_ (addrel (oi.defp, bindmap.component(idx).defblock_ptr), addr (dd)); 460 do while (^eof & (dd.section = "segn") & ^found); 461 do sr_idx = 1 to nsr; 462 if dd.symbol = search.name (sr_idx) then search.found (sr_idx), found = TRUE; 463 end; 464 eof = decode_definition_ (dd.next_def, addr (dd)); 465 end; /* do while */ 466 end; 467 else found = TRUE; 468 469 if found then do; 470 mapp = addrel (oi.symbp, map_relp); 471 call date_time_ ((addr (mapp -> sb.obj_creation_time) -> fb71u), date_str); 472 compiler = bindmap.component (idx).comp_name; 473 if mapp -> sb.uid_offset > bindmap.component (idx).symb_lng then author = "?.?.?"; 474 else do; 475 based_authorp = addrel (mapp, mapp -> sb.uid_offset); 476 based_authorl = fixed (mapp -> sb.uid_length, 18); 477 author = based_author; 478 if substr (author, 1, 1) < " " then author = "?.?.?"; 479 end; 480 if long then do; 481 if mapp -> sb.decl_vers = 1 then do; 482 cnamep = addrel (sblkp, bindmap.component (idx).symb_start); 483 cnamel = fixed (cnamep -> sb.gen_name_length, 18); 484 cnamep = addrel (cnamep, cnamep -> sb.gen_name_offset); 485 if cnamel > 0 486 then if substr (cname, 1, 1) > " " 487 then compiler = cname; 488 end; 489 end; 490 491 if brief then answer = date_str || " " || comp_name; 492 else answer = date_str || " " || rtrim (comp_name) || " " || rtrim (author) || " " || rtrim (compiler); 493 if afsw then go to afret; 494 call ioa_ (" ^a", answer); 495 end; 496 end; 497 end; 498 499 return: do c = 1 to component_info.max; 500 call terminate_file_ (component_info.comp (c).segp, component_info.comp (c).bc, TERM_FILE_TERM, 0); 501 end; 502 free component_info in (sys_area); 503 return; 504 505 afret: rv = answer; 506 do c = 1 to component_info.max; 507 call terminate_file_ (component_info.comp (c).segp, component_info.comp (c).bc, TERM_FILE_TERM, 0); 508 end; 509 free component_info in (sys_area); 510 goto nlx; 511 4 1 /* BEGIN INCLUDE FILE ... object_info.incl.pl1 4 2*coded February 8, 1972 by Michael J. Spier */ 4 3 /* modified May 26, 1972 by M. Weaver */ 4 4 /* modified 15 April, 1975 by M. Weaver */ 4 5 4 6 declare 1 object_info aligned based, /* structure containing object info based, returned by object_info_ */ 4 7 2 version_number fixed bin, /* version number of current structure format (=2) */ 4 8 2 textp pointer, /* pointer to beginning of text section */ 4 9 2 defp pointer, /* pointer to beginning of definition section */ 4 10 2 linkp pointer, /* pointer to beginning of linkage section */ 4 11 2 statp pointer, /* pointer to beginning of static section */ 4 12 2 symbp pointer, /* pointer to beginning of symbol section */ 4 13 2 bmapp pointer, /* pointer to beginning of break map (may be null) */ 4 14 2 tlng fixed bin, /* length in words of text section */ 4 15 2 dlng fixed bin, /* length in words of definition section */ 4 16 2 llng fixed bin, /* length in words of linkage section */ 4 17 2 ilng fixed bin, /* length in words of static section */ 4 18 2 slng fixed bin, /* length in words of symbol section */ 4 19 2 blng fixed bin, /* length in words of break map */ 4 20 2 format, /* word containing bit flags about object type */ 4 21 3 old_format bit(1) unaligned, /* on if segment isn't in new format, i.e. has old style object map */ 4 22 3 bound bit(1) unaligned, /* on if segment is bound */ 4 23 3 relocatable bit(1) unaligned, /* on if seg has relocation info in its first symbol block */ 4 24 3 procedure bit(1) unaligned, /* on if segment is an executable object program */ 4 25 3 standard bit(1) unaligned, /* on if seg is in standard format (more than just standard map) */ 4 26 3 gate bit(1) unaligned, /* on if segment is a gate */ 4 27 3 separate_static bit(1) unaligned, /* on if static not in linkage */ 4 28 3 links_in_text bit(1) unaligned, /* on if there are threaded links in text */ 4 29 3 perprocess_static bit (1) unaligned, /* on if static is not to be per run unit */ 4 30 3 pad bit(27) unaligned, 4 31 2 entry_bound fixed bin, /* entry bound if segment is a gate */ 4 32 2 textlinkp pointer, /* ptr to first link in text */ 4 33 4 34 /* LIMIT OF BRIEF STRUCTURE */ 4 35 4 36 2 compiler char(8) aligned, /* name of processor which generated segment */ 4 37 2 compile_time fixed bin(71), /* clock reading of date/time object was generated */ 4 38 2 userid char(32) aligned, /* standard Multics id of creator of object segment */ 4 39 2 cvers aligned, /* generator version name in printable char string form */ 4 40 3 offset bit(18) unaligned, /* offset of name in words relative to base of symbol section */ 4 41 3 length bit(18) unaligned, /* length of name in characters */ 4 42 2 comment aligned, /* printable comment concerning generator or generation of segment */ 4 43 3 offset bit(18) unaligned, /* offset of comment in words relative to base of symbol section */ 4 44 3 length bit(18) unaligned, /* length of comment in characters */ 4 45 2 source_map fixed bin, /* offset, relative to base of symbol section, of source map structure */ 4 46 4 47 /* LIMIT OF DISPLAY STRUCTURE */ 4 48 4 49 2 rel_text pointer, /*printer prta prta printer w K} T>rP# ?###&?#printer_output ?#?##lprinter msegmi01@#TBBackup.SysDaemon.z '_h}hTD>user_dir_dir>SysDaemon>inc !BBBJgcxljwKHpM.dump.map  ACTC CAT THU 04/13/95nkort INDUSTRIAL SYSTEMS INC.PROPRIETARY PROGRAM MATERIAL OF ABB INDUSTRIAL SYSTEMS INC. ** ** All Rights Reserved. No disclosure, reproduction, or use of any part without written permission. **ndfile */ 6 22 3 bf_name_ptr bit(18) unaligned, /* pointer to name string */ 6 23 3 bf_name_lng bit(18) unaligned, /* length of name string */ 6 24 2 bf_date_up char(24), /* date updated in archive */ 6 25 2 bf_date_mod char(24); /* date last modified */ 6 26 6 27 /* END INCLUDE SEGMENT ... bind_map.incl.pl1 */ 514 7 1 /* BEGIN INCLUDE SEGMENT ... symbol_block.incl.pl1 7 2*coded February 8, 1972 by Michael J. Spier */ 7 3 7 4 /* last modified may 3, 1972 by M. Weaver */ 7 5 7 6 declare 1 sb aligned based(sblkp), /* structure describing a standard symbol block */ 7 7 2 decl_vers fixed bin, /* version number of current structure format */ 7 8 2 identifier char(8) aligned, /* symbolic code to define purpose of this symb block */ 7 9 2 gen_version_number fixed bin, /* positive integer designating version of object generator */ 7 10 2 gen_creation_time fixed bin(71), /* clock reading of date/time generator was created */ 7 11 2 obj_creation_time fixed bin(71), /* clock reading of date/time object was generated */ 7 12 2 generator char(8) aligned, /* name of processor which generated segment */ 7 13 2 gen_name_offset bit(18) unaligned, /* offset of generator name in words rel to base of symbol block */ 7 14 2 gen_name_length bit(18) unaligned, /* length of printable generator version name in characters */ 7 15 2 uid_offset bit(18) unaligned, /* offset of creator id in words rel to base of symbol block */ 7 16 2 uid_length bit(18) unaligned, /* length of standard Multics id of object creator in characters */ 7 17 2 comment_offset bit(18) unaligned, /* offset of comment in words relative to base of symbol block */ 7 18 2 comment_length bit(18) unaligned, /* length of printable generator comment in characters */ 7 19 2 tbound bit(18) unaligned, /* specifies mod of text section base boundary */ 7 20 2 stat_bound bit(18) unaligned, /* specifies mod of internal static base boundary */ 7 21 2 source_map bit(18) unaligned, /* offset relative to base of symbol block of source map structure */ 7 22 2 area_ptr bit(18) unaligned, /* offset of block info in words relative to base of symbol block */ 7 23 2 symb_base bit(18) unaligned, /* back pointer (rel to base of symb block) to base of symb section */ 7 24 2 block_size bit(18) unaligned, /* size in words of entire symbol block */ 7 25 2 next_block bit(18) unaligned, /* if ^= "0"b, is thread (rel to base of symb section) to next symb block */ 7 26 2 rel_text bit(18) unaligned, /* offset rel to base of symbol block of text sect relocation info */ 7 27 2 rel_def bit(18) unaligned, /* offset rel to base of symb block of def section relocation info */ 7 28 2 rel_link bit(18) unaligned, /* offset rel to base of symb block of link sect relocation info */ 7 29 2 rel_symb bit(18) unaligned, /* offset rel to base of symb block of symb sect relocation info */ 7 30 2 default_truncate bit(18) unaligned, /* offset RTBOSB for binder to automatically trunc. symb sect. */ 7 31 2 optional_truncate bit(18) unaligned; /* offset RTBOSB for binder to optionally truncate symb section */ 7 32 7 33 /* END INCLUDE SEGMENT ... symbol_block.incl.pl1 */ 515 516 517 end date_msf_compiled_; 518 8 1 /* BEGIN INCLUDE FILE ... decode_definition_str.incl.pl1 8 2* 8 3* describes the output structures used by decode_definition 8 4* James R. Davis 25 Mar 79 */ 8 5 8 6 dcl 1 decode_definition_common_header based aligned, 8 7 2 next_def ptr, /* to next def in list */ 8 8 2 prev_def ptr, /* to previous def in list */ 8 9 2 block_ptr ptr, /* to either defblock or segname */ 8 10 2 section char (4) aligned, /* "text", "link", "symb", "segn" */ 8 11 2 offset fixed bin, /* if section isnt "segn", offset of def in section */ 8 12 2 entrypoint fixed bin; /* if entrypoint non0 offset of entry in text section */ 8 13 8 14 dcl 1 decode_definition_str based aligned, /* for callers of decode_definition_ */ 8 15 2 header like decode_definition_common_header, 8 16 2 symbol char (32) aligned; /* for symbolic name */ 8 17 8 18 dcl 1 decode_definition_full based aligned, /* for callers of decode_definition_$full */ 8 19 2 header like decode_definition_common_header, 8 20 2 symbol char (256) aligned, /* symbolic name */ 8 21 2 symbol_lng fixed bin, /* actual length of the symbol */ 8 22 2 flags, /* same as in definition */ 8 23 3 new_format bit (1) unal, /* def is in new format */ 8 24 3 ignore bit (1) unal, /* linker should ignore this def */ 8 25 3 entrypt_flag bit (1) unal, /* this def is for an entrypoint */ 8 26 3 retain bit (1) unal, 8 27 3 arg_count bit (1) unal, /* there is an arg count for entry */ 8 28 3 desc_sw bit (1) unal, /* there are descriptors */ 8 29 3 unused bit (30) unal, 8 30 2 nargs fixed bin, /* number of args entry expects */ 8 31 2 desc_ptr ptr; /* to array of rel ptrs to descriptors */ 8 32 8 33 8 34 dcl 1 decode_definition_acc based aligned, /* for callers of decode_cref entry */ 8 35 2 header like decode_definition_common_header, 8 36 2 acc_ptr ptr; /* to ACC string of symbolic name */ 8 37 8 38 /* END INCLUDE FILE decode_definition_str.incl.pl1 */ 519 9 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 9 2 /* format: style2,^inddcls,idind32 */ 9 3 9 4 declare 1 terminate_file_switches based, 9 5 2 truncate bit (1) unaligned, 9 6 2 set_bc bit (1) unaligned, 9 7 2 terminate bit (1) unaligned, 9 8 2 force_write bit (1) unaligned, 9 9 2 delete bit (1) unaligned; 9 10 9 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 9 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 9 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 9 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 9 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 9 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 9 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 9 18 9 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 520 10 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 10 2* 10 3* Values for the "access mode" argument so often used in hardcore 10 4* James R. Davis 26 Jan 81 MCR 4844 10 5* Added constants for SM access 4/28/82 Jay Pattin 10 6* Added text strings 03/19/85 Chris Jones 10 7**/ 10 8 10 9 10 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 10 11 dcl ( 10 12 N_ACCESS init ("000"b), 10 13 R_ACCESS init ("100"b), 10 14 E_ACCESS init ("010"b), 10 15 W_ACCESS init ("001"b), 10 16 RE_ACCESS init ("110"b), 10 17 REW_ACCESS init ("111"b), 10 18 RW_ACCESS init ("101"b), 10 19 S_ACCESS init ("100"b), 10 20 M_ACCESS init ("010"b), 10 21 A_ACCESS init ("001"b), 10 22 SA_ACCESS init ("101"b), 10 23 SM_ACCESS init ("110"b), 10 24 SMA_ACCESS init ("111"b) 10 25 ) bit (3) internal static options (constant); 10 26 10 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 10 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 10 29 10 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 10 31 static options (constant); 10 32 10 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 10 34 static options (constant); 10 35 10 36 dcl ( 10 37 N_ACCESS_BIN init (00000b), 10 38 R_ACCESS_BIN init (01000b), 10 39 E_ACCESS_BIN init (00100b), 10 40 W_ACCESS_BIN init (00010b), 10 41 RW_ACCESS_BIN init (01010b), 10 42 RE_ACCESS_BIN init (01100b), 10 43 REW_ACCESS_BIN init (01110b), 10 44 S_ACCESS_BIN init (01000b), 10 45 M_ACCESS_BIN init (00010b), 10 46 A_ACCESS_BIN init (00001b), 10 47 SA_ACCESS_BIN init (01001b), 10 48 SM_ACCESS_BIN init (01010b), 10 49 SMA_ACCESS_BIN init (01011b) 10 50 ) fixed bin (5) internal static options (constant); 10 51 10 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 521 522 end date_compiled; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/17/90 1534.5 date_compiled.pl1 >spec>install>1021>date_compiled.pl1 360 1 05/06/74 1852.6 symbol_block.incl.pl1 >ldd>include>symbol_block.incl.pl1 361 2 09/18/74 1800.9 bind_map.incl.pl1 >ldd>include>bind_map.incl.pl1 362 3 08/05/77 1122.5 object_info.incl.pl1 >ldd>include>object_info.incl.pl1 512 4 08/05/77 1122.5 object_info.incl.pl1 >ldd>include>object_info.incl.pl1 513 5 11/24/86 1326.9 object_lib_defs.incl.pl1 >ldd>include>object_lib_defs.incl.pl1 514 6 09/18/74 1800.9 bind_map.incl.pl1 >ldd>include>bind_map.incl.pl1 515 7 05/06/74 1852.6 symbol_block.incl.pl1 >ldd>include>symbol_block.incl.pl1 519 8 06/28/79 1304.8 decode_definition_str.incl.pl1 >ldd>include>decode_definition_str.incl.pl1 520 9 04/06/83 1339.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 521 10 04/11/85 1552.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.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. FALSE constant bit(1) initial packed unaligned dcl 117 ref 121 126 147 187 285 454 ME 000003 constant char(13) initial packed unaligned dcl 48 set ref 133* 142* 151* 158* 160* 175* 182* 194* 200* 208* 220* 224* 232* 243* 246* 296* 445* TERM_FILE_TERM 000002 constant bit(3) initial packed unaligned dcl 9-14 set ref 235* 409* 500* 507* TRUE constant bit(1) initial packed unaligned dcl 116 ref 122 126 139 140 204 217 325 456 462 467 active_fnc_err_ 000032 constant entry external dcl 83 ref 127 addr builtin function dcl 80 ref 277 277 294 294 314 314 314 314 319 319 319 319 324 418 442 458 458 459 459 464 464 471 addrel builtin function dcl 80 ref 286 306 314 314 323 329 336 338 427 450 459 459 470 475 482 484 afsw 000215 automatic bit(1) packed unaligned dcl 49 set ref 126* 126* 127 236 302 346 354 437 493 al 000210 automatic fixed bin(17,0) dcl 49 set ref 137* 138 139 139 140 140 142 142 149 149 151 151 158 158 160 160 179 179 182 182 186 an 000204 automatic fixed bin(17,0) dcl 49 set ref 136* 137* answer 000161 automatic varying char(256) dcl 389 in procedure "date_msf_compiled_" set ref 401* 435* 436* 438* 491* 492* 494* 505 answer 000624 automatic varying char(256) initial dcl 259 in procedure "date_compiled_" set ref 259* 300* 301* 303* 344* 345* 347* 352* 353* 355 358* ap 000206 automatic pointer dcl 49 set ref 137* 138 139 139 140 140 142 149 151 158 160 179 182 186 archive 000200 automatic bit(1) packed unaligned dcl 49 set ref 121* 204* 243* 246* 299 archive_$next_component 000036 constant entry external dcl 95 ref 206 222 arg based char packed unaligned dcl 49 set ref 138 139 139 140 140 142* 149* 151* 158* 160* 179* 182* 186 atl 000740 automatic fixed bin(17,0) dcl 261 set ref 330* 331 atp 000736 automatic pointer dcl 261 set ref 329* 331 author 000262 automatic char(32) packed unaligned dcl 390 in procedure "date_msf_compiled_" set ref 473* 477* 478 478* 492 author 000725 automatic char(32) packed unaligned dcl 260 in procedure "date_compiled_" set ref 327* 331* 332 332* 345 based_author based char packed unaligned dcl 261 in procedure "date_compiled_" ref 331 based_author based char packed unaligned dcl 374 in procedure "date_msf_compiled_" ref 477 based_authorl 000104 automatic fixed bin(18,0) unsigned dcl 373 set ref 476* 477 based_authorp 000102 automatic pointer dcl 372 set ref 475* 477 bc 6 based fixed bin(24,0) array level 3 dcl 5-19 set ref 409* 443* 500* 507* bindmap based structure level 1 dcl 2-4 in procedure "date_compiled_" bindmap based structure level 1 dcl 6-4 in procedure "date_msf_compiled_" bitc parameter fixed bin(24,0) dcl 253 in procedure "date_compiled_" set ref 251 277* 294* bitc 000174 automatic fixed bin(24,0) dcl 49 in procedure "dtc" set ref 192* 206* 222* 231* bmp 000614 automatic pointer dcl 258 in procedure "date_compiled_" set ref 294* 305 306 307 308 314 314 326 327 336 bmp 000146 automatic pointer dcl 383 in procedure "date_msf_compiled_" set ref 443* 449 450 451 452 459 459 472 473 482 bound 24(01) 001122 automatic bit(1) level 3 packed packed unaligned dcl 271 set ref 293 brief 000176 automatic bit(1) packed unaligned dcl 49 set ref 121* 140* 300 344 352 435 491 c 000152 automatic fixed bin(17,0) dcl 385 set ref 408* 409 409* 441* 442 443 443* 499* 500 500* 506* 507 507* check_star_name_$path 000010 constant entry external dcl 83 ref 155 165 179 cleanup 000322 stack reference condition dcl 398 ref 405 cname 000162 automatic char(32) packed unaligned dcl 49 in procedure "dtc" set ref 149* 164 165* 169 194* 194* 208* 208* 220* 220* 224* 224* 232* 232* cname based char packed unaligned dcl 377 in procedure "date_msf_compiled_" ref 429 429 485 485 cname based char packed unaligned dcl 268 in procedure "date_compiled_" set ref 288 288 296* 296* 339 339 cnamel 000110 automatic fixed bin(18,0) unsigned dcl 376 set ref 428* 429 429 429 483* 485 485 485 cnamep 000106 automatic pointer dcl 375 set ref 427* 429 429 482* 483 484* 484 484 485 485 code 000211 automatic fixed bin(35,0) dcl 49 in procedure "dtc" set ref 125* 126 130* 137* 149* 150 151* 155* 157 158 158 160* 165* 166 179* 181 192* 194* 199* 200 200* 206* 207 208* 213* 216* 220 220* 222* 223 224* 231* 232 232* 235* code parameter fixed bin(35,0) dcl 367 in procedure "date_msf_compiled_" set ref 365 400* 415* 416 424* 443* 444 445* code parameter fixed bin(35,0) dcl 253 in procedure "date_compiled_" set ref 251 275* 277* 278 283* 294* 295 296* com_err_ 000034 constant entry external dcl 83 ref 129 comp 4 based structure array level 2 dcl 5-19 comp_bc 000222 automatic fixed bin(24,0) dcl 49 set ref 206* 213* 216* 222* comp_infop 000330 automatic pointer dcl 5-31 set ref 403* 406 408 409 409 411 415* 418 441 442 443 443 499 500 500 502 506 507 507 509 comp_name based char packed unaligned dcl 395 in procedure "date_msf_compiled_" ref 456 491 492 comp_name 3 based char(8) array level 3 in structure "bindmap" dcl 2-4 in procedure "date_compiled_" ref 326 comp_name 3 based char(8) array level 3 in structure "bindmap" dcl 6-4 in procedure "date_msf_compiled_" ref 472 comp_name 000223 automatic char(32) packed unaligned dcl 49 in procedure "dtc" set ref 206* 212 213* 215 216* 222* comp_name_len 000744 automatic fixed bin(17,0) dcl 263 set ref 307* 311 344 345 comp_name_ptr 000622 automatic pointer dcl 258 set ref 306* 311 344 345 comp_namel 000276 automatic fixed bin(18,0) unsigned dcl 394 set ref 451* 456 491 492 comp_namep 000274 automatic pointer dcl 393 set ref 450* 456 491 492 comp_ptr 000220 automatic pointer dcl 49 set ref 205* 206* 211 213* 216* 222* compile_time 32 based fixed bin(71,0) level 2 in structure "oi" dcl 396 in procedure "date_msf_compiled_" set ref 420* compile_time 32 001122 automatic fixed bin(71,0) level 2 in structure "oi" dcl 271 in procedure "date_compiled_" set ref 280* compiler 000116 automatic char(64) packed unaligned dcl 381 in procedure "date_msf_compiled_" set ref 421* 429* 436 472* 485* 492 compiler 30 001122 automatic char(8) level 2 in structure "oi" dcl 271 in procedure "date_compiled_" set ref 281 compiler 30 based char(8) level 2 in structure "oi" dcl 396 in procedure "date_msf_compiled_" ref 421 compiler 000761 automatic char(64) packed unaligned dcl 266 in procedure "date_compiled_" set ref 281* 288* 301 326* 339* 345 353 complain 000576 automatic entry variable dcl 82 set ref 127* 129* 133 142 151 158 160 175 182 194 200 208 220 224 232 243 246 296 445 component 2 based structure array level 2 in structure "bindmap" dcl 6-4 in procedure "date_msf_compiled_" component 2 based structure array level 2 in structure "bindmap" dcl 2-4 in procedure "date_compiled_" component_info based structure level 1 dcl 5-19 set ref 411 502 509 component_info_version_1 000000 constant char(8) initial packed unaligned dcl 5-33 set ref 415* cu_$af_return_arg 000016 constant entry external dcl 83 ref 125 cu_$arg_count 000014 constant entry external dcl 83 ref 130 cu_$arg_ptr 000012 constant entry external dcl 83 ref 137 cvers 44 001122 automatic structure level 2 in structure "oi" dcl 271 in procedure "date_compiled_" cvers 44 based structure level 2 in structure "oi" dcl 396 in procedure "date_msf_compiled_" date_str 000155 automatic char(16) packed unaligned dcl 388 set ref 420* 435 436 471* 491 492 date_time_ 000030 constant entry external dcl 83 ref 280 324 420 471 datstr 000745 automatic char(16) packed unaligned dcl 264 set ref 280* 300 301 324* 344 345 352 353 dd 001004 automatic structure level 1 dcl 270 in procedure "date_compiled_" set ref 314 314 319 319 dd 000300 automatic structure level 1 dcl 397 in procedure "date_msf_compiled_" set ref 458 458 459 459 464 464 decl_vers based fixed bin(17,0) level 2 in structure "sb" dcl 1-6 in procedure "date_compiled_" ref 335 decl_vers based fixed bin(17,0) level 2 in structure "sb" dcl 7-6 in procedure "date_msf_compiled_" ref 481 decode_definition_ 000020 constant entry external dcl 83 ref 458 459 464 decode_definition_$full 000022 constant entry external dcl 83 ref 314 319 decode_definition_common_header based structure level 1 dcl 8-6 decode_definition_full based structure level 1 dcl 8-18 decode_definition_str based structure level 1 dcl 8-14 defblock_ptr 10 based bit(18) array level 3 in structure "bindmap" packed packed unaligned dcl 6-4 in procedure "date_msf_compiled_" ref 459 459 defblock_ptr 10 based bit(18) array level 3 in structure "bindmap" packed packed unaligned dcl 2-4 in procedure "date_compiled_" ref 314 314 defp 4 based pointer FMCTL_1 mSchroth SysMaint # zMlMX2M&Kaczor NATACC LFlO&ROc@@0@r  RBrinegar EUF Jׅ@@`@ Spreitzer Mcc P+yT ..2fThA@ H @ 24Vanderschooten SiteSA L訵JT&||2ThA@ H @ 2Winterton HISCAN Jn0@@`@ Zwick Multics Ţ2RB9 vanRaalten Holland L(_$  h @ @VvanderMeeren MED KFz(TZZ2:ThA@ H  2 vanderVeer SOZA PDUvT2 ThA\ H @ 2 vonSeeburg SSEA K @  vanderLee SiteSA PsBKT$2p ThA@ H @ 2> deRooy SOZA O7@{ll," {@@ 8, denTuinder Holland KАѐT2 ThA@ H @ 2tenHaaf Holland KI  AtdeJong Holland dcl 7-6 in procedure "date_msf_compiled_" ref 483 gen_name_length 12(18) based bit(18) level 2 in structure "sb" packed packed unaligned dcl 1-6 in procedure "date_compiled_" ref 337 gen_name_offset 12 based bit(18) level 2 in structure "sb" packed packed unaligned dcl 1-6 in procedure "date_compiled_" ref 338 gen_name_offset 12 based bit(18) level 2 in structure "sb" packed packed unaligned dcl 7-6 in procedure "date_msf_compiled_" ref 484 get_bound_seg_info_ 000072 constant entry external dcl 113 ref 294 443 get_system_free_area_ 000056 constant entry external dcl 105 ref 402 hbound builtin function dcl 80 ref 174 hcs_$get_bc_author 000060 constant entry external dcl 106 ref 283 424 header 000300 automatic structure level 2 in structure "dd" dcl 397 in procedure "date_msf_compiled_" header 001004 automatic structure level 2 in structure "dd" dcl 270 in procedure "date_compiled_" idx 000172 automatic fixed bin(17,0) dcl 49 in procedure "dtc" set ref 214* 215 217* idx 000741 automatic fixed bin(17,0) dcl 262 in procedure "date_compiled_" set ref 305* 306 307 308 314 314 326 327 336* idx 000153 automatic fixed bin(17,0) dcl 386 in procedure "date_msf_compiled_" set ref 449* 450 451 452 459 459 472 473 482* ignore 112(01) 001004 automatic bit(1) level 3 packed packed unaligned dcl 270 set ref 315 index builtin function dcl 80 ref 138 203 212 info 10 based structure array level 3 dcl 5-19 set ref 418 442 ioa_ 000026 constant entry external dcl 83 ref 303 347 358 438 494 jdx 000173 automatic fixed bin(17,0) dcl 49 in procedure "dtc" set ref 240* 241* 245* 246 246* jdx 000742 automatic fixed bin(17,0) dcl 262 in procedure "date_compiled_" set ref 308* 323 kdx 000743 automatic fixed bin(17,0) dcl 262 set ref 310* 311* 316* 317* 325 kk 001001 automatic fixed bin(17,0) dcl 269 set ref 287* 288 288 288 296 296 296 296 337* 339 339 339 length 44(18) 001122 automatic bit(18) level 3 in structure "oi" packed packed unaligned dcl 271 in procedure "date_compiled_" set ref 287 length 44(18) based bit(18) level 3 in structure "oi" packed packed unaligned dcl 396 in procedure "date_msf_compiled_" ref 428 long 000175 automatic bit(1) packed unaligned dcl 49 set ref 121* 139* 284 334 425 480 map_relp 000273 automatic fixed bin(18,0) unsigned dcl 392 set ref 452* 470 mapp 000112 automatic pointer dcl 378 in procedure "date_msf_compiled_" set ref 470* 471 473 475 475 476 481 mapp 000620 automatic pointer dcl 258 in procedure "date_compiled_" set ref 323* 324 327 329 329 330 max 3 based fixed bin(17,0) level 2 dcl 5-19 ref 408 411 441 499 502 506 509 msf 000201 automatic bit(1) packed unaligned dcl 49 set ref 192* 198 243* 246* n_components 1 based fixed bin(17,0) level 2 in structure "bindmap" dcl 2-4 in procedure "date_compiled_" ref 305 n_components 1 based fixed bin(17,0) level 2 in structure "bindmap" dcl 6-4 in procedure "date_msf_compiled_" ref 449 name based char packed unaligned dcl 267 in procedure "date_compiled_" ref 311 344 345 name 2 based structure array level 3 in structure "bindmap" dcl 6-4 in procedure "date_msf_compiled_" name 2 based structure array level 3 in structure "bindmap" dcl 2-4 in procedure "date_compiled_" name 000234 automatic char(32) array level 2 in structure "search" dcl 76 in procedure "dtc" set ref 169* 186* 215 246* 311 317 456 462 name_lng 2(18) based bit(18) array level 4 in structure "bindmap" packed packed unaligned dcl 6-4 in procedure "date_msf_compiled_" ref 451 name_lng 2(18) based bit(18) array level 4 in structure "bindmap" packed packed unaligned dcl 2-4 in procedure "date_compiled_" ref 307 name_ptr 2 based bit(18) array level 4 in structure "bindmap" packed packed unaligned dcl 6-4 in procedure "date_msf_compiled_" ref 450 name_ptr 2 based bit(18) array level 4 in structure "bindmap" packed packed unaligned dcl 2-4 in procedure "date_compiled_" ref 306 nargs 000203 automatic fixed bin(17,0) dcl 49 set ref 125* 130* 132 136 next_def 000300 automatic pointer level 3 in structure "dd" dcl 397 in procedure "date_msf_compiled_" set ref 464* next_def 001004 automatic pointer level 3 in structure "dd" dcl 270 in procedure "date_compiled_" set ref 319* nsr 000202 automatic fixed bin(17,0) dcl 49 set ref 123* 168* 169 173* 173 174 186 187 213 214 239 240 245 299 309 310 316 325 434 453 455 461 null builtin function dcl 80 ref 193 205 211 285 403 406 426 obj_creation_time 6 based fixed bin(71,0) level 2 in structure "sb" dcl 7-6 in procedure "date_msf_compiled_" set ref 471 obj_creation_time 6 based fixed bin(71,0) level 2 in structure "sb" dcl 1-6 in procedure "date_compiled_" set ref 324 object_info based structure level 1 dcl 4-6 in procedure "date_msf_compiled_" object_info based structure level 1 dcl 3-6 in procedure "date_compiled_" object_info_$display 000070 constant entry external dcl 113 ref 277 object_info_version_2 constant fixed bin(17,0) initial dcl 3-60 ref 276 object_lib_$get_component_info 000064 constant entry external dcl 109 ref 415 object_lib_$initiate 000062 constant entry external dcl 108 ref 192 offset 44 001122 automatic bit(18) level 3 in structure "oi" packed packed unaligned dcl 271 in procedure "date_compiled_" set ref 285 286 offset 44 based bit(18) level 3 in structure "oi" packed packed unaligned dcl 396 in procedure "date_msf_compiled_" ref 426 427 oi based structure level 1 dcl 396 in procedure "date_msf_compiled_" oi 001122 automatic structure level 1 dcl 271 in procedure "date_compiled_" set ref 277 277 294 294 314 314 319 319 oip 000114 automatic pointer dcl 380 set ref 418* 420 421 422 426 426 427 427 428 442* 443* 459 459 470 pathname_ 000042 constant entry external dcl 98 ref 200 200 424 424 445 445 pathname_$component 000040 constant entry external dcl 97 ref 194 194 208 208 220 220 224 224 232 232 296 296 qq 001002 automatic pointer dcl 269 set ref 286* 288 288 296 296 336* 337 338* 338 338 339 339 reverse builtin function dcl 80 ref 203 212 rtrim builtin function dcl 80 ref 203 212 215 301 301 301 345 345 345 353 353 353 436 436 436 492 492 492 rv based varying char dcl 49 set ref 355* 505* rvl 000214 automatic fixed bin(17,0) dcl 49 set ref 125* 355 505 rvp 000212 automatic pointer dcl 49 set ref 125* 355 505 sb based structure level 1 dcl 1-6 in procedure "date_compiled_" sb based structure level 1 dcl 7-6 in procedure "date_msf_compiled_" sblkp 000150 automatic pointer dcl 384 in procedure "date_msf_compiled_" set ref 443* 450 482 sblkp 000616 automatic pointer dcl 258 in procedure "date_compiled_" set ref 294* 306 335 336 search 000234 automatic structure array level 1 dcl 76 set ref 174 section 6 001004 automatic char(4) level 3 in structure "dd" dcl 270 in procedure "date_compiled_" set ref 315 section 6 000300 automatic char(4) level 3 in structure "dd" dcl 397 in procedure "date_msf_compiled_" set ref 460 seg_ptr parameter pointer dcl 253 in procedure "date_compiled_" set ref 251 277* 294* seg_ptr 000216 automatic pointer dcl 49 in procedure "dtc" set ref 192* 193 199* 206* 222* 231* 235* seg_ptr parameter pointer dcl 367 in procedure "date_msf_compiled_" set ref 365 415* 458* segp 4 based pointer array level 3 dcl 5-19 set ref 409* 443* 500* 507* sr_idx 000154 automatic fixed bin(17,0) dcl 387 set ref 455* 456 456* 461* 462 462* substr builtin function dcl 80 ref 283 288 332 339 424 429 478 485 symb_lng 7(18) based bit(18) array level 3 in structure "bindmap" packed packed unaligned dcl 2-4 in procedure "date_compiled_" ref 327 symb_lng 7(18) based bit(18) array level 3 in structure "bindmap" packed packed unaligned dcl 6-4 in procedure "date_msf_compiled_" ref 473 symb_start 7 based bit(18) array level 3 in structure "bindmap" packed packed unaligned dcl 6-4 in procedure "date_msf_compiled_" ref 452 482 s2^!WGriffin Sweden JlM TKR2B!ThA@ H @ 2"Vigraham HDSA Nnv"H @ #Vinograd Multics JP\:#\$ B@$Vo Mcc Jj"Z0$$ B@0^%Vogler TandD JF^Z :B%  A(&Villee G8ARCH IeVv  &H @  'Vasconcellos MHC M>fS2'S у@?p@@H 2(Vick FSO K ( p)Varner TranserveP'+&T) <*TMandile Mcc ! AQDUp#B2Vtt2 *2! 2+Thibodeaux SiteSA ǑmSWxT2+Tha@  @$q(Ll ^ ?H0$@ B2,Troupe MPOH KUyTH2,ThA@ H @ 2R-USGD-scp SCPS N6fMd,T^^26-ThA@ H @ 2.VMuto Mcc L]SzTK2.ThA@ H @ 2/VVan TSDC L`} T2/ThA@ H @ 2h0UNCP static fixed bin(5,0) initial dcl 10-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 10-33 E_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 M_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 REW_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 10-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 9-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 9-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 9-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 9-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 9-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 9-15 W_ACCESS internal static bit(3) initial packed unaligned dcl 10-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 10-36 decode_definition_acc based structure level 1 dcl 8-34 max_component automatic fixed bin(17,0) dcl 5-32 object_info_version_2 internal static fixed bin(17,0) initial dcl 4-60 terminate_file_switches based structure level 1 packed packed unaligned dcl 9-4 NAMES DECLARED BY EXPLICIT CONTEXT. afret 005116 constant label dcl 505 in procedure "date_msf_compiled_" ref 437 493 afret 003372 constant label dcl 355 in procedure "date_compiled_" ref 302 346 date_compiled 000150 constant entry external dcl 13 date_compiled_ 002040 constant entry internal dcl 251 ref 213 216 231 date_msf_compiled_ 003425 constant entry internal dcl 365 ref 199 doit1 002660 constant label dcl 323 ref 311 317 dtc 000141 constant entry external dcl 13 have_star 000505 constant label dcl 158 ref 166 nlx 001703 constant label dcl 236 ref 356 510 return 005037 constant label dcl 499 ref 446 skp1 003223 constant label dcl 348 ref 321 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5604 5700 5241 5614 Length 6336 5241 74 422 342 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dtc 892 external procedure is an external procedure. date_compiled_ internal procedure shares stack frame of external procedure dtc. date_msf_compiled_ 304 internal procedure enables or reverts conditions. on unit on line 405 86 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME date_msf_compiled_ 000100 sys_areap date_msf_compiled_ 000102 based_authorp date_msf_compiled_ 000104 based_authorl date_msf_compiled_ 000106 cnamep date_msf_compiled_ 000110 cnamel date_msf_compiled_ 000112 mapp date_msf_compiled_ 000114 oip date_msf_compiled_ 000116 compiler date_msf_compiled_ 000136 user date_msf_compiled_ 000146 bmp date_msf_compiled_ 000150 sblkp date_msf_compiled_ 000152 c date_msf_compiled_ 000153 idx date_msf_compiled_ 000154 sr_idx date_msf_compiled_ 000155 date_str date_msf_compiled_ 000161 answer date_msf_compiled_ 000262 author date_msf_compiled_ 000272 found date_msf_compiled_ 000273 map_relp date_msf_compiled_ 000274 comp_namep date_msf_compiled_ 000276 comp_namel date_msf_compiled_ 000300 dd date_msf_compiled_ 000330 comp_infop date_msf_compiled_ dtc 000100 dname dtc 000152 ename dtc 000162 cname dtc 000172 idx dtc 000173 jdx dtc 000174 bitc dtc 000175 long dtc 000176 brief dtc 000177 firstarg dtc 000200 archive dtc 000201 msf dtc 000202 nsr dtc 000203 nargs dtc 000204 an dtc 000206 ap dtc 000210 al dtc 000211 code dtc 000212 rvp dtc 000214 rvl dtc 000215 afsw dtc 000216 seg_ptr dtc 000220 comp_ptr dtc 000222 comp_bc dtc 000223 comp_name dtc 000233 eof dtc 000234 search dtc 000576 complain dtc 000614 bmp date_compiled_ 000616 sblkp date_compiled_ 000620 mapp date_compiled_ 000622 comp_name_ptr date_compiled_ 000624 answer date_compiled_ 000725 author date_compiled_ 000736 atp date_compiled_ 000740 atl date_compiled_ 000741 idx date_compiled_ 000742 jdx date_compiled_ 000743 kdx date_compiled_ 000744 comp_name_len date_compiled_ 000745 datstr date_compiled_ 000751 user date_compiled_ 000761 compiler date_compiled_ 001001 kk date_compiled_ 001002 qq date_compiled_ 001004 dd date_compiled_ 001122 oi date_compiled_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp cat_realloc_chars call_ent_var_desc call_ext_out_desc call_ext_out call_int_this return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry set_chars_eis op_freen_ ix_rev_chars THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ archive_$next_component check_star_name_$path com_err_ cu_$af_return_arg cu_$arg_count cu_$arg_ptr date_time_ decode_definition_ decode_definition_$full expand_pathname_$component get_bound_seg_info_ get_system_free_area_ hcs_$get_bc_author ioa_ object_info_$display object_lib_$get_component_info object_lib_$initiate pathname_ pathname_$component terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$noarg error_table_$nostars error_table_$not_act_fnc error_table_$too_many_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 13 000140 121 000155 122 000161 123 000163 125 000164 126 000200 126 000206 127 000210 129 000217 130 000223 132 000233 133 000235 134 000260 136 000261 137 000267 138 000304 139 000320 140 000333 142 000346 143 000372 145 000373 146 000374 147 000376 149 000377 150 000432 151 000434 152 000465 155 000466 157 000503 158 000505 160 000545 161 000576 164 000577 165 000603 166 000620 168 000622 169 000624 171 000631 173 000632 174 000633 175 000636 176 000653 179 000654 181 000674 182 000676 183 000730 186 000731 187 000741 190 000742 192 000744 193 001013 194 001017 195 001071 198 001072 199 001075 200 001107 201 001157 203 001160 204 001201 205 001203 206 001205 207 001240 208 001242 209 001314 211 001315 212 001322 213 001343 214 001350 215 001357 216 001401 217 001403 219 001407 220 001411 222 001465 223 001520 224 001522 225 001574 227 001575 228 001576 231 001577 232 001601 235 001655 236 001703 239 001705 240 001710 241 001721 242 001724 243 001726 244 001763 245 001764 246 001773 247 002035 249 002037 251 002040 259 002042 275 002043 276 002044 277 002046 278 002066 280 002072 281 002107 282 002112 283 002115 284 002147 285 002151 286 002162 287 002165 288 002170 293 002202 294 002205 295 002231 296 002234 297 002313 299 002314 300 002321 301 002331 302 002461 303 002464 305 002503 306 002513 307 002523 308 002526 309 002531 310 002533 311 002541 312 002551 314 002553 315 002604 316 002615 317 002625 318 002633 319 002635 320 002656 321 002657 323 002660 324 002664 325 002705 326 002713 327 002722 329 002740 330 002744 331 002747 332 002752 334 002761 335 002763 336 002766 337 002773 338 002776 339 003002 344 003014 345 003047 346 003201 347 003204 348 003223 349 003225 352 003226 353 003236 354 003367 355 003372 356 003403 358 003404 363 003423 365 003424 400 003432 401 003434 402 003435 403 003443 405 003445 406 003461 408 003466 409 003500 410 003535 411 003540 413 003547 415 003550 416 003606 418 003611 420 003614 421 003631 422 003635 424 003640 425 003716 426 003721 427 003733 428 003736 429 003741 434 003753 435 003755 436 003765 437 004116 438 004121 441 004140 442 004151 443 004155 444 004200 445 004203 446 004254 449 004255 450 004265 451 004275 452 004300 453 004303 454 004306 455 004307 456 004315 457 004336 458 004340 459 004357 460 004406 461 004417 462 004427 463 004443 464 004445 465 004463 466 004464 467 004465 469 004467 470 004471 471 004476 472 004517 473 004526 475 004544 476 004550 477 004553 478 004556 480 004565 481 004570 482 004573 483 004600 484 004603 485 004607 491 004621 492 004656 493 005011 494 005014 496 005033 497 005035 499 005037 500 005047 501 005104 502 005106 503 005115 505 005116 506 005130 507 005141 508 005176 509 005200 510 005207 ----------------------------------------------------------- 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