COMPILATION LISTING OF SEGMENT probe_create_reference_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 11/11/88 1546.1 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 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 14 /****^ HISTORY COMMENTS: 15* 1) change(88-06-27,WAAnderson), approve(88-09-30,MCR7952), 16* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 17* Added initialization data . Probe often used values that had not be 18* properly initialized. 19* 2) change(88-09-07,WAAnderson), approve(88-09-30,MCR7952), 20* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 21* Added format control comment to make the source more readable. 22* END HISTORY COMMENTS */ 23 24 25 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 26 27 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 28 29 probe_create_reference_: 30 proc (P_probe_info_ptr, P_ref_ptr); 31 32 /* * This procedure allocates and initializes a reference node in the current 33* * expression area. */ 34 /* Modified June 83 JMAthane to initialize new "type_ptr" field */ 35 36 dcl ( 37 P_probe_info_ptr pointer, 38 P_ref_ptr pointer, /* pointer to reference node we create */ 39 P_ref_block_ptr pointer 40 ) parameter;/* pointer to reference block to initialize */ 41 42 43 dcl probe_seg_info_ entry (ptr, ptr, fixed bin (35)) returns (ptr); 44 dcl (addr, null) builtin; 45 46 probe_info_ptr = P_probe_info_ptr; 47 P_ref_ptr = null (); /* until we find out otherwise */ 48 49 allocate ref_block in (expression_area) set (ref_block_ptr); 50 51 ref_block.ref_node.type_ptr = null; 52 ref_block.ref_node.argument_list = addr (ref_block.arglist); 53 ref_block.ref_node.subscript_ptr = addr (ref_block.subscripts); 54 ref_block.ref_node.source_info_ptr = addr (ref_block.source_info); 55 ref_block.ref_node.subscript_refs_ptr = addr (ref_block.sub_refs); 56 ref_block.subscripts.number = 0; 57 ref_block.arglist.number = 0; 58 ref_block.ref_node.optional_info.n_arguments = 0; 59 ref_block.ref_node.optional_info.n_subscripts = 0; 60 ref_block.ref_node.symbol_ptr = null (); 61 ref_block.ref_node.type_ptr = null (); 62 ref_block.ref_node.address_ptr = null (); 63 ref_block.ref_node.base_addr = null (); 64 ref_block.ref_node.name = ""; 65 ref_block.ref_node.type = 0; 66 ref_block.ref_node.descriptor = 0; 67 ref_block.ref_node.precision = 0; 68 ref_block.ref_node.flags = "0"b; 69 ref_block.ref_node.constant_token_ptr = null (); 70 71 ref_block.source_info.seg_info_ptr = 72 probe_seg_info_ (probe_info_ptr, null (), (0)); 73 ref_block.c_symbol_ptr = null (); 74 75 P_ref_ptr = addr (ref_block.ref_node);/* all done */ 76 return; /* end of probe_create_reference_ entry */ 77 78 79 probe_create_reference_$init: 80 entry (P_probe_info_ptr, P_ref_block_ptr); 81 82 /* * This entry just initializes an already existing ref_block, probably 83* * declared automatic in its caller. */ 84 85 probe_info_ptr = P_probe_info_ptr; 86 ref_block_ptr = P_ref_block_ptr; 87 88 89 ref_block.ref_node.type_ptr = null; 90 ref_block.ref_node.argument_list = addr (ref_block.arglist); 91 ref_block.ref_node.subscript_ptr = addr (ref_block.subscripts); 92 ref_block.ref_node.source_info_ptr = addr (ref_block.source_info); 93 ref_block.ref_node.subscript_refs_ptr = addr (ref_block.sub_refs); 94 ref_block.ref_node.optional_info.n_subscripts = 0; 95 ref_block.subscripts.number = 0; 96 ref_block.arglist.number = 0; 97 ref_block.ref_node.symbol_ptr = null (); 98 ref_block.ref_node.type_ptr = null (); 99 ref_block.ref_node.address_ptr = null (); 100 ref_block.ref_node.base_addr = null (); 101 ref_block.ref_node.name = ""; 102 ref_block.ref_node.type = 0; 103 ref_block.ref_node.descriptor = 0; 104 ref_block.ref_node.precision = 0; 105 ref_block.ref_node.flags = "0"b; 106 ref_block.ref_node.constant_token_ptr = null (); 107 ref_block.source_info.seg_info_ptr = 108 probe_seg_info_ (probe_info_ptr, null (), (0)); 109 ref_block.c_symbol_ptr = null (); 110 111 return; /* end of code for $init entrypoint */ 112 113 probe_create_reference_$destroy: 114 entry (P_probe_info_ptr, P_ref_ptr); 115 116 /* * This entry frees a reference node and associated storage that was 117* * created using probe_create_reference_. Since the expression area is 118* * freed with every request invocation, however, it is usually unnecessary 119* * to use this entrypoint. */ 120 121 probe_info_ptr = P_probe_info_ptr; 122 123 ref_block_ptr = P_ref_ptr; 124 P_ref_ptr = null (); 125 126 free ref_block in (expression_area); 127 return; /* end of $destroy entrypoint */ 128 1 1 /* BEGIN INCLUDE FILE probe_info.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(88-10-24,WAAnderson), approve(88-10-24,MCR7952), 1 7* audit(88-10-24,RWaters), install(88-10-27,MR12.2-1194): 1 8* Added field 'retry_using_main' to add new C feature. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 /* Created: 04/22/79 W. Olin Sibert, from subsystem_info 1 13* Modified: 22 Sept 79 JRd to remove: default (ptr & (auto|based)) init (null ()); 1 14* Added flags.setting_break 08/22/83 Steve Herbst 1 15* Added flags.executing_quit_request 01/15/85 Steve Herbst 1 16**/ 1 17 1 18 dcl 1 probe_info aligned based (probe_info_ptr), /* standard data for a probe invocation */ 1 19 2 probe_info_version fixed bin, /* version of this structure */ 1 20 1 21 2 static_info_ptr pointer unaligned, /* pointer to static information structure */ 1 22 2 modes_ptr pointer unaligned, /* pointer to probe_modes structure */ 1 23 1 24 2 ptr_to_current_source ptr, /* current_source is based on this */ 1 25 2 ptr_to_initial_source ptr, /* initial_source is based on this */ 1 26 2 machine_cond_ptr pointer, /* pointer to machine conditions, if we faulted to get here */ 1 27 1 28 2 token_info aligned, /* information about token chain currently being processed */ 1 29 3 first_token pointer unaligned, /* first token in chain */ 1 30 3 ct pointer unaligned, /* pointer to current token; updated in MANY places */ 1 31 3 end_token bit (18) aligned, /* token type at which to stop scanning token chain */ 1 32 3 buffer_ptr pointer unaligned, /* pointer to input buffer */ 1 33 3 buffer_lth fixed bin (21), /* and length */ 1 34 1 35 2 random_info aligned, 1 36 3 current_stack_frame pointer unaligned, /* stack frame pointer for frame in which probe was invoked */ 1 37 3 input_type fixed bin, /* current input type */ 1 38 3 language_type fixed bin, /* current language being processed */ 1 39 3 return_method fixed bin, /* how we should return after exiting probe */ 1 40 3 entry_method fixed bin, /* how we got here in the first place */ 1 41 3 pad1 (19) bit (36) aligned, 1 42 1 43 2 break_info, /* break info -- only interesting if we got here via a break */ 1 44 3 break_slot_ptr pointer, /* pointer to break slot -- non-null IFF at a break */ 1 45 3 last_break_slot_ptr pointer unaligned, /* pointer to previous break slot, not presently used */ 1 46 3 break_reset bit (1) aligned, /* this break has been reset by somebody further on */ 1 47 3 real_break_return_loc pointer, /* where to REALLY return to, modulo previous bit */ 1 48 1 49 2 probe_area_info, /* information about various probe areas */ 1 50 3 break_segment_ptr pointer unaligned, /* pointer to Personid.probe */ 1 51 3 break_area_ptr pointer unaligned, /* pointer to area in break segment */ 1 52 3 scratch_area_ptr pointer unaligned, /* pointer to probe scratch seg in process dir */ 1 53 3 probe_area_ptr pointer unaligned, /* This area lasts as long as an invocation of probe. */ 1 54 3 work_area_ptr pointer unaligned, /* This area lasts as long as the current request line */ 1 55 3 expression_area_ptr pointer unaligned, /* This area lasts as long as the current command */ 1 56 1 57 2 flags aligned, /* this, in particular, should be saved and restored correctly */ 1 58 (3 execute, /* "1"b => execute requests, "0"b => just check syntax */ 1 59 3 in_listener, /* ON => in probe listener loop */ 1 60 3 executing_request, /* ON => executing a request */ 1 61 3 in_interpret_line, /* executing in probe_listen_$interpret_line */ 1 62 3 setting_break, /* executing "after" or "before": check syntax of "if" */ 1 63 3 executing_quit_request, /* to prevent error looping during "quit" request */ 1 64 3 pad (30)) bit (1) unaligned, 1 65 1 66 2 io_switches, /* switches probe will do normal I/O on */ 1 67 3 input_switch pointer, 1 68 3 output_switch pointer, 1 69 1 70 2 error_info, /* information about the last error saved for later printing */ 1 71 3 error_code fixed bin (35), 1 72 3 error_message char (300) varying, 1 73 1 74 2 listener_info, /* internal use by probe listener */ 1 75 3 request_name character (32) varying, /* primary name of the request being processed */ 1 76 3 abort_probe_label label variable, 1 77 3 abort_line_label label variable, 1 78 3 depth fixed binary, /* count of active invocations of probe */ 1 79 3 previous pointer unaligned, /* -> previous invocation's info */ 1 80 3 next pointer unaligned, 1 81 1 82 2 end_of_probe_info pointer aligned, 1 83 2 retry_using_main fixed bin aligned; 1 84 1 85 1 86 dcl probe_info_ptr pointer; 1 87 1 88 dcl probe_info_version fixed bin static options (constant) initial (1); 1 89 1 90 dcl probe_info_version_1 fixed bin static options (constant) initial (1); 1 91 1 92 dcl scratch_area area based (probe_info.scratch_area_ptr); 1 93 dcl probe_area area based (probe_info.probe_area_ptr); 1 94 dcl work_area area based (probe_info.work_area_ptr); 1 95 dcl expression_area area based (probe_info.expression_area_ptr); 1 96 1 97 /* END INCLUDE FILE probe_info.incl.pl1 */ 129 2 1 /* BEGIN INCLUDE FILE probe_references.incl.pl1 */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 2 5* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 2 6* Added new field (c_symbol) for C-Probe support. 2 7* 2) change(88-10-28,WAAnderson), approve(88-10-28,MCR7952), 2 8* audit(88-10-31,RWaters), install(88-11-11,MR12.2-1210): 2 9* Added new field (c_sub_c_ptr) for C-Probe_support. 2 10* END HISTORY COMMENTS */ 2 11 2 12 /* Split out of probe_tokens, 04/22/79 WOS */ 2 13 /* modified for probe variables Feb 19 80 JRD */ 2 14 /* Modified June 83 JMAthane to add "type_ptr" and "builtin" fields */ 2 15 2 16 dcl 1 reference_node aligned based, /* information about a reference */ 2 17 2 symbol_ptr pointer aligned, /* to symbol table entry for reference */ 2 18 2 type_ptr pointer aligned, /* to symbol table entry for type (null if none) */ 2 19 2 address_ptr pointer aligned, /* to location of variable */ 2 20 2 base_addr pointer aligned, /* pointer on which whole symbol is based */ 2 21 2 source_info_ptr pointer aligned, /* to symbol structure for reference */ 2 22 2 23 2 name char (256) unaligned varying, /* symbol name */ 2 24 2 25 2 type fixed bin (35), /* data type */ 2 26 2 descriptor fixed bin (35), /* type || packed */ 2 27 2 precision fixed bin (35), /* scale and precision */ 2 28 2 flags, 2 29 3 packed bit (1) unal, /* data is in packed format */ 2 30 3 constant bit (1) unal, /* data is really a constant */ 2 31 3 cross_section bit (1) unal, /* reference is an array cross-section */ 2 32 3 function bit (1) unal, /* reference is function value */ 2 33 3 octal bit (1) unal, /* indicates that this is the octal bif */ 2 34 3 star_extent bit (1) unal, /* reference is a star subscript for father */ 2 35 3 have_generation bit (1) unal, /* this reference has an explicitly specified generation */ 2 36 3 pseudo_var bit (1) unal, /* it is ok to assign to it */ 2 37 3 probe_variable bit (1) unal, 2 38 3 path bit (1) unal, /* it's a pathname/virtual entry */ 2 39 3 builtin bit (1) unal, /* probe builtinvalue */ 2 40 3 c_ptr_to_char bit (1) unal, 2 41 3 c_sub_c_ptr bit (1) unal, 2 42 3 pad2 bit (23) unal, 2 43 2 44 2 optional_info, /* information which may or may not be present */ 2 45 3 argument_list pointer unaligned, /* pointer to reference_arg_list */ 2 46 3 subscript_ptr pointer unaligned, /* pointer to reference_subscripts */ 2 47 3 n_arguments fixed bin, /* number of arguments in argument list */ 2 48 3 n_subscripts fixed bin, /* number of subscripts present */ 2 49 2 50 2 constant_token_ptr pointer unaligned, /* pointer to constant token if this is a constant */ 2 51 2 subscript_refs_ptr pointer unaligned, /* pointer to array of subscript reference node pointers */ 2 52 2 invocation_level fixed bin, /* invocation level number ("[-17]") for this reference */ 2 53 2 probe_var_info_ptr ptr unal, /* only if flags.probe_variable */ 2 54 2 c_symbol_ptr ptr unal, 2 55 2 pad1 (9) pointer unaligned, 2 56 2 end_of_reference_node pointer aligned; 2 57 2 58 2 59 dcl 1 reference_arg_list aligned based, /* argument list; based on reference.argument_list */ 2 60 2 number fixed bin, /* number of arguments actually present */ 2 61 2 node (16) pointer aligned; /* reference node pointers for each argument */ 2 62 2 63 2 64 dcl 1 reference_subscripts aligned based, /* subscript array; based on reference.subscript_ptr */ 2 65 2 number fixed bin, /* number actually present */ 2 66 2 value (2, 16) fixed bin (24); /* values for lower and upper bound for each */ 2 67 2 68 2 69 dcl 1 subscript_reference_ptrs aligned based, /* array of pointers to subscript reference nodes */ 2 70 2 ptr (2, 16) pointer aligned; 2 71 2 72 /* END INCLUDE FILE probe_references.incl.pl1 */ 130 3 1 /* BEGIN INCLUDE FILE probe_ref_block.incl.pl1 */ 3 2 3 3 /* * This declares all the necessary storage for a reference node and the 3 4* * things it points to. Programs which create reference nodes should either 3 5* * declare automatic ref_blocks like ref_block, and call probe_create_reference_$init 3 6* * to initialize the automatic copies, or call probe_create_reference_ directly 3 7* * to allocate them in expression_area and initialize the, returning a pointer 3 8* * which will be valid for the duration of the request. */ 3 9 3 10 dcl ref_block_ptr pointer; 3 11 3 12 dcl 1 ref_block aligned based (ref_block_ptr), /* we allocate this in the area and fill it in */ 3 13 2 ref_node aligned like reference_node, 3 14 2 subscripts aligned like reference_subscripts, 3 15 2 arglist aligned like reference_arg_list, 3 16 2 source_info aligned like source_info, 3 17 2 sub_refs aligned like subscript_reference_ptrs; 3 18 3 19 /* END INCLUDE FILE probe_ref_block.incl.pl1 */ 131 4 1 /* BEGIN INCLUDE FILE ... probe_source_info.incl.pl1 4 2* 4 3* James R. Davis 2 July 79 */ 4 4 4 5 dcl 1 source_info based aligned, 4 6 2 stmnt_map_entry_index fixed bin, /* index in stmnt map for this stmnt */ 4 7 2 instruction_ptr ptr, /* to last instruction executed */ 4 8 2 block_ptr ptr, /* to runtime_block node */ 4 9 2 stack_ptr ptr, /* to a stack frame */ 4 10 2 entry_ptr ptr, /* to entry seq. for this proc */ 4 11 2 seg_info_ptr ptr; /* to seg_info */ 4 12 4 13 dcl 1 current_source aligned like source_info based (probe_info.ptr_to_current_source); 4 14 dcl 1 initial_source aligned like source_info based (probe_info.ptr_to_initial_source); 4 15 4 16 /* END INCLUDE FILE ... probe_source_info.incl.pl1 */ 132 133 134 end; /* probe_create_reference_ external procedure */ SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/88 1545.0 probe_create_reference_.pl1 >spec>install>MR12.2-1210>probe_create_reference_.pl1 129 1 10/27/88 1339.2 probe_info.incl.pl1 >ldd>include>probe_info.incl.pl1 130 2 11/11/88 1543.8 probe_references.incl.pl1 >spec>install>MR12.2-1210>probe_references.incl.pl1 131 3 11/26/79 1320.7 probe_ref_block.incl.pl1 >ldd>include>probe_ref_block.incl.pl1 132 4 11/26/79 1320.6 probe_source_info.incl.pl1 >ldd>include>probe_source_info.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. P_probe_info_ptr parameter pointer dcl 36 ref 29 46 79 85 113 121 P_ref_block_ptr parameter pointer dcl 36 ref 79 86 P_ref_ptr parameter pointer dcl 36 set ref 29 47* 75* 113 123 124* addr builtin function dcl 44 ref 52 53 54 55 75 90 91 92 93 address_ptr 4 based pointer level 3 dcl 3-12 set ref 62* 99* arglist 206 based structure level 2 dcl 3-12 set ref 52 90 argument_list 117 based pointer level 4 packed packed unaligned dcl 3-12 set ref 52* 90* base_addr 6 based pointer level 3 dcl 3-12 set ref 63* 100* c_symbol_ptr 127 based pointer level 3 packed packed unaligned dcl 3-12 set ref 73* 109* constant_token_ptr 123 based pointer level 3 packed packed unaligned dcl 3-12 set ref 69* 106* descriptor 114 based fixed bin(35,0) level 3 dcl 3-12 set ref 66* 103* expression_area based area(1024) dcl 1-95 ref 49 126 expression_area_ptr 63 based pointer level 3 packed packed unaligned dcl 1-18 ref 49 126 flags 116 based structure level 3 dcl 3-12 set ref 68* 105* n_arguments 121 based fixed bin(17,0) level 4 dcl 3-12 set ref 58* n_subscripts 122 based fixed bin(17,0) level 4 dcl 3-12 set ref 59* 94* name 12 based varying char(256) level 3 dcl 3-12 set ref 64* 101* null builtin function dcl 44 ref 47 51 60 61 62 63 69 71 71 73 89 97 98 99 100 106 107 107 109 124 number 144 based fixed bin(17,0) level 3 in structure "ref_block" dcl 3-12 in procedure "probe_create_reference_" set ref 56* 95* number 206 based fixed bin(17,0) level 3 in structure "ref_block" dcl 3-12 in procedure "probe_create_reference_" set ref 57* 96* optional_info 117 based structure level 3 dcl 3-12 precision 115 based fixed bin(35,0) level 3 dcl 3-12 set ref 67* 104* probe_area_info 56 based structure level 2 dcl 1-18 probe_info based structure level 1 dcl 1-18 probe_info_ptr 000100 automatic pointer dcl 1-86 set ref 46* 49 71* 85* 107* 121* 126 probe_seg_info_ 000010 constant entry external dcl 43 ref 71 107 ref_block based structure level 1 dcl 3-12 set ref 49 126 ref_block_ptr 000102 automatic pointer dcl 3-10 set ref 49* 51 52 52 53 53 54 54 55 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 73 75 86* 89 90 90 91 91 92 92 93 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 123* 126 ref_node based structure level 2 dcl 3-12 set ref 75 reference_arg_list based structure level 1 dcl 2-59 reference_node based structure level 1 dcl 2-16 reference_subscripts based structure level 1 dcl 2-64 seg_info_ptr 262 based pointer level 3 dcl 3-12 set ref 71* 107* source_info 250 based structure level 2 in structure "ref_block" dcl 3-12 in procedure "probe_create_reference_" set ref 54 92 source_info based structure level 1 dcl 4-5 in procedure "probe_create_reference_" source_info_ptr 10 based pointer level 3 dcl 3-12 set ref 54* 92* sub_refs 264 based structure level 2 dcl 3-12 set ref 55 93 subscript_ptr 120 based pointer level 4 packed packed unaligned dcl 3-12 set ref 53* 91* subscript_reference_ptrs based structure level 1 dcl 2-69 subscript_refs_ptr 124 based pointer level 3 packed packed unaligned dcl 3-12 set ref 55* 93* subscripts 144 based structure level 2 dcl 3-12 set ref 53 91 symbol_ptr based pointer level 3 dcl 3-12 set ref 60* 97* type 113 based fixed bin(35,0) level 3 dcl 3-12 set ref 65* 102* type_ptr 2 based pointer level 3 dcl 3-12 set ref 51* 61* 89* 98* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. current_source based structure level 1 dcl 4-13 initial_source based structure level 1 dcl 4-14 probe_area based area(1024) dcl 1-93 probe_info_version internal static fixed bin(17,0) initial dcl 1-88 probe_info_version_1 internal static fixed bin(17,0) initial dcl 1-90 scratch_area based area(1024) dcl 1-92 work_area based area(1024) dcl 1-94 NAMES DECLARED BY EXPLICIT CONTEXT. probe_create_reference_ 000010 constant entry external dcl 29 probe_create_reference_$destroy 000305 constant entry external dcl 113 probe_create_reference_$init 000153 constant entry external dcl 79 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 444 456 345 454 Length 726 345 12 233 76 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME probe_create_reference_ 94 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME probe_create_reference_ 000100 probe_info_ptr probe_create_reference_ 000102 ref_block_ptr probe_create_reference_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. probe_seg_info_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 29 000004 46 000015 47 000021 49 000023 51 000032 52 000034 53 000036 54 000040 55 000042 56 000044 57 000045 58 000046 59 000047 60 000050 61 000051 62 000052 63 000053 64 000054 65 000055 66 000056 67 000057 68 000060 69 000114 71 000116 73 000142 75 000145 76 000150 79 000151 85 000160 86 000164 89 000167 90 000171 91 000173 92 000175 93 000200 94 000202 95 000203 96 000204 97 000205 98 000206 99 000207 100 000210 101 000211 102 000212 103 000213 104 000214 105 000215 106 000251 107 000253 109 000277 111 000302 113 000303 121 000312 123 000316 124 000321 126 000323 127 000326 ----------------------------------------------------------- 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