COMPILATION LISTING OF SEGMENT xforum_get_selected_trans Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/24/86 1531.1 mst Thu Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 4* * * 5* *********************************************************** */ 6 7 8 /****^ HISTORY COMMENTS: 9* 1) change(85-01-30,Davids), approve(86-02-04,MCR7350), 10* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 11* Written. 12* 13* 85-02-26 Davids: Added checks in the next entry so that the for 14* the all, new, and allref cases the value of xgst_trans_no is only 15* set if the code returned from forum_ is 0. If the code returned 16* is not 0 it is changed to forum_error_table_$invalid_trans_id. 17* The other cases don't require the check and already translate 18* non-zero error codes to invalid_trans_id. 19* 20* 85-06-24 Davids: Updated comments to variable and parameter 21* declarations and added some detail to the header comments. 22* 2) change(86-02-18,LJAdams), approve(86-02-18,MCR7350), 23* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 24* Added the lastref option. 25* END HISTORY COMMENTS */ 26 27 xforum_get_selected_trans: proc; 28 29 /* 30* BEGIN DESCRIPTION 31* 32* function: 33* This module returns the set of selected transactions based on the 34* xforum_meeting_info.flags. 35* 36* description of entry points: 37* xforum_get_selected_trans: 38* input: 39* output: 40* It is an error to call the main entry point. The xforum_fatal_error 41* condition will be signaled with an "internal propgramming error" error 42* message. 43* 44* first: 45* input: ptr pointer to the xforum_meeting_info 46* structure which contains the current 47* comment spec 48* output: ptr pointer to the forum_user_trans structure 49* for the first comment that meets the 50* current comment specification 51* fixed bin (35) standard error code 52* This entry is used to return the first selected transaction. The 53* first transaction is the transaction with the lowest transaction 54* index. If an error occurs it will be reported to the user and the 55* error code forum_error_table_$invalid_trans_idx will be returned to 56* the caller. The transaction index is stored in an internal static 57* variable so that a call to next knows where to start. If the comments 58* are being selected from a set the set index is stored in an internal 59* static variable. 60* 61* next: 62* input: ptr pointer to the xforum_meeting_info 63* structure which contains the current 64* comment spec 65* output: ptr pointer to the forum_user_trans structure 66* for the next comment that meets the 67* current comment specification 68* fixed bin (35) standard error code 69* This entry is used to get the "next" selected transaction. When the 70* set of selected transactions is completed the error code 71* forum_error_table_$invalid_trans_idx is returned to the caller. 72* 73* description of internal procs: 74* error: Similar to all the other error procedures. It records in an 75* internal static structure the details of an error and then signals the 76* xforum_fatal_error condition. 77* END DESCRIPTION 78**/ 79 80 /* PARAMETERS */ 81 82 /* EXTERNAL STATIC */ 83 84 dcl forum_error_table_$invalid_trans_idx fixed bin (35) ext static; 85 86 /* ENTRIES */ 87 88 dcl com_err_$suppress_name entry () options (variable); 89 dcl signal_ entry () options (variable); 90 dcl xforum_trans_$first_ref entry (fixed bin, ptr, fixed bin (35)); 91 dcl xforum_trans_$first_trans entry (ptr, fixed bin (35)); 92 dcl xforum_trans_$next_ref entry (fixed bin, ptr, fixed bin (35)); 93 dcl xforum_trans_$next_trans entry (fixed bin, ptr, fixed bin (35)); 94 dcl xforum_trans_$read entry (fixed bin, ptr, fixed bin (35)); 95 96 /* CONDITIONS */ 97 98 /* INTERNAL AUTOMATIC */ 99 100 dcl xforum_meeting_info_ptr ptr; /* default pointer to the xforum_meeting_info structure */ 101 /* not included in the xforum_meeting_info include file */ 102 103 /* INTERNAL STATIC */ 104 105 dcl ( 106 xgst_trans_no fixed bin, /* forum index of last comment selected */ 107 xgst_set_index fixed bin, /* index into set array of last comment selected from a set */ 108 01 xgst_xforum_error_info like xforum_error_info /* used to record error info to be output to user */ 109 ) internal static; 110 111 /* CONSTANTS */ 112 113 dcl xgst_ME char (25) init ("xforum_get_selected_trans") internal static options (constant); 114 115 /* BUILTINS */ 116 117 dcl ( 118 addr, 119 null 120 ) builtin; 121 122 /* BASED */ 123 124 /* INCLUDE FILES */ 125 1 1 /* BEGIN INCLUDE FILE: forum_user_trans.incl.pl1 */ 1 2 1 3 dcl alloc_text_length fixed bin (21); /* length of text area to allocate */ 1 4 dcl alloc_subject_length fixed bin (21); /* length of subject area to allocate */ 1 5 dcl forum_user_trans_ptr ptr; /* pointer to below structure */ 1 6 1 7 dcl 1 forum_user_trans based (forum_user_trans_ptr) aligned, 1 8 2 type fixed bin, /* type of transaction */ 1 9 2 person_id char (22), /* person_id of author of this transaction */ 1 10 2 project_id char (9), /* project_id of author of this transaction */ 1 11 2 time fixed bin (71), /* time transaction was entered */ 1 12 2 trans_no fixed bin, /* number of this transaction */ 1 13 2 next_trans_ptr ptr, /* pointer (in user ring) of next transaction */ 1 14 2 prev_trans_ptr ptr, /* pointer (in user ring) of previous transaction */ 1 15 2 subject_length fixed bin (21), /* length of subject field of transaction */ 1 16 2 text_length fixed bin (21), /* length of text field of transaction */ 1 17 2 unfilled bit (1) aligned, /* set if transaction is NOT stored filled */ 1 18 2 subject char (alloc_subject_length refer (forum_user_trans.subject_length)) unaligned, /* subject of transaction */ 1 19 2 text char (alloc_text_length refer (forum_user_trans.text_length)) unaligned; /* text of transaction */ 1 20 1 21 declare user_trans_type fixed bin static options (constant) initial (1); 1 22 declare message_type fixed bin static options (constant) initial (2); 1 23 1 24 declare (ONLY_UNDELETED init (0), 1 25 INCLUDE_DELETED init (1), 1 26 ONLY_DELETED init (2)) 1 27 fixed bin static options (constant); 1 28 1 29 /* END INCLUDE FILE: forum_user_trans.incl.pl1 */ 126 127 2 1 /* BEGIN INCLUDE FILE xforum_error_info 84-06-19 Davids */ 2 2 2 3 dcl 01 xforum_error_info based, 2 4 02 name char (32), 2 5 02 entry char (32), 2 6 02 doing char (100), 2 7 02 code fixed bin (35), 2 8 02 reason char (512); 2 9 2 10 /* END INCLUDE FILE xforum_error_info */ 128 129 3 1 /* START OF: xforum_meeting_info.incl.pl1 * * * * * */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(84-05-03,Davids), approve(84-05-03,MCR7350), 3 7* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 3 8* Changed the length of name from 20 characters to 32 characters. 3 9* Version 2 forum names can be 26 characters long (forum suffix) - 3 10* and a little extra incase version 3 uses a shorter suffix yet. 3 11* 3 12* 84-10-03 Davids: added the unread_count, next_unread, and 3 13* seen_map_ptr elements. Also the declaration for the 3 14* seen_map_string and seen_map. 3 15* 3 16* 85-01-24 Davids: added the set_array_ptr to the 3 17* xforum_meeting_info structure and the set_array structure and 3 18* SET_ARRAY_SPEC_LEN variable. 3 19* 2) change(86-02-17,LJAdams), approve(86-02-17,MCR7350), 3 20* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 3 21* Added restref flag. 3 22* END HISTORY COMMENTS */ 3 23 3 24 declare 1 xforum_meeting_info based (xforum_meeting_info_ptr), 3 25 2 name char (32), 3 26 2 lidx fixed bin, 3 27 2 idx fixed bin, 3 28 2 current fixed bin, 3 29 2 last_seen fixed bin, 3 30 2 first_trans fixed bin, 3 31 2 last_trans fixed bin, 3 32 2 new_trans fixed bin, 3 33 2 flags unal, 3 34 3 all bit (1), 3 35 3 allref bit (1), 3 36 3 restref bit (1), 3 37 3 new bit (1), 3 38 3 range bit (1), 3 39 3 set bit (1), 3 40 2 current_ref fixed bin, 3 41 2 low fixed bin, 3 42 2 high fixed bin, 3 43 2 trans_struct_ptr ptr, 3 44 2 next_unread fixed bin, 3 45 2 unread_count fixed bin, 3 46 2 seen_map_ptr ptr, 3 47 2 set_array_ptr ptr; 3 48 3 49 dcl seen_map_string bit (1000000) based; 3 50 dcl seen_map (1000000) bit (1) unaligned based; 3 51 3 52 dcl 01 set_array based (xforum_meeting_info.set_array_ptr), 3 53 02 number fixed bin, 3 54 02 spec char (80) varying, 3 55 02 index (100000); 3 56 3 57 dcl SET_ARRAY_SPEC_LEN fixed bin init (80) internal static options (constant); 3 58 3 59 /* END OF: xforum_meeting_info.incl.pl1 * * * * * */ 130 131 132 call error (0, "Internal programming error - xforum_get_selected_trans$xforum_get_selected_trans called."); 133 134 first: entry (f_xforum_meeting_info_ptr, f_forum_user_trans_ptr, f_code); 135 136 /* PARAMETERS */ 137 138 dcl f_xforum_meeting_info_ptr ptr; /* (input) pointer to the xforum_meeting_info structure */ 139 /* which contains the current comment spec */ 140 dcl f_forum_user_trans_ptr ptr; /* (output) pointer to the forum_user_trans structure for the */ 141 /* first comment that meets the current comment */ 142 /* specification */ 143 dcl f_code fixed bin (35); /* (output) standard error code */ 144 145 146 147 148 xforum_meeting_info_ptr = f_xforum_meeting_info_ptr; 149 150 if xforum_meeting_info.all 151 then do; 152 call xforum_trans_$first_trans (f_forum_user_trans_ptr, f_code); 153 if f_code ^= 0 154 then do; 155 call com_err_$suppress_name (f_code, xgst_ME, "Getting first comment."); 156 f_code = forum_error_table_$invalid_trans_idx; 157 end; 158 else xgst_trans_no = f_forum_user_trans_ptr -> forum_user_trans.trans_no; 159 end; 160 else if xforum_meeting_info.new 161 then do; 162 call xforum_trans_$next_trans (xforum_meeting_info.last_seen, f_forum_user_trans_ptr, f_code); 163 if f_code ^= 0 164 then do; 165 call com_err_$suppress_name (f_code, xgst_ME, "Getting first new comment."); 166 f_code = forum_error_table_$invalid_trans_idx; 167 end; 168 else xgst_trans_no = f_forum_user_trans_ptr -> forum_user_trans.trans_no; 169 end; 170 else if xforum_meeting_info.range 171 then do; 172 call xforum_trans_$read (xforum_meeting_info.low, f_forum_user_trans_ptr, f_code); 173 if f_code ^= 0 174 then do; 175 call com_err_$suppress_name (f_code, xgst_ME, "Getting first comment in range"); 176 f_code = forum_error_table_$invalid_trans_idx; 177 end; 178 else xgst_trans_no = f_forum_user_trans_ptr -> forum_user_trans.trans_no; 179 end; 180 else if xforum_meeting_info.allref 181 then do; 182 call xforum_trans_$first_ref (xforum_meeting_info.current_ref, f_forum_user_trans_ptr, f_code); 183 if f_code ^= 0 184 then do; 185 call com_err_$suppress_name (f_code, xgst_ME, "Getting first comment in subject chain"); 186 f_code = forum_error_table_$invalid_trans_idx; 187 end; 188 else xgst_trans_no = f_forum_user_trans_ptr -> forum_user_trans.trans_no; 189 end; 190 else if xforum_meeting_info.restref 191 then do; 192 call xforum_trans_$next_ref (xforum_meeting_info.current_ref, f_forum_user_trans_ptr, f_code); 193 if f_code ^= 0 194 then do; 195 call com_err_$suppress_name (f_code, xgst_ME, "Getting next reference in subject chain"); 196 f_code = forum_error_table_$invalid_trans_idx; 197 end; 198 else xgst_trans_no = f_forum_user_trans_ptr -> forum_user_trans.trans_no; 199 end; 200 else if xforum_meeting_info.set 201 then do; 202 call xforum_trans_$read (set_array.index (1), f_forum_user_trans_ptr, f_code); 203 if f_code ^= 0 204 then do; 205 call com_err_$suppress_name (f_code, xgst_ME, "Getting first comment in set"); 206 f_code = forum_error_table_$invalid_trans_idx; 207 end; 208 else xgst_set_index = 1; 209 end; 210 else do; 211 call xforum_trans_$read (xforum_meeting_info.current, f_forum_user_trans_ptr, f_code); 212 if f_code ^= 0 213 then do; 214 call com_err_$suppress_name (f_code, xgst_ME, "Reading current comment."); 215 f_code = forum_error_table_$invalid_trans_idx; 216 end; 217 end; 218 219 return; 220 221 next: entry (n_xforum_meeting_info_ptr, n_forum_user_trans_ptr, n_code); 222 223 /* PARAMETERS */ 224 225 dcl n_xforum_meeting_info_ptr ptr; /* (input) pointer to the xforum_meeting_info structure */ 226 /* which contains the current comment spec */ 227 dcl n_forum_user_trans_ptr ptr; /* (output) pointer to the forum_user_trans structure for the */ 228 /* next comment that meets the current comment */ 229 /* specification */ 230 dcl n_code fixed bin (35); /* (output) standard error code */ 231 232 233 234 235 236 xforum_meeting_info_ptr = n_xforum_meeting_info_ptr; 237 238 if xforum_meeting_info.all | xforum_meeting_info.new 239 then do; 240 call xforum_trans_$next_trans (xgst_trans_no, n_forum_user_trans_ptr, n_code); 241 if n_code = 0 242 then xgst_trans_no = n_forum_user_trans_ptr -> forum_user_trans.trans_no; 243 else n_code = forum_error_table_$invalid_trans_idx; 244 end; 245 else if xforum_meeting_info.allref 246 then do; 247 call xforum_trans_$next_ref (xgst_trans_no, n_forum_user_trans_ptr, n_code); 248 if n_code = 0 249 then xgst_trans_no = n_forum_user_trans_ptr -> forum_user_trans.trans_no; 250 else n_code = forum_error_table_$invalid_trans_idx; 251 end; 252 else if xforum_meeting_info.restref 253 then do; 254 call xforum_trans_$next_ref (xgst_trans_no, n_forum_user_trans_ptr, n_code); 255 if n_code = 0 256 then xgst_trans_no = n_forum_user_trans_ptr -> forum_user_trans.trans_no; 257 else n_code = forum_error_table_$invalid_trans_idx; 258 end; 259 260 else if xforum_meeting_info.range 261 then do; 262 xgst_trans_no = xgst_trans_no + 1; 263 if xgst_trans_no <= xforum_meeting_info.high 264 then call xforum_trans_$read (xgst_trans_no, n_forum_user_trans_ptr, n_code); 265 else n_code = forum_error_table_$invalid_trans_idx; 266 end; 267 else if xforum_meeting_info.set 268 then do; 269 xgst_set_index = xgst_set_index + 1; 270 if xgst_set_index <= set_array.number 271 then call xforum_trans_$read (set_array.index (xgst_set_index), n_forum_user_trans_ptr, n_code); 272 else n_code = forum_error_table_$invalid_trans_idx; 273 end; 274 else n_code = forum_error_table_$invalid_trans_idx; 275 276 return; 277 278 error: proc (e_code, e_message); 279 280 /* PARAMETERS */ 281 282 dcl e_code fixed bin (35); /* (input) error code associated with the error */ 283 dcl e_message char (*); /* (input) message to be output to user */ 284 285 xgst_xforum_error_info.name = xgst_ME; 286 xgst_xforum_error_info.entry = ""; 287 xgst_xforum_error_info.doing = ""; 288 xgst_xforum_error_info.code = e_code; 289 xgst_xforum_error_info.reason = e_message; 290 291 call signal_ ("xforum_fatal_error", null (), addr (xgst_xforum_error_info), null ()); 292 293 end error; 294 295 end xforum_get_selected_trans; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/24/86 1513.5 xforum_get_selected_trans.pl1 >special_ldd>install>MR12.0-1048>xforum_get_selected_trans.pl1 126 1 10/31/84 1115.4 forum_user_trans.incl.pl1 >ldd>include>forum_user_trans.incl.pl1 128 2 12/03/84 1241.6 xforum_error_info.incl.pl1 >ldd>include>xforum_error_info.incl.pl1 130 3 04/24/86 1505.6 xforum_meeting_info.incl.pl1 >special_ldd>install>MR12.0-1048>xforum_meeting_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. addr builtin function dcl 117 ref 291 291 all 17 based bit(1) level 3 packed unaligned dcl 3-24 ref 150 238 allref 17(01) based bit(1) level 3 packed unaligned dcl 3-24 ref 180 245 code 51 000012 internal static fixed bin(35,0) level 2 dcl 105 set ref 288* com_err_$suppress_name 000266 constant entry external dcl 88 ref 155 165 175 185 195 205 214 current 12 based fixed bin(17,0) level 2 dcl 3-24 set ref 211* current_ref 20 based fixed bin(17,0) level 2 dcl 3-24 set ref 182* 192* doing 20 000012 internal static char(100) level 2 packed unaligned dcl 105 set ref 287* e_code parameter fixed bin(35,0) dcl 282 ref 278 288 e_message parameter char unaligned dcl 283 ref 278 289 entry 10 000012 internal static char(32) level 2 packed unaligned dcl 105 set ref 286* f_code parameter fixed bin(35,0) dcl 143 set ref 134 152* 153 155* 156* 162* 163 165* 166* 172* 173 175* 176* 182* 183 185* 186* 192* 193 195* 196* 202* 203 205* 206* 211* 212 214* 215* f_forum_user_trans_ptr parameter pointer dcl 140 set ref 134 152* 158 162* 168 172* 178 182* 188 192* 198 202* 211* f_xforum_meeting_info_ptr parameter pointer dcl 138 ref 134 148 flags 17 based structure level 2 packed unaligned dcl 3-24 forum_error_table_$invalid_trans_idx 000264 external static fixed bin(35,0) dcl 84 ref 156 166 176 186 196 206 215 243 250 257 265 272 274 forum_user_trans based structure level 1 dcl 1-7 high 22 based fixed bin(17,0) level 2 dcl 3-24 ref 263 index 26 based fixed bin(17,0) array level 2 dcl 3-52 set ref 202* 270* last_seen 13 based fixed bin(17,0) level 2 dcl 3-24 set ref 162* low 21 based fixed bin(17,0) level 2 dcl 3-24 set ref 172* n_code parameter fixed bin(35,0) dcl 230 set ref 221 240* 241 243* 247* 248 250* 254* 255 257* 263* 265* 270* 272* 274* n_forum_user_trans_ptr parameter pointer dcl 227 set ref 221 240* 241 247* 248 254* 255 263* 270* n_xforum_meeting_info_ptr parameter pointer dcl 225 ref 221 236 name 000012 internal static char(32) level 2 packed unaligned dcl 105 set ref 285* new 17(03) based bit(1) level 3 packed unaligned dcl 3-24 ref 160 238 null builtin function dcl 117 ref 291 291 291 291 number based fixed bin(17,0) level 2 dcl 3-52 ref 270 range 17(04) based bit(1) level 3 packed unaligned dcl 3-24 ref 170 260 reason 52 000012 internal static char(512) level 2 packed unaligned dcl 105 set ref 289* restref 17(02) based bit(1) level 3 packed unaligned dcl 3-24 ref 190 252 set 17(05) based bit(1) level 3 packed unaligned dcl 3-24 ref 200 267 set_array based structure level 1 unaligned dcl 3-52 set_array_ptr 32 based pointer level 2 dcl 3-24 ref 202 270 270 signal_ 000270 constant entry external dcl 89 ref 291 trans_no 14 based fixed bin(17,0) level 2 dcl 1-7 ref 158 168 178 188 198 241 248 255 xforum_error_info based structure level 1 unaligned dcl 2-3 xforum_meeting_info based structure level 1 unaligned dcl 3-24 xforum_meeting_info_ptr 000100 automatic pointer dcl 100 set ref 148* 150 160 162 170 172 180 182 190 192 200 202 211 236* 238 238 245 252 260 263 267 270 270 xforum_trans_$first_ref 000272 constant entry external dcl 90 ref 182 xforum_trans_$first_trans 000274 constant entry external dcl 91 ref 152 xforum_trans_$next_ref 000276 constant entry external dcl 92 ref 192 247 254 xforum_trans_$next_trans 000300 constant entry external dcl 93 ref 162 240 xforum_trans_$read 000302 constant entry external dcl 94 ref 172 202 211 263 270 xgst_ME 000000 constant char(25) initial unaligned dcl 113 set ref 155* 165* 175* 185* 195* 205* 214* 285 xgst_set_index 000011 internal static fixed bin(17,0) dcl 105 set ref 208* 269* 269 270 270 xgst_trans_no 000010 internal static fixed bin(17,0) dcl 105 set ref 158* 168* 178* 188* 198* 240* 241* 247* 248* 254* 255* 262* 262 263 263* xgst_xforum_error_info 000012 internal static structure level 1 unaligned dcl 105 set ref 291 291 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. INCLUDE_DELETED internal static fixed bin(17,0) initial dcl 1-24 ONLY_DELETED internal static fixed bin(17,0) initial dcl 1-24 ONLY_UNDELETED internal static fixed bin(17,0) initial dcl 1-24 SET_ARRAY_SPEC_LEN internal static fixed bin(17,0) initial dcl 3-57 alloc_subject_length automatic fixed bin(21,0) dcl 1-4 alloc_text_length automatic fixed bin(21,0) dcl 1-3 forum_user_trans_ptr automatic pointer dcl 1-5 message_type internal static fixed bin(17,0) initial dcl 1-22 seen_map based bit(1) array unaligned dcl 3-50 seen_map_string based bit(1000000) unaligned dcl 3-49 user_trans_type internal static fixed bin(17,0) initial dcl 1-21 NAMES DECLARED BY EXPLICIT CONTEXT. error 001123 constant entry internal dcl 278 ref 132 first 000171 constant entry external dcl 134 next 000710 constant entry external dcl 221 xforum_get_selected_trans 000150 constant entry external dcl 27 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1366 1672 1226 1376 Length 2172 1226 304 264 137 254 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xforum_get_selected_trans 142 external procedure is an external procedure. error internal procedure shares stack frame of external procedure xforum_get_selected_trans. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 xgst_trans_no xforum_get_selected_trans 000011 xgst_set_index xforum_get_selected_trans 000012 xgst_xforum_error_info xforum_get_selected_trans STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xforum_get_selected_trans 000100 xforum_meeting_info_ptr xforum_get_selected_trans 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_$suppress_name signal_ xforum_trans_$first_ref xforum_trans_$first_trans xforum_trans_$next_ref xforum_trans_$next_trans xforum_trans_$read THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. forum_error_table_$invalid_trans_idx LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 27 000147 132 000155 134 000164 148 000176 150 000202 152 000205 153 000216 155 000221 156 000245 157 000251 158 000252 159 000257 160 000260 162 000263 163 000276 165 000301 166 000325 167 000331 168 000332 169 000337 170 000340 172 000343 173 000356 175 000361 176 000405 177 000411 178 000412 179 000417 180 000420 182 000423 183 000436 185 000441 186 000465 187 000471 188 000472 189 000477 190 000500 192 000503 193 000516 195 000521 196 000545 197 000551 198 000552 199 000557 200 000560 202 000563 203 000577 205 000602 206 000626 207 000632 208 000633 209 000636 211 000637 212 000652 214 000655 215 000701 219 000705 221 000706 236 000715 238 000721 240 000724 241 000737 243 000750 244 000753 245 000754 247 000757 248 000772 250 001003 251 001006 252 001007 254 001012 255 001025 257 001036 258 001041 260 001042 262 001045 263 001047 265 001065 266 001067 267 001070 269 001073 270 001075 272 001114 273 001116 274 001117 276 001122 278 001123 285 001134 286 001140 287 001143 288 001146 289 001151 291 001156 293 001213 ----------------------------------------------------------- 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