COMPILATION LISTING OF SEGMENT xmail_get_choice_ 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.5 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(85-12-23,LJAdams), approve(86-03-06,MCR7358), 14* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 15* 85-04-08 JG Backs: Modified to add 4 new topics to the general help menu: 16* Summary of Function-Escape Keys, User Mailbox, Date Selection, and Deferred 17* Messages. These 4 were added to GEN_HELP_CHOICES. 18* 85-04-17 JG Backs: Replaced all the Message Facility commands 19* (accept_messages, defer_messages, print_messages) with calls to the new 20* xmail_im_mgr_ module which uses the new Message Facility entrypoints for 21* these functions. 22* 2) change(85-12-23,LJAdams), approve(86-03-06,MCR7358), 23* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 24* Added check of xmail_data.general_help to determine if General Help is 25* being displayed. Changed "Done with Help" option to actual menu name to 26* go to; i.e., "Executive Mail". "Help" topics are now displayed as a 27* separate screen. 28* 3) change(86-03-06,Blair), approve(86-03-06,MCR7358), 29* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 30* Turn off the flag for cleanup_signalled when we come back to the command 31* loop. If we come back from a cleanup condition, then we know that the 32* user did not type rl from multics_mode (pi also comes through the cleanup 33* handler where the bit gets set). 34* END HISTORY COMMENTS */ 35 36 37 /* BEGIN DESCRIPTION 38* 39*History: Written in June 81 by Paul Kyzivat 40* 41* 83-07-07 DJ Schimke: Removed several unreferenced dcl's and declared 42* builtin translate. 43* 44* 83-09-14 DJ Schimke: Added code to check the value of more_mode for the 45* bottom window before doing the clear_to_end_of_window call. The call to 46* clear_to_end_of_window was added for more_mode=wrap (phx11860) and should 47* not be done for fold mode. phx12565 48* 49* 83-10-06 DJ Schimke: Replaced the call to xmail_get_str_ in GEN_HELP with 50* a call to xmail_get_str_$yes_no. 51* 52* 84-09-18 JG Backs: Added uppercase constants for escape sequences in main 53* and GET_HELP_CHOICE procedures. 54* 55* 84-09-24 JG Backs: Added "-brief" control argument to print_messages 56* command so the message "You have no messages" would not print. This is to 57* make xmail compatible with the new message facility for mr11. 58* 59* 84-10-16 JG Backs: Modified GET_HELP_CHOICE proc to allow actual keystrokes 60* of function keys or escape sequences in getting help, instead of requiring 61* the user to enter the character representations. Code was lifted from 62* xforum to make xmail more compatible with xforum. 63* 64*END DESCRIPTION 65**/ 66 67 xmail_get_choice_: proc (menu, file, file_info, position, usage, display_needed, initial_help, choice, code); 68 69 accepting_messages = "1"b; 70 call MAIN; 71 return; 72 73 /* ENTRYPOINTS */ 74 75 dm: entry (menu, file, file_info, position, usage, display_needed, initial_help, choice, code); 76 77 accepting_messages = "0"b; 78 call MAIN; 79 return; 80 81 /* PARAMETERS */ 82 83 dcl menu ptr; 84 dcl file char (*); 85 dcl file_info char (*); 86 dcl position char (*); 87 dcl usage char (*); 88 dcl initial_help char (*); 89 dcl display_needed bit (1) aligned; 90 dcl choice fixed bin; 91 dcl code fixed bin (35); 92 93 94 /* AUTOMATIC */ 95 96 dcl redisplay bit (1) aligned; 97 dcl fkey bit (1) aligned; 98 dcl selected_create bit (1) aligned; 99 dcl accepting_messages bit (1) aligned; 100 dcl 1 auto_mode_value automatic like mode_value; 101 dcl mode_str char (512); 102 103 /* CONSTANTS */ 104 105 dcl COMMAND_LEVEL init (8) fixed bin static options (constant); 106 dcl COMMAND_LEVEL_C init (15) fixed bin static options (constant); 107 dcl FIRST_MENU init (2) fixed bin static options (constant); 108 dcl FIRST_MENU_C init (9) fixed bin static options (constant); 109 dcl HELP init (1) fixed bin static options (constant); 110 dcl NAME init ("xmail_get_choice_") char (17) static options (constant); 111 dcl PREV_MENU init (3) fixed bin static options (constant); 112 dcl PREV_MENU_C init (10) fixed bin static options (constant); 113 dcl QUIT init (4) fixed bin static options (constant); 114 dcl QUIT_C init (11) fixed bin static options (constant); 115 dcl REDISPLAY init (5) fixed bin static options (constant); 116 dcl REDISPLAY_C init (12) fixed bin static options (constant); 117 118 119 /* EXTERNAL STATIC */ 120 121 dcl iox_$user_io ptr ext static; 122 dcl iox_$user_output ptr ext static; 123 dcl xmail_err_$exit_now ext static fixed bin (35); 124 dcl xmail_err_$help_requested ext static fixed bin (35); 125 dcl xmail_err_$gen_help_req ext static fixed bin (35); 126 127 /* ENTRIES */ 128 129 dcl continue_to_signal_ entry (fixed bin (35)); 130 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 131 dcl iox_$modes entry (ptr, char (*), char (*), fixed bin (35)); 132 dcl mode_string_$get_mode entry (char (*), char (*), ptr, fixed bin (35)); 133 dcl xmail_display_help_ entry (char (*), char (*), fixed bin (35)); 134 dcl xmail_im_mgr_$accept_messages entry (); 135 dcl xmail_im_mgr_$defer_messages entry (); 136 dcl xmail_redisplay_$all entry (); 137 dcl xmail_multics_mode_ entry (); 138 dcl xmail_error_$code_last entry options (variable); 139 dcl xmail_sw_$update_file entry (char (*)); 140 dcl xmail_sw_$update_file_info entry (char (*)); 141 dcl xmail_sw_$update_position entry (char (*)); 142 dcl xmail_sw_$update_usage entry (char (*)); 143 dcl xmail_sw_$redisplay entry(); 144 dcl xmail_redisplay_$menu entry options(variable); 145 146 /* BUILTINS */ 147 148 dcl (addr, null) builtin; 149 150 /* CONDITIONS */ 151 152 dcl (cleanup, xmail_leave_menu, quit) condition; 153 154 /* INCLUDE FILES */ 155 1 1 /* BEGIN INCLUDE FILE ... function_key_data.incl.pl1 1 2* 1 3* This include file defines the structure used for ttt_info_$function_key_data 1 4* MCR 4671 James R. Davis Sept 80 1 5**/ 1 6 1 7 dcl 1 function_key_data aligned based (function_key_data_ptr), 1 8 2 version fixed bin, 1 9 2 highest fixed bin, /* highest fkey */ 1 10 2 sequence, /* string of all seqs. */ 1 11 3 seq_ptr pointer, 1 12 3 seq_len fixed bin (21), 1 13 2 cursor_motion_keys, 1 14 3 home (0:3) like key_info, 1 15 3 left (0:3) like key_info, 1 16 3 up (0:3) like key_info, 1 17 3 right (0:3) like key_info, 1 18 3 down (0:3) like key_info, 1 19 2 function_keys (0:function_key_data_highest refer 1 20 (function_key_data.highest), 0:3) like key_info; 1 21 1 22 dcl (KEY_PLAIN init (0), 1 23 KEY_SHIFT init (1), 1 24 KEY_CTRL init (2), 1 25 KEY_CTRL_AND_SHIFT init (3) 1 26 ) fixed bin internal static options (constant); 1 27 1 28 dcl 1 key_info unaligned based (key_info_ptr), 1 29 2 sequence_index fixed bin (12) unsigned unaligned, 1 30 2 sequence_length fixed bin (6) unsigned unaligned; /* 0 -> not exist */ 1 31 1 32 dcl function_key_seqs char (function_key_data.sequence.seq_len) 1 33 based (function_key_data.sequence.seq_ptr); 1 34 dcl function_key_data_ptr ptr; 1 35 dcl function_key_data_highest fixed bin; 1 36 dcl function_key_data_version_1 1 37 fixed bin internal static options (constant) init (1); 1 38 dcl key_info_ptr ptr; 1 39 1 40 1 41 /* END INCLUDE FILE ... function_key_data.incl.pl1 */ 156 157 2 1 /* BEGIN INCLUDE FILE: xmail_data.incl.pl1 */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(85-12-20,Blair), approve(86-03-06,MCR7358), 2 6* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 2 7* Modified 03/15/85 by Joanne Backs adding confirm_print flag. 2 8* 2) change(85-12-20,LJAdams), approve(86-03-06,MCR7358), 2 9* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 2 10* Adding switch to indicate request for menu display came from general help. 2 11* This is so general help menu will be displayed in top screen. 2 12* 3) change(86-01-10,Blair), approve(86-03-06,MCR7358), 2 13* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 2 14* Add switch to indicate whether or not it is permissible to process mail 2 15* in other users' mailboxes (foreign_mailbox). 2 16* 4) change(86-01-13,Blair), approve(86-03-06,MCR7358), 2 17* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 2 18* Add bit to indicate whether or not this is a true cleanup condition. 2 19* 5) change(86-02-06,Blair), approve(86-03-06,MCR7358), 2 20* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 2 21* Rearrange to group all the bit flags together in one word with a pad. 2 22* 6) change(86-03-05,Blair), approve(86-03-05,MCR7358), 2 23* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 2 24* Change value_seg ptr to value_seg_pathname to avoid the situation where 2 25* you keep around a pointer to a structure which no longer exists. 2 26* 7) change(87-01-16,Blair), approve(87-02-05,MCR7618), 2 27* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 2 28* Add a field to indicate whether or not we should process interactive msgs. 2 29* Increment version to 4.1 so default value will get set. 2 30* 8) change(87-02-13,Blair), approve(87-02-13,MCR7618), 2 31* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 2 32* Add a field to indicate whether or not we're processing a reply so that we 2 33* will be able to rebuild the screens properly after a disconnect occurs. 2 34* Error_list #114. 2 35* 9) change(88-07-26,Blair), approve(88-07-26,MCR7959), 2 36* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 2 37* Add a bit to indicate whether or not the error segment had to be created 2 38* in the pdir (because we didn't have sma access to the mlsys_dir). 2 39* END HISTORY COMMENTS */ 2 40 2 41 2 42 /* Written 5/13/81 by Paul H. Kyzivat */ 2 43 /* Modified 12/16/81 by S. Krupp to delete unused parts of structure 2 44* and to add n_fkeys_used */ 2 45 /* Modified 12/14/82 by Dave Schimke to make the xmail version a 10 character 2 46* varying string. */ 2 47 /* Modified 09/12/83 by Dave Schimke adding interactive_msgs flag */ 2 48 /* Modified 09/14/83 by Dave Schimke adding moved_user_io */ 2 49 /* Modified 09/06/84 by Joanne Backs adding lists_as_menus flag */ 2 50 /* Modified 09/21/84 by Joanne Backs adding remove_menus flag */ 2 51 2 52 dcl xmail_data_ptr external static ptr init (null); 2 53 2 54 dcl 1 xmail_data aligned based (xmail_data_ptr), 2 55 2 mail_dir char (168) varying, 2 56 2 first_label label, 2 57 2 quit_label label, 2 58 2 value_seg_pathname char (168) varying, 2 59 2 moved_user_io ptr, 2 60 2 normal_usage char (80) unal, 2 61 2 function_key_info, 2 62 3 function_key_data_ptr ptr, 2 63 3 n_fkeys_used fixed bin, 2 64 2 actee, 2 65 3 person char(32) varying, 2 66 3 project char(32) varying, 2 67 2 flags aligned, 2 68 3 mail_in_incoming bit (1) unal, 2 69 3 lists_as_menus bit (1) unal, /* personalization */ 2 70 3 remove_menus bit (1) unal, /* personalization */ 2 71 3 confirm_print bit (1) unal, /* personalization */ 2 72 3 multics_mode bit (1) unal, /* personalization */ 2 73 3 interactive_msgs bit (1) unal, /* personalization */ 2 74 3 foreign_mailbox bit (1) unal, /* read others' mailboxes */ 2 75 3 general_help bit (1) unal, /* indicated requesting gen help*/ 2 76 3 cleanup_signalled bit (1) unal, /* on when true cleanup condition */ 2 77 3 msgs_as_mail bit (1) unal, /* on for include_msgs */ 2 78 3 reply_request bit (1) unal, /* on if we're doing a reply */ 2 79 3 error_seg_in_pdir bit (1) unal, /* on if the error_seg is in the pdir */ 2 80 3 pad bit (24) unal; 2 81 2 82 2 83 2 84 dcl xmail_version char(10) var static options(constant) init("4.1"); 2 85 2 86 /* END INCLUDE FILE: xmail_data.incl.pl1 */ 158 159 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 */ 160 161 5 1 /* BEGIN INCLUDE FILE menu_dcls.incl.pl1 5 2* declarations for the menu_ subroutines MTB 493 5 3* James R. Davis 26 Jan 81 to 20 Februrary 81 5 4**/ 5 5 5 6 /* format: off */ 5 7 5 8 dcl menu_$create entry ( 5 9 (*) char (*) varying, /* input: choices */ 5 10 (*) char (*) varying, /* input: headers */ 5 11 (*) char (*) varying, /* input: trailers */ 5 12 pointer, /* input: to format info */ 5 13 (*) char (1) unal, /* input: keys to use */ 5 14 pointer, /* input: to area */ 5 15 pointer, /* input: to needs str. */ 5 16 pointer, /* to menu: output */ 5 17 fixed bin (35) /* code */ 5 18 ); 5 19 5 20 dcl menu_$display entry ( 5 21 pointer, /* window */ 5 22 pointer, /* menu */ 5 23 fixed bin (35) /* code */ 5 24 ); 5 25 5 26 dcl menu_$get_choice entry ( 5 27 pointer, /* window */ 5 28 pointer, /* menu */ 5 29 pointer, /* to function key info */ 5 30 bit (1) aligned, /* function key hi: output */ 5 31 fixed bin, /* output: selection number */ 5 32 fixed bin (35) /* output: code */ 5 33 ); 5 34 5 35 dcl menu_$describe entry ( 5 36 pointer, /* menu */ 5 37 pointer, /* needs */ 5 38 fixed bin (35) /* code */ 5 39 ); 5 40 5 41 dcl menu_$destroy entry ( 5 42 pointer, /* menu */ 5 43 fixed bin (35) /* code */ 5 44 ); 5 45 5 46 dcl menu_$store entry ( 5 47 character (*), 5 48 character (*), 5 49 character (*), 5 50 bit (1) aligned, 5 51 pointer, 5 52 fixed bin (35)); 5 53 5 54 dcl menu_$retrieve entry ( 5 55 character (*), 5 56 character (*), 5 57 character (*), 5 58 pointer, 5 59 pointer, 5 60 fixed bin (35)); 5 61 dcl menu_$delete entry ( 5 62 character (*), 5 63 character (*), 5 64 character (*), 5 65 fixed binary (35)); 5 66 5 67 dcl menu_$list entry ( 5 68 character (*), 5 69 character (*), 5 70 character (*), 5 71 pointer, 5 72 fixed bin, 5 73 pointer, 5 74 fixed bin (35)); 5 75 5 76 dcl 1 menu_format aligned based (menu_format_ptr), 5 77 2 version fixed bin, 5 78 2 constraints, 5 79 3 max_width fixed bin, 5 80 3 max_height fixed bin, 5 81 2 n_columns fixed bin, 5 82 2 flags, 5 83 3 center_headers bit (1) unal, 5 84 3 center_trailers bit (1) unal, 5 85 3 pad bit (34) unal, 5 86 2 pad_char char (1); 5 87 5 88 dcl 1 menu_requirements aligned based (menu_requirements_ptr), 5 89 2 version fixed bin, 5 90 2 lines_needed fixed bin, 5 91 2 width_needed fixed bin, 5 92 2 n_options fixed bin; 5 93 5 94 dcl menu_format_ptr pointer; 5 95 dcl menu_requirements_ptr pointer; 5 96 5 97 dcl (menu_format_version_1, menu_requirements_version_1) 5 98 fixed bin internal static init (1) options (constant); 5 99 5 100 dcl MENU_OPTION_KEYS (35) char (1) unal internal static 5 101 options (constant) init 5 102 ("1", "2", "3", "4", "5", "6", "7", "8", "9", 5 103 "A", "B", "C", "D", "E", "F", "G", "H", "I", 5 104 "J", "K", "L", "M", "N", "O", "P", "Q", "R", 5 105 "S", "T", "U", "V", "W", "X", "Y", "Z"); 5 106 5 107 /* END INCLUDE FILE ... menu_dcls.incl.pl1 */ 162 163 6 1 /* begin include fine window_dcls.incl.pl1 BIM June 1981 */ 6 2 /* Modified 9 October 1983 by Jon A. Rochlis to add window_$edit_line. */ 6 3 6 4 /* format: style3 */ 6 5 6 6 declare window_$bell entry (pointer, fixed binary (35)); 6 7 declare window_$clear_region 6 8 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary, fixed binary (35)); 6 9 declare window_$clear_to_end_of_line 6 10 entry (pointer, fixed binary (35)); 6 11 declare window_$clear_to_end_of_window 6 12 entry (pointer, fixed binary (35)); 6 13 declare window_$clear_window 6 14 entry (pointer, fixed binary (35)); 6 15 declare window_$delete_chars 6 16 entry (pointer, fixed binary, fixed binary (35)); 6 17 declare window_$get_cursor_position 6 18 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 6 19 6 20 /* Call window_$get_echoed_chars (iocb_ptr, n_to_read, read_buffer, n_read, read_break, code); */ 6 21 6 22 declare window_$get_echoed_chars 6 23 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 6 24 fixed binary (35)); 6 25 declare window_$get_unechoed_chars 6 26 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 6 27 fixed binary (35)); 6 28 declare window_$insert_text entry (pointer, character (*), fixed binary (35)); 6 29 declare window_$overwrite_text 6 30 entry (pointer, character (*), fixed binary (35)); 6 31 declare window_$position_cursor 6 32 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 6 33 6 34 /* Call window_$position_cursor_rel (iocb_ptr, delta_line, delta_column, code); */ 6 35 6 36 declare window_$position_cursor_rel 6 37 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 6 38 6 39 /* Call window_$scroll_region (iocb_ptr, first_line_of_region, n_lines_of_region, distance_to_scroll_region_negative_is_up, 6 40* code); */ 6 41 6 42 declare window_$scroll_region 6 43 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary (35)); 6 44 declare window_$sync entry (pointer, fixed binary (35)); 6 45 6 46 /* Call window_$write_raw_text (iocb_ptr, text_string, code); */ 6 47 6 48 declare window_$write_raw_text 6 49 entry (pointer, character (*), fixed binary (35)); 6 50 6 51 /* Call window_$write_sync_read (iocb_ptr, prompt_string, n_to_read, read_buffer, n_read, break_char, code); */ 6 52 6 53 declare window_$write_sync_read 6 54 entry (pointer, character (*), fixed bin (21), character (*), fixed binary (21), 6 55 character (1) var, fixed binary (35)); 6 56 6 57 /* Call window_$change_line (iocb_ptr, new_line, code); */ 6 58 6 59 declare window_$change_line entry (pointer, fixed binary, fixed binary (35)); 6 60 6 61 /* Call window_$change_column (iocb_ptr, new_column, code); */ 6 62 6 63 declare window_$change_column 6 64 entry (pointer, fixed binary, fixed binary (35)); 6 65 6 66 /* Call window_$get_one_unechoed (iocb_ptr, char_or_len_0, block_flag, code); */ 6 67 declare ( 6 68 window_$get_one_unechoed, 6 69 window_$get_one_unechoed_char 6 70 ) entry (pointer, character (1) var, bit (1) aligned, fixed binary (35)); 6 71 6 72 declare window_$create entry (pointer, pointer, pointer, fixed binary (35)); 6 73 6 74 declare window_$destroy entry (pointer, fixed binary (35)); 6 75 6 76 declare window_$edit_line entry (pointer, pointer, pointer, fixed bin(21), fixed bin(21), fixed bin(35)); 6 77 6 78 /* call window_$edit_line (iocb_ptr, window_edit_line_info_ptr, buffer_ptr, 6 79* buffer_len, n_returned, code); */ 6 80 6 81 6 82 /* end include file window_dcls.incl.pl1 */ 164 165 7 1 /* BEGIN INCLUDE FILE xmail_help_infos.incl.pl1 */ 7 2 7 3 /****^ HISTORY COMMENTS: 7 4* 1) change(85-03-06,Backs), approve(86-03-06,MCR7358), 7 5* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 7 6* Modified to add date info. 7 7* END HISTORY COMMENTS */ 7 8 7 9 /* Created 06/18/81 by Suzanne Krupp */ 7 10 7 11 /* Help files and info entry points. */ 7 12 7 13 dcl (PROMPT_REPLIES_HELP char(28) init("xmail_prompt_replies.gi.info"), 7 14 GENERAL_HELP_HELP char(26) init("xmail_general_help.gi.info"), 7 15 GETTING_STARTED_HELP char(29) init("xmail_getting_started.gi.info"), 7 16 INITIAL_HELP char(26) init("xmail_initial_help.gi.info"), 7 17 MULTICS_MODE_HELP char(27) init("xmail_multics_mode_.gi.info"), 7 18 REVIEW_DEFAULTS_HELP char(29) init("xmail_Review_Defaults.gi.info")) 7 19 int static options(constant); 7 20 7 21 dcl (CREATE_MFILE_INFO char(19) init("creating_mail_files"), /* Prompt Infos */ 7 22 DEL_MSG_SELECT_INFO char(23) init("which_discarded_message"), 7 23 SEARCH_STR_INFO char(14) init("search_string"), 7 24 MSG_SELECT_INFO char(14) init("which_message"), 7 25 USE_SPEC_SET_INFO char(12) init("use_spec_set"), 7 26 GETTING_HELP_INFO char(12) init("getting_help"), 7 27 DATE_INFO char(14) init("date_selection"), 7 28 MORE_HELP_INFO char(9) init("more_help")) 7 29 int static options(constant); 7 30 7 31 /* END INCLUDE FILE ... xmail_help_infos.incl.pl1 */ 166 167 8 1 /* BEGIN INCLUDE FILE xmail_responses.incl.pl1 */ 8 2 8 3 /****^ HISTORY COMMENTS: 8 4* 1) change(86-02-07,Blair), approve(86-03-06,MCR7358), 8 5* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 8 6* 85-03-05 JG Backs: Modified to add a response of date. 8 7* 85-03-11 JG Backs: Modified to add short forms of keywords (a,l,p,f). 8 8* 85-03-14 JG Backs: Modified to add ASK, SET, and S. 8 9* 2) change(86-02-07,Blair), approve(86-03-06,MCR7358), 8 10* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 8 11* Modify to add SEEN and UNSEEN. 8 12* END HISTORY COMMENTS */ 8 13 8 14 /* Created 06/17/81 by Suzanne Krupp */ 8 15 8 16 dcl (QUESTION char(1) init("?"), 8 17 LIST char(2) init("??"), 8 18 A char(1) init("a"), 8 19 ALL char(3) init("all"), 8 20 ASK char(3) init("ask"), 8 21 DATE char(4) init("date"), 8 22 F char(1) init("f"), 8 23 FIRST char(5) init("first"), 8 24 L char(1) init("l"), 8 25 LAST char(4) init("last"), 8 26 N char (1) init ("n"), 8 27 NO char(2) init("no"), 8 28 NEXT char(4) init("next"), 8 29 NEW char(3) init("new"), 8 30 P char(1) init("p"), 8 31 PREV char(4) init("prev"), 8 32 S char(1) init("s"), 8 33 SEEN char (4) init("seen"), 8 34 SET char(3) init("set"), 8 35 SEARCH char(6) init("search"), 8 36 UNSEEN char (6) init("unseen"), 8 37 Y char (1) init ("y"), 8 38 YES char(3) init("yes")) 8 39 int static options(constant); 8 40 8 41 /* END INCLUDE FILE ... xmail_responses.incl.pl1 */ 168 169 9 1 /* BEGIN INCLUDE FILE mode_string_info.incl.pl1 */ 9 2 9 3 /* Structure for parse_mode_string_ JRDavis 20 October 1980 9 4* Last modified 12 January 1981 by J. Spencer Love for version 2, make char_value varying string */ 9 5 9 6 declare mode_value_ptr ptr, 9 7 number_of_modes fixed bin; 9 8 9 9 declare 1 mode_string_info aligned based (mode_string_info_ptr), 9 10 2 version fixed bin, 9 11 2 number fixed bin, 9 12 2 modes (number_of_modes refer (mode_string_info.number)) like mode_value; 9 13 9 14 declare mode_string_info_ptr ptr; 9 15 9 16 declare 1 mode_value aligned based (mode_value_ptr), 9 17 2 version fixed bin, 9 18 2 mode_name char (32) unaligned, 9 19 2 flags, 9 20 3 boolean_valuep bit (1) unaligned, 9 21 3 numeric_valuep bit (1) unaligned, 9 22 3 char_valuep bit (1) unaligned, 9 23 3 boolean_value bit (1) unaligned, 9 24 3 pad1 bit (32) unaligned, 9 25 2 numeric_value fixed bin (35), 9 26 2 char_value char (32) varying, 9 27 2 code fixed bin (35), 9 28 2 pad2 bit (36); 9 29 9 30 declare mode_string_info_version_2 fixed bin static options (constant) initial (2), 9 31 mode_value_version_3 fixed bin static options (constant) initial (3); 9 32 9 33 /* END INCLUDE FILE mode_string_info.incl.pl1 */ 170 171 172 /* BEGIN */ 173 174 MAIN: proc; 175 176 on condition (cleanup) begin; 177 if accepting_messages & xmail_data.interactive_msgs 178 then call xmail_im_mgr_$defer_messages; 179 xmail_data.general_help = "0"b; 180 end; 181 182 code = 0; 183 redisplay = display_needed; 184 185 call xmail_sw_$update_file (file); 186 call xmail_sw_$update_file_info (file_info); 187 call xmail_sw_$update_position (position); 188 call xmail_sw_$update_usage (usage); 189 call xmail_sw_$redisplay (); 190 191 do while (code = 0); 192 if redisplay then call DISPLAY (code); 193 if code ^= 0 then go to ERROR; 194 xmail_data.cleanup_signalled = "0"b; /* in case we came back from cleanup */ 195 redisplay = "0"b; 196 197 if accepting_messages & xmail_data.interactive_msgs 198 then call xmail_im_mgr_$accept_messages; 199 200 call iox_$modes (xmail_windows.bottom.iocb, "", mode_str, code); 201 if code ^= 0 then go to ERROR; 202 auto_mode_value.version = mode_value_version_3; 203 call mode_string_$get_mode (mode_str, "more_mode", addr (auto_mode_value), code); 204 if code ^= 0 then go to ERROR; 205 if auto_mode_value.char_value ^= "fold" then 206 call window_$clear_to_end_of_window (xmail_windows.bottom.iocb, (0)); 207 208 call menu_$get_choice ( 209 xmail_windows.menu.iocb, 210 menu, 211 xmail_data.function_key_data_ptr, 212 fkey, 213 choice, 214 code); 215 if code ^= 0 then go to ERROR; 216 217 if accepting_messages & xmail_data.interactive_msgs 218 then call xmail_im_mgr_$defer_messages; 219 220 /*** user must have read bottom window by now ***/ 221 call iox_$control (iox_$user_io, "reset_more", null, (0)); 222 223 if ^fkey 224 then go to EXIT; 225 226 if choice = HELP 227 then do; 228 call GET_HELP; 229 call xmail_sw_$update_usage (usage); 230 call xmail_sw_$redisplay(); 231 end; 232 else if choice = PREV_MENU | choice = PREV_MENU_C 233 then do; 234 call window_$clear_window (iox_$user_output, (0)); 235 code = xmail_err_$exit_now; 236 end; 237 else if choice = FIRST_MENU | choice = FIRST_MENU_C 238 then do; 239 call window_$clear_window (iox_$user_output, (0)); 240 signal xmail_leave_menu; 241 goto xmail_data.first_label; 242 end; 243 else if choice = QUIT | choice = QUIT_C 244 then do; 245 call window_$clear_window (iox_$user_output, (0)); 246 signal xmail_leave_menu; 247 goto xmail_data.quit_label; 248 end; 249 else if choice = REDISPLAY | choice = REDISPLAY_C 250 then call xmail_redisplay_$all (); 251 else if (choice = COMMAND_LEVEL) & (xmail_data.multics_mode) 252 then call xmail_multics_mode_; 253 else if (choice = COMMAND_LEVEL_C) & (xmail_data.multics_mode) 254 then call xmail_multics_mode_; 255 else call window_$bell (xmail_windows.menu.iocb, (0)); 256 end; 257 go to EXIT; 258 259 ERROR: call xmail_error_$code_last (code, NAME, "s", 260 "A program error has occurred for which no " || 261 "automatic correction is known."); 262 263 EXIT: return; 264 end MAIN; 265 266 /* INTERNAL PROCEDURES */ 267 268 GET_HELP: proc; 269 270 dcl FUNCTION_KEY_INFO init ("xmail_function_keys.gi") char (22) 271 static options (constant); 272 273 dcl info_name char (2); 274 275 dcl xmail_display_help_ entry (char (*), char (*), fixed bin (35)), 276 xmail_error_$code_first entry () options (variable), 277 ioa_$rsnnl entry () options (variable); 278 279 280 call GET_HELP_CHOICE (fkey, choice, code); 281 if code = xmail_err_$gen_help_req 282 then do; 283 code = 0; 284 call GEN_HELP (); 285 end; 286 else if code ^= 0 then go to GH_EXIT; 287 else do; 288 289 call window_$clear_window (iox_$user_output, (0)); 290 291 if fkey then do; 292 call ioa_$rsnnl ("F^d", info_name, (0), choice); 293 call xmail_display_help_ (FUNCTION_KEY_INFO, info_name, code); 294 if code ^= 0 295 then call xmail_error_$code_first (code, NAME, "l", "Function Key ^d", choice); 296 code = 0; 297 end; 298 else code = xmail_err_$help_requested; 299 end; 300 GH_EXIT: 301 xmail_data.general_help = "0"b; 302 return; 303 304 end GET_HELP; 305 306 GET_HELP_CHOICE: proc (ghc_fkey, ghc_choice, ghc_code); 307 308 /* PARAMETERS */ 309 310 dcl ghc_code fixed bin (35); /* output */ 311 dcl ghc_choice fixed bin; /* output */ 312 dcl ghc_fkey bit (1) aligned; /* output */ 313 314 /* AUTOMATIC */ 315 316 dcl ghc_highest fixed bin; 317 dcl ghc_prompt char (256) var; 318 dcl ghc_special_fkey_data_ptr ptr; 319 dcl ghc_special_fkey_data_sequence_seq_len fixed bin; 320 dcl ghc_special_fkey_seqs_ptr ptr; 321 322 /* BUILTINS */ 323 324 dcl (index) builtin; 325 326 /* EXTERNAL STATIC */ 327 328 dcl xmail_err_$invalid_response ext static fixed bin (35); 329 330 /* ENTRIES */ 331 332 dcl ioa_ entry () options (variable); 333 dcl ioa_$rsnnl entry () options (variable); 334 335 /* BASED */ 336 337 dcl ghc_special_fkey_seqs char (ghc_special_fkey_data_sequence_seq_len) based (ghc_special_fkey_seqs_ptr); 338 339 /* BEGIN GET_HELP_CHOICE */ 340 341 ghc_code = 0; 342 ghc_special_fkey_data_ptr = null (); 343 ghc_special_fkey_seqs_ptr = null (); 344 function_key_data_ptr = xmail_data.function_key_data_ptr; 345 346 on condition (cleanup) call CLEANUP; 347 348 on condition (quit) 349 begin; 350 call CLEANUP; 351 call continue_to_signal_ ((0)); 352 end; 353 354 call window_$clear_window (iox_$user_output, (0)); 355 356 call ioa_$rsnnl ("Press the option or " 357 || "^[function key ^;" 358 || "escape sequence ^] " 359 || "for which you want help ^/ (or ?? for a menu of general help topics):", 360 ghc_prompt, (0), (index (xmail_data.normal_usage, "ESC") = 0)); 361 362 call ioa_ (ghc_prompt); 363 364 function_key_data_highest = function_key_data_ptr -> function_key_data.highest + 1; 365 ghc_highest = function_key_data_highest; 366 367 allocate function_key_data set (ghc_special_fkey_data_ptr); 368 369 ghc_special_fkey_data_ptr -> function_key_data.highest = ghc_highest - 1; 370 ghc_special_fkey_data_ptr -> function_key_data = function_key_data_ptr -> function_key_data; 371 ghc_special_fkey_data_ptr -> function_key_data.highest = ghc_highest; 372 373 ghc_special_fkey_data_ptr -> function_key_data.sequence.seq_len = ghc_special_fkey_data_ptr -> function_key_data.sequence.seq_len + 2; 374 ghc_special_fkey_data_sequence_seq_len = ghc_special_fkey_data_ptr -> function_key_data.sequence.seq_len; 375 376 allocate ghc_special_fkey_seqs; 377 378 ghc_special_fkey_seqs = function_key_seqs || "??"; 379 ghc_special_fkey_data_ptr -> function_key_data.function_keys (ghc_highest, KEY_PLAIN).sequence_index = ghc_special_fkey_data_sequence_seq_len - 1; 380 ghc_special_fkey_data_ptr -> function_key_data.function_keys.sequence_length = 2; 381 ghc_special_fkey_data_ptr -> function_key_data.sequence.seq_ptr = ghc_special_fkey_seqs_ptr; 382 383 call menu_$get_choice ( 384 xmail_windows.menu.iocb, 385 menu, 386 ghc_special_fkey_data_ptr, 387 ghc_fkey, 388 ghc_choice, 389 ghc_code); 390 391 if ghc_code ^= 0 /* error */ 392 then go to GHC_EXIT; 393 394 if ^ghc_fkey /* option number */ 395 then go to GHC_EXIT; 396 397 if ghc_choice = ghc_highest /* ?? answer */ 398 then do; 399 ghc_code = xmail_err_$gen_help_req; 400 go to GHC_EXIT; 401 end; 402 403 else if ghc_choice < 9 /* first 8 choices ok */ 404 then go to GHC_EXIT; 405 406 if index (xmail_data.normal_usage, "ESC") = 0 407 408 then do; /* function key > 8 */ 409 call ioa_ ("Function key F^d has no function within Executive Mail", ghc_choice); 410 ghc_code = xmail_err_$invalid_response; 411 go to GHC_EXIT; 412 end; 413 414 /* Now check for escape sequences with capital letters and switch */ 415 416 else 417 if ghc_choice = 9 418 then ghc_choice = 2; 419 else 420 if ghc_choice = 10 421 then ghc_choice = 3; 422 else 423 if ghc_choice = 11 424 then ghc_choice = 4; 425 else 426 if ghc_choice = 12 427 then ghc_choice = 5; 428 else 429 if ghc_choice = 13 430 then ghc_choice = 6; 431 else 432 if ghc_choice = 14 433 then ghc_choice = 7; 434 else 435 if ghc_choice = 15 436 then ghc_choice = 8; 437 438 else do; 439 call ioa_ ("Escape sequence has no function within Executive Mail", ghc_choice); 440 ghc_code = xmail_err_$invalid_response; 441 end; 442 443 GHC_EXIT: 444 call CLEANUP; 445 return; 446 447 CLEANUP: proc (); 448 449 if ghc_special_fkey_data_ptr ^= null () 450 then free ghc_special_fkey_data_ptr -> function_key_data.sequence.seq_ptr -> ghc_special_fkey_seqs; 451 452 if ghc_special_fkey_seqs_ptr ^= null () 453 then free ghc_special_fkey_data_ptr -> function_key_data; 454 455 end CLEANUP; 456 457 end GET_HELP_CHOICE; 458 459 GEN_HELP: proc (); 460 461 dcl GEN_HELP_CHOICES dim (1:20) char (31) int static options (constant)init 462 ("Exiting Executive Mail", 463 "Function Keys", 464 "Summary of Function-Escape Keys", 465 "Help With a Prompt", 466 "Editing Mail", 467 "Summary of Editor Requests", 468 "Retrieving Erased Text", 469 "Right Margins", 470 "BREAK Key", 471 "Mail Files", 472 "User Mailbox", 473 "Current Messages", 474 "Selecting Messages", 475 "Keywords", 476 "Specifying Ranges", 477 "Searching Messages", 478 "Date Selection", 479 "Scrolling", 480 "User Names", 481 "Deferred Messages") aligned var; 482 483 dcl choice fixed bin; 484 dcl code fixed bin (35); 485 dcl gen_help_menup ptr init (null) int static; 486 dcl yes_sw bit (1) aligned; 487 488 dcl get_system_free_area_ entry () returns (ptr); 489 dcl xmail_dyn_menu_$create_w_trailer entry ((*) char (*) aligned, char (*), ptr, ptr, ptr, fixed bin (35)); 490 dcl xmail_error_$no_code entry () options (variable); 491 dcl xmail_error_$no_print entry () options (variable); 492 dcl xmail_display_help_ entry (char (*), char (*), fixed bin (35)); 493 dcl xmail_get_dyn_choice_$trailer entry (ptr, fixed bin, bit (1) aligned, fixed bin (35)); 494 dcl xmail_get_str_$yes_no entry (char (*) var, bit (1) aligned); 495 dcl xmail_window_manager_$reconnect 496 entry options(variable); 497 dcl xmail_window_manager_$suppress_menu 498 entry options(variable); 499 dcl xmail_window_manager_$restore_menu 500 entry options(variable); 501 502 dcl (null, translate) builtin; 503 504 on condition (quit) 505 begin; 506 call xmail_window_manager_$reconnect; 507 goto GEN_HELP_EXIT; 508 end; 509 510 xmail_data.general_help = "1"b; 511 512 if gen_help_menup = null 513 then do; 514 call xmail_dyn_menu_$create_w_trailer ((GEN_HELP_CHOICES), "", gen_help_menup, null, get_system_free_area_ (), code); 515 if code ^= 0 516 then call xmail_error_$no_code (code, NAME, "q", "Unable to create general help menu. This is an internal programming error."); 517 end; 518 519 do while ("1"b); 520 call xmail_window_manager_$suppress_menu (); 521 call xmail_get_dyn_choice_$trailer (gen_help_menup, choice, selected_create, code); 522 if selected_create then 523 go to GEN_HELP_EXIT; 524 if code ^= 0 525 then call xmail_error_$no_code (code, NAME, "q", "Unable to get general help choice. This is an internal programming error."); 526 call xmail_display_help_ (GENERAL_HELP_HELP, translate (GEN_HELP_CHOICES (choice), "_", " "), code); 527 if code ^= 0 528 then call xmail_error_$no_print (code, NAME, "l", "Unable to get help. This is an internal programming error."); 529 call xmail_get_str_$yes_no ("More help?", yes_sw); 530 if ^yes_sw then go to GEN_HELP_EXIT; 531 end; 532 533 GEN_HELP_EXIT: 534 call xmail_window_manager_$restore_menu (); 535 call xmail_redisplay_$menu (); 536 return; 537 end GEN_HELP; 538 539 DISPLAY: proc (code); 540 541 dcl 1 actual_menu_rqmts aligned like menu_requirements; 542 543 dcl xmail_err_$insuff_room_for_window ext static fixed bin (35); 544 545 dcl xmail_window_manager_$set_menu_window_size entry (fixed bin, fixed bin (35)); 546 dcl xmail_window_manager_$set_sw_size entry (fixed bin, fixed bin (35)); 547 dcl xmail_redisplay_$status_window entry (); 548 dcl xmail_redisplay_$menu entry (); 549 550 dcl (addr) builtin; 551 dcl code fixed bin (35); 552 553 actual_menu_rqmts.version = menu_requirements_version_1; 554 call menu_$describe (menu, addr (actual_menu_rqmts), code); 555 if code ^= 0 then goto DISPLAY_EXIT; 556 557 if actual_menu_rqmts.width_needed > xmail_windows.menu.width 558 then code = xmail_err_$insuff_room_for_window; 559 else do; 560 if position = "" 561 then call xmail_window_manager_$set_sw_size (1, code); 562 else call xmail_window_manager_$set_sw_size (2, code); 563 if code = 0 564 then do; 565 call xmail_redisplay_$status_window (); 566 call xmail_window_manager_$set_menu_window_size 567 (actual_menu_rqmts.lines_needed, code); 568 end; 569 if code = 0 570 then do; 571 call xmail_redisplay_$menu (); 572 if initial_help ^= "" 573 then do; 574 call window_$clear_window (iox_$user_output, (0)); 575 call xmail_display_help_ (initial_help, "", (0)); 576 end; 577 end; 578 end; 579 DISPLAY_EXIT: 580 return; 581 582 end DISPLAY; 583 584 end xmail_get_choice_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/02/88 0745.0 xmail_get_choice_.pl1 >spec>install>MR12.2-1098>xmail_get_choice_.pl1 156 1 02/23/81 2146.3 function_key_data.incl.pl1 >ldd>include>function_key_data.incl.pl1 158 2 09/02/88 0743.4 xmail_data.incl.pl1 >spec>install>MR12.2-1098>xmail_data.incl.pl1 160 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 162 5 03/27/82 0429.3 menu_dcls.incl.pl1 >ldd>include>menu_dcls.incl.pl1 164 6 09/12/84 0916.7 window_dcls.incl.pl1 >ldd>include>window_dcls.incl.pl1 166 7 05/28/86 1117.7 xmail_help_infos.incl.pl1 >ldd>include>xmail_help_infos.incl.pl1 168 8 05/28/86 1117.7 xmail_responses.incl.pl1 >ldd>include>xmail_responses.incl.pl1 170 9 03/19/81 1206.8 mode_string_info.incl.pl1 >ldd>include>mode_string_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. COMMAND_LEVEL constant fixed bin(17,0) initial dcl 105 ref 251 COMMAND_LEVEL_C constant fixed bin(17,0) initial dcl 106 ref 253 FIRST_MENU constant fixed bin(17,0) initial dcl 107 ref 237 FIRST_MENU_C constant fixed bin(17,0) initial dcl 108 ref 237 FUNCTION_KEY_INFO 000264 constant char(22) initial packed unaligned dcl 270 set ref 293* GENERAL_HELP_HELP 000272 constant char(26) initial packed unaligned dcl 7-13 set ref 526* GEN_HELP_CHOICES 000000 constant varying char(31) initial array dcl 461 ref 514 526 526 HELP constant fixed bin(17,0) initial dcl 109 ref 226 KEY_PLAIN constant fixed bin(17,0) initial dcl 1-22 ref 379 NAME 000301 constant char(17) initial packed unaligned dcl 110 set ref 259* 294* 515* 524* 527* PREV_MENU constant fixed bin(17,0) initial dcl 111 ref 232 PREV_MENU_C constant fixed bin(17,0) initial dcl 112 ref 232 QUIT constant fixed bin(17,0) initial dcl 113 ref 243 QUIT_C constant fixed bin(17,0) initial dcl 114 ref 243 REDISPLAY constant fixed bin(17,0) initial dcl 115 ref 249 REDISPLAY_C constant fixed bin(17,0) initial dcl 116 ref 249 accepting_messages 000103 automatic bit(1) dcl 99 set ref 69* 77* 177 197 217 actual_menu_rqmts 000132 automatic structure level 1 dcl 541 set ref 554 554 addr builtin function dcl 148 in procedure "xmail_get_choice_" ref 203 203 addr builtin function dcl 550 in procedure "DISPLAY" ref 554 554 auto_mode_value 000104 automatic structure level 1 unaligned dcl 100 set ref 203 203 bottom 32 000066 external static structure level 2 dcl 3-5 char_value 13 000104 automatic varying char(32) level 2 dcl 100 set ref 205 choice 000100 automatic fixed bin(17,0) dcl 483 in procedure "GEN_HELP" set ref 521* 526 526 choice parameter fixed bin(17,0) dcl 90 in procedure "xmail_get_choice_" set ref 67 75 208* 226 232 232 237 237 243 243 249 249 251 253 280* 292* 294* cleanup 000000 stack reference condition dcl 152 ref 176 346 cleanup_signalled 213(08) based bit(1) level 3 packed packed unaligned dcl 2-54 set ref 194* code parameter fixed bin(35,0) dcl 91 in procedure "xmail_get_choice_" set ref 67 75 182* 191 192* 193 200* 201 203* 204 208* 215 235* 259* 280* 281 283* 286 293* 294 294* 296* 298* code parameter fixed bin(35,0) dcl 551 in procedure "DISPLAY" set ref 539 554* 555 557* 560* 562* 563 566* 569 code 000101 automatic fixed bin(35,0) dcl 484 in procedure "GEN_HELP" set ref 514* 515 515* 521* 524 524* 526* 527 527* continue_to_signal_ 000024 constant entry external dcl 129 ref 351 display_needed parameter bit(1) dcl 89 ref 67 75 183 extent 27 000066 external static structure level 4 dcl 3-5 file parameter char packed unaligned dcl 84 set ref 67 75 185* file_info parameter char packed unaligned dcl 85 set ref 67 75 186* first_label 54 based label variable level 2 dcl 2-54 ref 241 fkey 000101 automatic bit(1) dcl 97 set ref 208* 223 280* 291 flags 213 based structure level 2 dcl 2-54 function_key_data based structure level 1 dcl 1-7 set ref 367 370* 370 452 function_key_data_highest 000334 automatic fixed bin(17,0) dcl 1-35 set ref 364* 365 367 367 function_key_data_ptr 166 based pointer level 3 in structure "xmail_data" dcl 2-54 in procedure "xmail_get_choice_" set ref 208* 344 function_key_data_ptr 000332 automatic pointer dcl 1-34 in procedure "xmail_get_choice_" set ref 344* 364 370 378 378 function_key_info 166 based structure level 2 dcl 2-54 function_key_seqs based char packed unaligned dcl 1-32 ref 378 function_keys 31 based structure array level 2 dcl 1-7 gen_help_menup 000010 internal static pointer initial dcl 485 set ref 512 514* 521* general_help 213(07) based bit(1) level 3 packed packed unaligned dcl 2-54 set ref 179* 300* 510* get_system_free_area_ 000116 constant entry external dcl 488 ref 514 514 ghc_choice parameter fixed bin(17,0) dcl 311 set ref 306 383* 397 403 409* 416 416* 419 419* 422 422* 425 425* 428 428* 431 431* 434 434* 439* ghc_code parameter fixed bin(35,0) dcl 310 set ref 306 341* 383* 391 399* 410* 440* ghc_fkey parameter bit(1) dcl 312 set ref 306 383* 394 ghc_highest 000100 automatic fixed bin(17,0) dcl 316 set ref 365* 369 371 379 397 ghc_prompt 000101 automatic varying char(256) dcl 317 set ref 356* 362* ghc_special_fkey_data_ptr 000202 automatic pointer dcl 318 set ref 342* 367* 369 370 371 373 373 374 379 380 381 383* 449 449 452 ghc_special_fkey_data_sequence_seq_len 000204 automatic fixed bin(17,0) dcl 319 set ref 374* 376 376 378 379 449 449 ghc_special_fkey_seqs based char packed unaligned dcl 337 set ref 376 378* 449 ghc_special_fkey_seqs_ptr 000206 automatic pointer dcl 320 set ref 343* 376* 378 381 452 highest 1 based fixed bin(17,0) level 2 dcl 1-7 set ref 364 367* 369* 370 371* 380 452 index builtin function dcl 324 ref 356 406 info_name 000122 automatic char(2) packed unaligned dcl 273 set ref 292* 293* initial_help parameter char packed unaligned dcl 88 set ref 67 75 572 575* interactive_msgs 213(05) based bit(1) level 3 packed packed unaligned dcl 2-54 ref 177 197 217 ioa_ 000112 constant entry external dcl 332 ref 362 409 439 ioa_$rsnnl 000114 constant entry external dcl 333 in procedure "GET_HELP_CHOICE" ref 356 ioa_$rsnnl 000106 constant entry external dcl 275 in procedure "GET_HELP" ref 292 iocb 32 000066 external static pointer level 3 in structure "xmail_windows" dcl 3-5 in procedure "xmail_get_choice_" set ref 200* 205* iocb 22 000066 external static pointer level 3 in structure "xmail_windows" dcl 3-5 in procedure "xmail_get_choice_" set ref 208* 255* 383* iox_$control 000026 constant entry external dcl 130 ref 221 iox_$modes 000030 constant entry external dcl 131 ref 200 iox_$user_io 000012 external static pointer dcl 121 set ref 221* iox_$user_output 000014 external static pointer dcl 122 set ref 234* 239* 245* 289* 354* 574* key_info based structure level 1 packed packed unaligned dcl 1-28 lines_needed 1 000132 automatic fixed bin(17,0) level 2 dcl 541 set ref 566* menu parameter pointer dcl 83 in procedure "xmail_get_choice_" set ref 67 75 208* 383* 554* menu 22 000066 external static structure level 2 in structure "xmail_windows" dcl 3-5 in procedure "xmail_get_choice_" menu_$describe 000072 constant entry external dcl 5-35 ref 554 menu_$get_choice 000070 constant entry external dcl 5-26 ref 208 383 menu_requirements based structure level 1 dcl 5-88 menu_requirements_version_1 constant fixed bin(17,0) initial dcl 5-97 ref 553 mode_str 000132 automatic char(512) packed unaligned dcl 101 set ref 200* 203* mode_string_$get_mode 000032 constant entry external dcl 132 ref 203 mode_value based structure level 1 dcl 9-16 mode_value_version_3 constant fixed bin(17,0) initial dcl 9-30 ref 202 multics_mode 213(04) based bit(1) level 3 packed packed unaligned dcl 2-54 ref 251 253 normal_usage 142 based char(80) level 2 packed packed unaligned dcl 2-54 ref 356 406 null builtin function dcl 502 in procedure "GEN_HELP" ref 512 514 514 null builtin function dcl 148 in procedure "xmail_get_choice_" ref 221 221 342 343 449 452 position parameter char packed unaligned dcl 86 in procedure "xmail_get_choice_" set ref 67 75 187* 560 position 24 000066 external static structure level 3 in structure "xmail_windows" dcl 3-5 in procedure "xmail_get_choice_" quit 000000 stack reference condition dcl 152 ref 348 504 quit_label 60 based label variable level 2 dcl 2-54 ref 247 redisplay 000100 automatic bit(1) dcl 96 set ref 183* 192 195* selected_create 000102 automatic bit(1) dcl 98 set ref 521* 522 seq_len 4 based fixed bin(21,0) level 3 dcl 1-7 set ref 373* 373 374 378 seq_ptr 2 based pointer level 3 dcl 1-7 set ref 378 381* 449 sequence 2 based structure level 2 dcl 1-7 sequence_index 31 based fixed bin(12,0) array level 3 packed packed unsigned unaligned dcl 1-7 set ref 379* sequence_length 31(12) based fixed bin(6,0) array level 3 packed packed unsigned unaligned dcl 1-7 set ref 380* translate builtin function dcl 502 ref 526 526 usage parameter char packed unaligned dcl 87 set ref 67 75 188* 229* version 000104 automatic fixed bin(17,0) level 2 in structure "auto_mode_value" dcl 100 in procedure "xmail_get_choice_" set ref 202* version 000132 automatic fixed bin(17,0) level 2 in structure "actual_menu_rqmts" dcl 541 in procedure "DISPLAY" set ref 553* width 27 000066 external static fixed bin(17,0) level 5 dcl 3-5 ref 557 width_needed 2 000132 automatic fixed bin(17,0) level 2 dcl 541 set ref 557 window_$bell 000074 constant entry external dcl 6-6 ref 255 window_$clear_to_end_of_window 000076 constant entry external dcl 6-11 ref 205 window_$clear_window 000100 constant entry external dcl 6-13 ref 234 239 245 289 354 574 window_position_info based structure level 1 unaligned dcl 4-25 xmail_data based structure level 1 dcl 2-54 xmail_data_ptr 000064 external static pointer initial dcl 2-52 ref 177 179 194 197 208 217 241 247 251 253 300 344 356 406 510 xmail_display_help_ 000102 constant entry external dcl 275 in procedure "GET_HELP" ref 293 xmail_display_help_ 000126 constant entry external dcl 492 in procedure "GEN_HELP" ref 526 xmail_display_help_ 000034 constant entry external dcl 133 in procedure "xmail_get_choice_" ref 575 xmail_dyn_menu_$create_w_trailer 000120 constant entry external dcl 489 ref 514 xmail_err_$exit_now 000016 external static fixed bin(35,0) dcl 123 ref 235 xmail_err_$gen_help_req 000022 external static fixed bin(35,0) dcl 125 ref 281 399 xmail_err_$help_requested 000020 external static fixed bin(35,0) dcl 124 ref 298 xmail_err_$insuff_room_for_window 000142 external static fixed bin(35,0) dcl 543 ref 557 xmail_err_$invalid_response 000110 external static fixed bin(35,0) dcl 328 ref 410 440 xmail_error_$code_first 000104 constant entry external dcl 275 ref 294 xmail_error_$code_last 000046 constant entry external dcl 138 ref 259 xmail_error_$no_code 000122 constant entry external dcl 490 ref 515 524 xmail_error_$no_print 000124 constant entry external dcl 491 ref 527 xmail_get_dyn_choice_$trailer 000130 constant entry external dcl 493 ref 521 xmail_get_str_$yes_no 000132 constant entry external dcl 494 ref 529 xmail_im_mgr_$accept_messages 000036 constant entry external dcl 134 ref 197 xmail_im_mgr_$defer_messages 000040 constant entry external dcl 135 ref 177 217 xmail_leave_menu 000000 stack reference condition dcl 152 ref 240 246 xmail_multics_mode_ 000044 constant entry external dcl 137 ref 251 253 xmail_redisplay_$all 000042 constant entry external dcl 136 ref 249 xmail_redisplay_$menu 000062 constant entry external dcl 144 in procedure "xmail_get_choice_" ref 535 xmail_redisplay_$menu 000152 constant entry external dcl 548 in procedure "DISPLAY" ref 571 xmail_redisplay_$status_window 000150 constant entry external dcl 547 ref 565 xmail_sw_$redisplay 000060 constant entry external dcl 143 ref 189 230 xmail_sw_$update_file 000050 constant entry external dcl 139 ref 185 xmail_sw_$update_file_info 000052 constant entry external dcl 140 ref 186 xmail_sw_$update_position 000054 constant entry external dcl 141 ref 187 xmail_sw_$update_usage 000056 constant entry external dcl 142 ref 188 229 xmail_window_info_format based structure level 1 dcl 3-10 xmail_window_manager_$reconnect 000134 constant entry external dcl 495 ref 506 xmail_window_manager_$restore_menu 000140 constant entry external dcl 499 ref 533 xmail_window_manager_$set_menu_window_size 000144 constant entry external dcl 545 ref 566 xmail_window_manager_$set_sw_size 000146 constant entry external dcl 546 ref 560 562 xmail_window_manager_$suppress_menu 000136 constant entry external dcl 497 ref 520 xmail_windows 000066 external static structure level 1 dcl 3-5 yes_sw 000102 automatic bit(1) dcl 486 set ref 529* 530 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A internal static char(1) initial packed unaligned dcl 8-16 ALL internal static char(3) initial packed unaligned dcl 8-16 ASK internal static char(3) initial packed unaligned dcl 8-16 CREATE_MFILE_INFO internal static char(19) initial packed unaligned dcl 7-21 DATE internal static char(4) initial packed unaligned dcl 8-16 DATE_INFO internal static char(14) initial packed unaligned dcl 7-21 DEL_MSG_SELECT_INFO internal static char(23) initial packed unaligned dcl 7-21 F internal static char(1) initial packed unaligned dcl 8-16 FIRST internal static char(5) initial packed unaligned dcl 8-16 GETTING_HELP_INFO internal static char(12) initial packed unaligned dcl 7-21 GETTING_STARTED_HELP internal static char(29) initial packed unaligned dcl 7-13 INITIAL_HELP internal static char(26) initial packed unaligned dcl 7-13 KEY_CTRL internal static fixed bin(17,0) initial dcl 1-22 KEY_CTRL_AND_SHIFT internal static fixed bin(17,0) initial dcl 1-22 KEY_SHIFT internal static fixed bin(17,0) initial dcl 1-22 L internal static char(1) initial packed unaligned dcl 8-16 LAST internal static char(4) initial packed unaligned dcl 8-16 LIST internal static char(2) initial packed unaligned dcl 8-16 MENU_OPTION_KEYS internal static char(1) initial array packed unaligned dcl 5-100 MORE_HELP_INFO internal static char(9) initial packed unaligned dcl 7-21 MSG_SELECT_INFO internal static char(14) initial packed unaligned dcl 7-21 MULTICS_MODE_HELP internal static char(27) initial packed unaligned dcl 7-13 N internal static char(1) initial packed unaligned dcl 8-16 NEW internal static char(3) initial packed unaligned dcl 8-16 NEXT internal static char(4) initial packed unaligned dcl 8-16 NO internal static char(2) initial packed unaligned dcl 8-16 P internal static char(1) initial packed unaligned dcl 8-16 PREV internal static char(4) initial packed unaligned dcl 8-16 PROMPT_REPLIES_HELP internal static char(28) initial packed unaligned dcl 7-13 QUESTION internal static char(1) initial packed unaligned dcl 8-16 REVIEW_DEFAULTS_HELP internal static char(29) initial packed unaligned dcl 7-13 S internal static char(1) initial packed unaligned dcl 8-16 SEARCH internal static char(6) initial packed unaligned dcl 8-16 SEARCH_STR_INFO internal static char(14) initial packed unaligned dcl 7-21 SEEN internal static char(4) initial packed unaligned dcl 8-16 SET internal static char(3) initial packed unaligned dcl 8-16 UNSEEN internal static char(6) initial packed unaligned dcl 8-16 USE_SPEC_SET_INFO internal static char(12) initial packed unaligned dcl 7-21 Y internal static char(1) initial packed unaligned dcl 8-16 YES internal static char(3) initial packed unaligned dcl 8-16 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 function_key_data_version_1 internal static fixed bin(17,0) initial dcl 1-36 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 key_info_ptr automatic pointer dcl 1-38 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 menu_$create 000000 constant entry external dcl 5-8 menu_$delete 000000 constant entry external dcl 5-61 menu_$destroy 000000 constant entry external dcl 5-41 menu_$display 000000 constant entry external dcl 5-20 menu_$list 000000 constant entry external dcl 5-67 menu_$retrieve 000000 constant entry external dcl 5-54 menu_$store 000000 constant entry external dcl 5-46 menu_format based structure level 1 dcl 5-76 menu_format_ptr automatic pointer dcl 5-94 menu_format_version_1 internal static fixed bin(17,0) initial dcl 5-97 menu_requirements_ptr automatic pointer dcl 5-95 mode_string_info based structure level 1 dcl 9-9 mode_string_info_ptr automatic pointer dcl 9-14 mode_string_info_version_2 internal static fixed bin(17,0) initial dcl 9-30 mode_value_ptr automatic pointer dcl 9-6 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 number_of_modes automatic fixed bin(17,0) dcl 9-6 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_$change_column 000000 constant entry external dcl 6-63 window_$change_line 000000 constant entry external dcl 6-59 window_$clear_region 000000 constant entry external dcl 6-7 window_$clear_to_end_of_line 000000 constant entry external dcl 6-9 window_$create 000000 constant entry external dcl 6-72 window_$delete_chars 000000 constant entry external dcl 6-15 window_$destroy 000000 constant entry external dcl 6-74 window_$edit_line 000000 constant entry external dcl 6-76 window_$get_cursor_position 000000 constant entry external dcl 6-17 window_$get_echoed_chars 000000 constant entry external dcl 6-22 window_$get_one_unechoed 000000 constant entry external dcl 6-67 window_$get_one_unechoed_char 000000 constant entry external dcl 6-67 window_$get_unechoed_chars 000000 constant entry external dcl 6-25 window_$insert_text 000000 constant entry external dcl 6-28 window_$overwrite_text 000000 constant entry external dcl 6-29 window_$position_cursor 000000 constant entry external dcl 6-31 window_$position_cursor_rel 000000 constant entry external dcl 6-36 window_$scroll_region 000000 constant entry external dcl 6-42 window_$sync 000000 constant entry external dcl 6-44 window_$write_raw_text 000000 constant entry external dcl 6-48 window_$write_sync_read 000000 constant entry external dcl 6-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_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 xmail_version internal static varying char(10) initial dcl 2-84 NAMES DECLARED BY EXPLICIT CONTEXT. CLEANUP 002550 constant entry internal dcl 447 ref 346 350 443 DISPLAY 003217 constant entry internal dcl 539 ref 192 DISPLAY_EXIT 003414 constant label dcl 579 ref 555 ERROR 001561 constant label dcl 259 set ref 193 201 204 215 EXIT 001613 constant label dcl 263 ref 223 257 GEN_HELP 002606 constant entry internal dcl 459 ref 284 GEN_HELP_EXIT 003204 constant label dcl 533 ref 507 522 530 GET_HELP 001614 constant entry internal dcl 268 ref 228 GET_HELP_CHOICE 002026 constant entry internal dcl 306 ref 280 GHC_EXIT 002542 constant label dcl 443 ref 391 394 400 403 411 GH_EXIT 002017 constant label dcl 300 ref 286 MAIN 000733 constant entry internal dcl 174 ref 70 78 dm 000665 constant entry external dcl 75 xmail_get_choice_ 000615 constant entry external dcl 67 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4502 4656 3620 4512 Length 5400 3620 154 505 662 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_get_choice_ 226 external procedure is an external procedure. MAIN 218 internal procedure enables or reverts conditions. on unit on line 176 64 on unit GET_HELP internal procedure shares stack frame of internal procedure MAIN. GET_HELP_CHOICE 208 internal procedure enables or reverts conditions. on unit on line 346 64 on unit on unit on line 348 70 on unit CLEANUP 64 internal procedure is called by several nonquick procedures. GEN_HELP 275 internal procedure enables or reverts conditions. on unit on line 504 64 on unit DISPLAY internal procedure shares stack frame of internal procedure MAIN. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 gen_help_menup GEN_HELP STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME GEN_HELP 000100 choice GEN_HELP 000101 code GEN_HELP 000102 yes_sw GEN_HELP GET_HELP_CHOICE 000100 ghc_highest GET_HELP_CHOICE 000101 ghc_prompt GET_HELP_CHOICE 000202 ghc_special_fkey_data_ptr GET_HELP_CHOICE 000204 ghc_special_fkey_data_sequence_seq_len GET_HELP_CHOICE 000206 ghc_special_fkey_seqs_ptr GET_HELP_CHOICE MAIN 000122 info_name GET_HELP 000132 actual_menu_rqmts DISPLAY xmail_get_choice_ 000100 redisplay xmail_get_choice_ 000101 fkey xmail_get_choice_ 000102 selected_create xmail_get_choice_ 000103 accepting_messages xmail_get_choice_ 000104 auto_mode_value xmail_get_choice_ 000132 mode_str xmail_get_choice_ 000332 function_key_data_ptr xmail_get_choice_ 000334 function_key_data_highest xmail_get_choice_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_1 tra_ext_2 signal_op enable_op shorten_stack ext_entry_desc int_entry set_chars_eis index_chars_eis alloc_storage op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. continue_to_signal_ get_system_free_area_ ioa_ ioa_$rsnnl ioa_$rsnnl iox_$control iox_$modes menu_$describe menu_$get_choice mode_string_$get_mode window_$bell window_$clear_to_end_of_window window_$clear_window xmail_display_help_ xmail_display_help_ xmail_display_help_ xmail_dyn_menu_$create_w_trailer xmail_error_$code_first xmail_error_$code_last xmail_error_$no_code xmail_error_$no_print xmail_get_dyn_choice_$trailer xmail_get_str_$yes_no xmail_im_mgr_$accept_messages xmail_im_mgr_$defer_messages xmail_multics_mode_ xmail_redisplay_$all xmail_redisplay_$menu xmail_redisplay_$menu xmail_redisplay_$status_window xmail_sw_$redisplay xmail_sw_$update_file xmail_sw_$update_file_info xmail_sw_$update_position xmail_sw_$update_usage xmail_window_manager_$reconnect xmail_window_manager_$restore_menu xmail_window_manager_$set_menu_window_size xmail_window_manager_$set_sw_size xmail_window_manager_$suppress_menu THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_io iox_$user_output xmail_data_ptr xmail_err_$exit_now xmail_err_$gen_help_req xmail_err_$help_requested xmail_err_$insuff_room_for_window xmail_err_$invalid_response xmail_windows LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 67 000606 69 000654 70 000656 71 000662 75 000663 77 000724 78 000725 79 000731 174 000732 176 000740 177 000754 179 000771 180 000776 182 000777 183 001002 185 001005 186 001017 187 001033 188 001047 189 001063 191 001070 192 001074 193 001104 194 001110 195 001115 197 001116 200 001127 201 001157 202 001163 203 001165 204 001220 205 001224 208 001244 215 001272 217 001276 221 001312 223 001346 226 001352 228 001356 229 001357 230 001373 231 001400 232 001401 234 001405 235 001417 236 001424 237 001425 239 001431 240 001443 241 001446 243 001453 245 001457 246 001471 247 001474 249 001501 251 001513 253 001533 255 001545 256 001557 257 001560 259 001561 263 001613 268 001614 280 001615 281 001632 283 001640 284 001641 285 001646 286 001647 289 001651 291 001662 292 001666 293 001717 294 001742 296 002007 297 002012 298 002013 300 002017 302 002024 306 002025 341 002033 342 002035 343 002037 344 002040 346 002045 348 002067 350 002103 351 002110 352 002120 354 002121 356 002133 362 002176 364 002207 365 002214 367 002215 369 002230 370 002233 371 002244 373 002246 374 002250 376 002252 378 002260 379 002302 380 002314 381 002347 383 002351 391 002376 394 002401 397 002404 399 002407 400 002412 403 002413 406 002415 409 002427 410 002446 411 002452 416 002453 419 002461 422 002466 425 002473 428 002500 431 002505 434 002512 439 002517 440 002536 443 002542 445 002546 447 002547 449 002555 452 002570 455 002604 459 002605 504 002613 506 002627 507 002633 510 002636 512 002643 514 002647 515 002743 519 002777 520 003000 521 003005 522 003023 524 003027 526 003063 527 003121 529 003156 530 003200 531 003203 533 003204 535 003211 536 003216 539 003217 553 003221 554 003223 555 003243 557 003246 560 003256 562 003301 563 003313 565 003316 566 003323 569 003335 571 003340 572 003345 574 003355 575 003367 579 003414 ----------------------------------------------------------- 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