COMPILATION LISTING OF SEGMENT xforum_multics_mode Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/06/87 1023.0 mst Thu Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(85-01-08,Davids), approve(86-02-04,MCR7350), 12* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 13* Removed the handle_interactive_messages input arg and replaced it 14* with a call to xforum_user_profile$get_handle_interactive_messages 15* and an automatic handle_interactive_messages. There is no way 16* that the value in the user's profile will change while in this 17* module so the call to xforum_user_profile has to be made only 18* once. 19* 20* 85-01-14 Davids: replaced calls to accept_messages and 21* defer_messages with calls to xforum_im_mgr$restore_original and 22* defer_messages. 23* 24* 85-02-13 Davids: Changed calling sequence of 25* xforum_help_line_$change to include the new F3_message argument. 26* 27* 85-04-22 Davids: Added a "0"b paramater to the call of the 28* xforum_im_mgr$restor_origial entry. 29* 2) change(87-07-21,LJAdams), approve(87-07-21,MCR7684), 30* audit(87-07-24,Blair), install(87-08-06,MR12.1-1065): 31* Eliminated two unreferenced variables. 32* END HISTORY COMMENTS */ 33 34 35 xforum_multics_mode: proc (menu_window_height); 36 37 /* 38* BEGIN DESCRIPTION 39* 40* function: 41* This module implements xforum multics mode. The major aspects of this 42* mode are that the user_io window is expanded to include the status and 43* menu windows and that the user is queried for a command via a prompt. 44* After the command completes the user is prompted for another command, 45* a null command, i.e. just a return will return the user to the Xforum 46* he was in before he invoked multics mode. 47* 48* description of entry points: 49* xforum_multics_mode: Quits are traped by a condition handler which causes 50* all stack frames above xforum_multics_mode to be unwound and another 51* prompt to be issued to the user. The user is not allowed to escape to a 52* new command level. The conditions command_question, command_error, 53* finish, and stringsize are handled by the standard systen handlers. 54* Any other system condition (except quit) is handled by printing the 55* messages assocaited with the handler, unwinding the stack, and prompting 56* the user for a another command. 57* 58* description of internal procedures: 59* error: This procedure is called if the command line that the user enters 60* cannot be read, it indicates that something is very wrong. The 61* xforum_fatal_error condition is signaled, this will cause xforum to 62* terminate. 63* 64* known bugs: 65* 66* notes: 67* 68* history: 69* 70* 84-07-28 Davids: Extracted from the xforum module. 71* 72* 84-08-13 Davids: Removed the special handling of active_function_error 73* which allowed the system handler to be called. The any_other handler 74* works just fine. Added a n_read = 0 to the any_other handler. The lack 75* of this statement was causing fatal process errors when "pi" was signaled 76* (don't understand why). Also added the handle_interactive_messages 77* parameter and the code to handle interactive messages. If the flag is set 78* then before the prompt is output messages will be accepted. Messages 79* already recieved will be printed in the user_io window and then deleted. 80* After the user indicates that he wants to return to the menu messages 81* will again be defered 82* 83* 84-08-30 Davids: Changed the any_other handler so that the call to 84* find_condition_info_ used the address to an automatic copy of the 85* condition_info structure. It was being passed an UNINITIALIZED pointer 86* which was causing some very strange problems. Its a wonder it ever 87* worked. Added a call to xforum_window_mgr$check_window_status to the quit 88* handler so that in case the windows have a screwy status (like from a 89* disconnect) they will be reset. Also added a xforum_redisplay_menu 90* handler. 91* 92* 84-09-28 Davids: Removed references to xforum_status_$update_usage and 93* redisplay_usage. Replaced them with a call to xforum_help_line$change. 94* 95* 84-10-22 Davids: Changed message handling so that it is the same as 96* Xmail's, except for the -brief control arg for print_messages. Xforum 97* will not start using the MR11 message system control args until after a 98* controlled release tape is cut. 99* 100* 84-11-06 Davids: Changed references to xforum_help_line to 101* xforum_help_line_. 102* 103* 84-11-08 Davids: Audit changes: 1) Some spelling and typo corrections 104* to the comments. 2) Took all the n_read = 0 statements outof the 105* condition handlers and before the first prompt is output and put an 106* n_read = 0 after the multics_mode_loop label and before the actual loop. 107* 108* 84-11-16 Davids: Added the "-brief" argument to the call to 109* print_messages This is needed so that the call does not result in a "You 110* have no messages" message being output. print_message was incompatibly 111* changed. 112* END DESCRIPTION 113**/ 114 115 /* PARAMETERS */ 116 117 dcl menu_window_height fixed bin; /* (output) */ 118 119 /* EXTERNAL STATIC */ 120 121 dcl iox_$user_io ptr ext static; 122 123 /* ENTRIES */ 124 125 dcl condition_interpreter_ entry (ptr, ptr, fixed bin, fixed bin, ptr, char (*), ptr, ptr); 126 dcl cu_$cp entry (ptr, fixed bin (21), fixed bin (35)); 127 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)); 128 dcl ioa_$nnl entry () options (variable); 129 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 130 dcl iox_$get_line entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 131 dcl signal_ entry () options (variable); 132 dcl window_$sync entry (ptr, fixed bin (35)); 133 dcl xforum_help_line_$change entry (bit(8), char(*), char(*), char(*)); 134 dcl xforum_im_mgr$defer_messages entry (); 135 dcl xforum_im_mgr$restore_original entry (bit(1) aligned); 136 dcl xforum_user_profile$get_handle_interactive_messages entry () returns (bit (1)); 137 dcl xforum_window_mgr$check_window_status entry options (variable); 138 dcl xforum_window_mgr$resynch_windows entry (fixed bin, bit (1)); 139 140 /* CONDITIONS */ 141 142 dcl ( 143 any_other, 144 command_error, 145 command_question, 146 finish, 147 quit, 148 stringsize, 149 xforum_redisplay_menu 150 ) condition; 151 152 /* INTERNAL AUTOMATIC */ 153 154 dcl code fixed bin (35); 155 dcl handle_interactive_messages bit (1); 156 dcl line char (256); 157 dcl n_read fixed bin (21); 158 dcl unused_ptr ptr; 159 dcl unused_fb fixed bin; 160 dcl 01 local_condition_info like condition_info; 161 162 /* INTERNAL STATIC */ 163 164 dcl 01 xmm_xforum_error_info like xforum_error_info internal static; 165 166 /* CONSTANTS */ 167 168 dcl ( 169 FIRST_PROMPT char (80) init ("Enter the command and press RETURN (to return to Xforum just press RETURN):"), 170 LINE_LEN fixed bin (21) init (256) 171 ) internal static options (constant); 172 173 /* BUILTINS */ 174 175 dcl addr builtin; 176 dcl null builtin; 177 dcl substr builtin; 178 179 /* BASED */ 180 181 /* INCLUDE FILES */ 182 183 1 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 1 2 1 3 /* Structure for find_condition_info_. 1 4* 1 5* Written 1-Mar-79 by M. N. Davidoff. 1 6**/ 1 7 1 8 /* automatic */ 1 9 1 10 declare condition_info_ptr pointer; 1 11 1 12 /* based */ 1 13 1 14 declare 1 condition_info aligned based (condition_info_ptr), 1 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 1 16 2 version fixed binary, /* Must be 1 */ 1 17 2 condition_name char (32) varying, /* name of condition */ 1 18 2 info_ptr pointer, /* pointer to the condition data structure */ 1 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 1 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 1 21 2 flags unaligned, 1 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 1 23 3 pad1 bit (35), 1 24 2 pad2 bit (36), 1 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 1 26 2 pad3 (4) bit (36); 1 27 1 28 /* internal static */ 1 29 1 30 declare condition_info_version_1 1 31 fixed binary internal static options (constant) initial (1); 1 32 1 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 184 185 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 */ 186 187 3 1 /* START OF: xforum_windows.incl.pl1 * * * * * */ 3 2 3 3 /* structures for windows used by xforum - Deryk Barker January 1984 */ 3 4 3 5 dcl 1 xforum_windows aligned external static, 3 6 2 (status, menu, bottom, orig_user_io, help_line) aligned like xforum_window_info; 3 7 3 8 dcl 1 xforum_window_info, 3 9 2 iocb ptr, 3 10 2 position aligned like window_position_info; 3 11 4 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 4 2 /* format: style3 */ 4 3 4 4 /* Modified 26 January 1982 by William York to add the set_more_handler 4 5* and reset_more_handler control orders. */ 4 6 /* Modified October 1982 by WMY to add set and get_token_characters, 4 7* set and get_more_prompt. */ 4 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 4 9* structure. */ 4 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 4 11* partial screen width windows. */ 4 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 4 13* This should be removed when window_info.incl.pl1 is created. */ 4 14 /* Modified 29 February 1984 by Barmar to add version 1 4 15* get_editor_key_bindings_info. */ 4 16 /* Modified 1 March 1984 by Barmar to add version 1 4 17* set_editor_key_bindings_info. */ 4 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 4 19* line_editor_key_bindings_info, which includes the name, description, and 4 20* info path */ 4 21 4 22 /* structure for the set_window_info and get_window_info 4 23* control orders. */ 4 24 4 25 dcl 1 window_position_info 4 26 based (window_position_info_ptr), 4 27 2 version fixed bin, 4 28 2 origin, 4 29 3 column fixed bin, 4 30 3 line fixed bin, 4 31 2 extent, 4 32 3 width fixed bin, 4 33 3 height fixed bin; 4 34 4 35 dcl (window_position_info_version, window_position_info_version_1) 4 36 fixed bin internal static init (1) options (constant); 4 37 dcl window_position_info_ptr 4 38 pointer; 4 39 4 40 /* structure for the set_window_status and get_window_status 4 41* control orders */ 4 42 4 43 declare window_status_info_ptr 4 44 pointer; 4 45 declare 1 window_status_info 4 46 aligned based (window_status_info_ptr), 4 47 2 version fixed bin, 4 48 2 status_string bit (36) aligned; /* string (window_status) */ 4 49 /* see window_status.incl.pl1 for the contents of this string */ 4 50 4 51 4 52 declare (window_status_version, window_status_version_1) 4 53 fixed bin internal static init (1) options (constant); 4 54 4 55 /* info structure for the set_more_responses and get_more_responses control 4 56* orders */ 4 57 4 58 4 59 dcl 1 more_responses_info 4 60 aligned based (more_responses_info_ptr), 4 61 2 version fixed bin, 4 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 4 63 2 n_noes fixed bin, 4 64 2 yeses char (32) unaligned, 4 65 2 noes char (32) unaligned; 4 66 4 67 dcl (more_responses_info_version_1, more_responses_version) 4 68 fixed bin internal static init (1) options (constant); 4 69 dcl more_responses_info_ptr 4 70 pointer; 4 71 4 72 /* structure for the set_break_table and get_break_table 4 73* control orders */ 4 74 4 75 declare break_table_ptr pointer; 4 76 declare 1 break_table_info aligned based (break_table_ptr), 4 77 2 version fixed bin, 4 78 2 breaks (0:127) bit (1) unaligned; 4 79 4 80 declare (break_table_info_version, break_table_info_version_1) 4 81 fixed bin init (1) internal static options (constant); 4 82 4 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 4 84 2 version fixed bin, 4 85 2 flags unaligned, 4 86 3 old_handler_valid 4 87 bit(1), 4 88 3 pad bit(35), 4 89 2 more_handler entry (pointer, bit(1) aligned), 4 90 2 old_more_handler entry (pointer, bit(1) aligned); 4 91 4 92 declare more_handler_info_ptr pointer; 4 93 4 94 declare (more_handler_info_version, more_handler_info_version_3) 4 95 fixed bin internal static options (constant) init (3); 4 96 4 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 4 98 2 version char(8), 4 99 2 token_character_count 4 100 fixed bin, 4 101 2 token_characters 4 102 char (128) unaligned; 4 103 4 104 declare token_characters_info_ptr pointer; 4 105 4 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 4 107 4 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 4 109 2 version char(8), 4 110 2 more_prompt char(80); 4 111 4 112 declare more_prompt_info_ptr pointer; 4 113 4 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 4 115 4 116 /* Line editor stuff ... */ 4 117 4 118 dcl line_editor_key_binding_info_ptr 4 119 pointer; 4 120 4 121 dcl line_editor_binding_count 4 122 fixed bin; 4 123 dcl line_editor_longest_sequence 4 124 fixed bin; 4 125 /* For each binding, action defines what to do for that sequence. Constants 4 126* are defined in window_editor_values.incl.pl1. Only if action is set to 4 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 4 128 4 129 dcl 1 line_editor_key_binding_info 4 130 aligned based (line_editor_key_binding_info_ptr), 4 131 2 version char(8), 4 132 2 binding_count fixed bin, 4 133 2 longest_sequence fixed bin, 4 134 2 bindings (line_editor_binding_count refer 4 135 (line_editor_key_binding_info.binding_count)), 4 136 3 sequence char(line_editor_longest_sequence refer 4 137 (line_editor_key_binding_info.longest_sequence)) varying, 4 138 3 action fixed bin, 4 139 3 numarg_action fixed binary, 4 140 3 editor_routine entry (pointer, fixed bin(35)), 4 141 3 name char (64) varying unaligned, 4 142 3 description char (256) varying unaligned, 4 143 3 info_path unaligned, 4 144 4 info_dir char (168), 4 145 4 info_entry char (32); 4 146 4 147 4 148 dcl line_editor_key_binding_info_version_3 4 149 char(8) static options (constant) init ("lekbi003"); 4 150 4 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 4 152 2 version char (8), 4 153 2 flags, 4 154 3 entire_state bit (1) unaligned, 4 155 3 mbz bit (35) unaligned, 4 156 2 key_binding_info_ptr ptr, 4 157 2 entire_state_ptr ptr; 4 158 4 159 dcl get_editor_key_bindings_info_ptr ptr; 4 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 4 161 4 162 dcl 1 set_editor_key_bindings_info aligned 4 163 based (set_editor_key_bindings_info_ptr), 4 164 2 version char (8), 4 165 2 flags, 4 166 3 replace bit (1) unaligned, 4 167 3 update bit (1) unaligned, 4 168 3 mbz bit (34) unaligned, 4 169 2 key_binding_info_ptr ptr; 4 170 4 171 dcl set_editor_key_bindings_info_ptr ptr; 4 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 4 173 4 174 /* This should be moved to window_info.incl.pl1 when that include file is 4 175* created. JR 2/1/84 */ 4 176 4 177 dcl 1 window_edit_line_info 4 178 based (window_edit_line_info_ptr), 4 179 2 version char (8), 4 180 2 line_ptr ptr, 4 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 4 182 4 183 dcl window_edit_line_info_version_1 4 184 char (8) static options (constant) init ("wedl0001"); 4 185 4 186 dcl window_edit_line_info_ptr 4 187 ptr; 4 188 4 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 3 12 3 13 3 14 /* END OF: xforum_windows.incl.pl1 * * * * * */ 188 189 190 on command_question system; 191 192 on command_error system; 193 194 on finish system; 195 196 on stringsize system; 197 198 on any_other 199 begin; 200 call find_condition_info_ (null (), addr (local_condition_info), code); 201 call condition_interpreter_ (null (), unused_ptr, unused_fb, 3, 202 local_condition_info.mc_ptr, (local_condition_info.condition_name), 203 local_condition_info.wc_ptr, local_condition_info.info_ptr); 204 call xforum_help_line_$change ("0"b, "", "", FIRST_PROMPT); 205 call iox_$control (iox_$user_io, "reset_more", null, (0)); 206 call ioa_$nnl ("^/Command: "); 207 goto multics_mode_loop; 208 end; 209 210 on quit 211 begin; 212 call xforum_window_mgr$check_window_status; 213 call xforum_help_line_$change ("0"b, "", "", FIRST_PROMPT); 214 call iox_$control (iox_$user_io, "reset_more", null, (0)); 215 call ioa_$nnl ("^/Command: "); 216 goto multics_mode_loop; 217 end; 218 219 on xforum_redisplay_menu 220 begin; 221 call xforum_help_line_$change ("0"b, "", "", FIRST_PROMPT); 222 call iox_$control (iox_$user_io, "reset_more", null, (0)); 223 call ioa_$nnl ("^/Command: "); 224 goto multics_mode_loop; 225 end; 226 227 handle_interactive_messages = xforum_user_profile$get_handle_interactive_messages (); 228 229 menu_window_height = xforum_windows.menu.position.extent.height; 230 231 call xforum_window_mgr$resynch_windows (-2, "0"b); 232 233 call xforum_help_line_$change ("0"b, "", "", "Xforum Multics Mode"); 234 235 call ioa_$nnl (FIRST_PROMPT || "^/"); 236 237 if handle_interactive_messages 238 then call xforum_im_mgr$restore_original ("0"b); 239 240 multics_mode_loop: 241 n_read = 0; 242 do while (n_read ^= 1); 243 call iox_$get_line (iox_$user_io, addr (line), LINE_LEN, n_read, code); 244 if code ^= 0 245 then call error (code, "Could not read command line"); 246 if n_read > 1 247 then do; 248 call xforum_help_line_$change ("0"b, "", "", "Xforum Multics Mode executing: " || substr (line, 1, n_read - 1)); 249 call window_$sync (iox_$user_io, code); 250 call cu_$cp (addr (line), n_read - 1, code); 251 call xforum_help_line_$change ("0"b, "", "", FIRST_PROMPT); 252 call iox_$control (iox_$user_io, "reset_more", null (), (0)); 253 call ioa_$nnl ("^/Command: "); 254 end; 255 end; 256 257 if handle_interactive_messages 258 then call xforum_im_mgr$defer_messages; 259 260 return; 261 262 error: proc (e_code, e_reason); 263 264 /* PARAMETERS */ 265 266 dcl e_code fixed bin (35); 267 dcl e_reason char (512); 268 269 xmm_xforum_error_info.name = "xforum_multics_mode"; 270 xmm_xforum_error_info.entry = ""; 271 xmm_xforum_error_info.doing = ""; 272 xmm_xforum_error_info.code = e_code; 273 xmm_xforum_error_info.reason = e_reason; 274 275 if handle_interactive_messages 276 then call xforum_im_mgr$defer_messages; 277 278 call signal_ ("xforum_fatal_error", null (), addr (xmm_xforum_error_info), null ()); 279 280 end error; 281 282 end xforum_multics_mode; 283 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/06/87 1014.6 xforum_multics_mode.pl1 >special_ldd>install>MR12.1-1065>xforum_multics_mode.pl1 184 1 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 186 2 12/03/84 1241.6 xforum_error_info.incl.pl1 >ldd>include>xforum_error_info.incl.pl1 188 3 12/03/84 1241.6 xforum_windows.incl.pl1 >ldd>include>xforum_windows.incl.pl1 3-12 4 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. FIRST_PROMPT 000001 constant char(80) initial unaligned dcl 168 set ref 204* 213* 221* 235 251* LINE_LEN 000000 constant fixed bin(21,0) initial dcl 168 set ref 243* addr builtin function dcl 175 ref 200 200 243 243 250 250 278 278 any_other 000100 stack reference condition dcl 142 ref 198 code 51 000010 internal static fixed bin(35,0) level 2 in structure "xmm_xforum_error_info" dcl 164 in procedure "xforum_multics_mode" set ref 272* code 000152 automatic fixed bin(35,0) dcl 154 in procedure "xforum_multics_mode" set ref 200* 243* 244 244* 249* 250* command_error 000106 stack reference condition dcl 142 ref 192 command_question 000114 stack reference condition dcl 142 ref 190 condition_info based structure level 1 dcl 1-14 condition_interpreter_ 000264 constant entry external dcl 125 ref 201 condition_name 3 000262 automatic varying char(32) level 2 dcl 160 set ref 201 cu_$cp 000266 constant entry external dcl 126 ref 250 doing 20 000010 internal static char(100) level 2 packed unaligned dcl 164 set ref 271* e_code parameter fixed bin(35,0) dcl 266 ref 262 272 e_reason parameter char(512) unaligned dcl 267 ref 262 273 entry 10 000010 internal static char(32) level 2 packed unaligned dcl 164 set ref 270* extent 15 000320 external static structure level 4 dcl 3-5 find_condition_info_ 000270 constant entry external dcl 127 ref 200 finish 000122 stack reference condition dcl 142 ref 194 handle_interactive_messages 000153 automatic bit(1) unaligned dcl 155 set ref 227* 237 257 275 height 16 000320 external static fixed bin(17,0) level 5 dcl 3-5 ref 229 info_ptr 14 000262 automatic pointer level 2 dcl 160 set ref 201* ioa_$nnl 000272 constant entry external dcl 128 ref 206 215 223 235 253 iox_$control 000274 constant entry external dcl 129 ref 205 214 222 252 iox_$get_line 000276 constant entry external dcl 130 ref 243 iox_$user_io 000262 external static pointer dcl 121 set ref 205* 214* 222* 243* 249* 252* line 000154 automatic char(256) unaligned dcl 156 set ref 243 243 248 250 250 local_condition_info 000262 automatic structure level 1 unaligned dcl 160 set ref 200 200 mc_ptr 000262 automatic pointer level 2 dcl 160 set ref 201* menu 10 000320 external static structure level 2 dcl 3-5 menu_window_height parameter fixed bin(17,0) dcl 117 set ref 35 229* n_read 000254 automatic fixed bin(21,0) dcl 157 set ref 240* 242 243* 246 248 250 name 000010 internal static char(32) level 2 packed unaligned dcl 164 set ref 269* null builtin function dcl 176 ref 200 200 201 201 205 205 214 214 222 222 252 252 278 278 278 278 position 12 000320 external static structure level 3 dcl 3-5 quit 000130 stack reference condition dcl 142 ref 210 reason 52 000010 internal static char(512) level 2 packed unaligned dcl 164 set ref 273* signal_ 000300 constant entry external dcl 131 ref 278 stringsize 000136 stack reference condition dcl 142 ref 196 substr builtin function dcl 177 ref 248 unused_fb 000260 automatic fixed bin(17,0) dcl 159 set ref 201* unused_ptr 000256 automatic pointer dcl 158 set ref 201* wc_ptr 16 000262 automatic pointer level 2 dcl 160 set ref 201* window_$sync 000302 constant entry external dcl 132 ref 249 window_position_info based structure level 1 unaligned dcl 4-25 xforum_error_info based structure level 1 unaligned dcl 2-3 xforum_help_line_$change 000304 constant entry external dcl 133 ref 204 213 221 233 248 251 xforum_im_mgr$defer_messages 000306 constant entry external dcl 134 ref 257 275 xforum_im_mgr$restore_original 000310 constant entry external dcl 135 ref 237 xforum_redisplay_menu 000144 stack reference condition dcl 142 ref 219 xforum_user_profile$get_handle_interactive_messages 000312 constant entry external dcl 136 ref 227 xforum_window_info 000314 automatic structure level 1 unaligned dcl 3-8 xforum_window_mgr$check_window_status 000314 constant entry external dcl 137 ref 212 xforum_window_mgr$resynch_windows 000316 constant entry external dcl 138 ref 231 xforum_windows 000320 external static structure level 1 dcl 3-5 xmm_xforum_error_info 000010 internal static structure level 1 unaligned dcl 164 set ref 278 278 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. break_table_info based structure level 1 dcl 4-76 break_table_info_version internal static fixed bin(17,0) initial dcl 4-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 4-80 break_table_ptr automatic pointer dcl 4-75 condition_info_ptr automatic pointer dcl 1-10 condition_info_version_1 internal static fixed bin(17,0) initial dcl 1-30 get_editor_key_bindings_info based structure level 1 dcl 4-151 get_editor_key_bindings_info_ptr automatic pointer dcl 4-159 get_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 4-160 line_editor_binding_count automatic fixed bin(17,0) dcl 4-121 line_editor_key_binding_info based structure level 1 dcl 4-129 line_editor_key_binding_info_ptr automatic pointer dcl 4-118 line_editor_key_binding_info_version_3 internal static char(8) initial unaligned dcl 4-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 4-123 more_handler_info based structure level 1 dcl 4-83 more_handler_info_ptr automatic pointer dcl 4-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 4-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 4-94 more_prompt_info based structure level 1 dcl 4-108 more_prompt_info_ptr automatic pointer dcl 4-112 more_prompt_info_version_1 internal static char(8) initial unaligned dcl 4-114 more_responses_info based structure level 1 dcl 4-59 more_responses_info_ptr automatic pointer dcl 4-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 4-67 more_responses_version internal static fixed bin(17,0) initial dcl 4-67 set_editor_key_bindings_info based structure level 1 dcl 4-162 set_editor_key_bindings_info_ptr automatic pointer dcl 4-171 set_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 4-172 token_characters_info based structure level 1 dcl 4-97 token_characters_info_ptr automatic pointer dcl 4-104 token_characters_info_version_1 internal static char(8) initial unaligned dcl 4-106 window_edit_line_info based structure level 1 unaligned dcl 4-177 window_edit_line_info_ptr automatic pointer dcl 4-186 window_edit_line_info_version_1 internal static char(8) initial unaligned dcl 4-183 window_position_info_ptr automatic pointer dcl 4-37 window_position_info_version internal static fixed bin(17,0) initial dcl 4-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 4-35 window_status_info based structure level 1 dcl 4-45 window_status_info_ptr automatic pointer dcl 4-43 window_status_version internal static fixed bin(17,0) initial dcl 4-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 4-52 NAMES DECLARED BY EXPLICIT CONTEXT. error 001274 constant entry internal dcl 262 ref 244 multics_mode_loop 001026 constant label dcl 240 set ref 207 216 224 xforum_multics_mode 000143 constant entry external dcl 35 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1706 2230 1373 1716 Length 2546 1373 322 301 313 252 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xforum_multics_mode 434 external procedure is an external procedure. on unit on line 190 64 on unit on unit on line 192 64 on unit on unit on line 194 64 on unit on unit on line 196 64 on unit on unit on line 198 113 on unit on unit on line 210 106 on unit on unit on line 219 106 on unit error internal procedure shares stack frame of external procedure xforum_multics_mode. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 xmm_xforum_error_info xforum_multics_mode STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xforum_multics_mode 000152 code xforum_multics_mode 000153 handle_interactive_messages xforum_multics_mode 000154 line xforum_multics_mode 000254 n_read xforum_multics_mode 000256 unused_ptr xforum_multics_mode 000260 unused_fb xforum_multics_mode 000262 local_condition_info xforum_multics_mode 000314 xforum_window_info xforum_multics_mode THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. condition_interpreter_ cu_$cp find_condition_info_ ioa_$nnl iox_$control iox_$get_line signal_ window_$sync xforum_help_line_$change xforum_im_mgr$defer_messages xforum_im_mgr$restore_original xforum_user_profile$get_handle_interactive_messages xforum_window_mgr$check_window_status xforum_window_mgr$resynch_windows THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_io xforum_windows LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 35 000140 190 000150 192 000165 194 000202 196 000217 198 000234 200 000250 201 000270 204 000345 205 000374 206 000430 207 000445 210 000450 212 000464 213 000470 214 000516 215 000552 216 000567 219 000572 221 000606 222 000633 223 000667 224 000704 227 000707 229 000716 231 000723 233 000737 235 000773 237 001012 240 001026 242 001027 243 001033 244 001054 246 001063 248 001066 249 001131 250 001143 251 001163 252 001211 253 001245 255 001262 257 001263 260 001273 262 001274 269 001276 270 001302 271 001305 272 001310 273 001312 275 001316 278 001325 280 001363 ----------------------------------------------------------- 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