COMPILATION LISTING OF SEGMENT cmcs_set_lock_ Compiled by: Multics PL/I Compiler, Release 31b, of April 24, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 05/24/89 1022.0 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 6* * * 7* *********************************************************** */ 8 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(89-04-23,Zimmerman), approve(89-04-23,MCR8087), 14* audit(89-05-05,RWaters), install(89-05-24,MR12.3-1048): 15* MCR8087 cmcs_set_lock_.pl1 Shorten wait time for cmcs_station_ctl_. 16* END HISTORY COMMENTS */ 17 18 19 /* Modified on 10/20/84 by FCH, [5.3-1], BUG565(phx18385), wait time for set_lock_$lock */ 20 /* Modified since Version 4.3 */ 21 22 /* format: style3 */ 23 cmcs_set_lock_: 24 proc; 25 26 return; /* invalid entry point */ 27 28 /* This COBOL MCS subroutine is used to mask all IPS interrupts and then lock the specified lock. 29* In the reverse, it will unlock the lock and then umask the IPS interrupts. */ 30 31 /* Bob May, 6/30/77 */ 32 33 /* hcs_$set_ips_mask entry (bit (36) aligned, bit (36) aligned), 34* hcs_$reset_ips_mask entry (bit (36) aligned, bit (36) aligned), */ 35 dcl set_lock_$lock entry (bit (36) aligned, fixed bin, fixed bin (35)), 36 set_lock_$unlock entry (bit (36) aligned, fixed bin (35)); 37 38 dcl error_table_$invalid_lock_reset 39 fixed bin (35) external; 40 41 dcl (mask, oldmask) bit (36) aligned, 42 lockword bit (36) aligned; 43 44 45 46 dcl code fixed bin (35); 47 48 /* */ 1 1 /* BEGIN INCLUDE FILE... cmcs_control_hdr.incl.pl1 */ 1 2 1 3 /* This include file is the 1st part of all cobol_mcs tables */ 1 4 1 5 /* Bob May, 4/30/77 */ 1 6 1 7 dcl control_hdr_len fixed bin int static options (constant) init (32); 1 8 1 9 dcl control_hdr_ptr ptr; 1 10 1 11 dcl 1 control_hdr aligned based (control_hdr_ptr), 1 12 2 lockword bit (36) aligned, /* for process_id */ 1 13 2 version fixed bin, 1 14 2 clock_created fixed bin (71), 1 15 2 author aligned, 1 16 3 group_id char (32), /* person.proj.tag */ 1 17 3 process_id bit (36), 1 18 2 max_size fixed bin (18), /* maximum number of entries seg can hold */ 1 19 2 current_size fixed bin (18), /* index of last active entry */ 1 20 2 entry_count fixed bin (18), /* number of active entries */ 1 21 2 cmcs_control_hdr_filler (16) fixed bin; /* words (17-32) for later expansion */ 1 22 1 23 /* END INCLUDE FILE... cmcs_control_hdr.incl.pl1 */ 49 2 1 /* BEGIN INCLUDE FILE... cmcs_entry_dcls.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(89-04-23,Zimmerman), approve(89-04-23,MCR8087), 2 7* audit(89-05-05,RWaters), install(89-05-24,MR12.3-1048): 2 8* MCR8087 cmcs_entry_dcls.incl.pl1 Shorten wait time for cmcs_station_ctl_. 2 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 /* Entry declarations for the COBOL MCS runtime support package */ 2 13 2 14 /* Modified on 10/20/84 by FCH, [5.3-1] */ 2 15 /* Modified on 04/29/81 by FCH, [4.4-1] */ 2 16 /* Bob May, 6/01/77 */ 2 17 2 18 dcl cmcs_create_queues_ entry (fixed bin (35)); 2 19 2 20 dcl cmcs_date_time_ entry (fixed bin (71), char (6) unaligned, char (8) unaligned); 2 21 2 22 dcl cmcs_decode_status_ entry (ptr, ptr, fixed bin, fixed bin, fixed bin (35)); 2 23 2 24 dcl cmcs_expand_tree_path_ entry (char (*), char (48), fixed bin (35)); 2 25 2 26 dcl cmcs_fillin_hdr_ entry (ptr, fixed bin, fixed bin, fixed bin, fixed bin (35)); 2 27 2 28 dcl cmcs_initiate_ctl_ entry (char (*), ptr, fixed bin (35)); 2 29 2 30 dcl cmcs_print_ entry (ptr, ptr, fixed bin (35), ptr, fixed bin (35)); 2 31 2 32 dcl cmcs_purge_queues_ entry (fixed bin, bit (1), fixed bin (35)); 2 33 2 34 dcl cmcs_queue_ctl_$accept_message_count entry (ptr, fixed bin, fixed bin (35)); 2 35 dcl cmcs_queue_ctl_$disable entry (ptr, fixed bin, char (10), fixed bin (35)); 2 36 dcl cmcs_queue_ctl_$enable entry (ptr, fixed bin, char (10), fixed bin (35)); 2 37 dcl cmcs_queue_ctl_$print entry (ptr, fixed bin, ptr, fixed bin (35)); 2 38 dcl cmcs_queue_ctl_$purge entry (ptr, fixed bin, fixed bin (35)); 2 39 dcl cmcs_queue_ctl_$receive entry (ptr, fixed bin, ptr, fixed bin, fixed bin (35)); 2 40 dcl cmcs_queue_ctl_$send entry (ptr, fixed bin, ptr, fixed bin, fixed bin, bit (36), fixed bin (35)); 2 41 dcl cmcs_queue_ctl_$stop_run entry (fixed bin, fixed bin (35)); 2 42 2 43 dcl cmcs_scramble_ entry (char (10)) returns (char (10)); 2 44 2 45 dcl cmcs_set_lock_$lock entry (bit (36) aligned, fixed bin, fixed bin (35)); /*[5.3-1]*/ 2 46 dcl cmcs_set_lock_$unlock entry (bit (36) aligned, fixed bin (35)); 2 47 2 48 dcl cmcs_station_ctl_$attach entry (char (12), fixed bin, fixed bin (35)); 2 49 dcl cmcs_station_ctl_$detach entry (fixed bin, fixed bin (35)); 2 50 dcl cmcs_station_ctl_$detach_name entry (char (12), fixed bin (35)); 2 51 dcl cmcs_station_ctl_$disable_input_terminal entry (ptr, char (10), fixed bin (35)); 2 52 dcl cmcs_station_ctl_$disable_output_terminal entry (ptr, char (10), fixed bin (35)); 2 53 dcl cmcs_station_ctl_$enable_input_terminal entry (ptr, char (10), fixed bin (35)); 2 54 dcl cmcs_station_ctl_$enable_output_terminal entry (ptr, char (10), fixed bin (35)); 2 55 dcl cmcs_station_ctl_$find_destination entry (char (12), fixed bin, ptr, fixed bin (35)); /*[4.4-1]*/ 2 56 dcl cmcs_station_ctl_$input_disabled entry (fixed bin, bit (1), fixed bin (35)); 2 57 dcl cmcs_station_ctl_$output_disabled entry (fixed bin, bit (1), fixed bin (35)); 2 58 dcl cmcs_station_ctl_$validate entry (char (12), fixed bin, fixed bin (35)); 2 59 2 60 dcl cmcs_status_list_ctl_$add entry (ptr, ptr, ptr, fixed bin, fixed bin (35)); 2 61 dcl cmcs_status_list_ctl_$delete entry (ptr, ptr, ptr, fixed bin, fixed bin (35)); 2 62 dcl cmcs_status_list_ctl_$move entry (ptr, ptr, ptr, fixed bin, fixed bin, fixed bin (35)); 2 63 2 64 dcl cmcs_terminal_ctl_$find entry (char (8), char (12), fixed bin (35)); 2 65 2 66 dcl cmcs_tree_ctl_$find_destination entry (char (12), fixed bin, ptr, fixed bin (35)); 2 67 dcl cmcs_tree_ctl_$find_index entry (fixed bin, ptr, fixed bin (35)); 2 68 dcl cmcs_tree_ctl_$find_tree_path entry (ptr, fixed bin, fixed bin, ptr, fixed bin (35)); 2 69 dcl cmcs_tree_ctl_$find_qual_name entry (char (12), fixed bin, ptr, char (52), fixed bin (35)); /*[4.4-1]*/ 2 70 2 71 dcl cmcs_wait_ctl_$add entry (char (48), fixed bin, fixed bin (35)); 2 72 dcl cmcs_wait_ctl_$delete entry (fixed bin, fixed bin (35)); 2 73 dcl cmcs_wait_ctl_$find entry (char (48), ptr, fixed bin (35)); 2 74 dcl cmcs_wait_ctl_$mp_available entry (fixed bin, fixed bin, fixed bin (35)); 2 75 dcl cmcs_wait_ctl_$mp_login entry (fixed bin, fixed bin (35)); 2 76 dcl cmcs_wait_ctl_$mp_logout entry (fixed bin, fixed bin (35)); 2 77 dcl cmcs_wait_ctl_$clear_mp entry (fixed bin (35)); 2 78 dcl cmcs_wait_ctl_$start_mp entry (fixed bin (35)); 2 79 dcl cmcs_wait_ctl_$stop_mp entry (fixed bin (35)); 2 80 2 81 /* END INCLUDE FILE... cmcs_entry_dcls.incl.pl1 */ 50 3 1 /* BEGIN INCLUDE FILE ... cmcs_system_ctl.incl.pl1 */ 3 2 3 3 /* 3 4* This COBOL MCS include file holds all the COBOL MCS system-wide parameters. 3 5**/ 3 6 3 7 /* Bob May, 5/31/77 */ 3 8 3 9 dcl (system_ctl_hdr_len init (32), 3 10 system_ctl_entry_len init (0), 3 11 system_ctl_version init (1)) fixed bin internal static options (constant); 3 12 3 13 dcl system_ctl_ptr ptr int static; 3 14 3 15 dcl 1 system_ctl aligned based (system_ctl_ptr), 3 16 2 hdr like control_hdr, 3 17 2 flags, 3 18 (3 mp_started_sw bit (1), 3 19 3 filler bit (35)) unaligned, 3 20 2 mp_started_count fixed bin, /* zero for this version */ 3 21 2 mp_active_count fixed bin, /* number that have logged in so far, less the logouts */ 3 22 2 password char (10), /* scrambled password for all cmcs functions */ 3 23 2 lock_wait_time fixed bin, /* number of seconds to wait before giving up */ 3 24 2 filler (25) fixed bin (35); 3 25 3 26 /* END INCLUDE FILE ... cmcs_system_ctl.incl.pl1 */ 51 4 1 /* BEGIN INCLUDE FILE ... cmcs_user_ctl.incl.pl1 */ 4 2 4 3 /* 4 4* This COBOL MCS include file defines the global, process-dependent variables that are 4 5* not part of the PD copy of cmcs_tree_ctl.control. 4 6**/ 4 7 4 8 /* Modified on 05/06/81 by FCH, [4.4-1], attach command */ 4 9 /* Bob May, 5/31/77 */ 4 10 4 11 dcl user_ctl_exists_sw bit (1) aligned int static init ("0"b); /* indicates legitimacy of external_user_ctl_ptr */ 4 12 4 13 dcl external_user_ctl_ptr ptr external; /* global ptr for user_ctl */ 4 14 4 15 dcl user_ctl_ptr ptr int static; 4 16 4 17 dcl 1 user_ctl aligned based (user_ctl_ptr), 4 18 4 19 /* Flags */ 4 20 4 21 2 init_sw, 4 22 3 terminal_ctl bit(1), 4 23 3 tree_ctl bit(1), 4 24 3 status_list_ctl bit(1), 4 25 3 station_ctl bit(1), 4 26 3 queue_ctl bit(1), 4 27 3 set_lock bit(1), 4 28 3 wait_ctl bit(1), 4 29 3 purge_queues bit(1), 4 30 3 create_queues bit(1), 4 31 3 initiate_ctl bit(1), 4 32 3 mcs bit(1), 4 33 2 flags, 4 34 (3 initialized_sw bit (1), 4 35 3 interactive_sw bit (1), 4 36 3 mp_sw bit (1), /* message processor process */ 4 37 3 terminal_sw bit (1), /* user terminal process */ 4 38 3 admin_sw bit (1), /* cobol_mcs_admin */ 4 39 3 attach_bit bit(1), /*[4.4-1]*/ 4 40 3 rec bit(1), /*[4.4-1]*/ 4 41 3 filler bit (29)) unaligned, 4 42 2 cmcs_dir char (168), 4 43 2 output_file char(168), /*[4.4-1]*/ 4 44 2 station_name char (12), /* current station */ 4 45 2 station_ctl_eindex fixed bin, /* current station */ 4 46 2 process_id bit (36), 4 47 2 process_type fixed bin, /* 0 - not defined, 1 - MP, 2 - terminal, 3 - admin */ 4 48 2 filler fixed bin (35), /* to explicitly align ptrs */ 4 49 2 control_ptrs, 4 50 3 queue_ctl_ptr ptr, 4 51 3 iocb_ptr ptr, /*[4.4-1]*/ 4 52 3 station_ctl_ptr ptr, 4 53 3 system_ctl_ptr ptr, 4 54 3 terminal_ctl_ptr ptr, 4 55 3 tree_ctl_ptr ptr, 4 56 3 wait_ctl_ptr ptr, 4 57 3 filler_ptrs (4) ptr, 4 58 2 terminal_info, 4 59 3 term_id char (4), 4 60 3 term_type fixed bin, 4 61 3 term_channel char (8), 4 62 2 last_receive_info, 4 63 3 tree_path char (48), 4 64 3 tree_ctl_eindex fixed bin, 4 65 3 tree_ctl_eptr ptr, 4 66 2 last_send_info, 4 67 3 dest_name char (12), 4 68 3 tree_ctl_eindex fixed bin, 4 69 3 tree_ctl_eptr ptr, 4 70 2 station_info, 4 71 3 station_count fixed bin, /* must be 1 for phase 1 */ 4 72 3 station_entries (2), 4 73 4 station_name char (12), 4 74 4 station_ctl_eptr ptr, 4 75 4 station_ctl_eindex fixed bin, 4 76 2 wait_info, 4 77 3 wait_ctl_eptr ptr, 4 78 3 wait_ctl_eindex fixed bin, 4 79 3 wait_ctl_mp_eindex fixed bin, /* only for message processors */ 4 80 3 wait_ctl_mp_eptr ptr, 4 81 3 ev_wait_chn fixed bin (71), /* for message processors */ 4 82 3 ev_call_chn fixed bin (71), /* for terminals, to get message responses */ 4 83 3 ev_wait_list_ptr ptr, /* for ipc_$block */ 4 84 3 ev_info_ptr ptr; /* for wakeup */ 4 85 4 86 /* END INCLUDE FILE ... cmcs_user_ctl.incl.pl1 */ 52 53 /* */ 54 lock: 55 entry (a_lockword, time, a_code); 56 57 dcl a_lockword bit (36) aligned, 58 a_code fixed bin (35); 59 60 /*[5.3-1]*/ 61 dcl time fixed bin; 62 63 if ^(external_user_ctl_ptr -> user_ctl.init_sw.set_lock) 64 then do; 65 call setup; 66 if a_code ^= 0 67 then return; 68 end; 69 70 71 /*[5.3-1]*/ 72 call set_lock_$lock (a_lockword, time, a_code); 73 if a_code ^= 0 74 then if a_code = error_table_$invalid_lock_reset 75 then a_code = 0; 76 77 return; 78 79 unlock: 80 entry (a_lockword, a_code); 81 82 if ^(external_user_ctl_ptr -> user_ctl.init_sw.set_lock) 83 then do; 84 call setup; 85 if a_code ^= 0 86 then return; 87 end; 88 89 call set_lock_$unlock (a_lockword, a_code); 90 return; 91 92 setup: 93 proc; 94 95 user_ctl_ptr = external_user_ctl_ptr; /* set local variable from global */ 96 97 system_ctl_ptr = user_ctl.system_ctl_ptr; 98 99 user_ctl.init_sw.set_lock = "1"b; 100 a_code = 0; 101 return; 102 103 end /* setup */; 104 105 end /* cmcs_set_lock_ */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0834.0 cmcs_set_lock_.pl1 >spec>install>MR12.3-1048>cmcs_set_lock_.pl1 49 1 03/27/82 0439.5 cmcs_control_hdr.incl.pl1 >ldd>include>cmcs_control_hdr.incl.pl1 50 2 05/24/89 0811.5 cmcs_entry_dcls.incl.pl1 >spec>install>MR12.3-1048>cmcs_entry_dcls.incl.pl1 51 3 03/27/82 0439.6 cmcs_system_ctl.incl.pl1 >ldd>include>cmcs_system_ctl.incl.pl1 52 4 03/27/82 0431.5 cmcs_user_ctl.incl.pl1 >ldd>include>cmcs_user_ctl.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. a_code parameter fixed bin(35,0) dcl 57 set ref 54 66 72* 73 73 73* 79 85 89* 100* a_lockword parameter bit(36) dcl 57 set ref 54 72* 79 89* control_hdr based structure level 1 dcl 1-11 control_ptrs 150 based structure level 2 dcl 4-17 error_table_$invalid_lock_reset 000020 external static fixed bin(35,0) dcl 38 ref 73 external_user_ctl_ptr 000022 external static pointer dcl 4-13 ref 63 82 95 init_sw based structure level 2 dcl 4-17 set_lock 5 based bit(1) level 3 dcl 4-17 set ref 63 82 99* set_lock_$lock 000014 constant entry external dcl 35 ref 72 set_lock_$unlock 000016 constant entry external dcl 35 ref 89 system_ctl_ptr 000010 internal static pointer dcl 3-13 in procedure "cmcs_set_lock_" set ref 97* system_ctl_ptr 156 based pointer level 3 in structure "user_ctl" dcl 4-17 in procedure "cmcs_set_lock_" ref 97 time parameter fixed bin(17,0) dcl 61 set ref 54 72* user_ctl based structure level 1 dcl 4-17 user_ctl_ptr 000012 internal static pointer dcl 4-15 set ref 95* 97 99 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. cmcs_create_queues_ 000000 constant entry external dcl 2-18 cmcs_date_time_ 000000 constant entry external dcl 2-20 cmcs_decode_status_ 000000 constant entry external dcl 2-22 cmcs_expand_tree_path_ 000000 constant entry external dcl 2-24 cmcs_fillin_hdr_ 000000 constant entry external dcl 2-26 cmcs_initiate_ctl_ 000000 constant entry external dcl 2-28 cmcs_print_ 000000 constant entry external dcl 2-30 cmcs_purge_queues_ 000000 constant entry external dcl 2-32 cmcs_queue_ctl_$accept_message_count 000000 constant entry external dcl 2-34 cmcs_queue_ctl_$disable 000000 constant entry external dcl 2-35 cmcs_queue_ctl_$enable 000000 constant entry external dcl 2-36 cmcs_queue_ctl_$print 000000 constant entry external dcl 2-37 cmcs_queue_ctl_$purge 000000 constant entry external dcl 2-38 cmcs_queue_ctl_$receive 000000 constant entry external dcl 2-39 cmcs_queue_ctl_$send 000000 constant entry external dcl 2-40 cmcs_queue_ctl_$stop_run 000000 constant entry external dcl 2-41 cmcs_scramble_ 000000 constant entry external dcl 2-43 cmcs_set_lock_$lock 000000 constant entry external dcl 2-45 cmcs_set_lock_$unlock 000000 constant entry external dcl 2-46 cmcs_station_ctl_$attach 000000 constant entry external dcl 2-48 cmcs_station_ctl_$detach 000000 constant entry external dcl 2-49 cmcs_station_ctl_$detach_name 000000 constant entry external dcl 2-50 cmcs_station_ctl_$disable_input_terminal 000000 constant entry external dcl 2-51 cmcs_station_ctl_$disable_output_terminal 000000 constant entry external dcl 2-52 cmcs_station_ctl_$enable_input_terminal 000000 constant entry external dcl 2-53 cmcs_station_ctl_$enable_output_terminal 000000 constant entry external dcl 2-54 cmcs_station_ctl_$find_destination 000000 constant entry external dcl 2-55 cmcs_station_ctl_$input_disabled 000000 constant entry external dcl 2-56 cmcs_station_ctl_$output_disabled 000000 constant entry external dcl 2-57 cmcs_station_ctl_$validate 000000 constant entry external dcl 2-58 cmcs_status_list_ctl_$add 000000 constant entry external dcl 2-60 cmcs_status_list_ctl_$delete 000000 constant entry external dcl 2-61 cmcs_status_list_ctl_$move 000000 constant entry external dcl 2-62 cmcs_terminal_ctl_$find 000000 constant entry external dcl 2-64 cmcs_tree_ctl_$find_destination 000000 constant entry external dcl 2-66 cmcs_tree_ctl_$find_index 000000 constant entry external dcl 2-67 cmcs_tree_ctl_$find_qual_name 000000 constant entry external dcl 2-69 cmcs_tree_ctl_$find_tree_path 000000 constant entry external dcl 2-68 cmcs_wait_ctl_$add 000000 constant entry external dcl 2-71 cmcs_wait_ctl_$clear_mp 000000 constant entry external dcl 2-77 cmcs_wait_ctl_$delete 000000 constant entry external dcl 2-72 cmcs_wait_ctl_$find 000000 constant entry external dcl 2-73 cmcs_wait_ctl_$mp_available 000000 constant entry external dcl 2-74 cmcs_wait_ctl_$mp_login 000000 constant entry external dcl 2-75 cmcs_wait_ctl_$mp_logout 000000 constant entry external dcl 2-76 cmcs_wait_ctl_$start_mp 000000 constant entry external dcl 2-78 cmcs_wait_ctl_$stop_mp 000000 constant entry external dcl 2-79 code automatic fixed bin(35,0) dcl 46 control_hdr_len internal static fixed bin(17,0) initial dcl 1-7 control_hdr_ptr automatic pointer dcl 1-9 lockword automatic bit(36) dcl 41 mask automatic bit(36) dcl 41 oldmask automatic bit(36) dcl 41 system_ctl based structure level 1 dcl 3-15 system_ctl_entry_len internal static fixed bin(17,0) initial dcl 3-9 system_ctl_hdr_len internal static fixed bin(17,0) initial dcl 3-9 system_ctl_version internal static fixed bin(17,0) initial dcl 3-9 user_ctl_exists_sw internal static bit(1) initial dcl 4-11 NAMES DECLARED BY EXPLICIT CONTEXT. cmcs_set_lock_ 000005 constant entry external dcl 23 lock 000017 constant entry external dcl 54 setup 000121 constant entry internal dcl 92 ref 65 84 unlock 000066 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 236 262 136 246 Length 532 136 24 233 77 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cmcs_set_lock_ 80 external procedure is an external procedure. setup internal procedure shares stack frame of external procedure cmcs_set_lock_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 system_ctl_ptr cmcs_set_lock_ 000012 user_ctl_ptr cmcs_set_lock_ 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. set_lock_$lock set_lock_$unlock THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$invalid_lock_reset external_user_ctl_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 000004 26 000012 54 000013 63 000027 65 000034 66 000035 72 000037 73 000053 77 000061 79 000062 82 000076 84 000103 85 000104 89 000106 90 000120 92 000121 95 000122 97 000126 99 000131 100 000134 101 000135 ----------------------------------------------------------- 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