COMPILATION LISTING OF SEGMENT kermit_xfer_modes_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 03/01/89 1433.3 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 9 10 11 /****^ HISTORY COMMENTS: 12* 1) change(88-05-16,Huen), approve(88-05-16,MCR7841), audit(88-05-25,RWaters), 13* install(88-07-05,MR12.2-1054): 14* Fix kermit 15, 16, 17, and 18. 15* 2) change(89-01-02,Huen), approve(89-01-02,MCR8027), audit(89-01-25,Lee), 16* install(89-03-01,MR12.3-1020): 17* Fix kermit bugs: PC_File_Transfer 18, 20, and 23. 18* END HISTORY COMMENTS */ 19 20 21 kermit_xfer_modes_: 22 proc; 23 24 /********************************************************************/ 25 /* */ 26 /*n kermit_xfer_modes_ */ 27 /* */ 28 /*d This routine is responsible for setting the modes */ 29 /*d required for file transfer. */ 30 /* */ 31 /*l Written: 84-10-23 by Maureen Mallmes */ 32 /*l Modified: 87-06-15 by S. Huen - Add extended packet length */ 33 /*l based on D. Kozlowski's version (kermit 16) . */ 34 /* */ 35 /********************************************************************/ 36 37 38 /* Not an entry */ 39 return; 40 41 /* parameters */ 42 dcl encoded_params_lth fixed bin (21); 43 dcl encoded_paramsp ptr; 44 dcl ec fixed bin (35); 45 dcl infop ptr; 46 dcl local_paramsp ptr; 47 dcl local_params_lth fixed bin (21); 48 dcl remote_paramsp ptr; 49 dcl remote_params_lth fixed bin (21); 50 dcl temp_defaultsp ptr; 51 52 /* automatic */ 53 54 dcl reset_sw bit (1); 55 dcl send_init_select (N_params) fixed bin; 56 57 /* constants */ 58 59 dcl Init_field (13) fixed bin static options (constant) init 60 (1, /* MAXL is char */ 61 1, /* TIME is char */ 62 1, /* NPAD is char */ 63 2, /* PADC is ctl */ 64 1, /* EOL is char */ 65 0, /* QCTL is none */ 66 0, /* QBIN is none */ 67 3, /* CHKT is binary*/ 68 0, /* REPT is none */ 69 1, /* CAPAS is char */ 70 1, /* WINDO ischar */ 71 1, /* MAXLX1 is char*/ 72 1); /* MAXLX2 is char*/ 73 74 75 76 dcl Char_coded fixed bin static options (constant) init (1); 77 dcl Ctl_coded fixed bin static options (constant) init (2); 78 dcl Binary_coded fixed bin static options (constant) init (3); 79 dcl False bit (1) static options (constant) init ("0"b); 80 dcl N_params fixed bin static options (constant) init (13); 81 dcl True bit (1) static options (constant) init ("1"b); 82 83 /* builtin */ 84 85 dcl (addr, bool, byte, fixed) builtin; 86 dcl (min, mod, rank, unspec) builtin; 87 88 /* include */ 89 1 1 /* START OF: kermit_mode_info.incl.pl1 * * * * * */ 1 2 1 3 1 4 1 5 1 6 /****^ HISTORY COMMENTS: 1 7* 1) change(88-05-16,Huen), approve(88-05-16,MCR7841), audit(88-05-25,RWaters), 1 8* install(88-07-05,MR12.2-1054): 1 9* Fix kermit 15, 16, 17, and 18. 1 10* END HISTORY COMMENTS */ 1 11 1 12 1 13 /************************************************************************/ 1 14 /* */ 1 15 /*l Modified: 87-06-19 by S. Huen - Add fields for capabilities, */ 1 16 /*l window_size, max_len_ext_1 and max_len_ext_2 based */ 1 17 /*l on D. Kozlowski's version. (kermit 16) */ 1 18 /* */ 1 19 /************************************************************************/ 1 20 1 21 dcl Permanent fixed bin static options (constant) init (1); 1 22 dcl Temporary fixed bin static options (constant) init (2); 1 23 1 24 dcl Store_all (1:1) fixed bin static options (constant) init (0); 1 25 dcl Retrieve_all (1:1) fixed bin static options (constant) init (0); 1 26 1 27 dcl Maxl fixed bin static options (constant) init (1); 1 28 dcl Timeout fixed bin static options (constant) init (2); 1 29 dcl N_pads fixed bin static options (constant) init (3); 1 30 dcl Pad_char fixed bin static options (constant) init (4); 1 31 dcl Eol_char fixed bin static options (constant) init (5); 1 32 dcl Quote_char fixed bin static options (constant) init (6); 1 33 dcl Eight_bit_char fixed bin static options (constant) init (7); 1 34 dcl Repeat_char fixed bin static options (constant) init (8); 1 35 dcl Start_char fixed bin static options (constant) init (9); 1 36 dcl Check_type fixed bin static options (constant) init (10); 1 37 dcl Parity fixed bin static options (constant) init (11); 1 38 dcl Incomplete fixed bin static options (constant) init (12); 1 39 dcl File_warning fixed bin static options (constant) init (13); 1 40 dcl File_type fixed bin static options (constant) init (14); 1 41 dcl Retry_threshold fixed bin static options (constant) init (15); 1 42 dcl Line_byte_size fixed bin static options (constant) init (16); 1 43 dcl Window_size fixed bin static options (constant) init (17); 1 44 dcl Max_len_ext_1 fixed bin static options (constant) init (18); 1 45 dcl Max_len_ext_2 fixed bin static options (constant) init (19); 1 46 dcl Capabilities fixed bin static options (constant) init (20); 1 47 1 48 dcl 01 Perm_defaults aligned static options (constant), 1 49 02 maxl fixed bin (8) unal init (80), 1 50 02 time fixed bin (8) unal init (15), 1 51 02 npad fixed bin (8) unal init (0), 1 52 02 padc char (1) unal init (""), 1 53 02 eol char (1) unal init (" "), 1 54 02 qctl char (1) unal init ("#"), 1 55 02 qbin char (1) unal init ("&"), 1 56 02 rept char (1) unal init ("~"), 1 57 02 start char (1) unal init (""), 1 58 02 chkt fixed bin (8) unal init (1), 1 59 02 parity char (1) unal init ("N"), 1 60 02 incomplete char (1) unal init ("K"), 1 61 02 file_warning char (1) unal init ("Y"), 1 62 02 file_type char (1) unal init ("A"), 1 63 02 retry_threshold fixed bin (8) unal init (5), 1 64 02 line_type fixed bin (8) unal init (7), 1 65 02 window_size fixed bin (8) unal init (0), 1 66 02 max_len_ext_1 fixed bin (8) unal init (5), 1 67 02 max_len_ext_2 fixed bin (8) unal init (25), 1 68 02 capabilities fixed bin (8) unal init (2); 1 69 1 70 1 71 dcl I_maxl fixed bin static options (constant) init (1); 1 72 dcl I_timeout fixed bin static options (constant) init (2); 1 73 dcl I_n_pads fixed bin static options (constant) init (3); 1 74 dcl I_pad_char fixed bin static options (constant) init (4); 1 75 dcl I_eol_char fixed bin static options (constant) init (5); 1 76 dcl I_quote_char fixed bin static options (constant) init (6); 1 77 dcl O_maxl fixed bin static options (constant) init (7); 1 78 dcl O_timeout fixed bin static options (constant) init (8); 1 79 dcl O_n_pads fixed bin static options (constant) init (9); 1 80 dcl O_pad_char fixed bin static options (constant) init (10); 1 81 dcl O_eol_char fixed bin static options (constant) init (11); 1 82 dcl O_quote_char fixed bin static options (constant) init (12); 1 83 dcl G_eight_bit_char fixed bin static options (constant) init (13); 1 84 dcl G_repeat_char fixed bin static options (constant) init (14); 1 85 dcl G_start_char fixed bin static options (constant) init (15); 1 86 dcl G_check_type fixed bin static options (constant) init (16); 1 87 dcl G_parity fixed bin static options (constant) init (17); 1 88 dcl G_window fixed bin static options (constant) init (18); 1 89 dcl I_max_lenx1 fixed bin static options (constant) init (19); 1 90 dcl I_max_lenx2 fixed bin static options (constant) init (20); 1 91 dcl O_max_lenx1 fixed bin static options (constant) init (21); 1 92 dcl O_max_lenx2 fixed bin static options (constant) init (22); 1 93 dcl G_capabilities fixed bin static options (constant) init (23); 1 94 1 95 dcl 01 Temp_defaults aligned static options (constant), 1 96 02 i_maxl fixed bin (8) unal init (80), 1 97 02 i_time fixed bin (8) unal init (15), 1 98 02 i_npad fixed bin (8) unal init (0), 1 99 02 i_padc char (1) unal init (""), 1 100 02 i_eol char (1) unal init (" "), 1 101 02 i_qctl char (1) unal init ("#"), 1 102 02 o_maxl fixed bin (8) unal init (80), 1 103 02 o_time fixed bin (8) unal init (15), 1 104 02 o_npad fixed bin (8) unal init (0), 1 105 02 o_padc char (1) unal init (""), 1 106 02 o_eol char (1) unal init (" "), 1 107 02 o_qctl char (1) unal init ("#"), 1 108 02 qbin char (1) unal init ("N"), 1 109 02 rept char (1) unal init (" "), 1 110 02 start char (1) unal init (""), 1 111 02 chkt fixed bin (8) unal init (1), 1 112 02 parity char (1) unal init ("N"), 1 113 02 window fixed bin (8) unal init (0), 1 114 02 i_maxlx1 fixed bin (8) unal init (5), 1 115 02 i_maxlx2 fixed bin (8) unal init (25), 1 116 02 o_maxlx1 fixed bin (8) unal init (5), 1 117 02 o_maxlx2 fixed bin (8) unal init (25), 1 118 02 capabilities fixed bin (8) unal init (2); 1 119 1 120 dcl Ext_Headers bit (9) static options (constant) init ("002"b3); 1 121 1 122 1 123 /* END OF: kermit_mode_info.incl.pl1 * * * * * */ 90 91 2 1 /* START OF: kermit_dcls.incl.pl1 * * * * * */ 2 2 2 3 /********************************************************************/ 2 4 /* */ 2 5 /*n kermit_dcls */ 2 6 /* */ 2 7 /*d This include file contains the declarations of the external */ 2 8 /*d kermit entrypoints that are called by other modules within */ 2 9 /*d kermit as well as an explanation of the parameters. */ 2 10 /* */ 2 11 /*l Written: 84-10-11 by Dean Elhard */ 2 12 /* */ 2 13 /********************************************************************/ 2 14 2 15 dcl kermit_comm_mgr_$flush_input 2 16 entry 2 17 (ptr, /* kermit info ptr */ 2 18 fixed bin(35)); /* error code */ 2 19 2 20 dcl kermit_comm_mgr_$reset_line_modes 2 21 entry 2 22 (ptr, /* kermit info ptr */ 2 23 fixed bin(35)); /* error code */ 2 24 2 25 dcl kermit_comm_mgr_$set_line_modes 2 26 entry 2 27 (ptr, /* kermit info ptr */ 2 28 fixed bin(35)); /* error code */ 2 29 2 30 dcl kermit_get_filenames_ entry 2 31 (ptr, /* kermit info ptr */ 2 32 char(*), /* argument */ 2 33 ptr, /* filename ptr */ 2 34 char(*), /* reason */ 2 35 fixed bin(35)); /* error code */ 2 36 2 37 dcl kermit_log_mgr_$close_log 2 38 entry 2 39 (ptr, /* kermit info ptr */ 2 40 fixed bin (35)); /* error code */ 2 41 2 42 dcl kermit_log_mgr_$disable entry 2 43 (ptr, /* kermit info ptr */ 2 44 fixed bin (35)); /* error code */ 2 45 2 46 dcl kermit_log_mgr_$display_stats 2 47 entry /* statistics command */ 2 48 (ptr, /* sci ptr */ 2 49 ptr); /* kermit info ptr */ 2 50 2 51 dcl kermit_log_mgr_$enable entry 2 52 (ptr, /* kermit info ptr */ 2 53 fixed bin (35)); /* error code */ 2 54 2 55 dcl kermit_log_mgr_$log_message 2 56 entry 2 57 (ptr, /* kermit info ptr */ 2 58 ptr); /* log info ptr */ 2 59 2 60 dcl kermit_log_mgr_$open_log 2 61 entry 2 62 (ptr, /* kermit info ptr */ 2 63 char (*) varying, /* log file name */ 2 64 fixed bin (35)); /* error code */ 2 65 2 66 dcl kermit_log_mgr_$start entry /* start log command */ 2 67 (ptr, /* sci ptr */ 2 68 ptr); /* kermit info ptr */ 2 69 2 70 dcl kermit_log_mgr_$stop entry /* stop log command */ 2 71 (ptr, /* sci ptr */ 2 72 ptr); /* kermit info ptr */ 2 73 2 74 dcl kermit_mode_mgr_$get entry /* get modes command */ 2 75 (ptr, /* sci ptr */ 2 76 ptr); /* kermit info ptr */ 2 77 2 78 dcl kermit_mode_mgr_$retrieve 2 79 entry 2 80 (ptr, /* kermit info ptr */ 2 81 fixed bin, /* permanent/temporary select */ 2 82 (*) fixed bin, /* mode selector array */ 2 83 ptr, /* mode value ptr */ 2 84 fixed bin (35)); /* error code */ 2 85 2 86 dcl kermit_mode_mgr_$set entry /* set modes command */ 2 87 (ptr, /* sci ptr */ 2 88 ptr); /* kermit info ptr */ 2 89 2 90 dcl kermit_mode_mgr_$store entry 2 91 (ptr, /* kermit info ptr */ 2 92 fixed bin, /* permanent/temporary select */ 2 93 (*) fixed bin, /* mode selector array */ 2 94 ptr, /* mode value ptr */ 2 95 fixed bin (35)); /* error code */ 2 96 2 97 dcl kermit_pad_$receive entry 2 98 (ptr, /* kermit info ptr */ 2 99 char (1), /* packet type */ 2 100 ptr, /* buffer pointer */ 2 101 fixed bin (21), /* buffer length */ 2 102 fixed bin, /* sequence number */ 2 103 fixed bin (21), /* chars received */ 2 104 fixed bin (21), /* packet size */ 2 105 bit (1), /* CR/NL split flag */ 2 106 fixed bin (35)); /* error code */ 2 107 2 108 dcl kermit_pad_$send entry 2 109 (ptr, /* kermit info ptr */ 2 110 char (1), /* packet type */ 2 111 ptr, /* data ptr */ 2 112 fixed bin (21), /* data length */ 2 113 fixed bin, /* sequence number */ 2 114 fixed bin (21), /* chars transmitted */ 2 115 fixed bin (21), /* packet length */ 2 116 fixed bin (35)); /* error code */ 2 117 2 118 dcl kermit_receive_$receive_from_remote 2 119 entry 2 120 (ptr, /* kermit info ptr */ 2 121 fixed bin, /* initial state */ 2 122 fixed bin, /* initial sequence number */ 2 123 char (*), /* user filename (first file) */ 2 124 bit (1), /* =1 if user gave filename */ 2 125 fixed bin, /* number of files received */ 2 126 fixed bin (35)); /* error code */ 2 127 2 128 dcl kermit_send_$send_to_remote 2 129 entry 2 130 (ptr, /* kermit info ptr */ 2 131 ptr, /* filenames area ptr */ 2 132 char (*), /* user filename (first file) */ 2 133 bit (1), /* =1 if user gave filename */ 2 134 fixed bin, /* number of files sent */ 2 135 fixed bin (35)); /* error code */ 2 136 2 137 2 138 dcl kermit_server_ 2 139 entry 2 140 (ptr, /* kermit info ptr */ 2 141 ptr); /* filenames area ptr */ 2 142 2 143 2 144 dcl kermit_xfer_modes_$check_params 2 145 entry 2 146 (ptr, /* kermit info ptr */ 2 147 ptr, /* remote parameters */ 2 148 fixed bin (21), /* remote parameters length */ 2 149 ptr, /* local parameters */ 2 150 fixed bin (35)); /* error code */ 2 151 2 152 dcl kermit_xfer_modes_$init 2 153 entry 2 154 (ptr, /* ptr to kermit info */ 2 155 fixed bin (35)); /* error code */ 2 156 2 157 dcl kermit_xfer_modes_$get_local_params 2 158 entry 2 159 (ptr, /* kermit info ptr */ 2 160 ptr, /* local parameters */ 2 161 fixed bin (21), /* local parameters length */ 2 162 ptr, /* encoded parameters */ 2 163 fixed bin (21), /* encoded parameters length */ 2 164 fixed bin (35)); /* error code */ 2 165 2 166 dcl kermit_xfer_modes_$process_params 2 167 entry 2 168 (ptr, /* kermit info ptr */ 2 169 ptr, /* remote parameters */ 2 170 fixed bin (21), /* remote parameters length */ 2 171 ptr, /* local parameters */ 2 172 fixed bin (35)); /* error code */ 2 173 2 174 /* END OF: kermit_dcls.incl.pl1 * * * * * */ 92 93 94 init: 95 entry (infop, ec); 96 97 /**********************************************************************/ 98 /* */ 99 /*n Name: kermit_xfer_modes_$init external */ 100 /*i Input: infop */ 101 /*f Function: Calls modes_manager to initialize new-modes to */ 102 /*f defaults. Sets modes to get first packet through.*/ 103 /*o Output: ec */ 104 /* */ 105 /**********************************************************************/ 106 107 108 ec = 0; 109 110 /* Set temporary modes to defaults */ 111 temp_defaultsp = addr (Temp_defaults); 112 call kermit_mode_mgr_$store (infop, Temporary, Store_all, temp_defaultsp, ec); 113 if ec ^= 0 then return; 114 115 /* SET user-specified modes */ 116 call set_initial_modes (ec); 117 return; 118 119 120 get_local_params: 121 entry (infop, local_paramsp, local_params_lth, encoded_paramsp, encoded_params_lth, ec); 122 123 /**********************************************************************/ 124 /* */ 125 /*n Name: transfer_modes_$get_local_params */ 126 /*i Input: infop */ 127 /*f Function: Gets the local modes from the modes_info database */ 128 /*f and puts them in a character string using the */ 129 /*f format of the data field to the send_init packet. */ 130 /*o Output: local_paramsp, local_params_lth,encoded_paramsp, */ 131 /*o encoded_params_lth, ec */ 132 /* */ 133 /**********************************************************************/ 134 135 ec = 0; 136 local_params_lth = N_params; 137 138 /* Select send-init values */ 139 140 send_init_select (1) = I_maxl; 141 send_init_select (2) = O_timeout; 142 send_init_select (3) = I_n_pads; 143 send_init_select (4) = I_pad_char; 144 send_init_select (5) = I_eol_char; 145 send_init_select (6) = O_quote_char; 146 send_init_select (7) = G_eight_bit_char; 147 send_init_select (8) = G_check_type; 148 send_init_select (9) = G_repeat_char; 149 send_init_select (10) = G_capabilities; 150 send_init_select (11) = G_window; 151 send_init_select (12) = I_max_lenx1; 152 send_init_select (13) = I_max_lenx2; 153 154 call kermit_mode_mgr_$retrieve (infop, Temporary, send_init_select, local_paramsp, ec); 155 if ec ^= 0 then return; 156 call get_encoded_params (local_paramsp, local_params_lth, encoded_paramsp, encoded_params_lth); 157 return; 158 159 process_params: entry (infop, remote_paramsp, remote_params_lth, local_paramsp, ec); 160 161 /**********************************************************************/ 162 /* */ 163 /*n Name: kermit_xfer_modes_$process_params external */ 164 /*i Input: infop, remote_paramsp, remote_params_lth */ 165 /*i local_paramsp */ 166 /*f Function: Sets the modes for file transfer. */ 167 /*f Calls set_transfer_modes. */ 168 /*o Output: ec */ 169 /* */ 170 /**********************************************************************/ 171 172 ec = 0; 173 reset_sw = False; 174 call set_transfer_modes (infop, remote_paramsp, remote_params_lth, local_paramsp, reset_sw, ec); 175 return; 176 177 178 179 check_params: entry (infop, remote_paramsp, remote_params_lth, local_paramsp, ec); 180 181 /**********************************************************************/ 182 /* */ 183 /*n Name: kermit_xfer_modes_$check_params external */ 184 /*i Input: infop, remote_paramsp, remote_params_lth */ 185 /*i local_paramsp */ 186 /*f Function: Checks the modes for file transfer. */ 187 /*f Calls set_transfer_modes. */ 188 /*o Output: ec */ 189 /* */ 190 /**********************************************************************/ 191 192 ec = 0; 193 reset_sw = True; 194 call set_transfer_modes (infop, remote_paramsp, remote_params_lth, local_paramsp, reset_sw, ec); 195 return; 196 197 get_encoded_params: proc (local_paramsp, local_params_lth, encoded_paramsp, encoded_params_lth); 198 199 /**********************************************************************/ 200 /* */ 201 /*n Name: kermit_xfer_modes_$get_encoded_params internal */ 202 /*i Input: local_paramsp, local_params_lth */ 203 /*f Function: Encodes data for Send-Init packet */ 204 /*o Output: encoded_paramsp, encoded_params_lth */ 205 /* */ 206 /**********************************************************************/ 207 208 /* parameters */ 209 210 dcl encoded_params_lth fixed bin (21); 211 dcl encoded_paramsp ptr; 212 dcl local_params_lth fixed bin (21); 213 dcl local_paramsp ptr; 214 215 216 /* automatic */ 217 218 dcl idx fixed bin; 219 220 /* based */ 221 222 223 dcl e_params (1:1) fixed bin (8) unal based (encoded_paramsp); 224 dcl l_params (1:1) fixed bin (8) unal based (local_paramsp); 225 226 227 /* encode the send-init data */ 228 229 do idx = 1 to local_params_lth; 230 if Init_field (idx) = Char_coded then e_params (idx) = l_params (idx) + 32; 231 else if Init_field (idx) = Ctl_coded then unspec (e_params (idx)) = 232 bool (unspec (l_params (idx)), "100"b3, "0110"b); 233 else if Init_field (idx) = Binary_coded then 234 e_params (idx) = l_params (idx) + 48; 235 else e_params (idx) = l_params (idx); 236 end; 237 encoded_params_lth = local_params_lth; 238 239 return; 240 end get_encoded_params; 241 242 set_initial_modes: proc (ec); 243 244 /**********************************************************************/ 245 /* */ 246 /*n Name: kermit_xfer_modes_$set_initial_modes internal */ 247 /*i Input: none */ 248 /*f Function: Sets modes to get first packet through. */ 249 /*o Output: ec */ 250 /* */ 251 /**********************************************************************/ 252 253 /* parameters */ 254 255 dcl ec fixed bin (35); 256 257 /* automatic */ 258 259 dcl perm_modes (17) fixed bin (8) unal; 260 dcl perm_modesp ptr; 261 dcl perm_modes_select (17) fixed bin; 262 dcl temp_modes_select (16) fixed bin; 263 264 /* constants */ 265 266 dcl Ebp_select fixed bin internal static options (constant) init (11); 267 dcl Line_byte_size_select fixed bin internal static options (constant) init (17); 268 dcl Eight_bit fixed bin (8) unal internal static options (constant) init (8); 269 dcl No char (1) unal internal static options (constant) init ("N"); 270 271 ec = 0; 272 perm_modesp = addr (perm_modes); 273 274 275 perm_modes_select (1) = Maxl; 276 perm_modes_select (2) = Timeout; 277 perm_modes_select (3) = N_pads; 278 perm_modes_select (4) = Pad_char; 279 perm_modes_select (5) = Eol_char; 280 perm_modes_select (6) = Quote_char; 281 perm_modes_select (7) = Check_type; 282 perm_modes_select (8) = Start_char; 283 perm_modes_select (9) = Parity; 284 perm_modes_select (10) = Eol_char; /* again for output */ 285 perm_modes_select (Ebp_select) = Eight_bit_char; 286 perm_modes_select (12) = Repeat_char; 287 perm_modes_select (13) = Capabilities; 288 perm_modes_select (14) = Window_size; 289 perm_modes_select (15) = Max_len_ext_1; 290 perm_modes_select (16) = Max_len_ext_2; 291 perm_modes_select (Line_byte_size_select) = Line_byte_size; 292 293 temp_modes_select (1) = I_maxl; 294 temp_modes_select (2) = O_timeout; 295 temp_modes_select (3) = I_n_pads; 296 temp_modes_select (4) = I_pad_char; 297 temp_modes_select (5) = I_eol_char; 298 temp_modes_select (6) = O_quote_char; 299 temp_modes_select (7) = G_check_type; 300 temp_modes_select (8) = G_start_char; 301 temp_modes_select (9) = G_parity; 302 temp_modes_select (10) = O_eol_char; 303 temp_modes_select (11) = G_eight_bit_char; 304 temp_modes_select (12) = G_repeat_char; 305 temp_modes_select (13) = G_capabilities; 306 temp_modes_select (14) = G_window; 307 temp_modes_select (15) = I_max_lenx1; 308 temp_modes_select (16) = I_max_lenx2; 309 310 call kermit_mode_mgr_$retrieve (infop, Permanent, perm_modes_select, perm_modesp, ec); 311 if ec ^= 0 then return; 312 313 /* No eight_bit_prefixing if binary mode is set */ 314 if perm_modes (Line_byte_size_select) = Eight_bit then perm_modes (Ebp_select) = rank (No); 315 316 call kermit_mode_mgr_$store (infop, Temporary, temp_modes_select, perm_modesp, ec); 317 318 319 return; 320 end set_initial_modes; 321 322 set_transfer_modes: proc (infop, remote_paramsp, remote_lth, local_paramsp, reset_sw, ec); 323 324 /**********************************************************************/ 325 /* */ 326 /*n Name: kermit_xfer_modes_$set_transfer_modes internal */ 327 /*i Input: infop, remote_paramsp, remote_lth, local_paramsp */ 328 /*i reset_sw */ 329 /*f Function: Sets the applicable values for the remote and */ 330 /*f local in new_modes. */ 331 /*o Output: ec */ 332 /*l Modified: 89-01-02 by S. Huen - Ignore invalid value and */ 333 /*l assume default value for the "maxl" field when */ 334 /*l using extended packet length. (pc_23) . */ 335 /* */ 336 /**********************************************************************/ 337 338 339 /* parameters */ 340 341 dcl ec fixed bin (35); 342 dcl infop ptr; 343 dcl remote_paramsp ptr; 344 dcl local_paramsp ptr; 345 dcl remote_lth fixed bin (21); 346 dcl reset_sw bit (1); 347 348 349 /* automatic */ 350 dcl tmp fixed bin (9); 351 dcl (remote_len, local_len) fixed bin; 352 dcl global_modes (7) char (1) unal; 353 dcl global_modesp ptr; 354 dcl 01 modes_select aligned, 355 02 remote (6) fixed bin, 356 02 global (7) fixed bin; 357 dcl old_modes (N_params) char (1); 358 dcl old_modesp ptr; 359 dcl r_paramsp ptr; 360 dcl remote_params (remote_lth) char (1) unal; 361 362 /* based */ 363 364 dcl local_params (N_params) char (1) based (local_paramsp) unal; 365 dcl old_modes_select (N_params) fixed bin based (addr (modes_select)) aligned; 366 367 /* constants */ 368 369 dcl Chkt fixed bin (8) internal static options (constant) init (8); 370 dcl Default_8bit_prefix char (1) internal static options (constant) init ("&"); 371 dcl Qbin fixed bin (8) internal static options (constant) init (7); 372 dcl Rept fixed bin (8) internal static options (constant) init (9); 373 dcl Capas fixed bin (8) internal static options (constant) init (10); 374 dcl Max_len_ext fixed bin (8) internal static options (constant) init (13); 375 dcl Yes char (1) internal static options (constant) init ("Y"); 376 377 378 379 ec = 0; 380 r_paramsp = addr (remote_params); 381 382 /* Specify modes to be set by initialization packet */ 383 384 modes_select.remote (1) = O_maxl; 385 modes_select.remote (2) = I_timeout; 386 modes_select.remote (3) = O_n_pads; 387 modes_select.remote (4) = O_pad_char; 388 modes_select.remote (5) = O_eol_char; 389 modes_select.remote (6) = I_quote_char; 390 391 modes_select.global (1) = G_eight_bit_char; 392 modes_select.global (2) = G_check_type; 393 modes_select.global (3) = G_repeat_char; 394 modes_select.global (4) = G_capabilities; 395 modes_select.global (5) = G_window; 396 modes_select.global (6) = O_max_lenx1; 397 modes_select.global (7) = O_max_lenx2; 398 399 /* Get the old modes */ 400 old_modesp = addr (old_modes); 401 call kermit_mode_mgr_$retrieve (infop, Temporary, old_modes_select, old_modesp, ec); 402 403 /* Decode the remote initialization parameters */ 404 call decode_params (infop, remote_paramsp, r_paramsp, remote_lth); 405 406 407 /* set global modes (same for input and output), but dependent on both systems */ 408 /* 8-bit quoting prefix */ 409 if remote_lth < Qbin then unspec (global_modes (1)) = unspec (Temp_defaults.qbin); 410 else do; 411 if remote_params (Qbin) = Yes & local_params (Qbin) = Yes then global_modes (1) 412 = Default_8bit_prefix; 413 else if remote_params (Qbin) = Yes then global_modes (1) = local_params (Qbin); 414 else if local_params (Qbin) = Yes then global_modes (1) = remote_params (Qbin); 415 else if local_params (Qbin) ^= remote_params (Qbin) then unspec (global_modes (1)) = unspec (Temp_defaults.qbin); 416 else if local_params (Qbin) = remote_params (Qbin) then global_modes (1) = local_params (Qbin); 417 end; 418 419 /* Error detecting code */ 420 if remote_lth < Chkt | local_params (Chkt) ^= remote_params (Chkt) 421 then unspec (global_modes (2)) = unspec (Temp_defaults.chkt); 422 else global_modes (2) = local_params (Chkt); 423 424 /* Repeat prefix */ 425 if remote_lth < Rept | local_params (Rept) ^= remote_params (Rept) 426 then unspec (global_modes (3)) = unspec (Temp_defaults.rept); 427 else global_modes (3) = local_params (Rept); 428 429 /* Capabilities */ 430 if remote_lth < Capas 431 then unspec (global_modes (4)) = "0"b; 432 else unspec (global_modes (4)) 433 = unspec (local_params (Capas)) & unspec (remote_params (Capas)); 434 /* Window */ 435 global_modes (5) = " "; 436 437 /* Max extended packet length */ 438 if unspec (global_modes (4)) & Ext_Headers 439 then do; 440 /* some kermits leave invalid values for maxl, we don't use 441* maxl with ext_packets, so ignore invalid value */ 442 remote_params(1) = "^"; /* assume maxl is 94 when ext_packet */ 443 444 if remote_lth < Max_len_ext 445 then do; 446 global_modes (6) = "%"; /* the default is 500 for ext_packet */ 447 global_modes (7) = "9"; 448 end; 449 else do; 450 remote_len = rank (remote_params (12)) * 95 451 + rank (remote_params (13)); 452 local_len = rank (local_params (12)) * 95 453 + rank (local_params (13)); 454 remote_len = min (local_len, remote_len); 455 tmp = fixed (remote_len / 95); 456 global_modes (6) = byte (tmp); 457 global_modes (7) = byte (mod (remote_len, 95)); 458 end; 459 end; 460 461 /* Store remote parameters */ 462 call kermit_mode_mgr_$store (infop, Temporary, modes_select.remote, r_paramsp, ec); 463 if ec ^= 0 then goto reset_modes; 464 465 /* Store global parameters */ 466 global_modesp = addr (global_modes); 467 call kermit_mode_mgr_$store (infop, Temporary, modes_select.global, global_modesp, ec); 468 469 reset_modes: 470 if reset_sw then 471 if ec=0 then call kermit_mode_mgr_$store (infop, Temporary, old_modes_select, old_modesp, ec); 472 else call kermit_mode_mgr_$store (infop, Temporary, old_modes_select, old_modesp, 0); 473 return; 474 end set_transfer_modes; 475 476 decode_params: proc (infop, datap, decoded_datap, n_params); 477 478 /**********************************************************************/ 479 /* */ 480 /*n Name: kermit_xfer_modes_$decode_params internal */ 481 /*i Input: infop, datap, decoded_datap */ 482 /*f Function: Decodes Send-Init data. */ 483 /*o Output: n_params */ 484 /* */ 485 /**********************************************************************/ 486 487 488 /* parameters */ 489 490 dcl datap ptr; 491 dcl decoded_datap ptr; 492 dcl infop ptr; 493 dcl n_params fixed bin (21); 494 495 /* automatic */ 496 497 dcl idx fixed bin; 498 499 /* based */ 500 dcl decoded_data (n_params) fixed bin (8) unal based (decoded_datap); 501 dcl packet_data (n_params) fixed bin (8) unal based (datap); 502 503 504 do idx = 1 to n_params; 505 if Init_field (idx) = Char_coded then decoded_data (idx) = packet_data (idx) - 32; 506 else if Init_field (idx) = Ctl_coded then unspec (decoded_data (idx)) = 507 bool (unspec (packet_data (idx)), "100"b3, "0110"b); 508 else if Init_field (idx) = Binary_coded then 509 decoded_data (idx) = packet_data (idx) - 48; 510 else decoded_data (idx) = packet_data (idx); 511 end; 512 513 return; 514 end decode_params; 515 516 end kermit_xfer_modes_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/01/89 1433.3 kermit_xfer_modes_.pl1 >spec>install>1020>kermit_xfer_modes_.pl1 90 1 07/07/88 2041.4 kermit_mode_info.incl.pl1 >ldd>include>kermit_mode_info.incl.pl1 92 2 11/20/84 1351.4 kermit_dcls.incl.pl1 >ldd>include>kermit_dcls.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. Binary_coded constant fixed bin(17,0) initial dcl 78 ref 233 508 Capabilities constant fixed bin(17,0) initial dcl 1-46 ref 287 Capas constant fixed bin(8,0) initial dcl 373 ref 430 432 432 Char_coded constant fixed bin(17,0) initial dcl 76 ref 230 505 Check_type constant fixed bin(17,0) initial dcl 1-36 ref 281 Chkt constant fixed bin(8,0) initial dcl 369 ref 420 420 420 422 Ctl_coded constant fixed bin(17,0) initial dcl 77 ref 231 506 Default_8bit_prefix constant char(1) initial packed unaligned dcl 370 ref 411 Ebp_select constant fixed bin(17,0) initial dcl 266 ref 285 314 Eight_bit constant fixed bin(8,0) initial packed unaligned dcl 268 ref 314 Eight_bit_char constant fixed bin(17,0) initial dcl 1-33 ref 285 Eol_char constant fixed bin(17,0) initial dcl 1-31 ref 279 284 Ext_Headers constant bit(9) initial packed unaligned dcl 1-120 ref 438 False constant bit(1) initial packed unaligned dcl 79 ref 173 G_capabilities constant fixed bin(17,0) initial dcl 1-93 ref 149 305 394 G_check_type constant fixed bin(17,0) initial dcl 1-86 ref 147 299 392 G_eight_bit_char constant fixed bin(17,0) initial dcl 1-83 ref 146 303 391 G_parity constant fixed bin(17,0) initial dcl 1-87 ref 301 G_repeat_char constant fixed bin(17,0) initial dcl 1-84 ref 148 304 393 G_start_char constant fixed bin(17,0) initial dcl 1-85 ref 300 G_window constant fixed bin(17,0) initial dcl 1-88 ref 150 306 395 I_eol_char constant fixed bin(17,0) initial dcl 1-75 ref 144 297 I_max_lenx1 constant fixed bin(17,0) initial dcl 1-89 ref 151 307 I_max_lenx2 constant fixed bin(17,0) initial dcl 1-90 ref 152 308 I_maxl constant fixed bin(17,0) initial dcl 1-71 ref 140 293 I_n_pads constant fixed bin(17,0) initial dcl 1-73 ref 142 295 I_pad_char constant fixed bin(17,0) initial dcl 1-74 ref 143 296 I_quote_char constant fixed bin(17,0) initial dcl 1-76 ref 389 I_timeout constant fixed bin(17,0) initial dcl 1-72 ref 385 Init_field 000006 constant fixed bin(17,0) initial array dcl 59 ref 230 231 233 505 506 508 Line_byte_size constant fixed bin(17,0) initial dcl 1-42 ref 291 Line_byte_size_select constant fixed bin(17,0) initial dcl 267 ref 291 314 Max_len_ext constant fixed bin(8,0) initial dcl 374 ref 444 Max_len_ext_1 constant fixed bin(17,0) initial dcl 1-44 ref 289 Max_len_ext_2 constant fixed bin(17,0) initial dcl 1-45 ref 290 Maxl constant fixed bin(17,0) initial dcl 1-27 ref 275 N_pads constant fixed bin(17,0) initial dcl 1-29 ref 277 N_params constant fixed bin(17,0) initial dcl 80 ref 55 136 357 364 365 No constant char(1) initial packed unaligned dcl 269 ref 314 O_eol_char constant fixed bin(17,0) initial dcl 1-81 ref 302 388 O_max_lenx1 constant fixed bin(17,0) initial dcl 1-91 ref 396 O_max_lenx2 constant fixed bin(17,0) initial dcl 1-92 ref 397 O_maxl constant fixed bin(17,0) initial dcl 1-77 ref 384 O_n_pads constant fixed bin(17,0) initial dcl 1-79 ref 386 O_pad_char constant fixed bin(17,0) initial dcl 1-80 ref 387 O_quote_char constant fixed bin(17,0) initial dcl 1-82 ref 145 298 O_timeout constant fixed bin(17,0) initial dcl 1-78 ref 141 294 Pad_char constant fixed bin(17,0) initial dcl 1-30 ref 278 Parity constant fixed bin(17,0) initial dcl 1-37 ref 283 Permanent 000006 constant fixed bin(17,0) initial dcl 1-21 set ref 310* Qbin constant fixed bin(8,0) initial dcl 371 ref 409 411 411 413 413 414 414 415 415 416 416 416 Quote_char constant fixed bin(17,0) initial dcl 1-32 ref 280 Repeat_char constant fixed bin(17,0) initial dcl 1-34 ref 286 Rept constant fixed bin(8,0) initial dcl 372 ref 425 425 425 427 Start_char constant fixed bin(17,0) initial dcl 1-35 ref 282 Store_all 000025 constant fixed bin(17,0) initial array dcl 1-24 set ref 112* Temp_defaults 000000 constant structure level 1 dcl 1-95 set ref 111 Temporary 000026 constant fixed bin(17,0) initial dcl 1-22 set ref 112* 154* 316* 401* 462* 467* 469* 472* Timeout constant fixed bin(17,0) initial dcl 1-28 ref 276 True constant bit(1) initial packed unaligned dcl 81 ref 193 Window_size constant fixed bin(17,0) initial dcl 1-43 ref 288 Yes constant char(1) initial packed unaligned dcl 375 ref 411 411 413 414 addr builtin function dcl 85 ref 111 272 380 400 401 466 469 472 bool builtin function dcl 85 ref 231 506 byte builtin function dcl 85 ref 456 457 chkt 3(27) 000000 constant fixed bin(8,0) initial level 2 packed packed unaligned dcl 1-95 set ref 420 datap parameter pointer dcl 490 ref 476 505 506 508 510 decoded_data based fixed bin(8,0) array packed unaligned dcl 500 set ref 505* 506* 508* 510* decoded_datap parameter pointer dcl 491 ref 476 505 506 508 510 e_params based fixed bin(8,0) array packed unaligned dcl 223 set ref 230* 231* 233* 235* ec parameter fixed bin(35,0) dcl 255 in procedure "set_initial_modes" set ref 242 271* 310* 311 316* ec parameter fixed bin(35,0) dcl 44 in procedure "kermit_xfer_modes_" set ref 94 108* 112* 113 116* 120 135* 154* 155 159 172* 174* 179 192* 194* ec parameter fixed bin(35,0) dcl 341 in procedure "set_transfer_modes" set ref 322 379* 401* 462* 463 467* 469 469* encoded_params_lth parameter fixed bin(21,0) dcl 210 in procedure "get_encoded_params" set ref 197 237* encoded_params_lth parameter fixed bin(21,0) dcl 42 in procedure "kermit_xfer_modes_" set ref 120 156* encoded_paramsp parameter pointer dcl 211 in procedure "get_encoded_params" ref 197 230 231 233 235 encoded_paramsp parameter pointer dcl 43 in procedure "kermit_xfer_modes_" set ref 120 156* fixed builtin function dcl 85 ref 455 global 6 000110 automatic fixed bin(17,0) array level 2 dcl 354 set ref 391* 392* 393* 394* 395* 396* 397* 467* global_modes 000104 automatic char(1) array packed unaligned dcl 352 set ref 409* 411* 413* 414* 415* 416* 420* 422* 425* 427* 430* 432* 435* 438 446* 447* 456* 457* 466 global_modesp 000106 automatic pointer dcl 353 set ref 466* 467* idx 000126 automatic fixed bin(17,0) dcl 218 in procedure "get_encoded_params" set ref 229* 230 230 230 231 231 231 233 233 233 235 235* idx 000150 automatic fixed bin(17,0) dcl 497 in procedure "decode_params" set ref 504* 505 505 505 506 506 506 508 508 508 510 510* infop parameter pointer dcl 45 in procedure "kermit_xfer_modes_" set ref 94 112* 120 154* 159 174* 179 194* 310* 316* infop parameter pointer dcl 342 in procedure "set_transfer_modes" set ref 322 401* 404* 462* 467* 469* 472* infop parameter pointer dcl 492 in procedure "decode_params" ref 476 kermit_mode_mgr_$retrieve 000010 constant entry external dcl 2-78 ref 154 310 401 kermit_mode_mgr_$store 000012 constant entry external dcl 2-90 ref 112 316 462 467 469 472 l_params based fixed bin(8,0) array packed unaligned dcl 224 ref 230 231 233 235 local_len 000102 automatic fixed bin(17,0) dcl 351 set ref 452* 454 local_params based char(1) array packed unaligned dcl 364 ref 411 413 414 415 416 416 420 422 425 427 432 452 452 local_params_lth parameter fixed bin(21,0) dcl 212 in procedure "get_encoded_params" ref 197 229 237 local_params_lth parameter fixed bin(21,0) dcl 47 in procedure "kermit_xfer_modes_" set ref 120 136* 156* local_paramsp parameter pointer dcl 344 in procedure "set_transfer_modes" ref 322 411 413 414 415 416 416 420 422 425 427 432 452 452 local_paramsp parameter pointer dcl 213 in procedure "get_encoded_params" ref 197 230 231 233 235 local_paramsp parameter pointer dcl 46 in procedure "kermit_xfer_modes_" set ref 120 154* 156* 159 174* 179 194* min builtin function dcl 86 ref 454 mod builtin function dcl 86 ref 457 modes_select 000110 automatic structure level 1 dcl 354 set ref 401 469 472 n_params parameter fixed bin(21,0) dcl 493 ref 476 504 old_modes 000125 automatic char(1) array packed unaligned dcl 357 set ref 400 old_modes_select based fixed bin(17,0) array dcl 365 set ref 401* 469* 472* old_modesp 000132 automatic pointer dcl 358 set ref 400* 401* 469* 472* packet_data based fixed bin(8,0) array packed unaligned dcl 501 ref 505 506 508 510 perm_modes 000136 automatic fixed bin(8,0) array packed unaligned dcl 259 set ref 272 314 314* perm_modes_select 000146 automatic fixed bin(17,0) array dcl 261 set ref 275* 276* 277* 278* 279* 280* 281* 282* 283* 284* 285* 286* 287* 288* 289* 290* 291* 310* perm_modesp 000144 automatic pointer dcl 260 set ref 272* 310* 316* qbin 3 000000 constant char(1) initial level 2 packed packed unaligned dcl 1-95 set ref 409 415 r_paramsp 000134 automatic pointer dcl 359 set ref 380* 404* 462* rank builtin function dcl 86 ref 314 450 450 452 452 remote 000110 automatic fixed bin(17,0) array level 2 dcl 354 set ref 384* 385* 386* 387* 388* 389* 462* remote_len 000101 automatic fixed bin(17,0) dcl 351 set ref 450* 454* 454 455 457 remote_lth parameter fixed bin(21,0) dcl 345 set ref 322 360 404* 409 420 425 430 444 remote_params 000136 automatic char(1) array packed unaligned dcl 360 set ref 380 411 413 414 415 416 420 425 432 442* 450 450 remote_params_lth parameter fixed bin(21,0) dcl 49 set ref 159 174* 179 194* remote_paramsp parameter pointer dcl 48 in procedure "kermit_xfer_modes_" set ref 159 174* 179 194* remote_paramsp parameter pointer dcl 343 in procedure "set_transfer_modes" set ref 322 404* rept 3(09) 000000 constant char(1) initial level 2 packed packed unaligned dcl 1-95 set ref 425 reset_sw 000102 automatic bit(1) packed unaligned dcl 54 in procedure "kermit_xfer_modes_" set ref 173* 174* 193* 194* reset_sw parameter bit(1) packed unaligned dcl 346 in procedure "set_transfer_modes" ref 322 469 send_init_select 000103 automatic fixed bin(17,0) array dcl 55 set ref 140* 141* 142* 143* 144* 145* 146* 147* 148* 149* 150* 151* 152* 154* temp_defaultsp 000100 automatic pointer dcl 50 set ref 111* 112* temp_modes_select 000167 automatic fixed bin(17,0) array dcl 262 set ref 293* 294* 295* 296* 297* 298* 299* 300* 301* 302* 303* 304* 305* 306* 307* 308* 316* tmp 000100 automatic fixed bin(9,0) dcl 350 set ref 455* 456 unspec builtin function dcl 86 set ref 231* 231 409* 409 415* 415 420* 420 425* 425 430* 432* 432 432 438 506* 506 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. File_type internal static fixed bin(17,0) initial dcl 1-40 File_warning internal static fixed bin(17,0) initial dcl 1-39 Incomplete internal static fixed bin(17,0) initial dcl 1-38 Perm_defaults internal static structure level 1 dcl 1-48 Retrieve_all internal static fixed bin(17,0) initial array dcl 1-25 Retry_threshold internal static fixed bin(17,0) initial dcl 1-41 kermit_comm_mgr_$flush_input 000000 constant entry external dcl 2-15 kermit_comm_mgr_$reset_line_modes 000000 constant entry external dcl 2-20 kermit_comm_mgr_$set_line_modes 000000 constant entry external dcl 2-25 kermit_get_filenames_ 000000 constant entry external dcl 2-30 kermit_log_mgr_$close_log 000000 constant entry external dcl 2-37 kermit_log_mgr_$disable 000000 constant entry external dcl 2-42 kermit_log_mgr_$display_stats 000000 constant entry external dcl 2-46 kermit_log_mgr_$enable 000000 constant entry external dcl 2-51 kermit_log_mgr_$log_message 000000 constant entry external dcl 2-55 kermit_log_mgr_$open_log 000000 constant entry external dcl 2-60 kermit_log_mgr_$start 000000 constant entry external dcl 2-66 kermit_log_mgr_$stop 000000 constant entry external dcl 2-70 kermit_mode_mgr_$get 000000 constant entry external dcl 2-74 kermit_mode_mgr_$set 000000 constant entry external dcl 2-86 kermit_pad_$receive 000000 constant entry external dcl 2-97 kermit_pad_$send 000000 constant entry external dcl 2-108 kermit_receive_$receive_from_remote 000000 constant entry external dcl 2-118 kermit_send_$send_to_remote 000000 constant entry external dcl 2-128 kermit_server_ 000000 constant entry external dcl 2-138 kermit_xfer_modes_$check_params 000000 constant entry external dcl 2-144 kermit_xfer_modes_$get_local_params 000000 constant entry external dcl 2-157 kermit_xfer_modes_$init 000000 constant entry external dcl 2-152 kermit_xfer_modes_$process_params 000000 constant entry external dcl 2-166 NAMES DECLARED BY EXPLICIT CONTEXT. check_params 000371 constant entry external dcl 179 decode_params 001544 constant entry internal dcl 476 ref 404 get_encoded_params 000431 constant entry internal dcl 197 ref 156 get_local_params 000201 constant entry external dcl 120 init 000115 constant entry external dcl 94 kermit_xfer_modes_ 000102 constant entry external dcl 21 process_params 000330 constant entry external dcl 159 reset_modes 001451 constant label dcl 469 ref 463 set_initial_modes 000563 constant entry internal dcl 242 ref 116 set_transfer_modes 001012 constant entry internal dcl 322 ref 174 194 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2010 2024 1676 2020 Length 2246 1676 14 205 111 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME kermit_xfer_modes_ 183 external procedure is an external procedure. get_encoded_params internal procedure shares stack frame of external procedure kermit_xfer_modes_. set_initial_modes internal procedure shares stack frame of external procedure kermit_xfer_modes_. set_transfer_modes 131 internal procedure uses auto adjustable storage. decode_params internal procedure shares stack frame of internal procedure set_transfer_modes. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME kermit_xfer_modes_ 000100 temp_defaultsp kermit_xfer_modes_ 000102 reset_sw kermit_xfer_modes_ 000103 send_init_select kermit_xfer_modes_ 000126 idx get_encoded_params 000136 perm_modes set_initial_modes 000144 perm_modesp set_initial_modes 000146 perm_modes_select set_initial_modes 000167 temp_modes_select set_initial_modes set_transfer_modes 000100 tmp set_transfer_modes 000101 remote_len set_transfer_modes 000102 local_len set_transfer_modes 000104 global_modes set_transfer_modes 000106 global_modesp set_transfer_modes 000110 modes_select set_transfer_modes 000125 old_modes set_transfer_modes 000132 old_modesp set_transfer_modes 000134 r_paramsp set_transfer_modes 000136 remote_params set_transfer_modes 000150 idx decode_params THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_int_this return_mac alloc_auto_adj mdfx1 ext_entry int_entry trunc_fx2 divide_fx1 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. kermit_mode_mgr_$retrieve kermit_mode_mgr_$store NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 55 000063 154 000067 21 000101 39 000110 94 000111 108 000126 111 000127 112 000131 113 000162 116 000164 117 000172 120 000173 135 000214 136 000215 140 000220 141 000222 142 000225 143 000227 144 000231 145 000233 146 000235 147 000237 148 000241 149 000243 150 000245 151 000247 152 000251 154 000253 155 000303 156 000305 157 000322 159 000323 172 000343 173 000344 174 000345 175 000366 179 000367 192 000404 193 000405 194 000407 195 000430 197 000431 229 000433 230 000443 231 000472 233 000515 235 000543 236 000555 237 000557 239 000562 242 000563 271 000565 272 000566 275 000570 276 000572 277 000574 278 000576 279 000600 280 000602 281 000604 282 000606 283 000610 284 000612 285 000614 286 000617 287 000621 288 000623 289 000625 290 000627 291 000631 293 000634 294 000636 295 000640 296 000642 297 000644 298 000646 299 000650 300 000652 301 000654 302 000656 303 000660 304 000662 305 000664 306 000666 307 000670 308 000672 310 000674 311 000726 314 000732 316 000757 319 001010 322 001011 360 001017 379 001027 380 001030 384 001032 385 001034 386 001036 387 001040 388 001042 389 001044 391 001046 392 001050 393 001052 394 001054 395 001056 396 001060 397 001062 400 001064 401 001066 404 001115 409 001132 411 001141 413 001164 414 001172 415 001200 416 001205 420 001207 422 001230 425 001233 427 001252 430 001255 432 001262 435 001276 438 001300 442 001304 444 001307 446 001312 447 001314 448 001316 450 001317 452 001330 454 001342 455 001346 456 001354 457 001357 462 001364 463 001414 466 001417 467 001421 469 001451 472 001512 473 001543 476 001544 504 001546 505 001555 506 001605 508 001630 510 001657 511 001671 513 001673 ----------------------------------------------------------- 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