COMPILATION LISTING OF SEGMENT !BBBJPNdfwgczkD Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/27/84 0841.5 mst Thu Options: table map 1 /* ****************************************************** 2* * * 3* * Copyright, (C) Honeywell Limited, 1983 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* ****************************************************** */ 9 10 /* format: style3,^delnl,linecom */ 11 fortran_buffer_: 12 proc; 13 14 15 /* This cds program initializes and creates the FORTRAN buffer segment */ 16 /* used as the file state blocks for fortran io files. R.Schoeman 11/76 */ 17 /* Modified: 18* 6 June 1977, D. Levin for new I/O system. 19**/ 20 21 dcl sys_info$max_seg_size 22 external fixed bin (18); 23 dcl 1 my_buffer like fortran_buffer_; 24 25 dcl 1 my_cds_args like cds_args; 26 27 dcl create_data_segment_ 28 entry (ptr, fixed bin (35)); 29 dcl com_err_ entry options (variable); 30 31 dcl (addr, binary, length, null, rel, size, unspec) 32 builtin; 33 34 dcl p ptr; 35 dcl exclude_array (1) char (32) init ("**"); 36 dcl code fixed bin (35) init (0); 37 1 1 /* BEGIN fortran_buffer.incl.pl1 The external data base for fortran I/O. */ 1 2 1 3 /* Modified November 1976 by R.Schoeman. */ 1 4 /* Modified: 1 5* 25 Aug 83, MM - added the bit "using_tape_nstd" 1 6* 23 Apr 82, HH - absorbed 'more_bits' into 'per_connection'. 1 7* 14 Apr 82, HH - added 'switch_ready', 'eofs_are_records' & 'unwritten_eofs' for ENDFILE statement. 1 8* 2 Nov 81, MEP - added last_rec field for inquire statement. 1 9* 2 Sept 81, MEP - unlike Christ, I could not make 36 bits feed the multitudes. Added more_bits. 1 10* 7 August 81, MEP - add blank 1 11* 12 May 1978, DSL - Add rewind_on_open. 1 12* 7 Sep 1977 by DSL - change terminal_file to allow_delete 1 13* 2 Aug 1977 by David Levin - add terminal_file and allow_reopen */ 1 14 1 15 dcl fortran_buffer_ptr ptr; 1 16 dcl ptr_array (1) ptr; /* needed for call to get_temp_segments */ 1 17 1 18 declare 1 fortran_buffer_ based (fortran_buffer_ptr), 1 19 2 table (0:99) aligned structure, 1 20 /* each entry is THREE words */ 1 21 3 bits unaligned structure, 1 22 /* FIRST WORD: */ 1 23 4 installation_defined, 1 24 5 default_input bit (1), 1 25 5 default_output bit (1), 1 26 5 printer_file bit (1), 1 27 4 per_process, 1 28 5 prompt bit (1), 1 29 5 defer_newline bit (1), 1 30 4 per_connection, 1 31 5 connected bit (1), 1 32 5 fortran_attached bit (1), 1 33 5 fortran_opened bit (1), 1 34 5 formatted_records bit (1), 1 35 5 direction, 1 36 6 in bit (1), 1 37 6 out bit (1), 1 38 5 allow, 1 39 6 direct_access bit (1), 1 40 6 seq_access bit (1), 1 41 6 positioning bit (1), 1 42 5 carriage_controllable bit (1), 1 43 5 newline_needed bit (1), 1 44 5 double_word_file bit (1), 1 45 5 allow_reopen bit (1), 1 46 5 allow_delete bit (1), 1 47 5 rewind_on_open bit (1), 1 48 5 blank_null bit (1), 1 49 5 type_of_io bit (3), 1 50 5 open_code fixed bin (5), 1 51 5 previous fixed bin (5), 1 52 /* SECOND WORD: */ 1 53 5 file_status fixed binary (2) unsigned, 1 54 5 has_been_deleted bit (1), 1 55 5 last_rec fixed binary (21), 1 56 5 using_vfile bit (1), 1 57 5 using_tape_nstd bit(1), 1 58 5 switch_ready bit (1), /* switch attached & opened */ 1 59 5 eofs_are_records bit (1), 1 60 5 unwritten_eofs fixed bin (3) unsigned, 1 61 5 pad bit (4), 1 62 /* THIRD WORD: */ 1 63 3 switch_p ptr unaligned, 1 64 1 65 /* word of control bits */ 1 66 1 67 2 all_files_closed bit (1) unal, 1 68 2 allocated_by_fortran 1 69 bit (1) unal, 1 70 2 terminal_needs_newline 1 71 bit (1), 1 72 2 fill bit (33) unal, 1 73 1 74 /* another control word; note strange alignment */ 1 75 1 76 2 maximum_buffer fixed bin (26) unaligned, 1 77 /* Use three bytes (chars). */ 1 78 2 extra_char char (1) unaligned, /* "buf" must be on a word boundary */ 1 79 2 buf fixed bin; 1 80 1 81 dcl Max_unwritten_eofs fixed bin static options (constant) init (7); 1 82 1 83 /* END fortran_buffer.incl.pl1 */ 38 2 1 /* BEGIN fortran_io_consts.incl.pl1 - various constants for fortran I/O */ 2 2 2 3 /* Modified: 2 4* 24 Oct 81, MEP added inquire_opr, deleted unused_9 (op_9) 2 5* 1 Oct 1981 - MEP internal file 2 6* 17 June 1981 - MEP for ansi77 i/o enhancements 2 7**/ 2 8 declare 2 9 (list_directed initial("00"b), 2 10 unformatted initial("01"b), 2 11 formatted initial("10"b), 2 12 namelist initial("11"b), 2 13 2 14 sequential_access initial("00"b), 2 15 direct_access initial("01"b), 2 16 string_io initial("10"b), 2 17 internal_file initial("11"b) )bit(2) aligned internal static options(constant); 2 18 2 19 dcl (write_opr initial(1), 2 20 old_endfile_opr initial(2), 2 21 read_opr initial(3), 2 22 rewind_opr initial(4), 2 23 op_5 initial(5), 2 24 closefile_opr initial(6), 2 25 close_opr initial(7), 2 26 backspace_opr initial(8), 2 27 inquire_opr initial(9), 2 28 openfile_opr initial(10), 2 29 open_opr initial(11), 2 30 margin_opr initial(12), 2 31 op_13 initial(13), 2 32 endfile_opr initial(14)) fixed bin(4) int static options(constant); 2 33 2 34 dcl (stream_file init("001"b), 2 35 record_file init("010"b), 2 36 blocked_file init("011"b), 2 37 binary_file init("100"b) ) bit(3) aligned int static options(constant); 2 38 2 39 dcl (undefined init(-1), 2 40 nonexistent init(0), 2 41 unstructured init(1), 2 42 sequential init(2), 2 43 blocked init(3), 2 44 indexed init(4), 2 45 binary_stream init(5) ) fixed bin int static options(constant); 2 46 2 47 /* This is the list of fields of the fields_specified word. It is used to check for duplication in the parse, and 2 48* is positionally importan for the code generator, fortran_io, and pl1_operators. */ 2 49 2 50 dcl (status_field init(1), 2 51 io_switch_field init(2), 2 52 attach_desc_field init(3), 2 53 filename_field init(4), 2 54 mode_field init(5), 2 55 access_field init(6), 2 56 form_field init(7), 2 57 recl_field init (8), 2 58 binarystream_field init (9), 2 59 prompt_field init (10), 2 60 carriage_field init (11), 2 61 defer_field init (12), 2 62 blank_field init (13), 2 63 units_field init (14), 2 64 fmt_field init (15), 2 65 rec_field init (16), 2 66 exist_field init (17), 2 67 opened_field init (18), 2 68 number_field init (19), 2 69 named_field init (20), 2 70 name_field init (21), 2 71 sequential_field init (22), 2 72 formatted_field init (23), 2 73 unformatted_field init (24), 2 74 nextrec_field init (25), 2 75 direct_field init (26) ) fixed bin int static options(constant); 2 76 2 77 /* The following masks indicate the valid keywords and fields known to the i/o routines: 2 78* read: unit, fmt, iostat, err, end, rec. 2 79* write: unit, fmt, iostat, err, end. 2 80* open: unit, iostat, err, file, status, access, form, recl, blank, status, ioswitch, 2 81* attach, mode, binarystream, prompt, carriage, defer. 2 82* close: unit, iostat, err, status. 2 83* inquire: unit _x_o_r file, iostat, err, exist, opened, number, named, name, access, sequential, direct, 2 84* form, formatted, unformatted, recl, nextrec, blank. 2 85* */ 2 86 declare (open_keyword_mask init ("111111111111100000000000000000000000"b), 2 87 valid_open_keyword init ("111111111111110000000000000000000000"b), 2 88 valid_read_keyword init ("000000000000011100000000000000000000"b), 2 89 valid_write_keyword init ("000000000000011000000000000000000000"b), 2 90 valid_close_keyword init ("100000000000010000000000000000000000"b), 2 91 valid_inquire_keyword init("000100000000010011111111110000000000"b)) 2 92 bit (36) aligned internal static options (constant); 2 93 /* END fortran_io_consts.incl.pl1 */ 39 3 1 /* BEGIN INCLUDE FILE cds_args.incl.pl1 */ 3 2 3 3 dcl 1 cds_args based aligned, 3 4 2 sections (2), 3 5 3 p ptr, /* pointer to data for text/static section */ 3 6 3 len fixed bin (18), /* size of text/static section */ 3 7 3 struct_name char (32), /* name of declared structure for this section */ 3 8 2 seg_name char (32), /* name to create segment by */ 3 9 2 num_exclude_names fixed bin, /* number of names in exclude array */ 3 10 2 exclude_array_ptr ptr, /* pointer to array of exclude names */ 3 11 2 switches, /* control switches */ 3 12 3 defs_in_link bit (1) unal, /* says put defs in linkage */ 3 13 3 separate_static bit (1) unal, /* says separate static section is wanted */ 3 14 3 have_text bit (1) unal, /* ON if text section given */ 3 15 3 have_static bit (1) unal, /* ON if static section given */ 3 16 3 pad bit (32) unal; 3 17 3 18 dcl exclude_names (1) char (32) based; /* pointed to be cds_args.exclude_array_ptr */ 3 19 3 20 /* END INCLUDE FILE cds_args.incl.pl1 */ 40 41 42 43 unspec (my_cds_args) = "0"b; 44 45 unspec (my_buffer) = "0"b; 46 47 my_buffer.table.switch_p = null; /* aggregate assignment */ 48 49 my_buffer.table (5).default_input = "1"b; 50 my_buffer.table (41).default_input = "1"b; 51 52 my_buffer.table (6).default_output = "1"b; 53 my_buffer.table (42).default_output = "1"b; 54 55 my_buffer.table (6).printer_file = "1"b; 56 my_buffer.table (42).printer_file = "1"b; 57 58 my_buffer.maximum_buffer = (sys_info$max_seg_size - (size (fortran_buffer_) - 1)); 59 /* The * 4 is because its 4 chars per word */ 60 61 my_buffer.all_files_closed = "1"b; 62 63 my_buffer.table (0).connected = "1"b; 64 my_buffer.table (0).formatted_records = "1"b; 65 my_buffer.table (0).direction.in = "1"b; 66 my_buffer.table (0).direction.out = "1"b; 67 my_buffer.table (0).allow.seq_access = "1"b; 68 my_buffer.table (0).carriage_controllable = "1"b; 69 70 my_buffer.table (0).type_of_io = stream_file; 71 my_buffer.table (0).open_code = 3; /* stream_input_output */ 72 my_buffer.table (0).previous = open_opr; 73 my_buffer.table (0).switch_ready = "1"b; 74 75 76 77 78 my_cds_args.have_text = "1"b; 79 my_cds_args.seg_name = "fortran_buffer_"; 80 my_cds_args.struct_name = "my_buffer"; 81 my_cds_args.sections (1).len = size (fortran_buffer_) - 1; 82 /* the -1 is cause last word doesn't really exist but is a kludge */ 83 my_cds_args.sections (1).p = addr (my_buffer); 84 85 my_cds_args.num_exclude_names = 1; 86 my_cds_args.exclude_array_ptr = addr (exclude_array); 87 88 call create_data_segment_ (addr (my_cds_args), code); 89 90 if code ^= 0 91 then call com_err_ ("Call to create_data_segment_ to create fortran_buffer_ failed."); 92 93 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/27/84 0838.6 !BBBJPNdfwgczkD.pl1 >spec>online>fort_recompile>fortran_buffer_.cds 38 1 10/12/83 1519.1 fortran_buffer.incl.pl1 >ldd>include>fortran_buffer.incl.pl1 39 2 03/27/82 0424.8 fortran_io_consts.incl.pl1 >ldd>include>fortran_io_consts.incl.pl1 40 3 04/01/76 2209.5 cds_args.incl.pl1 >ldd>include>cds_args.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. Max_unwritten_eofs 000013 constant fixed bin(17,0) initial dcl 1-81 addr builtin function dcl 31 ref 83 86 88 88 all_files_closed 454 000100 automatic bit(1) level 2 packed unaligned dcl 23 set ref 61* allow 0(11) 000100 automatic structure array level 5 packed unaligned dcl 23 bits 000100 automatic structure array level 3 packed unaligned dcl 23 carriage_controllable 0(14) 000100 automatic bit(1) array level 5 packed unaligned dcl 23 set ref 68* cds_args based structure level 1 dcl 3-3 closefile_opr 000006 constant fixed bin(4,0) initial dcl 2-19 code 000640 automatic fixed bin(35,0) initial dcl 36 set ref 36* 88* 90 com_err_ 000016 constant entry external dcl 29 ref 90 connected 0(05) 000100 automatic bit(1) array level 5 packed unaligned dcl 23 set ref 63* create_data_segment_ 000014 constant entry external dcl 27 ref 88 default_input 000100 automatic bit(1) array level 5 packed unaligned dcl 23 set ref 49* 50* default_output 0(01) 000100 automatic bit(1) array level 5 packed unaligned dcl 23 set ref 52* 53* direction 0(09) 000100 automatic structure array level 5 packed unaligned dcl 23 endfile_opr 000001 constant fixed bin(4,0) initial dcl 2-19 exclude_array 000630 automatic char(32) initial array unaligned dcl 35 set ref 35* 86 exclude_array_ptr 42 000560 automatic pointer level 2 dcl 25 set ref 86* formatted_records 0(08) 000100 automatic bit(1) array level 5 packed unaligned dcl 23 set ref 64* fortran_buffer_ based structure level 1 unaligned dcl 1-18 ref 58 81 fortran_buffer_ptr 000642 automatic pointer dcl 1-15 ref 58 81 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 1-18 have_text 44(02) 000560 automatic bit(1) level 3 packed unaligned dcl 25 set ref 78* in 0(09) 000100 automatic bit(1) array level 6 packed unaligned dcl 23 set ref 65* inquire_opr 000005 constant fixed bin(4,0) initial dcl 2-19 installation_defined 000100 automatic structure array level 4 packed unaligned dcl 23 len 2 000560 automatic fixed bin(18,0) array level 3 dcl 25 set ref 81* maximum_buffer 455 000100 automatic fixed bin(26,0) level 2 packed unaligned dcl 23 set ref 58* my_buffer 000100 automatic structure level 1 unaligned dcl 23 set ref 45* 83 my_cds_args 000560 automatic structure level 1 unaligned dcl 25 set ref 43* 88 88 namelist 000011 constant bit(2) initial dcl 2-8 null builtin function dcl 31 ref 47 num_exclude_names 40 000560 automatic fixed bin(17,0) level 2 dcl 25 set ref 85* op_13 000002 constant fixed bin(4,0) initial dcl 2-19 op_5 000007 constant fixed bin(4,0) initial dcl 2-19 open_code 0(24) 000100 automatic fixed bin(5,0) array level 5 packed unaligned dcl 23 set ref 71* open_opr 000003 constant fixed bin(4,0) initial dcl 2-19 ref 72 openfile_opr 000004 constant fixed bin(4,0) initial dcl 2-19 out 0(10) 000100 automatic bit(1) array level 6 packed unaligned dcl 23 set ref 66* p 000560 automatic pointer array level 3 dcl 25 set ref 83* per_connection 0(05) 000100 automatic structure array level 4 packed unaligned dcl 23 previous 0(30) 000100 automatic fixed bin(5,0) array level 5 packed unaligned dcl 23 set ref 72* printer_file 0(02) 000100 automatic bit(1) array level 5 packed unaligned dcl 23 set ref 55* 56* rewind_opr 000010 constant fixed bin(4,0) initial dcl 2-19 sections 000560 automatic structure array level 2 unaligned dcl 25 seg_name 30 000560 automatic char(32) level 2 packed unaligned dcl 25 set ref 79* seq_access 0(12) 000100 automatic bit(1) array level 6 packed unaligned dcl 23 set ref 67* size builtin function dcl 31 ref 58 81 stream_file 000000 constant bit(3) initial dcl 2-34 ref 70 struct_name 3 000560 automatic char(32) array level 3 packed unaligned dcl 25 set ref 80* switch_p 2 000100 automatic pointer array level 3 packed unaligned dcl 23 set ref 47* switch_ready 1(27) 000100 automatic bit(1) array level 5 packed unaligned dcl 23 set ref 73* switches 44 000560 automatic structure level 2 packed unaligned dcl 25 sys_info$max_seg_size 000012 external static fixed bin(18,0) dcl 21 ref 58 table 000100 automatic structure array level 2 dcl 23 type_of_io 0(21) 000100 automatic bit(3) array level 5 packed unaligned dcl 23 set ref 70* unformatted 000012 constant bit(2) initial dcl 2-8 unspec builtin function dcl 31 set ref 43* 45* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. access_field constant fixed bin(17,0) initial dcl 2-50 attach_desc_field constant fixed bin(17,0) initial dcl 2-50 backspace_opr constant fixed bin(4,0) initial dcl 2-19 binary builtin function dcl 31 binary_file constant bit(3) initial dcl 2-34 binary_stream constant fixed bin(17,0) initial dcl 2-39 binarystream_field constant fixed bin(17,0) initial dcl 2-50 blank_field constant fixed bin(17,0) initial dcl 2-50 blocked constant fixed bin(17,0) initial dcl 2-39 blocked_file constant bit(3) initial dcl 2-34 carriage_field constant fixed bin(17,0) initial dcl 2-50 close_opr constant fixed bin(4,0) initial dcl 2-19 defer_field constant fixed bin(17,0) initial dcl 2-50 direct_access constant bit(2) initial dcl 2-8 direct_field constant fixed bin(17,0) initial dcl 2-50 exclude_names based char(32) array unaligned dcl 3-18 exist_field constant fixed bin(17,0) initial dcl 2-50 filename_field constant fixed bin(17,0) initial dcl 2-50 fmt_field constant fixed bin(17,0) initial dcl 2-50 form_field constant fixed bin(17,0) initial dcl 2-50 formatted constant bit(2) initial dcl 2-8 formatted_field constant fixed bin(17,0) initial dcl 2-50 indexed constant fixed bin(17,0) initial dcl 2-39 internal_file constant bit(2) initial dcl 2-8 io_switch_field constant fixed bin(17,0) initial dcl 2-50 length builtin function dcl 31 list_directed constant bit(2) initial dcl 2-8 margin_opr constant fixed bin(4,0) initial dcl 2-19 mode_field constant fixed bin(17,0) initial dcl 2-50 name_field constant fixed bin(17,0) initial dcl 2-50 named_field constant fixed bin(17,0) initial dcl 2-50 nextrec_field constant fixed bin(17,0) initial dcl 2-50 nonexistent constant fixed bin(17,0) initial dcl 2-39 number_field constant fixed bin(17,0) initial dcl 2-50 old_endfile_opr constant fixed bin(4,0) initial dcl 2-19 open_keyword_mask constant bit(36) initial dcl 2-86 opened_field constant fixed bin(17,0) initial dcl 2-50 p 000626 automatic pointer dcl 34 prompt_field constant fixed bin(17,0) initial dcl 2-50 ptr_array 000644 automatic pointer array dcl 1-16 read_opr constant fixed bin(4,0) initial dcl 2-19 rec_field constant fixed bin(17,0) initial dcl 2-50 recl_field constant fixed bin(17,0) initial dcl 2-50 record_file constant bit(3) initial dcl 2-34 rel builtin function dcl 31 sequential constant fixed bin(17,0) initial dcl 2-39 sequential_access constant bit(2) initial dcl 2-8 sequential_field constant fixed bin(17,0) initial dcl 2-50 status_field constant fixed bin(17,0) initial dcl 2-50 string_io constant bit(2) initial dcl 2-8 undefined constant fixed bin(17,0) initial dcl 2-39 unformatted_field constant fixed bin(17,0) initial dcl 2-50 units_field constant fixed bin(17,0) initial dcl 2-50 unstructured constant fixed bin(17,0) initial dcl 2-39 valid_close_keyword constant bit(36) initial dcl 2-86 valid_inquire_keyword constant bit(36) initial dcl 2-86 valid_open_keyword constant bit(36) initial dcl 2-86 valid_read_keyword constant bit(36) initial dcl 2-86 valid_write_keyword constant bit(36) initial dcl 2-86 write_opr constant fixed bin(4,0) initial dcl 2-19 NAME DECLARED BY EXPLICIT CONTEXT. fortran_buffer_ 000050 constant entry external dcl 11 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 336 356 250 346 Length 3772 250 20 3377 65 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fortran_buffer_ 450 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME fortran_buffer_ 000100 my_buffer fortran_buffer_ 000560 my_cds_args fortran_buffer_ 000626 p fortran_buffer_ 000630 exclude_array fortran_buffer_ 000640 code fortran_buffer_ 000642 fortran_buffer_ptr fortran_buffer_ 000644 ptr_array fortran_buffer_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ create_data_segment_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000047 35 000055 36 000065 43 000066 45 000071 47 000074 49 000107 50 000111 52 000113 53 000115 55 000117 56 000121 58 000123 61 000132 63 000134 64 000136 65 000140 66 000142 67 000144 68 000146 70 000150 71 000154 72 000156 73 000160 78 000162 79 000164 80 000167 81 000204 83 000206 85 000210 86 000212 88 000214 90 000227 93 000245 Object Segment >spec>online>fort_recompile>fortran_buffer_ Created on 12/27/84 0841.7 mst Thu by GJohnson.SysMaint.m using create_data_segment_, Version II of Friday, November 30, 1984 Object Text Defs Link Symb Static Start 0 0 456 500 510 510 Length 733 456 22 10 207 0 2 Definitions: segname: fortran_buffer_ symb|0 symbol_table No Links. ----------------------------------------------------------- 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