COMPILATION LISTING OF SEGMENT plio2_pdt_ Compiled by: Multics PL/I Compiler, Release 28d, of September 14, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 10/03/83 1418.3 mst Mon 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 /* ****************************************************** 11* * * 12* * * 13* * Copyright (c) 1972 by Massachusetts Institute of * 14* * Technology and Honeywell Information Systems, Inc. * 15* * * 16* * * 17* ****************************************************** */ 18 19 plio2_pdt_: 20 put_value_data_:proc(pspp) options(support); 21 22 23 24 25 26 27 28 1 1 /* program is part of PLIO2 1 2* P. A. Belmont 1 3* Honeywell Information Systems Inc. 1 4* 575 Main Street, Cambridge Mass., 02139 1 5* 1 6* Conversion and I/O programs for PL/2 */ 29 30 /* updated 10-14-71 */ 31 32 go to start; 33 34 35 dcl (pspp,psp,sslp ) ptr; 36 dcl (offset,i,ii) fixed bin(15); 37 dcl idesc bit(36); 38 39 dcl (addr,addrel,bit,divide,fixed,null,substr) builtin; 40 dcl plio2_put_util_$put_field_ ext entry(ptr,ptr,fixed bin(15)); 41 dcl plio2_put_util_$put_prep_ ext entry(ptr); 42 dcl plio2_ldo_$ldo_for_data ext entry(ptr); 43 dcl plio2_signal_$s_ ext entry(ptr,char(*),char(*),fixed bin(17)); 44 45 dcl plio2_sym_to_desc ext entry(ptr,ptr,ptr,ptr) returns(bit(36) aligned); 2 1 /* BEGIN INCLUDE FILE ... plio2_ps.incl.pl1 */ 2 2 /* Stream I/O data block used by PL/I I/O runtime routines. 2 3* 2 4* Modified: 31 January 1978 by RAB to change plio2_data_$fsb_thread to plio2_data_fsb_thread_ 2 5**/ 2 6 /* format: style3,idind30 */ 2 7 2 8 /* based */ 2 9 2 10 declare 1 ps aligned based (psp),/* items set NORMALLY by compiled procedures */ 2 11 2 stack_frame_p ptr, /* items set in block prologue */ 2 12 2 ST_top_p ptr, 2 13 2 ST_block_p ptr, 2 14 2 format_area_p ptr, 2 15 2 ss_list_p ptr, 2 16 2 ab_return, /* items set in prep call */ 2 17 3 abret (3) ptr, 2 18 2 source_p ptr, /* addr(fakefsb) for string option, 2 19* addr(file) for explicit file option */ 2 20 2 special_list_p ptr, /* addr(OKlist) for get data, addr(format_list) for edit */ 2 21 2 copy_file_p ptr, 2 22 2 job aligned, 2 23 3 explicit_file bit (1) unal, 2 24 3 string bit (1) unal, 2 25 3 varying_string bit (1) unal, 2 26 3 data bit (1) unal, 2 27 3 edit bit (1) unal, 2 28 3 list bit (1) unal, 2 29 3 get bit (1) unal, 2 30 3 put bit (1) unal, 2 31 3 page bit (1) unal, 2 32 3 line bit (1) unal, 2 33 3 skip bit (1) unal, 2 34 3 copy bit (1) unal, 2 35 3 p1p2 bit (1) unal, 2 36 3 bit_string bit (1) unal, /* for environment(stringvalue) */ 2 37 3 char_string bit (1) unal, 2 38 3 read bit (1) unal, 2 39 3 write bit (1) unal, 2 40 3 rewrite bit (1) unal, 2 41 3 delete bit (1) unal, 2 42 3 locate bit (1) unal, 2 43 3 key bit (1) unal, 2 44 3 keyto bit (1) unal, 2 45 3 keyfrom bit (1) unal, 2 46 3 set bit (1) unal, 2 47 3 into bit (1) unal, 2 48 3 ignore bit (1) unal, 2 49 3 from bit (1) unal, 2 50 3 version bit (6) unal, 2 51 3 not_byte_buffer bit (1) unal, 2 52 3 pad1 bit (1) unal, 2 53 3 packed_ptr bit (1) unal, 2 54 2 number fixed bin (15), 2 55 2 value_p ptr, /* items set NORMALLY by compiled procedures per transmission */ 2 56 2 descriptor bit (36) aligned, 2 57 2 length fixed bin (15), /* may be swallowed into descriptor */ 2 58 2 top_half bit (18) unal, 2 59 2 offset bit (18) unal, 2 60 2 prep fixed bin (15), /* items treated ABNORMALLY, written by user and PLIO */ 2 61 2 new_format fixed bin (15), 2 62 2 switch aligned, /* items used by PLIO and not touched by compiled procedures */ 2 63 3 first_field bit (1) unal, 2 64 3 file bit (1) unal, 2 65 3 transmit_error bit (1) unal, 2 66 3 semi_sep bit (1) unal, 2 67 3 pad2 bit (32) unal, 2 68 2 file_p ptr, 2 69 2 fsbp ptr, 2 70 2 auxp ptr, /* used as addr(ldidata) for GETs */ 2 71 2 fabp ptr, 2 72 2 fab2p ptr, 2 73 2 vp ptr, 2 74 2 descr bit (36) aligned, 2 75 2 start_copy fixed bin (15), 2 76 2 quick_stream_storage, 2 77 3 a_stored fixed bin (35), 2 78 3 q_stored fixed bin (35); 2 79 2 80 /* external static */ 2 81 2 82 declare ( 2 83 plio2_data_$pspstat, 2 84 plio2_data_$fsbpstat, 2 85 plio2_data_$badfsbp, 2 86 plio2_data_$fabpstat, 2 87 plio2_data_$fab2pstat, 2 88 plio2_data_$pliostringfsbp 2 89 ) ptr external static; 2 90 2 91 dcl plio2_data_fsb_thread_ ptr ext static initial (null); 2 92 /* *system var */ 2 93 2 94 declare ( 2 95 plio2_data_$badjob bit (36) aligned, 2 96 plio2_data_$undef_file_sw bit (1) aligned 2 97 ) external static; 2 98 2 99 /* END INCLUDE FILE ... plio2_ps.incl.pl1 */ 46 47 48 /* */ 49 50 51 52 3 1 /* BEGIN INCLUDE FILE ... runtime_symbol.incl.pl1 ... Modified 07/79 */ 3 2 3 3 dcl 1 runtime_symbol aligned based, 3 4 2 flag unal bit(1), /* always "1"b for Version II */ 3 5 2 use_digit unal bit(1), /* if "1"b and units are half words units are really digits */ 3 6 2 array_units unal bit(2), 3 7 2 units unal bit(2), /* addressing units */ 3 8 2 type unal bit(6), /* data type */ 3 9 2 level unal bit(6), /* structure level */ 3 10 2 ndims unal bit(6), /* number of dimensions */ 3 11 2 bits unal, 3 12 3 aligned bit(1), 3 13 3 packed bit(1), 3 14 3 simple bit(1), 3 15 2 skip unal bit(1), 3 16 2 scale unal bit(8), /* arithmetic scale factor */ 3 17 2 name unal bit(18), /* rel ptr to acc name */ 3 18 2 brother unal bit(18), /* rel ptr to brother entry */ 3 19 2 father unal bit(18), /* rel ptr to father entry */ 3 20 2 son unal bit(18), /* rel ptr to son entry */ 3 21 2 address unal, 3 22 3 location bit(18), /* location in storage class */ 3 23 3 class bit(4), /* storage class */ 3 24 3 next bit(14), /* rel ptr to next of same class */ 3 25 2 size fixed bin(35), /* encoded string|arith size */ 3 26 2 offset fixed bin(35), /* encoded offset from address */ 3 27 2 virtual_org fixed bin(35), 3 28 2 bounds(1), 3 29 3 lower fixed bin(35), /* encoded lower bound */ 3 30 3 upper fixed bin(35), /* encoded upper bound */ 3 31 3 multiplier fixed bin(35); /* encoded multiplier */ 3 32 3 33 dcl 1 runtime_bound based, 3 34 2 lower fixed bin(35), 3 35 2 upper fixed bin(35), 3 36 2 multiplier fixed bin(35); 3 37 3 38 dcl 1 runtime_block aligned based, 3 39 2 flag unal bit(1), /* always "1"b for Version II */ 3 40 2 quick unal bit(1), /* "1"b if quick block */ 3 41 2 fortran unal bit(1), /* "1"b if fortran program */ 3 42 2 standard unal bit(1), /* "1"b if program has std obj segment */ 3 43 2 owner_flag unal bit(1), /* "1"b if block has valid owner field */ 3 44 2 skip unal bit(1), 3 45 2 type unal bit(6), /* = 0 for a block node */ 3 46 2 number unal bit(6), /* begin block number */ 3 47 2 start unal bit(18), /* rel ptr to start of symbols */ 3 48 2 name unal bit(18), /* rel ptr to name of proc */ 3 49 2 brother unal bit(18), /* rel ptr to brother block */ 3 50 2 father unal bit(18), /* rel ptr to father block */ 3 51 2 son unal bit(18), /* rel ptr to son block */ 3 52 2 map unal, 3 53 3 first bit(18), /* rel ptr to first word of map */ 3 54 3 last bit(18), /* rel ptr to last word of map */ 3 55 2 entry_info unal bit(18), /* info about entry of quick block */ 3 56 2 header unal bit(18), /* rel ptr to symbol header */ 3 57 2 chain(4) unal bit(18), /* chain(i) is rel ptr to first symbol 3 58* on start list with length >= 2**i */ 3 59 2 token(0:5) unal bit(18), /* token(i) is rel ptr to first token 3 60* on list with length >= 2 ** i */ 3 61 2 owner unal bit(18); /* rel ptr to owner block */ 3 62 3 63 dcl 1 runtime_token aligned based, 3 64 2 next unal bit(18), /* rel ptr to next token */ 3 65 2 dcl unal bit(18), /* rel ptr to first dcl of this token */ 3 66 2 name, /* ACC */ 3 67 3 size unal unsigned fixed bin (9), /* number of chars in token */ 3 68 3 string unal char(n refer(runtime_token.size)); 3 69 3 70 dcl 1 encoded_value aligned based, 3 71 2 flag bit (2) unal, 3 72 2 code bit (4) unal, 3 73 2 n1 bit (6) unal, 3 74 2 n2 bit (6) unal, 3 75 2 n3 bit (18) unal; 3 76 3 77 /* END INCLUDE FILE ... runtime_symbol.incl.pl1 */ 53 54 55 56 dcl identifier_string char(256) aligned; 57 dcl char_buf char(1000) unaligned based; 58 dcl name_string char(512) varying; 59 dcl ssl(100) fixed bin(15) based; 60 dcl jtype fixed bin(12); 61 dcl isize fixed bin(35); 62 dcl ( dfxb15 init("100000100000000000000000000000001111"b), 63 dfxd63 init("100100100000000000000000000000111111"b) ) bit(36) static internal; 64 dcl subscr_dec char(64) aligned; 65 dcl icode fixed bin(15); 66 dcl (last_node_p,l1_p,name_p,stack_frame(17) based,sym_p,sym_q,new_sp) ptr; 67 dcl stu_$decode_value ext entry(fixed bin(35),ptr,ptr,fixed bin(15)) 68 returns( fixed bin(35)); 69 dcl subscr fixed bin(15); 70 dcl subscr_string char(32) aligned; 71 dcl subscr_chl fixed bin(15); 72 dcl bbit36 bit(36) based; 73 dcl bbit9 bit(9) based; 74 dcl fixed9 fixed bin(9); 75 76 dcl isl fixed bin(15); /* identifier string length */ 77 78 dcl carry fixed bin(15); 79 dcl dgt(0:9) char(1) static internal 80 init("0","1","2","3","4","5","6","7","8","9"); 81 82 83 84 85 86 87 /* */ 88 start: 89 psp=pspp; 90 ps.switch.semi_sep="0"b; 91 if ps.prep^=0 then call plio2_put_util_$put_prep_(psp); 92 last_node_p, 93 sym_p=addrel(ps.ST_top_p,ps.offset); 94 95 /* given addr(symbol_node) 96* obtain a descriptor taking care 97* of the two contingencies: 98* first, that it may be either an old or a new ST. 99* second, that it may be an element or an array node. */ 100 101 102 103 /* get the level one ST_node_pointer */ 104 105 sym_q=sym_p; 106 loop_struct: 107 if fixed(sym_q->runtime_symbol.level,6)<2 then go to level_1_node; 108 sym_q=addrel(sym_q,sym_q->runtime_symbol.father); 109 go to loop_struct; 110 111 level_1_node: 112 l1_p=sym_q; 113 114 if sym_p->runtime_symbol.type="111111"b 115 then do; 116 idesc = "0"b; 117 ps.top_half = bit(fixed(sym_p->runtime_symbol.size,18),18); 118 end; 119 else idesc=plio2_sym_to_desc(sym_p,l1_p,psp,null); 120 /* the null stack frame ptr will be replaced 121* by s_to_d using information in PS */ 122 123 /* */ 124 125 /* make name */ 126 127 128 129 isl=0; 130 name_string=""; 131 sym_p=last_node_p; /* start from level_N_name */ 132 name_loop: 133 134 135 name_p=addrel(sym_p,sym_p->runtime_symbol.name); 136 137 fixed9=fixed(name_p->bbit9,9); 138 name_string=substr(name_p->char_buf,2,fixed9)||"."||name_string; 139 isl=fixed9+isl+1; 140 if isl>255 then goto err244; 141 142 143 144 if sym_p=l1_p then go to end_name_loop; /* end at the level one node */ 145 /* if fixed(sym_p->runtime_symbol.level,6)<2 then go to end_name_loop; */ 146 sym_p=addrel(sym_p,sym_p->runtime_symbol.father); 147 go to name_loop; 148 end_name_loop: 149 150 151 152 sslp=ps.ss_list_p; 153 if sslp->ssl(1)>0 then 154 do; 155 substr(name_string,isl,1)="("; 156 do i=2 to sslp->ssl(1)+1; 157 subscr=sslp->ssl(i); 158 159 if subscr<0 then 160 do; 161 subscr=-subscr; 162 isl=isl+1; 163 name_string=name_string||"-"; 164 end; 165 if subscr=0 then 166 do; 167 name_string=name_string||"0,"; 168 isl=isl+2; 169 end; 170 else do; 171 do ii=64 to 1 by -1; 172 carry=divide(subscr,10,35,0); 173 substr(subscr_dec,ii,1)=dgt(subscr-10*carry); 174 if carry=0 then go to signif; 175 subscr=carry; 176 end; 177 178 179 signif: 180 name_string=name_string||substr(subscr_dec,ii,65-ii)||","; 181 isl=isl+66-ii; 182 end; 183 if isl>255 then goto err244; 184 end; 185 186 substr(name_string,isl,1)=")"; 187 /* replaces the final comma with the close_paren */ 188 189 end; /* end of subscript pack */ 190 191 else isl=isl-1; /* kill the final DOT: a.b.c. -> a.b.c */ 192 publish_name: 193 identifier_string=substr(name_string,1,isl)||"="; 194 isl=isl+1; 195 196 call plio2_put_util_$put_field_(psp,addr(identifier_string),isl); 197 198 199 ps.descr=idesc; 200 ps.vp=ps.value_p; 201 202 call plio2_ldo_$ldo_for_data(psp); 203 204 return; 205 206 err244: 207 call plio2_signal_$s_(psp,"ERROR","put data",244); 208 /* err244: Identifier longer than 255 not handled by this implementation */ 209 isl=255; 210 goto publish_name; 211 212 end plio2_pdt_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/03/83 1005.5 plio2_pdt_.pl1 >spec>on>pl128d>plio2_pdt_.pl1 29 1 05/06/74 1742.8 plio2_ident.incl.pl1 >ldd>include>plio2_ident.incl.pl1 46 2 08/13/81 2043.5 plio2_ps.incl.pl1 >ldd>include>plio2_ps.incl.pl1 53 3 11/26/79 1320.6 runtime_symbol.incl.pl1 >ldd>include>runtime_symbol.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. ST_top_p 2 based pointer level 2 dcl 2-10 ref 92 addr builtin function dcl 39 ref 196 196 addrel builtin function dcl 39 ref 92 108 132 146 bbit9 based bit(9) unaligned dcl 73 ref 137 bit builtin function dcl 39 ref 117 carry 000445 automatic fixed bin(15,0) dcl 78 set ref 172* 173 174 175 char_buf based char(1000) unaligned dcl 57 ref 138 descr 54 based bit(36) level 2 dcl 2-10 set ref 199* dgt 000000 constant char(1) initial array unaligned dcl 79 ref 173 divide builtin function dcl 39 ref 172 father 2 based bit(18) level 2 packed unaligned dcl 3-3 ref 108 146 fixed builtin function dcl 39 ref 106 117 137 fixed9 000443 automatic fixed bin(9,0) dcl 74 set ref 137* 138 139 i 000104 automatic fixed bin(15,0) dcl 36 set ref 156* 157* identifier_string 000107 automatic char(256) dcl 56 set ref 192* 196 196 idesc 000106 automatic bit(36) unaligned dcl 37 set ref 116* 119* 199 ii 000105 automatic fixed bin(15,0) dcl 36 set ref 171* 173* 179 179 181 isl 000444 automatic fixed bin(15,0) dcl 76 set ref 129* 139* 139 140 155 162* 162 168* 168 181* 181 183 186 191* 191 192 194* 194 196* 209* l1_p 000432 automatic pointer dcl 66 set ref 111* 119* 144 last_node_p 000430 automatic pointer dcl 66 set ref 92* 131 level 0(12) based bit(6) level 2 packed unaligned dcl 3-3 ref 106 name 1 based bit(18) level 2 packed unaligned dcl 3-3 ref 132 name_p 000434 automatic pointer dcl 66 set ref 132* 137 138 name_string 000207 automatic varying char(512) dcl 58 set ref 130* 138* 138 155* 163* 163 167* 167 179* 179 186* 192 null builtin function dcl 39 ref 119 119 offset 34(18) based bit(18) level 2 packed unaligned dcl 2-10 ref 92 plio2_ldo_$ldo_for_data 000014 constant entry external dcl 42 ref 202 plio2_put_util_$put_field_ 000010 constant entry external dcl 40 ref 196 plio2_put_util_$put_prep_ 000012 constant entry external dcl 41 ref 91 plio2_signal_$s_ 000016 constant entry external dcl 43 ref 206 plio2_sym_to_desc 000020 constant entry external dcl 45 ref 119 prep 35 based fixed bin(15,0) level 2 dcl 2-10 ref 91 ps based structure level 1 dcl 2-10 psp 000100 automatic pointer dcl 35 set ref 88* 90 91 91* 92 92 117 119* 148 196* 199 200 200 202* 206* pspp parameter pointer dcl 35 ref 19 19 88 runtime_symbol based structure level 1 dcl 3-3 semi_sep 37(03) based bit(1) level 3 packed unaligned dcl 2-10 set ref 90* size 4 based fixed bin(35,0) level 2 dcl 3-3 ref 117 ss_list_p 10 based pointer level 2 dcl 2-10 ref 148 ssl based fixed bin(15,0) array dcl 59 ref 153 156 157 sslp 000102 automatic pointer dcl 35 set ref 148* 153 156 157 subscr 000442 automatic fixed bin(15,0) dcl 69 set ref 157* 159 161* 161 165 172 173 175* subscr_dec 000410 automatic char(64) dcl 64 set ref 173* 179 substr builtin function dcl 39 set ref 138 155* 173* 179 186* 192 switch 37 based structure level 2 dcl 2-10 sym_p 000436 automatic pointer dcl 66 set ref 92* 105 114 117 119* 131* 132 132 144 146* 146 146 sym_q 000440 automatic pointer dcl 66 set ref 105* 106 108* 108 108 111 top_half 34 based bit(18) level 2 packed unaligned dcl 2-10 set ref 117* type 0(06) based bit(6) level 2 packed unaligned dcl 3-3 ref 114 value_p 30 based pointer level 2 dcl 2-10 ref 200 vp 52 based pointer level 2 dcl 2-10 set ref 200* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. bbit36 based bit(36) unaligned dcl 72 dfxb15 internal static bit(36) initial unaligned dcl 62 dfxd63 internal static bit(36) initial unaligned dcl 62 encoded_value based structure level 1 dcl 3-70 icode automatic fixed bin(15,0) dcl 65 isize automatic fixed bin(35,0) dcl 61 jtype automatic fixed bin(12,0) dcl 60 new_sp automatic pointer dcl 66 offset automatic fixed bin(15,0) dcl 36 plio2_data_$badfsbp external static pointer dcl 2-82 plio2_data_$badjob external static bit(36) dcl 2-94 plio2_data_$fab2pstat external static pointer dcl 2-82 plio2_data_$fabpstat external static pointer dcl 2-82 plio2_data_$fsbpstat external static pointer dcl 2-82 plio2_data_$pliostringfsbp external static pointer dcl 2-82 plio2_data_$pspstat external static pointer dcl 2-82 plio2_data_$undef_file_sw external static bit(1) dcl 2-94 plio2_data_fsb_thread_ external static pointer initial dcl 2-91 runtime_block based structure level 1 dcl 3-38 runtime_bound based structure level 1 unaligned dcl 3-33 runtime_token based structure level 1 dcl 3-63 stack_frame based pointer array dcl 66 stu_$decode_value 000000 constant entry external dcl 67 subscr_chl automatic fixed bin(15,0) dcl 71 subscr_string automatic char(32) dcl 70 NAMES DECLARED BY EXPLICIT CONTEXT. end_name_loop 000243 constant label dcl 148 ref 144 err244 000476 constant label dcl 206 ref 140 183 level_1_node 000105 constant label dcl 111 ref 106 loop_struct 000072 constant label dcl 106 ref 109 name_loop 000154 constant label dcl 132 ref 147 plio2_pdt_ 000034 constant entry external dcl 19 publish_name 000425 constant label dcl 192 set ref 210 put_value_data_ 000023 constant entry external dcl 19 signif 000346 constant label dcl 179 ref 174 start 000043 constant label dcl 88 ref 32 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 650 672 542 660 Length 1114 542 22 205 105 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME put_value_data_ 336 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME put_value_data_ 000100 psp put_value_data_ 000102 sslp put_value_data_ 000104 i put_value_data_ 000105 ii put_value_data_ 000106 idesc put_value_data_ 000107 identifier_string put_value_data_ 000207 name_string put_value_data_ 000410 subscr_dec put_value_data_ 000430 last_node_p put_value_data_ 000432 l1_p put_value_data_ 000434 name_p put_value_data_ 000436 sym_p put_value_data_ 000440 sym_q put_value_data_ 000442 subscr put_value_data_ 000443 fixed9 put_value_data_ 000444 isl put_value_data_ 000445 carry put_value_data_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry set_support THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. plio2_ldo_$ldo_for_data plio2_put_util_$put_field_ plio2_put_util_$put_prep_ plio2_signal_$s_ plio2_sym_to_desc NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000020 32 000042 88 000043 90 000047 91 000051 92 000061 105 000071 106 000072 108 000077 109 000104 111 000105 114 000107 116 000114 117 000115 118 000124 119 000125 129 000150 130 000151 131 000152 132 000154 137 000162 138 000170 139 000223 140 000230 144 000232 146 000236 147 000242 148 000243 153 000246 155 000250 156 000254 157 000263 159 000266 161 000267 162 000271 163 000272 165 000301 167 000303 168 000315 169 000317 171 000320 172 000325 173 000330 174 000340 175 000342 176 000343 179 000346 181 000404 183 000411 184 000414 186 000416 189 000422 191 000423 192 000425 194 000442 196 000444 199 000461 200 000464 202 000466 204 000475 206 000476 209 000531 210 000533 ----------------------------------------------------------- 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