COMPILATION LISTING OF SEGMENT block_dcld_in Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/11/86 1000.1 mst Tue Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright (c) 1972 by Massachusetts Institute of * 5* * Technology and Honeywell Information Systems, Inc. * 6* * * 7* * * 8* ****************************************************** */ 9 10 block_dcld_in: proc (P_sp) returns (ptr); 11 12 /* given P_sp, a ptr to a runtime_symbol node, return a pointer to the runtime_block node it was declared in. 13* This can't fail, given a valid symbol table 14* 15* Created: 22 Feb 79 James R. Davis 16* Modified June 83 JMAthane to replace references to "runtime_symbol"structure 17* by calls to runtime_symbol_info_ subroutine. 18**/ 19 20 dcl P_sp ptr parameter; 21 dcl sp ptr; /* copy of P_sp */ 22 dcl (addrel, fixed) builtin; 23 sp = P_sp; 24 do while (runtime_symbol_info_$level (sp) > 1); 25 sp = runtime_symbol_info_$father (sp); 26 end; 27 28 /* now sp pts to level 0 or level 1 entry */ 29 30 return (runtime_symbol_info_$father (sp)); 31 1 1 /* BEGIN INCLUDE FILE ... pascal_symbol_node.incl.pl1 */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(86-09-15,JMAthane), approve(86-09-15,MCR7525), 1 6* audit(86-09-15,Martinson), install(86-11-10,MR12.0-1208): 1 7* Added size_is_encoded field in header. 1 8* END HISTORY COMMENTS */ 1 9 1 10 1 11 /* Written January 1983 by Melanie Weaver */ 1 12 /* Added size_is_encoded field in header May 85. JMAthane */ 1 13 1 14 dcl 1 pascal_symbol_node_header aligned based, 1 15 2 flags unaligned, /* indicate which pieces the node contains */ 1 16 3 version_flag bit (1) unaligned, /* always "0"b for post-version II PL/I format */ 1 17 3 aligned bit (1) unaligned, 1 18 3 packed bit (1) unaligned, 1 19 3 in_with_block bit (1) unaligned, 1 20 3 name_next bit (1) unaligned, 1 21 3 base_type_info bit (1) unaligned, 1 22 3 address bit (1) unaligned, 1 23 3 father_brother bit (1) unaligned, 1 24 3 son_level bit (1) unaligned, 1 25 3 father_type_successor bit (1) unaligned, 1 26 3 size bit (1) unaligned, 1 27 3 offset bit (1) unaligned, 1 28 3 subrange_limits bit (1) unaligned, 1 29 3 array_info bit (1) unaligned, 1 30 3 variant_info bit (1) unaligned, 1 31 3 size_is_encoded bit (1) unaligned, 1 32 3 pad bit (2) unaligned, 1 33 2 version fixed bin (17) unaligned, /* version of this node format */ 1 34 2 type fixed bin (17) unaligned, /* (extended) data type */ 1 35 2 type_offset fixed bin (18) unsigned unaligned; /* rel ptr to type node */ 1 36 1 37 dcl 1 pascal_name_next aligned based, 1 38 2 name fixed bin (18) unsigned unaligned, /* rel ptr to acc name */ 1 39 2 next_token fixed bin (18) unsigned unaligned; /* rel ptr to next of same class */ 1 40 1 41 dcl 1 pascal_base_type_info aligned based, 1 42 2 base_type fixed bin (17) unaligned, /* type of type */ 1 43 2 base_type_offset fixed bin (18) unsigned unaligned; 1 44 1 45 dcl 1 pascal_address aligned based, 1 46 2 location fixed bin (18) unsigned unaligned, /* location in storage class */ 1 47 2 class fixed bin (6) unsigned unaligned, /* storage class */ 1 48 2 use_digit bit (1) unaligned, 1 49 2 units bit (2) unaligned, /* addressing units */ 1 50 2 offset_is_encoded bit (1) unaligned, /* "1"b if pascal_offset is encoded */ 1 51 2 pad bit (8) unaligned; 1 52 1 53 dcl 1 pascal_father_brother aligned based, 1 54 2 father fixed bin (18) unsigned unaligned, /* rel ptr to father node */ 1 55 2 brother fixed bin (18) unsigned unaligned; /* rel ptr to brother node */ 1 56 1 57 dcl 1 pascal_son_level aligned based, 1 58 2 son fixed bin (18) unsigned unaligned, /* rel ptr to son node */ 1 59 2 level fixed bin (6) unsigned unaligned, /* record level; also enum. type elt. */ 1 60 2 pad bit (12) unaligned; 1 61 1 62 dcl 1 pascal_father_type_successor aligned based, 1 63 2 father_type fixed bin (17) unaligned, 1 64 2 successor fixed bin (18) unsigned unaligned; 1 65 1 66 dcl pascal_size fixed bin (35) based; /* precision, string size, etc. */ 1 67 1 68 dcl pascal_offset fixed bin (35) based; /* offset from address */ 1 69 1 70 dcl 1 pascal_subrange_limits aligned based, 1 71 2 flags aligned, 1 72 3 lower_bound_is_encoded bit (1) unaligned, 1 73 3 upper_bound_is_encoded bit (1) unaligned, 1 74 3 pad bit (34) unaligned, 1 75 2 subrange_lower_bound 1 76 fixed bin (35), 1 77 2 subrange_upper_bound 1 78 fixed bin (35); 1 79 1 80 dcl 1 pascal_array_info aligned based, /* info about array subscripts */ 1 81 2 access_info aligned, 1 82 3 ndims fixed bin (6) unsigned unaligned, /* number of dimensions */ 1 83 3 use_digit fixed bin (1) unsigned unaligned, /* if "1"b and units are half words, 1 84* units are really digits */ 1 85 3 array_units fixed bin (2) unsigned unaligned, 1 86 3 virtual_origin_is_encoded 1 87 bit (1) unaligned, 1 88 3 pad bit (26) unaligned, 1 89 2 virtual_origin fixed bin (35), 1 90 2 bounds (nd refer (pascal_array_info.access_info.ndims)) 1 91 aligned, 1 92 3 lower fixed bin (35), 1 93 3 upper fixed bin (35), 1 94 3 multiplier fixed bin (35), 1 95 3 subscript_type fixed bin (17) unaligned, 1 96 3 subscript_type_offset 1 97 fixed bin (18) unsigned unaligned, 1 98 3 flags aligned, 1 99 4 lower_is_encoded 1 100 bit (1) unaligned, 1 101 4 upper_is_encoded 1 102 bit (1) unaligned, 1 103 4 multiplier_is_encoded 1 104 bit (1) unaligned, 1 105 4 pad bit (33) unaligned; 1 106 1 107 dcl 1 pascal_variant_info aligned based, /* info to locate a record's variants */ 1 108 2 number_of_variants 1 109 fixed bin (17) unaligned, 1 110 2 pad bit (18) unaligned, 1 111 2 first_value_in_set fixed bin (35) unaligned, /* value corresponding to the first bit in set stings */ 1 112 2 case (nvariants refer 1 113 (pascal_variant_info.number_of_variants)), 1 114 3 set_offset fixed bin (18) unsigned unaligned, /* bit string specifies cases; 1 115* set's base type is this node's type */ 1 116 3 brother fixed bin (18) unsigned unaligned; /* rel ptr to brother for this variant */ 1 117 1 118 dcl 1 pascal_encoded_value aligned based, /* extended encoded value format */ 1 119 2 code bit (6) unaligned, /* tells how to interpret the other fields */ 1 120 2 (n1, n2) bit (6) unaligned, 1 121 2 n3 fixed bin (18) unsigned unaligned; 1 122 1 123 dcl nvariants fixed bin (17); 1 124 dcl nd fixed bin (6) unsigned; 1 125 1 126 1 127 1 128 /* END INCLUDE FILE ... pascal_symbol_node.incl.pl1 */ 32 2 1 /* BEGIN INCLUDE FILE ... runtime_symbol.incl.pl1 ... Modified 07/79 */ 2 2 2 3 dcl 1 runtime_symbol aligned based, 2 4 2 flag unal bit(1), /* always "1"b for Version II */ 2 5 2 use_digit unal bit(1), /* if "1"b and units are half words units are really digits */ 2 6 2 array_units unal bit(2), 2 7 2 units unal bit(2), /* addressing units */ 2 8 2 type unal bit(6), /* data type */ 2 9 2 level unal bit(6), /* structure level */ 2 10 2 ndims unal bit(6), /* number of dimensions */ 2 11 2 bits unal, 2 12 3 aligned bit(1), 2 13 3 packed bit(1), 2 14 3 simple bit(1), 2 15 2 skip unal bit(1), 2 16 2 scale unal bit(8), /* arithmetic scale factor */ 2 17 2 name unal bit(18), /* rel ptr to acc name */ 2 18 2 brother unal bit(18), /* rel ptr to brother entry */ 2 19 2 father unal bit(18), /* rel ptr to father entry */ 2 20 2 son unal bit(18), /* rel ptr to son entry */ 2 21 2 address unal, 2 22 3 location bit(18), /* location in storage class */ 2 23 3 class bit(4), /* storage class */ 2 24 3 next bit(14), /* rel ptr to next of same class */ 2 25 2 size fixed bin(35), /* encoded string|arith size */ 2 26 2 offset fixed bin(35), /* encoded offset from address */ 2 27 2 virtual_org fixed bin(35), 2 28 2 bounds(1), 2 29 3 lower fixed bin(35), /* encoded lower bound */ 2 30 3 upper fixed bin(35), /* encoded upper bound */ 2 31 3 multiplier fixed bin(35); /* encoded multiplier */ 2 32 2 33 dcl 1 runtime_bound based, 2 34 2 lower fixed bin(35), 2 35 2 upper fixed bin(35), 2 36 2 multiplier fixed bin(35); 2 37 2 38 dcl 1 runtime_block aligned based, 2 39 2 flag unal bit(1), /* always "1"b for Version II */ 2 40 2 quick unal bit(1), /* "1"b if quick block */ 2 41 2 fortran unal bit(1), /* "1"b if fortran program */ 2 42 2 standard unal bit(1), /* "1"b if program has std obj segment */ 2 43 2 owner_flag unal bit(1), /* "1"b if block has valid owner field */ 2 44 2 skip unal bit(1), 2 45 2 type unal bit(6), /* = 0 for a block node */ 2 46 2 number unal bit(6), /* begin block number */ 2 47 2 start unal bit(18), /* rel ptr to start of symbols */ 2 48 2 name unal bit(18), /* rel ptr to name of proc */ 2 49 2 brother unal bit(18), /* rel ptr to brother block */ 2 50 2 father unal bit(18), /* rel ptr to father block */ 2 51 2 son unal bit(18), /* rel ptr to son block */ 2 52 2 map unal, 2 53 3 first bit(18), /* rel ptr to first word of map */ 2 54 3 last bit(18), /* rel ptr to last word of map */ 2 55 2 entry_info unal bit(18), /* info about entry of quick block */ 2 56 2 header unal bit(18), /* rel ptr to symbol header */ 2 57 2 chain(4) unal bit(18), /* chain(i) is rel ptr to first symbol 2 58* on start list with length >= 2**i */ 2 59 2 token(0:5) unal bit(18), /* token(i) is rel ptr to first token 2 60* on list with length >= 2 ** i */ 2 61 2 owner unal bit(18); /* rel ptr to owner block */ 2 62 2 63 dcl 1 runtime_token aligned based, 2 64 2 next unal bit(18), /* rel ptr to next token */ 2 65 2 dcl unal bit(18), /* rel ptr to first dcl of this token */ 2 66 2 name, /* ACC */ 2 67 3 size unal unsigned fixed bin (9), /* number of chars in token */ 2 68 3 string unal char(n refer(runtime_token.size)); 2 69 2 70 dcl 1 encoded_value aligned based, 2 71 2 flag bit (2) unal, 2 72 2 code bit (4) unal, 2 73 2 n1 bit (6) unal, 2 74 2 n2 bit (6) unal, 2 75 2 n3 bit (18) unal; 2 76 2 77 /* END INCLUDE FILE ... runtime_symbol.incl.pl1 */ 33 3 1 /* BEGIN INCLUDE FILE runtime_symbol_info_.incl.pl1 */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 3 7* audit(86-09-11,Martinson), install(86-11-10,MR12.0-1208): 3 8* Added runtime_symbol_info_$subrange entry which was missing. Added 3 9* has_dimensions and has subrange_limits fields in type_info record. 3 10* Structure version numbers have not been changed since this change does not 3 11* affect existing programs. 3 12* END HISTORY COMMENTS */ 3 13 3 14 3 15 /* Declarations for using the various entry points in runtime_symbol_info_ */ 3 16 /* NOTE: These entries do not support PL/1 version 1. */ 3 17 3 18 /* Made structures aligned, removed variable extent from runtime_array_info.bounds 08/25/83 S. Herbst */ 3 19 /* Added version strings to structures 10/05/83 S. Herbst */ 3 20 /* Added has_dimensions and has_subrange_limits bits in type_info 3 21*Added subrange entry. JMAthane 08/31/84 */ 3 22 3 23 3 24 dcl runtime_symbol_info_$type entry (ptr, ptr, fixed bin (35)); 3 25 3 26 dcl 1 runtime_type_info aligned based, 3 27 2 version char (8), /* = "RUNTYP_1" */ 3 28 2 flags, 3 29 3 aligned bit (1) unal, 3 30 3 packed bit (1) unal, 3 31 3 size_is_encoded bit (1) unal, 3 32 3 has_dimensions bit (1) unal, 3 33 3 has_subrange_limits bit (1) unal, 3 34 3 pad bit (23) unal, 3 35 2 scale fixed bin (7) unal, 3 36 2 (type, base_type) fixed bin (18) unsigned unal, 3 37 2 (type_addr, base_type_addr) ptr, 3 38 2 size fixed bin (35); 3 39 3 40 dcl runtime_symbol_info_$father entry (ptr) returns (ptr); 3 41 3 42 dcl runtime_symbol_info_$brother entry (ptr) returns (ptr); 3 43 3 44 dcl runtime_symbol_info_$father_type entry (ptr) returns (ptr); 3 45 3 46 dcl runtime_symbol_info_$son entry (ptr) returns (ptr); 3 47 3 48 dcl runtime_symbol_info_$successor entry (ptr) returns (ptr); 3 49 3 50 dcl runtime_symbol_info_$name entry (ptr) returns (ptr); 3 51 3 52 dcl runtime_symbol_info_$level entry (ptr) returns (fixed bin); 3 53 3 54 dcl runtime_symbol_info_$next entry (ptr) returns (ptr); 3 55 3 56 dcl runtime_symbol_info_$address entry (ptr, ptr, fixed bin (35)); 3 57 3 58 dcl 1 runtime_address_info aligned based, 3 59 2 version char (8), /* = "RUNADR_1" */ 3 60 2 location fixed bin (18) unsigned unal, 3 61 2 class fixed bin (6) unsigned unal, 3 62 2 use_digit fixed bin (1) unsigned unal, 3 63 2 units fixed bin (2) unsigned unal, 3 64 2 offset_is_encoded bit (1) unal, 3 65 2 pad bit (8) unal, 3 66 2 offset fixed bin (35); 3 67 3 68 dcl runtime_symbol_info_$array_dims entry (ptr) returns (fixed bin); 3 69 3 70 dcl runtime_symbol_info_$array entry (ptr, ptr, fixed bin (35)); 3 71 3 72 dcl 1 runtime_array_info aligned based, 3 73 2 version char (8), /* = "RUNARY_1" */ 3 74 2 access_info aligned, 3 75 3 ndims fixed bin (6) unsigned unaligned, /* number of dimensions */ 3 76 3 use_digit fixed bin (1) unsigned unaligned, /* if "1"b and units are half words, 3 77* units are really digits */ 3 78 3 array_units fixed bin (2) unsigned unaligned, 3 79 3 virtual_origin_is_encoded 3 80 bit (1) unaligned, 3 81 3 pad bit (26) unaligned, 3 82 2 virtual_origin fixed bin (35), 3 83 2 bounds (16) 3 84 aligned, 3 85 3 flags aligned, 3 86 4 lower_is_encoded 3 87 bit (1) unaligned, 3 88 4 upper_is_encoded 3 89 bit (1) unaligned, 3 90 4 multiplier_is_encoded 3 91 bit (1) unaligned, 3 92 4 pad bit (33) unaligned, 3 93 3 lower fixed bin (35), 3 94 3 upper fixed bin (35), 3 95 3 multiplier fixed bin (35), 3 96 3 subscript_type fixed bin (35), 3 97 3 subscript_type_addr ptr; 3 98 3 99 dcl n_dims fixed bin; 3 100 3 101 dcl runtime_symbol_info_$n_variants entry (ptr) returns (fixed bin (35)); 3 102 3 103 dcl runtime_symbol_info_$variant entry (ptr, ptr, fixed bin (35)); 3 104 3 105 dcl 1 runtime_variant_info aligned based, 3 106 2 version char (8), /* = "RUNVAR_1" */ 3 107 2 number_of_variants fixed bin, 3 108 2 first_value_in_set fixed bin (35), /* value corresponding to the first bit in set stings */ 3 109 2 case (n_variants), 3 110 3 set_addr ptr, /* bit string specifies cases; 3 111* set's base type is this node's type */ 3 112 3 brother_addr ptr; /* ptr to brother for this variant */ 3 113 3 114 dcl n_variants fixed bin (35); 3 115 3 116 dcl runtime_symbol_info_$subrange entry (ptr, ptr, fixed bin (35)); 3 117 3 118 dcl 1 runtime_subrange_info based, 3 119 2 version char (8), /* = "RUNSUB_1" */ 3 120 2 flags aligned, 3 121 3 has_subrange_limits bit (1) unal, 3 122 3 lower_bound_is_encoded bit (1) unal, 3 123 3 upper_bound_is_encoded bit (1) unal, 3 124 3 pad bit (33) unal, 3 125 2 subrange_lower_bound fixed bin (35), 3 126 2 subrange_upper_bound fixed bin (35); 3 127 3 128 3 129 dcl RUNTIME_TYPE_INFO_VERSION_1 char (8) int static options (constant) init ("RUNTYP_1"); 3 130 dcl RUNTIME_ADDRESS_INFO_VERSION_1 char (8) int static options (constant) init ("RUNADR_1"); 3 131 dcl RUNTIME_ARRAY_INFO_VERSION_1 char (8) int static options (constant) init ("RUNARY_1"); 3 132 dcl RUNTIME_VARIANT_INFO_VERSION_1 char (8) int static options (constant) init ("RUNVAR_1"); 3 133 dcl RUNTIME_SUBRANGE_INFO_VERSION_1 char (8) int static options (constant) init ("RUNSUB_1"); 3 134 3 135 3 136 /* END INCLUDE FILE runtime_symbol_info_.incl.pl1 */ 34 35 end block_dcld_in; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/86 0911.4 block_dcld_in.pl1 >spec>install>1208>block_dcld_in.pl1 32 1 11/10/86 0953.4 pascal_symbol_node.incl.pl1 >spec>install>1208>pascal_symbol_node.incl.pl1 33 2 11/26/79 1320.6 runtime_symbol.incl.pl1 >ldd>include>runtime_symbol.incl.pl1 34 3 11/10/86 0953.4 runtime_symbol_info_.incl.pl1 >spec>install>1208>runtime_symbol_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_sp parameter pointer dcl 20 ref 10 23 runtime_symbol_info_$father 000010 constant entry external dcl 3-40 ref 25 30 runtime_symbol_info_$level 000012 constant entry external dcl 3-52 ref 24 sp 000100 automatic pointer dcl 21 set ref 23* 24* 25* 25* 30* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. RUNTIME_ADDRESS_INFO_VERSION_1 internal static char(8) initial unaligned dcl 3-130 RUNTIME_ARRAY_INFO_VERSION_1 internal static char(8) initial unaligned dcl 3-131 RUNTIME_SUBRANGE_INFO_VERSION_1 internal static char(8) initial unaligned dcl 3-133 RUNTIME_TYPE_INFO_VERSION_1 internal static char(8) initial unaligned dcl 3-129 RUNTIME_VARIANT_INFO_VERSION_1 internal static char(8) initial unaligned dcl 3-132 addrel builtin function dcl 22 encoded_value based structure level 1 dcl 2-70 fixed builtin function dcl 22 n_dims automatic fixed bin(17,0) dcl 3-99 n_variants automatic fixed bin(35,0) dcl 3-114 nd automatic fixed bin(6,0) unsigned dcl 1-124 nvariants automatic fixed bin(17,0) dcl 1-123 pascal_address based structure level 1 dcl 1-45 pascal_array_info based structure level 1 dcl 1-80 pascal_base_type_info based structure level 1 dcl 1-41 pascal_encoded_value based structure level 1 dcl 1-118 pascal_father_brother based structure level 1 dcl 1-53 pascal_father_type_successor based structure level 1 dcl 1-62 pascal_name_next based structure level 1 dcl 1-37 pascal_offset based fixed bin(35,0) dcl 1-68 pascal_size based fixed bin(35,0) dcl 1-66 pascal_son_level based structure level 1 dcl 1-57 pascal_subrange_limits based structure level 1 dcl 1-70 pascal_symbol_node_header based structure level 1 dcl 1-14 pascal_variant_info based structure level 1 dcl 1-107 runtime_address_info based structure level 1 dcl 3-58 runtime_array_info based structure level 1 dcl 3-72 runtime_block based structure level 1 dcl 2-38 runtime_bound based structure level 1 unaligned dcl 2-33 runtime_subrange_info based structure level 1 unaligned dcl 3-118 runtime_symbol based structure level 1 dcl 2-3 runtime_symbol_info_$address 000000 constant entry external dcl 3-56 runtime_symbol_info_$array 000000 constant entry external dcl 3-70 runtime_symbol_info_$array_dims 000000 constant entry external dcl 3-68 runtime_symbol_info_$brother 000000 constant entry external dcl 3-42 runtime_symbol_info_$father_type 000000 constant entry external dcl 3-44 runtime_symbol_info_$n_variants 000000 constant entry external dcl 3-101 runtime_symbol_info_$name 000000 constant entry external dcl 3-50 runtime_symbol_info_$next 000000 constant entry external dcl 3-54 runtime_symbol_info_$son 000000 constant entry external dcl 3-46 runtime_symbol_info_$subrange 000000 constant entry external dcl 3-116 runtime_symbol_info_$successor 000000 constant entry external dcl 3-48 runtime_symbol_info_$type 000000 constant entry external dcl 3-24 runtime_symbol_info_$variant 000000 constant entry external dcl 3-103 runtime_token based structure level 1 dcl 2-63 runtime_type_info based structure level 1 dcl 3-26 runtime_variant_info based structure level 1 dcl 3-105 NAME DECLARED BY EXPLICIT CONTEXT. block_dcld_in 000007 constant entry external dcl 10 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 130 144 62 140 Length 366 62 14 205 45 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME block_dcld_in 76 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME block_dcld_in 000100 sp block_dcld_in THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. runtime_symbol_info_$father runtime_symbol_info_$level NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000003 23 000014 24 000020 25 000034 26 000044 30 000045 ----------------------------------------------------------- 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