COMPILATION LISTING OF SEGMENT x25_mpx Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: ACTC Technologies Inc. Compiled on: 10/28/92 1708.7 mst Wed Options: optimize list 1 /****^ ********************************************************* 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1989 * 4* * * 5* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* ********************************************************* */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(89-03-20,Parisek), approve(89-06-01,MCR8110), 16* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 17* Add support of protocol mpx. 18* END HISTORY COMMENTS */ 19 20 21 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend */ 22 x25_mpx: 23 procedure; 24 25 /* This procedure contains the non-privileged entries of the x25 26* multiplexer. These entries can be invoked at interrupt time 27* and therefore must be wired. 28* 29* Coded December 1978 by J. Stern 30* Modified July, 1979 by B.Westcott to support x25 level 3 protocol 31* Rewritten April 1980 by C. Hornig for installation 32* Problem with stop_mpx fixed October 1980 by C. Hornig 33* Modified to fix interrupts and trap bad packet format, October 1981, by C. Hornig. 34* Modified for flexible channel definitions, January 1982, by C. Hornig. 35* Modified to delete the HOST level 2 mpx, May 1982, by D. W. Cousins. 36* Modified to handle MASKED interrupt, August 1982, by Robert Coren. 37* Modified for MR10.1 improvements, January 1983, by C. Hornig 38* Modified for TELENET certification, and to cause the multiplexer rather than 39* the system to crash when tty_buf is full, February 1983, by R.J.C. Kissel. 40* Modified to fix a bug in handling data and flow control packets in DTE_RESET_REQUEST 41* state, March 1983, by R.J.C. Kissel. 42* Modified to correct a bug which only allows 11 chars of address for an x29 call request, June 1983, by R.J.C. Kissel. 43* Modified by Jis for Telenet parameter negotiation corrections. 6/23/83 44* Modified by Jis to allow reverse charging connect request per physical connection. August 1983. 45* Modified to bring some rationality to PAD parameter setting and to fix a problem with QUIT on TELENET, 46* August 1983, by R.J.C. Kissel. 47* Modified to handle the new line status from the FNP which means frame sizes are mis-matched, 48* April 1984, by R.J.C. Kissel (x25 error list #13). 49* Modified to discard output data on RESET CONFIRM, October 1984, by R.J.C. Kissel (x25 error list #12). 50* Modified to make a consistency check on P(r), October 1984, by R.J.C. Kissel (x25 error list #11). 51* Modified October 1984 by R.J.C. Kissel to use the value of the idle timer in the TTF for breakall mode. 52* Modified October 1984 by R.J.C. Kissel to not send empty packets for write_status, if we haven't heard from the last one (x25 error list #14). 53* Modified December 1984 by R.J.C. Kissel to make discarding ouput on RESET CONFIRM really work. 54* Modified January 1985 by R.J.C. Kissel to send line status on reset, and to fix clearing on idle VC. 55* Modified April 1985 by R.J.C. Kissel to handle multiple crash/hangup interrupts in interrupt 2, 3, and 17. (x25 error list #15). 56**/ 57 58 /* Parameters */ 59 60 dcl x25_chain_ptr ptr parameter; /* ptr to write chain (input) */ 61 dcl x25_code fixed bin (35) parameter; /* error code (output) */ 62 dcl x25_infop ptr parameter; /* ptr to control order info structure (input) */ 63 dcl x25_int_data bit (72) aligned parameter; /* interrupt data (input) */ 64 dcl x25_int_type fixed bin parameter; /* interrupt type (input) */ 65 dcl x25_modes char (*) parameter; /* mode string (output) */ 66 dcl x25_order char (*) parameter; /* control order name (input) */ 67 dcl X25_data_ptr ptr parameter; /* ptr to multiplexer data base (input) */ 68 dcl x25_mclp ptr parameter; /* ptr to modes change list */ 69 dcl X25_scx fixed bin parameter; /* subchannel number (input) */ 70 71 /* Automatic */ 72 73 dcl (endp, prev_blockp, chain_ptr, leftover_chain_ptr) ptr; 74 dcl (called_dte_addr_length, calling_dte_addr_length) unsigned fixed bin (4); 75 dcl (facility_disp, user_data_disp, facility_length, user_data_length) fixed bin; 76 dcl temp_ps unsigned fixed bin (7); 77 dcl lcx uns fixed bin (12); 78 dcl scx fixed bin; 79 dcl code fixed bin (35); 80 dcl (i, j) fixed bin; 81 dcl infop ptr; 82 dcl int_data bit (72) aligned; 83 dcl int_type fixed bin; 84 dcl (hdr_size, nchars) fixed bin (21); 85 dcl mode_found bit (1) aligned; 86 dcl order char (32) aligned; 87 dcl addr_string char (30) aligned; 88 dcl set_entry bit (1) aligned; 89 dcl pr_error bit (1) unaligned; 90 dcl protocol_mpx bit (1) unaligned; 91 dcl Call_data char (16); /* variable conversion of the call data - */ 92 /* Based */ 93 94 dcl 1 write_status_info aligned based (infop), 95 2 ev_chan fixed bin (71), 96 2 output_pending bit (1); 97 98 dcl dial_out_info aligned varying char (24) based (infop); 99 dcl 1 reason_of_hangup aligned based (infop) like NDIS_IND_REASON; 100 dcl 1 N_I_i aligned based (addr (buffer.chars)) like NCON_IND_info; 101 dcl 1 ifci aligned like input_flow_control_info based (infop); 102 dcl 1 ofci aligned like output_flow_control_info based (infop); 103 dcl 1 ftd aligned like foreign_terminal_data based (infop); 104 105 dcl 1 lap_down_status aligned based (addr (x25_int_data)), 106 2 link_down_status uns fixed bin (18) unaligned, /* 1 */ 107 2 last_function_process fixed bin (17) unaligned, /* coded function */ 108 2 which_state_process uns fixed bin (9) unaligned, /* process state */ 109 2 main_state uns fixed bin (9) unaligned, /* current frame level state */ 110 2 primary_sub_state uns fixed bin (9) unaligned, /* sub link up state */ 111 2 secondary_sub_state uns fixed bin (9) unaligned; 112 113 dcl 1 lap_cmdr_status aligned based (addr (x25_int_data)), 114 2 cmdr_status uns fixed bin (18) unaligned, /* constant 3 */ 115 2 cmdr_bytes (3) unaligned, /* I-frame at fault */ 116 3 pad bit (1) unaligned, /* N(s) & N(r) */ 117 3 byte bit (8) unaligned, /* flags w,x,y,z */ 118 2 pad bit (27) unaligned; 119 120 dcl 1 x25_pkt aligned based (blockp), 121 2 buffer_header bit (36), 122 2 l2_pad char (2 /* L2_HEADER_PAD */) unal, 123 2 l3_header unal, 124 3 pad1 bit (1) unal, 125 3 q bit (1) unal, /* data qualifier */ 126 3 d bit (1) unal, /* significance of P(R) across net */ 127 3 format bit (2) unal, /* general format identifier */ 128 3 lcgn bit (4) unal, /* Logical Channel Group Number */ 129 3 pad2 bit (1) unal, 130 3 lcn bit (8) unal, /* Logical Channel Number */ 131 2 l3_fc bit (0) unal, /* start of flow-control data */ 132 2 pad3 bit (1) unal, 133 2 type bit (8) unal, /* packet type */ 134 2 no_fc_data (56) bit (9) unal; 135 136 dcl l3_call_data char (user_data_length) based (addr (x25_pkt.no_fc_data (user_data_disp))); 137 138 dcl l3_facilities char (facility_length) based (addr (x25_pkt.no_fc_data (facility_disp + 1))); 139 dcl 1 m8_fc_data unal based (addr (x25_pkt.l3_fc)), /* flow-control data for mod-8 */ 140 2 pad bit (1), 141 2 pr uns fixed bin (3), /* P(R) */ 142 2 m bit (1), /* More Data */ 143 2 ps uns fixed bin (3), /* P(S) */ 144 2 data_sw bit (1), 145 2 user_data bit (0); 146 147 dcl 1 m128_fc_data unal based (addr (x25_pkt.l3_fc)), 148 2 pad1 bit (1), 149 2 ps uns fixed bin (7), 150 2 data_sw bit (1), 151 2 pad2 bit (1), 152 2 pr uns fixed bin (7), 153 2 m bit (1), 154 2 user_data bit (0); 155 156 dcl l4_data_ptr ptr; 157 dcl l4_data (56) bit (9) unal based (l4_data_ptr); 158 159 dcl based_area area based; 160 161 /* Constants */ 162 163 dcl L2_HEADER_PAD fixed bin static options (constant) init (2); 164 dcl TIMEOUT fixed bin (71) static options (constant) init (1000000); 165 dcl T20 fixed bin (71) static options (constant) init (180000000); 166 dcl MPX_UP fixed bin (71) static options (constant) init (1); 167 dcl MPX_DOWN fixed bin (71) static options (constant) init (2); 168 dcl MPX_MASKED fixed bin (71) static options (constant) init (3); 169 dcl DEFAULT_BAUD fixed bin internal static options (constant) init (1200); 170 dcl ( 171 MODE_RAWI init (1), 172 MODE_ECHOPLEX init (2), 173 MODE_BREAKALL init (3), 174 MODE_IFLOW init (4), 175 MODE_OFLOW init (5), 176 MODE_HNDLQUIT init (6), 177 MODE_LFECHO init (7), 178 MODE_POLITE init (8), 179 MODE_8BIT init (9) 180 ) fixed bin static options (constant); 181 dcl mode_names (11) char (8) aligned static options (constant) 182 init ("rawi", "echoplex", "breakall", "iflow", "oflow", "hndlquit", "lfecho", "polite", "8bit", "oddp", 183 "no_outp"); 184 185 dcl CALLRQ bit (8) unal static options (constant) init ("0b"b4); 186 /* call request or call indication (DCE) */ 187 dcl CALLAC bit (8) unal static options (constant) init ("0f"b4); 188 /* call accept or call connected (DCE) */ 189 dcl CLRRQ bit (8) unal static options (constant) init ("13"b4); 190 /* clear request or clear indication */ 191 dcl CLRCN bit (8) unal static options (constant) init ("17"b4); 192 /* clear-confirm (DCE) */ 193 dcl RSRTRQ bit (8) unal static options (constant) init ("fb"b4); 194 /* restart request or restart indication (DCE) */ 195 dcl RSRTCN bit (8) unal static options (constant) init ("ff"b4); 196 /* restart confirm (DCE) */ 197 dcl DIAG bit (8) unal static options (constant) init ("f1"b4); 198 /* diagnostic */ 199 dcl RESTRQ bit (8) unal static options (constant) init ("1b"b4); 200 /* reset request or reset indication (DCE) */ 201 dcl RESTCN bit (8) unal static options (constant) init ("1f"b4); 202 /* reset confirm (DCE) */ 203 dcl SNITRQ bit (8) unal static options (constant) init ("23"b4); 204 /* interrupt request or interrupt indication (DCE) */ 205 dcl SNITCN bit (8) unal static options (constant) init ("27"b4); 206 /* interrupt confirm (DCE) */ 207 dcl SNRR bit (8) unal static options (constant) init ("01"b4); 208 /* receiver ready (DCE) */ 209 dcl SNRNR bit (8) unal static options (constant) init ("05"b4); 210 /* receiver not ready (DCE) */ 211 dcl SNREJ bit (8) unal static options (constant) init ("09"b4); 212 dcl SNMASK bit (8) unal static options (constant) init ("0f"b4); 213 /* mask for sequence control packets */ 214 dcl NL char (1) static options (constant) init (" 215 "); /* new-line character */ 216 dcl CR_LF_FF char (3) int static options (constant) init (" 217 "); /* CR, LF, FF */ 218 219 /* Internal static */ 220 221 dcl et_action_not_performed fixed bin (35) static; 222 dcl et_bad_arg fixed bin (35) static; 223 dcl et_bad_mode fixed bin (35) static; 224 dcl et_invalid_state fixed bin (35) static; 225 dcl et_noalloc fixed bin (35) static; 226 dcl et_resource_unavailable fixed bin (35) static; 227 dcl et_undefined_order_request fixed bin (35) static; 228 dcl et_unimplemented_version fixed bin (35) static; 229 230 /* External static */ 231 232 dcl error_table_$action_not_performed fixed bin (35) ext static; 233 dcl error_table_$bad_arg fixed bin (35) ext static; 234 dcl error_table_$bad_mode fixed bin (35) ext static; 235 dcl error_table_$invalid_state fixed bin (35) ext static; 236 dcl error_table_$noalloc fixed bin (35) ext static; 237 dcl error_table_$resource_unavailable fixed bin (35) ext static; 238 dcl error_table_$undefined_order_request fixed bin (35) ext static; 239 dcl error_table_$unimplemented_version fixed bin (35) ext static; 240 241 dcl x25_mpx_data$trans_no_parity char (256) aligned external; 242 dcl x25_mpx_data$trans_no_parity_lfecho char (256) aligned external; 243 dcl x25_mpx_data$trans_parity_lfecho char (256) aligned external; 244 dcl x25_mpx_data$eight_bit char (512) aligned external; 245 dcl based_trans_table char (512) aligned based; 246 247 /* Builtins */ 248 249 dcl (addr, after, before, binary, bit, clock, dimension, divide, hbound, lbound, length, min, mod, null, pointer, rel, 250 rtrim, size, string, substr, unspec, verify) builtin; 251 /* Entries */ 252 253 dcl mrl_ entry (ptr, fixed bin (21), ptr, fixed bin (21)); 254 dcl mvt_ entry (ptr, ptr, fixed bin (21), char (512) aligned); 255 dcl pxss$ring_0_wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 256 dcl syserr entry options (variable); 257 dcl wire_proc$wire_me entry; 258 259 /* * * * * * * * * * CONTROL * * * * * * * * * */ 260 261 control: 262 entry (X25_data_ptr, X25_scx, x25_order, x25_infop, x25_code); 263 264 call setup_subchan; 265 order = x25_order; 266 infop = x25_infop; 267 pinfop = infop; 268 x25_code = 0; 269 270 protocol_mpx = get_protocol_sc (); 271 272 if xlcep = null () /* do we have a connection? */ 273 then if /* case */ order = "listen" then do; /* no */ 274 xsce.state = SC_LISTENING; /* listen for subchan to dial up */ 275 end; 276 277 else if order = "dial_out" then do; /* initiate connection? */ 278 if x25_data.lc_ptr = null () then do; 279 x25_code = et_invalid_state; 280 return; 281 end; 282 do lcx = x25_data.n_lc by -1 to 1 + x25_data.n_pvc while (x25_lces.lc (lcx).state ^= READY); 283 /* search for a free subchannel */ 284 end; 285 if lcx < 1 then do; 286 x25_code = et_resource_unavailable; 287 return; 288 end; 289 xlcep = addr (x25_lces.lc (lcx)); 290 xlce.flags.originate = "1"b; /* we made this call */ 291 292 if (^protocol_mpx & length (dial_out_info) > 0) then do; 293 xlce.call_data = after (dial_out_info, ":"); 294 xlce.baud_rate = x25_data.dialup_info.baud_rate; 295 xlce.flags.originate = "1"b; /* we made this call */ 296 xlce.flags.collect_call = x25_data.flags.out_calls_collect; 297 298 if substr (before (dial_out_info, ":"), 1, 4) = "x29," then do; 299 /* This is an X.29 call. */ 300 xlce.his_address = substr (before (dial_out_info, ":"), 5); 301 xlce.flags.iti_call = "1"b; 302 end; 303 304 else if substr (before (dial_out_info, ":"), 1, 1) = "*" then do; 305 /* This is an X.29 call. */ 306 xlce.his_address = substr (before (dial_out_info, ":"), 2); 307 xlce.flags.iti_call = "1"b; 308 end; 309 310 else do; /* Not an X.29 call. */ 311 xlce.his_address = before (dial_out_info, ":"); 312 xlce.flags.iti_call = "0"b; 313 call get_buffer (16); 314 end; 315 end; 316 317 /* if protocol_mpx is ON then length of dial_out_info will be zero since the 318* first word in NCON_REQ_info is zero and dial_out_info is a varying string 319* based on infop, which also points to NCON_REQ_info. */ 320 321 else if (length (dial_out_info) = 0) then do; 322 /* protocol_mpx is ON */ 323 /* Call not X29 (NCON_REQ) */ 324 /* use the NCON_REQ_info overlay */ 325 xlce.baud_rate = DEFAULT_BAUD; 326 xlce.call_data = NCON_REQ_info.data; 327 /* xlce.call_data not to contain all of the data. */ 328 xlce.his_address = NCON_REQ_info.to_address; 329 xlce.flags.iti_call = "0"b; 330 xsce.trans_table_ptr = null (); 331 call get_buffer (32); /* Get a buffer of size 32 to "Accommodate the large ISO calls" */ 332 end; 333 if xlce.flags.iti_call then do; 334 xlce.iti_params (13) = 4; /* build a call request packet */ 335 call get_buffer (16); 336 end; 337 338 call make_header (lcx, "0"b); 339 x25_pkt.type = CALLRQ; 340 if ^x25_data.flags.no_d then x25_pkt.l3_header.d = "1"b; 341 calling_dte_addr_length = length (x25_data.my_address); 342 called_dte_addr_length = length (xlce.his_address); 343 x25_pkt.no_fc_data (1) = "0"b || bit (calling_dte_addr_length) || bit (called_dte_addr_length); 344 facility_disp = 2 + divide (called_dte_addr_length + calling_dte_addr_length + 1, 2, 17, 0); 345 346 addr_string = xlce.his_address || x25_data.my_address; 347 do i = 2 to facility_disp - 1; /* convert to BCD */ 348 x25_pkt.no_fc_data (i) = 349 "0"b || substr (unspec (substr (addr_string, 2 * i - 3, 1)), 6, 4) 350 || substr (unspec (substr (addr_string, 2 * i - 2, 1)), 6, 4); 351 end; 352 353 /* Set the "reverse charging" facility according to the value of collect= in the TTF */ 354 /* facilities "by default", correct below if necessary... */ 355 x25_pkt.no_fc_data (facility_disp) = "002"b3; 356 x25_pkt.no_fc_data (facility_disp + 1) = "001"b3; 357 if protocol_mpx then do; 358 facility_length = 2; 359 if xlce.collect_call 360 then l3_facilities = ""; /* taxation on demand */ 361 else l3_facilities = ""; /* taxation on caller ("demander" or "applicant") */ 362 user_data_disp = facility_disp + 3; 363 facility_length = length (NCON_REQ_info.facilities); 364 if facility_length ^= 0 then do; 365 x25_pkt.no_fc_data (facility_disp) = substr (unspec (facility_length), 27, 9); 366 l3_facilities = NCON_REQ_info.facilities; 367 user_data_disp = facility_disp + facility_length + 1; 368 end; 369 user_data_length = length (NCON_REQ_info.data); 370 l3_call_data = NCON_REQ_info.data; 371 end; 372 else do; 373 if xlce.collect_call 374 then x25_pkt.no_fc_data (facility_disp + 2) = "001"b3; 375 else x25_pkt.no_fc_data (facility_disp + 2) = "000"b3; 376 user_data_disp = facility_disp + 3; 377 user_data_length = length (xlce.call_data) + 4; 378 unspec (substr (l3_call_data, 1, 4)) = ""b3; 379 if xlce.flags.iti_call then unspec (substr (l3_call_data, 1, 1)) = "001"b3; 380 substr (l3_call_data, 5) = xlce.call_data; 381 end; 382 383 buffer.tally = 2 + user_data_disp + user_data_length + L2_HEADER_PAD; 384 call write_pkt; 385 call send_output; 386 387 xsce.state = SC_DIALING; 388 xsce.lcx = lcx; 389 xlce.scx = scx; 390 call state_change (DTE_WAITING); 391 end; 392 393 else if order = "hangup" then do; /* cancel a previous listen */ 394 call reset_xsce; 395 end; 396 397 else if (protocol_mpx & order = "get_network_infos") then do; 398 /* retrieve network infos */ 399 network_infos.network_address = x25_data.my_address; 400 network_infos.max_packet_size = x25_lces.lc (1).max_packet_size; 401 end; 402 else x25_code = et_undefined_order_request; /* only these are valid if not dialed */ 403 404 else if /* case */ order = "hangup" then do; /* pull the plug on this subchan */ 405 if xlce.flags.iti_call & ^xlce.flags.originate then do; 406 call get_buffer (16); /* this is PAD, ask nicely */ 407 call make_header (lcx, "1"b); /* by making an invitation to clear */ 408 l4_data (1) = "001"b3; 409 buffer.tally = hdr_size + 1 + L2_HEADER_PAD; 410 call write_data_pkt; 411 end; 412 413 else if (protocol_mpx & infop ^= null ()) then call clear_call ((reason_of_hangup.diag)); 414 else call clear_call (0); /* send a clear request */ 415 end; 416 417 else if (protocol_mpx & (order = "connect_response")) then do; 418 /* primitive ISO NCONNECT RESPONSE */ 419 if xlce.state ^= CONRESP_WAITING | xsce.state ^= SC_DIALING 420 then x25_code = et_invalid_state; 421 else do; 422 call reset_timer; 423 call send_NCON_RESP; 424 xsce.state = SC_DIALING; 425 xlce.state = FLOW_CONTROL_READY; 426 xsce.flags.output_ready = "1"b; 427 call channel_manager$interrupt (xsce.devx, SEND_OUTPUT, ""b); 428 x25_code = 0; 429 end; 430 end; 431 432 else if order = "wru" then do; 433 if ^xsce.flags.wru_done then do; 434 call tty_space_man$get_buffer (xsce.devx, 16, INPUT, blockp); 435 if blockp ^= null () then do; 436 buffer.next = 0; 437 string (buffer.flags) = ""b; 438 buffer.flags.break = "1"b; 439 string (buffer.chars) = "X.25:" || xlce.his_address || NL; 440 buffer.tally = length (rtrim (string (buffer.chars))); 441 442 rtx_info.input_chain.chain_head, rtx_info.input_chain.chain_tail = rel (blockp); 443 rtx_info.input_count = 16; 444 string (rtx_info.flags) = ""b; 445 rtx_info.flags.break_char = "1"b; 446 447 call channel_manager$interrupt (xsce.devx, ACCEPT_INPUT, unspec (rtx_info)); 448 xsce.flags.wru_done = "1"b; 449 end; 450 end; 451 end; 452 453 else if order = "abort" then ; /* this is too tough */ 454 455 else if order = "write_status" then do; 456 write_status_info.output_pending = (xlce.next_send_seq ^= xlce.next_ack_seq); 457 if write_status_info.output_pending & ^xlce.flags.write_status_sync_sent then call send_sync; 458 /* watch out for open windows */ 459 end; 460 461 else if order = "interrupt" then do; 462 if xlce.flags.int_issued then return; /* only one interrupt at a time */ 463 call get_buffer (16); 464 call make_header (lcx, "0"b); 465 x25_pkt.type = SNITRQ; 466 x25_pkt.no_fc_data (1) = ""b; 467 buffer.tally = 4 + L2_HEADER_PAD; /* length of packet = 4 */ 468 call write_pkt; 469 call send_output; 470 xlce.flags.int_issued = "1"b; /* show interrupt request issued */ 471 472 if xlce.flags.iti_call & (xlce.iti_params (7) = 21) then do; 473 call get_buffer (16); 474 call make_header (lcx, "1"b); 475 l4_data (1) = "003"b3; 476 l4_data (2) = "010"b3; 477 l4_data (3) = "001"b3; 478 buffer.tally = hdr_size + 3 + L2_HEADER_PAD; 479 call write_data_pkt; 480 xlce.iti_params (8) = 1; 481 end; 482 end; 483 484 else if order = "input_flow_control_chars" then do; 485 if (ifci.suspend_seq.count ^= 1) | (ifci.resume_seq.count ^= 1) 486 | (substr (ifci.suspend_seq.chars, 1, 1) ^= "" /* XOFF */) 487 | (substr (ifci.resume_seq.chars, 1, 1) ^= "" /* XON */) 488 then x25_code = et_bad_arg; 489 end; 490 491 else if order = "output_flow_control_chars" then do; 492 if string (ofci.flags) ^= ""b 493 & ((^ofci.flags.suspend_resume) | (ofci.suspend_or_etb_seq.count > 1) 494 | (ofci.resume_or_ack_seq.count > 1) 495 | (substr (ofci.suspend_or_etb_seq.chars, 1, 1) ^= "" /* XOFF */) 496 | (substr (ofci.resume_or_ack_seq.chars, 1, 1) ^= "" /* XON */)) 497 then x25_code = et_bad_arg; 498 end; 499 500 else if order = "set_framing_chars" then ; /* we could play with forwarding conditions */ 501 502 else if xlce.flags.iti_call & xlce.flags.originate & (order = "get_foreign_terminal_data") then do; 503 if ftd.version ^= FOREIGN_TERMINAL_DATA_VERSION_1 then do; 504 x25_code = et_unimplemented_version; 505 return; 506 end; 507 number_of_modes = 7; 508 allocate mode_string_info in (ftd.area_ptr -> based_area) set (mode_string_info_ptr); 509 mode_string_info.version = mode_string_info_version_2; 510 do i = 1 to number_of_modes; 511 mode_string_info.modes (i).version = mode_value_version_3; 512 mode_string_info.modes (i).mode_name = mode_names (i); 513 mode_string_info.modes (i).flags.boolean_valuep = "1"b; 514 end; 515 mode_string_info.modes (MODE_RAWI).boolean_value = (xlce.iti_params (1) = 0); 516 mode_string_info.modes (MODE_ECHOPLEX).boolean_value = (xlce.iti_params (2) ^= 0); 517 mode_string_info.modes (MODE_BREAKALL).boolean_value = (xlce.iti_params (4) ^= 0); 518 mode_string_info.modes (MODE_IFLOW).boolean_value = (xlce.iti_params (5) ^= 0); 519 mode_string_info.modes (MODE_OFLOW).boolean_value = (xlce.iti_params (12) ^= 0); 520 mode_string_info.modes (MODE_HNDLQUIT).boolean_value = (xlce.iti_params (7) = 21); 521 mode_string_info.modes (MODE_LFECHO).boolean_value = (xlce.iti_params (13) ^= 0); 522 523 ftd.mode_string_info_ptr = mode_string_info_ptr; 524 xsce.flags.need_ftd = "1"b; 525 end; 526 527 else x25_code = et_undefined_order_request; 528 529 return; 530 531 /* * * * * * * * * * CHECK_MODES * * * * * * * * * */ 532 533 check_modes: 534 entry (X25_data_ptr, X25_scx, x25_mclp, x25_code); 535 536 set_entry = "0"b; 537 goto modes_common; 538 539 /* * * * * * * * * * SET_MODES * * * * * * * * * */ 540 541 set_modes: 542 entry (X25_data_ptr, X25_scx, x25_mclp, x25_code); 543 544 set_entry = "1"b; 545 modes_common: 546 call setup_subchan; 547 if xlcep = null () then do; 548 x25_code = et_invalid_state; 549 return; 550 end; 551 x25_code = 0; 552 mclp = x25_mclp; 553 554 if mcl.version ^= mcl_version_2 then do; 555 x25_code = et_unimplemented_version; 556 return; 557 end; 558 559 if set_entry then do; 560 if mcl.init then do; 561 string (xsce.mode) = ""b; 562 end; 563 end; 564 565 do i = 1 to mcl.n_entries; 566 mclep = addr (mcl.entries (i)); 567 mode_found = "0"b; 568 do j = 1 to dimension (mode_names, 1); 569 if mcle.mode_name = mode_names (j) then do; 570 mode_found = "1"b; 571 if set_entry 572 then if mcle.mpx_mode 573 then xsce.mode (j) = mcle.mode_switch; 574 else ; 575 else mcle.mpx_mode = "1"b; 576 end; 577 end; 578 579 if ^mode_found 580 then if set_entry 581 then if mcle.mpx_mode & ^mcle.force then do; 582 /* this is a mode we want to set */ 583 mcle.error = "1"b; 584 x25_code = et_bad_mode; 585 end; 586 else ; 587 else mcle.mpx_mode = "0"b; 588 end; 589 590 if set_entry then do; /* Set the modes. */ 591 592 /* Get the right translation table. */ 593 594 if xsce.mode (MODE_8BIT) then do; 595 if xsce.mode (MODE_LFECHO) 596 then xsce.trans_table_ptr = addr (x25_mpx_data$trans_parity_lfecho); 597 else xsce.trans_table_ptr = null (); 598 end; 599 600 else if xsce.mode (MODE_LFECHO) then xsce.trans_table_ptr = addr (x25_mpx_data$trans_no_parity_lfecho); 601 602 else xsce.trans_table_ptr = addr (x25_mpx_data$trans_no_parity); 603 604 /* See if we are doing X.29, and who is the PAD. */ 605 /* format: comcol71 */ 606 607 if xlce.flags.iti_call & ^xlce.flags.originate then do;/* X.29 and he is the PAD, so set parameters. */ 608 call get_buffer (16); 609 call make_header (lcx, "1"b); 610 l4_data (1) = "002"b3; 611 nchars = 1; 612 613 /* Set the following parameters for all network types. */ 614 615 call add_iti_mode (MODE_RAWI, 1, 0, 1); /* PAD recall with a character, 0 = none, 1 = ^P */ 616 call add_iti_mode (MODE_ECHOPLEX, 2, 1, 0); /* PAD echo, 0 = off, 1 = on */ 617 call add_iti_mode (MODE_BREAKALL, 3, 0, 2); /* PAD data forwarding, 0 = none, 2 = CR. */ 618 call add_iti_mode (MODE_BREAKALL, 4, (x25_data.breakall_idle_timer), 0); 619 /* PAD idle timer, 1/20 seconds. */ 620 call add_iti_mode (MODE_IFLOW, 5, 1, 0); /* PAD input XON/XOFF mode. */ 621 call add_iti_mode (MODE_HNDLQUIT, 7, 21, 1); /* PAD break handling, 21 = normal, 1 = interrupt only. */ 622 call add_iti_mode (MODE_OFLOW, 12, 1, 0); /* PAD output XON/XOFF mode. */ 623 call add_iti_mode (MODE_LFECHO, 13, 4, 0); /* PAD LF echoing, 4 = echo LF to terminal, 0 = none. */ 624 625 call add_iti_param (10, 0); /* Turn off PAD line folding. */ 626 call add_iti_param (15, 0); /* Turn off PAD editing. */ 627 628 /* Now do the network specific parameter settings. */ 629 630 if x25_data.net_type = "datapac" then do; 631 call add_iti_param (0, 0); /* CCITT National marker. */ 632 call add_iti_mode (MODE_POLITE, 125, 30, 0); 633 call add_iti_mode (MODE_LFECHO, 126, 4, 0); 634 end; 635 636 else if x25_data.net_type = "telenet" then do; 637 call add_iti_param (0, 33); /* Telenet National marker. */ 638 call add_iti_mode (MODE_LFECHO, 1, 4, 0); /* Telenet LF echoing. */ 639 end; 640 641 else if x25_data.net_type = "tymnet" then ; /* Nothing special for now. */ 642 643 else ; /* Unspecified network type, nothing special for now. */ 644 645 buffer.tally = hdr_size + nchars + L2_HEADER_PAD; 646 call write_data_pkt; 647 end; /* X.29 and he is the PAD, so set parameters. */ 648 end; /* Set the modes. */ 649 650 /* format: comcol61 */ 651 652 return; 653 654 /* * * * * * * * * * * GET_MODES * * * * * * * * * * */ 655 656 get_modes: 657 entry (X25_data_ptr, X25_scx, x25_modes, x25_code); 658 659 x25_code = 0; 660 x25_modes = ""; 661 return; 662 663 /* * * * * * * * * * WRITE * * * * * * * * * */ 664 665 write: 666 entry (X25_data_ptr, X25_scx, x25_chain_ptr, x25_code); 667 668 call setup_subchan; 669 if xlcep = null () then do; 670 x25_code = et_invalid_state; 671 return; 672 end; 673 x25_code = 0; 674 675 protocol_mpx = get_protocol_sc (); 676 677 xsce.flags.output_ready = "0"b; 678 679 if xlce.flags.iti_break then return; /* so we won't take any of the new one */ 680 681 do chain_ptr = x25_chain_ptr repeat (leftover_chain_ptr) 682 while ((chain_ptr ^= null ()) & ^xsce.flags.end_of_page); 683 nchars = 0; 684 prev_blockp = null (); 685 do blockp = chain_ptr repeat (pointer (blockp, buffer.next)); 686 nchars = nchars + buffer.tally; 687 call mvt_ (addr (buffer.chars), addr (buffer.chars), (buffer.tally), x25_mpx_data$eight_bit); 688 if (nchars > xlce.max_packet_size) | (buffer.next = 0) | buffer.flags.end_of_page | buffer.flags.break 689 then goto end_chain; 690 string (buffer.flags) = ""b; 691 prev_blockp = blockp; 692 end; 693 694 /**** 695* The assumption is made at this point that xlce.max_packet_size is larger 696* than the buffer size. If it weren't, then the above loop would have exited 697* before setting prev_blockp, and the system will crash with a reference 698* through a null pointer below. This situation should never arise since 699* as_x25_mpx_ checks that the packet size is larger than the minimum 700* buffer size. If the system crashes, someone has failed abysmally. 701*****/ 702 703 end_chain: 704 if nchars > xlce.max_packet_size then do; /* can take only part of the chain */ 705 prev_blockp -> buffer.next = 0; /* break chain here */ 706 leftover_chain_ptr = blockp; /* we'll give back the rest */ 707 endp = prev_blockp; /* we want this to point to last block */ 708 end; 709 710 else do; 711 endp = blockp; 712 if buffer.next = 0 713 then leftover_chain_ptr = null (); 714 else do; 715 leftover_chain_ptr = pointer (blockp, buffer.next); 716 buffer.next = 0; 717 end; 718 end; 719 720 /* Construct a standard X25 data frame consisting of: 721* (1) level 2 header pad (if any) 722* (2) level 3 header 723* (3) text message 724* 725* The write chain we were given constitutes the body of the text 726* message. */ 727 728 xsce.flags.end_of_page = endp -> buffer.flags.end_of_page; 729 730 blockp = chain_ptr; /* now build the header */ 731 if x25_data.seq_mod = 8 then do; 732 hdr_size = 3; 733 l4_data_ptr = addr (m8_fc_data.user_data); 734 end; 735 else do; 736 hdr_size = 4; 737 l4_data_ptr = addr (m128_fc_data.user_data); 738 end; 739 call mrl_ (addr (buffer.chars), (buffer.tally), l4_data_ptr, (buffer.tally)); 740 buffer.tally = buffer.tally + hdr_size + L2_HEADER_PAD; 741 /* make room for header */ 742 call make_header (lcx, "0"b); 743 x25_pkt.type = "00"b4; 744 745 /* 746* if ^(endp -> buffer.break | endp -> buffer.end_of_page) 747* then if x25_data.seq_mod = 8 748* then m8_fc_data.m = "1"b; 749* else m128_fc_data.m = "1"b; 750**/ 751 if protocol_mpx then do; 752 if ^xlce.flags.iti_call & ^endp -> buffer.flags.break 753 then if x25_data.seq_mod = 8 754 then m8_fc_data.m = "1"b; 755 else m128_fc_data.m = "1"b; 756 end; 757 758 call tty_space_man$switch_chain (xsce.devx, x25_data.devx, OUTPUT, OUTPUT, blockp); 759 string (endp -> buffer.flags) = ""b; 760 call write_data_pkt; 761 end; 762 763 call solicit_output; /* if we took it all, get more */ 764 x25_chain_ptr = chain_ptr; 765 x25_code = 0; 766 return; 767 768 /* * * * * * * * * * * INTERRUPT * * * * * * * * * * */ 769 770 interrupt: 771 entry (X25_data_ptr, x25_int_type, x25_int_data); 772 773 x25_data_ptr = X25_data_ptr; 774 int_type = x25_int_type; 775 int_data = x25_int_data; 776 xscep, xlcep = null (); 777 778 if (int_type < lbound (INTERRUPT, 1)) | (int_type > hbound (INTERRUPT, 1)) 779 then goto bad_interrupt; 780 else goto INTERRUPT (int_type); 781 782 783 INTERRUPT (1): /* DIALUP - major channel has dialed up */ 784 if x25_data.state ^= X25_LISTENING then goto bad_interrupt; 785 unspec (x25_data.dialup_info) = int_data; 786 if ^x25_data.flags.bypass_restart then call restart (0); 787 return; 788 789 790 INTERRUPT (2): /* HANGUP - major channel has hung up */ 791 call pxss$ring_0_wakeup (x25_data.load_proc_id, x25_data.load_ev_chan, MPX_DOWN, code); 792 793 if x25_data.state ^= X25_HUNGUP then do; 794 call crash_subchannels; 795 call x25_hangup; 796 end; 797 798 return; 799 800 INTERRUPT (3): /* CRASH - parent multiplexer has died */ 801 if x25_data.state ^= X25_HUNGUP then do; 802 call crash_subchannels; 803 call x25_hangup; 804 end; 805 806 return; 807 808 INTERRUPT (9): /* LINE STATUS - process fnp status message */ 809 /**** 810* Currently, for the two cases of line status (1 or 3), the FNP has sent the 811* line status, and then deactivated itself. This causes it to stop listening 812* to the link, and also to send us a hangup interrupt. This is done to solve 813* a race condition with the previous implementation: 814* 815* 1) FNP sends line status and goes back to listen to the link 816* 2) we send deactivate order 817* 3) FNP stops listening to the line and sends us a hangup order 818* 4) we crash the multiplexer. 819* 820* If the link comes up between 1 and 2, the FNP sends us a dialup interrupt 821* which we ignore, and then at deactivate time the FNP does not tell the 822* other side that he is disconnecting. This creates problems which are 823* solved by the current scheme. 824*****/ 825 if lap_down_status.link_down_status = 1 826 then call syserr (Log_message, 827 "x25_mpx(^a): Failure, Link state: ^d, Current action: ^d, in ^d, Primary state: ^d, Secondary state: ^d", 828 x25_data.name, lap_down_status.main_state, lap_down_status.last_function_process, 829 lap_down_status.which_state_process, lap_down_status.primary_sub_state, 830 lap_down_status.secondary_sub_state); 831 832 else if lap_cmdr_status.cmdr_status = 3 833 then call syserr (Log_message, 834 "x25_mpx(^a): Link disconnected due to mis-matched frame sizes. CMDR/FRMR frame: ^( ^.4b^).", 835 x25_data.name, lap_cmdr_status.cmdr_bytes.byte (*)); 836 837 else goto bad_interrupt; /* We don't know this status. */ 838 839 return; /* FNP will send hangup itself. */ 840 841 842 INTERRUPT (4): /* SEND OUTPUT - it's safe to write next output frame now */ 843 x25_data.flags.send_output = "1"b; 844 845 if (x25_data.long_packet_head ^= 0) & (x25_data.write_head = null ()) then do; 846 scx = x25_data.long_packet_head; 847 xscep = addr (x25_data.sc (scx)); 848 lcx = xsce.lcx; 849 xlcep = addr (x25_lces.lc (lcx)); 850 x25_data.long_packet_head = xsce.long_packet_next_scx; 851 if x25_data.long_packet_head = 0 then x25_data.long_packet_tail = 0; 852 xsce.flags.long_packet_pending = "0"b; 853 call send_data_packets; 854 end; 855 856 call send_output; 857 return; 858 859 860 INTERRUPT (5): /* INPUT_AVAILABLE */ 861 INTERRUPT (10): /* DIAL STATUS - ignore */ 862 INTERRUPT (11): /* WRU TIMEOUT - ignore */ 863 bad_interrupt: 864 call syserr (Log_message, "x25_mpx(^a): Unexpected interrupt ^d ^.3b received.", x25_data.name, int_type, 865 int_data); 866 867 INTERRUPT (7): /* INPUT REJECTED - ignore */ 868 INTERRUPT (8): /* QUIT - ignore */ 869 INTERRUPT (12): /* SPACE AVAILABLE - some buffer space was freed that we need */ 870 INTERRUPT (13): /* ACKNOWLEDGE_ECHNEGO_INIT */ 871 INTERRUPT (14): /* ACKNOWLEDGE_ECHNEGO_STOP */ 872 INTERRUPT (16): /* USER_INTERRUPT */ 873 return; 874 875 INTERRUPT (17): /* MASKED - treat like HANGUP but use different wakeup message */ 876 call pxss$ring_0_wakeup (x25_data.load_proc_id, x25_data.load_ev_chan, MPX_MASKED, code); 877 878 if x25_data.state ^= X25_HUNGUP then do; 879 call crash_subchannels; 880 x25_data.state = X25_HUNGUP; 881 end; 882 883 return; 884 885 INTERRUPT (15): /* TIMER */ 886 unspec (timer_info) = int_data; 887 lcx = timer_info.subchan_idx; 888 889 if lcx = 0 then do; 890 if (x25_data.state = X25_RESTARTING) & (clock () > x25_data.restart_time + T20) then do; 891 call restart (52); 892 end; 893 return; 894 end; 895 896 xlcep = addr (x25_lces.lc (lcx)); 897 xlce.flags.timer_set = "0"b; 898 scx = xlce.scx; 899 xscep = addr (x25_data.sc (scx)); 900 protocol_mpx = get_protocol_sc (); 901 902 if xlce.state = FLOW_CONTROL_READY then do; 903 call send_rr; 904 return; 905 end; 906 907 if clock () > xlce.state_time + T20 then do; 908 call syserr (Log_message, "x25_mpx(^a/^d): Time out in state ^d.", x25_data.name, lcx, xlce.state); 909 if xlce.state = DTE_WAITING then do; 910 call clear_call (49); 911 return; 912 end; 913 else if xlce.state = DTE_RESET_REQUEST then do; 914 call clear_call (51); 915 return; 916 end; 917 else if xlce.state = DTE_CLEAR_REQUEST then do; 918 call clear_call (50); 919 return; 920 end; 921 else if protocol_mpx & (xlce.state = CONRESP_WAITING) then do; 922 call clear_call (48); 923 return; 924 end; 925 end; 926 927 return; 928 929 INTERRUPT (6): /* ACCEPT INPUT - process an input frame */ 930 unspec (rtx_info) = int_data; 931 chain_ptr, blockp = pointer (x25_data_ptr, rtx_info.chain_head); 932 endp = pointer (x25_data_ptr, rtx_info.chain_tail); 933 934 if buffer.tally < L2_HEADER_PAD + 3 then do; /* too short? */ 935 call syserr (Log_message, "x25_mpx(^a): Packet too short.", x25_data.name); 936 call dump_pkt; 937 call send_diag (38); 938 goto done_in_pkt; 939 end; 940 941 if x25_pkt.l3_header.format ^= x25_data.gfid then do; 942 /* do we understand it? */ 943 call syserr (Log_message, "x25_mpx(^a): Unrecognized general format ID ^b^b^2b.", x25_data.name, 944 x25_pkt.l3_header.q, x25_pkt.l3_header.d, x25_pkt.l3_header.format); 945 call dump_pkt; 946 call send_diag (40); 947 goto done_in_pkt; 948 end; 949 950 lcx = binary (x25_pkt.l3_header.lcgn || x25_pkt.l3_header.lcn, 12); 951 952 /* Check for invalid logical channel. If channels start at zero then maximum is (n_lc - 1). */ 953 954 if lcx > x25_data.n_lc then do; 955 call syserr (Log_message, "x25_mpx(^a): Invalid channel number ^d.", x25_data.name, lcx); 956 call dump_pkt; 957 call send_diag (36); 958 goto done_in_pkt; 959 end; 960 961 protocol_mpx = "0"b; 962 if x25_data.state = X25_ACTIVE then do; 963 if lcx = 0 then do; 964 965 /* Restart Request */ 966 967 if x25_pkt.type = RSRTRQ then do; 968 call crash_subchannels; 969 call free_in_pkt; 970 call get_buffer (16); 971 call make_header (0, "0"b); 972 x25_pkt.type = RSRTCN; 973 buffer.tally = 3 + L2_HEADER_PAD; 974 call write_pkt; 975 call send_output; 976 goto done_in_pkt; 977 end; 978 979 /* Restart Confirmation */ 980 981 if x25_pkt.type = RSRTCN then do; 982 call free_in_pkt; 983 call restart (16); 984 goto done_in_pkt; 985 end; 986 987 /* Diagnostic */ 988 989 if x25_pkt.type = DIAG then do; 990 call syserr (Log_message, "x25_mpx(^a): Diagnostic type ^d.", x25_data.name, 991 binary (x25_pkt.no_fc_data (1), 8)); 992 call dump_pkt; 993 goto done_in_pkt; 994 end; 995 996 call syserr (Log_message, "x25_mpx(^a): Invalid packet type ^.4b on LC 0.", x25_data.name, 997 x25_pkt.type); 998 call dump_pkt; 999 goto done_in_pkt; 1000 end; 1001 1002 /* now examine packets for other logical channels */ 1003 1004 xlcep = addr (x25_lces.lc (lcx)); 1005 scx = xlce.scx; 1006 if scx > 0 then do; 1007 xscep = addr (x25_data.sc (scx)); 1008 protocol_mpx = get_protocol_sc (); 1009 1010 if protocol_mpx 1011 then if x25_data.packet_trace_sw then call log_packet ("0"b); 1012 1013 /* Data packet */ 1014 1015 if substr (x25_pkt.type, 8, 1) = "0"b then do; 1016 /* if data packet */ 1017 if xlce.state ^= FLOW_CONTROL_READY then do; 1018 call handle_data_or_fc_error; 1019 goto done_in_pkt; 1020 end; 1021 1022 1023 call proc_pr (pr_error); /* update output window */ 1024 if pr_error then goto done_in_pkt; 1025 1026 if x25_data.seq_mod = 8 /* extract packet seq number */ 1027 then do; 1028 temp_ps = m8_fc_data.ps; 1029 hdr_size = 3; 1030 l4_data_ptr = addr (m8_fc_data.user_data); 1031 rtx_info.break_char, endp -> buffer.flags.break = ^m8_fc_data.m; 1032 end; 1033 else do; 1034 temp_ps = m128_fc_data.ps; 1035 hdr_size = 4; 1036 l4_data_ptr = addr (m128_fc_data.user_data); 1037 rtx_info.break_char, endp -> buffer.flags.break = ^m128_fc_data.m; 1038 end; 1039 1040 if temp_ps ^= xlce.next_recv_seq then do; 1041 /* if P(S) bad - not equal to V(R) */ 1042 call syserr (Log_message, "x25_mpx(^a): Sequence error P(S)=^d V(R)=^d.", xsce.name, 1043 temp_ps, xlce.next_recv_seq); 1044 call dump_pkt; 1045 call reset_lc (1); 1046 goto done_in_pkt; 1047 end; /* invalid P(S) */ 1048 1049 xlce.next_recv_seq = mod (xlce.next_recv_seq + 1, x25_data.seq_mod); 1050 /* V(R) = V(R) +1 */ 1051 if x25_pkt.l3_header.d 1052 then xlce.force_ack_time = 0; /* force immediate acknowledgement */ 1053 else xlce.force_ack_time = clock () + TIMEOUT; 1054 /* acknowledge within 1 sec */ 1055 1056 if x25_pkt.l3_header.q then do; /* if Q bit set */ 1057 if ^xlce.flags.iti_call then do; 1058 /* if this is not an ITI call */ 1059 int_data = substr (string (l4_data), 1, 72); 1060 call channel_manager$interrupt (xsce.devx, LINE_STATUS, int_data); 1061 end; 1062 else do; 1063 i = binary (l4_data (1), 8); 1064 /* get the X.29 command */ 1065 if i > hbound (iti, 1) then do; 1066 call syserr (Log_message, "x25_mpx(^a): Invalid X.29 command ^d.", xsce.name, i); 1067 call dump_pkt; 1068 call get_buffer (16); 1069 call make_header (lcx, "1"b); 1070 l4_data (1) = "005"b3; 1071 l4_data (2) = "001"b3; 1072 l4_data (3) = bit (binary (i, 9)); 1073 buffer.tally = hdr_size + 3 + L2_HEADER_PAD; 1074 call write_data_pkt; 1075 goto done_data_pkt; 1076 end; 1077 else goto iti (i); 1078 1079 iti (0): /* parameter indication */ 1080 do i = 2 by 2 to buffer.tally - hdr_size - L2_HEADER_PAD; 1081 if l4_data (i) = "00000000"b then goto done_data_pkt; 1082 1083 /* if substr (l4_data (i), 2, 1) 1084* then call syserr (Log_message_or_discard, "x25_mpx(^a): Unable to set X.29 parameter ^d to ^d.", 1085* xsce.name, binary (substr (l4_data (i), 3, 7), 7), 1086* binary (l4_data (i + 1), 8)); 1087**/ 1088 1089 if xlce.flags.iti_break & (l4_data (i) = "000001000"b) 1090 /* & this is resume indication */ 1091 & (l4_data (i + 1) = "000000000"b) then do; 1092 call free_in_pkt; 1093 call confirm_interrupt; 1094 xlce.flags.iti_break = "0"b; 1095 end; 1096 end; 1097 goto done_data_pkt; 1098 1099 iti (1): /* invitation to clear */ 1100 call free_in_pkt; 1101 call clear_call (0); 1102 goto done_in_pkt; 1103 1104 iti (2): /* set parameters */ 1105 call set_x29 ("1"b, "0"b); 1106 goto done_data_pkt; 1107 1108 iti (3): /* indication of break */ 1109 if xlce.flags.iti_break then do; 1110 call channel_manager$interrupt (xsce.devx, QUIT, ""b); 1111 call free_in_pkt; 1112 call get_buffer (16); 1113 call make_header (lcx, "1"b); 1114 substr (string (l4_data), 1, 3 * 9) = "006010000"b3; 1115 buffer.tally = hdr_size + 3 + L2_HEADER_PAD; 1116 /* buffer length = 6 */ 1117 call write_data_pkt; 1118 xsce.flags.end_of_page = "0"b; 1119 end; 1120 goto done_data_pkt; 1121 1122 iti (4): /* read parameters */ 1123 call set_x29 ("0"b, "1"b); 1124 goto done_data_pkt; 1125 1126 iti (5): /* error */ 1127 call syserr (Log_message, "x25_mpx(^a): X.29 ERROR ^d/^d", xsce.name, 1128 binary (l4_data (2), 9), binary (l4_data (3), 9)); 1129 goto done_data_pkt; 1130 1131 iti (6): /* set and read parameters */ 1132 call set_x29 ("1"b, "1"b); 1133 goto done_data_pkt; 1134 end; 1135 goto done_data_pkt; 1136 end; 1137 1138 /* regular data packet received */ 1139 1140 if xlce.flags.iti_break then goto done_data_pkt; 1141 1142 nchars = buffer.tally - hdr_size - L2_HEADER_PAD; 1143 if nchars <= 0 then goto done_data_pkt; 1144 /* ignore empty packets */ 1145 1146 substr (string (buffer.chars), 1, nchars) = 1147 substr (string (buffer.chars), hdr_size + L2_HEADER_PAD + 1, nchars); 1148 buffer.tally = nchars; /* delete the header */ 1149 1150 rtx_info.output_in_ring_0 = (xsce.write_head ^= null ()); 1151 rtx_info.output_in_fnp = (xlce.next_send_seq ^= xlce.next_ack_seq); 1152 rtx_info.input_count = rtx_info.input_count - hdr_size - L2_HEADER_PAD; 1153 1154 if xsce.trans_table_ptr ^= null () then do; 1155 do blockp = chain_ptr repeat (pointer (blockp, buffer.next)) while (rel (blockp) ^= ""b); 1156 /* walk chain for lfecho mode */ 1157 call mvt_ (addr (buffer.chars), addr (buffer.chars), (buffer.tally), 1158 xsce.trans_table_ptr -> based_trans_table); 1159 end; 1160 blockp = chain_ptr; 1161 end; 1162 1163 if xsce.flags.end_of_page & rtx_info.break_char then do; 1164 xsce.flags.end_of_page = "0"b;/* not any more */ 1165 1166 if (buffer.tally <= 2) & (buffer.next = 0) 1167 & (verify (substr (string (buffer.chars), 1, buffer.tally), CR_LF_FF) = 0) 1168 then goto done_data_pkt; /* no real input */ 1169 end; 1170 1171 blockp = null (); /* show buffer given away */ 1172 call tty_space_man$switch_chain (x25_data.devx, xsce.devx, INPUT, INPUT, chain_ptr); 1173 call channel_manager$interrupt (xsce.devx, ACCEPT_INPUT, unspec (rtx_info)); 1174 goto done_data_pkt; 1175 end; /* regular data packet */ 1176 1177 /* if RR packet */ 1178 1179 if (x25_pkt.type & SNMASK) = SNRR then do; 1180 /* if RR packet */ 1181 if xlce.state ^= FLOW_CONTROL_READY then do; 1182 call handle_data_or_fc_error; 1183 goto done_in_pkt; 1184 end; 1185 1186 call proc_pr (pr_error); /* update output window */ 1187 if pr_error then goto done_in_pkt; 1188 1189 xlce.flags.rnr_received = "0"b; 1190 call free_in_pkt; 1191 call send_data_packets; 1192 call send_output; 1193 call solicit_output; 1194 goto done_in_pkt; 1195 end; 1196 1197 /* RNR packet */ 1198 1199 if (x25_pkt.type & SNMASK) = SNRNR then do; 1200 /* or if RNR packet */ 1201 if xlce.state ^= FLOW_CONTROL_READY then do; 1202 call handle_data_or_fc_error; 1203 goto done_in_pkt; 1204 end; 1205 1206 call proc_pr (pr_error); /* extract p(r) */ 1207 if pr_error then goto done_in_pkt; 1208 1209 xlce.flags.rnr_received = "1"b; 1210 call free_in_pkt; 1211 goto done_in_pkt; 1212 end; 1213 1214 /* REJ packet */ 1215 1216 if (x25_pkt.type & SNMASK) = SNREJ then do; 1217 if xlce.state ^= FLOW_CONTROL_READY then do; 1218 call handle_data_or_fc_error; 1219 goto done_in_pkt; 1220 end; 1221 1222 call proc_pr (pr_error); 1223 if pr_error then goto done_in_pkt; /* Take the first error we find. */ 1224 1225 call syserr (Log_message, "x25_mpx(^a): Received REJ packet.", xsce.name); 1226 call dump_pkt; 1227 call reset_lc (37); 1228 goto done_in_pkt; 1229 end; 1230 1231 /* Call request packet */ 1232 1233 if x25_pkt.type = CALLRQ then do; /* call request packet */ 1234 if xlce.state = FLOW_CONTROL_READY | xlce.state = DTE_RESET_REQUEST then do; 1235 call syserr (Log_message, "x25_mpx(^a): Call Request in state ^d.", xsce.name, xlce.state); 1236 call dump_pkt; 1237 call clear_call (23); 1238 end; 1239 1240 else call free_in_pkt; 1241 1242 goto done_in_pkt; 1243 end; 1244 1245 /* Call accepted packet */ 1246 1247 if x25_pkt.type = CALLAC then do; /* if call accepted */ 1248 if xlce.state = DTE_WAITING then do; 1249 if protocol_mpx & ^xlce.iti_call then do; 1250 /* if ISO... */ 1251 call set_up_dialup_info; 1252 call channel_manager$interrupt (xsce.devx, USER_INTERRUPT, unspec (dialup_info)); 1253 xsce.state = SC_DIALED; 1254 xlce.state = FLOW_CONTROL_READY; 1255 call reset_timer; 1256 xsce.flags.output_ready = "1"b; 1257 call channel_manager$interrupt (xsce.devx, SEND_OUTPUT, ""b); 1258 end; 1259 else call signal_dialup; 1260 call free_in_pkt; 1261 goto done_in_pkt; 1262 end; 1263 1264 call syserr (Log_message, "x25_mpx(^a): Call Confirm in state ^d.", xsce.name, xlce.state); 1265 call dump_pkt; 1266 call clear_call (16); 1267 goto done_in_pkt; 1268 end; /* call accepted packet */ 1269 1270 /* Clear indication packet */ 1271 1272 if x25_pkt.type = CLRRQ then do; /* if clear indication packet */ 1273 if protocol_mpx & (x25_pkt.no_fc_data (1) ^= ""b) 1274 | ^protocol_mpx & ((x25_pkt.no_fc_data (1) ^= ""b) | (x25_pkt.no_fc_data (2) ^= ""b)) 1275 then call syserr (Log_message_or_discard, "x25_mpx(^a): Clear Indication ^d/^d.", xsce.name, 1276 binary (x25_pkt.no_fc_data (1), 8), binary (x25_pkt.no_fc_data (2), 8)); 1277 if protocol_mpx then do; 1278 disconnect_info.cause = x25_pkt.no_fc_data (1); 1279 disconnect_info.diag = x25_pkt.no_fc_data (2); 1280 end; 1281 call free_in_pkt; 1282 if xlce.state ^= DTE_CLEAR_REQUEST then call clear_confirm; 1283 call proc_clear; 1284 goto done_in_pkt; 1285 end; /* CLRRQ packet */ 1286 1287 /* clear confirmation packet */ 1288 1289 if x25_pkt.type = CLRCN then do; /* if clear confirmation packet */ 1290 if xlce.state ^= DTE_CLEAR_REQUEST then do; 1291 call syserr (Log_message, "x25_mpx(^a): Clear Confirm in state ^d.", xsce.name, xlce.state); 1292 call dump_pkt; 1293 call clear_call (16); 1294 end; 1295 1296 else do; 1297 call proc_clear; 1298 call free_in_pkt; 1299 end; 1300 1301 goto done_in_pkt; 1302 end; /* CLRCN packet */ 1303 1304 /* DTE logical channel input */ 1305 1306 if xlce.state = DTE_CLEAR_REQUEST then do; 1307 call free_in_pkt; /* if clear request issued, ignore data packets */ 1308 goto done_in_pkt; 1309 end; 1310 1311 if xlce.state = DTE_WAITING | (protocol_mpx & (xlce.state = CONRESP_WAITING)) then do; 1312 call syserr (Log_message, "x25_mpx(^a): Data packet received in state ^d.", xsce.name, 1313 xlce.state); 1314 call dump_pkt; 1315 call clear_call (16); 1316 goto done_in_pkt; 1317 end; 1318 1319 /* reset indication packet */ 1320 1321 if x25_pkt.type = RESTRQ then do; /* if reset indication packet */ 1322 if xlce.state ^= DTE_RESET_REQUEST then do; 1323 /* if reset request issued */ 1324 call syserr (Log_message, "x25_mpx(^a): Reset received ^d/^d", xsce.name, 1325 binary (x25_pkt.no_fc_data (1), 8), binary (x25_pkt.no_fc_data (2), 8)); 1326 call dump_pkt; 1327 call get_buffer (16); 1328 call make_header (lcx, "0"b); 1329 x25_pkt.type = RESTCN; 1330 buffer.tally = 3 + L2_HEADER_PAD; 1331 call write_pkt; 1332 call send_output; 1333 end; 1334 else call free_in_pkt; 1335 1336 call proc_reset_lc; 1337 goto done_in_pkt; 1338 end; /* reset indication servicing */ 1339 1340 /* reset confirmation packet */ 1341 1342 if x25_pkt.type = RESTCN then do; /* if reset confirmation packet */ 1343 if xlce.state = DTE_RESET_REQUEST /* if DTE reset request was issued */ 1344 then do; 1345 call proc_reset_lc; /* then this acks it */ 1346 call free_in_pkt; 1347 end; 1348 else do; 1349 call syserr (Log_message, "x25_mpx(^a): Reset Confirm in state ^d.", xsce.name, xlce.state); 1350 call dump_pkt; 1351 call reset_lc (16); /* otherwise a protocol error has occurred */ 1352 end; 1353 goto done_in_pkt; 1354 end; /* reset confirmation servicing */ 1355 1356 /* check flow-control state */ 1357 1358 if xlce.state ^= FLOW_CONTROL_READY then do; 1359 call free_in_pkt; 1360 goto done_in_pkt; 1361 end; 1362 1363 /* Interrupt Packet */ 1364 1365 if x25_pkt.type = SNITRQ then do; /* if interrupt packet */ 1366 call free_in_pkt; 1367 if xlce.iti_call & xsce.mode (MODE_HNDLQUIT) 1368 /* if ITI call */ 1369 then do; 1370 xlce.flags.iti_break = "1"b; /* show break service in progress */ 1371 end; 1372 else do; 1373 call channel_manager$interrupt (xsce.devx, QUIT, ""b); 1374 /* notify higher level of interrupt */ 1375 call confirm_interrupt; 1376 xsce.flags.end_of_page = "0"b; 1377 end; 1378 goto done_in_pkt; 1379 end; /* interrupt packet servicing */ 1380 1381 /* interrupt confirnation received */ 1382 1383 if x25_pkt.type = SNITCN then do; /* if interrupt confrimation received */ 1384 if ^xlce.flags.int_issued then do; /* if we have not issued an interrupt request */ 1385 call syserr (Log_message, "x25_mpx(^a): Unexpected Interrupt Confirm.", xsce.name); 1386 call dump_pkt; 1387 call reset_lc (43); 1388 end; 1389 else do; 1390 xlce.flags.int_issued = "0"b; /* show confirmation received */ 1391 call free_in_pkt; 1392 end; 1393 goto done_in_pkt; 1394 end; /* interrupt confirmation servicing */ 1395 1396 call syserr (Log_message, "x25_mpx(^a): Unexpected packet type ^.4b", xsce.name, x25_pkt.type); 1397 call dump_pkt; 1398 call reset_lc (32); 1399 goto done_in_pkt; 1400 end; 1401 1402 /* Come here if there is no connection for the packet */ 1403 1404 else do; /* incoming call packet */ 1405 1406 /* Call Indication */ 1407 1408 if x25_pkt.type = CALLRQ then do; 1409 if xlce.state ^= READY then do; /* if DTE ready */ 1410 call syserr (Log_message, "x25_mpx(^a/^d): Call Request in state ^d.", x25_data.name, lcx, 1411 xlce.state); 1412 call dump_pkt; 1413 call clear_call (16); 1414 goto done_in_pkt; 1415 end; 1416 1417 calling_dte_addr_length = binary (substr (x25_pkt.no_fc_data (1), 2, 4), 4); 1418 called_dte_addr_length = binary (substr (x25_pkt.no_fc_data (1), 6, 4), 4); 1419 facility_disp = 2 + divide (1 + calling_dte_addr_length + called_dte_addr_length, 2, 6, 0); 1420 facility_length = binary (substr (x25_pkt.no_fc_data (facility_disp), 4, 6), 6); 1421 1422 do i = 2 to facility_disp - 1; /* convert addresses */ 1423 unspec (substr (addr_string, 2 * i - 3, 1)) = 1424 "00011"b || substr (x25_pkt.no_fc_data (i), 2, 4); 1425 unspec (substr (addr_string, 2 * i - 2, 1)) = 1426 "00011"b || substr (x25_pkt.no_fc_data (i), 6, 4); 1427 end; 1428 xlce.his_address = substr (addr_string, 1 + called_dte_addr_length, calling_dte_addr_length); 1429 1430 user_data_disp = facility_disp + facility_length + 1; 1431 user_data_length = buffer.tally - 2 - user_data_disp - L2_HEADER_PAD; 1432 if protocol_mpx then do; 1433 xlce.baud_rate = DEFAULT_BAUD; 1434 xlce.call_data = ""; 1435 if user_data_length >= 4 & x25_pkt.no_fc_data (user_data_disp) = "000000001"b then do; 1436 /* --- X29 call --- */ 1437 xlce.flags.iti_call = "1"b; 1438 if user_data_length > 4 then do; 1439 /* There is some complementary data */ 1440 Call_data = substr (l3_call_data, 5); 1441 call mvt_ (addr (Call_data), addr (Call_data), 1442 /* suppresion of the eighth bit (parity) of call data */ 1443 user_data_length - 4, (x25_mpx_data$trans_no_parity)); 1444 xlce.call_data = substr (Call_data, 1, user_data_length - 4); 1445 end; 1446 scx = find_sc (xlce.call_data); 1447 if scx = 0 then scx = find_sc (""); 1448 if (scx = 0) | ^x25_data.flags.mpx_started then do; 1449 call syserr (Log_message, "x25_mpx(^a/^d): No listening channels. , scx=^d", 1450 x25_data.name, lcx, scx); 1451 call dump_pkt; 1452 call clear_call (64); 1453 goto done_in_pkt; 1454 end; 1455 1456 call check_facilities (); 1457 xscep = addr (x25_data.sc (scx)); 1458 xsce.lcx = lcx; 1459 xlce.scx = scx; 1460 call free_in_pkt; 1461 call send_NCON_RESP; 1462 call signal_dialup; 1463 goto done_in_pkt; 1464 end; /* X29 call */ 1465 else do; /* non X29 call */ 1466 if ^x25_data.flags.mpx_started then do; 1467 /* no protocol channel */ 1468 call syserr (Log_message, "x25_mpx(^a/^d): No listening ISO_channels.", 1469 x25_data.name, lcx); 1470 call dump_pkt; 1471 call clear_call (64); 1472 goto done_in_pkt; 1473 end; 1474 xscep = addr (x25_data.sc (scx)); 1475 /* One has a channel, one signals the connection... */ 1476 xsce.lcx = lcx; 1477 xlce.scx = scx; 1478 xlce.call_data = l3_call_data; 1479 xsce.trans_table_ptr = null (); 1480 NCON_IND_info.his_address = xlce.his_address; 1481 NCON_IND_info.our_address = x25_data.my_address; 1482 NCON_IND_info.data = l3_call_data; 1483 NCON_IND_info.facilities = l3_facilities; 1484 call set_up_dialup_info; 1485 unspec (NCON_IND_info.dial_info) = unspec (dialup_info); 1486 call free_in_pkt; 1487 call get_buffer (32); 1488 call tty_space_man$switch_chain (x25_data.devx, xsce.devx, OUTPUT, INPUT, blockp); 1489 unspec (DIALUP_info) = "0"b; 1490 DIALUP_info.info_relp = rel (blockp); 1491 N_I_i = NCON_IND_info; 1492 buffer.next = 0; 1493 string (buffer.flags) = ""b; 1494 buffer.tally = size (NCON_IND_info) * 4; 1495 xsce.state = SC_DIALING; 1496 call state_change (CONRESP_WAITING); 1497 call channel_manager$interrupt (xsce.devx, DIALUP, unspec (DIALUP_info)); 1498 goto done_in_pkt; 1499 end; 1500 end; 1501 else do; 1502 xlce.baud_rate = x25_data.dialup_info.baud_rate; 1503 if user_data_length >= 4 then do; 1504 xlce.call_data = substr (l3_call_data, 5); 1505 if x25_pkt.no_fc_data (user_data_disp) = "000000001"b then do; 1506 xlce.flags.iti_call = "1"b; 1507 end; 1508 end; 1509 else xlce.call_data = ""; 1510 1511 scx = find_sc (xlce.call_data); 1512 /* find appropriate server */ 1513 if scx = 0 then scx = find_sc (""); 1514 /* or null server by default */ 1515 if (scx = 0) | ^x25_data.flags.mpx_started then do; 1516 call syserr (Log_message, "x25_mpx(^a/^d): No listening channels.", x25_data.name, lcx) 1517 ; 1518 call dump_pkt; 1519 call clear_call (64); 1520 goto done_in_pkt; 1521 end; 1522 1523 xscep = addr (x25_data.sc (scx)); 1524 xsce.lcx = lcx; 1525 xlce.scx = scx; 1526 call free_in_pkt; 1527 call get_buffer (16); 1528 call make_header (lcx, "0"b); 1529 x25_pkt.type = CALLAC; 1530 buffer.tally = 3 + L2_HEADER_PAD; 1531 call write_pkt; 1532 call send_output; 1533 call signal_dialup; 1534 goto done_in_pkt; 1535 end; 1536 end; /* Call request packet */ 1537 1538 /* Clear Indication */ 1539 1540 if x25_pkt.type = CLRRQ then do; 1541 call syserr (Log_message_or_discard, "x25_mpx(^a/^d): Clear Indication ^d/^d on idle VC.", 1542 x25_data.name, lcx, binary (x25_pkt.no_fc_data (1), 8), binary (x25_pkt.no_fc_data (2), 8)); 1543 call dump_pkt; 1544 if xlce.state ^= DTE_CLEAR_REQUEST then call clear_confirm; 1545 call reset_xlce; /* xsce already reset since this is an idle VC. */ 1546 goto done_in_pkt; 1547 end; 1548 1549 /* Clear Confirm */ 1550 1551 if x25_pkt.type = CLRCN then do; 1552 if xlce.state = DTE_CLEAR_REQUEST then do; 1553 call reset_xlce; 1554 call free_in_pkt; 1555 goto done_in_pkt; 1556 end; 1557 1558 else do; 1559 call syserr (Log_message_or_discard, 1560 "x25_mpx(^a/^d): Clear Confirm in state ^d on idle VC.", x25_data.name, lcx, 1561 xlce.state); 1562 call free_in_pkt; 1563 call clear_call (20); 1564 goto done_in_pkt; 1565 end; 1566 end; /* CLRCN packet */ 1567 1568 /* Anything else */ 1569 1570 call syserr (Log_message, "x25_mpx(^a/^d); Unexpected packet type ^.4b on idle VC.", x25_data.name, 1571 lcx, x25_pkt.type); 1572 call dump_pkt; 1573 call clear_call (20); 1574 goto done_in_pkt; 1575 end; 1576 end; 1577 1578 /* Waiting for restart */ 1579 1580 else if x25_data.state = X25_RESTARTING then do; 1581 if ((x25_pkt.type = RSRTRQ) | (x25_pkt.type = RSRTCN)) & (lcx = 0) then do; 1582 call mcs_timer$reset (x25_data.devx, 0, ""b); 1583 x25_data.state = X25_ACTIVE; 1584 call pxss$ring_0_wakeup (x25_data.load_proc_id, x25_data.load_ev_chan, MPX_UP, code); 1585 end; 1586 call free_in_pkt; 1587 goto done_in_pkt; 1588 end; 1589 1590 /* Link not up yet */ 1591 1592 else do; 1593 call free_in_pkt; 1594 goto done_in_pkt; 1595 end; 1596 1597 done_in_pkt: 1598 return; 1599 1600 1601 done_data_pkt: /* might have to send a RR */ 1602 if blockp ^= null () then call free_in_pkt; 1603 if xlce.state = FLOW_CONTROL_READY then do; 1604 call send_data_packets; 1605 call send_output; 1606 call solicit_output; 1607 call send_rr; 1608 end; 1609 return; 1610 1611 1612 /* * * * * * * * * * ADD_ITI_MODE * * * * * * * * * */ 1613 1614 add_iti_mode: 1615 procedure (Mode, Id, True, False); 1616 1617 dcl Mode fixed bin parameter; 1618 dcl (Id, True, False) uns fixed bin (9) parameter; 1619 1620 if xsce.mode (Mode) 1621 then call add_iti_param (Id, True); 1622 else call add_iti_param (Id, False); 1623 return; 1624 end add_iti_mode; 1625 1626 /* * * * * * * * * * ADD_ITI_PARAM * * * * * * * * * */ 1627 1628 add_iti_param: 1629 procedure (Id, Value); 1630 1631 dcl (Id, Value) uns fixed bin (9) parameter; 1632 1633 nchars = nchars + 2; 1634 l4_data (nchars - 1) = bit (Id); 1635 l4_data (nchars) = bit (Value); 1636 return; 1637 end add_iti_param; 1638 1639 /* * * * * * * * * CLEAR_CALL * * * * * * * * */ 1640 1641 clear_call: 1642 procedure (Cause); 1643 1644 dcl Cause uns fixed bin (9) parameter; 1645 1646 call get_buffer (16); 1647 call make_header (lcx, "0"b); 1648 x25_pkt.type = CLRRQ; 1649 x25_pkt.no_fc_data (2) = bit (Cause); 1650 buffer.tally = 5 + L2_HEADER_PAD; 1651 call write_pkt; 1652 call send_output; 1653 call state_change (DTE_CLEAR_REQUEST); 1654 return; 1655 end clear_call; 1656 1657 /* * * * * * * * * CLEAR_CONFIRM * * * * * * * * * */ 1658 1659 clear_confirm: 1660 procedure; 1661 1662 call get_buffer (16); 1663 call make_header (lcx, "0"b); 1664 x25_pkt.type = CLRCN; 1665 buffer.tally = 3 + L2_HEADER_PAD; 1666 call write_pkt; 1667 call send_output; 1668 return; 1669 end clear_confirm; 1670 1671 /* * * * * * * * * * CONFIRM_INTERRUPT * * * * * * * * * */ 1672 1673 confirm_interrupt: 1674 procedure; 1675 1676 call get_buffer (16); 1677 call make_header (lcx, "0"b); 1678 x25_pkt.type = SNITCN; 1679 buffer.tally = 3 + L2_HEADER_PAD; /* length of buffer = 3 */ 1680 call write_pkt; 1681 call send_output; 1682 return; 1683 end confirm_interrupt; 1684 1685 /* * * * * * * * * * CRASH_SUBCHANNELS * * * * * * * * * * */ 1686 1687 crash_subchannels: 1688 procedure; 1689 1690 do lcx = 1 to x25_data.n_lc; 1691 xlcep = addr (x25_lces.lc (lcx)); 1692 call reset_xlce; 1693 end; 1694 do scx = 1 to x25_data.n_sc; 1695 xscep = addr (x25_data.sc (scx)); 1696 call reset_xsce; 1697 end; 1698 return; 1699 end crash_subchannels; 1700 1701 /* * * * * * * * * * DUMP_PKT * * * * * * * * */ 1702 1703 dump_pkt: 1704 procedure; 1705 1706 dcl 1 dump_buf (buffer.tally) unaligned based (addr (buffer.chars)), 1707 2 pad bit (1), 1708 2 byte bit (8); 1709 1710 call syserr (Log_message_or_discard, "x25_mpx(^a):^( ^.4b^)", x25_data.name, dump_buf.byte (*)); 1711 call free_in_pkt; 1712 return; 1713 end dump_pkt; 1714 1715 /* * * * * * * * * * FIND_SC * * * * * * * * * */ 1716 1717 find_sc: 1718 procedure (Call_data) returns (fixed bin); 1719 1720 dcl Call_data varying char (16) parameter; 1721 dcl scx fixed bin; 1722 1723 do scx = 1 to x25_data.n_sc; 1724 if (x25_data.sc (scx).state = SC_LISTENING) & (x25_data.sc (scx).service = Call_data) then return (scx); 1725 end; 1726 return (0); 1727 end find_sc; 1728 1729 /* * * * * * * * * FREE_IN_PKT * * * * * * * * * */ 1730 1731 free_in_pkt: 1732 procedure; 1733 1734 call tty_space_man$free_chain (x25_data.devx, INPUT, blockp); 1735 blockp = null (); 1736 return; 1737 end free_in_pkt; 1738 1739 /* * * * * * * * * * FREE_WRITE_CHAIN * * * * * * * * * */ 1740 1741 free_write_chain: 1742 procedure; 1743 1744 if xsce.write_head ^= null () then do; 1745 call tty_space_man$free_chain (xsce.devx, OUTPUT, xsce.write_head); 1746 xsce.write_head, xsce.write_tail = null (); 1747 xsce.flags.end_of_page = "0"b; /* Fix the flags since we just threw */ 1748 xsce.flags.long_packet_pending = "0"b; /* away what they applied to. */ 1749 end; 1750 return; 1751 end free_write_chain; 1752 1753 /* * * * * * * * * * FREE_X25_DATA_CHAIN * * * * * * * * * */ 1754 1755 free_x25_data_chain: 1756 procedure; 1757 1758 if x25_data.write_head ^= null () then do; 1759 call tty_space_man$free_chain (x25_data.devx, OUTPUT, x25_data.write_head); 1760 x25_data.write_head, x25_data.write_tail = null (); 1761 end; 1762 return; 1763 end free_x25_data_chain; 1764 1765 /* * * * * * * * * * GET_BUFFER * * * * * * * * * */ 1766 1767 get_buffer: 1768 procedure (Size); 1769 1770 dcl Size fixed bin parameter; 1771 1772 call tty_space_man$get_buffer (x25_data.devx, Size, OUTPUT, blockp); 1773 endp = blockp; 1774 if blockp = null () then do; /* Big trouble, crash the multiplexer. */ 1775 call free_x25_data_chain (); /* Get rid of pending output. */ 1776 call syserr (Log_message, "x25_mpx(^a): No buffers available", x25_data.name); 1777 call channel_manager$control (x25_data.devx, "hangup", null (), code); 1778 /* Crash ourself. */ 1779 goto done_in_pkt; /* Non-local goto because callers can't handle blockp = null. */ 1780 end; 1781 return; 1782 end get_buffer; 1783 1784 /* * * * * * * * * HANDLE_DATA_OR_FC_ERROR * * * * * * * * * */ 1785 1786 handle_data_or_fc_error: 1787 procedure; 1788 1789 if xlce.state = DTE_CLEAR_REQUEST | xlce.state = DTE_RESET_REQUEST 1790 then call free_in_pkt; /* Just discard. */ 1791 else do; /* Clear the lc with the right diagnostic. */ 1792 call syserr (Log_message, "x25_mpx(^a): Data or flow control packet received in state ^d.", xsce.name, 1793 xlce.state); 1794 call dump_pkt; 1795 if xlce.state = READY 1796 then call clear_call (20); 1797 else call clear_call (21); /* Must be DTE_WAITING state. */ 1798 end; 1799 end handle_data_or_fc_error; 1800 1801 /* * * * * * * * * * MAKE_HEADER * * * * * * * * * */ 1802 1803 make_header: 1804 procedure (Lcn, Q); 1805 dcl Lcn uns fixed bin (12) parm; 1806 dcl Q bit aligned parm; 1807 1808 string (x25_pkt.l3_header) = ""b; 1809 x25_pkt.l3_header.q = Q; 1810 x25_pkt.l3_header.format = x25_data.gfid; 1811 x25_pkt.l3_header.lcgn = substr (bit (Lcn), 1, 4); 1812 x25_pkt.l3_header.lcn = substr (bit (Lcn), 5, 8); 1813 if xlcep = null () then do; 1814 l4_data_ptr = null (); 1815 hdr_size = 0; 1816 end; 1817 else if x25_data.seq_mod = 8 then do; 1818 l4_data_ptr = addr (m8_fc_data.user_data); 1819 hdr_size = 3; 1820 end; 1821 else do; 1822 l4_data_ptr = addr (m128_fc_data.user_data); 1823 hdr_size = 4; 1824 end; 1825 return; 1826 end make_header; 1827 1828 /* * * * * * * * * PROC_CLEAR * * * * * * * * * */ 1829 1830 proc_clear: 1831 procedure; 1832 1833 call reset_xlce; 1834 call reset_xsce; 1835 return; 1836 end proc_clear; 1837 1838 /* * * * * * * * * * PROC_PR * * * * * * * * * */ 1839 1840 proc_pr: 1841 procedure (error_flag); 1842 1843 dcl error_flag bit (1) unaligned parameter; 1844 dcl temp_pr unsigned fixed bin (7); 1845 1846 error_flag = "0"b; 1847 1848 xlce.flags.write_status_sync_sent = "0"b; /* Well, he said something. */ 1849 1850 if x25_data.seq_mod = 8 1851 then temp_pr = m8_fc_data.pr; 1852 else temp_pr = m128_fc_data.pr; 1853 1854 /* 1855* Check that next_ack_seq <= temp_pr <= next_send_seq, in clock order. 1856* That is, that the packet sequence number that he says he received is 1857* between the last sequence number he says he received, and the next 1858* sequence number we will send out (clockwise). 1859**/ 1860 1861 if (xlce.next_ack_seq <= temp_pr & temp_pr <= xlce.next_send_seq) 1862 | (xlce.next_send_seq <= xlce.next_ack_seq & xlce.next_ack_seq <= temp_pr) 1863 | (temp_pr <= xlce.next_send_seq & xlce.next_send_seq <= xlce.next_ack_seq) 1864 then xlce.next_ack_seq = temp_pr; 1865 1866 else do; /* Log the error. */ 1867 error_flag = "1"b; 1868 call syserr (Log_message, 1869 "x25_mpx(^a): Sequence error: P(R) (= ^d) is not between previous P(R) (= ^d) and V(S) (= ^d).", 1870 xsce.name, temp_pr, xlce.next_ack_seq, xlce.next_send_seq); 1871 call dump_pkt; 1872 call reset_lc (2); 1873 end; /* Log the error. */ 1874 1875 return; 1876 end proc_pr; 1877 1878 /* * * * * * * * * * PROC_RESET_LC * * * * * * * * * */ 1879 1880 proc_reset_lc: 1881 procedure; 1882 1883 call reset_seq_nos; 1884 call free_write_chain (); /* discard possible pending output. */ 1885 xlce.state = FLOW_CONTROL_READY; 1886 call reset_timer; 1887 1888 /* Reset our state flags since we are going back to our initial state. */ 1889 1890 xlce.flags.iti_break = "0"b; 1891 xlce.flags.int_issued = "0"b; 1892 xlce.flags.rnr_received = "0"b; 1893 xlce.flags.write_status_sync_sent = "0"b; 1894 1895 /* Now let the user know something happened, and make sure he can send output again. */ 1896 1897 call channel_manager$interrupt (xsce.devx, LINE_STATUS, "1"b); 1898 /* the value does not really matter. */ 1899 call solicit_output (); 1900 1901 return; 1902 end proc_reset_lc; 1903 1904 /* * * * * * * * * * RESET_LC * * * * * * * * * */ 1905 1906 reset_lc: 1907 procedure (Cause); 1908 1909 dcl Cause uns fixed bin (9) parameter; 1910 1911 call get_buffer (16); 1912 call make_header (lcx, "0"b); 1913 x25_pkt.type = RESTRQ; 1914 x25_pkt.no_fc_data (2) = bit (Cause); 1915 buffer.tally = 5 + L2_HEADER_PAD; 1916 call write_pkt; 1917 call send_output; 1918 call state_change (DTE_RESET_REQUEST); 1919 1920 xlce.flags.iti_break, xlce.flags.int_issued, xlce.flags.rnr_received, xlce.flags.write_status_sync_sent = "0"b; 1921 return; 1922 end reset_lc; 1923 1924 /* * * * * * * * * * RESET_SEQ_NOS * * * * * * * * * */ 1925 1926 reset_seq_nos: 1927 procedure; 1928 1929 xlce.next_recv_seq, xlce.next_send_seq, xlce.last_recv_seq, xlce.next_ack_seq = 0; 1930 return; 1931 end reset_seq_nos; 1932 1933 /* * * * * * * * * * RESET_TIMER * * * * * * * * * */ 1934 1935 reset_timer: 1936 procedure; 1937 1938 if xlce.flags.timer_set then do; 1939 call mcs_timer$reset (x25_data.devx, (lcx), ""b); 1940 xlce.flags.timer_set = "0"b; 1941 end; 1942 return; 1943 end reset_timer; 1944 1945 /* * * * * * * * * * * RESET_XLCE * * * * * * * * * * */ 1946 1947 reset_xlce: 1948 procedure; 1949 1950 call reset_seq_nos; 1951 call reset_timer; 1952 string (xlce.flags) = ""b; 1953 xlce.iti_params (*) = 0; 1954 1955 if lcx <= x25_data.n_pvc then do; 1956 xlce.state = FLOW_CONTROL_READY; 1957 end; 1958 else do; 1959 xlce.state = READY; 1960 xlce.scx = 0; 1961 end; 1962 return; 1963 end reset_xlce; 1964 1965 /* * * * * * * * * RESET_XSCE * * * * * * * * * */ 1966 1967 reset_xsce: 1968 procedure; 1969 1970 call free_write_chain; 1971 string (xsce.mode) = ""b; 1972 string (xsce.flags) = ""b; 1973 if /* case */ xsce.state = SC_DIALING then do; 1974 if protocol_mpx 1975 then call channel_manager$interrupt (xsce.devx, DIAL_STATUS, 1976 "122"b3 || (27)"0"b || unspec (disconnect_info)); 1977 else call channel_manager$interrupt (xsce.devx, DIAL_STATUS, "122"b3); 1978 end; 1979 else if xsce.state > SC_HUNGUP then do; 1980 if protocol_mpx then do; 1981 if x25_data.state = X25_ACTIVE 1982 then call channel_manager$interrupt (xsce.devx, HANGUP, (36)"0"b || unspec (disconnect_info)); 1983 else call channel_manager$interrupt (xsce.devx, CRASH, (36)"0"b || unspec (disconnect_info)); 1984 end; 1985 else do; 1986 if x25_data.state = X25_ACTIVE 1987 then call channel_manager$interrupt (xsce.devx, HANGUP, ""b); 1988 else call channel_manager$interrupt (xsce.devx, CRASH, ""b); 1989 end; 1990 end; 1991 xsce.state = SC_HUNGUP; 1992 xsce.lcx = 0; 1993 return; 1994 end reset_xsce; 1995 1996 /* * * * * * * * * * RESTART * * * * * * * * * */ 1997 1998 restart: 1999 procedure (Cause); 2000 2001 dcl Cause uns fixed bin (9) parameter; 2002 2003 call get_buffer (16); 2004 call make_header (0, "0"b); 2005 x25_pkt.type = RSRTRQ; /* restart request packet */ 2006 x25_pkt.no_fc_data (2) = bit (Cause); 2007 buffer.tally = 5 + L2_HEADER_PAD; /* length of restart packet = 4 */ 2008 call write_pkt; 2009 call send_output; 2010 x25_data.state = X25_RESTARTING; 2011 x25_data.restart_time = clock (); 2012 call mcs_timer$set (x25_data.devx, 0, x25_data.restart_time + T20, ""b); 2013 return; 2014 end restart; 2015 2016 /* * * * * * * * * * SEND_DATA_PACKETS * * * * * * * * * */ 2017 2018 send_data_packets: 2019 procedure; 2020 2021 dcl pkt_size fixed bin; 2022 2023 if xsce.flags.long_packet_pending | xlce.flags.rnr_received then return; 2024 2025 do while ((mod (xlce.next_send_seq - xlce.next_ack_seq, x25_data.seq_mod) < xlce.max_window_size) 2026 & (xsce.write_head ^= null ())); 2027 2028 blockp = xsce.write_head; 2029 pkt_size = buffer.tally; 2030 do endp = blockp repeat pointer (endp, endp -> buffer.next) while (^endp -> buffer.flags.break); 2031 pkt_size = pkt_size + buffer.tally; 2032 end; 2033 2034 if (pkt_size >= x25_data.long_packet_size) 2035 & (^x25_data.flags.send_output | (x25_data.write_head ^= null ())) then do; 2036 xsce.flags.long_packet_pending = "1"b; /* thread into the long packet list */ 2037 xsce.long_packet_next_scx = 0; 2038 if x25_data.long_packet_head = 0 2039 then x25_data.long_packet_head = scx; 2040 else x25_data.sc (x25_data.long_packet_tail).long_packet_next_scx = scx; 2041 x25_data.long_packet_tail = scx; 2042 return; 2043 end; 2044 2045 if endp -> buffer.next = 0 2046 then xsce.write_head, xsce.write_tail = null (); 2047 else xsce.write_head = pointer (endp, endp -> buffer.next); 2048 endp -> buffer.next = 0; 2049 2050 if x25_data.seq_mod = 8 then do; 2051 m8_fc_data.ps = xlce.next_send_seq; 2052 m8_fc_data.pr = xlce.next_recv_seq; 2053 end; 2054 else do; 2055 m128_fc_data.ps = xlce.next_send_seq; 2056 m128_fc_data.pr = xlce.next_recv_seq; 2057 end; 2058 2059 call write_pkt; 2060 2061 xlce.next_send_seq = mod (xlce.next_send_seq + 1, x25_data.seq_mod); 2062 xlce.last_recv_seq = xlce.next_recv_seq; /* increment V(S) */ 2063 end; 2064 return; 2065 end send_data_packets; 2066 2067 /* * * * * * * * * SEND_DIAG * * * * * * * * * */ 2068 2069 send_diag: 2070 procedure (Cause); 2071 2072 dcl Cause uns fixed bin (9) parameter; 2073 2074 call get_buffer (16); 2075 call make_header (0, "0"b); 2076 x25_pkt.type = DIAG; 2077 x25_pkt.no_fc_data (1) = bit (Cause); 2078 buffer.tally = 4 + L2_HEADER_PAD; 2079 call write_pkt; 2080 call send_output; 2081 return; 2082 end send_diag; 2083 2084 /* * * * * * * * * * SEND_OUTPUT * * * * * * * * * * */ 2085 2086 send_output: 2087 procedure; 2088 2089 if x25_data.flags.send_output & (x25_data.write_head ^= null ()) then do; 2090 x25_data.flags.send_output = "0"b; 2091 call channel_manager$write (x25_data.devx, x25_data.write_head, code); 2092 if code ^= 0 then do; 2093 call syserr (Log_message, "x25_mpx(^a): Error ^w from write.", x25_data.name, code); 2094 call channel_manager$control (x25_data.devx, "hangup", null (), code); 2095 end; 2096 if x25_data.write_head = null () then x25_data.write_tail = null (); 2097 end; 2098 return; 2099 end send_output; 2100 2101 /* * * * * * * * * SEND_RR * * * * * * * * * */ 2102 2103 send_rr: 2104 procedure; 2105 2106 dcl packets_out fixed bin (7); 2107 2108 ttybp = addr (tty_buf$); 2109 lctep = addr (tty_buf.lct_ptr -> lct.lcte_array (xsce.devx)); 2110 packets_out = mod (xlce.next_recv_seq - xlce.last_recv_seq, x25_data.seq_mod); 2111 2112 if (3 * lcte.input_words) < tty_buf.bleft 2113 then if (clock () > xlce.force_ack_time) | (packets_out >= xlce.max_window_size) | xlce.flags.rnr_sent then do; 2114 call get_buffer (16); 2115 call make_header (lcx, "0"b); 2116 x25_pkt.type = SNRR; 2117 if x25_data.seq_mod = 8 2118 then m8_fc_data.pr = xlce.next_recv_seq; 2119 else m128_fc_data.pr = xlce.next_recv_seq; 2120 buffer.tally = hdr_size + L2_HEADER_PAD; 2121 call write_pkt; 2122 call send_output; 2123 xlce.last_recv_seq = xlce.next_recv_seq; 2124 call reset_timer; 2125 xlce.flags.rnr_sent = "0"b; 2126 end; 2127 else if packets_out = 0 then ; 2128 else call set_timer (TIMEOUT); 2129 2130 else do; 2131 if ^xlce.flags.rnr_sent then do; 2132 call get_buffer (16); 2133 call make_header (lcx, "0"b); 2134 x25_pkt.type = SNRNR; 2135 if x25_data.seq_mod = 8 2136 then m8_fc_data.pr = xlce.next_recv_seq; 2137 else m128_fc_data.pr = xlce.next_recv_seq; 2138 buffer.tally = hdr_size + L2_HEADER_PAD; 2139 call write_pkt; 2140 call send_output; 2141 xlce.last_recv_seq = xlce.next_recv_seq; 2142 xlce.flags.rnr_sent = "1"b; 2143 end; 2144 call set_timer (TIMEOUT); 2145 end; 2146 2147 return; 2148 end send_rr; 2149 2150 /* * * * * * * * * * SEND_SYNC * * * * * * * * * */ 2151 2152 send_sync: 2153 procedure; 2154 2155 if (^x25_data.flags.no_d | ((x25_data.net_type = "tymnet") & (xsce.write_head = null ()))) 2156 & ^xlce.flags.rnr_received then do; 2157 call get_buffer (16); /* write an empty packet */ 2158 call make_header (lcx, "0"b); 2159 if ^x25_data.flags.no_d then x25_pkt.l3_header.d = "1"b; 2160 buffer.tally = hdr_size + L2_HEADER_PAD; 2161 call write_data_pkt; 2162 xlce.flags.write_status_sync_sent = "1"b; /* We sent one, don't do it again until we hear something. */ 2163 end; 2164 return; 2165 end send_sync; 2166 2167 /* * * * * * * * * * SET_TIMER * * * * * * * * * */ 2168 2169 set_timer: 2170 procedure (Time); 2171 2172 dcl Time fixed bin (71) parameter; 2173 2174 if ^xlce.flags.timer_set then do; 2175 call mcs_timer$set (x25_data.devx, (lcx), clock () + Time, ""b); 2176 xlce.flags.timer_set = "1"b; 2177 end; 2178 return; 2179 end set_timer; 2180 2181 /* * * * * * * * * SET_X29 * * * * * * * * * */ 2182 2183 set_x29: 2184 procedure (Set, Write); 2185 2186 dcl (Set, Write) bit (1) aligned parameter; 2187 dcl write bit (1) aligned; 2188 dcl (i, p) fixed bin; 2189 2190 write = Write; 2191 if Set then do; 2192 do i = 2 by 2 to buffer.tally - hdr_size - L2_HEADER_PAD; 2193 p = binary (substr (l4_data (i), 3, 7), 7); 2194 if (p < lbound (xlce.iti_params, 1)) | (p > hbound (xlce.iti_params, 1)) then do; 2195 write = "1"b; 2196 substr (l4_data (i), 2, 1) = "1"b; 2197 end; 2198 else xlce.iti_params (p) = binary (l4_data (i + 1), 8); 2199 end; 2200 if xsce.flags.need_ftd then do; 2201 call channel_manager$interrupt (xsce.devx, LINE_STATUS, ""b); 2202 xsce.flags.need_ftd = "0"b; 2203 end; 2204 end; 2205 2206 if write then do; 2207 2208 /* In case there is no parameter list following the request it ought to point you to the parameters. */ 2209 2210 if protocol_mpx then do; 2211 if buffer.tally < hdr_size + L2_HEADER_PAD + 2 then do; 2212 call free_in_pkt; /* free the buffer that arrived */ 2213 call get_buffer (16); /* allocate a larger buffer. */ 2214 call make_header (lcx, "1"b); 2215 l4_data (1) = "000"b3; 2216 do i = 1 to lbound (xlce.iti_params, 1) - 1; 2217 /* not precise arguments */ 2218 l4_data (2 * i) = substr (unspec (i), 27, 9); 2219 l4_data (2 * i + 1) = "000"b3; 2220 end; 2221 do i = lbound (xlce.iti_params, 1) to hbound (xlce.iti_params, 1); 2222 l4_data (2 * i) = substr (unspec (i), 27, 9); 2223 l4_data (2 * i + 1) = bit (xlce.iti_params (i)); 2224 end; 2225 buffer.tally = hdr_size + L2_HEADER_PAD + 2 * hbound (xlce.iti_params, 1) + 1; 2226 call write_data_pkt; 2227 return; 2228 end; 2229 end; 2230 l4_data (1) = "000"b3; 2231 do i = 2 by 2 to buffer.tally - hdr_size - L2_HEADER_PAD; 2232 p = binary (substr (l4_data (i), 3, 7), 7); 2233 if (p >= lbound (xlce.iti_params, 1)) & (p <= hbound (xlce.iti_params, 1)) 2234 then l4_data (i + 1) = bit (xlce.iti_params (p)); 2235 end; 2236 call tty_space_man$switch_chain (x25_data.devx, x25_data.devx, INPUT, OUTPUT, chain_ptr); 2237 call write_data_pkt; 2238 end; 2239 return; 2240 end set_x29; 2241 2242 /* * * * * * * * * * SETUP_SUBCHAN * * * * * * * * * */ 2243 2244 setup_subchan: 2245 procedure; 2246 2247 x25_data_ptr = X25_data_ptr; 2248 scx = X25_scx; 2249 xscep = addr (x25_data.sc (scx)); 2250 lcx = xsce.lcx; 2251 if lcx = 0 2252 then xlcep = null (); 2253 else xlcep = addr (x25_lces.lc (xsce.lcx)); 2254 return; 2255 end setup_subchan; 2256 2257 /* * * * * * * * * * SIGNAL_DIALUP * * * * * * * * * */ 2258 2259 signal_dialup: 2260 procedure; 2261 2262 dialup_info = x25_data.dialup_info; 2263 dialup_info.line_type = LINE_ASCII; /* we simulate ASCII lines */ 2264 dialup_info.baud_rate = xlce.baud_rate; 2265 if x25_data.seq_mod = 8 2266 then dialup_info.buffer_pad = dialup_info.buffer_pad + 3 + L2_HEADER_PAD; 2267 /* 3 bytes in L3 header */ 2268 else dialup_info.buffer_pad = dialup_info.buffer_pad + 4 + L2_HEADER_PAD; 2269 /* 4 bytes in L3 header */ 2270 dialup_info.max_buf_size = min (dialup_info.max_buf_size, divide (xlce.max_packet_size, 4, 9, 0)); 2271 call channel_manager$interrupt (xsce.devx, DIALUP, unspec (dialup_info)); 2272 xsce.state = SC_DIALED; 2273 xlce.state = FLOW_CONTROL_READY; 2274 call reset_timer; 2275 xsce.flags.output_ready = "1"b; 2276 call channel_manager$interrupt (xsce.devx, SEND_OUTPUT, ""b); 2277 return; 2278 end signal_dialup; 2279 2280 /* * * * * * * * * * SOLICIT_OUTPUT * * * * * * * * * */ 2281 2282 solicit_output: 2283 procedure; 2284 2285 if ^xsce.flags.output_ready & ^xsce.flags.end_of_page & ^xlce.flags.iti_break & (xsce.write_head = null ()) 2286 then do; 2287 xsce.flags.output_ready = "1"b; 2288 call channel_manager$interrupt (xsce.devx, SEND_OUTPUT, ""b); 2289 end; 2290 return; 2291 end solicit_output; 2292 2293 /* * * * * * * * * * STATE_CHANGE * * * * * * * * */ 2294 2295 state_change: 2296 procedure (State); 2297 2298 dcl State fixed bin; 2299 2300 xlce.state = State; 2301 xlce.state_time = clock (); 2302 call reset_timer; 2303 call set_timer (T20); 2304 return; 2305 end state_change; 2306 2307 /* * * * * * * * * * WRITE_DATA_PACKET * * * * * * * * * */ 2308 2309 write_data_pkt: 2310 procedure; 2311 2312 endp -> buffer.flags.break = "1"b; 2313 2314 if xsce.write_head = null () then do; 2315 xsce.write_head = blockp; 2316 xsce.write_tail = endp; 2317 blockp, endp = null (); 2318 call send_data_packets; 2319 call send_output; 2320 end; 2321 else do; 2322 xsce.write_tail -> buffer.next = binary (rel (blockp), 18); 2323 xsce.write_tail = endp; 2324 blockp, endp = null (); 2325 end; 2326 return; 2327 end write_data_pkt; 2328 2329 /* * * * * * * * * * WRITE_PKT * * * * * * * * * */ 2330 2331 write_pkt: 2332 procedure; 2333 2334 endp -> buffer.flags.break = "1"b; 2335 unspec (substr (endp -> buffer.chars (endp -> buffer.tally - 1), 1)) = 2336 unspec (substr (endp -> buffer.chars (endp -> buffer.tally - 1), 1)) | "400"b3; 2337 2338 if protocol_mpx 2339 then if x25_data.packet_trace_sw then call log_packet ("1"b); 2340 /* Log output packet before threading it in? */ 2341 if x25_data.write_head = null () 2342 then x25_data.write_head = blockp; 2343 else x25_data.write_tail -> buffer.next = binary (rel (blockp), 18); 2344 x25_data.write_tail = endp; 2345 blockp, endp = null (); 2346 return; 2347 end write_pkt; 2348 2349 /* * * * * * * * * X25_HANGUP * * * * * * * * */ 2350 2351 x25_hangup: 2352 procedure; 2353 2354 dcl size builtin; 2355 2356 call mcs_timer$reset_all (x25_data.devx); 2357 call free_x25_data_chain (); /* We might have some buffers left. */ 2358 2359 if x25_data.lc_ptr ^= null () then do; 2360 call tty_space_man$free_space (size (x25_lces), x25_data.lc_ptr); 2361 x25_data.lc_ptr = null (); 2362 end; 2363 x25_data.state = X25_HUNGUP; 2364 return; 2365 end x25_hangup; 2366 2367 log_packet: 2368 procedure (Write_sw); 2369 2370 dcl Write_sw bit (1) parameter; 2371 dcl 1 log_buf (buffer.tally) unaligned based (addr (buffer.chars)), 2372 2 pad bit (1), 2373 2 byte bit (8); 2374 dcl n_octets fixed bin; /* Dump this many. */ 2375 /* If regular data packet, then do not dump the data. */ 2376 if substr (x25_pkt.type, 8, 1) = "0"b & ^x25_pkt.l3_header.q 2377 then n_octets = 5; /* L2 + L3 header. */ 2378 else n_octets = buffer.tally; /* The works. */ 2379 call syserr (Log_message_or_discard, "x25_mpx(^a): Packet ^[out^;in^]:^v( ^.4b^)", x25_data.name, Write_sw, 2380 n_octets, log_buf.byte (*)); 2381 return; 2382 end log_packet; 2383 2384 send_NCON_RESP: 2385 proc; /* envoi d'une confirmation d'appel */ 2386 call get_buffer (16); 2387 call make_header (lcx, "0"b); 2388 x25_pkt.type = CALLAC; 2389 buffer.tally = 3 + L2_HEADER_PAD; 2390 call write_pkt; 2391 call send_output; 2392 2393 end send_NCON_RESP; 2394 2395 check_facilities: 2396 proc; 2397 2398 /* Procedure to analyze the facilities field after verifying */ 2399 /* if there is a request for taxation on demand. */ 2400 2401 dcl i fixed bin; 2402 dcl 1 facilities (facility_length) unal based (addr (l3_facilities)), 2403 2 pad bit (1) unal, /* overlap of the facility code field" */ 2404 2 par_length fixed bin (2) uns unal, /* length of the "facility parameter" field. */ 2405 2 code fixed bin (6) uns unal; /* facility code proper */ 2406 2407 xlce.flags.collect_call = "0"b; 2408 i = 1; 2409 do while (i <= facility_length); 2410 if facilities.code (i) = 1 2411 then /* code taxation on demand (request) */ 2412 if facilities.code (i + 1) = 1 then xlce.flags.collect_call = "1"b; 2413 /* test the corresponding parameter field */ 2414 if facilities.par_length (i) = 3 /* calculate to pass on the following field */ 2415 then /* partial case : 1 octet suported for length of the parameter field */ 2416 i = i + facilities.code (i + 1) + 2; /* assume length always < 64 */ 2417 else i = i + facilities.par_length (i) + 2; 2418 end; 2419 2420 end check_facilities; 2421 2422 get_protocol_sc: 2423 proc returns (bit (1)); /* search for a channel of the protocol type. */ 2424 2425 ttybp = addr (tty_buf$); 2426 lctep = addr (tty_buf.lct_ptr -> lct.lcte_array (xsce.devx)); 2427 if (lcte.channel_type = PROTOCOL_MPX) then return ("1"b); 2428 return ("0"b); 2429 2430 end get_protocol_sc; 2431 2432 set_up_dialup_info: 2433 proc; 2434 2435 dialup_info = x25_data.dialup_info; 2436 dialup_info.line_type = LINE_ASYNC1; 2437 if x25_data.seq_mod = 8 2438 then dialup_info.buffer_pad = x25_data.dialup_info.buffer_pad + 3 + L2_HEADER_PAD; 2439 /* 3 bytes in L3 header */ 2440 else dialup_info.buffer_pad = x25_data.dialup_info.buffer_pad + 4 + L2_HEADER_PAD; 2441 /* 4 bytes in L3 header */ 2442 dialup_info.max_buf_size = min (dialup_info.max_buf_size, divide (xlce.max_packet_size, 4, 9, 0)); 2443 2444 end set_up_dialup_info; 2445 2446 2447 2448 /* Special entry to perform per system (rather than per channel) 2449* initialization (called by priv_x25_mpx) */ 2450 2451 system_init: 2452 entry; 2453 2454 /* copy error codes to wired linkage for reference at interrupt time */ 2455 2456 et_undefined_order_request = error_table_$undefined_order_request; 2457 et_noalloc = error_table_$noalloc; 2458 et_action_not_performed = error_table_$action_not_performed; 2459 et_bad_arg = error_table_$bad_arg; 2460 et_bad_mode = error_table_$bad_mode; 2461 et_invalid_state = error_table_$invalid_state; 2462 et_resource_unavailable = error_table_$resource_unavailable; 2463 et_unimplemented_version = error_table_$unimplemented_version; 2464 2465 call wire_proc$wire_me; /* eat up some memory */ 2466 return; 2467 1 1 /* BEGIN INCLUDE FILE ... x25_data.incl.pl1 */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(89-03-20,Parisek), approve(89-06-01,MCR8110), 1 6* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 1 7* Add support of protocol mpx. 1 8* END HISTORY COMMENTS */ 1 9 1 10 1 11 /* Created june 9, 1979 by B.Westcott */ 1 12 /* Revised January 1982 by C. Hornig */ 1 13 /* Modified May 1982, by D. W. Cousins for level 2 activation data */ 1 14 /* Modified August 1983 by Jeff Schiller to implement the "reverse charging" facility. */ 1 15 /* Modified October 1984 by R.J.C. Kissel to have a value for the idle timer to use for breakall mode. */ 1 16 /* Modified October 1984 by R.J.C. Kissel to add the write_status_sync_sent flag. */ 1 17 1 18 dcl x25_data_ptr ptr; 1 19 dcl x25_data_n_sc fixed bin; /* number of Multics subchannels */ 1 20 1 21 dcl 1 x25_data aligned based (x25_data_ptr), /* level 3 data */ 1 22 2 name char (32), /* channel name for messages */ 1 23 2 devx fixed bin, /* device index of multiplexer */ 1 24 2 state fixed bin, /* see below */ 1 25 2 n_lc fixed bin, /* number of logical channels */ 1 26 2 n_sc fixed bin, /* number of subchannels */ 1 27 2 n_pvc fixed bin, /* number of Permanent Virtual Circuits */ 1 28 2 flags, 1 29 3 send_output bit (1) unaligned, 1 30 3 mpx_started bit (1) unaligned, 1 31 3 bypass_restart bit (1) unaligned, 1 32 3 no_d bit (1) unaligned, /* end-to-end ack not available */ 1 33 3 out_calls_collect bit (1) unaligned, 1 34 3 packet_trace_sw bit (1) unaligned, /* Log packets? */ 1 35 3 pad1 bit (30) unaligned, 1 36 2 seq_mod uns fixed bin (8), /* modulus for packet sequencing */ 1 37 2 gfid bit (2), /* format code to use */ 1 38 2 load_proc_id bit (36), /* bootload process id */ 1 39 2 load_ev_chan fixed bin (71), /* bootload event channel */ 1 40 2 net_type char (8), /* type of net this is */ 1 41 2 restart_time fixed bin (71), /* time last restart sent */ 1 42 2 dialup_info like dialup_info, /* dialup interrupt info */ 1 43 2 lc_ptr ptr, /* LC table */ 1 44 2 (write_head, write_tail) ptr, /* chain of packets to write */ 1 45 2 long_packet_size fixed bin (11), /* smallest long packet */ 1 46 2 long_packet_head fixed bin, /* head of long packet SC chain */ 1 47 2 long_packet_tail fixed bin, /* tail of long packet SC chain */ 1 48 2 breakall_idle_timer fixed bin, /* breakall idle timer in 1/20 sec. */ 1 49 2 my_address varying char (15), /* local DTE address */ 1 50 2 sc (x25_data_n_sc refer (x25_data.n_sc)) like xsce;/* subchannel tables */ 1 51 1 52 dcl ( 1 53 X25_HUNGUP init (0), /* values of x25_data.state */ 1 54 X25_LISTENING init (1), 1 55 X25_RESTARTING init (2), 1 56 X25_ACTIVE init (3) 1 57 ) fixed bin static options (constant); 1 58 1 59 dcl 1 x25_lces aligned based (x25_data.lc_ptr), /* logical channel table */ 1 60 2 lc (x25_data.n_lc) like xlce; 1 61 1 62 dcl xlcep ptr; 1 63 dcl 1 xlce aligned based (xlcep), 1 64 2 state fixed bin, /* see definitions below */ 1 65 2 scx fixed bin, /* index of associated subchannel */ 1 66 2 max_packet_size uns fixed bin (18), /* maximum data packet allowed */ 1 67 2 max_window_size uns fixed bin (7), 1 68 2 baud_rate fixed bin, /* speed of remote correspondent */ 1 69 2 flags aligned, /* start on a word. */ 1 70 3 iti_call bit (1) unaligned, /* set if iti call */ 1 71 3 int_issued bit (1) unaligned, /* interrupt packet issued */ 1 72 3 rnr_received bit (1) unaligned, /* dce sent rnr packet */ 1 73 3 iti_break bit (1) unaligned, /* iti break being serviced */ 1 74 3 rnr_sent bit (1) unaligned, /* we sent a RNR */ 1 75 3 originate bit (1) unaligned, /* we started this call */ 1 76 3 timer_set bit (1) unaligned, /* timing out on RR */ 1 77 3 collect_call bit (1) unaligned, /* who pays for call */ 1 78 3 write_status_sync_sent bit (1) unaligned, /* we sent one, and haven't heard the result. */ 1 79 3 pad bit (27) unaligned, 1 80 2 window_size fixed bin, /* V (W) current window size */ 1 81 2 force_ack_time fixed bin (71), /* deadline for sending RR */ 1 82 2 state_time fixed bin (71), /* time of last state change */ 1 83 2 next_recv_seq unsigned fixed bin (7), /* V(R) next receive sequence number */ 1 84 2 next_send_seq unsigned fixed bin (7), /* V(S) next sequence for transmssion */ 1 85 2 last_recv_seq unsigned fixed bin (7), /* P(R) last issued receive sequence */ 1 86 2 next_ack_seq unsigned fixed bin (7), /* P(S) sequence of next ack to be issued */ 1 87 2 his_address varying char (15), /* outgoing host number */ 1 88 2 call_data varying char (16), /* call user data */ 1 89 2 iti_params (18) uns fixed bin (9) unaligned; /* PAD simulation parameters */ 1 90 1 91 /* state definitions */ 1 92 1 93 dcl ( 1 94 READY init (1), 1 95 DTE_WAITING init (2), 1 96 FLOW_CONTROL_READY init (3), 1 97 DTE_CLEAR_REQUEST init (4), 1 98 DTE_RESET_REQUEST init (5), 1 99 CONRESP_WAITING init (6) 1 100 ) fixed bin static options (constant); 1 101 1 102 dcl xscep ptr; 1 103 dcl 1 xsce aligned based (xscep), 1 104 2 name char (32), /* name of the channel */ 1 105 2 devx fixed bin, /* device index */ 1 106 2 lcx fixed bin, /* index of xlce */ 1 107 2 state fixed bin, /* see definitions below */ 1 108 2 flags, 1 109 3 output_ready bit (1) unaligned, /* set if window full */ 1 110 3 end_of_page bit (1) unaligned, /* set if output read end-of-page */ 1 111 3 wru_done bit (1) unaligned, /* user has done a WRU */ 1 112 3 need_ftd bit (1) unaligned, /* user has done get_foreign_terminal_data */ 1 113 3 long_packet_pending bit (1) unaligned, /* there is a long packet "on hold" */ 1 114 3 pad bit (13) unaligned, 1 115 3 mode (18) bit (1) unaligned, /* rawi, echoplex, breakall, iflow, oflow, hndlquit, polite, lfecho, 8bit */ 1 116 2 long_packet_next_scx fixed bin, /* thread of held sc's */ 1 117 2 service char (12), /* name of service offered here */ 1 118 2 (write_head, write_tail) ptr, /* data packet chain */ 1 119 2 trans_table_ptr ptr; /* translation table */ 1 120 1 121 dcl ( 1 122 SC_HUNGUP init (0), 1 123 SC_LISTENING init (1), 1 124 SC_DIALING init (2), 1 125 SC_DIALED init (3) 1 126 ) fixed bin static options (constant); 1 127 2 1 /* BEGIN INCLUDE FILE ... mcs_interrupt_info.incl.pl1 */ 2 2 2 3 /* Defines constants and structures used by MCS interrupt handlers */ 2 4 2 5 /* Created 08/21/78 by Robert Coren */ 2 6 /* Echo negotiation types added sometime by Bernie Greenberg */ 2 7 /* TIMER and USER_INTERRUPT added in spring of 1982 by Olin Sibert */ 2 8 /* MASKED type added June 23, 1982, by Robert Coren */ 2 9 2 10 dcl DIALUP fixed bin int static options (constant) init (1); 2 11 dcl HANGUP fixed bin int static options (constant) init (2); 2 12 dcl CRASH fixed bin int static options (constant) init (3); 2 13 dcl SEND_OUTPUT fixed bin int static options (constant) init (4); 2 14 dcl INPUT_AVAILABLE fixed bin int static options (constant) init (5); 2 15 dcl ACCEPT_INPUT fixed bin int static options (constant) init (6); 2 16 dcl INPUT_REJECTED fixed bin int static options (constant) init (7); 2 17 dcl QUIT fixed bin int static options (constant) init (8); 2 18 dcl LINE_STATUS fixed bin int static options (constant) init (9); 2 19 dcl DIAL_STATUS fixed bin int static options (constant) init (10); 2 20 dcl WRU_TIMEOUT fixed bin int static options (constant) init (11); 2 21 dcl SPACE_AVAILABLE fixed bin int static options (constant) init (12); 2 22 dcl ACKNOWLEDGE_ECHNEGO_INIT fixed bin int static options (constant) init (13); 2 23 dcl ACKNOWLEDGE_ECHNEGO_STOP fixed bin int static options (constant) init (14); 2 24 dcl TIMER fixed bin int static options (constant) init (15); 2 25 dcl USER_INTERRUPT fixed bin int static options (constant) init (16); 2 26 dcl MASKED fixed bin int static options (constant) init (17); 2 27 2 28 dcl interrupt_info bit (72) aligned; 2 29 2 30 dcl 1 dialup_info aligned, /* for use with DIALUP interrupt */ 2 31 2 line_type fixed bin (9) unal uns, 2 32 2 buffer_pad fixed bin (9) unal uns, /* free space multiplexer would like in output bufs */ 2 33 2 baud_rate fixed bin (18) unal uns, 2 34 2 max_buf_size fixed bin (9) unal uns, 2 35 2 receive_mode_device bit (1) unal, /* device must be told to enter receive mode */ 2 36 2 pad bit (26) unal; 2 37 2 38 dcl 1 rtx_info aligned, /* for use with ACCEPT_INPUT interrupt */ 2 39 2 input_chain unaligned, 2 40 3 chain_head bit (18) unaligned, 2 41 3 chain_tail bit (18) unaligned, 2 42 2 input_count fixed bin (18) unal uns, 2 43 2 flags unaligned, 2 44 3 break_char bit (1), /* data contains a break character */ 2 45 3 output_in_fnp bit (1), /* there is output in the FNP */ 2 46 3 output_in_ring_0 bit (1), /* there is output in ring 0 */ 2 47 3 formfeed_present bit (1), /* input contains a formfeed character */ 2 48 3 pad bit (14); 2 49 2 50 dcl 1 timer_info aligned, /* Info supplied with TIMER interrupt */ 2 51 2 id bit (36) aligned, /* ID which was supplied in call to mcs_timer$set */ 2 52 2 subchan_idx fixed bin; /* Index of subchannel on whose behalf timer was set */ 2 53 2 54 /* END INCLUDE FILE ... mcs_interrupt_info.incl.pl1 */ 1 128 1 129 1 130 /* End include file x25_data.incl.pl1 */ 2468 3 1 /* ---------------- BEGIN include file protocol_infos.incl.pl1 ------------- */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(89-03-20,Parisek), approve(89-06-06,MCR8110), 3 7* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 3 8* Add support of protocol mpx. 3 9* 2) change(89-11-03,Parisek), approve(89-11-03,PBF8110), 3 10* audit(89-11-03,Farley), install(89-11-08,MR12.3-1107): 3 11* Move the "transmit_info.pad1" field to the proper location, 3 12* (after the "size" field). 3 13* END HISTORY COMMENTS */ 3 14 3 15 3 16 /* Written in June 1985 by C. Claveleira - CICB */ 3 17 3 18 /* Latest version : */ 3 19 /* */ 3 20 /* 14 feb 1986 : C. Claveleira */ 3 21 /* 20 mar 1986 : C. Claveleira - version 1.0 of protocol_mpx */ 3 22 /* 31 may 1986 : C. Claveleira - version 1.3 of protocol_mpx */ 3 23 3 24 /* infos exchanged between x25_mpx, protocol_mpx and 3 25* Transport Layer */ 3 26 3 27 dcl pinfop ptr; 3 28 3 29 dcl 1 DIALUP_info aligned, 3 30 2 info_relp bit (18) unaligned, 3 31 2 pad bit (54) unaligned; 3 32 3 33 dcl 1 NCON_REQ_info aligned based (pinfop), 3 34 2 mbz fixed bin (35), 3 35 2 from_address char (15) varying, 3 36 2 to_address char (15) varying, 3 37 2 facilities char (16) varying, 3 38 2 data char (48) varying; 3 39 3 40 dcl 1 NCON_IND_info aligned, 3 41 2 dial_info bit (72), 3 42 2 his_address char (15) varying, 3 43 2 our_address char (15) varying, 3 44 2 data char (48) varying, 3 45 2 facilities char (16) varying; 3 46 3 47 dcl 1 NDIS_IND_REASON aligned based, 3 48 2 cause fixed bin (8) unaligned, 3 49 2 diag fixed bin (8) unaligned; 3 50 3 51 dcl 1 disconnect_info unal, 3 52 2 cause bit (9), 3 53 2 diag bit (9); 3 54 3 55 dcl 1 network_infos aligned based (pinfop), 3 56 2 network_address char (15) varying, 3 57 2 max_packet_size fixed bin; 3 58 3 59 dcl transmit_info_entries fixed bin; 3 60 3 61 dcl 1 transmit_info aligned based (pinfop), 3 62 2 n_entries fixed bin, 3 63 2 pad bit (36), 3 64 2 entry (transmit_info_entries refer (transmit_info.n_entries)), 3 65 3 data_ptr ptr, 3 66 3 size fixed bin (21) unsigned, 3 67 3 pad1 bit (36); 3 68 3 69 3 70 /* messages passed to the Transport Layer at the time of wakeups : */ 3 71 3 72 dcl protocol_event_message fixed bin (71); 3 73 3 74 dcl 1 protocol_msg based (addr (protocol_event_message)), 3 75 2 ev_devx fixed bin (17) unaligned, /* device index */ 3 76 2 ev_type fixed bin (17) unaligned, /* reason for wakeup (see below) */ 3 77 2 ev_user_index fixed bin (17) unaligned, 3 78 2 infos bit (18) unaligned; 3 79 3 80 dcl NCONIND fixed bin internal static options (constant) init (1); /* type of wakeup */ 3 81 dcl NCONCONF fixed bin internal static options (constant) init (2); 3 82 dcl NDTIND fixed bin internal static options (constant) init (3); 3 83 dcl NDTRDYIND fixed bin internal static options (constant) init (4); 3 84 dcl NRESETIND fixed bin internal static options (constant) init (5); 3 85 dcl NDISIND fixed bin internal static options (constant) init (6); 3 86 dcl ABORT fixed bin internal static options (constant) init (7); 3 87 3 88 dcl wakeup_names (7) char (9) internal static options (constant) 3 89 init ("NCONIND", 3 90 "NCONCONF", 3 91 "NDTIND", 3 92 "NDTRYIND", 3 93 "NRESETIND", 3 94 "NDISIND", 3 95 "ABORT"); 3 96 3 97 /* --------- END INCLUDE FILE ... protocol_infos.incl.pl1 ------- */ 3 98 2469 4 1 /* BEGIN INCLUDE FILE ... flow_conrol_info.incl.pl1 */ 4 2 4 3 /* This include file defines the structures used for the "input_flow_control_chars" 4 4* and "output_flow_control_chars" orders to MCS. 4 5**/ 4 6 4 7 /* Created 08/13/79 by Robert S. Coren */ 4 8 4 9 dcl 1 input_flow_control_info aligned based, 4 10 2 suspend_seq unaligned, 4 11 3 count fixed bin (9) unsigned, 4 12 3 chars char (3), 4 13 2 resume_seq unaligned, 4 14 3 count fixed bin (9) unsigned, 4 15 3 chars char (3), 4 16 2 timeout bit (1); 4 17 4 18 4 19 dcl 1 output_flow_control_info aligned based, 4 20 2 flags unaligned, 4 21 3 suspend_resume bit (1), 4 22 3 block_acknowledge bit (1), 4 23 3 mbz bit (16), 4 24 2 buffer_size fixed bin (18) unsigned unaligned, 4 25 2 suspend_or_etb_seq unaligned, 4 26 3 count fixed bin (9) unsigned, 4 27 3 chars char (3), 4 28 2 resume_or_ack_seq unaligned, 4 29 3 count fixed bin (9) unsigned, 4 30 3 chars char (3); 4 31 4 32 4 33 /* END INCLUDE FILE ... flow_control_info.incl.pl1 */ 4 34 2470 5 1 /* Begin include file foreign_terminal.incl.pl1 */ 5 2 5 3 dcl foreign_terminal_data_ptr ptr; 5 4 dcl FOREIGN_TERMINAL_DATA_VERSION_1 char (8) aligned static options (constant) init ("ftd_1"); 5 5 dcl 1 foreign_terminal_data aligned based (foreign_terminal_data_ptr), 5 6 2 version char (8), /* (Input) version of this structure */ 5 7 2 area_ptr ptr, /* (Input) area in which to allocate modes */ 5 8 2 mode_string_info_ptr ptr; /* (Output) points to allocate mode_string_info */ 5 9 /* End of version 1 data */ 5 10 5 11 /* End include file foreign_terminal.incl.pl1 */ 2471 6 1 /* BEGIN INCLUDE FILE ... lct.incl.pl1 */ 6 2 6 3 /* Created by J. Stern 7/26/78 */ 6 4 /* Metering information added by C. Hornig, March 1980. */ 6 5 /* Unwired saved meters added by Robert Coren, December 1980 */ 6 6 6 7 dcl lctp ptr; /* ptr to logical channel table */ 6 8 dcl lctep ptr; /* ptr to logical channel table entry */ 6 9 dcl lct_size fixed bin; /* size of lcte_array when allocated */ 6 10 6 11 dcl 1 lct aligned based (lctp), /* logical channel table */ 6 12 2 max_no_lctes fixed bin, /* maximum number of lct entries */ 6 13 2 cur_no_lctes fixed bin, /* current number of lct entries used */ 6 14 2 lcnt_ptr ptr, /* ptr to logical channel name table */ 6 15 2 queue_lock bit (36), /* lock used to serialize queueing operations */ 6 16 2 pad (11) fixed bin, 6 17 2 lcte_array (lct_size refer (lct.max_no_lctes)) like lcte; /* lct entries */ 6 18 6 19 6 20 dcl 1 lcte aligned based (lctep), /* logical channel table entry */ 6 21 2 lock bit (36), /* channel lock */ 6 22 2 data_base_ptr ptr unal, /* ptr to channel data base */ 6 23 2 channel_type fixed bin (8) unal, /* identifies channel manager program */ 6 24 2 flags unal, 6 25 3 entry_in_use bit (1) unal, /* ON if this entry in use */ 6 26 3 initialized bit (1) unal, /* ON if this channel initialized */ 6 27 3 notify_reqd bit (1) unal, /* ON if must notify when unlocking this channel */ 6 28 3 locked_for_interrupt bit (1) unal, /* ON if lock set by interrupt handler */ 6 29 3 space_needed bit (1) unal, /* ON if this channel needs buffer space */ 6 30 3 special_lock bit (1) unal, /* ON if lock is managed by multiplexer */ 6 31 3 trace_force bit (1) unal, /* ON to trace based on next bit only */ 6 32 /* OFF to XOR next bit with tty_buf.default_tracing */ 6 33 3 trace bit (1) unal, /* ON to trace this channel */ 6 34 3 unused bit (1) unal, 6 35 2 physical_channel_devx fixed bin (17) unal, /* devx of physical chan from which logical chan is derived */ 6 36 2 major_channel_info, 6 37 3 major_channel_devx fixed bin unal, /* major channel device index */ 6 38 3 subchannel fixed bin (17) unal, /* subchannel id (or data ptr) wrt major channel */ 6 39 2 queue_entries, 6 40 3 queue_head bit (18) unal, /* ptr to first queue entry for this channel */ 6 41 3 queue_tail bit (18) unal, /* ptr to last queue entry for this channel */ 6 42 2 word_counts, 6 43 3 input_words fixed bin (17) unal, /* number of input words charged to this channel */ 6 44 3 output_words fixed bin (17) unal, /* number of output words charged to this channel */ 6 45 6 46 2 meters, 6 47 3 in_bytes fixed bin (35), 6 48 3 out_bytes fixed bin (35), 6 49 3 in, 6 50 4 calls fixed bin (35), 6 51 4 interrupts fixed bin (35), 6 52 4 call_time fixed bin (71), 6 53 4 interrupt_time fixed bin (71), 6 54 3 out like lcte.meters.in, 6 55 3 control like lcte.meters.in, 6 56 2 saved_meters_ptr ptr, /* pointer to unwired copy of meters saved at last dialup */ 6 57 6 58 2 timer_offset bit (18) aligned, /* Head of list of timers for this channel */ 6 59 6 60 2 pad (3) fixed bin (35); 6 61 6 62 6 63 dcl lcntp ptr; /* ptr to logical channel name table */ 6 64 6 65 dcl 1 lcnt aligned based (lcntp), /* logical channel name table */ 6 66 2 names (lct.max_no_lctes) char (32) unal; /* channel names */ 6 67 6 68 dcl 1 saved_meters aligned based like lcte.meters; /* meters saved at dialup, allocated in tty_area */ 6 69 6 70 6 71 /* END INCLUDE FILE ... lct.incl.pl1 */ 2472 7 1 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 7 2 7 3 /* Written November 10 1975 by Paul Green */ 7 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 7 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 7 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 7 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 7 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 7 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 7 10 7 11 7 12 /****^ HISTORY COMMENTS: 7 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 7 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 7 15* Add a DSA line type. 7 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 7 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 7 18* Add HASP_OPR to identify HASP workstation consoles with login service. 7 19* END HISTORY COMMENTS */ 7 20 7 21 7 22 declare (LINE_MC initial (-2), 7 23 LINE_TELNET initial (-1), 7 24 LINE_UNKNOWN initial (0), 7 25 LINE_ASCII initial (1), 7 26 LINE_1050 initial (2), 7 27 LINE_2741 initial (3), 7 28 LINE_ARDS initial (4), 7 29 LINE_SYNCH initial (5), 7 30 LINE_G115 initial (6), 7 31 LINE_BSC initial (7), 7 32 LINE_ETX initial (8), 7 33 LINE_VIP initial (9), 7 34 LINE_ASYNC1 initial (10), 7 35 LINE_ASYNC2 initial (11), 7 36 LINE_ASYNC3 initial (12), 7 37 LINE_SYNC1 initial (13), 7 38 LINE_SYNC2 initial (14), 7 39 LINE_SYNC3 initial (15), 7 40 LINE_POLLED_VIP initial (16), 7 41 LINE_X25LAP initial (17), 7 42 LINE_HDLC initial (18), 7 43 LINE_COLTS initial (19), 7 44 LINE_DSA initial (20), 7 45 LINE_HASP_OPR initial (21) 7 46 ) fixed bin internal static options (constant); 7 47 7 48 dcl max_line_type fixed bin int static options (constant) init (21); 7 49 7 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 7 51 7 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 7 53 7 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 7 55 "MC", /* -2 */ 7 56 "TELNET", /* -1 */ 7 57 "none", /* 0 */ 7 58 "ASCII", /* 1 */ 7 59 "1050", /* 2 */ 7 60 "2741", /* 3 */ 7 61 "ARDS", /* 4 */ 7 62 "Sync", /* 5 */ 7 63 "G115", /* 6 */ 7 64 "BSC", /* 7 */ 7 65 "202ETX", /* 8 */ 7 66 "VIP", /* 9 */ 7 67 "ASYNC1", /* 10 */ 7 68 "ASYNC2", /* 11 */ 7 69 "ASYNC3", /* 12 */ 7 70 "SYNC1", /* 13 */ 7 71 "SYNC2", /* 14 */ 7 72 "SYNC3", /* 15 */ 7 73 "POLLED_VIP", /* 16 */ 7 74 "X25LAP", /* 17 */ 7 75 "HDLC", /* 18 */ 7 76 "COLTS", /* 19 */ 7 77 "DSA", /* 20 */ 7 78 "HASP_OPR"); /* 21 */ 7 79 7 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 2473 8 1 /* BEGIN INCLUDE FILE ... mcs_modes_change_list.incl.pl1 */ 8 2 8 3 /* Created 4/9/79 by J. Stern */ 8 4 /* Modified: 10 November 1980 by G. Palter to add can_type */ 8 5 8 6 8 7 dcl mclp ptr; 8 8 dcl mcl_version_2 fixed bin int static options (constant) init (2); 8 9 8 10 dcl 1 mcl aligned based (mclp), /* modes change list */ 8 11 2 version fixed bin, /* version number of this structure (Input) */ 8 12 2 n_entries fixed bin, /* number of mode change entries (Input) */ 8 13 2 line_len fixed bin, /* new line length (-1 => no change) (Input) */ 8 14 2 page_len fixed bin, /* new page length (-1 => no change) (Input) */ 8 15 2 can_type fixed binary, /* new canonicalization type (-1 => no change) (Input) */ 8 16 2 flags, 8 17 3 init bit (1) unal, /* ON if all modes to be reinitialized (Input) */ 8 18 3 ll_error bit (1) unal, /* ON if line length error detected (Output) */ 8 19 3 pl_error bit (1) unal, /* ON if page length error detected (Output) */ 8 20 3 can_type_error bit (1) unaligned, /* ON if can_type error detected (Output) */ 8 21 3 mbz bit (32) unal, 8 22 2 entries (36) like mcle; /* one entry per mode change */ 8 23 8 24 dcl mclep ptr; 8 25 8 26 dcl 1 mcle aligned based (mclep), /* mode change list entry */ 8 27 2 mode_name char (16) unal, /* name of mode to change (Input) */ 8 28 2 flags, 8 29 3 mode_switch bit (1) unal, /* ON to turn mode on, else OFF (Input) */ 8 30 3 force bit (1) unal, /* ON to ignore errors for this mode change (Input) */ 8 31 3 mpx_mode bit (1) unal, /* ON if mode recognized by multiplexer (Output) */ 8 32 3 error bit (1) unal, /* ON if mode change is in error (Output) */ 8 33 3 mbz bit (32) unal; 8 34 8 35 8 36 /* END INCLUDE FILE ... mcs_modes_change_list.incl.pl1 */ 2474 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 */ 2475 10 1 /* BEGIN INCLUDE FILE ... tty_buf.incl.pl1 */ 10 2 10 3 /* Date Last Modified and Reason 10 4* Created 04/19/77 by J. Stern (from part of tty.incl.pl1) 10 5* Modified January 1978 by Robert Coren and Larry Johnson for variable-size buffers 10 6* Modified 2/6/78 by Robert Coren to make circular_queue size settable 10 7* Modified Aug 78 by J. Nicholls to move the buffer block format to a file of its own 10 8* and wtcb to its own plus other modification for ring 0 multiplexing, tty_buffer_block.incl.pl1 10 9* Modified 7/17/79 by B. Greenberg for echo negotiation meters. 10 10* Modified November 1979 by C. Hornig for MCS tracing. 10 11* Modified December 1979 by Robert Coren to add FNP channel lock meter 10 12* Modified February 1980 by Robert Coren to remove all references to circular buffer 10 13* Modified March 1980 by Robert Coren to reorganize metering information 10 14* Modified December 1980 by Robert Coren to add FNP-specific events 10 15* Modified 24 March 1982, W. Olin Sibert, to add mcs_timer support, recoverable_error_severity 10 16* Modified November 1984 by Robert Coren to add tty_area_lock 10 17**/ 10 18 10 19 dcl ttybp ptr, 10 20 tty_buf$ ext static, /* tty buffer segment */ 10 21 tty_ev fixed bin int static options (constant) init (57), /* event used for wait and notify */ 10 22 abs_buf_limit fixed bin (18) static options (constant) init (64), /* minimum number of words we will leave free */ 10 23 input_bpart fixed bin (18) static options (constant) init (2), /* fraction of bleft we will allow for input */ 10 24 output_bpart fixed bin (18) static options (constant) init (4); /* fraction of bleft we will allow for output */ 10 25 10 26 10 27 dcl qblock_size fixed bin int static options (constant) init (16); /* size in words of a delay queue block */ 10 28 dcl bsizec fixed bin int static options (constant) init (60); /* number of characters in smallest buffer */ 10 29 dcl buf_per_second fixed bin int static options (constant) init (10); /* for figuring out max. buffer size based on speed */ 10 30 10 31 dcl FNP_DUMP_PATCH_EVENT fixed bin int static options (constant) init (58); 10 32 dcl FNP_METER_EVENT fixed bin int static options (constant) init (59); 10 33 dcl TTY_AREA_LOCK_EVENT bit (36) aligned int static options (constant) init ("74"b3); 10 34 10 35 dcl 1 tty_buf aligned based (ttybp), /* declaration of tty buffer seg */ 10 36 2 slock bit (36), /* per system lock */ 10 37 2 absorig fixed bin (24), /* abs address of this seg */ 10 38 2 borig bit (18), /* index of start of buffer area */ 10 39 2 bleft fixed bin (18), /* words left in pool */ 10 40 2 free bit (18), /* pointer to start of free pool */ 10 41 2 fnp_config_flags (8) bit (1) unal, /* flag(i) ON if fnp(i) configured */ 10 42 2 padb1 bit (28) unaligned, 10 43 2 lct_ptr ptr, /* pointer to logical channel table */ 10 44 10 45 2 nrawread fixed bin (35), /* number of raw chars input, total */ 10 46 2 nrawwrite fixed bin (35), /* number of raw characters output */ 10 47 2 ninchars fixed bin (35), /* total input chars after conversion */ 10 48 2 noutchars fixed bin (35), /* total output chars before conversion */ 10 49 2 readblocked fixed bin (35), /* number of times go input blocked */ 10 50 2 nblocked fixed bin (35), /* number of times process output blocked */ 10 51 2 minbuf fixed bin (18), /* min output buffer size */ 10 52 2 totbuf fixed bin (35), /* divide by nblocked to get ave buffer size */ 10 53 10 54 2 preconverted fixed bin (35), /* number of converted chars held in tty_buf */ 10 55 2 input_restart fixed bin, /* number of times tty_read had to start over */ 10 56 2 output_restart fixed bin, /* number of times tty_write has had to start over */ 10 57 2 output_buffer_overflow fixed bin, /* number of times tty_write has run out of buffers */ 10 58 2 read_time fixed bin (71), /* total time spent in tty_read */ 10 59 2 write_time fixed bin (71), /* total time spent in tty_write */ 10 60 10 61 2 read_calls fixed bin (35), /* number of calls to tty_read */ 10 62 2 write_calls fixed bin (35), /* number of calls to tty_write */ 10 63 2 bfx fixed bin, /* used in calls to iobm */ 10 64 2 nquits fixed bin (35), /* number of quits */ 10 65 2 space_needed_data, 10 66 3 space_needed bit (1) unal, /* space_needed bit on in at least 1 lcte */ 10 67 3 space_needed_calls fixed bin (34) unal, /* meter of uses of this facility */ 10 68 2 space_lock_count fixed bin (35), /* count of times tty_buf.slock locked */ 10 69 2 space_lock_wait_count fixed bin (35), /* count of times necessary to loop to lock it */ 10 70 2 space_lock_wait_time fixed bin (35), /* total time looped trying to lock it */ 10 71 10 72 2 alloc_calls fixed bin (35), /* total number of allocations performed in tty_buf */ 10 73 2 free_calls fixed bin (35), /* total number of freeings in tty_buf */ 10 74 2 alloc_time fixed bin (35), /* time spent masked in tty_space_man$get entries */ 10 75 2 free_time fixed bin (35), /* time spent masked in tty_space_man$free entries */ 10 76 2 total_alloc_steps fixed bin (35), /* number of steps thru free chain while doing above */ 10 77 2 alloc_failures fixed bin (35), /* number of unsuccessful attempts to allocate space */ 10 78 2 cumulative_input_space fixed bin (71), /* cumulative amount of space allocated for input */ 10 79 10 80 2 cumulative_output_space fixed bin (71), /* cumulative amount of space allocated for output */ 10 81 2 cumulative_control_space fixed bin (71), /* cumulative amount of space allocated by tty_space_man$get_space */ 10 82 2 input_space_updates fixed bin (35), /* number of increments to cumulative_input_space */ 10 83 2 output_space_updates fixed bin (35), /* number of increments to cumulative_output_space */ 10 84 2 control_space_updates fixed bin (35), /* number of increments to cumulative_control_space */ 10 85 2 minimum_free_space fixed bin (18), /* smallest amount of free space ever available */ 10 86 10 87 2 current_input_space fixed bin (18), /* amount of space currently allocated for input */ 10 88 2 current_output_space fixed bin (18), /* amount of space currently allocated for output */ 10 89 2 current_control_space fixed bin (18), /* amount of space currently allocated by get_space */ 10 90 2 tty_lock_calls fixed bin (35), /* number of calls to tty_lock$lock entries */ 10 91 2 found_channel_locked fixed bin (35), /* number of times tty_lock found channel already locked */ 10 92 2 max_wait_time fixed bin (35), /* longest time waited for any channel lock */ 10 93 2 total_wait_time fixed bin (71), /* total amount of time spent waiting for channel locks */ 10 94 10 95 2 echo_neg_time fixed bin (71), /* cumulative time spent doing echo negotiation */ 10 96 2 echo_neg_interrupts fixed bin (35), /* Echo-negotiated shipments */ 10 97 2 echo_neg_r0_chars fixed bin (35), /* Chars echoed by ring 0 */ 10 98 2 echo_neg_mux_chars fixed bin (35), /* Chars echoed by mux */ 10 99 2 echo_neg_sndopt_restarts fixed bin (35), /* Echo reinits */ 10 100 2 echo_neg_mux_nonecho fixed bin (35), 10 101 2 echo_neg_entries fixed bin (35), /* Entries into negotiate */ 10 102 10 103 2 echo_neg_mux_inhibit bit (1) aligned, /* For testing */ 10 104 2 n_queued_interrupts fixed bin (35), /* number of interrupts queued by tty_lock */ 10 105 2 trace unaligned, /* tracing information */ 10 106 3 flags, 10 107 4 enable bit, /* global tracing control */ 10 108 4 default_mode bit, /* whether to trace channels by default */ 10 109 4 read bit, /* read */ 10 110 4 write bit, /* write */ 10 111 4 data bit, /* buffers on reads and writes */ 10 112 4 control bit, /* control, priv_control, and hpriv_control */ 10 113 4 modes bit, /* (get set check)_modes */ 10 114 4 interrupt bit, /* interrupt, interrupt_later */ 10 115 4 init bit, /* init_multiplexer, terminate_multiplexer */ 10 116 4 start bit, /* start, stop */ 10 117 4 shutdown bit, /* shutdown */ 10 118 4 space_man bit, /* tty_space_man$* */ 10 119 4 pad_flags bit (6), 10 120 3 data_offset bit (18), /* offset of tracing data */ 10 121 10 122 2 recoverable_error_severity fixed bin, /* Syserr severity for recoverable MCS errors */ 10 123 10 124 2 timer_lock bit (36) aligned, /* Lock owned by mcs_timer */ 10 125 2 next_timer_offset bit (18) aligned, /* Offset of next timer to come due */ 10 126 2 timer_count fixed bin, /* Number of timers outstanding */ 10 127 2 timer_process bit (36) aligned, /* Who is doing timers? */ 10 128 10 129 2 timer_ev_chn fixed bin (71), /* How get get him */ 10 130 2 timer_lock_wait_time fixed bin (71), /* CPU time spent spinning on timer lock */ 10 131 10 132 2 timer_lock_count fixed bin (35), /* Number of times timer lock locked */ 10 133 2 timer_lock_wait_count fixed bin (35), /* Number of times imer lock waited on */ 10 134 2 timer_call_time fixed bin (71), /* CPU time spent in call side timer operations */ 10 135 10 136 2 timer_polling_time fixed bin (71), /* CPU time spent polling (including channel_manager) */ 10 137 2 timer_set_calls fixed bin (35), /* Number of calls to mcs_timer$set, set_wired */ 10 138 2 timer_reset_calls fixed bin (35), /* Number of calls to mcs_timer$reset, reset_wired */ 10 139 10 140 2 timer_change_calls fixed bin (35), /* Number of calls to mcs_timer$change, change_wired */ 10 141 2 timer_poll_calls fixed bin (35), /* Number of calls to mcs_timer$poll */ 10 142 2 timer_error_calls fixed bin (35), /* Number of mcs_timer calls ending with recoverable errors */ 10 143 2 timer_duplicate_pollings fixed bin (35), /* Number of timer polling found in progress on other CPU */ 10 144 10 145 2 tty_area_lock like hc_fast_lock, /* to prevent contention in allocating/freeing in tty_area */ 10 146 10 147 2 pad2 (13) fixed bin (35), 10 148 10 149 2 free_space fixed bin; /* start of free space region */ 10 150 10 151 11 1 /* BEGIN INCLUDE FILE...hc_fast_lock.incl.pl1 */ 11 2 11 3 /* Created November 1984 by Robert Coren to replace hc_lock.incl.pl1 */ 11 4 11 5 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 11 6 11 7 /* format: style3 */ 11 8 11 9 declare lock_ptr pointer; 11 10 declare 1 hc_fast_lock aligned based (lock_ptr), 11 11 2 pid bit (36) aligned, /* holder of lock */ 11 12 2 event bit (36) aligned, /* event associated with lock */ 11 13 2 flags aligned, 11 14 3 notify_sw bit (1) unaligned, 11 15 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 11 16 11 17 /* END INCLUDE FILE...hc_fast_lock.incl.pl1 */ 10 152 10 153 10 154 /* END INCLUDE FILE ... tty_buf.incl.pl1 */ 2476 12 1 /* BEGIN INCLUDE FILE ... tty_buffer_block.incl.pl1 */ 12 2 12 3 12 4 12 5 /****^ HISTORY COMMENTS: 12 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 12 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 12 8* Add data needed for the uncp multiplexer (DSA gateway) interface 12 9* implementation. 12 10* END HISTORY COMMENTS */ 12 11 12 12 12 13 /* 12 14* Separated from tty_buf.incl.pl1 aug 78 by J. Nicholls 12 15* Modified May 1979 by Larry Johnson to add max_buffer_tally array and to use unsigned variables. 12 16* Reported in February 1982 the modifications to add the "turn" bit in flags. 12 17**/ 12 18 12 19 dcl blockp ptr; /* pointer which block entry is based on */ 12 20 dcl free_blockp ptr; /* pointer to head of free space chain */ 12 21 12 22 12 23 dcl 1 free_block aligned based (free_blockp), /* format of start of free block */ 12 24 2 next bit (18), /* foward pointer to next free block */ 12 25 2 size fixed bin; /* number of words in this block */ 12 26 12 27 12 28 dcl 1 buffer based (blockp) aligned, /* buffer definition */ 12 29 2 next fixed bin (18) unal uns, /* addr of next buffer */ 12 30 2 flags unaligned, 12 31 3 end_of_page bit (1) unaligned, /* buffer contains end of page */ 12 32 3 converted bit (1) unaligned, /* buffer contains converted input */ 12 33 3 break bit (1) unaligned, /* buffer contains break character */ 12 34 3 mark bit (1) unaligned, /* buffer contains first character after "mark" */ 12 35 3 turn bit (1) unaligned, /* ON if the turn must be sent */ 12 36 3 pad bit (1) unaligned, 12 37 2 size_code fixed bin (3) unal uns, /* (nwords/16) - 1 */ 12 38 2 tally fixed bin (9) unal uns, /* number of characters in buffer */ 12 39 2 chars (0:59) char (1) unaligned; /* room for 60 data characters */ 12 40 12 41 /* the following array, if indexed by buffer.size_code will give maximum number of characters permitted in that buffer */ 12 42 12 43 dcl max_buffer_tally (0:7) fixed bin int static options (constant) init (60, 124, 188, 252, 316, 380, 444, 508); 12 44 12 45 /* END INCLUDE FILE ... tty_buffer_block.incl.pl1 */ 2477 13 1 /* BEGIN INCLUDE FILE ... channel_manager_dcls.incl.pl1 */ 13 2 13 3 /* Created 8/25/78 by J. Stern */ 13 4 13 5 13 6 /* call channel_manager$read (devx, chain_ptr, more_input_flag, code) */ 13 7 dcl channel_manager$read entry (fixed bin, ptr, bit (1) aligned, fixed bin (35)); 13 8 13 9 /* call channel_manager$write (devx, output_ptr, code) */ 13 10 dcl channel_manager$write entry (fixed bin, ptr, fixed bin (35)); 13 11 13 12 /* call channel_manager$control (devx, control_type, info_ptr, code) */ 13 13 dcl channel_manager$control entry (fixed bin, char (*), ptr, fixed bin (35)); 13 14 13 15 /* call channel_manager$set_modes (devx, mode_change_list_ptr, code) */ 13 16 dcl channel_manager$set_modes entry (fixed bin, ptr, fixed bin (35)); 13 17 13 18 /* call channel_manager$check_modes (devx, mode_change_list_ptr, code) */ 13 19 dcl channel_manager$check_modes entry (fixed bin, ptr, fixed bin (35)); 13 20 13 21 /* call channel_manager$get_modes (devx, modes, code) */ 13 22 dcl channel_manager$get_modes entry (fixed bin, char (*), fixed bin (35)); 13 23 13 24 /* call channel_manager$interrupt (devx, int_type, int_data) */ 13 25 dcl channel_manager$interrupt entry (fixed bin, fixed bin, bit (72) aligned); 13 26 13 27 /* call channel_manager$interrupt_later (devx, int_type, int_data) */ 13 28 dcl channel_manager$interrupt_later entry (fixed bin, fixed bin, bit (72) aligned); 13 29 13 30 /* call channel_manager$queued_interrupt (devx, int_type, int_data) */ 13 31 dcl channel_manager$queued_interrupt entry (fixed bin, fixed bin, bit (72) aligned); 13 32 13 33 13 34 /* END INCLUDE FILE ... channel_manager_dcls.incl.pl1 */ 2478 14 1 /* BEGIN INCLUDE FILE ... mcs_timer_dcls.incl.pl1 ... W. Olin Sibert ... 24 March 1982 */ 14 2 /* Declarations for normally called entries in mcs_timer */ 14 3 14 4 declare mcs_timer$set entry (fixed bin, fixed bin, fixed bin (71), bit (36) aligned); 14 5 declare mcs_timer$change entry (fixed bin, fixed bin, fixed bin (71), bit (36) aligned); 14 6 declare mcs_timer$reset entry (fixed bin, fixed bin, bit (36) aligned); 14 7 declare mcs_timer$reset_all entry (fixed bin); 14 8 14 9 /* END INCLUDE FILE ... mcs_timer_dcls.incl.pl1 */ 2479 15 1 /* BEGIN INCLUDE FILE ... tty_space_man_dcls.incl.pl1 */ 15 2 15 3 /* This include file declares all the entries in tty_space_man and defines the constants 15 4** to be used for the flags argument 15 5** Modified 08/21/78 by Robert Coren to eliminate "masked" flag 15 6** Modified March 1981 by Robert Coren to add get_perm_space entry 15 7** Modified April 1981 by Robert Coren to add switch_chain entry 15 8**/ 15 9 15 10 dcl tty_space_man$get_space entry (fixed bin, ptr); 15 11 dcl tty_space_man$get_perm_space entry (fixed bin, ptr); 15 12 dcl tty_space_man$free_space entry (fixed bin, ptr); 15 13 dcl tty_space_man$get_buffer entry (fixed bin, fixed bin, bit (1), ptr); 15 14 dcl tty_space_man$free_buffer entry (fixed bin, bit (1), ptr); 15 15 dcl tty_space_man$get_chain entry (fixed bin, fixed bin, fixed bin, bit (1), ptr); 15 16 dcl tty_space_man$free_chain entry (fixed bin, bit (1), ptr); 15 17 dcl tty_space_man$switch_chain entry (fixed bin, fixed bin, bit (1), bit (1), ptr); 15 18 dcl tty_space_man$needs_space entry (fixed bin); 15 19 15 20 dcl INPUT bit (1) int static options (constant) init ("0"b); 15 21 dcl OUTPUT bit (1) int static options (constant) init ("1"b); 15 22 15 23 /* END INCLUDE FILE ... tty_space_man_dcls.incl.pl1 */ 2480 16 1 /* Begin include file ..... multiplexer_types.incl.pl1 */ 16 2 16 3 16 4 16 5 /****^ HISTORY COMMENTS: 16 6* 1) change(89-03-20,Parisek), approve(89-06-01,MCR8110), 16 7* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 16 8* Add support of protocol mpx. 16 9* END HISTORY COMMENTS */ 16 10 16 11 16 12 /* This include file defines known multiplexer types */ 16 13 /* Prepared August 1978 by Larry Johnson */ 16 14 /* Changed April 1979 to rename the fnp multiplexer mcs */ 16 15 16 16 dcl (TTY_MPX init (0), /* nonmultiplexed channel */ 16 17 MCS_MPX init (1), /* FNP running MCS */ 16 18 USER1_MPX init (2), /* a range of values for user defined multiplexers */ 16 19 USER2_MPX init (3), 16 20 USER3_MPX init (4), 16 21 USER4_MPX init (5), 16 22 USER5_MPX init (6), 16 23 IBM3270_MPX init (7), /* IBM 3270 display terminal controller */ 16 24 VIP7760_MPX init (8), /* Honeywell VIP 7760 terminal controller */ 16 25 STY_MPX init (9), /* Software Terminal Facility */ 16 26 LAP_MPX init (10), /* Link Access Protocol (X.25 level 2) */ 16 27 X25_MPX init (11), /* CCITT X.25 level 3 */ 16 28 HASP_MPX init (12), /* HASP RJE protocol */ 16 29 UNCP_MPX init (13), /* DSA protocol */ 16 30 SYSTEM2_MPX init (14), 16 31 SYSTEM1_MPX init (15), 16 32 PROTOCOL_MPX init (16)) /* TCP/IP network X.25 protocol */ 16 33 int static options (constant); 16 34 16 35 dcl mpx_types (0:16) char (32) int static options (constant) init ( 16 36 "tty", "mcs", "user1", "user2", "user3", "user4", "user5", "ibm3270", 16 37 "vip7760", "sty", "lap", "x25", "hasp", "uncp", "system2", "system1", 16 38 "protocol"); 16 39 16 40 dcl mpx_special_lock (0:16) bit (1) int static options (constant) init ( 16 41 "0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, 16 42 "0"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b, "0"b); 16 43 16 44 /* End include file ..... multiplexer_types.incl.pl1 */ 2481 2482 2483 /* Use this include file to avoid a conflict with mcs_interrupt_info.incl.pl1 */ 2484 17 1 /* --------------- BEGIN include file syserr_codes.incl.pl1 --------------- */ 17 2 17 3 /* THIS INCLUDE FILE IS OBSOLETE. USE syserr_constants include files instead. 17 4*This include file is surrently used only by x25_mpx.pl1. There is a conflict 17 5*in names between syserr_constants.incl.pl1 and one of the communications 17 6*include files (i.e. CRASH for a mpx rather than the system). That include 17 7*file and syserr_constants should be changed to use more meaningful names. */ 17 8 17 9 /* This include file contains action codes for calling syserr, 17 10* admin_gate_$syserr, and friends. 17 11* Written 01/09/79 by C. D. Tavares after pulling out the source for 17 12* syserr_real for the seventh time. */ 17 13 17 14 dcl (Write_on_console initial (0), 17 15 Write_and_crash_system initial (1), 17 16 Write_with_alarm_and_terminate initial (2), 17 17 Write_with_alarm initial (3), 17 18 Log_message initial (4), 17 19 Log_message_or_discard initial (5)) fixed bin static options (constant); 17 20 17 21 /* ---------------- END include file syserr_codes.incl.pl1 ---------------- */ 17 22 2485 2486 2487 /* BEGIN MESSAGE DOCUMENTATION 2488* 2489* Message: 2490* x25_mpx(CHN): Unexpected interrupt TYPE DATA received. 2491* 2492* S: $log 2493* 2494* T: $run 2495* 2496* M: An unexpected MCM interrupt was processed. 2497* 2498* A: $notify 2499* 2500* 2501* Message: 2502* x25_mpx(CHN): Failure, Link state: STATE, Current Action: FUNCTION, in ESTATE, Primary state: PSTATE, Secondary state: SSTATE. 2503* 2504* S: $log 2505* 2506* T: $run 2507* 2508* M: Normal request to crash the line when the link has been disconnected by the FNP. 2509* STATE is the main state of the link. FUNCTION is the last function the link processed. The ESTATE is the execution state of the 2510* last function. PSTATE and SSTATE are the link up substate. 2511* 2512* A: $notify 2513* 2514* 2515* Message: 2516* x25_mpx(CHN): Link disconnected due to mis-matched frame sizes. CMDR/FRMR frame: FRAME. 2517* 2518* S: $log 2519* 2520* T: $run 2521* 2522* M: The FNP has received a command reject (LAPB) or frame reject (LAP) which 2523* specified a reason of "wide frame" on channel CHN. The actual level 2 2524* command is FRAME. This means the frame received by the other end was too 2525* long. Instead of looping continuously trying to send this frame, the link 2526* will be disconnected. The maximum frame size in the Multics TTF for this 2527* link should be checked against the size expected by the other end of the 2528* link, and corrected. 2529* 2530* A: $notify 2531* 2532* 2533* Message: 2534* x25_mpx(CHN/LC): Time out in state STATE. 2535* 2536* S: $log 2537* 2538* T: $run 2539* 2540* M: The network did not respond to a call, reset, or clear request. 2541* The call will be cleared. 2542* 2543* A: $notify 2544* 2545* 2546* Message: 2547* x25_mpx(CHN): Packet too short. 2548* 2549* S: $log 2550* 2551* T: $run 2552* 2553* M: A packet less then 3 characters long was received. 2554* 2555* A: $notify 2556* 2557* 2558* Message: 2559* x25_mpx(CHN): Unrecognized general format ID GFID. 2560* 2561* S: $log 2562* 2563* T: $run 2564* 2565* M: A packet with a bad format ID was received. The packet will be ignored. 2566* 2567* A: $notify 2568* 2569* 2570* Message: 2571* x25_mpx(CHN): Diagnostic type TYPE. 2572* 2573* S: $log 2574* 2575* T: $run 2576* 2577* M: A diagnostic packet of type TYPE was received. Normal processing continues. 2578* 2579* A: $notify 2580* 2581* 2582* Message: 2583* x25_mpx(CHN): Invalid packet type TYPE on LC 0. 2584* 2585* S: $log 2586* 2587* T: $run 2588* 2589* M: An invalid packet of type TYPE was received on logical channel zero. 2590* The packet will be ignored. 2591* 2592* A: $notify 2593* 2594* 2595* Message: 2596* x25_mpx(CHN): Unexpected packet type TYPE. 2597* 2598* S: $log 2599* 2600* T: $run 2601* 2602* M: An unexpected packet has been received. 2603* The packet is ignored. 2604* 2605* A: $notify 2606* 2607* 2608* Message: 2609* x25_mpx(CHN): Unexpected packet type TYPE on idle VC. 2610* 2611* S: $log 2612* 2613* T: $run 2614* 2615* M: An unexpected packet has been received on an idle channel. 2616* The channel is cleared. 2617* 2618* A: $notify 2619* 2620* 2621* Message: 2622* x25_mpx(CHN): Invalid channel number LCN. 2623* 2624* S: $log 2625* 2626* T: $run 2627* 2628* M: An X.25 packet with an invalid logical channel group number or logical 2629* channel number has been received. 2630* The packet is ignored. 2631* 2632* A: $notify 2633* 2634* 2635* Message: 2636* x25_mpx(CHN): Reset received CAUSE/DIAGNOSTIC. 2637* 2638* S: $log 2639* 2640* T: $run 2641* 2642* M: A RESET REQUEST packet has been received. 2643* 2644* A: $ignore 2645* 2646* 2647* Message: 2648* x25_mpx(CHN/LC): Call Request in state STATE. 2649* 2650* S: $log 2651* 2652* T: $run 2653* 2654* M: An unexpected Call Request has been received. The call is cleared. 2655* 2656* 2657* Message: 2658* x25_mpx(CHN/LC): No listening channels. 2659* 2660* S: $log 2661* 2662* T: $run 2663* 2664* M: There were no listening channels available for a network call. 2665* The call is refused. 2666* 2667* A: $notify 2668* 2669* 2670* Message: 2671* x25_mpx(CHN/LC): Clear Indication CAUSE/DIAGNOSTIC in idle VC. 2672* 2673* S: $log 2674* 2675* T: $run 2676* 2677* M: A Clear Indication has been received on a channel with no call 2678* in progress. A Clear Confirm is returned. 2679* 2680* A: $ignore 2681* 2682* 2683* Message: 2684* x25_mpx(CHN): Reset Confirm in state STATE. 2685* 2686* S: $log 2687* 2688* T: $run 2689* 2690* M: An unexpected Reset Confirm packet has been received. 2691* The call is reset. 2692* 2693* A: $notify 2694* 2695* 2696* Message: 2697* x25_mpx(CHN): Clear Confirm in state STATE. 2698* 2699* S: $log 2700* 2701* T: $run 2702* 2703* M: An unexpected Clear Confirm packet has been received. 2704* The call is cleared. 2705* 2706* A: $notify 2707* 2708* 2709* Message: 2710* x25_mpx(CHN): Data packet received in state STATE. 2711* 2712* S: $log 2713* 2714* T: $run 2715* 2716* M: An unexpected data packet was received. 2717* The call is cleared. 2718* 2719* A: $notify 2720* 2721* 2722* Message: 2723* x25_mpx(CHN): Unexpected Interrupt Confirm. 2724* 2725* S: $log 2726* 2727* T: $run 2728* 2729* M: An unexpected Interrupt Confirm packet has been received. 2730* The call is reset. 2731* 2732* A: $notify 2733* 2734* 2735* Message: 2736* x25_mpx(CHN): Sequence error P(S) = N, V(R) = N. 2737* 2738* S: $log 2739* 2740* T: $run 2741* 2742* M: An X.25 packet was received with an incorrect value for P(S). 2743* The logical channel is reset. 2744* 2745* A: $notify 2746* 2747* 2748* Message: 2749* x25_mpx(CHN): Sequence error: P(R) (= N) is not between previous P(R) (= N) and V(S) (= N). 2750* 2751* S: $log 2752* 2753* T: $run 2754* 2755* M: An X.25 packet was received with an incorrect value for P(R). 2756* The logical channel is reset. 2757* 2758* A: $notify 2759* 2760* 2761* Message: 2762* x25_mpx(CHN): Invalid X.29 command CMD. 2763* 2764* S: $log 2765* 2766* T: $run 2767* 2768* M: An invalid X.29 command was received. 2769* An error indication is returned to the sender. 2770* 2771* A: $notify 2772* 2773* 2774* Message: 2775* x25_mpx(CHN): X.29 ERROR CODE/REASON. 2776* 2777* S: $log 2778* 2779* T: $run 2780* 2781* M: An X.29 ERROR packet with error code CODE and reason REASON was received. 2782* The packet is ignored. 2783* 2784* A: $notify 2785* 2786* 2787* Message: 2788* x25_mpx(CHN): Received REJ packet. 2789* 2790* S: $log 2791* 2792* T: $run 2793* 2794* M: An X.25 REJ packet was received. Multics does not support this feature. 2795* The virtual circuit is reset. 2796* 2797* A: $notify 2798* 2799* 2800* Message: 2801* x25_mpx(CHN): Clear Indication CAUSE/DIAGNOSTIC. 2802* 2803* S: $log 2804* 2805* T: $run 2806* 2807* M: A Clear Indication with non-zero cause or diagnostic fields has been received. 2808* The call is cleared. 2809* 2810* A: $ignore 2811* 2812* 2813* Message: 2814* x25_mpx(CHN): Call Confirm in state STATE. 2815* 2816* S: $log 2817* 2818* T: $run 2819* 2820* M: An unexpected Call Confirm packet was received. The call is cleared. 2821* 2822* A: $notify 2823* 2824* 2825* Message: 2826* x25_mpx(CHN): No buffers available. 2827* 2828* S: $log 2829* 2830* T: $run 2831* 2832* M: x25_mpx was unable to allocate a buffer for a protocol packet. 2833* This indicates a severe space problem in tty_buf. The multiplexer will 2834* sends itself a "hangup" order after freeing any space it has for protocol 2835* packets in tty_buf. If this multiplexer is not the cause of the problem 2836* then the system is likely to crash soon. 2837* 2838* A: $notify 2839* 2840* 2841* Message: 2842* x25_mpx(CHN): Error CODE from write. 2843* 2844* S: $log 2845* 2846* T: $run 2847* 2848* M: An error occurred writing to the LAP channel. 2849* The LAP channel will be disconnected. 2850* 2851* A: $notify 2852* 2853* Message: 2854* x25_mpx(CHN): Packet INOUT: PACKET 2855* 2856* S: $log 2857* 2858* T: $run 2859* 2860* M: A packet has been received or sent and is logged. This occurs when the 2861* packet tracing facility is turned on. INOUT is the direction and PACKET 2862* is the packet octets dumped in hexadecimal. 2863* 2864* A: $ignore 2865* 2866* END MESSAGE DOCUMENTATION */ 2867 2868 end x25_mpx; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/28/92 1708.6 x25_mpx.pl1 >special_ldd>install>MR12.5-1044>x25_mpx.pl1 2468 1 10/26/89 2011.9 x25_data.incl.pl1 >ldd>include>x25_data.incl.pl1 1-128 2 10/20/82 0938.6 mcs_interrupt_info.incl.pl1 >ldd>include>mcs_interrupt_info.incl.pl1 2469 3 11/09/89 2002.4 protocol_infos.incl.pl1 >ldd>include>protocol_infos.incl.pl1 2470 4 11/05/79 1428.9 flow_control_info.incl.pl1 >ldd>include>flow_control_info.incl.pl1 2471 5 03/29/82 1006.8 foreign_terminal_data.incl.pl1 >ldd>include>foreign_terminal_data.incl.pl1 2472 6 11/08/82 1005.8 lct.incl.pl1 >ldd>include>lct.incl.pl1 2473 7 08/06/87 0913.4 line_types.incl.pl1 >ldd>include>line_types.incl.pl1 2474 8 03/19/81 1131.8 mcs_modes_change_list.incl.pl1 >ldd>include>mcs_modes_change_list.incl.pl1 2475 9 03/19/81 1206.8 mode_string_info.incl.pl1 >ldd>include>mode_string_info.incl.pl1 2476 10 01/06/85 1422.1 tty_buf.incl.pl1 >ldd>include>tty_buf.incl.pl1 10-152 11 01/06/85 1422.1 hc_fast_lock.incl.pl1 >ldd>include>hc_fast_lock.incl.pl1 2477 12 07/21/88 2036.0 tty_buffer_block.incl.pl1 >ldd>include>tty_buffer_block.incl.pl1 2478 13 05/06/80 0958.2 channel_manager_dcls.incl.pl1 >ldd>include>channel_manager_dcls.incl.pl1 2479 14 11/08/82 1005.8 mcs_timer_dcls.incl.pl1 >ldd>include>mcs_timer_dcls.incl.pl1 2480 15 06/18/81 0900.8 tty_space_man_dcls.incl.pl1 >ldd>include>tty_space_man_dcls.incl.pl1 2481 16 10/26/89 2011.9 multiplexer_types.incl.pl1 >ldd>include>multiplexer_types.incl.pl1 2485 17 03/15/85 0953.1 syserr_codes.incl.pl1 >ldd>include>syserr_codes.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. ACCEPT_INPUT 000144 constant fixed bin(17,0) initial dcl 2-15 set ref 447* 1173* CALLAC constant bit(8) initial packed unaligned dcl 187 ref 1247 1529 2388 CALLRQ constant bit(8) initial packed unaligned dcl 185 ref 339 1233 1408 CLRCN constant bit(8) initial packed unaligned dcl 191 ref 1289 1551 1664 CLRRQ constant bit(8) initial packed unaligned dcl 189 ref 1272 1540 1648 CONRESP_WAITING constant fixed bin(17,0) initial dcl 1-93 set ref 419 921 1311 1496* CRASH 000162 constant fixed bin(17,0) initial dcl 2-12 set ref 1983* 1988* CR_LF_FF 000032 constant char(3) initial packed unaligned dcl 216 ref 1166 Call_data 000157 automatic char(16) packed unaligned dcl 91 in procedure "x25_mpx" set ref 1440* 1441 1441 1441 1441 1444 Call_data parameter varying char(16) dcl 1720 in procedure "find_sc" ref 1717 1724 Cause parameter fixed bin(9,0) unsigned dcl 1909 in procedure "reset_lc" ref 1906 1914 Cause parameter fixed bin(9,0) unsigned dcl 1644 in procedure "clear_call" ref 1641 1649 Cause parameter fixed bin(9,0) unsigned dcl 2001 in procedure "restart" ref 1998 2006 Cause parameter fixed bin(9,0) unsigned dcl 2072 in procedure "send_diag" ref 2069 2077 DEFAULT_BAUD constant fixed bin(17,0) initial dcl 169 ref 325 1433 DIAG constant bit(8) initial packed unaligned dcl 197 ref 989 2076 DIALUP 000153 constant fixed bin(17,0) initial dcl 2-10 set ref 1497* 2271* DIALUP_info 000204 automatic structure level 1 dcl 3-29 set ref 1489* 1497 1497 DIAL_STATUS 000141 constant fixed bin(17,0) initial dcl 2-19 set ref 1974* 1977* DTE_CLEAR_REQUEST constant fixed bin(17,0) initial dcl 1-93 set ref 917 1282 1290 1306 1544 1552 1653* 1789 DTE_RESET_REQUEST constant fixed bin(17,0) initial dcl 1-93 set ref 913 1234 1322 1343 1789 1918* DTE_WAITING constant fixed bin(17,0) initial dcl 1-93 set ref 390* 909 1248 1311 FLOW_CONTROL_READY constant fixed bin(17,0) initial dcl 1-93 ref 425 902 1017 1181 1201 1217 1234 1254 1358 1603 1885 1956 2273 FOREIGN_TERMINAL_DATA_VERSION_1 000030 constant char(8) initial dcl 5-4 ref 503 False parameter fixed bin(9,0) unsigned dcl 1618 set ref 1614 1622* HANGUP 000155 constant fixed bin(17,0) initial dcl 2-11 set ref 1981* 1986* INPUT 000062 constant bit(1) initial packed unaligned dcl 15-20 set ref 434* 1172* 1172* 1488* 1734* 2236* Id parameter fixed bin(9,0) unsigned dcl 1618 in procedure "add_iti_mode" set ref 1614 1620* 1622* Id parameter fixed bin(9,0) unsigned dcl 1631 in procedure "add_iti_param" ref 1628 1634 L2_HEADER_PAD constant fixed bin(17,0) initial dcl 163 ref 383 409 467 478 645 740 934 973 1073 1079 1115 1142 1146 1152 1330 1431 1530 1650 1665 1679 1915 2007 2078 2120 2138 2160 2192 2211 2225 2231 2265 2268 2389 2437 2440 LINE_ASCII constant fixed bin(17,0) initial dcl 7-22 ref 2263 LINE_ASYNC1 constant fixed bin(17,0) initial dcl 7-22 ref 2436 LINE_STATUS 000164 constant fixed bin(17,0) initial dcl 2-18 set ref 1060* 1897* 2201* Lcn parameter fixed bin(12,0) unsigned dcl 1805 ref 1803 1811 1812 Log_message 000160 constant fixed bin(17,0) initial dcl 17-14 set ref 808* 832* 860* 908* 935* 943* 955* 990* 996* 1042* 1066* 1126* 1225* 1235* 1264* 1291* 1312* 1324* 1349* 1385* 1396* 1410* 1449* 1468* 1516* 1570* 1776* 1792* 1868* 2093* Log_message_or_discard 000147 constant fixed bin(17,0) initial dcl 17-14 set ref 1273* 1541* 1559* 1710* 2379* MODE_8BIT constant fixed bin(17,0) initial dcl 170 ref 594 MODE_BREAKALL constant fixed bin(17,0) initial dcl 170 set ref 517 617* 618* MODE_ECHOPLEX constant fixed bin(17,0) initial dcl 170 set ref 516 616* MODE_HNDLQUIT constant fixed bin(17,0) initial dcl 170 set ref 520 621* 1367 MODE_IFLOW constant fixed bin(17,0) initial dcl 170 set ref 518 620* MODE_LFECHO constant fixed bin(17,0) initial dcl 170 set ref 521 595 600 623* 633* 638* MODE_OFLOW constant fixed bin(17,0) initial dcl 170 set ref 519 622* MODE_POLITE constant fixed bin(17,0) initial dcl 170 set ref 632* MODE_RAWI constant fixed bin(17,0) initial dcl 170 set ref 515 615* MPX_DOWN 000064 constant fixed bin(71,0) initial dcl 167 set ref 790* MPX_MASKED 000062 constant fixed bin(71,0) initial dcl 168 set ref 875* MPX_UP 000066 constant fixed bin(71,0) initial dcl 166 set ref 1584* Mode parameter fixed bin(17,0) dcl 1617 ref 1614 1620 NCON_IND_info 000206 automatic structure level 1 dcl 3-40 set ref 1491 1494 NCON_REQ_info based structure level 1 dcl 3-33 NDIS_IND_REASON based structure level 1 dcl 3-47 NL 015254 constant char(1) initial packed unaligned dcl 214 ref 439 N_I_i based structure level 1 dcl 100 set ref 1491* OUTPUT 000146 constant bit(1) initial packed unaligned dcl 15-21 set ref 758* 758* 1488* 1745* 1759* 1772* 2236* PROTOCOL_MPX constant fixed bin(17,0) initial dcl 16-16 ref 2427 Q parameter bit(1) dcl 1806 ref 1803 1809 QUIT 000150 constant fixed bin(17,0) initial dcl 2-17 set ref 1110* 1373* READY constant fixed bin(17,0) initial dcl 1-93 ref 282 1409 1795 1959 RESTCN constant bit(8) initial packed unaligned dcl 201 ref 1329 1342 RESTRQ constant bit(8) initial packed unaligned dcl 199 ref 1321 1913 RSRTCN constant bit(8) initial packed unaligned dcl 195 ref 972 981 1581 RSRTRQ constant bit(8) initial packed unaligned dcl 193 ref 967 1581 2005 SC_DIALED constant fixed bin(17,0) initial dcl 1-121 ref 1253 2272 SC_DIALING constant fixed bin(17,0) initial dcl 1-121 ref 387 419 424 1495 1973 SC_HUNGUP constant fixed bin(17,0) initial dcl 1-121 ref 1979 1991 SC_LISTENING constant fixed bin(17,0) initial dcl 1-121 ref 274 1724 SEND_OUTPUT 000160 constant fixed bin(17,0) initial dcl 2-13 set ref 427* 1257* 2276* 2288* SNITCN constant bit(8) initial packed unaligned dcl 205 ref 1383 1678 SNITRQ constant bit(8) initial packed unaligned dcl 203 ref 465 1365 SNMASK constant bit(8) initial packed unaligned dcl 212 ref 1179 1199 1216 SNREJ constant bit(8) initial packed unaligned dcl 211 ref 1216 SNRNR 015254 constant bit(8) initial packed unaligned dcl 209 ref 1199 2134 SNRR constant bit(8) initial packed unaligned dcl 207 ref 1179 2116 Set parameter bit(1) dcl 2186 ref 2183 2191 Size parameter fixed bin(17,0) dcl 1770 set ref 1767 1772* State parameter fixed bin(17,0) dcl 2298 ref 2295 2300 T20 000070 constant fixed bin(71,0) initial dcl 165 set ref 890 907 2012 2303* TIMEOUT 000072 constant fixed bin(71,0) initial dcl 164 set ref 1053 2128* 2144* Time parameter fixed bin(71,0) dcl 2172 ref 2169 2175 True parameter fixed bin(9,0) unsigned dcl 1618 set ref 1614 1620* USER_INTERRUPT 000151 constant fixed bin(17,0) initial dcl 2-25 set ref 1252* Value parameter fixed bin(9,0) unsigned dcl 1631 ref 1628 1635 Write parameter bit(1) dcl 2186 ref 2183 2190 Write_sw parameter bit(1) packed unaligned dcl 2370 set ref 2367 2379* X25_ACTIVE constant fixed bin(17,0) initial dcl 1-52 ref 962 1583 1981 1986 X25_HUNGUP constant fixed bin(17,0) initial dcl 1-52 ref 793 800 878 880 2363 X25_LISTENING constant fixed bin(17,0) initial dcl 1-52 ref 783 X25_RESTARTING constant fixed bin(17,0) initial dcl 1-52 ref 890 1580 2010 X25_data_ptr parameter pointer dcl 67 ref 261 533 541 656 665 770 773 2247 X25_scx parameter fixed bin(17,0) dcl 69 ref 261 533 541 656 665 2248 addr builtin function dcl 249 ref 289 359 361 366 370 378 379 380 566 595 600 602 687 687 687 687 733 733 737 737 739 739 752 755 808 808 808 808 808 808 832 832 847 849 896 899 1004 1007 1028 1030 1030 1031 1034 1036 1036 1037 1157 1157 1157 1157 1440 1441 1441 1441 1441 1457 1474 1478 1482 1483 1491 1504 1523 1691 1695 1710 1818 1818 1822 1822 1850 1852 2051 2052 2055 2056 2108 2109 2117 2119 2135 2137 2249 2253 2379 2410 2410 2410 2410 2414 2414 2414 2414 2417 2417 2425 2426 addr_string 000144 automatic char(30) dcl 87 set ref 346* 348 348 1423* 1425* 1428 after builtin function dcl 249 ref 293 area_ptr 2 based pointer level 2 dcl 103 ref 508 based_area based area(1024) dcl 159 ref 508 based_trans_table based char(512) dcl 245 set ref 1157* baud_rate 0(18) 000174 automatic fixed bin(18,0) level 2 in structure "dialup_info" packed packed unsigned unaligned dcl 2-30 in procedure "x25_mpx" set ref 2264* baud_rate 4 based fixed bin(17,0) level 2 in structure "xlce" dcl 1-63 in procedure "x25_mpx" set ref 294* 325* 1433* 1502* 2264 baud_rate 30(18) based fixed bin(18,0) level 3 in structure "x25_data" packed packed unsigned unaligned dcl 1-21 in procedure "x25_mpx" set ref 294 1502 before builtin function dcl 249 ref 298 300 304 306 311 binary builtin function dcl 249 ref 950 990 990 1063 1072 1126 1126 1126 1126 1273 1273 1273 1273 1324 1324 1324 1324 1417 1418 1420 1541 1541 1541 1541 2193 2198 2232 2322 2343 bit builtin function dcl 249 ref 343 343 1072 1634 1635 1649 1811 1812 1914 2006 2077 2223 2233 bleft 3 based fixed bin(18,0) level 2 dcl 10-35 ref 2112 blockp 000262 automatic pointer dcl 12-19 set ref 339 340 343 348 355 356 359 361 365 366 370 373 375 378 379 380 383 409 434* 435 436 437 438 439 440 440 442 465 466 467 478 645 685* 686 687 687 687 687 687 688 688 688 690 691* 692 692* 706 711 712 715 715 716 730* 733 737 739 739 739 739 740 740 743 752 755 758* 931* 934 941 943 943 943 950 950 967 972 973 981 989 990 990 996 1015 1028 1030 1031 1034 1036 1037 1051 1056 1073 1079 1115 1142 1146 1146 1148 1155* 1155* 1157 1157 1157 1157 1157* 1159 1159 1160* 1166 1166 1166 1166 1171* 1179 1199 1216 1233 1247 1272 1273 1273 1273 1273 1273 1273 1273 1278 1279 1289 1321 1324 1324 1324 1324 1329 1330 1342 1365 1383 1396 1408 1417 1418 1420 1423 1425 1431 1435 1440 1478 1482 1483 1488* 1490 1491 1492 1493 1494 1504 1505 1529 1530 1540 1541 1541 1541 1541 1551 1570 1581 1581 1601 1648 1649 1650 1664 1665 1678 1679 1710 1710 1734* 1735* 1772* 1773 1774 1808 1809 1810 1811 1812 1818 1822 1850 1852 1913 1914 1915 2005 2006 2007 2028* 2029 2030 2031 2051 2052 2055 2056 2076 2077 2078 2116 2117 2119 2120 2134 2135 2137 2138 2159 2160 2192 2211 2225 2231 2315 2317* 2322 2324* 2341 2343 2345* 2376 2376 2378 2379 2379 2388 2389 2410 2410 2414 2414 2417 boolean_value 13(03) based bit(1) array level 4 packed packed unaligned dcl 9-9 set ref 515* 516* 517* 518* 519* 520* 521* boolean_valuep 13 based bit(1) array level 4 packed packed unaligned dcl 9-9 set ref 513* break 0(20) based bit(1) level 3 packed packed unaligned dcl 12-28 set ref 438* 688 752 1031* 1037* 2030 2312* 2334* break_char 1(18) 000176 automatic bit(1) level 3 packed packed unaligned dcl 2-38 set ref 445* 1031* 1037* 1163 breakall_idle_timer 43 based fixed bin(17,0) level 2 dcl 1-21 ref 618 buffer based structure level 1 dcl 12-28 buffer_pad 0(09) 000174 automatic fixed bin(9,0) level 2 in structure "dialup_info" packed packed unsigned unaligned dcl 2-30 in procedure "x25_mpx" set ref 2265* 2265 2268* 2268 2437* 2440* buffer_pad 30(09) based fixed bin(9,0) level 3 in structure "x25_data" packed packed unsigned unaligned dcl 1-21 in procedure "x25_mpx" set ref 2437 2440 bypass_restart 15(02) based bit(1) level 3 packed packed unaligned dcl 1-21 ref 786 byte 0(19) based bit(8) array level 3 in structure "lap_cmdr_status" packed packed unaligned dcl 113 in procedure "x25_mpx" set ref 832* byte 0(01) based bit(8) array level 2 in structure "dump_buf" packed packed unaligned dcl 1706 in procedure "dump_pkt" set ref 1710* byte 0(01) based bit(8) array level 2 in structure "log_buf" packed packed unaligned dcl 2371 in procedure "log_packet" set ref 2379* call_data 25 based varying char(16) level 2 dcl 1-63 set ref 293* 326* 377 380 1434* 1444* 1446* 1478* 1504* 1509* 1511* called_dte_addr_length 000110 automatic fixed bin(4,0) unsigned dcl 74 set ref 342* 343 344 1418* 1419 1428 calling_dte_addr_length 000111 automatic fixed bin(4,0) unsigned dcl 74 set ref 341* 343 344 1417* 1419 1428 cause 000244 automatic bit(9) level 2 packed packed unaligned dcl 3-51 set ref 1278* chain_head 000176 automatic bit(18) level 3 packed packed unaligned dcl 2-38 set ref 442* 931 chain_ptr 000104 automatic pointer dcl 73 set ref 681* 681* 685 730* 764 931* 1155 1160 1172* 2236* chain_tail 0(18) 000176 automatic bit(18) level 3 packed packed unaligned dcl 2-38 set ref 442* 932 channel_manager$control 000066 constant entry external dcl 13-13 ref 1777 2094 channel_manager$interrupt 000070 constant entry external dcl 13-25 ref 427 447 1060 1110 1173 1252 1257 1373 1497 1897 1974 1977 1981 1983 1986 1988 2201 2271 2276 2288 channel_manager$write 000064 constant entry external dcl 13-10 ref 2091 channel_type 2 based fixed bin(8,0) level 2 packed packed unaligned dcl 6-20 ref 2427 chars 1(09) based char(3) level 3 in structure "ifci" packed packed unaligned dcl 101 in procedure "x25_mpx" ref 485 chars 2(09) based char(3) level 3 in structure "ofci" packed packed unaligned dcl 102 in procedure "x25_mpx" ref 492 chars 1 based char(1) array level 2 in structure "buffer" packed packed unaligned dcl 12-28 in procedure "x25_mpx" set ref 439* 440 687 687 687 687 739 739 1146 1146 1157 1157 1157 1157 1166 1491 1710 2335* 2335 2379 chars 0(09) based char(3) level 3 in structure "ifci" packed packed unaligned dcl 101 in procedure "x25_mpx" ref 485 chars 1(09) based char(3) level 3 in structure "ofci" packed packed unaligned dcl 102 in procedure "x25_mpx" ref 492 clock builtin function dcl 249 ref 890 907 1053 2011 2112 2175 2301 cmdr_bytes 0(18) based structure array level 2 packed packed unaligned dcl 113 cmdr_status based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 113 ref 832 code 000121 automatic fixed bin(35,0) dcl 79 in procedure "x25_mpx" set ref 790* 875* 1584* 1777* 2091* 2092 2093* 2094* code 0(03) based fixed bin(6,0) array level 2 in structure "facilities" packed packed unsigned unaligned dcl 2402 in procedure "check_facilities" ref 2410 2410 2414 collect_call 5(07) based bit(1) level 3 packed packed unaligned dcl 1-63 set ref 296* 359 373 2407* 2410* count based fixed bin(9,0) level 3 in structure "ifci" packed packed unsigned unaligned dcl 101 in procedure "x25_mpx" ref 485 count 1 based fixed bin(9,0) level 3 in structure "ifci" packed packed unsigned unaligned dcl 101 in procedure "x25_mpx" ref 485 count 2 based fixed bin(9,0) level 3 in structure "ofci" packed packed unsigned unaligned dcl 102 in procedure "x25_mpx" ref 492 count 1 based fixed bin(9,0) level 3 in structure "ofci" packed packed unsigned unaligned dcl 102 in procedure "x25_mpx" ref 492 d 1(20) based bit(1) level 3 packed packed unaligned dcl 120 set ref 340* 943* 1051 2159* data 20 based varying char(48) level 2 in structure "NCON_REQ_info" dcl 3-33 in procedure "x25_mpx" ref 326 369 370 data 14 000206 automatic varying char(48) level 2 in structure "NCON_IND_info" dcl 3-40 in procedure "x25_mpx" set ref 1482* devx 10 based fixed bin(17,0) level 2 in structure "x25_data" dcl 1-21 in procedure "x25_mpx" set ref 758* 1172* 1488* 1582* 1734* 1759* 1772* 1777* 1939* 2012* 2091* 2094* 2175* 2236* 2236* 2356* devx 10 based fixed bin(17,0) level 2 in structure "xsce" dcl 1-103 in procedure "x25_mpx" set ref 427* 434* 447* 758* 1060* 1110* 1172* 1173* 1252* 1257* 1373* 1488* 1497* 1745* 1897* 1974* 1977* 1981* 1983* 1986* 1988* 2109 2201* 2271* 2276* 2288* 2426 diag 0(09) based fixed bin(8,0) level 2 in structure "reason_of_hangup" packed packed unaligned dcl 99 in procedure "x25_mpx" ref 413 diag 0(09) 000244 automatic bit(9) level 2 in structure "disconnect_info" packed packed unaligned dcl 3-51 in procedure "x25_mpx" set ref 1279* dial_info 000206 automatic bit(72) level 2 dcl 3-40 set ref 1485* dial_out_info based varying char(24) dcl 98 ref 292 293 298 300 304 306 311 321 dialup_info 30 based structure level 2 in structure "x25_data" dcl 1-21 in procedure "x25_mpx" set ref 785* 2262 2435 dialup_info 000174 automatic structure level 1 dcl 2-30 in procedure "x25_mpx" set ref 1252 1252 1485 2262* 2271 2271 2435* dimension builtin function dcl 249 ref 568 disconnect_info 000244 automatic structure level 1 packed packed unaligned dcl 3-51 set ref 1974 1981 1983 divide builtin function dcl 249 ref 344 1419 2270 2442 dump_buf based structure array level 1 packed packed unaligned dcl 1706 end_of_page 0(18) based bit(1) level 3 in structure "buffer" packed packed unaligned dcl 12-28 in procedure "x25_mpx" set ref 688 728 end_of_page 13(01) based bit(1) level 3 in structure "xsce" packed packed unaligned dcl 1-103 in procedure "x25_mpx" set ref 681 728* 1118* 1163 1164* 1376* 1747* 2285 endp 000100 automatic pointer dcl 73 set ref 707* 711* 728 752 759 932* 1031 1037 1773* 2030* 2030* 2032 2032 2045 2047 2047 2048 2312 2316 2317* 2323 2324* 2334 2335 2335 2335 2335 2344 2345* entries 6 based structure array level 2 dcl 8-10 set ref 566 error 4(03) based bit(1) level 3 packed packed unaligned dcl 8-26 set ref 583* error_flag parameter bit(1) packed unaligned dcl 1843 set ref 1840 1846* 1867* error_table_$action_not_performed 000020 external static fixed bin(35,0) dcl 232 ref 2458 error_table_$bad_arg 000022 external static fixed bin(35,0) dcl 233 ref 2459 error_table_$bad_mode 000024 external static fixed bin(35,0) dcl 234 ref 2460 error_table_$invalid_state 000026 external static fixed bin(35,0) dcl 235 ref 2461 error_table_$noalloc 000030 external static fixed bin(35,0) dcl 236 ref 2457 error_table_$resource_unavailable 000032 external static fixed bin(35,0) dcl 237 ref 2462 error_table_$undefined_order_request 000034 external static fixed bin(35,0) dcl 238 ref 2456 error_table_$unimplemented_version 000036 external static fixed bin(35,0) dcl 239 ref 2463 et_action_not_performed 000010 internal static fixed bin(35,0) dcl 221 set ref 2458* et_bad_arg 000011 internal static fixed bin(35,0) dcl 222 set ref 485 492 2459* et_bad_mode 000012 internal static fixed bin(35,0) dcl 223 set ref 584 2460* et_invalid_state 000013 internal static fixed bin(35,0) dcl 224 set ref 279 419 548 670 2461* et_noalloc 000014 internal static fixed bin(35,0) dcl 225 set ref 2457* et_resource_unavailable 000015 internal static fixed bin(35,0) dcl 226 set ref 286 2462* et_undefined_order_request 000016 internal static fixed bin(35,0) dcl 227 set ref 402 527 2456* et_unimplemented_version 000017 internal static fixed bin(35,0) dcl 228 set ref 504 555 2463* facilities based structure array level 1 packed packed unaligned dcl 2402 in procedure "check_facilities" facilities 31 000206 automatic varying char(16) level 2 in structure "NCON_IND_info" dcl 3-40 in procedure "x25_mpx" set ref 1483* facilities 13 based varying char(16) level 2 in structure "NCON_REQ_info" dcl 3-33 in procedure "x25_mpx" ref 363 366 facility_disp 000112 automatic fixed bin(17,0) dcl 75 set ref 344* 347 355 356 359 361 362 365 366 367 373 375 376 1419* 1420 1422 1430 1483 2410 2410 2414 2414 2417 facility_length 000114 automatic fixed bin(17,0) dcl 75 set ref 358* 359 361 363* 364 365 366 367 1420* 1430 1483 2409 2410 2410 2414 2414 2417 flags 1(18) 000176 automatic structure level 2 in structure "rtx_info" packed packed unaligned dcl 2-38 in procedure "x25_mpx" set ref 444* flags 13 based structure array level 3 in structure "mode_string_info" dcl 9-9 in procedure "x25_mpx" flags based structure level 2 in structure "ofci" packed packed unaligned dcl 102 in procedure "x25_mpx" ref 492 flags 15 based structure level 2 in structure "x25_data" dcl 1-21 in procedure "x25_mpx" flags 5 based structure level 2 in structure "xlce" dcl 1-63 in procedure "x25_mpx" set ref 1952* flags 5 based structure level 2 in structure "mcl" dcl 8-10 in procedure "x25_mpx" flags 4 based structure level 2 in structure "mcle" dcl 8-26 in procedure "x25_mpx" flags 13 based structure level 2 in structure "xsce" dcl 1-103 in procedure "x25_mpx" set ref 1972* flags 0(18) based structure level 2 in structure "buffer" packed packed unaligned dcl 12-28 in procedure "x25_mpx" set ref 437* 690* 759* 1493* force 4(01) based bit(1) level 3 packed packed unaligned dcl 8-26 ref 579 force_ack_time 10 based fixed bin(71,0) level 2 dcl 1-63 set ref 1051* 1053* 2112 foreign_terminal_data based structure level 1 dcl 5-5 format 1(21) based bit(2) level 3 packed packed unaligned dcl 120 set ref 941 943* 1810* ftd based structure level 1 dcl 103 gfid 17 based bit(2) level 2 dcl 1-21 ref 941 1810 hbound builtin function dcl 249 ref 778 1065 2194 2221 2225 2233 hc_fast_lock based structure level 1 dcl 11-10 hdr_size 000131 automatic fixed bin(21,0) dcl 84 set ref 409 478 645 732* 736* 740 1029* 1035* 1073 1079 1115 1142 1146 1152 1815* 1819* 1823* 2120 2138 2160 2192 2211 2225 2231 his_address 2 000206 automatic varying char(15) level 2 in structure "NCON_IND_info" dcl 3-40 in procedure "x25_mpx" set ref 1480* his_address 20 based varying char(15) level 2 in structure "xlce" dcl 1-63 in procedure "x25_mpx" set ref 300* 306* 311* 328* 342 346 439 1428* 1480 i 000575 automatic fixed bin(17,0) dcl 2188 in procedure "set_x29" set ref 2192* 2193 2196 2198* 2216* 2218 2218 2219* 2221* 2222 2222 2223 2223* 2231* 2232 2233* i 000122 automatic fixed bin(17,0) dcl 80 in procedure "x25_mpx" set ref 347* 348 348 348* 510* 511 512 512 513* 565* 566* 1063* 1065 1065 1066* 1072 1079* 1081 1089 1089* 1422* 1423 1423 1425 1425* i 000700 automatic fixed bin(17,0) dcl 2401 in procedure "check_facilities" set ref 2408* 2409 2410 2410 2414 2414* 2414 2414 2417* 2417 2417 ifci based structure level 1 dcl 101 in 30 based structure array level 4 in structure "lct" dcl 6-11 in procedure "x25_mpx" in 10 based structure level 3 in structure "lcte" dcl 6-20 in procedure "x25_mpx" in 2 based structure level 2 in structure "saved_meters" dcl 6-68 in procedure "x25_mpx" info_relp 000204 automatic bit(18) level 2 packed packed unaligned dcl 3-29 set ref 1490* infop 000124 automatic pointer dcl 81 set ref 266* 267 292 293 298 300 304 306 311 321 413 413 456 457 485 485 485 485 492 492 492 492 492 492 503 508 523 init 5 based bit(1) level 3 packed packed unaligned dcl 8-10 ref 560 input_chain 000176 automatic structure level 2 packed packed unaligned dcl 2-38 input_count 1 000176 automatic fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 2-38 set ref 443* 1152* 1152 input_flow_control_info based structure level 1 dcl 4-9 input_words 5 based fixed bin(17,0) level 3 packed packed unaligned dcl 6-20 ref 2112 int_data 000126 automatic bit(72) dcl 82 set ref 775* 785 860* 885 929 1059* 1060* int_issued 5(01) based bit(1) level 3 packed packed unaligned dcl 1-63 set ref 462 470* 1384 1390* 1891* 1920* int_type 000130 automatic fixed bin(17,0) dcl 83 set ref 774* 778 778 780 860* iti_break 5(03) based bit(1) level 3 packed packed unaligned dcl 1-63 set ref 679 1089 1094* 1108 1140 1370* 1890* 1920* 2285 iti_call 5 based bit(1) level 3 packed packed unaligned dcl 1-63 set ref 301* 307* 312* 329* 333 379 405 472 502 607 752 1057 1249 1367 1437* 1506* iti_params 32 based fixed bin(9,0) array level 2 packed packed unsigned unaligned dcl 1-63 set ref 334* 472 480* 515 516 517 518 519 520 521 1953* 2194 2194 2198* 2216 2221 2221 2223 2225 2233 2233 2233 j 000123 automatic fixed bin(17,0) dcl 80 set ref 568* 569 571* l3_call_data based char packed unaligned dcl 136 set ref 370* 378* 379* 380* 1440 1478 1482 1504 l3_facilities based char packed unaligned dcl 138 set ref 359* 361* 366* 1483 2410 2410 2414 2414 2417 l3_fc 2 based bit level 2 packed packed unaligned dcl 120 set ref 733 737 752 755 1028 1030 1031 1034 1036 1037 1818 1822 1850 1852 2051 2052 2055 2056 2117 2119 2135 2137 l3_header 1(18) based structure level 2 packed packed unaligned dcl 120 set ref 1808* l4_data based bit(9) array packed unaligned dcl 157 set ref 408* 475* 476* 477* 610* 1059 1063 1070* 1071* 1072* 1081 1089 1089 1114 1126 1126 1126 1126 1634* 1635* 2193 2196* 2198 2215* 2218* 2219* 2222* 2223* 2230* 2232 2233* l4_data_ptr 000164 automatic pointer dcl 156 set ref 408 475 476 477 610 733* 737* 739* 1030* 1036* 1059 1063 1070 1071 1072 1081 1089 1089 1114 1126 1126 1126 1126 1634 1635 1814* 1818* 1822* 2193 2196 2198 2215 2218 2219 2222 2223 2230 2232 2233 lap_cmdr_status based structure level 1 dcl 113 lap_down_status based structure level 1 dcl 105 last_function_process 0(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 105 set ref 808* last_recv_seq 16 based fixed bin(7,0) level 2 unsigned dcl 1-63 set ref 1929* 2062* 2110 2123* 2141* lbound builtin function dcl 249 ref 778 2194 2216 2221 2233 lc based structure array level 2 dcl 1-59 set ref 289 849 896 1004 1691 2253 lc_ptr 32 based pointer level 2 dcl 1-21 set ref 278 282 289 400 849 896 1004 1691 2253 2359 2360 2360 2360* 2361* lcgn 1(23) based bit(4) level 3 packed packed unaligned dcl 120 set ref 950 1811* lcn 1(28) based bit(8) level 3 packed packed unaligned dcl 120 set ref 950 1812* lct based structure level 1 dcl 6-11 lct_ptr 6 based pointer level 2 dcl 10-35 ref 2109 2426 lcte based structure level 1 dcl 6-20 lcte_array 20 based structure array level 2 dcl 6-11 set ref 2109 2426 lctep 000246 automatic pointer dcl 6-8 set ref 2109* 2112 2426* 2427 lcx 11 based fixed bin(17,0) level 2 in structure "xsce" dcl 1-103 in procedure "x25_mpx" set ref 388* 848 1458* 1476* 1524* 1992* 2250 2253 lcx 000117 automatic fixed bin(12,0) unsigned dcl 77 in procedure "x25_mpx" set ref 282* 282* 285 289 338* 388 407* 464* 474* 609* 742* 848* 849 887* 889 896 908* 950* 954 955* 963 1004 1069* 1113* 1328* 1410* 1449* 1458 1468* 1476 1516* 1524 1528* 1541* 1559* 1570* 1581 1647* 1663* 1677* 1690* 1691* 1912* 1939 1955 2115* 2133* 2158* 2175 2214* 2250* 2251 2387* leftover_chain_ptr 000106 automatic pointer dcl 73 set ref 706* 712* 715* 761 length builtin function dcl 249 ref 292 321 341 342 363 369 377 440 line_type 000174 automatic fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 2-30 set ref 2263* 2436* link_down_status based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 105 ref 808 load_ev_chan 22 based fixed bin(71,0) level 2 dcl 1-21 set ref 790* 875* 1584* load_proc_id 20 based bit(36) level 2 dcl 1-21 set ref 790* 875* 1584* log_buf based structure array level 1 packed packed unaligned dcl 2371 long_packet_head 41 based fixed bin(17,0) level 2 dcl 1-21 set ref 845 846 850* 851 2038 2038* long_packet_next_scx 14 based fixed bin(17,0) level 2 in structure "xsce" dcl 1-103 in procedure "x25_mpx" set ref 850 2037* long_packet_next_scx 66 based fixed bin(17,0) array level 3 in structure "x25_data" dcl 1-21 in procedure "x25_mpx" set ref 2040* long_packet_pending 13(04) based bit(1) level 3 packed packed unaligned dcl 1-103 set ref 852* 1748* 2023 2036* long_packet_size 40 based fixed bin(11,0) level 2 dcl 1-21 ref 2034 long_packet_tail 42 based fixed bin(17,0) level 2 dcl 1-21 set ref 851* 2040 2041* m 0(17) based bit(1) level 2 in structure "m128_fc_data" packed packed unaligned dcl 147 in procedure "x25_mpx" set ref 755* 1037 m 0(04) based bit(1) level 2 in structure "m8_fc_data" packed packed unaligned dcl 139 in procedure "x25_mpx" set ref 752* 1031 m128_fc_data based structure level 1 packed packed unaligned dcl 147 m8_fc_data based structure level 1 packed packed unaligned dcl 139 main_state 1(09) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 105 set ref 808* max_buf_size 1 000174 automatic fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 2-30 set ref 2270* 2270 2442* 2442 max_packet_size 5 based fixed bin(17,0) level 2 in structure "network_infos" dcl 3-55 in procedure "x25_mpx" set ref 400* max_packet_size 2 based fixed bin(18,0) level 2 in structure "xlce" unsigned dcl 1-63 in procedure "x25_mpx" ref 688 703 2270 2442 max_packet_size 2 based fixed bin(18,0) array level 3 in structure "x25_lces" unsigned dcl 1-59 in procedure "x25_mpx" set ref 400 max_window_size 3 based fixed bin(7,0) level 2 unsigned dcl 1-63 ref 2025 2112 mcl based structure level 1 dcl 8-10 mcl_version_2 constant fixed bin(17,0) initial dcl 8-8 ref 554 mcle based structure level 1 dcl 8-26 mclep 000252 automatic pointer dcl 8-24 set ref 566* 569 571 571 575 579 579 583 587 mclp 000250 automatic pointer dcl 8-7 set ref 552* 554 560 565 566 mcs_timer$reset 000074 constant entry external dcl 14-6 ref 1582 1939 mcs_timer$reset_all 000076 constant entry external dcl 14-7 ref 2356 mcs_timer$set 000072 constant entry external dcl 14-4 ref 2012 2175 meters 6 based structure level 2 in structure "lcte" dcl 6-20 in procedure "x25_mpx" meters 26 based structure array level 3 in structure "lct" dcl 6-11 in procedure "x25_mpx" min builtin function dcl 249 ref 2270 2442 mod builtin function dcl 249 ref 1049 2025 2061 2110 mode 13(18) based bit(1) array level 3 packed packed unaligned dcl 1-103 set ref 561* 571* 594 595 600 1367 1620 1971* mode_found 000133 automatic bit(1) dcl 85 set ref 567* 570* 579 mode_name based char(16) level 2 in structure "mcle" packed packed unaligned dcl 8-26 in procedure "x25_mpx" ref 569 mode_name 3 based char(32) array level 3 in structure "mode_string_info" packed packed unaligned dcl 9-9 in procedure "x25_mpx" set ref 512* mode_names 000033 constant char(8) initial array dcl 181 ref 512 568 569 mode_string_info based structure level 1 dcl 9-9 set ref 508 mode_string_info_ptr 000256 automatic pointer dcl 9-14 in procedure "x25_mpx" set ref 508* 509 511 512 513 515 516 517 518 519 520 521 523 mode_string_info_ptr 4 based pointer level 2 in structure "ftd" dcl 103 in procedure "x25_mpx" set ref 523* mode_string_info_version_2 constant fixed bin(17,0) initial dcl 9-30 ref 509 mode_switch 4 based bit(1) level 3 packed packed unaligned dcl 8-26 ref 571 mode_value based structure level 1 dcl 9-16 mode_value_version_3 constant fixed bin(17,0) initial dcl 9-30 ref 511 modes 2 based structure array level 2 dcl 9-9 mpx_mode 4(02) based bit(1) level 3 packed packed unaligned dcl 8-26 set ref 571 575* 579 587* mpx_started 15(01) based bit(1) level 3 packed packed unaligned dcl 1-21 ref 1448 1466 1515 mrl_ 000050 constant entry external dcl 253 ref 739 mvt_ 000052 constant entry external dcl 254 ref 687 1157 1441 my_address 44 based varying char(15) level 2 dcl 1-21 ref 341 346 399 1481 n_entries 1 based fixed bin(17,0) level 2 dcl 8-10 ref 565 n_lc 12 based fixed bin(17,0) level 2 dcl 1-21 ref 282 954 1690 2360 2360 n_octets 000662 automatic fixed bin(17,0) dcl 2374 set ref 2376* 2378* 2379* n_pvc 14 based fixed bin(17,0) level 2 dcl 1-21 ref 282 1955 n_sc 13 based fixed bin(17,0) level 2 dcl 1-21 ref 1694 1723 name based char(32) level 2 in structure "x25_data" dcl 1-21 in procedure "x25_mpx" set ref 808* 832* 860* 908* 935* 943* 955* 990* 996* 1410* 1449* 1468* 1516* 1541* 1559* 1570* 1710* 1776* 2093* 2379* name based char(32) level 2 in structure "xsce" dcl 1-103 in procedure "x25_mpx" set ref 1042* 1066* 1126* 1225* 1235* 1264* 1273* 1291* 1312* 1324* 1349* 1385* 1396* 1792* 1868* nchars 000132 automatic fixed bin(21,0) dcl 84 set ref 611* 645 683* 686* 686 688 703 1142* 1143 1146 1146 1148 1633* 1633 1634 1635 need_ftd 13(03) based bit(1) level 3 packed packed unaligned dcl 1-103 set ref 524* 2200 2202* net_type 24 based char(8) level 2 dcl 1-21 ref 630 636 641 2155 network_address based varying char(15) level 2 dcl 3-55 set ref 399* network_infos based structure level 1 dcl 3-55 next based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 12-28 set ref 436* 688 692 705* 712 715 716* 1159 1166 1492* 2032 2045 2047 2048* 2322* 2343* next_ack_seq 17 based fixed bin(7,0) level 2 unsigned dcl 1-63 set ref 456 1151 1861 1861 1861 1861 1861* 1868* 1929* 2025 next_recv_seq 14 based fixed bin(7,0) level 2 unsigned dcl 1-63 set ref 1040 1042* 1049* 1049 1929* 2052 2056 2062 2110 2117 2119 2123 2135 2137 2141 next_send_seq 15 based fixed bin(7,0) level 2 unsigned dcl 1-63 set ref 456 1151 1861 1861 1861 1861 1868* 1929* 2025 2051 2055 2061* 2061 no_d 15(03) based bit(1) level 3 packed packed unaligned dcl 1-21 ref 340 2155 2159 no_fc_data 2(09) based bit(9) array level 2 packed packed unaligned dcl 120 set ref 343* 348* 355* 356* 359 361 365* 366 370 373* 375* 378 379 380 466* 990 990 1273 1273 1273 1273 1273 1273 1273 1278 1279 1324 1324 1324 1324 1417 1418 1420 1423 1425 1435 1440 1478 1482 1483 1504 1505 1541 1541 1541 1541 1649* 1914* 2006* 2077* 2410 2410 2414 2414 2417 null builtin function dcl 249 ref 272 278 330 413 435 547 597 669 681 684 712 776 845 1150 1154 1171 1479 1601 1735 1744 1746 1758 1760 1774 1777 1777 1813 1814 2025 2034 2045 2089 2094 2094 2096 2096 2155 2251 2285 2314 2317 2324 2341 2345 2359 2361 number 1 based fixed bin(17,0) level 2 dcl 9-9 set ref 508* number_of_modes 000254 automatic fixed bin(17,0) dcl 9-6 set ref 507* 508 508 510 ofci based structure level 1 dcl 102 order 000134 automatic char(32) dcl 86 set ref 265* 272 277 393 397 404 417 432 453 455 461 484 491 500 502 originate 5(05) based bit(1) level 3 packed packed unaligned dcl 1-63 set ref 290* 295* 405 502 607 our_address 7 000206 automatic varying char(15) level 2 dcl 3-40 set ref 1481* out_calls_collect 15(04) based bit(1) level 3 packed packed unaligned dcl 1-21 ref 296 output_flow_control_info based structure level 1 dcl 4-19 output_in_fnp 1(19) 000176 automatic bit(1) level 3 packed packed unaligned dcl 2-38 set ref 1151* output_in_ring_0 1(20) 000176 automatic bit(1) level 3 packed packed unaligned dcl 2-38 set ref 1150* output_pending 2 based bit(1) level 2 dcl 94 set ref 456* 457 output_ready 13 based bit(1) level 3 packed packed unaligned dcl 1-103 set ref 426* 677* 1256* 2275* 2285 2287* p 000576 automatic fixed bin(17,0) dcl 2188 set ref 2193* 2194 2194 2198 2232* 2233 2233 2233 packet_trace_sw 15(05) based bit(1) level 3 packed packed unaligned dcl 1-21 ref 1010 2338 packets_out 000550 automatic fixed bin(7,0) dcl 2106 set ref 2110* 2112 2127 par_length 0(01) based fixed bin(2,0) array level 2 packed packed unsigned unaligned dcl 2402 ref 2414 2417 pinfop 000202 automatic pointer dcl 3-27 set ref 267* 326 328 363 366 369 370 399 400 pkt_size 000524 automatic fixed bin(17,0) dcl 2021 set ref 2029* 2031* 2031 2034 pointer builtin function dcl 249 ref 692 715 931 932 1159 2032 2047 pr 0(10) based fixed bin(7,0) level 2 in structure "m128_fc_data" packed packed unsigned unaligned dcl 147 in procedure "x25_mpx" set ref 1852 2056* 2119* 2137* pr 0(01) based fixed bin(3,0) level 2 in structure "m8_fc_data" packed packed unsigned unaligned dcl 139 in procedure "x25_mpx" set ref 1850 2052* 2117* 2135* pr_error 000155 automatic bit(1) packed unaligned dcl 89 set ref 1023* 1024 1186* 1187 1206* 1207 1222* 1223 prev_blockp 000102 automatic pointer dcl 73 set ref 684* 691* 705 707 primary_sub_state 1(18) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 105 set ref 808* protocol_mpx 000156 automatic bit(1) packed unaligned dcl 90 set ref 270* 292 357 397 413 417 675* 751 900* 921 961* 1008* 1010 1249 1273 1273 1277 1311 1432 1974 1980 2210 2338 ps 0(01) based fixed bin(7,0) level 2 in structure "m128_fc_data" packed packed unsigned unaligned dcl 147 in procedure "x25_mpx" set ref 1034 2055* ps 0(05) based fixed bin(3,0) level 2 in structure "m8_fc_data" packed packed unsigned unaligned dcl 139 in procedure "x25_mpx" set ref 1028 2051* pxss$ring_0_wakeup 000054 constant entry external dcl 255 ref 790 875 1584 q 1(19) based bit(1) level 3 packed packed unaligned dcl 120 set ref 943* 1056 1809* 2376 reason_of_hangup based structure level 1 dcl 99 rel builtin function dcl 249 ref 442 1155 1490 2322 2343 restart_time 26 based fixed bin(71,0) level 2 dcl 1-21 set ref 890 2011* 2012 resume_or_ack_seq 2 based structure level 2 packed packed unaligned dcl 102 resume_seq 1 based structure level 2 packed packed unaligned dcl 101 rnr_received 5(02) based bit(1) level 3 packed packed unaligned dcl 1-63 set ref 1189* 1209* 1892* 1920* 2023 2155 rnr_sent 5(04) based bit(1) level 3 packed packed unaligned dcl 1-63 set ref 2112 2125* 2131 2142* rtrim builtin function dcl 249 ref 440 rtx_info 000176 automatic structure level 1 dcl 2-38 set ref 447 447 929* 1173 1173 sc 52 based structure array level 2 dcl 1-21 set ref 847 899 1007 1457 1474 1523 1695 2249 scx 000120 automatic fixed bin(17,0) dcl 78 in procedure "x25_mpx" set ref 389 846* 847 898* 899 1005* 1006 1007 1446* 1447 1447* 1448 1449* 1457 1459 1474 1477 1511* 1513 1513* 1515 1523 1525 1694* 1695* 2038 2040 2041 2248* 2249 scx 000356 automatic fixed bin(17,0) dcl 1721 in procedure "find_sc" set ref 1723* 1724 1724 1724* scx 1 based fixed bin(17,0) level 2 in structure "xlce" dcl 1-63 in procedure "x25_mpx" set ref 389* 898 1005 1459* 1477* 1525* 1960* secondary_sub_state 1(27) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 105 set ref 808* send_output 15 based bit(1) level 3 packed packed unaligned dcl 1-21 set ref 842* 2034 2089 2090* seq_mod 16 based fixed bin(8,0) level 2 unsigned dcl 1-21 ref 731 752 1026 1049 1817 1850 2025 2050 2061 2110 2117 2135 2265 2437 service 67 based char(12) array level 3 dcl 1-21 set ref 1724 set_entry 000154 automatic bit(1) dcl 88 set ref 536* 544* 559 571 579 590 size builtin function dcl 249 in procedure "x25_mpx" ref 1494 size builtin function dcl 2354 in procedure "x25_hangup" ref 2360 2360 state 11 based fixed bin(17,0) level 2 in structure "x25_data" dcl 1-21 in procedure "x25_mpx" set ref 783 793 800 878 880* 890 962 1580 1583* 1981 1986 2010* 2363* state based fixed bin(17,0) array level 3 in structure "x25_lces" dcl 1-59 in procedure "x25_mpx" set ref 282 state 12 based fixed bin(17,0) level 2 in structure "xsce" dcl 1-103 in procedure "x25_mpx" set ref 274* 387* 419 424* 1253* 1495* 1973 1979 1991* 2272* state based fixed bin(17,0) level 2 in structure "xlce" dcl 1-63 in procedure "x25_mpx" set ref 419 425* 902 908* 909 913 917 921 1017 1181 1201 1217 1234 1234 1235* 1248 1254* 1264* 1282 1290 1291* 1306 1311 1311 1312* 1322 1343 1349* 1358 1409 1410* 1544 1552 1559* 1603 1789 1789 1792* 1795 1885* 1956* 1959* 2273* 2300* state 64 based fixed bin(17,0) array level 3 in structure "x25_data" dcl 1-21 in procedure "x25_mpx" set ref 1724 state_time 12 based fixed bin(71,0) level 2 dcl 1-63 set ref 907 2301* string builtin function dcl 249 set ref 437* 439* 440 444* 492 561* 690* 759* 1059 1114 1146 1146 1166 1493* 1808* 1952* 1971* 1972* subchan_idx 1 000200 automatic fixed bin(17,0) level 2 dcl 2-50 set ref 887 substr builtin function dcl 249 set ref 298 300 304 306 348 348 348 348 365 378 379 380* 485 485 492 492 1015 1059 1114* 1146* 1146 1166 1417 1418 1420 1423 1423 1425 1425 1428 1440 1444 1504 1811 1812 2193 2196* 2218 2222 2232 2335 2335 2376 suspend_or_etb_seq 1 based structure level 2 packed packed unaligned dcl 102 suspend_resume based bit(1) level 3 packed packed unaligned dcl 102 ref 492 suspend_seq based structure level 2 packed packed unaligned dcl 101 syserr 000056 constant entry external dcl 256 ref 808 832 860 908 935 943 955 990 996 1042 1066 1126 1225 1235 1264 1273 1291 1312 1324 1349 1385 1396 1410 1449 1468 1516 1541 1559 1570 1710 1776 1792 1868 2093 2379 tally 0(27) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 12-28 set ref 383* 409* 440* 467* 478* 645* 686 687 739 739 740* 740 934 973* 1073* 1079 1115* 1142 1148* 1157 1166 1166 1330* 1431 1494* 1530* 1650* 1665* 1679* 1710 1915* 2007* 2029 2031 2078* 2120* 2138* 2160* 2192 2211 2225* 2231 2335 2335 2378 2379 2389* temp_pr 000440 automatic fixed bin(7,0) unsigned dcl 1844 set ref 1850* 1852* 1861 1861 1861 1861 1861 1868* temp_ps 000116 automatic fixed bin(7,0) unsigned dcl 76 set ref 1028* 1034* 1040 1042* timer_info 000200 automatic structure level 1 dcl 2-50 set ref 885* timer_set 5(06) based bit(1) level 3 packed packed unaligned dcl 1-63 set ref 897* 1938 1940* 2174 2176* to_address 6 based varying char(15) level 2 dcl 3-33 ref 328 trans_table_ptr 24 based pointer level 2 dcl 1-103 set ref 330* 595* 597* 600* 602* 1154 1157 1479* tty_buf based structure level 1 dcl 10-35 tty_buf$ 000062 external static fixed bin(17,0) dcl 10-19 set ref 2108 2425 tty_space_man$free_chain 000104 constant entry external dcl 15-16 ref 1734 1745 1759 tty_space_man$free_space 000100 constant entry external dcl 15-12 ref 2360 tty_space_man$get_buffer 000102 constant entry external dcl 15-13 ref 434 1772 tty_space_man$switch_chain 000106 constant entry external dcl 15-17 ref 758 1172 1488 2236 ttybp 000260 automatic pointer dcl 10-19 set ref 2108* 2109 2112 2425* 2426 type 2(01) based bit(8) level 2 packed packed unaligned dcl 120 set ref 339* 465* 743* 967 972* 981 989 996* 1015 1179 1199 1216 1233 1247 1272 1289 1321 1329* 1342 1365 1383 1396* 1408 1529* 1540 1551 1570* 1581 1581 1648* 1664* 1678* 1913* 2005* 2076* 2116* 2134* 2376 2388* unspec builtin function dcl 249 set ref 348 348 365 378* 379* 447 447 785* 885* 929* 1173 1173 1252 1252 1423* 1425* 1485* 1485 1489* 1497 1497 1974 1981 1983 2218 2222 2271 2271 2335* 2335 user_data 0(18) based bit level 2 in structure "m128_fc_data" packed packed unaligned dcl 147 in procedure "x25_mpx" set ref 737 1036 1822 user_data 0(09) based bit level 2 in structure "m8_fc_data" packed packed unaligned dcl 139 in procedure "x25_mpx" set ref 733 1030 1818 user_data_disp 000113 automatic fixed bin(17,0) dcl 75 set ref 362* 367* 370 376* 378 379 380 383 1430* 1431 1435 1440 1478 1482 1504 1505 user_data_length 000115 automatic fixed bin(17,0) dcl 75 set ref 369* 370 377* 378 379 380 383 1431* 1435 1438 1440 1441 1444 1478 1482 1503 1504 verify builtin function dcl 249 ref 1166 version based char(8) level 2 in structure "ftd" dcl 103 in procedure "x25_mpx" ref 503 version 2 based fixed bin(17,0) array level 3 in structure "mode_string_info" dcl 9-9 in procedure "x25_mpx" set ref 511* version based fixed bin(17,0) level 2 in structure "mcl" dcl 8-10 in procedure "x25_mpx" ref 554 version based fixed bin(17,0) level 2 in structure "mode_string_info" dcl 9-9 in procedure "x25_mpx" set ref 509* which_state_process 1 based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 105 set ref 808* wire_proc$wire_me 000060 constant entry external dcl 257 ref 2465 word_counts 5 based structure level 2 dcl 6-20 write 000574 automatic bit(1) dcl 2187 set ref 2190* 2195* 2206 write_head 34 based pointer level 2 in structure "x25_data" dcl 1-21 in procedure "x25_mpx" set ref 845 1758 1759* 1760* 2034 2089 2091* 2096 2341 2341* write_head 20 based pointer level 2 in structure "xsce" dcl 1-103 in procedure "x25_mpx" set ref 1150 1744 1745* 1746* 2025 2028 2045* 2047* 2155 2285 2314 2315* write_status_info based structure level 1 dcl 94 write_status_sync_sent 5(08) based bit(1) level 3 packed packed unaligned dcl 1-63 set ref 457 1848* 1893* 1920* 2162* write_tail 22 based pointer level 2 in structure "xsce" dcl 1-103 in procedure "x25_mpx" set ref 1746* 2045* 2316* 2322 2323* write_tail 36 based pointer level 2 in structure "x25_data" dcl 1-21 in procedure "x25_mpx" set ref 1760* 2096* 2343 2344* wru_done 13(02) based bit(1) level 3 packed packed unaligned dcl 1-103 set ref 433 448* x25_chain_ptr parameter pointer dcl 60 set ref 665 681 764* x25_code parameter fixed bin(35,0) dcl 61 set ref 261 268* 279* 286* 402* 419* 428* 485* 492* 504* 527* 533 541 548* 551* 555* 584* 656 659* 665 670* 673* 765* x25_data based structure level 1 dcl 1-21 x25_data_ptr 000166 automatic pointer dcl 1-18 set ref 278 282 282 282 289 294 296 340 341 346 399 400 618 630 636 641 731 752 758 773* 783 785 786 790 790 793 800 808 832 842 845 845 846 847 849 850 851 851 860 875 875 878 880 890 890 896 899 908 931 932 935 941 943 954 955 962 990 996 1004 1007 1010 1026 1049 1172 1410 1448 1449 1457 1466 1468 1474 1481 1488 1502 1515 1516 1523 1541 1559 1570 1580 1582 1583 1584 1584 1690 1691 1694 1695 1710 1723 1724 1724 1734 1758 1759 1759 1760 1760 1772 1776 1777 1810 1817 1850 1939 1955 1981 1986 2010 2011 2012 2012 2025 2034 2034 2034 2038 2038 2040 2040 2041 2050 2061 2089 2089 2090 2091 2091 2093 2094 2096 2096 2110 2117 2135 2155 2155 2159 2175 2236 2236 2247* 2249 2253 2262 2265 2338 2341 2341 2343 2344 2356 2359 2360 2360 2360 2360 2360 2361 2363 2379 2435 2437 2437 2440 x25_infop parameter pointer dcl 62 ref 261 266 x25_int_data parameter bit(72) dcl 63 set ref 770 775 808 808 808 808 808 808 832 832 x25_int_type parameter fixed bin(17,0) dcl 64 ref 770 774 x25_lces based structure level 1 dcl 1-59 set ref 2360 2360 x25_mclp parameter pointer dcl 68 ref 533 541 552 x25_modes parameter char packed unaligned dcl 65 set ref 656 660* x25_mpx_data$eight_bit 000046 external static char(512) dcl 244 set ref 687* x25_mpx_data$trans_no_parity 000040 external static char(256) dcl 241 set ref 602 1441 x25_mpx_data$trans_no_parity_lfecho 000042 external static char(256) dcl 242 set ref 600 x25_mpx_data$trans_parity_lfecho 000044 external static char(256) dcl 243 set ref 595 x25_order parameter char packed unaligned dcl 66 ref 261 265 x25_pkt based structure level 1 dcl 120 xlce based structure level 1 dcl 1-63 xlcep 000170 automatic pointer dcl 1-62 set ref 272 289* 290 293 294 295 296 300 301 306 307 311 312 325 326 328 329 333 334 342 346 359 373 377 379 380 389 405 405 419 425 439 456 456 457 462 470 472 472 480 502 502 515 516 517 518 519 520 521 547 607 607 669 679 688 703 752 776* 849* 896* 897 898 902 907 908 909 913 917 921 1004* 1005 1017 1040 1042 1049 1049 1051 1053 1057 1089 1094 1108 1140 1151 1151 1181 1189 1201 1209 1217 1234 1234 1235 1248 1249 1254 1264 1282 1290 1291 1306 1311 1311 1312 1322 1343 1349 1358 1367 1370 1384 1390 1409 1410 1428 1433 1434 1437 1444 1446 1459 1477 1478 1480 1502 1504 1506 1509 1511 1525 1544 1552 1559 1603 1691* 1789 1789 1792 1795 1813 1848 1861 1861 1861 1861 1861 1861 1861 1861 1861 1868 1868 1885 1890 1891 1892 1893 1920 1920 1920 1920 1929 1929 1929 1929 1938 1940 1952 1953 1956 1959 1960 2023 2025 2025 2025 2051 2052 2055 2056 2061 2061 2062 2062 2110 2110 2112 2112 2112 2117 2119 2123 2123 2125 2131 2135 2137 2141 2141 2142 2155 2162 2174 2176 2194 2194 2198 2216 2221 2221 2223 2225 2233 2233 2233 2251* 2253* 2264 2270 2273 2285 2300 2301 2407 2410 2442 xsce based structure level 1 dcl 1-103 xscep 000172 automatic pointer dcl 1-102 set ref 274 330 387 388 419 424 426 427 433 434 447 448 524 561 571 594 595 595 597 600 600 602 677 681 728 758 776* 847* 848 850 852 899* 1007* 1042 1060 1066 1110 1118 1126 1150 1154 1157 1163 1164 1172 1173 1225 1235 1252 1253 1256 1257 1264 1273 1291 1312 1324 1349 1367 1373 1376 1385 1396 1457* 1458 1474* 1476 1479 1488 1495 1497 1523* 1524 1620 1695* 1744 1745 1745 1746 1746 1747 1748 1792 1868 1897 1971 1972 1973 1974 1977 1979 1981 1983 1986 1988 1991 1992 2023 2025 2028 2036 2037 2045 2045 2047 2109 2155 2200 2201 2202 2249* 2250 2253 2271 2272 2275 2276 2285 2285 2285 2287 2288 2314 2315 2316 2322 2323 2426 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABORT internal static fixed bin(17,0) initial dcl 3-86 ACKNOWLEDGE_ECHNEGO_INIT internal static fixed bin(17,0) initial dcl 2-22 ACKNOWLEDGE_ECHNEGO_STOP internal static fixed bin(17,0) initial dcl 2-23 FNP_DUMP_PATCH_EVENT internal static fixed bin(17,0) initial dcl 10-31 FNP_METER_EVENT internal static fixed bin(17,0) initial dcl 10-32 HASP_MPX internal static fixed bin(17,0) initial dcl 16-16 IBM3270_MPX internal static fixed bin(17,0) initial dcl 16-16 INPUT_AVAILABLE internal static fixed bin(17,0) initial dcl 2-14 INPUT_REJECTED internal static fixed bin(17,0) initial dcl 2-16 LAP_MPX internal static fixed bin(17,0) initial dcl 16-16 LINE_1050 internal static fixed bin(17,0) initial dcl 7-22 LINE_2741 internal static fixed bin(17,0) initial dcl 7-22 LINE_ARDS internal static fixed bin(17,0) initial dcl 7-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 7-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 7-22 LINE_BSC internal static fixed bin(17,0) initial dcl 7-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 7-22 LINE_DSA internal static fixed bin(17,0) initial dcl 7-22 LINE_ETX internal static fixed bin(17,0) initial dcl 7-22 LINE_G115 internal static fixed bin(17,0) initial dcl 7-22 LINE_HASP_OPR internal static fixed bin(17,0) initial dcl 7-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 7-22 LINE_MC internal static fixed bin(17,0) initial dcl 7-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 7-22 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 7-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 7-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 7-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 7-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 7-22 LINE_UNKNOWN internal static fixed bin(17,0) initial dcl 7-22 LINE_VIP internal static fixed bin(17,0) initial dcl 7-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 7-22 MASKED internal static fixed bin(17,0) initial dcl 2-26 MCS_MPX internal static fixed bin(17,0) initial dcl 16-16 NCONCONF internal static fixed bin(17,0) initial dcl 3-81 NCONIND internal static fixed bin(17,0) initial dcl 3-80 NDISIND internal static fixed bin(17,0) initial dcl 3-85 NDTIND internal static fixed bin(17,0) initial dcl 3-82 NDTRDYIND internal static fixed bin(17,0) initial dcl 3-83 NRESETIND internal static fixed bin(17,0) initial dcl 3-84 SPACE_AVAILABLE internal static fixed bin(17,0) initial dcl 2-21 STY_MPX internal static fixed bin(17,0) initial dcl 16-16 SYSTEM1_MPX internal static fixed bin(17,0) initial dcl 16-16 SYSTEM2_MPX internal static fixed bin(17,0) initial dcl 16-16 TIMER internal static fixed bin(17,0) initial dcl 2-24 TTY_AREA_LOCK_EVENT internal static bit(36) initial dcl 10-33 TTY_MPX internal static fixed bin(17,0) initial dcl 16-16 UNCP_MPX internal static fixed bin(17,0) initial dcl 16-16 USER1_MPX internal static fixed bin(17,0) initial dcl 16-16 USER2_MPX internal static fixed bin(17,0) initial dcl 16-16 USER3_MPX internal static fixed bin(17,0) initial dcl 16-16 USER4_MPX internal static fixed bin(17,0) initial dcl 16-16 USER5_MPX internal static fixed bin(17,0) initial dcl 16-16 VIP7760_MPX internal static fixed bin(17,0) initial dcl 16-16 WRU_TIMEOUT internal static fixed bin(17,0) initial dcl 2-20 Write_and_crash_system internal static fixed bin(17,0) initial dcl 17-14 Write_on_console internal static fixed bin(17,0) initial dcl 17-14 Write_with_alarm internal static fixed bin(17,0) initial dcl 17-14 Write_with_alarm_and_terminate internal static fixed bin(17,0) initial dcl 17-14 X25_MPX internal static fixed bin(17,0) initial dcl 16-16 abs_buf_limit internal static fixed bin(18,0) initial dcl 10-19 bsizec internal static fixed bin(17,0) initial dcl 10-28 buf_per_second internal static fixed bin(17,0) initial dcl 10-29 channel_manager$check_modes 000000 constant entry external dcl 13-19 channel_manager$get_modes 000000 constant entry external dcl 13-22 channel_manager$interrupt_later 000000 constant entry external dcl 13-28 channel_manager$queued_interrupt 000000 constant entry external dcl 13-31 channel_manager$read 000000 constant entry external dcl 13-7 channel_manager$set_modes 000000 constant entry external dcl 13-16 foreign_terminal_data_ptr automatic pointer dcl 5-3 free_block based structure level 1 dcl 12-23 free_blockp automatic pointer dcl 12-20 input_bpart internal static fixed bin(18,0) initial dcl 10-19 interrupt_info automatic bit(72) dcl 2-28 lcnt based structure level 1 dcl 6-65 lcntp automatic pointer dcl 6-63 lct_size automatic fixed bin(17,0) dcl 6-9 lctp automatic pointer dcl 6-7 line_types internal static char(16) initial array packed unaligned dcl 7-54 lock_ptr automatic pointer dcl 11-9 max_buffer_tally internal static fixed bin(17,0) initial array dcl 12-43 max_line_type internal static fixed bin(17,0) initial dcl 7-48 mcs_timer$change 000000 constant entry external dcl 14-5 mode_value_ptr automatic pointer dcl 9-6 mpx_special_lock internal static bit(1) initial array packed unaligned dcl 16-40 mpx_types internal static char(32) initial array packed unaligned dcl 16-35 n_sync_line_types internal static fixed bin(17,0) initial dcl 7-50 output_bpart internal static fixed bin(18,0) initial dcl 10-19 protocol_event_message automatic fixed bin(71,0) dcl 3-72 protocol_msg based structure level 1 packed packed unaligned dcl 3-74 qblock_size internal static fixed bin(17,0) initial dcl 10-27 saved_meters based structure level 1 dcl 6-68 sync_line_type internal static fixed bin(17,0) initial array dcl 7-52 transmit_info based structure level 1 dcl 3-61 transmit_info_entries automatic fixed bin(17,0) dcl 3-59 tty_ev internal static fixed bin(17,0) initial dcl 10-19 tty_space_man$free_buffer 000000 constant entry external dcl 15-14 tty_space_man$get_chain 000000 constant entry external dcl 15-15 tty_space_man$get_perm_space 000000 constant entry external dcl 15-11 tty_space_man$get_space 000000 constant entry external dcl 15-10 tty_space_man$needs_space 000000 constant entry external dcl 15-18 wakeup_names internal static char(9) initial array packed unaligned dcl 3-88 x25_data_n_sc automatic fixed bin(17,0) dcl 1-19 NAMES DECLARED BY EXPLICIT CONTEXT. INTERRUPT 000000 constant label array(17) dcl 783 ref 778 778 780 add_iti_mode 010511 constant entry internal dcl 1614 ref 615 616 617 618 620 621 622 623 632 633 638 add_iti_param 010545 constant entry internal dcl 1628 ref 625 626 631 637 1620 1622 bad_interrupt 004306 constant label dcl 860 ref 778 783 832 check_facilities 014147 constant entry internal dcl 2395 ref 1456 check_modes 002766 constant entry external dcl 533 clear_call 010571 constant entry internal dcl 1641 ref 413 414 910 914 918 922 1101 1237 1266 1293 1315 1413 1452 1471 1519 1563 1573 1795 1797 clear_confirm 010624 constant entry internal dcl 1659 ref 1282 1544 confirm_interrupt 010647 constant entry internal dcl 1673 ref 1093 1375 control 001142 constant entry external dcl 261 crash_subchannels 010672 constant entry internal dcl 1687 ref 794 802 879 968 done_data_pkt 010440 constant label dcl 1601 ref 1075 1081 1097 1106 1120 1124 1129 1133 1135 1140 1143 1166 1174 done_in_pkt 010437 constant label dcl 1597 ref 938 947 958 976 984 993 999 1019 1024 1046 1102 1183 1187 1194 1203 1207 1211 1219 1223 1228 1242 1261 1267 1284 1301 1308 1316 1337 1353 1360 1378 1393 1399 1414 1453 1463 1472 1498 1520 1534 1546 1555 1564 1574 1587 1594 1779 dump_pkt 010733 constant entry internal dcl 1703 ref 936 945 956 992 998 1044 1067 1226 1236 1265 1292 1314 1326 1350 1386 1397 1412 1451 1470 1518 1543 1572 1794 1871 end_chain 003620 constant label dcl 703 ref 688 find_sc 011005 constant entry internal dcl 1717 ref 1446 1447 1511 1513 free_in_pkt 011046 constant entry internal dcl 1731 ref 969 982 1092 1099 1111 1190 1210 1240 1260 1281 1298 1307 1334 1346 1359 1366 1391 1460 1486 1526 1554 1562 1586 1593 1601 1711 1789 2212 free_write_chain 011066 constant entry internal dcl 1741 ref 1884 1970 free_x25_data_chain 011120 constant entry internal dcl 1755 ref 1775 2357 get_buffer 011146 constant entry internal dcl 1767 ref 313 331 335 406 463 473 608 970 1068 1112 1327 1487 1527 1646 1662 1676 1911 2003 2074 2114 2132 2157 2213 2386 get_modes 003441 constant entry external dcl 656 get_protocol_sc 014251 constant entry internal dcl 2422 ref 270 675 900 1008 handle_data_or_fc_error 011256 constant entry internal dcl 1786 ref 1018 1182 1202 1218 interrupt 004026 constant entry external dcl 770 iti 000021 constant label array(0:6) dcl 1079 ref 1065 1065 log_packet 014031 constant entry internal dcl 2367 ref 1010 2338 make_header 011333 constant entry internal dcl 1803 ref 338 407 464 474 609 742 971 1069 1113 1328 1528 1647 1663 1677 1912 2004 2075 2115 2133 2158 2214 2387 modes_common 003014 constant label dcl 545 ref 537 proc_clear 011420 constant entry internal dcl 1830 ref 1283 1297 proc_pr 011424 constant entry internal dcl 1840 ref 1023 1186 1206 1222 proc_reset_lc 011554 constant entry internal dcl 1880 ref 1336 1345 reset_lc 011613 constant entry internal dcl 1906 ref 1045 1227 1351 1387 1398 1872 reset_seq_nos 011657 constant entry internal dcl 1926 ref 1883 1950 reset_timer 011666 constant entry internal dcl 1935 ref 422 1255 1886 1951 2124 2274 2302 reset_xlce 011717 constant entry internal dcl 1947 ref 1545 1553 1692 1833 reset_xsce 011753 constant entry internal dcl 1967 ref 394 1696 1834 restart 012143 constant entry internal dcl 1998 ref 786 891 983 send_NCON_RESP 014124 constant entry internal dcl 2384 ref 423 1461 send_data_packets 012225 constant entry internal dcl 2018 ref 853 1191 1604 2318 send_diag 012424 constant entry internal dcl 2069 ref 937 946 957 send_output 012456 constant entry internal dcl 2086 ref 385 469 856 975 1192 1332 1532 1605 1652 1667 1681 1917 2009 2080 2122 2140 2319 2391 send_rr 012600 constant entry internal dcl 2103 ref 903 1607 send_sync 013003 constant entry internal dcl 2152 ref 457 set_modes 003002 constant entry external dcl 541 set_timer 013057 constant entry internal dcl 2169 ref 2128 2144 2303 set_up_dialup_info 014302 constant entry internal dcl 2432 ref 1251 1484 set_x29 013116 constant entry internal dcl 2183 ref 1104 1122 1131 setup_subchan 013450 constant entry internal dcl 2244 ref 264 545 668 signal_dialup 013475 constant entry internal dcl 2259 ref 1259 1462 1533 solicit_output 013605 constant entry internal dcl 2282 ref 763 1193 1606 1899 state_change 013642 constant entry internal dcl 2295 ref 390 1496 1653 1918 system_init 010456 constant entry external dcl 2451 write 003471 constant entry external dcl 665 write_data_pkt 013655 constant entry internal dcl 2309 ref 410 479 646 760 1074 1117 2161 2226 2237 write_pkt 013712 constant entry internal dcl 2331 ref 384 468 974 1331 1531 1651 1666 1680 1916 2008 2059 2079 2121 2139 2390 x25_hangup 013770 constant entry internal dcl 2351 ref 795 803 x25_mpx 001127 constant entry external dcl 22 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 15662 15772 15265 15672 Length 16660 15265 110 651 375 10 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME x25_mpx 1119 external procedure is an external procedure. add_iti_mode internal procedure shares stack frame of external procedure x25_mpx. add_iti_param internal procedure shares stack frame of external procedure x25_mpx. clear_call internal procedure shares stack frame of external procedure x25_mpx. clear_confirm internal procedure shares stack frame of external procedure x25_mpx. confirm_interrupt internal procedure shares stack frame of external procedure x25_mpx. crash_subchannels internal procedure shares stack frame of external procedure x25_mpx. dump_pkt internal procedure shares stack frame of external procedure x25_mpx. find_sc internal procedure shares stack frame of external procedure x25_mpx. free_in_pkt internal procedure shares stack frame of external procedure x25_mpx. free_write_chain internal procedure shares stack frame of external procedure x25_mpx. free_x25_data_chain internal procedure shares stack frame of external procedure x25_mpx. get_buffer internal procedure shares stack frame of external procedure x25_mpx. handle_data_or_fc_error internal procedure shares stack frame of external procedure x25_mpx. make_header internal procedure shares stack frame of external procedure x25_mpx. proc_clear internal procedure shares stack frame of external procedure x25_mpx. proc_pr internal procedure shares stack frame of external procedure x25_mpx. proc_reset_lc internal procedure shares stack frame of external procedure x25_mpx. reset_lc internal procedure shares stack frame of external procedure x25_mpx. reset_seq_nos internal procedure shares stack frame of external procedure x25_mpx. reset_timer internal procedure shares stack frame of external procedure x25_mpx. reset_xlce internal procedure shares stack frame of external procedure x25_mpx. reset_xsce internal procedure shares stack frame of external procedure x25_mpx. restart internal procedure shares stack frame of external procedure x25_mpx. send_data_packets internal procedure shares stack frame of external procedure x25_mpx. send_diag internal procedure shares stack frame of external procedure x25_mpx. send_output internal procedure shares stack frame of external procedure x25_mpx. send_rr internal procedure shares stack frame of external procedure x25_mpx. send_sync internal procedure shares stack frame of external procedure x25_mpx. set_timer internal procedure shares stack frame of external procedure x25_mpx. set_x29 internal procedure shares stack frame of external procedure x25_mpx. setup_subchan internal procedure shares stack frame of external procedure x25_mpx. signal_dialup internal procedure shares stack frame of external procedure x25_mpx. solicit_output internal procedure shares stack frame of external procedure x25_mpx. state_change internal procedure shares stack frame of external procedure x25_mpx. write_data_pkt internal procedure shares stack frame of external procedure x25_mpx. write_pkt internal procedure shares stack frame of external procedure x25_mpx. x25_hangup internal procedure shares stack frame of external procedure x25_mpx. log_packet internal procedure shares stack frame of external procedure x25_mpx. send_NCON_RESP internal procedure shares stack frame of external procedure x25_mpx. check_facilities internal procedure shares stack frame of external procedure x25_mpx. get_protocol_sc internal procedure shares stack frame of external procedure x25_mpx. set_up_dialup_info internal procedure shares stack frame of external procedure x25_mpx. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 et_action_not_performed x25_mpx 000011 et_bad_arg x25_mpx 000012 et_bad_mode x25_mpx 000013 et_invalid_state x25_mpx 000014 et_noalloc x25_mpx 000015 et_resource_unavailable x25_mpx 000016 et_undefined_order_request x25_mpx 000017 et_unimplemented_version x25_mpx STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME x25_mpx 000100 endp x25_mpx 000102 prev_blockp x25_mpx 000104 chain_ptr x25_mpx 000106 leftover_chain_ptr x25_mpx 000110 called_dte_addr_length x25_mpx 000111 calling_dte_addr_length x25_mpx 000112 facility_disp x25_mpx 000113 user_data_disp x25_mpx 000114 facility_length x25_mpx 000115 user_data_length x25_mpx 000116 temp_ps x25_mpx 000117 lcx x25_mpx 000120 scx x25_mpx 000121 code x25_mpx 000122 i x25_mpx 000123 j x25_mpx 000124 infop x25_mpx 000126 int_data x25_mpx 000130 int_type x25_mpx 000131 hdr_size x25_mpx 000132 nchars x25_mpx 000133 mode_found x25_mpx 000134 order x25_mpx 000144 addr_string x25_mpx 000154 set_entry x25_mpx 000155 pr_error x25_mpx 000156 protocol_mpx x25_mpx 000157 Call_data x25_mpx 000164 l4_data_ptr x25_mpx 000166 x25_data_ptr x25_mpx 000170 xlcep x25_mpx 000172 xscep x25_mpx 000174 dialup_info x25_mpx 000176 rtx_info x25_mpx 000200 timer_info x25_mpx 000202 pinfop x25_mpx 000204 DIALUP_info x25_mpx 000206 NCON_IND_info x25_mpx 000244 disconnect_info x25_mpx 000246 lctep x25_mpx 000250 mclp x25_mpx 000252 mclep x25_mpx 000254 number_of_modes x25_mpx 000256 mode_string_info_ptr x25_mpx 000260 ttybp x25_mpx 000262 blockp x25_mpx 000356 scx find_sc 000440 temp_pr proc_pr 000524 pkt_size send_data_packets 000550 packets_out send_rr 000574 write set_x29 000575 i set_x29 000576 p set_x29 000662 n_octets log_packet 000700 i check_facilities THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as r_ne_as r_le_a r_ge_a alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac mdfx1 shorten_stack ext_entry ext_entry_desc op_alloc_ clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. channel_manager$control channel_manager$interrupt channel_manager$write mcs_timer$reset mcs_timer$reset_all mcs_timer$set mrl_ mvt_ pxss$ring_0_wakeup syserr tty_space_man$free_chain tty_space_man$free_space tty_space_man$get_buffer tty_space_man$switch_chain wire_proc$wire_me THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$action_not_performed error_table_$bad_arg error_table_$bad_mode error_table_$invalid_state error_table_$noalloc error_table_$resource_unavailable error_table_$undefined_order_request error_table_$unimplemented_version tty_buf$ x25_mpx_data$eight_bit x25_mpx_data$trans_no_parity x25_mpx_data$trans_no_parity_lfecho x25_mpx_data$trans_parity_lfecho CONSTANTS 014344 aa 775777777777 014346 aa 000004000000 014347 aa 000000000000 014350 aa 600000000041 014351 aa 000117000000 014352 aa 600000000041 014353 aa 002130000000 014354 aa 000002000000 014355 aa 000000000000 014356 aa 600000000041 014357 aa 002130000000 014360 aa 000002000000 014361 aa 000000000000 014362 aa 600000000041 014363 aa 002036000000 014364 aa 000002000000 014365 aa 000000000000 014366 ta 000070000000 014367 aa 000000000000 014370 aa 000004000000 014371 aa 000000000000 014372 aa 600000000041 014373 aa 000117000000 014374 aa 600000000041 014375 aa 001757000000 014376 aa 000002000000 014377 aa 000000000000 014400 aa 600000000041 014401 aa 001757000000 014402 aa 000004000000 014403 aa 000000000000 014404 aa 600000000041 014405 aa 000117000000 014406 aa 600000000041 014407 aa 001736000000 014410 aa 000002000000 014411 aa 000000000000 014412 aa 600000000041 014413 aa 001736000000 014414 aa 000002000000 014415 aa 000000000000 014416 ta 000072000000 014417 aa 000000000000 014420 aa 000004000000 014421 aa 000000000000 014422 aa 600000000041 014423 aa 000117000000 014424 aa 600000000041 014425 aa 001734000000 014426 aa 000002000000 014427 aa 000000000000 014430 aa 600000000041 014431 aa 001734000000 014432 aa 000004000000 014433 aa 000000000000 014434 aa 600000000041 014435 aa 001662000000 014436 aa 600000000041 014437 aa 001663000000 014440 aa 000002000000 014441 aa 000000000000 014442 aa 600000000041 014443 aa 001662000000 014444 aa 000004000000 014445 aa 000000000000 014446 aa 600000000041 014447 aa 001640000000 014450 aa 600000000041 014451 aa 001641000000 014452 aa 000002000000 014453 aa 000000000000 014454 aa 600000000041 014455 aa 001640000000 014456 aa 000002000000 014457 aa 000000000000 014460 ta 000147000000 014461 aa 000000000000 014462 aa 000004000000 014463 aa 000000000000 014464 aa 600000000041 014465 aa 000117000000 014466 aa 600000000041 014467 aa 001612000000 014470 aa 000002000000 014471 aa 000000000000 014472 aa 600000000041 014473 aa 001612000000 014474 aa 000002000000 014475 aa 000000000000 014476 aa 600000000041 014477 aa 001515000000 014500 aa 776777777777 014502 aa 000002000000 014503 aa 000000000000 014504 aa 600000000041 014505 aa 001510000000 014506 aa 000004000000 014507 aa 000000000000 014510 aa 600000000041 014511 aa 000117000000 014512 aa 600000000041 014513 aa 001274000000 014514 aa 000002000000 014515 aa 000000000000 014516 aa 600000000041 014517 aa 001274000000 014520 aa 000004000000 014521 aa 000000000000 014522 aa 600000000041 014523 aa 000117000000 014524 aa 600000000041 014525 aa 001273000000 014526 aa 000002000000 014527 aa 000000000000 014530 aa 600000000041 014531 aa 001273000000 014532 aa 000002000000 014533 aa 000000000000 014534 ta 000160000000 014535 aa 000000000000 014536 aa 000004000000 014537 aa 000000000000 014540 aa 600000000041 014541 aa 000117000000 014542 aa 600000000041 014543 aa 001272000000 014544 aa 000002000000 014545 aa 000000000000 014546 aa 600000000041 014547 aa 001272000000 014550 aa 000002000000 014551 aa 000000000000 014552 ta 000144000000 014553 aa 000000000000 014554 aa 000004000000 014555 aa 000000000000 014556 aa 600000000041 014557 aa 000723000000 014560 aa 600000000041 014561 aa 000120000000 014562 aa 000004000000 014563 aa 000000000000 014564 aa 600000000041 014565 aa 000117000000 014566 aa 600000000041 014567 aa 001060000000 014570 aa 000002000000 014571 aa 000000000000 014572 aa 600000000041 014573 aa 001060000000 014574 aa 777 777 777 777 ÿÿÿÿ 014575 aa 777 777 777 777 ÿÿÿÿ 014576 aa 777 777 000 777 ÿÿÿ 014577 aa 000 000 777 777 ÿÿ 014600 aa 777 777 777 777 ÿÿÿÿ 014601 aa 777 777 777 777 ÿÿÿÿ 014602 aa 777 777 777 777 ÿÿÿÿ 014603 aa 777 777 777 777 ÿÿÿÿ 014604 aa 777 777 777 777 ÿÿÿÿ 014605 aa 777 777 777 777 ÿÿÿÿ 014606 aa 777 777 777 777 ÿÿÿÿ 014607 aa 777 777 777 777 ÿÿÿÿ 014610 aa 777 777 777 777 ÿÿÿÿ 014611 aa 777 777 777 777 ÿÿÿÿ 014612 aa 777 777 777 777 ÿÿÿÿ 014613 aa 777 777 777 777 ÿÿÿÿ 014614 aa 777 777 777 777 ÿÿÿÿ 014615 aa 777 777 777 777 ÿÿÿÿ 014616 aa 777 777 777 777 ÿÿÿÿ 014617 aa 777 777 777 777 ÿÿÿÿ 014620 aa 777 777 777 777 ÿÿÿÿ 014621 aa 777 777 777 777 ÿÿÿÿ 014622 aa 777 777 777 777 ÿÿÿÿ 014623 aa 777 777 777 777 ÿÿÿÿ 014624 aa 777 777 777 777 ÿÿÿÿ 014625 aa 777 777 777 777 ÿÿÿÿ 014626 aa 777 777 777 777 ÿÿÿÿ 014627 aa 777 777 777 777 ÿÿÿÿ 014630 aa 777 777 777 777 ÿÿÿÿ 014631 aa 777 777 777 777 ÿÿÿÿ 014632 aa 777 777 777 777 ÿÿÿÿ 014633 aa 777 777 777 777 ÿÿÿÿ 014634 aa 777 777 777 777 ÿÿÿÿ 014635 aa 777 777 777 777 ÿÿÿÿ 014636 aa 777 777 777 777 ÿÿÿÿ 014637 aa 777 777 777 777 ÿÿÿÿ 014640 aa 777 777 777 777 ÿÿÿÿ 014641 aa 777 777 777 777 ÿÿÿÿ 014642 aa 777 777 777 777 ÿÿÿÿ 014643 aa 777 777 777 777 ÿÿÿÿ 014644 aa 777 777 777 777 ÿÿÿÿ 014645 aa 777 777 777 777 ÿÿÿÿ 014646 aa 777 777 777 777 ÿÿÿÿ 014647 aa 777 777 777 777 ÿÿÿÿ 014650 aa 777 777 777 777 ÿÿÿÿ 014651 aa 777 777 777 777 ÿÿÿÿ 014652 aa 777 777 777 777 ÿÿÿÿ 014653 aa 777 777 777 777 ÿÿÿÿ 014654 aa 777 777 777 777 ÿÿÿÿ 014655 aa 777 777 777 777 ÿÿÿÿ 014656 aa 777 777 777 777 ÿÿÿÿ 014657 aa 777 777 777 777 ÿÿÿÿ 014660 aa 777 777 777 777 ÿÿÿÿ 014661 aa 777 777 777 777 ÿÿÿÿ 014662 aa 777 777 777 777 ÿÿÿÿ 014663 aa 777 777 777 777 ÿÿÿÿ 014664 aa 777 777 777 777 ÿÿÿÿ 014665 aa 777 777 777 777 ÿÿÿÿ 014666 aa 777 777 777 777 ÿÿÿÿ 014667 aa 777 777 777 777 ÿÿÿÿ 014670 aa 777 777 777 777 ÿÿÿÿ 014671 aa 777 777 777 777 ÿÿÿÿ 014672 aa 777 777 777 777 ÿÿÿÿ 014673 aa 777 777 777 777 ÿÿÿÿ 014674 aa 777 777 777 777 ÿÿÿÿ 014675 aa 777 777 777 777 ÿÿÿÿ 014676 aa 777 777 777 777 ÿÿÿÿ 014677 aa 777 777 777 777 ÿÿÿÿ 014700 aa 777 777 777 777 ÿÿÿÿ 014701 aa 777 777 777 777 ÿÿÿÿ 014702 aa 777 777 777 777 ÿÿÿÿ 014703 aa 777 777 777 777 ÿÿÿÿ 014704 aa 777 777 777 777 ÿÿÿÿ 014705 aa 777 777 777 777 ÿÿÿÿ 014706 aa 777 777 777 777 ÿÿÿÿ 014707 aa 777 777 777 777 ÿÿÿÿ 014710 aa 777 777 777 777 ÿÿÿÿ 014711 aa 777 777 777 777 ÿÿÿÿ 014712 aa 777 777 777 777 ÿÿÿÿ 014713 aa 777 777 777 777 ÿÿÿÿ 014714 aa 777 777 777 777 ÿÿÿÿ 014715 aa 777 777 777 777 ÿÿÿÿ 014716 aa 777 777 777 777 ÿÿÿÿ 014717 aa 777 777 777 777 ÿÿÿÿ 014720 aa 777 777 777 777 ÿÿÿÿ 014721 aa 777 777 777 777 ÿÿÿÿ 014722 aa 777 777 777 777 ÿÿÿÿ 014723 aa 777 777 777 777 ÿÿÿÿ 014724 aa 777 777 777 777 ÿÿÿÿ 014725 aa 777 777 777 777 ÿÿÿÿ 014726 aa 777 777 777 777 ÿÿÿÿ 014727 aa 777 777 777 777 ÿÿÿÿ 014730 aa 777 777 777 777 ÿÿÿÿ 014731 aa 777 777 777 777 ÿÿÿÿ 014732 aa 777 777 777 777 ÿÿÿÿ 014733 aa 777 777 777 777 ÿÿÿÿ 014734 aa 777 777 777 777 ÿÿÿÿ 014735 aa 777 777 777 777 ÿÿÿÿ 014736 aa 777 777 777 777 ÿÿÿÿ 014737 aa 777 777 777 777 ÿÿÿÿ 014740 aa 777 777 777 777 ÿÿÿÿ 014741 aa 777 777 777 777 ÿÿÿÿ 014742 aa 777 777 777 777 ÿÿÿÿ 014743 aa 777 777 777 777 ÿÿÿÿ 014744 aa 777 777 777 777 ÿÿÿÿ 014745 aa 777 777 777 777 ÿÿÿÿ 014746 aa 777 777 777 777 ÿÿÿÿ 014747 aa 777 777 777 777 ÿÿÿÿ 014750 aa 777 777 777 777 ÿÿÿÿ 014751 aa 777 777 777 777 ÿÿÿÿ 014752 aa 777 777 777 777 ÿÿÿÿ 014753 aa 777 777 777 777 ÿÿÿÿ 014754 aa 777 777 777 777 ÿÿÿÿ 014755 aa 777 777 777 777 ÿÿÿÿ 014756 aa 777 777 777 777 ÿÿÿÿ 014757 aa 777 777 777 777 ÿÿÿÿ 014760 aa 777 777 777 777 ÿÿÿÿ 014761 aa 777 777 777 777 ÿÿÿÿ 014762 aa 777 777 777 777 ÿÿÿÿ 014763 aa 777 777 777 777 ÿÿÿÿ 014764 aa 777 777 777 777 ÿÿÿÿ 014765 aa 777 777 777 777 ÿÿÿÿ 014766 aa 777 777 777 777 ÿÿÿÿ 014767 aa 777 777 777 777 ÿÿÿÿ 014770 aa 777 777 777 777 ÿÿÿÿ 014771 aa 777 777 777 777 ÿÿÿÿ 014772 aa 777 777 777 777 ÿÿÿÿ 014773 aa 777 777 777 777 ÿÿÿÿ 014774 aa 577777777777 014775 aa 737777777777 014776 aa 000002000000 014777 aa 000000000000 015000 aa 600000000041 015001 aa 000155000000 015002 aa 000004000000 015003 aa 000000000000 015004 aa 600000000041 015005 aa 000745000000 015006 aa 600000000041 015007 aa 000744000000 015010 aa 000002000000 015011 aa 000000000000 015012 aa 600000000041 015013 aa 000745000000 015014 aa 773777777777 015015 aa 757777777777 015016 aa 400777777777 015020 aa 000010000000 015021 aa 000000000000 015022 ta 000142000000 015023 aa 000000000000 015024 aa 600000000041 015025 aa 000744000000 015026 aa 600000000041 015027 aa 000717000000 015030 aa 600000000041 015031 aa 000745000000 015032 aa 000010000000 015033 aa 000000000000 015034 ta 000142000000 015035 aa 000000000000 015036 aa 600000000041 015037 aa 000745000000 015040 aa 600000000041 015041 aa 000744000000 015042 aa 600000000041 015043 aa 000717000000 015044 aa 000010000000 015045 aa 000000000000 015046 ta 000150000000 015047 aa 000000000000 015050 aa 600000000041 015051 aa 000717000000 015052 aa 600000000041 015053 aa 000744000000 015054 aa 600000000041 015055 aa 000745000000 015056 aa 000004000000 015057 aa 000000000000 015060 aa 600000000041 015061 aa 000717000000 015062 aa 600000000041 015063 aa 000744000000 015064 aa 000004000000 015065 aa 000000000000 015066 aa 600000000041 015067 aa 000744000000 015070 aa 600000000041 015071 aa 000717000000 015072 aa 000010000000 015073 aa 000000000000 015074 ta 000142000000 015075 aa 000000000000 015076 aa 600000000041 015077 aa 000745000000 015100 aa 600000000041 015101 aa 000717000000 015102 aa 600000000041 015103 aa 000744000000 015104 aa 000010000000 015105 aa 000000000000 015106 ta 000147000000 015107 aa 000000000000 015110 aa 600000000041 015111 aa 000744000000 015112 aa 600000000041 015113 aa 000717000000 015114 aa 600000000041 015115 aa 000745000000 015116 aa 000010000000 015117 aa 000000000000 015120 ta 000144000000 015121 aa 000000000000 015122 aa 600000000041 015123 aa 000745000000 015124 aa 600000000041 015125 aa 000717000000 015126 aa 600000000041 015127 aa 000744000000 015130 aa 000010000000 015131 aa 000000000000 015132 ta 000160000000 015133 aa 000000000000 015134 aa 600000000041 015135 aa 000744000000 015136 aa 600000000041 015137 aa 000717000000 015140 aa 600000000041 015141 aa 000745000000 015142 aa 000010000000 015143 aa 000000000000 015144 ta 000162000000 015145 aa 000000000000 015146 aa 600000000041 015147 aa 000745000000 015150 aa 600000000041 015151 aa 000717000000 015152 aa 600000000041 015153 aa 000744000000 015154 aa 000010000000 015155 aa 000000000000 015156 ta 000162000000 015157 aa 000000000000 015160 aa 600000000041 015161 aa 000744000000 015162 aa 600000000041 015163 aa 000717000000 015164 aa 600000000041 015165 aa 000745000000 015166 aa 000010000000 015167 aa 000000000000 015170 ta 000155000000 015171 aa 000000000000 015172 aa 600000000041 015173 aa 000745000000 015174 aa 600000000041 015175 aa 000717000000 015176 aa 600000000041 015177 aa 000744000000 015200 aa 000010000000 015201 aa 000000000000 015202 ta 000153000000 015203 aa 000000000000 015204 aa 600000000041 015205 aa 000744000000 015206 aa 600000000041 015207 aa 000717000000 015210 aa 600000000041 015211 aa 000745000000 015212 aa 677777777777 015213 aa 777000777777 015214 aa 000004000000 015215 aa 000000000000 015216 aa 600000000041 015217 aa 000117000000 015220 aa 600000000041 015221 aa 000744000000 015222 aa 000002000000 015223 aa 000000000000 015224 aa 600000000041 015225 aa 000744000000 015226 aa 777777007777 015230 aa 000002000000 015231 aa 000000000000 015232 ta 000155000000 015233 aa 000000000000 015234 aa 000004000000 015235 aa 000000000000 015236 aa 600000000041 015237 aa 000117000000 015240 aa 600000000041 015241 aa 000717000000 015242 aa 000002000000 015243 aa 000000000000 015244 aa 600000000041 015245 aa 000717000000 015246 aa 377777777777 015250 aa 000002000000 015251 aa 000000000000 015252 aa 600000000041 015253 aa 000156000000 000030 aa 146 164 144 137 ftd_ 000031 aa 061 040 040 040 1 000032 aa 015 012 014 000 015254 aa 012000000000 000033 aa 162 141 167 151 rawi 000034 aa 040 040 040 040 000035 aa 145 143 150 157 echo 000036 aa 160 154 145 170 plex 000037 aa 142 162 145 141 brea 000040 aa 153 141 154 154 kall 000041 aa 151 146 154 157 iflo 000042 aa 167 040 040 040 w 000043 aa 157 146 154 157 oflo 000044 aa 167 040 040 040 w 000045 aa 150 156 144 154 hndl 000046 aa 161 165 151 164 quit 000047 aa 154 146 145 143 lfec 000050 aa 150 157 040 040 ho 000051 aa 160 157 154 151 poli 000052 aa 164 145 040 040 te 000053 aa 070 142 151 164 8bit 000054 aa 040 040 040 040 000055 aa 157 144 144 160 oddp 000056 aa 040 040 040 040 000057 aa 156 157 137 157 no_o 000060 aa 165 164 160 040 utp 000062 aa 000000000000 000063 aa 000000000003 000064 aa 000000000000 000065 aa 000000000002 000066 aa 000000000000 000067 aa 000000000001 000070 aa 000000000000 000071 aa 001256512400 000072 aa 000000000000 000073 aa 000003641100 000074 aa 410000000107 000075 aa 524000000136 000076 aa 514000000001 000077 aa 524000000076 000100 aa 524000000006 000101 aa 530000000020 000102 aa 524000000025 000103 aa 604000000011 000104 aa 524000000067 000105 aa 524000000065 000106 aa 524000000062 000107 aa 524000000057 000110 aa 524000000051 000111 aa 524000000050 000112 aa 524000000052 000113 aa 524000000044 000114 aa 524000000046 000115 aa 524000000041 000116 aa 404000000011 000117 aa 524000000035 015256 aa 006010000000 015257 aa 005000000000 000120 aa 604000000007 000121 aa 524000000054 000122 aa 516000000010 000123 aa 524000000056 000124 aa 404000000010 000125 aa 524000000047 000126 aa 516000000002 000127 aa 524000000064 000130 aa 524000000036 000131 aa 604000000014 000132 aa 524000000045 000133 aa 524000000063 000134 aa 524000000132 000135 aa 406000000021 000136 aa 606000000011 000137 aa 524000000040 000140 aa 524000000147 000141 aa 000000000012 000142 aa 000000000007 015260 aa 010000000000 015261 aa 003000000000 000143 aa 167 162 165 000 wru 015263 aa 001 001 000 000  015262 aa 001000000000 015264 aa 002000000000 000144 aa 000000000006 000145 aa 170 062 071 054 x29, 000146 aa 400000000000 015255 aa 000000000000 000147 aa 000000000005 000150 aa 000000000010 000151 aa 000000000020 000152 aa 516000000001 000153 aa 000000000001 000154 aa 526077777777 000155 aa 000000000002 000156 aa 404000000021 000157 aa 514000000110 000160 aa 000000000004 000161 aa 404000000043 000162 aa 000000000003 000163 aa 464000000000 000164 aa 000000000011 000166 aa 122000000000 000167 aa 000000000000 000170 aa 400000000000 000171 aa 000000000000 000172 aa 164 171 155 156 tymn 000173 aa 145 164 000 000 et 000174 aa 164 145 154 145 tele 000175 aa 156 145 164 000 net 000176 aa 144 141 164 141 data 000177 aa 160 141 143 000 pac 000200 aa 141 142 157 162 abor 000201 aa 164 000 000 000 t 000202 aa 130 056 062 065 X.25 000203 aa 072 000 000 000 : 000204 aa 000000000000 000205 aa 000000000000 000206 aa 150 141 156 147 hang 000207 aa 165 160 000 000 up 000210 aa 144 151 141 154 dial 000211 aa 137 157 165 164 _out 000212 aa 154 151 163 164 list 000213 aa 145 156 000 000 en 000214 aa 077777000043 000215 aa 000001000000 000216 aa 151 156 164 145 inte 000217 aa 162 162 165 160 rrup 000220 aa 164 000 000 000 t 000221 aa 167 162 151 164 writ 000222 aa 145 137 163 164 e_st 000223 aa 141 164 165 163 atus 000224 aa 516100000010 000225 aa 000000000001 000226 aa 000000000003 000227 aa 000000000011 000230 aa 143 157 156 156 conn 000231 aa 145 143 164 137 ect_ 000232 aa 162 145 163 160 resp 000233 aa 157 156 163 145 onse 000234 aa 163 145 164 137 set_ 000235 aa 146 162 141 155 fram 000236 aa 151 156 147 137 ing_ 000237 aa 143 150 141 162 char 000240 aa 163 000 000 000 s 000241 aa 147 145 164 137 get_ 000242 aa 156 145 164 167 netw 000243 aa 157 162 153 137 ork_ 000244 aa 151 156 146 157 info 000245 aa 163 000 000 000 s 000246 aa 170 062 065 137 x25_ 000247 aa 155 160 170 050 mpx( 000250 aa 136 141 051 072 ^a): 000251 aa 136 050 040 136 ^( ^ 000252 aa 056 064 142 136 .4b^ 000253 aa 051 000 000 000 ) 000254 aa 151 156 160 165 inpu 000255 aa 164 137 146 154 t_fl 000256 aa 157 167 137 143 ow_c 000257 aa 157 156 164 162 ontr 000260 aa 157 154 137 143 ol_c 000261 aa 150 141 162 163 hars 000262 aa 147 145 164 137 get_ 000263 aa 146 157 162 145 fore 000264 aa 151 147 156 137 ign_ 000265 aa 164 145 162 155 term 000266 aa 151 156 141 154 inal 000267 aa 137 144 141 164 _dat 000270 aa 141 000 000 000 a 000271 aa 157 165 164 160 outp 000272 aa 165 164 137 146 ut_f 000273 aa 154 157 167 137 low_ 000274 aa 143 157 156 164 cont 000275 aa 162 157 154 137 rol_ 000276 aa 143 150 141 162 char 000277 aa 163 000 000 000 s 000300 aa 170 062 065 137 x25_ 000301 aa 155 160 170 050 mpx( 000302 aa 136 141 051 072 ^a): 000303 aa 040 130 056 062 X.2 000304 aa 071 040 105 122 9 ER 000305 aa 122 117 122 040 ROR 000306 aa 136 144 057 136 ^d/^ 000307 aa 144 000 000 000 d 000310 aa 170 062 065 137 x25_ 000311 aa 155 160 170 050 mpx( 000312 aa 136 141 051 072 ^a): 000313 aa 040 104 151 141 Dia 000314 aa 147 156 157 163 gnos 000315 aa 164 151 143 040 tic 000316 aa 164 171 160 145 type 000317 aa 040 136 144 056 ^d. 000320 aa 170 062 065 137 x25_ 000321 aa 155 160 170 050 mpx( 000322 aa 136 141 051 072 ^a): 000323 aa 040 120 141 143 Pac 000324 aa 153 145 164 040 ket 000325 aa 164 157 157 040 too 000326 aa 163 150 157 162 shor 000327 aa 164 056 000 000 t. 000330 aa 170 062 065 137 x25_ 000331 aa 155 160 170 050 mpx( 000332 aa 136 141 051 072 ^a): 000333 aa 040 105 162 162 Err 000334 aa 157 162 040 136 or ^ 000335 aa 167 040 146 162 w fr 000336 aa 157 155 040 167 om w 000337 aa 162 151 164 145 rite 000340 aa 056 000 000 000 . 000341 aa 170 062 065 137 x25_ 000342 aa 155 160 170 050 mpx( 000343 aa 136 141 051 072 ^a): 000344 aa 040 116 157 040 No 000345 aa 142 165 146 146 buff 000346 aa 145 162 163 040 ers 000347 aa 141 166 141 151 avai 000350 aa 154 141 142 154 labl 000351 aa 145 000 000 000 e 000352 aa 170 062 065 137 x25_ 000353 aa 155 160 170 050 mpx( 000354 aa 136 141 051 072 ^a): 000355 aa 040 122 145 163 Res 000356 aa 145 164 040 162 et r 000357 aa 145 143 145 151 ecei 000360 aa 166 145 144 040 ved 000361 aa 136 144 057 136 ^d/^ 000362 aa 144 000 000 000 d 000363 aa 170 062 065 137 x25_ 000364 aa 155 160 170 050 mpx( 000365 aa 136 141 051 072 ^a): 000366 aa 040 103 154 145 Cle 000367 aa 141 162 040 111 ar I 000370 aa 156 144 151 143 ndic 000371 aa 141 164 151 157 atio 000372 aa 156 040 136 144 n ^d 000373 aa 057 136 144 056 /^d. 000374 aa 170 062 065 137 x25_ 000375 aa 155 160 170 050 mpx( 000376 aa 136 141 051 072 ^a): 000377 aa 040 122 145 143 Rec 000400 aa 145 151 166 145 eive 000401 aa 144 040 122 105 d RE 000402 aa 112 040 160 141 J pa 000403 aa 143 153 145 164 cket 000404 aa 056 000 000 000 . 000405 aa 170 062 065 137 x25_ 000406 aa 155 160 170 050 mpx( 000407 aa 136 141 057 136 ^a/^ 000410 aa 144 051 072 040 d): 000411 aa 116 157 040 154 No l 000412 aa 151 163 164 145 iste 000413 aa 156 151 156 147 ning 000414 aa 040 143 150 141 cha 000415 aa 156 156 145 154 nnel 000416 aa 163 056 000 000 s. 000417 aa 170 062 065 137 x25_ 000420 aa 155 160 170 050 mpx( 000421 aa 136 141 051 072 ^a): 000422 aa 040 125 156 145 Une 000423 aa 170 160 145 143 xpec 000424 aa 164 145 144 040 ted 000425 aa 160 141 143 153 pack 000426 aa 145 164 040 164 et t 000427 aa 171 160 145 040 ype 000430 aa 136 056 064 142 ^.4b 000431 aa 170 062 065 137 x25_ 000432 aa 155 160 170 050 mpx( 000433 aa 136 141 051 072 ^a): 000434 aa 040 122 145 163 Res 000435 aa 145 164 040 103 et C 000436 aa 157 156 146 151 onfi 000437 aa 162 155 040 151 rm i 000440 aa 156 040 163 164 n st 000441 aa 141 164 145 040 ate 000442 aa 136 144 056 000 ^d. 000443 aa 170 062 065 137 x25_ 000444 aa 155 160 170 050 mpx( 000445 aa 136 141 051 072 ^a): 000446 aa 040 103 154 145 Cle 000447 aa 141 162 040 103 ar C 000450 aa 157 156 146 151 onfi 000451 aa 162 155 040 151 rm i 000452 aa 156 040 163 164 n st 000453 aa 141 164 145 040 ate 000454 aa 136 144 056 000 ^d. 000455 aa 170 062 065 137 x25_ 000456 aa 155 160 170 050 mpx( 000457 aa 136 141 051 072 ^a): 000460 aa 040 103 141 154 Cal 000461 aa 154 040 103 157 l Co 000462 aa 156 146 151 162 nfir 000463 aa 155 040 151 156 m in 000464 aa 040 163 164 141 sta 000465 aa 164 145 040 136 te ^ 000466 aa 144 056 000 000 d. 000467 aa 170 062 065 137 x25_ 000470 aa 155 160 170 050 mpx( 000471 aa 136 141 051 072 ^a): 000472 aa 040 103 141 154 Cal 000473 aa 154 040 122 145 l Re 000474 aa 161 165 145 163 ques 000475 aa 164 040 151 156 t in 000476 aa 040 163 164 141 sta 000477 aa 164 145 040 136 te ^ 000500 aa 144 056 000 000 d. 000501 aa 170 062 065 137 x25_ 000502 aa 155 160 170 050 mpx( 000503 aa 136 141 051 072 ^a): 000504 aa 040 111 156 166 Inv 000505 aa 141 154 151 144 alid 000506 aa 040 130 056 062 X.2 000507 aa 071 040 143 157 9 co 000510 aa 155 155 141 156 mman 000511 aa 144 040 136 144 d ^d 000512 aa 056 000 000 000 . 000513 aa 170 062 065 137 x25_ 000514 aa 155 160 170 050 mpx( 000515 aa 136 141 051 072 ^a): 000516 aa 040 111 156 166 Inv 000517 aa 141 154 151 144 alid 000520 aa 040 143 150 141 cha 000521 aa 156 156 145 154 nnel 000522 aa 040 156 165 155 num 000523 aa 142 145 162 040 ber 000524 aa 136 144 056 000 ^d. 000525 aa 170 062 065 137 x25_ 000526 aa 155 160 170 050 mpx( 000527 aa 136 141 057 136 ^a/^ 000530 aa 144 051 072 040 d): 000531 aa 124 151 155 145 Time 000532 aa 040 157 165 164 out 000533 aa 040 151 156 040 in 000534 aa 163 164 141 164 stat 000535 aa 145 040 136 144 e ^d 000536 aa 056 000 000 000 . 000537 aa 170 062 065 137 x25_ 000540 aa 155 160 170 050 mpx( 000541 aa 136 141 051 072 ^a): 000542 aa 040 120 141 143 Pac 000543 aa 153 145 164 040 ket 000544 aa 136 133 157 165 ^[ou 000545 aa 164 136 073 151 t^;i 000546 aa 156 136 135 072 n^]: 000547 aa 136 166 050 040 ^v( 000550 aa 136 056 064 142 ^.4b 000551 aa 136 051 000 000 ^) 000552 aa 170 062 065 137 x25_ 000553 aa 155 160 170 050 mpx( 000554 aa 136 141 057 136 ^a/^ 000555 aa 144 051 072 040 d): 000556 aa 116 157 040 154 No l 000557 aa 151 163 164 145 iste 000560 aa 156 151 156 147 ning 000561 aa 040 111 123 117 ISO 000562 aa 137 143 150 141 _cha 000563 aa 156 156 145 154 nnel 000564 aa 163 056 000 000 s. 000565 aa 170 062 065 137 x25_ 000566 aa 155 160 170 050 mpx( 000567 aa 136 141 057 136 ^a/^ 000570 aa 144 051 072 040 d): 000571 aa 103 141 154 154 Call 000572 aa 040 122 145 161 Req 000573 aa 165 145 163 164 uest 000574 aa 040 151 156 040 in 000575 aa 163 164 141 164 stat 000576 aa 145 040 136 144 e ^d 000577 aa 056 000 000 000 . 000600 aa 170 062 065 137 x25_ 000601 aa 155 160 170 050 mpx( 000602 aa 136 141 051 072 ^a): 000603 aa 040 125 156 145 Une 000604 aa 170 160 145 143 xpec 000605 aa 164 145 144 040 ted 000606 aa 111 156 164 145 Inte 000607 aa 162 162 165 160 rrup 000610 aa 164 040 103 157 t Co 000611 aa 156 146 151 162 nfir 000612 aa 155 056 000 000 m. 000613 aa 170 062 065 137 x25_ 000614 aa 155 160 170 050 mpx( 000615 aa 136 141 051 072 ^a): 000616 aa 040 123 145 161 Seq 000617 aa 165 145 156 143 uenc 000620 aa 145 040 145 162 e er 000621 aa 162 157 162 040 ror 000622 aa 120 050 123 051 P(S) 000623 aa 075 136 144 040 =^d 000624 aa 126 050 122 051 V(R) 000625 aa 075 136 144 056 =^d. 000626 aa 170 062 065 137 x25_ 000627 aa 155 160 170 050 mpx( 000630 aa 136 141 057 136 ^a/^ 000631 aa 144 051 072 040 d): 000632 aa 116 157 040 154 No l 000633 aa 151 163 164 145 iste 000634 aa 156 151 156 147 ning 000635 aa 040 143 150 141 cha 000636 aa 156 156 145 154 nnel 000637 aa 163 056 040 054 s. , 000640 aa 040 163 143 170 scx 000641 aa 075 136 144 000 =^d 000642 aa 170 062 065 137 x25_ 000643 aa 155 160 170 050 mpx( 000644 aa 136 141 051 072 ^a): 000645 aa 040 104 141 164 Dat 000646 aa 141 040 160 141 a pa 000647 aa 143 153 145 164 cket 000650 aa 040 162 145 143 rec 000651 aa 145 151 166 145 eive 000652 aa 144 040 151 156 d in 000653 aa 040 163 164 141 sta 000654 aa 164 145 040 136 te ^ 000655 aa 144 056 000 000 d. 000656 aa 170 062 065 137 x25_ 000657 aa 155 160 170 050 mpx( 000660 aa 136 141 051 072 ^a): 000661 aa 040 111 156 166 Inv 000662 aa 141 154 151 144 alid 000663 aa 040 160 141 143 pac 000664 aa 153 145 164 040 ket 000665 aa 164 171 160 145 type 000666 aa 040 136 056 064 ^.4 000667 aa 142 040 157 156 b on 000670 aa 040 114 103 040 LC 000671 aa 060 056 000 000 0. 000672 aa 170 062 065 137 x25_ 000673 aa 155 160 170 050 mpx( 000674 aa 136 141 057 136 ^a/^ 000675 aa 144 051 072 040 d): 000676 aa 103 154 145 141 Clea 000677 aa 162 040 111 156 r In 000700 aa 144 151 143 141 dica 000701 aa 164 151 157 156 tion 000702 aa 040 136 144 057 ^d/ 000703 aa 136 144 040 157 ^d o 000704 aa 156 040 151 144 n id 000705 aa 154 145 040 126 le V 000706 aa 103 056 000 000 C. 000707 aa 170 062 065 137 x25_ 000710 aa 155 160 170 050 mpx( 000711 aa 136 141 051 072 ^a): 000712 aa 040 125 156 162 Unr 000713 aa 145 143 157 147 ecog 000714 aa 156 151 172 145 nize 000715 aa 144 040 147 145 d ge 000716 aa 156 145 162 141 nera 000717 aa 154 040 146 157 l fo 000720 aa 162 155 141 164 rmat 000721 aa 040 111 104 040 ID 000722 aa 136 142 136 142 ^b^b 000723 aa 136 062 142 056 ^2b. 000724 aa 170 062 065 137 x25_ 000725 aa 155 160 170 050 mpx( 000726 aa 136 141 051 072 ^a): 000727 aa 040 125 156 145 Une 000730 aa 170 160 145 143 xpec 000731 aa 164 145 144 040 ted 000732 aa 151 156 164 145 inte 000733 aa 162 162 165 160 rrup 000734 aa 164 040 136 144 t ^d 000735 aa 040 136 056 063 ^.3 000736 aa 142 040 162 145 b re 000737 aa 143 145 151 166 ceiv 000740 aa 145 144 056 000 ed. 000741 aa 170 062 065 137 x25_ 000742 aa 155 160 170 050 mpx( 000743 aa 136 141 057 136 ^a/^ 000744 aa 144 051 073 040 d); 000745 aa 125 156 145 170 Unex 000746 aa 160 145 143 164 pect 000747 aa 145 144 040 160 ed p 000750 aa 141 143 153 145 acke 000751 aa 164 040 164 171 t ty 000752 aa 160 145 040 136 pe ^ 000753 aa 056 064 142 040 .4b 000754 aa 157 156 040 151 on i 000755 aa 144 154 145 040 dle 000756 aa 126 103 056 000 VC. 000757 aa 170 062 065 137 x25_ 000760 aa 155 160 170 050 mpx( 000761 aa 136 141 057 136 ^a/^ 000762 aa 144 051 072 040 d): 000763 aa 103 154 145 141 Clea 000764 aa 162 040 103 157 r Co 000765 aa 156 146 151 162 nfir 000766 aa 155 040 151 156 m in 000767 aa 040 163 164 141 sta 000770 aa 164 145 040 136 te ^ 000771 aa 144 040 157 156 d on 000772 aa 040 151 144 154 idl 000773 aa 145 040 126 103 e VC 000774 aa 056 000 000 000 . 000775 aa 170 062 065 137 x25_ 000776 aa 155 160 170 050 mpx( 000777 aa 136 141 051 072 ^a): 001000 aa 040 104 141 164 Dat 001001 aa 141 040 157 162 a or 001002 aa 040 146 154 157 flo 001003 aa 167 040 143 157 w co 001004 aa 156 164 162 157 ntro 001005 aa 154 040 160 141 l pa 001006 aa 143 153 145 164 cket 001007 aa 040 162 145 143 rec 001010 aa 145 151 166 145 eive 001011 aa 144 040 151 156 d in 001012 aa 040 163 164 141 sta 001013 aa 164 145 040 136 te ^ 001014 aa 144 056 000 000 d. 001015 aa 170 062 065 137 x25_ 001016 aa 155 160 170 050 mpx( 001017 aa 136 141 051 072 ^a): 001020 aa 040 114 151 156 Lin 001021 aa 153 040 144 151 k di 001022 aa 163 143 157 156 scon 001023 aa 156 145 143 164 nect 001024 aa 145 144 040 144 ed d 001025 aa 165 145 040 164 ue t 001026 aa 157 040 155 151 o mi 001027 aa 163 055 155 141 s-ma 001030 aa 164 143 150 145 tche 001031 aa 144 040 146 162 d fr 001032 aa 141 155 145 040 ame 001033 aa 163 151 172 145 size 001034 aa 163 056 040 103 s. C 001035 aa 115 104 122 057 MDR/ 001036 aa 106 122 115 122 FRMR 001037 aa 040 146 162 141 fra 001040 aa 155 145 072 040 me: 001041 aa 136 050 040 136 ^( ^ 001042 aa 056 064 142 136 .4b^ 001043 aa 051 056 000 000 ). 001044 aa 170 062 065 137 x25_ 001045 aa 155 160 170 050 mpx( 001046 aa 136 141 051 072 ^a): 001047 aa 040 123 145 161 Seq 001050 aa 165 145 156 143 uenc 001051 aa 145 040 145 162 e er 001052 aa 162 157 162 072 ror: 001053 aa 040 040 120 050 P( 001054 aa 122 051 040 050 R) ( 001055 aa 075 040 136 144 = ^d 001056 aa 051 040 151 163 ) is 001057 aa 040 156 157 164 not 001060 aa 040 142 145 164 bet 001061 aa 167 145 145 156 ween 001062 aa 040 160 162 145 pre 001063 aa 166 151 157 165 viou 001064 aa 163 040 120 050 s P( 001065 aa 122 051 040 050 R) ( 001066 aa 075 040 136 144 = ^d 001067 aa 051 040 141 156 ) an 001070 aa 144 040 126 050 d V( 001071 aa 123 051 040 050 S) ( 001072 aa 075 040 136 144 = ^d 001073 aa 051 056 000 000 ). 001074 aa 170 062 065 137 x25_ 001075 aa 155 160 170 050 mpx( 001076 aa 136 141 051 072 ^a): 001077 aa 040 106 141 151 Fai 001100 aa 154 165 162 145 lure 001101 aa 054 040 114 151 , Li 001102 aa 156 153 040 163 nk s 001103 aa 164 141 164 145 tate 001104 aa 072 040 136 144 : ^d 001105 aa 054 040 103 165 , Cu 001106 aa 162 162 145 156 rren 001107 aa 164 040 141 143 t ac 001110 aa 164 151 157 156 tion 001111 aa 072 040 136 144 : ^d 001112 aa 054 040 151 156 , in 001113 aa 040 136 144 054 ^d, 001114 aa 040 120 162 151 Pri 001115 aa 155 141 162 171 mary 001116 aa 040 163 164 141 sta 001117 aa 164 145 072 040 te: 001120 aa 136 144 054 040 ^d, 001121 aa 123 145 143 157 Seco 001122 aa 156 144 141 162 ndar 001123 aa 171 040 163 164 y st 001124 aa 141 164 145 072 ate: 001125 aa 040 136 144 000 ^d LABEL ARRAYS 000000 aa 004056 7100 04 tra 2094,ic 004056 000001 aa 004073 7100 04 tra 2107,ic 004074 000002 aa 004116 7100 04 tra 2126,ic 004120 000003 aa 004246 7100 04 tra 2214,ic 004251 000004 aa 004302 7100 04 tra 2242,ic 004306 000005 aa 004542 7100 04 tra 2402,ic 004547 000006 aa 004333 7100 04 tra 2267,ic 004341 000007 aa 004332 7100 04 tra 2266,ic 004341 000010 aa 004116 7100 04 tra 2126,ic 004126 000011 aa 004275 7100 04 tra 2237,ic 004306 000012 aa 004274 7100 04 tra 2236,ic 004306 000013 aa 004326 7100 04 tra 2262,ic 004341 000014 aa 004325 7100 04 tra 2261,ic 004341 000015 aa 004324 7100 04 tra 2260,ic 004341 000016 aa 004352 7100 04 tra 2282,ic 004370 000017 aa 004322 7100 04 tra 2258,ic 004341 000020 aa 004322 7100 04 tra 2258,ic 004342 000021 aa 005451 7100 04 tra 2857,ic 005472 000022 aa 005516 7100 04 tra 2894,ic 005540 000023 aa 005522 7100 04 tra 2898,ic 005545 000024 aa 005530 7100 04 tra 2904,ic 005554 000025 aa 005577 7100 04 tra 2943,ic 005624 000026 aa 005605 7100 04 tra 2949,ic 005633 000027 aa 005655 7100 04 tra 2989,ic 005704 BEGIN PROCEDURE x25_mpx ENTRY TO x25_mpx STATEMENT 1 ON LINE 22 x25_mpx: procedure; 001126 da 000330200000 001127 aa 002140 6270 00 eax7 1120 001130 aa 7 00034 3521 20 epp2 pr7|28,* 001131 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 001132 aa 000000000000 001133 aa 000000000000 STATEMENT 1 ON LINE 261 control: entry (X25_data_ptr, X25_scx, x25_order, x25_infop, x25_code); 001134 aa 000024 7100 04 tra 20,ic 001160 ENTRY TO control STATEMENT 1 ON LINE 261 control: entry (X25_data_ptr, X25_scx, x25_order, x25_infop, x25_code); 001135 at 000005000163 001136 tt 000156000154 001137 tt 000163000161 001140 ta 001135000000 001141 da 000333300000 001142 aa 002140 6270 00 eax7 1120 001143 aa 7 00034 3521 20 epp2 pr7|28,* 001144 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 001145 aa 000012000000 001146 aa 000000000000 001147 aa 6 00042 3735 20 epp7 pr6|34,* 001150 aa 7 00004 2361 20 ldq pr7|4,* 001151 aa 000002 6040 04 tmi 2,ic 001153 001152 aa 777777 3760 07 anq 262143,dl 001153 aa 0 00250 3761 00 anq pr0|168 = 000077777777 001154 aa 6 00716 7561 00 stq pr6|462 001155 aa 6 00032 3715 20 epp5 pr6|26,* 001156 aa 5 00012 3535 20 epp3 pr5|10,* 001157 aa 6 00264 2535 00 spri3 pr6|180 STATEMENT 1 ON LINE 264 call setup_subchan; 001160 aa 012270 6700 04 tsp4 5304,ic 013450 STATEMENT 1 ON LINE 265 order = x25_order; 001161 aa 6 00032 3735 20 epp7 pr6|26,* 001162 aa 7 00006 3715 20 epp5 pr7|6,* 001163 aa 6 00716 2351 00 lda pr6|462 001164 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 001165 aa 5 00000 00 0005 desc9a pr5|0,al x25_order 001166 aa 6 00134 00 0040 desc9a pr6|92,32 order STATEMENT 1 ON LINE 266 infop = x25_infop; 001167 aa 7 00010 3535 20 epp3 pr7|8,* x25_infop 001170 aa 3 00000 3535 20 epp3 pr3|0,* x25_infop 001171 aa 6 00124 2535 00 spri3 pr6|84 infop STATEMENT 1 ON LINE 267 pinfop = infop; 001172 aa 6 00202 2535 00 spri3 pr6|130 pinfop STATEMENT 1 ON LINE 268 x25_code = 0; 001173 aa 6 00264 4501 20 stz pr6|180,* x25_code STATEMENT 1 ON LINE 270 protocol_mpx = get_protocol_sc (); 001174 aa 014054 3520 04 epp2 6188,ic 015250 = 000002000000 001175 aa 013054 6700 04 tsp4 5676,ic 014251 STATEMENT 1 ON LINE 272 if xlcep = null () /* do we have a connection? */ then if /* case */ order = "listen" then do; 001176 aa 6 00170 2371 00 ldaq pr6|120 xlcep 001177 aa 777015 6770 04 eraq -499,ic 000214 = 077777000043 000001000000 001200 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001201 aa 000630 6010 04 tnz 408,ic 002031 001202 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 001203 aa 6 00134 00 0040 desc9a pr6|92,32 order 001204 aa 777010 00 0006 desc9a -504,6 000212 = 154151163164 001205 aa 000005 6010 04 tnz 5,ic 001212 STATEMENT 1 ON LINE 274 xsce.state = SC_LISTENING; 001206 aa 000001 2360 07 ldq 1,dl 001207 aa 6 00172 3735 20 epp7 pr6|122,* xscep 001210 aa 7 00012 7561 00 stq pr7|10 xsce.state STATEMENT 1 ON LINE 275 end; 001211 aa 001547 7100 04 tra 871,ic 002760 STATEMENT 1 ON LINE 277 else if order = "dial_out" then do; 001212 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 001213 aa 6 00134 00 0040 desc9a pr6|92,32 order 001214 aa 776776 00 0010 desc9a -514,8 000210 = 144151141154 001215 aa 000560 6010 04 tnz 368,ic 001775 STATEMENT 1 ON LINE 278 if x25_data.lc_ptr = null () then do; 001216 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 001217 aa 7 00032 2371 00 ldaq pr7|26 x25_data.lc_ptr 001220 aa 776774 6770 04 eraq -516,ic 000214 = 077777000043 000001000000 001221 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001222 aa 000005 6010 04 tnz 5,ic 001227 STATEMENT 1 ON LINE 279 x25_code = et_invalid_state; 001223 aa 6 00044 3701 20 epp4 pr6|36,* 001224 ia 4 00013 2361 00 ldq pr4|11 et_invalid_state 001225 aa 6 00264 7561 20 stq pr6|180,* x25_code STATEMENT 1 ON LINE 280 return; 001226 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 281 end; STATEMENT 1 ON LINE 282 do lcx = x25_data.n_lc by -1 to 1 + x25_data.n_pvc while (x25_lces.lc (lcx).state ^= READY); 001227 aa 000001 2360 07 ldq 1,dl 001230 aa 7 00014 0761 00 adq pr7|12 x25_data.n_pvc 001231 aa 6 00266 7561 00 stq pr6|182 001232 aa 7 00012 2361 00 ldq pr7|10 x25_data.n_lc 001233 aa 6 00117 7561 00 stq pr6|79 lcx 001234 aa 6 00117 2361 00 ldq pr6|79 lcx 001235 aa 6 00266 1161 00 cmpq pr6|182 001236 aa 000012 6040 04 tmi 10,ic 001250 001237 aa 000005 7360 00 qls 5 001240 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 001241 aa 7 00032 3715 20 epp5 pr7|26,* x25_data.lc_ptr 001242 aa 5 77740 2361 06 ldq pr5|-32,ql x25_lces.state 001243 aa 000001 1160 07 cmpq 1,dl 001244 aa 000004 6000 04 tze 4,ic 001250 STATEMENT 1 ON LINE 284 end; 001245 aa 000001 3360 07 lcq 1,dl 001246 aa 6 00117 0561 00 asq pr6|79 lcx 001247 aa 777765 7100 04 tra -11,ic 001234 STATEMENT 1 ON LINE 285 if lcx < 1 then do; 001250 aa 6 00117 2361 00 ldq pr6|79 lcx 001251 aa 000001 1160 07 cmpq 1,dl 001252 aa 000005 6050 04 tpl 5,ic 001257 STATEMENT 1 ON LINE 286 x25_code = et_resource_unavailable; 001253 aa 6 00044 3701 20 epp4 pr6|36,* 001254 ia 4 00015 2361 00 ldq pr4|13 et_resource_unavailable 001255 aa 6 00264 7561 20 stq pr6|180,* x25_code STATEMENT 1 ON LINE 287 return; 001256 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 288 end; STATEMENT 1 ON LINE 289 xlcep = addr (x25_lces.lc (lcx)); 001257 aa 000005 7360 00 qls 5 001260 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 001261 aa 7 00032 3715 20 epp5 pr7|26,* x25_data.lc_ptr 001262 aa 5 77740 3735 06 epp7 pr5|-32,ql x25_lces.lc 001263 aa 6 00170 6535 00 spri7 pr6|120 xlcep STATEMENT 1 ON LINE 290 xlce.flags.originate = "1"b; 001264 aa 010000 2350 03 lda 4096,du 001265 aa 7 00005 2551 00 orsa pr7|5 xlce.originate STATEMENT 1 ON LINE 292 if (^protocol_mpx & length (dial_out_info) > 0) then do; 001266 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 001267 aa 400000 3150 03 cana 131072,du 001270 aa 000135 6010 04 tnz 93,ic 001425 001271 aa 6 00124 2361 20 ldq pr6|84,* dial_out_info 001272 aa 000133 6044 04 tmoz 91,ic 001425 STATEMENT 1 ON LINE 293 xlce.call_data = after (dial_out_info, ":"); 001273 aa 6 00124 3535 20 epp3 pr6|84,* infop 001274 aa 3 00000 7271 00 lxl7 pr3|0 dial_out_info 001275 aa 000 003 124 540 scm (pr,rl),(du),mask(000) 001276 aa 3 00001 00 0017 desc9a pr3|1,x7 dial_out_info 001277 aa 072000 00 0001 desc9a 29696,1 001300 aa 6 00056 0001 00 arg pr6|46 001301 aa 6 00056 2361 00 ldq pr6|46 001302 aa 000002 6064 04 ttn 2,ic 001304 001303 aa 000001 0760 07 adq 1,dl 001304 aa 6 00717 7561 00 stq pr6|463 001305 aa 3 00000 2361 00 ldq pr3|0 dial_out_info 001306 aa 6 00717 1761 00 sbq pr6|463 001307 aa 000020 1160 07 cmpq 16,dl 001310 aa 000002 6040 04 tmi 2,ic 001312 001311 aa 000020 2360 07 ldq 16,dl 001312 aa 6 00717 2351 00 lda pr6|463 001313 aa 7 00025 7561 00 stq pr7|21 xlce.call_data 001314 aa 040 140 100 545 mlr (pr,rl,al),(pr,rl),fill(040) 001315 aa 3 00001 00 0006 desc9a pr3|1,ql dial_out_info 001316 aa 7 00026 00 0006 desc9a pr7|22,ql xlce.call_data STATEMENT 1 ON LINE 294 xlce.baud_rate = x25_data.dialup_info.baud_rate; 001317 aa 6 00166 3515 20 epp1 pr6|118,* x25_data_ptr 001320 aa 1 00030 2361 00 ldq pr1|24 x25_data.baud_rate 001321 aa 0 00374 3771 00 anaq pr0|252 = 000000000000 000000777777 001322 aa 7 00004 7561 00 stq pr7|4 xlce.baud_rate STATEMENT 1 ON LINE 296 xlce.flags.collect_call = x25_data.flags.out_calls_collect; 001323 aa 1 00015 2351 00 lda pr1|13 x25_data.out_calls_collect 001324 aa 000003 7710 00 arl 3 001325 aa 7 00005 6751 00 era pr7|5 xlce.collect_call 001326 aa 002000 3750 03 ana 1024,du 001327 aa 7 00005 6551 00 ersa pr7|5 xlce.collect_call STATEMENT 1 ON LINE 298 if substr (before (dial_out_info, ":"), 1, 4) = "x29," then do; 001330 aa 3 00001 2351 00 lda pr3|1 dial_out_info 001331 aa 776614 1150 04 cmpa -628,ic 000145 = 170062071054 001332 aa 000022 6010 04 tnz 18,ic 001354 STATEMENT 1 ON LINE 300 xlce.his_address = substr (before (dial_out_info, ":"), 5); 001333 aa 3 00000 7271 00 lxl7 pr3|0 dial_out_info 001334 aa 000 003 124 540 scm (pr,rl),(du),mask(000) 001335 aa 3 00001 00 0017 desc9a pr3|1,x7 dial_out_info 001336 aa 072000 00 0001 desc9a 29696,1 001337 aa 6 00056 0001 00 arg pr6|46 001340 aa 6 00056 2361 00 ldq pr6|46 001341 aa 000004 1760 07 sbq 4,dl 001342 aa 000017 1160 07 cmpq 15,dl 001343 aa 000002 6040 04 tmi 2,ic 001345 001344 aa 000017 2360 07 ldq 15,dl 001345 aa 7 00020 7561 00 stq pr7|16 xlce.his_address 001346 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 001347 aa 3 00002 00 0006 desc9a pr3|2,ql dial_out_info 001350 aa 7 00021 00 0006 desc9a pr7|17,ql xlce.his_address STATEMENT 1 ON LINE 301 xlce.flags.iti_call = "1"b; 001351 aa 400000 2350 03 lda 131072,du 001352 aa 7 00005 2551 00 orsa pr7|5 xlce.iti_call STATEMENT 1 ON LINE 302 end; 001353 aa 000105 7100 04 tra 69,ic 001460 STATEMENT 1 ON LINE 304 else if substr (before (dial_out_info, ":"), 1, 1) = "*" then do; 001354 aa 3 00001 2351 00 lda pr3|1 dial_out_info 001355 aa 0 00022 3771 00 anaq pr0|18 = 777000000000 000000000000 001356 aa 052000 1150 03 cmpa 21504,du 001357 aa 000022 6010 04 tnz 18,ic 001401 STATEMENT 1 ON LINE 306 xlce.his_address = substr (before (dial_out_info, ":"), 2); 001360 aa 3 00000 7271 00 lxl7 pr3|0 dial_out_info 001361 aa 000 003 124 540 scm (pr,rl),(du),mask(000) 001362 aa 3 00001 00 0017 desc9a pr3|1,x7 dial_out_info 001363 aa 072000 00 0001 desc9a 29696,1 001364 aa 6 00056 0001 00 arg pr6|46 001365 aa 6 00056 2361 00 ldq pr6|46 001366 aa 000001 1760 07 sbq 1,dl 001367 aa 000017 1160 07 cmpq 15,dl 001370 aa 000002 6040 04 tmi 2,ic 001372 001371 aa 000017 2360 07 ldq 15,dl 001372 aa 7 00020 7561 00 stq pr7|16 xlce.his_address 001373 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 001374 aa 3 00001 20 0006 desc9a pr3|1(1),ql dial_out_info 001375 aa 7 00021 00 0006 desc9a pr7|17,ql xlce.his_address STATEMENT 1 ON LINE 307 xlce.flags.iti_call = "1"b; 001376 aa 400000 2350 03 lda 131072,du 001377 aa 7 00005 2551 00 orsa pr7|5 xlce.iti_call STATEMENT 1 ON LINE 308 end; 001400 aa 000060 7100 04 tra 48,ic 001460 STATEMENT 1 ON LINE 310 else do; STATEMENT 1 ON LINE 311 xlce.his_address = before (dial_out_info, ":"); 001401 aa 3 00000 7271 00 lxl7 pr3|0 dial_out_info 001402 aa 000 003 124 540 scm (pr,rl),(du),mask(000) 001403 aa 3 00001 00 0017 desc9a pr3|1,x7 dial_out_info 001404 aa 072000 00 0001 desc9a 29696,1 001405 aa 6 00056 0001 00 arg pr6|46 001406 aa 6 00056 2361 00 ldq pr6|46 001407 aa 000017 1160 07 cmpq 15,dl 001410 aa 000002 6040 04 tmi 2,ic 001412 001411 aa 000017 2360 07 ldq 15,dl 001412 aa 7 00020 7561 00 stq pr7|16 xlce.his_address 001413 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 001414 aa 3 00001 00 0006 desc9a pr3|1,ql dial_out_info 001415 aa 7 00021 00 0006 desc9a pr7|17,ql xlce.his_address STATEMENT 1 ON LINE 312 xlce.flags.iti_call = "0"b; 001416 aa 013630 2350 04 lda 6040,ic 015246 = 377777777777 001417 aa 7 00005 3551 00 ansa pr7|5 xlce.iti_call STATEMENT 1 ON LINE 313 call get_buffer (16); 001420 aa 000020 2360 07 ldq 16,dl 001421 aa 6 00717 7561 00 stq pr6|463 001422 aa 013620 3520 04 epp2 6032,ic 015242 = 000002000000 001423 aa 007523 6700 04 tsp4 3923,ic 011146 STATEMENT 1 ON LINE 314 end; STATEMENT 1 ON LINE 315 end; 001424 aa 000034 7100 04 tra 28,ic 001460 STATEMENT 1 ON LINE 321 else if (length (dial_out_info) = 0) then do; 001425 aa 6 00124 2361 20 ldq pr6|84,* dial_out_info 001426 aa 000032 6010 04 tnz 26,ic 001460 STATEMENT 1 ON LINE 325 xlce.baud_rate = DEFAULT_BAUD; 001427 aa 002260 2360 07 ldq 1200,dl 001430 aa 7 00004 7561 00 stq pr7|4 xlce.baud_rate STATEMENT 1 ON LINE 326 xlce.call_data = NCON_REQ_info.data; 001431 aa 6 00202 3535 20 epp3 pr6|130,* pinfop 001432 aa 3 00020 2361 00 ldq pr3|16 NCON_REQ_info.data 001433 aa 000020 1160 07 cmpq 16,dl 001434 aa 000002 6040 04 tmi 2,ic 001436 001435 aa 000020 2360 07 ldq 16,dl 001436 aa 7 00025 7561 00 stq pr7|21 xlce.call_data 001437 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 001440 aa 3 00021 00 0006 desc9a pr3|17,ql NCON_REQ_info.data 001441 aa 7 00026 00 0006 desc9a pr7|22,ql xlce.call_data STATEMENT 1 ON LINE 328 xlce.his_address = NCON_REQ_info.to_address; 001442 aa 3 00006 2361 00 ldq pr3|6 NCON_REQ_info.to_address 001443 aa 7 00020 7561 00 stq pr7|16 xlce.his_address 001444 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 001445 aa 3 00007 00 0006 desc9a pr3|7,ql NCON_REQ_info.to_address 001446 aa 7 00021 00 0006 desc9a pr7|17,ql xlce.his_address STATEMENT 1 ON LINE 329 xlce.flags.iti_call = "0"b; 001447 aa 013577 2350 04 lda 6015,ic 015246 = 377777777777 001450 aa 7 00005 3551 00 ansa pr7|5 xlce.iti_call STATEMENT 1 ON LINE 330 xsce.trans_table_ptr = null (); 001451 aa 776543 2370 04 ldaq -669,ic 000214 = 077777000043 000001000000 001452 aa 6 00172 3515 20 epp1 pr6|122,* xscep 001453 aa 1 00024 7571 00 staq pr1|20 xsce.trans_table_ptr STATEMENT 1 ON LINE 331 call get_buffer (32); 001454 aa 000040 2360 07 ldq 32,dl 001455 aa 6 00717 7561 00 stq pr6|463 001456 aa 013564 3520 04 epp2 6004,ic 015242 = 000002000000 001457 aa 007467 6700 04 tsp4 3895,ic 011146 STATEMENT 1 ON LINE 332 end; STATEMENT 1 ON LINE 333 if xlce.flags.iti_call then do; 001460 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 001461 aa 7 00005 2351 00 lda pr7|5 xlce.iti_call 001462 aa 400000 3150 03 cana 131072,du 001463 aa 000007 6000 04 tze 7,ic 001472 STATEMENT 1 ON LINE 334 xlce.iti_params (13) = 4; 001464 aa 004000 2350 03 lda 2048,du 001465 aa 7 00035 5511 40 stba pr7|29,40 xlce.iti_params STATEMENT 1 ON LINE 335 call get_buffer (16); 001466 aa 000020 2360 07 ldq 16,dl 001467 aa 6 00717 7561 00 stq pr6|463 001470 aa 013552 3520 04 epp2 5994,ic 015242 = 000002000000 001471 aa 007455 6700 04 tsp4 3885,ic 011146 STATEMENT 1 ON LINE 336 end; STATEMENT 1 ON LINE 338 call make_header (lcx, "0"b); 001472 aa 000000 2350 07 lda 0,dl 001473 aa 6 00717 7551 00 sta pr6|463 001474 aa 013540 3520 04 epp2 5984,ic 015234 = 000004000000 001475 aa 007636 6700 04 tsp4 3998,ic 011333 STATEMENT 1 ON LINE 339 x25_pkt.type = CALLRQ; 001476 aa 013000 2350 03 lda 5632,du 001477 aa 6 00262 3735 20 epp7 pr6|178,* blockp 001500 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 001501 aa 377000 3750 03 ana 130560,du 001502 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 340 if ^x25_data.flags.no_d then x25_pkt.l3_header.d = "1"b; 001503 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 001504 aa 5 00015 2351 00 lda pr5|13 x25_data.no_d 001505 aa 040000 3150 03 cana 16384,du 001506 aa 000003 6010 04 tnz 3,ic 001511 001507 aa 100000 2350 07 lda 32768,dl 001510 aa 7 00001 2551 00 orsa pr7|1 x25_pkt.d STATEMENT 1 ON LINE 341 calling_dte_addr_length = length (x25_data.my_address); 001511 aa 5 00044 2361 00 ldq pr5|36 x25_data.my_address 001512 aa 6 00111 7561 00 stq pr6|73 calling_dte_addr_length STATEMENT 1 ON LINE 342 called_dte_addr_length = length (xlce.his_address); 001513 aa 6 00170 3535 20 epp3 pr6|120,* xlcep 001514 aa 3 00020 2361 00 ldq pr3|16 xlce.his_address 001515 aa 6 00110 7561 00 stq pr6|72 called_dte_addr_length STATEMENT 1 ON LINE 343 x25_pkt.no_fc_data (1) = "0"b || bit (calling_dte_addr_length) || bit (called_dte_addr_length); 001516 aa 6 00111 2351 00 lda pr6|73 calling_dte_addr_length 001517 aa 000040 7350 00 als 32 001520 aa 000001 7710 00 arl 1 001521 aa 6 00717 7551 00 sta pr6|463 001522 aa 6 00110 2351 00 lda pr6|72 called_dte_addr_length 001523 aa 000040 7350 00 als 32 001524 aa 000005 7710 00 arl 5 001525 aa 6 00717 2751 00 ora pr6|463 001526 aa 000011 7710 00 arl 9 001527 aa 7 00002 5511 20 stba pr7|2,20 x25_pkt.no_fc_data STATEMENT 1 ON LINE 344 facility_disp = 2 + divide (called_dte_addr_length + calling_dte_addr_length + 1, 2, 17, 0); 001530 aa 6 00111 0761 00 adq pr6|73 calling_dte_addr_length 001531 aa 000001 0760 07 adq 1,dl 001532 aa 000002 5060 07 div 2,dl 001533 aa 000002 0760 07 adq 2,dl 001534 aa 6 00112 7561 00 stq pr6|74 facility_disp STATEMENT 1 ON LINE 346 addr_string = xlce.his_address || x25_data.my_address; 001535 aa 3 00020 2361 00 ldq pr3|16 xlce.his_address 001536 aa 5 00044 0761 00 adq pr5|36 x25_data.my_address 001537 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 001540 aa 3 00020 7271 00 lxl7 pr3|16 xlce.his_address 001541 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 001542 aa 3 00021 00 0017 desc9a pr3|17,x7 xlce.his_address 001543 aa 2 00000 00 0017 desc9a pr2|0,x7 001544 aa 3 00020 7271 00 lxl7 pr3|16 xlce.his_address 001545 aa 5 00044 7261 00 lxl6 pr5|36 x25_data.my_address 001546 aa 040 157 100 540 mlr (pr,rl),(pr,rl,x7),fill(040) 001547 aa 5 00045 00 0016 desc9a pr5|37,x6 x25_data.my_address 001550 aa 2 00000 00 0016 desc9a pr2|0,x6 001551 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 001552 aa 2 00000 00 0006 desc9a pr2|0,ql 001553 aa 6 00144 00 0036 desc9a pr6|100,30 addr_string STATEMENT 1 ON LINE 347 do i = 2 to facility_disp - 1; 001554 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 001555 aa 6 00112 2361 00 ldq pr6|74 facility_disp 001556 aa 000001 1760 07 sbq 1,dl 001557 aa 6 00267 7561 00 stq pr6|183 001560 aa 000002 2360 07 ldq 2,dl 001561 aa 6 00122 7561 00 stq pr6|82 i 001562 aa 6 00122 2361 00 ldq pr6|82 i 001563 aa 6 00267 1161 00 cmpq pr6|183 001564 aa 000031 6054 04 tpnz 25,ic 001615 STATEMENT 1 ON LINE 348 x25_pkt.no_fc_data (i) = "0"b || substr (unspec (substr (addr_string, 2 * i - 3, 1)), 6, 4) || substr (unspec (substr (addr_string, 2 * i - 2, 1)), 6, 4); 001565 aa 000001 7360 00 qls 1 001566 aa 000011 4020 07 mpy 9,dl 001567 aa 000000 6270 06 eax7 0,ql 001570 aa 6 00122 2361 00 ldq pr6|82 i 001571 aa 000011 4020 07 mpy 9,dl 001572 aa 003 100 060 517 csl (pr,x7),(pr),fill(0),bool(move) 001573 aa 6 00143 05 0004 descb pr6|99(5),4 001574 aa 6 00056 00 0044 descb pr6|46,36 001575 aa 6 00056 2351 00 lda pr6|46 001576 aa 000001 7710 00 arl 1 001577 aa 6 00717 7551 00 sta pr6|463 001600 aa 003 100 060 517 csl (pr,x7),(pr),fill(0),bool(move) 001601 aa 6 00143 25 0004 descb pr6|99(14),4 001602 aa 6 00056 00 0044 descb pr6|46,36 001603 aa 6 00056 2351 00 lda pr6|46 001604 aa 000005 7710 00 arl 5 001605 aa 6 00717 2751 00 ora pr6|463 001606 aa 6 00056 7551 00 sta pr6|46 001607 aa 6 00262 3735 20 epp7 pr6|178,* blockp 001610 aa 003 106 060 500 csl (pr),(pr,ql),fill(0),bool(move) 001611 aa 6 00056 00 0011 descb pr6|46,9 001612 aa 7 00002 00 0011 descb pr7|2,9 x25_pkt.no_fc_data STATEMENT 1 ON LINE 351 end; 001613 aa 6 00122 0541 00 aos pr6|82 i 001614 aa 777746 7100 04 tra -26,ic 001562 STATEMENT 1 ON LINE 355 x25_pkt.no_fc_data (facility_disp) = "002"b3; 001615 aa 6 00112 2361 00 ldq pr6|74 facility_disp 001616 aa 000011 4020 07 mpy 9,dl 001617 aa 6 00262 3735 20 epp7 pr6|178,* blockp 001620 aa 003 106 060 404 csl (ic),(pr,ql),fill(0),bool(move) 001621 aa 013444 00 0011 descb 5924,9 015264 = 002000000000 001622 aa 7 00002 00 0011 descb pr7|2,9 x25_pkt.no_fc_data STATEMENT 1 ON LINE 356 x25_pkt.no_fc_data (facility_disp + 1) = "001"b3; 001623 aa 003 106 060 404 csl (ic),(pr,ql),fill(0),bool(move) 001624 aa 013437 00 0011 descb 5919,9 015262 = 001000000000 001625 aa 7 00002 20 0011 descb pr7|2(9),9 x25_pkt.no_fc_data STATEMENT 1 ON LINE 357 if protocol_mpx then do; 001626 aa 6 00717 7561 00 stq pr6|463 001627 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 001630 aa 400000 3150 03 cana 131072,du 001631 aa 000052 6000 04 tze 42,ic 001703 STATEMENT 1 ON LINE 358 facility_length = 2; 001632 aa 000002 2360 07 ldq 2,dl 001633 aa 6 00114 7561 00 stq pr6|76 facility_length STATEMENT 1 ON LINE 359 if xlce.collect_call then l3_facilities = ""; 001634 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 001635 aa 5 00005 2351 00 lda pr5|5 xlce.collect_call 001636 aa 002000 3150 03 cana 1024,du 001637 aa 000006 6000 04 tze 6,ic 001645 001640 aa 6 00112 7271 00 lxl7 pr6|74 facility_disp 001641 aa 040 157 100 404 mlr (ic),(pr,rl,x7),fill(040) 001642 aa 013422 00 0002 desc9a 5906,2 015263 = 001001000000 001643 aa 7 00002 20 0006 desc9a pr7|2(1),ql l3_facilities 001644 aa 000005 7100 04 tra 5,ic 001651 STATEMENT 1 ON LINE 361 else l3_facilities = ""; 001645 aa 6 00112 7271 00 lxl7 pr6|74 facility_disp 001646 aa 040 157 100 404 mlr (ic),(pr,rl,x7),fill(040) 001647 aa 013414 00 0002 desc9a 5900,2 015262 = 001000000000 001650 aa 7 00002 20 0006 desc9a pr7|2(1),ql l3_facilities STATEMENT 1 ON LINE 362 user_data_disp = facility_disp + 3; 001651 aa 6 00112 2361 00 ldq pr6|74 facility_disp 001652 aa 000003 0760 07 adq 3,dl 001653 aa 6 00113 7561 00 stq pr6|75 user_data_disp STATEMENT 1 ON LINE 363 facility_length = length (NCON_REQ_info.facilities); 001654 aa 6 00202 3535 20 epp3 pr6|130,* pinfop 001655 aa 3 00013 2361 00 ldq pr3|11 NCON_REQ_info.facilities 001656 aa 6 00114 7561 00 stq pr6|76 facility_length STATEMENT 1 ON LINE 364 if facility_length ^= 0 then do; 001657 aa 000014 6000 04 tze 12,ic 001673 STATEMENT 1 ON LINE 365 x25_pkt.no_fc_data (facility_disp) = substr (unspec (facility_length), 27, 9); 001660 aa 6 00717 7261 00 lxl6 pr6|463 001661 aa 003 116 060 500 csl (pr),(pr,x6),fill(0),bool(move) 001662 aa 6 00114 50 0011 descb pr6|76(26),9 001663 aa 7 00002 00 0011 descb pr7|2,9 x25_pkt.no_fc_data STATEMENT 1 ON LINE 366 l3_facilities = NCON_REQ_info.facilities; 001664 aa 3 00013 7251 00 lxl5 pr3|11 NCON_REQ_info.facilities 001665 aa 040 157 100 540 mlr (pr,rl),(pr,rl,x7),fill(040) 001666 aa 3 00014 00 0015 desc9a pr3|12,x5 NCON_REQ_info.facilities 001667 aa 7 00002 20 0006 desc9a pr7|2(1),ql l3_facilities STATEMENT 1 ON LINE 367 user_data_disp = facility_disp + facility_length + 1; 001670 aa 6 00112 0761 00 adq pr6|74 facility_disp 001671 aa 000001 0760 07 adq 1,dl 001672 aa 6 00113 7561 00 stq pr6|75 user_data_disp STATEMENT 1 ON LINE 368 end; STATEMENT 1 ON LINE 369 user_data_length = length (NCON_REQ_info.data); 001673 aa 3 00020 2361 00 ldq pr3|16 NCON_REQ_info.data 001674 aa 6 00115 7561 00 stq pr6|77 user_data_length STATEMENT 1 ON LINE 370 l3_call_data = NCON_REQ_info.data; 001675 aa 6 00113 7261 00 lxl6 pr6|75 user_data_disp 001676 aa 3 00020 7251 00 lxl5 pr3|16 NCON_REQ_info.data 001677 aa 040 156 100 540 mlr (pr,rl),(pr,rl,x6),fill(040) 001700 aa 3 00021 00 0015 desc9a pr3|17,x5 NCON_REQ_info.data 001701 aa 7 00002 00 0006 desc9a pr7|2,ql l3_call_data STATEMENT 1 ON LINE 371 end; 001702 aa 000051 7100 04 tra 41,ic 001753 STATEMENT 1 ON LINE 372 else do; STATEMENT 1 ON LINE 373 if xlce.collect_call then x25_pkt.no_fc_data (facility_disp + 2) = "001"b3; 001703 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 001704 aa 5 00005 2351 00 lda pr5|5 xlce.collect_call 001705 aa 002000 3150 03 cana 1024,du 001706 aa 000006 6000 04 tze 6,ic 001714 001707 aa 000011 0760 07 adq 9,dl 001710 aa 003 106 060 404 csl (ic),(pr,ql),fill(0),bool(move) 001711 aa 013352 00 0011 descb 5866,9 015262 = 001000000000 001712 aa 7 00002 20 0011 descb pr7|2(9),9 x25_pkt.no_fc_data 001713 aa 000005 7100 04 tra 5,ic 001720 STATEMENT 1 ON LINE 375 else x25_pkt.no_fc_data (facility_disp + 2) = "000"b3; 001714 aa 000011 0760 07 adq 9,dl 001715 aa 003 106 060 400 csl (),(pr,ql),fill(0),bool(move) 001716 aa 000000 00 0000 descb 0,0 001717 aa 7 00002 20 0011 descb pr7|2(9),9 x25_pkt.no_fc_data STATEMENT 1 ON LINE 376 user_data_disp = facility_disp + 3; 001720 aa 6 00112 2361 00 ldq pr6|74 facility_disp 001721 aa 000003 0760 07 adq 3,dl 001722 aa 6 00113 7561 00 stq pr6|75 user_data_disp STATEMENT 1 ON LINE 377 user_data_length = length (xlce.call_data) + 4; 001723 aa 5 00025 2361 00 ldq pr5|21 xlce.call_data 001724 aa 000004 0760 07 adq 4,dl 001725 aa 6 00115 7561 00 stq pr6|77 user_data_length STATEMENT 1 ON LINE 378 unspec (substr (l3_call_data, 1, 4)) = ""b3; 001726 aa 6 00113 2361 00 ldq pr6|75 user_data_disp 001727 aa 000011 4020 07 mpy 9,dl 001730 aa 003 106 060 400 csl (),(pr,ql),fill(0),bool(move) 001731 aa 000000 00 0000 descb 0,0 001732 aa 7 00002 00 0044 descb pr7|2,36 STATEMENT 1 ON LINE 379 if xlce.flags.iti_call then unspec (substr (l3_call_data, 1, 1)) = "001"b3; 001733 aa 7 00000 3535 00 epp3 pr7|0 x25_pkt.no_fc_data 001734 aa 6 00720 2535 00 spri3 pr6|464 001735 aa 6 00717 7561 00 stq pr6|463 001736 aa 5 00005 2351 00 lda pr5|5 xlce.iti_call 001737 aa 400000 3150 03 cana 131072,du 001740 aa 000004 6000 04 tze 4,ic 001744 001741 aa 003 106 060 404 csl (ic),(pr,ql),fill(0),bool(move) 001742 aa 013321 00 0011 descb 5841,9 015262 = 001000000000 001743 aa 3 00002 00 0011 descb pr3|2,9 STATEMENT 1 ON LINE 380 substr (l3_call_data, 5) = xlce.call_data; 001744 aa 6 00115 2361 00 ldq pr6|77 user_data_length 001745 aa 000004 1760 07 sbq 4,dl 001746 aa 6 00113 2351 00 lda pr6|75 user_data_disp 001747 aa 5 00025 7271 00 lxl7 pr5|21 xlce.call_data 001750 aa 040 145 100 540 mlr (pr,rl),(pr,rl,al),fill(040) 001751 aa 5 00026 00 0017 desc9a pr5|22,x7 xlce.call_data 001752 aa 3 00003 00 0006 desc9a pr3|3,ql l3_call_data STATEMENT 1 ON LINE 381 end; STATEMENT 1 ON LINE 383 buffer.tally = 2 + user_data_disp + user_data_length + L2_HEADER_PAD; 001753 aa 000002 2360 07 ldq 2,dl 001754 aa 6 00113 0761 00 adq pr6|75 user_data_disp 001755 aa 6 00115 0761 00 adq pr6|77 user_data_length 001756 aa 000002 0760 07 adq 2,dl 001757 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 384 call write_pkt; 001760 aa 011732 6700 04 tsp4 5082,ic 013712 STATEMENT 1 ON LINE 385 call send_output; 001761 aa 010475 6700 04 tsp4 4413,ic 012456 STATEMENT 1 ON LINE 387 xsce.state = SC_DIALING; 001762 aa 000002 2360 07 ldq 2,dl 001763 aa 6 00172 3735 20 epp7 pr6|122,* xscep 001764 aa 7 00012 7561 00 stq pr7|10 xsce.state STATEMENT 1 ON LINE 388 xsce.lcx = lcx; 001765 aa 6 00117 2361 00 ldq pr6|79 lcx 001766 aa 7 00011 7561 00 stq pr7|9 xsce.lcx STATEMENT 1 ON LINE 389 xlce.scx = scx; 001767 aa 6 00120 2361 00 ldq pr6|80 scx 001770 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 001771 aa 5 00001 7561 00 stq pr5|1 xlce.scx STATEMENT 1 ON LINE 390 call state_change (DTE_WAITING); 001772 aa 013236 3520 04 epp2 5790,ic 015230 = 000002000000 001773 aa 011647 6700 04 tsp4 5031,ic 013642 STATEMENT 1 ON LINE 391 end; 001774 aa 000764 7100 04 tra 500,ic 002760 STATEMENT 1 ON LINE 393 else if order = "hangup" then do; 001775 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 001776 aa 6 00134 00 0040 desc9a pr6|92,32 order 001777 aa 776211 00 0006 desc9a -887,6 000206 = 150141156147 002000 aa 000003 6010 04 tnz 3,ic 002003 STATEMENT 1 ON LINE 394 call reset_xsce; 002001 aa 007752 6700 04 tsp4 4074,ic 011753 STATEMENT 1 ON LINE 395 end; 002002 aa 000756 7100 04 tra 494,ic 002760 STATEMENT 1 ON LINE 397 else if (protocol_mpx & order = "get_network_infos") then do; 002003 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 002004 aa 400000 3150 03 cana 131072,du 002005 aa 000020 6000 04 tze 16,ic 002025 002006 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002007 aa 6 00134 00 0040 desc9a pr6|92,32 order 002010 aa 776233 00 0021 desc9a -869,17 000241 = 147145164137 002011 aa 000014 6010 04 tnz 12,ic 002025 STATEMENT 1 ON LINE 399 network_infos.network_address = x25_data.my_address; 002012 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 002013 aa 7 00044 2361 00 ldq pr7|36 x25_data.my_address 002014 aa 6 00202 7561 20 stq pr6|130,* network_infos.network_address 002015 aa 6 00202 3715 20 epp5 pr6|130,* pinfop 002016 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 002017 aa 7 00045 00 0006 desc9a pr7|37,ql x25_data.my_address 002020 aa 5 00001 00 0006 desc9a pr5|1,ql network_infos.network_address STATEMENT 1 ON LINE 400 network_infos.max_packet_size = x25_lces.lc (1).max_packet_size; 002021 aa 7 00032 3535 20 epp3 pr7|26,* x25_data.lc_ptr 002022 aa 3 00002 2361 00 ldq pr3|2 x25_lces.max_packet_size 002023 aa 5 00005 7561 00 stq pr5|5 network_infos.max_packet_size STATEMENT 1 ON LINE 401 end; 002024 aa 000734 7100 04 tra 476,ic 002760 STATEMENT 1 ON LINE 402 else x25_code = et_undefined_order_request; 002025 aa 6 00044 3701 20 epp4 pr6|36,* 002026 ia 4 00016 2361 00 ldq pr4|14 et_undefined_order_request 002027 aa 6 00264 7561 20 stq pr6|180,* x25_code 002030 aa 000730 7100 04 tra 472,ic 002760 STATEMENT 1 ON LINE 404 else if /* case */ order = "hangup" then do; 002031 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002032 aa 6 00134 00 0040 desc9a pr6|92,32 order 002033 aa 776155 00 0006 desc9a -915,6 000206 = 150141156147 002034 aa 000054 6010 04 tnz 44,ic 002110 STATEMENT 1 ON LINE 405 if xlce.flags.iti_call & ^xlce.flags.originate then do; 002035 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 002036 aa 7 00005 2351 00 lda pr7|5 xlce.iti_call 002037 aa 400000 3150 03 cana 131072,du 002040 aa 000026 6000 04 tze 22,ic 002066 002041 aa 7 00005 2351 00 lda pr7|5 xlce.originate 002042 aa 010000 3150 03 cana 4096,du 002043 aa 000023 6010 04 tnz 19,ic 002066 STATEMENT 1 ON LINE 406 call get_buffer (16); 002044 aa 000020 2360 07 ldq 16,dl 002045 aa 6 00717 7561 00 stq pr6|463 002046 aa 013174 3520 04 epp2 5756,ic 015242 = 000002000000 002047 aa 007077 6700 04 tsp4 3647,ic 011146 STATEMENT 1 ON LINE 407 call make_header (lcx, "1"b); 002050 aa 400000 2350 03 lda 131072,du 002051 aa 6 00717 7551 00 sta pr6|463 002052 aa 013162 3520 04 epp2 5746,ic 015234 = 000004000000 002053 aa 007260 6700 04 tsp4 3760,ic 011333 STATEMENT 1 ON LINE 408 l4_data (1) = "001"b3; 002054 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 002055 aa 003 100 060 404 csl (ic),(pr),fill(0),bool(move) 002056 aa 013205 00 0011 descb 5765,9 015262 = 001000000000 002057 aa 7 00000 00 0011 descb pr7|0,9 l4_data STATEMENT 1 ON LINE 409 buffer.tally = hdr_size + 1 + L2_HEADER_PAD; 002060 aa 6 00131 2361 00 ldq pr6|89 hdr_size 002061 aa 000003 0760 07 adq 3,dl 002062 aa 6 00262 3715 20 epp5 pr6|178,* buffer.tally 002063 aa 5 00000 5521 04 stbq pr5|0,04 buffer.tally STATEMENT 1 ON LINE 410 call write_data_pkt; 002064 aa 011571 6700 04 tsp4 4985,ic 013655 STATEMENT 1 ON LINE 411 end; 002065 aa 000673 7100 04 tra 443,ic 002760 STATEMENT 1 ON LINE 413 else if (protocol_mpx & infop ^= null ()) then call clear_call ((reason_of_hangup.diag)); 002066 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 002067 aa 400000 3150 03 cana 131072,du 002070 aa 000014 6000 04 tze 12,ic 002104 002071 aa 6 00124 2371 00 ldaq pr6|84 infop 002072 aa 776122 6770 04 eraq -942,ic 000214 = 077777000043 000001000000 002073 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 002074 aa 000010 6000 04 tze 8,ic 002104 002075 aa 6 00124 2351 20 lda pr6|84,* reason_of_hangup.diag 002076 aa 000011 7350 00 als 9 002077 aa 000077 7330 00 lrs 63 002100 aa 6 00717 7561 00 stq pr6|463 002101 aa 013141 3520 04 epp2 5729,ic 015242 = 000002000000 002102 aa 006467 6700 04 tsp4 3383,ic 010571 002103 aa 000655 7100 04 tra 429,ic 002760 STATEMENT 1 ON LINE 414 else call clear_call (0); 002104 aa 6 00717 4501 00 stz pr6|463 002105 aa 013135 3520 04 epp2 5725,ic 015242 = 000002000000 002106 aa 006463 6700 04 tsp4 3379,ic 010571 STATEMENT 1 ON LINE 415 end; 002107 aa 000651 7100 04 tra 425,ic 002760 STATEMENT 1 ON LINE 417 else if (protocol_mpx & (order = "connect_response")) then do; 002110 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 002111 aa 400000 3150 03 cana 131072,du 002112 aa 000050 6000 04 tze 40,ic 002162 002113 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002114 aa 6 00134 00 0040 desc9a pr6|92,32 order 002115 aa 776115 00 0020 desc9a -947,16 000230 = 143157156156 002116 aa 000044 6010 04 tnz 36,ic 002162 STATEMENT 1 ON LINE 419 if xlce.state ^= CONRESP_WAITING | xsce.state ^= SC_DIALING then x25_code = et_invalid_state; 002117 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 002120 aa 000006 1160 07 cmpq 6,dl 002121 aa 000005 6010 04 tnz 5,ic 002126 002122 aa 6 00172 3735 20 epp7 pr6|122,* xscep 002123 aa 7 00012 2361 00 ldq pr7|10 xsce.state 002124 aa 000002 1160 07 cmpq 2,dl 002125 aa 000005 6000 04 tze 5,ic 002132 002126 aa 6 00044 3701 20 epp4 pr6|36,* 002127 ia 4 00013 2361 00 ldq pr4|11 et_invalid_state 002130 aa 6 00264 7561 20 stq pr6|180,* x25_code 002131 aa 000627 7100 04 tra 407,ic 002760 STATEMENT 1 ON LINE 421 else do; STATEMENT 1 ON LINE 422 call reset_timer; 002132 aa 007534 6700 04 tsp4 3932,ic 011666 STATEMENT 1 ON LINE 423 call send_NCON_RESP; 002133 aa 011771 6700 04 tsp4 5113,ic 014124 STATEMENT 1 ON LINE 424 xsce.state = SC_DIALING; 002134 aa 000002 2360 07 ldq 2,dl 002135 aa 6 00172 3735 20 epp7 pr6|122,* xscep 002136 aa 7 00012 7561 00 stq pr7|10 xsce.state STATEMENT 1 ON LINE 425 xlce.state = FLOW_CONTROL_READY; 002137 aa 000003 2360 07 ldq 3,dl 002140 aa 6 00170 7561 20 stq pr6|120,* xlce.state STATEMENT 1 ON LINE 426 xsce.flags.output_ready = "1"b; 002141 aa 400000 2350 03 lda 131072,du 002142 aa 7 00013 2551 00 orsa pr7|11 xsce.output_ready STATEMENT 1 ON LINE 427 call channel_manager$interrupt (xsce.devx, SEND_OUTPUT, ""b); 002143 aa 776041 2370 04 ldaq -991,ic 000204 = 000000000000 000000000000 002144 aa 6 00720 7571 00 staq pr6|464 002145 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 002146 aa 6 00724 2521 00 spri2 pr6|468 002147 aa 776011 3520 04 epp2 -1015,ic 000160 = 000000000004 002150 aa 6 00726 2521 00 spri2 pr6|470 002151 aa 6 00720 3521 00 epp2 pr6|464 002152 aa 6 00730 2521 00 spri2 pr6|472 002153 aa 6 00722 6211 00 eax1 pr6|466 002154 aa 014000 4310 07 fld 6144,dl 002155 aa 6 00044 3701 20 epp4 pr6|36,* 002156 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 002157 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 428 x25_code = 0; 002160 aa 6 00264 4501 20 stz pr6|180,* x25_code STATEMENT 1 ON LINE 429 end; STATEMENT 1 ON LINE 430 end; 002161 aa 000577 7100 04 tra 383,ic 002760 STATEMENT 1 ON LINE 432 else if order = "wru" then do; 002162 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002163 aa 6 00134 00 0040 desc9a pr6|92,32 order 002164 aa 775761 00 0003 desc9a -1039,3 000143 = 167162165000 002165 aa 000136 6010 04 tnz 94,ic 002323 STATEMENT 1 ON LINE 433 if ^xsce.flags.wru_done then do; 002166 aa 6 00172 3735 20 epp7 pr6|122,* xscep 002167 aa 7 00013 2351 00 lda pr7|11 xsce.wru_done 002170 aa 100000 3150 03 cana 32768,du 002171 aa 000567 6010 04 tnz 375,ic 002760 STATEMENT 1 ON LINE 434 call tty_space_man$get_buffer (xsce.devx, 16, INPUT, blockp); 002172 aa 000020 2360 07 ldq 16,dl 002173 aa 6 00717 7561 00 stq pr6|463 002174 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 002175 aa 6 00734 2521 00 spri2 pr6|476 002176 aa 6 00717 3521 00 epp2 pr6|463 002177 aa 6 00736 2521 00 spri2 pr6|478 002200 aa 775662 3520 04 epp2 -1102,ic 000062 = 000000000000 002201 aa 6 00740 2521 00 spri2 pr6|480 002202 aa 6 00262 3521 00 epp2 pr6|178 blockp 002203 aa 6 00742 2521 00 spri2 pr6|482 002204 aa 6 00732 6211 00 eax1 pr6|474 002205 aa 020000 4310 07 fld 8192,dl 002206 aa 6 00044 3701 20 epp4 pr6|36,* 002207 la 4 00102 3521 20 epp2 pr4|66,* tty_space_man$get_buffer 002210 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 435 if blockp ^= null () then do; 002211 aa 6 00262 2371 00 ldaq pr6|178 blockp 002212 aa 776002 6770 04 eraq -1022,ic 000214 = 077777000043 000001000000 002213 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 002214 aa 000544 6000 04 tze 356,ic 002760 STATEMENT 1 ON LINE 436 buffer.next = 0; 002215 aa 000000 2350 07 lda 0,dl 002216 aa 6 00262 3735 20 epp7 pr6|178,* buffer.next 002217 aa 7 00000 5511 60 stba pr7|0,60 buffer.next STATEMENT 1 ON LINE 437 string (buffer.flags) = ""b; 002220 aa 013006 2350 04 lda 5638,ic 015226 = 777777007777 002221 aa 6 00262 3551 20 ansa pr6|178,* STATEMENT 1 ON LINE 438 buffer.flags.break = "1"b; 002222 aa 100000 2350 07 lda 32768,dl 002223 aa 6 00262 2551 20 orsa pr6|178,* buffer.break STATEMENT 1 ON LINE 439 string (buffer.chars) = "X.25:" || xlce.his_address || NL; 002224 aa 000005 2360 07 ldq 5,dl 002225 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 002226 aa 5 00020 0761 00 adq pr5|16 xlce.his_address 002227 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 002230 aa 040 100 100 404 mlr (ic),(pr),fill(040) 002231 aa 775752 00 0005 desc9a -1046,5 000202 = 130056062065 002232 aa 2 00000 00 0005 desc9a pr2|0,5 002233 aa 5 00020 7271 00 lxl7 pr5|16 xlce.his_address 002234 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 002235 aa 5 00021 00 0017 desc9a pr5|17,x7 xlce.his_address 002236 aa 2 00001 20 0017 desc9a pr2|1(1),x7 002237 aa 6 00717 7561 00 stq pr6|463 002240 aa 000001 0760 07 adq 1,dl 002241 aa 6 00744 7561 00 stq pr6|484 002242 aa 0 00606 7001 00 tsx0 pr0|390 cat_realloc_chars 002243 aa 6 00717 2351 00 lda pr6|463 002244 aa 040 105 100 404 mlr (ic),(pr,al),fill(040) 002245 aa 013010 00 0001 desc9a 5640,1 015254 = 012000000000 002246 aa 2 00000 00 0001 desc9a pr2|0,1 002247 aa 6 00262 3535 20 epp3 pr6|178,* blockp 002250 aa 6 00744 2361 00 ldq pr6|484 002251 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 002252 aa 2 00000 00 0006 desc9a pr2|0,ql 002253 aa 3 00001 00 0074 desc9a pr3|1,60 STATEMENT 1 ON LINE 440 buffer.tally = length (rtrim (string (buffer.chars))); 002254 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 002255 aa 000 000 165 500 tctr (pr) 002256 aa 3 00001 00 0074 desc9a pr3|1,60 002257 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 002260 aa 6 00056 0001 00 arg pr6|46 002261 aa 6 00056 2361 00 ldq pr6|46 002262 aa 0 00242 3761 00 anq pr0|162 = 000777777777 002263 aa 6 00744 7561 00 stq pr6|484 002264 aa 000074 2360 07 ldq 60,dl 002265 aa 6 00744 1761 00 sbq pr6|484 002266 aa 3 00000 5521 04 stbq pr3|0,04 buffer.tally STATEMENT 1 ON LINE 442 rtx_info.input_chain.chain_head, rtx_info.input_chain.chain_tail = rel (blockp); 002267 aa 3 00000 6351 00 eaa pr3|0 blockp 002270 aa 6 00176 5511 60 stba pr6|126,60 rtx_info.chain_head 002271 aa 000022 7710 00 arl 18 002272 aa 6 00176 5511 14 stba pr6|126,14 rtx_info.chain_tail STATEMENT 1 ON LINE 443 rtx_info.input_count = 16; 002273 aa 000020 2350 03 lda 16,du 002274 aa 6 00177 5511 60 stba pr6|127,60 rtx_info.input_count STATEMENT 1 ON LINE 444 string (rtx_info.flags) = ""b; 002275 aa 777777 2350 03 lda 262143,du 002276 aa 6 00177 3551 00 ansa pr6|127 STATEMENT 1 ON LINE 445 rtx_info.flags.break_char = "1"b; 002277 aa 400000 2350 07 lda 131072,dl 002300 aa 6 00177 2551 00 orsa pr6|127 rtx_info.break_char STATEMENT 1 ON LINE 447 call channel_manager$interrupt (xsce.devx, ACCEPT_INPUT, unspec (rtx_info)); 002301 aa 6 00176 2371 00 ldaq pr6|126 002302 aa 6 00720 7571 00 staq pr6|464 002303 aa 6 00172 3515 20 epp1 pr6|122,* xscep 002304 aa 1 00010 3521 00 epp2 pr1|8 xsce.devx 002305 aa 6 00724 2521 00 spri2 pr6|468 002306 aa 775636 3520 04 epp2 -1122,ic 000144 = 000000000006 002307 aa 6 00726 2521 00 spri2 pr6|470 002310 aa 6 00720 3521 00 epp2 pr6|464 002311 aa 6 00730 2521 00 spri2 pr6|472 002312 aa 6 00722 6211 00 eax1 pr6|466 002313 aa 014000 4310 07 fld 6144,dl 002314 aa 6 00044 3701 20 epp4 pr6|36,* 002315 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 002316 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 448 xsce.flags.wru_done = "1"b; 002317 aa 100000 2350 03 lda 32768,du 002320 aa 6 00172 3735 20 epp7 pr6|122,* xscep 002321 aa 7 00013 2551 00 orsa pr7|11 xsce.wru_done STATEMENT 1 ON LINE 449 end; STATEMENT 1 ON LINE 450 end; STATEMENT 1 ON LINE 451 end; 002322 aa 000436 7100 04 tra 286,ic 002760 STATEMENT 1 ON LINE 453 else if order = "abort" then ; 002323 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002324 aa 6 00134 00 0040 desc9a pr6|92,32 order 002325 aa 775655 00 0005 desc9a -1107,5 000200 = 141142157162 002326 aa 000002 6010 04 tnz 2,ic 002330 002327 aa 000431 7100 04 tra 281,ic 002760 STATEMENT 1 ON LINE 455 else if order = "write_status" then do; 002330 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002331 aa 6 00134 00 0040 desc9a pr6|92,32 order 002332 aa 775671 00 0014 desc9a -1095,12 000221 = 167162151164 002333 aa 000015 6010 04 tnz 13,ic 002350 STATEMENT 1 ON LINE 456 write_status_info.output_pending = (xlce.next_send_seq ^= xlce.next_ack_seq); 002334 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 002335 aa 7 00015 2361 00 ldq pr7|13 xlce.next_send_seq 002336 aa 7 00017 1161 00 cmpq pr7|15 xlce.next_ack_seq 002337 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 002340 aa 6 00124 3715 20 epp5 pr6|84,* infop 002341 aa 5 00002 7551 00 sta pr5|2 write_status_info.output_pending STATEMENT 1 ON LINE 457 if write_status_info.output_pending & ^xlce.flags.write_status_sync_sent then call send_sync; 002342 aa 000416 6000 04 tze 270,ic 002760 002343 aa 7 00005 2351 00 lda pr7|5 xlce.write_status_sync_sent 002344 aa 001000 3150 03 cana 512,du 002345 aa 000413 6010 04 tnz 267,ic 002760 002346 aa 010435 6700 04 tsp4 4381,ic 013003 STATEMENT 1 ON LINE 459 end; 002347 aa 000411 7100 04 tra 265,ic 002760 STATEMENT 1 ON LINE 461 else if order = "interrupt" then do; 002350 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002351 aa 6 00134 00 0040 desc9a pr6|92,32 order 002352 aa 775646 00 0011 desc9a -1114,9 000216 = 151156164145 002353 aa 000076 6010 04 tnz 62,ic 002451 STATEMENT 1 ON LINE 462 if xlce.flags.int_issued then return; 002354 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 002355 aa 7 00005 2351 00 lda pr7|5 xlce.int_issued 002356 aa 200000 3150 03 cana 65536,du 002357 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 463 call get_buffer (16); 002360 aa 000020 2360 07 ldq 16,dl 002361 aa 6 00744 7561 00 stq pr6|484 002362 aa 012640 3520 04 epp2 5536,ic 015222 = 000002000000 002363 aa 006563 6700 04 tsp4 3443,ic 011146 STATEMENT 1 ON LINE 464 call make_header (lcx, "0"b); 002364 aa 000000 2350 07 lda 0,dl 002365 aa 6 00744 7551 00 sta pr6|484 002366 aa 012626 3520 04 epp2 5526,ic 015214 = 000004000000 002367 aa 006744 6700 04 tsp4 3556,ic 011333 STATEMENT 1 ON LINE 465 x25_pkt.type = SNITRQ; 002370 aa 043000 2350 03 lda 17920,du 002371 aa 6 00262 3735 20 epp7 pr6|178,* blockp 002372 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 002373 aa 377000 3750 03 ana 130560,du 002374 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 466 x25_pkt.no_fc_data (1) = ""b; 002375 aa 012616 2350 04 lda 5518,ic 015213 = 777000777777 002376 aa 7 00002 3551 00 ansa pr7|2 x25_pkt.no_fc_data STATEMENT 1 ON LINE 467 buffer.tally = 4 + L2_HEADER_PAD; 002377 aa 000006 2360 07 ldq 6,dl 002400 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 468 call write_pkt; 002401 aa 011311 6700 04 tsp4 4809,ic 013712 STATEMENT 1 ON LINE 469 call send_output; 002402 aa 010054 6700 04 tsp4 4140,ic 012456 STATEMENT 1 ON LINE 470 xlce.flags.int_issued = "1"b; 002403 aa 200000 2350 03 lda 65536,du 002404 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 002405 aa 7 00005 2551 00 orsa pr7|5 xlce.int_issued STATEMENT 1 ON LINE 472 if xlce.flags.iti_call & (xlce.iti_params (7) = 21) then do; 002406 aa 7 00005 2351 00 lda pr7|5 xlce.iti_call 002407 aa 400000 3150 03 cana 131072,du 002410 aa 000350 6000 04 tze 232,ic 002760 002411 aa 7 00033 2351 00 lda pr7|27 xlce.iti_params 002412 aa 000022 7350 00 als 18 002413 aa 000077 7730 00 lrl 63 002414 aa 000025 1160 07 cmpq 21,dl 002415 aa 000343 6010 04 tnz 227,ic 002760 STATEMENT 1 ON LINE 473 call get_buffer (16); 002416 aa 000020 2360 07 ldq 16,dl 002417 aa 6 00744 7561 00 stq pr6|484 002420 aa 012602 3520 04 epp2 5506,ic 015222 = 000002000000 002421 aa 006525 6700 04 tsp4 3413,ic 011146 STATEMENT 1 ON LINE 474 call make_header (lcx, "1"b); 002422 aa 400000 2350 03 lda 131072,du 002423 aa 6 00744 7551 00 sta pr6|484 002424 aa 012570 3520 04 epp2 5496,ic 015214 = 000004000000 002425 aa 006706 6700 04 tsp4 3526,ic 011333 STATEMENT 1 ON LINE 475 l4_data (1) = "003"b3; 002426 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 002427 aa 003 100 060 404 csl (ic),(pr),fill(0),bool(move) 002430 aa 012632 00 0011 descb 5530,9 015261 = 003000000000 002431 aa 7 00000 00 0011 descb pr7|0,9 l4_data STATEMENT 1 ON LINE 476 l4_data (2) = "010"b3; 002432 aa 003 100 060 404 csl (ic),(pr),fill(0),bool(move) 002433 aa 012626 00 0011 descb 5526,9 015260 = 010000000000 002434 aa 7 00000 20 0011 descb pr7|0(9),9 l4_data STATEMENT 1 ON LINE 477 l4_data (3) = "001"b3; 002435 aa 003 100 060 404 csl (ic),(pr),fill(0),bool(move) 002436 aa 012625 00 0011 descb 5525,9 015262 = 001000000000 002437 aa 7 00000 40 0011 descb pr7|0(18),9 l4_data STATEMENT 1 ON LINE 478 buffer.tally = hdr_size + 3 + L2_HEADER_PAD; 002440 aa 6 00131 2361 00 ldq pr6|89 hdr_size 002441 aa 000005 0760 07 adq 5,dl 002442 aa 6 00262 3715 20 epp5 pr6|178,* buffer.tally 002443 aa 5 00000 5521 04 stbq pr5|0,04 buffer.tally STATEMENT 1 ON LINE 479 call write_data_pkt; 002444 aa 011211 6700 04 tsp4 4745,ic 013655 STATEMENT 1 ON LINE 480 xlce.iti_params (8) = 1; 002445 aa 000001 2350 07 lda 1,dl 002446 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 002447 aa 7 00033 5511 04 stba pr7|27,04 xlce.iti_params STATEMENT 1 ON LINE 481 end; STATEMENT 1 ON LINE 482 end; 002450 aa 000310 7100 04 tra 200,ic 002760 STATEMENT 1 ON LINE 484 else if order = "input_flow_control_chars" then do; 002451 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002452 aa 6 00134 00 0040 desc9a pr6|92,32 order 002453 aa 775603 00 0030 desc9a -1149,24 000254 = 151156160165 002454 aa 000030 6010 04 tnz 24,ic 002504 STATEMENT 1 ON LINE 485 if (ifci.suspend_seq.count ^= 1) | (ifci.resume_seq.count ^= 1) | (substr (ifci.suspend_seq.chars, 1, 1) ^= "" /* XOFF */) | (substr (ifci.resume_seq.chars, 1, 1) ^= "" /* XON */) then x25_code = et_bad_arg; 002455 aa 6 00124 2351 20 lda pr6|84,* ifci.count 002456 aa 000077 7730 00 lrl 63 002457 aa 000001 1160 07 cmpq 1,dl 002460 aa 000020 6010 04 tnz 16,ic 002500 002461 aa 6 00124 3735 20 epp7 pr6|84,* infop 002462 aa 7 00001 2351 00 lda pr7|1 ifci.count 002463 aa 000077 7730 00 lrl 63 002464 aa 000001 1160 07 cmpq 1,dl 002465 aa 000013 6010 04 tnz 11,ic 002500 002466 aa 7 00000 2351 00 lda pr7|0 ifci.chars 002467 aa 000011 7350 00 als 9 002470 aa 0 00022 3771 00 anaq pr0|18 = 777000000000 000000000000 002471 aa 023000 1150 03 cmpa 9728,du 002472 aa 000006 6010 04 tnz 6,ic 002500 002473 aa 7 00001 2351 00 lda pr7|1 ifci.chars 002474 aa 000011 7350 00 als 9 002475 aa 0 00022 3771 00 anaq pr0|18 = 777000000000 000000000000 002476 aa 021000 1150 03 cmpa 8704,du 002477 aa 000261 6000 04 tze 177,ic 002760 002500 aa 6 00044 3701 20 epp4 pr6|36,* 002501 ia 4 00011 2361 00 ldq pr4|9 et_bad_arg 002502 aa 6 00264 7561 20 stq pr6|180,* x25_code STATEMENT 1 ON LINE 489 end; 002503 aa 000255 7100 04 tra 173,ic 002760 STATEMENT 1 ON LINE 491 else if order = "output_flow_control_chars" then do; 002504 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002505 aa 6 00134 00 0040 desc9a pr6|92,32 order 002506 aa 775565 00 0031 desc9a -1163,25 000271 = 157165164160 002507 aa 000036 6010 04 tnz 30,ic 002545 STATEMENT 1 ON LINE 492 if string (ofci.flags) ^= ""b & ((^ofci.flags.suspend_resume) | (ofci.suspend_or_etb_seq.count > 1) | (ofci.resume_or_ack_seq.count > 1) | (substr (ofci.suspend_or_etb_seq.chars, 1, 1) ^= "" /* XOFF */) | (substr (ofci.resume_or_ack_seq.chars, 1, 1) ^= "" /* XON */)) then x25_code = et_bad_arg; 002510 aa 6 00124 2351 20 lda pr6|84,* 002511 aa 777777 3150 03 cana 262143,du 002512 aa 000246 6000 04 tze 166,ic 002760 002513 aa 6 00124 2351 20 lda pr6|84,* ofci.suspend_resume 002514 aa 400000 3150 03 cana 131072,du 002515 aa 000024 6000 04 tze 20,ic 002541 002516 aa 6 00124 3735 20 epp7 pr6|84,* infop 002517 aa 7 00001 2351 00 lda pr7|1 ofci.count 002520 aa 000077 7730 00 lrl 63 002521 aa 000001 1160 07 cmpq 1,dl 002522 aa 000017 6054 04 tpnz 15,ic 002541 002523 aa 7 00002 2351 00 lda pr7|2 ofci.count 002524 aa 000077 7730 00 lrl 63 002525 aa 000001 1160 07 cmpq 1,dl 002526 aa 000013 6054 04 tpnz 11,ic 002541 002527 aa 7 00001 2351 00 lda pr7|1 ofci.chars 002530 aa 000011 7350 00 als 9 002531 aa 0 00022 3771 00 anaq pr0|18 = 777000000000 000000000000 002532 aa 023000 1150 03 cmpa 9728,du 002533 aa 000006 6010 04 tnz 6,ic 002541 002534 aa 7 00002 2351 00 lda pr7|2 ofci.chars 002535 aa 000011 7350 00 als 9 002536 aa 0 00022 3771 00 anaq pr0|18 = 777000000000 000000000000 002537 aa 021000 1150 03 cmpa 8704,du 002540 aa 000220 6000 04 tze 144,ic 002760 002541 aa 6 00044 3701 20 epp4 pr6|36,* 002542 ia 4 00011 2361 00 ldq pr4|9 et_bad_arg 002543 aa 6 00264 7561 20 stq pr6|180,* x25_code STATEMENT 1 ON LINE 498 end; 002544 aa 000214 7100 04 tra 140,ic 002760 STATEMENT 1 ON LINE 500 else if order = "set_framing_chars" then ; 002545 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002546 aa 6 00134 00 0040 desc9a pr6|92,32 order 002547 aa 775467 00 0021 desc9a -1225,17 000234 = 163145164137 002550 aa 000002 6010 04 tnz 2,ic 002552 002551 aa 000207 7100 04 tra 135,ic 002760 STATEMENT 1 ON LINE 502 else if xlce.flags.iti_call & xlce.flags.originate & (order = "get_foreign_terminal_data") then do; 002552 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 002553 aa 7 00005 2351 00 lda pr7|5 xlce.originate 002554 aa 410000 3750 03 ana 135168,du 002555 aa 410000 1150 03 cmpa 135168,du 002556 aa 000177 6010 04 tnz 127,ic 002755 002557 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002560 aa 6 00134 00 0040 desc9a pr6|92,32 order 002561 aa 775503 00 0031 desc9a -1213,25 000262 = 147145164137 002562 aa 000173 6010 04 tnz 123,ic 002755 STATEMENT 1 ON LINE 503 if ftd.version ^= FOREIGN_TERMINAL_DATA_VERSION_1 then do; 002563 aa 6 00124 3715 20 epp5 pr6|84,* infop 002564 aa 5 00000 2351 00 lda pr5|0 ftd.version 002565 aa 5 00001 2361 00 ldq pr5|1 ftd.version 002566 aa 775242 1170 04 cmpaq -1374,ic 000030 = 146164144137 061040040040 002567 aa 000005 6000 04 tze 5,ic 002574 STATEMENT 1 ON LINE 504 x25_code = et_unimplemented_version; 002570 aa 6 00044 3701 20 epp4 pr6|36,* 002571 ia 4 00017 2361 00 ldq pr4|15 et_unimplemented_version 002572 aa 6 00264 7561 20 stq pr6|180,* x25_code STATEMENT 1 ON LINE 505 return; 002573 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 506 end; STATEMENT 1 ON LINE 507 number_of_modes = 7; 002574 aa 000007 2360 07 ldq 7,dl 002575 aa 6 00254 7561 00 stq pr6|172 number_of_modes STATEMENT 1 ON LINE 508 allocate mode_string_info in (ftd.area_ptr -> based_area) set (mode_string_info_ptr); 002576 aa 6 00254 2361 00 ldq pr6|172 number_of_modes 002577 aa 000026 4020 07 mpy 22,dl 002600 aa 000002 0760 07 adq 2,dl 002601 aa 6 00124 3735 20 epp7 pr6|84,* infop 002602 aa 7 00002 3521 20 epp2 pr7|2,* based_area 002603 aa 0 01402 7001 00 tsx0 pr0|770 op_alloc_ 002604 aa 777772 7100 04 tra -6,ic 002576 002605 aa 6 00256 2521 00 spri2 pr6|174 mode_string_info_ptr 002606 aa 6 00254 2361 00 ldq pr6|172 number_of_modes 002607 aa 2 00001 7561 00 stq pr2|1 mode_string_info.number STATEMENT 1 ON LINE 509 mode_string_info.version = mode_string_info_version_2; 002610 aa 000002 2360 07 ldq 2,dl 002611 aa 2 00000 7561 00 stq pr2|0 mode_string_info.version STATEMENT 1 ON LINE 510 do i = 1 to number_of_modes; 002612 aa 6 00254 2361 00 ldq pr6|172 number_of_modes 002613 aa 6 00270 7561 00 stq pr6|184 002614 aa 000001 2360 07 ldq 1,dl 002615 aa 6 00122 7561 00 stq pr6|82 i 002616 aa 6 00122 2361 00 ldq pr6|82 i 002617 aa 6 00270 1161 00 cmpq pr6|184 002620 aa 000021 6054 04 tpnz 17,ic 002641 STATEMENT 1 ON LINE 511 mode_string_info.modes (i).version = mode_value_version_3; 002621 aa 000026 4020 07 mpy 22,dl 002622 aa 000000 6270 06 eax7 0,ql 002623 aa 000003 2360 07 ldq 3,dl 002624 aa 6 00256 3735 20 epp7 pr6|174,* mode_string_info_ptr 002625 aa 7 77754 7561 17 stq pr7|-20,7 mode_string_info.version STATEMENT 1 ON LINE 512 mode_string_info.modes (i).mode_name = mode_names (i); 002626 aa 6 00122 2361 00 ldq pr6|82 i 002627 aa 000001 7360 00 qls 1 002630 aa 7 77755 3715 17 epp5 pr7|-19,7 mode_string_info.mode_name 002631 ta 000031 3534 06 epp3 25,ql 002632 aa 040 100 100 500 mlr (pr),(pr),fill(040) 002633 aa 3 00000 00 0010 desc9a pr3|0,8 mode_names 002634 aa 5 00000 00 0040 desc9a pr5|0,32 mode_string_info.mode_name STATEMENT 1 ON LINE 513 mode_string_info.modes (i).flags.boolean_valuep = "1"b; 002635 aa 400000 2350 03 lda 131072,du 002636 aa 7 77765 2551 17 orsa pr7|-11,7 mode_string_info.boolean_valuep STATEMENT 1 ON LINE 514 end; 002637 aa 6 00122 0541 00 aos pr6|82 i 002640 aa 777756 7100 04 tra -18,ic 002616 STATEMENT 1 ON LINE 515 mode_string_info.modes (MODE_RAWI).boolean_value = (xlce.iti_params (1) = 0); 002641 aa 000026 2360 07 ldq 22,dl 002642 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 002643 aa 7 00032 2351 00 lda pr7|26 xlce.iti_params 002644 aa 000000 6270 06 eax7 0,ql 002645 aa 000077 7730 00 lrl 63 002646 aa 0 00512 7001 00 tsx0 pr0|330 r_e_as 002647 aa 000003 7710 00 arl 3 002650 aa 6 00256 3715 20 epp5 pr6|174,* mode_string_info_ptr 002651 aa 5 77765 6751 17 era pr5|-11,7 mode_string_info.boolean_value 002652 aa 040000 3750 03 ana 16384,du 002653 aa 5 77765 6551 17 ersa pr5|-11,7 mode_string_info.boolean_value STATEMENT 1 ON LINE 516 mode_string_info.modes (MODE_ECHOPLEX).boolean_value = (xlce.iti_params (2) ^= 0); 002654 aa 000054 2360 07 ldq 44,dl 002655 aa 7 00032 2351 00 lda pr7|26 xlce.iti_params 002656 aa 000011 7350 00 als 9 002657 aa 000000 6260 06 eax6 0,ql 002660 aa 000077 7730 00 lrl 63 002661 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 002662 aa 000003 7710 00 arl 3 002663 aa 5 77765 6751 16 era pr5|-11,6 mode_string_info.boolean_value 002664 aa 040000 3750 03 ana 16384,du 002665 aa 5 77765 6551 16 ersa pr5|-11,6 mode_string_info.boolean_value STATEMENT 1 ON LINE 517 mode_string_info.modes (MODE_BREAKALL).boolean_value = (xlce.iti_params (4) ^= 0); 002666 aa 000102 2360 07 ldq 66,dl 002667 aa 7 00032 2351 00 lda pr7|26 xlce.iti_params 002670 aa 000033 7350 00 als 27 002671 aa 000000 6250 06 eax5 0,ql 002672 aa 000077 7730 00 lrl 63 002673 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 002674 aa 000003 7710 00 arl 3 002675 aa 5 77765 6751 15 era pr5|-11,5 mode_string_info.boolean_value 002676 aa 040000 3750 03 ana 16384,du 002677 aa 5 77765 6551 15 ersa pr5|-11,5 mode_string_info.boolean_value STATEMENT 1 ON LINE 518 mode_string_info.modes (MODE_IFLOW).boolean_value = (xlce.iti_params (5) ^= 0); 002700 aa 000130 2360 07 ldq 88,dl 002701 aa 7 00033 2351 00 lda pr7|27 xlce.iti_params 002702 aa 000000 6240 06 eax4 0,ql 002703 aa 000077 7730 00 lrl 63 002704 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 002705 aa 000003 7710 00 arl 3 002706 aa 5 77765 6751 14 era pr5|-11,4 mode_string_info.boolean_value 002707 aa 040000 3750 03 ana 16384,du 002710 aa 5 77765 6551 14 ersa pr5|-11,4 mode_string_info.boolean_value STATEMENT 1 ON LINE 519 mode_string_info.modes (MODE_OFLOW).boolean_value = (xlce.iti_params (12) ^= 0); 002711 aa 000156 2360 07 ldq 110,dl 002712 aa 7 00034 2351 00 lda pr7|28 xlce.iti_params 002713 aa 000033 7350 00 als 27 002714 aa 000000 6230 06 eax3 0,ql 002715 aa 000077 7730 00 lrl 63 002716 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 002717 aa 000003 7710 00 arl 3 002720 aa 5 77765 6751 13 era pr5|-11,3 mode_string_info.boolean_value 002721 aa 040000 3750 03 ana 16384,du 002722 aa 5 77765 6551 13 ersa pr5|-11,3 mode_string_info.boolean_value STATEMENT 1 ON LINE 520 mode_string_info.modes (MODE_HNDLQUIT).boolean_value = (xlce.iti_params (7) = 21); 002723 aa 000204 2360 07 ldq 132,dl 002724 aa 7 00033 2351 00 lda pr7|27 xlce.iti_params 002725 aa 000022 7350 00 als 18 002726 aa 000000 6220 06 eax2 0,ql 002727 aa 000077 7730 00 lrl 63 002730 aa 000025 1160 07 cmpq 21,dl 002731 aa 0 00512 7001 00 tsx0 pr0|330 r_e_as 002732 aa 000003 7710 00 arl 3 002733 aa 5 77765 6751 12 era pr5|-11,2 mode_string_info.boolean_value 002734 aa 040000 3750 03 ana 16384,du 002735 aa 5 77765 6551 12 ersa pr5|-11,2 mode_string_info.boolean_value STATEMENT 1 ON LINE 521 mode_string_info.modes (MODE_LFECHO).boolean_value = (xlce.iti_params (13) ^= 0); 002736 aa 000232 2360 07 ldq 154,dl 002737 aa 7 00035 2351 00 lda pr7|29 xlce.iti_params 002740 aa 000000 6230 06 eax3 0,ql 002741 aa 000077 7730 00 lrl 63 002742 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 002743 aa 000003 7710 00 arl 3 002744 aa 5 77765 6751 13 era pr5|-11,3 mode_string_info.boolean_value 002745 aa 040000 3750 03 ana 16384,du 002746 aa 5 77765 6551 13 ersa pr5|-11,3 mode_string_info.boolean_value STATEMENT 1 ON LINE 523 ftd.mode_string_info_ptr = mode_string_info_ptr; 002747 aa 6 00124 3535 20 epp3 pr6|84,* infop 002750 aa 3 00004 6515 00 spri5 pr3|4 ftd.mode_string_info_ptr STATEMENT 1 ON LINE 524 xsce.flags.need_ftd = "1"b; 002751 aa 040000 2350 03 lda 16384,du 002752 aa 6 00172 3515 20 epp1 pr6|122,* xscep 002753 aa 1 00013 2551 00 orsa pr1|11 xsce.need_ftd STATEMENT 1 ON LINE 525 end; 002754 aa 000004 7100 04 tra 4,ic 002760 STATEMENT 1 ON LINE 527 else x25_code = et_undefined_order_request; 002755 aa 6 00044 3701 20 epp4 pr6|36,* 002756 ia 4 00016 2361 00 ldq pr4|14 et_undefined_order_request 002757 aa 6 00264 7561 20 stq pr6|180,* x25_code STATEMENT 1 ON LINE 529 return; 002760 aa 0 00631 7101 00 tra pr0|409 return_mac ENTRY TO check_modes STATEMENT 1 ON LINE 533 check_modes: entry (X25_data_ptr, X25_scx, x25_mclp, x25_code); 002761 at 000004000163 002762 tt 000156000163 002763 ta 000161000000 002764 ta 002761000000 002765 da 000341300000 002766 aa 002140 6270 00 eax7 1120 002767 aa 7 00034 3521 20 epp2 pr7|28,* 002770 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 002771 aa 000010000000 002772 aa 000000000000 002773 aa 6 00032 3735 20 epp7 pr6|26,* 002774 aa 7 00010 3715 20 epp5 pr7|8,* 002775 aa 6 00264 6515 00 spri5 pr6|180 STATEMENT 1 ON LINE 536 set_entry = "0"b; 002776 aa 6 00154 4501 00 stz pr6|108 set_entry STATEMENT 1 ON LINE 537 goto modes_common; 002777 aa 000015 7100 04 tra 13,ic 003014 ENTRY TO set_modes STATEMENT 1 ON LINE 541 set_modes: entry (X25_data_ptr, X25_scx, x25_mclp, x25_code); 003000 ta 002761000000 003001 da 000347300000 003002 aa 002140 6270 00 eax7 1120 003003 aa 7 00034 3521 20 epp2 pr7|28,* 003004 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 003005 aa 000010000000 003006 aa 000000000000 003007 aa 6 00032 3735 20 epp7 pr6|26,* 003010 aa 7 00010 3715 20 epp5 pr7|8,* 003011 aa 6 00264 6515 00 spri5 pr6|180 STATEMENT 1 ON LINE 544 set_entry = "1"b; 003012 aa 400000 2350 03 lda 131072,du 003013 aa 6 00154 7551 00 sta pr6|108 set_entry STATEMENT 1 ON LINE 545 modes_common: call setup_subchan; 003014 aa 010434 6700 04 tsp4 4380,ic 013450 STATEMENT 1 ON LINE 547 if xlcep = null () then do; 003015 aa 6 00170 2371 00 ldaq pr6|120 xlcep 003016 aa 775176 6770 04 eraq -1410,ic 000214 = 077777000043 000001000000 003017 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 003020 aa 000005 6010 04 tnz 5,ic 003025 STATEMENT 1 ON LINE 548 x25_code = et_invalid_state; 003021 aa 6 00044 3701 20 epp4 pr6|36,* 003022 ia 4 00013 2361 00 ldq pr4|11 et_invalid_state 003023 aa 6 00264 7561 20 stq pr6|180,* x25_code STATEMENT 1 ON LINE 549 return; 003024 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 550 end; STATEMENT 1 ON LINE 551 x25_code = 0; 003025 aa 6 00264 4501 20 stz pr6|180,* x25_code STATEMENT 1 ON LINE 552 mclp = x25_mclp; 003026 aa 6 00032 3735 20 epp7 pr6|26,* 003027 aa 7 00006 3715 20 epp5 pr7|6,* x25_mclp 003030 aa 5 00000 3715 20 epp5 pr5|0,* x25_mclp 003031 aa 6 00250 6515 00 spri5 pr6|168 mclp STATEMENT 1 ON LINE 554 if mcl.version ^= mcl_version_2 then do; 003032 aa 5 00000 2361 00 ldq pr5|0 mcl.version 003033 aa 000002 1160 07 cmpq 2,dl 003034 aa 000005 6000 04 tze 5,ic 003041 STATEMENT 1 ON LINE 555 x25_code = et_unimplemented_version; 003035 aa 6 00044 3701 20 epp4 pr6|36,* 003036 ia 4 00017 2361 00 ldq pr4|15 et_unimplemented_version 003037 aa 6 00264 7561 20 stq pr6|180,* x25_code STATEMENT 1 ON LINE 556 return; 003040 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 557 end; STATEMENT 1 ON LINE 559 if set_entry then do; 003041 aa 6 00154 2351 00 lda pr6|108 set_entry 003042 aa 000007 6000 04 tze 7,ic 003051 STATEMENT 1 ON LINE 560 if mcl.init then do; 003043 aa 5 00005 2351 00 lda pr5|5 mcl.init 003044 aa 400000 3150 03 cana 131072,du 003045 aa 000004 6000 04 tze 4,ic 003051 STATEMENT 1 ON LINE 561 string (xsce.mode) = ""b; 003046 aa 777777 2350 03 lda 262143,du 003047 aa 6 00172 3535 20 epp3 pr6|122,* xscep 003050 aa 3 00013 3551 00 ansa pr3|11 STATEMENT 1 ON LINE 562 end; STATEMENT 1 ON LINE 563 end; STATEMENT 1 ON LINE 565 do i = 1 to mcl.n_entries; 003051 aa 5 00001 2361 00 ldq pr5|1 mcl.n_entries 003052 aa 6 00271 7561 00 stq pr6|185 003053 aa 000001 2360 07 ldq 1,dl 003054 aa 6 00122 7561 00 stq pr6|82 i 003055 aa 000000 0110 03 nop 0,du 003056 aa 6 00122 2361 00 ldq pr6|82 i 003057 aa 6 00271 1161 00 cmpq pr6|185 003060 aa 000072 6054 04 tpnz 58,ic 003152 STATEMENT 1 ON LINE 566 mclep = addr (mcl.entries (i)); 003061 aa 000005 4020 07 mpy 5,dl 003062 aa 6 00250 3735 20 epp7 pr6|168,* mclp 003063 aa 7 00001 3735 06 epp7 pr7|1,ql mcl.entries 003064 aa 6 00252 6535 00 spri7 pr6|170 mclep STATEMENT 1 ON LINE 567 mode_found = "0"b; 003065 aa 6 00133 4501 00 stz pr6|91 mode_found STATEMENT 1 ON LINE 568 do j = 1 to dimension (mode_names, 1); 003066 aa 000001 2360 07 ldq 1,dl 003067 aa 6 00123 7561 00 stq pr6|83 j 003070 aa 6 00123 2361 00 ldq pr6|83 j 003071 aa 000013 1160 07 cmpq 11,dl 003072 aa 000032 6054 04 tpnz 26,ic 003124 STATEMENT 1 ON LINE 569 if mcle.mode_name = mode_names (j) then do; 003073 aa 000001 7360 00 qls 1 003074 aa 6 00744 7561 00 stq pr6|484 003075 aa 6 00252 3735 20 epp7 pr6|170,* mclep 003076 ta 000031 3714 06 epp5 25,ql 003077 aa 040 100 106 500 cmpc (pr),(pr),fill(040) 003100 aa 7 00000 00 0020 desc9a pr7|0,16 mcle.mode_name 003101 aa 5 00000 00 0010 desc9a pr5|0,8 mode_names 003102 aa 000020 6010 04 tnz 16,ic 003122 STATEMENT 1 ON LINE 570 mode_found = "1"b; 003103 aa 400000 2350 03 lda 131072,du 003104 aa 6 00133 7551 00 sta pr6|91 mode_found STATEMENT 1 ON LINE 571 if set_entry then if mcle.mpx_mode then xsce.mode (j) = mcle.mode_switch; 003105 aa 6 00154 2351 00 lda pr6|108 set_entry 003106 aa 000012 6000 04 tze 10,ic 003120 003107 aa 7 00004 2351 00 lda pr7|4 mcle.mpx_mode 003110 aa 100000 3150 03 cana 32768,du 003111 aa 000011 6000 04 tze 9,ic 003122 003112 aa 6 00123 7271 00 lxl7 pr6|83 j 003113 aa 6 00172 3535 20 epp3 pr6|122,* xscep 003114 aa 003 117 060 500 csl (pr),(pr,x7),fill(0),bool(move) 003115 aa 7 00004 00 0001 descb pr7|4,1 mcle.mode_switch 003116 aa 3 00013 30 0001 descb pr3|11(17),1 xsce.mode STATEMENT 1 ON LINE 574 else ; 003117 aa 000003 7100 04 tra 3,ic 003122 STATEMENT 1 ON LINE 575 else mcle.mpx_mode = "1"b; 003120 aa 100000 2350 03 lda 32768,du 003121 aa 7 00004 2551 00 orsa pr7|4 mcle.mpx_mode STATEMENT 1 ON LINE 576 end; STATEMENT 1 ON LINE 577 end; 003122 aa 6 00123 0541 00 aos pr6|83 j 003123 aa 777745 7100 04 tra -27,ic 003070 STATEMENT 1 ON LINE 579 if ^mode_found then if set_entry then if mcle.mpx_mode & ^mcle.force then do; 003124 aa 6 00133 2351 00 lda pr6|91 mode_found 003125 aa 000023 6010 04 tnz 19,ic 003150 003126 aa 6 00154 2351 00 lda pr6|108 set_entry 003127 aa 000016 6000 04 tze 14,ic 003145 003130 aa 6 00252 3735 20 epp7 pr6|170,* mclep 003131 aa 7 00004 2351 00 lda pr7|4 mcle.mpx_mode 003132 aa 100000 3150 03 cana 32768,du 003133 aa 000015 6000 04 tze 13,ic 003150 003134 aa 7 00004 2351 00 lda pr7|4 mcle.force 003135 aa 200000 3150 03 cana 65536,du 003136 aa 000012 6010 04 tnz 10,ic 003150 STATEMENT 1 ON LINE 583 mcle.error = "1"b; 003137 aa 040000 2350 03 lda 16384,du 003140 aa 7 00004 2551 00 orsa pr7|4 mcle.error STATEMENT 1 ON LINE 584 x25_code = et_bad_mode; 003141 aa 6 00044 3701 20 epp4 pr6|36,* 003142 ia 4 00012 2361 00 ldq pr4|10 et_bad_mode 003143 aa 6 00264 7561 20 stq pr6|180,* x25_code STATEMENT 1 ON LINE 585 end; STATEMENT 1 ON LINE 586 else ; 003144 aa 000004 7100 04 tra 4,ic 003150 STATEMENT 1 ON LINE 587 else mcle.mpx_mode = "0"b; 003145 aa 012045 2350 04 lda 5157,ic 015212 = 677777777777 003146 aa 6 00252 3735 20 epp7 pr6|170,* mclep 003147 aa 7 00004 3551 00 ansa pr7|4 mcle.mpx_mode STATEMENT 1 ON LINE 588 end; 003150 aa 6 00122 0541 00 aos pr6|82 i 003151 aa 777705 7100 04 tra -59,ic 003056 STATEMENT 1 ON LINE 590 if set_entry then do; 003152 aa 6 00154 2351 00 lda pr6|108 set_entry 003153 aa 000260 6000 04 tze 176,ic 003433 STATEMENT 1 ON LINE 594 if xsce.mode (MODE_8BIT) then do; 003154 aa 000011 7270 07 lxl7 9,dl 003155 aa 6 00172 3735 20 epp7 pr6|122,* xscep 003156 aa 000 000 066 517 cmpb (pr,x7),(),fill(0) 003157 aa 7 00013 30 0001 descb pr7|11(17),1 xsce.mode 003160 aa 000000 00 0000 descb 0,0 003161 aa 000015 6000 04 tze 13,ic 003176 STATEMENT 1 ON LINE 595 if xsce.mode (MODE_LFECHO) then xsce.trans_table_ptr = addr (x25_mpx_data$trans_parity_lfecho); 003162 aa 000007 7260 07 lxl6 7,dl 003163 aa 000 000 066 516 cmpb (pr,x6),(),fill(0) 003164 aa 7 00013 30 0001 descb pr7|11(17),1 xsce.mode 003165 aa 000000 00 0000 descb 0,0 003166 aa 000005 6000 04 tze 5,ic 003173 003167 aa 6 00044 3701 20 epp4 pr6|36,* 003170 la 4 00044 3715 20 epp5 pr4|36,* x25_mpx_data$trans_parity_lfecho 003171 aa 7 00024 6515 00 spri5 pr7|20 xsce.trans_table_ptr 003172 aa 000020 7100 04 tra 16,ic 003212 STATEMENT 1 ON LINE 597 else xsce.trans_table_ptr = null (); 003173 aa 775021 2370 04 ldaq -1519,ic 000214 = 077777000043 000001000000 003174 aa 7 00024 7571 00 staq pr7|20 xsce.trans_table_ptr STATEMENT 1 ON LINE 598 end; 003175 aa 000015 7100 04 tra 13,ic 003212 STATEMENT 1 ON LINE 600 else if xsce.mode (MODE_LFECHO) then xsce.trans_table_ptr = addr (x25_mpx_data$trans_no_parity_lfecho); 003176 aa 000007 7260 07 lxl6 7,dl 003177 aa 000 000 066 516 cmpb (pr,x6),(),fill(0) 003200 aa 7 00013 30 0001 descb pr7|11(17),1 xsce.mode 003201 aa 000000 00 0000 descb 0,0 003202 aa 000005 6000 04 tze 5,ic 003207 003203 aa 6 00044 3701 20 epp4 pr6|36,* 003204 la 4 00042 3715 20 epp5 pr4|34,* x25_mpx_data$trans_no_parity_lfecho 003205 aa 7 00024 6515 00 spri5 pr7|20 xsce.trans_table_ptr 003206 aa 000004 7100 04 tra 4,ic 003212 STATEMENT 1 ON LINE 602 else xsce.trans_table_ptr = addr (x25_mpx_data$trans_no_parity); 003207 aa 6 00044 3701 20 epp4 pr6|36,* 003210 la 4 00040 3715 20 epp5 pr4|32,* x25_mpx_data$trans_no_parity 003211 aa 7 00024 6515 00 spri5 pr7|20 xsce.trans_table_ptr STATEMENT 1 ON LINE 607 if xlce.flags.iti_call & ^xlce.flags.originate then do; 003212 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 003213 aa 5 00005 2351 00 lda pr5|5 xlce.iti_call 003214 aa 400000 3150 03 cana 131072,du 003215 aa 000216 6000 04 tze 142,ic 003433 003216 aa 5 00005 2351 00 lda pr5|5 xlce.originate 003217 aa 010000 3150 03 cana 4096,du 003220 aa 000213 6010 04 tnz 139,ic 003433 STATEMENT 1 ON LINE 608 call get_buffer (16); 003221 aa 000020 2360 07 ldq 16,dl 003222 aa 6 00744 7561 00 stq pr6|484 003223 aa 011777 3520 04 epp2 5119,ic 015222 = 000002000000 003224 aa 005722 6700 04 tsp4 3026,ic 011146 STATEMENT 1 ON LINE 609 call make_header (lcx, "1"b); 003225 aa 400000 2350 03 lda 131072,du 003226 aa 6 00744 7551 00 sta pr6|484 003227 aa 011765 3520 04 epp2 5109,ic 015214 = 000004000000 003230 aa 006103 6700 04 tsp4 3139,ic 011333 STATEMENT 1 ON LINE 610 l4_data (1) = "002"b3; 003231 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 003232 aa 003 100 060 404 csl (ic),(pr),fill(0),bool(move) 003233 aa 012032 00 0011 descb 5146,9 015264 = 002000000000 003234 aa 7 00000 00 0011 descb pr7|0,9 l4_data STATEMENT 1 ON LINE 611 nchars = 1; 003235 aa 000001 2360 07 ldq 1,dl 003236 aa 6 00132 7561 00 stq pr6|90 nchars STATEMENT 1 ON LINE 615 call add_iti_mode (MODE_RAWI, 1, 0, 1); 003237 aa 000001 2360 07 ldq 1,dl 003240 aa 6 00744 7561 00 stq pr6|484 003241 aa 6 00717 4501 00 stz pr6|463 003242 aa 6 00745 7561 00 stq pr6|485 003243 aa 011735 3520 04 epp2 5085,ic 015200 = 000010000000 003244 aa 005245 6700 04 tsp4 2725,ic 010511 STATEMENT 1 ON LINE 616 call add_iti_mode (MODE_ECHOPLEX, 2, 1, 0); 003245 aa 000002 2360 07 ldq 2,dl 003246 aa 6 00745 7561 00 stq pr6|485 003247 aa 000001 2360 07 ldq 1,dl 003250 aa 6 00717 7561 00 stq pr6|463 003251 aa 6 00744 4501 00 stz pr6|484 003252 aa 011714 3520 04 epp2 5068,ic 015166 = 000010000000 003253 aa 005236 6700 04 tsp4 2718,ic 010511 STATEMENT 1 ON LINE 617 call add_iti_mode (MODE_BREAKALL, 3, 0, 2); 003254 aa 000003 2360 07 ldq 3,dl 003255 aa 6 00744 7561 00 stq pr6|484 003256 aa 6 00717 4501 00 stz pr6|463 003257 aa 000002 2360 07 ldq 2,dl 003260 aa 6 00745 7561 00 stq pr6|485 003261 aa 011673 3520 04 epp2 5051,ic 015154 = 000010000000 003262 aa 005227 6700 04 tsp4 2711,ic 010511 STATEMENT 1 ON LINE 618 call add_iti_mode (MODE_BREAKALL, 4, (x25_data.breakall_idle_timer), 0); 003263 aa 000004 2360 07 ldq 4,dl 003264 aa 6 00745 7561 00 stq pr6|485 003265 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 003266 aa 7 00043 2361 00 ldq pr7|35 x25_data.breakall_idle_timer 003267 aa 6 00717 7561 00 stq pr6|463 003270 aa 6 00744 4501 00 stz pr6|484 003271 aa 011651 3520 04 epp2 5033,ic 015142 = 000010000000 003272 aa 005217 6700 04 tsp4 2703,ic 010511 STATEMENT 1 ON LINE 620 call add_iti_mode (MODE_IFLOW, 5, 1, 0); 003273 aa 000005 2360 07 ldq 5,dl 003274 aa 6 00744 7561 00 stq pr6|484 003275 aa 000001 2360 07 ldq 1,dl 003276 aa 6 00717 7561 00 stq pr6|463 003277 aa 6 00745 4501 00 stz pr6|485 003300 aa 011630 3520 04 epp2 5016,ic 015130 = 000010000000 003301 aa 005210 6700 04 tsp4 2696,ic 010511 STATEMENT 1 ON LINE 621 call add_iti_mode (MODE_HNDLQUIT, 7, 21, 1); 003302 aa 000007 2360 07 ldq 7,dl 003303 aa 6 00745 7561 00 stq pr6|485 003304 aa 000025 2360 07 ldq 21,dl 003305 aa 6 00717 7561 00 stq pr6|463 003306 aa 000001 2360 07 ldq 1,dl 003307 aa 6 00744 7561 00 stq pr6|484 003310 aa 011606 3520 04 epp2 4998,ic 015116 = 000010000000 003311 aa 005200 6700 04 tsp4 2688,ic 010511 STATEMENT 1 ON LINE 622 call add_iti_mode (MODE_OFLOW, 12, 1, 0); 003312 aa 000014 2360 07 ldq 12,dl 003313 aa 6 00744 7561 00 stq pr6|484 003314 aa 000001 2360 07 ldq 1,dl 003315 aa 6 00717 7561 00 stq pr6|463 003316 aa 6 00745 4501 00 stz pr6|485 003317 aa 011565 3520 04 epp2 4981,ic 015104 = 000010000000 003320 aa 005171 6700 04 tsp4 2681,ic 010511 STATEMENT 1 ON LINE 623 call add_iti_mode (MODE_LFECHO, 13, 4, 0); 003321 aa 000015 2360 07 ldq 13,dl 003322 aa 6 00745 7561 00 stq pr6|485 003323 aa 000004 2360 07 ldq 4,dl 003324 aa 6 00717 7561 00 stq pr6|463 003325 aa 6 00744 4501 00 stz pr6|484 003326 aa 011544 3520 04 epp2 4964,ic 015072 = 000010000000 003327 aa 005162 6700 04 tsp4 2674,ic 010511 STATEMENT 1 ON LINE 625 call add_iti_param (10, 0); 003330 aa 000012 2360 07 ldq 10,dl 003331 aa 6 00744 7561 00 stq pr6|484 003332 aa 6 00717 4501 00 stz pr6|463 003333 aa 011531 3520 04 epp2 4953,ic 015064 = 000004000000 003334 aa 005211 6700 04 tsp4 2697,ic 010545 STATEMENT 1 ON LINE 626 call add_iti_param (15, 0); 003335 aa 000017 2360 07 ldq 15,dl 003336 aa 6 00717 7561 00 stq pr6|463 003337 aa 6 00744 4501 00 stz pr6|484 003340 aa 011516 3520 04 epp2 4942,ic 015056 = 000004000000 003341 aa 005204 6700 04 tsp4 2692,ic 010545 STATEMENT 1 ON LINE 630 if x25_data.net_type = "datapac" then do; 003342 aa 774634 2370 04 ldaq -1636,ic 000176 = 144141164141 160141143000 003343 aa 0 00456 2771 00 oraq pr0|302 = 000000000000 000000000040 003344 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 003345 aa 7 00024 1151 00 cmpa pr7|20 x25_data.net_type 003346 aa 000002 6010 04 tnz 2,ic 003350 003347 aa 7 00025 1161 00 cmpq pr7|21 x25_data.net_type 003350 aa 000024 6010 04 tnz 20,ic 003374 STATEMENT 1 ON LINE 631 call add_iti_param (0, 0); 003351 aa 6 00744 4501 00 stz pr6|484 003352 aa 6 00717 4501 00 stz pr6|463 003353 aa 011511 3520 04 epp2 4937,ic 015064 = 000004000000 003354 aa 005171 6700 04 tsp4 2681,ic 010545 STATEMENT 1 ON LINE 632 call add_iti_mode (MODE_POLITE, 125, 30, 0); 003355 aa 000175 2360 07 ldq 125,dl 003356 aa 6 00717 7561 00 stq pr6|463 003357 aa 000036 2360 07 ldq 30,dl 003360 aa 6 00744 7561 00 stq pr6|484 003361 aa 6 00745 4501 00 stz pr6|485 003362 aa 011462 3520 04 epp2 4914,ic 015044 = 000010000000 003363 aa 005126 6700 04 tsp4 2646,ic 010511 STATEMENT 1 ON LINE 633 call add_iti_mode (MODE_LFECHO, 126, 4, 0); 003364 aa 000176 2360 07 ldq 126,dl 003365 aa 6 00745 7561 00 stq pr6|485 003366 aa 000004 2360 07 ldq 4,dl 003367 aa 6 00744 7561 00 stq pr6|484 003370 aa 6 00717 4501 00 stz pr6|463 003371 aa 011441 3520 04 epp2 4897,ic 015032 = 000010000000 003372 aa 005117 6700 04 tsp4 2639,ic 010511 STATEMENT 1 ON LINE 634 end; 003373 aa 000032 7100 04 tra 26,ic 003425 STATEMENT 1 ON LINE 636 else if x25_data.net_type = "telenet" then do; 003374 aa 774600 2370 04 ldaq -1664,ic 000174 = 164145154145 156145164000 003375 aa 0 00456 2771 00 oraq pr0|302 = 000000000000 000000000040 003376 aa 7 00024 1151 00 cmpa pr7|20 x25_data.net_type 003377 aa 000002 6010 04 tnz 2,ic 003401 003400 aa 7 00025 1161 00 cmpq pr7|21 x25_data.net_type 003401 aa 000016 6010 04 tnz 14,ic 003417 STATEMENT 1 ON LINE 637 call add_iti_param (0, 33); 003402 aa 6 00717 4501 00 stz pr6|463 003403 aa 000041 2360 07 ldq 33,dl 003404 aa 6 00744 7561 00 stq pr6|484 003405 aa 011451 3520 04 epp2 4905,ic 015056 = 000004000000 003406 aa 005137 6700 04 tsp4 2655,ic 010545 STATEMENT 1 ON LINE 638 call add_iti_mode (MODE_LFECHO, 1, 4, 0); 003407 aa 000001 2360 07 ldq 1,dl 003410 aa 6 00744 7561 00 stq pr6|484 003411 aa 000004 2360 07 ldq 4,dl 003412 aa 6 00717 7561 00 stq pr6|463 003413 aa 6 00745 4501 00 stz pr6|485 003414 aa 011404 3520 04 epp2 4868,ic 015020 = 000010000000 003415 aa 005074 6700 04 tsp4 2620,ic 010511 STATEMENT 1 ON LINE 639 end; 003416 aa 000007 7100 04 tra 7,ic 003425 STATEMENT 1 ON LINE 641 else if x25_data.net_type = "tymnet" then ; 003417 aa 774553 2370 04 ldaq -1685,ic 000172 = 164171155156 145164000000 003420 aa 0 00454 2771 00 oraq pr0|300 = 000000000000 000000040040 003421 aa 7 00024 1151 00 cmpa pr7|20 x25_data.net_type 003422 aa 000002 6010 04 tnz 2,ic 003424 003423 aa 7 00025 1161 00 cmpq pr7|21 x25_data.net_type 003424 aa 000001 6010 04 tnz 1,ic 003425 STATEMENT 1 ON LINE 645 buffer.tally = hdr_size + nchars + L2_HEADER_PAD; 003425 aa 6 00131 2361 00 ldq pr6|89 hdr_size 003426 aa 6 00132 0761 00 adq pr6|90 nchars 003427 aa 000002 0760 07 adq 2,dl 003430 aa 6 00262 3735 20 epp7 pr6|178,* buffer.tally 003431 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 646 call write_data_pkt; 003432 aa 010223 6700 04 tsp4 4243,ic 013655 STATEMENT 1 ON LINE 647 end; STATEMENT 1 ON LINE 648 end; STATEMENT 1 ON LINE 652 return; 003433 aa 0 00631 7101 00 tra pr0|409 return_mac ENTRY TO get_modes STATEMENT 1 ON LINE 656 get_modes: entry (X25_data_ptr, X25_scx, x25_modes, x25_code); 003434 at 000004000163 003435 tt 000156000154 003436 ta 000161000000 003437 ta 003434000000 003440 da 000355300000 003441 aa 002140 6270 00 eax7 1120 003442 aa 7 00034 3521 20 epp2 pr7|28,* 003443 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 003444 aa 000010000000 003445 aa 000000000000 003446 aa 6 00042 3735 20 epp7 pr6|34,* 003447 aa 7 00004 2361 20 ldq pr7|4,* 003450 aa 000002 6040 04 tmi 2,ic 003452 003451 aa 777777 3760 07 anq 262143,dl 003452 aa 0 00250 3761 00 anq pr0|168 = 000077777777 003453 aa 6 00716 7561 00 stq pr6|462 003454 aa 6 00032 3715 20 epp5 pr6|26,* 003455 aa 5 00010 3535 20 epp3 pr5|8,* 003456 aa 6 00264 2535 00 spri3 pr6|180 STATEMENT 1 ON LINE 659 x25_code = 0; 003457 aa 6 00264 4501 20 stz pr6|180,* x25_code STATEMENT 1 ON LINE 660 x25_modes = ""; 003460 aa 6 00032 3735 20 epp7 pr6|26,* 003461 aa 7 00006 3715 20 epp5 pr7|6,* 003462 aa 6 00716 2351 00 lda pr6|462 003463 aa 040 140 100 400 mlr (),(pr,rl),fill(040) 003464 aa 000000 00 0000 desc9a 0,0 003465 aa 5 00000 00 0005 desc9a pr5|0,al x25_modes STATEMENT 1 ON LINE 661 return; 003466 aa 0 00631 7101 00 tra pr0|409 return_mac ENTRY TO write STATEMENT 1 ON LINE 665 write: entry (X25_data_ptr, X25_scx, x25_chain_ptr, x25_code); 003467 ta 002761000000 003470 da 000360300000 003471 aa 002140 6270 00 eax7 1120 003472 aa 7 00034 3521 20 epp2 pr7|28,* 003473 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 003474 aa 000010000000 003475 aa 000000000000 003476 aa 6 00032 3735 20 epp7 pr6|26,* 003477 aa 7 00010 3715 20 epp5 pr7|8,* 003500 aa 6 00264 6515 00 spri5 pr6|180 STATEMENT 1 ON LINE 668 call setup_subchan; 003501 aa 007747 6700 04 tsp4 4071,ic 013450 STATEMENT 1 ON LINE 669 if xlcep = null () then do; 003502 aa 6 00170 2371 00 ldaq pr6|120 xlcep 003503 aa 774511 6770 04 eraq -1719,ic 000214 = 077777000043 000001000000 003504 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 003505 aa 000005 6010 04 tnz 5,ic 003512 STATEMENT 1 ON LINE 670 x25_code = et_invalid_state; 003506 aa 6 00044 3701 20 epp4 pr6|36,* 003507 ia 4 00013 2361 00 ldq pr4|11 et_invalid_state 003510 aa 6 00264 7561 20 stq pr6|180,* x25_code STATEMENT 1 ON LINE 671 return; 003511 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 672 end; STATEMENT 1 ON LINE 673 x25_code = 0; 003512 aa 6 00264 4501 20 stz pr6|180,* x25_code STATEMENT 1 ON LINE 675 protocol_mpx = get_protocol_sc (); 003513 aa 011535 3520 04 epp2 4957,ic 015250 = 000002000000 003514 aa 010535 6700 04 tsp4 4445,ic 014251 STATEMENT 1 ON LINE 677 xsce.flags.output_ready = "0"b; 003515 aa 011531 2350 04 lda 4953,ic 015246 = 377777777777 003516 aa 6 00172 3735 20 epp7 pr6|122,* xscep 003517 aa 7 00013 3551 00 ansa pr7|11 xsce.output_ready STATEMENT 1 ON LINE 679 if xlce.flags.iti_break then return; 003520 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 003521 aa 5 00005 2351 00 lda pr5|5 xlce.iti_break 003522 aa 040000 3150 03 cana 16384,du 003523 aa 0 00631 6011 00 tnz pr0|409 return_mac STATEMENT 1 ON LINE 681 do chain_ptr = x25_chain_ptr repeat (leftover_chain_ptr) while ((chain_ptr ^= null ()) & ^xsce.flags.end_of_page); 003524 aa 6 00032 3535 20 epp3 pr6|26,* 003525 aa 3 00006 3515 20 epp1 pr3|6,* x25_chain_ptr 003526 aa 1 00000 3515 20 epp1 pr1|0,* x25_chain_ptr 003527 aa 6 00104 2515 00 spri1 pr6|68 chain_ptr 003530 aa 6 00104 2371 00 ldaq pr6|68 chain_ptr 003531 aa 774463 6770 04 eraq -1741,ic 000214 = 077777000043 000001000000 003532 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 003533 aa 000261 6000 04 tze 177,ic 004014 003534 aa 6 00172 3735 20 epp7 pr6|122,* xscep 003535 aa 7 00013 2351 00 lda pr7|11 xsce.end_of_page 003536 aa 200000 3150 03 cana 65536,du 003537 aa 000255 6010 04 tnz 173,ic 004014 STATEMENT 1 ON LINE 683 nchars = 0; 003540 aa 6 00132 4501 00 stz pr6|90 nchars STATEMENT 1 ON LINE 684 prev_blockp = null (); 003541 aa 774453 2370 04 ldaq -1749,ic 000214 = 077777000043 000001000000 003542 aa 6 00102 7571 00 staq pr6|66 prev_blockp STATEMENT 1 ON LINE 685 do blockp = chain_ptr repeat (pointer (blockp, buffer.next)); 003543 aa 6 00104 3715 20 epp5 pr6|68,* chain_ptr 003544 aa 6 00262 6515 00 spri5 pr6|178 blockp 003545 aa 000000 0110 03 nop 0,du STATEMENT 1 ON LINE 686 nchars = nchars + buffer.tally; 003546 aa 6 00262 2361 20 ldq pr6|178,* buffer.tally 003547 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 003550 aa 6 00132 0561 00 asq pr6|90 nchars STATEMENT 1 ON LINE 687 call mvt_ (addr (buffer.chars), addr (buffer.chars), (buffer.tally), x25_mpx_data$eight_bit); 003551 aa 6 00262 3735 20 epp7 pr6|178,* blockp 003552 aa 7 00001 3735 00 epp7 pr7|1 buffer.chars 003553 aa 6 00720 6535 00 spri7 pr6|464 003554 aa 6 00262 3715 20 epp5 pr6|178,* blockp 003555 aa 5 00001 3715 00 epp5 pr5|1 buffer.chars 003556 aa 6 00746 6515 00 spri5 pr6|486 003557 aa 6 00745 7561 00 stq pr6|485 003560 aa 6 00720 3521 00 epp2 pr6|464 003561 aa 6 00734 2521 00 spri2 pr6|476 003562 aa 6 00746 3521 00 epp2 pr6|486 003563 aa 6 00736 2521 00 spri2 pr6|478 003564 aa 6 00745 3521 00 epp2 pr6|485 003565 aa 6 00740 2521 00 spri2 pr6|480 003566 aa 6 00044 3701 20 epp4 pr6|36,* 003567 la 4 00046 3521 20 epp2 pr4|38,* x25_mpx_data$eight_bit 003570 aa 6 00742 2521 00 spri2 pr6|482 003571 aa 6 00732 6211 00 eax1 pr6|474 003572 aa 020000 4310 07 fld 8192,dl 003573 la 4 00052 3521 20 epp2 pr4|42,* mvt_ 003574 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 688 if (nchars > xlce.max_packet_size) | (buffer.next = 0) | buffer.flags.end_of_page | buffer.flags.break then goto end_chain; 003575 aa 6 00262 2351 20 lda pr6|178,* buffer.next 003576 aa 000066 7730 00 lrl 54 003577 aa 6 00745 7561 00 stq pr6|485 buffer.next 003600 aa 6 00132 2361 00 ldq pr6|90 nchars 003601 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 003602 aa 7 00002 1161 00 cmpq pr7|2 xlce.max_packet_size 003603 aa 000015 6054 04 tpnz 13,ic 003620 003604 aa 6 00745 2361 00 ldq pr6|485 buffer.next 003605 aa 000013 6000 04 tze 11,ic 003620 003606 aa 6 00262 2351 20 lda pr6|178,* buffer.break 003607 aa 500000 3150 07 cana 163840,dl 003610 aa 000010 6010 04 tnz 8,ic 003620 STATEMENT 1 ON LINE 690 string (buffer.flags) = ""b; 003611 aa 011415 2350 04 lda 4877,ic 015226 = 777777007777 003612 aa 6 00262 3551 20 ansa pr6|178,* STATEMENT 1 ON LINE 691 prev_blockp = blockp; 003613 aa 6 00262 3715 20 epp5 pr6|178,* blockp 003614 aa 6 00102 6515 00 spri5 pr6|66 prev_blockp STATEMENT 1 ON LINE 692 end; 003615 aa 000000 3314 06 eawp5 0,ql 003616 aa 6 00262 6515 00 spri5 pr6|178 blockp 003617 aa 777727 7100 04 tra -41,ic 003546 STATEMENT 1 ON LINE 703 end_chain: if nchars > xlce.max_packet_size then do; 003620 aa 6 00132 2361 00 ldq pr6|90 nchars 003621 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 003622 aa 7 00002 1161 00 cmpq pr7|2 xlce.max_packet_size 003623 aa 000011 6044 04 tmoz 9,ic 003634 STATEMENT 1 ON LINE 705 prev_blockp -> buffer.next = 0; 003624 aa 000000 2350 07 lda 0,dl 003625 aa 6 00102 3715 20 epp5 pr6|66,* buffer.next 003626 aa 5 00000 5511 60 stba pr5|0,60 buffer.next STATEMENT 1 ON LINE 706 leftover_chain_ptr = blockp; 003627 aa 6 00262 3535 20 epp3 pr6|178,* blockp 003630 aa 6 00106 2535 00 spri3 pr6|70 leftover_chain_ptr STATEMENT 1 ON LINE 707 endp = prev_blockp; 003631 aa 6 00102 3515 20 epp1 pr6|66,* prev_blockp 003632 aa 6 00100 2515 00 spri1 pr6|64 endp STATEMENT 1 ON LINE 708 end; 003633 aa 000015 7100 04 tra 13,ic 003650 STATEMENT 1 ON LINE 710 else do; STATEMENT 1 ON LINE 711 endp = blockp; 003634 aa 6 00262 3715 20 epp5 pr6|178,* blockp 003635 aa 6 00100 6515 00 spri5 pr6|64 endp STATEMENT 1 ON LINE 712 if buffer.next = 0 then leftover_chain_ptr = null (); 003636 aa 6 00745 2361 00 ldq pr6|485 buffer.next 003637 aa 000004 6010 04 tnz 4,ic 003643 003640 aa 774354 2370 04 ldaq -1812,ic 000214 = 077777000043 000001000000 003641 aa 6 00106 7571 00 staq pr6|70 leftover_chain_ptr 003642 aa 000006 7100 04 tra 6,ic 003650 STATEMENT 1 ON LINE 714 else do; STATEMENT 1 ON LINE 715 leftover_chain_ptr = pointer (blockp, buffer.next); 003643 aa 5 00000 3521 00 epp2 pr5|0 003644 aa 000000 3120 06 eawp2 0,ql 003645 aa 6 00106 2521 00 spri2 pr6|70 leftover_chain_ptr STATEMENT 1 ON LINE 716 buffer.next = 0; 003646 aa 000000 2350 07 lda 0,dl 003647 aa 5 00000 5511 60 stba pr5|0,60 buffer.next STATEMENT 1 ON LINE 717 end; STATEMENT 1 ON LINE 718 end; STATEMENT 1 ON LINE 728 xsce.flags.end_of_page = endp -> buffer.flags.end_of_page; 003650 aa 6 00100 2351 20 lda pr6|64,* buffer.end_of_page 003651 aa 000021 7350 00 als 17 003652 aa 6 00172 3715 20 epp5 pr6|122,* xscep 003653 aa 5 00013 6751 00 era pr5|11 xsce.end_of_page 003654 aa 200000 3750 03 ana 65536,du 003655 aa 5 00013 6551 00 ersa pr5|11 xsce.end_of_page STATEMENT 1 ON LINE 730 blockp = chain_ptr; 003656 aa 6 00104 3535 20 epp3 pr6|68,* chain_ptr 003657 aa 6 00262 2535 00 spri3 pr6|178 blockp STATEMENT 1 ON LINE 731 if x25_data.seq_mod = 8 then do; 003660 aa 6 00166 3515 20 epp1 pr6|118,* x25_data_ptr 003661 aa 1 00016 2361 00 ldq pr1|14 x25_data.seq_mod 003662 aa 000010 1160 07 cmpq 8,dl 003663 aa 000011 6010 04 tnz 9,ic 003674 STATEMENT 1 ON LINE 732 hdr_size = 3; 003664 aa 000003 2360 07 ldq 3,dl 003665 aa 6 00131 7561 00 stq pr6|89 hdr_size STATEMENT 1 ON LINE 733 l4_data_ptr = addr (m8_fc_data.user_data); 003666 aa 000011 7270 07 lxl7 9,dl 003667 aa 6 00262 3735 20 epp7 pr6|178,* blockp 003670 aa 7 00002 3521 00 epp2 pr7|2 m8_fc_data.user_data 003671 aa 2 00000 5035 17 abd pr2|0,7 003672 aa 6 00164 2521 00 spri2 pr6|116 l4_data_ptr STATEMENT 1 ON LINE 734 end; 003673 aa 000010 7100 04 tra 8,ic 003703 STATEMENT 1 ON LINE 735 else do; STATEMENT 1 ON LINE 736 hdr_size = 4; 003674 aa 000004 2360 07 ldq 4,dl 003675 aa 6 00131 7561 00 stq pr6|89 hdr_size STATEMENT 1 ON LINE 737 l4_data_ptr = addr (m128_fc_data.user_data); 003676 aa 000022 7270 07 lxl7 18,dl 003677 aa 6 00262 3735 20 epp7 pr6|178,* blockp 003700 aa 7 00002 3521 00 epp2 pr7|2 m128_fc_data.user_data 003701 aa 2 00000 5035 17 abd pr2|0,7 003702 aa 6 00164 2521 00 spri2 pr6|116 l4_data_ptr STATEMENT 1 ON LINE 738 end; STATEMENT 1 ON LINE 739 call mrl_ (addr (buffer.chars), (buffer.tally), l4_data_ptr, (buffer.tally)); 003703 aa 7 00001 3715 00 epp5 pr7|1 buffer.chars 003704 aa 6 00746 6515 00 spri5 pr6|486 003705 aa 7 00000 2361 00 ldq pr7|0 buffer.tally 003706 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 003707 aa 6 00745 7561 00 stq pr6|485 003710 aa 6 00717 7561 00 stq pr6|463 003711 aa 6 00746 3521 00 epp2 pr6|486 003712 aa 6 00734 2521 00 spri2 pr6|476 003713 aa 6 00745 3521 00 epp2 pr6|485 003714 aa 6 00736 2521 00 spri2 pr6|478 003715 aa 6 00164 3521 00 epp2 pr6|116 l4_data_ptr 003716 aa 6 00740 2521 00 spri2 pr6|480 003717 aa 6 00717 3521 00 epp2 pr6|463 003720 aa 6 00742 2521 00 spri2 pr6|482 003721 aa 6 00732 6211 00 eax1 pr6|474 003722 aa 020000 4310 07 fld 8192,dl 003723 aa 6 00044 3701 20 epp4 pr6|36,* 003724 la 4 00050 3521 20 epp2 pr4|40,* mrl_ 003725 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 740 buffer.tally = buffer.tally + hdr_size + L2_HEADER_PAD; 003726 aa 6 00262 2361 20 ldq pr6|178,* buffer.tally 003727 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 003730 aa 6 00131 0761 00 adq pr6|89 hdr_size 003731 aa 000002 0760 07 adq 2,dl 003732 aa 6 00262 3735 20 epp7 pr6|178,* buffer.tally 003733 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 742 call make_header (lcx, "0"b); 003734 aa 000000 2350 07 lda 0,dl 003735 aa 6 00717 7551 00 sta pr6|463 003736 aa 011276 3520 04 epp2 4798,ic 015234 = 000004000000 003737 aa 005374 6700 04 tsp4 2812,ic 011333 STATEMENT 1 ON LINE 743 x25_pkt.type = "00"b4; 003740 aa 011056 2350 04 lda 4654,ic 015016 = 400777777777 003741 aa 6 00262 3735 20 epp7 pr6|178,* blockp 003742 aa 7 00002 3551 00 ansa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 751 if protocol_mpx then do; 003743 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 003744 aa 400000 3150 03 cana 131072,du 003745 aa 000021 6000 04 tze 17,ic 003766 STATEMENT 1 ON LINE 752 if ^xlce.flags.iti_call & ^endp -> buffer.flags.break then if x25_data.seq_mod = 8 then m8_fc_data.m = "1"b; 003746 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 003747 aa 5 00005 2351 00 lda pr5|5 xlce.iti_call 003750 aa 400000 3150 03 cana 131072,du 003751 aa 000015 6010 04 tnz 13,ic 003766 003752 aa 6 00100 2351 20 lda pr6|64,* buffer.break 003753 aa 100000 3150 07 cana 32768,dl 003754 aa 000012 6010 04 tnz 10,ic 003766 003755 aa 6 00166 3535 20 epp3 pr6|118,* x25_data_ptr 003756 aa 3 00016 2361 00 ldq pr3|14 x25_data.seq_mod 003757 aa 000010 1160 07 cmpq 8,dl 003760 aa 000004 6010 04 tnz 4,ic 003764 003761 aa 020000 2350 03 lda 8192,du 003762 aa 7 00002 2551 00 orsa pr7|2 m8_fc_data.m 003763 aa 000003 7100 04 tra 3,ic 003766 STATEMENT 1 ON LINE 755 else m128_fc_data.m = "1"b; 003764 aa 000001 2350 03 lda 1,du 003765 aa 7 00002 2551 00 orsa pr7|2 m128_fc_data.m STATEMENT 1 ON LINE 756 end; STATEMENT 1 ON LINE 758 call tty_space_man$switch_chain (xsce.devx, x25_data.devx, OUTPUT, OUTPUT, blockp); 003766 aa 6 00172 3715 20 epp5 pr6|122,* xscep 003767 aa 5 00010 3521 00 epp2 pr5|8 xsce.devx 003770 aa 6 00752 2521 00 spri2 pr6|490 003771 aa 6 00166 3535 20 epp3 pr6|118,* x25_data_ptr 003772 aa 3 00010 3521 00 epp2 pr3|8 x25_data.devx 003773 aa 6 00754 2521 00 spri2 pr6|492 003774 aa 774152 3520 04 epp2 -1942,ic 000146 = 400000000000 003775 aa 6 00756 2521 00 spri2 pr6|494 003776 aa 6 00760 2521 00 spri2 pr6|496 003777 aa 6 00262 3521 00 epp2 pr6|178 blockp 004000 aa 6 00762 2521 00 spri2 pr6|498 004001 aa 6 00750 6211 00 eax1 pr6|488 004002 aa 024000 4310 07 fld 10240,dl 004003 aa 6 00044 3701 20 epp4 pr6|36,* 004004 la 4 00106 3521 20 epp2 pr4|70,* tty_space_man$switch_chain 004005 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 759 string (endp -> buffer.flags) = ""b; 004006 aa 011220 2350 04 lda 4752,ic 015226 = 777777007777 004007 aa 6 00100 3551 20 ansa pr6|64,* STATEMENT 1 ON LINE 760 call write_data_pkt; 004010 aa 007645 6700 04 tsp4 4005,ic 013655 STATEMENT 1 ON LINE 761 end; 004011 aa 6 00106 3735 20 epp7 pr6|70,* leftover_chain_ptr 004012 aa 6 00104 6535 00 spri7 pr6|68 chain_ptr 004013 aa 777515 7100 04 tra -179,ic 003530 STATEMENT 1 ON LINE 763 call solicit_output; 004014 aa 007571 6700 04 tsp4 3961,ic 013605 STATEMENT 1 ON LINE 764 x25_chain_ptr = chain_ptr; 004015 aa 6 00104 3735 20 epp7 pr6|68,* chain_ptr 004016 aa 6 00032 3715 20 epp5 pr6|26,* 004017 aa 5 00006 6535 20 spri7 pr5|6,* x25_chain_ptr STATEMENT 1 ON LINE 765 x25_code = 0; 004020 aa 6 00264 4501 20 stz pr6|180,* x25_code STATEMENT 1 ON LINE 766 return; 004021 aa 0 00631 7101 00 tra pr0|409 return_mac ENTRY TO interrupt STATEMENT 1 ON LINE 770 interrupt: entry (X25_data_ptr, x25_int_type, x25_int_data); 004022 at 000003000163 004023 tt 000156000157 004024 ta 004022000000 004025 da 000363300000 004026 aa 002140 6270 00 eax7 1120 004027 aa 7 00034 3521 20 epp2 pr7|28,* 004030 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 004031 aa 000006000000 004032 aa 000000000000 STATEMENT 1 ON LINE 773 x25_data_ptr = X25_data_ptr; 004033 aa 6 00032 3735 20 epp7 pr6|26,* 004034 aa 7 00002 3715 20 epp5 pr7|2,* X25_data_ptr 004035 aa 5 00000 3715 20 epp5 pr5|0,* X25_data_ptr 004036 aa 6 00166 6515 00 spri5 pr6|118 x25_data_ptr STATEMENT 1 ON LINE 774 int_type = x25_int_type; 004037 aa 7 00004 2361 20 ldq pr7|4,* x25_int_type 004040 aa 6 00130 7561 00 stq pr6|88 int_type STATEMENT 1 ON LINE 775 int_data = x25_int_data; 004041 aa 7 00006 3535 20 epp3 pr7|6,* 004042 aa 3 00000 2351 00 lda pr3|0 x25_int_data 004043 aa 3 00001 2361 00 ldq pr3|1 x25_int_data 004044 aa 6 00126 7571 00 staq pr6|86 int_data STATEMENT 1 ON LINE 776 xscep, xlcep = null (); 004045 aa 774147 3514 24 epp1 -1945,ic* 004046 aa 6 00172 2515 00 spri1 pr6|122 xscep 004047 aa 6 00170 2515 00 spri1 pr6|120 xlcep STATEMENT 1 ON LINE 778 if (int_type < lbound (INTERRUPT, 1)) | (int_type > hbound (INTERRUPT, 1)) then goto bad_interrupt; 004050 aa 6 00130 2361 00 ldq pr6|88 int_type 004051 aa 000001 1160 07 cmpq 1,dl 004052 aa 000234 6040 04 tmi 156,ic 004306 004053 aa 000021 1160 07 cmpq 17,dl 004054 aa 000232 6054 04 tpnz 154,ic 004306 STATEMENT 1 ON LINE 780 else goto INTERRUPT (int_type); 004055 ta 777777 7100 06 tra -1,ql STATEMENT 1 ON LINE 783 INTERRUPT (1): /* DIALUP - major channel has dialed up */ if x25_data.state ^= X25_LISTENING then goto bad_interrupt; 004056 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004057 aa 7 00011 2361 00 ldq pr7|9 x25_data.state 004060 aa 000001 1160 07 cmpq 1,dl 004061 aa 000225 6010 04 tnz 149,ic 004306 STATEMENT 1 ON LINE 785 unspec (x25_data.dialup_info) = int_data; 004062 aa 6 00126 2371 00 ldaq pr6|86 int_data 004063 aa 7 00030 7551 00 sta pr7|24 004064 aa 7 00031 7561 00 stq pr7|25 STATEMENT 1 ON LINE 786 if ^x25_data.flags.bypass_restart then call restart (0); 004065 aa 7 00015 2351 00 lda pr7|13 x25_data.bypass_restart 004066 aa 100000 3150 03 cana 32768,du 004067 aa 000004 6010 04 tnz 4,ic 004073 004070 aa 6 00717 4501 00 stz pr6|463 004071 aa 011151 3520 04 epp2 4713,ic 015242 = 000002000000 004072 aa 006051 6700 04 tsp4 3113,ic 012143 STATEMENT 1 ON LINE 787 return; 004073 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 790 INTERRUPT (2): /* HANGUP - major channel has hung up */ call pxss$ring_0_wakeup (x25_data.load_proc_id, x25_data.load_ev_chan, MPX_DOWN, code); 004074 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004075 aa 7 00020 3521 00 epp2 pr7|16 x25_data.load_proc_id 004076 aa 6 00734 2521 00 spri2 pr6|476 004077 aa 7 00022 3521 00 epp2 pr7|18 x25_data.load_ev_chan 004100 aa 6 00736 2521 00 spri2 pr6|478 004101 aa 773763 3520 04 epp2 -2061,ic 000064 = 000000000000 004102 aa 6 00740 2521 00 spri2 pr6|480 004103 aa 6 00121 3521 00 epp2 pr6|81 code 004104 aa 6 00742 2521 00 spri2 pr6|482 004105 aa 6 00732 6211 00 eax1 pr6|474 004106 aa 020000 4310 07 fld 8192,dl 004107 aa 6 00044 3701 20 epp4 pr6|36,* 004110 la 4 00054 3521 20 epp2 pr4|44,* pxss$ring_0_wakeup 004111 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 793 if x25_data.state ^= X25_HUNGUP then do; 004112 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004113 aa 7 00011 2361 00 ldq pr7|9 x25_data.state 004114 aa 000003 6000 04 tze 3,ic 004117 STATEMENT 1 ON LINE 794 call crash_subchannels; 004115 aa 004555 6700 04 tsp4 2413,ic 010672 STATEMENT 1 ON LINE 795 call x25_hangup; 004116 aa 007652 6700 04 tsp4 4010,ic 013770 STATEMENT 1 ON LINE 796 end; STATEMENT 1 ON LINE 798 return; 004117 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 800 INTERRUPT (3): /* CRASH - parent multiplexer has died */ if x25_data.state ^= X25_HUNGUP then do; 004120 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004121 aa 7 00011 2361 00 ldq pr7|9 x25_data.state 004122 aa 000003 6000 04 tze 3,ic 004125 STATEMENT 1 ON LINE 802 call crash_subchannels; 004123 aa 004547 6700 04 tsp4 2407,ic 010672 STATEMENT 1 ON LINE 803 call x25_hangup; 004124 aa 007644 6700 04 tsp4 4004,ic 013770 STATEMENT 1 ON LINE 804 end; STATEMENT 1 ON LINE 806 return; 004125 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 808 INTERRUPT (9): /* LINE STATUS - process fnp status message */ /**** Currently, for the two cases of line status (1 or 3), the FNP has sent the line status, and then deactivated itself. This causes it to stop listening to the link, and also to send us a hangup interrupt. This is done to solve a race condition with the previous implementation: 1) FNP sends line status and goes back to listen to the link 2) we send deactivate order 3) FNP stops listening to the line and sends us a hangup order 4) we crash the multiplexer. If the link comes up between 1 and 2, the FNP sends us a dialup interrupt which we ignore, and then at deactivate time the FNP does not tell the other side that he is disconnecting. This creates problems which are solved by the current scheme. ****/ if lap_down_status.link_down_status = 1 then call syserr (Log_message, "x25_mpx(^a): Failure, Link state: ^d, Current action: ^d, in ^d, Primary state: ^d, Secondary state: ^d", x25_data.name, lap_down_status.main_state, lap_down_status.last_function_process, lap_down_status.which_state_process, lap_down_status.primary_sub_state, lap_down_status.secondary_sub_state); 004126 aa 6 00032 3735 20 epp7 pr6|26,* 004127 aa 7 00006 3715 20 epp5 pr7|6,* x25_int_data 004130 aa 6 00746 6515 00 spri5 pr6|486 004131 aa 5 00000 2351 00 lda pr5|0 lap_down_status.link_down_status 004132 aa 000066 7730 00 lrl 54 004133 aa 000001 1160 07 cmpq 1,dl 004134 aa 000056 6010 04 tnz 46,ic 004212 004135 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004136 aa 774737 00 0150 desc9a -1569,104 001074 = 170062065137 004137 aa 6 00764 00 0150 desc9a pr6|500,104 004140 aa 774020 3520 04 epp2 -2032,ic 000160 = 000000000004 004141 aa 6 01020 2521 00 spri2 pr6|528 004142 aa 6 00764 3521 00 epp2 pr6|500 004143 aa 6 01022 2521 00 spri2 pr6|530 004144 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 004145 aa 6 01024 2521 00 spri2 pr6|532 004146 aa 000011 7270 07 lxl7 9,dl 004147 aa 5 00001 3521 00 epp2 pr5|1 lap_down_status.main_state 004150 aa 2 00000 5035 17 abd pr2|0,7 004151 aa 6 01026 2521 00 spri2 pr6|534 004152 aa 000022 7260 07 lxl6 18,dl 004153 aa 5 00000 3521 00 epp2 pr5|0 lap_down_status.last_function_process 004154 aa 2 00000 5035 16 abd pr2|0,6 004155 aa 6 01030 2521 00 spri2 pr6|536 004156 aa 5 00001 3521 00 epp2 pr5|1 lap_down_status.which_state_process 004157 aa 6 01032 2521 00 spri2 pr6|538 004160 aa 5 00001 3521 00 epp2 pr5|1 lap_down_status.primary_sub_state 004161 aa 2 00000 5035 16 abd pr2|0,6 004162 aa 6 01034 2521 00 spri2 pr6|540 004163 aa 000033 7250 07 lxl5 27,dl 004164 aa 5 00001 3521 00 epp2 pr5|1 lap_down_status.secondary_sub_state 004165 aa 2 00000 5035 15 abd pr2|0,5 004166 aa 6 01036 2521 00 spri2 pr6|542 004167 aa 773767 3520 04 epp2 -2057,ic 000156 = 404000000021 004170 aa 6 01040 2521 00 spri2 pr6|544 004171 aa 773747 3520 04 epp2 -2073,ic 000140 = 524000000147 004172 aa 6 01042 2521 00 spri2 pr6|546 004173 aa 773744 3520 04 epp2 -2076,ic 000137 = 524000000040 004174 aa 6 01044 2521 00 spri2 pr6|548 004175 aa 773741 3520 04 epp2 -2079,ic 000136 = 606000000011 004176 aa 6 01046 2521 00 spri2 pr6|550 004177 aa 6 01052 2521 00 spri2 pr6|554 004200 aa 6 01054 2521 00 spri2 pr6|556 004201 aa 6 01056 2521 00 spri2 pr6|558 004202 aa 773733 3520 04 epp2 -2085,ic 000135 = 406000000021 004203 aa 6 01050 2521 00 spri2 pr6|552 004204 aa 6 01016 6211 00 eax1 pr6|526 004205 aa 040000 4310 07 fld 16384,dl 004206 aa 6 00044 3701 20 epp4 pr6|36,* 004207 la 4 00056 3521 20 epp2 pr4|46,* syserr 004210 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 004211 aa 000037 7100 04 tra 31,ic 004250 STATEMENT 1 ON LINE 832 else if lap_cmdr_status.cmdr_status = 3 then call syserr (Log_message, "x25_mpx(^a): Link disconnected due to mis-matched frame sizes. CMDR/FRMR frame: ^( ^.4b^).", x25_data.name, lap_cmdr_status.cmdr_bytes.byte (*)); 004212 aa 5 00000 2351 00 lda pr5|0 lap_cmdr_status.cmdr_status 004213 aa 000066 7730 00 lrl 54 004214 aa 000003 1160 07 cmpq 3,dl 004215 aa 000071 6010 04 tnz 57,ic 004306 004216 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004217 aa 774577 00 0134 desc9a -1665,92 001015 = 170062065137 004220 aa 6 00764 00 0134 desc9a pr6|500,92 004221 aa 773737 3520 04 epp2 -2081,ic 000160 = 000000000004 004222 aa 6 01020 2521 00 spri2 pr6|528 004223 aa 6 00764 3521 00 epp2 pr6|500 004224 aa 6 01022 2521 00 spri2 pr6|530 004225 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 004226 aa 6 01024 2521 00 spri2 pr6|532 004227 aa 000023 7270 07 lxl7 19,dl 004230 aa 5 00000 3521 00 epp2 pr5|0 lap_cmdr_status.byte 004231 aa 2 00000 5035 17 abd pr2|0,7 004232 aa 6 01026 2521 00 spri2 pr6|534 004233 aa 773723 3520 04 epp2 -2093,ic 000156 = 404000000021 004234 aa 6 01030 2521 00 spri2 pr6|536 004235 aa 773677 3520 04 epp2 -2113,ic 000134 = 524000000132 004236 aa 6 01032 2521 00 spri2 pr6|538 004237 aa 773700 3520 04 epp2 -2112,ic 000137 = 524000000040 004240 aa 6 01034 2521 00 spri2 pr6|540 004241 aa 773763 3520 04 epp2 -2061,ic 000224 = 516100000010 004242 aa 6 01036 2521 00 spri2 pr6|542 004243 aa 6 01016 6211 00 eax1 pr6|526 004244 aa 020000 4310 07 fld 8192,dl 004245 aa 6 00044 3701 20 epp4 pr6|36,* 004246 la 4 00056 3521 20 epp2 pr4|46,* syserr 004247 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 839 return; 004250 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 842 INTERRUPT (4): /* SEND OUTPUT - it's safe to write next output frame now */ x25_data.flags.send_output = "1"b; 004251 aa 400000 2350 03 lda 131072,du 004252 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004253 aa 7 00015 2551 00 orsa pr7|13 x25_data.send_output STATEMENT 1 ON LINE 845 if (x25_data.long_packet_head ^= 0) & (x25_data.write_head = null ()) then do; 004254 aa 7 00041 2361 00 ldq pr7|33 x25_data.long_packet_head 004255 aa 000027 6000 04 tze 23,ic 004304 004256 aa 7 00034 2371 00 ldaq pr7|28 x25_data.write_head 004257 aa 773735 6770 04 eraq -2083,ic 000214 = 077777000043 000001000000 004260 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 004261 aa 000023 6010 04 tnz 19,ic 004304 STATEMENT 1 ON LINE 846 scx = x25_data.long_packet_head; 004262 aa 7 00041 2361 00 ldq pr7|33 x25_data.long_packet_head 004263 aa 6 00120 7561 00 stq pr6|80 scx STATEMENT 1 ON LINE 847 xscep = addr (x25_data.sc (scx)); 004264 aa 000026 4020 07 mpy 22,dl 004265 aa 7 00024 3715 06 epp5 pr7|20,ql x25_data.sc 004266 aa 6 00172 6515 00 spri5 pr6|122 xscep STATEMENT 1 ON LINE 848 lcx = xsce.lcx; 004267 aa 5 00011 2361 00 ldq pr5|9 xsce.lcx 004270 aa 6 00117 7561 00 stq pr6|79 lcx STATEMENT 1 ON LINE 849 xlcep = addr (x25_lces.lc (lcx)); 004271 aa 000005 7360 00 qls 5 004272 aa 7 00032 3535 20 epp3 pr7|26,* x25_data.lc_ptr 004273 aa 3 77740 3515 06 epp1 pr3|-32,ql x25_lces.lc 004274 aa 6 00170 2515 00 spri1 pr6|120 xlcep STATEMENT 1 ON LINE 850 x25_data.long_packet_head = xsce.long_packet_next_scx; 004275 aa 5 00014 2361 00 ldq pr5|12 xsce.long_packet_next_scx 004276 aa 7 00041 7561 00 stq pr7|33 x25_data.long_packet_head STATEMENT 1 ON LINE 851 if x25_data.long_packet_head = 0 then x25_data.long_packet_tail = 0; 004277 aa 000002 6010 04 tnz 2,ic 004301 004300 aa 7 00042 4501 00 stz pr7|34 x25_data.long_packet_tail STATEMENT 1 ON LINE 852 xsce.flags.long_packet_pending = "0"b; 004301 aa 010514 2350 04 lda 4428,ic 015015 = 757777777777 004302 aa 5 00013 3551 00 ansa pr5|11 xsce.long_packet_pending STATEMENT 1 ON LINE 853 call send_data_packets; 004303 aa 005722 6700 04 tsp4 3026,ic 012225 STATEMENT 1 ON LINE 854 end; STATEMENT 1 ON LINE 856 call send_output; 004304 aa 006152 6700 04 tsp4 3178,ic 012456 STATEMENT 1 ON LINE 857 return; 004305 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 860 INTERRUPT (5): /* INPUT_AVAILABLE */ INTERRUPT (10): /* DIAL STATUS - ignore */ INTERRUPT (11): /* WRU TIMEOUT - ignore */ bad_interrupt: call syserr (Log_message, "x25_mpx(^a): Unexpected interrupt ^d ^.3b received.", x25_data.name, int_type, int_data); 004306 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004307 aa 774416 00 0064 desc9a -1778,52 000724 = 170062065137 004310 aa 6 00764 00 0064 desc9a pr6|500,52 004311 aa 773647 3520 04 epp2 -2137,ic 000160 = 000000000004 004312 aa 6 01020 2521 00 spri2 pr6|528 004313 aa 6 00764 3521 00 epp2 pr6|500 004314 aa 6 01022 2521 00 spri2 pr6|530 004315 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 004316 aa 6 01024 2521 00 spri2 pr6|532 004317 aa 6 00130 3521 00 epp2 pr6|88 int_type 004320 aa 6 01026 2521 00 spri2 pr6|534 004321 aa 6 00126 3521 00 epp2 pr6|86 int_data 004322 aa 6 01030 2521 00 spri2 pr6|536 004323 aa 773633 3520 04 epp2 -2149,ic 000156 = 404000000021 004324 aa 6 01032 2521 00 spri2 pr6|538 004325 aa 6 01040 2521 00 spri2 pr6|544 004326 aa 773605 3520 04 epp2 -2171,ic 000133 = 524000000063 004327 aa 6 01034 2521 00 spri2 pr6|540 004330 aa 773607 3520 04 epp2 -2169,ic 000137 = 524000000040 004331 aa 6 01036 2521 00 spri2 pr6|542 004332 aa 773625 3520 04 epp2 -2155,ic 000157 = 514000000110 004333 aa 6 01042 2521 00 spri2 pr6|546 004334 aa 6 01016 6211 00 eax1 pr6|526 004335 aa 024000 4310 07 fld 10240,dl 004336 aa 6 00044 3701 20 epp4 pr6|36,* 004337 la 4 00056 3521 20 epp2 pr4|46,* syserr 004340 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 867 INTERRUPT (7): /* INPUT REJECTED - ignore */ INTERRUPT (8): /* QUIT - ignore */ INTERRUPT (12): /* SPACE AVAILABLE - some buffer space was freed that we need */ INTERRUPT (13): /* ACKNOWLEDGE_ECHNEGO_INIT */ INTERRUPT (14): /* ACKNOWLEDGE_ECHNEGO_STOP */ INTERRUPT (16): /* USER_INTERRUPT */ return; 004341 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 875 INTERRUPT (17): /* MASKED - treat like HANGUP but use different wakeup message */ call pxss$ring_0_wakeup (x25_data.load_proc_id, x25_data.load_ev_chan, MPX_MASKED, code); 004342 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004343 aa 7 00020 3521 00 epp2 pr7|16 x25_data.load_proc_id 004344 aa 6 00734 2521 00 spri2 pr6|476 004345 aa 7 00022 3521 00 epp2 pr7|18 x25_data.load_ev_chan 004346 aa 6 00736 2521 00 spri2 pr6|478 004347 aa 773513 3520 04 epp2 -2229,ic 000062 = 000000000000 004350 aa 6 00740 2521 00 spri2 pr6|480 004351 aa 6 00121 3521 00 epp2 pr6|81 code 004352 aa 6 00742 2521 00 spri2 pr6|482 004353 aa 6 00732 6211 00 eax1 pr6|474 004354 aa 020000 4310 07 fld 8192,dl 004355 aa 6 00044 3701 20 epp4 pr6|36,* 004356 la 4 00054 3521 20 epp2 pr4|44,* pxss$ring_0_wakeup 004357 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 878 if x25_data.state ^= X25_HUNGUP then do; 004360 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004361 aa 7 00011 2361 00 ldq pr7|9 x25_data.state 004362 aa 000005 6000 04 tze 5,ic 004367 STATEMENT 1 ON LINE 879 call crash_subchannels; 004363 aa 004307 6700 04 tsp4 2247,ic 010672 STATEMENT 1 ON LINE 880 x25_data.state = X25_HUNGUP; 004364 aa 000000 2360 07 ldq 0,dl 004365 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004366 aa 7 00011 7561 00 stq pr7|9 x25_data.state STATEMENT 1 ON LINE 881 end; STATEMENT 1 ON LINE 883 return; 004367 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 885 INTERRUPT (15): /* TIMER */ unspec (timer_info) = int_data; 004370 aa 6 00126 2371 00 ldaq pr6|86 int_data 004371 aa 6 00200 7571 00 staq pr6|128 STATEMENT 1 ON LINE 887 lcx = timer_info.subchan_idx; 004372 aa 6 00201 2361 00 ldq pr6|129 timer_info.subchan_idx 004373 aa 6 00117 7561 00 stq pr6|79 lcx STATEMENT 1 ON LINE 889 if lcx = 0 then do; 004374 aa 000024 6010 04 tnz 20,ic 004420 STATEMENT 1 ON LINE 890 if (x25_data.state = X25_RESTARTING) & (clock () > x25_data.restart_time + T20) then do; 004375 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004376 aa 7 00026 2371 00 ldaq pr7|22 x25_data.restart_time 004377 aa 773471 0770 04 adaq -2247,ic 000070 = 000000000000 001256512400 004400 aa 6 00746 7571 00 staq pr6|486 004401 aa 0 01435 7001 00 tsx0 pr0|797 clock_mac 004402 aa 6 00746 1171 00 cmpaq pr6|486 004403 aa 0 00503 7001 00 tsx0 pr0|323 r_g_a 004404 aa 6 00717 7551 00 sta pr6|463 004405 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004406 aa 7 00011 2361 00 ldq pr7|9 x25_data.state 004407 aa 000002 1160 07 cmpq 2,dl 004410 aa 0 00512 7001 00 tsx0 pr0|330 r_e_as 004411 aa 6 00717 3151 00 cana pr6|463 004412 aa 000005 6000 04 tze 5,ic 004417 STATEMENT 1 ON LINE 891 call restart (52); 004413 aa 000064 2360 07 ldq 52,dl 004414 aa 6 00717 7561 00 stq pr6|463 004415 aa 010625 3520 04 epp2 4501,ic 015242 = 000002000000 004416 aa 005525 6700 04 tsp4 2901,ic 012143 STATEMENT 1 ON LINE 892 end; STATEMENT 1 ON LINE 893 return; 004417 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 894 end; STATEMENT 1 ON LINE 896 xlcep = addr (x25_lces.lc (lcx)); 004420 aa 000005 7360 00 qls 5 004421 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004422 aa 7 00032 3715 20 epp5 pr7|26,* x25_data.lc_ptr 004423 aa 5 77740 3735 06 epp7 pr5|-32,ql x25_lces.lc 004424 aa 6 00170 6535 00 spri7 pr6|120 xlcep STATEMENT 1 ON LINE 897 xlce.flags.timer_set = "0"b; 004425 aa 010367 2350 04 lda 4343,ic 015014 = 773777777777 004426 aa 7 00005 3551 00 ansa pr7|5 xlce.timer_set STATEMENT 1 ON LINE 898 scx = xlce.scx; 004427 aa 7 00001 2361 00 ldq pr7|1 xlce.scx 004430 aa 6 00120 7561 00 stq pr6|80 scx STATEMENT 1 ON LINE 899 xscep = addr (x25_data.sc (scx)); 004431 aa 000026 4020 07 mpy 22,dl 004432 aa 6 00166 3535 20 epp3 pr6|118,* x25_data_ptr 004433 aa 3 00024 3535 06 epp3 pr3|20,ql x25_data.sc 004434 aa 6 00172 2535 00 spri3 pr6|122 xscep STATEMENT 1 ON LINE 900 protocol_mpx = get_protocol_sc (); 004435 aa 010613 3520 04 epp2 4491,ic 015250 = 000002000000 004436 aa 007613 6700 04 tsp4 3979,ic 014251 STATEMENT 1 ON LINE 902 if xlce.state = FLOW_CONTROL_READY then do; 004437 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 004440 aa 000003 1160 07 cmpq 3,dl 004441 aa 000003 6010 04 tnz 3,ic 004444 STATEMENT 1 ON LINE 903 call send_rr; 004442 aa 006136 6700 04 tsp4 3166,ic 012600 STATEMENT 1 ON LINE 904 return; 004443 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 905 end; STATEMENT 1 ON LINE 907 if clock () > xlce.state_time + T20 then do; 004444 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 004445 aa 7 00012 2371 00 ldaq pr7|10 xlce.state_time 004446 aa 773422 0770 04 adaq -2286,ic 000070 = 000000000000 001256512400 004447 aa 6 00746 7571 00 staq pr6|486 004450 aa 0 01435 7001 00 tsx0 pr0|797 clock_mac 004451 aa 6 00746 1171 00 cmpaq pr6|486 004452 aa 000074 6044 04 tmoz 60,ic 004546 STATEMENT 1 ON LINE 908 call syserr (Log_message, "x25_mpx(^a/^d): Time out in state ^d.", x25_data.name, lcx, xlce.state); 004453 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004454 aa 774052 00 0050 desc9a -2006,40 000525 = 170062065137 004455 aa 6 00732 00 0050 desc9a pr6|474,40 004456 aa 773502 3520 04 epp2 -2238,ic 000160 = 000000000004 004457 aa 6 00766 2521 00 spri2 pr6|502 004460 aa 6 00732 3521 00 epp2 pr6|474 004461 aa 6 00770 2521 00 spri2 pr6|504 004462 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 004463 aa 6 00772 2521 00 spri2 pr6|506 004464 aa 6 00117 3521 00 epp2 pr6|79 lcx 004465 aa 6 00774 2521 00 spri2 pr6|508 004466 aa 6 00170 3521 20 epp2 pr6|120,* xlce.state 004467 aa 6 00776 2521 00 spri2 pr6|510 004470 aa 773466 3520 04 epp2 -2250,ic 000156 = 404000000021 004471 aa 6 01000 2521 00 spri2 pr6|512 004472 aa 6 01010 2521 00 spri2 pr6|520 004473 aa 773437 3520 04 epp2 -2273,ic 000132 = 524000000045 004474 aa 6 01002 2521 00 spri2 pr6|514 004475 aa 773442 3520 04 epp2 -2270,ic 000137 = 524000000040 004476 aa 6 01004 2521 00 spri2 pr6|516 004477 aa 773432 3520 04 epp2 -2278,ic 000131 = 604000000014 004500 aa 6 01006 2521 00 spri2 pr6|518 004501 aa 6 00764 6211 00 eax1 pr6|500 004502 aa 024000 4310 07 fld 10240,dl 004503 aa 6 00044 3701 20 epp4 pr6|36,* 004504 la 4 00056 3521 20 epp2 pr4|46,* syserr 004505 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 909 if xlce.state = DTE_WAITING then do; 004506 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 004507 aa 000002 1160 07 cmpq 2,dl 004510 aa 000006 6010 04 tnz 6,ic 004516 STATEMENT 1 ON LINE 910 call clear_call (49); 004511 aa 000061 2360 07 ldq 49,dl 004512 aa 6 00717 7561 00 stq pr6|463 004513 aa 010527 3520 04 epp2 4439,ic 015242 = 000002000000 004514 aa 004055 6700 04 tsp4 2093,ic 010571 STATEMENT 1 ON LINE 911 return; 004515 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 912 end; STATEMENT 1 ON LINE 913 else if xlce.state = DTE_RESET_REQUEST then do; 004516 aa 000005 1160 07 cmpq 5,dl 004517 aa 000006 6010 04 tnz 6,ic 004525 STATEMENT 1 ON LINE 914 call clear_call (51); 004520 aa 000063 2360 07 ldq 51,dl 004521 aa 6 00717 7561 00 stq pr6|463 004522 aa 010520 3520 04 epp2 4432,ic 015242 = 000002000000 004523 aa 004046 6700 04 tsp4 2086,ic 010571 STATEMENT 1 ON LINE 915 return; 004524 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 916 end; STATEMENT 1 ON LINE 917 else if xlce.state = DTE_CLEAR_REQUEST then do; 004525 aa 000004 1160 07 cmpq 4,dl 004526 aa 000006 6010 04 tnz 6,ic 004534 STATEMENT 1 ON LINE 918 call clear_call (50); 004527 aa 000062 2360 07 ldq 50,dl 004530 aa 6 00717 7561 00 stq pr6|463 004531 aa 010511 3520 04 epp2 4425,ic 015242 = 000002000000 004532 aa 004037 6700 04 tsp4 2079,ic 010571 STATEMENT 1 ON LINE 919 return; 004533 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 920 end; STATEMENT 1 ON LINE 921 else if protocol_mpx & (xlce.state = CONRESP_WAITING) then do; 004534 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 004535 aa 400000 3150 03 cana 131072,du 004536 aa 000010 6000 04 tze 8,ic 004546 004537 aa 000006 1160 07 cmpq 6,dl 004540 aa 000006 6010 04 tnz 6,ic 004546 STATEMENT 1 ON LINE 922 call clear_call (48); 004541 aa 000060 2360 07 ldq 48,dl 004542 aa 6 00717 7561 00 stq pr6|463 004543 aa 010477 3520 04 epp2 4415,ic 015242 = 000002000000 004544 aa 004025 6700 04 tsp4 2069,ic 010571 STATEMENT 1 ON LINE 923 return; 004545 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 924 end; STATEMENT 1 ON LINE 925 end; STATEMENT 1 ON LINE 927 return; 004546 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 929 INTERRUPT (6): /* ACCEPT INPUT - process an input frame */ unspec (rtx_info) = int_data; 004547 aa 6 00126 2371 00 ldaq pr6|86 int_data 004550 aa 6 00176 7571 00 staq pr6|126 STATEMENT 1 ON LINE 931 chain_ptr, blockp = pointer (x25_data_ptr, rtx_info.chain_head); 004551 aa 6 00176 2351 00 lda pr6|126 rtx_info.chain_head 004552 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 004553 aa 6 00166 3521 20 epp2 pr6|118,* x25_data_ptr 004554 aa 000000 3120 01 eawp2 0,au 004555 aa 6 00746 2521 00 spri2 pr6|486 004556 aa 6 00104 2521 00 spri2 pr6|68 chain_ptr 004557 aa 6 00262 2521 00 spri2 pr6|178 blockp STATEMENT 1 ON LINE 932 endp = pointer (x25_data_ptr, rtx_info.chain_tail); 004560 aa 6 00176 2351 00 lda pr6|126 rtx_info.chain_tail 004561 aa 000022 7350 00 als 18 004562 aa 6 00166 3515 20 epp1 pr6|118,* x25_data_ptr 004563 aa 000000 3114 01 eawp1 0,au 004564 aa 6 00100 2515 00 spri1 pr6|64 endp STATEMENT 1 ON LINE 934 if buffer.tally < L2_HEADER_PAD + 3 then do; 004565 aa 000005 2360 07 ldq 5,dl 004566 aa 6 00717 7561 00 stq pr6|463 004567 aa 2 00000 2361 00 ldq pr2|0 buffer.tally 004570 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 004571 aa 6 00717 1161 00 cmpq pr6|463 004572 aa 000033 6050 04 tpl 27,ic 004625 STATEMENT 1 ON LINE 935 call syserr (Log_message, "x25_mpx(^a): Packet too short.", x25_data.name); 004573 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004574 aa 773525 00 0040 desc9a -2219,32 000320 = 170062065137 004575 aa 6 00722 00 0040 desc9a pr6|466,32 004576 aa 773362 3520 04 epp2 -2318,ic 000160 = 000000000004 004577 aa 6 00766 2521 00 spri2 pr6|502 004600 aa 6 00722 3521 00 epp2 pr6|466 004601 aa 6 00770 2521 00 spri2 pr6|504 004602 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 004603 aa 6 00772 2521 00 spri2 pr6|506 004604 aa 773352 3520 04 epp2 -2326,ic 000156 = 404000000021 004605 aa 6 00774 2521 00 spri2 pr6|508 004606 aa 773322 3520 04 epp2 -2350,ic 000130 = 524000000036 004607 aa 6 00776 2521 00 spri2 pr6|510 004610 aa 773327 3520 04 epp2 -2345,ic 000137 = 524000000040 004611 aa 6 01000 2521 00 spri2 pr6|512 004612 aa 6 00764 6211 00 eax1 pr6|500 004613 aa 014000 4310 07 fld 6144,dl 004614 aa 6 00044 3701 20 epp4 pr6|36,* 004615 la 4 00056 3521 20 epp2 pr4|46,* syserr 004616 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 936 call dump_pkt; 004617 aa 004114 6700 04 tsp4 2124,ic 010733 STATEMENT 1 ON LINE 937 call send_diag (38); 004620 aa 000046 2360 07 ldq 38,dl 004621 aa 6 00717 7561 00 stq pr6|463 004622 aa 010420 3520 04 epp2 4368,ic 015242 = 000002000000 004623 aa 005601 6700 04 tsp4 2945,ic 012424 STATEMENT 1 ON LINE 938 goto done_in_pkt; 004624 aa 003613 7100 04 tra 1931,ic 010437 STATEMENT 1 ON LINE 939 end; STATEMENT 1 ON LINE 941 if x25_pkt.l3_header.format ^= x25_data.gfid then do; 004625 aa 2 00001 2351 00 lda pr2|1 x25_pkt.format 004626 aa 000025 7350 00 als 21 004627 aa 0 00004 3771 00 anaq pr0|4 = 600000000000 000000000000 004630 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 004631 aa 7 00017 1151 00 cmpa pr7|15 x25_data.gfid 004632 aa 000055 6000 04 tze 45,ic 004707 STATEMENT 1 ON LINE 943 call syserr (Log_message, "x25_mpx(^a): Unrecognized general format ID ^b^b^2b.", x25_data.name, x25_pkt.l3_header.q, x25_pkt.l3_header.d, x25_pkt.l3_header.format); 004633 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004634 aa 774054 00 0064 desc9a -2004,52 000707 = 170062065137 004635 aa 6 00764 00 0064 desc9a pr6|500,52 004636 aa 773322 3520 04 epp2 -2350,ic 000160 = 000000000004 004637 aa 6 01020 2521 00 spri2 pr6|528 004640 aa 6 00764 3521 00 epp2 pr6|500 004641 aa 6 01022 2521 00 spri2 pr6|530 004642 aa 7 00000 3521 00 epp2 pr7|0 x25_data.name 004643 aa 6 01024 2521 00 spri2 pr6|532 004644 aa 000023 7270 07 lxl7 19,dl 004645 aa 6 00262 3715 20 epp5 pr6|178,* blockp 004646 aa 5 00001 3521 00 epp2 pr5|1 x25_pkt.q 004647 aa 2 00000 5035 17 abd pr2|0,7 004650 aa 6 01026 2521 00 spri2 pr6|534 004651 aa 000024 7260 07 lxl6 20,dl 004652 aa 5 00001 3521 00 epp2 pr5|1 x25_pkt.d 004653 aa 2 00000 5035 16 abd pr2|0,6 004654 aa 6 01030 2521 00 spri2 pr6|536 004655 aa 000025 7250 07 lxl5 21,dl 004656 aa 5 00001 3521 00 epp2 pr5|1 x25_pkt.format 004657 aa 2 00000 5035 15 abd pr2|0,5 004660 aa 6 01032 2521 00 spri2 pr6|538 004661 aa 773275 3520 04 epp2 -2371,ic 000156 = 404000000021 004662 aa 6 01034 2521 00 spri2 pr6|540 004663 aa 773244 3520 04 epp2 -2396,ic 000127 = 524000000064 004664 aa 6 01036 2521 00 spri2 pr6|542 004665 aa 773252 3520 04 epp2 -2390,ic 000137 = 524000000040 004666 aa 6 01040 2521 00 spri2 pr6|544 004667 aa 773263 3520 04 epp2 -2381,ic 000152 = 516000000001 004670 aa 6 01042 2521 00 spri2 pr6|546 004671 aa 6 01044 2521 00 spri2 pr6|548 004672 aa 773234 3520 04 epp2 -2404,ic 000126 = 516000000002 004673 aa 6 01046 2521 00 spri2 pr6|550 004674 aa 6 01016 6211 00 eax1 pr6|526 004675 aa 030000 4310 07 fld 12288,dl 004676 aa 6 00044 3701 20 epp4 pr6|36,* 004677 la 4 00056 3521 20 epp2 pr4|46,* syserr 004700 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 945 call dump_pkt; 004701 aa 004032 6700 04 tsp4 2074,ic 010733 STATEMENT 1 ON LINE 946 call send_diag (40); 004702 aa 000050 2360 07 ldq 40,dl 004703 aa 6 00717 7561 00 stq pr6|463 004704 aa 010336 3520 04 epp2 4318,ic 015242 = 000002000000 004705 aa 005517 6700 04 tsp4 2895,ic 012424 STATEMENT 1 ON LINE 947 goto done_in_pkt; 004706 aa 003531 7100 04 tra 1881,ic 010437 STATEMENT 1 ON LINE 948 end; STATEMENT 1 ON LINE 950 lcx = binary (x25_pkt.l3_header.lcgn || x25_pkt.l3_header.lcn, 12); 004707 aa 2 00001 2351 00 lda pr2|1 x25_pkt.lcgn 004710 aa 000027 7350 00 als 23 004711 aa 0 00010 3771 00 anaq pr0|8 = 740000000000 000000000000 004712 aa 6 00717 7551 00 sta pr6|463 x25_pkt.lcgn 004713 aa 2 00001 2351 00 lda pr2|1 x25_pkt.lcn 004714 aa 000034 7350 00 als 28 004715 aa 000004 7710 00 arl 4 004716 aa 6 00717 2751 00 ora pr6|463 x25_pkt.lcgn 004717 aa 000074 7730 00 lrl 60 004720 aa 6 00117 7561 00 stq pr6|79 lcx STATEMENT 1 ON LINE 954 if lcx > x25_data.n_lc then do; 004721 aa 7 00012 1161 00 cmpq pr7|10 x25_data.n_lc 004722 aa 000037 6044 04 tmoz 31,ic 004761 STATEMENT 1 ON LINE 955 call syserr (Log_message, "x25_mpx(^a): Invalid channel number ^d.", x25_data.name, lcx); 004723 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004724 aa 773570 00 0050 desc9a -2184,40 000513 = 170062065137 004725 aa 6 00732 00 0050 desc9a pr6|474,40 004726 aa 773232 3520 04 epp2 -2406,ic 000160 = 000000000004 004727 aa 6 00766 2521 00 spri2 pr6|502 004730 aa 6 00732 3521 00 epp2 pr6|474 004731 aa 6 00770 2521 00 spri2 pr6|504 004732 aa 7 00000 3521 00 epp2 pr7|0 x25_data.name 004733 aa 6 00772 2521 00 spri2 pr6|506 004734 aa 6 00117 3521 00 epp2 pr6|79 lcx 004735 aa 6 00774 2521 00 spri2 pr6|508 004736 aa 773220 3520 04 epp2 -2416,ic 000156 = 404000000021 004737 aa 6 00776 2521 00 spri2 pr6|510 004740 aa 773165 3520 04 epp2 -2443,ic 000125 = 524000000047 004741 aa 6 01000 2521 00 spri2 pr6|512 004742 aa 773175 3520 04 epp2 -2435,ic 000137 = 524000000040 004743 aa 6 01002 2521 00 spri2 pr6|514 004744 aa 773165 3520 04 epp2 -2443,ic 000131 = 604000000014 004745 aa 6 01004 2521 00 spri2 pr6|516 004746 aa 6 00764 6211 00 eax1 pr6|500 004747 aa 020000 4310 07 fld 8192,dl 004750 aa 6 00044 3701 20 epp4 pr6|36,* 004751 la 4 00056 3521 20 epp2 pr4|46,* syserr 004752 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 956 call dump_pkt; 004753 aa 003760 6700 04 tsp4 2032,ic 010733 STATEMENT 1 ON LINE 957 call send_diag (36); 004754 aa 000044 2360 07 ldq 36,dl 004755 aa 6 00717 7561 00 stq pr6|463 004756 aa 010264 3520 04 epp2 4276,ic 015242 = 000002000000 004757 aa 005445 6700 04 tsp4 2853,ic 012424 STATEMENT 1 ON LINE 958 goto done_in_pkt; 004760 aa 003457 7100 04 tra 1839,ic 010437 STATEMENT 1 ON LINE 959 end; STATEMENT 1 ON LINE 961 protocol_mpx = "0"b; 004761 aa 010265 2350 04 lda 4277,ic 015246 = 377777777777 004762 aa 6 00156 3551 00 ansa pr6|110 protocol_mpx STATEMENT 1 ON LINE 962 if x25_data.state = X25_ACTIVE then do; 004763 aa 7 00011 2361 00 ldq pr7|9 x25_data.state 004764 aa 000003 1160 07 cmpq 3,dl 004765 aa 003374 6010 04 tnz 1788,ic 010361 STATEMENT 1 ON LINE 963 if lcx = 0 then do; 004766 aa 6 00117 2361 00 ldq pr6|79 lcx 004767 aa 000136 6010 04 tnz 94,ic 005125 STATEMENT 1 ON LINE 967 if x25_pkt.type = RSRTRQ then do; 004770 aa 2 00002 2351 00 lda pr2|2 x25_pkt.type 004771 aa 000001 7350 00 als 1 004772 aa 0 00020 3771 00 anaq pr0|16 = 776000000000 000000000000 004773 aa 6 00717 7551 00 sta pr6|463 x25_pkt.type 004774 aa 766000 1150 03 cmpa 257024,du 004775 aa 000024 6010 04 tnz 20,ic 005021 STATEMENT 1 ON LINE 968 call crash_subchannels; 004776 aa 003674 6700 04 tsp4 1980,ic 010672 STATEMENT 1 ON LINE 969 call free_in_pkt; 004777 aa 004047 6700 04 tsp4 2087,ic 011046 STATEMENT 1 ON LINE 970 call get_buffer (16); 005000 aa 000020 2360 07 ldq 16,dl 005001 aa 6 00745 7561 00 stq pr6|485 005002 aa 010006 3520 04 epp2 4102,ic 015010 = 000002000000 005003 aa 004143 6700 04 tsp4 2147,ic 011146 STATEMENT 1 ON LINE 971 call make_header (0, "0"b); 005004 aa 6 00745 4501 00 stz pr6|485 005005 aa 000000 2350 07 lda 0,dl 005006 aa 6 00744 7551 00 sta pr6|484 005007 aa 007773 3520 04 epp2 4091,ic 015002 = 000004000000 005010 aa 004323 6700 04 tsp4 2259,ic 011333 STATEMENT 1 ON LINE 972 x25_pkt.type = RSRTCN; 005011 aa 377000 2350 03 lda 130560,du 005012 aa 6 00262 3735 20 epp7 pr6|178,* blockp 005013 aa 7 00002 2551 00 orsa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 973 buffer.tally = 3 + L2_HEADER_PAD; 005014 aa 000005 2360 07 ldq 5,dl 005015 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 974 call write_pkt; 005016 aa 006674 6700 04 tsp4 3516,ic 013712 STATEMENT 1 ON LINE 975 call send_output; 005017 aa 005437 6700 04 tsp4 2847,ic 012456 STATEMENT 1 ON LINE 976 goto done_in_pkt; 005020 aa 003417 7100 04 tra 1807,ic 010437 STATEMENT 1 ON LINE 977 end; STATEMENT 1 ON LINE 981 if x25_pkt.type = RSRTCN then do; 005021 aa 776000 1150 03 cmpa 261120,du 005022 aa 000007 6010 04 tnz 7,ic 005031 STATEMENT 1 ON LINE 982 call free_in_pkt; 005023 aa 004023 6700 04 tsp4 2067,ic 011046 STATEMENT 1 ON LINE 983 call restart (16); 005024 aa 000020 2360 07 ldq 16,dl 005025 aa 6 00744 7561 00 stq pr6|484 005026 aa 010174 3520 04 epp2 4220,ic 015222 = 000002000000 005027 aa 005114 6700 04 tsp4 2636,ic 012143 STATEMENT 1 ON LINE 984 goto done_in_pkt; 005030 aa 003407 7100 04 tra 1799,ic 010437 STATEMENT 1 ON LINE 985 end; STATEMENT 1 ON LINE 989 if x25_pkt.type = DIAG then do; 005031 aa 742000 1150 03 cmpa 246784,du 005032 aa 000036 6010 04 tnz 30,ic 005070 STATEMENT 1 ON LINE 990 call syserr (Log_message, "x25_mpx(^a): Diagnostic type ^d.", x25_data.name, binary (x25_pkt.no_fc_data (1), 8)); 005033 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005034 aa 773255 00 0040 desc9a -2387,32 000310 = 170062065137 005035 aa 6 00722 00 0040 desc9a pr6|466,32 005036 aa 2 00002 2351 00 lda pr2|2 x25_pkt.no_fc_data 005037 aa 000011 7350 00 als 9 005040 aa 000077 7730 00 lrl 63 005041 aa 6 00717 7561 00 stq pr6|463 005042 aa 773116 3520 04 epp2 -2482,ic 000160 = 000000000004 005043 aa 6 00766 2521 00 spri2 pr6|502 005044 aa 6 00722 3521 00 epp2 pr6|466 005045 aa 6 00770 2521 00 spri2 pr6|504 005046 aa 7 00000 3521 00 epp2 pr7|0 x25_data.name 005047 aa 6 00772 2521 00 spri2 pr6|506 005050 aa 6 00717 3521 00 epp2 pr6|463 005051 aa 6 00774 2521 00 spri2 pr6|508 005052 aa 773104 3520 04 epp2 -2492,ic 000156 = 404000000021 005053 aa 6 00776 2521 00 spri2 pr6|510 005054 aa 773063 3520 04 epp2 -2509,ic 000137 = 524000000040 005055 aa 6 01000 2521 00 spri2 pr6|512 005056 aa 6 01002 2521 00 spri2 pr6|514 005057 aa 773045 3520 04 epp2 -2523,ic 000124 = 404000000010 005060 aa 6 01004 2521 00 spri2 pr6|516 005061 aa 6 00764 6211 00 eax1 pr6|500 005062 aa 020000 4310 07 fld 8192,dl 005063 aa 6 00044 3701 20 epp4 pr6|36,* 005064 la 4 00056 3521 20 epp2 pr4|46,* syserr 005065 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 992 call dump_pkt; 005066 aa 003645 6700 04 tsp4 1957,ic 010733 STATEMENT 1 ON LINE 993 goto done_in_pkt; 005067 aa 003350 7100 04 tra 1768,ic 010437 STATEMENT 1 ON LINE 994 end; STATEMENT 1 ON LINE 996 call syserr (Log_message, "x25_mpx(^a): Invalid packet type ^.4b on LC 0.", x25_data.name, x25_pkt.type); 005070 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005071 aa 773566 00 0060 desc9a -2186,48 000656 = 170062065137 005072 aa 6 00750 00 0060 desc9a pr6|488,48 005073 aa 773065 3520 04 epp2 -2507,ic 000160 = 000000000004 005074 aa 6 00766 2521 00 spri2 pr6|502 005075 aa 6 00750 3521 00 epp2 pr6|488 005076 aa 6 00770 2521 00 spri2 pr6|504 005077 aa 7 00000 3521 00 epp2 pr7|0 x25_data.name 005100 aa 6 00772 2521 00 spri2 pr6|506 005101 aa 000001 7270 07 lxl7 1,dl 005102 aa 6 00262 3715 20 epp5 pr6|178,* blockp 005103 aa 5 00002 3521 00 epp2 pr5|2 x25_pkt.type 005104 aa 2 00000 5035 17 abd pr2|0,7 005105 aa 6 00774 2521 00 spri2 pr6|508 005106 aa 773050 3520 04 epp2 -2520,ic 000156 = 404000000021 005107 aa 6 00776 2521 00 spri2 pr6|510 005110 aa 773013 3520 04 epp2 -2549,ic 000123 = 524000000056 005111 aa 6 01000 2521 00 spri2 pr6|512 005112 aa 773025 3520 04 epp2 -2539,ic 000137 = 524000000040 005113 aa 6 01002 2521 00 spri2 pr6|514 005114 aa 773006 3520 04 epp2 -2554,ic 000122 = 516000000010 005115 aa 6 01004 2521 00 spri2 pr6|516 005116 aa 6 00764 6211 00 eax1 pr6|500 005117 aa 020000 4310 07 fld 8192,dl 005120 aa 6 00044 3701 20 epp4 pr6|36,* 005121 la 4 00056 3521 20 epp2 pr4|46,* syserr 005122 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 998 call dump_pkt; 005123 aa 003610 6700 04 tsp4 1928,ic 010733 STATEMENT 1 ON LINE 999 goto done_in_pkt; 005124 aa 003313 7100 04 tra 1739,ic 010437 STATEMENT 1 ON LINE 1000 end; STATEMENT 1 ON LINE 1004 xlcep = addr (x25_lces.lc (lcx)); 005125 aa 000005 7360 00 qls 5 005126 aa 7 00032 3715 20 epp5 pr7|26,* x25_data.lc_ptr 005127 aa 5 77740 3535 06 epp3 pr5|-32,ql x25_lces.lc 005130 aa 6 00170 2535 00 spri3 pr6|120 xlcep STATEMENT 1 ON LINE 1005 scx = xlce.scx; 005131 aa 3 00001 2361 00 ldq pr3|1 xlce.scx 005132 aa 6 00120 7561 00 stq pr6|80 scx STATEMENT 1 ON LINE 1006 if scx > 0 then do; 005133 aa 002051 6044 04 tmoz 1065,ic 007204 STATEMENT 1 ON LINE 1007 xscep = addr (x25_data.sc (scx)); 005134 aa 000026 4020 07 mpy 22,dl 005135 aa 7 00024 3715 06 epp5 pr7|20,ql x25_data.sc 005136 aa 6 00172 6515 00 spri5 pr6|122 xscep STATEMENT 1 ON LINE 1008 protocol_mpx = get_protocol_sc (); 005137 aa 010111 3520 04 epp2 4169,ic 015250 = 000002000000 005140 aa 007111 6700 04 tsp4 3657,ic 014251 STATEMENT 1 ON LINE 1010 if protocol_mpx then if x25_data.packet_trace_sw then call log_packet ("0"b); 005141 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 005142 aa 400000 3150 03 cana 131072,du 005143 aa 000011 6000 04 tze 9,ic 005154 005144 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 005145 aa 7 00015 2351 00 lda pr7|13 x25_data.packet_trace_sw 005146 aa 010000 3150 03 cana 4096,du 005147 aa 000005 6000 04 tze 5,ic 005154 005150 aa 000000 2350 07 lda 0,dl 005151 aa 6 00717 7551 00 sta pr6|463 005152 aa 010070 3520 04 epp2 4152,ic 015242 = 000002000000 005153 aa 006656 6700 04 tsp4 3502,ic 014031 STATEMENT 1 ON LINE 1015 if substr (x25_pkt.type, 8, 1) = "0"b then do; 005154 aa 6 00262 3735 20 epp7 pr6|178,* blockp 005155 aa 7 00002 2351 00 lda pr7|2 x25_pkt.type 005156 aa 001000 3150 03 cana 512,du 005157 aa 000747 6010 04 tnz 487,ic 006126 STATEMENT 1 ON LINE 1017 if xlce.state ^= FLOW_CONTROL_READY then do; 005160 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 005161 aa 000003 1160 07 cmpq 3,dl 005162 aa 000003 6000 04 tze 3,ic 005165 STATEMENT 1 ON LINE 1018 call handle_data_or_fc_error; 005163 aa 004073 6700 04 tsp4 2107,ic 011256 STATEMENT 1 ON LINE 1019 goto done_in_pkt; 005164 aa 003253 7100 04 tra 1707,ic 010437 STATEMENT 1 ON LINE 1020 end; STATEMENT 1 ON LINE 1023 call proc_pr (pr_error); 005165 aa 007611 3520 04 epp2 3977,ic 014776 = 000002000000 005166 aa 004236 6700 04 tsp4 2206,ic 011424 STATEMENT 1 ON LINE 1024 if pr_error then goto done_in_pkt; 005167 aa 6 00155 2351 00 lda pr6|109 pr_error 005170 aa 400000 3150 03 cana 131072,du 005171 aa 003246 6010 04 tnz 1702,ic 010437 STATEMENT 1 ON LINE 1026 if x25_data.seq_mod = 8 /* extract packet seq number */ then do; 005172 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 005173 aa 7 00016 2361 00 ldq pr7|14 x25_data.seq_mod 005174 aa 000010 1160 07 cmpq 8,dl 005175 aa 000033 6010 04 tnz 27,ic 005230 STATEMENT 1 ON LINE 1028 temp_ps = m8_fc_data.ps; 005176 aa 6 00262 3715 20 epp5 pr6|178,* blockp 005177 aa 5 00002 2351 00 lda pr5|2 m8_fc_data.ps 005200 aa 000005 7350 00 als 5 005201 aa 000105 7730 00 lrl 69 005202 aa 6 00116 7561 00 stq pr6|78 temp_ps STATEMENT 1 ON LINE 1029 hdr_size = 3; 005203 aa 000003 2360 07 ldq 3,dl 005204 aa 6 00131 7561 00 stq pr6|89 hdr_size STATEMENT 1 ON LINE 1030 l4_data_ptr = addr (m8_fc_data.user_data); 005205 aa 000011 7270 07 lxl7 9,dl 005206 aa 5 00002 3521 00 epp2 pr5|2 m8_fc_data.user_data 005207 aa 2 00000 5035 17 abd pr2|0,7 005210 aa 6 00164 2521 00 spri2 pr6|116 l4_data_ptr STATEMENT 1 ON LINE 1031 rtx_info.break_char, endp -> buffer.flags.break = ^m8_fc_data.m; 005211 aa 5 00002 2351 00 lda pr5|2 m8_fc_data.m 005212 aa 000004 7350 00 als 4 005213 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 005214 aa 0 00002 6751 00 era pr0|2 = 400000000000 005215 aa 000022 7710 00 arl 18 005216 aa 6 00717 7551 00 sta pr6|463 005217 aa 6 00177 6751 00 era pr6|127 rtx_info.break_char 005220 aa 400000 3750 07 ana 131072,dl 005221 aa 6 00177 6551 00 ersa pr6|127 rtx_info.break_char 005222 aa 6 00717 2351 00 lda pr6|463 005223 aa 000002 7710 00 arl 2 005224 aa 6 00100 6751 20 era pr6|64,* buffer.break 005225 aa 100000 3750 07 ana 32768,dl 005226 aa 6 00100 6551 20 ersa pr6|64,* buffer.break STATEMENT 1 ON LINE 1032 end; 005227 aa 000032 7100 04 tra 26,ic 005261 STATEMENT 1 ON LINE 1033 else do; STATEMENT 1 ON LINE 1034 temp_ps = m128_fc_data.ps; 005230 aa 6 00262 3715 20 epp5 pr6|178,* blockp 005231 aa 5 00002 2351 00 lda pr5|2 m128_fc_data.ps 005232 aa 000001 7350 00 als 1 005233 aa 000101 7730 00 lrl 65 005234 aa 6 00116 7561 00 stq pr6|78 temp_ps STATEMENT 1 ON LINE 1035 hdr_size = 4; 005235 aa 000004 2360 07 ldq 4,dl 005236 aa 6 00131 7561 00 stq pr6|89 hdr_size STATEMENT 1 ON LINE 1036 l4_data_ptr = addr (m128_fc_data.user_data); 005237 aa 000022 7270 07 lxl7 18,dl 005240 aa 5 00002 3521 00 epp2 pr5|2 m128_fc_data.user_data 005241 aa 2 00000 5035 17 abd pr2|0,7 005242 aa 6 00164 2521 00 spri2 pr6|116 l4_data_ptr STATEMENT 1 ON LINE 1037 rtx_info.break_char, endp -> buffer.flags.break = ^m128_fc_data.m; 005243 aa 5 00002 2351 00 lda pr5|2 m128_fc_data.m 005244 aa 000021 7350 00 als 17 005245 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 005246 aa 0 00002 6751 00 era pr0|2 = 400000000000 005247 aa 000022 7710 00 arl 18 005250 aa 6 00717 7551 00 sta pr6|463 005251 aa 6 00177 6751 00 era pr6|127 rtx_info.break_char 005252 aa 400000 3750 07 ana 131072,dl 005253 aa 6 00177 6551 00 ersa pr6|127 rtx_info.break_char 005254 aa 6 00717 2351 00 lda pr6|463 005255 aa 000002 7710 00 arl 2 005256 aa 6 00100 6751 20 era pr6|64,* buffer.break 005257 aa 100000 3750 07 ana 32768,dl 005260 aa 6 00100 6551 20 ersa pr6|64,* buffer.break STATEMENT 1 ON LINE 1038 end; STATEMENT 1 ON LINE 1040 if temp_ps ^= xlce.next_recv_seq then do; 005261 aa 6 00116 2361 00 ldq pr6|78 temp_ps 005262 aa 6 00170 3535 20 epp3 pr6|120,* xlcep 005263 aa 3 00014 1161 00 cmpq pr3|12 xlce.next_recv_seq 005264 aa 000042 6000 04 tze 34,ic 005326 STATEMENT 1 ON LINE 1042 call syserr (Log_message, "x25_mpx(^a): Sequence error P(S)=^d V(R)=^d.", xsce.name, temp_ps, xlce.next_recv_seq); 005265 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005266 aa 773326 00 0054 desc9a -2346,44 000613 = 170062065137 005267 aa 6 00750 00 0054 desc9a pr6|488,44 005270 aa 772670 3520 04 epp2 -2632,ic 000160 = 000000000004 005271 aa 6 00766 2521 00 spri2 pr6|502 005272 aa 6 00750 3521 00 epp2 pr6|488 005273 aa 6 00770 2521 00 spri2 pr6|504 005274 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 005275 aa 6 00772 2521 00 spri2 pr6|506 005276 aa 6 00116 3521 00 epp2 pr6|78 temp_ps 005277 aa 6 00774 2521 00 spri2 pr6|508 005300 aa 3 00014 3521 00 epp2 pr3|12 xlce.next_recv_seq 005301 aa 6 00776 2521 00 spri2 pr6|510 005302 aa 772654 3520 04 epp2 -2644,ic 000156 = 404000000021 005303 aa 6 01000 2521 00 spri2 pr6|512 005304 aa 772615 3520 04 epp2 -2675,ic 000121 = 524000000054 005305 aa 6 01002 2521 00 spri2 pr6|514 005306 aa 772631 3520 04 epp2 -2663,ic 000137 = 524000000040 005307 aa 6 01004 2521 00 spri2 pr6|516 005310 aa 772610 3520 04 epp2 -2680,ic 000120 = 604000000007 005311 aa 6 01006 2521 00 spri2 pr6|518 005312 aa 6 01010 2521 00 spri2 pr6|520 005313 aa 6 00764 6211 00 eax1 pr6|500 005314 aa 024000 4310 07 fld 10240,dl 005315 aa 6 00044 3701 20 epp4 pr6|36,* 005316 la 4 00056 3521 20 epp2 pr4|46,* syserr 005317 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1044 call dump_pkt; 005320 aa 003413 6700 04 tsp4 1803,ic 010733 STATEMENT 1 ON LINE 1045 call reset_lc (1); 005321 aa 000001 2360 07 ldq 1,dl 005322 aa 6 00717 7561 00 stq pr6|463 005323 aa 007717 3520 04 epp2 4047,ic 015242 = 000002000000 005324 aa 004267 6700 04 tsp4 2231,ic 011613 STATEMENT 1 ON LINE 1046 goto done_in_pkt; 005325 aa 003112 7100 04 tra 1610,ic 010437 STATEMENT 1 ON LINE 1047 end; STATEMENT 1 ON LINE 1049 xlce.next_recv_seq = mod (xlce.next_recv_seq + 1, x25_data.seq_mod); 005326 aa 3 00014 2361 00 ldq pr3|12 xlce.next_recv_seq 005327 aa 000001 0760 07 adq 1,dl 005330 aa 7 00016 3521 00 epp2 pr7|14 x25_data.seq_mod 005331 aa 0 00704 7001 00 tsx0 pr0|452 mdfx1 005332 aa 3 00014 7561 00 stq pr3|12 xlce.next_recv_seq STATEMENT 1 ON LINE 1051 if x25_pkt.l3_header.d then xlce.force_ack_time = 0; 005333 aa 5 00001 2351 00 lda pr5|1 x25_pkt.d 005334 aa 100000 3150 07 cana 32768,dl 005335 aa 000004 6000 04 tze 4,ic 005341 005336 aa 772646 2370 04 ldaq -2650,ic 000204 = 000000000000 000000000000 005337 aa 3 00010 7571 00 staq pr3|8 xlce.force_ack_time 005340 aa 000004 7100 04 tra 4,ic 005344 STATEMENT 1 ON LINE 1053 else xlce.force_ack_time = clock () + TIMEOUT; 005341 aa 0 01435 7001 00 tsx0 pr0|797 clock_mac 005342 aa 772530 0770 04 adaq -2728,ic 000072 = 000000000000 000003641100 005343 aa 3 00010 7571 00 staq pr3|8 xlce.force_ack_time STATEMENT 1 ON LINE 1056 if x25_pkt.l3_header.q then do; 005344 aa 5 00001 2351 00 lda pr5|1 x25_pkt.q 005345 aa 200000 3150 07 cana 65536,dl 005346 aa 000345 6000 04 tze 229,ic 005713 STATEMENT 1 ON LINE 1057 if ^xlce.flags.iti_call then do; 005347 aa 3 00005 2351 00 lda pr3|5 xlce.iti_call 005350 aa 400000 3150 03 cana 131072,du 005351 aa 000022 6010 04 tnz 18,ic 005373 STATEMENT 1 ON LINE 1059 int_data = substr (string (l4_data), 1, 72); 005352 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 005353 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 005354 aa 7 00000 00 0110 descb pr7|0,72 005355 aa 6 00126 00 0110 descb pr6|86,72 int_data STATEMENT 1 ON LINE 1060 call channel_manager$interrupt (xsce.devx, LINE_STATUS, int_data); 005356 aa 6 00172 3515 20 epp1 pr6|122,* xscep 005357 aa 1 00010 3521 00 epp2 pr1|8 xsce.devx 005360 aa 6 00724 2521 00 spri2 pr6|468 005361 aa 772603 3520 04 epp2 -2685,ic 000164 = 000000000011 005362 aa 6 00726 2521 00 spri2 pr6|470 005363 aa 6 00126 3521 00 epp2 pr6|86 int_data 005364 aa 6 00730 2521 00 spri2 pr6|472 005365 aa 6 00722 6211 00 eax1 pr6|466 005366 aa 014000 4310 07 fld 6144,dl 005367 aa 6 00044 3701 20 epp4 pr6|36,* 005370 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 005371 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1061 end; 005372 aa 003046 7100 04 tra 1574,ic 010440 STATEMENT 1 ON LINE 1062 else do; STATEMENT 1 ON LINE 1063 i = binary (l4_data (1), 8); 005373 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 005374 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 005375 aa 7 00000 00 0011 descb pr7|0,9 l4_data 005376 aa 6 00056 00 0044 descb pr6|46,36 005377 aa 6 00056 2351 00 lda pr6|46 005400 aa 000077 7730 00 lrl 63 005401 aa 6 00122 7561 00 stq pr6|82 i STATEMENT 1 ON LINE 1065 if i > hbound (iti, 1) then do; 005402 aa 000006 1160 07 cmpq 6,dl 005403 aa 000002 6054 04 tpnz 2,ic 005405 005404 ta 000021 7100 06 tra 17,ql STATEMENT 1 ON LINE 1066 call syserr (Log_message, "x25_mpx(^a): Invalid X.29 command ^d.", xsce.name, i); 005405 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005406 aa 773074 00 0050 desc9a -2500,40 000501 = 170062065137 005407 aa 6 00732 00 0050 desc9a pr6|474,40 005410 aa 772550 3520 04 epp2 -2712,ic 000160 = 000000000004 005411 aa 6 00766 2521 00 spri2 pr6|502 005412 aa 6 00732 3521 00 epp2 pr6|474 005413 aa 6 00770 2521 00 spri2 pr6|504 005414 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 005415 aa 6 00772 2521 00 spri2 pr6|506 005416 aa 6 00122 3521 00 epp2 pr6|82 i 005417 aa 6 00774 2521 00 spri2 pr6|508 005420 aa 772536 3520 04 epp2 -2722,ic 000156 = 404000000021 005421 aa 6 00776 2521 00 spri2 pr6|510 005422 aa 6 01004 2521 00 spri2 pr6|516 005423 aa 772507 3520 04 epp2 -2745,ic 000132 = 524000000045 005424 aa 6 01000 2521 00 spri2 pr6|512 005425 aa 772512 3520 04 epp2 -2742,ic 000137 = 524000000040 005426 aa 6 01002 2521 00 spri2 pr6|514 005427 aa 6 00764 6211 00 eax1 pr6|500 005430 aa 020000 4310 07 fld 8192,dl 005431 aa 6 00044 3701 20 epp4 pr6|36,* 005432 la 4 00056 3521 20 epp2 pr4|46,* syserr 005433 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1067 call dump_pkt; 005434 aa 003277 6700 04 tsp4 1727,ic 010733 STATEMENT 1 ON LINE 1068 call get_buffer (16); 005435 aa 000020 2360 07 ldq 16,dl 005436 aa 6 00717 7561 00 stq pr6|463 005437 aa 007603 3520 04 epp2 3971,ic 015242 = 000002000000 005440 aa 003506 6700 04 tsp4 1862,ic 011146 STATEMENT 1 ON LINE 1069 call make_header (lcx, "1"b); 005441 aa 400000 2350 03 lda 131072,du 005442 aa 6 00717 7551 00 sta pr6|463 005443 aa 007571 3520 04 epp2 3961,ic 015234 = 000004000000 005444 aa 003667 6700 04 tsp4 1975,ic 011333 STATEMENT 1 ON LINE 1070 l4_data (1) = "005"b3; 005445 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 005446 aa 003 100 060 404 csl (ic),(pr),fill(0),bool(move) 005447 aa 007611 00 0011 descb 3977,9 015257 = 005000000000 005450 aa 7 00000 00 0011 descb pr7|0,9 l4_data STATEMENT 1 ON LINE 1071 l4_data (2) = "001"b3; 005451 aa 003 100 060 404 csl (ic),(pr),fill(0),bool(move) 005452 aa 007611 00 0011 descb 3977,9 015262 = 001000000000 005453 aa 7 00000 20 0011 descb pr7|0(9),9 l4_data STATEMENT 1 ON LINE 1072 l4_data (3) = bit (binary (i, 9)); 005454 aa 6 00122 2351 00 lda pr6|82 i 005455 aa 000002 6050 04 tpl 2,ic 005457 005456 aa 000000 5310 00 neg 0 005457 aa 000033 7350 00 als 27 005460 aa 6 00056 7551 00 sta pr6|46 005461 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 005462 aa 6 00056 00 0011 descb pr6|46,9 005463 aa 7 00000 40 0011 descb pr7|0(18),9 l4_data STATEMENT 1 ON LINE 1073 buffer.tally = hdr_size + 3 + L2_HEADER_PAD; 005464 aa 6 00131 2361 00 ldq pr6|89 hdr_size 005465 aa 000005 0760 07 adq 5,dl 005466 aa 6 00262 3715 20 epp5 pr6|178,* buffer.tally 005467 aa 5 00000 5521 04 stbq pr5|0,04 buffer.tally STATEMENT 1 ON LINE 1074 call write_data_pkt; 005470 aa 006165 6700 04 tsp4 3189,ic 013655 STATEMENT 1 ON LINE 1075 goto done_data_pkt; 005471 aa 002747 7100 04 tra 1511,ic 010440 STATEMENT 1 ON LINE 1076 end; STATEMENT 1 ON LINE 1079 iti (0): /* parameter indication */ do i = 2 by 2 to buffer.tally - hdr_size - L2_HEADER_PAD; 005472 aa 6 00262 2361 20 ldq pr6|178,* buffer.tally 005473 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 005474 aa 6 00131 1761 00 sbq pr6|89 hdr_size 005475 aa 000002 1760 07 sbq 2,dl 005476 aa 6 00272 7561 00 stq pr6|186 005477 aa 000002 2360 07 ldq 2,dl 005500 aa 6 00122 7561 00 stq pr6|82 i 005501 aa 000000 0110 03 nop 0,du 005502 aa 6 00122 2361 00 ldq pr6|82 i 005503 aa 6 00272 1161 00 cmpq pr6|186 005504 aa 002734 6054 04 tpnz 1500,ic 010440 STATEMENT 1 ON LINE 1081 if l4_data (i) = "00000000"b then goto done_data_pkt; 005505 aa 000011 4020 07 mpy 9,dl 005506 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 005507 aa 000 000 066 506 cmpb (pr,ql),(),fill(0) 005510 aa 7 77777 60 0011 descb pr7|-1(27),9 l4_data 005511 aa 000000 00 0000 descb 0,0 005512 aa 002726 6000 04 tze 1494,ic 010440 STATEMENT 1 ON LINE 1089 if xlce.flags.iti_break & (l4_data (i) = "000001000"b) /* & this is resume indication */ & (l4_data (i + 1) = "000000000"b) then do; 005513 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 005514 aa 5 00005 2351 00 lda pr5|5 xlce.iti_break 005515 aa 040000 3150 03 cana 16384,du 005516 aa 000016 6000 04 tze 14,ic 005534 005517 aa 000 004 066 506 cmpb (pr,ql),(ic),fill(0) 005520 aa 7 77777 60 0011 descb pr7|-1(27),9 l4_data 005521 aa 007541 00 0011 descb 3937,9 015260 = 010000000000 005522 aa 000012 6010 04 tnz 10,ic 005534 005523 aa 000 000 066 506 cmpb (pr,ql),(),fill(0) 005524 aa 7 00000 00 0011 descb pr7|0,9 l4_data 005525 aa 000000 00 0000 descb 0,0 005526 aa 000006 6010 04 tnz 6,ic 005534 STATEMENT 1 ON LINE 1092 call free_in_pkt; 005527 aa 003317 6700 04 tsp4 1743,ic 011046 STATEMENT 1 ON LINE 1093 call confirm_interrupt; 005530 aa 003117 6700 04 tsp4 1615,ic 010647 STATEMENT 1 ON LINE 1094 xlce.flags.iti_break = "0"b; 005531 aa 007244 2350 04 lda 3748,ic 014775 = 737777777777 005532 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 005533 aa 7 00005 3551 00 ansa pr7|5 xlce.iti_break STATEMENT 1 ON LINE 1095 end; STATEMENT 1 ON LINE 1096 end; 005534 aa 000002 2360 07 ldq 2,dl 005535 aa 6 00122 0561 00 asq pr6|82 i 005536 aa 777744 7100 04 tra -28,ic 005502 STATEMENT 1 ON LINE 1097 goto done_data_pkt; 005537 aa 002701 7100 04 tra 1473,ic 010440 STATEMENT 1 ON LINE 1099 iti (1): /* invitation to clear */ call free_in_pkt; 005540 aa 003306 6700 04 tsp4 1734,ic 011046 STATEMENT 1 ON LINE 1101 call clear_call (0); 005541 aa 6 00717 4501 00 stz pr6|463 005542 aa 007500 3520 04 epp2 3904,ic 015242 = 000002000000 005543 aa 003026 6700 04 tsp4 1558,ic 010571 STATEMENT 1 ON LINE 1102 goto done_in_pkt; 005544 aa 002673 7100 04 tra 1467,ic 010437 STATEMENT 1 ON LINE 1104 iti (2): /* set parameters */ call set_x29 ("1"b, "0"b); 005545 aa 400000 2350 03 lda 131072,du 005546 aa 6 00717 7551 00 sta pr6|463 005547 aa 000000 2350 07 lda 0,dl 005550 aa 6 00744 7551 00 sta pr6|484 005551 aa 007305 3520 04 epp2 3781,ic 015056 = 000004000000 005552 aa 005344 6700 04 tsp4 2788,ic 013116 STATEMENT 1 ON LINE 1106 goto done_data_pkt; 005553 aa 002665 7100 04 tra 1461,ic 010440 STATEMENT 1 ON LINE 1108 iti (3): /* indication of break */ if xlce.flags.iti_break then do; 005554 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 005555 aa 7 00005 2351 00 lda pr7|5 xlce.iti_break 005556 aa 040000 3150 03 cana 16384,du 005557 aa 002661 6000 04 tze 1457,ic 010440 STATEMENT 1 ON LINE 1110 call channel_manager$interrupt (xsce.devx, QUIT, ""b); 005560 aa 772424 2370 04 ldaq -2796,ic 000204 = 000000000000 000000000000 005561 aa 6 00746 7571 00 staq pr6|486 005562 aa 6 00172 3715 20 epp5 pr6|122,* xscep 005563 aa 5 00010 3521 00 epp2 pr5|8 xsce.devx 005564 aa 6 00724 2521 00 spri2 pr6|468 005565 aa 772363 3520 04 epp2 -2829,ic 000150 = 000000000010 005566 aa 6 00726 2521 00 spri2 pr6|470 005567 aa 6 00746 3521 00 epp2 pr6|486 005570 aa 6 00730 2521 00 spri2 pr6|472 005571 aa 6 00722 6211 00 eax1 pr6|466 005572 aa 014000 4310 07 fld 6144,dl 005573 aa 6 00044 3701 20 epp4 pr6|36,* 005574 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 005575 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1111 call free_in_pkt; 005576 aa 003250 6700 04 tsp4 1704,ic 011046 STATEMENT 1 ON LINE 1112 call get_buffer (16); 005577 aa 000020 2360 07 ldq 16,dl 005600 aa 6 00744 7561 00 stq pr6|484 005601 aa 007421 3520 04 epp2 3857,ic 015222 = 000002000000 005602 aa 003344 6700 04 tsp4 1764,ic 011146 STATEMENT 1 ON LINE 1113 call make_header (lcx, "1"b); 005603 aa 400000 2350 03 lda 131072,du 005604 aa 6 00744 7551 00 sta pr6|484 005605 aa 007407 3520 04 epp2 3847,ic 015214 = 000004000000 005606 aa 003525 6700 04 tsp4 1877,ic 011333 STATEMENT 1 ON LINE 1114 substr (string (l4_data), 1, 3 * 9) = "006010000"b3; 005607 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 005610 aa 003 100 060 404 csl (ic),(pr),fill(0),bool(move) 005611 aa 007446 00 0033 descb 3878,27 015256 = 006010000000 005612 aa 7 00000 00 0033 descb pr7|0,27 STATEMENT 1 ON LINE 1115 buffer.tally = hdr_size + 3 + L2_HEADER_PAD; 005613 aa 6 00131 2361 00 ldq pr6|89 hdr_size 005614 aa 000005 0760 07 adq 5,dl 005615 aa 6 00262 3715 20 epp5 pr6|178,* buffer.tally 005616 aa 5 00000 5521 04 stbq pr5|0,04 buffer.tally STATEMENT 1 ON LINE 1117 call write_data_pkt; 005617 aa 006036 6700 04 tsp4 3102,ic 013655 STATEMENT 1 ON LINE 1118 xsce.flags.end_of_page = "0"b; 005620 aa 007154 2350 04 lda 3692,ic 014774 = 577777777777 005621 aa 6 00172 3735 20 epp7 pr6|122,* xscep 005622 aa 7 00013 3551 00 ansa pr7|11 xsce.end_of_page STATEMENT 1 ON LINE 1119 end; STATEMENT 1 ON LINE 1120 goto done_data_pkt; 005623 aa 002615 7100 04 tra 1421,ic 010440 STATEMENT 1 ON LINE 1122 iti (4): /* read parameters */ call set_x29 ("0"b, "1"b); 005624 aa 000000 2350 07 lda 0,dl 005625 aa 6 00744 7551 00 sta pr6|484 005626 aa 400000 2350 03 lda 131072,du 005627 aa 6 00717 7551 00 sta pr6|463 005630 aa 007234 3520 04 epp2 3740,ic 015064 = 000004000000 005631 aa 005265 6700 04 tsp4 2741,ic 013116 STATEMENT 1 ON LINE 1124 goto done_data_pkt; 005632 aa 002606 7100 04 tra 1414,ic 010440 STATEMENT 1 ON LINE 1126 iti (5): /* error */ call syserr (Log_message, "x25_mpx(^a): X.29 ERROR ^d/^d", xsce.name, binary (l4_data (2), 9), binary (l4_data (3), 9)); 005633 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005634 aa 772445 00 0040 desc9a -2779,32 000300 = 170062065137 005635 aa 6 00722 00 0040 desc9a pr6|466,32 005636 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 005637 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 005640 aa 7 00000 20 0011 descb pr7|0(9),9 l4_data 005641 aa 6 00056 00 0044 descb pr6|46,36 005642 aa 6 00056 2351 00 lda pr6|46 005643 aa 000077 7730 00 lrl 63 005644 aa 6 00717 7561 00 stq pr6|463 005645 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 005646 aa 7 00000 40 0011 descb pr7|0(18),9 l4_data 005647 aa 6 00056 00 0044 descb pr6|46,36 005650 aa 6 00056 2351 00 lda pr6|46 005651 aa 000077 7730 00 lrl 63 005652 aa 6 00744 7561 00 stq pr6|484 005653 aa 772305 3520 04 epp2 -2875,ic 000160 = 000000000004 005654 aa 6 00766 2521 00 spri2 pr6|502 005655 aa 6 00722 3521 00 epp2 pr6|466 005656 aa 6 00770 2521 00 spri2 pr6|504 005657 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 005660 aa 6 00772 2521 00 spri2 pr6|506 005661 aa 6 00717 3521 00 epp2 pr6|463 005662 aa 6 00774 2521 00 spri2 pr6|508 005663 aa 6 00744 3521 00 epp2 pr6|484 005664 aa 6 00776 2521 00 spri2 pr6|510 005665 aa 772271 3520 04 epp2 -2887,ic 000156 = 404000000021 005666 aa 6 01000 2521 00 spri2 pr6|512 005667 aa 772230 3520 04 epp2 -2920,ic 000117 = 524000000035 005670 aa 6 01002 2521 00 spri2 pr6|514 005671 aa 772246 3520 04 epp2 -2906,ic 000137 = 524000000040 005672 aa 6 01004 2521 00 spri2 pr6|516 005673 aa 772223 3520 04 epp2 -2925,ic 000116 = 404000000011 005674 aa 6 01006 2521 00 spri2 pr6|518 005675 aa 6 01010 2521 00 spri2 pr6|520 005676 aa 6 00764 6211 00 eax1 pr6|500 005677 aa 024000 4310 07 fld 10240,dl 005700 aa 6 00044 3701 20 epp4 pr6|36,* 005701 la 4 00056 3521 20 epp2 pr4|46,* syserr 005702 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1129 goto done_data_pkt; 005703 aa 002535 7100 04 tra 1373,ic 010440 STATEMENT 1 ON LINE 1131 iti (6): /* set and read parameters */ call set_x29 ("1"b, "1"b); 005704 aa 400000 2350 03 lda 131072,du 005705 aa 6 00744 7551 00 sta pr6|484 005706 aa 6 00717 7551 00 sta pr6|463 005707 aa 007155 3520 04 epp2 3693,ic 015064 = 000004000000 005710 aa 005206 6700 04 tsp4 2694,ic 013116 STATEMENT 1 ON LINE 1133 goto done_data_pkt; 005711 aa 002527 7100 04 tra 1367,ic 010440 STATEMENT 1 ON LINE 1134 end; STATEMENT 1 ON LINE 1135 goto done_data_pkt; 005712 aa 002526 7100 04 tra 1366,ic 010440 STATEMENT 1 ON LINE 1136 end; STATEMENT 1 ON LINE 1140 if xlce.flags.iti_break then goto done_data_pkt; 005713 aa 3 00005 2351 00 lda pr3|5 xlce.iti_break 005714 aa 040000 3150 03 cana 16384,du 005715 aa 002523 6010 04 tnz 1363,ic 010440 STATEMENT 1 ON LINE 1142 nchars = buffer.tally - hdr_size - L2_HEADER_PAD; 005716 aa 5 00000 2361 00 ldq pr5|0 buffer.tally 005717 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 005720 aa 6 00131 1761 00 sbq pr6|89 hdr_size 005721 aa 000002 1760 07 sbq 2,dl 005722 aa 6 00132 7561 00 stq pr6|90 nchars STATEMENT 1 ON LINE 1143 if nchars <= 0 then goto done_data_pkt; 005723 aa 002515 6044 04 tmoz 1357,ic 010440 STATEMENT 1 ON LINE 1146 substr (string (buffer.chars), 1, nchars) = substr (string (buffer.chars), hdr_size + L2_HEADER_PAD + 1, nchars); 005724 aa 6 00131 2361 00 ldq pr6|89 hdr_size 005725 aa 000002 0760 07 adq 2,dl 005726 aa 6 00132 2351 00 lda pr6|90 nchars 005727 aa 040 140 100 546 mlr (pr,rl,ql),(pr,rl),fill(040) 005730 aa 5 00001 00 0005 desc9a pr5|1,al 005731 aa 5 00001 00 0005 desc9a pr5|1,al STATEMENT 1 ON LINE 1148 buffer.tally = nchars; 005732 aa 6 00132 2361 00 ldq pr6|90 nchars 005733 aa 5 00000 5521 04 stbq pr5|0,04 buffer.tally STATEMENT 1 ON LINE 1150 rtx_info.output_in_ring_0 = (xsce.write_head ^= null ()); 005734 aa 6 00172 3735 20 epp7 pr6|122,* xscep 005735 aa 7 00020 2371 00 ldaq pr7|16 xsce.write_head 005736 aa 772256 6770 04 eraq -2898,ic 000214 = 077777000043 000001000000 005737 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 005740 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 005741 aa 000024 7710 00 arl 20 005742 aa 6 00177 6751 00 era pr6|127 rtx_info.output_in_ring_0 005743 aa 100000 3750 07 ana 32768,dl 005744 aa 6 00177 6551 00 ersa pr6|127 rtx_info.output_in_ring_0 STATEMENT 1 ON LINE 1151 rtx_info.output_in_fnp = (xlce.next_send_seq ^= xlce.next_ack_seq); 005745 aa 3 00015 2361 00 ldq pr3|13 xlce.next_send_seq 005746 aa 3 00017 1161 00 cmpq pr3|15 xlce.next_ack_seq 005747 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 005750 aa 000023 7710 00 arl 19 005751 aa 6 00177 6751 00 era pr6|127 rtx_info.output_in_fnp 005752 aa 200000 3750 07 ana 65536,dl 005753 aa 6 00177 6551 00 ersa pr6|127 rtx_info.output_in_fnp STATEMENT 1 ON LINE 1152 rtx_info.input_count = rtx_info.input_count - hdr_size - L2_HEADER_PAD; 005754 aa 6 00177 2351 00 lda pr6|127 rtx_info.input_count 005755 aa 000066 7730 00 lrl 54 005756 aa 6 00131 1761 00 sbq pr6|89 hdr_size 005757 aa 000002 1760 07 sbq 2,dl 005760 aa 000066 7370 00 lls 54 005761 aa 6 00177 5511 60 stba pr6|127,60 rtx_info.input_count STATEMENT 1 ON LINE 1154 if xsce.trans_table_ptr ^= null () then do; 005762 aa 7 00024 2371 00 ldaq pr7|20 xsce.trans_table_ptr 005763 aa 772231 6770 04 eraq -2919,ic 000214 = 077777000043 000001000000 005764 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 005765 aa 000044 6000 04 tze 36,ic 006031 STATEMENT 1 ON LINE 1155 do blockp = chain_ptr repeat (pointer (blockp, buffer.next)) while (rel (blockp) ^= ""b); 005766 aa 6 00104 3515 20 epp1 pr6|68,* chain_ptr 005767 aa 6 00262 2515 00 spri1 pr6|178 blockp 005770 aa 6 00262 6351 20 eaa pr6|178,* blockp 005771 aa 000036 6000 04 tze 30,ic 006027 STATEMENT 1 ON LINE 1157 call mvt_ (addr (buffer.chars), addr (buffer.chars), (buffer.tally), xsce.trans_table_ptr -> based_trans_table); 005772 aa 6 00262 3735 20 epp7 pr6|178,* blockp 005773 aa 7 00001 3735 00 epp7 pr7|1 buffer.chars 005774 aa 6 00746 6535 00 spri7 pr6|486 005775 aa 6 00262 3715 20 epp5 pr6|178,* blockp 005776 aa 5 00001 3715 00 epp5 pr5|1 buffer.chars 005777 aa 6 00720 6515 00 spri5 pr6|464 006000 aa 6 00262 2361 20 ldq pr6|178,* buffer.tally 006001 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 006002 aa 6 00717 7561 00 stq pr6|463 006003 aa 6 00746 3521 00 epp2 pr6|486 006004 aa 6 00734 2521 00 spri2 pr6|476 006005 aa 6 00720 3521 00 epp2 pr6|464 006006 aa 6 00736 2521 00 spri2 pr6|478 006007 aa 6 00717 3521 00 epp2 pr6|463 006010 aa 6 00740 2521 00 spri2 pr6|480 006011 aa 6 00172 3535 20 epp3 pr6|122,* xscep 006012 aa 3 00024 3521 20 epp2 pr3|20,* based_trans_table 006013 aa 6 00742 2521 00 spri2 pr6|482 006014 aa 6 00732 6211 00 eax1 pr6|474 006015 aa 020000 4310 07 fld 8192,dl 006016 aa 6 00044 3701 20 epp4 pr6|36,* 006017 la 4 00052 3521 20 epp2 pr4|42,* mvt_ 006020 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1159 end; 006021 aa 6 00262 2351 20 lda pr6|178,* buffer.next 006022 aa 000066 7730 00 lrl 54 006023 aa 6 00262 3521 20 epp2 pr6|178,* blockp 006024 aa 000000 3120 06 eawp2 0,ql 006025 aa 6 00262 2521 00 spri2 pr6|178 blockp 006026 aa 777742 7100 04 tra -30,ic 005770 STATEMENT 1 ON LINE 1160 blockp = chain_ptr; 006027 aa 6 00104 3735 20 epp7 pr6|68,* chain_ptr 006030 aa 6 00262 6535 00 spri7 pr6|178 blockp STATEMENT 1 ON LINE 1161 end; STATEMENT 1 ON LINE 1163 if xsce.flags.end_of_page & rtx_info.break_char then do; 006031 aa 6 00172 3735 20 epp7 pr6|122,* xscep 006032 aa 7 00013 2351 00 lda pr7|11 xsce.end_of_page 006033 aa 200000 3150 03 cana 65536,du 006034 aa 000032 6000 04 tze 26,ic 006066 006035 aa 6 00177 2351 00 lda pr6|127 rtx_info.break_char 006036 aa 400000 3150 07 cana 131072,dl 006037 aa 000027 6000 04 tze 23,ic 006066 STATEMENT 1 ON LINE 1164 xsce.flags.end_of_page = "0"b; 006040 aa 006734 2350 04 lda 3548,ic 014774 = 577777777777 006041 aa 7 00013 3551 00 ansa pr7|11 xsce.end_of_page STATEMENT 1 ON LINE 1166 if (buffer.tally <= 2) & (buffer.next = 0) & (verify (substr (string (buffer.chars), 1, buffer.tally), CR_LF_FF) = 0) then goto done_data_pkt; 006042 aa 6 00262 2361 20 ldq pr6|178,* buffer.tally 006043 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 006044 aa 6 00717 7561 00 stq pr6|463 buffer.tally 006045 aa 000002 1160 07 cmpq 2,dl 006046 aa 000020 6054 04 tpnz 16,ic 006066 006047 aa 6 00262 2351 20 lda pr6|178,* buffer.next 006050 aa 000066 7730 00 lrl 54 006051 aa 000015 6010 04 tnz 13,ic 006066 006052 aa 6 00717 7271 00 lxl7 pr6|463 buffer.tally 006053 aa 6 00262 3715 20 epp5 pr6|178,* blockp 006054 aa 000 000 164 540 tct (pr,rl) 006055 aa 5 00001 00 0017 desc9a pr5|1,x7 006056 aa 006520 0000 04 arg 3408,ic 014574 = 777777777777 006057 aa 6 00056 0001 00 arg pr6|46 006060 aa 6 00056 2361 00 ldq pr6|46 006061 aa 0 00242 3761 00 anq pr0|162 = 000777777777 006062 aa 000002 6070 04 ttf 2,ic 006064 006063 aa 000001 3360 07 lcq 1,dl 006064 aa 000001 0760 07 adq 1,dl 006065 aa 002353 6000 04 tze 1259,ic 010440 STATEMENT 1 ON LINE 1169 end; STATEMENT 1 ON LINE 1171 blockp = null (); 006066 aa 772126 2370 04 ldaq -2986,ic 000214 = 077777000043 000001000000 006067 aa 6 00262 7571 00 staq pr6|178 blockp STATEMENT 1 ON LINE 1172 call tty_space_man$switch_chain (x25_data.devx, xsce.devx, INPUT, INPUT, chain_ptr); 006070 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 006071 aa 5 00010 3521 00 epp2 pr5|8 x25_data.devx 006072 aa 6 00752 2521 00 spri2 pr6|490 006073 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 006074 aa 6 00754 2521 00 spri2 pr6|492 006075 aa 771765 3520 04 epp2 -3083,ic 000062 = 000000000000 006076 aa 6 00756 2521 00 spri2 pr6|494 006077 aa 6 00760 2521 00 spri2 pr6|496 006100 aa 6 00104 3521 00 epp2 pr6|68 chain_ptr 006101 aa 6 00762 2521 00 spri2 pr6|498 006102 aa 6 00750 6211 00 eax1 pr6|488 006103 aa 024000 4310 07 fld 10240,dl 006104 aa 6 00044 3701 20 epp4 pr6|36,* 006105 la 4 00106 3521 20 epp2 pr4|70,* tty_space_man$switch_chain 006106 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1173 call channel_manager$interrupt (xsce.devx, ACCEPT_INPUT, unspec (rtx_info)); 006107 aa 6 00176 2371 00 ldaq pr6|126 006110 aa 6 00720 7571 00 staq pr6|464 006111 aa 6 00172 3735 20 epp7 pr6|122,* xscep 006112 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 006113 aa 6 00724 2521 00 spri2 pr6|468 006114 aa 772030 3520 04 epp2 -3048,ic 000144 = 000000000006 006115 aa 6 00726 2521 00 spri2 pr6|470 006116 aa 6 00720 3521 00 epp2 pr6|464 006117 aa 6 00730 2521 00 spri2 pr6|472 006120 aa 6 00722 6211 00 eax1 pr6|466 006121 aa 014000 4310 07 fld 6144,dl 006122 aa 6 00044 3701 20 epp4 pr6|36,* 006123 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 006124 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1174 goto done_data_pkt; 006125 aa 002313 7100 04 tra 1227,ic 010440 STATEMENT 1 ON LINE 1175 end; STATEMENT 1 ON LINE 1179 if (x25_pkt.type & SNMASK) = SNRR then do; 006126 aa 7 00002 2351 00 lda pr7|2 x25_pkt.type 006127 aa 000001 7350 00 als 1 006130 aa 0 00020 3771 00 anaq pr0|16 = 776000000000 000000000000 006131 aa 6 00717 7551 00 sta pr6|463 x25_pkt.type 006132 aa 036000 3750 03 ana 15360,du 006133 aa 002000 1150 03 cmpa 1024,du 006134 aa 6 00744 7551 00 sta pr6|484 006135 aa 000023 6010 04 tnz 19,ic 006160 STATEMENT 1 ON LINE 1181 if xlce.state ^= FLOW_CONTROL_READY then do; 006136 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 006137 aa 000003 1160 07 cmpq 3,dl 006140 aa 000003 6000 04 tze 3,ic 006143 STATEMENT 1 ON LINE 1182 call handle_data_or_fc_error; 006141 aa 003115 6700 04 tsp4 1613,ic 011256 STATEMENT 1 ON LINE 1183 goto done_in_pkt; 006142 aa 002275 7100 04 tra 1213,ic 010437 STATEMENT 1 ON LINE 1184 end; STATEMENT 1 ON LINE 1186 call proc_pr (pr_error); 006143 aa 006633 3520 04 epp2 3483,ic 014776 = 000002000000 006144 aa 003260 6700 04 tsp4 1712,ic 011424 STATEMENT 1 ON LINE 1187 if pr_error then goto done_in_pkt; 006145 aa 6 00155 2351 00 lda pr6|109 pr_error 006146 aa 400000 3150 03 cana 131072,du 006147 aa 002270 6010 04 tnz 1208,ic 010437 STATEMENT 1 ON LINE 1189 xlce.flags.rnr_received = "0"b; 006150 aa 007042 2350 04 lda 3618,ic 015212 = 677777777777 006151 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 006152 aa 7 00005 3551 00 ansa pr7|5 xlce.rnr_received STATEMENT 1 ON LINE 1190 call free_in_pkt; 006153 aa 002673 6700 04 tsp4 1467,ic 011046 STATEMENT 1 ON LINE 1191 call send_data_packets; 006154 aa 004051 6700 04 tsp4 2089,ic 012225 STATEMENT 1 ON LINE 1192 call send_output; 006155 aa 004301 6700 04 tsp4 2241,ic 012456 STATEMENT 1 ON LINE 1193 call solicit_output; 006156 aa 005427 6700 04 tsp4 2839,ic 013605 STATEMENT 1 ON LINE 1194 goto done_in_pkt; 006157 aa 002260 7100 04 tra 1200,ic 010437 STATEMENT 1 ON LINE 1195 end; STATEMENT 1 ON LINE 1199 if (x25_pkt.type & SNMASK) = SNRNR then do; 006160 aa 012000 1150 03 cmpa 5120,du 006161 aa 000020 6010 04 tnz 16,ic 006201 STATEMENT 1 ON LINE 1201 if xlce.state ^= FLOW_CONTROL_READY then do; 006162 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 006163 aa 000003 1160 07 cmpq 3,dl 006164 aa 000003 6000 04 tze 3,ic 006167 STATEMENT 1 ON LINE 1202 call handle_data_or_fc_error; 006165 aa 003071 6700 04 tsp4 1593,ic 011256 STATEMENT 1 ON LINE 1203 goto done_in_pkt; 006166 aa 002251 7100 04 tra 1193,ic 010437 STATEMENT 1 ON LINE 1204 end; STATEMENT 1 ON LINE 1206 call proc_pr (pr_error); 006167 aa 006607 3520 04 epp2 3463,ic 014776 = 000002000000 006170 aa 003234 6700 04 tsp4 1692,ic 011424 STATEMENT 1 ON LINE 1207 if pr_error then goto done_in_pkt; 006171 aa 6 00155 2351 00 lda pr6|109 pr_error 006172 aa 400000 3150 03 cana 131072,du 006173 aa 002244 6010 04 tnz 1188,ic 010437 STATEMENT 1 ON LINE 1209 xlce.flags.rnr_received = "1"b; 006174 aa 100000 2350 03 lda 32768,du 006175 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 006176 aa 7 00005 2551 00 orsa pr7|5 xlce.rnr_received STATEMENT 1 ON LINE 1210 call free_in_pkt; 006177 aa 002647 6700 04 tsp4 1447,ic 011046 STATEMENT 1 ON LINE 1211 goto done_in_pkt; 006200 aa 002237 7100 04 tra 1183,ic 010437 STATEMENT 1 ON LINE 1212 end; STATEMENT 1 ON LINE 1216 if (x25_pkt.type & SNMASK) = SNREJ then do; 006201 aa 022000 1150 03 cmpa 9216,du 006202 aa 000045 6010 04 tnz 37,ic 006247 STATEMENT 1 ON LINE 1217 if xlce.state ^= FLOW_CONTROL_READY then do; 006203 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 006204 aa 000003 1160 07 cmpq 3,dl 006205 aa 000003 6000 04 tze 3,ic 006210 STATEMENT 1 ON LINE 1218 call handle_data_or_fc_error; 006206 aa 003050 6700 04 tsp4 1576,ic 011256 STATEMENT 1 ON LINE 1219 goto done_in_pkt; 006207 aa 002230 7100 04 tra 1176,ic 010437 STATEMENT 1 ON LINE 1220 end; STATEMENT 1 ON LINE 1222 call proc_pr (pr_error); 006210 aa 006566 3520 04 epp2 3446,ic 014776 = 000002000000 006211 aa 003213 6700 04 tsp4 1675,ic 011424 STATEMENT 1 ON LINE 1223 if pr_error then goto done_in_pkt; 006212 aa 6 00155 2351 00 lda pr6|109 pr_error 006213 aa 400000 3150 03 cana 131072,du 006214 aa 002223 6010 04 tnz 1171,ic 010437 STATEMENT 1 ON LINE 1225 call syserr (Log_message, "x25_mpx(^a): Received REJ packet.", xsce.name); 006215 aa 000 100 100 404 mlr (ic),(pr),fill(000) 006216 aa 772157 00 0044 desc9a -2961,36 000374 = 170062065137 006217 aa 6 00732 00 0044 desc9a pr6|474,36 006220 aa 771740 3520 04 epp2 -3104,ic 000160 = 000000000004 006221 aa 6 00766 2521 00 spri2 pr6|502 006222 aa 6 00732 3521 00 epp2 pr6|474 006223 aa 6 00770 2521 00 spri2 pr6|504 006224 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 006225 aa 6 00772 2521 00 spri2 pr6|506 006226 aa 771730 3520 04 epp2 -3112,ic 000156 = 404000000021 006227 aa 6 00774 2521 00 spri2 pr6|508 006230 aa 771665 3520 04 epp2 -3147,ic 000115 = 524000000041 006231 aa 6 00776 2521 00 spri2 pr6|510 006232 aa 771705 3520 04 epp2 -3131,ic 000137 = 524000000040 006233 aa 6 01000 2521 00 spri2 pr6|512 006234 aa 6 00764 6211 00 eax1 pr6|500 006235 aa 014000 4310 07 fld 6144,dl 006236 aa 6 00044 3701 20 epp4 pr6|36,* 006237 la 4 00056 3521 20 epp2 pr4|46,* syserr 006240 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1226 call dump_pkt; 006241 aa 002472 6700 04 tsp4 1338,ic 010733 STATEMENT 1 ON LINE 1227 call reset_lc (37); 006242 aa 000045 2360 07 ldq 37,dl 006243 aa 6 00744 7561 00 stq pr6|484 006244 aa 006756 3520 04 epp2 3566,ic 015222 = 000002000000 006245 aa 003346 6700 04 tsp4 1766,ic 011613 STATEMENT 1 ON LINE 1228 goto done_in_pkt; 006246 aa 002171 7100 04 tra 1145,ic 010437 STATEMENT 1 ON LINE 1229 end; STATEMENT 1 ON LINE 1233 if x25_pkt.type = CALLRQ then do; 006247 aa 6 00717 2351 00 lda pr6|463 x25_pkt.type 006250 aa 026000 1150 03 cmpa 11264,du 006251 aa 000045 6010 04 tnz 37,ic 006316 STATEMENT 1 ON LINE 1234 if xlce.state = FLOW_CONTROL_READY | xlce.state = DTE_RESET_REQUEST then do; 006252 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 006253 aa 000003 1160 07 cmpq 3,dl 006254 aa 000003 6000 04 tze 3,ic 006257 006255 aa 000005 1160 07 cmpq 5,dl 006256 aa 000036 6010 04 tnz 30,ic 006314 STATEMENT 1 ON LINE 1235 call syserr (Log_message, "x25_mpx(^a): Call Request in state ^d.", xsce.name, xlce.state); 006257 aa 000 100 100 404 mlr (ic),(pr),fill(000) 006260 aa 772210 00 0050 desc9a -2936,40 000467 = 170062065137 006261 aa 6 00732 00 0050 desc9a pr6|474,40 006262 aa 771676 3520 04 epp2 -3138,ic 000160 = 000000000004 006263 aa 6 00766 2521 00 spri2 pr6|502 006264 aa 6 00732 3521 00 epp2 pr6|474 006265 aa 6 00770 2521 00 spri2 pr6|504 006266 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 006267 aa 6 00772 2521 00 spri2 pr6|506 006270 aa 6 00170 3521 20 epp2 pr6|120,* xlce.state 006271 aa 6 00774 2521 00 spri2 pr6|508 006272 aa 771664 3520 04 epp2 -3148,ic 000156 = 404000000021 006273 aa 6 00776 2521 00 spri2 pr6|510 006274 aa 6 01004 2521 00 spri2 pr6|516 006275 aa 771617 3520 04 epp2 -3185,ic 000114 = 524000000046 006276 aa 6 01000 2521 00 spri2 pr6|512 006277 aa 771640 3520 04 epp2 -3168,ic 000137 = 524000000040 006300 aa 6 01002 2521 00 spri2 pr6|514 006301 aa 6 00764 6211 00 eax1 pr6|500 006302 aa 020000 4310 07 fld 8192,dl 006303 aa 6 00044 3701 20 epp4 pr6|36,* 006304 la 4 00056 3521 20 epp2 pr4|46,* syserr 006305 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1236 call dump_pkt; 006306 aa 002425 6700 04 tsp4 1301,ic 010733 STATEMENT 1 ON LINE 1237 call clear_call (23); 006307 aa 000027 2360 07 ldq 23,dl 006310 aa 6 00744 7561 00 stq pr6|484 006311 aa 006711 3520 04 epp2 3529,ic 015222 = 000002000000 006312 aa 002257 6700 04 tsp4 1199,ic 010571 STATEMENT 1 ON LINE 1238 end; 006313 aa 002124 7100 04 tra 1108,ic 010437 STATEMENT 1 ON LINE 1240 else call free_in_pkt; 006314 aa 002532 6700 04 tsp4 1370,ic 011046 STATEMENT 1 ON LINE 1242 goto done_in_pkt; 006315 aa 002122 7100 04 tra 1106,ic 010437 STATEMENT 1 ON LINE 1243 end; STATEMENT 1 ON LINE 1247 if x25_pkt.type = CALLAC then do; 006316 aa 036000 1150 03 cmpa 15360,du 006317 aa 000121 6010 04 tnz 81,ic 006440 STATEMENT 1 ON LINE 1248 if xlce.state = DTE_WAITING then do; 006320 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 006321 aa 000002 1160 07 cmpq 2,dl 006322 aa 000061 6010 04 tnz 49,ic 006403 STATEMENT 1 ON LINE 1249 if protocol_mpx & ^xlce.iti_call then do; 006323 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 006324 aa 400000 3150 03 cana 131072,du 006325 aa 000053 6000 04 tze 43,ic 006400 006326 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 006327 aa 5 00005 2351 00 lda pr5|5 xlce.iti_call 006330 aa 400000 3150 03 cana 131072,du 006331 aa 000047 6010 04 tnz 39,ic 006400 STATEMENT 1 ON LINE 1251 call set_up_dialup_info; 006332 aa 005750 6700 04 tsp4 3048,ic 014302 STATEMENT 1 ON LINE 1252 call channel_manager$interrupt (xsce.devx, USER_INTERRUPT, unspec (dialup_info)); 006333 aa 6 00174 2371 00 ldaq pr6|124 006334 aa 6 00720 7571 00 staq pr6|464 006335 aa 6 00172 3735 20 epp7 pr6|122,* xscep 006336 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 006337 aa 6 00724 2521 00 spri2 pr6|468 006340 aa 771611 3520 04 epp2 -3191,ic 000151 = 000000000020 006341 aa 6 00726 2521 00 spri2 pr6|470 006342 aa 6 00720 3521 00 epp2 pr6|464 006343 aa 6 00730 2521 00 spri2 pr6|472 006344 aa 6 00722 6211 00 eax1 pr6|466 006345 aa 014000 4310 07 fld 6144,dl 006346 aa 6 00044 3701 20 epp4 pr6|36,* 006347 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 006350 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1253 xsce.state = SC_DIALED; 006351 aa 000003 2360 07 ldq 3,dl 006352 aa 6 00172 3735 20 epp7 pr6|122,* xscep 006353 aa 7 00012 7561 00 stq pr7|10 xsce.state STATEMENT 1 ON LINE 1254 xlce.state = FLOW_CONTROL_READY; 006354 aa 000003 2360 07 ldq 3,dl 006355 aa 6 00170 7561 20 stq pr6|120,* xlce.state STATEMENT 1 ON LINE 1255 call reset_timer; 006356 aa 003310 6700 04 tsp4 1736,ic 011666 STATEMENT 1 ON LINE 1256 xsce.flags.output_ready = "1"b; 006357 aa 400000 2350 03 lda 131072,du 006360 aa 6 00172 3735 20 epp7 pr6|122,* xscep 006361 aa 7 00013 2551 00 orsa pr7|11 xsce.output_ready STATEMENT 1 ON LINE 1257 call channel_manager$interrupt (xsce.devx, SEND_OUTPUT, ""b); 006362 aa 771622 2370 04 ldaq -3182,ic 000204 = 000000000000 000000000000 006363 aa 6 00720 7571 00 staq pr6|464 006364 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 006365 aa 6 00724 2521 00 spri2 pr6|468 006366 aa 771572 3520 04 epp2 -3206,ic 000160 = 000000000004 006367 aa 6 00726 2521 00 spri2 pr6|470 006370 aa 6 00720 3521 00 epp2 pr6|464 006371 aa 6 00730 2521 00 spri2 pr6|472 006372 aa 6 00722 6211 00 eax1 pr6|466 006373 aa 014000 4310 07 fld 6144,dl 006374 aa 6 00044 3701 20 epp4 pr6|36,* 006375 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 006376 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1258 end; 006377 aa 000002 7100 04 tra 2,ic 006401 STATEMENT 1 ON LINE 1259 else call signal_dialup; 006400 aa 005075 6700 04 tsp4 2621,ic 013475 STATEMENT 1 ON LINE 1260 call free_in_pkt; 006401 aa 002445 6700 04 tsp4 1317,ic 011046 STATEMENT 1 ON LINE 1261 goto done_in_pkt; 006402 aa 002035 7100 04 tra 1053,ic 010437 STATEMENT 1 ON LINE 1262 end; STATEMENT 1 ON LINE 1264 call syserr (Log_message, "x25_mpx(^a): Call Confirm in state ^d.", xsce.name, xlce.state); 006403 aa 000 100 100 404 mlr (ic),(pr),fill(000) 006404 aa 772052 00 0050 desc9a -3030,40 000455 = 170062065137 006405 aa 6 00732 00 0050 desc9a pr6|474,40 006406 aa 771552 3520 04 epp2 -3222,ic 000160 = 000000000004 006407 aa 6 00766 2521 00 spri2 pr6|502 006410 aa 6 00732 3521 00 epp2 pr6|474 006411 aa 6 00770 2521 00 spri2 pr6|504 006412 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 006413 aa 6 00772 2521 00 spri2 pr6|506 006414 aa 6 00170 3521 20 epp2 pr6|120,* xlce.state 006415 aa 6 00774 2521 00 spri2 pr6|508 006416 aa 771540 3520 04 epp2 -3232,ic 000156 = 404000000021 006417 aa 6 00776 2521 00 spri2 pr6|510 006420 aa 6 01004 2521 00 spri2 pr6|516 006421 aa 771473 3520 04 epp2 -3269,ic 000114 = 524000000046 006422 aa 6 01000 2521 00 spri2 pr6|512 006423 aa 771514 3520 04 epp2 -3252,ic 000137 = 524000000040 006424 aa 6 01002 2521 00 spri2 pr6|514 006425 aa 6 00764 6211 00 eax1 pr6|500 006426 aa 020000 4310 07 fld 8192,dl 006427 aa 6 00044 3701 20 epp4 pr6|36,* 006430 la 4 00056 3521 20 epp2 pr4|46,* syserr 006431 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1265 call dump_pkt; 006432 aa 002301 6700 04 tsp4 1217,ic 010733 STATEMENT 1 ON LINE 1266 call clear_call (16); 006433 aa 000020 2360 07 ldq 16,dl 006434 aa 6 00744 7561 00 stq pr6|484 006435 aa 006565 3520 04 epp2 3445,ic 015222 = 000002000000 006436 aa 002133 6700 04 tsp4 1115,ic 010571 STATEMENT 1 ON LINE 1267 goto done_in_pkt; 006437 aa 002000 7100 04 tra 1024,ic 010437 STATEMENT 1 ON LINE 1268 end; STATEMENT 1 ON LINE 1272 if x25_pkt.type = CLRRQ then do; 006440 aa 046000 1150 03 cmpa 19456,du 006441 aa 000110 6010 04 tnz 72,ic 006551 STATEMENT 1 ON LINE 1273 if protocol_mpx & (x25_pkt.no_fc_data (1) ^= ""b) | ^protocol_mpx & ((x25_pkt.no_fc_data (1) ^= ""b) | (x25_pkt.no_fc_data (2) ^= ""b)) then call syserr (Log_message_or_discard, "x25_mpx(^a): Clear Indication ^d/^d.", xsce.name, binary (x25_pkt.no_fc_data (1), 8), binary (x25_pkt.no_fc_data (2), 8)); 006442 aa 7 00002 2351 00 lda pr7|2 x25_pkt.no_fc_data 006443 aa 000022 7350 00 als 18 006444 aa 0 00022 3771 00 anaq pr0|18 = 777000000000 000000000000 006445 aa 6 00744 7551 00 sta pr6|484 x25_pkt.no_fc_data 006446 aa 7 00002 2351 00 lda pr7|2 x25_pkt.no_fc_data 006447 aa 000011 7350 00 als 9 006450 aa 0 00022 3771 00 anaq pr0|18 = 777000000000 000000000000 006451 aa 6 00745 7551 00 sta pr6|485 x25_pkt.no_fc_data 006452 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 006453 aa 6 01060 7551 00 sta pr6|560 006454 aa 000004 6000 04 tze 4,ic 006460 006455 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 006456 aa 400000 3150 03 cana 131072,du 006457 aa 000010 6010 04 tnz 8,ic 006467 006460 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 006461 aa 400000 3150 03 cana 131072,du 006462 aa 000046 6010 04 tnz 38,ic 006530 006463 aa 6 01060 2351 00 lda pr6|560 006464 aa 000003 6010 04 tnz 3,ic 006467 006465 aa 6 00744 2351 00 lda pr6|484 x25_pkt.no_fc_data 006466 aa 000042 6000 04 tze 34,ic 006530 006467 aa 000 100 100 404 mlr (ic),(pr),fill(000) 006470 aa 771674 00 0044 desc9a -3140,36 000363 = 170062065137 006471 aa 6 00732 00 0044 desc9a pr6|474,36 006472 aa 6 00745 2351 00 lda pr6|485 x25_pkt.no_fc_data 006473 aa 000077 7730 00 lrl 63 006474 aa 6 01060 7561 00 stq pr6|560 006475 aa 6 00744 2351 00 lda pr6|484 x25_pkt.no_fc_data 006476 aa 000077 7730 00 lrl 63 006477 aa 6 00745 7561 00 stq pr6|485 006500 aa 771447 3520 04 epp2 -3289,ic 000147 = 000000000005 006501 aa 6 00766 2521 00 spri2 pr6|502 006502 aa 6 00732 3521 00 epp2 pr6|474 006503 aa 6 00770 2521 00 spri2 pr6|504 006504 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 006505 aa 6 00772 2521 00 spri2 pr6|506 006506 aa 6 01060 3521 00 epp2 pr6|560 006507 aa 6 00774 2521 00 spri2 pr6|508 006510 aa 6 00745 3521 00 epp2 pr6|485 006511 aa 6 00776 2521 00 spri2 pr6|510 006512 aa 771444 3520 04 epp2 -3292,ic 000156 = 404000000021 006513 aa 6 01000 2521 00 spri2 pr6|512 006514 aa 771377 3520 04 epp2 -3329,ic 000113 = 524000000044 006515 aa 6 01002 2521 00 spri2 pr6|514 006516 aa 771421 3520 04 epp2 -3311,ic 000137 = 524000000040 006517 aa 6 01004 2521 00 spri2 pr6|516 006520 aa 771404 3520 04 epp2 -3324,ic 000124 = 404000000010 006521 aa 6 01006 2521 00 spri2 pr6|518 006522 aa 6 01010 2521 00 spri2 pr6|520 006523 aa 6 00764 6211 00 eax1 pr6|500 006524 aa 024000 4310 07 fld 10240,dl 006525 aa 6 00044 3701 20 epp4 pr6|36,* 006526 la 4 00056 3521 20 epp2 pr4|46,* syserr 006527 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1277 if protocol_mpx then do; 006530 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 006531 aa 400000 3150 03 cana 131072,du 006532 aa 000010 6000 04 tze 8,ic 006542 STATEMENT 1 ON LINE 1278 disconnect_info.cause = x25_pkt.no_fc_data (1); 006533 aa 6 00262 3735 20 epp7 pr6|178,* blockp 006534 aa 7 00002 2351 00 lda pr7|2 x25_pkt.no_fc_data 006535 aa 000011 7350 00 als 9 006536 aa 6 00244 5511 40 stba pr6|164,40 disconnect_info.cause STATEMENT 1 ON LINE 1279 disconnect_info.diag = x25_pkt.no_fc_data (2); 006537 aa 7 00002 2351 00 lda pr7|2 x25_pkt.no_fc_data 006540 aa 000011 7350 00 als 9 006541 aa 6 00244 5511 20 stba pr6|164,20 disconnect_info.diag STATEMENT 1 ON LINE 1280 end; STATEMENT 1 ON LINE 1281 call free_in_pkt; 006542 aa 002304 6700 04 tsp4 1220,ic 011046 STATEMENT 1 ON LINE 1282 if xlce.state ^= DTE_CLEAR_REQUEST then call clear_confirm; 006543 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 006544 aa 000004 1160 07 cmpq 4,dl 006545 aa 000002 6000 04 tze 2,ic 006547 006546 aa 002056 6700 04 tsp4 1070,ic 010624 STATEMENT 1 ON LINE 1283 call proc_clear; 006547 aa 002651 6700 04 tsp4 1449,ic 011420 STATEMENT 1 ON LINE 1284 goto done_in_pkt; 006550 aa 001667 7100 04 tra 951,ic 010437 STATEMENT 1 ON LINE 1285 end; STATEMENT 1 ON LINE 1289 if x25_pkt.type = CLRCN then do; 006551 aa 056000 1150 03 cmpa 23552,du 006552 aa 000044 6010 04 tnz 36,ic 006616 STATEMENT 1 ON LINE 1290 if xlce.state ^= DTE_CLEAR_REQUEST then do; 006553 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 006554 aa 000004 1160 07 cmpq 4,dl 006555 aa 000036 6000 04 tze 30,ic 006613 STATEMENT 1 ON LINE 1291 call syserr (Log_message, "x25_mpx(^a): Clear Confirm in state ^d.", xsce.name, xlce.state); 006556 aa 000 100 100 404 mlr (ic),(pr),fill(000) 006557 aa 771665 00 0050 desc9a -3147,40 000443 = 170062065137 006560 aa 6 00732 00 0050 desc9a pr6|474,40 006561 aa 771377 3520 04 epp2 -3329,ic 000160 = 000000000004 006562 aa 6 00766 2521 00 spri2 pr6|502 006563 aa 6 00732 3521 00 epp2 pr6|474 006564 aa 6 00770 2521 00 spri2 pr6|504 006565 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 006566 aa 6 00772 2521 00 spri2 pr6|506 006567 aa 6 00170 3521 20 epp2 pr6|120,* xlce.state 006570 aa 6 00774 2521 00 spri2 pr6|508 006571 aa 771365 3520 04 epp2 -3339,ic 000156 = 404000000021 006572 aa 6 00776 2521 00 spri2 pr6|510 006573 aa 6 01004 2521 00 spri2 pr6|516 006574 aa 771331 3520 04 epp2 -3367,ic 000125 = 524000000047 006575 aa 6 01000 2521 00 spri2 pr6|512 006576 aa 771341 3520 04 epp2 -3359,ic 000137 = 524000000040 006577 aa 6 01002 2521 00 spri2 pr6|514 006600 aa 6 00764 6211 00 eax1 pr6|500 006601 aa 020000 4310 07 fld 8192,dl 006602 aa 6 00044 3701 20 epp4 pr6|36,* 006603 la 4 00056 3521 20 epp2 pr4|46,* syserr 006604 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1292 call dump_pkt; 006605 aa 002126 6700 04 tsp4 1110,ic 010733 STATEMENT 1 ON LINE 1293 call clear_call (16); 006606 aa 000020 2360 07 ldq 16,dl 006607 aa 6 00745 7561 00 stq pr6|485 006610 aa 006200 3520 04 epp2 3200,ic 015010 = 000002000000 006611 aa 001760 6700 04 tsp4 1008,ic 010571 STATEMENT 1 ON LINE 1294 end; 006612 aa 001625 7100 04 tra 917,ic 010437 STATEMENT 1 ON LINE 1296 else do; STATEMENT 1 ON LINE 1297 call proc_clear; 006613 aa 002605 6700 04 tsp4 1413,ic 011420 STATEMENT 1 ON LINE 1298 call free_in_pkt; 006614 aa 002232 6700 04 tsp4 1178,ic 011046 STATEMENT 1 ON LINE 1299 end; STATEMENT 1 ON LINE 1301 goto done_in_pkt; 006615 aa 001622 7100 04 tra 914,ic 010437 STATEMENT 1 ON LINE 1302 end; STATEMENT 1 ON LINE 1306 if xlce.state = DTE_CLEAR_REQUEST then do; 006616 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 006617 aa 000004 1160 07 cmpq 4,dl 006620 aa 000003 6010 04 tnz 3,ic 006623 STATEMENT 1 ON LINE 1307 call free_in_pkt; 006621 aa 002225 6700 04 tsp4 1173,ic 011046 STATEMENT 1 ON LINE 1308 goto done_in_pkt; 006622 aa 001615 7100 04 tra 909,ic 010437 STATEMENT 1 ON LINE 1309 end; STATEMENT 1 ON LINE 1311 if xlce.state = DTE_WAITING | (protocol_mpx & (xlce.state = CONRESP_WAITING)) then do; 006623 aa 000002 1160 07 cmpq 2,dl 006624 aa 000006 6000 04 tze 6,ic 006632 006625 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 006626 aa 400000 3150 03 cana 131072,du 006627 aa 000040 6000 04 tze 32,ic 006667 006630 aa 000006 1160 07 cmpq 6,dl 006631 aa 000036 6010 04 tnz 30,ic 006667 STATEMENT 1 ON LINE 1312 call syserr (Log_message, "x25_mpx(^a): Data packet received in state ^d.", xsce.name, xlce.state); 006632 aa 000 100 100 404 mlr (ic),(pr),fill(000) 006633 aa 772010 00 0060 desc9a -3064,48 000642 = 170062065137 006634 aa 6 00750 00 0060 desc9a pr6|488,48 006635 aa 771323 3520 04 epp2 -3373,ic 000160 = 000000000004 006636 aa 6 00766 2521 00 spri2 pr6|502 006637 aa 6 00750 3521 00 epp2 pr6|488 006640 aa 6 00770 2521 00 spri2 pr6|504 006641 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 006642 aa 6 00772 2521 00 spri2 pr6|506 006643 aa 6 00170 3521 20 epp2 pr6|120,* xlce.state 006644 aa 6 00774 2521 00 spri2 pr6|508 006645 aa 771311 3520 04 epp2 -3383,ic 000156 = 404000000021 006646 aa 6 00776 2521 00 spri2 pr6|510 006647 aa 6 01004 2521 00 spri2 pr6|516 006650 aa 771253 3520 04 epp2 -3413,ic 000123 = 524000000056 006651 aa 6 01000 2521 00 spri2 pr6|512 006652 aa 771265 3520 04 epp2 -3403,ic 000137 = 524000000040 006653 aa 6 01002 2521 00 spri2 pr6|514 006654 aa 6 00764 6211 00 eax1 pr6|500 006655 aa 020000 4310 07 fld 8192,dl 006656 aa 6 00044 3701 20 epp4 pr6|36,* 006657 la 4 00056 3521 20 epp2 pr4|46,* syserr 006660 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1314 call dump_pkt; 006661 aa 002052 6700 04 tsp4 1066,ic 010733 STATEMENT 1 ON LINE 1315 call clear_call (16); 006662 aa 000020 2360 07 ldq 16,dl 006663 aa 6 00745 7561 00 stq pr6|485 006664 aa 006124 3520 04 epp2 3156,ic 015010 = 000002000000 006665 aa 001704 6700 04 tsp4 964,ic 010571 STATEMENT 1 ON LINE 1316 goto done_in_pkt; 006666 aa 001551 7100 04 tra 873,ic 010437 STATEMENT 1 ON LINE 1317 end; STATEMENT 1 ON LINE 1321 if x25_pkt.type = RESTRQ then do; 006667 aa 6 00717 2351 00 lda pr6|463 x25_pkt.type 006670 aa 066000 1150 03 cmpa 27648,du 006671 aa 000074 6010 04 tnz 60,ic 006765 STATEMENT 1 ON LINE 1322 if xlce.state ^= DTE_RESET_REQUEST then do; 006672 aa 000005 1160 07 cmpq 5,dl 006673 aa 000067 6000 04 tze 55,ic 006762 STATEMENT 1 ON LINE 1324 call syserr (Log_message, "x25_mpx(^a): Reset received ^d/^d", xsce.name, binary (x25_pkt.no_fc_data (1), 8), binary (x25_pkt.no_fc_data (2), 8)); 006674 aa 000 100 100 404 mlr (ic),(pr),fill(000) 006675 aa 771456 00 0044 desc9a -3282,36 000352 = 170062065137 006676 aa 6 00732 00 0044 desc9a pr6|474,36 006677 aa 7 00002 2351 00 lda pr7|2 x25_pkt.no_fc_data 006700 aa 000011 7350 00 als 9 006701 aa 000077 7730 00 lrl 63 006702 aa 6 00745 7561 00 stq pr6|485 006703 aa 7 00002 2351 00 lda pr7|2 x25_pkt.no_fc_data 006704 aa 000022 7350 00 als 18 006705 aa 000077 7730 00 lrl 63 006706 aa 6 01060 7561 00 stq pr6|560 006707 aa 771251 3520 04 epp2 -3415,ic 000160 = 000000000004 006710 aa 6 00766 2521 00 spri2 pr6|502 006711 aa 6 00732 3521 00 epp2 pr6|474 006712 aa 6 00770 2521 00 spri2 pr6|504 006713 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 006714 aa 6 00772 2521 00 spri2 pr6|506 006715 aa 6 00745 3521 00 epp2 pr6|485 006716 aa 6 00774 2521 00 spri2 pr6|508 006717 aa 6 01060 3521 00 epp2 pr6|560 006720 aa 6 00776 2521 00 spri2 pr6|510 006721 aa 771235 3520 04 epp2 -3427,ic 000156 = 404000000021 006722 aa 6 01000 2521 00 spri2 pr6|512 006723 aa 771172 3520 04 epp2 -3462,ic 000115 = 524000000041 006724 aa 6 01002 2521 00 spri2 pr6|514 006725 aa 771212 3520 04 epp2 -3446,ic 000137 = 524000000040 006726 aa 6 01004 2521 00 spri2 pr6|516 006727 aa 771175 3520 04 epp2 -3459,ic 000124 = 404000000010 006730 aa 6 01006 2521 00 spri2 pr6|518 006731 aa 6 01010 2521 00 spri2 pr6|520 006732 aa 6 00764 6211 00 eax1 pr6|500 006733 aa 024000 4310 07 fld 10240,dl 006734 aa 6 00044 3701 20 epp4 pr6|36,* 006735 la 4 00056 3521 20 epp2 pr4|46,* syserr 006736 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1326 call dump_pkt; 006737 aa 001774 6700 04 tsp4 1020,ic 010733 STATEMENT 1 ON LINE 1327 call get_buffer (16); 006740 aa 000020 2360 07 ldq 16,dl 006741 aa 6 01060 7561 00 stq pr6|560 006742 aa 005626 3520 04 epp2 2966,ic 014570 = 000002000000 006743 aa 002203 6700 04 tsp4 1155,ic 011146 STATEMENT 1 ON LINE 1328 call make_header (lcx, "0"b); 006744 aa 000000 2350 07 lda 0,dl 006745 aa 6 01060 7551 00 sta pr6|560 006746 aa 005614 3520 04 epp2 2956,ic 014562 = 000004000000 006747 aa 002364 6700 04 tsp4 1268,ic 011333 STATEMENT 1 ON LINE 1329 x25_pkt.type = RESTCN; 006750 aa 037000 2350 03 lda 15872,du 006751 aa 6 00262 3735 20 epp7 pr6|178,* blockp 006752 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 006753 aa 377000 3750 03 ana 130560,du 006754 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 1330 buffer.tally = 3 + L2_HEADER_PAD; 006755 aa 000005 2360 07 ldq 5,dl 006756 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 1331 call write_pkt; 006757 aa 004733 6700 04 tsp4 2523,ic 013712 STATEMENT 1 ON LINE 1332 call send_output; 006760 aa 003476 6700 04 tsp4 1854,ic 012456 STATEMENT 1 ON LINE 1333 end; 006761 aa 000002 7100 04 tra 2,ic 006763 STATEMENT 1 ON LINE 1334 else call free_in_pkt; 006762 aa 002064 6700 04 tsp4 1076,ic 011046 STATEMENT 1 ON LINE 1336 call proc_reset_lc; 006763 aa 002571 6700 04 tsp4 1401,ic 011554 STATEMENT 1 ON LINE 1337 goto done_in_pkt; 006764 aa 001453 7100 04 tra 811,ic 010437 STATEMENT 1 ON LINE 1338 end; STATEMENT 1 ON LINE 1342 if x25_pkt.type = RESTCN then do; 006765 aa 076000 1150 03 cmpa 31744,du 006766 aa 000043 6010 04 tnz 35,ic 007031 STATEMENT 1 ON LINE 1343 if xlce.state = DTE_RESET_REQUEST /* if DTE reset request was issued */ then do; 006767 aa 000005 1160 07 cmpq 5,dl 006770 aa 000004 6010 04 tnz 4,ic 006774 STATEMENT 1 ON LINE 1345 call proc_reset_lc; 006771 aa 002563 6700 04 tsp4 1395,ic 011554 STATEMENT 1 ON LINE 1346 call free_in_pkt; 006772 aa 002054 6700 04 tsp4 1068,ic 011046 STATEMENT 1 ON LINE 1347 end; 006773 aa 001444 7100 04 tra 804,ic 010437 STATEMENT 1 ON LINE 1348 else do; STATEMENT 1 ON LINE 1349 call syserr (Log_message, "x25_mpx(^a): Reset Confirm in state ^d.", xsce.name, xlce.state); 006774 aa 000 100 100 404 mlr (ic),(pr),fill(000) 006775 aa 771435 00 0050 desc9a -3299,40 000431 = 170062065137 006776 aa 6 00732 00 0050 desc9a pr6|474,40 006777 aa 771161 3520 04 epp2 -3471,ic 000160 = 000000000004 007000 aa 6 00766 2521 00 spri2 pr6|502 007001 aa 6 00732 3521 00 epp2 pr6|474 007002 aa 6 00770 2521 00 spri2 pr6|504 007003 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 007004 aa 6 00772 2521 00 spri2 pr6|506 007005 aa 6 00170 3521 20 epp2 pr6|120,* xlce.state 007006 aa 6 00774 2521 00 spri2 pr6|508 007007 aa 771147 3520 04 epp2 -3481,ic 000156 = 404000000021 007010 aa 6 00776 2521 00 spri2 pr6|510 007011 aa 6 01004 2521 00 spri2 pr6|516 007012 aa 771113 3520 04 epp2 -3509,ic 000125 = 524000000047 007013 aa 6 01000 2521 00 spri2 pr6|512 007014 aa 771123 3520 04 epp2 -3501,ic 000137 = 524000000040 007015 aa 6 01002 2521 00 spri2 pr6|514 007016 aa 6 00764 6211 00 eax1 pr6|500 007017 aa 020000 4310 07 fld 8192,dl 007020 aa 6 00044 3701 20 epp4 pr6|36,* 007021 la 4 00056 3521 20 epp2 pr4|46,* syserr 007022 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1350 call dump_pkt; 007023 aa 001710 6700 04 tsp4 968,ic 010733 STATEMENT 1 ON LINE 1351 call reset_lc (16); 007024 aa 000020 2360 07 ldq 16,dl 007025 aa 6 01060 7561 00 stq pr6|560 007026 aa 005542 3520 04 epp2 2914,ic 014570 = 000002000000 007027 aa 002564 6700 04 tsp4 1396,ic 011613 STATEMENT 1 ON LINE 1352 end; STATEMENT 1 ON LINE 1353 goto done_in_pkt; 007030 aa 001407 7100 04 tra 775,ic 010437 STATEMENT 1 ON LINE 1354 end; STATEMENT 1 ON LINE 1358 if xlce.state ^= FLOW_CONTROL_READY then do; 007031 aa 000003 1160 07 cmpq 3,dl 007032 aa 000003 6000 04 tze 3,ic 007035 STATEMENT 1 ON LINE 1359 call free_in_pkt; 007033 aa 002013 6700 04 tsp4 1035,ic 011046 STATEMENT 1 ON LINE 1360 goto done_in_pkt; 007034 aa 001403 7100 04 tra 771,ic 010437 STATEMENT 1 ON LINE 1361 end; STATEMENT 1 ON LINE 1365 if x25_pkt.type = SNITRQ then do; 007035 aa 106000 1150 03 cmpa 35840,du 007036 aa 000042 6010 04 tnz 34,ic 007100 STATEMENT 1 ON LINE 1366 call free_in_pkt; 007037 aa 002007 6700 04 tsp4 1031,ic 011046 STATEMENT 1 ON LINE 1367 if xlce.iti_call & xsce.mode (MODE_HNDLQUIT) /* if ITI call */ then do; 007040 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 007041 aa 7 00005 2351 00 lda pr7|5 xlce.iti_call 007042 aa 400000 3150 03 cana 131072,du 007043 aa 000012 6000 04 tze 10,ic 007055 007044 aa 000006 7270 07 lxl7 6,dl 007045 aa 6 00172 3715 20 epp5 pr6|122,* xscep 007046 aa 000 000 066 517 cmpb (pr,x7),(),fill(0) 007047 aa 5 00013 30 0001 descb pr5|11(17),1 xsce.mode 007050 aa 000000 00 0000 descb 0,0 007051 aa 000004 6000 04 tze 4,ic 007055 STATEMENT 1 ON LINE 1370 xlce.flags.iti_break = "1"b; 007052 aa 040000 2350 03 lda 16384,du 007053 aa 7 00005 2551 00 orsa pr7|5 xlce.iti_break STATEMENT 1 ON LINE 1371 end; 007054 aa 001363 7100 04 tra 755,ic 010437 STATEMENT 1 ON LINE 1372 else do; STATEMENT 1 ON LINE 1373 call channel_manager$interrupt (xsce.devx, QUIT, ""b); 007055 aa 771127 2370 04 ldaq -3497,ic 000204 = 000000000000 000000000000 007056 aa 6 00720 7571 00 staq pr6|464 007057 aa 6 00172 3715 20 epp5 pr6|122,* xscep 007060 aa 5 00010 3521 00 epp2 pr5|8 xsce.devx 007061 aa 6 00724 2521 00 spri2 pr6|468 007062 aa 771066 3520 04 epp2 -3530,ic 000150 = 000000000010 007063 aa 6 00726 2521 00 spri2 pr6|470 007064 aa 6 00720 3521 00 epp2 pr6|464 007065 aa 6 00730 2521 00 spri2 pr6|472 007066 aa 6 00722 6211 00 eax1 pr6|466 007067 aa 014000 4310 07 fld 6144,dl 007070 aa 6 00044 3701 20 epp4 pr6|36,* 007071 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 007072 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1375 call confirm_interrupt; 007073 aa 001554 6700 04 tsp4 876,ic 010647 STATEMENT 1 ON LINE 1376 xsce.flags.end_of_page = "0"b; 007074 aa 005700 2350 04 lda 3008,ic 014774 = 577777777777 007075 aa 6 00172 3735 20 epp7 pr6|122,* xscep 007076 aa 7 00013 3551 00 ansa pr7|11 xsce.end_of_page STATEMENT 1 ON LINE 1377 end; STATEMENT 1 ON LINE 1378 goto done_in_pkt; 007077 aa 001340 7100 04 tra 736,ic 010437 STATEMENT 1 ON LINE 1379 end; STATEMENT 1 ON LINE 1383 if x25_pkt.type = SNITCN then do; 007100 aa 116000 1150 03 cmpa 39936,du 007101 aa 000043 6010 04 tnz 35,ic 007144 STATEMENT 1 ON LINE 1384 if ^xlce.flags.int_issued then do; 007102 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 007103 aa 5 00005 2351 00 lda pr5|5 xlce.int_issued 007104 aa 200000 3150 03 cana 65536,du 007105 aa 000033 6010 04 tnz 27,ic 007140 STATEMENT 1 ON LINE 1385 call syserr (Log_message, "x25_mpx(^a): Unexpected Interrupt Confirm.", xsce.name); 007106 aa 000 100 100 404 mlr (ic),(pr),fill(000) 007107 aa 771472 00 0054 desc9a -3270,44 000600 = 170062065137 007110 aa 6 00750 00 0054 desc9a pr6|488,44 007111 aa 771047 3520 04 epp2 -3545,ic 000160 = 000000000004 007112 aa 6 00766 2521 00 spri2 pr6|502 007113 aa 6 00750 3521 00 epp2 pr6|488 007114 aa 6 00770 2521 00 spri2 pr6|504 007115 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 007116 aa 6 00772 2521 00 spri2 pr6|506 007117 aa 771037 3520 04 epp2 -3553,ic 000156 = 404000000021 007120 aa 6 00774 2521 00 spri2 pr6|508 007121 aa 770771 3520 04 epp2 -3591,ic 000112 = 524000000052 007122 aa 6 00776 2521 00 spri2 pr6|510 007123 aa 771014 3520 04 epp2 -3572,ic 000137 = 524000000040 007124 aa 6 01000 2521 00 spri2 pr6|512 007125 aa 6 00764 6211 00 eax1 pr6|500 007126 aa 014000 4310 07 fld 6144,dl 007127 aa 6 00044 3701 20 epp4 pr6|36,* 007130 la 4 00056 3521 20 epp2 pr4|46,* syserr 007131 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1386 call dump_pkt; 007132 aa 001601 6700 04 tsp4 897,ic 010733 STATEMENT 1 ON LINE 1387 call reset_lc (43); 007133 aa 000053 2360 07 ldq 43,dl 007134 aa 6 00717 7561 00 stq pr6|463 007135 aa 006105 3520 04 epp2 3141,ic 015242 = 000002000000 007136 aa 002455 6700 04 tsp4 1325,ic 011613 STATEMENT 1 ON LINE 1388 end; 007137 aa 001300 7100 04 tra 704,ic 010437 STATEMENT 1 ON LINE 1389 else do; STATEMENT 1 ON LINE 1390 xlce.flags.int_issued = "0"b; 007140 aa 005634 2350 04 lda 2972,ic 014774 = 577777777777 007141 aa 5 00005 3551 00 ansa pr5|5 xlce.int_issued STATEMENT 1 ON LINE 1391 call free_in_pkt; 007142 aa 001704 6700 04 tsp4 964,ic 011046 STATEMENT 1 ON LINE 1392 end; STATEMENT 1 ON LINE 1393 goto done_in_pkt; 007143 aa 001274 7100 04 tra 700,ic 010437 STATEMENT 1 ON LINE 1394 end; STATEMENT 1 ON LINE 1396 call syserr (Log_message, "x25_mpx(^a): Unexpected packet type ^.4b", xsce.name, x25_pkt.type); 007144 aa 000 100 100 404 mlr (ic),(pr),fill(000) 007145 aa 771253 00 0050 desc9a -3413,40 000417 = 170062065137 007146 aa 6 00732 00 0050 desc9a pr6|474,40 007147 aa 771011 3520 04 epp2 -3575,ic 000160 = 000000000004 007150 aa 6 00766 2521 00 spri2 pr6|502 007151 aa 6 00732 3521 00 epp2 pr6|474 007152 aa 6 00770 2521 00 spri2 pr6|504 007153 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 007154 aa 6 00772 2521 00 spri2 pr6|506 007155 aa 000001 7270 07 lxl7 1,dl 007156 aa 7 00002 3521 00 epp2 pr7|2 x25_pkt.type 007157 aa 2 00000 5035 17 abd pr2|0,7 007160 aa 6 00774 2521 00 spri2 pr6|508 007161 aa 770775 3520 04 epp2 -3587,ic 000156 = 404000000021 007162 aa 6 00776 2521 00 spri2 pr6|510 007163 aa 770726 3520 04 epp2 -3626,ic 000111 = 524000000050 007164 aa 6 01000 2521 00 spri2 pr6|512 007165 aa 770752 3520 04 epp2 -3606,ic 000137 = 524000000040 007166 aa 6 01002 2521 00 spri2 pr6|514 007167 aa 770733 3520 04 epp2 -3621,ic 000122 = 516000000010 007170 aa 6 01004 2521 00 spri2 pr6|516 007171 aa 6 00764 6211 00 eax1 pr6|500 007172 aa 020000 4310 07 fld 8192,dl 007173 aa 6 00044 3701 20 epp4 pr6|36,* 007174 la 4 00056 3521 20 epp2 pr4|46,* syserr 007175 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1397 call dump_pkt; 007176 aa 001535 6700 04 tsp4 861,ic 010733 STATEMENT 1 ON LINE 1398 call reset_lc (32); 007177 aa 000040 2360 07 ldq 32,dl 007200 aa 6 00717 7561 00 stq pr6|463 007201 aa 006041 3520 04 epp2 3105,ic 015242 = 000002000000 007202 aa 002411 6700 04 tsp4 1289,ic 011613 STATEMENT 1 ON LINE 1399 goto done_in_pkt; 007203 aa 001234 7100 04 tra 668,ic 010437 STATEMENT 1 ON LINE 1400 end; STATEMENT 1 ON LINE 1404 else do; STATEMENT 1 ON LINE 1408 if x25_pkt.type = CALLRQ then do; 007204 aa 2 00002 2351 00 lda pr2|2 x25_pkt.type 007205 aa 000001 7350 00 als 1 007206 aa 0 00020 3771 00 anaq pr0|16 = 776000000000 000000000000 007207 aa 026000 1150 03 cmpa 11264,du 007210 aa 000747 6010 04 tnz 487,ic 010157 STATEMENT 1 ON LINE 1409 if xlce.state ^= READY then do; 007211 aa 3 00000 2361 00 ldq pr3|0 xlce.state 007212 aa 000001 1160 07 cmpq 1,dl 007213 aa 000042 6000 04 tze 34,ic 007255 STATEMENT 1 ON LINE 1410 call syserr (Log_message, "x25_mpx(^a/^d): Call Request in state ^d.", x25_data.name, lcx, xlce.state); 007214 aa 000 100 100 404 mlr (ic),(pr),fill(000) 007215 aa 771351 00 0054 desc9a -3351,44 000565 = 170062065137 007216 aa 6 00750 00 0054 desc9a pr6|488,44 007217 aa 770741 3520 04 epp2 -3615,ic 000160 = 000000000004 007220 aa 6 00766 2521 00 spri2 pr6|502 007221 aa 6 00750 3521 00 epp2 pr6|488 007222 aa 6 00770 2521 00 spri2 pr6|504 007223 aa 7 00000 3521 00 epp2 pr7|0 x25_data.name 007224 aa 6 00772 2521 00 spri2 pr6|506 007225 aa 6 00117 3521 00 epp2 pr6|79 lcx 007226 aa 6 00774 2521 00 spri2 pr6|508 007227 aa 3 00000 3521 00 epp2 pr3|0 xlce.state 007230 aa 6 00776 2521 00 spri2 pr6|510 007231 aa 770725 3520 04 epp2 -3627,ic 000156 = 404000000021 007232 aa 6 01000 2521 00 spri2 pr6|512 007233 aa 6 01010 2521 00 spri2 pr6|520 007234 aa 770654 3520 04 epp2 -3668,ic 000110 = 524000000051 007235 aa 6 01002 2521 00 spri2 pr6|514 007236 aa 770701 3520 04 epp2 -3647,ic 000137 = 524000000040 007237 aa 6 01004 2521 00 spri2 pr6|516 007240 aa 770671 3520 04 epp2 -3655,ic 000131 = 604000000014 007241 aa 6 01006 2521 00 spri2 pr6|518 007242 aa 6 00764 6211 00 eax1 pr6|500 007243 aa 024000 4310 07 fld 10240,dl 007244 aa 6 00044 3701 20 epp4 pr6|36,* 007245 la 4 00056 3521 20 epp2 pr4|46,* syserr 007246 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1412 call dump_pkt; 007247 aa 001464 6700 04 tsp4 820,ic 010733 STATEMENT 1 ON LINE 1413 call clear_call (16); 007250 aa 000020 2360 07 ldq 16,dl 007251 aa 6 00717 7561 00 stq pr6|463 007252 aa 005770 3520 04 epp2 3064,ic 015242 = 000002000000 007253 aa 001316 6700 04 tsp4 718,ic 010571 STATEMENT 1 ON LINE 1414 goto done_in_pkt; 007254 aa 001163 7100 04 tra 627,ic 010437 STATEMENT 1 ON LINE 1415 end; STATEMENT 1 ON LINE 1417 calling_dte_addr_length = binary (substr (x25_pkt.no_fc_data (1), 2, 4), 4); 007255 aa 2 00002 2351 00 lda pr2|2 x25_pkt.no_fc_data 007256 aa 000012 7350 00 als 10 007257 aa 000104 7730 00 lrl 68 007260 aa 6 00111 7561 00 stq pr6|73 calling_dte_addr_length STATEMENT 1 ON LINE 1418 called_dte_addr_length = binary (substr (x25_pkt.no_fc_data (1), 6, 4), 4); 007261 aa 2 00002 2351 00 lda pr2|2 x25_pkt.no_fc_data 007262 aa 000016 7350 00 als 14 007263 aa 000104 7730 00 lrl 68 007264 aa 6 00110 7561 00 stq pr6|72 called_dte_addr_length STATEMENT 1 ON LINE 1419 facility_disp = 2 + divide (1 + calling_dte_addr_length + called_dte_addr_length, 2, 6, 0); 007265 aa 000001 2360 07 ldq 1,dl 007266 aa 6 00111 0761 00 adq pr6|73 calling_dte_addr_length 007267 aa 6 00110 0761 00 adq pr6|72 called_dte_addr_length 007270 aa 000002 5060 07 div 2,dl 007271 aa 000002 0760 07 adq 2,dl 007272 aa 6 00112 7561 00 stq pr6|74 facility_disp STATEMENT 1 ON LINE 1420 facility_length = binary (substr (x25_pkt.no_fc_data (facility_disp), 4, 6), 6); 007273 aa 000011 4020 07 mpy 9,dl 007274 aa 003 100 060 506 csl (pr,ql),(pr),fill(0),bool(move) 007275 aa 2 00002 03 0006 descb pr2|2(3),6 x25_pkt.no_fc_data 007276 aa 6 00056 00 0044 descb pr6|46,36 007277 aa 6 00056 2351 00 lda pr6|46 007300 aa 000102 7730 00 lrl 66 007301 aa 6 00114 7561 00 stq pr6|76 facility_length STATEMENT 1 ON LINE 1422 do i = 2 to facility_disp - 1; 007302 aa 6 00112 2361 00 ldq pr6|74 facility_disp 007303 aa 000001 1760 07 sbq 1,dl 007304 aa 6 00273 7561 00 stq pr6|187 007305 aa 000002 2360 07 ldq 2,dl 007306 aa 6 00122 7561 00 stq pr6|82 i 007307 aa 000000 0110 03 nop 0,du 007310 aa 6 00122 2361 00 ldq pr6|82 i 007311 aa 6 00273 1161 00 cmpq pr6|187 007312 aa 000035 6054 04 tpnz 29,ic 007347 STATEMENT 1 ON LINE 1423 unspec (substr (addr_string, 2 * i - 3, 1)) = "00011"b || substr (x25_pkt.no_fc_data (i), 2, 4); 007313 aa 000011 4020 07 mpy 9,dl 007314 aa 000000 6270 06 eax7 0,ql 007315 aa 6 00122 2361 00 ldq pr6|82 i 007316 aa 000001 7360 00 qls 1 007317 aa 000011 4020 07 mpy 9,dl 007320 aa 6 00262 3735 20 epp7 pr6|178,* blockp 007321 aa 003 100 060 517 csl (pr,x7),(pr),fill(0),bool(move) 007322 aa 7 00002 01 0004 descb pr7|2(1),4 x25_pkt.no_fc_data 007323 aa 6 00056 00 0044 descb pr6|46,36 007324 aa 6 00056 2351 00 lda pr6|46 007325 aa 000005 7710 00 arl 5 007326 aa 060000 2750 03 ora 24576,du 007327 aa 6 00056 7551 00 sta pr6|46 007330 aa 003 106 060 500 csl (pr),(pr,ql),fill(0),bool(move) 007331 aa 6 00056 00 0011 descb pr6|46,9 007332 aa 6 00143 00 0011 descb pr6|99,9 STATEMENT 1 ON LINE 1425 unspec (substr (addr_string, 2 * i - 2, 1)) = "00011"b || substr (x25_pkt.no_fc_data (i), 6, 4); 007333 aa 003 100 060 517 csl (pr,x7),(pr),fill(0),bool(move) 007334 aa 7 00002 05 0004 descb pr7|2(5),4 x25_pkt.no_fc_data 007335 aa 6 00056 00 0044 descb pr6|46,36 007336 aa 6 00056 2351 00 lda pr6|46 007337 aa 000005 7710 00 arl 5 007340 aa 060000 2750 03 ora 24576,du 007341 aa 6 00056 7551 00 sta pr6|46 007342 aa 003 106 060 500 csl (pr),(pr,ql),fill(0),bool(move) 007343 aa 6 00056 00 0011 descb pr6|46,9 007344 aa 6 00143 20 0011 descb pr6|99(9),9 STATEMENT 1 ON LINE 1427 end; 007345 aa 6 00122 0541 00 aos pr6|82 i 007346 aa 777742 7100 04 tra -30,ic 007310 STATEMENT 1 ON LINE 1428 xlce.his_address = substr (addr_string, 1 + called_dte_addr_length, calling_dte_addr_length); 007347 aa 6 00111 2361 00 ldq pr6|73 calling_dte_addr_length 007350 aa 000017 1160 07 cmpq 15,dl 007351 aa 000002 6040 04 tmi 2,ic 007353 007352 aa 000017 2360 07 ldq 15,dl 007353 aa 6 00110 7271 00 lxl7 pr6|72 called_dte_addr_length 007354 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 007355 aa 7 00020 7561 00 stq pr7|16 xlce.his_address 007356 aa 040 140 100 557 mlr (pr,rl,x7),(pr,rl),fill(040) 007357 aa 6 00144 00 0006 desc9a pr6|100,ql addr_string 007360 aa 7 00021 00 0006 desc9a pr7|17,ql xlce.his_address STATEMENT 1 ON LINE 1430 user_data_disp = facility_disp + facility_length + 1; 007361 aa 6 00112 2361 00 ldq pr6|74 facility_disp 007362 aa 6 00114 0761 00 adq pr6|76 facility_length 007363 aa 000001 0760 07 adq 1,dl 007364 aa 6 00113 7561 00 stq pr6|75 user_data_disp STATEMENT 1 ON LINE 1431 user_data_length = buffer.tally - 2 - user_data_disp - L2_HEADER_PAD; 007365 aa 6 00262 2361 20 ldq pr6|178,* buffer.tally 007366 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 007367 aa 000002 1760 07 sbq 2,dl 007370 aa 6 00113 1761 00 sbq pr6|75 user_data_disp 007371 aa 000002 1760 07 sbq 2,dl 007372 aa 6 00115 7561 00 stq pr6|77 user_data_length STATEMENT 1 ON LINE 1432 if protocol_mpx then do; 007373 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 007374 aa 400000 3150 03 cana 131072,du 007375 aa 000412 6000 04 tze 266,ic 010007 STATEMENT 1 ON LINE 1433 xlce.baud_rate = DEFAULT_BAUD; 007376 aa 002260 2360 07 ldq 1200,dl 007377 aa 7 00004 7561 00 stq pr7|4 xlce.baud_rate STATEMENT 1 ON LINE 1434 xlce.call_data = ""; 007400 aa 7 00025 4501 00 stz pr7|21 xlce.call_data STATEMENT 1 ON LINE 1435 if user_data_length >= 4 & x25_pkt.no_fc_data (user_data_disp) = "000000001"b then do; 007401 aa 6 00115 2361 00 ldq pr6|77 user_data_length 007402 aa 000004 1160 07 cmpq 4,dl 007403 aa 000170 6040 04 tmi 120,ic 007573 007404 aa 6 00113 2361 00 ldq pr6|75 user_data_disp 007405 aa 000011 4020 07 mpy 9,dl 007406 aa 6 00717 7561 00 stq pr6|463 007407 aa 6 00262 3715 20 epp5 pr6|178,* blockp 007410 aa 000 004 066 506 cmpb (pr,ql),(ic),fill(0) 007411 aa 5 00002 00 0011 descb pr5|2,9 x25_pkt.no_fc_data 007412 aa 005652 00 0011 descb 2986,9 015262 = 001000000000 007413 aa 000160 6010 04 tnz 112,ic 007573 STATEMENT 1 ON LINE 1437 xlce.flags.iti_call = "1"b; 007414 aa 400000 2350 03 lda 131072,du 007415 aa 7 00005 2551 00 orsa pr7|5 xlce.iti_call STATEMENT 1 ON LINE 1438 if user_data_length > 4 then do; 007416 aa 6 00115 2361 00 ldq pr6|77 user_data_length 007417 aa 000004 1160 07 cmpq 4,dl 007420 aa 000050 6044 04 tmoz 40,ic 007470 STATEMENT 1 ON LINE 1440 Call_data = substr (l3_call_data, 5); 007421 aa 000004 1760 07 sbq 4,dl 007422 aa 6 00113 2351 00 lda pr6|75 user_data_disp 007423 aa 040 100 100 545 mlr (pr,rl,al),(pr),fill(040) 007424 aa 5 00003 00 0006 desc9a pr5|3,ql l3_call_data 007425 aa 6 00157 00 0020 desc9a pr6|111,16 Call_data STATEMENT 1 ON LINE 1441 call mvt_ (addr (Call_data), addr (Call_data), /* suppresion of the eighth bit (parity) of call data */ user_data_length - 4, (x25_mpx_data$trans_no_parity)); 007426 aa 6 00157 3535 00 epp3 pr6|111 Call_data 007427 aa 6 00720 2535 00 spri3 pr6|464 007430 aa 6 00157 3515 00 epp1 pr6|111 Call_data 007431 aa 6 00746 2515 00 spri1 pr6|486 007432 aa 6 00115 2361 00 ldq pr6|77 user_data_length 007433 aa 000004 1760 07 sbq 4,dl 007434 aa 6 00717 7561 00 stq pr6|463 007435 aa 6 00044 3701 20 epp4 pr6|36,* 007436 la 4 00040 3735 20 epp7 pr4|32,* x25_mpx_data$trans_no_parity 007437 aa 040 100 100 500 mlr (pr),(pr),fill(040) 007440 aa 7 00000 00 0400 desc9a pr7|0,256 x25_mpx_data$trans_no_parity 007441 aa 6 01062 00 1000 desc9a pr6|562,512 007442 aa 6 00720 3521 00 epp2 pr6|464 007443 aa 6 00734 2521 00 spri2 pr6|476 007444 aa 6 00746 3521 00 epp2 pr6|486 007445 aa 6 00736 2521 00 spri2 pr6|478 007446 aa 6 00717 3521 00 epp2 pr6|463 007447 aa 6 00740 2521 00 spri2 pr6|480 007450 aa 6 01062 3521 00 epp2 pr6|562 007451 aa 6 00742 2521 00 spri2 pr6|482 007452 aa 6 00732 6211 00 eax1 pr6|474 007453 aa 020000 4310 07 fld 8192,dl 007454 la 4 00052 3521 20 epp2 pr4|42,* mvt_ 007455 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1444 xlce.call_data = substr (Call_data, 1, user_data_length - 4); 007456 aa 6 00115 2361 00 ldq pr6|77 user_data_length 007457 aa 000004 1760 07 sbq 4,dl 007460 aa 000020 1160 07 cmpq 16,dl 007461 aa 000002 6040 04 tmi 2,ic 007463 007462 aa 000020 2360 07 ldq 16,dl 007463 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 007464 aa 7 00025 7561 00 stq pr7|21 xlce.call_data 007465 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 007466 aa 6 00157 00 0006 desc9a pr6|111,ql Call_data 007467 aa 7 00026 00 0006 desc9a pr7|22,ql xlce.call_data STATEMENT 1 ON LINE 1445 end; STATEMENT 1 ON LINE 1446 scx = find_sc (xlce.call_data); 007470 aa 7 00026 3521 00 epp2 pr7|22 xlce.call_data 007471 aa 6 00724 2521 00 spri2 pr6|468 007472 aa 6 00120 3521 00 epp2 pr6|80 scx 007473 aa 6 00726 2521 00 spri2 pr6|470 007474 aa 6 00722 3521 00 epp2 pr6|466 007475 aa 010000 4310 07 fld 4096,dl 007476 aa 2 00000 7571 00 staq pr2|0 007477 aa 001306 6700 04 tsp4 710,ic 011005 STATEMENT 1 ON LINE 1447 if scx = 0 then scx = find_sc (""); 007500 aa 6 00120 2361 00 ldq pr6|80 scx 007501 aa 000004 6010 04 tnz 4,ic 007505 007502 aa 6 00722 4501 00 stz pr6|466 007503 aa 005051 3520 04 epp2 2601,ic 014554 = 000004000000 007504 aa 001301 6700 04 tsp4 705,ic 011005 STATEMENT 1 ON LINE 1448 if (scx = 0) | ^x25_data.flags.mpx_started then do; 007505 aa 6 00120 2361 00 ldq pr6|80 scx 007506 aa 000005 6000 04 tze 5,ic 007513 007507 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 007510 aa 7 00015 2351 00 lda pr7|13 x25_data.mpx_started 007511 aa 200000 3150 03 cana 65536,du 007512 aa 000042 6010 04 tnz 34,ic 007554 STATEMENT 1 ON LINE 1449 call syserr (Log_message, "x25_mpx(^a/^d): No listening channels. , scx=^d", x25_data.name, lcx, scx); 007513 aa 000 100 100 404 mlr (ic),(pr),fill(000) 007514 aa 771113 00 0060 desc9a -3509,48 000626 = 170062065137 007515 aa 6 00750 00 0060 desc9a pr6|488,48 007516 aa 770442 3520 04 epp2 -3806,ic 000160 = 000000000004 007517 aa 6 00766 2521 00 spri2 pr6|502 007520 aa 6 00750 3521 00 epp2 pr6|488 007521 aa 6 00770 2521 00 spri2 pr6|504 007522 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 007523 aa 6 00772 2521 00 spri2 pr6|506 007524 aa 6 00117 3521 00 epp2 pr6|79 lcx 007525 aa 6 00774 2521 00 spri2 pr6|508 007526 aa 6 00120 3521 00 epp2 pr6|80 scx 007527 aa 6 00776 2521 00 spri2 pr6|510 007530 aa 770426 3520 04 epp2 -3818,ic 000156 = 404000000021 007531 aa 6 01000 2521 00 spri2 pr6|512 007532 aa 6 01010 2521 00 spri2 pr6|520 007533 aa 770354 3520 04 epp2 -3860,ic 000107 = 524000000057 007534 aa 6 01002 2521 00 spri2 pr6|514 007535 aa 770402 3520 04 epp2 -3838,ic 000137 = 524000000040 007536 aa 6 01004 2521 00 spri2 pr6|516 007537 aa 770372 3520 04 epp2 -3846,ic 000131 = 604000000014 007540 aa 6 01006 2521 00 spri2 pr6|518 007541 aa 6 00764 6211 00 eax1 pr6|500 007542 aa 024000 4310 07 fld 10240,dl 007543 aa 6 00044 3701 20 epp4 pr6|36,* 007544 la 4 00056 3521 20 epp2 pr4|46,* syserr 007545 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1451 call dump_pkt; 007546 aa 001165 6700 04 tsp4 629,ic 010733 STATEMENT 1 ON LINE 1452 call clear_call (64); 007547 aa 000100 2360 07 ldq 64,dl 007550 aa 6 00717 7561 00 stq pr6|463 007551 aa 005471 3520 04 epp2 2873,ic 015242 = 000002000000 007552 aa 001017 6700 04 tsp4 527,ic 010571 STATEMENT 1 ON LINE 1453 goto done_in_pkt; 007553 aa 000664 7100 04 tra 436,ic 010437 STATEMENT 1 ON LINE 1454 end; STATEMENT 1 ON LINE 1456 call check_facilities (); 007554 aa 004373 6700 04 tsp4 2299,ic 014147 STATEMENT 1 ON LINE 1457 xscep = addr (x25_data.sc (scx)); 007555 aa 6 00120 2361 00 ldq pr6|80 scx 007556 aa 000026 4020 07 mpy 22,dl 007557 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 007560 aa 7 00024 3735 06 epp7 pr7|20,ql x25_data.sc 007561 aa 6 00172 6535 00 spri7 pr6|122 xscep STATEMENT 1 ON LINE 1458 xsce.lcx = lcx; 007562 aa 6 00117 2361 00 ldq pr6|79 lcx 007563 aa 7 00011 7561 00 stq pr7|9 xsce.lcx STATEMENT 1 ON LINE 1459 xlce.scx = scx; 007564 aa 6 00120 2361 00 ldq pr6|80 scx 007565 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 007566 aa 5 00001 7561 00 stq pr5|1 xlce.scx STATEMENT 1 ON LINE 1460 call free_in_pkt; 007567 aa 001257 6700 04 tsp4 687,ic 011046 STATEMENT 1 ON LINE 1461 call send_NCON_RESP; 007570 aa 004334 6700 04 tsp4 2268,ic 014124 STATEMENT 1 ON LINE 1462 call signal_dialup; 007571 aa 003704 6700 04 tsp4 1988,ic 013475 STATEMENT 1 ON LINE 1463 goto done_in_pkt; 007572 aa 000645 7100 04 tra 421,ic 010437 STATEMENT 1 ON LINE 1464 end; STATEMENT 1 ON LINE 1465 else do; STATEMENT 1 ON LINE 1466 if ^x25_data.flags.mpx_started then do; 007573 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 007574 aa 5 00015 2351 00 lda pr5|13 x25_data.mpx_started 007575 aa 200000 3150 03 cana 65536,du 007576 aa 000037 6010 04 tnz 31,ic 007635 STATEMENT 1 ON LINE 1468 call syserr (Log_message, "x25_mpx(^a/^d): No listening ISO_channels.", x25_data.name, lcx); 007577 aa 000 100 100 404 mlr (ic),(pr),fill(000) 007600 aa 770753 00 0054 desc9a -3605,44 000552 = 170062065137 007601 aa 6 00750 00 0054 desc9a pr6|488,44 007602 aa 770356 3520 04 epp2 -3858,ic 000160 = 000000000004 007603 aa 6 00766 2521 00 spri2 pr6|502 007604 aa 6 00750 3521 00 epp2 pr6|488 007605 aa 6 00770 2521 00 spri2 pr6|504 007606 aa 5 00000 3521 00 epp2 pr5|0 x25_data.name 007607 aa 6 00772 2521 00 spri2 pr6|506 007610 aa 6 00117 3521 00 epp2 pr6|79 lcx 007611 aa 6 00774 2521 00 spri2 pr6|508 007612 aa 770344 3520 04 epp2 -3868,ic 000156 = 404000000021 007613 aa 6 00776 2521 00 spri2 pr6|510 007614 aa 770276 3520 04 epp2 -3906,ic 000112 = 524000000052 007615 aa 6 01000 2521 00 spri2 pr6|512 007616 aa 770321 3520 04 epp2 -3887,ic 000137 = 524000000040 007617 aa 6 01002 2521 00 spri2 pr6|514 007620 aa 770311 3520 04 epp2 -3895,ic 000131 = 604000000014 007621 aa 6 01004 2521 00 spri2 pr6|516 007622 aa 6 00764 6211 00 eax1 pr6|500 007623 aa 020000 4310 07 fld 8192,dl 007624 aa 6 00044 3701 20 epp4 pr6|36,* 007625 la 4 00056 3521 20 epp2 pr4|46,* syserr 007626 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1470 call dump_pkt; 007627 aa 001104 6700 04 tsp4 580,ic 010733 STATEMENT 1 ON LINE 1471 call clear_call (64); 007630 aa 000100 2360 07 ldq 64,dl 007631 aa 6 00717 7561 00 stq pr6|463 007632 aa 005410 3520 04 epp2 2824,ic 015242 = 000002000000 007633 aa 000736 6700 04 tsp4 478,ic 010571 STATEMENT 1 ON LINE 1472 goto done_in_pkt; 007634 aa 000603 7100 04 tra 387,ic 010437 STATEMENT 1 ON LINE 1473 end; STATEMENT 1 ON LINE 1474 xscep = addr (x25_data.sc (scx)); 007635 aa 6 00120 2361 00 ldq pr6|80 scx 007636 aa 000026 4020 07 mpy 22,dl 007637 aa 5 00024 3535 06 epp3 pr5|20,ql x25_data.sc 007640 aa 6 00172 2535 00 spri3 pr6|122 xscep STATEMENT 1 ON LINE 1476 xsce.lcx = lcx; 007641 aa 6 00117 2361 00 ldq pr6|79 lcx 007642 aa 3 00011 7561 00 stq pr3|9 xsce.lcx STATEMENT 1 ON LINE 1477 xlce.scx = scx; 007643 aa 6 00120 2361 00 ldq pr6|80 scx 007644 aa 7 00001 7561 00 stq pr7|1 xlce.scx STATEMENT 1 ON LINE 1478 xlce.call_data = l3_call_data; 007645 aa 6 00115 2361 00 ldq pr6|77 user_data_length 007646 aa 000020 1160 07 cmpq 16,dl 007647 aa 000002 6040 04 tmi 2,ic 007651 007650 aa 000020 2360 07 ldq 16,dl 007651 aa 6 00113 7261 00 lxl6 pr6|75 user_data_disp 007652 aa 6 00262 3515 20 epp1 pr6|178,* blockp 007653 aa 7 00025 7561 00 stq pr7|21 xlce.call_data 007654 aa 040 140 100 556 mlr (pr,rl,x6),(pr,rl),fill(040) 007655 aa 1 00002 00 0006 desc9a pr1|2,ql l3_call_data 007656 aa 7 00026 00 0006 desc9a pr7|22,ql xlce.call_data STATEMENT 1 ON LINE 1479 xsce.trans_table_ptr = null (); 007657 aa 770335 2370 04 ldaq -3875,ic 000214 = 077777000043 000001000000 007660 aa 3 00024 7571 00 staq pr3|20 xsce.trans_table_ptr STATEMENT 1 ON LINE 1480 NCON_IND_info.his_address = xlce.his_address; 007661 aa 7 00020 2361 00 ldq pr7|16 xlce.his_address 007662 aa 6 00210 7561 00 stq pr6|136 NCON_IND_info.his_address 007663 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 007664 aa 7 00021 00 0006 desc9a pr7|17,ql xlce.his_address 007665 aa 6 00211 00 0006 desc9a pr6|137,ql NCON_IND_info.his_address STATEMENT 1 ON LINE 1481 NCON_IND_info.our_address = x25_data.my_address; 007666 aa 5 00044 2361 00 ldq pr5|36 x25_data.my_address 007667 aa 6 00215 7561 00 stq pr6|141 NCON_IND_info.our_address 007670 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 007671 aa 5 00045 00 0006 desc9a pr5|37,ql x25_data.my_address 007672 aa 6 00216 00 0006 desc9a pr6|142,ql NCON_IND_info.our_address STATEMENT 1 ON LINE 1482 NCON_IND_info.data = l3_call_data; 007673 aa 6 00115 2361 00 ldq pr6|77 user_data_length 007674 aa 000060 1160 07 cmpq 48,dl 007675 aa 000002 6040 04 tmi 2,ic 007677 007676 aa 000060 2360 07 ldq 48,dl 007677 aa 6 00222 7561 00 stq pr6|146 NCON_IND_info.data 007700 aa 040 140 100 556 mlr (pr,rl,x6),(pr,rl),fill(040) 007701 aa 1 00002 00 0006 desc9a pr1|2,ql l3_call_data 007702 aa 6 00223 00 0006 desc9a pr6|147,ql NCON_IND_info.data STATEMENT 1 ON LINE 1483 NCON_IND_info.facilities = l3_facilities; 007703 aa 6 00114 2361 00 ldq pr6|76 facility_length 007704 aa 000020 1160 07 cmpq 16,dl 007705 aa 000002 6040 04 tmi 2,ic 007707 007706 aa 000020 2360 07 ldq 16,dl 007707 aa 6 00112 7251 00 lxl5 pr6|74 facility_disp 007710 aa 6 00237 7561 00 stq pr6|159 NCON_IND_info.facilities 007711 aa 040 140 100 555 mlr (pr,rl,x5),(pr,rl),fill(040) 007712 aa 1 00002 20 0006 desc9a pr1|2(1),ql l3_facilities 007713 aa 6 00240 00 0006 desc9a pr6|160,ql NCON_IND_info.facilities STATEMENT 1 ON LINE 1484 call set_up_dialup_info; 007714 aa 004366 6700 04 tsp4 2294,ic 014302 STATEMENT 1 ON LINE 1485 unspec (NCON_IND_info.dial_info) = unspec (dialup_info); 007715 aa 6 00174 2371 00 ldaq pr6|124 007716 aa 6 00206 7571 00 staq pr6|134 STATEMENT 1 ON LINE 1486 call free_in_pkt; 007717 aa 001127 6700 04 tsp4 599,ic 011046 STATEMENT 1 ON LINE 1487 call get_buffer (32); 007720 aa 000040 2360 07 ldq 32,dl 007721 aa 6 00717 7561 00 stq pr6|463 007722 aa 005320 3520 04 epp2 2768,ic 015242 = 000002000000 007723 aa 001223 6700 04 tsp4 659,ic 011146 STATEMENT 1 ON LINE 1488 call tty_space_man$switch_chain (x25_data.devx, xsce.devx, OUTPUT, INPUT, blockp); 007724 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 007725 aa 7 00010 3521 00 epp2 pr7|8 x25_data.devx 007726 aa 6 00752 2521 00 spri2 pr6|490 007727 aa 6 00172 3715 20 epp5 pr6|122,* xscep 007730 aa 5 00010 3521 00 epp2 pr5|8 xsce.devx 007731 aa 6 00754 2521 00 spri2 pr6|492 007732 aa 770214 3520 04 epp2 -3956,ic 000146 = 400000000000 007733 aa 6 00756 2521 00 spri2 pr6|494 007734 aa 770126 3520 04 epp2 -4010,ic 000062 = 000000000000 007735 aa 6 00760 2521 00 spri2 pr6|496 007736 aa 6 00262 3521 00 epp2 pr6|178 blockp 007737 aa 6 00762 2521 00 spri2 pr6|498 007740 aa 6 00750 6211 00 eax1 pr6|488 007741 aa 024000 4310 07 fld 10240,dl 007742 aa 6 00044 3701 20 epp4 pr6|36,* 007743 la 4 00106 3521 20 epp2 pr4|70,* tty_space_man$switch_chain 007744 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1489 unspec (DIALUP_info) = "0"b; 007745 aa 770237 2370 04 ldaq -3937,ic 000204 = 000000000000 000000000000 007746 aa 6 00204 7571 00 staq pr6|132 STATEMENT 1 ON LINE 1490 DIALUP_info.info_relp = rel (blockp); 007747 aa 6 00262 6351 20 eaa pr6|178,* blockp 007750 aa 6 00204 5511 60 stba pr6|132,60 DIALUP_info.info_relp STATEMENT 1 ON LINE 1491 N_I_i = NCON_IND_info; 007751 aa 6 00262 3735 20 epp7 pr6|178,* blockp 007752 aa 000 100 100 500 mlr (pr),(pr),fill(000) 007753 aa 6 00206 00 0170 desc9a pr6|134,120 NCON_IND_info 007754 aa 7 00001 00 0170 desc9a pr7|1,120 N_I_i STATEMENT 1 ON LINE 1492 buffer.next = 0; 007755 aa 000000 2350 07 lda 0,dl 007756 aa 7 00000 5511 60 stba pr7|0,60 buffer.next STATEMENT 1 ON LINE 1493 string (buffer.flags) = ""b; 007757 aa 005247 2350 04 lda 2727,ic 015226 = 777777007777 007760 aa 7 00000 3551 00 ansa pr7|0 STATEMENT 1 ON LINE 1494 buffer.tally = size (NCON_IND_info) * 4; 007761 aa 000170 2360 07 ldq 120,dl 007762 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 1495 xsce.state = SC_DIALING; 007763 aa 000002 2360 07 ldq 2,dl 007764 aa 6 00172 3715 20 epp5 pr6|122,* xscep 007765 aa 5 00012 7561 00 stq pr5|10 xsce.state STATEMENT 1 ON LINE 1496 call state_change (CONRESP_WAITING); 007766 aa 004562 3520 04 epp2 2418,ic 014550 = 000002000000 007767 aa 003653 6700 04 tsp4 1963,ic 013642 STATEMENT 1 ON LINE 1497 call channel_manager$interrupt (xsce.devx, DIALUP, unspec (DIALUP_info)); 007770 aa 6 00204 2371 00 ldaq pr6|132 007771 aa 6 00746 7571 00 staq pr6|486 007772 aa 6 00172 3735 20 epp7 pr6|122,* xscep 007773 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 007774 aa 6 00724 2521 00 spri2 pr6|468 007775 aa 770156 3520 04 epp2 -3986,ic 000153 = 000000000001 007776 aa 6 00726 2521 00 spri2 pr6|470 007777 aa 6 00746 3521 00 epp2 pr6|486 010000 aa 6 00730 2521 00 spri2 pr6|472 010001 aa 6 00722 6211 00 eax1 pr6|466 010002 aa 014000 4310 07 fld 6144,dl 010003 aa 6 00044 3701 20 epp4 pr6|36,* 010004 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 010005 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1498 goto done_in_pkt; 010006 aa 000431 7100 04 tra 281,ic 010437 STATEMENT 1 ON LINE 1499 end; STATEMENT 1 ON LINE 1500 end; STATEMENT 1 ON LINE 1501 else do; STATEMENT 1 ON LINE 1502 xlce.baud_rate = x25_data.dialup_info.baud_rate; 010007 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 010010 aa 5 00030 2361 00 ldq pr5|24 x25_data.baud_rate 010011 aa 0 00374 3771 00 anaq pr0|252 = 000000000000 000000777777 010012 aa 7 00004 7561 00 stq pr7|4 xlce.baud_rate STATEMENT 1 ON LINE 1503 if user_data_length >= 4 then do; 010013 aa 6 00115 2361 00 ldq pr6|77 user_data_length 010014 aa 000004 1160 07 cmpq 4,dl 010015 aa 000024 6040 04 tmi 20,ic 010041 STATEMENT 1 ON LINE 1504 xlce.call_data = substr (l3_call_data, 5); 010016 aa 000004 1760 07 sbq 4,dl 010017 aa 000020 1160 07 cmpq 16,dl 010020 aa 000002 6040 04 tmi 2,ic 010022 010021 aa 000020 2360 07 ldq 16,dl 010022 aa 6 00113 2351 00 lda pr6|75 user_data_disp 010023 aa 6 00262 3535 20 epp3 pr6|178,* blockp 010024 aa 7 00025 7561 00 stq pr7|21 xlce.call_data 010025 aa 040 140 100 545 mlr (pr,rl,al),(pr,rl),fill(040) 010026 aa 3 00003 00 0006 desc9a pr3|3,ql l3_call_data 010027 aa 7 00026 00 0006 desc9a pr7|22,ql xlce.call_data STATEMENT 1 ON LINE 1505 if x25_pkt.no_fc_data (user_data_disp) = "000000001"b then do; 010030 aa 6 00113 2361 00 ldq pr6|75 user_data_disp 010031 aa 000011 4020 07 mpy 9,dl 010032 aa 000 004 066 506 cmpb (pr,ql),(ic),fill(0) 010033 aa 3 00002 00 0011 descb pr3|2,9 x25_pkt.no_fc_data 010034 aa 005230 00 0011 descb 2712,9 015262 = 001000000000 010035 aa 000005 6010 04 tnz 5,ic 010042 STATEMENT 1 ON LINE 1506 xlce.flags.iti_call = "1"b; 010036 aa 400000 2350 03 lda 131072,du 010037 aa 7 00005 2551 00 orsa pr7|5 xlce.iti_call STATEMENT 1 ON LINE 1507 end; STATEMENT 1 ON LINE 1508 end; 010040 aa 000002 7100 04 tra 2,ic 010042 STATEMENT 1 ON LINE 1509 else xlce.call_data = ""; 010041 aa 7 00025 4501 00 stz pr7|21 xlce.call_data STATEMENT 1 ON LINE 1511 scx = find_sc (xlce.call_data); 010042 aa 7 00026 3521 00 epp2 pr7|22 xlce.call_data 010043 aa 6 00724 2521 00 spri2 pr6|468 010044 aa 6 00120 3521 00 epp2 pr6|80 scx 010045 aa 6 00726 2521 00 spri2 pr6|470 010046 aa 6 00722 3521 00 epp2 pr6|466 010047 aa 010000 4310 07 fld 4096,dl 010050 aa 2 00000 7571 00 staq pr2|0 010051 aa 000734 6700 04 tsp4 476,ic 011005 STATEMENT 1 ON LINE 1513 if scx = 0 then scx = find_sc (""); 010052 aa 6 00120 2361 00 ldq pr6|80 scx 010053 aa 000004 6010 04 tnz 4,ic 010057 010054 aa 6 00722 4501 00 stz pr6|466 010055 aa 004477 3520 04 epp2 2367,ic 014554 = 000004000000 010056 aa 000727 6700 04 tsp4 471,ic 011005 STATEMENT 1 ON LINE 1515 if (scx = 0) | ^x25_data.flags.mpx_started then do; 010057 aa 6 00120 2361 00 ldq pr6|80 scx 010060 aa 000005 6000 04 tze 5,ic 010065 010061 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 010062 aa 7 00015 2351 00 lda pr7|13 x25_data.mpx_started 010063 aa 200000 3150 03 cana 65536,du 010064 aa 000037 6010 04 tnz 31,ic 010123 STATEMENT 1 ON LINE 1516 call syserr (Log_message, "x25_mpx(^a/^d): No listening channels.", x25_data.name, lcx) ; 010065 aa 000 100 100 404 mlr (ic),(pr),fill(000) 010066 aa 770320 00 0050 desc9a -3888,40 000405 = 170062065137 010067 aa 6 00732 00 0050 desc9a pr6|474,40 010070 aa 770070 3520 04 epp2 -4040,ic 000160 = 000000000004 010071 aa 6 00766 2521 00 spri2 pr6|502 010072 aa 6 00732 3521 00 epp2 pr6|474 010073 aa 6 00770 2521 00 spri2 pr6|504 010074 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 010075 aa 6 00772 2521 00 spri2 pr6|506 010076 aa 6 00117 3521 00 epp2 pr6|79 lcx 010077 aa 6 00774 2521 00 spri2 pr6|508 010100 aa 770056 3520 04 epp2 -4050,ic 000156 = 404000000021 010101 aa 6 00776 2521 00 spri2 pr6|510 010102 aa 770012 3520 04 epp2 -4086,ic 000114 = 524000000046 010103 aa 6 01000 2521 00 spri2 pr6|512 010104 aa 770033 3520 04 epp2 -4069,ic 000137 = 524000000040 010105 aa 6 01002 2521 00 spri2 pr6|514 010106 aa 770023 3520 04 epp2 -4077,ic 000131 = 604000000014 010107 aa 6 01004 2521 00 spri2 pr6|516 010110 aa 6 00764 6211 00 eax1 pr6|500 010111 aa 020000 4310 07 fld 8192,dl 010112 aa 6 00044 3701 20 epp4 pr6|36,* 010113 la 4 00056 3521 20 epp2 pr4|46,* syserr 010114 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1518 call dump_pkt; 010115 aa 000616 6700 04 tsp4 398,ic 010733 STATEMENT 1 ON LINE 1519 call clear_call (64); 010116 aa 000100 2360 07 ldq 64,dl 010117 aa 6 00717 7561 00 stq pr6|463 010120 aa 005122 3520 04 epp2 2642,ic 015242 = 000002000000 010121 aa 000450 6700 04 tsp4 296,ic 010571 STATEMENT 1 ON LINE 1520 goto done_in_pkt; 010122 aa 000315 7100 04 tra 205,ic 010437 STATEMENT 1 ON LINE 1521 end; STATEMENT 1 ON LINE 1523 xscep = addr (x25_data.sc (scx)); 010123 aa 000026 4020 07 mpy 22,dl 010124 aa 7 00024 3715 06 epp5 pr7|20,ql x25_data.sc 010125 aa 6 00172 6515 00 spri5 pr6|122 xscep STATEMENT 1 ON LINE 1524 xsce.lcx = lcx; 010126 aa 6 00117 2361 00 ldq pr6|79 lcx 010127 aa 5 00011 7561 00 stq pr5|9 xsce.lcx STATEMENT 1 ON LINE 1525 xlce.scx = scx; 010130 aa 6 00120 2361 00 ldq pr6|80 scx 010131 aa 6 00170 3535 20 epp3 pr6|120,* xlcep 010132 aa 3 00001 7561 00 stq pr3|1 xlce.scx STATEMENT 1 ON LINE 1526 call free_in_pkt; 010133 aa 000713 6700 04 tsp4 459,ic 011046 STATEMENT 1 ON LINE 1527 call get_buffer (16); 010134 aa 000020 2360 07 ldq 16,dl 010135 aa 6 00717 7561 00 stq pr6|463 010136 aa 005104 3520 04 epp2 2628,ic 015242 = 000002000000 010137 aa 001007 6700 04 tsp4 519,ic 011146 STATEMENT 1 ON LINE 1528 call make_header (lcx, "0"b); 010140 aa 000000 2350 07 lda 0,dl 010141 aa 6 00717 7551 00 sta pr6|463 010142 aa 005072 3520 04 epp2 2618,ic 015234 = 000004000000 010143 aa 001170 6700 04 tsp4 632,ic 011333 STATEMENT 1 ON LINE 1529 x25_pkt.type = CALLAC; 010144 aa 017000 2350 03 lda 7680,du 010145 aa 6 00262 3735 20 epp7 pr6|178,* blockp 010146 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 010147 aa 377000 3750 03 ana 130560,du 010150 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 1530 buffer.tally = 3 + L2_HEADER_PAD; 010151 aa 000005 2360 07 ldq 5,dl 010152 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 1531 call write_pkt; 010153 aa 003537 6700 04 tsp4 1887,ic 013712 STATEMENT 1 ON LINE 1532 call send_output; 010154 aa 002302 6700 04 tsp4 1218,ic 012456 STATEMENT 1 ON LINE 1533 call signal_dialup; 010155 aa 003320 6700 04 tsp4 1744,ic 013475 STATEMENT 1 ON LINE 1534 goto done_in_pkt; 010156 aa 000261 7100 04 tra 177,ic 010437 STATEMENT 1 ON LINE 1535 end; STATEMENT 1 ON LINE 1536 end; STATEMENT 1 ON LINE 1540 if x25_pkt.type = CLRRQ then do; 010157 aa 6 00262 3735 20 epp7 pr6|178,* blockp 010160 aa 7 00002 2351 00 lda pr7|2 x25_pkt.type 010161 aa 000001 7350 00 als 1 010162 aa 0 00020 3771 00 anaq pr0|16 = 776000000000 000000000000 010163 aa 6 00717 7551 00 sta pr6|463 x25_pkt.type 010164 aa 046000 1150 03 cmpa 19456,du 010165 aa 000057 6010 04 tnz 47,ic 010244 STATEMENT 1 ON LINE 1541 call syserr (Log_message_or_discard, "x25_mpx(^a/^d): Clear Indication ^d/^d on idle VC.", x25_data.name, lcx, binary (x25_pkt.no_fc_data (1), 8), binary (x25_pkt.no_fc_data (2), 8)); 010166 aa 000 100 100 404 mlr (ic),(pr),fill(000) 010167 aa 770504 00 0064 desc9a -3772,52 000672 = 170062065137 010170 aa 6 00764 00 0064 desc9a pr6|500,52 010171 aa 7 00002 2351 00 lda pr7|2 x25_pkt.no_fc_data 010172 aa 000011 7350 00 als 9 010173 aa 000077 7730 00 lrl 63 010174 aa 6 01061 7561 00 stq pr6|561 010175 aa 7 00002 2351 00 lda pr7|2 x25_pkt.no_fc_data 010176 aa 000022 7350 00 als 18 010177 aa 000077 7730 00 lrl 63 010200 aa 6 01060 7561 00 stq pr6|560 010201 aa 767746 3520 04 epp2 -4122,ic 000147 = 000000000005 010202 aa 6 01020 2521 00 spri2 pr6|528 010203 aa 6 00764 3521 00 epp2 pr6|500 010204 aa 6 01022 2521 00 spri2 pr6|530 010205 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 010206 aa 6 01024 2521 00 spri2 pr6|532 010207 aa 6 00117 3521 00 epp2 pr6|79 lcx 010210 aa 6 01026 2521 00 spri2 pr6|534 010211 aa 6 01061 3521 00 epp2 pr6|561 010212 aa 6 01030 2521 00 spri2 pr6|536 010213 aa 6 01060 3521 00 epp2 pr6|560 010214 aa 6 01032 2521 00 spri2 pr6|538 010215 aa 767741 3520 04 epp2 -4127,ic 000156 = 404000000021 010216 aa 6 01034 2521 00 spri2 pr6|540 010217 aa 767667 3520 04 epp2 -4169,ic 000106 = 524000000062 010220 aa 6 01036 2521 00 spri2 pr6|542 010221 aa 767716 3520 04 epp2 -4146,ic 000137 = 524000000040 010222 aa 6 01040 2521 00 spri2 pr6|544 010223 aa 767706 3520 04 epp2 -4154,ic 000131 = 604000000014 010224 aa 6 01042 2521 00 spri2 pr6|546 010225 aa 767677 3520 04 epp2 -4161,ic 000124 = 404000000010 010226 aa 6 01044 2521 00 spri2 pr6|548 010227 aa 6 01046 2521 00 spri2 pr6|550 010230 aa 6 01016 6211 00 eax1 pr6|526 010231 aa 030000 4310 07 fld 12288,dl 010232 aa 6 00044 3701 20 epp4 pr6|36,* 010233 la 4 00056 3521 20 epp2 pr4|46,* syserr 010234 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1543 call dump_pkt; 010235 aa 000476 6700 04 tsp4 318,ic 010733 STATEMENT 1 ON LINE 1544 if xlce.state ^= DTE_CLEAR_REQUEST then call clear_confirm; 010236 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 010237 aa 000004 1160 07 cmpq 4,dl 010240 aa 000002 6000 04 tze 2,ic 010242 010241 aa 000363 6700 04 tsp4 243,ic 010624 STATEMENT 1 ON LINE 1545 call reset_xlce; 010242 aa 001455 6700 04 tsp4 813,ic 011717 STATEMENT 1 ON LINE 1546 goto done_in_pkt; 010243 aa 000174 7100 04 tra 124,ic 010437 STATEMENT 1 ON LINE 1547 end; STATEMENT 1 ON LINE 1551 if x25_pkt.type = CLRCN then do; 010244 aa 056000 1150 03 cmpa 23552,du 010245 aa 000050 6010 04 tnz 40,ic 010315 STATEMENT 1 ON LINE 1552 if xlce.state = DTE_CLEAR_REQUEST then do; 010246 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 010247 aa 000004 1160 07 cmpq 4,dl 010250 aa 000004 6010 04 tnz 4,ic 010254 STATEMENT 1 ON LINE 1553 call reset_xlce; 010251 aa 001446 6700 04 tsp4 806,ic 011717 STATEMENT 1 ON LINE 1554 call free_in_pkt; 010252 aa 000574 6700 04 tsp4 380,ic 011046 STATEMENT 1 ON LINE 1555 goto done_in_pkt; 010253 aa 000164 7100 04 tra 116,ic 010437 STATEMENT 1 ON LINE 1556 end; STATEMENT 1 ON LINE 1558 else do; STATEMENT 1 ON LINE 1559 call syserr (Log_message_or_discard, "x25_mpx(^a/^d): Clear Confirm in state ^d on idle VC.", x25_data.name, lcx, xlce.state); 010254 aa 000 100 100 404 mlr (ic),(pr),fill(000) 010255 aa 770503 00 0070 desc9a -3773,56 000757 = 170062065137 010256 aa 6 00764 00 0070 desc9a pr6|500,56 010257 aa 767670 3520 04 epp2 -4168,ic 000147 = 000000000005 010260 aa 6 01020 2521 00 spri2 pr6|528 010261 aa 6 00764 3521 00 epp2 pr6|500 010262 aa 6 01022 2521 00 spri2 pr6|530 010263 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 010264 aa 6 01024 2521 00 spri2 pr6|532 010265 aa 6 00117 3521 00 epp2 pr6|79 lcx 010266 aa 6 01026 2521 00 spri2 pr6|534 010267 aa 6 00170 3521 20 epp2 pr6|120,* xlce.state 010270 aa 6 01030 2521 00 spri2 pr6|536 010271 aa 767665 3520 04 epp2 -4171,ic 000156 = 404000000021 010272 aa 6 01032 2521 00 spri2 pr6|538 010273 aa 6 01042 2521 00 spri2 pr6|546 010274 aa 767611 3520 04 epp2 -4215,ic 000105 = 524000000065 010275 aa 6 01034 2521 00 spri2 pr6|540 010276 aa 767641 3520 04 epp2 -4191,ic 000137 = 524000000040 010277 aa 6 01036 2521 00 spri2 pr6|542 010300 aa 767631 3520 04 epp2 -4199,ic 000131 = 604000000014 010301 aa 6 01040 2521 00 spri2 pr6|544 010302 aa 6 01016 6211 00 eax1 pr6|526 010303 aa 024000 4310 07 fld 10240,dl 010304 aa 6 00044 3701 20 epp4 pr6|36,* 010305 la 4 00056 3521 20 epp2 pr4|46,* syserr 010306 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1562 call free_in_pkt; 010307 aa 000537 6700 04 tsp4 351,ic 011046 STATEMENT 1 ON LINE 1563 call clear_call (20); 010310 aa 000024 2360 07 ldq 20,dl 010311 aa 6 00717 7561 00 stq pr6|463 010312 aa 004730 3520 04 epp2 2520,ic 015242 = 000002000000 010313 aa 000256 6700 04 tsp4 174,ic 010571 STATEMENT 1 ON LINE 1564 goto done_in_pkt; 010314 aa 000123 7100 04 tra 83,ic 010437 STATEMENT 1 ON LINE 1565 end; STATEMENT 1 ON LINE 1566 end; STATEMENT 1 ON LINE 1570 call syserr (Log_message, "x25_mpx(^a/^d); Unexpected packet type ^.4b on idle VC.", x25_data.name, lcx, x25_pkt.type); 010315 aa 000 100 100 404 mlr (ic),(pr),fill(000) 010316 aa 770424 00 0070 desc9a -3820,56 000741 = 170062065137 010317 aa 6 00764 00 0070 desc9a pr6|500,56 010320 aa 767640 3520 04 epp2 -4192,ic 000160 = 000000000004 010321 aa 6 01020 2521 00 spri2 pr6|528 010322 aa 6 00764 3521 00 epp2 pr6|500 010323 aa 6 01022 2521 00 spri2 pr6|530 010324 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 010325 aa 6 01024 2521 00 spri2 pr6|532 010326 aa 6 00117 3521 00 epp2 pr6|79 lcx 010327 aa 6 01026 2521 00 spri2 pr6|534 010330 aa 000001 7270 07 lxl7 1,dl 010331 aa 7 00002 3521 00 epp2 pr7|2 x25_pkt.type 010332 aa 2 00000 5035 17 abd pr2|0,7 010333 aa 6 01030 2521 00 spri2 pr6|536 010334 aa 767622 3520 04 epp2 -4206,ic 000156 = 404000000021 010335 aa 6 01032 2521 00 spri2 pr6|538 010336 aa 767546 3520 04 epp2 -4250,ic 000104 = 524000000067 010337 aa 6 01034 2521 00 spri2 pr6|540 010340 aa 767577 3520 04 epp2 -4225,ic 000137 = 524000000040 010341 aa 6 01036 2521 00 spri2 pr6|542 010342 aa 767567 3520 04 epp2 -4233,ic 000131 = 604000000014 010343 aa 6 01040 2521 00 spri2 pr6|544 010344 aa 767556 3520 04 epp2 -4242,ic 000122 = 516000000010 010345 aa 6 01042 2521 00 spri2 pr6|546 010346 aa 6 01016 6211 00 eax1 pr6|526 010347 aa 024000 4310 07 fld 10240,dl 010350 aa 6 00044 3701 20 epp4 pr6|36,* 010351 la 4 00056 3521 20 epp2 pr4|46,* syserr 010352 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1572 call dump_pkt; 010353 aa 000360 6700 04 tsp4 240,ic 010733 STATEMENT 1 ON LINE 1573 call clear_call (20); 010354 aa 000024 2360 07 ldq 20,dl 010355 aa 6 00717 7561 00 stq pr6|463 010356 aa 004664 3520 04 epp2 2484,ic 015242 = 000002000000 010357 aa 000212 6700 04 tsp4 138,ic 010571 STATEMENT 1 ON LINE 1574 goto done_in_pkt; 010360 aa 000057 7100 04 tra 47,ic 010437 STATEMENT 1 ON LINE 1575 end; STATEMENT 1 ON LINE 1576 end; STATEMENT 1 ON LINE 1580 else if x25_data.state = X25_RESTARTING then do; 010361 aa 000002 1160 07 cmpq 2,dl 010362 aa 000053 6010 04 tnz 43,ic 010435 STATEMENT 1 ON LINE 1581 if ((x25_pkt.type = RSRTRQ) | (x25_pkt.type = RSRTCN)) & (lcx = 0) then do; 010363 aa 2 00002 2351 00 lda pr2|2 x25_pkt.type 010364 aa 000001 7350 00 als 1 010365 aa 0 00020 3771 00 anaq pr0|16 = 776000000000 000000000000 010366 aa 6 00717 7551 00 sta pr6|463 x25_pkt.type 010367 aa 766000 1150 03 cmpa 257024,du 010370 aa 000003 6000 04 tze 3,ic 010373 010371 aa 776000 1150 03 cmpa 261120,du 010372 aa 000041 6010 04 tnz 33,ic 010433 010373 aa 6 00117 2361 00 ldq pr6|79 lcx 010374 aa 000037 6010 04 tnz 31,ic 010433 STATEMENT 1 ON LINE 1582 call mcs_timer$reset (x25_data.devx, 0, ""b); 010375 aa 6 00717 4501 00 stz pr6|463 010376 aa 000000 2350 07 lda 0,dl 010377 aa 6 01060 7551 00 sta pr6|560 010400 aa 7 00010 3521 00 epp2 pr7|8 x25_data.devx 010401 aa 6 00724 2521 00 spri2 pr6|468 010402 aa 6 00717 3521 00 epp2 pr6|463 010403 aa 6 00726 2521 00 spri2 pr6|470 010404 aa 6 01060 3521 00 epp2 pr6|560 010405 aa 6 00730 2521 00 spri2 pr6|472 010406 aa 6 00722 6211 00 eax1 pr6|466 010407 aa 014000 4310 07 fld 6144,dl 010410 aa 6 00044 3701 20 epp4 pr6|36,* 010411 la 4 00074 3521 20 epp2 pr4|60,* mcs_timer$reset 010412 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1583 x25_data.state = X25_ACTIVE; 010413 aa 000003 2360 07 ldq 3,dl 010414 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 010415 aa 7 00011 7561 00 stq pr7|9 x25_data.state STATEMENT 1 ON LINE 1584 call pxss$ring_0_wakeup (x25_data.load_proc_id, x25_data.load_ev_chan, MPX_UP, code); 010416 aa 7 00020 3521 00 epp2 pr7|16 x25_data.load_proc_id 010417 aa 6 00734 2521 00 spri2 pr6|476 010420 aa 7 00022 3521 00 epp2 pr7|18 x25_data.load_ev_chan 010421 aa 6 00736 2521 00 spri2 pr6|478 010422 aa 767444 3520 04 epp2 -4316,ic 000066 = 000000000000 010423 aa 6 00740 2521 00 spri2 pr6|480 010424 aa 6 00121 3521 00 epp2 pr6|81 code 010425 aa 6 00742 2521 00 spri2 pr6|482 010426 aa 6 00732 6211 00 eax1 pr6|474 010427 aa 020000 4310 07 fld 8192,dl 010430 aa 6 00044 3701 20 epp4 pr6|36,* 010431 la 4 00054 3521 20 epp2 pr4|44,* pxss$ring_0_wakeup 010432 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1585 end; STATEMENT 1 ON LINE 1586 call free_in_pkt; 010433 aa 000413 6700 04 tsp4 267,ic 011046 STATEMENT 1 ON LINE 1587 goto done_in_pkt; 010434 aa 000003 7100 04 tra 3,ic 010437 STATEMENT 1 ON LINE 1588 end; STATEMENT 1 ON LINE 1592 else do; STATEMENT 1 ON LINE 1593 call free_in_pkt; 010435 aa 000411 6700 04 tsp4 265,ic 011046 STATEMENT 1 ON LINE 1594 goto done_in_pkt; 010436 aa 000001 7100 04 tra 1,ic 010437 STATEMENT 1 ON LINE 1595 end; STATEMENT 1 ON LINE 1597 done_in_pkt: return; 010437 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 1601 done_data_pkt: /* might have to send a RR */ if blockp ^= null () then call free_in_pkt; 010440 aa 6 00262 2371 00 ldaq pr6|178 blockp 010441 aa 767553 6770 04 eraq -4245,ic 000214 = 077777000043 000001000000 010442 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 010443 aa 000002 6000 04 tze 2,ic 010445 010444 aa 000402 6700 04 tsp4 258,ic 011046 STATEMENT 1 ON LINE 1603 if xlce.state = FLOW_CONTROL_READY then do; 010445 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 010446 aa 000003 1160 07 cmpq 3,dl 010447 aa 000005 6010 04 tnz 5,ic 010454 STATEMENT 1 ON LINE 1604 call send_data_packets; 010450 aa 001555 6700 04 tsp4 877,ic 012225 STATEMENT 1 ON LINE 1605 call send_output; 010451 aa 002005 6700 04 tsp4 1029,ic 012456 STATEMENT 1 ON LINE 1606 call solicit_output; 010452 aa 003133 6700 04 tsp4 1627,ic 013605 STATEMENT 1 ON LINE 1607 call send_rr; 010453 aa 002125 6700 04 tsp4 1109,ic 012600 STATEMENT 1 ON LINE 1608 end; STATEMENT 1 ON LINE 1609 return; 010454 aa 0 00631 7101 00 tra pr0|409 return_mac ENTRY TO system_init STATEMENT 1 ON LINE 2451 system_init: entry; 010455 da 000371200000 010456 aa 002140 6270 00 eax7 1120 010457 aa 7 00034 3521 20 epp2 pr7|28,* 010460 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 010461 aa 000000000000 010462 aa 000000000000 STATEMENT 1 ON LINE 2456 et_undefined_order_request = error_table_$undefined_order_request; 010463 aa 6 00044 3701 20 epp4 pr6|36,* 010464 la 4 00034 2361 20 ldq pr4|28,* error_table_$undefined_order_request 010465 ia 4 00016 7561 00 stq pr4|14 et_undefined_order_request STATEMENT 1 ON LINE 2457 et_noalloc = error_table_$noalloc; 010466 la 4 00030 2361 20 ldq pr4|24,* error_table_$noalloc 010467 ia 4 00014 7561 00 stq pr4|12 et_noalloc STATEMENT 1 ON LINE 2458 et_action_not_performed = error_table_$action_not_performed; 010470 la 4 00020 2361 20 ldq pr4|16,* error_table_$action_not_performed 010471 ia 4 00010 7561 00 stq pr4|8 et_action_not_performed STATEMENT 1 ON LINE 2459 et_bad_arg = error_table_$bad_arg; 010472 la 4 00022 2361 20 ldq pr4|18,* error_table_$bad_arg 010473 ia 4 00011 7561 00 stq pr4|9 et_bad_arg STATEMENT 1 ON LINE 2460 et_bad_mode = error_table_$bad_mode; 010474 la 4 00024 2361 20 ldq pr4|20,* error_table_$bad_mode 010475 ia 4 00012 7561 00 stq pr4|10 et_bad_mode STATEMENT 1 ON LINE 2461 et_invalid_state = error_table_$invalid_state; 010476 la 4 00026 2361 20 ldq pr4|22,* error_table_$invalid_state 010477 ia 4 00013 7561 00 stq pr4|11 et_invalid_state STATEMENT 1 ON LINE 2462 et_resource_unavailable = error_table_$resource_unavailable; 010500 la 4 00032 2361 20 ldq pr4|26,* error_table_$resource_unavailable 010501 ia 4 00015 7561 00 stq pr4|13 et_resource_unavailable STATEMENT 1 ON LINE 2463 et_unimplemented_version = error_table_$unimplemented_version; 010502 la 4 00036 2361 20 ldq pr4|30,* error_table_$unimplemented_version 010503 ia 4 00017 7561 00 stq pr4|15 et_unimplemented_version STATEMENT 1 ON LINE 2465 call wire_proc$wire_me; 010504 aa 6 00056 6211 00 eax1 pr6|46 010505 aa 000000 4310 07 fld 0,dl 010506 la 4 00060 3521 20 epp2 pr4|48,* wire_proc$wire_me 010507 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 2466 return; 010510 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 2868 end x25_mpx; BEGIN PROCEDURE add_iti_mode ENTRY TO add_iti_mode STATEMENT 1 ON LINE 1614 add_iti_mode: procedure (Mode, Id, True, False); 010511 aa 6 00274 6501 00 spri4 pr6|188 010512 aa 6 00276 2521 00 spri2 pr6|190 STATEMENT 1 ON LINE 1620 if xsce.mode (Mode) then call add_iti_param (Id, True); 010513 aa 2 00002 7271 20 lxl7 pr2|2,* Mode 010514 aa 6 00172 3735 20 epp7 pr6|122,* xscep 010515 aa 000 000 066 517 cmpb (pr,x7),(),fill(0) 010516 aa 7 00013 30 0001 descb pr7|11(17),1 xsce.mode 010517 aa 000000 00 0000 descb 0,0 010520 aa 000013 6000 04 tze 11,ic 010533 010521 aa 2 00004 3521 20 epp2 pr2|4,* Id 010522 aa 6 01264 2521 00 spri2 pr6|692 010523 aa 6 00276 3715 20 epp5 pr6|190,* 010524 aa 5 00006 3521 20 epp2 pr5|6,* True 010525 aa 6 01266 2521 00 spri2 pr6|694 010526 aa 6 01262 3521 00 epp2 pr6|690 010527 aa 010000 4310 07 fld 4096,dl 010530 aa 2 00000 7571 00 staq pr2|0 010531 aa 000014 6700 04 tsp4 12,ic 010545 010532 aa 000012 7100 04 tra 10,ic 010544 STATEMENT 1 ON LINE 1622 else call add_iti_param (Id, False); 010533 aa 2 00004 3521 20 epp2 pr2|4,* Id 010534 aa 6 01264 2521 00 spri2 pr6|692 010535 aa 6 00276 3715 20 epp5 pr6|190,* 010536 aa 5 00010 3521 20 epp2 pr5|8,* False 010537 aa 6 01266 2521 00 spri2 pr6|694 010540 aa 6 01262 3521 00 epp2 pr6|690 010541 aa 010000 4310 07 fld 4096,dl 010542 aa 2 00000 7571 00 staq pr2|0 010543 aa 000002 6700 04 tsp4 2,ic 010545 STATEMENT 1 ON LINE 1623 return; 010544 aa 6 00274 6101 00 rtcd pr6|188 STATEMENT 1 ON LINE 1624 end add_iti_mode; END PROCEDURE add_iti_mode BEGIN PROCEDURE add_iti_param ENTRY TO add_iti_param STATEMENT 1 ON LINE 1628 add_iti_param: procedure (Id, Value); 010545 aa 6 00302 6501 00 spri4 pr6|194 010546 aa 6 00304 2521 00 spri2 pr6|196 STATEMENT 1 ON LINE 1633 nchars = nchars + 2; 010547 aa 000002 2360 07 ldq 2,dl 010550 aa 6 00132 0561 00 asq pr6|90 nchars STATEMENT 1 ON LINE 1634 l4_data (nchars - 1) = bit (Id); 010551 aa 6 00132 2361 00 ldq pr6|90 nchars 010552 aa 000011 4020 07 mpy 9,dl 010553 aa 2 00002 2351 20 lda pr2|2,* Id 010554 aa 000033 7350 00 als 27 010555 aa 6 00056 7551 00 sta pr6|46 010556 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 010557 aa 003 106 060 500 csl (pr),(pr,ql),fill(0),bool(move) 010560 aa 6 00056 00 0011 descb pr6|46,9 010561 aa 7 77777 40 0011 descb pr7|-1(18),9 l4_data STATEMENT 1 ON LINE 1635 l4_data (nchars) = bit (Value); 010562 aa 2 00004 2351 20 lda pr2|4,* Value 010563 aa 000033 7350 00 als 27 010564 aa 6 00056 7551 00 sta pr6|46 010565 aa 003 106 060 500 csl (pr),(pr,ql),fill(0),bool(move) 010566 aa 6 00056 00 0011 descb pr6|46,9 010567 aa 7 77777 60 0011 descb pr7|-1(27),9 l4_data STATEMENT 1 ON LINE 1636 return; 010570 aa 6 00302 6101 00 rtcd pr6|194 STATEMENT 1 ON LINE 1637 end add_iti_param; END PROCEDURE add_iti_param BEGIN PROCEDURE clear_call ENTRY TO clear_call STATEMENT 1 ON LINE 1641 clear_call: procedure (Cause); 010571 aa 6 00310 6501 00 spri4 pr6|200 010572 aa 6 00312 2521 00 spri2 pr6|202 STATEMENT 1 ON LINE 1646 call get_buffer (16); 010573 aa 000020 2360 07 ldq 16,dl 010574 aa 6 01272 7561 00 stq pr6|698 010575 aa 003747 3520 04 epp2 2023,ic 014544 = 000002000000 010576 aa 000350 6700 04 tsp4 232,ic 011146 STATEMENT 1 ON LINE 1647 call make_header (lcx, "0"b); 010577 aa 000000 2350 07 lda 0,dl 010600 aa 6 01272 7551 00 sta pr6|698 010601 aa 003735 3520 04 epp2 2013,ic 014536 = 000004000000 010602 aa 000531 6700 04 tsp4 345,ic 011333 STATEMENT 1 ON LINE 1648 x25_pkt.type = CLRRQ; 010603 aa 023000 2350 03 lda 9728,du 010604 aa 6 00262 3735 20 epp7 pr6|178,* blockp 010605 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 010606 aa 377000 3750 03 ana 130560,du 010607 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 1649 x25_pkt.no_fc_data (2) = bit (Cause); 010610 aa 6 00312 3715 20 epp5 pr6|202,* 010611 aa 5 00002 2351 20 lda pr5|2,* Cause 010612 aa 000033 7350 00 als 27 010613 aa 000022 7710 00 arl 18 010614 aa 7 00002 5511 10 stba pr7|2,10 x25_pkt.no_fc_data STATEMENT 1 ON LINE 1650 buffer.tally = 5 + L2_HEADER_PAD; 010615 aa 000007 2360 07 ldq 7,dl 010616 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 1651 call write_pkt; 010617 aa 003073 6700 04 tsp4 1595,ic 013712 STATEMENT 1 ON LINE 1652 call send_output; 010620 aa 001636 6700 04 tsp4 926,ic 012456 STATEMENT 1 ON LINE 1653 call state_change (DTE_CLEAR_REQUEST); 010621 aa 003711 3520 04 epp2 1993,ic 014532 = 000002000000 010622 aa 003020 6700 04 tsp4 1552,ic 013642 STATEMENT 1 ON LINE 1654 return; 010623 aa 6 00310 6101 00 rtcd pr6|200 STATEMENT 1 ON LINE 1655 end clear_call; END PROCEDURE clear_call BEGIN PROCEDURE clear_confirm ENTRY TO clear_confirm STATEMENT 1 ON LINE 1659 clear_confirm: procedure; 010624 aa 6 00316 6501 00 spri4 pr6|206 STATEMENT 1 ON LINE 1662 call get_buffer (16); 010625 aa 000020 2360 07 ldq 16,dl 010626 aa 6 01273 7561 00 stq pr6|699 010627 aa 003677 3520 04 epp2 1983,ic 014526 = 000002000000 010630 aa 000316 6700 04 tsp4 206,ic 011146 STATEMENT 1 ON LINE 1663 call make_header (lcx, "0"b); 010631 aa 000000 2350 07 lda 0,dl 010632 aa 6 01273 7551 00 sta pr6|699 010633 aa 003665 3520 04 epp2 1973,ic 014520 = 000004000000 010634 aa 000477 6700 04 tsp4 319,ic 011333 STATEMENT 1 ON LINE 1664 x25_pkt.type = CLRCN; 010635 aa 027000 2350 03 lda 11776,du 010636 aa 6 00262 3735 20 epp7 pr6|178,* blockp 010637 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 010640 aa 377000 3750 03 ana 130560,du 010641 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 1665 buffer.tally = 3 + L2_HEADER_PAD; 010642 aa 000005 2360 07 ldq 5,dl 010643 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 1666 call write_pkt; 010644 aa 003046 6700 04 tsp4 1574,ic 013712 STATEMENT 1 ON LINE 1667 call send_output; 010645 aa 001611 6700 04 tsp4 905,ic 012456 STATEMENT 1 ON LINE 1668 return; 010646 aa 6 00316 6101 00 rtcd pr6|206 STATEMENT 1 ON LINE 1669 end clear_confirm; END PROCEDURE clear_confirm BEGIN PROCEDURE confirm_interrupt ENTRY TO confirm_interrupt STATEMENT 1 ON LINE 1673 confirm_interrupt: procedure; 010647 aa 6 00324 6501 00 spri4 pr6|212 STATEMENT 1 ON LINE 1676 call get_buffer (16); 010650 aa 000020 2360 07 ldq 16,dl 010651 aa 6 01274 7561 00 stq pr6|700 010652 aa 003642 3520 04 epp2 1954,ic 014514 = 000002000000 010653 aa 000273 6700 04 tsp4 187,ic 011146 STATEMENT 1 ON LINE 1677 call make_header (lcx, "0"b); 010654 aa 000000 2350 07 lda 0,dl 010655 aa 6 01274 7551 00 sta pr6|700 010656 aa 003630 3520 04 epp2 1944,ic 014506 = 000004000000 010657 aa 000454 6700 04 tsp4 300,ic 011333 STATEMENT 1 ON LINE 1678 x25_pkt.type = SNITCN; 010660 aa 047000 2350 03 lda 19968,du 010661 aa 6 00262 3735 20 epp7 pr6|178,* blockp 010662 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 010663 aa 377000 3750 03 ana 130560,du 010664 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 1679 buffer.tally = 3 + L2_HEADER_PAD; 010665 aa 000005 2360 07 ldq 5,dl 010666 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 1680 call write_pkt; 010667 aa 003023 6700 04 tsp4 1555,ic 013712 STATEMENT 1 ON LINE 1681 call send_output; 010670 aa 001566 6700 04 tsp4 886,ic 012456 STATEMENT 1 ON LINE 1682 return; 010671 aa 6 00324 6101 00 rtcd pr6|212 STATEMENT 1 ON LINE 1683 end confirm_interrupt; END PROCEDURE confirm_interrupt BEGIN PROCEDURE crash_subchannels ENTRY TO crash_subchannels STATEMENT 1 ON LINE 1687 crash_subchannels: procedure; 010672 aa 6 00332 6501 00 spri4 pr6|218 STATEMENT 1 ON LINE 1690 do lcx = 1 to x25_data.n_lc; 010673 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 010674 aa 7 00012 2361 00 ldq pr7|10 x25_data.n_lc 010675 aa 6 00340 7561 00 stq pr6|224 010676 aa 000001 2360 07 ldq 1,dl 010677 aa 6 00117 7561 00 stq pr6|79 lcx 010700 aa 6 00117 2361 00 ldq pr6|79 lcx 010701 aa 6 00340 1161 00 cmpq pr6|224 010702 aa 000011 6054 04 tpnz 9,ic 010713 STATEMENT 1 ON LINE 1691 xlcep = addr (x25_lces.lc (lcx)); 010703 aa 000005 7360 00 qls 5 010704 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 010705 aa 7 00032 3715 20 epp5 pr7|26,* x25_data.lc_ptr 010706 aa 5 77740 3735 06 epp7 pr5|-32,ql x25_lces.lc 010707 aa 6 00170 6535 00 spri7 pr6|120 xlcep STATEMENT 1 ON LINE 1692 call reset_xlce; 010710 aa 001007 6700 04 tsp4 519,ic 011717 STATEMENT 1 ON LINE 1693 end; 010711 aa 6 00117 0541 00 aos pr6|79 lcx 010712 aa 777766 7100 04 tra -10,ic 010700 STATEMENT 1 ON LINE 1694 do scx = 1 to x25_data.n_sc; 010713 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 010714 aa 7 00013 2361 00 ldq pr7|11 x25_data.n_sc 010715 aa 6 00341 7561 00 stq pr6|225 010716 aa 000001 2360 07 ldq 1,dl 010717 aa 6 00120 7561 00 stq pr6|80 scx 010720 aa 6 00120 2361 00 ldq pr6|80 scx 010721 aa 6 00341 1161 00 cmpq pr6|225 010722 aa 000010 6054 04 tpnz 8,ic 010732 STATEMENT 1 ON LINE 1695 xscep = addr (x25_data.sc (scx)); 010723 aa 000026 4020 07 mpy 22,dl 010724 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 010725 aa 7 00024 3735 06 epp7 pr7|20,ql x25_data.sc 010726 aa 6 00172 6535 00 spri7 pr6|122 xscep STATEMENT 1 ON LINE 1696 call reset_xsce; 010727 aa 001024 6700 04 tsp4 532,ic 011753 STATEMENT 1 ON LINE 1697 end; 010730 aa 6 00120 0541 00 aos pr6|80 scx 010731 aa 777767 7100 04 tra -9,ic 010720 STATEMENT 1 ON LINE 1698 return; 010732 aa 6 00332 6101 00 rtcd pr6|218 STATEMENT 1 ON LINE 1699 end crash_subchannels; END PROCEDURE crash_subchannels BEGIN PROCEDURE dump_pkt ENTRY TO dump_pkt STATEMENT 1 ON LINE 1703 dump_pkt: procedure; 010733 aa 6 00342 6501 00 spri4 pr6|226 STATEMENT 1 ON LINE 1710 call syserr (Log_message_or_discard, "x25_mpx(^a):^( ^.4b^)", x25_data.name, dump_buf.byte (*)); 010734 aa 767270 2360 04 ldq -4424,ic 000224 = 516100000010 010735 aa 6 01276 7561 00 stq pr6|702 010736 aa 000001 2360 07 ldq 1,dl 010737 aa 6 01277 7561 00 stq pr6|703 010740 aa 6 00262 2361 20 ldq pr6|178,* buffer.tally 010741 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 010742 aa 6 01300 7561 00 stq pr6|704 010743 aa 000011 2360 07 ldq 9,dl 010744 aa 6 01301 7561 00 stq pr6|705 010745 aa 767301 2370 04 ldaq -4415,ic 000246 = 170062065137 155160170050 010746 aa 6 01302 7571 00 staq pr6|706 010747 aa 767301 2370 04 ldaq -4415,ic 000250 = 136141051072 136050040136 010750 aa 6 01304 7571 00 staq pr6|708 010751 aa 767301 2370 04 ldaq -4415,ic 000252 = 056064142136 051000000000 010752 aa 6 01306 7571 00 staq pr6|710 010753 aa 767174 3520 04 epp2 -4484,ic 000147 = 000000000005 010754 aa 6 01312 2521 00 spri2 pr6|714 010755 aa 6 01302 3521 00 epp2 pr6|706 010756 aa 6 01314 2521 00 spri2 pr6|716 010757 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 010760 aa 6 01316 2521 00 spri2 pr6|718 010761 aa 000001 7270 07 lxl7 1,dl 010762 aa 6 00262 3735 20 epp7 pr6|178,* blockp 010763 aa 7 00001 3521 00 epp2 pr7|1 dump_buf.byte 010764 aa 2 00000 5035 17 abd pr2|0,7 010765 aa 6 01320 2521 00 spri2 pr6|720 010766 aa 767170 3520 04 epp2 -4488,ic 000156 = 404000000021 010767 aa 6 01322 2521 00 spri2 pr6|722 010770 aa 767112 3520 04 epp2 -4534,ic 000102 = 524000000025 010771 aa 6 01324 2521 00 spri2 pr6|724 010772 aa 767145 3520 04 epp2 -4507,ic 000137 = 524000000040 010773 aa 6 01326 2521 00 spri2 pr6|726 010774 aa 6 01276 3521 00 epp2 pr6|702 010775 aa 6 01330 2521 00 spri2 pr6|728 010776 aa 6 01310 6211 00 eax1 pr6|712 010777 aa 020000 4310 07 fld 8192,dl 011000 aa 6 00044 3701 20 epp4 pr6|36,* 011001 la 4 00056 3521 20 epp2 pr4|46,* syserr 011002 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1711 call free_in_pkt; 011003 aa 000043 6700 04 tsp4 35,ic 011046 STATEMENT 1 ON LINE 1712 return; 011004 aa 6 00342 6101 00 rtcd pr6|226 STATEMENT 1 ON LINE 1713 end dump_pkt; END PROCEDURE dump_pkt BEGIN PROCEDURE find_sc ENTRY TO find_sc STATEMENT 1 ON LINE 1717 find_sc: procedure (Call_data) returns (fixed bin); 011005 aa 6 00350 6501 00 spri4 pr6|232 011006 aa 6 00352 2521 00 spri2 pr6|234 STATEMENT 1 ON LINE 1723 do scx = 1 to x25_data.n_sc; 011007 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 011010 aa 7 00013 2361 00 ldq pr7|11 x25_data.n_sc 011011 aa 6 00357 7561 00 stq pr6|239 011012 aa 000001 2360 07 ldq 1,dl 011013 aa 6 00356 7561 00 stq pr6|238 scx 011014 aa 6 00356 2361 00 ldq pr6|238 scx 011015 aa 6 00357 1161 00 cmpq pr6|239 011016 aa 000025 6054 04 tpnz 21,ic 011043 STATEMENT 1 ON LINE 1724 if (x25_data.sc (scx).state = SC_LISTENING) & (x25_data.sc (scx).service = Call_data) then return (scx); 011017 aa 000026 4020 07 mpy 22,dl 011020 aa 6 01332 7561 00 stq pr6|730 011021 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 011022 aa 7 00036 2361 06 ldq pr7|30,ql x25_data.state 011023 aa 000001 1160 07 cmpq 1,dl 011024 aa 000015 6010 04 tnz 13,ic 011041 011025 aa 6 01332 7271 00 lxl7 pr6|730 011026 aa 7 00041 3715 17 epp5 pr7|33,7 x25_data.service 011027 aa 6 00352 3535 20 epp3 pr6|234,* 011030 aa 3 00002 3515 20 epp1 pr3|2,* 011031 aa 1 77777 7261 00 lxl6 pr1|-1 Call_data 011032 aa 040 140 106 500 cmpc (pr),(pr,rl),fill(040) 011033 aa 5 00000 00 0014 desc9a pr5|0,12 x25_data.service 011034 aa 1 00000 00 0016 desc9a pr1|0,x6 Call_data 011035 aa 000004 6010 04 tnz 4,ic 011041 011036 aa 6 00356 2361 00 ldq pr6|238 scx 011037 aa 3 00004 7561 20 stq pr3|4,* 011040 aa 6 00350 6101 00 rtcd pr6|232 STATEMENT 1 ON LINE 1725 end; 011041 aa 6 00356 0541 00 aos pr6|238 scx 011042 aa 777752 7100 04 tra -22,ic 011014 STATEMENT 1 ON LINE 1726 return (0); 011043 aa 6 00352 3735 20 epp7 pr6|234,* 011044 aa 7 00004 4501 20 stz pr7|4,* 011045 aa 6 00350 6101 00 rtcd pr6|232 STATEMENT 1 ON LINE 1727 end find_sc; END PROCEDURE find_sc BEGIN PROCEDURE free_in_pkt ENTRY TO free_in_pkt STATEMENT 1 ON LINE 1731 free_in_pkt: procedure; 011046 aa 6 00360 6501 00 spri4 pr6|240 STATEMENT 1 ON LINE 1734 call tty_space_man$free_chain (x25_data.devx, INPUT, blockp); 011047 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 011050 aa 7 00010 3521 00 epp2 pr7|8 x25_data.devx 011051 aa 6 01336 2521 00 spri2 pr6|734 011052 aa 767010 3520 04 epp2 -4600,ic 000062 = 000000000000 011053 aa 6 01340 2521 00 spri2 pr6|736 011054 aa 6 00262 3521 00 epp2 pr6|178 blockp 011055 aa 6 01342 2521 00 spri2 pr6|738 011056 aa 6 01334 6211 00 eax1 pr6|732 011057 aa 014000 4310 07 fld 6144,dl 011060 aa 6 00044 3701 20 epp4 pr6|36,* 011061 la 4 00104 3521 20 epp2 pr4|68,* tty_space_man$free_chain 011062 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1735 blockp = null (); 011063 aa 767131 2370 04 ldaq -4519,ic 000214 = 077777000043 000001000000 011064 aa 6 00262 7571 00 staq pr6|178 blockp STATEMENT 1 ON LINE 1736 return; 011065 aa 6 00360 6101 00 rtcd pr6|240 STATEMENT 1 ON LINE 1737 end free_in_pkt; END PROCEDURE free_in_pkt BEGIN PROCEDURE free_write_chain ENTRY TO free_write_chain STATEMENT 1 ON LINE 1741 free_write_chain: procedure; 011066 aa 6 00366 6501 00 spri4 pr6|246 STATEMENT 1 ON LINE 1744 if xsce.write_head ^= null () then do; 011067 aa 6 00172 3735 20 epp7 pr6|122,* xscep 011070 aa 7 00020 2371 00 ldaq pr7|16 xsce.write_head 011071 aa 767123 6770 04 eraq -4525,ic 000214 = 077777000043 000001000000 011072 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 011073 aa 000024 6000 04 tze 20,ic 011117 STATEMENT 1 ON LINE 1745 call tty_space_man$free_chain (xsce.devx, OUTPUT, xsce.write_head); 011074 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 011075 aa 6 01346 2521 00 spri2 pr6|742 011076 aa 767050 3520 04 epp2 -4568,ic 000146 = 400000000000 011077 aa 6 01350 2521 00 spri2 pr6|744 011100 aa 7 00020 3521 00 epp2 pr7|16 xsce.write_head 011101 aa 6 01352 2521 00 spri2 pr6|746 011102 aa 6 01344 6211 00 eax1 pr6|740 011103 aa 014000 4310 07 fld 6144,dl 011104 aa 6 00044 3701 20 epp4 pr6|36,* 011105 la 4 00104 3521 20 epp2 pr4|68,* tty_space_man$free_chain 011106 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1746 xsce.write_head, xsce.write_tail = null (); 011107 aa 767105 3734 24 epp7 -4539,ic* 011110 aa 6 00172 3715 20 epp5 pr6|122,* xscep 011111 aa 5 00020 6535 00 spri7 pr5|16 xsce.write_head 011112 aa 5 00022 6535 00 spri7 pr5|18 xsce.write_tail STATEMENT 1 ON LINE 1747 xsce.flags.end_of_page = "0"b; 011113 aa 003661 2350 04 lda 1969,ic 014774 = 577777777777 011114 aa 5 00013 3551 00 ansa pr5|11 xsce.end_of_page STATEMENT 1 ON LINE 1748 xsce.flags.long_packet_pending = "0"b; 011115 aa 003700 2350 04 lda 1984,ic 015015 = 757777777777 011116 aa 5 00013 3551 00 ansa pr5|11 xsce.long_packet_pending STATEMENT 1 ON LINE 1749 end; STATEMENT 1 ON LINE 1750 return; 011117 aa 6 00366 6101 00 rtcd pr6|246 STATEMENT 1 ON LINE 1751 end free_write_chain; END PROCEDURE free_write_chain BEGIN PROCEDURE free_x25_data_chain ENTRY TO free_x25_data_chain STATEMENT 1 ON LINE 1755 free_x25_data_chain: procedure; 011120 aa 6 00374 6501 00 spri4 pr6|252 STATEMENT 1 ON LINE 1758 if x25_data.write_head ^= null () then do; 011121 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 011122 aa 7 00034 2371 00 ldaq pr7|28 x25_data.write_head 011123 aa 767071 6770 04 eraq -4551,ic 000214 = 077777000043 000001000000 011124 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 011125 aa 000020 6000 04 tze 16,ic 011145 STATEMENT 1 ON LINE 1759 call tty_space_man$free_chain (x25_data.devx, OUTPUT, x25_data.write_head); 011126 aa 7 00010 3521 00 epp2 pr7|8 x25_data.devx 011127 aa 6 01360 2521 00 spri2 pr6|752 011130 aa 767016 3520 04 epp2 -4594,ic 000146 = 400000000000 011131 aa 6 01362 2521 00 spri2 pr6|754 011132 aa 7 00034 3521 00 epp2 pr7|28 x25_data.write_head 011133 aa 6 01364 2521 00 spri2 pr6|756 011134 aa 6 01356 6211 00 eax1 pr6|750 011135 aa 014000 4310 07 fld 6144,dl 011136 aa 6 00044 3701 20 epp4 pr6|36,* 011137 la 4 00104 3521 20 epp2 pr4|68,* tty_space_man$free_chain 011140 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1760 x25_data.write_head, x25_data.write_tail = null (); 011141 aa 767053 3734 24 epp7 -4565,ic* 011142 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 011143 aa 5 00034 6535 00 spri7 pr5|28 x25_data.write_head 011144 aa 5 00036 6535 00 spri7 pr5|30 x25_data.write_tail STATEMENT 1 ON LINE 1761 end; STATEMENT 1 ON LINE 1762 return; 011145 aa 6 00374 6101 00 rtcd pr6|252 STATEMENT 1 ON LINE 1763 end free_x25_data_chain; END PROCEDURE free_x25_data_chain BEGIN PROCEDURE get_buffer ENTRY TO get_buffer STATEMENT 1 ON LINE 1767 get_buffer: procedure (Size); 011146 aa 6 00402 6501 00 spri4 pr6|258 011147 aa 6 00404 2521 00 spri2 pr6|260 STATEMENT 1 ON LINE 1772 call tty_space_man$get_buffer (x25_data.devx, Size, OUTPUT, blockp); 011150 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 011151 aa 7 00010 3521 00 epp2 pr7|8 x25_data.devx 011152 aa 6 01372 2521 00 spri2 pr6|762 011153 aa 6 00404 3715 20 epp5 pr6|260,* 011154 aa 5 00002 3521 20 epp2 pr5|2,* Size 011155 aa 6 01374 2521 00 spri2 pr6|764 011156 aa 766770 3520 04 epp2 -4616,ic 000146 = 400000000000 011157 aa 6 01376 2521 00 spri2 pr6|766 011160 aa 6 00262 3521 00 epp2 pr6|178 blockp 011161 aa 6 01400 2521 00 spri2 pr6|768 011162 aa 6 01370 6211 00 eax1 pr6|760 011163 aa 020000 4310 07 fld 8192,dl 011164 aa 6 00044 3701 20 epp4 pr6|36,* 011165 la 4 00102 3521 20 epp2 pr4|66,* tty_space_man$get_buffer 011166 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1773 endp = blockp; 011167 aa 6 00262 3735 20 epp7 pr6|178,* blockp 011170 aa 6 00100 6535 00 spri7 pr6|64 endp STATEMENT 1 ON LINE 1774 if blockp = null () then do; 011171 aa 6 00262 2371 00 ldaq pr6|178 blockp 011172 aa 767022 6770 04 eraq -4590,ic 000214 = 077777000043 000001000000 011173 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 011174 aa 000061 6010 04 tnz 49,ic 011255 STATEMENT 1 ON LINE 1775 call free_x25_data_chain (); 011175 aa 777723 6700 04 tsp4 -45,ic 011120 STATEMENT 1 ON LINE 1776 call syserr (Log_message, "x25_mpx(^a): No buffers available", x25_data.name); 011176 aa 000 100 100 404 mlr (ic),(pr),fill(000) 011177 aa 767143 00 0044 desc9a -4509,36 000341 = 170062065137 011200 aa 6 01370 00 0044 desc9a pr6|760,36 011201 aa 766757 3520 04 epp2 -4625,ic 000160 = 000000000004 011202 aa 6 01404 2521 00 spri2 pr6|772 011203 aa 6 01370 3521 00 epp2 pr6|760 011204 aa 6 01406 2521 00 spri2 pr6|774 011205 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 011206 aa 6 01410 2521 00 spri2 pr6|776 011207 aa 766747 3520 04 epp2 -4633,ic 000156 = 404000000021 011210 aa 6 01412 2521 00 spri2 pr6|778 011211 aa 766704 3520 04 epp2 -4668,ic 000115 = 524000000041 011212 aa 6 01414 2521 00 spri2 pr6|780 011213 aa 766724 3520 04 epp2 -4652,ic 000137 = 524000000040 011214 aa 6 01416 2521 00 spri2 pr6|782 011215 aa 6 01402 6211 00 eax1 pr6|770 011216 aa 014000 4310 07 fld 6144,dl 011217 aa 6 00044 3701 20 epp4 pr6|36,* 011220 la 4 00056 3521 20 epp2 pr4|46,* syserr 011221 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1777 call channel_manager$control (x25_data.devx, "hangup", null (), code); 011222 aa 766764 2370 04 ldaq -4620,ic 000206 = 150141156147 165160000000 011223 aa 6 01420 7571 00 staq pr6|784 011224 aa 766770 3734 24 epp7 -4616,ic* 011225 aa 6 01422 6535 00 spri7 pr6|786 011226 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 011227 aa 5 00010 3521 00 epp2 pr5|8 x25_data.devx 011230 aa 6 01426 2521 00 spri2 pr6|790 011231 aa 6 01420 3521 00 epp2 pr6|784 011232 aa 6 01430 2521 00 spri2 pr6|792 011233 aa 6 01422 3521 00 epp2 pr6|786 011234 aa 6 01432 2521 00 spri2 pr6|794 011235 aa 6 00121 3521 00 epp2 pr6|81 code 011236 aa 6 01434 2521 00 spri2 pr6|796 011237 aa 766717 3520 04 epp2 -4657,ic 000156 = 404000000021 011240 aa 6 01436 2521 00 spri2 pr6|798 011241 aa 766637 3520 04 epp2 -4705,ic 000100 = 524000000006 011242 aa 6 01440 2521 00 spri2 pr6|800 011243 aa 766720 3520 04 epp2 -4656,ic 000163 = 464000000000 011244 aa 6 01442 2521 00 spri2 pr6|802 011245 aa 766714 3520 04 epp2 -4660,ic 000161 = 404000000043 011246 aa 6 01444 2521 00 spri2 pr6|804 011247 aa 6 01424 6211 00 eax1 pr6|788 011250 aa 020000 4310 07 fld 8192,dl 011251 aa 6 00044 3701 20 epp4 pr6|36,* 011252 la 4 00066 3521 20 epp2 pr4|54,* channel_manager$control 011253 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1779 goto done_in_pkt; 011254 aa 777163 7100 04 tra -397,ic 010437 STATEMENT 1 ON LINE 1780 end; STATEMENT 1 ON LINE 1781 return; 011255 aa 6 00402 6101 00 rtcd pr6|258 STATEMENT 1 ON LINE 1782 end get_buffer; END PROCEDURE get_buffer BEGIN PROCEDURE handle_data_or_fc_error ENTRY TO handle_data_or_fc_error STATEMENT 1 ON LINE 1786 handle_data_or_fc_error: procedure; 011256 aa 6 00410 6501 00 spri4 pr6|264 STATEMENT 1 ON LINE 1789 if xlce.state = DTE_CLEAR_REQUEST | xlce.state = DTE_RESET_REQUEST then call free_in_pkt; 011257 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 011260 aa 000004 1160 07 cmpq 4,dl 011261 aa 000003 6000 04 tze 3,ic 011264 011262 aa 000005 1160 07 cmpq 5,dl 011263 aa 000003 6010 04 tnz 3,ic 011266 011264 aa 777562 6700 04 tsp4 -142,ic 011046 011265 aa 000045 7100 04 tra 37,ic 011332 STATEMENT 1 ON LINE 1791 else do; STATEMENT 1 ON LINE 1792 call syserr (Log_message, "x25_mpx(^a): Data or flow control packet received in state ^d.", xsce.name, xlce.state); 011266 aa 000 100 100 404 mlr (ic),(pr),fill(000) 011267 aa 767507 00 0100 desc9a -4281,64 000775 = 170062065137 011270 aa 6 01446 00 0100 desc9a pr6|806,64 011271 aa 766667 3520 04 epp2 -4681,ic 000160 = 000000000004 011272 aa 6 01470 2521 00 spri2 pr6|824 011273 aa 6 01446 3521 00 epp2 pr6|806 011274 aa 6 01472 2521 00 spri2 pr6|826 011275 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 011276 aa 6 01474 2521 00 spri2 pr6|828 011277 aa 6 00170 3521 20 epp2 pr6|120,* xlce.state 011300 aa 6 01476 2521 00 spri2 pr6|830 011301 aa 766655 3520 04 epp2 -4691,ic 000156 = 404000000021 011302 aa 6 01500 2521 00 spri2 pr6|832 011303 aa 6 01506 2521 00 spri2 pr6|838 011304 aa 766573 3520 04 epp2 -4741,ic 000077 = 524000000076 011305 aa 6 01502 2521 00 spri2 pr6|834 011306 aa 766631 3520 04 epp2 -4711,ic 000137 = 524000000040 011307 aa 6 01504 2521 00 spri2 pr6|836 011310 aa 6 01466 6211 00 eax1 pr6|822 011311 aa 020000 4310 07 fld 8192,dl 011312 aa 6 00044 3701 20 epp4 pr6|36,* 011313 la 4 00056 3521 20 epp2 pr4|46,* syserr 011314 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1794 call dump_pkt; 011315 aa 777416 6700 04 tsp4 -242,ic 010733 STATEMENT 1 ON LINE 1795 if xlce.state = READY then call clear_call (20); 011316 aa 6 00170 2361 20 ldq pr6|120,* xlce.state 011317 aa 000001 1160 07 cmpq 1,dl 011320 aa 000006 6010 04 tnz 6,ic 011326 011321 aa 000024 2360 07 ldq 20,dl 011322 aa 6 01510 7561 00 stq pr6|840 011323 aa 003157 3520 04 epp2 1647,ic 014502 = 000002000000 011324 aa 777245 6700 04 tsp4 -347,ic 010571 011325 aa 000005 7100 04 tra 5,ic 011332 STATEMENT 1 ON LINE 1797 else call clear_call (21); 011326 aa 000025 2360 07 ldq 21,dl 011327 aa 6 01510 7561 00 stq pr6|840 011330 aa 003152 3520 04 epp2 1642,ic 014502 = 000002000000 011331 aa 777240 6700 04 tsp4 -352,ic 010571 STATEMENT 1 ON LINE 1798 end; STATEMENT 1 ON LINE 1799 end handle_data_or_fc_error; 011332 aa 6 00410 6101 00 rtcd pr6|264 END PROCEDURE handle_data_or_fc_error BEGIN PROCEDURE make_header ENTRY TO make_header STATEMENT 1 ON LINE 1803 make_header: procedure (Lcn, Q); 011333 aa 6 00416 6501 00 spri4 pr6|270 011334 aa 6 00420 2521 00 spri2 pr6|272 STATEMENT 1 ON LINE 1808 string (x25_pkt.l3_header) = ""b; 011335 aa 777777 2350 03 lda 262143,du 011336 aa 6 00262 3735 20 epp7 pr6|178,* blockp 011337 aa 7 00001 3551 00 ansa pr7|1 STATEMENT 1 ON LINE 1809 x25_pkt.l3_header.q = Q; 011340 aa 2 00004 2351 20 lda pr2|4,* Q 011341 aa 000023 7710 00 arl 19 011342 aa 7 00001 6751 00 era pr7|1 x25_pkt.q 011343 aa 200000 3750 07 ana 65536,dl 011344 aa 7 00001 6551 00 ersa pr7|1 x25_pkt.q STATEMENT 1 ON LINE 1810 x25_pkt.l3_header.format = x25_data.gfid; 011345 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 011346 aa 5 00017 2351 00 lda pr5|15 x25_data.gfid 011347 aa 000025 7710 00 arl 21 011350 aa 7 00001 6751 00 era pr7|1 x25_pkt.format 011351 aa 060000 3750 07 ana 24576,dl 011352 aa 7 00001 6551 00 ersa pr7|1 x25_pkt.format STATEMENT 1 ON LINE 1811 x25_pkt.l3_header.lcgn = substr (bit (Lcn), 1, 4); 011353 aa 2 00002 2351 20 lda pr2|2,* Lcn 011354 aa 000030 7350 00 als 24 011355 aa 6 01511 7551 00 sta pr6|841 011356 aa 000027 7710 00 arl 23 011357 aa 7 00001 6751 00 era pr7|1 x25_pkt.lcgn 011360 aa 017000 3750 07 ana 7680,dl 011361 aa 7 00001 6551 00 ersa pr7|1 x25_pkt.lcgn STATEMENT 1 ON LINE 1812 x25_pkt.l3_header.lcn = substr (bit (Lcn), 5, 8); 011362 aa 6 01511 2351 00 lda pr6|841 011363 aa 000030 7710 00 arl 24 011364 aa 7 00001 6751 00 era pr7|1 x25_pkt.lcn 011365 aa 000377 3750 07 ana 255,dl 011366 aa 7 00001 6551 00 ersa pr7|1 x25_pkt.lcn STATEMENT 1 ON LINE 1813 if xlcep = null () then do; 011367 aa 6 00170 2371 00 ldaq pr6|120 xlcep 011370 aa 766624 6770 04 eraq -4716,ic 000214 = 077777000043 000001000000 011371 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 011372 aa 000005 6010 04 tnz 5,ic 011377 STATEMENT 1 ON LINE 1814 l4_data_ptr = null (); 011373 aa 766621 2370 04 ldaq -4719,ic 000214 = 077777000043 000001000000 011374 aa 6 00164 7571 00 staq pr6|116 l4_data_ptr STATEMENT 1 ON LINE 1815 hdr_size = 0; 011375 aa 6 00131 4501 00 stz pr6|89 hdr_size STATEMENT 1 ON LINE 1816 end; 011376 aa 000021 7100 04 tra 17,ic 011417 STATEMENT 1 ON LINE 1817 else if x25_data.seq_mod = 8 then do; 011377 aa 5 00016 2361 00 ldq pr5|14 x25_data.seq_mod 011400 aa 000010 1160 07 cmpq 8,dl 011401 aa 000010 6010 04 tnz 8,ic 011411 STATEMENT 1 ON LINE 1818 l4_data_ptr = addr (m8_fc_data.user_data); 011402 aa 000011 7270 07 lxl7 9,dl 011403 aa 7 00002 3521 00 epp2 pr7|2 m8_fc_data.user_data 011404 aa 2 00000 5035 17 abd pr2|0,7 011405 aa 6 00164 2521 00 spri2 pr6|116 l4_data_ptr STATEMENT 1 ON LINE 1819 hdr_size = 3; 011406 aa 000003 2360 07 ldq 3,dl 011407 aa 6 00131 7561 00 stq pr6|89 hdr_size STATEMENT 1 ON LINE 1820 end; 011410 aa 000007 7100 04 tra 7,ic 011417 STATEMENT 1 ON LINE 1821 else do; STATEMENT 1 ON LINE 1822 l4_data_ptr = addr (m128_fc_data.user_data); 011411 aa 000022 7270 07 lxl7 18,dl 011412 aa 7 00002 3521 00 epp2 pr7|2 m128_fc_data.user_data 011413 aa 2 00000 5035 17 abd pr2|0,7 011414 aa 6 00164 2521 00 spri2 pr6|116 l4_data_ptr STATEMENT 1 ON LINE 1823 hdr_size = 4; 011415 aa 000004 2360 07 ldq 4,dl 011416 aa 6 00131 7561 00 stq pr6|89 hdr_size STATEMENT 1 ON LINE 1824 end; STATEMENT 1 ON LINE 1825 return; 011417 aa 6 00416 6101 00 rtcd pr6|270 STATEMENT 1 ON LINE 1826 end make_header; END PROCEDURE make_header BEGIN PROCEDURE proc_clear ENTRY TO proc_clear STATEMENT 1 ON LINE 1830 proc_clear: procedure; 011420 aa 6 00424 6501 00 spri4 pr6|276 STATEMENT 1 ON LINE 1833 call reset_xlce; 011421 aa 000276 6700 04 tsp4 190,ic 011717 STATEMENT 1 ON LINE 1834 call reset_xsce; 011422 aa 000331 6700 04 tsp4 217,ic 011753 STATEMENT 1 ON LINE 1835 return; 011423 aa 6 00424 6101 00 rtcd pr6|276 STATEMENT 1 ON LINE 1836 end proc_clear; END PROCEDURE proc_clear BEGIN PROCEDURE proc_pr ENTRY TO proc_pr STATEMENT 1 ON LINE 1840 proc_pr: procedure (error_flag); 011424 aa 6 00432 6501 00 spri4 pr6|282 011425 aa 6 00434 2521 00 spri2 pr6|284 STATEMENT 1 ON LINE 1846 error_flag = "0"b; 011426 aa 2 00002 3735 20 epp7 pr2|2,* 011427 aa 003 100 060 400 csl (),(pr),fill(0),bool(move) 011430 aa 000000 00 0000 descb 0,0 011431 aa 7 00000 00 0001 descb pr7|0,1 error_flag STATEMENT 1 ON LINE 1848 xlce.flags.write_status_sync_sent = "0"b; 011432 aa 003046 2350 04 lda 1574,ic 014500 = 776777777777 011433 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 011434 aa 5 00005 3551 00 ansa pr5|5 xlce.write_status_sync_sent STATEMENT 1 ON LINE 1850 if x25_data.seq_mod = 8 then temp_pr = m8_fc_data.pr; 011435 aa 6 00166 3535 20 epp3 pr6|118,* x25_data_ptr 011436 aa 3 00016 2361 00 ldq pr3|14 x25_data.seq_mod 011437 aa 000010 1160 07 cmpq 8,dl 011440 aa 000007 6010 04 tnz 7,ic 011447 011441 aa 6 00262 3515 20 epp1 pr6|178,* blockp 011442 aa 1 00002 2351 00 lda pr1|2 m8_fc_data.pr 011443 aa 000001 7350 00 als 1 011444 aa 000105 7730 00 lrl 69 011445 aa 6 00440 7561 00 stq pr6|288 temp_pr 011446 aa 000006 7100 04 tra 6,ic 011454 STATEMENT 1 ON LINE 1852 else temp_pr = m128_fc_data.pr; 011447 aa 6 00262 3515 20 epp1 pr6|178,* blockp 011450 aa 1 00002 2351 00 lda pr1|2 m128_fc_data.pr 011451 aa 000012 7350 00 als 10 011452 aa 000101 7730 00 lrl 65 011453 aa 6 00440 7561 00 stq pr6|288 temp_pr STATEMENT 1 ON LINE 1861 if (xlce.next_ack_seq <= temp_pr & temp_pr <= xlce.next_send_seq) | (xlce.next_send_seq <= xlce.next_ack_seq & xlce.next_ack_seq <= temp_pr) | (temp_pr <= xlce.next_send_seq & xlce.next_send_seq <= xlce.next_ack_seq) then xlce.next_ack_seq = temp_pr; 011454 aa 5 00015 2361 00 ldq pr5|13 xlce.next_send_seq 011455 aa 5 00017 1161 00 cmpq pr5|15 xlce.next_ack_seq 011456 aa 0 00520 7001 00 tsx0 pr0|336 r_le_a 011457 aa 6 00440 1161 00 cmpq pr6|288 temp_pr 011460 aa 6 01512 7551 00 sta pr6|842 011461 aa 0 00527 7001 00 tsx0 pr0|343 r_ge_a 011462 aa 5 00017 2361 00 ldq pr5|15 xlce.next_ack_seq 011463 aa 6 00440 1161 00 cmpq pr6|288 temp_pr 011464 aa 6 01513 7551 00 sta pr6|843 011465 aa 0 00520 7001 00 tsx0 pr0|336 r_le_a 011466 aa 6 01514 7551 00 sta pr6|844 011467 aa 000003 6000 04 tze 3,ic 011472 011470 aa 6 01513 2351 00 lda pr6|843 011471 aa 000011 6010 04 tnz 9,ic 011502 011472 aa 6 01514 2351 00 lda pr6|844 011473 aa 000003 6000 04 tze 3,ic 011476 011474 aa 6 01512 2351 00 lda pr6|842 011475 aa 000005 6010 04 tnz 5,ic 011502 011476 aa 6 01513 2351 00 lda pr6|843 011477 aa 000006 6000 04 tze 6,ic 011505 011500 aa 6 01512 2351 00 lda pr6|842 011501 aa 000004 6000 04 tze 4,ic 011505 011502 aa 6 00440 2361 00 ldq pr6|288 temp_pr 011503 aa 5 00017 7561 00 stq pr5|15 xlce.next_ack_seq 011504 aa 000047 7100 04 tra 39,ic 011553 STATEMENT 1 ON LINE 1866 else do; STATEMENT 1 ON LINE 1867 error_flag = "1"b; 011505 aa 403 100 060 400 csl (),(pr),fill(1),bool(move) 011506 aa 000000 00 0000 descb 0,0 011507 aa 7 00000 00 0001 descb pr7|0,1 error_flag STATEMENT 1 ON LINE 1868 call syserr (Log_message, "x25_mpx(^a): Sequence error: P(R) (= ^d) is not between previous P(R) (= ^d) and V(S) (= ^d).", xsce.name, temp_pr, xlce.next_ack_seq, xlce.next_send_seq); 011510 aa 000 100 100 404 mlr (ic),(pr),fill(000) 011511 aa 767334 00 0140 desc9a -4388,96 001044 = 170062065137 011512 aa 6 01516 00 0140 desc9a pr6|846,96 011513 aa 766445 3520 04 epp2 -4827,ic 000160 = 000000000004 011514 aa 6 01550 2521 00 spri2 pr6|872 011515 aa 6 01516 3521 00 epp2 pr6|846 011516 aa 6 01552 2521 00 spri2 pr6|874 011517 aa 6 00172 3521 20 epp2 pr6|122,* xsce.name 011520 aa 6 01554 2521 00 spri2 pr6|876 011521 aa 6 00440 3521 00 epp2 pr6|288 temp_pr 011522 aa 6 01556 2521 00 spri2 pr6|878 011523 aa 5 00017 3521 00 epp2 pr5|15 xlce.next_ack_seq 011524 aa 6 01560 2521 00 spri2 pr6|880 011525 aa 5 00015 3521 00 epp2 pr5|13 xlce.next_send_seq 011526 aa 6 01562 2521 00 spri2 pr6|882 011527 aa 766427 3520 04 epp2 -4841,ic 000156 = 404000000021 011530 aa 6 01564 2521 00 spri2 pr6|884 011531 aa 766344 3520 04 epp2 -4892,ic 000075 = 524000000136 011532 aa 6 01566 2521 00 spri2 pr6|886 011533 aa 766404 3520 04 epp2 -4860,ic 000137 = 524000000040 011534 aa 6 01570 2521 00 spri2 pr6|888 011535 aa 766363 3520 04 epp2 -4877,ic 000120 = 604000000007 011536 aa 6 01572 2521 00 spri2 pr6|890 011537 aa 6 01574 2521 00 spri2 pr6|892 011540 aa 6 01576 2521 00 spri2 pr6|894 011541 aa 6 01546 6211 00 eax1 pr6|870 011542 aa 030000 4310 07 fld 12288,dl 011543 aa 6 00044 3701 20 epp4 pr6|36,* 011544 la 4 00056 3521 20 epp2 pr4|46,* syserr 011545 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1871 call dump_pkt; 011546 aa 777165 6700 04 tsp4 -395,ic 010733 STATEMENT 1 ON LINE 1872 call reset_lc (2); 011547 aa 000002 2360 07 ldq 2,dl 011550 aa 6 01515 7561 00 stq pr6|845 011551 aa 002723 3520 04 epp2 1491,ic 014474 = 000002000000 011552 aa 000041 6700 04 tsp4 33,ic 011613 STATEMENT 1 ON LINE 1873 end; STATEMENT 1 ON LINE 1875 return; 011553 aa 6 00432 6101 00 rtcd pr6|282 STATEMENT 1 ON LINE 1876 end proc_pr; END PROCEDURE proc_pr BEGIN PROCEDURE proc_reset_lc ENTRY TO proc_reset_lc STATEMENT 1 ON LINE 1880 proc_reset_lc: procedure; 011554 aa 6 00442 6501 00 spri4 pr6|290 STATEMENT 1 ON LINE 1883 call reset_seq_nos; 011555 aa 000102 6700 04 tsp4 66,ic 011657 STATEMENT 1 ON LINE 1884 call free_write_chain (); 011556 aa 777310 6700 04 tsp4 -312,ic 011066 STATEMENT 1 ON LINE 1885 xlce.state = FLOW_CONTROL_READY; 011557 aa 000003 2360 07 ldq 3,dl 011560 aa 6 00170 7561 20 stq pr6|120,* xlce.state STATEMENT 1 ON LINE 1886 call reset_timer; 011561 aa 000105 6700 04 tsp4 69,ic 011666 STATEMENT 1 ON LINE 1890 xlce.flags.iti_break = "0"b; 011562 aa 003213 2350 04 lda 1675,ic 014775 = 737777777777 011563 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 011564 aa 7 00005 3551 00 ansa pr7|5 xlce.iti_break STATEMENT 1 ON LINE 1891 xlce.flags.int_issued = "0"b; 011565 aa 003207 2350 04 lda 1671,ic 014774 = 577777777777 011566 aa 7 00005 3551 00 ansa pr7|5 xlce.int_issued STATEMENT 1 ON LINE 1892 xlce.flags.rnr_received = "0"b; 011567 aa 003423 2350 04 lda 1811,ic 015212 = 677777777777 011570 aa 7 00005 3551 00 ansa pr7|5 xlce.rnr_received STATEMENT 1 ON LINE 1893 xlce.flags.write_status_sync_sent = "0"b; 011571 aa 002707 2350 04 lda 1479,ic 014500 = 776777777777 011572 aa 7 00005 3551 00 ansa pr7|5 xlce.write_status_sync_sent STATEMENT 1 ON LINE 1897 call channel_manager$interrupt (xsce.devx, LINE_STATUS, "1"b); 011573 aa 766375 2370 04 ldaq -4867,ic 000170 = 400000000000 000000000000 011574 aa 6 01600 7571 00 staq pr6|896 011575 aa 6 00172 3715 20 epp5 pr6|122,* xscep 011576 aa 5 00010 3521 00 epp2 pr5|8 xsce.devx 011577 aa 6 01604 2521 00 spri2 pr6|900 011600 aa 766364 3520 04 epp2 -4876,ic 000164 = 000000000011 011601 aa 6 01606 2521 00 spri2 pr6|902 011602 aa 6 01600 3521 00 epp2 pr6|896 011603 aa 6 01610 2521 00 spri2 pr6|904 011604 aa 6 01602 6211 00 eax1 pr6|898 011605 aa 014000 4310 07 fld 6144,dl 011606 aa 6 00044 3701 20 epp4 pr6|36,* 011607 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 011610 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1899 call solicit_output (); 011611 aa 001774 6700 04 tsp4 1020,ic 013605 STATEMENT 1 ON LINE 1901 return; 011612 aa 6 00442 6101 00 rtcd pr6|290 STATEMENT 1 ON LINE 1902 end proc_reset_lc; END PROCEDURE proc_reset_lc BEGIN PROCEDURE reset_lc ENTRY TO reset_lc STATEMENT 1 ON LINE 1906 reset_lc: procedure (Cause); 011613 aa 6 00450 6501 00 spri4 pr6|296 011614 aa 6 00452 2521 00 spri2 pr6|298 STATEMENT 1 ON LINE 1911 call get_buffer (16); 011615 aa 000020 2360 07 ldq 16,dl 011616 aa 6 01612 7561 00 stq pr6|906 011617 aa 002651 3520 04 epp2 1449,ic 014470 = 000002000000 011620 aa 777326 6700 04 tsp4 -298,ic 011146 STATEMENT 1 ON LINE 1912 call make_header (lcx, "0"b); 011621 aa 000000 2350 07 lda 0,dl 011622 aa 6 01612 7551 00 sta pr6|906 011623 aa 002637 3520 04 epp2 1439,ic 014462 = 000004000000 011624 aa 777507 6700 04 tsp4 -185,ic 011333 STATEMENT 1 ON LINE 1913 x25_pkt.type = RESTRQ; 011625 aa 033000 2350 03 lda 13824,du 011626 aa 6 00262 3735 20 epp7 pr6|178,* blockp 011627 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 011630 aa 377000 3750 03 ana 130560,du 011631 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 1914 x25_pkt.no_fc_data (2) = bit (Cause); 011632 aa 6 00452 3715 20 epp5 pr6|298,* 011633 aa 5 00002 2351 20 lda pr5|2,* Cause 011634 aa 000033 7350 00 als 27 011635 aa 000022 7710 00 arl 18 011636 aa 7 00002 5511 10 stba pr7|2,10 x25_pkt.no_fc_data STATEMENT 1 ON LINE 1915 buffer.tally = 5 + L2_HEADER_PAD; 011637 aa 000007 2360 07 ldq 7,dl 011640 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 1916 call write_pkt; 011641 aa 002051 6700 04 tsp4 1065,ic 013712 STATEMENT 1 ON LINE 1917 call send_output; 011642 aa 000614 6700 04 tsp4 396,ic 012456 STATEMENT 1 ON LINE 1918 call state_change (DTE_RESET_REQUEST); 011643 aa 002613 3520 04 epp2 1419,ic 014456 = 000002000000 011644 aa 001776 6700 04 tsp4 1022,ic 013642 STATEMENT 1 ON LINE 1920 xlce.flags.iti_break, xlce.flags.int_issued, xlce.flags.rnr_received, xlce.flags.write_status_sync_sent = "0"b; 011645 aa 003130 2350 04 lda 1624,ic 014775 = 737777777777 011646 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 011647 aa 7 00005 3551 00 ansa pr7|5 xlce.iti_break 011650 aa 003124 2350 04 lda 1620,ic 014774 = 577777777777 011651 aa 7 00005 3551 00 ansa pr7|5 xlce.int_issued 011652 aa 003340 2350 04 lda 1760,ic 015212 = 677777777777 011653 aa 7 00005 3551 00 ansa pr7|5 xlce.rnr_received 011654 aa 002624 2350 04 lda 1428,ic 014500 = 776777777777 011655 aa 7 00005 3551 00 ansa pr7|5 xlce.write_status_sync_sent STATEMENT 1 ON LINE 1921 return; 011656 aa 6 00450 6101 00 rtcd pr6|296 STATEMENT 1 ON LINE 1922 end reset_lc; END PROCEDURE reset_lc BEGIN PROCEDURE reset_seq_nos ENTRY TO reset_seq_nos STATEMENT 1 ON LINE 1926 reset_seq_nos: procedure; 011657 aa 6 00456 6501 00 spri4 pr6|302 STATEMENT 1 ON LINE 1929 xlce.next_recv_seq, xlce.next_send_seq, xlce.last_recv_seq, xlce.next_ack_seq = 0; 011660 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 011661 aa 7 00014 4501 00 stz pr7|12 xlce.next_recv_seq 011662 aa 7 00015 4501 00 stz pr7|13 xlce.next_send_seq 011663 aa 7 00016 4501 00 stz pr7|14 xlce.last_recv_seq 011664 aa 7 00017 4501 00 stz pr7|15 xlce.next_ack_seq STATEMENT 1 ON LINE 1930 return; 011665 aa 6 00456 6101 00 rtcd pr6|302 STATEMENT 1 ON LINE 1931 end reset_seq_nos; END PROCEDURE reset_seq_nos BEGIN PROCEDURE reset_timer ENTRY TO reset_timer STATEMENT 1 ON LINE 1935 reset_timer: procedure; 011666 aa 6 00464 6501 00 spri4 pr6|308 STATEMENT 1 ON LINE 1938 if xlce.flags.timer_set then do; 011667 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 011670 aa 7 00005 2351 00 lda pr7|5 xlce.timer_set 011671 aa 004000 3150 03 cana 2048,du 011672 aa 000024 6000 04 tze 20,ic 011716 STATEMENT 1 ON LINE 1939 call mcs_timer$reset (x25_data.devx, (lcx), ""b); 011673 aa 6 00117 2361 00 ldq pr6|79 lcx 011674 aa 6 01613 7561 00 stq pr6|907 011675 aa 000000 2350 07 lda 0,dl 011676 aa 6 01614 7551 00 sta pr6|908 011677 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 011700 aa 5 00010 3521 00 epp2 pr5|8 x25_data.devx 011701 aa 6 01620 2521 00 spri2 pr6|912 011702 aa 6 01613 3521 00 epp2 pr6|907 011703 aa 6 01622 2521 00 spri2 pr6|914 011704 aa 6 01614 3521 00 epp2 pr6|908 011705 aa 6 01624 2521 00 spri2 pr6|916 011706 aa 6 01616 6211 00 eax1 pr6|910 011707 aa 014000 4310 07 fld 6144,dl 011710 aa 6 00044 3701 20 epp4 pr6|36,* 011711 la 4 00074 3521 20 epp2 pr4|60,* mcs_timer$reset 011712 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1940 xlce.flags.timer_set = "0"b; 011713 aa 003101 2350 04 lda 1601,ic 015014 = 773777777777 011714 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 011715 aa 7 00005 3551 00 ansa pr7|5 xlce.timer_set STATEMENT 1 ON LINE 1941 end; STATEMENT 1 ON LINE 1942 return; 011716 aa 6 00464 6101 00 rtcd pr6|308 STATEMENT 1 ON LINE 1943 end reset_timer; END PROCEDURE reset_timer BEGIN PROCEDURE reset_xlce ENTRY TO reset_xlce STATEMENT 1 ON LINE 1947 reset_xlce: procedure; 011717 aa 6 00472 6501 00 spri4 pr6|314 STATEMENT 1 ON LINE 1950 call reset_seq_nos; 011720 aa 777737 6700 04 tsp4 -33,ic 011657 STATEMENT 1 ON LINE 1951 call reset_timer; 011721 aa 777745 6700 04 tsp4 -27,ic 011666 STATEMENT 1 ON LINE 1952 string (xlce.flags) = ""b; 011722 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 011723 aa 7 00005 4501 00 stz pr7|5 STATEMENT 1 ON LINE 1953 xlce.iti_params (*) = 0; 011724 aa 000001 2360 07 ldq 1,dl 011725 aa 6 00500 7561 00 stq pr6|320 011726 aa 6 00500 2361 00 ldq pr6|320 011727 aa 000011 4020 07 mpy 9,dl 011730 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 011731 aa 003 106 060 404 csl (ic),(pr,ql),fill(0),bool(move) 011732 aa 003324 00 0011 descb 1748,9 015255 = 000000000000 011733 aa 7 00031 60 0011 descb pr7|25(27),9 xlce.iti_params 011734 aa 6 00500 2361 00 ldq pr6|320 011735 aa 6 00500 0541 00 aos pr6|320 011736 aa 000022 1160 07 cmpq 18,dl 011737 aa 777767 6040 04 tmi -9,ic 011726 STATEMENT 1 ON LINE 1955 if lcx <= x25_data.n_pvc then do; 011740 aa 6 00117 2361 00 ldq pr6|79 lcx 011741 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 011742 aa 5 00014 1161 00 cmpq pr5|12 x25_data.n_pvc 011743 aa 000004 6054 04 tpnz 4,ic 011747 STATEMENT 1 ON LINE 1956 xlce.state = FLOW_CONTROL_READY; 011744 aa 000003 2360 07 ldq 3,dl 011745 aa 7 00000 7561 00 stq pr7|0 xlce.state STATEMENT 1 ON LINE 1957 end; 011746 aa 000004 7100 04 tra 4,ic 011752 STATEMENT 1 ON LINE 1958 else do; STATEMENT 1 ON LINE 1959 xlce.state = READY; 011747 aa 000001 2360 07 ldq 1,dl 011750 aa 7 00000 7561 00 stq pr7|0 xlce.state STATEMENT 1 ON LINE 1960 xlce.scx = 0; 011751 aa 7 00001 4501 00 stz pr7|1 xlce.scx STATEMENT 1 ON LINE 1961 end; STATEMENT 1 ON LINE 1962 return; 011752 aa 6 00472 6101 00 rtcd pr6|314 STATEMENT 1 ON LINE 1963 end reset_xlce; END PROCEDURE reset_xlce BEGIN PROCEDURE reset_xsce ENTRY TO reset_xsce STATEMENT 1 ON LINE 1967 reset_xsce: procedure; 011753 aa 6 00502 6501 00 spri4 pr6|322 STATEMENT 1 ON LINE 1970 call free_write_chain; 011754 aa 777112 6700 04 tsp4 -438,ic 011066 STATEMENT 1 ON LINE 1971 string (xsce.mode) = ""b; 011755 aa 777777 2350 03 lda 262143,du 011756 aa 6 00172 3735 20 epp7 pr6|122,* xscep 011757 aa 7 00013 3551 00 ansa pr7|11 STATEMENT 1 ON LINE 1972 string (xsce.flags) = ""b; 011760 aa 7 00013 4501 00 stz pr7|11 STATEMENT 1 ON LINE 1973 if /* case */ xsce.state = SC_DIALING then do; 011761 aa 7 00012 2361 00 ldq pr7|10 xsce.state 011762 aa 000002 1160 07 cmpq 2,dl 011763 aa 000043 6010 04 tnz 35,ic 012026 STATEMENT 1 ON LINE 1974 if protocol_mpx then call channel_manager$interrupt (xsce.devx, DIAL_STATUS, "122"b3 || (27)"0"b || unspec (disconnect_info)); 011764 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 011765 aa 400000 3150 03 cana 131072,du 011766 aa 000022 6000 04 tze 18,ic 012010 011767 aa 6 00244 2351 00 lda pr6|164 011770 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 011771 aa 000044 7730 00 lrl 36 011772 aa 122000 2750 03 ora 41984,du 011773 aa 6 01626 7571 00 staq pr6|918 011774 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 011775 aa 6 01632 2521 00 spri2 pr6|922 011776 aa 766143 3520 04 epp2 -5021,ic 000141 = 000000000012 011777 aa 6 01634 2521 00 spri2 pr6|924 012000 aa 6 01626 3521 00 epp2 pr6|918 012001 aa 6 01636 2521 00 spri2 pr6|926 012002 aa 6 01630 6211 00 eax1 pr6|920 012003 aa 014000 4310 07 fld 6144,dl 012004 aa 6 00044 3701 20 epp4 pr6|36,* 012005 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 012006 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 012007 aa 000127 7100 04 tra 87,ic 012136 STATEMENT 1 ON LINE 1977 else call channel_manager$interrupt (xsce.devx, DIAL_STATUS, "122"b3); 012010 aa 766156 2370 04 ldaq -5010,ic 000166 = 122000000000 000000000000 012011 aa 6 01626 7571 00 staq pr6|918 012012 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 012013 aa 6 01632 2521 00 spri2 pr6|922 012014 aa 766125 3520 04 epp2 -5035,ic 000141 = 000000000012 012015 aa 6 01634 2521 00 spri2 pr6|924 012016 aa 6 01626 3521 00 epp2 pr6|918 012017 aa 6 01636 2521 00 spri2 pr6|926 012020 aa 6 01630 6211 00 eax1 pr6|920 012021 aa 014000 4310 07 fld 6144,dl 012022 aa 6 00044 3701 20 epp4 pr6|36,* 012023 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 012024 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1978 end; 012025 aa 000111 7100 04 tra 73,ic 012136 STATEMENT 1 ON LINE 1979 else if xsce.state > SC_HUNGUP then do; 012026 aa 7 00012 2361 00 ldq pr7|10 xsce.state 012027 aa 000107 6044 04 tmoz 71,ic 012136 STATEMENT 1 ON LINE 1980 if protocol_mpx then do; 012030 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 012031 aa 400000 3150 03 cana 131072,du 012032 aa 000045 6000 04 tze 37,ic 012077 STATEMENT 1 ON LINE 1981 if x25_data.state = X25_ACTIVE then call channel_manager$interrupt (xsce.devx, HANGUP, (36)"0"b || unspec (disconnect_info)); 012033 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 012034 aa 5 00011 2361 00 ldq pr5|9 x25_data.state 012035 aa 000003 1160 07 cmpq 3,dl 012036 aa 000021 6010 04 tnz 17,ic 012057 012037 aa 6 00244 2351 00 lda pr6|164 012040 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 012041 aa 000044 7730 00 lrl 36 012042 aa 6 01626 7571 00 staq pr6|918 012043 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 012044 aa 6 01632 2521 00 spri2 pr6|922 012045 aa 766110 3520 04 epp2 -5048,ic 000155 = 000000000002 012046 aa 6 01634 2521 00 spri2 pr6|924 012047 aa 6 01626 3521 00 epp2 pr6|918 012050 aa 6 01636 2521 00 spri2 pr6|926 012051 aa 6 01630 6211 00 eax1 pr6|920 012052 aa 014000 4310 07 fld 6144,dl 012053 aa 6 00044 3701 20 epp4 pr6|36,* 012054 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 012055 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 012056 aa 000060 7100 04 tra 48,ic 012136 STATEMENT 1 ON LINE 1983 else call channel_manager$interrupt (xsce.devx, CRASH, (36)"0"b || unspec (disconnect_info)); 012057 aa 6 00244 2351 00 lda pr6|164 012060 aa 0 00044 3771 00 anaq pr0|36 = 777777000000 000000000000 012061 aa 000044 7730 00 lrl 36 012062 aa 6 01626 7571 00 staq pr6|918 012063 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 012064 aa 6 01632 2521 00 spri2 pr6|922 012065 aa 766075 3520 04 epp2 -5059,ic 000162 = 000000000003 012066 aa 6 01634 2521 00 spri2 pr6|924 012067 aa 6 01626 3521 00 epp2 pr6|918 012070 aa 6 01636 2521 00 spri2 pr6|926 012071 aa 6 01630 6211 00 eax1 pr6|920 012072 aa 014000 4310 07 fld 6144,dl 012073 aa 6 00044 3701 20 epp4 pr6|36,* 012074 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 012075 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1984 end; 012076 aa 000040 7100 04 tra 32,ic 012136 STATEMENT 1 ON LINE 1985 else do; STATEMENT 1 ON LINE 1986 if x25_data.state = X25_ACTIVE then call channel_manager$interrupt (xsce.devx, HANGUP, ""b); 012077 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 012100 aa 5 00011 2361 00 ldq pr5|9 x25_data.state 012101 aa 000003 1160 07 cmpq 3,dl 012102 aa 000017 6010 04 tnz 15,ic 012121 012103 aa 766101 2370 04 ldaq -5055,ic 000204 = 000000000000 000000000000 012104 aa 6 01626 7571 00 staq pr6|918 012105 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 012106 aa 6 01632 2521 00 spri2 pr6|922 012107 aa 766046 3520 04 epp2 -5082,ic 000155 = 000000000002 012110 aa 6 01634 2521 00 spri2 pr6|924 012111 aa 6 01626 3521 00 epp2 pr6|918 012112 aa 6 01636 2521 00 spri2 pr6|926 012113 aa 6 01630 6211 00 eax1 pr6|920 012114 aa 014000 4310 07 fld 6144,dl 012115 aa 6 00044 3701 20 epp4 pr6|36,* 012116 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 012117 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 012120 aa 000016 7100 04 tra 14,ic 012136 STATEMENT 1 ON LINE 1988 else call channel_manager$interrupt (xsce.devx, CRASH, ""b); 012121 aa 766063 2370 04 ldaq -5069,ic 000204 = 000000000000 000000000000 012122 aa 6 01626 7571 00 staq pr6|918 012123 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 012124 aa 6 01632 2521 00 spri2 pr6|922 012125 aa 766035 3520 04 epp2 -5091,ic 000162 = 000000000003 012126 aa 6 01634 2521 00 spri2 pr6|924 012127 aa 6 01626 3521 00 epp2 pr6|918 012130 aa 6 01636 2521 00 spri2 pr6|926 012131 aa 6 01630 6211 00 eax1 pr6|920 012132 aa 014000 4310 07 fld 6144,dl 012133 aa 6 00044 3701 20 epp4 pr6|36,* 012134 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 012135 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1989 end; STATEMENT 1 ON LINE 1990 end; STATEMENT 1 ON LINE 1991 xsce.state = SC_HUNGUP; 012136 aa 000000 2360 07 ldq 0,dl 012137 aa 6 00172 3735 20 epp7 pr6|122,* xscep 012140 aa 7 00012 7561 00 stq pr7|10 xsce.state STATEMENT 1 ON LINE 1992 xsce.lcx = 0; 012141 aa 7 00011 4501 00 stz pr7|9 xsce.lcx STATEMENT 1 ON LINE 1993 return; 012142 aa 6 00502 6101 00 rtcd pr6|322 STATEMENT 1 ON LINE 1994 end reset_xsce; END PROCEDURE reset_xsce BEGIN PROCEDURE restart ENTRY TO restart STATEMENT 1 ON LINE 1998 restart: procedure (Cause); 012143 aa 6 00510 6501 00 spri4 pr6|328 012144 aa 6 00512 2521 00 spri2 pr6|330 STATEMENT 1 ON LINE 2003 call get_buffer (16); 012145 aa 000020 2360 07 ldq 16,dl 012146 aa 6 01640 7561 00 stq pr6|928 012147 aa 002303 3520 04 epp2 1219,ic 014452 = 000002000000 012150 aa 776776 6700 04 tsp4 -514,ic 011146 STATEMENT 1 ON LINE 2004 call make_header (0, "0"b); 012151 aa 6 01640 4501 00 stz pr6|928 012152 aa 000000 2350 07 lda 0,dl 012153 aa 6 01641 7551 00 sta pr6|929 012154 aa 002270 3520 04 epp2 1208,ic 014444 = 000004000000 012155 aa 777156 6700 04 tsp4 -402,ic 011333 STATEMENT 1 ON LINE 2005 x25_pkt.type = RSRTRQ; 012156 aa 373000 2350 03 lda 128512,du 012157 aa 6 00262 3735 20 epp7 pr6|178,* blockp 012160 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 012161 aa 377000 3750 03 ana 130560,du 012162 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 2006 x25_pkt.no_fc_data (2) = bit (Cause); 012163 aa 6 00512 3715 20 epp5 pr6|330,* 012164 aa 5 00002 2351 20 lda pr5|2,* Cause 012165 aa 000033 7350 00 als 27 012166 aa 000022 7710 00 arl 18 012167 aa 7 00002 5511 10 stba pr7|2,10 x25_pkt.no_fc_data STATEMENT 1 ON LINE 2007 buffer.tally = 5 + L2_HEADER_PAD; 012170 aa 000007 2360 07 ldq 7,dl 012171 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 2008 call write_pkt; 012172 aa 001520 6700 04 tsp4 848,ic 013712 STATEMENT 1 ON LINE 2009 call send_output; 012173 aa 000263 6700 04 tsp4 179,ic 012456 STATEMENT 1 ON LINE 2010 x25_data.state = X25_RESTARTING; 012174 aa 000002 2360 07 ldq 2,dl 012175 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 012176 aa 7 00011 7561 00 stq pr7|9 x25_data.state STATEMENT 1 ON LINE 2011 x25_data.restart_time = clock (); 012177 aa 0 01435 7001 00 tsx0 pr0|797 clock_mac 012200 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 012201 aa 7 00026 7571 00 staq pr7|22 x25_data.restart_time STATEMENT 1 ON LINE 2012 call mcs_timer$set (x25_data.devx, 0, x25_data.restart_time + T20, ""b); 012202 aa 6 01641 4501 00 stz pr6|929 012203 aa 765665 0770 04 adaq -5195,ic 000070 = 000000000000 001256512400 012204 aa 6 01642 7571 00 staq pr6|930 012205 aa 000000 2350 07 lda 0,dl 012206 aa 6 01640 7551 00 sta pr6|928 012207 aa 7 00010 3521 00 epp2 pr7|8 x25_data.devx 012210 aa 6 01646 2521 00 spri2 pr6|934 012211 aa 6 01641 3521 00 epp2 pr6|929 012212 aa 6 01650 2521 00 spri2 pr6|936 012213 aa 6 01642 3521 00 epp2 pr6|930 012214 aa 6 01652 2521 00 spri2 pr6|938 012215 aa 6 01640 3521 00 epp2 pr6|928 012216 aa 6 01654 2521 00 spri2 pr6|940 012217 aa 6 01644 6211 00 eax1 pr6|932 012220 aa 020000 4310 07 fld 8192,dl 012221 aa 6 00044 3701 20 epp4 pr6|36,* 012222 la 4 00072 3521 20 epp2 pr4|58,* mcs_timer$set 012223 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 2013 return; 012224 aa 6 00510 6101 00 rtcd pr6|328 STATEMENT 1 ON LINE 2014 end restart; END PROCEDURE restart BEGIN PROCEDURE send_data_packets ENTRY TO send_data_packets STATEMENT 1 ON LINE 2018 send_data_packets: procedure; 012225 aa 6 00516 6501 00 spri4 pr6|334 STATEMENT 1 ON LINE 2023 if xsce.flags.long_packet_pending | xlce.flags.rnr_received then return; 012226 aa 6 00172 3735 20 epp7 pr6|122,* xscep 012227 aa 7 00013 2351 00 lda pr7|11 xsce.long_packet_pending 012230 aa 020000 3150 03 cana 8192,du 012231 aa 000005 6010 04 tnz 5,ic 012236 012232 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 012233 aa 5 00005 2351 00 lda pr5|5 xlce.rnr_received 012234 aa 100000 3150 03 cana 32768,du 012235 aa 000002 6000 04 tze 2,ic 012237 012236 aa 6 00516 6101 00 rtcd pr6|334 STATEMENT 1 ON LINE 2025 do while ((mod (xlce.next_send_seq - xlce.next_ack_seq, x25_data.seq_mod) < xlce.max_window_size) & (xsce.write_head ^= null ())); 012237 aa 000000 0110 03 nop 0,du 012240 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 012241 aa 7 00015 2361 00 ldq pr7|13 xlce.next_send_seq 012242 aa 7 00017 1761 00 sbq pr7|15 xlce.next_ack_seq 012243 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 012244 aa 5 00016 3521 00 epp2 pr5|14 x25_data.seq_mod 012245 aa 0 00704 7001 00 tsx0 pr0|452 mdfx1 012246 aa 7 00003 1161 00 cmpq pr7|3 xlce.max_window_size 012247 aa 000154 6050 04 tpl 108,ic 012423 012250 aa 6 00172 3535 20 epp3 pr6|122,* xscep 012251 aa 3 00020 2371 00 ldaq pr3|16 xsce.write_head 012252 aa 765742 6770 04 eraq -5150,ic 000214 = 077777000043 000001000000 012253 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 012254 aa 000147 6000 04 tze 103,ic 012423 STATEMENT 1 ON LINE 2028 blockp = xsce.write_head; 012255 aa 3 00020 3515 20 epp1 pr3|16,* xsce.write_head 012256 aa 6 00262 2515 00 spri1 pr6|178 blockp STATEMENT 1 ON LINE 2029 pkt_size = buffer.tally; 012257 aa 1 00000 2361 00 ldq pr1|0 buffer.tally 012260 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 012261 aa 6 00524 7561 00 stq pr6|340 pkt_size STATEMENT 1 ON LINE 2030 do endp = blockp repeat pointer (endp, endp -> buffer.next) while (^endp -> buffer.flags.break); 012262 aa 6 00100 2515 00 spri1 pr6|64 endp 012263 aa 000000 0110 03 nop 0,du 012264 aa 6 00100 2351 20 lda pr6|64,* buffer.break 012265 aa 100000 3150 07 cana 32768,dl 012266 aa 000012 6010 04 tnz 10,ic 012300 STATEMENT 1 ON LINE 2031 pkt_size = pkt_size + buffer.tally; 012267 aa 6 00262 2361 20 ldq pr6|178,* buffer.tally 012270 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 012271 aa 6 00524 0561 00 asq pr6|340 pkt_size STATEMENT 1 ON LINE 2032 end; 012272 aa 6 00100 2351 20 lda pr6|64,* buffer.next 012273 aa 000066 7730 00 lrl 54 012274 aa 6 00100 3521 20 epp2 pr6|64,* endp 012275 aa 000000 3120 06 eawp2 0,ql 012276 aa 6 00100 2521 00 spri2 pr6|64 endp 012277 aa 777765 7100 04 tra -11,ic 012264 STATEMENT 1 ON LINE 2034 if (pkt_size >= x25_data.long_packet_size) & (^x25_data.flags.send_output | (x25_data.write_head ^= null ())) then do; 012300 aa 6 00524 2361 00 ldq pr6|340 pkt_size 012301 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 012302 aa 7 00040 1161 00 cmpq pr7|32 x25_data.long_packet_size 012303 aa 000031 6040 04 tmi 25,ic 012334 012304 aa 7 00015 2351 00 lda pr7|13 x25_data.send_output 012305 aa 400000 3150 03 cana 131072,du 012306 aa 000005 6000 04 tze 5,ic 012313 012307 aa 7 00034 2371 00 ldaq pr7|28 x25_data.write_head 012310 aa 765704 6770 04 eraq -5180,ic 000214 = 077777000043 000001000000 012311 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 012312 aa 000022 6000 04 tze 18,ic 012334 STATEMENT 1 ON LINE 2036 xsce.flags.long_packet_pending = "1"b; 012313 aa 020000 2350 03 lda 8192,du 012314 aa 6 00172 3715 20 epp5 pr6|122,* xscep 012315 aa 5 00013 2551 00 orsa pr5|11 xsce.long_packet_pending STATEMENT 1 ON LINE 2037 xsce.long_packet_next_scx = 0; 012316 aa 5 00014 4501 00 stz pr5|12 xsce.long_packet_next_scx STATEMENT 1 ON LINE 2038 if x25_data.long_packet_head = 0 then x25_data.long_packet_head = scx; 012317 aa 7 00041 2361 00 ldq pr7|33 x25_data.long_packet_head 012320 aa 000004 6010 04 tnz 4,ic 012324 012321 aa 6 00120 2361 00 ldq pr6|80 scx 012322 aa 7 00041 7561 00 stq pr7|33 x25_data.long_packet_head 012323 aa 000006 7100 04 tra 6,ic 012331 STATEMENT 1 ON LINE 2040 else x25_data.sc (x25_data.long_packet_tail).long_packet_next_scx = scx; 012324 aa 7 00042 2361 00 ldq pr7|34 x25_data.long_packet_tail 012325 aa 000026 4020 07 mpy 22,dl 012326 aa 000000 6270 06 eax7 0,ql 012327 aa 6 00120 2361 00 ldq pr6|80 scx 012330 aa 7 00040 7561 17 stq pr7|32,7 x25_data.long_packet_next_scx STATEMENT 1 ON LINE 2041 x25_data.long_packet_tail = scx; 012331 aa 6 00120 2361 00 ldq pr6|80 scx 012332 aa 7 00042 7561 00 stq pr7|34 x25_data.long_packet_tail STATEMENT 1 ON LINE 2042 return; 012333 aa 6 00516 6101 00 rtcd pr6|334 STATEMENT 1 ON LINE 2043 end; STATEMENT 1 ON LINE 2045 if endp -> buffer.next = 0 then xsce.write_head, xsce.write_tail = null (); 012334 aa 6 00100 2351 20 lda pr6|64,* buffer.next 012335 aa 000066 7730 00 lrl 54 012336 aa 6 01656 7561 00 stq pr6|942 buffer.next 012337 aa 000006 6010 04 tnz 6,ic 012345 012340 aa 765654 3714 24 epp5 -5204,ic* 012341 aa 6 00172 3535 20 epp3 pr6|122,* xscep 012342 aa 3 00020 6515 00 spri5 pr3|16 xsce.write_head 012343 aa 3 00022 6515 00 spri5 pr3|18 xsce.write_tail 012344 aa 000005 7100 04 tra 5,ic 012351 STATEMENT 1 ON LINE 2047 else xsce.write_head = pointer (endp, endp -> buffer.next); 012345 aa 6 00100 3521 20 epp2 pr6|64,* endp 012346 aa 000000 3120 06 eawp2 0,ql 012347 aa 6 00172 3715 20 epp5 pr6|122,* xscep 012350 aa 5 00020 2521 00 spri2 pr5|16 xsce.write_head STATEMENT 1 ON LINE 2048 endp -> buffer.next = 0; 012351 aa 000000 2350 07 lda 0,dl 012352 aa 6 00100 3715 20 epp5 pr6|64,* buffer.next 012353 aa 5 00000 5511 60 stba pr5|0,60 buffer.next STATEMENT 1 ON LINE 2050 if x25_data.seq_mod = 8 then do; 012354 aa 7 00016 2361 00 ldq pr7|14 x25_data.seq_mod 012355 aa 000010 1160 07 cmpq 8,dl 012356 aa 000016 6010 04 tnz 14,ic 012374 STATEMENT 1 ON LINE 2051 m8_fc_data.ps = xlce.next_send_seq; 012357 aa 6 00170 3535 20 epp3 pr6|120,* xlcep 012360 aa 3 00015 2361 00 ldq pr3|13 xlce.next_send_seq 012361 aa 000100 7370 00 lls 64 012362 aa 6 00262 3515 20 epp1 pr6|178,* blockp 012363 aa 1 00002 6751 00 era pr1|2 m8_fc_data.ps 012364 aa 016000 3750 03 ana 7168,du 012365 aa 1 00002 6551 00 ersa pr1|2 m8_fc_data.ps STATEMENT 1 ON LINE 2052 m8_fc_data.pr = xlce.next_recv_seq; 012366 aa 3 00014 2361 00 ldq pr3|12 xlce.next_recv_seq 012367 aa 000104 7370 00 lls 68 012370 aa 1 00002 6751 00 era pr1|2 m8_fc_data.pr 012371 aa 340000 3750 03 ana 114688,du 012372 aa 1 00002 6551 00 ersa pr1|2 m8_fc_data.pr STATEMENT 1 ON LINE 2053 end; 012373 aa 000015 7100 04 tra 13,ic 012410 STATEMENT 1 ON LINE 2054 else do; STATEMENT 1 ON LINE 2055 m128_fc_data.ps = xlce.next_send_seq; 012374 aa 6 00170 3535 20 epp3 pr6|120,* xlcep 012375 aa 3 00015 2361 00 ldq pr3|13 xlce.next_send_seq 012376 aa 000100 7370 00 lls 64 012377 aa 6 00262 3515 20 epp1 pr6|178,* blockp 012400 aa 1 00002 6751 00 era pr1|2 m128_fc_data.ps 012401 aa 376000 3750 03 ana 130048,du 012402 aa 1 00002 6551 00 ersa pr1|2 m128_fc_data.ps STATEMENT 1 ON LINE 2056 m128_fc_data.pr = xlce.next_recv_seq; 012403 aa 3 00014 2361 00 ldq pr3|12 xlce.next_recv_seq 012404 aa 000067 7370 00 lls 55 012405 aa 1 00002 6751 00 era pr1|2 m128_fc_data.pr 012406 aa 000376 3750 03 ana 254,du 012407 aa 1 00002 6551 00 ersa pr1|2 m128_fc_data.pr STATEMENT 1 ON LINE 2057 end; STATEMENT 1 ON LINE 2059 call write_pkt; 012410 aa 001302 6700 04 tsp4 706,ic 013712 STATEMENT 1 ON LINE 2061 xlce.next_send_seq = mod (xlce.next_send_seq + 1, x25_data.seq_mod); 012411 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 012412 aa 7 00015 2361 00 ldq pr7|13 xlce.next_send_seq 012413 aa 000001 0760 07 adq 1,dl 012414 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 012415 aa 5 00016 3521 00 epp2 pr5|14 x25_data.seq_mod 012416 aa 0 00704 7001 00 tsx0 pr0|452 mdfx1 012417 aa 7 00015 7561 00 stq pr7|13 xlce.next_send_seq STATEMENT 1 ON LINE 2062 xlce.last_recv_seq = xlce.next_recv_seq; 012420 aa 7 00014 2361 00 ldq pr7|12 xlce.next_recv_seq 012421 aa 7 00016 7561 00 stq pr7|14 xlce.last_recv_seq STATEMENT 1 ON LINE 2063 end; 012422 aa 777616 7100 04 tra -114,ic 012240 STATEMENT 1 ON LINE 2064 return; 012423 aa 6 00516 6101 00 rtcd pr6|334 STATEMENT 1 ON LINE 2065 end send_data_packets; END PROCEDURE send_data_packets BEGIN PROCEDURE send_diag ENTRY TO send_diag STATEMENT 1 ON LINE 2069 send_diag: procedure (Cause); 012424 aa 6 00526 6501 00 spri4 pr6|342 012425 aa 6 00530 2521 00 spri2 pr6|344 STATEMENT 1 ON LINE 2074 call get_buffer (16); 012426 aa 000020 2360 07 ldq 16,dl 012427 aa 6 01662 7561 00 stq pr6|946 012430 aa 002010 3520 04 epp2 1032,ic 014440 = 000002000000 012431 aa 776515 6700 04 tsp4 -691,ic 011146 STATEMENT 1 ON LINE 2075 call make_header (0, "0"b); 012432 aa 6 01662 4501 00 stz pr6|946 012433 aa 000000 2350 07 lda 0,dl 012434 aa 6 01663 7551 00 sta pr6|947 012435 aa 001775 3520 04 epp2 1021,ic 014432 = 000004000000 012436 aa 776675 6700 04 tsp4 -579,ic 011333 STATEMENT 1 ON LINE 2076 x25_pkt.type = DIAG; 012437 aa 361000 2350 03 lda 123392,du 012440 aa 6 00262 3735 20 epp7 pr6|178,* blockp 012441 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 012442 aa 377000 3750 03 ana 130560,du 012443 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 2077 x25_pkt.no_fc_data (1) = bit (Cause); 012444 aa 6 00530 3715 20 epp5 pr6|344,* 012445 aa 5 00002 2351 20 lda pr5|2,* Cause 012446 aa 000033 7350 00 als 27 012447 aa 000011 7710 00 arl 9 012450 aa 7 00002 5511 20 stba pr7|2,20 x25_pkt.no_fc_data STATEMENT 1 ON LINE 2078 buffer.tally = 4 + L2_HEADER_PAD; 012451 aa 000006 2360 07 ldq 6,dl 012452 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 2079 call write_pkt; 012453 aa 001237 6700 04 tsp4 671,ic 013712 STATEMENT 1 ON LINE 2080 call send_output; 012454 aa 000002 6700 04 tsp4 2,ic 012456 STATEMENT 1 ON LINE 2081 return; 012455 aa 6 00526 6101 00 rtcd pr6|342 STATEMENT 1 ON LINE 2082 end send_diag; END PROCEDURE send_diag BEGIN PROCEDURE send_output ENTRY TO send_output STATEMENT 1 ON LINE 2086 send_output: procedure; 012456 aa 6 00534 6501 00 spri4 pr6|348 STATEMENT 1 ON LINE 2089 if x25_data.flags.send_output & (x25_data.write_head ^= null ()) then do; 012457 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 012460 aa 7 00015 2351 00 lda pr7|13 x25_data.send_output 012461 aa 400000 3150 03 cana 131072,du 012462 aa 000115 6000 04 tze 77,ic 012577 012463 aa 7 00034 2371 00 ldaq pr7|28 x25_data.write_head 012464 aa 765530 6770 04 eraq -5288,ic 000214 = 077777000043 000001000000 012465 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 012466 aa 000111 6000 04 tze 73,ic 012577 STATEMENT 1 ON LINE 2090 x25_data.flags.send_output = "0"b; 012467 aa 002557 2350 04 lda 1391,ic 015246 = 377777777777 012470 aa 7 00015 3551 00 ansa pr7|13 x25_data.send_output STATEMENT 1 ON LINE 2091 call channel_manager$write (x25_data.devx, x25_data.write_head, code); 012471 aa 7 00010 3521 00 epp2 pr7|8 x25_data.devx 012472 aa 6 01666 2521 00 spri2 pr6|950 012473 aa 7 00034 3521 00 epp2 pr7|28 x25_data.write_head 012474 aa 6 01670 2521 00 spri2 pr6|952 012475 aa 6 00121 3521 00 epp2 pr6|81 code 012476 aa 6 01672 2521 00 spri2 pr6|954 012477 aa 6 01664 6211 00 eax1 pr6|948 012500 aa 014000 4310 07 fld 6144,dl 012501 aa 6 00044 3701 20 epp4 pr6|36,* 012502 la 4 00064 3521 20 epp2 pr4|52,* channel_manager$write 012503 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 2092 if code ^= 0 then do; 012504 aa 6 00121 2361 00 ldq pr6|81 code 012505 aa 000063 6000 04 tze 51,ic 012570 STATEMENT 1 ON LINE 2093 call syserr (Log_message, "x25_mpx(^a): Error ^w from write.", x25_data.name, code); 012506 aa 000 100 100 404 mlr (ic),(pr),fill(000) 012507 aa 765622 00 0044 desc9a -5230,36 000330 = 170062065137 012510 aa 6 01674 00 0044 desc9a pr6|956,36 012511 aa 765447 3520 04 epp2 -5337,ic 000160 = 000000000004 012512 aa 6 01710 2521 00 spri2 pr6|968 012513 aa 6 01674 3521 00 epp2 pr6|956 012514 aa 6 01712 2521 00 spri2 pr6|970 012515 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 012516 aa 6 01714 2521 00 spri2 pr6|972 012517 aa 6 00121 3521 00 epp2 pr6|81 code 012520 aa 6 01716 2521 00 spri2 pr6|974 012521 aa 765435 3520 04 epp2 -5347,ic 000156 = 404000000021 012522 aa 6 01720 2521 00 spri2 pr6|976 012523 aa 765372 3520 04 epp2 -5382,ic 000115 = 524000000041 012524 aa 6 01722 2521 00 spri2 pr6|978 012525 aa 765412 3520 04 epp2 -5366,ic 000137 = 524000000040 012526 aa 6 01724 2521 00 spri2 pr6|980 012527 aa 765432 3520 04 epp2 -5350,ic 000161 = 404000000043 012530 aa 6 01726 2521 00 spri2 pr6|982 012531 aa 6 01706 6211 00 eax1 pr6|966 012532 aa 020000 4310 07 fld 8192,dl 012533 aa 6 00044 3701 20 epp4 pr6|36,* 012534 la 4 00056 3521 20 epp2 pr4|46,* syserr 012535 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 2094 call channel_manager$control (x25_data.devx, "hangup", null (), code); 012536 aa 765450 2370 04 ldaq -5336,ic 000206 = 150141156147 165160000000 012537 aa 6 01730 7571 00 staq pr6|984 012540 aa 765454 3734 24 epp7 -5332,ic* 012541 aa 6 01732 6535 00 spri7 pr6|986 012542 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 012543 aa 5 00010 3521 00 epp2 pr5|8 x25_data.devx 012544 aa 6 01710 2521 00 spri2 pr6|968 012545 aa 6 01730 3521 00 epp2 pr6|984 012546 aa 6 01712 2521 00 spri2 pr6|970 012547 aa 6 01732 3521 00 epp2 pr6|986 012550 aa 6 01714 2521 00 spri2 pr6|972 012551 aa 6 00121 3521 00 epp2 pr6|81 code 012552 aa 6 01716 2521 00 spri2 pr6|974 012553 aa 765403 3520 04 epp2 -5373,ic 000156 = 404000000021 012554 aa 6 01720 2521 00 spri2 pr6|976 012555 aa 765323 3520 04 epp2 -5421,ic 000100 = 524000000006 012556 aa 6 01722 2521 00 spri2 pr6|978 012557 aa 765404 3520 04 epp2 -5372,ic 000163 = 464000000000 012560 aa 6 01724 2521 00 spri2 pr6|980 012561 aa 765400 3520 04 epp2 -5376,ic 000161 = 404000000043 012562 aa 6 01726 2521 00 spri2 pr6|982 012563 aa 6 01706 6211 00 eax1 pr6|966 012564 aa 020000 4310 07 fld 8192,dl 012565 aa 6 00044 3701 20 epp4 pr6|36,* 012566 la 4 00066 3521 20 epp2 pr4|54,* channel_manager$control 012567 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 2095 end; STATEMENT 1 ON LINE 2096 if x25_data.write_head = null () then x25_data.write_tail = null (); 012570 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 012571 aa 7 00034 2371 00 ldaq pr7|28 x25_data.write_head 012572 aa 765422 6770 04 eraq -5358,ic 000214 = 077777000043 000001000000 012573 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 012574 aa 000003 6010 04 tnz 3,ic 012577 012575 aa 765417 2370 04 ldaq -5361,ic 000214 = 077777000043 000001000000 012576 aa 7 00036 7571 00 staq pr7|30 x25_data.write_tail STATEMENT 1 ON LINE 2097 end; STATEMENT 1 ON LINE 2098 return; 012577 aa 6 00534 6101 00 rtcd pr6|348 STATEMENT 1 ON LINE 2099 end send_output; END PROCEDURE send_output BEGIN PROCEDURE send_rr ENTRY TO send_rr STATEMENT 1 ON LINE 2103 send_rr: procedure; 012600 aa 6 00542 6501 00 spri4 pr6|354 STATEMENT 1 ON LINE 2108 ttybp = addr (tty_buf$); 012601 aa 6 00044 3701 20 epp4 pr6|36,* 012602 la 4 00062 3735 20 epp7 pr4|50,* tty_buf$ 012603 aa 6 00260 6535 00 spri7 pr6|176 ttybp STATEMENT 1 ON LINE 2109 lctep = addr (tty_buf.lct_ptr -> lct.lcte_array (xsce.devx)); 012604 aa 6 00172 3715 20 epp5 pr6|122,* xscep 012605 aa 5 00010 2361 00 ldq pr5|8 xsce.devx 012606 aa 000005 7360 00 qls 5 012607 aa 7 00006 3535 20 epp3 pr7|6,* tty_buf.lct_ptr 012610 aa 3 77760 3515 06 epp1 pr3|-16,ql lct.lcte_array 012611 aa 6 00246 2515 00 spri1 pr6|166 lctep STATEMENT 1 ON LINE 2110 packets_out = mod (xlce.next_recv_seq - xlce.last_recv_seq, x25_data.seq_mod); 012612 aa 6 00170 3535 20 epp3 pr6|120,* xlcep 012613 aa 3 00014 2361 00 ldq pr3|12 xlce.next_recv_seq 012614 aa 3 00016 1761 00 sbq pr3|14 xlce.last_recv_seq 012615 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 012616 aa 5 00016 3521 00 epp2 pr5|14 x25_data.seq_mod 012617 aa 0 00704 7001 00 tsx0 pr0|452 mdfx1 012620 aa 6 00550 7561 00 stq pr6|360 packets_out STATEMENT 1 ON LINE 2112 if (3 * lcte.input_words) < tty_buf.bleft then if (clock () > xlce.force_ack_time) | (packets_out >= xlce.max_window_size) | xlce.flags.rnr_sent then do; 012621 aa 1 00005 2351 00 lda pr1|5 lcte.input_words 012622 aa 000066 7330 00 lrs 54 012623 aa 000003 4020 07 mpy 3,dl 012624 aa 7 00003 1161 00 cmpq pr7|3 tty_buf.bleft 012625 aa 000100 6050 04 tpl 64,ic 012725 012626 aa 3 00005 2351 00 lda pr3|5 xlce.rnr_sent 012627 aa 000004 7350 00 als 4 012630 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 012631 aa 6 01734 7551 00 sta pr6|988 xlce.rnr_sent 012632 aa 6 00550 2361 00 ldq pr6|360 packets_out 012633 aa 3 00003 1161 00 cmpq pr3|3 xlce.max_window_size 012634 aa 0 00527 7001 00 tsx0 pr0|343 r_ge_a 012635 aa 6 01735 7551 00 sta pr6|989 012636 aa 0 01435 7001 00 tsx0 pr0|797 clock_mac 012637 aa 3 00010 1171 00 cmpaq pr3|8 xlce.force_ack_time 012640 aa 0 00503 7001 00 tsx0 pr0|323 r_g_a 012641 aa 6 01735 2751 00 ora pr6|989 012642 aa 6 01734 2751 00 ora pr6|988 xlce.rnr_sent 012643 aa 000054 6000 04 tze 44,ic 012717 STATEMENT 1 ON LINE 2114 call get_buffer (16); 012644 aa 000020 2360 07 ldq 16,dl 012645 aa 6 01734 7561 00 stq pr6|988 012646 aa 001560 3520 04 epp2 880,ic 014426 = 000002000000 012647 aa 776277 6700 04 tsp4 -833,ic 011146 STATEMENT 1 ON LINE 2115 call make_header (lcx, "0"b); 012650 aa 000000 2350 07 lda 0,dl 012651 aa 6 01734 7551 00 sta pr6|988 012652 aa 001546 3520 04 epp2 870,ic 014420 = 000004000000 012653 aa 776460 6700 04 tsp4 -720,ic 011333 STATEMENT 1 ON LINE 2116 x25_pkt.type = SNRR; 012654 aa 001000 2350 03 lda 512,du 012655 aa 6 00262 3735 20 epp7 pr6|178,* blockp 012656 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 012657 aa 377000 3750 03 ana 130560,du 012660 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 2117 if x25_data.seq_mod = 8 then m8_fc_data.pr = xlce.next_recv_seq; 012661 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 012662 aa 5 00016 2361 00 ldq pr5|14 x25_data.seq_mod 012663 aa 000010 1160 07 cmpq 8,dl 012664 aa 000010 6010 04 tnz 8,ic 012674 012665 aa 6 00170 3535 20 epp3 pr6|120,* xlcep 012666 aa 3 00014 2361 00 ldq pr3|12 xlce.next_recv_seq 012667 aa 000104 7370 00 lls 68 012670 aa 7 00002 6751 00 era pr7|2 m8_fc_data.pr 012671 aa 340000 3750 03 ana 114688,du 012672 aa 7 00002 6551 00 ersa pr7|2 m8_fc_data.pr 012673 aa 000007 7100 04 tra 7,ic 012702 STATEMENT 1 ON LINE 2119 else m128_fc_data.pr = xlce.next_recv_seq; 012674 aa 6 00170 3535 20 epp3 pr6|120,* xlcep 012675 aa 3 00014 2361 00 ldq pr3|12 xlce.next_recv_seq 012676 aa 000067 7370 00 lls 55 012677 aa 7 00002 6751 00 era pr7|2 m128_fc_data.pr 012700 aa 000376 3750 03 ana 254,du 012701 aa 7 00002 6551 00 ersa pr7|2 m128_fc_data.pr STATEMENT 1 ON LINE 2120 buffer.tally = hdr_size + L2_HEADER_PAD; 012702 aa 6 00131 2361 00 ldq pr6|89 hdr_size 012703 aa 000002 0760 07 adq 2,dl 012704 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 2121 call write_pkt; 012705 aa 001005 6700 04 tsp4 517,ic 013712 STATEMENT 1 ON LINE 2122 call send_output; 012706 aa 777550 6700 04 tsp4 -152,ic 012456 STATEMENT 1 ON LINE 2123 xlce.last_recv_seq = xlce.next_recv_seq; 012707 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 012710 aa 7 00014 2361 00 ldq pr7|12 xlce.next_recv_seq 012711 aa 7 00016 7561 00 stq pr7|14 xlce.last_recv_seq STATEMENT 1 ON LINE 2124 call reset_timer; 012712 aa 776754 6700 04 tsp4 -532,ic 011666 STATEMENT 1 ON LINE 2125 xlce.flags.rnr_sent = "0"b; 012713 aa 002102 2350 04 lda 1090,ic 015015 = 757777777777 012714 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 012715 aa 7 00005 3551 00 ansa pr7|5 xlce.rnr_sent STATEMENT 1 ON LINE 2126 end; 012716 aa 000064 7100 04 tra 52,ic 013002 STATEMENT 1 ON LINE 2127 else if packets_out = 0 then ; 012717 aa 6 00550 2361 00 ldq pr6|360 packets_out 012720 aa 000002 6010 04 tnz 2,ic 012722 012721 aa 000061 7100 04 tra 49,ic 013002 STATEMENT 1 ON LINE 2128 else call set_timer (TIMEOUT); 012722 aa 001472 3520 04 epp2 826,ic 014414 = 000002000000 012723 aa 000134 6700 04 tsp4 92,ic 013057 012724 aa 000056 7100 04 tra 46,ic 013002 STATEMENT 1 ON LINE 2130 else do; STATEMENT 1 ON LINE 2131 if ^xlce.flags.rnr_sent then do; 012725 aa 3 00005 2351 00 lda pr3|5 xlce.rnr_sent 012726 aa 020000 3150 03 cana 8192,du 012727 aa 000051 6010 04 tnz 41,ic 013000 STATEMENT 1 ON LINE 2132 call get_buffer (16); 012730 aa 000020 2360 07 ldq 16,dl 012731 aa 6 01734 7561 00 stq pr6|988 012732 aa 001474 3520 04 epp2 828,ic 014426 = 000002000000 012733 aa 776213 6700 04 tsp4 -885,ic 011146 STATEMENT 1 ON LINE 2133 call make_header (lcx, "0"b); 012734 aa 000000 2350 07 lda 0,dl 012735 aa 6 01734 7551 00 sta pr6|988 012736 aa 001462 3520 04 epp2 818,ic 014420 = 000004000000 012737 aa 776374 6700 04 tsp4 -772,ic 011333 STATEMENT 1 ON LINE 2134 x25_pkt.type = SNRNR; 012740 aa 005000 2350 03 lda 2560,du 012741 aa 6 00262 3735 20 epp7 pr6|178,* blockp 012742 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 012743 aa 377000 3750 03 ana 130560,du 012744 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 2135 if x25_data.seq_mod = 8 then m8_fc_data.pr = xlce.next_recv_seq; 012745 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 012746 aa 5 00016 2361 00 ldq pr5|14 x25_data.seq_mod 012747 aa 000010 1160 07 cmpq 8,dl 012750 aa 000010 6010 04 tnz 8,ic 012760 012751 aa 6 00170 3535 20 epp3 pr6|120,* xlcep 012752 aa 3 00014 2361 00 ldq pr3|12 xlce.next_recv_seq 012753 aa 000104 7370 00 lls 68 012754 aa 7 00002 6751 00 era pr7|2 m8_fc_data.pr 012755 aa 340000 3750 03 ana 114688,du 012756 aa 7 00002 6551 00 ersa pr7|2 m8_fc_data.pr 012757 aa 000007 7100 04 tra 7,ic 012766 STATEMENT 1 ON LINE 2137 else m128_fc_data.pr = xlce.next_recv_seq; 012760 aa 6 00170 3535 20 epp3 pr6|120,* xlcep 012761 aa 3 00014 2361 00 ldq pr3|12 xlce.next_recv_seq 012762 aa 000067 7370 00 lls 55 012763 aa 7 00002 6751 00 era pr7|2 m128_fc_data.pr 012764 aa 000376 3750 03 ana 254,du 012765 aa 7 00002 6551 00 ersa pr7|2 m128_fc_data.pr STATEMENT 1 ON LINE 2138 buffer.tally = hdr_size + L2_HEADER_PAD; 012766 aa 6 00131 2361 00 ldq pr6|89 hdr_size 012767 aa 000002 0760 07 adq 2,dl 012770 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 2139 call write_pkt; 012771 aa 000721 6700 04 tsp4 465,ic 013712 STATEMENT 1 ON LINE 2140 call send_output; 012772 aa 777464 6700 04 tsp4 -204,ic 012456 STATEMENT 1 ON LINE 2141 xlce.last_recv_seq = xlce.next_recv_seq; 012773 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 012774 aa 7 00014 2361 00 ldq pr7|12 xlce.next_recv_seq 012775 aa 7 00016 7561 00 stq pr7|14 xlce.last_recv_seq STATEMENT 1 ON LINE 2142 xlce.flags.rnr_sent = "1"b; 012776 aa 020000 2350 03 lda 8192,du 012777 aa 7 00005 2551 00 orsa pr7|5 xlce.rnr_sent STATEMENT 1 ON LINE 2143 end; STATEMENT 1 ON LINE 2144 call set_timer (TIMEOUT); 013000 aa 001414 3520 04 epp2 780,ic 014414 = 000002000000 013001 aa 000056 6700 04 tsp4 46,ic 013057 STATEMENT 1 ON LINE 2145 end; STATEMENT 1 ON LINE 2147 return; 013002 aa 6 00542 6101 00 rtcd pr6|354 STATEMENT 1 ON LINE 2148 end send_rr; END PROCEDURE send_rr BEGIN PROCEDURE send_sync ENTRY TO send_sync STATEMENT 1 ON LINE 2152 send_sync: procedure; 013003 aa 6 00552 6501 00 spri4 pr6|362 STATEMENT 1 ON LINE 2155 if (^x25_data.flags.no_d | ((x25_data.net_type = "tymnet") & (xsce.write_head = null ()))) & ^xlce.flags.rnr_received then do; 013004 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 013005 aa 7 00015 2351 00 lda pr7|13 x25_data.no_d 013006 aa 040000 3150 03 cana 16384,du 013007 aa 000014 6000 04 tze 12,ic 013023 013010 aa 765162 2370 04 ldaq -5518,ic 000172 = 164171155156 145164000000 013011 aa 0 00454 2771 00 oraq pr0|300 = 000000000000 000000040040 013012 aa 7 00024 1151 00 cmpa pr7|20 x25_data.net_type 013013 aa 000002 6010 04 tnz 2,ic 013015 013014 aa 7 00025 1161 00 cmpq pr7|21 x25_data.net_type 013015 aa 000041 6010 04 tnz 33,ic 013056 013016 aa 6 00172 3715 20 epp5 pr6|122,* xscep 013017 aa 5 00020 2371 00 ldaq pr5|16 xsce.write_head 013020 aa 765174 6770 04 eraq -5508,ic 000214 = 077777000043 000001000000 013021 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 013022 aa 000034 6010 04 tnz 28,ic 013056 013023 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 013024 aa 5 00005 2351 00 lda pr5|5 xlce.rnr_received 013025 aa 100000 3150 03 cana 32768,du 013026 aa 000030 6010 04 tnz 24,ic 013056 STATEMENT 1 ON LINE 2157 call get_buffer (16); 013027 aa 000020 2360 07 ldq 16,dl 013030 aa 6 01736 7561 00 stq pr6|990 013031 aa 001357 3520 04 epp2 751,ic 014410 = 000002000000 013032 aa 776114 6700 04 tsp4 -948,ic 011146 STATEMENT 1 ON LINE 2158 call make_header (lcx, "0"b); 013033 aa 000000 2350 07 lda 0,dl 013034 aa 6 01736 7551 00 sta pr6|990 013035 aa 001345 3520 04 epp2 741,ic 014402 = 000004000000 013036 aa 776275 6700 04 tsp4 -835,ic 011333 STATEMENT 1 ON LINE 2159 if ^x25_data.flags.no_d then x25_pkt.l3_header.d = "1"b; 013037 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 013040 aa 7 00015 2351 00 lda pr7|13 x25_data.no_d 013041 aa 040000 3150 03 cana 16384,du 013042 aa 000004 6010 04 tnz 4,ic 013046 013043 aa 100000 2350 07 lda 32768,dl 013044 aa 6 00262 3715 20 epp5 pr6|178,* blockp 013045 aa 5 00001 2551 00 orsa pr5|1 x25_pkt.d STATEMENT 1 ON LINE 2160 buffer.tally = hdr_size + L2_HEADER_PAD; 013046 aa 6 00131 2361 00 ldq pr6|89 hdr_size 013047 aa 000002 0760 07 adq 2,dl 013050 aa 6 00262 3715 20 epp5 pr6|178,* buffer.tally 013051 aa 5 00000 5521 04 stbq pr5|0,04 buffer.tally STATEMENT 1 ON LINE 2161 call write_data_pkt; 013052 aa 000603 6700 04 tsp4 387,ic 013655 STATEMENT 1 ON LINE 2162 xlce.flags.write_status_sync_sent = "1"b; 013053 aa 001000 2350 03 lda 512,du 013054 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 013055 aa 7 00005 2551 00 orsa pr7|5 xlce.write_status_sync_sent STATEMENT 1 ON LINE 2163 end; STATEMENT 1 ON LINE 2164 return; 013056 aa 6 00552 6101 00 rtcd pr6|362 STATEMENT 1 ON LINE 2165 end send_sync; END PROCEDURE send_sync BEGIN PROCEDURE set_timer ENTRY TO set_timer STATEMENT 1 ON LINE 2169 set_timer: procedure (Time); 013057 aa 6 00560 6501 00 spri4 pr6|368 013060 aa 6 00562 2521 00 spri2 pr6|370 STATEMENT 1 ON LINE 2174 if ^xlce.flags.timer_set then do; 013061 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 013062 aa 7 00005 2351 00 lda pr7|5 xlce.timer_set 013063 aa 004000 3150 03 cana 2048,du 013064 aa 000031 6010 04 tnz 25,ic 013115 STATEMENT 1 ON LINE 2175 call mcs_timer$set (x25_data.devx, (lcx), clock () + Time, ""b); 013065 aa 6 00117 2361 00 ldq pr6|79 lcx 013066 aa 6 01737 7561 00 stq pr6|991 013067 aa 0 01435 7001 00 tsx0 pr0|797 clock_mac 013070 aa 2 00002 0771 20 adaq pr2|2,* Time 013071 aa 6 01740 7571 00 staq pr6|992 013072 aa 000000 2350 07 lda 0,dl 013073 aa 6 01742 7551 00 sta pr6|994 013074 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 013075 aa 7 00010 3521 00 epp2 pr7|8 x25_data.devx 013076 aa 6 01746 2521 00 spri2 pr6|998 013077 aa 6 01737 3521 00 epp2 pr6|991 013100 aa 6 01750 2521 00 spri2 pr6|1000 013101 aa 6 01740 3521 00 epp2 pr6|992 013102 aa 6 01752 2521 00 spri2 pr6|1002 013103 aa 6 01742 3521 00 epp2 pr6|994 013104 aa 6 01754 2521 00 spri2 pr6|1004 013105 aa 6 01744 6211 00 eax1 pr6|996 013106 aa 020000 4310 07 fld 8192,dl 013107 aa 6 00044 3701 20 epp4 pr6|36,* 013110 la 4 00072 3521 20 epp2 pr4|58,* mcs_timer$set 013111 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 2176 xlce.flags.timer_set = "1"b; 013112 aa 004000 2350 03 lda 2048,du 013113 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 013114 aa 7 00005 2551 00 orsa pr7|5 xlce.timer_set STATEMENT 1 ON LINE 2177 end; STATEMENT 1 ON LINE 2178 return; 013115 aa 6 00560 6101 00 rtcd pr6|368 STATEMENT 1 ON LINE 2179 end set_timer; END PROCEDURE set_timer BEGIN PROCEDURE set_x29 ENTRY TO set_x29 STATEMENT 1 ON LINE 2183 set_x29: procedure (Set, Write); 013116 aa 6 00566 6501 00 spri4 pr6|374 013117 aa 6 00570 2521 00 spri2 pr6|376 STATEMENT 1 ON LINE 2190 write = Write; 013120 aa 2 00004 2351 20 lda pr2|4,* Write 013121 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 013122 aa 6 00574 7551 00 sta pr6|380 write STATEMENT 1 ON LINE 2191 if Set then do; 013123 aa 2 00002 2351 20 lda pr2|2,* Set 013124 aa 400000 3150 03 cana 131072,du 013125 aa 000105 6000 04 tze 69,ic 013232 STATEMENT 1 ON LINE 2192 do i = 2 by 2 to buffer.tally - hdr_size - L2_HEADER_PAD; 013126 aa 6 00262 2361 20 ldq pr6|178,* buffer.tally 013127 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 013130 aa 6 00131 1761 00 sbq pr6|89 hdr_size 013131 aa 000002 1760 07 sbq 2,dl 013132 aa 6 00577 7561 00 stq pr6|383 013133 aa 000002 2360 07 ldq 2,dl 013134 aa 6 00575 7561 00 stq pr6|381 i 013135 aa 000000 0110 03 nop 0,du 013136 aa 6 00575 2361 00 ldq pr6|381 i 013137 aa 6 00577 1161 00 cmpq pr6|383 013140 aa 000046 6054 04 tpnz 38,ic 013206 STATEMENT 1 ON LINE 2193 p = binary (substr (l4_data (i), 3, 7), 7); 013141 aa 000011 4020 07 mpy 9,dl 013142 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 013143 aa 003 100 060 506 csl (pr,ql),(pr),fill(0),bool(move) 013144 aa 7 77777 62 0007 descb pr7|-1(29),7 l4_data 013145 aa 6 00056 00 0044 descb pr6|46,36 013146 aa 6 00056 2351 00 lda pr6|46 013147 aa 6 01756 7561 00 stq pr6|1006 013150 aa 000101 7730 00 lrl 65 013151 aa 6 00576 7561 00 stq pr6|382 p STATEMENT 1 ON LINE 2194 if (p < lbound (xlce.iti_params, 1)) | (p > hbound (xlce.iti_params, 1)) then do; 013152 aa 000001 1160 07 cmpq 1,dl 013153 aa 000003 6040 04 tmi 3,ic 013156 013154 aa 000022 1160 07 cmpq 18,dl 013155 aa 000010 6044 04 tmoz 8,ic 013165 STATEMENT 1 ON LINE 2195 write = "1"b; 013156 aa 400000 2350 03 lda 131072,du 013157 aa 6 00574 7551 00 sta pr6|380 write STATEMENT 1 ON LINE 2196 substr (l4_data (i), 2, 1) = "1"b; 013160 aa 6 01756 7271 00 lxl7 pr6|1006 013161 aa 403 117 060 400 csl (),(pr,x7),fill(1),bool(move) 013162 aa 000000 00 0000 descb 0,0 013163 aa 7 77777 61 0001 descb pr7|-1(28),1 l4_data STATEMENT 1 ON LINE 2197 end; 013164 aa 000017 7100 04 tra 15,ic 013203 STATEMENT 1 ON LINE 2198 else xlce.iti_params (p) = binary (l4_data (i + 1), 8); 013165 aa 000011 4020 07 mpy 9,dl 013166 aa 6 01756 7271 00 lxl7 pr6|1006 013167 aa 003 100 060 517 csl (pr,x7),(pr),fill(0),bool(move) 013170 aa 7 00000 00 0011 descb pr7|0,9 l4_data 013171 aa 6 00056 00 0044 descb pr6|46,36 013172 aa 6 00056 2351 00 lda pr6|46 013173 aa 000000 6260 06 eax6 0,ql 013174 aa 000077 7730 00 lrl 63 013175 aa 000077 7370 00 lls 63 013176 aa 6 00056 7551 00 sta pr6|46 013177 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 013200 aa 003 116 060 500 csl (pr),(pr,x6),fill(0),bool(move) 013201 aa 6 00056 00 0011 descb pr6|46,9 013202 aa 5 00031 60 0011 descb pr5|25(27),9 xlce.iti_params STATEMENT 1 ON LINE 2199 end; 013203 aa 000002 2360 07 ldq 2,dl 013204 aa 6 00575 0561 00 asq pr6|381 i 013205 aa 777731 7100 04 tra -39,ic 013136 STATEMENT 1 ON LINE 2200 if xsce.flags.need_ftd then do; 013206 aa 6 00172 3735 20 epp7 pr6|122,* xscep 013207 aa 7 00013 2351 00 lda pr7|11 xsce.need_ftd 013210 aa 040000 3150 03 cana 16384,du 013211 aa 000021 6000 04 tze 17,ic 013232 STATEMENT 1 ON LINE 2201 call channel_manager$interrupt (xsce.devx, LINE_STATUS, ""b); 013212 aa 764772 2370 04 ldaq -5638,ic 000204 = 000000000000 000000000000 013213 aa 6 01760 7571 00 staq pr6|1008 013214 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 013215 aa 6 01764 2521 00 spri2 pr6|1012 013216 aa 764746 3520 04 epp2 -5658,ic 000164 = 000000000011 013217 aa 6 01766 2521 00 spri2 pr6|1014 013220 aa 6 01760 3521 00 epp2 pr6|1008 013221 aa 6 01770 2521 00 spri2 pr6|1016 013222 aa 6 01762 6211 00 eax1 pr6|1010 013223 aa 014000 4310 07 fld 6144,dl 013224 aa 6 00044 3701 20 epp4 pr6|36,* 013225 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 013226 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 2202 xsce.flags.need_ftd = "0"b; 013227 aa 001546 2350 04 lda 870,ic 014775 = 737777777777 013230 aa 6 00172 3735 20 epp7 pr6|122,* xscep 013231 aa 7 00013 3551 00 ansa pr7|11 xsce.need_ftd STATEMENT 1 ON LINE 2203 end; STATEMENT 1 ON LINE 2204 end; STATEMENT 1 ON LINE 2206 if write then do; 013232 aa 6 00574 2351 00 lda pr6|380 write 013233 aa 000214 6000 04 tze 140,ic 013447 STATEMENT 1 ON LINE 2210 if protocol_mpx then do; 013234 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 013235 aa 400000 3150 03 cana 131072,du 013236 aa 000115 6000 04 tze 77,ic 013353 STATEMENT 1 ON LINE 2211 if buffer.tally < hdr_size + L2_HEADER_PAD + 2 then do; 013237 aa 6 00131 2361 00 ldq pr6|89 hdr_size 013240 aa 000004 0760 07 adq 4,dl 013241 aa 6 01757 7561 00 stq pr6|1007 013242 aa 6 00262 2361 20 ldq pr6|178,* buffer.tally 013243 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 013244 aa 6 01757 1161 00 cmpq pr6|1007 013245 aa 000106 6050 04 tpl 70,ic 013353 STATEMENT 1 ON LINE 2212 call free_in_pkt; 013246 aa 775600 6700 04 tsp4 -1152,ic 011046 STATEMENT 1 ON LINE 2213 call get_buffer (16); 013247 aa 000020 2360 07 ldq 16,dl 013250 aa 6 01757 7561 00 stq pr6|1007 013251 aa 001125 3520 04 epp2 597,ic 014376 = 000002000000 013252 aa 775674 6700 04 tsp4 -1092,ic 011146 STATEMENT 1 ON LINE 2214 call make_header (lcx, "1"b); 013253 aa 400000 2350 03 lda 131072,du 013254 aa 6 01757 7551 00 sta pr6|1007 013255 aa 001113 3520 04 epp2 587,ic 014370 = 000004000000 013256 aa 776055 6700 04 tsp4 -979,ic 011333 STATEMENT 1 ON LINE 2215 l4_data (1) = "000"b3; 013257 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 013260 aa 003 100 060 400 csl (),(pr),fill(0),bool(move) 013261 aa 000000 00 0000 descb 0,0 013262 aa 7 00000 00 0011 descb pr7|0,9 l4_data STATEMENT 1 ON LINE 2216 do i = 1 to lbound (xlce.iti_params, 1) - 1; 013263 aa 000000 2360 07 ldq 0,dl 013264 aa 6 00600 7561 00 stq pr6|384 013265 aa 000001 2360 07 ldq 1,dl 013266 aa 6 00575 7561 00 stq pr6|381 i 013267 aa 000000 0110 03 nop 0,du 013270 aa 6 00575 2361 00 ldq pr6|381 i 013271 aa 6 00600 1161 00 cmpq pr6|384 013272 aa 000014 6054 04 tpnz 12,ic 013306 STATEMENT 1 ON LINE 2218 l4_data (2 * i) = substr (unspec (i), 27, 9); 013273 aa 000001 7360 00 qls 1 013274 aa 000011 4020 07 mpy 9,dl 013275 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 013276 aa 003 106 060 500 csl (pr),(pr,ql),fill(0),bool(move) 013277 aa 6 00575 50 0011 descb pr6|381(26),9 013300 aa 7 77777 60 0011 descb pr7|-1(27),9 l4_data STATEMENT 1 ON LINE 2219 l4_data (2 * i + 1) = "000"b3; 013301 aa 003 106 060 400 csl (),(pr,ql),fill(0),bool(move) 013302 aa 000000 00 0000 descb 0,0 013303 aa 7 00000 00 0011 descb pr7|0,9 l4_data STATEMENT 1 ON LINE 2220 end; 013304 aa 6 00575 0541 00 aos pr6|381 i 013305 aa 777763 7100 04 tra -13,ic 013270 STATEMENT 1 ON LINE 2221 do i = lbound (xlce.iti_params, 1) to hbound (xlce.iti_params, 1); 013306 aa 000001 2360 07 ldq 1,dl 013307 aa 6 00575 7561 00 stq pr6|381 i 013310 aa 6 00575 2361 00 ldq pr6|381 i 013311 aa 000022 1160 07 cmpq 18,dl 013312 aa 000027 6054 04 tpnz 23,ic 013341 STATEMENT 1 ON LINE 2222 l4_data (2 * i) = substr (unspec (i), 27, 9); 013313 aa 000001 7360 00 qls 1 013314 aa 000011 4020 07 mpy 9,dl 013315 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 013316 aa 003 106 060 500 csl (pr),(pr,ql),fill(0),bool(move) 013317 aa 6 00575 50 0011 descb pr6|381(26),9 013320 aa 7 77777 60 0011 descb pr7|-1(27),9 l4_data STATEMENT 1 ON LINE 2223 l4_data (2 * i + 1) = bit (xlce.iti_params (i)); 013321 aa 000000 6270 06 eax7 0,ql 013322 aa 6 00575 2361 00 ldq pr6|381 i 013323 aa 000011 4020 07 mpy 9,dl 013324 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 013325 aa 003 100 060 506 csl (pr,ql),(pr),fill(0),bool(move) 013326 aa 5 00031 60 0011 descb pr5|25(27),9 xlce.iti_params 013327 aa 6 00056 00 0044 descb pr6|46,36 013330 aa 6 00056 2351 00 lda pr6|46 013331 aa 000077 7730 00 lrl 63 013332 aa 000077 7370 00 lls 63 013333 aa 6 00056 7551 00 sta pr6|46 013334 aa 003 117 060 500 csl (pr),(pr,x7),fill(0),bool(move) 013335 aa 6 00056 00 0011 descb pr6|46,9 013336 aa 7 00000 00 0011 descb pr7|0,9 l4_data STATEMENT 1 ON LINE 2224 end; 013337 aa 6 00575 0541 00 aos pr6|381 i 013340 aa 777750 7100 04 tra -24,ic 013310 STATEMENT 1 ON LINE 2225 buffer.tally = hdr_size + L2_HEADER_PAD + 2 * hbound (xlce.iti_params, 1) + 1; 013341 aa 000044 2360 07 ldq 36,dl 013342 aa 6 01757 7561 00 stq pr6|1007 013343 aa 6 00131 2361 00 ldq pr6|89 hdr_size 013344 aa 000002 0760 07 adq 2,dl 013345 aa 6 01757 0761 00 adq pr6|1007 013346 aa 000001 0760 07 adq 1,dl 013347 aa 6 00262 3735 20 epp7 pr6|178,* buffer.tally 013350 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 2226 call write_data_pkt; 013351 aa 000304 6700 04 tsp4 196,ic 013655 STATEMENT 1 ON LINE 2227 return; 013352 aa 6 00566 6101 00 rtcd pr6|374 STATEMENT 1 ON LINE 2228 end; STATEMENT 1 ON LINE 2229 end; STATEMENT 1 ON LINE 2230 l4_data (1) = "000"b3; 013353 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 013354 aa 003 100 060 400 csl (),(pr),fill(0),bool(move) 013355 aa 000000 00 0000 descb 0,0 013356 aa 7 00000 00 0011 descb pr7|0,9 l4_data STATEMENT 1 ON LINE 2231 do i = 2 by 2 to buffer.tally - hdr_size - L2_HEADER_PAD; 013357 aa 6 00262 2361 20 ldq pr6|178,* buffer.tally 013360 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 013361 aa 6 00131 1761 00 sbq pr6|89 hdr_size 013362 aa 000002 1760 07 sbq 2,dl 013363 aa 6 00601 7561 00 stq pr6|385 013364 aa 000002 2360 07 ldq 2,dl 013365 aa 6 00575 7561 00 stq pr6|381 i 013366 aa 6 00575 2361 00 ldq pr6|381 i 013367 aa 6 00601 1161 00 cmpq pr6|385 013370 aa 000036 6054 04 tpnz 30,ic 013426 STATEMENT 1 ON LINE 2232 p = binary (substr (l4_data (i), 3, 7), 7); 013371 aa 000011 4020 07 mpy 9,dl 013372 aa 6 00164 3735 20 epp7 pr6|116,* l4_data_ptr 013373 aa 003 100 060 506 csl (pr,ql),(pr),fill(0),bool(move) 013374 aa 7 77777 62 0007 descb pr7|-1(29),7 l4_data 013375 aa 6 00056 00 0044 descb pr6|46,36 013376 aa 6 00056 2351 00 lda pr6|46 013377 aa 6 01757 7561 00 stq pr6|1007 013400 aa 000101 7730 00 lrl 65 013401 aa 6 00576 7561 00 stq pr6|382 p STATEMENT 1 ON LINE 2233 if (p >= lbound (xlce.iti_params, 1)) & (p <= hbound (xlce.iti_params, 1)) then l4_data (i + 1) = bit (xlce.iti_params (p)); 013402 aa 000001 1160 07 cmpq 1,dl 013403 aa 000020 6040 04 tmi 16,ic 013423 013404 aa 000022 1160 07 cmpq 18,dl 013405 aa 000016 6054 04 tpnz 14,ic 013423 013406 aa 000011 4020 07 mpy 9,dl 013407 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 013410 aa 003 100 060 506 csl (pr,ql),(pr),fill(0),bool(move) 013411 aa 5 00031 60 0011 descb pr5|25(27),9 xlce.iti_params 013412 aa 6 00056 00 0044 descb pr6|46,36 013413 aa 6 00056 2351 00 lda pr6|46 013414 aa 000077 7730 00 lrl 63 013415 aa 000077 7370 00 lls 63 013416 aa 6 00056 7551 00 sta pr6|46 013417 aa 6 01757 7271 00 lxl7 pr6|1007 013420 aa 003 117 060 500 csl (pr),(pr,x7),fill(0),bool(move) 013421 aa 6 00056 00 0011 descb pr6|46,9 013422 aa 7 00000 00 0011 descb pr7|0,9 l4_data STATEMENT 1 ON LINE 2235 end; 013423 aa 000002 2360 07 ldq 2,dl 013424 aa 6 00575 0561 00 asq pr6|381 i 013425 aa 777741 7100 04 tra -31,ic 013366 STATEMENT 1 ON LINE 2236 call tty_space_man$switch_chain (x25_data.devx, x25_data.devx, INPUT, OUTPUT, chain_ptr); 013426 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 013427 aa 7 00010 3521 00 epp2 pr7|8 x25_data.devx 013430 aa 6 01774 2521 00 spri2 pr6|1020 013431 aa 7 00010 3521 00 epp2 pr7|8 x25_data.devx 013432 aa 6 01776 2521 00 spri2 pr6|1022 013433 aa 764427 3520 04 epp2 -5865,ic 000062 = 000000000000 013434 aa 6 02000 2521 00 spri2 pr6|1024 013435 aa 764511 3520 04 epp2 -5815,ic 000146 = 400000000000 013436 aa 6 02002 2521 00 spri2 pr6|1026 013437 aa 6 00104 3521 00 epp2 pr6|68 chain_ptr 013440 aa 6 02004 2521 00 spri2 pr6|1028 013441 aa 6 01772 6211 00 eax1 pr6|1018 013442 aa 024000 4310 07 fld 10240,dl 013443 aa 6 00044 3701 20 epp4 pr6|36,* 013444 la 4 00106 3521 20 epp2 pr4|70,* tty_space_man$switch_chain 013445 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 2237 call write_data_pkt; 013446 aa 000207 6700 04 tsp4 135,ic 013655 STATEMENT 1 ON LINE 2238 end; STATEMENT 1 ON LINE 2239 return; 013447 aa 6 00566 6101 00 rtcd pr6|374 STATEMENT 1 ON LINE 2240 end set_x29; END PROCEDURE set_x29 BEGIN PROCEDURE setup_subchan ENTRY TO setup_subchan STATEMENT 1 ON LINE 2244 setup_subchan: procedure; 013450 aa 6 00602 6501 00 spri4 pr6|386 STATEMENT 1 ON LINE 2247 x25_data_ptr = X25_data_ptr; 013451 aa 6 00032 3735 20 epp7 pr6|26,* 013452 aa 7 00002 3715 20 epp5 pr7|2,* X25_data_ptr 013453 aa 5 00000 3715 20 epp5 pr5|0,* X25_data_ptr 013454 aa 6 00166 6515 00 spri5 pr6|118 x25_data_ptr STATEMENT 1 ON LINE 2248 scx = X25_scx; 013455 aa 7 00004 2361 20 ldq pr7|4,* X25_scx 013456 aa 6 00120 7561 00 stq pr6|80 scx STATEMENT 1 ON LINE 2249 xscep = addr (x25_data.sc (scx)); 013457 aa 000026 4020 07 mpy 22,dl 013460 aa 5 00024 3535 06 epp3 pr5|20,ql x25_data.sc 013461 aa 6 00172 2535 00 spri3 pr6|122 xscep STATEMENT 1 ON LINE 2250 lcx = xsce.lcx; 013462 aa 3 00011 2361 00 ldq pr3|9 xsce.lcx 013463 aa 6 00117 7561 00 stq pr6|79 lcx STATEMENT 1 ON LINE 2251 if lcx = 0 then xlcep = null (); 013464 aa 000004 6010 04 tnz 4,ic 013470 013465 aa 764527 2370 04 ldaq -5801,ic 000214 = 077777000043 000001000000 013466 aa 6 00170 7571 00 staq pr6|120 xlcep 013467 aa 000005 7100 04 tra 5,ic 013474 STATEMENT 1 ON LINE 2253 else xlcep = addr (x25_lces.lc (xsce.lcx)); 013470 aa 000005 7360 00 qls 5 013471 aa 5 00032 3515 20 epp1 pr5|26,* x25_data.lc_ptr 013472 aa 1 77740 3535 06 epp3 pr1|-32,ql x25_lces.lc 013473 aa 6 00170 2535 00 spri3 pr6|120 xlcep STATEMENT 1 ON LINE 2254 return; 013474 aa 6 00602 6101 00 rtcd pr6|386 STATEMENT 1 ON LINE 2255 end setup_subchan; END PROCEDURE setup_subchan BEGIN PROCEDURE signal_dialup ENTRY TO signal_dialup STATEMENT 1 ON LINE 2259 signal_dialup: procedure; 013475 aa 6 00610 6501 00 spri4 pr6|392 STATEMENT 1 ON LINE 2262 dialup_info = x25_data.dialup_info; 013476 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 013477 aa 7 00030 2371 00 ldaq pr7|24 x25_data.dialup_info 013500 aa 6 00174 7571 00 staq pr6|124 dialup_info STATEMENT 1 ON LINE 2263 dialup_info.line_type = LINE_ASCII; 013501 aa 001000 2350 03 lda 512,du 013502 aa 6 00174 5511 40 stba pr6|124,40 dialup_info.line_type STATEMENT 1 ON LINE 2264 dialup_info.baud_rate = xlce.baud_rate; 013503 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 013504 aa 5 00004 2361 00 ldq pr5|4 xlce.baud_rate 013505 aa 6 00174 5521 14 stbq pr6|124,14 dialup_info.baud_rate STATEMENT 1 ON LINE 2265 if x25_data.seq_mod = 8 then dialup_info.buffer_pad = dialup_info.buffer_pad + 3 + L2_HEADER_PAD; 013506 aa 7 00016 2361 00 ldq pr7|14 x25_data.seq_mod 013507 aa 000010 1160 07 cmpq 8,dl 013510 aa 000010 6010 04 tnz 8,ic 013520 013511 aa 6 00174 2351 00 lda pr6|124 dialup_info.buffer_pad 013512 aa 000011 7350 00 als 9 013513 aa 000077 7730 00 lrl 63 013514 aa 000005 0760 07 adq 5,dl 013515 aa 000066 7370 00 lls 54 013516 aa 6 00174 5511 20 stba pr6|124,20 dialup_info.buffer_pad 013517 aa 000007 7100 04 tra 7,ic 013526 STATEMENT 1 ON LINE 2268 else dialup_info.buffer_pad = dialup_info.buffer_pad + 4 + L2_HEADER_PAD; 013520 aa 6 00174 2351 00 lda pr6|124 dialup_info.buffer_pad 013521 aa 000011 7350 00 als 9 013522 aa 000077 7730 00 lrl 63 013523 aa 000006 0760 07 adq 6,dl 013524 aa 000066 7370 00 lls 54 013525 aa 6 00174 5511 20 stba pr6|124,20 dialup_info.buffer_pad STATEMENT 1 ON LINE 2270 dialup_info.max_buf_size = min (dialup_info.max_buf_size, divide (xlce.max_packet_size, 4, 9, 0)); 013526 aa 5 00002 2361 00 ldq pr5|2 xlce.max_packet_size 013527 aa 000004 5060 07 div 4,dl 013530 aa 6 02006 7561 00 stq pr6|1030 013531 aa 6 00175 2351 00 lda pr6|125 dialup_info.max_buf_size 013532 aa 000077 7730 00 lrl 63 013533 aa 6 02006 1161 00 cmpq pr6|1030 013534 aa 000002 6040 04 tmi 2,ic 013536 013535 aa 6 02006 2361 00 ldq pr6|1030 013536 aa 000077 7370 00 lls 63 013537 aa 6 00175 5511 40 stba pr6|125,40 dialup_info.max_buf_size STATEMENT 1 ON LINE 2271 call channel_manager$interrupt (xsce.devx, DIALUP, unspec (dialup_info)); 013540 aa 6 00174 2371 00 ldaq pr6|124 013541 aa 6 02010 7571 00 staq pr6|1032 013542 aa 6 00172 3535 20 epp3 pr6|122,* xscep 013543 aa 3 00010 3521 00 epp2 pr3|8 xsce.devx 013544 aa 6 02014 2521 00 spri2 pr6|1036 013545 aa 764406 3520 04 epp2 -5882,ic 000153 = 000000000001 013546 aa 6 02016 2521 00 spri2 pr6|1038 013547 aa 6 02010 3521 00 epp2 pr6|1032 013550 aa 6 02020 2521 00 spri2 pr6|1040 013551 aa 6 02012 6211 00 eax1 pr6|1034 013552 aa 014000 4310 07 fld 6144,dl 013553 aa 6 00044 3701 20 epp4 pr6|36,* 013554 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 013555 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 2272 xsce.state = SC_DIALED; 013556 aa 000003 2360 07 ldq 3,dl 013557 aa 6 00172 3735 20 epp7 pr6|122,* xscep 013560 aa 7 00012 7561 00 stq pr7|10 xsce.state STATEMENT 1 ON LINE 2273 xlce.state = FLOW_CONTROL_READY; 013561 aa 000003 2360 07 ldq 3,dl 013562 aa 6 00170 7561 20 stq pr6|120,* xlce.state STATEMENT 1 ON LINE 2274 call reset_timer; 013563 aa 776103 6700 04 tsp4 -957,ic 011666 STATEMENT 1 ON LINE 2275 xsce.flags.output_ready = "1"b; 013564 aa 400000 2350 03 lda 131072,du 013565 aa 6 00172 3735 20 epp7 pr6|122,* xscep 013566 aa 7 00013 2551 00 orsa pr7|11 xsce.output_ready STATEMENT 1 ON LINE 2276 call channel_manager$interrupt (xsce.devx, SEND_OUTPUT, ""b); 013567 aa 764415 2370 04 ldaq -5875,ic 000204 = 000000000000 000000000000 013570 aa 6 02010 7571 00 staq pr6|1032 013571 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 013572 aa 6 02014 2521 00 spri2 pr6|1036 013573 aa 764365 3520 04 epp2 -5899,ic 000160 = 000000000004 013574 aa 6 02016 2521 00 spri2 pr6|1038 013575 aa 6 02010 3521 00 epp2 pr6|1032 013576 aa 6 02020 2521 00 spri2 pr6|1040 013577 aa 6 02012 6211 00 eax1 pr6|1034 013600 aa 014000 4310 07 fld 6144,dl 013601 aa 6 00044 3701 20 epp4 pr6|36,* 013602 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 013603 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 2277 return; 013604 aa 6 00610 6101 00 rtcd pr6|392 STATEMENT 1 ON LINE 2278 end signal_dialup; END PROCEDURE signal_dialup BEGIN PROCEDURE solicit_output ENTRY TO solicit_output STATEMENT 1 ON LINE 2282 solicit_output: procedure; 013605 aa 6 00616 6501 00 spri4 pr6|398 STATEMENT 1 ON LINE 2285 if ^xsce.flags.output_ready & ^xsce.flags.end_of_page & ^xlce.flags.iti_break & (xsce.write_head = null ()) then do; 013606 aa 6 00172 3735 20 epp7 pr6|122,* xscep 013607 aa 7 00013 2351 00 lda pr7|11 xsce.end_of_page 013610 aa 600000 3150 03 cana 196608,du 013611 aa 000030 6010 04 tnz 24,ic 013641 013612 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 013613 aa 5 00005 2351 00 lda pr5|5 xlce.iti_break 013614 aa 040000 3150 03 cana 16384,du 013615 aa 000024 6010 04 tnz 20,ic 013641 013616 aa 7 00020 2371 00 ldaq pr7|16 xsce.write_head 013617 aa 764375 6770 04 eraq -5891,ic 000214 = 077777000043 000001000000 013620 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 013621 aa 000020 6010 04 tnz 16,ic 013641 STATEMENT 1 ON LINE 2287 xsce.flags.output_ready = "1"b; 013622 aa 400000 2350 03 lda 131072,du 013623 aa 7 00013 2551 00 orsa pr7|11 xsce.output_ready STATEMENT 1 ON LINE 2288 call channel_manager$interrupt (xsce.devx, SEND_OUTPUT, ""b); 013624 aa 764360 2370 04 ldaq -5904,ic 000204 = 000000000000 000000000000 013625 aa 6 02022 7571 00 staq pr6|1042 013626 aa 7 00010 3521 00 epp2 pr7|8 xsce.devx 013627 aa 6 02026 2521 00 spri2 pr6|1046 013630 aa 764330 3520 04 epp2 -5928,ic 000160 = 000000000004 013631 aa 6 02030 2521 00 spri2 pr6|1048 013632 aa 6 02022 3521 00 epp2 pr6|1042 013633 aa 6 02032 2521 00 spri2 pr6|1050 013634 aa 6 02024 6211 00 eax1 pr6|1044 013635 aa 014000 4310 07 fld 6144,dl 013636 aa 6 00044 3701 20 epp4 pr6|36,* 013637 la 4 00070 3521 20 epp2 pr4|56,* channel_manager$interrupt 013640 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 2289 end; STATEMENT 1 ON LINE 2290 return; 013641 aa 6 00616 6101 00 rtcd pr6|398 STATEMENT 1 ON LINE 2291 end solicit_output; END PROCEDURE solicit_output BEGIN PROCEDURE state_change ENTRY TO state_change STATEMENT 1 ON LINE 2295 state_change: procedure (State); 013642 aa 6 00624 6501 00 spri4 pr6|404 013643 aa 6 00626 2521 00 spri2 pr6|406 STATEMENT 1 ON LINE 2300 xlce.state = State; 013644 aa 2 00002 2361 20 ldq pr2|2,* State 013645 aa 6 00170 7561 20 stq pr6|120,* xlce.state STATEMENT 1 ON LINE 2301 xlce.state_time = clock (); 013646 aa 0 01435 7001 00 tsx0 pr0|797 clock_mac 013647 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 013650 aa 7 00012 7571 00 staq pr7|10 xlce.state_time STATEMENT 1 ON LINE 2302 call reset_timer; 013651 aa 776015 6700 04 tsp4 -1011,ic 011666 STATEMENT 1 ON LINE 2303 call set_timer (T20); 013652 aa 000512 3520 04 epp2 330,ic 014364 = 000002000000 013653 aa 777204 6700 04 tsp4 -380,ic 013057 STATEMENT 1 ON LINE 2304 return; 013654 aa 6 00624 6101 00 rtcd pr6|404 STATEMENT 1 ON LINE 2305 end state_change; END PROCEDURE state_change BEGIN PROCEDURE write_data_pkt ENTRY TO write_data_pkt STATEMENT 1 ON LINE 2309 write_data_pkt: procedure; 013655 aa 6 00632 6501 00 spri4 pr6|410 STATEMENT 1 ON LINE 2312 endp -> buffer.flags.break = "1"b; 013656 aa 100000 2350 07 lda 32768,dl 013657 aa 6 00100 2551 20 orsa pr6|64,* buffer.break STATEMENT 1 ON LINE 2314 if xsce.write_head = null () then do; 013660 aa 6 00172 3735 20 epp7 pr6|122,* xscep 013661 aa 7 00020 2371 00 ldaq pr7|16 xsce.write_head 013662 aa 764332 6770 04 eraq -5926,ic 000214 = 077777000043 000001000000 013663 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 013664 aa 000013 6010 04 tnz 11,ic 013677 STATEMENT 1 ON LINE 2315 xsce.write_head = blockp; 013665 aa 6 00262 3715 20 epp5 pr6|178,* blockp 013666 aa 7 00020 6515 00 spri5 pr7|16 xsce.write_head STATEMENT 1 ON LINE 2316 xsce.write_tail = endp; 013667 aa 6 00100 3715 20 epp5 pr6|64,* endp 013670 aa 7 00022 6515 00 spri5 pr7|18 xsce.write_tail STATEMENT 1 ON LINE 2317 blockp, endp = null (); 013671 aa 764323 3534 24 epp3 -5933,ic* 013672 aa 6 00262 2535 00 spri3 pr6|178 blockp 013673 aa 6 00100 2535 00 spri3 pr6|64 endp STATEMENT 1 ON LINE 2318 call send_data_packets; 013674 aa 776331 6700 04 tsp4 -807,ic 012225 STATEMENT 1 ON LINE 2319 call send_output; 013675 aa 776561 6700 04 tsp4 -655,ic 012456 STATEMENT 1 ON LINE 2320 end; 013676 aa 000013 7100 04 tra 11,ic 013711 STATEMENT 1 ON LINE 2321 else do; STATEMENT 1 ON LINE 2322 xsce.write_tail -> buffer.next = binary (rel (blockp), 18); 013677 aa 6 00262 6351 20 eaa pr6|178,* blockp 013700 aa 000066 7730 00 lrl 54 013701 aa 000066 7370 00 lls 54 013702 aa 7 00022 3715 20 epp5 pr7|18,* buffer.next 013703 aa 5 00000 5511 60 stba pr5|0,60 buffer.next STATEMENT 1 ON LINE 2323 xsce.write_tail = endp; 013704 aa 6 00100 3535 20 epp3 pr6|64,* endp 013705 aa 7 00022 2535 00 spri3 pr7|18 xsce.write_tail STATEMENT 1 ON LINE 2324 blockp, endp = null (); 013706 aa 764306 3514 24 epp1 -5946,ic* 013707 aa 6 00262 2515 00 spri1 pr6|178 blockp 013710 aa 6 00100 2515 00 spri1 pr6|64 endp STATEMENT 1 ON LINE 2325 end; STATEMENT 1 ON LINE 2326 return; 013711 aa 6 00632 6101 00 rtcd pr6|410 STATEMENT 1 ON LINE 2327 end write_data_pkt; END PROCEDURE write_data_pkt BEGIN PROCEDURE write_pkt ENTRY TO write_pkt STATEMENT 1 ON LINE 2331 write_pkt: procedure; 013712 aa 6 00640 6501 00 spri4 pr6|416 STATEMENT 1 ON LINE 2334 endp -> buffer.flags.break = "1"b; 013713 aa 100000 2350 07 lda 32768,dl 013714 aa 6 00100 2551 20 orsa pr6|64,* buffer.break STATEMENT 1 ON LINE 2335 unspec (substr (endp -> buffer.chars (endp -> buffer.tally - 1), 1)) = unspec (substr (endp -> buffer.chars (endp -> buffer.tally - 1), 1)) | "400"b3; 013715 aa 6 00100 2361 20 ldq pr6|64,* buffer.tally 013716 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 013717 aa 000011 4020 07 mpy 9,dl 013720 aa 6 00100 3735 20 epp7 pr6|64,* endp 013721 aa 003 100 060 506 csl (pr,ql),(pr),fill(0),bool(move) 013722 aa 7 00000 60 0011 descb pr7|0(27),9 013723 aa 6 00056 00 0044 descb pr6|46,36 013724 aa 6 00056 2351 00 lda pr6|46 013725 aa 400000 2750 03 ora 131072,du 013726 aa 6 00056 7551 00 sta pr6|46 013727 aa 003 106 060 500 csl (pr),(pr,ql),fill(0),bool(move) 013730 aa 6 00056 00 0011 descb pr6|46,9 013731 aa 7 00000 60 0011 descb pr7|0(27),9 STATEMENT 1 ON LINE 2338 if protocol_mpx then if x25_data.packet_trace_sw then call log_packet ("1"b); 013732 aa 6 00156 2351 00 lda pr6|110 protocol_mpx 013733 aa 400000 3150 03 cana 131072,du 013734 aa 000011 6000 04 tze 9,ic 013745 013735 aa 6 00166 3715 20 epp5 pr6|118,* x25_data_ptr 013736 aa 5 00015 2351 00 lda pr5|13 x25_data.packet_trace_sw 013737 aa 010000 3150 03 cana 4096,du 013740 aa 000005 6000 04 tze 5,ic 013745 013741 aa 400000 2350 03 lda 131072,du 013742 aa 6 02036 7551 00 sta pr6|1054 013743 aa 000415 3520 04 epp2 269,ic 014360 = 000002000000 013744 aa 000065 6700 04 tsp4 53,ic 014031 STATEMENT 1 ON LINE 2341 if x25_data.write_head = null () then x25_data.write_head = blockp; 013745 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 013746 aa 7 00034 2371 00 ldaq pr7|28 x25_data.write_head 013747 aa 764245 6770 04 eraq -5979,ic 000214 = 077777000043 000001000000 013750 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 013751 aa 000004 6010 04 tnz 4,ic 013755 013752 aa 6 00262 3715 20 epp5 pr6|178,* blockp 013753 aa 7 00034 6515 00 spri5 pr7|28 x25_data.write_head 013754 aa 000006 7100 04 tra 6,ic 013762 STATEMENT 1 ON LINE 2343 else x25_data.write_tail -> buffer.next = binary (rel (blockp), 18); 013755 aa 6 00262 6351 20 eaa pr6|178,* blockp 013756 aa 000066 7730 00 lrl 54 013757 aa 000066 7370 00 lls 54 013760 aa 7 00036 3715 20 epp5 pr7|30,* buffer.next 013761 aa 5 00000 5511 60 stba pr5|0,60 buffer.next STATEMENT 1 ON LINE 2344 x25_data.write_tail = endp; 013762 aa 6 00100 3715 20 epp5 pr6|64,* endp 013763 aa 7 00036 6515 00 spri5 pr7|30 x25_data.write_tail STATEMENT 1 ON LINE 2345 blockp, endp = null (); 013764 aa 764230 3534 24 epp3 -5992,ic* 013765 aa 6 00262 2535 00 spri3 pr6|178 blockp 013766 aa 6 00100 2535 00 spri3 pr6|64 endp STATEMENT 1 ON LINE 2346 return; 013767 aa 6 00640 6101 00 rtcd pr6|416 STATEMENT 1 ON LINE 2347 end write_pkt; END PROCEDURE write_pkt BEGIN PROCEDURE x25_hangup ENTRY TO x25_hangup STATEMENT 1 ON LINE 2351 x25_hangup: procedure; 013770 aa 6 00646 6501 00 spri4 pr6|422 STATEMENT 1 ON LINE 2356 call mcs_timer$reset_all (x25_data.devx); 013771 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 013772 aa 7 00010 3521 00 epp2 pr7|8 x25_data.devx 013773 aa 6 02044 2521 00 spri2 pr6|1060 013774 aa 6 02042 6211 00 eax1 pr6|1058 013775 aa 004000 4310 07 fld 2048,dl 013776 aa 6 00044 3701 20 epp4 pr6|36,* 013777 la 4 00076 3521 20 epp2 pr4|62,* mcs_timer$reset_all 014000 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 2357 call free_x25_data_chain (); 014001 aa 775117 6700 04 tsp4 -1457,ic 011120 STATEMENT 1 ON LINE 2359 if x25_data.lc_ptr ^= null () then do; 014002 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 014003 aa 7 00032 2371 00 ldaq pr7|26 x25_data.lc_ptr 014004 aa 764210 6770 04 eraq -6008,ic 000214 = 077777000043 000001000000 014005 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 014006 aa 000020 6000 04 tze 16,ic 014026 STATEMENT 1 ON LINE 2360 call tty_space_man$free_space (size (x25_lces), x25_data.lc_ptr); 014007 aa 7 00012 2361 00 ldq pr7|10 x25_data.n_lc 014010 aa 000005 7360 00 qls 5 014011 aa 6 02046 7561 00 stq pr6|1062 014012 aa 6 02046 3521 00 epp2 pr6|1062 014013 aa 6 02052 2521 00 spri2 pr6|1066 014014 aa 7 00032 3521 00 epp2 pr7|26 x25_data.lc_ptr 014015 aa 6 02054 2521 00 spri2 pr6|1068 014016 aa 6 02050 6211 00 eax1 pr6|1064 014017 aa 010000 4310 07 fld 4096,dl 014020 aa 6 00044 3701 20 epp4 pr6|36,* 014021 la 4 00100 3521 20 epp2 pr4|64,* tty_space_man$free_space 014022 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 2361 x25_data.lc_ptr = null (); 014023 aa 764171 2370 04 ldaq -6023,ic 000214 = 077777000043 000001000000 014024 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 014025 aa 7 00032 7571 00 staq pr7|26 x25_data.lc_ptr STATEMENT 1 ON LINE 2362 end; STATEMENT 1 ON LINE 2363 x25_data.state = X25_HUNGUP; 014026 aa 000000 2360 07 ldq 0,dl 014027 aa 7 00011 7561 00 stq pr7|9 x25_data.state STATEMENT 1 ON LINE 2364 return; 014030 aa 6 00646 6101 00 rtcd pr6|422 STATEMENT 1 ON LINE 2365 end x25_hangup; END PROCEDURE x25_hangup BEGIN PROCEDURE log_packet ENTRY TO log_packet STATEMENT 1 ON LINE 2367 log_packet: procedure (Write_sw); 014031 aa 6 00654 6501 00 spri4 pr6|428 014032 aa 6 00656 2521 00 spri2 pr6|430 STATEMENT 1 ON LINE 2376 if substr (x25_pkt.type, 8, 1) = "0"b & ^x25_pkt.l3_header.q then n_octets = 5; 014033 aa 6 00262 3735 20 epp7 pr6|178,* blockp 014034 aa 7 00002 2351 00 lda pr7|2 x25_pkt.type 014035 aa 001000 3150 03 cana 512,du 014036 aa 000007 6010 04 tnz 7,ic 014045 014037 aa 7 00001 2351 00 lda pr7|1 x25_pkt.q 014040 aa 200000 3150 07 cana 65536,dl 014041 aa 000004 6010 04 tnz 4,ic 014045 014042 aa 000005 2360 07 ldq 5,dl 014043 aa 6 00662 7561 00 stq pr6|434 n_octets 014044 aa 000004 7100 04 tra 4,ic 014050 STATEMENT 1 ON LINE 2378 else n_octets = buffer.tally; 014045 aa 7 00000 2361 00 ldq pr7|0 buffer.tally 014046 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 014047 aa 6 00662 7561 00 stq pr6|434 n_octets STATEMENT 1 ON LINE 2379 call syserr (Log_message_or_discard, "x25_mpx(^a): Packet ^[out^;in^]:^v( ^.4b^)", x25_data.name, Write_sw, n_octets, log_buf.byte (*)); 014050 aa 764154 2360 04 ldq -6036,ic 000224 = 516100000010 014051 aa 6 02056 7561 00 stq pr6|1070 014052 aa 000001 2360 07 ldq 1,dl 014053 aa 6 02057 7561 00 stq pr6|1071 014054 aa 7 00000 2361 00 ldq pr7|0 buffer.tally 014055 aa 0 00416 3771 00 anaq pr0|270 = 000000000000 000000000777 014056 aa 6 02060 7561 00 stq pr6|1072 014057 aa 000011 2360 07 ldq 9,dl 014060 aa 6 02061 7561 00 stq pr6|1073 014061 aa 000 100 100 404 mlr (ic),(pr),fill(000) 014062 aa 764456 00 0054 desc9a -5842,44 000537 = 170062065137 014063 aa 6 02062 00 0054 desc9a pr6|1074,44 014064 aa 764063 3520 04 epp2 -6093,ic 000147 = 000000000005 014065 aa 6 02100 2521 00 spri2 pr6|1088 014066 aa 6 02062 3521 00 epp2 pr6|1074 014067 aa 6 02102 2521 00 spri2 pr6|1090 014070 aa 6 00166 3521 20 epp2 pr6|118,* x25_data.name 014071 aa 6 02104 2521 00 spri2 pr6|1092 014072 aa 6 00656 3715 20 epp5 pr6|430,* 014073 aa 5 00002 3521 20 epp2 pr5|2,* Write_sw 014074 aa 6 02106 2521 00 spri2 pr6|1094 014075 aa 6 00662 3521 00 epp2 pr6|434 n_octets 014076 aa 6 02110 2521 00 spri2 pr6|1096 014077 aa 000001 7270 07 lxl7 1,dl 014100 aa 7 00001 3521 00 epp2 pr7|1 log_buf.byte 014101 aa 2 00000 5035 17 abd pr2|0,7 014102 aa 6 02112 2521 00 spri2 pr6|1098 014103 aa 764053 3520 04 epp2 -6101,ic 000156 = 404000000021 014104 aa 6 02114 2521 00 spri2 pr6|1100 014105 aa 6 02124 2521 00 spri2 pr6|1108 014106 aa 764004 3520 04 epp2 -6140,ic 000112 = 524000000052 014107 aa 6 02116 2521 00 spri2 pr6|1102 014110 aa 764027 3520 04 epp2 -6121,ic 000137 = 524000000040 014111 aa 6 02120 2521 00 spri2 pr6|1104 014112 aa 764040 3520 04 epp2 -6112,ic 000152 = 516000000001 014113 aa 6 02122 2521 00 spri2 pr6|1106 014114 aa 6 02056 3521 00 epp2 pr6|1070 014115 aa 6 02126 2521 00 spri2 pr6|1110 014116 aa 6 02076 6211 00 eax1 pr6|1086 014117 aa 030000 4310 07 fld 12288,dl 014120 aa 6 00044 3701 20 epp4 pr6|36,* 014121 la 4 00056 3521 20 epp2 pr4|46,* syserr 014122 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 2381 return; 014123 aa 6 00654 6101 00 rtcd pr6|428 STATEMENT 1 ON LINE 2382 end log_packet; END PROCEDURE log_packet BEGIN PROCEDURE send_NCON_RESP ENTRY TO send_NCON_RESP STATEMENT 1 ON LINE 2384 send_NCON_RESP: proc; 014124 aa 6 00664 6501 00 spri4 pr6|436 STATEMENT 1 ON LINE 2386 call get_buffer (16); 014125 aa 000020 2360 07 ldq 16,dl 014126 aa 6 02130 7561 00 stq pr6|1112 014127 aa 000225 3520 04 epp2 149,ic 014354 = 000002000000 014130 aa 775016 6700 04 tsp4 -1522,ic 011146 STATEMENT 1 ON LINE 2387 call make_header (lcx, "0"b); 014131 aa 000000 2350 07 lda 0,dl 014132 aa 6 02130 7551 00 sta pr6|1112 014133 aa 000213 3520 04 epp2 139,ic 014346 = 000004000000 014134 aa 775177 6700 04 tsp4 -1409,ic 011333 STATEMENT 1 ON LINE 2388 x25_pkt.type = CALLAC; 014135 aa 017000 2350 03 lda 7680,du 014136 aa 6 00262 3735 20 epp7 pr6|178,* blockp 014137 aa 7 00002 6751 00 era pr7|2 x25_pkt.type 014140 aa 377000 3750 03 ana 130560,du 014141 aa 7 00002 6551 00 ersa pr7|2 x25_pkt.type STATEMENT 1 ON LINE 2389 buffer.tally = 3 + L2_HEADER_PAD; 014142 aa 000005 2360 07 ldq 5,dl 014143 aa 7 00000 5521 04 stbq pr7|0,04 buffer.tally STATEMENT 1 ON LINE 2390 call write_pkt; 014144 aa 777546 6700 04 tsp4 -154,ic 013712 STATEMENT 1 ON LINE 2391 call send_output; 014145 aa 776311 6700 04 tsp4 -823,ic 012456 STATEMENT 1 ON LINE 2393 end send_NCON_RESP; 014146 aa 6 00664 6101 00 rtcd pr6|436 END PROCEDURE send_NCON_RESP BEGIN PROCEDURE check_facilities ENTRY TO check_facilities STATEMENT 1 ON LINE 2395 check_facilities: proc; 014147 aa 6 00672 6501 00 spri4 pr6|442 STATEMENT 1 ON LINE 2407 xlce.flags.collect_call = "0"b; 014150 aa 000174 2350 04 lda 124,ic 014344 = 775777777777 014151 aa 6 00170 3735 20 epp7 pr6|120,* xlcep 014152 aa 7 00005 3551 00 ansa pr7|5 xlce.collect_call STATEMENT 1 ON LINE 2408 i = 1; 014153 aa 000001 2360 07 ldq 1,dl 014154 aa 6 00700 7561 00 stq pr6|448 i STATEMENT 1 ON LINE 2409 do while (i <= facility_length); 014155 aa 000000 0110 03 nop 0,du 014156 aa 6 00700 2361 00 ldq pr6|448 i 014157 aa 6 00114 1161 00 cmpq pr6|76 facility_length 014160 aa 000070 6054 04 tpnz 56,ic 014250 STATEMENT 1 ON LINE 2410 if facilities.code (i) = 1 then /* code taxation on demand (request) */ if facilities.code (i + 1) = 1 then xlce.flags.collect_call = "1"b; 014161 aa 6 00112 7271 00 lxl7 pr6|74 facility_disp 014162 aa 000001 6270 17 eax7 1,7 014163 aa 6 00262 3735 20 epp7 pr6|178,* blockp 014164 aa 7 00002 3735 00 epp7 pr7|2 l3_facilities 014165 aa 7 00000 5005 17 a9bd pr7|0,7 014166 aa 000011 4020 07 mpy 9,dl 014167 aa 6 02131 7561 00 stq pr6|1113 014170 aa 003 100 060 506 csl (pr,ql),(pr),fill(0),bool(move) 014171 aa 7 77777 63 0006 descb pr7|-1(30),6 facilities.code 014172 aa 6 00056 00 0044 descb pr6|46,36 014173 aa 6 00056 2351 00 lda pr6|46 014174 aa 000102 7730 00 lrl 66 014175 aa 000001 1160 07 cmpq 1,dl 014176 aa 000016 6010 04 tnz 14,ic 014214 014177 aa 6 00700 2361 00 ldq pr6|448 i 014200 aa 000011 4020 07 mpy 9,dl 014201 aa 6 02132 7561 00 stq pr6|1114 014202 aa 003 100 060 506 csl (pr,ql),(pr),fill(0),bool(move) 014203 aa 7 00000 03 0006 descb pr7|0(3),6 facilities.code 014204 aa 6 00056 00 0044 descb pr6|46,36 014205 aa 6 00056 2351 00 lda pr6|46 014206 aa 000102 7730 00 lrl 66 014207 aa 000001 1160 07 cmpq 1,dl 014210 aa 000004 6010 04 tnz 4,ic 014214 014211 aa 002000 2350 03 lda 1024,du 014212 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 014213 aa 5 00005 2551 00 orsa pr5|5 xlce.collect_call STATEMENT 1 ON LINE 2414 if facilities.par_length (i) = 3 /* calculate to pass on the following field */ then /* partial case : 1 octet suported for length of the parameter field */ i = i + facilities.code (i + 1) + 2; 014214 aa 6 00262 3715 20 epp5 pr6|178,* blockp 014215 aa 5 00002 3715 00 epp5 pr5|2 l3_facilities 014216 aa 5 00000 5005 17 a9bd pr5|0,7 014217 aa 6 02131 2351 00 lda pr6|1113 014220 aa 003 100 060 505 csl (pr,al),(pr),fill(0),bool(move) 014221 aa 5 77777 61 0002 descb pr5|-1(28),2 facilities.par_length 014222 aa 6 00056 00 0044 descb pr6|46,36 014223 aa 6 00056 2351 00 lda pr6|46 014224 aa 000106 7730 00 lrl 70 014225 aa 6 02131 7561 00 stq pr6|1113 facilities.par_length 014226 aa 6 02134 6515 00 spri5 pr6|1116 014227 aa 000003 1160 07 cmpq 3,dl 014230 aa 000014 6010 04 tnz 12,ic 014244 014231 aa 6 00700 2361 00 ldq pr6|448 i 014232 aa 000011 4020 07 mpy 9,dl 014233 aa 003 100 060 506 csl (pr,ql),(pr),fill(0),bool(move) 014234 aa 5 00000 03 0006 descb pr5|0(3),6 facilities.code 014235 aa 6 00056 00 0044 descb pr6|46,36 014236 aa 6 00056 2351 00 lda pr6|46 014237 aa 000102 7730 00 lrl 66 014240 aa 6 00700 0761 00 adq pr6|448 i 014241 aa 000002 0760 07 adq 2,dl 014242 aa 6 00700 7561 00 stq pr6|448 i 014243 aa 777713 7100 04 tra -53,ic 014156 STATEMENT 1 ON LINE 2417 else i = i + facilities.par_length (i) + 2; 014244 aa 6 00700 0761 00 adq pr6|448 i 014245 aa 000002 0760 07 adq 2,dl 014246 aa 6 00700 7561 00 stq pr6|448 i STATEMENT 1 ON LINE 2418 end; 014247 aa 777707 7100 04 tra -57,ic 014156 STATEMENT 1 ON LINE 2420 end check_facilities; 014250 aa 6 00672 6101 00 rtcd pr6|442 END PROCEDURE check_facilities BEGIN PROCEDURE get_protocol_sc ENTRY TO get_protocol_sc STATEMENT 1 ON LINE 2422 get_protocol_sc: proc returns (bit (1)); 014251 aa 6 00702 6501 00 spri4 pr6|450 014252 aa 6 00704 2521 00 spri2 pr6|452 STATEMENT 1 ON LINE 2425 ttybp = addr (tty_buf$); 014253 aa 6 00044 3701 20 epp4 pr6|36,* 014254 la 4 00062 3735 20 epp7 pr4|50,* tty_buf$ 014255 aa 6 00260 6535 00 spri7 pr6|176 ttybp STATEMENT 1 ON LINE 2426 lctep = addr (tty_buf.lct_ptr -> lct.lcte_array (xsce.devx)); 014256 aa 6 00172 3715 20 epp5 pr6|122,* xscep 014257 aa 5 00010 2361 00 ldq pr5|8 xsce.devx 014260 aa 000005 7360 00 qls 5 014261 aa 7 00006 3535 20 epp3 pr7|6,* tty_buf.lct_ptr 014262 aa 3 77760 3515 06 epp1 pr3|-16,ql lct.lcte_array 014263 aa 6 00246 2515 00 spri1 pr6|166 lctep STATEMENT 1 ON LINE 2427 if (lcte.channel_type = PROTOCOL_MPX) then return ("1"b); 014264 aa 1 00002 2351 00 lda pr1|2 lcte.channel_type 014265 aa 000077 7330 00 lrs 63 014266 aa 000020 1160 07 cmpq 16,dl 014267 aa 000006 6010 04 tnz 6,ic 014275 014270 aa 2 00002 3535 20 epp3 pr2|2,* 014271 aa 403 100 060 400 csl (),(pr),fill(1),bool(move) 014272 aa 000000 00 0000 descb 0,0 014273 aa 3 00000 00 0001 descb pr3|0,1 014274 aa 6 00702 6101 00 rtcd pr6|450 STATEMENT 1 ON LINE 2428 return ("0"b); 014275 aa 2 00002 3535 20 epp3 pr2|2,* 014276 aa 003 100 060 400 csl (),(pr),fill(0),bool(move) 014277 aa 000000 00 0000 descb 0,0 014300 aa 3 00000 00 0001 descb pr3|0,1 014301 aa 6 00702 6101 00 rtcd pr6|450 STATEMENT 1 ON LINE 2430 end get_protocol_sc; END PROCEDURE get_protocol_sc BEGIN PROCEDURE set_up_dialup_info ENTRY TO set_up_dialup_info STATEMENT 1 ON LINE 2432 set_up_dialup_info: proc; 014302 aa 6 00710 6501 00 spri4 pr6|456 STATEMENT 1 ON LINE 2435 dialup_info = x25_data.dialup_info; 014303 aa 6 00166 3735 20 epp7 pr6|118,* x25_data_ptr 014304 aa 7 00030 2371 00 ldaq pr7|24 x25_data.dialup_info 014305 aa 6 00174 7571 00 staq pr6|124 dialup_info STATEMENT 1 ON LINE 2436 dialup_info.line_type = LINE_ASYNC1; 014306 aa 012000 2350 03 lda 5120,du 014307 aa 6 00174 5511 40 stba pr6|124,40 dialup_info.line_type STATEMENT 1 ON LINE 2437 if x25_data.seq_mod = 8 then dialup_info.buffer_pad = x25_data.dialup_info.buffer_pad + 3 + L2_HEADER_PAD; 014310 aa 7 00016 2361 00 ldq pr7|14 x25_data.seq_mod 014311 aa 000010 1160 07 cmpq 8,dl 014312 aa 000010 6010 04 tnz 8,ic 014322 014313 aa 7 00030 2351 00 lda pr7|24 x25_data.buffer_pad 014314 aa 000011 7350 00 als 9 014315 aa 000077 7730 00 lrl 63 014316 aa 000005 0760 07 adq 5,dl 014317 aa 000066 7370 00 lls 54 014320 aa 6 00174 5511 20 stba pr6|124,20 dialup_info.buffer_pad 014321 aa 000007 7100 04 tra 7,ic 014330 STATEMENT 1 ON LINE 2440 else dialup_info.buffer_pad = x25_data.dialup_info.buffer_pad + 4 + L2_HEADER_PAD; 014322 aa 7 00030 2351 00 lda pr7|24 x25_data.buffer_pad 014323 aa 000011 7350 00 als 9 014324 aa 000077 7730 00 lrl 63 014325 aa 000006 0760 07 adq 6,dl 014326 aa 000066 7370 00 lls 54 014327 aa 6 00174 5511 20 stba pr6|124,20 dialup_info.buffer_pad STATEMENT 1 ON LINE 2442 dialup_info.max_buf_size = min (dialup_info.max_buf_size, divide (xlce.max_packet_size, 4, 9, 0)); 014330 aa 6 00170 3715 20 epp5 pr6|120,* xlcep 014331 aa 5 00002 2361 00 ldq pr5|2 xlce.max_packet_size 014332 aa 000004 5060 07 div 4,dl 014333 aa 6 02136 7561 00 stq pr6|1118 014334 aa 6 00175 2351 00 lda pr6|125 dialup_info.max_buf_size 014335 aa 000077 7730 00 lrl 63 014336 aa 6 02136 1161 00 cmpq pr6|1118 014337 aa 000002 6040 04 tmi 2,ic 014341 014340 aa 6 02136 2361 00 ldq pr6|1118 014341 aa 000077 7370 00 lls 63 014342 aa 6 00175 5511 40 stba pr6|125,40 dialup_info.max_buf_size STATEMENT 1 ON LINE 2444 end set_up_dialup_info; 014343 aa 6 00710 6101 00 rtcd pr6|456 END PROCEDURE set_up_dialup_info END PROCEDURE x25_mpx ----------------------------------------------------------- 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