COMPILATION LISTING OF SEGMENT xforum_help_line_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/24/86 1529.2 mst Thu Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 8 /****^ HISTORY COMMENTS: 9* 1) change(85-01-10,Davids), approve(86-02-04,MCR7350), 10* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 11* Changed the text for F2/Ef from "Top Menu" to "Return to Executive 12* Forum menu" 13* 14* 85-01-21 Davids: Modified so that the help line uses "ESC" for the 15* escape key instead of "E". 16* 17* 85-02-13 Davids: Modified so that the change and push entries take 18* a F3_message argument, i.e. the message associated with the F3 or 19* ESCp key. This allows specialized messages for that key. Also 20* changed the stack size used to store "pushed" help lines from 1 to 21* 10. 22* 23* 85-02-14 Davids: Added the init entry to reset the index in the stack. 24* 25* 85-02-19 Davids: Changed the declaration of flags from bit (8) 26* unaligned to bit (8) aligned, except for ci_flags_ovly which must 27* remain unaligned since its an array of bit (1)s. Also added an 28* rtrim around ci_F3_message so trailing spaces are not part of the 29* help line. 30* 31* 85-06-25 Davids: Changed the push_general_message_only entry to 32* change_general_message_only. This entry is called only by the 33* emacs extension. The pushs were not being poped and because of 34* the structure of the extension it would be very difficult to add 35* the pops. In addition the code calling the extension just changes 36* the current help line after the extension returns so the last push 37* shouldn't be poped anyway. It seemed like the simplest thing to 38* do was to only do changes within the extension. 39* 40* 85-06-26 Davids: Commented all variables and added header comments. 41* END HISTORY COMMENTS */ 42 43 44 xforum_help_line_: proc; 45 46 /* 47* BEGIN DESCRIPTION 48* 49* function 50* This module manages the help line. There are entries for changing the 51* help line and for redisplaying it. There is also a stack for maintaining 52* the data that is used to create the help line and entries for pushing and 53* poping the stack elements. A help line is made up of: 54* o A bit (8) string, 1 bit for each function key which indicates 55* if an explaination of the function key should be displayed on 56* the help line. 57* o A string containing the explaination for function key 3 since 58* the meaning of function key 3 varies from menu to menu 59* o A string containing the explaination of the BREAK key 60* o A string containing a general information message 61* The currently displayed help line is NOT on the stack. Whenever a help 62* line is created the user's profile is queried to determine if he is 63* using function keys or escape sequences. The appropriate labels are 64* output on the help line. Since the user can change from function keys to 65* escape sequences or escape sequences to function keys it is not possible 66* to simply store the text string that makes up the help line in the stack 67* and then redisplay that string. Ecah time the help line is displayed it 68* must be built from scratch to allow for changes in the users 69* function key/escape sequence usage. 70* 71* description of entry points: 72* xforum_help_line_: 73* input: 74* output: 75* It is an error to call the main entry point. The xforum_fatal_error 76* condition will be signaled with an "internal programming error" error 77* message. 78* 79* init: 80* input: 81* output: 82* This entry sets the counter for the current top of the help line 83* stack to 0. 84* 85* change: 86* input: bit (8) aligned flags indicating what function keys 87* meanings are to be displayed "1"b implies 88* that the key will be displayed 89* char (*) special text for the third function key 90* char (*) special text for the BREAK key 91* char (*) special general message not associated 92* with any key 93* output: 94* This entry changes the current help line based on the input 95* parameters. The old help line is not saved on the stack. The new help 96* line is output via change_i. 97* 98* push: 99* input: bit (8) aligned flags indicating what function keys 100* meanings are to be displayed "1"b implies 101* that the key will be displayed 102* char (*) special text for the third function key 103* char (*) special text for the BREAK key 104* char (*) special general message not associated 105* with any key 106* output: 107* This entry pushes the old set of flags, F3, BREAK and general messages 108* onto the help line stack and creates a new help line from the input 109* parameters. The new help line is output via change_i. An internal 110* programming error is generated if the push overflows the stack. 111* 112* change_general_message-only: 113* input: char (*) special general message not associated 114* with any key 115* output: 116* This entry changes the general message displayed on the help line. 117* The general message is not saved on the stack and the BREAK message 118* and flags are not changed. The help line is redisplayed via a call 119* to change_i. 120* 121* pop: 122* input: 123* output: 124* This entry changes the help line to the last help line saved via a 125* push. It also removes that help line from the help line stack. The 126* help line is redisplayed via a call to change_i. If there are no help 127* lines on the stack and internal programming error is generated. 128* 129* redisplay: 130* input: 131* output: 132* This entry causes the help line to be redisplayed. It does this by 133* calling the internal procedure change_i with the current values of the 134* flags, F3_message, BREAK_message, and general_message. Note that 135* beacuse the help line is actually rebuilt it will reflect the users 136* current use of function keys or escape sequences. 137* 138* description of internal procedures: 139* change_i: This procedure builds and displays the help line. The help line 140* is initially set to "Press ". The function key text associated with each 141* function key that has its flag set is then concatinated onto the end of 142* the help line. After all the function key text has been appended the 143* BREAK message is appended. If after the BREAK message is appended the 144* help line still only contains "Press " it means that no function key or 145* BREAK messages are to be on the help line. If that is the case the help 146* line is set to "" and then the general message is appended. Once the help 147* line is built it is output via window_display_. window_display_ is an 148* undocumented entry point that takes a character array which is an exact 149* overlay of the window and then makes the window match the overlay. A 150* window_sync_ is done after the window_display_ so that the display takes 151* place immediately instead of being buffered. 152* 153* error: Similar to all the other error procedures. It records in an 154* internal static structure the details of an error and then signals the 155* xforum_fatal_error condition. 156* 157* known bugs: 158* 159* notes: 160* 161* history: 162* 84-09-28 Davids: written 163* 164* 84-10-01 Davids: Added the push_general_message_only entry. This is so 165* that the emacs extension can push help line messages. 166* 167* 84-11-06 Davids: Since this is an externally known subroutine it must 168* end with a "_" so its name was changed. 169* END DESCRIPTION 170**/ 171 172 /* EXTERNAL STATIC */ 173 174 /* ENTRIES */ 175 176 dcl signal_ entry () options (variable); 177 dcl xforum_user_profile$get_use_function_keys entry () returns (bit (1)); 178 dcl window_display_ entry (ptr, (*) char (*), fixed bin (35)); 179 dcl window_$sync entry (ptr, fixed bin (35)); 180 181 /* CONDITIONS */ 182 183 /* INTERNAL STATIC */ 184 185 dcl (xhl_current_F3_message char (80) init (""), 186 /* currently displayed special text for the third function key */ 187 xhl_current_break_message char (80) init (""), 188 /* currently displayed special text for the BREAK key */ 189 xhl_current_general_message char (80) init (""), 190 /* currently displayed special general */ 191 /* message not associated with any key */ 192 xhl_current_flags bit (8) aligned init ("00000000"b), 193 /* current set of flags controlling */ 194 /* what function keys are displayed */ 195 /* "1"b implies that the key will be displayed */ 196 xhl_old_F3_message (10) char (80) init ("", "", "", "", "", "", "", "", "", ""), 197 /* acts as stack for holding previous special text */ 198 xhl_old_break_message (10) char (80) init ("", "", "", "", "", "", "", "", "", ""), 199 /* acts as stack for holding previous special text */ 200 xhl_old_general_message (10) char (80) init ("", "", "", "", "", "", "", "", "", ""), 201 /* acts as stack for holding previous special text */ 202 xhl_old_flags (10) bit (8) aligned init ("0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, 203 "0"b, "0"b, "0"b), 204 /* acts as stack for holding previous flags */ 205 xhl_old_index fixed bin init (0) 206 /* index in array of the top stack element */ 207 ) internal static; 208 dcl 01 xhl_xforum_error_info like xforum_error_info internal static; 209 /* used to record error infor to be output to the user */ 210 211 /* CONSTANTS */ 212 213 dcl xhl_MAX_INDEX fixed bin init (10) internal static options (constant); 214 /* max size of the array for storing previous help line data */ 215 216 /* BUILTINS */ 217 218 dcl ( 219 addr, 220 null, 221 rtrim 222 ) builtin; 223 224 /* BASED */ 225 226 /* INCLUDE FILES */ 227 1 1 /* BEGIN INCLUDE FILE xforum_error_info 84-06-19 Davids */ 1 2 1 3 dcl 01 xforum_error_info based, 1 4 02 name char (32), 1 5 02 entry char (32), 1 6 02 doing char (100), 1 7 02 code fixed bin (35), 1 8 02 reason char (512); 1 9 1 10 /* END INCLUDE FILE xforum_error_info */ 228 229 2 1 /* START OF: xforum_windows.incl.pl1 * * * * * */ 2 2 2 3 /* structures for windows used by xforum - Deryk Barker January 1984 */ 2 4 2 5 dcl 1 xforum_windows aligned external static, 2 6 2 (status, menu, bottom, orig_user_io, help_line) aligned like xforum_window_info; 2 7 2 8 dcl 1 xforum_window_info, 2 9 2 iocb ptr, 2 10 2 position aligned like window_position_info; 2 11 3 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 3 2 /* format: style3 */ 3 3 3 4 /* Modified 26 January 1982 by William York to add the set_more_handler 3 5* and reset_more_handler control orders. */ 3 6 /* Modified October 1982 by WMY to add set and get_token_characters, 3 7* set and get_more_prompt. */ 3 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 3 9* structure. */ 3 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 3 11* partial screen width windows. */ 3 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 3 13* This should be removed when window_info.incl.pl1 is created. */ 3 14 /* Modified 29 February 1984 by Barmar to add version 1 3 15* get_editor_key_bindings_info. */ 3 16 /* Modified 1 March 1984 by Barmar to add version 1 3 17* set_editor_key_bindings_info. */ 3 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 3 19* line_editor_key_bindings_info, which includes the name, description, and 3 20* info path */ 3 21 3 22 /* structure for the set_window_info and get_window_info 3 23* control orders. */ 3 24 3 25 dcl 1 window_position_info 3 26 based (window_position_info_ptr), 3 27 2 version fixed bin, 3 28 2 origin, 3 29 3 column fixed bin, 3 30 3 line fixed bin, 3 31 2 extent, 3 32 3 width fixed bin, 3 33 3 height fixed bin; 3 34 3 35 dcl (window_position_info_version, window_position_info_version_1) 3 36 fixed bin internal static init (1) options (constant); 3 37 dcl window_position_info_ptr 3 38 pointer; 3 39 3 40 /* structure for the set_window_status and get_window_status 3 41* control orders */ 3 42 3 43 declare window_status_info_ptr 3 44 pointer; 3 45 declare 1 window_status_info 3 46 aligned based (window_status_info_ptr), 3 47 2 version fixed bin, 3 48 2 status_string bit (36) aligned; /* string (window_status) */ 3 49 /* see window_status.incl.pl1 for the contents of this string */ 3 50 3 51 3 52 declare (window_status_version, window_status_version_1) 3 53 fixed bin internal static init (1) options (constant); 3 54 3 55 /* info structure for the set_more_responses and get_more_responses control 3 56* orders */ 3 57 3 58 3 59 dcl 1 more_responses_info 3 60 aligned based (more_responses_info_ptr), 3 61 2 version fixed bin, 3 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 3 63 2 n_noes fixed bin, 3 64 2 yeses char (32) unaligned, 3 65 2 noes char (32) unaligned; 3 66 3 67 dcl (more_responses_info_version_1, more_responses_version) 3 68 fixed bin internal static init (1) options (constant); 3 69 dcl more_responses_info_ptr 3 70 pointer; 3 71 3 72 /* structure for the set_break_table and get_break_table 3 73* control orders */ 3 74 3 75 declare break_table_ptr pointer; 3 76 declare 1 break_table_info aligned based (break_table_ptr), 3 77 2 version fixed bin, 3 78 2 breaks (0:127) bit (1) unaligned; 3 79 3 80 declare (break_table_info_version, break_table_info_version_1) 3 81 fixed bin init (1) internal static options (constant); 3 82 3 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 3 84 2 version fixed bin, 3 85 2 flags unaligned, 3 86 3 old_handler_valid 3 87 bit(1), 3 88 3 pad bit(35), 3 89 2 more_handler entry (pointer, bit(1) aligned), 3 90 2 old_more_handler entry (pointer, bit(1) aligned); 3 91 3 92 declare more_handler_info_ptr pointer; 3 93 3 94 declare (more_handler_info_version, more_handler_info_version_3) 3 95 fixed bin internal static options (constant) init (3); 3 96 3 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 3 98 2 version char(8), 3 99 2 token_character_count 3 100 fixed bin, 3 101 2 token_characters 3 102 char (128) unaligned; 3 103 3 104 declare token_characters_info_ptr pointer; 3 105 3 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 3 107 3 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 3 109 2 version char(8), 3 110 2 more_prompt char(80); 3 111 3 112 declare more_prompt_info_ptr pointer; 3 113 3 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 3 115 3 116 /* Line editor stuff ... */ 3 117 3 118 dcl line_editor_key_binding_info_ptr 3 119 pointer; 3 120 3 121 dcl line_editor_binding_count 3 122 fixed bin; 3 123 dcl line_editor_longest_sequence 3 124 fixed bin; 3 125 /* For each binding, action defines what to do for that sequence. Constants 3 126* are defined in window_editor_values.incl.pl1. Only if action is set to 3 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 3 128 3 129 dcl 1 line_editor_key_binding_info 3 130 aligned based (line_editor_key_binding_info_ptr), 3 131 2 version char(8), 3 132 2 binding_count fixed bin, 3 133 2 longest_sequence fixed bin, 3 134 2 bindings (line_editor_binding_count refer 3 135 (line_editor_key_binding_info.binding_count)), 3 136 3 sequence char(line_editor_longest_sequence refer 3 137 (line_editor_key_binding_info.longest_sequence)) varying, 3 138 3 action fixed bin, 3 139 3 numarg_action fixed binary, 3 140 3 editor_routine entry (pointer, fixed bin(35)), 3 141 3 name char (64) varying unaligned, 3 142 3 description char (256) varying unaligned, 3 143 3 info_path unaligned, 3 144 4 info_dir char (168), 3 145 4 info_entry char (32); 3 146 3 147 3 148 dcl line_editor_key_binding_info_version_3 3 149 char(8) static options (constant) init ("lekbi003"); 3 150 3 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 3 152 2 version char (8), 3 153 2 flags, 3 154 3 entire_state bit (1) unaligned, 3 155 3 mbz bit (35) unaligned, 3 156 2 key_binding_info_ptr ptr, 3 157 2 entire_state_ptr ptr; 3 158 3 159 dcl get_editor_key_bindings_info_ptr ptr; 3 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 3 161 3 162 dcl 1 set_editor_key_bindings_info aligned 3 163 based (set_editor_key_bindings_info_ptr), 3 164 2 version char (8), 3 165 2 flags, 3 166 3 replace bit (1) unaligned, 3 167 3 update bit (1) unaligned, 3 168 3 mbz bit (34) unaligned, 3 169 2 key_binding_info_ptr ptr; 3 170 3 171 dcl set_editor_key_bindings_info_ptr ptr; 3 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 3 173 3 174 /* This should be moved to window_info.incl.pl1 when that include file is 3 175* created. JR 2/1/84 */ 3 176 3 177 dcl 1 window_edit_line_info 3 178 based (window_edit_line_info_ptr), 3 179 2 version char (8), 3 180 2 line_ptr ptr, 3 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 3 182 3 183 dcl window_edit_line_info_version_1 3 184 char (8) static options (constant) init ("wedl0001"); 3 185 3 186 dcl window_edit_line_info_ptr 3 187 ptr; 3 188 3 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 2 12 2 13 2 14 /* END OF: xforum_windows.incl.pl1 * * * * * */ 230 231 232 call error (0, "Internal programming error - xforum_help_line_$xforum_help_line_ called."); 233 234 init: entry; 235 236 xhl_old_index = 0; 237 238 return; 239 240 change: entry (c_flags, c_F3_message, c_break_message, c_general_message); 241 242 /* PARAMETERS */ 243 244 dcl c_flags bit (8) aligned; /* (input) flags indicating what function keys */ 245 /* meanings are to be displayed */ 246 /* "1"b implies that the key will be displayed */ 247 dcl c_F3_message char (*); /* (input) special text for the third function key */ 248 dcl c_break_message char (*); /* (input) special text for the BREAK key */ 249 dcl c_general_message char (*); /* (input) special general message not associated with any key */ 250 251 252 253 254 255 xhl_current_flags = c_flags; 256 xhl_current_F3_message = c_F3_message; 257 xhl_current_break_message = c_break_message; 258 xhl_current_general_message = c_general_message; 259 260 call change_i (xhl_current_flags, xhl_current_F3_message, 261 xhl_current_break_message, xhl_current_general_message); 262 263 return; 264 265 push: entry (pu_flags, pu_F3_message, pu_break_message, pu_general_message); 266 267 /* PARAMETERS */ 268 269 dcl pu_flags bit (8) aligned; /* (input) flags indicating what function keys */ 270 /* meanings are to be displayed */ 271 /* "1"b implies that the key will be displayed */ 272 dcl pu_F3_message char (*); /* (input) special text for the third function key */ 273 dcl pu_break_message char (*); /* (input) special text for the BREAK key */ 274 dcl pu_general_message char (*); /* (input) special general message not associated with any key */ 275 276 277 278 279 280 xhl_old_index = xhl_old_index + 1; 281 if xhl_old_index > xhl_MAX_INDEX 282 then call error (0, "Internal programming error - help line stack overflow."); 283 284 xhl_old_flags (xhl_old_index) = xhl_current_flags; 285 xhl_old_F3_message (xhl_old_index) = xhl_current_F3_message; 286 xhl_old_break_message (xhl_old_index) = xhl_current_break_message; 287 xhl_old_general_message (xhl_old_index) = xhl_current_general_message; 288 289 xhl_current_flags = pu_flags; 290 xhl_current_F3_message = pu_F3_message; 291 xhl_current_break_message = pu_break_message; 292 xhl_current_general_message = pu_general_message; 293 294 call change_i (xhl_current_flags, xhl_current_F3_message, 295 xhl_current_break_message, xhl_current_general_message); 296 297 return; 298 299 change_general_message_only: entry (cgmo_general_message); 300 301 /* PARAMETERS */ 302 303 dcl cgmo_general_message char (*); /* (input) special general message not associated with any key */ 304 305 306 307 308 309 xhl_current_general_message = cgmo_general_message; 310 311 call change_i (xhl_current_flags, xhl_current_F3_message, 312 xhl_current_break_message, xhl_current_general_message); 313 314 return; 315 316 pop: entry; 317 318 if xhl_old_index = 0 319 then call error (0, "Internal programming error - help line stack underflow."); 320 321 xhl_current_flags = xhl_old_flags (xhl_old_index); 322 xhl_current_F3_message = xhl_old_F3_message (xhl_old_index); 323 xhl_current_break_message = xhl_old_break_message (xhl_old_index); 324 xhl_current_general_message = xhl_old_general_message (xhl_old_index); 325 326 xhl_old_index = xhl_old_index - 1; 327 328 call change_i (xhl_current_flags, xhl_current_F3_message, 329 xhl_current_break_message, xhl_current_general_message); 330 331 return; 332 333 redisplay: entry; 334 335 call change_i (xhl_current_flags, xhl_current_F3_message, 336 xhl_current_break_message, xhl_current_general_message); 337 338 return; 339 340 change_i: proc (ci_flags, ci_F3_message, ci_break_message, ci_general_message); 341 342 /* PARAMETERS */ 343 344 dcl ci_flags bit (8) aligned; /* (input) flags indicating what function keys */ 345 /* meanings are to be displayed */ 346 /* "1"b implies that the key will be displayed */ 347 dcl ci_F3_message char (*); /* (input) special text for the third function key */ 348 dcl ci_break_message char (*); /* (input) special text for the BREAK key */ 349 dcl ci_general_message char (*); /* (input) special general message not associated with any key */ 350 351 /* INTERNAL AUTOMATIC */ 352 353 dcl ci_code fixed bin (35); /* standard error code */ 354 dcl ci_flags_ovly_ptr ptr; /* pointer to ci_flags bit string */ 355 dcl ci_i fixed bin; /* loop index for checking each flag */ 356 dcl ci_index fixed bin; /* index into string array for the function key labels */ 357 /* 1 implies function keys with labels of Fn */ 358 /* 2 implies escape sequences with labels of ESCx */ 359 /* based on users current profile settings */ 360 dcl ci_help_line char (80) varying; /* string containing the text of the help line */ 361 dcl ci_window_image (1) char (xforum_windows.help_line.extent.width); 362 /* text of the help line in format useable by window_display_ */ 363 364 /* CONSTANTS */ 365 366 dcl ci_TEXT (2, 8) char (37) varying init ( 367 "F1:Help", "F2:Return to Executive Forum menu", "F3:", "F4:Exit Executive Forum", 368 "F5:Redisplay Screen", "F6:Previous Menu", "F7:Next Menu", "", 369 "ESC?:Help", "ESCf:Return to Executive Forum menu", "ESCp:", 370 "ESCq:Exit Executive Forum", "ESCr:Redisplay Screen", "ESCl:Previous Menu", 371 "ESCh:Next Menu", "") 372 internal static options (constant); 373 /* strings for labeling the function keys and escape sequences */ 374 375 /* BASED */ 376 377 dcl ci_flags_ovly (8) bit (1) unaligned based (ci_flags_ovly_ptr); 378 /* same as ci_flags but as an array */ 379 /* for easy reference to each bit */ 380 381 ci_flags_ovly_ptr = addr (ci_flags); 382 383 if xforum_user_profile$get_use_function_keys () 384 then ci_index = 1; 385 else ci_index = 2; 386 387 ci_help_line = "Press"; 388 389 do ci_i = 1 to 8; 390 if ci_i ^= 3 & ci_flags_ovly (ci_i) 391 then ci_help_line = ci_help_line || " " || ci_TEXT (ci_index, ci_i); 392 else 393 if ci_i = 3 & ci_F3_message ^= "" 394 then ci_help_line = ci_help_line || " " || ci_TEXT (ci_index, 3) || rtrim (ci_F3_message); 395 end; 396 397 if ci_break_message ^= "" 398 then ci_help_line = ci_help_line || " BREAK:" || ci_break_message; 399 400 if rtrim (ci_help_line) = "Press" 401 then ci_help_line = ""; 402 403 if ci_general_message ^= "" 404 then ci_help_line = ci_help_line || ci_general_message; 405 406 407 ci_window_image (1) = ci_help_line; 408 call window_display_ (xforum_windows.help_line.iocb, ci_window_image, ci_code); 409 if ci_code ^= 0 410 then call error (ci_code, "Cannot update the help line"); 411 call window_$sync (xforum_windows.help_line.iocb, ci_code); 412 if ci_code ^= 0 413 then call error (ci_code, "Cannot update the help line"); 414 415 return; 416 417 end change_i; 418 419 error: proc (e_code, e_message); 420 421 /* PARAMETERS */ 422 423 dcl e_code fixed bin (35); /* (input) error code associated with the error */ 424 dcl e_message char (*); /* (input) message to be output to user */ 425 426 427 428 429 430 xhl_xforum_error_info.name = "xforum_help_line_"; 431 xhl_xforum_error_info.entry = ""; 432 xhl_xforum_error_info.doing = ""; 433 xhl_xforum_error_info.code = e_code; 434 xhl_xforum_error_info.reason = e_message; 435 436 call signal_ ("xforum_fatal_error", null (), addr (xhl_xforum_error_info), null ()); 437 438 end error; 439 440 end xforum_help_line_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/24/86 1513.4 xforum_help_line_.pl1 >special_ldd>install>MR12.0-1048>xforum_help_line_.pl1 228 1 12/03/84 1241.6 xforum_error_info.incl.pl1 >ldd>include>xforum_error_info.incl.pl1 230 2 12/03/84 1241.6 xforum_windows.incl.pl1 >ldd>include>xforum_windows.incl.pl1 2-12 3 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_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 218 ref 381 436 436 c_F3_message parameter char unaligned dcl 247 ref 240 256 c_break_message parameter char unaligned dcl 248 ref 240 257 c_flags parameter bit(8) dcl 244 ref 240 255 c_general_message parameter char unaligned dcl 249 ref 240 258 cgmo_general_message parameter char unaligned dcl 303 ref 299 309 ci_F3_message parameter char unaligned dcl 347 ref 340 392 392 ci_TEXT 000000 constant varying char(37) initial array dcl 366 ref 390 392 ci_break_message parameter char unaligned dcl 348 ref 340 397 397 ci_code 000100 automatic fixed bin(35,0) dcl 353 set ref 408* 409 409* 411* 412 412* ci_flags parameter bit(8) dcl 344 set ref 340 381 ci_flags_ovly based bit(1) array unaligned dcl 377 ref 390 ci_flags_ovly_ptr 000102 automatic pointer dcl 354 set ref 381* 390 ci_general_message parameter char unaligned dcl 349 ref 340 403 403 ci_help_line 000106 automatic varying char(80) dcl 360 set ref 387* 390* 390 392* 392 397* 397 400 400* 403* 403 407 ci_i 000104 automatic fixed bin(17,0) dcl 355 set ref 389* 390 390 390 392* ci_index 000105 automatic fixed bin(17,0) dcl 356 set ref 383* 385* 390 392 ci_window_image 000133 automatic char array unaligned dcl 361 set ref 407* 408* code 51 001250 internal static fixed bin(35,0) level 2 dcl 208 set ref 433* doing 20 001250 internal static char(100) level 2 packed unaligned dcl 208 set ref 432* e_code parameter fixed bin(35,0) dcl 423 ref 419 433 e_message parameter char unaligned dcl 424 ref 419 434 entry 10 001250 internal static char(32) level 2 packed unaligned dcl 208 set ref 431* extent 45 001532 external static structure level 4 dcl 2-5 help_line 40 001532 external static structure level 2 dcl 2-5 iocb 40 001532 external static pointer level 3 dcl 2-5 set ref 408* 411* name 001250 internal static char(32) level 2 packed unaligned dcl 208 set ref 430* null builtin function dcl 218 ref 436 436 436 436 position 42 001532 external static structure level 3 dcl 2-5 pu_F3_message parameter char unaligned dcl 272 ref 265 290 pu_break_message parameter char unaligned dcl 273 ref 265 291 pu_flags parameter bit(8) dcl 269 ref 265 289 pu_general_message parameter char unaligned dcl 274 ref 265 292 reason 52 001250 internal static char(512) level 2 packed unaligned dcl 208 set ref 434* rtrim builtin function dcl 218 ref 392 400 signal_ 001522 constant entry external dcl 176 ref 436 width 45 001532 external static fixed bin(17,0) level 5 dcl 2-5 ref 361 window_$sync 001530 constant entry external dcl 179 ref 411 window_display_ 001526 constant entry external dcl 178 ref 408 window_position_info based structure level 1 unaligned dcl 3-25 xforum_error_info based structure level 1 unaligned dcl 1-3 xforum_user_profile$get_use_function_keys 001524 constant entry external dcl 177 ref 383 xforum_window_info 000100 automatic structure level 1 unaligned dcl 2-8 xforum_windows 001532 external static structure level 1 dcl 2-5 xhl_MAX_INDEX constant fixed bin(17,0) initial dcl 213 ref 281 xhl_current_F3_message 000010 internal static char(80) initial unaligned dcl 185 set ref 256* 260* 285 290* 294* 311* 322* 328* 335* xhl_current_break_message 000034 internal static char(80) initial unaligned dcl 185 set ref 257* 260* 286 291* 294* 311* 323* 328* 335* xhl_current_flags 000104 internal static bit(8) initial dcl 185 set ref 255* 260* 284 289* 294* 311* 321* 328* 335* xhl_current_general_message 000060 internal static char(80) initial unaligned dcl 185 set ref 258* 260* 287 292* 294* 309* 311* 324* 328* 335* xhl_old_F3_message 000105 internal static char(80) initial array unaligned dcl 185 set ref 285* 322 xhl_old_break_message 000415 internal static char(80) initial array unaligned dcl 185 set ref 286* 323 xhl_old_flags 001235 internal static bit(8) initial array dcl 185 set ref 284* 321 xhl_old_general_message 000725 internal static char(80) initial array unaligned dcl 185 set ref 287* 324 xhl_old_index 001247 internal static fixed bin(17,0) initial dcl 185 set ref 236* 280* 280 281 284 285 286 287 318 321 322 323 324 326* 326 xhl_xforum_error_info 001250 internal static structure level 1 unaligned dcl 208 set ref 436 436 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. break_table_info based structure level 1 dcl 3-76 break_table_info_version internal static fixed bin(17,0) initial dcl 3-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 3-80 break_table_ptr automatic pointer dcl 3-75 get_editor_key_bindings_info based structure level 1 dcl 3-151 get_editor_key_bindings_info_ptr automatic pointer dcl 3-159 get_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 3-160 line_editor_binding_count automatic fixed bin(17,0) dcl 3-121 line_editor_key_binding_info based structure level 1 dcl 3-129 line_editor_key_binding_info_ptr automatic pointer dcl 3-118 line_editor_key_binding_info_version_3 internal static char(8) initial unaligned dcl 3-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 3-123 more_handler_info based structure level 1 dcl 3-83 more_handler_info_ptr automatic pointer dcl 3-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 3-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 3-94 more_prompt_info based structure level 1 dcl 3-108 more_prompt_info_ptr automatic pointer dcl 3-112 more_prompt_info_version_1 internal static char(8) initial unaligned dcl 3-114 more_responses_info based structure level 1 dcl 3-59 more_responses_info_ptr automatic pointer dcl 3-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 3-67 more_responses_version internal static fixed bin(17,0) initial dcl 3-67 set_editor_key_bindings_info based structure level 1 dcl 3-162 set_editor_key_bindings_info_ptr automatic pointer dcl 3-171 set_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 3-172 token_characters_info based structure level 1 dcl 3-97 token_characters_info_ptr automatic pointer dcl 3-104 token_characters_info_version_1 internal static char(8) initial unaligned dcl 3-106 window_edit_line_info based structure level 1 unaligned dcl 3-177 window_edit_line_info_ptr automatic pointer dcl 3-186 window_edit_line_info_version_1 internal static char(8) initial unaligned dcl 3-183 window_position_info_ptr automatic pointer dcl 3-37 window_position_info_version internal static fixed bin(17,0) initial dcl 3-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 3-35 window_status_info based structure level 1 dcl 3-45 window_status_info_ptr automatic pointer dcl 3-43 window_status_version internal static fixed bin(17,0) initial dcl 3-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 3-52 NAMES DECLARED BY EXPLICIT CONTEXT. change 000446 constant entry external dcl 240 change_general_message_only 000712 constant entry external dcl 299 change_i 001112 constant entry internal dcl 340 ref 260 294 311 328 335 error 001604 constant entry internal dcl 419 ref 232 281 318 409 412 init 000431 constant entry external dcl 234 pop 000760 constant entry external dcl 316 push 000544 constant entry external dcl 265 redisplay 001060 constant entry external dcl 333 xforum_help_line_ 000402 constant entry external dcl 44 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2056 3612 1677 2066 Length 4104 1677 1534 255 157 1512 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xforum_help_line_ 127 external procedure is an external procedure. change_i 138 internal procedure uses auto adjustable storage. error 96 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 xhl_current_F3_message xforum_help_line_ 000034 xhl_current_break_message xforum_help_line_ 000060 xhl_current_general_message xforum_help_line_ 000104 xhl_current_flags xforum_help_line_ 000105 xhl_old_F3_message xforum_help_line_ 000415 xhl_old_break_message xforum_help_line_ 000725 xhl_old_general_message xforum_help_line_ 001235 xhl_old_flags xforum_help_line_ 001247 xhl_old_index xforum_help_line_ 001250 xhl_xforum_error_info xforum_help_line_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME change_i 000100 ci_code change_i 000102 ci_flags_ovly_ptr change_i 000104 ci_i change_i 000105 ci_index change_i 000106 ci_help_line change_i 000133 ci_window_image change_i xforum_help_line_ 000100 xforum_window_info xforum_help_line_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this_desc call_int_other_desc return alloc_auto_adj shorten_stack ext_entry ext_entry_desc int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. signal_ window_$sync window_display_ xforum_user_profile$get_use_function_keys THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. xforum_windows LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 44 000401 232 000407 234 000427 236 000436 238 000440 240 000441 255 000473 256 000500 257 000505 258 000512 260 000517 263 000541 265 000542 280 000571 281 000573 284 000616 285 000623 286 000631 287 000635 289 000641 290 000645 291 000652 292 000657 294 000664 297 000706 299 000707 309 000725 311 000734 314 000756 316 000757 318 000765 321 001010 322 001014 323 001022 324 001026 326 001032 328 001034 331 001056 333 001057 335 001065 338 001110 340 001111 361 001137 408 001147 381 001160 383 001163 385 001177 387 001201 389 001206 390 001213 392 001270 395 001366 397 001371 400 001434 403 001454 407 001474 408 001502 409 001524 411 001546 412 001560 415 001602 419 001603 430 001617 431 001622 432 001625 433 001630 434 001633 436 001640 438 001675 ----------------------------------------------------------- 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