COMPILATION LISTING OF SEGMENT tut_get_seg_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/01/84 1404.6 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* Written by J. Siwila 3/30/83 */ 8 9 /* This procedure prints segments containing Tutorial information. */ 10 11 /* Changed 3/30/84 by J. Siwila: add condition handler for sub_error_ and check for error_table_$recoverable_error. */ 12 13 /* format: style2 */ 14 tut_get_seg_: 15 proc (seg_name, menu_io, user_io_window_info, code); 16 17 /* Automatic */ 18 19 dcl code fixed bin (35); 20 dcl error_table_$recoverable_error fixed bin (35) external; 21 dcl menu_io ptr; 22 dcl ME_SEG_NAME char (14) init ("tut_get_seg_"); 23 dcl seg_name char (*); 24 dcl 1 user_io_window_info like window_position_info; 25 dcl 1 local_fdoc_options like format_document_options; 26 27 /* Builtin */ 28 29 dcl addr builtin; 30 dcl sub_error_ condition; 31 32 /* Entries */ 33 34 dcl format_document_$switch 35 entry (char (*), char (*), ptr, ptr, fixed bin (35)); 36 dcl tut_quit_ entry () options (variable); 37 dcl window_$clear_window entry (ptr, fixed bin (35)); 38 39 /* Static */ 40 41 dcl iox_$user_output ptr external static; 42 43 format_document_options_ptr = addr (local_fdoc_options); 44 local_fdoc_options.version_number = format_document_version_2; 45 local_fdoc_options.indentation = 0; 46 local_fdoc_options.line_length = user_io_window_info.extent.width; 47 local_fdoc_options.pgno_sw = "0"b; 48 local_fdoc_options.adj_sw = "0"b; 49 local_fdoc_options.galley_sw = "1"b; 50 local_fdoc_options.error_sw = "0"b; 51 local_fdoc_options.literal_sw = "0"b; 52 local_fdoc_options.dont_compress_sw = "1"b; 53 local_fdoc_options.break_word_sw = "1"b; 54 local_fdoc_options.max_line_length_sw = "1"b; 55 local_fdoc_options.dont_break_indented_lines_sw = "1"b; 56 local_fdoc_options.sub_err_sw = "1"b; 57 local_fdoc_options.dont_fill_sw = "0"b; 58 local_fdoc_options.hyphenation_sw = "1"b; 59 local_fdoc_options.mbz = "0"b; 60 local_fdoc_options.syllable_size = 2; 61 62 on condition (sub_error_) code = 0; 63 64 call window_$clear_window (iox_$user_output, code); 65 if code ^= 0 66 then do; 67 call tut_quit_ (code, ME_SEG_NAME, "Unable to clear window.", menu_io, user_io_window_info); 68 return; 69 end; 70 call format_document_$switch (">doc>facilities_data_dir", seg_name, iox_$user_output, 71 format_document_options_ptr, code); 72 if code ^= 0 73 then 74 if code = error_table_$recoverable_error 75 then code = 0; 76 else call tut_quit_ (code, ME_SEG_NAME, "Unable to print option.", menu_io, user_io_window_info); 77 78 return; 79 80 1 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 1 2 /* format: style3 */ 1 3 1 4 /* Modified 26 January 1982 by William York to add the set_more_handler 1 5* and reset_more_handler control orders. */ 1 6 /* Modified October 1982 by WMY to add set and get_token_characters, 1 7* set and get_more_prompt. */ 1 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 1 9* structure. */ 1 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 1 11* partial screen width windows. */ 1 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 1 13* This should be removed when window_info.incl.pl1 is created. */ 1 14 /* Modified 29 February 1984 by Barmar to add version 1 1 15* get_editor_key_bindings_info. */ 1 16 /* Modified 1 March 1984 by Barmar to add version 1 1 17* set_editor_key_bindings_info. */ 1 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 1 19* line_editor_key_bindings_info, which includes the name, description, and 1 20* info path */ 1 21 1 22 /* structure for the set_window_info and get_window_info 1 23* control orders. */ 1 24 1 25 dcl 1 window_position_info 1 26 based (window_position_info_ptr), 1 27 2 version fixed bin, 1 28 2 origin, 1 29 3 column fixed bin, 1 30 3 line fixed bin, 1 31 2 extent, 1 32 3 width fixed bin, 1 33 3 height fixed bin; 1 34 1 35 dcl (window_position_info_version, window_position_info_version_1) 1 36 fixed bin internal static init (1) options (constant); 1 37 dcl window_position_info_ptr 1 38 pointer; 1 39 1 40 /* structure for the set_window_status and get_window_status 1 41* control orders */ 1 42 1 43 declare window_status_info_ptr 1 44 pointer; 1 45 declare 1 window_status_info 1 46 aligned based (window_status_info_ptr), 1 47 2 version fixed bin, 1 48 2 status_string bit (36) aligned; /* string (window_status) */ 1 49 /* see window_status.incl.pl1 for the contents of this string */ 1 50 1 51 1 52 declare (window_status_version, window_status_version_1) 1 53 fixed bin internal static init (1) options (constant); 1 54 1 55 /* info structure for the set_more_responses and get_more_responses control 1 56* orders */ 1 57 1 58 1 59 dcl 1 more_responses_info 1 60 aligned based (more_responses_info_ptr), 1 61 2 version fixed bin, 1 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 1 63 2 n_noes fixed bin, 1 64 2 yeses char (32) unaligned, 1 65 2 noes char (32) unaligned; 1 66 1 67 dcl (more_responses_info_version_1, more_responses_version) 1 68 fixed bin internal static init (1) options (constant); 1 69 dcl more_responses_info_ptr 1 70 pointer; 1 71 1 72 /* structure for the set_break_table and get_break_table 1 73* control orders */ 1 74 1 75 declare break_table_ptr pointer; 1 76 declare 1 break_table_info aligned based (break_table_ptr), 1 77 2 version fixed bin, 1 78 2 breaks (0:127) bit (1) unaligned; 1 79 1 80 declare (break_table_info_version, break_table_info_version_1) 1 81 fixed bin init (1) internal static options (constant); 1 82 1 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 1 84 2 version fixed bin, 1 85 2 flags unaligned, 1 86 3 old_handler_valid 1 87 bit(1), 1 88 3 pad bit(35), 1 89 2 more_handler entry (pointer, bit(1) aligned), 1 90 2 old_more_handler entry (pointer, bit(1) aligned); 1 91 1 92 declare more_handler_info_ptr pointer; 1 93 1 94 declare (more_handler_info_version, more_handler_info_version_3) 1 95 fixed bin internal static options (constant) init (3); 1 96 1 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 1 98 2 version char(8), 1 99 2 token_character_count 1 100 fixed bin, 1 101 2 token_characters 1 102 char (128) unaligned; 1 103 1 104 declare token_characters_info_ptr pointer; 1 105 1 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 1 107 1 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 1 109 2 version char(8), 1 110 2 more_prompt char(80); 1 111 1 112 declare more_prompt_info_ptr pointer; 1 113 1 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 1 115 1 116 /* Line editor stuff ... */ 1 117 1 118 dcl line_editor_key_binding_info_ptr 1 119 pointer; 1 120 1 121 dcl line_editor_binding_count 1 122 fixed bin; 1 123 dcl line_editor_longest_sequence 1 124 fixed bin; 1 125 /* For each binding, action defines what to do for that sequence. Constants 1 126* are defined in window_editor_values.incl.pl1. Only if action is set to 1 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 1 128 1 129 dcl 1 line_editor_key_binding_info 1 130 aligned based (line_editor_key_binding_info_ptr), 1 131 2 version char(8), 1 132 2 binding_count fixed bin, 1 133 2 longest_sequence fixed bin, 1 134 2 bindings (line_editor_binding_count refer 1 135 (line_editor_key_binding_info.binding_count)), 1 136 3 sequence char(line_editor_longest_sequence refer 1 137 (line_editor_key_binding_info.longest_sequence)) varying, 1 138 3 action fixed bin, 1 139 3 numarg_action fixed binary, 1 140 3 editor_routine entry (pointer, fixed bin(35)), 1 141 3 name char (64) varying unaligned, 1 142 3 description char (256) varying unaligned, 1 143 3 info_path unaligned, 1 144 4 info_dir char (168), 1 145 4 info_entry char (32); 1 146 1 147 1 148 dcl line_editor_key_binding_info_version_3 1 149 char(8) static options (constant) init ("lekbi003"); 1 150 1 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 1 152 2 version char (8), 1 153 2 flags, 1 154 3 entire_state bit (1) unaligned, 1 155 3 mbz bit (35) unaligned, 1 156 2 key_binding_info_ptr ptr, 1 157 2 entire_state_ptr ptr; 1 158 1 159 dcl get_editor_key_bindings_info_ptr ptr; 1 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 1 161 1 162 dcl 1 set_editor_key_bindings_info aligned 1 163 based (set_editor_key_bindings_info_ptr), 1 164 2 version char (8), 1 165 2 flags, 1 166 3 replace bit (1) unaligned, 1 167 3 update bit (1) unaligned, 1 168 3 mbz bit (34) unaligned, 1 169 2 key_binding_info_ptr ptr; 1 170 1 171 dcl set_editor_key_bindings_info_ptr ptr; 1 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 1 173 1 174 /* This should be moved to window_info.incl.pl1 when that include file is 1 175* created. JR 2/1/84 */ 1 176 1 177 dcl 1 window_edit_line_info 1 178 based (window_edit_line_info_ptr), 1 179 2 version char (8), 1 180 2 line_ptr ptr, 1 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 1 182 1 183 dcl window_edit_line_info_version_1 1 184 char (8) static options (constant) init ("wedl0001"); 1 185 1 186 dcl window_edit_line_info_ptr 1 187 ptr; 1 188 1 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 81 82 2 1 /* BEGIN INCLUDE FILE format_document_options.incl.pl1 2 2* 2 3* Modified 82.10.18 by Paul W. Benjamin to add dont_compress_sw and upgrade 2 4* to version_2. 2 5* Modified 83.02.15 by PWB to add break_word_sw and max_line_length_sw. 2 6* Modified 83.03.01 by PWB to add dont_break_indented_lines_sw. 2 7* Modified 83.03.03 by PWB to add sub_err_sw. 2 8* Modified 83.06.07 by PWB to add dont_fill_sw. 2 9* Modified 83.06.09 by PWB to add hyphenation_sw and syllable_size. 2 10**/ 2 11 2 12 dcl 1 format_document_options aligned based (format_document_options_ptr), 2 13 2 version_number fixed bin, /* input */ 2 14 /* must be format_document_version_2 */ 2 15 2 indentation fixed bin, /* input */ 2 16 /* all lines must be indented by this value */ 2 17 2 line_length fixed bin, /* input */ 2 18 /* initial line length */ 2 19 2 switches, 2 20 3 pgno_sw bit (1) unal, /* input */ 2 21 /* end each page with a centered page number */ 2 22 3 adj_sw bit (1) unal, /* input */ 2 23 /* adjust mode initially on */ 2 24 /* only meaningful if dont_fill_sw = "0"b */ 2 25 3 galley_sw bit (1) unal, /* input */ 2 26 /* galley mode -- no page breaks */ 2 27 3 error_sw bit (1) unal, /* input */ 2 28 /* report all errors on error_output */ 2 29 3 literal_sw bit (1) unal, /* input */ 2 30 /* "1"b - interpret all lines as text */ 2 31 /* "0"b - lines that start with "." are controls */ 2 32 3 file_sw bit (1) unal, /* output */ 2 33 /* has meaning for non-zero storage system status codes */ 2 34 /* "1"b code refers to output file */ 2 35 /* "0"b code refers to input file */ 2 36 3 dont_compress_sw bit (1) unal, /* input */ 2 37 /* "1"b - don't compress white space */ 2 38 /* "0"b - compress white space when filling */ 2 39 3 break_word_sw bit (1) unal, /* input */ 2 40 /* "1"b - break a word rather than exceed line_length */ 2 41 /* "0"b - write an overlength line if no spaces found */ 2 42 3 max_line_length_sw bit (1) unal, /* input */ 2 43 /* "1"b - line_length cannot be exceeded */ 2 44 /* "0"b - line_length can be exceeded (by .pdw controls) */ 2 45 3 dont_break_indented_lines_sw /* input */ 2 46 bit (1) unal, /* don't break a line that begins with whitespace */ 2 47 /* when it is the last line, or the next line is */ 2 48 /* null or the next line begins with whitespace */ 2 49 3 sub_err_sw bit (1) unal, /* input */ 2 50 /* quietly call sub_err_ with diagnostic errors */ 2 51 3 dont_fill_sw bit (1) unal, /* input */ 2 52 /* "1"b - fill mode off initially */ 2 53 /* "0"b - fill mode on initially */ 2 54 3 hyphenation_sw bit (1) unal, 2 55 3 mbz bit (23) unal, /* input */ 2 56 /* MUST be zero */ 2 57 2 syllable_size 2 58 fixed bin; /* input */ 2 59 /* smallest portion of word */ 2 60 /* to be left by hyphenation */ 2 61 2 62 dcl format_document_options_ptr ptr; 2 63 dcl format_document_version_2 fixed bin int static options (constant) init (2); 2 64 dcl format_document_version_1 fixed bin int static options (constant) init (1); 2 65 2 66 /* END INCLUDE FILE format_document_options.incl.pl1 */ 83 84 85 end tut_get_seg_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/01/84 1303.8 tut_get_seg_.pl1 >special_ldd>online>6675-11/01/84>tut_get_seg_.pl1 81 1 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.incl.pl1 83 2 11/01/84 1301.3 format_document_options.incl.pl1 >special_ldd>online>6675-11/01/84>format_document_options.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. ME_SEG_NAME 000100 automatic char(14) initial unaligned dcl 22 set ref 22* 67* 76* addr builtin function dcl 29 ref 43 adj_sw 3(01) 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 48* break_word_sw 3(07) 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 53* code parameter fixed bin(35,0) dcl 19 set ref 14 62* 64* 65 67* 70* 72 72 72* 76* dont_break_indented_lines_sw 3(09) 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 55* dont_compress_sw 3(06) 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 52* dont_fill_sw 3(11) 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 57* error_sw 3(03) 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 50* error_table_$recoverable_error 000010 external static fixed bin(35,0) dcl 20 ref 72 extent 3 parameter structure level 2 unaligned dcl 24 format_document_$switch 000012 constant entry external dcl 34 ref 70 format_document_options based structure level 1 dcl 2-12 format_document_options_ptr 000120 automatic pointer dcl 2-62 set ref 43* 70* format_document_version_2 constant fixed bin(17,0) initial dcl 2-63 ref 44 galley_sw 3(02) 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 49* hyphenation_sw 3(12) 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 58* indentation 1 000104 automatic fixed bin(17,0) level 2 dcl 25 set ref 45* iox_$user_output 000020 external static pointer dcl 41 set ref 64* 70* line_length 2 000104 automatic fixed bin(17,0) level 2 dcl 25 set ref 46* literal_sw 3(04) 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 51* local_fdoc_options 000104 automatic structure level 1 unaligned dcl 25 set ref 43 max_line_length_sw 3(08) 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 54* mbz 3(13) 000104 automatic bit(23) level 3 packed unaligned dcl 25 set ref 59* menu_io parameter pointer dcl 21 set ref 14 67* 76* pgno_sw 3 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 47* seg_name parameter char unaligned dcl 23 set ref 14 70* sub_err_sw 3(10) 000104 automatic bit(1) level 3 packed unaligned dcl 25 set ref 56* sub_error_ 000112 stack reference condition dcl 30 ref 62 switches 3 000104 automatic structure level 2 packed unaligned dcl 25 syllable_size 4 000104 automatic fixed bin(17,0) level 2 dcl 25 set ref 60* tut_quit_ 000014 constant entry external dcl 36 ref 67 76 user_io_window_info parameter structure level 1 unaligned dcl 24 set ref 14 67* 76* version_number 000104 automatic fixed bin(17,0) level 2 dcl 25 set ref 44* width 3 parameter fixed bin(17,0) level 3 dcl 24 set ref 46 window_$clear_window 000016 constant entry external dcl 37 ref 64 window_position_info based structure level 1 unaligned dcl 1-25 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. break_table_info based structure level 1 dcl 1-76 break_table_info_version internal static fixed bin(17,0) initial dcl 1-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 1-80 break_table_ptr automatic pointer dcl 1-75 format_document_version_1 internal static fixed bin(17,0) initial dcl 2-64 get_editor_key_bindings_info based structure level 1 dcl 1-151 get_editor_key_bindings_info_ptr automatic pointer dcl 1-159 get_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 1-160 line_editor_binding_count automatic fixed bin(17,0) dcl 1-121 line_editor_key_binding_info based structure level 1 dcl 1-129 line_editor_key_binding_info_ptr automatic pointer dcl 1-118 line_editor_key_binding_info_version_3 internal static char(8) initial unaligned dcl 1-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 1-123 more_handler_info based structure level 1 dcl 1-83 more_handler_info_ptr automatic pointer dcl 1-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 1-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 1-94 more_prompt_info based structure level 1 dcl 1-108 more_prompt_info_ptr automatic pointer dcl 1-112 more_prompt_info_version_1 internal static char(8) initial unaligned dcl 1-114 more_responses_info based structure level 1 dcl 1-59 more_responses_info_ptr automatic pointer dcl 1-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 1-67 more_responses_version internal static fixed bin(17,0) initial dcl 1-67 set_editor_key_bindings_info based structure level 1 dcl 1-162 set_editor_key_bindings_info_ptr automatic pointer dcl 1-171 set_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 1-172 token_characters_info based structure level 1 dcl 1-97 token_characters_info_ptr automatic pointer dcl 1-104 token_characters_info_version_1 internal static char(8) initial unaligned dcl 1-106 window_edit_line_info based structure level 1 unaligned dcl 1-177 window_edit_line_info_ptr automatic pointer dcl 1-186 window_edit_line_info_version_1 internal static char(8) initial unaligned dcl 1-183 window_position_info_ptr automatic pointer dcl 1-37 window_position_info_version internal static fixed bin(17,0) initial dcl 1-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 1-35 window_status_info based structure level 1 dcl 1-45 window_status_info_ptr automatic pointer dcl 1-43 window_status_version internal static fixed bin(17,0) initial dcl 1-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 1-52 NAME DECLARED BY EXPLICIT CONTEXT. tut_get_seg_ 000053 constant entry external dcl 14 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 460 502 346 470 Length 724 346 22 206 111 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tut_get_seg_ 112 external procedure is an external procedure. on unit on line 62 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME tut_get_seg_ 000100 ME_SEG_NAME tut_get_seg_ 000104 local_fdoc_options tut_get_seg_ 000120 format_document_options_ptr tut_get_seg_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return enable ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. format_document_$switch tut_quit_ window_$clear_window THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$recoverable_error iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000046 22 000066 43 000071 44 000073 45 000075 46 000076 47 000102 48 000104 49 000106 50 000110 51 000112 52 000114 53 000116 54 000120 55 000122 56 000124 57 000126 58 000130 59 000132 60 000134 62 000136 64 000156 65 000170 67 000173 68 000232 70 000233 72 000272 76 000302 78 000340 ----------------------------------------------------------- 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