COMPILATION LISTING OF SEGMENT ws_timer_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 01/24/89 0850.2 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1987 * 6* * * 7* *********************************************************** */ 8 9 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 10 ws_timer_: 11 proc (); 12 13 14 /* PROGRAM FUNCTION 15* 16*These are the timeout handlers which recover for lost packets. 17**/ 18 19 20 /* NOTES 21**/ 22 23 /****^ HISTORY COMMENTS: 24* 1) change(87-06-10,Flegel), approve(87-06-23,MCR7649), 25* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 26* Created. 27* 2) change(87-09-02,RBarstad), approve(87-09-02,PBF7649), 28* audit(87-09-02,LJAdams), install(87-09-02,MR12.1-1096): 29* Fixed to not reset timer if timers not being used. 30* END HISTORY COMMENTS */ 31 32 /* INPUT PARAMETERS */ 33 dcl p_wakeup fixed bin (71) parameter; /* When a sleeper is to wake */ 34 dcl p_channel fixed bin parameter; /* Channel ID */ 35 dcl p_mio_data_ptr ptr parameter; /* Control structure info */ 36 37 /* OUTPUT PARAMETERS */ 38 39 /* MISC VARIABLES */ 40 dcl timer_id fixed bin; /* Which timer is being handled */ 41 42 /* STATIC */ 43 dcl mio_data_ptr ptr int static; 44 45 /* STRUCTURES */ 46 dcl 01 mio_data like mowse_io_data based (mio_data_ptr); 47 48 /* SYSTEM CALLS */ 49 dcl ioa_$rsnnl entry () options (variable); 50 dcl timer_manager_$alarm_call entry (fixed bin (71), bit (2), entry); 51 dcl timer_manager_$reset_alarm_call entry (entry); 52 53 /* SYSTEM CALL SUPPORT */ 54 55 /* EXTERNAL CALLS */ 56 dcl ws_channel_$wait_wakeup 57 entry (ptr, ptr); 58 dcl ws_packet_transmitter_$supervisory entry (ptr, char (1)); 59 dcl ws_packet_transmitter_$resend entry (ptr, fixed bin); 60 dcl ws_packet_transmitter_$ack entry (fixed bin, ptr); 61 dcl ws_debug_$line entry () options (variable); 62 63 /* EXTERNAL CALL SUPPORT */ 64 65 /* BUILTINS */ 66 dcl addr builtin; 67 dcl byte builtin; 68 dcl mod builtin; 69 dcl null builtin; 70 dcl clock builtin; 71 dcl divide builtin; 72 73 /* CONDITIONS */ 74 75 /* CONSTANTS */ 76 dcl False bit(1) int static options (constant) init ("0"b); 77 dcl ABSOLUTE_SECONDS bit (2) int static options (constant) init ("01"b); 78 dcl NO_TIMER fixed bin int static options (constant) init (0); 79 dcl TRUE bit (1) int static options (constant) init ("1"b); 80 dcl FALSE bit (1) int static options (constant) init ("0"b); 81 dcl TIMER_INTERVALS (8) fixed bin int static options (constant) init (30, 30, 7, 7, 30, 15, 15, 60); 82 dcl NUMBER_OF_TIMERS fixed bin int static options (constant) init (8); 83 dcl CONNECT_TIMER fixed bin int static options (constant) init (8); 84 dcl FG_SENDER_TIMER fixed bin int static options (constant) init (7); 85 dcl BG_SENDER_TIMER fixed bin int static options (constant) init (6); 86 dcl RESET_TIMER fixed bin int static options (constant) init (5); 87 dcl FG_RECEIVER_TIMER fixed bin int static options (constant) init (4); 88 dcl BG_RECEIVER_TIMER fixed bin int static options (constant) init (3); 89 dcl DISCONNECT_TIMER fixed bin int static options (constant) init (2); 90 dcl BREAK_TIMER fixed bin int static options (constant) init (1); 91 92 /* */ 93 94 /* INITIALIZATION */ 95 96 /* MAIN */ 97 98 return; 99 100 /* */ 101 102 103 104 /* INTERNAL ENTRIES */ 105 106 107 /* *** Entry: initialize - Internal entry for ws_timer_ *** */ 108 109 initialize: 110 entry (p_mio_data_ptr); 111 112 113 /* ENTRY FUNCTION 114* 115*Initialize the timer. 116**/ 117 118 /* NOTES 119**/ 120 121 /* The pointer is kept static because the timers wakeup on their own and need 122* to have the information and nobody is there to give it */ 123 124 mio_data_ptr = p_mio_data_ptr; 125 126 /* Turn all timer control data off */ 127 128 mio_data.timer_info (*).wakeup = 0; 129 mio_data.timer_info (*).timer_id = NO_TIMER; 130 131 return; 132 133 /* */ 134 135 /* *** Entry: sleep_processor - Internal entry for ws_timer_ *** */ 136 137 sleep_processor: 138 entry (); 139 140 141 /* ENTRY FUNCTION 142* 143*Handle the awakening of a sleeping application. 144**/ 145 146 /* NOTES 147**/ 148 149 mio_data.dozers = mio_data.dozers + 1; 150 return; 151 152 /* */ 153 154 /* *** Entry: timer_processor - Internal entry for ws_timer_ *** */ 155 156 timer_processor: 157 entry (); 158 159 /* ENTRY FUNCTION 160* 161*This is the handler for timer wakeups. 162**/ 163 164 /* NOTES 165**/ 166 167 call dequeue_timer (); 168 call reset_alarm (); 169 170 return; 171 172 /* */ 173 174 /* *** Entry: queue_sleeper - Internal entry for ws_timer_ *** */ 175 176 queue_sleeper: 177 entry (p_wakeup); 178 179 180 /* ENTRY FUNCTION 181* 182*Queue a sleeper wakeup. 183**/ 184 185 /* NOTES 186* 187*The queue is already assumed to be formed. If the next wakeup on the queue 188*is to occur AFTER the one just inserted, then a wakeup is to be scheduled for 189*the new time. 190**/ 191 192 /* Nothing to schedule */ 193 194 if mio_data.sleepers = null then 195 return; 196 197 /* Let's have some debug stuff */ 198 199 if mio_data.debug_iocb_ptr ^= null then 200 call ws_debug_$line (mio_data.debug_iocb_ptr, 201 " sleeping: ^d (^d)", 202 mio_data.sleepers -> mowse_io_sleep_node.major, 203 mio_data.sleepers -> mowse_io_sleep_node.when); 204 205 /* First node */ 206 207 if mio_data.sleepers -> mowse_io_sleep_node.next = null then do; 208 call reset_wakeup (); 209 return; 210 end; 211 212 /* Rescheduling required */ 213 214 if mio_data.sleepers -> mowse_io_sleep_node.next -> mowse_io_sleep_node.when > p_wakeup then do; 215 call reset_wakeup (); 216 return; 217 end; 218 219 return; 220 221 /* */ 222 223 /* *** Entry: reset_(*) - Internal entry for ws_timer_ *** */ 224 225 /* ENTRY FUNCTION 226* 227*These are entry points into the queue management for generating alarm calls 228*when a specified time period has elapsed. 229**/ 230 231 /* NOTES 232**/ 233 234 reset_break: 235 entry (); 236 237 timer_id = BREAK_TIMER; 238 goto JOIN_RESET; 239 240 reset_connect: 241 entry (); 242 243 timer_id = CONNECT_TIMER; 244 goto JOIN_RESET; 245 246 reset_disconnect: 247 entry (); 248 249 timer_id = DISCONNECT_TIMER; 250 goto JOIN_RESET; 251 252 reset_receiver: 253 entry (p_channel); 254 255 timer_id = BG_RECEIVER_TIMER + p_channel; 256 goto JOIN_RESET; 257 258 reset_reset: 259 entry (); 260 261 timer_id = RESET_TIMER; 262 goto JOIN_RESET; 263 264 reset_sender: 265 entry (p_channel); 266 267 timer_id = BG_SENDER_TIMER + p_channel; 268 goto JOIN_RESET; 269 270 JOIN_RESET: 271 272 call queue_timer (timer_id); 273 274 return; 275 276 /* */ 277 278 /* *** Entry: terminate - Internal entry for ws_timer_ *** */ 279 280 terminate: 281 entry (); 282 283 284 /* ENTRY FUNCTION 285* 286*Turn off all alarm calls as we are shutting down. 287**/ 288 289 /* NOTES 290**/ 291 292 call timer_manager_$reset_alarm_call (timer_processor); 293 mio_data.timer_info (*).timer_id = NO_TIMER; 294 mio_data.timer_info (*).wakeup = 0; 295 296 return; 297 298 /* */ 299 300 301 302 /* INTERNAL PROCEDURES */ 303 304 305 /* *** Procedure: dequeue_timer - Internal proc for ws_timer_ *** */ 306 307 dequeue_timer: 308 proc (); 309 310 311 /* PROCEDURE FUNCTION 312* 313*Remove an entry from the timer queue - that which caused this alarm wakeup 314*to occur - and perform the necessary functions associated with the timer 315*type being dequeued. 316**/ 317 318 /* NOTES 319**/ 320 321 /* INPUT PARAMETERS */ 322 323 /* OUTPUT PARAMETERS */ 324 325 /* MISC VARIABLES */ 326 dcl request_type fixed bin; /* Request or Confirmation */ 327 dcl channel fixed bin; /* Channel ID */ 328 dcl i fixed bin; 329 dcl current_time fixed bin (71); 330 331 /* STRUCTURES */ 332 333 /* INITIALIZATION */ 334 current_time = divide (clock, 1000000, 71); 335 336 /* MAIN */ 337 338 /* Process all timer_ids that were to wakup at this moment */ 339 340 do while (mio_data.timer_info (1).wakeup <= current_time 341 & mio_data.timer_info (1).timer_id ^= NO_TIMER); 342 343 /* Get timer ID and upshift the remaining entries */ 344 345 timer_id = mio_data.timer_info (1).timer_id; 346 347 do i = 1 to NUMBER_OF_TIMERS - 1; 348 mio_data.timer_info (i).timer_id 349 = mio_data.timer_info (i + 1).timer_id; 350 mio_data.timer_info (i).wakeup 351 = mio_data.timer_info (i + 1).wakeup; 352 end; 353 mio_data.timer_info (NUMBER_OF_TIMERS).timer_id = NO_TIMER; 354 mio_data.timer_info (NUMBER_OF_TIMERS).wakeup = 0; 355 356 /* Switch on the timer id */ 357 358 channel = BG; 359 goto case (timer_id); 360 361 case (1): /* BREAK */ 362 if mio_data.switches.br_pending then do; 363 call ws_packet_transmitter_$supervisory (mio_data_ptr, 364 byte (FGBrk + Confirm)); 365 call reset_break (); 366 end; 367 goto end_case; 368 369 case (2): /* DISCONNECT */ 370 if mio_data.switches.ds_pending (1) 371 | mio_data.switches.ds_pending (2) 372 then do; 373 if mio_data.switches.ds_pending (1) then 374 request_type = Request; 375 else 376 request_type = Confirm; 377 378 call ws_packet_transmitter_$supervisory (mio_data_ptr, 379 byte (DisCon + request_type)); 380 call reset_disconnect (); 381 end; 382 goto end_case; 383 384 case (4): channel = FG; /* FG_RECEIVER */ 385 case (3): /* BG RECEIVER */ 386 if mio_data.s.nasn (channel) ^= mio_data.s.lasn (channel) then 387 call ws_packet_transmitter_$ack (channel, mio_data_ptr); 388 call reset_receiver (channel); 389 goto end_case; 390 391 case (5): /* RESET */ 392 if mio_data.switches.rs_pending (1) 393 | mio_data.switches.rs_pending (2) 394 then do; 395 if mio_data.switches.rs_pending (1) then 396 request_type = Request; 397 else 398 request_type = Confirm; 399 400 call ws_packet_transmitter_$supervisory (mio_data_ptr, 401 byte (RstOff + request_type)); 402 call reset_reset (); 403 end; 404 goto end_case; 405 406 case (7): channel = FG; /* FG_SENDER */ 407 case (6): /* BG_SENDER */ 408 call ws_packet_transmitter_$resend (mio_data_ptr, channel); 409 goto end_case; 410 411 case (8): if mio_data.connect_active then do; /* CONNECT */ 412 mio_data.switches.connect_active = False; 413 call ws_channel_$wait_wakeup (mio_data_ptr, 414 addr (mio_data.channel_info.user_input)); 415 end; 416 417 goto end_case; 418 end_case: 419 if mio_data.debug_iocb_ptr ^= null then 420 call display_queue ("dequeue", timer_id, current_time); 421 422 end; 423 424 end dequeue_timer; 425 426 /* */ 427 428 /* *** Procedure: display_queue - Internal proc for ws_timer_ *** */ 429 430 display_queue: 431 proc (p_request, p_timer_id, p_wakeup); 432 433 434 /* PROCEDURE FUNCTION 435* 436*Write the timer queue to the debug file, if it is attached. 437**/ 438 439 /* NOTES 440**/ 441 442 /* INPUT PARAMETERS */ 443 dcl p_wakeup fixed bin (71) parameter; /* When processing occurs */ 444 dcl p_timer_id fixed bin parameter; /* Who is being processed */ 445 dcl p_request char (*) parameter; /* Who called */ 446 447 /* OUTPUT PARAMETERS */ 448 449 /* MISC VARIABLES */ 450 dcl j fixed bin; 451 dcl temp_string char (32) var; 452 dcl debug_string char (256) var; 453 454 /* STRUCTURES */ 455 456 /* INITIALIZATION */ 457 458 /* MAIN */ 459 460 if mio_data.debug_iocb_ptr = null then 461 return; 462 463 debug_string = ""; 464 do j = 1 to 7; 465 if mio_data.timer_info (j).timer_id ^= NO_TIMER then do; 466 call ioa_$rsnnl ( 467 " (^[ ^;BRK^;DSC^;BGr^;FGr^;RST^;BGs^;FGs^;CON^],^d)", 468 temp_string, (0), mio_data.timer_info (j).timer_id + 1, 469 mod (mio_data.timer_info (j).wakeup, 1000)); 470 debug_string = debug_string || temp_string; 471 end; 472 end; 473 474 call ws_debug_$line (mio_data.debug_iocb_ptr, 475 " ^a (^[BRK^;DSC^;BGr^;FGr^;RST^;BGs^;FGs^;CON^],^d):^a", 476 p_request, p_timer_id, mod (p_wakeup, 1000), debug_string); 477 478 end display_queue; 479 480 /* */ 481 482 /* *** Procedure: queue_timer - Internal proc for ws_timer_ *** */ 483 484 queue_timer: 485 proc (p_timer_id); 486 487 488 /* PROCEDURE FUNCTION 489* 490*Place a request in the timer_info structure for a wakeup of the specified 491*type. 492**/ 493 494 /* NOTES 495**/ 496 497 /* INPUT PARAMETERS */ 498 dcl p_timer_id fixed bin parameter; /* Timer to queue */ 499 500 /* OUTPUT PARAMETERS */ 501 502 /* MISC VARIABLES */ 503 dcl swap_wake fixed bin (71); /* Swapping holding place */ 504 dcl swap_id fixed bin; /* Space for swapping */ 505 dcl temp_wake fixed bin (71); /* Temporary holding */ 506 dcl when_wakeup fixed bin (71); /* When a wakeup occurs */ 507 dcl current_seconds fixed bin (71); /* Current time in seconds */ 508 dcl temp_id fixed bin; /* Temp ID for swapping */ 509 dcl j fixed bin; 510 dcl done bit (1); /* Search control flag */ 511 dcl i fixed bin; 512 513 /* STRUCTURES */ 514 515 /* INITIALIZATION */ 516 517 /* MAIN */ 518 current_seconds = divide (clock, 1000000, 71); 519 when_wakeup = current_seconds + TIMER_INTERVALS (p_timer_id); 520 i = 1; 521 done = FALSE; 522 do while (^done); 523 524 /* Add wakeup */ 525 526 if mio_data.timer_info (i).timer_id = NO_TIMER then do; 527 mio_data.timer_info (i).timer_id = p_timer_id; 528 mio_data.timer_info (i).wakeup = when_wakeup; 529 done = TRUE; 530 end; 531 532 /* Replace wakeup */ 533 534 else if mio_data.timer_info (i).timer_id = p_timer_id then do; 535 do j = i + 1 to NUMBER_OF_TIMERS; 536 537 /* Empty slot, so it's the end of the queue */ 538 539 if mio_data.timer_info (j).timer_id = NO_TIMER then do; 540 mio_data.timer_info (j - 1).timer_id = p_timer_id; 541 mio_data.timer_info (j - 1).wakeup = when_wakeup; 542 j = NUMBER_OF_TIMERS; 543 end; 544 545 /* Last slot */ 546 547 else if j = NUMBER_OF_TIMERS then do; 548 mio_data.timer_info (j).timer_id = p_timer_id; 549 mio_data.timer_info (j).wakeup = when_wakeup; 550 end; 551 552 /* Found the position */ 553 554 else if mio_data.timer_info (j).wakeup > when_wakeup then do; 555 mio_data.timer_info (j - 1).timer_id = p_timer_id; 556 mio_data.timer_info (j - 1).wakeup = when_wakeup; 557 j = NUMBER_OF_TIMERS; 558 end; 559 560 /* Upshift slots */ 561 562 else do; 563 mio_data.timer_info (j - 1).timer_id 564 = mio_data.timer_info (j).timer_id; 565 mio_data.timer_info (j - 1).wakeup 566 = mio_data.timer_info (j).wakeup; 567 end; 568 end; 569 570 done = TRUE; 571 end; 572 573 /* Insert wakeup */ 574 575 else if when_wakeup < mio_data.timer_info (i).wakeup then do; 576 temp_id = mio_data.timer_info (i).timer_id; 577 temp_wake = mio_data.timer_info (i).wakeup; 578 mio_data.timer_info (i).timer_id = p_timer_id; 579 mio_data.timer_info (i).wakeup = when_wakeup; 580 581 do j = i + 1 to NUMBER_OF_TIMERS; 582 583 /* No duplicates */ 584 585 if mio_data.timer_info (j).timer_id = p_timer_id then do; 586 mio_data.timer_info (j).timer_id = temp_id; 587 mio_data.timer_info (j).wakeup = temp_wake; 588 j = NUMBER_OF_TIMERS; 589 end; 590 591 /* Downshift slots */ 592 593 else do; 594 swap_id = mio_data.timer_info (j).timer_id; 595 swap_wake = mio_data.timer_info (j).wakeup; 596 mio_data.timer_info (j).timer_id = temp_id; 597 mio_data.timer_info (j).wakeup = temp_wake; 598 temp_id = swap_id; 599 temp_wake = swap_wake; 600 end; 601 end; 602 603 done = TRUE; 604 end; 605 606 else 607 i = i + 1; 608 end; 609 610 /* Lets see some debugging */ 611 612 if mio_data.debug_iocb_ptr ^= null then 613 call display_queue (" queue", p_timer_id, when_wakeup); 614 615 /* If terminated on first iteration, then the actual alarm needs to be reset */ 616 617 if i = 1 then 618 call reset_alarm (); 619 620 end queue_timer; 621 622 /* */ 623 624 /* *** Procedure: reset_alarm - Internal proc for ws_timer_ *** */ 625 626 reset_alarm: 627 proc (); 628 629 630 /* PROCEDURE FUNCTION 631* 632*Set the timer_manager_ up with a new wakeup (the next one in the timer_info 633*queue). 634**/ 635 636 /* NOTES 637**/ 638 639 /* INPUT PARAMETERS */ 640 641 /* OUTPUT PARAMETERS */ 642 643 /* MISC VARIABLES */ 644 645 /* STRUCTURES */ 646 647 /* INITIALIZATION */ 648 649 /* MAIN */ 650 if mio_data.timer_info (1).timer_id ^= NO_TIMER /* hcom #2 */ 651 then do; 652 call timer_manager_$reset_alarm_call (timer_processor); 653 call timer_manager_$alarm_call (mio_data.timer_info (1).wakeup, 654 ABSOLUTE_SECONDS, timer_processor); 655 end; 656 657 end reset_alarm; 658 659 /* */ 660 661 /* *** Procedure: reset_wakeup - Internal proc for ws_timer_ *** */ 662 663 reset_wakeup: 664 proc (); 665 666 667 /* PROCEDURE FUNCTION 668* 669*Reschedule a wakeup for handling the sleepers queue. 670**/ 671 672 /* NOTES 673**/ 674 675 /* INPUT PARAMETERS */ 676 677 /* OUTPUT PARAMETERS */ 678 679 /* MISC VARIABLES */ 680 681 /* STRUCTURES */ 682 683 /* INITIALIZATION */ 684 685 /* MAIN */ 686 687 call timer_manager_$reset_alarm_call (sleep_processor); 688 call timer_manager_$alarm_call ( 689 mio_data.sleepers -> mowse_io_sleep_node.when, 690 ABSOLUTE_SECONDS, sleep_processor); 691 692 end reset_wakeup; 693 694 /* */ 695 696 697 698 /* INCLUDE FILES */ 1 1 /* BEGIN INCLUDE FILE: mowse_io_structures.incl.pl1 * * * * * * * * * * * * */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(86-11-11,Flegel), approve(87-07-15,MCR7580), 1 6* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 1 7* Created from portion of mowse_io_data.incl.pl1 1 8* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 1 9* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 1 10* Approved. 1 11* END HISTORY COMMENTS */ 1 12 1 13 /* : Structure for local data linked list queue */ 1 14 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 1 15 dcl 01 local_data_node based, 1 16 02 data_ptr ptr, /* Local data */ 1 17 02 data_len fixed bin (21), /* Amount of data */ 1 18 02 next ptr; /* Next in line */ 1 19 1 20 /* : Structure for link list of sleeping applications */ 1 21 dcl 01 mowse_io_sleep_node based, 1 22 02 major fixed bin, /* Capability index of sleeper */ 1 23 02 mbz bit (36), 1 24 02 when fixed bin (71), /* Multics wakeup time */ 1 25 02 next ptr, /* Next node in list */ 1 26 02 last ptr; /* Last node in list */ 1 27 1 28 /* END INCLUDE FILE: mowse_io_structures.incl.pl1 * * * * * * * * * * * * */ 699 2 1 /* BEGIN INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(86-09-17,Flegel), approve(86-12-16,MCR7580), 2 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 2 6* Created. 2 7* 2) change(86-10-03,Flegel), approve(86-12-16,MCR7580), 2 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 2 9* Combined mowse_minor_caps.incl.pl1 and 2 10* mowse.incl.pl1 so that programmer only needs include mowse.incl.pl1 2 11* 3) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 2 12* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 2 13* Approved. 2 14* 4) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 2 15* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 2 16* Changes to support async call channels. 2 17* END HISTORY COMMENTS */ 2 18 2 19 /* Name of MOWSE temp seg for data */ 2 20 2 21 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 2 22 dcl temp_seg_name char (6) init ("MOWSE_"); 2 23 2 24 /* Version number */ 2 25 2 26 dcl MOWSE_VERSION_ char (8) int static options (constant) init ("version1"); 2 27 2 28 /* System identification */ 2 29 2 30 dcl LOCAL_SYSTEM fixed bin int static options (constant) init (32); 2 31 dcl REMOTE_SYSTEM fixed bin int static options (constant) init (33); 2 32 2 33 /* Status request return codes */ 2 34 2 35 dcl STATUS_SUCCESS fixed bin (8) int static options (constant) 2 36 init (32); 2 37 dcl STATUS_FAILED fixed bin (8) int static options (constant) 2 38 init (33); 2 39 2 40 /* Input/output capability buffer size limits */ 2 41 2 42 dcl MINIMUM_BUFFER_SIZE fixed bin int static options (constant) init (128); 2 43 dcl MAXIMUM_BUFFER_SIZE fixed bin int static options (constant) init (65536); 2 44 dcl MAXIMUM_BG_SIZE fixed bin int static options (constant) init (512); 2 45 2 46 /* Packet size (communication) constants */ 2 47 2 48 dcl PACKET_SIZE fixed bin int static options (constant) init (124); 2 49 dcl MAXIMUM_PACKET_SIZE fixed bin int static options (constant) init (118); 2 50 2 51 /* Query message constants */ 2 52 2 53 dcl SEND_QUERY fixed bin int static options (constant) init (128); 2 54 dcl ACCEPT fixed bin int static options (constant) init (32); 2 55 dcl REJECT fixed bin int static options (constant) init (33); 2 56 2 57 /* Trace information constants */ 2 58 2 59 dcl RECEIVE fixed bin int static options (constant) init (1); 2 60 dcl SEND fixed bin int static options (constant) init (0); 2 61 2 62 /* Limits on dedicated minor capabilities */ 2 63 2 64 dcl MINIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (32); 2 65 dcl MAXIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (63); 2 66 dcl MINIMUM_USER_MINOR fixed bin int static options (constant) init (64); 2 67 dcl MAXIMUM_USER_MINOR fixed bin int static options (constant) init (127); 2 68 2 69 /* Dedicated Minor Capabilities */ 2 70 2 71 dcl LAST fixed bin int static options (constant) init (0); 2 72 dcl EXECUTE_COMMAND_REPLY fixed bin int static options (constant) init (32); 2 73 dcl EXECUTE_CAPABILITY_REPLY 2 74 fixed bin int static options (constant) init (33); 2 75 dcl FAIL_CAPABILITY fixed bin int static options (constant) init (33); 2 76 dcl INTERNAL fixed bin int static options (constant) init (32); 2 77 dcl EXECUTE_COMMAND fixed bin int static options (constant) init (34); 2 78 dcl ADD_TO_REMOTE_CAT fixed bin int static options (constant) init (35); 2 79 dcl DELETE_FROM_REMOTE_CAT fixed bin int static options (constant) init (36); 2 80 dcl SUSPEND_APPLICATION fixed bin int static options (constant) init (37); 2 81 dcl RESUME_APPLICATION fixed bin int static options (constant) init (38); 2 82 dcl TERMINATE_APPLICATION fixed bin int static options (constant) init (39); 2 83 dcl RESET_APPLICATION fixed bin int static options (constant) init (40); 2 84 dcl RESET_REPLY fixed bin int static options (constant) init (41); 2 85 dcl WAKE_UP fixed bin int static options (constant) init (42); 2 86 dcl STATUS fixed bin int static options (constant) init (43); 2 87 dcl OVERFLOWED_BUFFER fixed bin int static options (constant) init (44); 2 88 dcl SYSTEM_ERROR fixed bin int static options (constant) init (45); 2 89 dcl QUERY_REPLY fixed bin int static options (constant) init (46); 2 90 dcl RESPONSE_CONNECT fixed bin int static options (constant) init (47); 2 91 dcl RESPONSE_DISCONNECT fixed bin int static options (constant) init (48); 2 92 dcl REQUEST_CONNECT fixed bin int static options (constant) init (49); 2 93 dcl REQUEST_DISCONNECT fixed bin int static options (constant) init (50); 2 94 dcl CONTINUE fixed bin int static options (constant) init (51); 2 95 dcl MORE fixed bin int static options (constant) init (52); 2 96 dcl SET_SLEEP_FLAG fixed bin int static options (constant) init (53); 2 97 dcl RESET_SLEEP_FLAG fixed bin int static options (constant) init (54); 2 98 dcl SET_SUSPEND fixed bin int static options (constant) init (55); 2 99 dcl RESET_SUSPEND fixed bin int static options (constant) init (56); 2 100 dcl STATUS_REPLY fixed bin int static options (constant) init (57); 2 101 2 102 /* Foreground */ 2 103 2 104 dcl FG_CONTROL_MESSAGE fixed bin int static options (constant) init (33); 2 105 dcl FG_BREAK fixed bin int static options (constant) init (34); 2 106 dcl FG_TERMINAL_DATA fixed bin int static options (constant) init (35); 2 107 dcl FG_MORE_DATA fixed bin int static options (constant) init (36); 2 108 dcl PUT_TO_BACKGROUND_BUFFER 2 109 fixed bin int static options (constant) init (37); 2 110 dcl PUT_TO_QUERY_MESSAGE_BUFFER 2 111 fixed bin int static options (constant) init (38); 2 112 2 113 /* END INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 700 3 1 /* BEGIN INCLUDE FILE: mowse_io_constants.incl.pl1 * * * * * * * * * * * * */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-11-06,Flegel), approve(87-07-15,MCR7580), 3 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 3 6* Created. 3 7* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 3 8* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 3 9* Approved. 3 10* END HISTORY COMMENTS */ 3 11 3 12 /* Protocol constants */ 3 13 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 3 14 dcl INIT_CRC fixed bin int static options (constant) init (63); 3 15 dcl CONVERT_CRC fixed bin int static options (constant) init (32); 3 16 dcl REVPOLY fixed bin int static options (constant) init (101001b); /* Bit N is coeff of x**(5-N) of generator */ 3 17 dcl OR bit (4) int static options (constant) init ("0111"b); 3 18 dcl XOR bit (4) int static options (constant) init ("0110"b); 3 19 dcl And bit (4) int static options (constant) init ("0001"b); 3 20 3 21 /* Debugging Switches */ 3 22 dcl DBGPKTS bit (1) int static options (constant) init ("0"b); 3 23 /* show packets */ 3 24 dcl DBGREJS bit (1) int static options (constant) init ("1"b); 3 25 /* diagnose rejects */ 3 26 dcl DBGXCHRS bit (1) int static options (constant) init ("0"b); 3 27 /* show extraneous received chars */ 3 28 3 29 /* ASCII Control Characters */ 3 30 3 31 dcl CR char (1) int static options (constant) 3 32 init (" "); 3 33 dcl ESC char (1) int static options (constant) 3 34 init (""); 3 35 dcl LF char (1) int static options (constant) 3 36 init (" 3 37 "); 3 38 dcl SI char (1) int static options (constant) 3 39 init (""); 3 40 dcl SO char (1) int static options (constant) 3 41 init (""); 3 42 dcl SOH char (1) int static options (constant) 3 43 init (""); 3 44 3 45 /* Protocol Bit-field Constants */ 3 46 dcl ChnCnt fixed bin int static options (constant) init (2); 3 47 /* no. logical channels */ 3 48 dcl SeqFld fixed bin int static options (constant) init (2); 3 49 /* no. bits in seq. field */ 3 50 dcl SeqCnt fixed bin int static options (constant) init (4); 3 51 /* 2**SeqFld */ 3 52 dcl SeqMsk fixed bin int static options (constant) init (3); 3 53 /* SeqCnt-1 */ 3 54 3 55 /* Protocol Byte-field Constants */ 3 56 dcl MaxDatLen fixed bin int static options (constant) init (124); 3 57 /* Maximum packet length */ 3 58 dcl SOPLen fixed bin int static options (constant) init (1); 3 59 /* Characters in SOP field */ 3 60 dcl TypLen fixed bin int static options (constant) init (1); 3 61 /* Characters in type field */ 3 62 dcl ChkLen fixed bin int static options (constant) init (1); 3 63 /* Characters in check field */ 3 64 dcl LenLen fixed bin int static options (constant) init (1); 3 65 /* Characters in length field */ 3 66 dcl EOPLen fixed bin int static options (constant) init (1); 3 67 /* Characters in EOP field */ 3 68 dcl MinPktLen fixed bin int static options (constant) init (5); 3 69 /* SOPLen+TypLen+LenLen+ChkLen+EOPLen */ 3 70 dcl MaxPktLen fixed bin int static options (constant) init (129); 3 71 /* MinPktLen+MaxDatLen */ 3 72 3 73 /* Protocol Packet Type Constants */ 3 74 dcl RstOff fixed bin (8) int static options (constant) 3 75 init (32); /* */ 3 76 dcl Request fixed bin (8) int static options (constant) 3 77 init (0); 3 78 dcl Confirm fixed bin (8) int static options (constant) 3 79 init (1); 3 80 dcl RstCnt fixed bin (8) int static options (constant) 3 81 init (2); /* Confirm+1 */ 3 82 dcl FGBrk fixed bin (8) int static options (constant) 3 83 init (36); /* BrkOff+2*FG*/ 3 84 dcl DisCon fixed bin (8) int static options (constant) 3 85 init (34); /* BrkOff+2*BG */ 3 86 dcl FastDis fixed bin (8) int static options (constant) 3 87 init (86); /* NakOff+NakCnt */ 3 88 dcl BrkOff fixed bin (8) int static options (constant) 3 89 init (34); /* RstOff+RstCnt */ 3 90 dcl BrkCnt fixed bin (8) int static options (constant) 3 91 init (4); /* ChnCnt*(Confirm+1) */ 3 92 dcl DatOff fixed bin (8) int static options (constant) 3 93 init (38); /* BrkOff+BrkCnt */ 3 94 dcl DatCnt fixed bin (8) int static options (constant) 3 95 init (32); /* ChnCnt*SeqCnt*SeqCnt */ 3 96 dcl AckOff fixed bin (8) int static options (constant) 3 97 init (70); /* DatOff+DatCnt */ 3 98 dcl AckCnt fixed bin (8) int static options (constant) 3 99 init (8); /* ChnCnt*SeqCnt */ 3 100 dcl NakOff fixed bin (8) int static options (constant) 3 101 init (78); /* AckOff+AckCnt */ 3 102 dcl NakCnt fixed bin (8) int static options (constant) 3 103 init (8); /* ChnCnt*SeqCnt */ 3 104 3 105 /* Protocol Parameters */ 3 106 dcl RQS fixed bin int static options (constant) init (2); 3 107 /* rcvchr's queue size (upper bound of r_pkt) */ 3 108 dcl RWS fixed bin int static options (constant) init (3); 3 109 /* Receiver's window size (upper bound of r_dat */ 3 110 dcl SWS fixed bin int static options (constant) init (3); 3 111 /* Sender's window size (upper bound of s_dat */ 3 112 dcl Lim_r_timer fixed bin int static options (constant) init (7); 3 113 /* Limit for r_timer */ 3 114 dcl Lim_s_timer fixed bin int static options (constant) init (15); 3 115 /* Limit for s_timer */ 3 116 dcl Lim_p_timer fixed bin int static options (constant) init (30); 3 117 /* Limit for pending_timer */ 3 118 dcl Timer_Interval fixed bin (71) int static options (constant) 3 119 init (125000); /* Next wakeup of timer */ 3 120 3 121 /* Tasking priority values */ 3 122 dcl Modem_Reader_Task fixed bin int static options (constant) init (0); 3 123 /* Modem Reader */ 3 124 dcl FG_task fixed bin int static options (constant) init (1); 3 125 /* FG processing */ 3 126 dcl BG_task fixed bin int static options (constant) init (2); 3 127 /* BG processing */ 3 128 dcl Idle bit (1) int static options (constant) init ("0"b); 3 129 /* Task not executing */ 3 130 3 131 /* Capability constants */ 3 132 dcl NO_MINOR fixed bin int static options (constant) init (-1); 3 133 3 134 /* WSTERM modes string indices */ 3 135 3 136 dcl WST_INIT_PL fixed bin int static options (constant) init (23); 3 137 dcl WST_INIT_LL fixed bin int static options (constant) init (79); 3 138 3 139 dcl WST_HEADER_1 fixed bin int static options (constant) init (1); 3 140 dcl WST_HEADER_2 fixed bin int static options (constant) init (2); 3 141 dcl WST_HEADER_3 fixed bin int static options (constant) init (3); 3 142 dcl WST_LENGTH_HIGH fixed bin int static options (constant) init (4); 3 143 dcl WST_LENGTH_LOW fixed bin int static options (constant) init (5); 3 144 dcl WST_MODES fixed bin int static options (constant) init (6); 3 145 dcl WST_KILL fixed bin int static options (constant) init (7); 3 146 dcl WST_ERASE fixed bin int static options (constant) init (8); 3 147 dcl WST_ESCAPE fixed bin int static options (constant) init (9); 3 148 dcl WST_LINE_LENGTH fixed bin int static options (constant) init (10); 3 149 dcl WST_PAGE_LENGTH fixed bin int static options (constant) init (11); 3 150 3 151 /* END INCLUDE FILE: mowse_io_constants.incl.pl1 * * * * * * * * * * * * */ 701 4 1 /* BEGIN INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(86-05-17,Smith), approve(86-12-16,MCR7580), 4 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 6* Created to define MOWSE message formats. 4 7* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 4 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 9* Approved. 4 10* 3) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 4 11* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 4 12* Changes to support async call channels. 4 13* END HISTORY COMMENTS */ 4 14 4 15 /* Message Channels */ 4 16 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 4 17 dcl BG fixed bin int static options (constant) init (0); 4 18 /* Fore ground */ 4 19 dcl FG fixed bin int static options (constant) init (1); 4 20 /* Back ground */ 4 21 4 22 /* Message types: 4 23* 4 24*Each intersystem message is labelled with one of the following types. Upon 4 25*reciept of the message suitable action is undertaken. This scheme was 4 26*introduced to allow the transmission of messsages longer than the maximum 4 27*packet size. 4 28**/ 4 29 4 30 /* Templates for the various messages used throughout the mowse environment. 4 31* Non-allocatable */ 4 32 4 33 dcl message_len fixed bin init (6); 4 34 dcl message_ptr ptr; 4 35 4 36 /* expected format of message */ 4 37 4 38 dcl 01 input_message based (message_ptr), 4 39 02 header, 4 40 03 system char (1) unal, 4 41 03 major char (1) unal, 4 42 03 minor char (1) unal, 4 43 03 source_system char (1) unal, 4 44 03 source_major char (1) unal, 4 45 02 data char (message_len - 5) unal; 4 46 4 47 /* expected format of message to be handled by mowse internal execute command */ 4 48 4 49 dcl 01 execom_message based (message_ptr), 4 50 02 header, 4 51 03 system char (1) unal, 4 52 03 major char (1) unal, 4 53 03 minor char (1) unal, 4 54 03 source_system char (1) unal, 4 55 03 source_major char (1) unal, 4 56 02 data, 4 57 03 cmd_id fixed bin (17) unal, 4 58 03 command char (message_len - 7) unal; 4 59 4 60 /* expected format of message recieved when a request to alter a CAT table 4 61* is made by a remote system */ 4 62 4 63 dcl 01 alter_cat_message based (message_ptr), 4 64 02 header, 4 65 03 system char (1) unal, 4 66 03 major char (1) unal, 4 67 03 minor char (1) unal, 4 68 03 source_system char (1) unal, 4 69 03 source_major char (1) unal, 4 70 02 data, 4 71 03 major char unal, 4 72 03 major_name char (CAPABILITY_NAME_LENGTH) unal; 4 73 4 74 /* Template used to parse message recieved from some remote system. */ 4 75 4 76 dcl 01 event_message based (message_ptr), 4 77 02 header, 4 78 03 system char (1) unal, 4 79 03 major char (1) unal, 4 80 03 msg_type char (1) unal; 4 81 4 82 /* format of message of MORE type */ 4 83 4 84 dcl 01 request_more_message 4 85 based (message_ptr), 4 86 02 header, 4 87 03 system char (1) unal, 4 88 03 major char (1) unal, 4 89 03 more char (1) unal, 4 90 03 source_system char (1) unal, 4 91 03 source_major char (1) unal, 4 92 03 source_minor char (1) unal; 4 93 4 94 /* format of message of CONTINUE type */ 4 95 4 96 dcl 01 more_remaining_message 4 97 based (message_ptr), 4 98 02 header, 4 99 03 system char (1) unal, 4 100 03 major char (1) unal, 4 101 03 continue char (1) unal, 4 102 03 minor char (1) unal, 4 103 03 source_system char (1) unal, 4 104 03 source_major char (1) unal, 4 105 02 data, 4 106 03 data_buf char (message_len - 6) unal; 4 107 4 108 /* format of message of LAST type */ 4 109 4 110 dcl 01 last_message based (message_ptr), 4 111 02 header, 4 112 03 system char (1) unal, 4 113 03 major char (1) unal, 4 114 03 minor char (1) unal, 4 115 03 source_system char (1) unal, 4 116 03 source_major char (1) unal, 4 117 02 data, 4 118 03 data_buf char (message_len - 5) unal; 4 119 4 120 /* Execute_command_reply message format */ 4 121 4 122 dcl 01 execom_reply_msg based (message_ptr), 4 123 02 header, 4 124 03 system char (1) unal, 4 125 03 major char (1) unal, 4 126 03 minor char (1) unal, 4 127 03 source_system char (1) unal, 4 128 03 source_major char (1) unal, 4 129 02 data, 4 130 03 cmd_id fixed bin unal, 4 131 03 status char unal; 4 132 4 133 /* Used to manage partial messages destined for any application */ 4 134 4 135 dcl msg_node_ptr ptr; 4 136 dcl 01 message_node based (msg_node_ptr), 4 137 02 major fixed bin, 4 138 02 partial_msg_list_ptr 4 139 ptr, 4 140 02 next_node ptr, 4 141 02 prev_node ptr, 4 142 02 last_part_msg ptr; 4 143 4 144 dcl part_msg_ptr ptr; 4 145 dcl 01 partial_message based (part_msg_ptr), 4 146 02 msg_ptr ptr, 4 147 02 msg_len fixed bin, 4 148 02 next_msg ptr; 4 149 4 150 4 151 dcl part_msg_length fixed bin; 4 152 dcl part_msg char (part_msg_length) based; 4 153 4 154 /* Trace information structure */ 4 155 dcl 01 trace_message_info, 4 156 02 direction fixed bin, 4 157 02 from_system fixed bin, 4 158 02 from_major fixed bin, 4 159 02 dest_system fixed bin, 4 160 02 dest_major fixed bin, 4 161 02 dest_minor fixed bin, 4 162 02 msg_type fixed bin, 4 163 02 message char (PACKET_SIZE) var; 4 164 4 165 /* END INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 702 5 1 /* BEGIN INCLUDE FILE: mowse_io_data.incl.pl1 * * * * * * * * * * * * */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(87-04-16,Flegel), approve(87-07-15,MCR7580), 5 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 5 6* Created. 5 7* 2) change(87-06-23,Flegel), approve(87-06-23,MCR7649), 5 8* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 5 9* Converted to support the use of event channels. 5 10* 3) change(88-10-06,Flegel), approve(88-11-16,MCR8023), audit(88-12-12,Lee), 5 11* install(89-01-24,MR12.3-1012): 5 12* phx21215 - Added mowse_io_data.channel_info.foreground to use to generate 5 13* events when something happens in the foreground. 5 14* END HISTORY COMMENTS */ 5 15 5 16 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 5 17 dcl mowse_io_data_ptr ptr; 5 18 dcl 01 mowse_io_data based (mowse_io_data_ptr), 5 19 02 open_descrip char (19) var, 5 20 02 iocb_ptr ptr aligned, /* mowse_tty iocb pointer */ 5 21 02 default_iocb_ptr ptr aligned, /* mowse_i/o iocb pointer */ 5 22 02 attach_descrip char (256) var, /* Attach description */ 5 23 02 old_modes char (256) unal, /* Modes on previous iocb */ 5 24 5 25 02 current_modes char (256) unal, /* Current mode settings */ 5 26 02 WSTERM_modes (11) char (1), /* Encoded modes for WSTERM */ 5 27 02 cv_trans_struc_ptr ptr, /* Conversion table pointer */ 5 28 5 29 02 info_ptr ptr, /* Application control info seg */ 5 30 02 mcb_ptr ptr, /* Internal MCB to MOWSE */ 5 31 02 sleepers ptr, /* Queue of sleeping applications */ 5 32 02 dozers fixed bin (35), /* Number of unhandled sleeper wakeups */ 5 33 5 34 02 ws, /* Vidoe system control */ 5 35 03 flags, 5 36 04 trace bit (1) unal, 5 37 04 debug bit (1) unal, 5 38 04 mark_set bit (1) unal, 5 39 04 video_mode bit (1) unal, /* State (on/off) of video */ 5 40 04 more_input bit (1) unal, /* Last read unfinished */ 5 41 04 pad bit (31) unal, 5 42 03 read_count fixed bin (17), /* count of unfinished read commands sent */ 5 43 03 ips_mask bit (36) aligned, 5 44 5 45 02 sus_data, /* sus_ information */ 5 46 03 sus_entry ptr, /* Saved sus_ signal handler */ 5 47 03 activated bit (1) unal, /* If sus_ has been signaled */ 5 48 03 pad bit (35) unal, 5 49 5 50 02 channel_info, /* Event channel info */ 5 51 03 process_id bit (36) aligned, /* This process */ 5 52 03 wake_info, 5 53 04 wake_map (0:127) bit (1) unal, /* Break chars */ 5 54 04 pad bit (16) unal, 5 55 03 user_input like wait_info, /* Input wait channel */ 5 56 03 packet_transmitter like wait_info, /* Write events */ 5 57 03 packet_receiver, /* hcs_ events */ 5 58 04 channel fixed bin (71), /* Channel id */ 5 59 03 packet_dispatcher, /* Dispatch channels */ 5 60 04 sync_channel fixed bin (71), /* Process when quiet */ 5 61 04 async_channel fixed bin (71), /* Process NOW! */ 5 62 03 foreground, /* MF - phx21215 - read/write_status, get_event_channel info */ 5 63 04 channel fixed bin (71), /* Event channel */ 5 64 5 65 02 debug_iocb_ptr ptr, /* Debug file IOCB */ 5 66 02 trace_iocb_ptr ptr, /* Trace file IOCB */ 5 67 5 68 02 timer_info (8), 5 69 03 wakeup fixed bin (71), /* Seconds from last in queue */ 5 70 03 timer_id fixed bin, /* Who owns this wakeup */ 5 71 5 72 02 switches, /* Control switches */ 5 73 03 quit_enable bit (1) unal, /* Quit processing state */ 5 74 03 reset_write bit (1) unal, /* resetwrite requested */ 5 75 03 disconnect_active bit (1) unal, /* Disconnection occuring */ 5 76 03 rs_pending (2) bit (1) unal, /* Reset occuring */ 5 77 03 ds_pending (2) bit (1) unal, /* Disconnect occuring */ 5 78 03 br_pending bit (1) unal, /* Break occurring */ 5 79 03 brk_pending bit (1) unal, /* Break occuring (quit) */ 5 80 03 info_stored bit (1) unal, /* Info segment stored */ 5 81 03 connect_active bit (1) unal, /* Connection in progress */ 5 82 03 start_issued bit (1) unal, /* Indicates start order pending */ 5 83 03 pad bit (24) unal, 5 84 5 85 02 task, 5 86 03 active (0:2) bit (1) unal, /* Tasks which are active */ 5 87 03 pad bit (33) unal, 5 88 5 89 02 user_input, /* User_i/o input data */ 5 90 03 in fixed bin (21), /* Next free slot in repository */ 5 91 03 out fixed bin (21), /* Head of data */ 5 92 03 queue (0:4095) char (1), /* Repository */ 5 93 5 94 02 l_dat (0:1), /* Local data message queue */ 5 95 03 in_ptr ptr, /* Incoming messages */ 5 96 03 out_ptr ptr, /* Outgoing messages */ 5 97 5 98 02 r, /* Receiver data */ 5 99 03 eop char (1), /* End of packet character */ 5 100 03 sop char (1), /* Start of packet character */ 5 101 03 esc (0:2) char (1), /* 3 escape characters */ 5 102 03 esc_count fixed bin, /* Number of escaped chars in received packet */ 5 103 03 asn (0:1) fixed bin (3), /* Acknowledge sequence number */ 5 104 03 dat (0:1, 0:3) char (124) var, /* Data queues */ 5 105 03 pkt (0:2) char (129) var, /* Packet queue */ 5 106 03 pktin fixed bin, /* Next packet character in */ 5 107 03 pktout fixed bin, /* Head of packet */ 5 108 03 psn (0:1) fixed bin, /* SN for each channel */ 5 109 03 esckey bit (9) unal, /* Decoding 2nd character escape */ 5 110 03 ignoring (0:1) bit (1) unal, /* Ignore data during synchronization */ 5 111 03 pad bit (25) unal, 5 112 5 113 02 s, /* Sender data */ 5 114 03 eop char (1), /* End of packet character */ 5 115 03 sop char (1), /* Start of packet character */ 5 116 03 esc (0:2) char (1), /* 3 escape characters */ 5 117 03 dat (0:1, 0:3) char (124) var, /* Data queue */ 5 118 03 psn (0:1) fixed bin (3), /* Packet sequence number */ 5 119 03 lasn (0:1) fixed bin (3), /* Last ack sent */ 5 120 03 nasn (0:1) fixed bin (3), /* Next ack to be sent */ 5 121 03 escreq (0:255) bit (1) unal, /* Characters to be escaped */ 5 122 03 pad bit (32) unal; 5 123 5 124 /* Wait channel control struncture */ 5 125 5 126 dcl 01 wait_info based, 5 127 02 channel fixed bin (71) aligned, /* Channel ID */ 5 128 02 count fixed bin, /* Waiting count */ 5 129 02 flags, 5 130 03 transmitted bit (1) unal, /* Wakeup already generated */ 5 131 03 pad bit (35) unal; 5 132 5 133 /* END INCLUDE FILE: mowse_io_data.incl.pl1 * * * * * * * * * * * * */ 703 704 705 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/24/89 0847.9 ws_timer_.pl1 >spec>install>MR12.3-1012>ws_timer_.pl1 699 1 08/10/87 1335.9 mowse_io_structures.incl.pl1 >ldd>include>mowse_io_structures.incl.pl1 700 2 08/10/87 1336.7 mowse.incl.pl1 >ldd>include>mowse.incl.pl1 701 3 08/10/87 1336.7 mowse_io_constants.incl.pl1 >ldd>include>mowse_io_constants.incl.pl1 702 4 08/10/87 1335.9 mowse_messages.incl.pl1 >ldd>include>mowse_messages.incl.pl1 703 5 01/24/89 0847.4 mowse_io_data.incl.pl1 >spec>install>MR12.3-1012>mowse_io_data.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ABSOLUTE_SECONDS 000020 constant bit(2) initial packed unaligned dcl 77 set ref 653* 688* BG constant fixed bin(17,0) initial dcl 4-17 ref 358 BG_RECEIVER_TIMER constant fixed bin(17,0) initial dcl 88 ref 255 BG_SENDER_TIMER constant fixed bin(17,0) initial dcl 85 ref 267 BREAK_TIMER constant fixed bin(17,0) initial dcl 90 ref 237 CONNECT_TIMER constant fixed bin(17,0) initial dcl 83 ref 243 Confirm constant fixed bin(8,0) initial dcl 3-78 ref 363 363 375 397 DISCONNECT_TIMER constant fixed bin(17,0) initial dcl 89 ref 249 DisCon constant fixed bin(8,0) initial dcl 3-84 ref 378 378 FALSE constant bit(1) initial packed unaligned dcl 80 ref 521 FG constant fixed bin(17,0) initial dcl 4-19 ref 384 406 FGBrk constant fixed bin(8,0) initial dcl 3-82 ref 363 363 False constant bit(1) initial packed unaligned dcl 76 ref 412 NO_TIMER constant fixed bin(17,0) initial dcl 78 ref 129 293 340 353 465 526 539 650 NUMBER_OF_TIMERS constant fixed bin(17,0) initial dcl 82 ref 347 353 354 535 542 547 557 581 588 PACKET_SIZE internal static fixed bin(17,0) initial dcl 2-48 ref 4-155 RESET_TIMER constant fixed bin(17,0) initial dcl 86 ref 261 Request constant fixed bin(8,0) initial dcl 3-76 ref 373 395 RstOff constant fixed bin(8,0) initial dcl 3-74 ref 400 400 TIMER_INTERVALS 000010 constant fixed bin(17,0) initial array dcl 81 ref 519 TRUE constant bit(1) initial packed unaligned dcl 79 ref 529 570 603 addr builtin function dcl 66 ref 413 413 br_pending 430(07) based bit(1) level 3 packed packed unaligned dcl 46 ref 361 byte builtin function dcl 67 ref 363 363 378 378 400 400 channel 000115 automatic fixed bin(17,0) dcl 327 set ref 358* 384* 385 385 385* 388* 406* 407* channel_info 336 based structure level 2 unaligned dcl 46 clock builtin function dcl 70 ref 334 518 connect_active 430(10) based bit(1) level 3 packed packed unaligned dcl 46 set ref 411 412* current_seconds 000264 automatic fixed bin(71,0) dcl 507 set ref 518* 519 current_time 000120 automatic fixed bin(71,0) dcl 329 set ref 334* 340 418* debug_iocb_ptr 364 based pointer level 2 dcl 46 set ref 199 199* 418 460 474* 612 debug_string 000144 automatic varying char(256) dcl 452 set ref 463* 470* 470 474* divide builtin function dcl 71 ref 334 518 done 000270 automatic bit(1) packed unaligned dcl 510 set ref 521* 522 529* 570* 603* dozers 326 based fixed bin(35,0) level 2 dcl 46 set ref 149* 149 ds_pending 430(05) based bit(1) array level 3 packed packed unaligned dcl 46 ref 369 369 373 i 000271 automatic fixed bin(17,0) dcl 511 in procedure "queue_timer" set ref 520* 526 527 528 534 535 575 576 577 578 579 581 606* 606 617 i 000116 automatic fixed bin(17,0) dcl 328 in procedure "dequeue_timer" set ref 347* 348 348 350 350* ioa_$rsnnl 000012 constant entry external dcl 49 ref 466 j 000132 automatic fixed bin(17,0) dcl 450 in procedure "display_queue" set ref 464* 465 466 466 466* j 000267 automatic fixed bin(17,0) dcl 509 in procedure "queue_timer" set ref 535* 539 540 541 542* 547 548 549 554 555 556 557* 563 563 565 565* 581* 585 586 587 588* 594 595 596 597* lasn 3630 based fixed bin(3,0) array level 3 dcl 46 ref 385 major based fixed bin(17,0) level 2 dcl 1-21 set ref 199* message_len 000104 automatic fixed bin(17,0) initial dcl 4-33 set ref 4-33* mio_data based structure level 1 unaligned dcl 46 mio_data_ptr 000010 internal static pointer dcl 43 set ref 124* 128 129 149 149 194 199 199 199 199 207 214 293 294 340 340 345 348 348 350 350 353 354 361 363* 369 369 373 378* 385 385 385* 391 391 395 400* 407* 411 412 413* 413 413 418 460 465 466 466 466 474 526 527 528 534 539 540 541 548 549 554 555 556 563 563 565 565 575 576 577 578 579 585 586 587 594 595 596 597 612 650 653 688 mod builtin function dcl 68 ref 466 466 474 474 mowse_io_data based structure level 1 unaligned dcl 5-18 mowse_io_sleep_node based structure level 1 unaligned dcl 1-21 nasn 3632 based fixed bin(3,0) array level 3 dcl 46 ref 385 next 4 based pointer level 2 dcl 1-21 ref 207 214 null builtin function dcl 69 ref 194 199 207 418 460 612 p_channel parameter fixed bin(17,0) dcl 34 ref 252 255 264 267 p_mio_data_ptr parameter pointer dcl 35 ref 109 124 p_request parameter char packed unaligned dcl 445 set ref 430 474* p_timer_id parameter fixed bin(17,0) dcl 444 in procedure "display_queue" set ref 430 474* p_timer_id parameter fixed bin(17,0) dcl 498 in procedure "queue_timer" set ref 484 519 527 534 540 548 555 578 585 612* p_wakeup parameter fixed bin(71,0) dcl 33 in procedure "ws_timer_" ref 176 214 p_wakeup parameter fixed bin(71,0) dcl 443 in procedure "display_queue" ref 430 474 474 request_type 000114 automatic fixed bin(17,0) dcl 326 set ref 373* 375* 378 378 395* 397* 400 400 rs_pending 430(03) based bit(1) array level 3 packed packed unaligned dcl 46 ref 391 391 395 s 3224 based structure level 2 unaligned dcl 46 sleepers 324 based pointer level 2 dcl 46 ref 194 199 199 207 214 688 swap_id 000256 automatic fixed bin(17,0) dcl 504 set ref 594* 598 swap_wake 000254 automatic fixed bin(71,0) dcl 503 set ref 595* 599 switches 430 based structure level 2 packed packed unaligned dcl 46 temp_id 000266 automatic fixed bin(17,0) dcl 508 set ref 576* 586 596 598* temp_seg_name 000102 automatic char(6) initial packed unaligned dcl 2-22 set ref 2-22* temp_string 000133 automatic varying char(32) dcl 451 set ref 466* 470 temp_wake 000260 automatic fixed bin(71,0) dcl 505 set ref 577* 587 597 599* timer_id 000100 automatic fixed bin(17,0) dcl 40 in procedure "ws_timer_" set ref 237* 243* 249* 255* 261* 267* 270* 345* 359 418* timer_id 372 based fixed bin(17,0) array level 3 in structure "mio_data" dcl 46 in procedure "ws_timer_" set ref 129* 293* 340 345 348* 348 353* 465 466 526 527* 534 539 540* 548* 555* 563* 563 576 578* 585 586* 594 596* 650 timer_info 370 based structure array level 2 unaligned dcl 46 timer_manager_$alarm_call 000014 constant entry external dcl 50 ref 653 688 timer_manager_$reset_alarm_call 000016 constant entry external dcl 51 ref 292 652 687 user_input 344 based structure level 3 unaligned dcl 46 set ref 413 413 wait_info based structure level 1 unaligned dcl 5-126 wakeup 370 based fixed bin(71,0) array level 3 dcl 46 set ref 128* 294* 340 350* 350 354* 466 466 528* 541* 549* 554 556* 565* 565 575 577 579* 587* 595 597* 653* when 2 based fixed bin(71,0) level 2 dcl 1-21 set ref 199* 214 688* when_wakeup 000262 automatic fixed bin(71,0) dcl 506 set ref 519* 528 541 549 554 556 575 579 612* ws_channel_$wait_wakeup 000020 constant entry external dcl 56 ref 413 ws_debug_$line 000030 constant entry external dcl 61 ref 199 474 ws_packet_transmitter_$ack 000026 constant entry external dcl 60 ref 385 ws_packet_transmitter_$resend 000024 constant entry external dcl 59 ref 407 ws_packet_transmitter_$supervisory 000022 constant entry external dcl 58 ref 363 378 400 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACCEPT internal static fixed bin(17,0) initial dcl 2-54 ADD_TO_REMOTE_CAT internal static fixed bin(17,0) initial dcl 2-78 AckCnt internal static fixed bin(8,0) initial dcl 3-98 AckOff internal static fixed bin(8,0) initial dcl 3-96 And internal static bit(4) initial packed unaligned dcl 3-19 BG_task internal static fixed bin(17,0) initial dcl 3-126 BrkCnt internal static fixed bin(8,0) initial dcl 3-90 BrkOff internal static fixed bin(8,0) initial dcl 3-88 CONTINUE internal static fixed bin(17,0) initial dcl 2-94 CONVERT_CRC internal static fixed bin(17,0) initial dcl 3-15 CR internal static char(1) initial packed unaligned dcl 3-31 ChkLen internal static fixed bin(17,0) initial dcl 3-62 ChnCnt internal static fixed bin(17,0) initial dcl 3-46 DBGPKTS internal static bit(1) initial packed unaligned dcl 3-22 DBGREJS internal static bit(1) initial packed unaligned dcl 3-24 DBGXCHRS internal static bit(1) initial packed unaligned dcl 3-26 DELETE_FROM_REMOTE_CAT internal static fixed bin(17,0) initial dcl 2-79 DatCnt internal static fixed bin(8,0) initial dcl 3-94 DatOff internal static fixed bin(8,0) initial dcl 3-92 EOPLen internal static fixed bin(17,0) initial dcl 3-66 ESC internal static char(1) initial packed unaligned dcl 3-33 EXECUTE_CAPABILITY_REPLY internal static fixed bin(17,0) initial dcl 2-73 EXECUTE_COMMAND internal static fixed bin(17,0) initial dcl 2-77 EXECUTE_COMMAND_REPLY internal static fixed bin(17,0) initial dcl 2-72 FAIL_CAPABILITY internal static fixed bin(17,0) initial dcl 2-75 FG_BREAK internal static fixed bin(17,0) initial dcl 2-105 FG_CONTROL_MESSAGE internal static fixed bin(17,0) initial dcl 2-104 FG_MORE_DATA internal static fixed bin(17,0) initial dcl 2-107 FG_RECEIVER_TIMER internal static fixed bin(17,0) initial dcl 87 FG_SENDER_TIMER internal static fixed bin(17,0) initial dcl 84 FG_TERMINAL_DATA internal static fixed bin(17,0) initial dcl 2-106 FG_task internal static fixed bin(17,0) initial dcl 3-124 FastDis internal static fixed bin(8,0) initial dcl 3-86 INIT_CRC internal static fixed bin(17,0) initial dcl 3-14 INTERNAL internal static fixed bin(17,0) initial dcl 2-76 Idle internal static bit(1) initial packed unaligned dcl 3-128 LAST internal static fixed bin(17,0) initial dcl 2-71 LF internal static char(1) initial packed unaligned dcl 3-35 LOCAL_SYSTEM internal static fixed bin(17,0) initial dcl 2-30 LenLen internal static fixed bin(17,0) initial dcl 3-64 Lim_p_timer internal static fixed bin(17,0) initial dcl 3-116 Lim_r_timer internal static fixed bin(17,0) initial dcl 3-112 Lim_s_timer internal static fixed bin(17,0) initial dcl 3-114 MAXIMUM_BG_SIZE internal static fixed bin(17,0) initial dcl 2-44 MAXIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 2-43 MAXIMUM_PACKET_SIZE internal static fixed bin(17,0) initial dcl 2-49 MAXIMUM_SYSTEM_MINOR internal static fixed bin(17,0) initial dcl 2-65 MAXIMUM_USER_MINOR internal static fixed bin(17,0) initial dcl 2-67 MINIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 2-42 MINIMUM_SYSTEM_MINOR internal static fixed bin(17,0) initial dcl 2-64 MINIMUM_USER_MINOR internal static fixed bin(17,0) initial dcl 2-66 MORE internal static fixed bin(17,0) initial dcl 2-95 MOWSE_VERSION_ internal static char(8) initial packed unaligned dcl 2-26 MaxDatLen internal static fixed bin(17,0) initial dcl 3-56 MaxPktLen internal static fixed bin(17,0) initial dcl 3-70 MinPktLen internal static fixed bin(17,0) initial dcl 3-68 Modem_Reader_Task internal static fixed bin(17,0) initial dcl 3-122 NO_MINOR internal static fixed bin(17,0) initial dcl 3-132 NakCnt internal static fixed bin(8,0) initial dcl 3-102 NakOff internal static fixed bin(8,0) initial dcl 3-100 OR internal static bit(4) initial packed unaligned dcl 3-17 OVERFLOWED_BUFFER internal static fixed bin(17,0) initial dcl 2-87 PUT_TO_BACKGROUND_BUFFER internal static fixed bin(17,0) initial dcl 2-108 PUT_TO_QUERY_MESSAGE_BUFFER internal static fixed bin(17,0) initial dcl 2-110 QUERY_REPLY internal static fixed bin(17,0) initial dcl 2-89 RECEIVE internal static fixed bin(17,0) initial dcl 2-59 REJECT internal static fixed bin(17,0) initial dcl 2-55 REMOTE_SYSTEM internal static fixed bin(17,0) initial dcl 2-31 REQUEST_CONNECT internal static fixed bin(17,0) initial dcl 2-92 REQUEST_DISCONNECT internal static fixed bin(17,0) initial dcl 2-93 RESET_APPLICATION internal static fixed bin(17,0) initial dcl 2-83 RESET_REPLY internal static fixed bin(17,0) initial dcl 2-84 RESET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 2-97 RESET_SUSPEND internal static fixed bin(17,0) initial dcl 2-99 RESPONSE_CONNECT internal static fixed bin(17,0) initial dcl 2-90 RESPONSE_DISCONNECT internal static fixed bin(17,0) initial dcl 2-91 RESUME_APPLICATION internal static fixed bin(17,0) initial dcl 2-81 REVPOLY internal static fixed bin(17,0) initial dcl 3-16 RQS internal static fixed bin(17,0) initial dcl 3-106 RWS internal static fixed bin(17,0) initial dcl 3-108 RstCnt internal static fixed bin(8,0) initial dcl 3-80 SEND internal static fixed bin(17,0) initial dcl 2-60 SEND_QUERY internal static fixed bin(17,0) initial dcl 2-53 SET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 2-96 SET_SUSPEND internal static fixed bin(17,0) initial dcl 2-98 SI internal static char(1) initial packed unaligned dcl 3-38 SO internal static char(1) initial packed unaligned dcl 3-40 SOH internal static char(1) initial packed unaligned dcl 3-42 SOPLen internal static fixed bin(17,0) initial dcl 3-58 STATUS internal static fixed bin(17,0) initial dcl 2-86 STATUS_FAILED internal static fixed bin(8,0) initial dcl 2-37 STATUS_REPLY internal static fixed bin(17,0) initial dcl 2-100 STATUS_SUCCESS internal static fixed bin(8,0) initial dcl 2-35 SUSPEND_APPLICATION internal static fixed bin(17,0) initial dcl 2-80 SWS internal static fixed bin(17,0) initial dcl 3-110 SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 2-88 SeqCnt internal static fixed bin(17,0) initial dcl 3-50 SeqFld internal static fixed bin(17,0) initial dcl 3-48 SeqMsk internal static fixed bin(17,0) initial dcl 3-52 TERMINATE_APPLICATION internal static fixed bin(17,0) initial dcl 2-82 Timer_Interval internal static fixed bin(71,0) initial dcl 3-118 TypLen internal static fixed bin(17,0) initial dcl 3-60 WAKE_UP internal static fixed bin(17,0) initial dcl 2-85 WST_ERASE internal static fixed bin(17,0) initial dcl 3-146 WST_ESCAPE internal static fixed bin(17,0) initial dcl 3-147 WST_HEADER_1 internal static fixed bin(17,0) initial dcl 3-139 WST_HEADER_2 internal static fixed bin(17,0) initial dcl 3-140 WST_HEADER_3 internal static fixed bin(17,0) initial dcl 3-141 WST_INIT_LL internal static fixed bin(17,0) initial dcl 3-137 WST_INIT_PL internal static fixed bin(17,0) initial dcl 3-136 WST_KILL internal static fixed bin(17,0) initial dcl 3-145 WST_LENGTH_HIGH internal static fixed bin(17,0) initial dcl 3-142 WST_LENGTH_LOW internal static fixed bin(17,0) initial dcl 3-143 WST_LINE_LENGTH internal static fixed bin(17,0) initial dcl 3-148 WST_MODES internal static fixed bin(17,0) initial dcl 3-144 WST_PAGE_LENGTH internal static fixed bin(17,0) initial dcl 3-149 XOR internal static bit(4) initial packed unaligned dcl 3-18 alter_cat_message based structure level 1 packed packed unaligned dcl 4-63 event_message based structure level 1 packed packed unaligned dcl 4-76 execom_message based structure level 1 packed packed unaligned dcl 4-49 execom_reply_msg based structure level 1 packed packed unaligned dcl 4-122 input_message based structure level 1 packed packed unaligned dcl 4-38 last_message based structure level 1 packed packed unaligned dcl 4-110 local_data_node based structure level 1 unaligned dcl 1-15 message_node based structure level 1 unaligned dcl 4-136 message_ptr automatic pointer dcl 4-34 more_remaining_message based structure level 1 packed packed unaligned dcl 4-96 mowse_io_data_ptr automatic pointer dcl 5-17 msg_node_ptr automatic pointer dcl 4-135 part_msg based char packed unaligned dcl 4-152 part_msg_length automatic fixed bin(17,0) dcl 4-151 part_msg_ptr automatic pointer dcl 4-144 partial_message based structure level 1 unaligned dcl 4-145 request_more_message based structure level 1 packed packed unaligned dcl 4-84 trace_message_info automatic structure level 1 unaligned dcl 4-155 NAMES DECLARED BY EXPLICIT CONTEXT. JOIN_RESET 000440 constant label dcl 270 ref 238 244 250 256 262 268 case 000000 constant label array(8) dcl 361 ref 359 dequeue_timer 000524 constant entry internal dcl 307 ref 167 display_queue 001015 constant entry internal dcl 430 ref 418 612 end_case 001000 constant label dcl 418 ref 367 382 389 404 409 417 initialize 000135 constant entry external dcl 109 queue_sleeper 000241 constant entry external dcl 176 queue_timer 001200 constant entry internal dcl 484 ref 270 reset_alarm 001456 constant entry internal dcl 626 ref 168 617 reset_break 000336 constant entry external dcl 234 ref 365 reset_connect 000350 constant entry external dcl 240 reset_disconnect 000362 constant entry external dcl 246 ref 380 reset_receiver 000376 constant entry external dcl 252 ref 388 reset_reset 000412 constant entry external dcl 258 ref 402 reset_sender 000425 constant entry external dcl 264 reset_wakeup 001516 constant entry internal dcl 663 ref 208 215 sleep_processor 000207 constant entry external dcl 137 ref 687 687 688 688 terminate 000444 constant entry external dcl 280 timer_processor 000225 constant entry external dcl 156 ref 292 292 652 652 653 653 ws_timer_ 000123 constant entry external dcl 10 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2040 2072 1603 2050 Length 2422 1603 32 313 235 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ws_timer_ 356 external procedure is an external procedure. dequeue_timer internal procedure shares stack frame of external procedure ws_timer_. display_queue internal procedure shares stack frame of external procedure ws_timer_. queue_timer internal procedure shares stack frame of external procedure ws_timer_. reset_alarm internal procedure shares stack frame of external procedure ws_timer_. reset_wakeup internal procedure shares stack frame of external procedure ws_timer_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 mio_data_ptr ws_timer_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ws_timer_ 000100 timer_id ws_timer_ 000102 temp_seg_name ws_timer_ 000104 message_len ws_timer_ 000114 request_type dequeue_timer 000115 channel dequeue_timer 000116 i dequeue_timer 000120 current_time dequeue_timer 000132 j display_queue 000133 temp_string display_queue 000144 debug_string display_queue 000254 swap_wake queue_timer 000256 swap_id queue_timer 000260 temp_wake queue_timer 000262 when_wakeup queue_timer 000264 current_seconds queue_timer 000266 temp_id queue_timer 000267 j queue_timer 000270 done queue_timer 000271 i queue_timer THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_in call_ext_out_desc call_ext_out return_mac mdfx3 ext_entry divide_fx3 clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_$rsnnl timer_manager_$alarm_call timer_manager_$reset_alarm_call ws_channel_$wait_wakeup ws_debug_$line ws_packet_transmitter_$ack ws_packet_transmitter_$resend ws_packet_transmitter_$supervisory NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 2 22 000114 4 33 000116 10 000122 98 000131 109 000132 124 000143 128 000150 129 000165 131 000205 137 000206 149 000215 150 000223 156 000224 167 000233 168 000234 170 000235 176 000236 194 000247 199 000255 207 000314 208 000323 209 000324 214 000325 215 000332 216 000333 219 000334 234 000335 237 000344 238 000346 240 000347 243 000356 244 000360 246 000361 249 000370 250 000372 252 000373 255 000404 256 000410 258 000411 261 000420 262 000422 264 000423 267 000433 268 000437 270 000440 274 000442 280 000443 292 000452 293 000465 294 000505 296 000523 307 000524 334 000525 340 000532 345 000541 347 000542 348 000551 350 000557 352 000561 353 000563 354 000571 358 000573 359 000575 361 000577 363 000602 365 000615 367 000621 369 000622 373 000632 375 000637 378 000641 380 000654 382 000660 384 000661 385 000663 388 000677 389 000705 391 000706 395 000716 397 000723 400 000725 402 000740 404 000744 406 000745 407 000747 409 000757 411 000760 412 000763 413 000765 417 000777 418 001000 422 001013 424 001014 430 001015 460 001026 463 001035 464 001036 465 001043 466 001051 470 001114 472 001126 474 001130 478 001177 484 001200 518 001202 519 001207 520 001213 521 001215 522 001216 526 001220 527 001227 528 001233 529 001235 530 001237 534 001240 535 001243 539 001253 540 001261 541 001265 542 001267 543 001271 547 001272 548 001275 549 001301 550 001303 554 001304 555 001310 556 001313 557 001315 558 001317 563 001320 565 001322 568 001324 570 001326 571 001330 575 001331 576 001335 577 001337 578 001341 579 001343 581 001345 585 001355 586 001365 587 001370 588 001372 589 001374 594 001375 595 001376 596 001401 597 001403 598 001405 599 001407 601 001411 603 001413 604 001415 606 001416 608 001417 612 001420 617 001451 620 001455 626 001456 650 001457 652 001463 653 001475 657 001515 663 001516 687 001517 688 001532 692 001553 ----------------------------------------------------------- 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