COMPILATION LISTING OF SEGMENT xmail_default_fkeys_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/02/84 1036.6 mst Sun Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright (c) 1972 by Massachusetts Institute of * 4* * Technology and Honeywell Information Systems, Inc. * 5* * * 6* *********************************************************** */ 7 8 xmail_default_fkeys_: proc () returns (ptr) /* must be quick */; 9 10 /* BEGIN DESCRIPTION 11* 12*Function: This procedure sets up a default structure of function_key_data 13* containing escape sequences instead of function keys. 14* 15*History: Originally part of xmail.pl1 16* 17* 84-09-19 JG Backs: This was made into a separate module so it could be 18* called from both xmail and xmail_Review_Defaults_ modules. 19* 20* 84-11-04 JG Backs: Module name changed to include a trailing underscore 21* (xmail_default_fkeys_) to be consistant with all other external procedures. 22* Audit change. 23* 24*END DESCRIPTION 25**/ 26 27 /* AUTOMATIC */ 28 29 dcl default ptr; 30 dcl i fixed bin; 31 32 /* STATIC */ 33 34 dcl ESC init ("") char (1) static options (constant); 35 dcl PSEUDO_KEYS init ("?fpqrlheFPQRLHE") char (15) static options (constant); 36 37 /* BASED */ 38 39 dcl default_fkey_seq char (default -> function_key_data.seq_len) based (default -> function_key_data.seq_ptr); 40 dcl system_area area based (get_system_free_area_ ()); 41 42 /* ENTRIES */ 43 44 dcl get_system_free_area_ entry () returns (ptr); 45 46 /* BUILTINS */ 47 48 dcl (length, null, substr) builtin; 49 50 /* INCLUDE FILES */ 51 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 */ 52 53 54 /* BEGIN */ 55 56 function_key_data_highest = length (PSEUDO_KEYS); 57 58 allocate function_key_data set (default) in (system_area); 59 default -> function_key_data.version = function_key_data_version_1; 60 default -> function_key_data.seq_len = 2 * function_key_data_highest; 61 62 allocate default_fkey_seq in (system_area); 63 do i = 1 to function_key_data_highest; 64 substr (default_fkey_seq, 2 * i - 1, 1) = ESC; 65 substr (default_fkey_seq, 2 * i, 1) = substr (PSEUDO_KEYS, i, 1); 66 default -> function_key_data.function_keys (i, KEY_PLAIN).sequence_index = 2 * i - 1; 67 default -> function_key_data.function_keys (i, KEY_PLAIN).sequence_length = 2; 68 end; 69 70 return (default); 71 72 end xmail_default_fkeys_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/02/84 1015.0 xmail_default_fkeys_.pl1 >special_ldd>online>6876>xmail_default_fkeys_.pl1 52 1 02/23/81 2146.3 function_key_data.incl.pl1 >ldd>include>function_key_data.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. ESC constant char(1) initial unaligned dcl 34 ref 64 KEY_PLAIN constant fixed bin(17,0) initial dcl 1-22 ref 66 67 PSEUDO_KEYS 000000 constant char(15) initial unaligned dcl 35 ref 56 65 default 000100 automatic pointer dcl 29 set ref 58* 59 60 62 62 62 64 64 65 65 66 67 70 default_fkey_seq based char unaligned dcl 39 set ref 62 64* 65* function_key_data based structure level 1 dcl 1-7 set ref 58 function_key_data_highest 000103 automatic fixed bin(17,0) dcl 1-35 set ref 56* 58 58 60 63 function_key_data_version_1 constant fixed bin(17,0) initial dcl 1-36 ref 59 function_keys 31 based structure array level 2 dcl 1-7 get_system_free_area_ 000010 constant entry external dcl 44 ref 58 62 highest 1 based fixed bin(17,0) level 2 dcl 1-7 set ref 58* i 000102 automatic fixed bin(17,0) dcl 30 set ref 63* 64 65 65 66 66 67* key_info based structure level 1 packed unaligned dcl 1-28 length builtin function dcl 48 ref 56 seq_len 4 based fixed bin(21,0) level 3 dcl 1-7 set ref 60* 62 62 64 65 seq_ptr 2 based pointer level 3 dcl 1-7 set ref 62* 64 65 sequence 2 based structure level 2 dcl 1-7 sequence_index 31 based fixed bin(12,0) array level 3 packed unsigned unaligned dcl 1-7 set ref 66* sequence_length 31(12) based fixed bin(6,0) array level 3 packed unsigned unaligned dcl 1-7 set ref 67* substr builtin function dcl 48 set ref 64* 65* 65 system_area based area(1024) dcl 40 ref 58 62 version based fixed bin(17,0) level 2 dcl 1-7 set ref 59* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. 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 function_key_data_ptr automatic pointer dcl 1-34 function_key_seqs based char unaligned dcl 1-32 key_info_ptr automatic pointer dcl 1-38 null builtin function dcl 48 NAME DECLARED BY EXPLICIT CONTEXT. xmail_default_fkeys_ 000010 constant entry external dcl 8 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 172 204 131 202 Length 372 131 12 151 40 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_default_fkeys_ 77 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xmail_default_fkeys_ 000100 default xmail_default_fkeys_ 000102 i xmail_default_fkeys_ 000103 function_key_data_highest xmail_default_fkeys_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return ext_entry alloc_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_system_free_area_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 8 000005 56 000015 58 000017 59 000040 60 000042 62 000045 63 000065 64 000075 65 000103 66 000107 67 000120 68 000123 70 000125 ----------------------------------------------------------- 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