COMPILATION LISTING OF SEGMENT xmail_multics_mode_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/02/88 0748.3 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(86-01-13,Blair), approve(86-02-26,MCR7358), 14* audit(86-04-18,RBarstad), install(86-05-28,MR12.0-1062): 15* 85-04-17 JG Backs: Replaced all the Message Facility commands 16* (accept_messages, defer_messages, print_messages) with calls to the new 17* xmail_im_mgr_ module which uses the new Message Facility entrypoints for 18* these functions. 19* 2) change(86-01-13,Blair), approve(86-02-26,MCR7358), 20* audit(86-04-18,RBarstad), install(86-05-28,MR12.0-1062): 21* Add cleanup handler to set flag which will allow messages marked for 22* deletion to be unmarked. 23* 3) change(86-07-18,Blair), approve(86-07-18,MCR7447), 24* audit(86-07-18,LJAdams), install(86-07-21,MR12.0-1100): 25* Add a call to xmail_im_mgr_$init before returning back to xmail so we can 26* detect when the user has changed his processing options for interactive 27* msgs while in multics mode. 28* END HISTORY COMMENTS */ 29 30 31 xmail_multics_mode_: proc; 32 33 /* BEGIN DESCRIPTION 34* 35*function: 36* xmail_multics_mode_ 37* 38* This program is called to invoke multics mode in the bottom 39* window during the execution of xmail. It tells the user 40* what is happenning (in case he doesn't know) and how to get 41* back to the menu. Then it calls the command processor. 42* Upon return, it clears the window and returns to its caller. 43* 44*history: 45* Written 7/17/81 by Paul Kyzivat 46* 47* Modified 7/21/81 by Paul Kyzivat to only print help once per process 48* 49* 83-07-07 DJ Schimke: Removed unreferenced dcl of quit condition. 50* Added code to selectively disable the interactive message handling. This 51* option should eventually be available from the personalize menu as 52* suggested by phx12801. 53* 54* 83-09-20 DJ Schimke: Add call to xmail_window_manager_$reconnect to clear 55* window_status_pending on any windows after returning to xmail. phx 14080 56* 57* 84-05-30 DJ Schimke: Changed the multics mode interface to use the whole 58* screen (original user_io) when necessary by forming overlapping windows. 59* There are two advantages to this approach: users have more room for multics 60* commands and the previous contents of the bottom window are preserved for 61* the user (in case there is a useful pathname etc.). 62* 63* 84-09-24 JG Backs: Added "-brief" control argument to print_messages 64* command so the message "You have no messages" would not print. This is to 65* make xmail compatible with the new message facility for mr11. 66* 67* 84-11-13 JG Backs: Initialized code to 0 at the beginning of the module. 68* Without initialization, an error was being logged if it was not the 69* first time multics mode was called in a process. 70* 71*END DESCRIPTION 72**/ 73 74 /* AUTOMATIC */ 75 76 dcl code fixed bin (35); 77 dcl delta fixed bin; 78 dcl mm_status_msg char (80) var; 79 dcl restoration_required bit (1) aligned; 80 dcl rs_length fixed bin; 81 dcl saved_bwi_height fixed bin; 82 dcl saved_bwi_line fixed bin; 83 dcl 1 bottom_window_info like window_position_info; 84 85 /* BUILTINS */ 86 87 dcl (addr, divide, length, substr) builtin; 88 89 /* CONDITIONS */ 90 91 dcl any_other condition; 92 dcl cleanup condition; 93 dcl program_interrupt condition; 94 95 /* CONSTANTS */ 96 97 dcl NAME char (19) int static init ("xmail_multics_mode_") options (constant); 98 dcl MM_STATUS_MSG char (39) int static init ("Type ""pi"" to return to Executive Mail") options (constant); 99 100 /* EXTERNAL STATIC */ 101 102 dcl iox_$user_output ptr ext static; 103 104 /* INTERNAL STATIC */ 105 106 dcl first_time bit (1) int static init ("1"b); /* indicates if first invocation */ 107 108 /* ENTRIES */ 109 110 dcl continue_to_signal_ entry (fixed bin (35)); 111 dcl cu_$cl entry () options (variable); 112 dcl ioa_$rsnnl entry () options (variable); 113 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 114 dcl xmail_display_help_ entry (char (*), char (*), fixed bin (35)); 115 dcl xmail_error_$no_print entry () options (variable); 116 dcl xmail_redisplay_$menu entry; 117 dcl xmail_window_manager_$reconnect entry (); 118 dcl xmail_im_mgr_$defer_messages entry (); 119 dcl xmail_im_mgr_$init entry (); 120 dcl xmail_im_mgr_$print_messages entry (); 121 dcl xmail_im_mgr_$restore_original entry (); 122 123 /* INCLUDE FILES */ 124 1 1 /* BEGIN INCLUDE FILE: xmail_data.incl.pl1 */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(85-12-20,Blair), approve(86-03-06,MCR7358), 1 6* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 7* Modified 03/15/85 by Joanne Backs adding confirm_print flag. 1 8* 2) change(85-12-20,LJAdams), approve(86-03-06,MCR7358), 1 9* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 10* Adding switch to indicate request for menu display came from general help. 1 11* This is so general help menu will be displayed in top screen. 1 12* 3) change(86-01-10,Blair), approve(86-03-06,MCR7358), 1 13* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 14* Add switch to indicate whether or not it is permissible to process mail 1 15* in other users' mailboxes (foreign_mailbox). 1 16* 4) change(86-01-13,Blair), approve(86-03-06,MCR7358), 1 17* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 18* Add bit to indicate whether or not this is a true cleanup condition. 1 19* 5) change(86-02-06,Blair), approve(86-03-06,MCR7358), 1 20* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 21* Rearrange to group all the bit flags together in one word with a pad. 1 22* 6) change(86-03-05,Blair), approve(86-03-05,MCR7358), 1 23* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 24* Change value_seg ptr to value_seg_pathname to avoid the situation where 1 25* you keep around a pointer to a structure which no longer exists. 1 26* 7) change(87-01-16,Blair), approve(87-02-05,MCR7618), 1 27* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 1 28* Add a field to indicate whether or not we should process interactive msgs. 1 29* Increment version to 4.1 so default value will get set. 1 30* 8) change(87-02-13,Blair), approve(87-02-13,MCR7618), 1 31* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 1 32* Add a field to indicate whether or not we're processing a reply so that we 1 33* will be able to rebuild the screens properly after a disconnect occurs. 1 34* Error_list #114. 1 35* 9) change(88-07-26,Blair), approve(88-07-26,MCR7959), 1 36* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 1 37* Add a bit to indicate whether or not the error segment had to be created 1 38* in the pdir (because we didn't have sma access to the mlsys_dir). 1 39* END HISTORY COMMENTS */ 1 40 1 41 1 42 /* Written 5/13/81 by Paul H. Kyzivat */ 1 43 /* Modified 12/16/81 by S. Krupp to delete unused parts of structure 1 44* and to add n_fkeys_used */ 1 45 /* Modified 12/14/82 by Dave Schimke to make the xmail version a 10 character 1 46* varying string. */ 1 47 /* Modified 09/12/83 by Dave Schimke adding interactive_msgs flag */ 1 48 /* Modified 09/14/83 by Dave Schimke adding moved_user_io */ 1 49 /* Modified 09/06/84 by Joanne Backs adding lists_as_menus flag */ 1 50 /* Modified 09/21/84 by Joanne Backs adding remove_menus flag */ 1 51 1 52 dcl xmail_data_ptr external static ptr init (null); 1 53 1 54 dcl 1 xmail_data aligned based (xmail_data_ptr), 1 55 2 mail_dir char (168) varying, 1 56 2 first_label label, 1 57 2 quit_label label, 1 58 2 value_seg_pathname char (168) varying, 1 59 2 moved_user_io ptr, 1 60 2 normal_usage char (80) unal, 1 61 2 function_key_info, 1 62 3 function_key_data_ptr ptr, 1 63 3 n_fkeys_used fixed bin, 1 64 2 actee, 1 65 3 person char(32) varying, 1 66 3 project char(32) varying, 1 67 2 flags aligned, 1 68 3 mail_in_incoming bit (1) unal, 1 69 3 lists_as_menus bit (1) unal, /* personalization */ 1 70 3 remove_menus bit (1) unal, /* personalization */ 1 71 3 confirm_print bit (1) unal, /* personalization */ 1 72 3 multics_mode bit (1) unal, /* personalization */ 1 73 3 interactive_msgs bit (1) unal, /* personalization */ 1 74 3 foreign_mailbox bit (1) unal, /* read others' mailboxes */ 1 75 3 general_help bit (1) unal, /* indicated requesting gen help*/ 1 76 3 cleanup_signalled bit (1) unal, /* on when true cleanup condition */ 1 77 3 msgs_as_mail bit (1) unal, /* on for include_msgs */ 1 78 3 reply_request bit (1) unal, /* on if we're doing a reply */ 1 79 3 error_seg_in_pdir bit (1) unal, /* on if the error_seg is in the pdir */ 1 80 3 pad bit (24) unal; 1 81 1 82 1 83 1 84 dcl xmail_version char(10) var static options(constant) init("4.1"); 1 85 1 86 /* END INCLUDE FILE: xmail_data.incl.pl1 */ 125 126 2 1 /* BEGIN INCLUDE FILE xmail_help_infos.incl.pl1 */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(85-03-06,Backs), approve(86-03-06,MCR7358), 2 5* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 2 6* Modified to add date info. 2 7* END HISTORY COMMENTS */ 2 8 2 9 /* Created 06/18/81 by Suzanne Krupp */ 2 10 2 11 /* Help files and info entry points. */ 2 12 2 13 dcl (PROMPT_REPLIES_HELP char(28) init("xmail_prompt_replies.gi.info"), 2 14 GENERAL_HELP_HELP char(26) init("xmail_general_help.gi.info"), 2 15 GETTING_STARTED_HELP char(29) init("xmail_getting_started.gi.info"), 2 16 INITIAL_HELP char(26) init("xmail_initial_help.gi.info"), 2 17 MULTICS_MODE_HELP char(27) init("xmail_multics_mode_.gi.info"), 2 18 REVIEW_DEFAULTS_HELP char(29) init("xmail_Review_Defaults.gi.info")) 2 19 int static options(constant); 2 20 2 21 dcl (CREATE_MFILE_INFO char(19) init("creating_mail_files"), /* Prompt Infos */ 2 22 DEL_MSG_SELECT_INFO char(23) init("which_discarded_message"), 2 23 SEARCH_STR_INFO char(14) init("search_string"), 2 24 MSG_SELECT_INFO char(14) init("which_message"), 2 25 USE_SPEC_SET_INFO char(12) init("use_spec_set"), 2 26 GETTING_HELP_INFO char(12) init("getting_help"), 2 27 DATE_INFO char(14) init("date_selection"), 2 28 MORE_HELP_INFO char(9) init("more_help")) 2 29 int static options(constant); 2 30 2 31 /* END INCLUDE FILE ... xmail_help_infos.incl.pl1 */ 127 128 3 1 /* Begin include file: xmail_windows.incl.pl1 */ 3 2 /* Created 6/24/81 by Paul Kyzivat */ 3 3 /* Mofified 6/20/84 by DJ Schimke to add the mm_status window */ 3 4 3 5 dcl 1 xmail_windows aligned external static, 3 6 2 initial_position fixed bin, 3 7 2 min_lines_needed fixed bin, 3 8 2 (status, mm_status, menu, bottom) aligned like xmail_window_info_format; 3 9 3 10 dcl 1 xmail_window_info_format aligned based, 3 11 2 iocb ptr, 3 12 2 position aligned like window_position_info; 3 13 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 14 3 15 3 16 /* End include file: xmail_windows.incl.pl1 */ 129 130 5 1 /* begin include fine window_dcls.incl.pl1 BIM June 1981 */ 5 2 /* Modified 9 October 1983 by Jon A. Rochlis to add window_$edit_line. */ 5 3 5 4 /* format: style3 */ 5 5 5 6 declare window_$bell entry (pointer, fixed binary (35)); 5 7 declare window_$clear_region 5 8 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary, fixed binary (35)); 5 9 declare window_$clear_to_end_of_line 5 10 entry (pointer, fixed binary (35)); 5 11 declare window_$clear_to_end_of_window 5 12 entry (pointer, fixed binary (35)); 5 13 declare window_$clear_window 5 14 entry (pointer, fixed binary (35)); 5 15 declare window_$delete_chars 5 16 entry (pointer, fixed binary, fixed binary (35)); 5 17 declare window_$get_cursor_position 5 18 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 5 19 5 20 /* Call window_$get_echoed_chars (iocb_ptr, n_to_read, read_buffer, n_read, read_break, code); */ 5 21 5 22 declare window_$get_echoed_chars 5 23 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 5 24 fixed binary (35)); 5 25 declare window_$get_unechoed_chars 5 26 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 5 27 fixed binary (35)); 5 28 declare window_$insert_text entry (pointer, character (*), fixed binary (35)); 5 29 declare window_$overwrite_text 5 30 entry (pointer, character (*), fixed binary (35)); 5 31 declare window_$position_cursor 5 32 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 5 33 5 34 /* Call window_$position_cursor_rel (iocb_ptr, delta_line, delta_column, code); */ 5 35 5 36 declare window_$position_cursor_rel 5 37 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 5 38 5 39 /* Call window_$scroll_region (iocb_ptr, first_line_of_region, n_lines_of_region, distance_to_scroll_region_negative_is_up, 5 40* code); */ 5 41 5 42 declare window_$scroll_region 5 43 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary (35)); 5 44 declare window_$sync entry (pointer, fixed binary (35)); 5 45 5 46 /* Call window_$write_raw_text (iocb_ptr, text_string, code); */ 5 47 5 48 declare window_$write_raw_text 5 49 entry (pointer, character (*), fixed binary (35)); 5 50 5 51 /* Call window_$write_sync_read (iocb_ptr, prompt_string, n_to_read, read_buffer, n_read, break_char, code); */ 5 52 5 53 declare window_$write_sync_read 5 54 entry (pointer, character (*), fixed bin (21), character (*), fixed binary (21), 5 55 character (1) var, fixed binary (35)); 5 56 5 57 /* Call window_$change_line (iocb_ptr, new_line, code); */ 5 58 5 59 declare window_$change_line entry (pointer, fixed binary, fixed binary (35)); 5 60 5 61 /* Call window_$change_column (iocb_ptr, new_column, code); */ 5 62 5 63 declare window_$change_column 5 64 entry (pointer, fixed binary, fixed binary (35)); 5 65 5 66 /* Call window_$get_one_unechoed (iocb_ptr, char_or_len_0, block_flag, code); */ 5 67 declare ( 5 68 window_$get_one_unechoed, 5 69 window_$get_one_unechoed_char 5 70 ) entry (pointer, character (1) var, bit (1) aligned, fixed binary (35)); 5 71 5 72 declare window_$create entry (pointer, pointer, pointer, fixed binary (35)); 5 73 5 74 declare window_$destroy entry (pointer, fixed binary (35)); 5 75 5 76 declare window_$edit_line entry (pointer, pointer, pointer, fixed bin(21), fixed bin(21), fixed bin(35)); 5 77 5 78 /* call window_$edit_line (iocb_ptr, window_edit_line_info_ptr, buffer_ptr, 5 79* buffer_len, n_returned, code); */ 5 80 5 81 5 82 /* end include file window_dcls.incl.pl1 */ 131 132 6 1 /* begin include file window_status.incl.pl1 */ 6 2 /* Modified 28 March 1984 by Jon A. Rochlis to add terminal type change 6 3* and reconnection stuff. */ 6 4 /* format: style3 */ 6 5 /* interrupts that an application can recieve from a window */ 6 6 6 7 declare window_status_string 6 8 bit (36) unaligned; 6 9 6 10 declare 1 window_status aligned, 6 11 2 screen_invalid bit (1) unaligned, 6 12 2 async_change bit (1) unaligned, 6 13 2 ttp_change bit (1) unaligned, 6 14 2 reconnection bit (1) unaligned, 6 15 2 pad bit (32) unaligned; 6 16 6 17 declare ( 6 18 W_STATUS_SCREEN_INVALID 6 19 init ("1"b), 6 20 W_STATUS_ASYNC_EVENT 6 21 init ("01"b), 6 22 W_STATUS_TTP_CHANGE 6 23 init ("001"b), 6 24 W_STATUS_RECONNECTION 6 25 init ("0001"b) 6 26 ) bit (36) aligned internal static options (constant); 6 27 6 28 /* end include file window_status.incl.pl1 */ 133 134 135 /* BEGIN */ 136 137 code = 0; /* initialize code */ 138 139 if first_time then call xmail_display_help_ (MULTICS_MODE_HELP, "", code); 140 if code ^= 0 then call xmail_error_$no_print (code, NAME, "l", "Cannot get help for multics mode. This is an internal programming error."); 141 if xmail_data.interactive_msgs then do; 142 call xmail_im_mgr_$print_messages; 143 call xmail_im_mgr_$restore_original; 144 end; 145 146 restoration_required = "0"b; 147 on cleanup begin; 148 call CLEANUP; 149 end; 150 on program_interrupt begin; 151 call restore_menu; 152 if xmail_data.interactive_msgs 153 then do; 154 call xmail_im_mgr_$init (); 155 call xmail_im_mgr_$defer_messages (); 156 end; 157 call continue_to_signal_ ((0)); 158 end; 159 call window_$clear_window (xmail_windows.mm_status.iocb, code); 160 call ioa_$rsnnl ("^vt^a", mm_status_msg, rs_length, divide ((xmail_windows.mm_status.position.width - length (MM_STATUS_MSG)), 2, 17, 0) + 2, MM_STATUS_MSG); 161 call window_$overwrite_text (xmail_windows.mm_status.iocb, substr (mm_status_msg, 1, rs_length), code); 162 call xmail_redisplay_$menu (); 163 first_time = "0"b; 164 call suppress_menu; 165 on any_other system; 166 call cu_$cl; 167 call xmail_window_manager_$reconnect (); 168 call window_$clear_window (iox_$user_output, code); 169 if code ^= 0 then call xmail_error_$no_print (code, NAME, "l", "Cannot clear user_io window. This is an internal programming error."); 170 if xmail_data.interactive_msgs 171 then call xmail_im_mgr_$defer_messages (); 172 call xmail_redisplay_$menu (); 173 174 suppress_menu: proc; 175 bottom_window_info = xmail_windows.bottom.position; 176 saved_bwi_height = bottom_window_info.height; 177 saved_bwi_line = bottom_window_info.origin.line; 178 delta = xmail_windows.menu.height + xmail_windows.status.height - 1; 179 bottom_window_info.height = bottom_window_info.height + delta; 180 bottom_window_info.origin.line = bottom_window_info.origin.line - delta; 181 182 call iox_$control (xmail_windows.bottom.iocb, "set_window_info", addr (bottom_window_info), code); 183 restoration_required = "1"b; 184 return; 185 end suppress_menu; 186 187 restore_menu: proc; 188 if restoration_required then do; 189 bottom_window_info.height = saved_bwi_height; 190 bottom_window_info.origin.line = saved_bwi_line; 191 call iox_$control (xmail_windows.bottom.iocb, "set_window_info", addr (xmail_windows.bottom.position), (0)); 192 end; 193 return; 194 end restore_menu; 195 196 CLEANUP: proc; 197 xmail_data.cleanup_signalled = "1"b; 198 end; 199 200 201 end xmail_multics_mode_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/02/88 0748.3 xmail_multics_mode_.pl1 >spec>install>MR12.2-1098>xmail_multics_mode_.pl1 125 1 09/02/88 0743.4 xmail_data.incl.pl1 >spec>install>MR12.2-1098>xmail_data.incl.pl1 127 2 05/28/86 1117.7 xmail_help_infos.incl.pl1 >ldd>include>xmail_help_infos.incl.pl1 129 3 12/02/84 1132.9 xmail_windows.incl.pl1 >ldd>include>xmail_windows.incl.pl1 3-14 4 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.incl.pl1 131 5 09/12/84 0916.7 window_dcls.incl.pl1 >ldd>include>window_dcls.incl.pl1 133 6 09/12/84 0916.7 window_status.incl.pl1 >ldd>include>window_status.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. MM_STATUS_MSG 000007 constant char(39) initial packed unaligned dcl 98 set ref 160 160* MULTICS_MODE_HELP 000000 constant char(27) initial packed unaligned dcl 2-13 set ref 139* NAME 000021 constant char(19) initial packed unaligned dcl 97 set ref 140* 169* addr builtin function dcl 87 ref 182 182 191 191 any_other 000140 stack reference condition dcl 91 ref 165 bottom 32 000046 external static structure level 2 dcl 3-5 bottom_window_info 000133 automatic structure level 1 unaligned dcl 83 set ref 175* 182 182 cleanup 000146 stack reference condition dcl 92 ref 147 cleanup_signalled 213(08) based bit(1) level 3 packed packed unaligned dcl 1-54 set ref 197* code 000100 automatic fixed bin(35,0) dcl 76 set ref 137* 139* 140 140* 159* 161* 168* 169 169* 182* continue_to_signal_ 000014 constant entry external dcl 110 ref 157 cu_$cl 000016 constant entry external dcl 111 ref 166 delta 000101 automatic fixed bin(17,0) dcl 77 set ref 178* 179 180 divide builtin function dcl 87 ref 160 extent 7 000046 external static structure level 4 in structure "xmail_windows" dcl 3-5 in procedure "xmail_multics_mode_" extent 17 000046 external static structure level 4 in structure "xmail_windows" dcl 3-5 in procedure "xmail_multics_mode_" extent 3 000133 automatic structure level 2 in structure "bottom_window_info" unaligned dcl 83 in procedure "xmail_multics_mode_" extent 27 000046 external static structure level 4 in structure "xmail_windows" dcl 3-5 in procedure "xmail_multics_mode_" first_time 000010 internal static bit(1) initial packed unaligned dcl 106 set ref 139 163* flags 213 based structure level 2 dcl 1-54 height 4 000133 automatic fixed bin(17,0) level 3 in structure "bottom_window_info" dcl 83 in procedure "xmail_multics_mode_" set ref 176 179* 179 189* height 30 000046 external static fixed bin(17,0) level 5 in structure "xmail_windows" dcl 3-5 in procedure "xmail_multics_mode_" ref 178 height 10 000046 external static fixed bin(17,0) level 5 in structure "xmail_windows" dcl 3-5 in procedure "xmail_multics_mode_" ref 178 interactive_msgs 213(05) based bit(1) level 3 packed packed unaligned dcl 1-54 ref 141 152 170 ioa_$rsnnl 000020 constant entry external dcl 112 ref 160 iocb 32 000046 external static pointer level 3 in structure "xmail_windows" dcl 3-5 in procedure "xmail_multics_mode_" set ref 182* 191* iocb 12 000046 external static pointer level 3 in structure "xmail_windows" dcl 3-5 in procedure "xmail_multics_mode_" set ref 159* 161* iox_$control 000022 constant entry external dcl 113 ref 182 191 iox_$user_output 000012 external static pointer dcl 102 set ref 168* length builtin function dcl 87 ref 160 line 2 000133 automatic fixed bin(17,0) level 3 dcl 83 set ref 177 180* 180 190* menu 22 000046 external static structure level 2 dcl 3-5 mm_status 12 000046 external static structure level 2 dcl 3-5 mm_status_msg 000102 automatic varying char(80) dcl 78 set ref 160* 161 161 origin 1 000133 automatic structure level 2 unaligned dcl 83 position 4 000046 external static structure level 3 in structure "xmail_windows" dcl 3-5 in procedure "xmail_multics_mode_" position 14 000046 external static structure level 3 in structure "xmail_windows" dcl 3-5 in procedure "xmail_multics_mode_" position 24 000046 external static structure level 3 in structure "xmail_windows" dcl 3-5 in procedure "xmail_multics_mode_" position 34 000046 external static structure level 3 in structure "xmail_windows" dcl 3-5 in procedure "xmail_multics_mode_" set ref 175 191 191 program_interrupt 000154 stack reference condition dcl 93 ref 150 restoration_required 000127 automatic bit(1) dcl 79 set ref 146* 183* 188 rs_length 000130 automatic fixed bin(17,0) dcl 80 set ref 160* 161 161 saved_bwi_height 000131 automatic fixed bin(17,0) dcl 81 set ref 176* 189 saved_bwi_line 000132 automatic fixed bin(17,0) dcl 82 set ref 177* 190 status 2 000046 external static structure level 2 dcl 3-5 substr builtin function dcl 87 ref 161 161 width 17 000046 external static fixed bin(17,0) level 5 dcl 3-5 ref 160 window_$clear_window 000050 constant entry external dcl 5-13 ref 159 168 window_$overwrite_text 000052 constant entry external dcl 5-29 ref 161 window_position_info based structure level 1 unaligned dcl 4-25 xmail_data based structure level 1 dcl 1-54 xmail_data_ptr 000044 external static pointer initial dcl 1-52 ref 141 152 170 197 xmail_display_help_ 000024 constant entry external dcl 114 ref 139 xmail_error_$no_print 000026 constant entry external dcl 115 ref 140 169 xmail_im_mgr_$defer_messages 000034 constant entry external dcl 118 ref 155 170 xmail_im_mgr_$init 000036 constant entry external dcl 119 ref 154 xmail_im_mgr_$print_messages 000040 constant entry external dcl 120 ref 142 xmail_im_mgr_$restore_original 000042 constant entry external dcl 121 ref 143 xmail_redisplay_$menu 000030 constant entry external dcl 116 ref 162 172 xmail_window_info_format based structure level 1 dcl 3-10 xmail_window_manager_$reconnect 000032 constant entry external dcl 117 ref 167 xmail_windows 000046 external static structure level 1 dcl 3-5 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CREATE_MFILE_INFO internal static char(19) initial packed unaligned dcl 2-21 DATE_INFO internal static char(14) initial packed unaligned dcl 2-21 DEL_MSG_SELECT_INFO internal static char(23) initial packed unaligned dcl 2-21 GENERAL_HELP_HELP internal static char(26) initial packed unaligned dcl 2-13 GETTING_HELP_INFO internal static char(12) initial packed unaligned dcl 2-21 GETTING_STARTED_HELP internal static char(29) initial packed unaligned dcl 2-13 INITIAL_HELP internal static char(26) initial packed unaligned dcl 2-13 MORE_HELP_INFO internal static char(9) initial packed unaligned dcl 2-21 MSG_SELECT_INFO internal static char(14) initial packed unaligned dcl 2-21 PROMPT_REPLIES_HELP internal static char(28) initial packed unaligned dcl 2-13 REVIEW_DEFAULTS_HELP internal static char(29) initial packed unaligned dcl 2-13 SEARCH_STR_INFO internal static char(14) initial packed unaligned dcl 2-21 USE_SPEC_SET_INFO internal static char(12) initial packed unaligned dcl 2-21 W_STATUS_ASYNC_EVENT internal static bit(36) initial dcl 6-17 W_STATUS_RECONNECTION internal static bit(36) initial dcl 6-17 W_STATUS_SCREEN_INVALID internal static bit(36) initial dcl 6-17 W_STATUS_TTP_CHANGE internal static bit(36) initial dcl 6-17 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 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 packed 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 packed 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 packed 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 packed 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 packed unaligned dcl 4-106 window_$bell 000000 constant entry external dcl 5-6 window_$change_column 000000 constant entry external dcl 5-63 window_$change_line 000000 constant entry external dcl 5-59 window_$clear_region 000000 constant entry external dcl 5-7 window_$clear_to_end_of_line 000000 constant entry external dcl 5-9 window_$clear_to_end_of_window 000000 constant entry external dcl 5-11 window_$create 000000 constant entry external dcl 5-72 window_$delete_chars 000000 constant entry external dcl 5-15 window_$destroy 000000 constant entry external dcl 5-74 window_$edit_line 000000 constant entry external dcl 5-76 window_$get_cursor_position 000000 constant entry external dcl 5-17 window_$get_echoed_chars 000000 constant entry external dcl 5-22 window_$get_one_unechoed 000000 constant entry external dcl 5-67 window_$get_one_unechoed_char 000000 constant entry external dcl 5-67 window_$get_unechoed_chars 000000 constant entry external dcl 5-25 window_$insert_text 000000 constant entry external dcl 5-28 window_$position_cursor 000000 constant entry external dcl 5-31 window_$position_cursor_rel 000000 constant entry external dcl 5-36 window_$scroll_region 000000 constant entry external dcl 5-42 window_$sync 000000 constant entry external dcl 5-44 window_$write_raw_text 000000 constant entry external dcl 5-48 window_$write_sync_read 000000 constant entry external dcl 5-53 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 packed 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 automatic structure level 1 dcl 6-10 window_status_info based structure level 1 dcl 4-45 window_status_info_ptr automatic pointer dcl 4-43 window_status_string automatic bit(36) packed unaligned dcl 6-7 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 xmail_version internal static varying char(10) initial dcl 1-84 NAMES DECLARED BY EXPLICIT CONTEXT. CLEANUP 000706 constant entry internal dcl 196 ref 148 restore_menu 000636 constant entry internal dcl 187 ref 151 suppress_menu 000550 constant entry internal dcl 174 ref 164 xmail_multics_mode_ 000130 constant entry external dcl 31 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1204 1260 715 1214 Length 1620 715 54 323 267 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_multics_mode_ 220 external procedure is an external procedure. on unit on line 147 70 on unit on unit on line 150 102 on unit on unit on line 165 64 on unit suppress_menu internal procedure shares stack frame of external procedure xmail_multics_mode_. restore_menu internal procedure shares stack frame of on unit on line 150. CLEANUP internal procedure shares stack frame of on unit on line 147. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 first_time xmail_multics_mode_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xmail_multics_mode_ 000100 code xmail_multics_mode_ 000101 delta xmail_multics_mode_ 000102 mm_status_msg xmail_multics_mode_ 000127 restoration_required xmail_multics_mode_ 000130 rs_length xmail_multics_mode_ 000131 saved_bwi_height xmail_multics_mode_ 000132 saved_bwi_line xmail_multics_mode_ 000133 bottom_window_info xmail_multics_mode_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. continue_to_signal_ cu_$cl ioa_$rsnnl iox_$control window_$clear_window window_$overwrite_text xmail_display_help_ xmail_error_$no_print xmail_im_mgr_$defer_messages xmail_im_mgr_$init xmail_im_mgr_$print_messages xmail_im_mgr_$restore_original xmail_redisplay_$menu xmail_window_manager_$reconnect THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_output xmail_data_ptr xmail_windows LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 31 000127 137 000135 139 000136 140 000160 141 000214 142 000222 143 000226 146 000233 147 000234 148 000250 149 000251 150 000252 151 000266 152 000267 154 000275 155 000301 157 000306 158 000316 159 000317 160 000331 161 000372 162 000423 163 000431 164 000433 165 000434 166 000451 167 000456 168 000463 169 000474 170 000530 172 000542 201 000547 174 000550 175 000551 176 000565 177 000567 178 000571 179 000575 180 000576 182 000600 183 000633 184 000635 187 000636 188 000637 189 000642 190 000644 191 000646 193 000705 196 000706 197 000707 198 000714 ----------------------------------------------------------- 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