Digital PDFs
Documents
Guest
Register
Log In
AC-F080A-MC
September 1978
1196 pages
Original
42MB
view
download
Document:
X11monLib Sep78
Order Number:
AC-F080A-MC
Revision:
0
Pages:
1196
Original Filename:
http://bitsavers.org/pdf/dec/pdp11/xxdp/AC-F080A-MC_X11monLib_Sep78.pdf
OCR Text
xxx xxx XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXx. XXX XXX XXX XXX XXX >;XX ,;XX XXX SSSSSSSSSSSS SSSSSSSSSSSS SSSSSSSSSSSS SSS SSS SSS SSS SSS SSS SSSSSSSSS SSSSSSSSS SSSSSSSSS sss SSS SSS SSS SSS SSS SSSSSSSSSSSS SSSSSSSSSSSS SSSSSSSSSSSS r~lMI\~ MM!V1 MMM MMM MMM 000000000 000000000 000000000 MIVlM MMMMiV1M MMrAM;\'iM MMMiV1MM !V1MMMMM MiV:MiVlftM MMM MMM f~:MM MI\\M f,1PJ: ~.J1 MMM MI\::\1 M~IIM MMM 1\11\1M MMM MMM MMM MMM r,l!'v:M MMM r,1MM MMM !V1MM M!W,~MMM rv1MM !'v1J1.1M Mrl'1M fvliYiM MI\1~:i r,lMM M~'ilM I\~MM MMM MMM MMM M~V;M Mrv~M MMM EEEEEEEEEEEEEEE EEEEEEEEEEEEEEE EEEEEEEEEEEEEEE EEE EEE EEE EEE EEE EEE EEEEEEEEEEEE EEEEEEEEEEEE EEEEEEEEEEEE EEE EEE EEE EEE EEE EEE EEEEEEEEEEEEEEE EEEEEEEEEEEEEEE EEEEEEEEEEEEEEE 000 COO 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 OCO 000 000 000 0:)0000000 000000000 000000000 NNN N!'-JN NNN NNN NNN NNN NNN NNN NNN NNN NNN NNN NNN NNNNNN NNNt-:,NN NNN NNN NNNNNN NNN NNN NNN NNN NNN NNN NNhl NNN NNN NNNNNN NNN t-!NNNNN NNN NNNNNN NNN NI\!N NNN NNN NNN NNN NNN NNN NNN NNN NNN NNN NNN AAAAAAAAA AAAAAAAAA AAAAAAAAA 000000000 000000000 000000000 AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA AP \ AAAAAAAAAAAAAAA AAAAAAAAAAAAAAA AAAAAAAAAAAAAAA At-A AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA AAA 000 000 000 000 000 000 000000 000 000000 000 000000 000 000 000 000 000 000 000 000 000 000 000 000000 000 OCOOOO 000 000000 oeo 000 oeo 000 000 000 000000000 000000000 000000000 000000000 000000000 OOOOOQOOO 000 000 000 000 O:..iO OQQ GOO 000 OOG 000 000 000 000 000 000 GOO 000 000 000 GOO 000 000 000 000 000 000 000 QOO GOO 000 000 000 000000 GOO OOOOOG GOO 000 000000 GOO XERSPL version 102(2263)/3(61) run~ing on MTA061 *START* User CARPENTER,SA [400,4372] J0b XMONAO Seq. 4205 Date 25-Sep-78 12:27:16 Monitor IPC-F 603 [687] *START* /TC:~L21-4:CARPEN -- Distribution to ML21-4, slot 133 Fi Ie: DSKZ:XMCNAO.SEO<OS7>[400,3341] Created: 21-Sep-78 09:15:00 Printed: 25-Sep-78 12:27:17 QJEUE Switches: /FRINT:ARROW /FILE:ASCII /COPIES:1 /SPACING:1 /LIMIT:4060 /FORMS:NORMAL IDENTIFICATION SEQ 0001 PROD~CT CODE: AC-F080A-MC PRODUCT NAME: CXMONAO DEC/X" DATE: SEPTEMBER 1978 P~ODUCT MAINTAINER: DEC/X1' Su~p0rt MONITOR LIBRARY Group THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. DIGITAL EQUIP~ENT CORPCRATION ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY AP?EAR IN THIS MANUAL. THE SOFT~ARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER uNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION OF DIGITALS COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. Digital Equipment Corporation assumes no responsibility for the us~ or reliability of its software on equipment that is not supplied by Digital. copyright (c) 1973,1978 digital equipment corporation SEQ 0002 .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 310 523 564 17:26 TABLE OF CONTENTS COMMON EQUATE MODULE MONITeR TYPE CODE EQUATES MONITOR TABLE MODULE LIST WITH MONITOR TYPE CODES SEQ 0003 . MNS?EC - MONITOR SPECIFICATION FILE MNSPEC.MAC 21-JUL-78 14:12 MACY11 30A(1052) 20-SEP-75 COMMON EQUATE MODULE 17:26 PAGE 19 SEQ 0004, .TITLE MNSPEC - MONITOR SPECIFICATION FILE 508 :309 .S8TTL MONITOR TYPE CODE EQUATES 510 511 312 513 514 515 516 517 518 519 520 521 000001 000002 000004 000010 000020 000040 000100 000200 000400 A 9 C D E F G H I = = 000001 000002 000004 000010 000020 000040 000100 000200 000400 ;SMALLEST MONITOR ;NO MEMORY MANAGEMENT ;MEMORY MANAGEMENT ;11/60 ;11/70 ;9 WITH APT ;C WITH APT ;D WITH APT ;E WITH APT MNSPEC - MONITOR SPECIFICATION FILE 21-JUL-78 14: 12 MNSPEC.MAC 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 562 20-SEP-78 .SBTTL MONITOR TABLE 000000' 000101 000002' 000001 000004' OOO~O? 000006' 000002 000010' 000103 000012' 000004 000014' 000104 000016' 000010 533 539 540 541 542 543 544 545 546 547 543 549 550 551 552 553 554 555 556 557 558 559 560 561 MACY11 30A(1052) MONITOR TABLE 000020' 000105 000022' 000020 000024' 000106 000026' 000040 000030' 000107 000032' 000100 000034' 000110 000036' 000200 000040' 00011 1 000042' 000400 000044' 377 . ASCIZ .EVEN .WORD IA/ . A .ASCIZ .EVEN .WORD IBI .ASCIZ .EVEN .WORD ICI .ASCIZ .EVEN .WORD B C IDI 0 .ASCIZ .EVEN .wORD lEI .ASCIZ .EVEN .WORD IFI .ASCIZ .EVEN .WORD IGI .ASCIZ .EVEN .WORD .ASCIZ .EVEN .WORD .BYTE -1 E F G IHI H III I 17:26 PAGE , 9-1 SEQ 0005 1\1NS?EC - MONITOR SPECIFICATION FILE 21-JUL-78 14: 12 MNSPEC.MAC 564 565 56G 567 568 569 570 571 '572 573 374 575 576 577 578 579 .SBTTL MODULE LIST WITH MONITOR TYPE CODES ;+ ; THE FOLLOWING MODULES ARE LISTED FIRST BECAUSE THEY MUST ; LIE WITHIN THE LOWEST 4K OF THE RUNTIME EXERCISER. , 000045' 104 041505 000130 000052' 000777 046524 000054' 050101 000 000062' 000064' 000064' 000740 042117 051123 000126 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 G02 603 604 605 606 607 608 609 610 611 612 613 614 MACY11 30A(1052) 20-SEP-78 17:26 PAGE 19-2 MODULE LIST WITH MONITOR TYPE CODES 000066' 042502 000074' 000777 000076' 046102 043517 000 000104' 0,)0106' 000106' 000210 030066 000110' 046102 043517 COO 000116' 000120' 000120' ('00420 030067 000122' 050107 051105 000122 000136' 000777 000140' 052113 042523 000124 000146' 000734 000150' 040520 042522 OC() 000156' 000160' 000160' 00C777 051122 000162' 041:")20 040504 000 000170' 00C172' 000172' 00C777 040524 051124 041514 000174' 041520 A!B!C!DIE!F!G!H!I .ASCIZ /APTMOD/ .EVEN .WORD F!GIH!I .ASCIZ /BESRV/ .EVEN . WOF1D A!B!C!D!EIF!G!H!I .ASCIZ /BLOG60/ .EVEN .WORD D!H .ASCIZ /BLOG70/ .EVEN .WORD E! I .ASCIZ .EVEN .WORD 000101 000126' 00C777 000130' 052113 .ASCIZ .EVEN .WORD .ASCIZ .EVEN .WORD /DECX/ /GPA/ A!BIC!D!E!F!G!H!I /KTERR/ A!B!C!D!E!F!G!H!I .ASCIZ .EVEN .WORD /KTSET/ C!D!E!G!H!I .ASCIZ /PARERR/ .EVEN .WORD AIBIC!D!E!F!G!H!I .ASCIZ /PCDATA/ .EVEN .WORD A!B!CIDIEIFIG!H!I .ASCIZ /PCTRLC/ SEQ 0006 f\;H~S.)EC - MCi'JI TOR SP\::CIFICATION FILE 21-JUL-78 14: 12 1\1t~SPEC .MAC 000 000204' 000204' 000777 17:~6 20-SEP-7£ PAGE 19-3 MACY11 30A(1052) MODULE LIST WITrl MONITOR TYPE CODES 000202' 515 616 617 618 619 620 000206' 043120 .EVEN .WORD 044501 000114 000214' 000777 AIB!C!D!E!F!G!HII /PFAIL/ .ASCIZ .EVEN .WORD A!B!CIDIE!F!G!H!I .ASCIZ /PRRLOC/ .EVEN .WORD CID!E!G!H!I 521 62:2 623 624 325 626 627 328 000216' 051120 046122 00(; 000224' 00 022t) , 000226' 000734 041517 047514 000103 000230' 042522 C00236' 000734 .ASCIZ .EVEN .WORD /RELOC/ .ASCIZ .EVEN .WORD /RPIRQ/ AIB1C!D!EIFIG1H!I .ASCIZ /RSTRCY/ • EVEN .WORD AIB!C!D!EIF!G!H!I C!DIE1G!HII 62'3 630 631 632 633 634 635 636 637 638 639 640 541 642 643 S4L, 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 000240' 050122 051111 000121 000246' 000777 000250' 051522 051'24 000256' 000 000260' 000260 1 000777 054503 ;+ ; THE FOLLOWING MODULES MAY LIE ANYWHERE WITHIN THE ; RUNTIME EXERCISER. ,' 000262' 04150"\ 000270' 044524 000126 000777 041507 000272' 05110"1 000 000300' 000302' 000302' 000777 045510 040502 052103 000 000314' 000314' 00077'1 053111 000316' 040502 046504 000324' 000 000326' 000326' 000734 046505 000330' 042102 041501 000336' 000 0003..:\0' 000340' 000777 053116 051526 053122 000304' 000312' 000342 ' 042102 .ASCIZ .EVEN .WORD AIB!C!D!E!FIG!HII .ASCIZ /ARGCHK/ .EVEN .WORD A!B!C1D!EIFIG1H!I .ASCIZ /BACTIV/ .EVEN .WORD AIB1CID!EIF!G1H1I .ASCIZ /BADMEM/ .EVEN .WORD CIDIE!G1H!1 .ASCIZ /BDACNV/ .EVEN .WORD AIBIC!DIEIF!G1HII .ASCIZ /BDVSRV/ /ACTIV/ SEQ 0007 MACY 11 30A(1052) MODULE LIST WITH MNSPEC - MONITOR SPECIFICATION FILE 21-JUl-78 14:12 MNSPEC.MAC 000 000352 1 000352' 000776 000350' 664 665 666 667 668 669 670 671 672 673 674 675 676 677 078 679 68~ 681 682 683 684 685 686 687 688 689 650 691 692 693 694 695 696 697 698 699 700 70, 702 703 704 705 706 707 708 709 .EVEN .WORD 000354' 047502 041501 000362 1 000362' 000777 000364 1 047502 030501 000 000066 0003721 000777 0003741 046103 042522 000 000402 1 000404 1 000404' 000777 050117 000406' 046503 041504 000 000414' 000416 1 1 000416 000777 054520 000420' 046503 042104 000 000426' 000430 1 000430' C00777 042·103 000432 1 046503 050104 000 000440 1 00 0.~42 1 000442 1 000777 041522 000444 1 046503 051104 000 000452' 000454 1 000454 1 000777 052123 000456 1 046503 052104 00,) 000464' 000466 1 000466 1 000734 030502 000470 1 046503 052104 000 000476 1 000500 1 000500 1 000001 031102 000502 1 046503 052104 000 000510 1 000512 1 0005121 000042 031502 000514 1 052103 050514 0005221 000 000524 1 1 000524 000777 042525 .ASCIZ .EVEN .WORD 20-SEP-78 17:26 PAGE 19-4 TYPE CODES MO~ITOR B!CID!E!FIGIHII /BOAC/ AIBICID!E!FIG!HII /BOA16/ .ASCIZ .EVEN .WORD AIBICID!EIF!GIH!I .ASCIZ /CLREOP/ .EVEN .WORD A!B!CIDIEIFIGIHII .ASCIZ /CMDCPY/ .EVEN .WORD AIBIC1DIEIFIGIHII .ASCIZ /CMDDCD/ .EVEN .WORD A!BIC1DIEIF!GIH!I .ASCIZ /CMDPRC/ .EVEN .WORD A!B!C!D!EIFIGIHII .ASCIZ /CMDRST/ .EVEN .\lJORD AIBIC!DIE!FIGIHII .ASCIZ /CMDTB1/ .EVeN . ~IJORD CIDIE!GIHII .ASCIZ /CMDTB2/ .EVEN .WORD A .ASCIZ /CMDTB3/ .EVEN .wORD BIF .ASCIZ /CTLQUE/ .EVEN .WORD AIBICIDIEIFIGIHII SEQ 0008 i\lNSPEC - MON I TOR SPECIFICATION FILE 21-JUL-78 14: 12 MNSPEC.MAC 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 75G 757 000526' 047503 047516 000106 000534' 000734 000536' 050104 047505 000120 000544' OC0777 000546' 050104 052123 000 000554' 000556' 000556' 000777 052122 000560' 051104 046520 000 000566' 000570' 000570' 000777 042117 000572' 05:504 041516 000 000600' 000602' 000602' 000777 045510 042522 000103 000604' 051105 000612' 000777 MACY 11 30A(1052) 20-SEP-78 17:26 PAGE 19-5 MODULE lIST WITH MONITOR TYPE CODES .ASCIZ .EVEN .WORD /CONOF/ CIDIEIGIHII .ASCIZ .EVEN .WORD /DPEOP/ A!BICID!EIFIGIH!I .ASCIZ /DPSTRT/ .EVEN .WORD A!BIC!DIEIFIG!H!I .ASCIZ /DRPMOD/ .EVEN .WORD AIBICID!EIFIGIHII .ASCIZ /DUNCHK/ .EVEN .WORD AIBIC!DIEIFIG!HII .ASCIZ .EVEN .WORD A!B!C!DIEIFIGIHII .ASCIZ /FILLML/ .EVEN .WORD A .ASCIZ /FILLMS/ .EVEN .WORD B!CID!EIFIG!HII /ERREC/ 000614' 044506 046114 000 000622' 000624' 000624' 000001 046115 000626' 044506 046114 000 000634' 000636' 000636' 000776 051515 000640' 042507 050124 000 000646' ooe6se' 000650' 000777 000652' 051110 040504 000 000660' 000662' 000662' 000777 053523 .ASCIZ /GETPSW/ 051104 .EVEN .wORD .ASCIZ A!BIC!DIEtFIG!HII /HRDADR/ .EVEN .WORD A!BIC!DIEIFIG!HII 040522 000120 000664' 052110 000672' 000777 000674' 04151 1 051123 oeo 000702' 000704' 000704' 000420 047517 .ASCIZ .EVEN .WORD /HTRAP/ A!BIC!D!EtFtG!HtI .ASCIZ /ICSROO/ .EVEN .WORD Ell SEQ 0009 20-SEP-78 17:26 PAGE 19-6 MACY11 30A(1052) MODULE LIST WITH MONITOR TYPE CODES r,1NS?EC - MONITeR SPECIFICATION FILE 21-JUL-78 14:12 MNSPEC.MAC 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 051123 000706' 041511 000714' 000 000716' 000716' 000420 055123 040530 000115 000720' 042513 000726' 000776 000730' 043113. 046111 000114 000736' 000777 000740' 046513 050101 000746' 000746' 000776 000 046513 042117 00075E.' 000756' 000777 000 000760' 046513 047117 OOC 000766' 00077C' 000770' 00073~ 043117 000772' 051112, 047125 001000' 001000' 000734 000 000750' 001002' 051112, 001010' 00004~, 047125 000123 001012' 051513 046525 00102C' 001020' 000777 000 051512 051127 001030' 001030' 000777 000 001032' 052113 047117 OC1040' coe 001042' 001042' 000734 043117 001044' 050114 047117 001052' 008 001054' 001054' 00077E 043117 001056' 051514 041524 000 001064' 001066' 045510 001022' .ASCIZ /ICSRSZ/ .EVEN .WORD E! I .ASCIZ .EVEN .WORD /KEXAM/ .ASCIZ .EVEN .WORD /KFILL/ B!CID!E1F!G!H!I A!BIC!D!E!FIGIHII .ASCIZ .EVEN .WORD /KMAP/ .ASCIZ .EVEN .WORD /KMOD/ A!B!C!D1E!F!G!H1I .ASCIZ /KMONOF/ .EVEN .WORD C!D!E!G!H1I .ASCIZ .EVEN .WORD .ASCIZ .EVEN .WORD .ASCIZ .EVEN .WORD B!C!D!E!F!G!H1I /KRUN/ C!DIE!G!HII /KRUNS/ A!8IF /KSUM/ A!8!C!D!EIF!G!HII .ASCIZ .EVEN .WORD A!8IC!DIE1F!G!H!I .ASCIZ /KTONOF/ .EVEN .WORD C!DIE!G!H1I .ASCIZ /LPONOF/ .EVEN .WORD 8!CID!E!F1G!H!I .ASCIZ /LSTCHK/ /KSWR/ 80~ 803 804 8C5 806 807 808 .EVEN SEQ 0010 1\1NSPEC - MONITOR S PEe I FI CAT ION FILE 21-JUL-78 14:12 MNSPEC.MAC 809 MACYll 30A(1052) 20-SEP-78 17:26 PAGE 19-7 MODULE LIST WITH MONITOR TYPE CODES 001066' 000777 .wORD A!B!C!D!EIF!G!HII .ASCIZ jMSGDEQj .EVEN .WORD A!B!C!D!E!F!G!H!I .ASCIZ jMSGDGEj .EVEN .WORD A!B!C!D!EIF!G!H!I .ASCIZ jMSGDHOj .EVEN .WORD A!BIC!D!EIF!G!H!I .ASCIZ jNAMCHKj .EVEN .WORD A!BIC!D!EIF!GIHII 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 8'::0 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 051515 042107 000 CO 1100' 001100' 000777 050505 001102' 051515 042107 000 001110' 001112' 001112' 000777 042507 001114' 051515 042107 000 001122' 001124' 001124' 000777 047510 001126' 040516 041515 oeo 001134' 001136' 001136' 000777 045510 041127 000101 001070' 001076' 001140' 042516 001146' 000734 05251Ei 041515 000 001160' 001160' 000777 045510 041120 042522 OOC 001172 ' 000777 045501 042520 042116 001202' 001202' 000777 000 001204' 042520 042116 000 001212' 001214' 001214' 00G777 052111 042120 052101 000 001226' 001226' 000777 051105 001230' 043520 052105 000 001236' 001240' 001240' 000777 040520 050101 031062 001150' 001156' 001162' 001170' 001172' 001174' 001216' 001224' 001242' 046520 jNEWBAj .ASCIZ .EVEN .WORD C!D!E!G!HII .ASCIZ jNUMCHKj .EVEN .wORD A!B!C!D!EIFIG!H!I .ASCIZ jPBREAKj .EVEN .WORD A!B!C!DIE!F!G!H!I jPENDj .ASCIZ .EVEN .WORD A!D!C!D!E!F!G!HII .ASCIZ jPENDITj .EVEN .WORD A!B!C!D!E!F!G!H!I .ASCIZ /PDATERj .EVEN .WORD AIB!C!D!EIFIG!H!I .ASCIZ /PGETPAj .EVEN .WORD A!BIC!D!E!F!G!HII .ASCIZ /PMAP22/ SEQ 0011 r,I,,\;S PEe - MONITOR SPECIFICATION FILE 21-JUL-ia 14: 12 IVINSPEC.MAC 001250' 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 8S6 897 898 899 900 90; 902 903 .EVEN .WORD 001252' 000777 001254' 04752(· 047516 000106 000776 001264 1 051120 052102 000 001272' 00127<1' 001274' 000777 0421 17 053105 000124 001276' 051120 001304' 000777 001306' 20-SEP-78 17:26 PAGE 19-8 TYPE CODES ~~ONI TOR 000 00125~" 001262' MACY 11 30A(1052) MODlJLE :..:5T ~IJI TH 051120 053507 000102 001314' 000777 001316' 051120 040510 000 001324' 001326' 001326' 000777 042122 051515 000107 001330' 051120 001336' 000777 001340' 051120 051515 000 001346' 00135()1 001350' 000777 047107 001352' 05112CI 051515 000 001360' 001362' 001362' 000777 051507 001364' 051120 052117 000 001372 1 001374 1 001374 1 000777 040517 001376' C51120 040522 oeo 001404' 001406 1 001406 1 000777 042116 001410' 051120 047523 OO~J 001416 1 001420' 001420' 000777 052106 001422 1 040522 046517 042116 A!B!C!D!EIF!G!HII .ASCIZ .EVEN .WORD /PONOF/ .ASCIZ /PRBTOD/ .EVEN .WORD A!B!C!D!E!F!G1H!I .ASCIZ .EVEN .WORD B!C!D!E!FIGIH!1 /PREVT/ A!BIC!D!E!F!G!H!I .ASCIZ .EVEN .wORD /PRGWB/ .ASCIZ /PRHARD/ .EVEN .wORD A!B!C!D!E!F!G!H!I A!BIC!DIEIFIG!HII .ASCIZ .EVEN .WORD A!B!C!D!E!F!G!H!I .ASCIZ /PRMSGN/ .EVEN .WORD A!B!C!DIEIF!G!HII .ASCIZ /PRMSGS/ .EVEN .WORD A!B!C!D!E!F!G!H!I .ASCIZ /PROTOA/ .EVEN .wORD A!B!C!D!E!F!G!H!I .ASCIZ /PRRAND/ .EV!:N .WORD A!BIC!D!EIF!G!H!l .ASCIZ /PRSOFT/ .EVEN .wORD A!B!C!D!E!F!G!H!I .ASCIZ /RANDOM/ /PRMSG/ SEQ 0012 - MNSPEC MONITOR SPECIFICATION FILE 21-JUL-78 14: 12 MNSPEC.MAC 000 001432' 001432' 000777 20-SEP-78 17:26 PAGE 19-9 MACY11 30A(1052) MODULE LIST WITH MONITOR TYPE CODES 001430' 304 905 906 907 908 903 310 911 912 913 914 915 :316 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 94S 946 947 948 949 950 001434' 042522 041514 001442' 000 001444' 001444' 000734 046124 047516 000106 001446' 047522 001454' 000777 001456' 040523 051126 000 001464' 001466' 001466' 000777 051505 001470' 042523 042114 000 001476' 00150J' 001500' 000777 051505 040522 000120 001502' 052123 001510' 000777 001512' 054523 000 001520' 041523 045514 00152:~' 001522' 000776 001524' 054524 050520 000 001532' 001534' 001534' 000777 042525 001536' 04712:; 046511 001544' 000 001546' 001546' 000420 050101 001550' 04712:; 000101 050111 001556' 000420 001560' 041127 046106 000 001566' 001570' 001570' 000777 046511 001572' 051527 041124 000 001600' 001602' 001602' 000777 051525 .EVEN .WORD A!B!C!DIE!F!G!H!I .ASCIZ /RELCTL/ .EVEN .WORD C!DIE!G!HII .ASCIZ .EVEN .WORD A!B!C!D!E!F!G!H!I .ASCIZ /SAVRES/ .EVEN .wORD A!BICID!E!F!G!H!I .ASCIZ /SELDES/ .EVEN .WORD AIBIC!D!E!F!G!H!I /RONOF/ .ASCIZ .EVEN .WORD A!BIC!DIEIF!G!HII .ASCIZ /SYSCLK/ .EVEN .WORD B!C!D!EIFIG!HII .ASCIZ /TYPQUE/ .EVEN .WORD A!BIC!D!EIFIG!H!I .ASCIZ /UNIMAP/ .EVEN .WORD E! I /STRAP/ .ASCIZ .EVEN .WORD /UNIPA/ .ASCIZ /WBFLIM/ .EVEN .WORD A!B!C!D!E!F!G!H!I .ASCIZ /WSTBUS/ E! I .EVEN .WORD AIB!C!D!EIF!G!H!I SEQ 0013 f,lNSPEC - MONITOR SPECIFICATION FI LE 21-JUL-78 14: 12 MNSPEC.MAC 951 952 953 954 :355 956 957 958 959 96::> 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 98r) ;+ ; THE FOLLOWING MODULES ARE LISTED LAST BECAUSE THEY MUST NOT ; LIE WITHIN THE BOTTOM 4K OF THE EXERCISER. , 001604' 04111 :1 001612' 000777 001614' 050114 985 986 987 988 989 051104 000126 /TTDRV/ A!B!CID!E!F!G!H!I .ASCIZ /SIZPLA/ .EVEN .WORD A .ASCIZ /SIZPLB/ .EVEN .WORD B!F .ASCIZ /SIZPLC/ .EVEN .WORD C!G .ASCIZ /SIZPLD/ .EVEN .wORD DIH .ASCIZ /SIZPLE/ 001714' 000420 .E\lEN .WORD E! I 377 000001 .END 001632' 000777 001634' 001642' 044523 000126 oeo 051104 050132 000126 040514 001544' 000001 04~523 050132 041114 000 001656' 001656' 00004:;;' 001660' 001666' 04,~523 050132 0OO10~ 001672' 001700' 044523 000 00170:;;" 000210 050132 044523 050132 001704' 001712' 001714' 001716' 041514 000 001670' 001670' 001702' AIB!CID!EIF!G!HII .ASCIZ .EVEN .WORD 052124 001646' 001654' /KBDRV/ /LPDRV/ 001624' 001644' .ASCIZ .EVEN .WORD .ASCIZ .EVEN .WORD 051,04 001622' 000776 98~ 982 983 984 20-SEP-78 17:26 PAGE 19-10 MACY11 30A(1052) MODULI::: LIST WITH MONITOR TYP~ CODES cae, 042114 042514 .BYTE -1 B!C!D!E!F!G!H!I SEQ 0014 - n~S:)E.C MONITOR SPECIFICATION FILE i"i..JSPE.C. [yiAe 2i-JU ... -78 1 -," ... •' L,., 000001 A 000102 !'CSR I.CTglT= COL',OOO 1\[)D,~~2= 001000 !\;JR GOOO05 f.PT ,-=Ert= 000004 ;,PTPRE= 000200 ;':.)8 000106 !, S TAT = C00104 ;,UTJ 00C010 ,\UTOST= 020000 ~,liJAS COO~10 Ll (',00002 COOO01 000001 (;00002 ('00004 00C010 000020 000040 000100 000200 000400 001000 000002 002000 uO':;OCO 010000 020000 040000 100000 000004 OO()O10 000020 000040 000100 000200 OOOLl·OO :1 -: TO CHTOO UIT.J 1 BIT02 In T03 !311 84 !1: T 05 in T 06 HIT07 l~l T08 :)1 T09 8 =T1 [31Tl0 J IT 11 :3IT12 81.T13 81T14 l31 T 15 131 T2 [31 T3 13 IT 4 31T5 [31 T6 d1T7 !3 IT 8 31T9 df\CEF Jf<~rOD OO~OOO 000802 000020 .3f\IVODE = 040000 ,3KSLSH= 000134 ,:: 000004 ':::APRES= OOOOOL!· '::ASTA-:-= 000004 CDERC:= 000146 CCv. DC:= 000144 ChTHJI = 10COOO '::;LkPRE= 000001 COt\FIG= 00C056 '::C;CVF 000001 :;R 000015 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRlU 000010 D DCEVNT= 000011 DEFRTN= 000400 DROPMO= 100000 CSEVNT= 000014 DT.ADD::: 000042 DT.AP ::. 000100 DT.APK..: 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 OT.ES1= 000044 DT.E.VN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN::: 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS::: 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT. PT A= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000105 DT.SP = 000006 DT.SS1= 000046 DT.STO", 000010 DT.Sf1= 000012 OT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 OVID1 = 000014 000020 E ECCMEM::: 000100 ECCSTA::: 000010 ENBEOP= 010000 MACY 11 30A(1052) SYM90L TABLE 20--SEP-78 ENBNUL= 000001 ENDLST= 00000.1 EOPBrT::: 000001 ERRTYP= 000106 EVNTBE= 00020() EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 000040 F FATERR= 100000 00010') G H 000200 HRDCNT= 000044 HROPAS= 000050 000400 I ICONT = 000036 ICOUNT= 000040 ID~W;i' = 000122 000100 IE INDP;\R= 000040 INHDRP= 040000 INHEPR= 020000 lNHREL::: 001000 INHRRE= 000400 INIT 000030 INTR 000120 100000 IOMOD IOMODP= 1C2000 Im,~ODR= 112000 IOMODX= 110000 035060 JACK KlPARO= 172340 KIPAR1= 172342 K1PAR2= 172344 KIPAR3= 1723L;6 KIPAR4= 172350 KIPAR5= 172352 KlPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172~10 KIPDR5= 172312 KIPDR6= 1723~4 K1PDR7= 172316 KTERRO::: 000040 KTPRES= 0004CO KTSTAT= 000020 KTXTND= 0400(-0 LF 000012 17:26 PAGE 20 lPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= I'vlSGDER= MSGDRP= MSGECH= MSGEDP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSI,~B= MSGSMH= MSGS!'v1S= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR P;"RPRE= PARSTA= PASOH= PDPLSI= PDP60 PD::>70 PRIO PRI1 PRI4 PRI5 PRI6 PRl7 PRO PR4 PR5 PR6 PR7 PS SEQ 0015 000001 000200 07(3600 04,JOOO 001000 002000 OOiOOO 000010 000011 000005 00)017 177777 000013 00'J004 00,)022 00J007 00·)021 177775 (jOOO02 177776 000001 000006 000003 00)015 00'J014 00'.1016 OOJOOO 000012 00)020 001000 00)020 00)002 00:,)000 02·1020 00:)010 002000 000100 000034 020000 004000 018000 00:)000 00,)·)40 000200 000240 000300 000340 000000 00G200 000240 000300 000340 177776 P5W 177776 RANNUM= 000054 R3UFEA= 000130 RBUFPJ-\= 000126 R3UFSZ= 000132 R9U FVA= 000124 RJSERV= 000101 RDi,tiHMI = 000022 RELERR= 000020 RE L1\;10D= 020000 RELTIM:.: 010000 000056 RES1 00O~60 R::S2 R:CHAR= 0:1060 R?TDAT= 002000 R5TRT = u00112 RUB:JUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM S8ADR = 000102 SBKMOD::: 000000 SBI-\SEL= O"jOOOO SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 S:::.HLD::: 000010 SC.SCA= 000012 ScNDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOlNT= 000032 SPVALU= 002200 177572 Sh.O 177574 SR1 SR2 177576 172516 SR3 000026 STAT STATBl= 064757 ST AT1 = 000027 SUSPND= 000001 SVRO 000062 SVF11 000064 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 !\HJSPEC - MQ~l I TOR SPEC I FICA T ION FILE f\it~SPEC. MAC SYSERR= if,1P 1 0 = TQOVF = UIPARO= UIPAR1= UIPAR2= UIPAR3= 000100 000002 000002 177640 177642 177644 177646 ASS. 000000 001717 21-JUL-78 "I ~: 12 UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= MACY 11 30A(1052) SYMeOL TABLE 177650 177652 177654 177656 177600 177602 177604 000 001. ERRORS DETECTED: 0 DEFAULT GLOBALS GENE~ATED: 0 DSKZ:MNSPEC,DSKZ:MNSPEC=SPMAC/ML,EQUATE,MNSPEC RUN- rr ME: , 1 .3 SEC)NDS RUN-TIME RATIO: 9/2=3.2 CORE USED: 5K (9 PAGES) 20-SEP-78 UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= 17:26 PAGE 20-1 SEQ 0016 177606 177610 177612 177614 177616 000104 000040 WBUFEA= 000136 ~IiBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 WDFR 000116 WDTO 000114 WTINRE= 000352 WTWHMI= XFLAG XOFF = XON 000222 000005 000023 000021 001717R .MAIN. ~ACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 531 573 594 566 372 67B 727 734 745 763 785 808 819 843 867 885 890 947 952 1059 1222 1285 1381 1467 1537 1723 17:26 TABLE OF CONTENTS COMMON EQUATE MODULE DATABASE - MODULE HEADER DATABASE - TRAP AND VECTOR GLOBAL DEFINITIONS DATABASE - STUFF TRAP AND VECTOR AREAS DATABASE - DATA TABLE GLOBAL DEfINITIONS DATABASE - DATA TABLE VALUES GLOBAL DEFINITIONS DATABASE - DATA TABLE ALLOCATION DATA3ASE - PARITY TABLE -- PARTAB -- GLOBAL DEFINITION DATABASE - PARITY TABLE -- PARTAB -- ALLOCATION DATABASE - SYSTEM CLOCK TABLE -- SCTAB -- GLOBAL DEFINITIONS DATABASE - SYSTEM CLOCK TABLE AND OFFSET ADDRESSES DATABASE - DEVICE REGISTER GLOBAL DEFINITIONS DATABASE - DEVICE REGISTER DEFINITIONS DATASASE - CPU RELATED REGISTERS GLOBAL DEFINITIONS DA~ABASE - CPU RELATED REGISTER DEFINITIONS DATABASE - MISCELLANEOUS STORAGE GLOBAL DEFINITIONS DATABASE - MISCELLANEOUS STORAGE KERNE~ MODULE HEADER KERNEL - COMMON DEFINITIONS AND REFERENCES 001236 .PRINT ;SPMAC: VERSION 1.1 f-ERNEL - START UP ROUTINE KERN[~ RESTART ROUTINE KERNEL - INITIALIZATION ROUTINE KERNE_ - CAPTURE EVENT: DISPATCH TO SERVICE ROUTINE KERNE~ - CAPTURE EVENT: RETURN FROM SERVICING EVENT KERNE_ - DE-QUEUE NEXT MODULE IN CONTROL QUEUE ROUTINE KERNEL - DE-QUEUE NEXT MODULE: PASS CPU CONTROL TO MODULE .SEQ 0017 DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 19 DECX.MAC 19-5EP-78 14:52 COMMON EQUATE MODULE 508 509 .TITLE .IDENT DECX-11 JVO.Oj SEQ 0018 CONTROL MCDULE 510 511 512 513 514 515 516 517 ;++ MODULE NAME: DECX-11 518 519 520 521 522 523 MODULE DESCRIPTION: THIS MODULE IS THe DECjX-11 MONITOR CONTROL MODULE AND CONTAINS BOTH THE MONITOR'S DATABASE AND KERNEL ROUTINES 524 525 VERSION: 525 527 528 529 EDIT DATE BY REASON DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 20 DECX.MAC 13-SEP-78 14:52 DA~ABASE - MODULE HEAD~R 531 532 533 534 535 535 537 538 539 540 541 542 543 544 545 546 547 548 549 350 551 552 553 354 555 556 557 558 559 560 561 562 563 564 565 566 567 568 568 570 571 .SBTTL SEQ 0019 DATABASE - MODULE HEADER ;++ MODULE NAME: MONITOR DATABASE AREA FUNCTIONAL DESCRIPTION: THE MONITOR1S DATABASE CONTAINS ALL OF THE PARAMETERS AND VALUES THAT ARE USED BY BOTH THE MONITOR1S KERNEL ROUTINE AND THE SUBORDINATE MONITOR ROUTINES. INPUTS: NONE IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: NONE VERSION: 0.0 EDIT ;-- BY DATE REASON DECX-11 CONTROL MODULE MACY11 30A(1052} 20-SEP-78 17:26 PAGE 21 DECX.MAC 19-5EP-78 14:52 DATABASE - TRAP AND VECT~R GLOBAL DEFINITIONS 573 574 575 576 577 .S8TTL DATABASE - TRAP AND VECTOR GLOBAL DEFINITIONS 578 .GLOBL .GLOBL .GL08L .GLOBL .GL08L .GL08L .GL08L .GLOBL .GLOBL .GLOBL .GL08L .GLOBL .GL08L .GLOBL HTBUSS HTREIN RPIRQ PWRFL PWRDOWN PBDVEC STINT KBINT TTINT MEMPAR MEMGMT AP.PB $ENDAD CAST 573 580 581 582 583 584 585 583 587 588 589 590 591 592 SEQ 0020 DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 rAGE 22 CECX.MAC 19-5:P-78 14:52 DATABASE - STUFF TRAP AND VECTOR AREAS .SBTTL 594 595 593 597 ; LOAD TRAP AND VECTOR 000000 000002 000004 C00006 000010 000012 000014 000016 000020 000022 0000:24 000026 000030 000032 000034 000036 000040 000042 000044 000046 000050 000052 000054 000056 000060 000062 000064 000066 105000 000000 OOOOOOG 000340 OOOOOOG C003 ... :) OOOO',G .+2 HALT .WORD .WORD .WORD .WORD .WORD .WORD . WORD .WORD .WORD .WORD . WORD .WORD .WORD .WORD .WORD .WORD OOOOOOG 000340 OOCOOOG 0003·10 OOOOOOG 000000 OOOOOOG 000000 000000 000000 OGOOCOG IOTINS: PWRFL: EMTINS: TRP I NS: APTVEC: OOOOOOG 000000 00 0000 OOOOJOG 000001 OOOOciO OOOOOOG 000040 OOOOOOG 105000 ;(RESERVED) HT8USS PRI7 HTREIN PRI7 ;TIME OUT AND OTHER ERRORS RPIRQ PRI7 PWRDOWN PRI7 PBDVEC PRIO STINT PRIO ;IOT INSTRUCTION VECTOR o o o AP.PB $ENDAD o o TTVEC: .WORD • ~vORD .WORD .WORD ;RESERVED INSTRUCTION VECTOR ;HALT IF T BIT SETS ;POWER FAILURE VECTOR ;EMT INSTRUCTION VECTOR ;TRAP INSTRUCTION ;40 ;42 ;44 - APT PARAMETER BLOCK ;46 ;50 ;52 CAST ;54 1 ;56 KBINT PR I 1 TTINT PRI1 ;KEYBOARD .=60 KBVEC: 000040 ;+ INTERR~PT VECTOR ;TERMINAL INTERRUPT VECTOR 70 TO 176 AND 204 TO 776 hAVE .+2 AND HALT. TH~SE VECTOR LOCATIONS ; MAY BE STUFFED BY CERTAIN MONITORS WITH THE ADORESS OF THE BAD ; VECTOR SERVICE ROUTINE. THE PARITY AND KT VECTORS (114 & 250) MAY ; ALSO BE STUFFED WITH PARITY AND KT TRAP ROUTINES. 641 642 64:::; 644 646 647 648 649 .WORD .WORD TIMOUT: .WORD .WORD RESERV: . WORD .WORD 000000 64(; 645 AR~A ;- 604 631 632 633 634 635 636 637 638 639 ;START THIS AT ABSOLUTE 0 .=0 ;+ '303 305 .306 G07 605 609 610 611 612 613 614 615 616 617 618 319 620 621 622 623 624 £3:25 626 627 628 629 DATABASE - STUFF TRAP AND VECTOR AREAS .ASECT 000000 000000 598 :599 600 301 602 SEQ 0021 ;- 000022 .REPT .NLIST .+2 HALT • LIST '"'D<18> 20-SEP-78 17:26 PAGE 22-1 DECX-11 CONTROL MODULE MACY11 30A(1052) DATABASE - STUFF TRAP AND VECTOR AREAS DECX.rJlAC 19-5EP-78 14:52 650 651 652 G53 654 655 656 657 G53 .ENDR 000200 000200 000167 001774 START: 000137 DX.STRT .REPT . . 0<95> .NLIST .+2 HALT .LIST .ENDR 659 G60 661 662 663 664 .=200 JMP 001000 001000 000167 .::1000 001174 RESTART: JMP DX.STRT ;GO TO START ADDRESS SEQ 0022 DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 23 DECX.MAC 19-5EP-78 14:52 DATABASE - DATA TABLE GLOBAL DEFINITIONS 666 667 .SBTTL DATABASE - DATA TADLE GLOBAL DEFINITIONS .GLOBL DTABLE 668 669 670 SEQ 0023 DECX-11 CONTROL MODULE MACY11 30A(10S2) 2u-SEP-78 17:26 PAGE 24 DECX.MAC 19-5EP-78 14:52 DATABASE - DATA TABLE VALUES GLOBAL DEFINITIONS 672 373 .SBTTL DATABASE - DATA TABLE VALUES GLOBAL DEFINITIONS .GLOBL .GLOBL OV.KBBUF AC.MODQ 374 675 G76 ;ADDRESS OF KEYBOARD INPUT BUFFER ;MODULE-QUEUE-LIST ADDRESS SEQ 0024 DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 25 DECX.MAC 19-5EP-78 14:52 DATABASE - DATA TABLE ALLOCATION .SBTTL 678 G79 SEQ 0025 DATABASE - DATA TABLE ALLOCAT10N G80 ;+ 681 68.2 ; DATA TABLE ALLOCATION 683 684 j- 685 685 687 G88 689 69J 691 692 693 694 695 696 697 698 699 70':; 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 001004 001004 001006 001010 001012 001014 001016 001020 001022 001024 001026 001030 001032 001034 001036 001040 001042 001043 001044 001046 001050 001052 00-;054 001056 001060 001062 001064 001066 001070 001072 001074 001076 001100 001102 001104 001106 001110 001112 001114 DTABLE: 000000 000000 000000 000000 000000 000000 0000(1) 000000 000000 00000 ') 000000 000000 OOOOOOG OOOOOOG 000000 004 015 00020·) 000200 00000) 00000) 00000:,) 000000 0(000) 000000 000000 000000 001116 00 1160 000000 001100 000000 001104 000000 000000 000024 OOOOSO 001604 .WORD .WORD .WORD. .WORD .WORD .WORD . ~\!ORO .WORD .WORD . ''';ORD .WORD .WORD .WORD .WORD .WORD .BYTE .BYTE .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD o o o o o o o o o o o o OV.KBBUFF AC.MODQ o 4 <CR> 200 200 o o o o o o o o PARTAB SCTAB o o DTABLE+DT.PAS DTABLE+DT.AP o o "D20 "D40 "D900 ;DT.EVNT - EVENT CODE JOT.PC - PC+ OF TRAP jDT.PSW - PSW AT rIME OF TRAP jDT.SP - STAC~ POINTER AT TIME OF TRAP ;DT.STO - STATUS INDICATOR 0 ;DT.ST1 - STATUS INDICATOR 1 ;DT.CFO - CONFIGURATION WORD 0 ;DT.CF1 - CONFIGURATION WORD 1 JDT.ERR - ERROR WORD jDT.KBRSP - ADDRESS OF KEYBOARD RESPONSE BUFFER ;DT.KBECH - ADDRESS or- KEY80ARD ECHO BUFFER jDT.KBPRM - ADDRESS OF KEYBOAnD PROMPT ;DT.KBUF - ADDRESS OF KEYBOARD BUFFER POINTER ;DT.MLST - ADDRESS OF MODULE LIST ;DT.BLST - ADDRESS OF MODULE LIST ;DT.FCNT - FILLE~ COUNT (# OF NULLS) ;DT.FCHAR - CHARACTER AFTER WHICH NULLS ARE OIP ;DT.REL - RELOCATION CONSTANT ;DT.ADDR - CURRENT ADDRESS ;DT.ESIZ - EXERCISER SIZE ;DT.SSIZ - SYSTEM SIZE IN PAR FORMAT ;DT.WBUF - ADDR OF WRITE· BUFFER ;DT.WLLMT - WRIT~ BUFFER LOW LIMIT ;DT.WHLMT - WRITE BUFFER HIGH LIMIT jDT.SWR - SOFTWARE SWITCH REG(FRONT PANEL MEANS NOTHING) ;DT.EXS - # OF EXERCIS~R SYS E~RORS ;DT.PFL _. # OF POWER FAILS ;DT.PTA - ADDRESS OF PARITY TABLE ;DT.SCT - ADDRESS OF CLOCK TABLE ;DT.OFFSET - OFFSET INTO CURRENT 124K BANK ;DT.SYP - SYSTEM END OF PASS COUNT POINTER ;DT.PAS - SYSTEM END OF PASS COUNT IF NOT UNDER APT ;DT.APK - KEEP ALIVE COUNTER POINTER ;DT.AP - KEEP ALIVE IF NOT UN~ER APT JDT.RCS - FAKE KB ADDRESS FOR APT USE ;DT.HMX - MAX # OF HARD ERROR; ALLOWED BY OPTION MODULE ;DT.SMX - MAX # OF SOFT ERRORS ALLOWED BY OPTION MODULE ;DT.MTIME - MAX END OF PASS TIME(15 MIN.) BY A MODULE DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 26 DECX.MAC 19-5EP-78 14:52 DATABASE - PARITY TABLE -- PARTAS -- GLOSAL DEFINITION 727 72B 729 730 731 73:2 733 734 735 736 737 738 739 740 741 742 743 .SBTTL DATABASE - .GLOSL PARTAS .SSTTL DATABASE - PARITY TABLE -- PART AS -- GLOBAL DEFINITION PARITY TABLE -- PARTAB -- ALLOCATION ;+ ; 16 LOCATIONS FOR PARITY CSRS. THE TABLE IS TERMINATED WITH A 001116 001124 001132 001140 001146 001154 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 PARTAS SEQ 0026 .WORD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ° DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 27 DECX.MAC 19-5EP-78 14:52 DATABASE - SYSTEM CLOCK TABLE -- SCTAB -- GLOBAL DEFINITIONS 745 .SBTTL DATABASE - SYSTEM CLOCK TABLE -- SCTAB -- GLOBAL DEFINITIONS 746 747 748 749 750 751 752 753 754 755 756 757 758 759 ;+ ; SYSTEM CLOCK TABLE GLOBAL DEFINITIONS ,' - .GLOBL .GLOBL .GLOBL .GLOBL SCTAB CLOCK CLOCKL CLOCKP ;+ ; GLOBALS REFERENCED BY THIS DATABASE 760 761 762 763 .GLOBL KW11L .GLOBL KW11P .GLOBL .GLOBL LCLEAR PCLEAR 764 765 766 ;?OINTS TO THE HEADER ADDRESS OF ;OPTION MODULE ;POINTS TO THE HEADER ADDRESS OF ;OPTION MODULE ;INITIALIZE MODULE TIME TABLE IN ;INITIALIZE MODULE TIME TABLE IN KW11-L KW11-P KIIJ11-L KW11-P SEQ 0027 DECX-11 CONTROL MODULE MACY11 30A(10S2) 20-SEP-78 17:26 PAGE 28 DECX.MAC 19-5EP-78 14:52 DATABASE - SYSTEM CLOCK rABLE AND OFFSET ADDRESSES 768 769 770 771 772 '773 774 775 776 777 773 779 780 781 782 783 784 .SBTTL DATABASE - SYSTEM CLOCK TABLE AND OFFSET ADDRESSES ;+ ; SYSTEM CLOCK TABLE ALLOCATION 001160 001160 001162 001164 001166 001170 001172 001174 001176 OCC>OCO OOOOOOG OJOC>OOG 000000 000000 000000 OOOC>OOG COOOOOG SCTAB: CLOCK: CLOCKL: CLOCKP: . WORD .WORD . WORD .WORD .WORD .WORD .WORD .WORD o KW11L KW11P o o o LCLEAR PCLEAR ;SC.CLO ;SC.CKL ;SC.CKP ;SC.ADR ;SC.HLD ;SC.SCA ;SC.ALC ;SC.APC SEQ 0028 DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 29 DECX.MAC 19-5EP-78 14:52 DATABASE - DEVICE REGISTER GLOBAL DEFINITIONS 783 787 783 783 79') 791 792 793 79-4 793 793 797 798 799 .SBTTL DATABASE - DEVICE REGISTER GLOBAL DEFINITIONS .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL RCSR RBUF XCSR XBUF LPCSR LPBUF .SBTTL DATABASE - DEVICE REGISTER DEFINITIONS RCSR: RBUF: XCSR: XBUF: LPCSR: LPBUF: .WORD .WORD .WORD .WORD .WORD . 'iJORD SEQ 0029 800 a01 802 803 804 805 806 807 808 309 810 811 812 813 814 815 816 817 001200 001202 001204 001206 001210 001212 177560 177562 177564 177566 177514 177516 177560 177562 177564 177566 17151~ 177516 ;DL-11 R~CEIVER CONTROL AND STATUS REGISTER ;DL-11 R2CEIVER DATA dUFFER REGISTER ; DL-11 TRANSMITTER CONTROL AND STATUS REGISTER ; Dl-l " TRANSMITTER DATA BUFFER REGISTER ; LP 11 CONTROL STATUS REGISTER ; LP 11 BLJ!=FER REGISTER DECX-11 CONTROL MODU~E MACY11 30A(1052) 20-SEP-78 17:26 PAGE 30 DECX.MAC 19-5EP-78 14:52 DATABASE - CPU RELATED REGISTERS GLOBAL DEFINITIONS 819 820 821 822 823 824 825 826 827 829 829 830 831 832 833 834 835 835 837 838 839 340 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 .SBTTL DATABASE - CPU RELATED REGISTERS GLOBAL DEFINITIONS ;+ ;11/70 .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL CPULAR CPUHAR CPUMER CPUMNT CPUCPE CPULSZ ;+ ; CACHE CONTROL REGISTER AND TEMPORARY STORAGE .GLOBL .GLOBL CCNTRL KONTRL .SBTTL DATABASE - CPU RELATED REGISTER DEFINITIONS ;+ ; 11/70 , 001214 001216 001220 001222 001224 001226 177740 177742 177744 177750 177766 177760 CPULAR: CPUHAR: CPUMER: CPUMNT: CPUCPE: CPULSZ: .WORD .WORD .WORD .WORD .WORD .WORD 177740 177742 177744 177750 177766 177760 ;LOW ERROR ADDRESS REGISTER ;HIGH ERROR ADDRESS REGISTER ;MEMORY SYSTEM E:iROR REGISTER ;MAINTENANCE REGISTER ;CPU ERROR REGISTER ;LOW SIZE REGISTER ;+ ; CACHE CONTROL REGISTER AND TEMPORARY STORAGE , 001230 001232 177746 000000 CCNTRL: KONTRL: .WORD .WORD 177746 0 ;CACHE CONTROL REGISTER ;TEMPORARY STORAGE FOR CACHE OPERATIONS SEQ 0030 DECX-11 CONTROL MODULE MACV11 30A(1052) 20-SEP-78 17:26 PAGE 31 19-5EP-78 14:52 DATABASE - MISCELLANEOUS STORAGE GLOBAL DEFINITIONS DECX.MAC 867 868 8G9 870 871 872 873 874 875 876 877 878 879 .SBTTL DATABASE - MISCELLANEOUS STORAGE GLOBAL DEFINITIONS .GLOBL CTRLOF .SBTTL DATABASE - MISCELLANEOUS STORAGE CTRLOF: .WORD 88J 881 882 883 884 885 886 887 aas 001234 000000 0 ;ENABLE/DISABLE TERMINAL OUTPUT FLAG SEQ 0031 D~CX-11 DECX.MAC 89') 391 a92 893 894 895 896 897 398 899 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 32 19-5EP-78 14:52 KERNEL - MODULE HEADER .S9TTL KERNEL - MODULE HEADER ;++ MODULE NAME: KERNEL ROUTINE FUNCTIONAL DESCRIPTION: THIS ROUTINE CONTROLS THE EXECUTION OF THE DEC/X-11 SYSTEM EXERCISER, I.E., IT IS RESPONSIBLE FOR STARTING THE EXERCISER WHEN FIRST LOADED INTO MEMORY, INITIALIZING n:E ACTUAL RUNNING OF IT, COORDINA~ING THE RECEIVING AND SERVICING OF THE REAL TIME EVENTS AND PERFORMING SCHEDULING AND ACTIVATING FUNCTIONS OF THE EXERCISER. THIS IS ACCOMPLISHED WITH THE USE OF THE FOLLOWING ROUTINES: 90~ 901 902 903 904 905 DX.STRT 906 907 902 DX.RSTRT 909 910 311 DX. IN I 912 913 914 915 DX.CAPTURE 916 917 918 919 920 ox. DEQUEUE 921 922 923 924 925 926 927 928 929 930 931 932 933 93·~ 935 936 937 938 929 940 941 942 943 944 945 SEQ 0032 , THIS ROUTINE PERFORMS THE DUTIES REQUIRED TO GET THE EXERCISER GOING WHEN FIRST LOADED INTO MEMORY THIS ROUTINE PERFOR~S THOSE FUNCTIONS NECESSARY TO GET THE EXERCISE RESTARTED AFTER IT HAS BEEN RUNNING THIS ROUTINE IS RESPONSIBLE FOR INITIALIZATING THE EXERCISER THIS ROUTINE COORDINATES THE RECEIVING OF THE EXERCISER1S REALTIME EVENTS AND THE DISPATCHING OF CONTROL TO THE APPROPRIATE SERVICE ROUTINES THIS ROUTINE PERFORMS THE DE-QUEUING AND ACTIVATING FUNCTIONS OF THE MONITOR INPUTS: NONE ;IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: MANY SUBORDINATE ROUTINES CALLED: 1• FUNCTIONAL SIDE EFFECTS: VERSION: 0.0 EDIT BY DATE REASO:-.J DECX-11 CONTROL ~ODULE MACY1' 30A(1052) 2C-SEP-78 17:26 PAGE 33 DECX.MAC 19-5EP-78 14:52 KERNEL - COMMON DEFINITIONS AND REFERENCES 947 949 943 .SBTTL KERNEL - COMMON DEFINITIONS AND REFERENCES .PRINT .MCAll STRUCT STRUCT ;SPMAC: VERSION 1.1 $lSTIN = , $LSTTAG = , 350 951 352 (1) 953 954 955 956 957 958 959 96~ 961 962 S63 964 965 966 967 968 9G9 97C 971 972 973 974 975 976 977 978 979 980 981 982 983 98Ll 985 986 987 988 989 990 991 992 993 994 995 996 997 998 998 1000 1001 001236 001236 000001 000001 SEQ 0033 ;**************** , ; REFERENCED BY OTHER MODULES .GlOBl .GlOBl .GlOBl .GlOBl .GlOBl .GlOBl .GlOBl .GlOBl .GLOBl .GlOBl , DX.CAP DX.DEQ DX.RSTRT OX. I N I DX.HDR DX.RET DX.MON DX.R5 DX.KFl DX.SP ;CAPTURE EVENT ROUTINE ENTRY POINT ;DE-QUEUING ROUTINE ENTRY POINT ;RESTART EXERCIS~R ENTRY POINT ;INITIALIZATION ROUTINE ;MONITOR'S NEXT-TO-EXECuTE SLOT: MODULE'S HEADER ADDRESS ;MONITOR'S NEXT-TO-EXECUTE SLOT: MODULE'S RESUME ADDRESS ;MONITOR ID ;CR FLAG ;**************** ; ; GLOBAL REFERENCES , .GlOBL .GlOBl .GLOBL .GlOBl .GLOBL .GLOBl .GLOBL .GlOBl .GLOBl .GlOBL .GlOBL .GlOBL .GlOBL .GlOBL .GLOBL .GLO:3l .GLOBL .GLOBL .GLOBl .GlOBL .GlOBl. .Gi..OBL .GLOBL ST.EXT HT.EXT APTSlP RSTRCY KBINI CMDRST PREVT ?WRDmoJ MSGDEQ MSGDHOOK SAVREG RESREG lPINT CQINI TQINI CHKACT CHi"EOP ClREOP ACTIV AC.TPTR AC.TYPE AC.MPTR BACTIV ;SOFTWARE TRAP HANDLER EXIT ADDRESS ;HARD ERROR TRAP HANDLER EXIT ADDRESS ;APT SIZING AND SLEEP ROUTINE ;RESTART RECOVERY ROUTINE ;KEYBOARD DRIVER ENTRY POINT ;OUTPUT KEYBOARD PROMPT ROUTINE ;PROCESS EVENT MODULE ENTRY POINT ;POWER DOWN MODULE ENTRY POINT ;MESSAGE DE-QUEUING MODULE ENTRY POINT ;MESSAGE HOOK MODULE E~TRY POINT ;SAVE REGISTERS ROUTINE ;RESTORE REGISTE~S ROUTINE ;LP11 INTERRUPT ~OUTINE ;CONTROl QUEUE INITIALIZATOR MODULE ENTTRY POINT ;TYPE QUEUE INITIALIZATOR MODULE ENTRY POINT ;CHECK FOR ACTIVE MODJlES ;CHECK FOR END OF PAS3 TIME ;CLEAR EOP INDICATORS ;ACTIVATE NEXT O?TION MODULE ROUTINE ;MODUlE-TYPE-lIST POINTER ;MODULE-TYPE-LIST ;MODULE-QUEUE-LIST POINTER ; BACKGROUND MODULE ACTIVATE ROUTINE DECX-11 CONTROL MO~U_E MACY11 30A(10S2) 20-SEP-78 17:26 PAGE 33-1 DECX.MAC 19-5EP-78 14:52 KERNEL - COMMON DEFINITIONS AND REFERENCES .GLOBL .GL08L .GLOSL .GLOBL .GLOBL .GLO£3L .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOSL .GLOBL .GLOBL .GL08L .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1025 1027 1028 1029 SEQ 0034 ;BACKGROUND MODULE STATUS WORD ;COMMAND PROCESS ;BACKGROUND MODULE LIST POINTER ;8ACKGROUND NEXT-TO-EXECUTE SLOT ;BACKGROUND NEXT-TO-EXECUTE SLOT ;8ACKGROUND MECHANISM STATUS WORD ;MESSAGE DE-QUEUE BUSY INDICATOR ;DE-QUEUE NEXT ENTRY IN CONTROL QUEUE ;INITIALIZE ERROR LOGGING CPU'S ROUTINE ROUTINE ;ERROR RECOVERY ;RELOCATION MODULE ;SIZE AND POLL SYSTEM ;PROCESS RELOCATION ;BINARY TO DECIMAL ASCII CONVERSION ;KT APRS SETUP ;CACHE ON KEYBOARD COMMAND ;KT ON KEYBOARD COMMAND ;MAP BOX ON KEYBOARD COMMAND ;PARITY ON KEYBOARD COMMAND ;RUN COMMAND ;WRITE BUFFER ROTATION KEYBOARD COMMAND ;AUTOMATIC MODE START-UP ;AUTOMATIC MODE EOP ROUTINE BA.STAT CMDPRC BA.MPTR BA.HDR BA.RET BA.STAT MD.BSY DEQCQ IERRLO ERREC RELCTL SIZPOL PRRLOC BDACNV KTSET KCON KKTON KMON KPON KRUN KROTON DPSTRT DPEOP ;**************** ; LOCAL STORAGE - PROGRAM IMPURE STORAGE 103C 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 DX.KFL: .WORD Dx.HDR: .WORD OX. RET: .WORD DX.QFLG: .WORD DX.R5: .WORD DX.SP: .WORD 000000 000000 001236 001240 001242 oeoooo OO~244 OOO'JOO 001246 001250 001740 002200 , ;SET WHEN A CR HAS BEEN STRUCK ;MONITOR'S NEXT-TO-EXECUTE SLOT: MODULE'S HEADER ADDRESS ;MONITOR'S NEXT-TO-EXECUTE SLOT: MODULE'S RESUME ADDRESS ;CONTROL QUEUE UNDERFLOW INDICATOR ;POINTER TO MONITOR'S R5 STACK ;POINTER TO MONITOR'S R6 STACK 0 0 0 0 R5VALUE SPVALUE ;**************** , 001252 001260 001266 001274 001302 001310 001316 001324 001332 001333 001340 001345 001353 001360 001366 001371 04204:3 030455 05110~3 020122 052111 030060 042115 054103 10'1 04:3 047524 02004,) 045 046505 03510:3 000005 041505 020061 044503 046450 051117 030056 055055 047515 054057 054105 042523 047117 053040 020051 026532 026516 047515 035122 020040 054523 051440 040 044516 020040 000 052123 055111 ; lOCAL STORAGE - MESSAGES, ETC. DX.TITLE: EXERCISER (MONITOR VOo.O) MD-ZZ-CXMON-A? .ASCII ?%DEC/X-11 .ASCII /%MCN!TOR: DX.MON: DX.SIZ .ASCIZ / / .ASCII /%SYSTEM SIZE: / DX.SZK .BlKB "'D<5> / DECX-11 CONTROL MODU~E MACY11 30A(1052) 20-SEP-78 17:26 PAGE 33-2 DECX.MAC 19-5EP-78 14:52 KERNEL - COMMON DEFINITIONS AND REFERENCES 1047 1048 1049 1 :)50 1051 1052 1~53 1054 1055 1053 1057 001376 001402 001410 001416 001424 001432 001440 001442 045440 047524 020124 042105 051114 032040 001440 001442 000015 000045 052040 042114 040511 046040 022460 05 1 505 046440 041440 041517 000 DX.MED SEQ 0035 .ASCIZ / K%I .ASCIZ ITO TEST LD MEDIA CLR LOC 40%/ .EVEN DX.FAK DX.FK1 .WORD .WORD **************** BOTTOM OF R5 STACK DX.FK1 CR ;FAKE KEYBOARD BUFFER DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 34 DECX.MAC 19-5EP-78 14:52 KERNEL - START UP ROUTINE .SBTTL ~059 1060 1061 1062 1063 1864 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 (4 ) 1073 (4 ) 1079 (4 ) 1080 1 D81 1082 1083 1084 1085 1086 (4 ) 1087 (6 ) 1088 1089 1090 (2 ) 1091 1092 1093 1094 1095 1096 (6 ) (g) 1097 1098 1099 1100 1 101 1102 1103 (4 ) 1104 (4 ) 002200 KERNEL - SEQ 0036 START UP ROUTINE .=2200 ;+ ; THIS ROUTINE IS RESPONSIBLE FOR SETTING UP THE DIFFERENT SOFTWARE COMPONENTS ; OF THE MONITOR WHEN THE EXERCISER IS FIRST LOADED INTO MEMORY OR RESTARTED AT LOC. 100 DX.STRT: 002200 ;+ STUFF THE POWERFAILURE VECTOR AND SET UP THE STACKS 002200 002200 002206 1)02206 002212 002212 LET PWRFL := #PWRDOWN 012767 OOOOOOG 175616 MOV NPWRDOWN,PWRFL MOV NSPVALUE,SP MOV NR5VALUE,R5 LET SP .- #SPVALUE 012706 002200 LET R5 .- #R5VALUE 012705 001740 ;+ ; IF UNDER APT, WE MAY OR MAY NOT HAVE A SYSTEM TTY. FOR NOW, ASSUME ; WE DO AND STUFF THE TTY ADDRESS. ALSO, CLEAR THE "NO APT TTY" BIT IN ; CONFIGURATION WORD O. LET RCSR := N177560 002216 002216 002224 002224 042767 002232 002232 000005 012767 177560 176754 MOV N177560,RCSR BIC NNOAPTY,DTABLE+D LET DTABLE+DT.CFO '- DTABLE+DT.CFO CLR.BY #NOAPTY 000002 176566 INLINE <RESET> RESET ;+ ; IF FIRST TIME THROUGH DO THE FOLLOWING 002234 002234 002240 IF DTABLE+DT.ESIZ EQ #0 THEN 005767 001022 176610 TST BNE DTABLE+DT.ESIZ 50000$ MQV NDX.CAP,ST.EXT MOV NDX.CAP,HT.EXT ;+ ; STUFF THE EXIT ADDRESS FOR THE TWO TRAP HANCLERS: SOFTWARE ; AND HARDWARE 002242 002242 002250 002250 LET ST.EXT '- #DX.CAP 012767 003242 OOOOOOG LET HT.EXT .- NDX.CAP 012767 003242 OOOOOOG CONTROL MODULE MACY1, DECX-11 19-5EP-78 14:52 DECtZ.IJ.AC 1105 1103 1107 1103 1 10'3 1 110 1111 (4 ) 1 1 12 (4) 1 113 (3 ) (4 ) (3 ) (3 ) 1 1 14 (2 ) 1 1 15 1 116 11 17 1 1 13 (4 ) (:.q 111 ::; 1 12:) 1121 1122 1 12::' 1124 (6) 1125 (4 ) 1126 (3) (4 ) (3 ) (3 ) 1127 1123 '129 1130 1 131 1132 (6 ) ( 9) 1133 (3 ) (5 i (4 ) (3 ) (3 ) 1134 (4 ) 1125 (4 ) 1'36 30A(1052) 17:26 PAGE 34-1 2C-SEP-78 KERNEL - START UP ROUTINE SEQ 0037 ;+ ; SIZE AND POLL THE SYSTEM AND SORT MODULE Q LIST. ; CLEAR THE STAT INDICATORS ;- 002256 002256 002262 002262 002266 002266 002270 C02274 002300 002302 002302 005067 176532 005067 176530 LET DTABLE+DT.STO · - #0 LET DTABLE+DT.ST1 · - #0 THEN DO ANOTHER RESET. CALL SIZPOL IN <#DTABLE> 010546 012745 004767 012605 001004 OOOOOOG CLR DTABL::+DT.STO CLR DTABLE+DT.ST1 MOV MOV JSR MOV R5,-(SP) #DTABLE,-(R5) PC,SIZPOL (SP)+,R5 INLINE <RESET> RESET 000005 ;+ ; ELSE THIS IS NOT THE FIRST TIME THROUGH. , 002304 002304 002306 ELSE 000427 OR 50001$ BIC #177400,DTABLE+D CLR DTABLE+DT.ST1 MClV MOV JSR MOV R5,-(SP) #DTABLE,-(R5) PC,RSTRCY (SP)+,R5 CMP SEQ DTABLE+DT.ADDR,# 50002$ fJ10V MOV MOV JSR MOV R5,-(SP) #200,-(R5) #DTABLE,-(R5) PC,PRRLOC (SP)+,R5 50000$: ;+ ; GO RECOVER FROM THE RESTART, AND DONIT BE LONG ,' 002306 002306 002314 002314 002320 002320 002322 002326 002332 042767 177400 005067 176476 01054G 012745 004767 o 1 260~) 001004 OOOOOOG LET DTABLE+DT.STO · - DTABLE+DT.STO CLR.BY #177400 LET DTABLE+DT.ST1 · - #0 176500 CALL RSTRCY IN <#DTABLE> ;+ ; IF THE RTE IS RELOCATED, THEN RELOCATE BACK DOWN , 002334 002334 002342 002344 002344 002346 002352 002356 00:2262 00.2364 002364 002364 C023€4 IF DTABLE+DT.ADDR NE #200 THEN 026727 001410 176506 000200 C~LL C 1054(3 (l,274::; 012745 004767 ':)1260:'> PRRLOC IN <#DTABLE,#200> 000200 001004 OOOOOOG ENDIF 50002$: ENDIF 50001$: DECX-11 DECX.~AC 1137 1133 '133 1140 1 141 1 142 (6) (9 ) 1 143 (3 ) (4) (3 ) (3 ) 1 144 (4) (3) 1145 (6) 1 146 (4 ) 1147 1148 1 149 1150 1151 1152 (4 ) 1 153 «n 1154 (2 ) 1155 (2 ) 1156 1157 1158 1159 1160 1161 ( 3) ( 7) (6 ) (5 ) (4 ) (3 ) (3 ) 1162 (2 ) 1163 (2 ) 1164 (2 ) 1165 (2 ) '166 1167 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 34-2 19-5EP-78 14:52 KERNEL - START UP ROUTINE ;+ ; IF LOADED UNDER APT, DO APT INITIALIZATION. ; PRESENT BIT. 002364 002364 002370 002372 002372 C02374 002400 C02404 002406 002406 002410 002410 002410 002416 002416 SEQ 0038 OTHERWISE, CLEAR THE APT IF @#44 NE #0 THEN 005737 001407 010546 012745 004767 012605 000044 CALL APTSLP IN <#DTABLE> 001004 OOOOOOG ELSE 000403 042767 50003$: LET DTABLE+DT.CFO .- DTABLE+DT.CFO CLR.BY #APTPRES 000200 176402 ENDIF TST BEQ @#44 50003$ MOV MOV JSR MOV R5,-(SP) #DTABLE,-(R5) PC,APTSLP (SP}+,R5 BR 50004$ BIC #APTPRES,DTABLE+ CLR -(SP) MOV N7$,-(SP) 50004$: ;+ ; LOWER THE PRIORITY 002416 002416 002420 002420 002424 002424 002426 002426 LET -(SP) '- #0 LET - (SP) : = #7$ 005046 012746 002426 INLINE <RTI> 000002 INLINE <7$:> RTI 7$: ;+ ; OUTPUT MESSAGE TO IDENTIFY SELF 002426 002426 002430 002434 002440 002444 002450 002454 002456 002456 002456 002456 002460 002460 002462 002462 CALL MSGDHOOK IN <#DTABLE,#MSGPOP,#DX.TITLE,#2$> 010546 012745 012745 01L745 012745 004767 012605 MOV MOV MOV MOV MOV JSR MOV 002462 001252 000002 001004 OOOOOOG INLINE <1$:> 1 $: INLINE <NOP> 000240 INLINE <BR 1$> 000776 INLINE <2$:> ;+ NOP 8R 1$ 2$: R5,-(SP) N2$,-{R5} NDX.TITLE,-(R5) #MSGPOP,-(R5) #DTA8LE,-(R5) PC,MSGDHOOK (SP)+,R5 DECX-11 CGNTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 34-3 DECX.MAC 19-5EP-78 14:52 KERNEL - START UP ROUTINE i 168 1169 1170 1171 (4) 1172 (4 ) 1173 (4 ) ( 6) (9) 1174 (6) 1175 (6 ) 1176 (4 ) (3 ) 1177 1 1 ~'8 1179 1180 1181 1182 1183 (3 ) (5 ) (4 ) ( 3) (3 ) 1184 1185 1186 1 187 1188 1189 (3 ) (7 ) (6 ) (5 ) (4) (3 ) (3 ) 1190 (2 ) 1 191 (2 ) 1192 (2 ) 1193 (2 ) 1194 11 S5 1196 1197 1198 SEQ 0039 ; NOW DETERMINE SYSTEM SIZE IN THOUSANDS ;- 002462 002462 002464 002464 002470 002470 002470 002472 002474 002474 0025(;0 (,02500 002502 002502 002504 LET RO . - #0 LET R1 . - DTABLE+DT.SSIZ 005000 016701 176362 WHILE R1 GT HO DO 005701 003404 1627C1 LET R1 ... R1 - #40 LET RO .- RO + H1 000040 RO MOV DTABLE+DT.SSIZ,R TST BLE R1 50006$ SUB H40,R1 INC RO BR 50005$ MOV MOV MOV JSR MOV R5,-(SP) HDX.SZK,-(R5) RO,-(R5) PC,BDACNV (SP)+,R5 MOV MOV MOV MOV MOV JSR MOV R5,-(SP) H4$,-(R5) HDX.SIZ,-(R5) HMSGPOP,-(R5) #DTABLE,-(R5) PC,MSGDHOOK (SP)+,R5 50005$: 005200 ENDDO 000772 CLR 50006$: ;+ ; CONVERT SIZE TO DECIMAL ASCIZ , '- 002504 002504 002506 002512 002514 002520 CALL BDACNV IN <RO,HDX.SZK> 010546 012745 010045 004767 012605 001371 OOOOOOG ;+ ; OUTPUT SYSTEM SIZE MESSAGE , 002522 002522 002524 002530 002534 002540 002544 002550 002552 002552 002552 002552 002554 002554 002556 002556 CALL MSGDHOOK IN <HDTA8LE,#MSGPOP,HDX.SIZ,H4$> 010546 012745 012745 012745 012745 0047E7 012605 002556 001353 000002 001004 OOOOOOG INLINE <3$:> INUNE <NOP> 000240 INLINE <BR 3$> 000776 INLINE <4$:> + IF KT PRESENT GO SET UP APRS 3$: NOP BR 3$ 4$: DECX-11 CONTROL MODULE MACY11 30A(1CS2) 20-SEP-79 17:~6 PAGE 34-4 UECX.MAC 19-5EP-78 14:52 KERNEL - START UP ROUTINE 1199 (6 ) (9 ) 1200 (3 ) (4 ) (3 ) (3 ) 1201 (4) 1202 1203 1204 1205 1206 1207 1208 (3 ) 1209 1210 1211 1212 1213 1214 002556 002556 002564 002566 002566 002570 002574 C02600 002602 002602 002602 002602 (2 ) G02644 002646 002646 002650 002650 002650 002650 1218 (2 ) 1219 (4 ) 1220 (2 ) 00~406 CALL KTSET IN <NDTABLE> 0105413 012745 004767 012605 001004 OOOOOOG Bl T BEQ #KTPPES,DTABLE+D 50007$ MOV MOV JSR MOV R5,-(SP) #DTABLE,-(R5) PC,KTSET (SP)+,R5 JSR PC,DX.TURNON TST BEQ @l#40 50010$ MOV MOV MOV MOV MOV JSR MOV R5,-(SP) #6$,-(R5) #DX.MED,-(R5) #MSGPOP,-(R5) #DTABLE,-(R5) PC,MSGDHOOK (SP)+,R5 ENDIF 50007$: CALL DX.TURNON 004767 002064 ; IF EXERCISER LOADED BY XXDP MEDIUM, OUTPUT MESSAGE. 002644 1216 176234 ;+ 1217 (3 ) ( 7) (6) (5 ) (4 ) (3) ( 3) 000400 ;+ ( 2) 1215 IF NKTPRES SETIN OTA8LE+DT.CFO THEN 032767 ; GO TURN ON PROCESSOR OPTIONS ACCORDING TO CONF. WD. 0 ; AND UPDATE STATUS INDICATOR WORD. 002606 002606 002612 002614 002614 002616 002622 002626 002632 002636 002642 002644 002644 (6 ) ( 9) SEQ 004() IF @#40 NE #0 THEN 005737 001416 000040 CALL MSGDHOOK IN <NDTABLE,#MSGPOP,#DX.MED,#6$> C10546 01274!3 01:274:3 012745 01274!3 004767 012605 002650 001402 000002 001004 OOOOOOG INLINE <5$:> 5$: INLINE <NOP> NOP 000240 INLINE <BR 5$> BR 5$ 000776 ENDIF 50010$: INLINE <6$:> 6$: D~CX-11 DECX.~AC 1222 1223 1224 1225 1223 1227 1 '223 1229 1230 (4) 1231 (4 ) 1232 (4 ) 1233 (4) 1234 1235 1236 1237 1238 1239 (4 ) 1240 1241 1242 1243 1244 (4 ) 1245 1246 1247 1248 1249 1250 1251 1252 (3 ) CONTROL MCDULE MACY11 19-5EP-78 14:52 30A(105~) .SBTTL 1263 (6 ) (9) 1264 (3) (4) KERNEL - RESTART ROUTINE ; THIS ROUTINE PERFORMS THOSE FUNCTIONS NEEDED TO GET THE MONITOR GOING AGAIN ; AFTER IT HAS SEEN RUNNING , 002650 002650 002654 002654 002660 C02G60 002664 002664 . - #SPVALUE DX.RSTRT: LET SP 012706 002200 OiOS67 176370 012705 001740 010567 176356 LET DX.SP LET R5 . - SP . - #R5VALUE L1:.1 ....... DX.RS . - R5 MOV #SPVALUE,SP 1\10 V SP,DX.SP MOV #RSVALUE,RS MOV R5,DX.R5 CLR DTABLE+DT.ERR MOV DTABLE+DT.BLST,B JSR PC,DX.INI ;+ ; CLEAR THE ERROR WORD. , 002670 002670 LET DTABLE+DT.ERR 005067 . - #0 176130 ;+ ; RESET THE BACKGROUND POINTER , 002674 002674 LET BA.MPTR 016767 176140 ;+ ; , 002702 002702 .- DTABLE+DT.BLST OOOOOOG GO DO THE NECESSARY MONITOR INITIALIZATION, AND HURRY BACK CALL DX. IN I 004767 000112 ;+ ; 1 F THIS IS INITIAL START-UP AND WE ARE IN AUTO~ATIC MODE (XXDP OR ACT-ll), ; THEN MOVE THEXXDP MONITOR (EVEN IF IT DOESN1T EXIST, SINCE WE DON"T KNOW ; WHETHER WE1RE UNDER XXDP OR ACT-11) TO JUST ABOVE THE THEN FAKE A "RUN" COMMAND TO GET STARTED. ; EXERCISER. 125~ ( 9) SEQ 0041 ;+ 1253 1254 1255 1256 1257 1258 12CJ 1261 1262 (6 ) 20-SEP-78 17:26 PAGE 35 KERNEL - RESTART ROUTINE , IF #AUTOST NOTSETIN DTABLE+DT.ST1 THEN 002706 002706 032767 002714 082716 002716 002724 002726 002726 002730 00103"\ 032767 001406 010546 012745 020000 176102 000010 176074 IF #AUTO SETIN DTABLE+DT.CFO THEN CALL DPSTRT IN <#DTABLE> 001004 BIT BNE #AUTOST,DTABLE+D 50011$ BIT #AU10,DTABLE+DT. 8EQ 50012$ /V,OV MOV R5,-(SP) #DTABLE,-(R5) DECX-11 DECX.~AC ( 3) (3 ) 1265 (4) 1266 1267 1268 1269 1270 1271 (6) (9) 1272 (3 ) (5 ) (4 ) (3 ) (3 ) 1273 (4) 1274 (6) 1275 (4) 1273 1277 1278 12'79 1280 1281 1282 1283 (3 ) (4 ) (3 ) (3 ) 1284 (2 ) CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 P~GE 35-1 19-5EP-78 14:52 KERNEL - RESTART ROUTINE 002734 002740 002742 002742 004767 012605 SEQ 0042 OOOOOOG JSR MOV PC,DPSTRT (SP)+,R5 ENDIF 50012$: + IF THIS IS INITIAL START-UP WE ARE UNDER APT - GET THIS THING RUNNING RIGHT AWAY 1 002742 C02742 002750 002752 002752 002754 002760 002764 OC2770 OC'2772 002772 002772 002772 003000 003000 IF #APTPRES SETIN DTABLE+DT.CFO THEN 032767 001410 000200 176050 BIT BEQ #APTPRES,DTABLE+ 50013$ MOV MGV MOV JSR MOV R5,-(SP) #0,-(R5) #DTABLE,-(R5) PC,KRUN (SP)+,R5 BIS #AUTOST,DTABLE+D MOV MOV JSR MOV R5,-(SP) #DTABLE,-(R5) PC,CMDRST (SP)+,R5 JMP @#DX.DEQ CALL KRUN IN <#DTABLE,#O> 010546 012745 012745 004767 012605 000000 001004 OOOOOOG ENDIF LET DTABLE+DT.ST1 052767 020000 50013$: .- DTABLE+DT.ST1 SET.BY #AUTOST 176016 ENDIF 50011$: ;+ ; OUTPUT THE KEYBOARD PROMPT AND LET THE OPERATOR KNOW THAT THE ; SYSTEM IS NOW AWAITING KEYBOARD INPUT 003000 003000 003002 003006 003012 003014 003014 CALL CMDRST IN <#DTABLE> 010546 01274~) 001004 004767 012605 OOOOOOG 000137 003634 INLINE <JMP @#DX.DEQ> DECX-11 CONTROL M8C~LE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 36 DECX.MAC 19-5EP-78 14:52 KERNEL - INITIALIZATION ROUTINE 1286 1287 1288 1283 1290 1291 1292 1293 1294 1295 (2) 1296 1297 (3) 1298 1299 1300 1301 1302 1303 1304 (3 ) 1305 (3 ) .SBTTL KERNEL - INITIALIZATION ROUTINE ;+ ; THIS ROUTINE PERFOR~S THE INITIALIZATION FUNCTIONS THAT ARE REQUIRED ; TO GET THE DEC/X-l1 MONITOR GOING. ONCE THE INITIALIZATION IS COMPLETE ; AND THE MONITOR IS RUNNING, CONTROL IS RETURNED TO THE CALLER ROUTINE DX.INI 003020 003020 003020 003020 DX.INI: CALL SAVREG 004767 OOOOOOG JSR ; INITIALIZE THE QUEUE STRUCTURES - BOTH THE CONTROL QUEUE AND THE ; TYPE QUEUE 003024 003024 003030 003030 CALL CQINI 004767 OOOOOOG 004767 OOOOOOG ; INITIALIZE THE ERROR LOGGING STUFF ;- 1313 (4 ) PC,CQINI JSR PC,TQINI BIT BEQ #PDP70!PDP60,DTA 50002$ JSR PC,IERRLO ;+ 130S 1310 131 1 (3 ) JSR CALL TQINI i 308 1312 PC,SAVREG ;+ 1306 1307 (6 ) ( 9) SEQ 0043 003034 OC3034 002~42 003044 003044 003050 003050 IF #PDP70!PDP60 SETIN DTABLE+DT.CFO THEN 032767 001402 014000 004767 OOOOOOG 175756 CALL IERRLO ENDIF 50002$: i 314 1315 1316 ;+ INITIALIZE THE OPTION ~ODULE SERVICING MECHANISM, WHICH CONSISTS OF RESETTING ; THE POINTERS FOR THE MODULE-TYPE-LIST AND THE MODULE-QUEUE-LIST, CLEARING THE ; RELOCATION-MODE FLAGS, RESETTING THE ASSOCIATED BITS IN THE STATUS INDICATOR WORD ; ALSO, CLEAR THE SBKSEL BIT. 1 31~' 1318 1319 1320 132 i 1322 (4 ) 1323 (4 ) 1324 (6 ) 1325 ( f) } 1326 (6) 1327 1328 ;- 003050 003050 003056 003056 003064 OJ3064 003072 003072 003100 003100 012767 012767 052767 042767 042767 LET AC.TPTR . - #AC.TYPE LET AC.MPTR .- #AC.MODQ OOOOOOG OOOOOOG OOOOOOG OOOOOOG 100000 046002 010000 LET DTABLE+DT.STl '- LET DTABLE+DT.STO '- LET DTABLE+DT.ST1 .- 175724 175714 175710 ;+ MOV #AC.TYPE,AC.TPTR MOV #AC.MODQ,AC.MPTR DTABLE+DT.ST1 SET.BY #CK7IM BIS DTABLE+DT.STO CLR.BY #MODEXH!MODHOLD!BKMODE!TMPIO 8IC DTABLE+DT.ST1 CLR.BY #SBKSEL BIC #CKTIM,DTABLE+DT #MODEXH!MODHOLD! #SBKSEL,DTABLE+D DECX-11 CONTROL MOD~~E MACY1' 30A(1052) 20-SEP-78 17:26 PAGE 36-1 DECX.MAC 19-5EP-78 14:52 KERNEL - INITIALIZAT!ON RuUTINE 1329 1330 1331 1332 (4) 1333 ; RESET THE BACKGROUND STATUS WORD 003106 003106 lET BA.STAT .- #0 005067 ClR OOOOOOG ; NOW RESET THE OPTION MODULES, WHICH CONSISTS OF RESETTING THEIR ACTBIT AND EOPBIT BITS (6) 003112 003112 003116 003116 003116 003120 003122 003122 003124 003124 003132 003132 1343 CO~140 (4) 1339 (4 ) (6) (9) 1340 (4 ) 1341 (6) 1342 ( 6} 003140 1344 003144 (4 ) ( 3) 003144 003146 1345 1346 1347 1348 134S 1350 1351 (4 ) 1352 (4 ) (6 ) ( 9) 1353 (4 ) 1354 ( 6) 1355 (G) 1356 (6 ) 1357 (4 ) (3 ) 1358 1359 1360 1361 1362 1363 BA.STAT ;+ 133~ 1335 1336 1337 1338 SEQ 0044 lET RO .016700 DT~BlE+DT.MLST 175720 MOV DTABLE+DT.MLST,R TST BEQ (RO) 50004$ 1\1] V (RO),R1 arc #ACTBIT,STAT(R1) BICB #EOPBIT,XFLAG(R1 ADD #2,RO BR 50003$ MOV DTABLE+DT.BLST,R CMP BEQ {RO} , #ENDLST 50006$ MOV (RO),R1 BIC #IOMOD,STAT(R1) 8IS #BKIY.OD,STAT{R1) ADD #2,RO BR 50005$ WHILE (RO) NE #0 DO 50003$: 005710 001412 LET R1 011001 042761 004000 000026 142761 00000' 000005 062700 000002 .- (RO) LET STATeR') .- STAT(R1) CLR.SY #ACTBIT LET XFLAG(R1) :B= XFLAG(R1) CLR.BY #EOPBIT LET RO .- RO + #2 ENDDO 000764 50004$: ;+ ; GET BACKGROUND MODULE LIST POI~TER A~D MAKE SURE THAT THEY ARE ; ALL BKMODS. DUE TO THE TMP!O CONDITION. 003146 083143 003152 003152 003152 003156 003160 003160 003162 003162 003170 003170 003176 003176 003202 003202 003204 LET RO .- DTABLE+DT.8LST 016700 175666 WHILE (RO) NE #ENDLST DO 50005$: 021027 000000 0014~2 LET R1 011001 042761 100000 000026 052761 000020 000026 .- (RO) LET STAT(R1) .- STAT(R1) CLR.BY #IOMOD LET STAT(R1) .- STAT(R1) SET.BY #BKMOD LET RO .- RO + #2 062700 000002 ENDDO 000763 50006$: ;+ ; I NIT I ALI ZE THE MESSAGE DE-QUEU I NG MECHAN t SM 8Y RESETT I NG I TIS BUSY ; INDICATOR DECX-1' CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 3f-2 DECX.MAC 19-5EP-78 14:52 KERNEL - INITIALIZATION ROUTINE 1364 (4 ) 1365 1363 1367 1363 1369 1370 1371 1372 (6) ( 9) 1373 (3 ) (4 ) (3 ) (3 ) 1374 (4) 1375 1376 (3 ) 1377 1373 1379 (3) (3) (2 ) 003204 003204 LET MD.BSY 005067 OOOOOOG SEQ 0045 . - #0 C~R MD.BSY ;+ ; IF IT IS NOT YET TIME TO RELOCATE, ; GET THE KEYBOARD GOING, WHICH CONSISTS OF CALLING THE KEYBOARD DRIVER AT ITS I/O INITIALIZATION ENTRY POINT , 003210 003210 (,03216 003220 003220 003222 003226 003232 003234 003234 003234 003234 003240 003240 003240 003240 IF #RELTIME NOTSETIN DTABLE+DT.STO THEN 032767 010000 175576 001006 BIT BNE #RcLTliVlE,DTABLE+ 50007$ MOV M,JV JSR MOV RS,-(SP) #DTABLE,-(R5) PC,KBINI (SP)+,R5 JSR PC,RESREG RTS PC CALL KBIN! IN <#DTABLE> 010546 012745 004767 012605 001004 OOOOOOG ENDIF ~0007$: CALL RESREG 004767 OOOOOOG ENDRTN 50000$: 50001$: 000207 DECX-11 DECX.MAC 1381 1382 1383 1384 1385 1386 1387 1388 138'3 139J 1391 1392 1393 1394 1393 1396 1397 1398 1399 1400 1401 1402 (6) (9) 1403 (6 ) 1404 (4) 140::. 1406 1407 1408 1409 1410 1411 (2 ) 1412 (2 ) 1413 (2 ) 1414 (4 ) 1415 1416 1417 1418 1419 1420 1421 (6) (9 ) 1422 (6) (9 ) 1423 (2 ) MO~U~E MACY1' 30A(1052) 20-SEP-78 17:26 PAGE 37 19-5EP-78 14:52 KERNEL - CAPTURE EVENT: DISPATCH TO SERVICE ROUTINE CONTRO~ .SBTTL SEQ 0046 KERNEL - CAPTURE EVENT: DISPATCH TO SERVICE ROUTINE ;+ THIS ROUTINE FIELDS THE PHYSICAL EVENTS THAT ARE RECEIVED 8Y THE DECX/11 MONITOR, I.E., SOFTWARE GENERATED TRAPS AND HARDWARE ERROR TRAPS. THE TYPE OF EVENT IS DETERMINED AND THE CORRESPONDING EVENT CODE IS ENTERED INTO THE MONITOR'S DATA TABLE. THE LINKAGE INFORMATION ON THE STACK IS THEN RE~CVED AND ALSO ENTERED INTO THE DATA TABLE. THEN, BASED ON THE TYPE OF EVENT (DIRECT-RETURN OR DEFERRED-RETURN), THE MODULE'S REGISTERS MAY HAVE TO BE SAVED IN THE MODULE'S HEADER. CONTROL IS THEN PASSED TO THE APPROPRIATE SERVICE ROUTINE. DX.CAP: 003242 ;+ ; IF THIS EVENT ORIGINATED WITH A BACKGROUND MODULE, RESET THE MONITOR'S BACKGROUND MODE ; INDICATOR, THUS ALLOWING THE EVENT TO BE SERVICED IN IT'S ENTIRETY , '- 003242 003242 003250 003252 003252 003260 003260 IF #BKMODE SETIN DTABLE+DT.STO THEN 032767 001403 040000 175544 042767 040000 175534 BIT BEQ #BKMODE,DTABLE+D 50010$ BIC #BKMODE,DTABLE+D MDV (SP)+,DTABLE+DT. Mev (SP)+,DTABLE+DT. MOV (SP)+,DTABLE+DT. MOV SP,DTABLE+DT.SP LET DTABLE+DT.STO := DTABLE+DT.STO CLR.BY #BKMODE ENDIF 50010$: ;+ ; SAVE THE INFORMATION FOR THE NEW EVENT , 003260 003260 003264 003264 003270 003270 003274 003274 POP DTABLE+DT.EVNT 012667 175520 POP DTABLE+DT.PC 012667 175516 012667 175514 POP DTABLE+DT.PSW LET DTABLE+DT.SP 010667 175512 .- SP ;+ ; DETERMINE IF THE EVENT ORIGINATED FROM THE MONITOR, IF SO DON'T BOTHER ; SAVING THE REGISTERS AND SWITCHING STACKS 003300 003300 003306 003310 003310 003316 003320 003320 IF DTABLE+DT.EVNT GE #EVNTHD THEN 026727 175500 000200 175476 002200 00240~i CMP BLT DTABLE+DT.EVNT,# 50011$ CMP 8HI DTABLE+DT.SP,#SP 50012$ IF DTABLE+DT.SP LOS #SPVALUE THEN 026727 101001 000423 INLINE <8R 1$> 8R 1$ DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 37-1 DECX.MAC 19--SEP-78 14:52 KERNEL - CAPTURE EVENT: DISPATCH TO SERVICE ROUTINE 1424 (4) 1425 (4) 1426 1427 1428 1429 1430 1431 1432 143:l (2 ) 1434 (4 ) 1435 (6) 1436 (6) 1437 (2 ) 1438 (4 ) 1439 (4 ) 1440 (4 ) 1441 (4 ) 1442 (4 ) 1443 (4 ) 1444 (4) 1445 (4) 1446 1447 (2 ) 1448 1449 1450 1451 1452 1453 1454 1455 (6) ( 9) ENDIF 003322 003322 003322 003322 50012$: ENDIf 50011$: ;+ ; THE EVENT WAS EITHER DECLARED EXPLICITLY BY AN OPTION MODULE, OR CAUSED ; UNINTENTIONALLY BY ONE, SO SAVE THE REGISTERS IN ITS HEADER AREA AND SWITCH ; TO THE MONITOR'S R6 AND R5 STACKS , 003322 003322 003324 003324 003330 003330 003336 003336 003342 003342 003344 003344 003346 003346 003350 003350 003352 003352 003354 003354 003356 003356 003360 003360 003364 003364 PUSH RO 010046 LET RO 016700 156768 062700 175454 RO,-(SP) MOV DX.HDR,RO BISB DT ABLE+DT. PSlAJ ,ST ADD #SVRO,RO MOV (SP)+,(RO)+ MOV R1,(RO)+ MOV R2,(RO)+ MOV R3,(RO)+ MOV R4, (RO)+ MOV R5,(RO)+ MOV SP, (RO)+ MOV DX.R5,R5 MOV DX.SP,SP :B= STAT(RO) SET.BY DTABLE+DT.PSW 000026 000062 MOV · - RO + #SVRO POP (RO)+ 012620 · - R1 LET (RO)+ · - R2 LET (RO)+ · - R3 LET (RO)+ · - R4 LET (RO)+ · - R5 LET (RO)+ · - SP LET (RO)+ 010120 010220 010320 010420 010520 010620 016705 016706 LET R5 · - DX.R5 LET SP · - DX.SP 175662 175660 INLINE 003370 003370 <1$:> 1 $: ;+ ; NOW DETERMINE THE EVENT TYPE AND MARK THE RETUrtN-TYPE BIT ACCORDINGLY ; (DIRECT OR DEFERRED RETIIRN.) , 003370 003370 003376 IF DTABLE+DT.EVNT LT #DSEVNT THEN 026727 000014 000400 175406 LET DTABLE+DT.STO 003~00 052767 003~06 000403 003410 003410 175410 00200~ 003400 003406 1458 175710 LET RO (6 ) (4) (3 ) · - DX.HDR LET STAT(RO) 1456 1457 SEQ 0047 . - DTABLE+DT.STO SET.BY #DEFRTN CMP aGE DTABLE+DT.EVNT,# 50013$ SIS #DEFRTN,DTABLE+D SR 50014$ ELSE LET DTABLE+DT.STC .- 50013$: DTABLE+DT.STO CLR.8Y #DEFRTN DECX-11 CONTROL MODU_E MACY1, 30A(1052) 20-SEP-78 17:26 PAGE 37-2 DECX.MAC 19-5EP-78 14:52 KERNEL - CAPTURE EVENT: DISPATCH TO SERVICE ROUTINE (6) 1~59 (4 ) 1460 1461 1462 1463 003410 003416 003416 042767 000400 SEQ 0048 175376 SIC #DEFRTN,DTABLE+D MOV MOV JSR MOV R5,-(SP) #DTABLE,-(R5) PC,PREVT (SP)+,R5 ENDIF 50014$: ;+ ; NOW GO SERVICE THE EVENT , 1~64 1465 (3) (4) (3 ) (3) 003416 003416 003420 003424 003430 CALL PREVT IN <#DTASLE> 010546 012745 004767 Oi2605 001004 OOOOOOG CECX-11 CONTROL MSDU~E MACY" DECX.MAC 19-5EP-78 14:52 1467 1468 1469 1470 1471 1472 1·n3 1474 1475 1476 1 ·-i77 (6) (9) 1478 (3 ) (4) (3 ) (3 ) 1479 (4 ) 1480 1481 1482 1483 1484 1485 1485 1487 1488 1489 1490 003432 003432 003436 003440 003440 003442 003446 003452 003454 003454 (6) ( 9) 1494 149£ (6 ) 1497 (4 ) (3 ) 1495 (6 ) 1499 (4 ) 1500 (6) , 501 #0 THEN CALL ERREC IN <#DTABLE> 010546 012745 004767 012605 001004 OOOOOOG TST BEQ DTABLE+DT.ERR 50015$ MOV MOV JSR MOV RS,-(SP) #DTABLE,-(R5) PC,ERREC (SP)+,R5 ENDIF 50015$: , 003512 003520 003520 003526 003526 003530 J03530 003530 003536 003536 003536 003536 003544 1493 N~ 175366 IF THE EVENT ORIGINATED WITH A BACKGROUND MODULE, DETERMINE IF DEFERRED RETURN. IF SO, LOAD THE HEADER ADDRESS AND RETURN ADDRESS INTO THE BACKGROUND QUEUE, AND SET THE "BK" SUSPEND BIT. OTHERWISE, THE MODULE IS WORKING ITS WAY THROUGH THE MONITOR QUEUES, SO SET THE BKDEF BIT IN THE BK STATUS WORD. IN EITHER CASE, SET THE DEFERRED RETURN BIT IN THE STATUS ItJDICATOR. (4 ) (6 ) IF DTABLE+DT.ERR 005767 001406 ;+ 003512 1492 KERNEL - CAPTURE EVENT: RETURN FROM SERVICING EVENT ; WAS THE EVENT AN ERROR, OR DID THE SERVICING OF THE EVENT RESULT ; IN AN ERROR? IF SO PASS CONTROL TO THE ERROR RECOVERY HANDLER AND ; DON'T EXPECT TO GET CONTROL BACK 1495 (6) ( 9) SEQ 0049 ;+ (4 ) 1491 20-SEP-78 17:26 PAGE 38 KERNEL - CAPTURE EVENT: RETURN FROM SERVICING EVENT .SBTTL 003454 003454 003460 003460 003466 003470 C03470 003476 00::1476 003504 003506 003506 (4 ) 30A(1052) LET RO 016700 . - DX.HDR 175560 MOV DX.HDR,RO BIT B~Q #BIT04,STAT(RO) 50016$ BIC #ACTBIT,STAT(RO) BIT BNE #DEFRTN,DTABLE+D 50017$ IF #8IT04 SETIN STAT(RO) THEN 032760 001426 000020 042760 004000 000026 LET STAT(RO) . - STAT(RO) CLR.BY #ACTB!T 000026 IF #DEFRTN NOTSET!N DTABLE+DT.SiO THEN 175310 032767 001011 000400 010067 OOOOOOG 016767 175270 OOOOOOG 052767 000001 OOOOOOG .- RO MOV LET BA.RET . - DTABLE+DT.PC MOV LET BA.STATUS . - BA.STATUS SET.BY #SUSPND LET BA.HDR RO,BA.HDR DTABLE+DT.PC,BA. SIS #SUSPND,BA.STATU BR 50020$ BIS #BKDEF,BA.STAT ELSE 000403 LET BA.STAT 052767 000002 .- 50017$: BA.STAT SET.BY #BKDEF OOOOOOG ENDIF 50020$: LET DTABLE+DT.STO 052767 000400 . - DTASLE+DT.STO SET.BY #DEFRTN SIS 175250 ENDIF #DEFRTN,DTABLE+D DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 38-1 DECX.MAC 19-5EP-78 14:52 KERNEL - CAPTURE EVENT: RETURN (4) 15C2 1503 1504 1505 1506 1507 1508 1:309 (6 ) ( 9) 1510 (6) 151 1 (2 ) 1512 (4 ) 1:313 1514 1515 1516 1517 1518 (4) 1519 (4 ) 1520 (4) (6 ) 1521 (4 ) 1522 (4) 1523 (4 ) 1524 (4 ) 1525 (4 ) 1526 (4 ) 1527 ('-1 ) 1528 1529 1530 1531 1532 1533 (2 ) 1534 (2 ) 1535 (2 ) FRC~ SEQ 0050 SERVICING EVENT 50016$: 003544 ;+ ; WAS THE EVENT JUST SERVICED OF THE 'DEFERRED-RETURN ' TYPE WHERE ; CONTROL IS NOT RETURNED IMMEDIATELY TO THE MODULE/PROCESS THAT ISSUED ; THE EVENT. IF IT IS, GO GET THE NEXT MODULE FROM THE CONTROL QUEUE 003544 003:;44 003552 003554 003554 003562 003562 003564 003564 IF #DEFRTN SETIN OTABLE+DT.STO THEN 032767 001404 000400 175242 042767 000400 175232 #DEFRTN,OTABLE+D BIT S0021$ BEQ LET DTABLE+DT.STO := DTABLE+DT.STO CLR.BY #DEFRTN #DEFRTN,DTABLE+D SIC IN LINE <BR DX.DEQ> BR DX.DEQ 000424 ENDIF S0021$: + 003564 003564 003570 003570 003574 003574 003600 003604 C03604 003506 003606 003610 OC3610 003612 003612 003614 003614 003616 003616 003620 003620 THE EVENT ORIGINATED WITH AN OPTION MODULE, SO RESTORE IT'S REGISTERS AND SWITCH STACK . - SP LET DX.RS . - RS LET RO · - DX.HDR + #SVR6 LET DX.SP 010667 175460 010567 175452 016700 062700 175440 000076 · - (RO) LET RS · - -(RO) LET SP 011006 014005 LET R4 014004 LET R3 014003 LET R2 014002 ·- -(RO) ·· - -(RO) SP,DX.SP MClV RS,DX.R5 MOV ADD DX.HDR,RO #SVR6,RO MOV (RO),SP MOV -(RO),R5 MOV -(RO),R4 MOV -(RO),R3 MOV -(RO),R2 MOV -(RO),R1 MOV -(RO),RO MOV DTABLE+DT.PSW,-( MOV DTABLE+DT.PC,-(S 2$: RTI -(RO) ·- -(RO) LET RO · - -(RO) LET R1 01400': MOV 014000 + NOW RETURN CONTROL 003622 003622 003626 003626 003632 003632 PUSH DTABLE+DT.PSW 016746 175162 PUSH DTABLE+DT.PC 016746 000002 1751S4 INLINE <2$: RTI> GECX-1' CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 39 DECX.MAC 19-5EP-78 14:52 KERNEL - DE-QUEUE NEXT MODULE IN CONTROL 1537 1533 .SBTTL 1:539 i :342 003634 003634 DX.DEQ: 005067 175404 (3 ) (4 ; (3 ) (3 ) 1564 1565 1566 , 567 1568 1569 1570 (6) ( 9) 1571 (3 ) (4 ) (3 ) (3 ) , 572 (4 ) 1573 (4 ) 1574 1575 1576 1577 SEQ 0051 DE-QUEUE NEXT MODULE IN CONTROL QUEUE ROUTINE LET DX.QFLG .- #0 CLR , DX.QFLG REPEAT INLlNE <3$:> 003640 003640 3$: ;+ ; INCREMENT THE APT "KEEP-ALIVE" COUNTER. ;- 003640 003640 LET @DTABLE+DT.APK := @DTABLE+DT.APK + #1 005277 175236 INC CPlDTABLE+DT.APK MOV MOV JSR MOV R5,-(SP) #DTABLE,-(R5) PC,MSGDEQ (SP)+,R5 CMP BNE DX.KFL,#1 50022$ Mev MOV JSR MOV R5,-(SP) #DTABLE,-(RS) PC,CMDPRC (SP)+,R5 CLR DX.KFL + CHECK THE MESSAGE QUEUE FIRST 1560 1561 1562 1563 ROUTINE ;+ 3~IIt=Ou/"-EP. THIS ROUTINE IS ENTERED CNLY WHEN NO OTHER MONITOR MODULES OR OPTION MODU~ES ARE EXECUTING. ITS MAIN FUNCTIONS ARE TO DE-QUEUE THE NEXT MESSAGE TO BE PRINTED, ACTIVATE THE NEXT MODULE IN THE MODULE-QUEUELIST, AND TO DE-QUEUE THE NEXT MODULE IN THE CONTROL QUEUE AND ALLOW IT TO BEGIN EXECUTION. IF THERE ARE NO MODUL~S WAITING IN THE MODULEQUEUE-LIST OR IN THE CONTROL QUEUE, THIS ROUTINE SIMPLY KEEPS CONTROL BY SITTING IN A CLOSED LOOP. 1540 1341 1543 1544 1545 1546 1547 1548 1549 1550 (4) 1551 1552 (2) 1553 155Li 1555 1556 1557 (6) 1558 1559 KERNEL - QU~UE 003644 003644 003646 003652 003656 CALL MSGDEQ IN <#DTABLE> 010546 012745 004767 012605 001004 OOOOOOG + IF THE KS FLAG IS SET - WE HAD A CR 003660 003660 003E;66 003670 003670 003672 003676 003702 003704 003704 003710 003710 SO GO SERVICE IF DX.KFL EQ #1 THEN 026727 001010 175352 000001 CALL CMDPRC IN <#DTABLE> 010545 012745 004767 012605 001004 OOOOOOG 005067 175326 LET DX.KFL '- #0 ENDIF 50022$: + IF WE ARE EXECUTING IN RUN MODE, GO THRU THE SCHEDULING ALGORITHM CECX-1' CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 39-1 DECX.MAC 19-5EP-78 14:52 KERNEL - DE-QUEUE NEXT MODULE IN CONTROL QUEUE ROUTINE 1573 1579 \ 6) (9) 1580 (2) 1581 (4 ) 1582 1583 1584 1583 1586 1587 (6 ) ( 9) 1583 (3) (4) ( 3) (3 ) 1589 (6) 1590 (3 ) (4 ) (3 ) (3 ) 1591 (4) 1592 (4 ) 1593 '594 1595 1596 1597 1598 1599 1600 1601 1502 1(303 1604 (6 ) ( 9) 1605 (3 ) (4) (3 ) (3 ) 1606 (6 ) 1607 (G) (9 ) 003710 003710 003716 003720 003720 003724 003724 SEQ 0052 IF #RUNMODE NOTSETIN DTABLE+DT.STO THEN 032767 001002 100000 000167 000614 B!T BNE 175076 #RUNMODE,DTABLE+ 50023$ INLINE <JMP 6$> JMP 6$ ENDIF 50023$: ;+ ; START BY LOOKING AT THE RELOCATION STUFF. IF ITIS TIME TO RELOCATE, IF SO, RELOCATE. ; IF ALL MODULE ACTIVE BITS ARE CLEAR. GO SEE , 003724 003724 003732 003734 003734 0:)3736 003742 003746 003750 003750 003752 003752 003754 003760 003764 OC3766 IF #RELTIME SETIN DTABLE+DT.STO THEN 032767 001415 01 05it() 012745 004757 0126C5 010000 175062 CALL CHKACT IN <#DTABLE> 001004 OOOOOOG #RELTIME,DTABLE+ 50024$ MOV MOV dSR MOV R5,-(SP) #DTABLE,-(R5) PC,CHKACT (S?)+,R5 BCS 50025$ MOV MOV JSR MOV R5,-(SP) ItDTABLE,-(R5) PC, RELCT L (SP)+,R5 IF.NO.ERROR THEN 103406 010546 012745 004767 BIT BEQ CALL RELCTL IN <#DTABLE> 001004 OOOOOOG 0~2605 ENDIF 50025$: 003766 ENDIF 003766 003766 50024$: ;+ IF THE LAST SYSTEM EOP WAS IN LO\tJEST MEMORY (MEMPAS=1), IT IS TIME TO CHECK FOR A COUPLE OF THINGS. (1) IF WE ARE RUNNING UNDER XXDP OR ACT-11 (AUTO= 1 ) , THEN IT IS TIME TO RETURN THE THE XXDP/ACT-11 MONITOR. (2 ) IF THERE ARE SBK MODULES THAT ARE SELECTED, IT IS TIME TO STOP ALL MODULES AND THEN RESTART THE!V1 SO THE SBK MODULES WILL RESTART. , 003766 003766 003774 003776 003776 004000 004004 004010 004012 004012 004014 004014 004022 IF HMEMPAS SETIN DTABLE+DT.ST1 THEN 032767 001434 040000 175022 MOV MOV R5,-(SP) #DTABLE,-(R5) PC,CHKACT (SP)+,R5 BCS 50027$ BIT BEQ #AUTO,DTABLE+DT. 50030$ MOV 001004 OOOOOOG JSR IF.NO.ERROR THEN 103425 032767 001406 HMEMPAS,DTABLE+D 50026$ CALL CHKACT IN <#DTABLE> o 1 C54~3 012745 004767 012605 BIT BEQ IF HAUTO SETIN DTABLE+DT.CFO THEN 000010 174776 DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 39-2 DECX.MAC 19-5EP-78 14:52 KERNEL - DE-QUEUE NEXT MODULE IN CONTROL QUEUE ROUTINE 1608 (3 ) (4) (3 ) (3 ) 1:303 {4 ) 1610 (6 ) (9) 1611 (3 ) 1612 (6) 1313 (2 ) 1514 (4 ) 1615 (4 ) 1616 (4 ) 1617 1518 16iS 1620 1621 1622 1623 1624 1625 (6 ) (9 ) (6 ) (9 ) 1626 (6 ) (8) (6 ) (9 ) ( G) 1627 (3 ) (4 ) (3 ) (3 ) 1628 (4 ) 1629 (4) 1630 1631 153:: 1633 1634 1635 004024 004024 004026 004032 004036 004040 004040 004040 004040 004046 004050 00Ll050 004054 004054 004062 004062 004066 004066 004066 004066 0011,066 004066 SEQ 0053 CALL DPEOP IN <#DTABLE> 010546 012745 004767 012605 MOV MOV JSR MOV 001004 OOOOOOG R5,-(5P) #DTAOL~,-(R5) PC,DPEJP (SP)+,R5 . ENCIF 50030$: IF #SBKSEL SETIN DTABLE+DT.ST1 THEN 032767 001407 010000 004767 176744 042767 040000 000167 177546 BIT BEQ 174750 #SBKSEL,DTABLE+D 50031$ CALL DX.INI JSR PC,DX.INI .- DTABLE+DT.ST1 CLR.BY #MEMPAS BIC #MEMPAS,DTABLE+D INLINE <JMP DX.DeQ> JMP DX.DEQ LET DTABLE+OT.ST1 174734 ENDIF 5003,$: ENDIF 500275: ENDIF 50026$: ;+ ; IF ITS NOT RELOCATION TIME AND NOT TIME FOR XX)P RETURN, THEN ; IF WE'RE NOT IN A 'HOLD' STATE WAITING ON A 5BI\ OR N8K MODULE, SEE IF WE CAN ; GET SOMETHING GOING ;- 004066 004066 00·1:)74 004076 004104 004106 004106 004114 004116 004124 004126 00·1126 00412E. 004130 004124 004140 004142 004142 004142 004142 032767 001022 032767 001016 032767 001404 032767 001406 010546 012745 004767 012605 010000 174720 040000 174712 006000 174700 005000 174670 001004 OOOOOOG IF #RELTIME NOTSETIN DTABLE+DT.STO AND #MEMPAS NOTSETIN DTABLE+DT.5T1 THEN BIT #RELTIME,DTABLE+ BNE 50032$ BIT #MEMPAS,DTABLE+D 8i\iE 50032$ IF #MODEXH!MODHOLD NOTSETIN DTABLE+DT.STO OR #MODEXH!MODSEL SETIN DTABLE BIT hMODEXH!MODHOLD, BEQ 50033$ BIT #MODEXH!MODSEL,D BEQ 50034$ 50033$: CALL ACTIV IN <#DTABLE> MOV R5,-(5P) MOV #DTABLE,-(R5) JSR PC,ACTIV MOV (SP)+,R5 ENDIF 50034$: ENDIF 50032$: ;+ ; IS THERE AN OPTION MOCULE IN THE CONTROL QUEUE AWAITING EXECUTION? ;004142 CALL DEQCQ OUT <DX.HDR,DX.RET> DECX-11 CONTROL MODU~E MACY11 30A(1052) 20-SEP-78 17:26 PAGE 39-3 DECX.MAC 19-5EP-78 14:52 KERNEL - DE-QUEUE NEXT MODULE IN CeNTROl QUEUE ROUTINE (4) (3 ) (4 ) (4) 1 ~336 (6) 1537 (4 ) 1639 1639 1640 1 341 1642 1,343 1644 1645 1046 (6) (8 ) (6) (8) (6) ( 9) (6 ) 1647 (6) ( 9) 1643 (6) 1649 (4 ; 1650 (2) 1651 (4 ) 004142 004146 004152 004155 004162 004162 004164 004.64 162705 004767 012567 012567 000004 OOOOOOG 175062 175060 IF.NO.ERROR THEN 103451 016700 lET RO '- DX.HDR 175050 (6) (9 ) 166C (4) 1661 (4 ) 1662 (6 ) 1663 (6 ) 1664 (2 ) 1665 SUS JSR MOV MOV #2*2,R5 PC,DEQCQ (R5)+,DX.HDR (R5)+,DX.RET BCS 50035$ MOV DX.HDR,RO ;+ ; IF THE RETURN ADDRESS IS ZERO OR A MODULE IS DESELECTED OR DROPPED, ; SEE IF IT'S A BKMOD AND IF SO, CLEAR THE BKDEF BIT IN BA.STAT SO ; WE CAN GET ADDITIONAL BKMODS ON THE AIR ;- (004170 004170 004174 004176 004204 004206 004214 004216 004216 004216 004224 004226 004226 004234 004234 004234 004234 004236 004236 005767 001410 032760 001404 032760 001410 IF DX.RET EQ #0 OR #BIT14 NOTSETIN STAT(RO) OR #BIT13 SETIN STAT(RO) THE OX. RET TST 50036$ BEQ #BIT14,STAT(RO) BIT 50036$ BEQ #BIT13,STAT(RO) BIT 50037$ BEQ 50036$: IF #BKMOD SETIN STAT(RO) THEN #BKMOD,STAT(RO) BIT 50040$ BEQ lET BA.STAT .- BA.STAT ClR.BY #BKDEF #BKDEF,BA.STAT BIC ENDIF 50040$: INLINE <BR 1$> 1$ BR ENDIF 50037$: 175046 040000 000026 020000 000026 032760 001403 000020 000026 042767 000002 OOOOOOG 000470 1652 1653 1654 1655 1656 1657 1658 1659 SEQ 0054 ;+ DETERMINE IF IT'S A 8ACKGROUND MODULE, IF SO, ENTER IT INTO ; THE BACKGROUND QUEUE AND CONTINUE DE-QUEUING FROM THE CONTROL ; QUEUE '004236 004236 004244 004246 004246 004254 004254 004262 004262 004270 004270 004276 004276 004300 IF #BIT04 SETIN STAT(RO) THEN 032760 001415 000020 000026 016767 174766 OOOOOOG 016767 174762 OOOOOOG 052767 000001 OOOOOOG 042767 000002 OOOOOOG 000447 LET BA.HDR .- DX.HDR BIT BEQ #BIT04,STAT(RO) 50041$ MOV DX.HDR,BA.HDR LET BA.RET '- DX.RET MOV LET 6A.STATUS .- BA.STATUS SET.BY #SUSPND BIS LET BA.STAT .- BA.STAT CLR.BY #BKDEF BIC INLINE <BR 1$> BR 1$ ENDIF DX.RET,BA.RET #SUSPND,BA.STATU #BKDEF,BA.STAT DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 39-4 DECX.MAC 19-5EP-78 14:52 KERNEL - DE-QUEUE NEXT MODULE IN CONTROL QUEUE ROUTINE (4 ) 1666 1667 1668 1669 1670 (4) 1671 (4 ) 1672 1673 1674 1375 1676 1577 1673 1679 1686 004410 (4 ) 004410 004416 004416 004416 004416 004416 004416 ( 3) (4 ) ( 3) (3) 1681 (6) 1682 (4 ) 1683 ( 6) (8) ( 6) ( 9) (6) 1684 (6 ) 1685 (4 ) 1687 (4 ) 1688 (4 ) 1689 (4 ) 1690 1691 (2 ) 1692 1693 177777 MOV 174736 ENDIF #-1,DX.QFLG 50035$: , (3 ) lS80 LET DX.QFLG := #-1 012767 ;+ ; IF THE CONTROL QUEUE IS EMPTY GO SEE IF THERE IS A MODULE IN THE BACKGROUND QUEUE ; THAT WANTS TO RUN (SELECTED AND NOT DROPPED). ; IF SO, SET THE DE-QUEUI~G FLAG. 004306 0043C6 004314 004316 004324 004326 004334 004336 004336 OC4340 004344 004350 004352 004352 004354 004354 004360 004360 004366 004370 004376 004400 004400 004400 004406 004406 004410 (6 ) (9) ( 6) ( 9) (6 ) ( 9) 50041$: ;+ ; THE MODULE IS ELIGIBLE TO RUN, SO SET THE DE-QUEUING FLAG ACCORDINGLY 004300 004300 004300 004306 004306 SEQ 0055 0044i6 004416 032767 00104J 026727 001434 032767 001030 010545 012745 004767 012605 012000 174500 174722 177777 040000 174462 IF #MODHOLD!RELTIME NOTSETIN DTABLE+DT.STO AND DX.QFLG NE N-1 AND #MEM?AS NOT SET NMODHOLD!RELTIME BIT 50042$ BNE DX.QFLG,N-1 cr~P 50042$ BEQ #MEMPAS,DTABLE+D BIT 50042$ BNE CALL BACTIV IN <NDTABLE> R5,-(SP) MOV #DTABLE,-(R5) MOV PC,BACTIV JSR 1\10V (SP)+,R5 IF.NO.ERROR THEN 50043$ BCS LET RO - DX.HDR DX.HDR,RO M:J\/ IF #BIT14 NOTSETIN STAT(RO) OR #BIT13 SETIN STAT(RO) THEN ;¥BIT14,STAT(RO) BIT 50044$ BEQ #BIT13,STAT(RO) BIT 50045$ BEQ 50044$: lET STAT(RO) . - STAT(RO) CLR.BY #ACTSIT #ACTBIT,STAT(RO) SIC ELSE 50046$ SR 50045$: LET DX.QFLG - #-1 #-1,DX.QFLG MOV ENDIF 50046$: ENDIF 50043$: ENDIF 50042.£: 001004 OOOOOOG 103421 . 016700 174660 032760 001404 032760 001404 040000 000026 020000 000026 042760 004000 000026 177777 174626 C00403 . 012767 INLINE <1$:> ;+ 1 $: DECX-11 CONTRCL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 39-5 DECX.MAC 19-5EP-78 14:52 KERNEL - DE-QUEUE NEXT MODULE IN CONTROL QUEUE ROUTINE 1694 1695 1696 1697 (6) (9 ) 1398 (6 ) 1699 (3 ) (4 ) (3 ) (3 ) 1700 1701 , 702 1703 1704 1705 ; IF IT IS TIME TO SEE IF ALL MODULES HAVE COMPLETED AN EOP, DO IT. 004416 004416 004424 004426 004426 004434 004434 004436 004442 004446 (6) 1707 004~56 (6) ( 9) 1705 IF #CKTIM SETIN DTABLE+OT.ST1 THEN 032767 001445 100000 174372 042767 100000 174362 LET DTABLE+OT.ST1 010546 012745 004767 012605 005277 (4 ) (3 ) 004474 004476 004476 00042'1 004476 010546 012745 004767 012605 (6 ) (8 ) ( 6) (g) (6 ) 1712 (6) 1713 (4 ) 1714 (4 ) 1715 (4) 1716 (4) 1717 1718 (2) 1719 (2) "'lOV MOV JSR R5,-(SP) #OTABLE,-(R5) PC, CH:-<EOP (SP)+,R5 MQV OOLi500 LlO·V504 004510 004512 004512 004520 OO·'+5L2 004530 004532 004532 004532 004540 004540 004540 004540 004540 004540 004540 004540 004540 004540 004544 004544 BCS 50050$ INC @OTABLE+OT.SYP LET @DTABLE+DT.SYP := @DTABLE+DT.SYP + #1 174420 IF #RELMODE SETIN DTABLE+DT.STO THEN 0()4,~74 , 71 1 # CKT I 1'/1 , DTAB LE +0 T IF.NO.ERROR THEN (6) (3 ) (4 ) (3 ) (3 ) BIC .- OTABLE+DT.ST1 CLR.BY #CKTIM 001004 OOOOOOG 103433 1709 i7~0 #CKTIM,DTABLE+DT 50047$ CALL CHKEOP IN <HDTABLE> 0()4456 004464 004466 004466 1708 BIT BEQ ;+ ; IF ALL MODULES HAVE DONE AN EOP, INCR. SYSTEM PASS COUNT AND SET ; "RELTIME" IF IN RELMODE. IF NOT RELMODE, CLEAR EOP INDICATORS AND ; IF "AUTO" MODE OR "SBKSEL" SET "MEMPAS". 00",450 004450 004452 004452 (6) SEQ 0056 032767 001404 020000 174330 052767 01 0000 1743~0 BIT #RELMODE,OTABLE+ SEQ 50051$ LET OTABLE+OT.STO .- DTABLE+DT.STO SET.BY #RELTIME BIS HRELTIME,DTABLE+ ELSE BR 50052$ 50051$: CALL CLREOP IN <#OTABLE> R5,-(SP) #OTABLE,-(R5) PC,CLREOP JSR MOV (SP)+,R5 IF NAUTO SETIN DTABLE+DT.CFO OR #SBKSEL SETIN DTABLE+DT.ST1 THEN IrAUTO,DTABLE+DT. BIT BNE 50053$ #SBKSEL,DTABLE+D BIT SEQ 50054$ 50053$: LET OTABLE+DT.ST1 := DTABLE+DT.ST1 SET.BY #MEMPAS BIS #MEMPAS,DTABLE+O ENDIF 5C054$: MOV M'JV 001004 OOOOOOG 032767 001004 032767 001403 000010 174300 010000 174266 052767 040000 174256 ENDIF 50052$: ENDIF 50050$: ENDIF 50047$: UNTIL OX.QFLG NE #0 , INLINE <6$: TST CX.QFLG> 005767 6$: 174500 INLINE <BNE 4$> 001002 6NE 4$ TST DX.QFLG OEC~-11 DECX.MAC 1720 (2 ) 1721 (:2 ) CONTROL MODULE MACY1, 30A(10S2) 20-SEP-78 17:26 PAGE 39-6 19-5EP-7~ 14:52 KER~EL - DE-Q~EUC NEXT MOOLLE IN CONTROL QUEUE ROUTINE 004546 C04546 004552 004552 SEQ 0057 IN LI NE <JMP 3$> 000167 177066 IN LI N E <4$: > JMP 3$ 4$: DECX-1' CONTROL MODULE MACV11 30A(1052) 20-SEP-78 17:26 PAGE 40 DECX.MAC 19-5EP-78 14:52 KERNEL - DE-QUEUE NEXT MOQULE: PASS CPU CONTROL TO MODULE 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 .S8TTL THERE IS A MODULE IN THE MONITOR'S NEXT-TO-EXECUTE SLOT AWAITING EXECUTION, ; SO LETS GET IT GOING. THIS CONSISTS OF RESTORING ITS REGISTERS AND SWITCHING ; FROM THE MONITOR'S R5 AND R6 STACKS TO THE MODULE'S R6 STACK, AND THEN PASSING CONTROL LET DX.R5 '- R5 062700 1739 (4 ) 00~1600 014003 1740 004602 004602 004604 004604 004606 004606 1733 (~ ) 1734 (4) 1735 (6) i736 (4 ) 1737 (4 ) 1738 (4) (4) 1741 (4) 1742 (4) 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 (2 } 1757 (6 ) 1758 ( 6) (9 ) 1759 (4 ) 1760 (2 ) 1761 KERNEL - DE-QUEUE NEXT MODULE: PASS CPU CONTROL TO MODULE i+ 004552 004552 00£1556 004556 004562 004562 004566 004566 C04572 004572 004574 004574 004576 004576 004600 (4 ) SEQ 0058 010567 174470 MOV RS,DX.R5 MOV SP,DX.SP MOV DX.HDR,RO ADD #SVR6,RO MOV (RO) , SP MOV -(RO),RS MOV -(RO) ,R4 MOV -(RO),R3 MOV -(RO),R2 MOV -(RO),R1 MOV -(RO),RO LET DX.SP '- SP 010667 174466 LET RO .- DX.HDR 016700 174452 LET RO .- RO + #SVR6 000076 LET SP .- (RO) 011006 LET R5 "- -(RO) 014005 LET R4 "- -(RO) 014004 LET R3 '- -(RO) LET R2 .- -(RO) 014002 LET R1 "- -(RO) 014001 LET RO .- -(RO) 014000 ;+ ;******~****************************************************************** ;**************** CONTROL WILL NOW BE PASSED TO THE MODULE *************** ;************************************************************************* ;+ ; IF THE OPTION MODULE IS A BACKGROUND MODULE, SET THE MONITOR'S STATUS ; INDICATOR WORD #0 ACCORDINGLY. ALSO, SET UP TO RESTORE THE MODULE'S PSW. 004610 004610 004614 004614 004620 004620 004\326 004530 004630 004634 004634 PUSH DX.HDR 016746 174424 LET (SP) 062716 0- MOV DX.HDR,-(SP) ADD #STAT,(SP) BIT BEQ #BIT04,@(SP) 50055$ W.OV @(SP),(SP) (SP) + #STAT 000026 IF #81T04 SETIN @(SP) THEN 032776 001415 000020 017616 000000 000000 LET (SP) .- @(SP) INLINE <BIC #177020,(SP» 042716 177020 SIC #177020,(SP) ~ECX-11 DECX.MAC , ?62 1763 1764 1765 1766 1767 1768 (2 ) 1769 (2 ) 1770 1771 1772 (2 ) 1773 (6 ) '77~ (4 ) (3 ) 1775 (4 ) 1776 (4 ) 1777 (2 ) 1778 1779 1780 1781 1782 1783 1784 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 40-1 19-5EP-78 14:52 KERNEL - DE-QUEUE' NEXT MODULE: PASS CPU CONTROL TO MODULE SEQ 0059 ;+ ; RAISE THE PRIORITY TO LEVEL #7 BEFORE SETTING THE BKMODE INDICATOR ; THUS ALLOWING US TIME TO GET THE BKMOD ON THE AIR - BEFORE ; THE BKMOD CAN BE PREEMPTED 004640 004640 004644 004644 004550 004652 004652 004652 004652 C04660 004660 004662 004662 004662 C04664 004664 004664 004664 PUSH #PRI7 012746 000340 012746 000002 004652 #PRI7,-(SP) MOV #5$,-(SP) RTI INLINE <5$:> 5$: LET DTABLE+DT.STO .- DTABLE+DT.STO SET.BY HBKMODE 052767 040000 174134 BIS HBKMODE,DTABLE+D BR 50056$ CLR (SP) Ml"lV DX.RET,-(SP) ELSE 000401 50055$: LET (SP) .- HO 005016 ENDIF 50056$: PUSH DX.RET 016746 174352 ;+ ; DO IT 004670 MOV PUSH #5$ 000002 RTI DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 41 DECX.MAC 19-5~P-7b 14:52 KERNEL - DE-QUEUE ~EXT MODULE: PASS CPU CONTROL TO MODULE 1786 1787 1788 1789 1790 1791 (2) 1792 1193 1794 1795 1795 1797 (6 ) (9 ) 1793 1799 (3 ) (5 ) (4) (3 ) (3 ) SEQ 0060 ;+ ; THIS ROUTINE PERFORMS THE TURNING ON OF THE APPROPRIATE ; CPU OPTIONS. ROUTINE DX.TURNON 004672 C04672 DX.TURNON: :+ ; CALL ROTON IF NOT SCRAWNY MONITOR ; AND OUTPUT APPROPRIATE MESSAGE IF #NCPUOP NOTSETIN DTABLE+DT.CFO THEN C04672 004672 004700 032767 001012 004702 004702 004704 C04710 004714 004720 010546 016745 012745 004767 012605 174530 001004 OOOOOOG 004767 000172 000020 174120 BIT BNE hNCPUOP,DTABLE+D 50002$ MJV M:JV MJV MOV R5,-(SP) DX.FAK,-(R5) , #:lTABLE,-(R5) PC,KROTON (SP)+,R5 JSR PC,DX.TL.;1 BIT BEQ #KTPRES,DTABLE+D 50003$ MOV MOV Mev JSR Mev R5,-(SP) DX.FAK,-(R5) #DTABLE,-(R5) PC,KKTON (SP)+,R5 JSR CC,DX.TU1 CALL KROTON IN <HDTABLE,DX.FAK> JSR 1800 1801 ( 3) 1802 (4) 004722 004722 004726 004726 CALL DX.TU1 ENDIF 500025: 1803 1804 ;+ : TURN ON KT IF AVAILABLE AND OUTPUT MESSAGE 1805 1803 1807 1803 (6) (9 ~ 1809 (3 ) (5 ) (4 ) (3 ) (3 ) 1810 (3 ) 1811 (4 ) 004726 004726 004734 004736 004736 004740 00~744 004750 004754 004756 004756 004762 004762 IF #KTPRES SETIN DTABLE+DT.CFO THEN 032767 001412 000400 174064 CALL KKTON IN <#DTABLE,DX.FAK> 010546 016745 012745 004767 012605 174474 001004 OOOOOOG 004767 000136 CALL DX.TU1 ENDIF 500C3S: 1812 ;+ 1813 1814 ; TURN ON "PARITY" OR "ECC" MEMORY IF AVAILABLE, OUTPUT MESSAGE 181 S 1816 1817 (6 '; {8 'i (6 :; (9 :, (6 ) 004762 004762 004770 004772 005000 005002 032767 001004 032767 001412 000100 174030 002000 174020 IF #ECCMEM SETIN DTABLE+CT.CFO OR #PARPRES SETIN DTABLE+DT.CFO THEN BIT 8i\E BIT SEQ 50004'£: # Eccr"EM ,DT ABLE+D 50004$ #PARPRES,DTABLE+ 50005$ 20-SEP-78 17:26 PAGE 4.-1 [,ECX-l 1 CONTROL MODULE MACVll 30A(1052) DE-QUEUt:. NEXT MODULE: PASS CPU CONTROL TO MODULE KERNEL 19-5EP-78 14:52 DECX.MAC - 1818 (3 ) (5 ) (4) (3 ) (3 ) 1819 (3 ) 132,) (4 ) 1821 1822 1823 1324 1825 1826 (6) ( 9) 1327 (3 ) ( 5) (4 ) (3 ) (3 ) 1828 (3 ) 1829 ( 4) 183J 1831 1832 1833 1834 1835 (6 ) (9) 1836 (3 ) ( 5) (4 ) (3 ) (3 ) 1837 (3 ) 1838 (4 ) 1839 1840 1841 1842 1843 184!; (3 ) (3 ) (2 ) 1845 005002 005002 005004 005010 005014 005020 005022 005022 005026 005026 CALL KPON IN <#DT~BL(,DX.FAK> 010546 0167~5 012745 004767 012605 SEQ OOE'1 174430 001004 OOOOOOG MOV MOV MOV JSR MOV R5,-(SP) DX.FAK,-(R5) #DTABLE,-(R5) PC,KPON (SP)+,R5 JSR PC,DX.TU1 BIT BEQ #CAPRES,DTABLE+O 50006$ MOV MOV MOV JSR MJV R5,-(SP) DX.FAK,-(R5) #DTABLE,-(R5) PC,KCON (SP)+,R5 JSR PC,DX.TU1 BIT SEQ # ADD r~ 2 2 , 0 TAB LE+ 0 50007$ MJV MOV MOV JSR MOV R5,-(SP) DX.FAK,-(R5) IIDTABLE,-(R5) PC,KrIlON (SP)+,R5 JSR PC,DX.TUl RTS PC CALL DX.TUl 004767 000072 ENDIF 50005$: ;+ ; TURN ON CACHE IF AVAILABLE AND OUTPUT MESSAGE , 005026 005026 005034 005036 005036 OGS040 005044 005050 005054 005056 005056 005062 005062 IF #CAPRES SETIN DTABLE+DT.CFO THEN 032767 001 ..i12 000004 173764 CALL KCON IN <#DTABLE,DX.FAK> 010546 C16745 012745 004767 012605 174374 001004 OOOOOOG 004767 000036 CALL DX.TU1 ENDIF 50006$: ;+ ; TURN ON UNIBUS MAP (MAP BOX) IF AVAILABLE AND OUTPUi MESSAGE , 005062 005062 005070 005072 005072 005074 005100 005104 aS51 10 005112 005112 IF #ADDR22 SETIN DTABLE+DT.CFO THEN 032767 001412 001000 173730 CALL KMON IN <#DTA3LE,DX.FAK> 010545 01674::> 012745 004767 012605 174340 001004 OOOOOOG 004767 000002 CALL DX.TU1 ENDIF 00~116 50007$: 005116 ;+ ; RETURN TO CALLER , 005116 005116 005116 005116 ENDRTN 50000$: 50001$: 000207 DECX-11 CONTROL MODULE MACY11 30A(1052) 20-SEP-78 17:26 PAGE 41-2 CECX.MAC 19-5EP-78 14:52 KERNEL - DE-QUEUE NEXT MODULE: PASS CPU CONTROL TO MODULE 1846 1847 (2) 1848 1349 1850 1851 1852 1853 1854 1855 (3 ) (7 ) (6 ) (5 ) (4) (3 ) (3 ) 1856 (2 ) 1857 (2 ) 1853 (2 ) 1959 (2 ) 1860 (4 ) 1861 (3 ) (3 ) (2 ) 1862 1863 SEQ 0062 ROUTINE DX.TU1 005120 005120 DX.TU1: ;+ ; RETRIEVE MESSAGE FROM DT.KBRSP WORD IN DTABLE AND OUTPUT ; MESSAGE AND WAIT FOR IT TO FINISH OUTPUTTING BEFORE RETURNING ; CONTROL 005120 005120 005122 005126 005132 005136 005142 005146 005150 005150 005150 005150 005152 005152 005154 005154 005154 005154 005160 005160 005160 005160 CALL MSGDHOOK IN <#DTABLE,#MSGPOP,DTABLE+DT.KBRSP,#2$> 01C546 012745 016745 012745 012745 004767 012605 MOV MOV MOV M8V MOV JSR MOV 005154 173674 000002 001004 OOOOOOG R5,-(SP) #2$,-(R5) DTABLE+DT.KBRSP, #MSGPOP,-(R5) #DTABLE,-(R5) PC,MSGDHOOK (SP)+,R5 INLINE <1$:> 1 $: INLINE <NOP> NOP 000240 INLINE <BR 1$> BR 1$ 000776 INLINE <2$:> 2$: LET DTABLE+DT.KBRSP .- #0 005067 173646 CLR DTABLE+DT.KBRSP RTS PC ENDRTN 50000$: 50001$: 000207 002200 .END DX.STRT DECX-11 CONTRCL MODULE MACY 11 19-5EP-78 14:52 DECX.MAC 000102 ACSR P,CT 3 IT = 004000 ACTIV = ****** Ac.rJlOD= **"'*** fIC.MPT= ***"*** AC.TPT= ****** AC.TYP= ***"'** ADDc(22 = 001000 ADR 000006 APTFEK= 000004 Ar::TPRE= 000200 ~PTSLP= /\PTVEC {,,:'J. PB = ASB f,SSEMB= /\STAT = /;JTG AUTOST= A'wAS GACT1\!= 8A.HDR= BA.M?T= BA.RET= SA.STA= 8DACNV= :iITO urroo 31T01 91T02 :31T03 B1T04 3IT05 BIT06 :31T07 GITOS BIT09 BIT1 SIT 10 3 IT 11 BIT12 31T13 8 IT 14 61 T 15 BIT2 BIT3 31T4 3115 3IT7 BIT8 8119 3KDEF .. G G **"'*** G 000044 "'" ,- '" * * G 000106 000010 000104 000010 020000 00011C ***"'** G **"*** G "'***** G "'*"'*** G ****** G ****** G 000001 000001 000002 000004 000010 000020 000040 000100 000200 000400 001000 000002 002000 OO'~OOO BIT6 G G G 010000 020000 04COOO 100000 000004 000010 000020 000040 000100 000200 000400 001000 000002 30A(10::i2) BKMOD = BKMODE= BKSLSH= CAPRES= CAST CASTAT= CCNTRL CDERCT= CDWDCT= CHKACT= CHKEOP= CKTIM = CLKPRE= CLOCK CLOCKL CLOCKP CLREOP= CMOPRC= CMDRST= CONFIG= CPUCPE CPUHAR CPULAR CPULSZ CPUMf::R CPUMNT CQINI CQOVF CR CSRA CSRC CTRLC CTRLO CTRLOF CTRLU = DCEVNT= DEFRTN= OEQCQ = O1AGMC= OPEOP = DPSTRT= OROPMO= DSEVNT= DTABLE DT.ADD= DT.AP = OT.APK= DT.BLS= DT.CFO= 0T.CF1= DT.ERR= DT.ESI= DT.EVN= 20-SEP-78 17:26 SYMBOL TABLE 000020 040000 000134 000004 ****** G 000004 001230 G 000146 000144 ****** G ****** G 100000 000001 001160 G 001162 G 001164 G ****** G ****** G "'***"'* 000056 001224 001216 001214 001226 001220 001222 G G G G G G G ****** G 000001 000015 000100 000102 000003 000017 001234 G 000025 000011 000400 ****** G 000000 **"''''** G ****** G 100000 000014 001004 G 000042 000100 000076 000034 000014 000016 000020 000044 000000 PAGE 42 DT.EXSr; 000060 DT.FCH- 000037 DT.FCN: 000035 DT.HMX::: 000104 DT.KBE= 000024 DT.KBP= 000025 DT.KBR= 000022 DT.KSU= 000030 DT.MLS= 000032 D1.MT1= 000110 DT.OFF= 000070 DT.PAS= 000074 OT.PC = 000002 OT.PFL= 000062 DT . PS~I]= 000004 DT.PTA: 000064 DT.RCS= 000102 OT.REL= 000040 DT.SCT= 000e66 DT.SMX= 000106 D1. SP = 000006 DT.SS1= 000046 OT.STO= 000010 DT.ST1= 000012 OT.SWR= 000056 DT.SYP= 000072 OT.WBU= 000050 OT.WHL= 000054 OT.WLL= 000052 DvID1 = 000014 OX.CAP 003242 OX.OEQ 003634 OX.FAK 001440 001442 OX.FK1 DX.HOR 001240 OX. I NI 003020 DX.KFL 001236 DX.MED 001402 OX.MON 001346 DX.QFL 001244 OX. RET 001242 DX.RST 002650 001246 DX.R5 DX.SIZ 0013S3 001250 DX.SP OX.STR 002200 DX.SZK 001371 DX.TIT 001252 DX.TUR 004672 005120 DX.TU1 ECCMEM= 000100 ECCSTA= 000010 EMTINS 000030 SEQ 0063 G G G G G G G G G G ENBEOP= ENBNUL= EN[)LST= EOPBIT= ERREC = ERRTYP= EVNTBE= EVNTHD= EVNTKT= EVNTPE= EVNTRE= FATERR= HRCCNT= HRDPAS= HTBUSS= HTREIN= HT.EXT= ICONT = ICOUNT= IDNUM = IE IERRLO= :NDPAR= INHDRP= INHEPR= INHREL= INHRRE= INlT INTR 10MOO 10MODP= IOMGDR= IOMOOX= lOTINS JACK KBIN1 KBINT KBVEC KCON KlPARO= KlPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPDR1= K1POR2= K1POR3= KlPDR4= KlPDR5= 010000 000001 000000 000001 **"'*** G 000106 000200 000200 000203 000202 000201 100000 00;)044 000050 ****** G **'-1'** G **,,*** G 000036 000040 000122 000100 ****** G 000040 040000 020000 001000 000400 000030 000120 100000 102000 112000 1 10000 000020 035060 ****** G ****** G 000060 ****** G 172340 172342 172344 172346 172350 172352 172354 172356 172:300 172302 172304 172306 172310 172312 KlPDR6= 172314 KIPDR7= 172316 KKTON = ****** G KMON ****** G KONTRL 001232 G KPON ****** G KROTON= ****** G KRUN ****"'* G KTEQRO= 000040 KTPRES= 00040') KTSET = ****** G KTSTAT= 000020 KTXiNO= 040000 K"lfJ11L = ****** G KJJ11P = ****** G LCLEAR= ****"'* G 000012 LF 001212 G LPBUF LPCSR 001210 G LPlNT ****** G LPSTAT= 000001 MAPSTA= 000200 MD.BSY= ****** G MEO 076600 MEl'I1GMT= ****** G MEI'v1PAR= ****** G MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 MODSEL= 001000 MSGCKD= 000010 MSGCKS= 000011 MSGDEQ= ****** G MSGCER= 000005 MSGJHO= ****** G MSGCRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR:. 000004 MSGHNG= 000022 MSGHRO= 000C07 MSGl\1AP= 000021 MSG~'U L= 177775 MSGPOP= OOOOOL MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 IVISGSKE= 000003 IV:SGSMB= 000015 MSGSMH= 000014 IV:SGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 LECX-11 DECX. r~AC cmn RO L MODU LE MACV11 RDWHMI= RELCTI = RELERR= RELMOD= RELTIM= RESERV RESREG= RESTAR RES1 RES2 RICHAR= RPIRQ = RPTDAT= RSTRCV= RSTRT = RUBOUT= RLiNMOD= R5VALU= SAM SAVREG= SBADR :: SBKMOD= SBKSEL= SCTAB SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SIZPOL= SOFCNT= SOFPAS= SPACE :: SPOINT= SPVALU= SRO SR1 SR2 fvlSGVEC= 000020 r\3Kf'JlO)= 001000 NCPUO?= 000020 NOA~TV= 000002 000000 N0LL OV. [\83= "'*,.-*** G OWE:\! 024020 t:.>AERR = 000010 PARPR:::= 00;'000 PARSTA= 000100 P,\ R TA3 0011 16 G PASCNT= 000034 Pt3DVEC= *". ... *** G PCLEA~= ***"'** G Pl)PLSI= 020000 PDPSO 004000 PDP70 010aOO PREJT ****** G Pr~ I 0 oeoooo PRI1 000040 PRI4 000200 PRI5 000240 PRIG 000300 PRI7 000340 PRRLOC= ****** G PtW 000000 Pii4 000200 PK5 000240 PR6 000300 PR7 000340 177776 PS PSW 177776 P',\,RDO',.\= ****** G P\~R F L 000024 G RANNUf\,,:= 000054 RBUF 001202 G R3UFEA= 000130 rnUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 001200 G RCSR RDSERV= 000101 ABS. 30A(1052) 19-5EP-78 14:52 005162 000000 20-SEP-78 17:26 SVM60l TABLE 000022 ****** G 000020 020000 010000 000010 ****** G 001000 000056 000060 031060 ****** G 002000 ****** G 000112 000177 100000 001740 075464 ****** G 0~0102 000000 010000 001160 G 000006 000014 000016 000002 000004 000000 000010 000012 177777 ****** G 000042 000046 000040 000032 002200 177572 177574 177576 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:DECX.DSKZ:DECX=SPMAC/ML.EQUATE,DECX RUN-TIME: 45 36 .5 SECONDS RUN-T II\lE RATIO: 130/82=1.5 CORE USED: 14K (27 PAGES) PAGE 42-1 172516 SR3 START 00020J STAT 000026 STATBI= 064757 STAT1 = 000027 STINT = ****** ST.EXT= *****-1< SUSPND= 000001 SVRO 000062 SVR1 000064 SVR2 000056 000070 SVR3 SVR4 000072 SVR5 000074 SVR6 000076 SVSCNT= 000052 SVSERR= 000100 TIMOUT 000004 TMPIO = 000002 TQINI = ****** TQOVF = 0000:l2 TRPINS OC0034 TTINT = ****** TTVEC 000064 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177552 UIPAR6= 1776S4 UIPAR7= 177656 UIPDRO= 1776CO UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPD~6:: 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 SEQ 0064 G G G G WBUFEA= WBUFPA= WBUFRQ= W8UFSZ= WDFR WDTO WTINRE= WHJHMI= XBUF XCSR XFLAG = XOFF XON $BGNLE= $ENDAD= $ERFLG= $F$AND= $F$BAD= $F$BLA= $F$CAS= $F$CEC= $F$DO = $F$FAL= $F$GOO= $F$IF = $F$INC= $F$LOO= $F$NAI\1= $F$NO :: $F$OR = $F$RTI= $F$RTN= $F$SEL= $F$THE= $F$TRU= $F$UNT= $F$WHI= $F$VES= $IFLEV= $ISKO $ISK1 $ISK2 000136 000134 00C140 000142 000116 000114 000352 000222 001206 G 00,204 G 000005 00 1)023 000021 177777 **"'*** G 000400 000310 000401 000170 000150 000220 000340 000405 000400 000110 OOCl210 000200 000160 000403 000320 000350 000300 000140 000330 000404 000130 000120 000402 177777 000001 000001 000001 $ISK3 = 000001 $ LOCTA= 177777 $LSTIN= $LSTTA= $NEST L= $NSKO $NSK1 = $NSK2 = $NSr<3 = $SAVLE= $SSKO = $TAGLE= $TAGNU= $TEMP $TSKO $TSK1 $TSK2 $TSK3 $$ARGC= $$BVTE= $$CASE= $$D5T = $$ELOC= $$ERFL= $$FLAG= $$FROM= $$LOC :: $$LOCN= $$REG :: $$RETU= $$RTN1:: $;£RiN2= $$SRC = $$TGSV= $$TGS1= $$TGS2= $$TO $$$TAG= 000001 000001 177777 000300 000110 000110 000110 177777 050006 177777 050002 000300 050007 050050 050052 050054 000000 000403 000000 000000 000402 000000 000001 000000 005070 OOCOOO 177777 000000 050000 050001 000000 000000 000000 000000 000004 050000 005162 .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 532 535 633 G88 785 839 373 922 954 1005 1043 1090 1140 1187 17:28 TABLE OF CONTENTS COMMON EQUATE MODULE APTMOD (COMMON DEFINITIONS & REFERENCES) 000000' .PRINT ;SPMAC: VERSION 1.1 APTSLP APT SLEEP AND CONFIGURE ROUTINE APTSLP ROUTINE APTSER (APT SOFT ERROR HANDLER) APTSER CODE APTDED PUT OPTION MODULE NAME INTO MAILBOX APTDED RQUTINE APTHER (APT HARD ERROR HANDLER) APTHER CODE APTSEL - SELECT OPTION MODULES FROM MAP APTSEL ROUTINE APTKIL - KILL APT BY HALTING APTKIL ROUTINE SEO 0065 APT~OD (APT MODULE PACKAGE) APTMOD.MAC 14-SEP-78 12:22 508 509 510 511 512 MACY11 30A(1052) 20-SEP-78 17:28 COMMON EQUATE MODULE PAGE 19 SEQ 0066 .TITLE APTMOD (APT MODULE PACKAGE) .IDENT JVO.Oj ;++ MODULE PACKAGE NAME: APTMOD S13 514 515 516 517 518 FUNCTIONAL DESCRIPTION: THIS MODULE PACKAGE CONTAINS SEVERAL APT ROUTINES: 1. APTSLP APT SLEEP AND :ONFIGURATION ROUTINE 2. APfSER APT SOFT ERROR HANDL~R 3. APTDED STUFF APT MAILBOX WITH FAILING MODULE NAME 4. APTHER APT HARD ERROR ROUTINE 5. APTSEL SELECT-DESELECT ~OUTINE 6. APTKI L STUFF CODE TO MAILBOX IF MONITOR ERROR (I.E. SYSTEM ERROR) AND HALTS 519 520 521 522 523 524 525 VERSION: 526 0.0 527 :328 529 530 EDIT DATE BY REASON APTMOD (APT MODULE PACKAGE) APTMOD.MAC 14-SEP-78 12:22 .SBTTL APTMOD (COMMON OEFINITIONS & REFERENCES) 532 533 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 534 535 (1) 536 537 MACY11 30A(1052) 20-SEP-78 17:28 PAGE 19-1 AFTMOD (COMMON DEFINITIONS & REFERENCES) 000000' 000000' 000001 000001 538 539 $LSTIN=1 $LSTTAG=1 ;**************** 540 , 541 542 :543 544 545 546 547 ; REFERENCED BY OTHER MODULES .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 56::' 565 567 APTSLP APTSER APT HER APTKIL APTDED APTSEL AP.PB ;APT SLEEP ROUTINE ;SOFT ERROR HANDLER ;HARD ERROR HANDLER ;APT HALT ROUTINE ;STUFF FAILING MODULE NAME ;APT SELECT-DESELECT MODULE ROUTINE ;APT PARA~ETER BLOCK ;**************** ; GLOBAL REFERENCES .GLOBL .GLOBL .GLOBL .GL08L .GL08L .GLOBL .GLOBL SAVREG RESREG RSTRCY KSUM MD. COD MSGDEQ RCSR , ;RESET RECOVERY ROUTINE ; 'SUM' COMMAi-.lD ROUT INE ;MSG CODE ;MESSAGE DEQUER ;KB CSR ;**************** LOCAL STORAGE 568 569 ;******************** APT PARAMETER BLOCK *********************** 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 000000' 000000' 000002' 000004' 000006' 000000 000014' 001604 000170 000010' 000000 000012 1 000052 AP.PB: AP.POO: AP.P02: AP.P04: AP.P06: ;PTABLE WORD 0 - BITS 16 & 17 OF MAILBOX ADDR ;LOWER 16 BITS OF MAILBOX ADDRESS ;RUN TIME (IN SECONDS) OF LONGEST TEST ;RUN TIME (IN SECONDS) OF FIRST PASS ;INCLUDES THE DELAY REQUIRED BY DEVICES TO ;RECOVER FROM POWER FAIL CAUSED BY APT TO ;START UP DEC-X11 EXERCISER. ;ADDITIONAL RUN TIME (IN SECONDS) OF ~IRST AP.P10: 0 ;PASS WHEN A SECOND DEVICE IS ADDED. <AP.END-AP.MB1>/2 ;LENGTH (IN WORDS) OF E-TABLE + MAILBOX 0 #AP.MB1 900. 120. SEQ 0067 APTMOD (APT MODULE PACKAGE) APTMOD.MAC 14-SEP-78 12:22 587 588 589 590 591 592 593 594 595 390 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 62£; 627 628 629 630 631 63~ 633 634 635 636 637 MACY11 30A(1052) 20-SEP-78 17:28 PAGE 19-2 A?TMOD (CO~MON DEFINITIONS & REFERENCES) ;*************** APT MAILBOX ******************* , AP.MB1: AP.MB2: AP.MB3: AP.MB4: AP.MB5: 000014' 000000 000016' 020040 000020' 020040 000022' 000000 000024' 000000 000026' OOOOCO 000030' 000000 000032' 000000 ;MAILBOX WORD 1 - FATAL ERROR INDICATOR ;MODULE NAME'S FIRST TWO CHARACTERS ;MODULE NAME'S THIRD & FIFTH CHARACTERS ;PASS COUNT ;TO BE INCREMENTED EVERY 10 SECONDS 0 20040 20040 0 0 o o o ;**************** APT E-TABLE ********************** 000034' 001 000035' 200 000036' 000000 000040' 000037 000042' 000000 000044' 000000 000050' OOOOO'J 000054' 000000 000060' 000000 000064' 000000 000070' 000000 000074' 000000 000100' 000020 AP.ET1: .BYTE .BYTE 100000 000000 000000 000000 000000 000000 000000 AP. SR1 : AP.SR2: AP.CPU: AP.M[\/'O: AP.MM1 : AP.MM2: AP. M~\13; AP.MAP: 200 ; APT S~v 1 ;HARD ERROR LIMIT (1) AND SOFT ERROR LIMIT (31.) iCPU OPTIONS,15-11=TYPE,10=RTC,9=FPP,8=MM ;M~MORY MAP, 100000=16K ;ONE BYTE FOR TYPE PLUS THREE BYTES ;FOR MAX ADOR OF THAT TYPE ;DECX ;DGN'T CARE ;ABOUT THESE ;LOCATIONS 0 ~D<31> 0 0,100000 0,0 0,0 0,0 0,0 0,0 0,0 .BLKW ;E-TABLE - BYTE 1 - SOFT ENVIRONMENT ;CEFAULT TO APT MODE ;BYTE 2 - DEFAULT TO UUT TTY AND DON'T SIZE 16. ;APT MODULE :vIAP ;ONE BYTE REQD FOR EACH MODULE AP.END: 000140' ;*************** GENERAL LOCAL STORAGE **********.****** , AP.MCO: AP.MC1 : .ASCII .ASCII .WORD .ASCII .ASCII .ASCII . ASC II ;P,\RITY ERRORS ;MEMORY ERROR - A LOCATION IS BAD ;KT TRAP ;TRAP THROUGH LOC. 4 OR 10 .WORD .WORD AP.CR CR ;POINTER TO NEXT WORD ;A FAKE CARRIAGE RETURN FOR 'SUM' COM'VtAND 047515 050503 0001,~4' C5C524 .A~CII 00()146' OCOOOO 000150' 042520 000152' 042515 000154' 052113 000156' 042523 000160' 000162' 000162' 000015 .EVEN AP.FAK: AP.CR: ;MONITOR ERROR - STUFF "MO" INTO I't.AIL30X ;CONTROL QUEUE OVERFLOW ;TYPE QUEUE OVERFLOW /MO/ /CO/ ITO/ 0 /PE/ /ME/ /KT/ /SE/ 000140' 000142' SEO 0068 hPT~OD (APT MODULE PACKAGE) APTMOD.MAC 14-$EP-78 12:22 639 640 041 642 643 644 645 646 347 548 1.349 350 551 652 653 554 655 355 657 658 659 660 6Cl 662 663 664 665 665 667 668 669 670 671 672 673 674 675 676 677 678 679 68C 68' 682 683 684 68:' 686 MACY11 30A(i052) 20-SEP-78 17:23 PAGE 19-3 APTSLP APT SLEEP ANU CONFIGURE ROUTINE .S8TTL .IDENT APTSLP SEQ 0069 APT SLEEP AND CONFIGURE ROUTINE IVO.O/ ;++ MODULE NAME: APTSLP FUNCTIONAL DESCRIPTION: THIS ROUTINE WILL C'ETERiVlINE FROM THE APT ENVIRONMENT HORD 1 IF TRULY UNDER APT. IF SO A CHECK IS ~ADE ON AVAILABILITY OF U.U.T. TERMINAL. IF NONE, THE NOAPTY BIT IS SET IN CONFIG WORD O. IF UNDER APT, A 15 SECOND SLEEP ROUTINE IS ENTERED TO RECOVER FROM POWER LOGIC YANK. INPUTS: DTABLE IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: DT.CFO DT.APK DT.SYP PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL APTSLP IN <DT> WHERE DT = ADDRESS OF DTABLE VERSION: 0.0 EDIT DATE BY REASON APT~OD (APT MODULE PACKAGE) APTMOD.MAC 14-SEP-78 12:22 688 689 690 (2) 691 692 693 694 695 696 697 (3) 698 (4) 699 700 701 702 703 (4) 704 705 706 707 708 709 (4) 710 711 712 713 714 715 (6) (9) 716 (6) 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 (4) MACY'1 30A(1052) 20-SEP-78 APTSLP ROUTIi\;E .SBTTl 17:28 PAGE 19-4 SEQ 0070 APTSLP ROUTINE ROUTINE APTSLP <DTADR> 000164' 000164' APTSLP: ;+ ; SAVE REGISTERS, GET DTABLE ADDR. ;- 000164' 000164' 000170' 000170' CALL SAv-REG 004767 OOOOOOG LET RO := DTADR(R5) 016500 000000 JSR PC,SAVREG MOV DTADR(R5),RO MOV #AP.ET1,R3 CLR AP.MB1 ;+ ; GET ENVIRONMENT WORD 1 TO R3 000174' 000174' 012703 LET R3 := #AP.ET1 000034' ;+ ; ZERO FATAL 8IT INDICATOR IN CASE IT WAS SET ', - 000200' 000200' 005067 LET AP.MB1 := #0 177610 ;+ ; IF BITO SET IN ENVIRONMENT WORD 1, SET APTPRES BIT IN DT.CFO, SET UP KEEP ALIVE ; AND SYSTEM PASS COUNT 000204' 000204' 032713 000210' 001440 000212' 000212' 052760 IF #8ITOO SETIN (R3) THEN 000001 LET DT.CFO(RO) 000200 000220' 000220' 012760 000022' 000072 BIS #APTPRES,DT.CFO( MOV #AP.MB4,DT.SYP(R ************************************************* !! I! I I I! I I!! I!I!I! II!I!! I I! II I , I ! I !! ;- #BITOO,(R3) 50002$ := DT.CFO(RO) SET.BY #APTPRES 000014 :+ BIT SEQ NOTE: KEEP ALIVE COUNTER FOLLOWS REMOVE SEMI-COLON IF YOU EVER WANT A DEC/Xll KEEP-ALIVE COUNTER. IF YOU DO, IT WILL BE UPDATED VERY OFTEN (MANY TIMES A SECOND) IN DECX . !!! I!!I I!!!!!I I!!!!!! !11!1!! I I! I I!! ! ! ! ! II! ************************************************* LET DT.APK(RO) .- #AP.M85 LET DT.SYP(RO) := #AP.M84 APT:'v10D (APT MODULE PACKAGE) 14-SEP-78 12:22 APTMOD.MAC 735 736 737 738 739 740 (6) (9) 741 (6) 742 (4) (6) 743 (4) 744 745 746 747 748 749 (4 ) 750 (4 ) 751 752 753 754 755 (4 ) ( 6) (9) 756 (4 ) (G) (9 ) 757 ( 6) 758 (4 ) (3 ) 759 (4 ) 760 (6) 761 (4 ) (3 ) 7€-2 763 (4 ) (3 ) 764 765 766 767 20-SEP-78 MACY11 30A(1052) APTSLP ROUTINE PAGE 19-5 17:28 SEQ 0071 ;+ ; IF BIT 13 SETIN ENV WORD 1, SET NO APT TTY BIT (NOAPTY) ; IN CONFIG WORD 0 (DT.CFO) AND FAKE OUT THE KB CSR. ;- 000226 ' 000226 ' 000232 ' 000234 ' 000234 ' 000242 ' 000242 ' 000246 ' 000254 ' 000254 ' IF #8IT13 SETIN (R3) THEN 032713 001410 020000 052760 000002 LET DT.CFO(RO) 000014 .- RO + #DT.RCS LET RCSR 010067 062767 . - DT.CFO(RO) SET.BY #NOAPTY OOOOOOG 000102 OOOOOOG BIT SEQ #BIT13,(R3) 50003$ BIS #NOAPTY,DT.CFO(R MOV ADD RO,RCSR #DT.RCS,RCSR MOV #25,R1 MOV #-1,R2 TST BEQ R1 50005$ TST SEQ R2 50007$ DEC R2 BR 50006$ MOV #-1,R2 DEC R1 8R 50004$ BR 50010$ ENDIF 50003$: ;+ ; INIT COUNT FOR SLEEP LOOP ;- 000254 ' 000254 ' 012701 000260 ' 000260 ' 012702 .- #25 LET R2 . - #-1 LET R1 000025 177777 ;+ ; GO TO SLEEP FOR A WHI LE TO RECOVER FROM POWER FAIL LINE YAN;, , 0- 000264 ' 000264 ' 000264 ' 000266 ' 000270' 000270' 000270' 000272' 000274' 000274' 000276' 000276' 000300 ' 000300 ' 000300' 000304' 000304' 000306 ' 000306 ' 000310' WHILE R1 NE #0 DO 50004$: 005701 001410 WHILE R2 NE #0 DO 50006$: 005702 001402 LET R2 005302 . - R2 - #1 ENDDO 000774 50007$: LET R2 012702 177777 LET R1 005301 : = #-1 0- R1 - #1 ENDDO 000766 000310 ' 000310 ' 000403 000312 ' 50005$: ELSE 50002$: ;+ ; NOT APT - CLEAR APT PRESENT BIT IN DToCFO A~TMOD (APT MODULE PACKAGE) APTMOD.MAC 14-SEP-78 12:22 768 769 770 (6) 771 172 (4 ) 773 774 775 776 777 778 779 78;) (3 ) 781 {3 ) (3 ) (2 ) 782 783 78L: MACY11 30A(1052) 20-SEP-78 APTSLP ROUTINE 1i:2a PAGE 19-6 SEQ 0072 .f 000312' 000312' 042760 LET DT. CFCi (RO) := OT.CFO(RO) CLR.BY #APTPRES 000200 000014 BIC #APTPRES,DT.CFO( J5R PC,RESREG RTS PC ENDIF 000320' 000320' 50010$: ;+ ; ·RESTORE REGS f 000320' 000320' 004767 000324' 000324' 000324' 000324' 000207 CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: APTMOD (APT MODULE PACKAGE) APTMOD.MAC 14-SEP-78 12:22 786 MACYll 30A(1052} 20-SEP-78 17:23 PAGE 19-7 APTSER (APT SOFT ERROR HANDLER) .SBTTL SEQ 0073 APTSER (APT SOFT ERROR HANDLER) 787 788 789 790 791 '792 793 794 79:3 796 797 798 799 800 801 ;++ MODULE NAME: APTSER FUNCTIONAL DESCRIPTION: THIS MODULE IS CALLED WHEN THE EXERCISER IS DETERMINED TO BE RUNNING UNDER APT ENVIRONMENT, TO HANDLE A SOFT ERROR. THE ERROR COUNT IS COMPARED WITH THE LIMiT SET IN E-TABLE. IF THE COUNT IS LESS THAN THE LIMIT, CONTROL GOES BACK TO THE CALLER. IF THE COUNT EQUALS THE LIMIT THE RUN IS OVER (CALL APTDED). 802 803 304 805 806 907 808 809 810 811 812 INPUTS: DTABLE ADDRESS IMPLICIT INPUTS: 1. DT.PC OUTPUTS: NONE a14 IMPLICIT OUTPUTS: NONE 815 816 817 PATHOLOGICAL CONNECTIONS: NONE 813 818 819 820 321 822 823 824 825 826 827 826 829 830 831 832 833 834 835 836 837 SUBORDINATE ROUTINES CALLED: 1. APTDED 2. SAVREG 3. RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL APTSER IN <DTA> WHERE DTA = DATA TABLE ADDRESS VERSION: 0.0 ;_.- EDIT DATE BY REASON APT!.'1OD (APT MODULE PACKAGE) APTMOD.MAC 14-SEP-78 12:22 839 840 841 (2) 842 843 844 845 846 847 848 (3) 843 850 (4 ) 851 (4) 852 (4) (6) 853 854 8S5 856 857 858 (6) (9) 859 (3) (5) (4) (3) (3) 860 861 (4) 862 663 864 865 866 867 (3) 868 869 (3) (3) (2) 870 871 MACY11 30A(1052) 20-SEP-78 APTSER CODE .SBTTL 17:28 PAGE 19-8 SEQ 0074 APTSER CODE ROUTINE APTSER <DTA> 000326' 000326' APTSER: ;+ ; SAVE REGS; GET DTABLE ADDR, MODULE'S HEADER ADDRESS, ; AND SOFT ERROR LIMIT FROM E-TABLE. 000326' 000326' 004767 000332' 000332' 000336' 000336' 000342' 000342' 000346' CALL SAVREG OOOOCOG LET RO .- DTA(R5) 016500 000000 01700'1 000002 LET R1 JSR PC,SAVREG MOV DTA(R5),RO MOV @lDT.PC(RO),R1 MOV BIC AP.SR2,R2 #177740,R2 CMP BlO SOFCNT(R1),R2 50002$ MOV MOV MOV JSR MOV R5,-(SP) R1,-(R5) RO,-(R5) PC,APTDED (SP)+,RS JSR PC,RESREG RTS PC "- @lDT.PC(RO) LET R2 '- AP.SR2 CLR.BY #177740 016702 042702 177472 177740 ;+ ; IF COUNT IS EQUAL TO THE LIMIT,WE ARE DONE - CALL APTDED 000352 1 000352' 000356' 000360' 000360' 000362' 000364' 000366' 000372' IF SOFCNT(R1) HIS R2 THEN 026102 103406 010546 010145 010045 004767 012605 000042 CALL APTDED IN <RO,R1> 000010 ENDIF 000374' 000374' 50002$: ;+ ; RESTORE REGS AND RETURN 000374' 000374' 004767 000400' 000400' 000400; 000400' 000207 CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: APT~OD (APT MODULE PACKAGE) hPTMDD.MAC 14-SEP-78 12:22 873 874 875 87G 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 90e 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 MACY11 30A(1052) 20-SEP-78 17:28 PAGE 19-9 APTDED PUT OPTION MODULE NAME INTO MAILBOX .SBTTL .IDENT APTDED IVO.OI SEQ 0075 PUT OPTION MODULE NAME INTO MAILBOX ;++ MODULE NAME: APTDED FUNCTIONAL DESCRIPTION: THIS ROUTINE STUFFS OF A FAILING OPTION OF THE APT MAILBOX. FATAL ERROR BITS IN THE 1ST,2ND,3RD AND FIFTH CHARACTERS MODULE NAME INTO THE 2ND AtJD 3RD WORDS IT RESETS AND RECOVERS. SET THE APT AND DTABLE'S ERROR WORD. INPUTS: DTABLE ADDRESS MODULE HEADER ADDRESS IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: DT.ERR PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG RESREG RSTRCY FUNCTIONAL DESCRIPTION: NONE CALLING SEQU::NCE: CALL APTD~D IN <DT,MH> WHERE: DT;DTABLE ADDRESS MH~MODULE HEADER ADDRESS VERSION: 0.0 EDIT ;-- DATE BY REASON APTMOD (APT MODULE PACKAGe) APTMOD.MAC 14-SE?-76 12:22 -322 923 924 (2) :)25 926 927 8253 929 (3) 930 (4) 331 (4) 932 933 934 935 336 937 938 939 (4) 94~ (4) 941 (4) 842 (2) 943 (4) 944 945 (2) 946 (3) (4) (3) (3) 947 948 (6) 949 (6) 950 (3) 951 (3) (3) (2) 952 MACY'1 30A(1052) 20-SEP-78 APTDED ROUTINE .SBTTL 17:23 PAGE 19-10 SEQ 0076 APTDED ROUTINE ROUTINE APTDED <TB,MD> 000402' 000402' APTDED: ;+ ; SAVE REGISTERS,GET GTABLE ADDR., AND MODULE rlEADER ADDR. 000402' 000402' 004767 000406' 000406' 016500 000412' 000412' 016501 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV TB(R5) ,RO MJV MD(R5),R1 MOV (R1 )+,AP.MB2 MOV #AP.M83,R3 MOV B (R 1 ) + , ( R3 ) + LET RO .- TB(R5) 000000 LET R1 .- MD(R5) 000002 ;+ ; ; ; ; 000416' 000416' 012167 C00422' 000422' 012703 000426' 000426' 112123 000430' 000430' 105721 000432' 000432' 111113 080434' 000434' 000436' 000436' 000440' 000442' 000446' 000450' 000450' 000456' 000456' 000462' 000462' 000466' 000466' 000466' 000466' STUFF APT MAILBOX WITH MODULE ASCII NAME,RESET AND RECOVER UPDATE ERRQR WORD IN DTABLE, AND SET APT FATAL BIT IN MB1 AND RETURN TO TrlE CALLER. LET AP.MB2 .- (R1)+ 177374 LET R3 .- #AP.MB3 000020' LET (R3)+ :B= (R1)+ INLINE <TSTB (R1)+> LET (R3) TSTB (R1)+ :B= (R1) MDVB INLINE <RESET> RESET 000005 CALL RSTRCY IN <RO> 010546 010045 004767 012605 100004 DT.ER~(RO) 005267 .- AP.MB1 + #1 177332 CALL RESREG 004767 OOOOOOG ENDRTN BIS #APTFER!FATERR,D INC AP. MBl JSR PC,RESREG RTS PC .- DT.ERR(RO) SET.BY #APTFER!FATERP. 000020 LET AP.MB1 MOV R5,-(SP) RO,-(R5) PC,RSTRCY (SP)+,R5 MOV MOV JSR OOOOOOG LET 052760 (Rl),(R3) 50000$: 5000~$: 000207 APT~OJ (APT APT~O~.MAC 954 95:5 953 957 958 959 960 961 962 963 964 965 963 967 963 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 9 0 '":, 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 MODULE PACKAGE) 14-SEP-78 12:22 MACY11 30A(1052) 20-SEP-78 17:23 PAGE 19-11 APTHER (APT HARD ERROR HA~DLER) .SBTTL SEQ 0077 APTHER (APT HARD ERROR HANDLER) ;++ MODULE NAME: APTHER FUNCTIONAL DESCRIPTION: THIS MODULE IS CALLED WHEN THE EXERCISER IS DETERMINED TO BE RUNNING UNDER APT ENVIRONMENT, TO HANDLE A HARD ERROR. IF THE ERROR COUNT IS LESS THAN THE LIMIT SET IN E-TABLE, CONTROL GOES BACK TO THE CALLER. IF THE COUNT EQUALS THE LIMIT THE RUN IS OVER (CALL APTDED). n';PUTS: DTABLE ADDRESS IMPLICI:- INPUTS: DT.PC OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: 1. APTDED 2. SAVREG 3. RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL APTHER IN <DTA> WHERE DTA = DATA TABLE ADDRESS VERSION: 0.0 EDIT DATE BY REASON APTMOD (APT MODULE PACKAGE) APTMO).MAC 14-SEP-78 12:22 1006 1007 1003 1009 (2) 1010 101 1 1012 1013 1014 1015 1016 (3 ) 1017 1018 (4) 1019 (4) 1020 (6) (6) 1021 (6) 1022 1023 1024 1025 1026 1027 (6 ) ( 9) 1028 1029 1030 (3) (5) (4 ) (3 ) (3 ) 1031 1032 (4 ) 1033 1034 1035 1036 1037 1038 (3 ) 1039 1040 (3 ) (3) (2 ) 1041 MACY11 30A(1052) 20-SEP-78 APT HER CODE .SBTTL 000470 1 000470 1 17:28 PAGE 19-12 SEQ 0078 APTHER CODE ROUTINE APT HER <DTA> APTHER: ;+ ; SAVE REGS; GET DTASLE ADDR, MODULE1S HEADER ADDRESS, ; AND HARD ERROR LIMIT FROM E-TABLE. ;- 000470 1 000470 1 004767 000474 1 000474 1 016500 Oe0500 1 000500 1 017001 000504 1 000504 1 016702 000510 1 000302 0005121 000512 1 042702 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV DTA(R5),RO MOV @lDT.PC(RO),R1 MOV SWAB AP.SR2,R2 R2 BIC #177740,R2 CMP BLO HRDCNT(R1),R2 50002$ MOV MOV R5,-(SP) R1,-(R5) RO,-(R5) PC,APTDED (SP)+,R5 JSR PC,RESREG RTS PC LET RO .- DTA(R5) 000000 LET R1 .- @lDT.PC(RO) 000002 LET R2 '- SWAP AP.SR2 177330 LET R2 .- R2 CLR.BY #177740 177740 ;+ ; IF COUNT IS EQUAL TO THE LIMIT,THEN WE ARE DONE ;- 000516 1 000516 1 026102 000522 1 103406 000524 1 000524' 010546 000526 1 010145 000520 1 01004:) 000532 1 004767 000536 1 012605 IF HRDCNT(R1) HIS R2 THEN 000044 CALL APTDED IN <RO,R1> M:JV MOV JSR 177644 ENDIF 000540' 000540 1 50002$: ;+ ; RESTORE REGS AND RETURN 000540 1 000540' 004767 0005441 000544 1 0005441 0005441 000207 CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: APTMOD (APT MODULE PACKAGE) APTMOD.MAC 14-SEP-78 12:22 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 MACY11 30A(1052) 20-SEP-78 17:28 PAGE 19-13 APTSEL - SELECT OPTION MODULES FROM MAP .SBTTL .IDENT SEQ 0079 APTSEL - SELECT OPTION MODULES FROM MAP JVO.Oj ;++ MODULE NAME: APTSEL FUNCTIONAL DESCRIPTIO~: THIS ROUTINE wILL SEARCH THE MODULE LIST AND SELECT MODULES IF BITS ARE SET IN MODULE MAP IN APT ETABLE. IF NO BIT IS SET FOR THE CORRESPONDING MODULE, THE MODULE IS DESELECTED. THE BITS IN THE MAP CORRESPOND TO THE DEV COUNT TO BE USED BY THE MODULE (DVID1 GETS THE BITS). INPUTS: DTA8LE ADDRESS IMPLICIT INPUTS: DT.MLST OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG RESREG 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1080 1087 1088 FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL APTSEL IN <DT> WHERE DT = ADDRESS OF DTABLE VERSION: 0.0 EDIT DATE 8Y REASON APTMOD (APT MODULE PACKAGE) APn,10D.MAC 14-SEP-78 12:22 1090 1091 1092 (2) 1093 MACY11 30A(1052) 20-SEP-78 APTSEL ROUTINE .S8TTL (3 ) 1099 (4) 1100 (4) 1 1 01 1102 (4) 1111 (4 ) 1 1 12 (6 ) ( 9) 000546' 000546' 004767 000552' 000552' 016500 000556' 000556 1 016002 000562 1 000562' 01270:3 CALL SAVREG OOOOOOG (6 ) 1 1 19 (4 ) (3 ) 1120 1 121 (6 ) 112~ (4) 1123 (4) 000000 1 128 PC,SAVREG MOV DTBL(R5),RO MOV DT.MLST(RO),R2 MOV NAP.MAP,R3 LET R2 .- DT.MlST(RO) 000032 LET R3 .- #AP.MAP 000100' ;+ ; WHILE NOT AT END OF MODULE LIST, GET MODULE HEADER ADDR.; IF BYTE ; IN APT MAP = 0, DESELECT MODULE; IF NOT SELECT MODULE AND SET ; UP DEVICE COUNT WHILE (R2) NE #0 DO 000566' 000566 1 000566' 005712 000570' 001416 000572' 000572' 01220"1 0005741 000574' 105713 000576' 001004 50002$: lET R1 000610' 000610' 052761 000616' 000616 1 111361 OC06221 000622 1 (R2) 50003$ rllOv (R2)+,R1 TSTB BNE (R3) 50004$ BIC #BIT14,STAT(R1) BR 50005$ SIS #BIT14,STAT(R1) rv:OVB (R3) ,DVID1 (R1) IFB (R3) EQ #0 THEN + 000600' 000600' 042761 000606' 000606' 000405 000610' TST BEQ := (R2)+ IF ZERO IN APT TABLE, DESELECT THE MODULE LET STAT(R1) 040000 := STAT(R1) CLR.BY #8IT14 000026 ELSE 50004$: 040000 LET STAT(R1) := STAT(R1) SET.BY #BIT14 LET DVID1 (R1) :B= (R3) 000026 000014 ENDIF 50005$: 1124 1125 1126 1127 JSR LET RO .- DTBl(R5) 1113 1114 1 115 1 116 11 17 1118 APTSEL ROUTINE ;+ ; SAVE REGISTERS,DTABlE AND GET MAP ADDRESS 110S 1109 (4) ( 6) (9) SEQ 0080 APTSEL: 1103 1104 1105 1106 1107 1 1 1C PAGE 19-14 ROUTINE APTSEl <DTBl> 000546' 000546' 1094 1095 1096 1097 1098 17:28 + ADVANCE TO NEXT IN MAP APTiJlOD (APT MODu:...E tJACKAGE) APTfvlOD. MAC 14-SEP-78 12:22 1123 (2 ) 1130 (4 ) l3 ) 1131 1132 1133 1134 1135 1 136 (3 ) 1137 (3 ) (3) ( 2) , 138 000622 1 000622 1 105723 000624 1 000624 1 0007'30 000626 1 20-SEP-78 MACY11 30A(i052) /~PTSEL ROUTINE IN LI NE <TSTB 17:23 PAGE 19-15 SEQ 0081 (R3)+> TSTB (R3)+ BR 50002$ JSR PC,RESREG RTS PC ENDDO 50003$: ;+ ; RESTORE REGISTERS 000626 1 COO626 1 004767 000632 1 000632 1 0006321 000632 1 000207 , CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: APTMOD (APT MODULE PACKAGE) APTMOD.MAC 14-SEP-78 12:22 1140 1141 1 142 1143 1144 1145 1143 1147 1 148 1149 1150 1 151 1152 1153 1154 1155 MACY11 30A(1052) 20-SEP-78 17:28 PAGE 19-16 APTKIL - KILL APT BY HALTI~G .SBTTL .IDENT APTKIL - KILL APT BY HALTING JVO.Oj ;++ MODULE NAME: APTKIL FUNCTIONAL DESCRIPTION: THIS ROUTINE DETERMINES IF AN ERROR WAS CAUSED BY THE MONITOR AND IF SO, STUFFS AN APPROPRIATE 4 LETTER CODE INTO WORDS 2 & 3 OF APT MAILBOX. A RUN SUMMARY IS OUTPUT. THE EXERCISER THEN HALTS. INPUTS: DTABlE ADDRESS 1156 IMPLICIT INPUTS: DT.ERR 1157 1158 1159 OUTPUTS: NONE 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1 171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1 181 IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: MD.COD SUBORDINATE ROUTINES CALLED: SAVREG RESREG MSGDEQ KSUM FUNCTIONAL SIDE EFFECTS: ***** HALTS THE EXERCISER ****** CALLING SEQUENCE: CALL APTKIL IN <DT> WHERE: DT = DTABLE ADDRESS VERSION: 0.0 1182 1183 1184 1185 SEQ 0082 EDIT DATE BY REASON APTMOD ( APT MODULE PACKAGE) 14-SEP-78 12:22 APTMOD. M.t\C 1187 1188 1189 (2 ) 1190 1191 1192 1193 1194 1195 (3 ) 1 195 (4 ) 1197 1198 1199 1200 .SBiTL (4 ) (6) ( 9) 1215 (7 ) 1216 (6) 1217 (4 ) (3 ) 1218 121D 1220 1221 1222 1223 1224 (4) PAGE 15-17 SEQ 0083 APTKIL ROUTINE ROUTINE APTKIL <TAB> 000634 1 000634' APTKIL: ;+ ; SAVE REGISTERS AND DTASLE ADDR. , 00C634 1 000634' 004767 000640' 000640 1 016500 CALL SAVREG OOOOOOG LET RO .- TAS(RS) 000000 ;+ ; COpy DT.ERR INTO R1 JSR PC,SAVREG MOV TAS(R5),RO MOV SIC DT.ERR(RO),R1 #100004,R1 TST SEQ R1 50002$ MOV AP.MCO,AP.MI:32 MOV #AP.MC1,R2 ASR R1 TST SEQ R1 50004$ ASR R1 ADD #2,R2 SR 50003$ MOV (R2) ,AP.MB3 AND MASK OUT FATAL ERROR SITS , 1201 1202 (4 ) (6) 1203 1204 1205 1206 1207 1208 1209 1210 (6 ) ( 9) 121 1 (4 ) 1212 (4 ) 1213 (7 ) 1214 17:28 20-SEP-78 MACY11 30A(1052) APTKIL ROUTINE 0006441 000644' 000650' LET R1 016001 042701 . - DT.ERR(RO) CLR.BY #100004 000020 100004 ;+ ; IF COpy OF DT.ERR IS NON ZERO, MOVE 'MOl TO ~ORD 2. ; SHIFT DT.ERR COpy UNTIL ZERO; ADVANCE R2 TO POINT TO PROPER ; ADDRESS OF 2 LETTER MSG ;- 000654 1 000654' 005701 000656' 001416 000660' 000660' 016767 000666' 000666' 012702 000672' 000672' 005201 000674' 000674' 0003741 005701 000676 1 001404 00070C' 000700' 006201 000702' 000702' 062702 000706 1 000706' 000772 000710 1 IF R1 NE #0 THEN LET AP.MS2 177254 177130 .- AP.MCO . - #AP.MC1 LET R1 . - R1 SHIFT -1 LET R2 000142 1 WHILE R1 NE #0 DO 50003$: . - R1 SHIFT -1 LET R2 . - R2 + #2 LET R1 000002 ENDDO 50004$: + STUFF 2 LETTER CODE TO MB3 000710 1 000710' 011267 LET AP.MB3 177104 . - (R2) APTMOD (APT MODULE PACKAGE) APTMOD.MAC 14-SEP-78 12:22 1225 (4) 1226 1227 1228 1229 1230 1231 ( 3) (5 ) (4) (3) (3 ) 1232 (3 ) 1233 (3 ) (4 ) (3 ) (3 ) 1234 (3 ) (6 ) 1235 1236 1237 1238 1235 1240 1241 1242 1243 (2) 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 (3 ) 1259 - ( '<') (3 ) (2 ) 1260 MACY11 30A(1052) 20-SEP-78 APTKIL ROUTINE 17:23 PAGE 19-18 ENDIF 000714' 000714' SEQ 0084 50002$: ;+ ; DO A RUN SUMMARY SUPPLYING FAKE CARRIAGE RETURN ARGUMENT. KEEP CALLING ; MSG DEQUER UNTIL IT ' 5 ALL OUTPUTTED. 000714' 000714' C00716' 000722' 000724' C00730' 000732' 000732' 000'132' 000732' 000734' 000736' 000742' 000744' 000744' 000752' CALL KSUM IN <RO,AP.FAK> 010546 016745 010045 004767 012605 177236 OOOOOOG REPEAT MOV MOV MOV JSR MOV R5,-(SP) AP.FAX,-(R5) RO,-(R5) PC,KSUM (S?)+,R5 MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,MSGDEQ (SP)+,R5 CMP BNE MD.COD,#MSGNUL 50005$ 50005$: CALL MSGDEQ IN <RO> 010546 010045 004767 012605 OOOOOOG UNTIL MD.COD EQ #MSGNUL 026727 001367 OOOOOOG 177775 ;+ ; ************************************ ; !!! I ! ! I ! ! ! I ! I ! ! I I HALT !!!!! I ! ! ! ! ! ! ! ; ************************************ 000754' 000754' INLINE <HALT> HALT 000000 ;+ ; THE END ;+ ;PRESS CONTINUE TO CONTINUE BUT ;ANY FURTHER ERRORS WILL GET U HERE AGAIN ;+ ; RESTORE REGS ., 000756' 000756' 004767 000762' 000762' 000762' 000762' 000207 000001 CALL RESREG OOOOOCG ENDRTN .END JSR PC,RESREG RTS PC 50000$: 50001$: APTMOD (APT MODULE PACKAGE) APT:-AOD. MAC 14-SEP-78 12:22 ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTDED OC0402RG APTFER= 000004 APTHER C00470RG APTO L 000634RG APTPR£= 000200 t\PTSEL COC546RC APTSER 000326RG /\PTSLP OOOlG4RG t,P. CPU 000042R AP.CR C00162R AP.E.ND 000140R J.i.;:>. ET 1 c-00034R ;'P.FAK 0OO16CR AP.MAP 000100R AP. MB1 000014R AP .1\182 00OO16R ;\p .M83 000020R AP.MB4 000022R fID.MSS 000024R AP.MCC 000140R IIP.MC1 000142R AP.MMO 0OOO44R 00OO50R AP. Mr,'1 AP.MM2 000054R AP. MM3 000060R AP.PS OOOOOORG ;\ P . POO OOOOOOR I\P. P02 0OOO02R AP.P04 000004R AP.POE: 0OOO06R AP.P10 0OO010R /l.P.P12 000012R AP.SR1 0OO036R IC).P, SR2 00OO40R 000106 ASB ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AJTOST= 020000 000110 AWAS OCOO01 :3ITO 31TOO 000001 BIT 01 000002 6IT02 000004 8IT03 000010 81T04 000020 000040 BII05 000100 BIT06 BIT07 000200 20-SEP-78 MACY 11 30A(1052) SYMBOL TABLE 000400 BIT08 001000 BIT09 000002 BIT1 002000 BIT10 004000 BIT 11 010000 BIT12 020000 BIT13 040000 BIT14 100000 BIT15 000004 B1T2 000010 B1T3 000020 BIT4 000040 BITS 000100 BIT6 000200 BIT7 000400 BIl8 001000 BIT9 000002 8KDEF 000020 BKMOD BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRlU DCEVNT= 000011 DEFRTN= 000400 D:AGMC= 000000 DROPMO= 100000 DSEVNT= 000014 000000 DTA DTADR - 000000 000000 DTBl DT.ADD= 000042 DT.AP = ()00100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 Dr.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 17:28 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KSP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT. PT A= 000064 Dr.RCS= 0'00102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= OCOO~6 DT.STO= 000010 Di.ST1= 000012 DT.S'I'.IR= 00C056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DvID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDlST= 000000 EOPBIT= 000001 ERRTYP= 000106 EvNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= OOOOSO ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREl= 001000 INHRRE= 000400 PAGE 20 SEQ 0085 INIT INTR 10MOD IOMODP= 10MODR= IOMODX= JACK KIPARO= KIPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPDR1= KIPDR2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KSUM KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MD MD.COD= MED MEMPAS= MODEXH= MODHOl= MODSEL= MSGCKD= MSGCKS= MSGDEQ= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= I't.SGNUL= MSGPOP= MSGPRM= MSGRES= 000030 000120 100000 102000 112000 110000 035060 172340 172342 172344 172346 172350 172352 172354 172356 172300 172302 172304 172306 172310 172312 172314 172316 *"'**** G 000040 000400 00J020 048000 000012 000001 000200 000002 ****** G 076600 040000 004000 002000 001000 000010 000011 ****** G 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSG.3h'lS = MSGSTD= M5GSYS= MSGVEC= N3KMOD= NCPUOP= NiJAPTY= NULL O\-JEN PAE~R PARPRE= PARSTA= PASC'.JT= PDPLSI= PDP60 PDP70 PRIO PRI1 PRI4 P~I5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= R3UFEA= RBUFPA= RBUFSZ= RBUFVA= RCSR RDSERV= RDWf-:MI= RELERR= REU\;OD= RELTIM= RESREG= RES1 RES2 RICl-IAR= RPTDAT= RSTrlCY= RSTRT = RUBOUT= RUNMOD= 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 00-0000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 **"'*** G 000101 000022 000020 020000 010000 ****** G 000056 000060 031060 002000 ****** G 000112 000177 100000 20-SEP-78 MACY 11 30A(1052) SYMBOL TABLE t.PTMOD (APT MODULE PACKAGE) t4-SEP-78 12:22 APTfJlOD .MAC R5VALU= 001740 SAM 075464 SAVREG= ****** SBADR = 000102 SBK:,mD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= COOOOO SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALl.J= 002200 177572 SRO SR1 177574 SR2 177576 17~516 SR3 STAT 000026 STATBI= 064757 STATl = 000027 SUSPND= 000001 A3S. 000000 000764 SVRO SVRl SVR2 SVR3 : SVR4 SVR5 SVR6 SYSCNT= SYSERR= TAB TB TMPIO TQOVF UIPARO= UIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDRS= G 000062 000064 000066 000070 000072 000074 000076 000052 000100 000000 000000 000002 000002 177640 177642 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 000 001 ERRORS DET~CTED: 0 DEFAULT G~08ALS GENERATED: 0 DSKZ:APTMOD,DSKZ:APTMOD=SPMAC/ML,EQUATE,APTMOD RUN-lIME: 20 ",1 .4 S:::CQiWS RLN-TIME RATIO: 54/32=1.6 CORE USED: 14K (27 PAGES) 17:28 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 ~JBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 00011~ WOTO WTINRE= 000352 WH.JHMI= 000222 XFLAG = 000005 XOFF 000023 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $FSBLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000.::;05 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 PAGE 20-1 SEQ 0086 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000i40 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $ISKl = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 000300 $NSKO $NSKl = 000130 $NSf-\2 = 000120 $NSK3 = 000120 $SAVLE= 177777 $SSKO = 050004 $TAGLE= 177777 $TAGNU= 050006 $TEMP 000300 $TSKO 050005 $TSK1 050003 $TSK2 = 050004 $TSK3 = 050006 $TSK4 = 050007 $$ARGC= 000002 $SBYTE= 000403 $$CASE= 000000 $$DST : 000000 $$E LOC: 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000752R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC : 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$STAG= 050000 000764R .MAIN. MACV11 38A(~C52) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 538 G05 508 385 941 958 17:29 TABLE OF CONTENTS COMMON EQUATE MODULE BUSERR PROCESS BUS ERROR TRAPS AND RESERVED INS. TRAPS COMMON DEFINITIONS AND REFERENCES FOR 8USERR .PRINT ;SPMAC: VERSION 1 . 1 000000 1 8USERR ROUTINE MODCHK GET OPTION ~ODULE HEADER ADDRESS AND OFFSET MODCHK ROUTINE SEQ 0067 BESRV -BUSS ERROR ROUTIN~ 8ESRV.MAC 14-SEP-78 11 :16 MACY11 30A(1052) 20-SEP-78 17:29 COMMON EQUATE MODULE PAGE 1S SEQ 0088 508 509 510 511 512 513 514 515 516 517 513 519 :520 521 522 523 524 525 526 527 528 529 .TITLE BESRV -BUSS ERROR ROUTINE .IDENT /0.0/ ;++ MODULE PACKAGE NAME: BESRV FUNCTIONAL DESCRIPTION: IT CONSISTS OF THE fOLLOWING MODULES: 1. BUSERR - PROCESS THE PC,PSW,SP & VECTOR AT THE TIME OF THE TRAP TO 4 OR 10, AND 2. MODCHK - INCREMENT THE # OF SYS ERRORS BY AN OPTION MODULE AND RETURN THE MODULE NAME AND OFFSET PC. IT WILL ALSO DROP THE OPTION MODULE IF TOO MA~Y SYS ERRORS HAVE BEEN CAUSED BY IT. NOTE: IT IS ASSUMED THE PROCESSOR IS AT PRIORITY 7 WHEN THIS ROUTINE IS ENTERED. VERSION: 0.0 530 EDIT 531 532 533 534 535 536 ;-- DATE BY REASON BESRV -BUSS ERROR ROUTINE BESKV.MAC 14-SEP-78 11 :16 MACY11 30A(1052) 20-SEP-78 17:29 PAGE 19-1 BUSERR PROCESS BUS ERROR TRAPS AND RESERVED INS. TRAPS 338 539 .SBTTL BUSERR PROCESS BUS ERROR TRAPS AND RESERVED INS. TRAPS .IDENT JVO.Oj 540 541 ;++ 542 543 MODULE NAME: BUSERR 544 545 FUNCTIONAL DESCRIPTION: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 56~ 563 564 565 56E 567 568 568 570 571 57~ 573 574 575 576 577 578 57£, 580 581 582 583 584 5BS 586 587 58L 589 59(, 591 592 593 THIS ROUTINE WILL PROCESS A BUS ERROR TRAP AND A RESERVED INSTRUCTION TRAP. IT WILL INCREMENT THE EXERCISER SYSTEM ERROR COUNT AND SET A SYSTEM ERROR BIT IN THE ERROR ~ORD. IT WILL FORM AND QUEUE A SYSTEM ERROR MESSAGE CONTAINING THE PC, PSW. AND SP AT THE TIME OF THE SYSTEM ERROR. IF THE SYSTEM ERROR WAS CAUSED BY AN OPTION MODULE - THE OPTION MODULE NAME AND OFFSET ADDRESS WHERE SYSTEM ERROR OCCURRED WILL A~SO BE OUTPUTTED. INPUTS: ADDRESS OF DATA TABLE IMPLICIT 1. 2. 3. 4. 5. 6. 7. INPUTS: DT.CFO DT.EVNT DT.MLST DT.PSW DT.SP DT.PC DT.ESIZ OUTPUTS: NONE IMPLICIT OUTPUTS: 1. DT.ERR 2. DT.EXS PATHOLOGICAL cnNNECTIONS: NONE SUBORDINATE ROUTINES CALLED: RECOVER FROM RESET 1. RSTRCY ERROR LOGGING 2. ERRLOG HOOK A MESSAGE 3. MSGDHOOK 16 BIT BINARY TO OCTAL ASCII CONVERSION ROUTINE 4. BOA16 BINARY TO DECIMAL ASCII CONVERSION ROUTINE 5. BDACNV GET PHYSICAL ADDRESS ROUTINE 6. GPA SAVE REGISTERS 7. SAVREG RESTORE REGISTERS 8. RESREG 8INARY TO OCTAL ASCII CONVERSION 9. BOAC FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: SEQ 0089 6ESRV -B~SS ERROR RJ0TINE EESRV.MAC 14-SEP-7811:16 594 595 59G 597 598 599 600 601 602 603 MACY11 30A(1052) 20-SEP-78 17:29 PAGE 19-2 BUSERR PROCESS BUS ERROR TRAPS AND RESERVED INS. TRAPS SEQ 0090 CALL BUSERR IN <DTADR> WHERE DTADR = ADDRESS OF DATA TABLE VERSION: 0.0 EDIT DATE BY REASON BESRV -BUSS BESRV.MAC 605 GOG 607 608 (1) 609 010 611 612 613 1314 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 ROUTINE 14-SEP-7B 11:16 ERRO~ MACY11 80A(1052) 20-SEP-78 17:29 PAGE 19-3 COMMON DEFINITIONS AND REFERENCES FOR BUSERR .SBTTL COMMON DEFINITIONS AND REFERENCES FOR BUSERR .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 000000· 000000· 000001 000001 ;**************** ; REFERENCED .GLOBL .GLOBL BY OTHER MODULES BUSERR BE.MCNT ;ROUTINE'S ENTRY ADDRESS ;# OF SYS ERRORS BY MONITOR ;**************** , ; GLOBAL REFERENCES .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL 53~ 633 634 635 635 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 SEQ 0091 MSGDHOOK SAVREG RESREG GPA BOA16 BOAC BDACNV ERRLOG DRPMOD RSTRCY ; TT INIT ROUTINE ;SAVE REGISTERS ;RESTORE REGISTERS ;GET PHYSICAL ADDRESS ;ROUTINE TO CONVERT BINARY TO OCTAL ASCII ;CONVERT 18 OR 22 BIT PHYS ADDR TO OCTAL ASCII ;BINARY TO DECIMAL ASCII CONVERSION RTNE ;ERROR LOGGING ;DROP A MODULE ;RECOVER CPU REGS AFTER RESET ;**************** ; LOCAL STORAGE BE.VA: 0 BE.PA: 0 BE.EA: 0 BE.VPC: .WORD BE.VEC: .WORD BE.OFPC: .WORD BE. PS\:J: .WORD BE.STK: .WORD BE.MX2: .WORD BE.MCNT: .WORD BE.MX3: .WORD BE. MAX: .WORD COOOOQ' 000000 000002' OOGOOO 000004' 000000 000006' 000000 Cooa10, 000000 000012' 000000 000014' 000000 000016 1 000000 000020 1 000012 0000221 000000 000024 1 000036 000026' 000004 ;VIRTUAL ADDRESS ;LOWER 16 BITS OF PHYSICAL ADDRESS ;EXTENDED ADDRESS WORD ;STORE PC ;STORE EITHER A 4 OR 10 (THE VECTOR LOC. ) ;STORE OFFSET PC HERE ;STORE PSW ;STORE STACK POItHER ;MAX # OF ALLOWAB:...E SYS ERRORS BY THE MONITOR ;LOC TO HOLD NUMBER OF SYS ERRORS BY MONITOR ;MAX # OF ALLOWA3LE SYS ERRORS BY EXERCISER ;MAX NO. OF SYS ERRORS ALLOWED BY AN OPTION MODULE 0 0 0 0 0 . . D<10> 0 . . 0<30> ~D<4> ;+ ; THE ORDER OF THE FOLLOWING LABELS SHOULD NOT B~ CHANGED ; BECAUSE THEY ARE PART OF THE SYSTEM ERROR MESSAGE ;- 000030· 022445 025052 020040 BE.SEMSG: .ASCII /%%** SYSTEM ERROR **%/ RESRV -BUSS ERROR ROUTINE 14-SEP-78 11 : 16 IJESRV.MAC 660 661 662 663 564 665 666 667 668 669 670 371 672 000036' 054523 000044' 04244J 000052' 02004{) 045 000057' 000064' 051117 000072' 025503 000100' 020040 000106' 020040 000114' 05352.3 000122' 020040 000130' 020040 000136' 0225~4 000140' 000006 COO146' 020040 000150' 000006 000"156 ' 020040 000160' 000010 000170' 020040 000172' 000006 000200' 020040 000202' OC0086 000210' 020040 000212' 000G06 000220' 000045 052123 051122 025052 042526 020040 020040 042101 020040 020040 050123 042440 000222' 04044:) 000226' 000005 040 000233' f)00234' 000006 000242' 000045 020124 046505 051117 045 052103 050040 020040 051104 050040 020040 020040 041522 BE.AVEC: BE.AVPC: BE.APPC: BE.APSW: SE. ASTK: BE.AEXS: 673 674 675 676 677 678 679 680 681 682 683 MACY 11 30A(1052) 20-SEP-78 ~7:29 PAGE 19-4 COMMO~ DEFINITIONS AND REFERENCES FOR BUS ERR .ASCII /%\,'ECTOR .BLKB .ASCII .BlKS .ASCII .BlKS . ASCII .BlKS .ASCII .BlKS . ASCII .BlKS .ASCIZ 6 ADDR PSW / / / SE.AOFPC: .ASCII .BlKS .ASCII .BlKS .A5CIZ .EVEN ;**************** ERCT%/ / / 8. 6 / 6 / / / ;HOLD ASCII REPRESENTATION OF VPC ;HOlD ASCII REPRESENTATION OF PPC ;HOlD ASCII REPRESENTATION OF PSW ;HOLD ASCII REPRESENTATION OF STACK 6 /%/ ;HOlD ASCII REPRESENTATION OF SYS ERR CT /%AT / 5 ;"AT" ;HOLD ASCII MODU:"'E NAME , SE.ATMSG: SE.AMOD: SP ;HOlD ASCII REPRESENTATION OF VECTOR ADR / 6 PC+ SEQ 0092 / / 6 /%/ ;HOLD ASCII OF Or:FSET PC BESRV -BUSS ERROR ROUTINE 14-SEP-7811:16 BES~V.MAC 685 G86 387 (2) G88 689 690 1391 392 693 (3 ) 694 (4 ) 395 S96 697 398 699 700 701 702 (6) (9) 703 (4 ) 704 (4 ) (3 ) 705 (4 ) 706 (4 ) 707 708 70S 710 7' 1 712 (4 ) 713 (4 ) 714 (4 ) 715 716 717 718 71S 720 721 (6) 722 723 724 725 726 20-SEP-78 MACY 11 30A(1052) BUSERR ROUTINE .SBTTL PAGE 19-5 SEQ 0093 BUSERR ROUTINE ROUTINE BUSERR 000244" 000244" 17:29 <TABADR> BUSERR: ;+ ; SAVE REGISTERS AND GET OTABLE , 000244" 000244" 004767 000250" 000250" 016500 CALL SAVREG OOOOOOG LET RO . - TABADR(R5) 000000 JSR PC,SAVREG l'.'IOV TA8ADR(R5),RO C,'P BNE DT.EVNT(RO),#EVN 50002$ MOV #4,BE.VEC BR 50003$ MOV #10,BE.VEC MOV DT.PC(RO),BE.VPC MOV DT.PSW(RO),BE.PS MOV DT.SP(RO),BE.STK BIS #SYSERR,DT.ERR(R ;+ ; GET EVENT CODE AND STORE VECTOR ADDRESS 4 OR 10 IN BE.VEC RESERVED INSTRUCTION BUS ERROR AND 10 ; 4 000254' 000254" 0:)0262" 000264" 000264 ' 000272 ' 000272" 000274" 008274" 000274" 000302" 000302" = = , IF DT.EVNT(RO) EO #EVNTBE THEN 026027 001004 000000 000200 012767 000004 177516 LET BE.VEC := #4 ELSE 000403 LET BE.VEC 012767 000010 . - #10 50002$: 177506 ENDIF 50003$: ;+ ; SAVE PC,PSW, AND STACK POINTER AT TIME OF TRAP , 000302' 000302' 016067 000310' 000310" 016067 000316' 000316' 016067 · - DT.PC(RO) LET BE.PSW · - DT.PSW(RO) LET BE.STK · - DT.SP(RO) LET 8E. VPC 000002 177476 000004 177476 000006 ,'17472 ;+ ; SET SYS ERROR OCCURRED BIT IN ERROR WORD ;- 000324' 000324" 052760 LET DT. ERR (RO) 000100 . - DT.ERR(RO) SET.BY #SYSERR 000020 + INCREMENT EXERCISER SYS ERROR COUNT BESRV -BUSS ERROK R00TINE 8ESRV.MAC 14-SEP-7811:16 MACY11 30A(1052) 20-SEP-78 BUSERR ROUTINE 17:29 PAGE 19-6 SEQ 0094 727 728 (6) 000332' 000332' LET DT.EXS(RO) .- DT.EXS(RO) + #1 005260 DT.EXS(RO) INC 000060 729 730 731 732 ;+ ; IF EXERCISER SYS ERROR COUNT >= MAX~ALSO SET FATAL ERROR BIT IN DT.ERR 733 734 735 (6) (9) 736 (6) 737 (4) 000336' 000336 1 026067 000344' 103403 000346' 000346 1 052760 000354 1 000354 1 IF DT.EXS(RO) HIS BE.MX3 THEN 000060 177460 100000 000020 CMP BLO DT.EXS(RO),BE.MX 50004$ BIS #FATERR,DT.ERR(R LET DT.ERR(RO) := DT.ERR(RO) SET.BY #FATERR ENDIF 50004$: 738 739 740 741 ;+ GET OPTION MODULE LIST POINTER. IF THE PC IS GREATER THAN STARTING ADDRESS OF MODULES, BUT LESS THAN THE HIGHEST ADDRESS OF EXERCISER, DETERMINE WHICH MODULE CAUSED THE ERROR BY CALLING MODCHK. R1 WILL CONTAIN STARTING ADDRESS OF OFFENDING MODULE WHEN OPERATION COMPLETE. BE.OFPC WILL CONTAIN OFFSET PC INTO A MODULE. IF NOT A MODULE INCREMENT # OF SYS ERRORS CAUSED BY MONITOR AND IF TOO MANY,SET FATAL ERROR BIT IN ERROR WORD, AND SET BE.OFPC TO O. 742 743 744 745 746 747 748 749 750 751 752 753 754 (4) 755 756 757 LET R1 000354' 000354 1 016001 := DT.MLST(RO) 000032 MOV DT.MLST(RO) ,R1 MOV (R1),R4 TST SEQ (R 1 ) 50006$ CMP BLOS R4, ( R1 ) 50007$ MOV (R1),R4 TST (R 1 ) + SR 50005$ ;+ ; GET THE LOWEST ADDRESS IN THE MODULE LIST 758 759 (4) 760 (4) (6) ( 9) 761 (6) (9 ) 762 (4 ) 763 (4 ) 764 (2) 765 (4) (3 ) 000360' 000360' 011104 000362' 000362' 000362 1 005711 000364 1 001405 000366' 000366' 02041 1 000370 1 101401 0003721 000372 1 01 1104 0003741 000374' 0003741 0003741 005721 000376 1 000376' 00C771 000400' LET R4 := (R1) WHILE (R1) NE #0 DO 50005$: IF R4 HI (R1) THEN LET R4 := (R1) ENDI F 50007$: INLINE <TST (R 1 ) +> ENDDO 50006$: BESRV -BUSS ERROR ROUTINE 14-SEP-78 11 : 16 BESRV.MAC 766 767 768 769 (6) (9 ) (6 ) (9) 770 ( 3) 771 772 773 774 775 776 (4) 777 ( Lt ) 778 (4 ) ( 6) (9) 779 (4 ) 780 (6) 781 (4) (3 ) 782 783 784 785 (3 ) ( 5) (4) (3 ) (3 ) 786 ( 4) (3 ) 787 788 789 790 791 792 793 ( 6) 000400 1 000400 1 C00404 1 000406 1 000414 1 000416 1 000416 1 17:2) PAGE 19-7 SEQ 0095 IF BE.VPC HIS R4 AND BE.VPC LOS DT.ESIZ(RO) THEN 177402 026704 103430 026760 101024 177374 004767 000500 000044 CALL MODCHK CMP BLO CMP 8HI BE. VPC, R4 50010$ BE.VPC,DT.ESIZ(R 50010$ JSR PC,MODCHK MOV #5,R3 MOV #BE.AMO~,R2 TST SEQ R3 50012$ MOVB (R1 )+, (R2)+ DEC R3 BR 50011$ MOV Mev MOV JSR MOV R5,-(SP) #BE.AOFPC,-(R5) BE.OFPC,-(R5) PC,BOA16 (SP)+,R5 BR 50013$ INC BE.MCNT CLR BE.OFPC + GET THE MODULE ASCII NAME INTO THE MESSAGE 000422 1 000422 1 000426 1 000426 1 000432 1 000432 1 000432 1 000434 1 000436 1 000438 1 000440 1 000440 1 000442 1 000442 1 000444 1 . - #5 LET R2 . - #BE.AMOD LET R3 012703 000005 012702 000226 1 WHILE R3 NE #0 DO 00570:3 00140:3 50011$: LET (R2)+ :B= (R 1 ) + 112122 LET R3 00530:3 . - R3 - #1 ENDDO 000773 50012$: + CONVERT OFFSET PC TO ASCII 000444 1 000444 1 000446 1 000452 1 OCC4S6' 000462' 000464 1 000464' 000466 1 CALL BOAlS IN <BE.OFPC,#8E.AOFPC> 010546 012745 016745 0;J4757 012605 000234 1 177334 OOOOOOG ELSE 000413 50010$: + 000466' 000466 1 005267 IF NOT A MODULE INCREMENT THE MONITOR SYS LET BE.MCNT 177330 794 . - BE.MCNT + #1 ERRO~ COUNT + SET OFFSET PC TO ZERO (FOR LATER USE) 795 796 797 7S8 (4) MACY11 30A(1052) 20-SEP-78 BUS ERR ROUTINE LET BE.OFPC 0004'/2 1 000472 1 005067 177314 . - #0 BESRV -BUSS ERROR ROUTINE 14-SEP-7811:16 BESRV.MAC MACY11 30A(1052) 20-SEP-78 BUSERR ROUTINE 799 800 (6) ( 9) 804 (6) a05 (4) 806 (4 ) PAGE 19-8 SEQ 0096 ;+ ; IF TOO MANY SYS ERRORS CAUSED BY MONITOR SET FATAL BIT IN ERROR WORD '301 802 803 17:29 000476 1 000476 1 026767 C00504 1 i 0340:3 000506' (-00506' C52760 000514' C00514' 000514' 000514' IF BE.MCNT HIS BE.MX2 THEN 177320 177314 100000 000020 CMP BlO BE.MCNT,BE.MX2 50014$ BIS #FATERR,DT.ERR(R MOV MOV MOV JSR MOV R5,-(SP) #BE.AVEC,-(R5) BE.VEC,-(R5) PC,BOA16 (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #BE.AVPC,-(R5) BE.VPC,-(R5) PC,BOA16 (SP)+,R5 r.tOV BE.VPC,BE.VA IVOV R5,-(SP) #BE.Vt-.,-(R5) LET QT.ERR(RO) .- DT.ERR(RO) SET.BY #FATERR ENDIF 50014$: ENDIF 50013$: 807 80S 809 810 811 812 813 814 ;+ 815 816 ; CONVERT VECTOR TO ASCII 817 818 819 (3 ) (5 ) (4 ) (3 ) ( 3) 82(,,821 82.£ 823 824 825 826 827 (3 ) (5 ) (4) ( 3) (3 ) 828 829 830 831 832 833 834 835 (4 ) 836 (3) (5) 000514' 000514' 000516' 000522' 000526' 000532' CALL BOA16 IN <BE.VEC,#BE.AVEC> 010546 012745 016745 004767 012605 000140' 1772t)2 OOOOOOG ;+ ; CONVERT VPC TO ASCII 000534' 0003341 010546 000536 1 012745 00054.2' 016745 000546' 004767 000552' 012605 CALL BOA16 IN <BE.VPC,#BE.AVPC> 000150' 177240 OOOOOOG ;+ ; CONVERT PHYSICAL ADDRESS TO ASCII ;- 000554' 000554' 016767 000562' 000562' 010546 0005641 012745 LET BE.VA '- BE.VPC 177226 177216 CALL GPA IN <RO,#BE.VA> 000000' MOV 3ES~V -BUSS ERR2R ROUTINE 14-SE P-73 ,,: 16 BESKV. MAC (4 ) (3 ) (3 ) 837 ( 3) (7 ) (6 ) (5 ) (C; ) (3 ) (3 ) 000570' 000572' 000576' 000600' 000600' C00602' OOCG06' 000612' COOa16' 000620' 000624' 010045 004767 012605 MACY11 30A(1052) 20-SEP-78 BUSERR ROUTINE 17:29 PAGE 19-9 MOV JSR MOV OOOOOOG CALL BOAC IN <RO,BE.PA,BE.EA,#BE.APPC> 010546 012745 0:6745 016745 010045 004767 012605 SEQ 0097 000160' 177172 177164 OOOOOOG MOV MOV MOV MOV MOV JSR MOV RO,-(R5) PC,GPA (SP)+,R5 R5,-(SP) #BE.A~PC,-(R5) BE.EA,-(R5) BE.PA,-(R5) RO,-(R5) PC,BOAC (SP)+,R5 33.3 839 840 841 942 843 (3 ) (5 ) (4) (3 ) (3 ) 844 845 846 847 843 849 850 851 (3 ) (5 ) (4 ) (3 ) (3 ) ;+ ; CONVERT PSW TO ASCII , CALL BOA16 !N <8E.PSW,#BE.APSW> 000526' Ci00626' 000630' 000634' 000640' 000644' 010546 012745 016745 004767 012605 000172' 177154 OOOOOOG MOV MOV MOV JSR MOV R5,-(SP) #BE.APSW,-(R5) BE.PSW,-(R5) PC,BOA16 (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #BE.ASTK,-(R5) BE.STK,-(R5) PC,BOA16 (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #BE.AEXS,-(R5) DT.EX5(RO),-(R5) PC,BDACNV (SP)+,R5 ;+ ; CONVERT STACK TO ASCII , '- 000646' 000646' 000650' 000654' 000660' 000664' CALL BOA16 IN <BE.STK,#BE.ASTK> 010546 012745 016745 004767 012605 000202' 177136 OOOOOOG 85~ 853 854 855 856 857 (3 ) (5 ) (4 ) ( 3) (3 ) 858 ;+ ; CONVERT SYS ERROR COUNT TO ASCII , OC0666' 000666' 000670' 000674' 000700' 000704' CALL BDACNV IN 010546 012745 016045 004767 012605 <DT.EXS(RO),#B~.AEXS> 000212' 000060 OOOOOOG 859 860 861 862 863 864 865 86C 867 ;+ ; RESET THE WORLD TO STOP J';NY INTERRUPTS , 000706' 000005 RESET BESRV -suss ERROR ROUTINE BESRV.MAC 14-SEP-78 11 :16 868 869 370 871 872 873 874 875 376 (3 ) (4 ) (3 ) (3 ) 377 (4 ) 378 (4) 379 880 (2 ) 881 ( 2) ( 3) (7 ) (6 ) (5) (4 ) (3 ) (3 ) 889 890 (2 ) 891 (2 ) 892 893 894 895 896 897 898 8S9 (6 ) (9) 900 (3) (7 ) (6 ) (5) 17:29 PAGE 19-10 SEQ 0098 ;+ ; RECOVER THE BAD THINGS THAT THE RESET DID ; AND GET THE PRIORITY BACK DOWN TO ZERO SO WE CAN TYPE 000710' 000710' 000712' 000714' 000720' 000722' 000722' 000724' 000724' CAll RSTRCY IN <RO> 010546 010045 004767 012605 OOOOOOG LET -(SP) '- #0 005046 012746 lET -(SP) '- #456$ 000732' INLINE <RTI> 000730' 000730' 000002 000732' 000732' "'IOV M:]V JSR MOV R5,-(SP) RO,-(R5) PC,RSTRCY (SP)+,R5 CLR -(SP) MOV #456$,-(SP) RTI INLINE <456$:> 882 883 884 885 886 887 883 MACY11 30A(1052) 20-SEP-78 BUSERR ROUTINE 456$: i+ ; QUEUE THE SYSTEM ERROR MESSAGE (STANDARD SYSTEM ERROR) 000732' 000732' (;00734' 000740' 000744' 000750' 000752' 000756' CALL MSGDHOOK IN <RO,NMSGPOP,#BE.SEMSG,#2$> 010546 012745 012745 012745 010045 004767 012605 000764' 000030' 000002 1 $: NOP Mev OOOOOOG INlINE <1$: 000760' 000760' 000240 000762' 000762' 000776 JSR MOV R5,-(SP) #2$,-(R5) #BE.SEMSG,-(R5) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 MOV M<]V MOV MOV NOP> INLINE <BR 1$> BR 1 $ ;+ ; IF ERROR WAS CAUSED BY OPTION MODULE, ALSO QUEUE THE OPTION ; MODULE NAME AND APC ;- 000764' 000764' 000770' 00Cl772' 00,)772' 000774' 001000' 001004' 2$: 005767 001415 010546 012745 012745 012745 IF BE.OFPC NE #0 THEN 177022 CALL MSGDHOOK IN <RO,#MSGPOP,#BE.ATMSG,#4$> 001024' 000222' 000002 TST SEQ BE.OFPC 50015$ MOV MOV MOV MOV R5,-(SP) #4$,-(R5) #BE.ATMSG,-(R5) #MSGPOP,-(R5) BESRV -BUSS ERROq ROUTINE 14-SEP-7811:16 BESRV.MAC (4) (3) (3) 901 (2) 902 (2) 903 904 (4) 305 906 907 908 909 910 (6) (8) (6) (9) (6) 911 (3) (4) (3) (3) 912 (4) 913 914 915 916 917 918 91S (6) 920 921 922 923 924 925 926 (6) (9) (6) (9) 927 (3) (5) (4) (3) (3) 928 {4} ~29 001010' 001012' 001016' 001020' 001020' 001022' 001022' 001024' 001024' 001024' 010045 004767 012605 MACY11 30A(1052) 20-SEP-78 BUSERR ROUTINE 17:29 PAGE 19-11 SEQ 0099 OOOOOOG INLINE <3$: 000240 NOP> INLINE <BR 3$> RO,-(R5) PC,MSGDHOOK (SP)+,R5 3$: NOP BR 3$ 000776 4$: ENDIF MOV JSR MOV 50015$: ;+ ; IF AN ERROR LOGGING CPU, CALL THE LOG ROUTINE 001024' 001024' 001032' 001034' 001042' 001044' 001044' 001044' 001046' 001050' 001054' 001056' 001056' IF #PD?60 SETIN DT.CFO(RO) OR #PDP70 SETIN DT.CF0(RO) iHEN 032760 004000 000014 010000 000014 :O~004 032760 001405 #PDP60,DT.CFO(RO 50016$ #PDP70,DT.CFO(RO 50017$ MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,ERRLOG (SP)+,R5 SUB #5, Rl 50016$: CALL ERRLOG IN <RO> 010546 010045 004767 012605 BIT B"JE BIT BEQ OOOOOOG ENDIF 50017$: ;+ ; BACK UP R1 TO POINT TO MODULE HEADER ADDRESS 001056' 001056' LET Rl 162701 . - Rl - #5 000005 ;+ ; IF ERROR CAUSED BY OPTION MODULE AND LIMIT REACHED, DROP THE MODULE ,' 001062' 001062' 001066' 001070' 001076' 001100' 001100' 001102' 001104' 001106' 001112' 001114' 001114' IF BE.OFPC NE #0 AND SYSCNT(Rl) HIS BE.MAX THEN 005767 001412 026167 i03406 010546 010145 010045 004767 012605 176724 000052 176730 CALL DRPMOD IN <RO,Rl> TST BEQ CMP BLO BE.OFPC 50020$ SYSCNT(R1),BE.MA 50020$ MOV R5,-(SP) R1,-(R5) RO,-(R5) PC,DRPMOD (SP)+,R5 rv.CJV MOV JSR I't.OV OOOOOOG ENDIF 50020$: BESRV -BUSS ERROR ROUTINE 14-SEP-7811:16 BESRV.MAC 930 931 932 933 934 935 933 (3) 937 938 939 (3) (3) (2) MACY11 20-SEP-7B BUSERR ROUTINE 30~(1052) 17:29 PAGE 19-12 SEQ 01vO ;+ ; RESTORE REGISTERS ., 001114 1 001114 1 004767 001120 1 001120 1 001120 1 001120 1 000207 CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 50001$: CESRV -BUSS ERROR ROUTI~E BESRV.MAC 14-SEP-7811:16 941 942 MACV11 30A(1052) 20-SEP-78 17:29 PAGE 19-13 MODCHK GET OPTION MODULE HEADER ADDRESS AND OFFSET .SBTTL MODCHK GET OPTION MODULE HEADER ADDRESS AND OFFSET .IDENT /VO.O/ 9~3 344 945 943 347 348 949 950 951 952 353 954 955 356 FUNCTIONAL DESCRIPTION: THIS ROUTINE IS ENTERED TO DETERMINE THE OPTION MODULE WHICH CONTAINS THE ADDRESS AT WHICH A BUS ERROR OR RESERVED INSTRUCTION OCC~RRED. IT WILL RETURN THE HEADER ADDRESS OF THE OPTION MODULE, INCREMENT THE SVS ERROR COUNT FOR THE MODULE AND IF TOO MANY SVS ERRORS HAVE OCCURRED,DROP THE MODULE FROM AN EXERCISER. IT WILL ALSO RETURN THE ADDRESS AT WHICH THE SVS ERROR OCCURRED AS AN OFFSET INTO THE MODULE. THIS OFFSET IS ALSO KNOWN AS THE ASSEMBLED PC OR APC. SEQ 0101 BESRV -BUSS ERROR ROUTINE 14-SEP-78 11 : 16 BESRV.MAC 958 959 960 (2 ) 861 962 963 964 965 966 967 (4 ) 968 (4 ) 969 970 971 972 973 974 975 976 977 978 979 980 981 (4) 982 (4) ( 6) (9) 983 (6 ) ( 9) 984 (6) (9 ) 985 (4 ) 986 (4 ) 987 (4 ) 988 (2 ) 989 (4 ) (3 ) 990 991 992 993 994 995 996 MACY11 30A(1052) 20-SEP-78 MODCHK ROUTINE .SBTTl 17:29 PAGE 19-14 MODCHK ROUTINE ROUTINE MODCHK 001122 1 001122 1 SEQ 0102 MODCHK: ;+ ; GET ADDRESS OF OPTION MODULE LIST,PUT IN R2 ; GET ADDRESS AT WHICH SYS ERROR OCCURRED INTO R3 001122 1 001122 1 016002 001126 1 001126 1 016003 LET R2 .- DT.MLST(RO) 000032 lET R3 '- DT.PC(RO) 000002 MOV DT.MLST(RO),R2 MOV DT.PC(RO),R3 CLR R1 TST BEQ (R2) 50003$ CMP BHI (R2),R3 50004$ CMP BlOS (R2),R1 50005$ MOV (R2),R1 TST (R2)+ BR 50002$ ;+ ; INITIALIZATION COMPLETE ;+ ; FIND THE SMALLEST ADDRESS THAT DOES NOT EXCEED THE ; ADDRESS OF SYS ERROR lET Rl 001132' 00~132' 001134' 001134' 001134' 001136' 001140' 001140' 001142' 001144' 001144' 001146' 001150' 001150' 001152' 001152' OQ1152' 001152' 001152 1 001152 1 001154 1 001154 1 001156' := #0 005001 WHILE (R2) NE #0 DO 50002$: 005712 001407 IF (R2) lOS R3 THEN 021203 101003 IF (R2) HI Rl THEN 02120'1 10140'1 LET R1 011201 := (R2) ENDIF 50005$: ENDIF INLINE <TST 50004$: (R2)+> 005722 ENDDO 000767 50003$: ;+ ; CALCULATE THE OFFSET ADDRESS ;- BESRV -BUSS ERf'OR ROUTINE 8ESRV.MAC 14-SEP-78 1 1 : 16 997 (4 ) (6 ) 998 999 1,)00 1001 1002 0011=:6' 001156' 001162' '~O3 001166' 001166' ( 6) 1 :)04 1005 1006 1,)07 '008 '009 1010 (3) (3 ) (2) 1 0' 1 20-SEP-78 MACY11 30A(1052) MODCHK ROUTINE LET BE.OFPC : = R3 - 010367 160167 17:29 PAGE 19-15 SEQ 0103 R1 176630 176624 MOV SUB R3,BE.OFPC Rl,BE.OFPC It-JC SYSCNT(Rl) RTS PC ;+ ; ADD ONE TO OPTION MODULE'S SYS ERROR COUNT , LET SYSCNT(Rl} 005261 001172' 001172' 001172 1 001172' 000207 000001 := SYSCNT(R1) + #1 000052 ENDRTN 50000$: 50001$: . END 6ESrtV -BUSS ERROR ROUTINE 14-SEP-78 11 : 16 6ESRV. ~.1AC 000102 ACSR ACTSIT= 004000 ADD~22= 001000 ADR 00C006 APTFE~= 000004 APTPRE= 000200 ASB 000106 ASS~M9= 000010 ASTAT = 000104 AUTO 000010 AUTQST-= 0200~0 A\I}AS 000110 bDACNV= ****** G BE.AEX 000212R BE.AMJ 000226R EE.AOF 000234R t3E.APP COO160R SE.APS COO172R BE.AST 000202R BE.ATVI 000222R BE. AVE OOC140R BE.AVP OC0150R f3E. EA 000004P. St..MAX 000C26R BE.MCN 000022RG BE.MX2 0OO020R 3E. i\1X3 000024R OOO:)12R SE.DFP >3E. PA 00OO02R 3E.PSI'/ 00OCl14R :3E.SEM 0OOO30R 000016R l3E.STK i3E.VA OOOOOGR BE. VEe 00OO10R 3E.VPC 00OO06R 31TO 000001 31TOO 000001 81101 000002 BI102 000J04 000') 1 0 BI103 8IT04 000020 000040 BIT05 81106 000100 BIT07 000200 BIT08 000400 OO~OOO 81109 BITl 000002 002000 BIT 10 8IT11 004800 BIT 12 010000 81T13 020000 040000 BIT 1 4 BIT15 100000 20-SEP-78 MACY11 30A(1052) SYMBOL TABLE 000004 BIT2 000010 BIT3 000020 BIT4 000040 BIT5 000100 BIT6 000200 BIT7 000400 BIT8 001000 BIT9 000002 BKDEF OC0020 BKMOD BKMODE= 040000 Bf<SLSH= 000134 BOAC ****** G 80A16 = ****** G 000244RG 8USERR C;"PRES= 000004 CASTAT= 000004 CDERCT= 000146 CmIlDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DRPMOD= *>i<**** G DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 D1.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= OC0024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 17:29 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000O~2 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.R!::L= 00004~ DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 D1.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT. SItJR= 000056 DT.SYP= 000072 DT .I;JBU= 000050 DT.IA1H!..= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 EN BNU L= 000001 ENDLST= 000000 EOPBIT= OOGOOl ERRLOG= ****** G ERRTYP= 000103 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 GPA ****** G HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 0001CO IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 100000 IOMOD IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 PAGE 20 SEQ 0104 JACK KIPARO= KIPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= K1PAR7= KIPDRO= KIPDR1= KIPDR2= KIPDR3= KIPDR4= K1PDR5= KIPDR6= K1PDR7= KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MED MEfv'lPAS= MODCHK MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDHO= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGH1'>!G= MSGHRD= MSGMAP= MSG~UL= 035060 172340 171342 172344 172346 NBKMOD= NCPUOP= NOAPTY= NULL OWEN 17L350 P.~ERR 172352 172354 172356 172300 172302 172304 172306 172310 172312 172314 172316 000040 000400 000020 040000 000012 000001 000200 076600 04JOOO 001122R 004000 002000 001000 000010 000011 000005 PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO ****** G 000017 177777 00:)013 000004 COO022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 MSGPGP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= oooeoo MSGSYS= 000012 MSGVEC= 000020 P~Il PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RA~NUM= RBUFEA= RBUFPA= RBUFSZ= RBUFVA= RDSERV= RJWHMI= RELERR= REU/.OD= REL TIM= RESREG= RESl RES2 RICHAR= RPTDAT= RSTRCY= RSTRT = RUBOUT= RUN:V:OD= RSVALU= SAM SAV~EG= SBADR = SBK:V:OD= SBKSEL= SC. A.DR= SC . .ALC= SC.APC= 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 00024::> 00030:) 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 *"'**** G 000056 000060 031060 002000 ****** G 000112 000177 100000 001740 075464 ****** G 000102 000000 OiOOOO 000006 000014 000016 GES~V MACV11 30A(1052) 20-SEP-78 SYMBOL TABLE -BUSS ERROR ROUTINE 14-SE P-78 11: 16 8ES:~V. :\1AC 000076 SVR6 SVSCNT= 000052 SYSERR= 000100 TABADR= oooeoo TMPIO = 000002 TQOV F = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 U!PAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPOR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 vJBSTAT= 000040 WBUFEA= 000136 SC.CKL= SC.CKP= SC.CLG= SC.HLD= SC.SCA= SEN;)LS= SOFCNT= SOFPAS= S~)hCE = SiJOINT= SPVALU= 000002 00G004 000000 000010 000012 177777 000042 000046 000040 000032 002200 Si~O 177572 SR1 177574 Si~2 177576 Si~3 172516 STAT 000026 STATSI= C64757 STAT1 = 00(;027 SUSPND= OOOGOl SVRO 000062 SIiRl 000064 SVR2 000066 S\/R3 00C070 SVR4 000072 S\/R5 000074 ABS. 000000 001174 000 001 ERRORS DEiECTED: 0 DEFAULT GLOBALS GENERATED: 0 OSKZ:8ESRV,OSKZ:BESRV=SPMAC/ML,EQUATE,BESRV RUN-TIME: 20 10 .4 SECONDS RUN-TI~E RATIO: 54/32=1.7 CORE USED: 14K (27 PAGES) 17:29 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 WDFR 000116 000114 WDTO WTINRE= 000352 WHJHMI = 000222 XFLAG = 000005 000023 XOFF 00002; XON $BGNLE= 177777 $ERFLG= 000400 $F$ANO= 000310 $F$BAO= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$Or::C= 000220 $F$OO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 PAGE 20-1 SEQ 0105 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$VES= 000402 $IFLEV= 177777 $ISKO = 000001 $ I SK 1 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 000300 $NSKO $NSK 1 = 000120 $NSr<2 :.:: 000110 $NSK3 = 000110 $SAVLE= 177777 $SSKO = 050003 $TAGLE= 177777 $TAGNU= 050006 $TEMP = 000300 $TSKO 050002 050003 $TSK1 050004 $TSK2 050005 $TSK3 $$ARGC= 000000 $$ BYT E·= 000403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $:liERFL= 000000 $$ F LAG= 000001 $SFROM= 000000 $$ LOC = 001146R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$C(-:-N1= 050000 $$RTN2= 050001 000000 $$SRC $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 001174R = .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 531 534 599 642 675 733 17:30 TABLE OF CONTENTS COM~ON EQUATE MODULE CCMMON DEFINITIONS AND REFERENCES 000000' .PRINT IERRLO INITIALIZE '1/60 ERROR LOG INITIALIZE 11/60 ERROR LOG ROUTINE ERRLOG '1/60 ERROR LOGGING ROUTINE ERRLOG '1/60 ERROR LOG ROUTINE ;SPMAC: VERSION 1.1 SEQ 0106 BLOG60 BINDER FOR 11/60 ERROR LOG ROUTINES MACY11 30A(1052) BLOG60.MAC 05-JUL-78 08:58 COMMON EQUATE MODULE 508 .TITLE 20-SEP-78 17:30 PAGE 19 SEQ 0107 BLOG60 BINDER FOR 11/60 ERROR LOG ROUTINES 509 510 .IDENT /VO.O/ 511 512 513 514 515 S16 517 518 519 520 521 522 523 524 525 526 527 ;++ MODULE PACKAGE NAME: BLOG60 FUNCTIONAL DESCRIPTION: THIS IS A BINDER TG KEEP 11/60 ERROR LOG MODULES PACKAGED TOGETHER. CONTAINS THE FOLLOWING MODULES: IERRLO - INITIALIZE 11/60 ERROR LOG ERRLOG - 11/60 ERROR LOG VERSION: 0.0 EDIT ;-- DATE BY REASON BLOG60 BINDER FOR 11/60 ERROR LOG ROUTINES MACY11 30A(1052) BL0360.MAC 05-JUL-78 08:58 COMMON EQUATE MODULE 523 53,) 531 532 533 534 (1) 535 533 :337 538 533 540 541 :342 543 544 545 545 547 548 549 55') 551 552 553 554 555 555 557 558 559 560 561 562 553 564 56S 566 567 563 569 570 571 572 573 574 575 576 577 578 579 580 20-SEP-78 17:30 PAGE 19-1 .SBTTL COMMON DEFINITIONS AND REFERENCES .MCALL 5TRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $L5TIN = 1 $LSTTAG = 1 COOOOO' 000000' 000001 000001 ;**************** ; REFERENCED BY OTHER MODULES .GLOBL .GLOBL ;MODULE ENTRY POINT ;MODULE ENTRY POINT IERRLO ERR LOG ;******~********* ; GLOBAL REFERENCES , .GLOBL .GLOBL .GLOBL .GLOBL ;SAVE REGISTER ROUTINE ;BINARY TO OCTAL ASCII CuNVERSION (16 BIT) ;MESSAGE HOOK ROUTINE ;RESTORE REGISTERS SAVREG BOA16 MSGDHOOK RESREG ;**************** ; LOCAL EQUATES , L6.0FF L6.ENB L6.STO 000100 100001 000010 ;OFFSET INTO ERROR LOG REGISTERS ;ENABLE AND FREEZE ON FIRST ERROR ;SIZE OF LOG BUFFER 100 100001 AD<8> ;**************** ; LOCAL STORAGE 000000' 000020' 0.J0022 ' 000024' 000026' 000030' 000032' 000034' 000036' 000010 000036' L 6 • BU F : • B L K 1'-1 L6. TAB: .WORD .WORD .WORD .WORD .WORD .WORD .IJJORD .WORD 0OO1(Q' 000122' 000140' 000163' 000203' 000223' 000246' ;LOG BUFFER FOR 11/60 ERROR LOG ;TABLE POINTING TO LOCAL STORAGE FOR ;MESSAGE L6.STO L6.JAM L6.SRV L6.PBA L6.CUA L6.FLG L6.WHA L6.CDA L6.CTA ;**************** ; LOCAL MESSAGES , 000040' 000040' 000046' 000054' 000J61' Oc-0066' 000074' 000102' L6.MSG: 030445 042440 046040 112 000006 020040 020057 027461 051122 043517 046501 030066 051117 045 020057 L6.JAM: 051440 053122 .ASCII '%11/60 ERROR LOG%' . ASC II .BLKB .ASCII 'JAM/ I "'D<6> SRV/ , SEQ 0108 20-SEP-78 MACY 11 30A(1052) bLOG60 BINDER FOR 11/60 ERROR lOG ROUTINES COMMON DEFINITIONS AND REFERENCES 05-JL:~-78 08:58 t,LOG€O. MAC 581 582 583 584 585 586 587 583 58'.3 590 591 592 593 594 595 000104 1 000112 1 000120 1 000122 1 000130 1 000136 1 000140 1 000146 1 000154 1 000162 1 000163 1 000171 1 000176 1 000203 1 000211 1 000216' 000223 1 000006 020040 020057 000006 020040 020057 000006 020045 026507 040 .BlKB .ASCII ~D<6> .BlKB . ASC II ~D<6> .BlKB .ASCII ~D<6> .BlKB .ASCII AD<6> WHAMI/ l6. ~I)HA: • BlKS .ASCII -D<3> 1 CDATA/ l6.CDA: .BlKB .ASCI! "D<6> 1 CTAG-CPU/ .BlKB .ASCIZ .EVEN AD<6> l6.SRV: 050040 040502 041440 040525 020040 047111 046106 027524 040 046501 000006 040 052101 000006 020040 027511 044127 040 020040 027501 042103 040 D00231 I 040 000236' 000244 1 000246 1 000254 1 043501 020057 000006 000045 020040 041455 052103 052520 l6.PBA: l6.CUA: l6.FlG: DOOO06 L6.CTA: PBA/ CUA/ 1% 1%1 I 1 FlG-INT/ 1 1 1 17:30 PAGE 19-2 SEQ 0109 BLOG50 BINbER FOR 11/60 ERROR LOG ROUTINES MACY11 30A(1052) 20-SEP-78 BLOG60.MAC 05-JUL-78 08:58 COMMON DEFINITIONS AND REFERENCES 597 598 17:30 GOO .SBTTL IERRLO INITIALIZE 11/60 ERROR LOG .IDENT IVO.O/ 601 302 ;++ 599 603 604 605 606 G07 608 609 610 611 612 613 314 615 616 617 PAGE 19-3 SEQ 0110 MODULE NAME: IERRLO FUNCTIONAL DESCRIPTION: THIS MODULE WILL INITIALIZE THE 11/60 ERROR LOG TO THE ENABLE AND FREEZE ON FIRST ERROR STATES. INPUTS: NONE U.'1PLICIT INPUTS: NONE OUTPUTS: NONE 61e 6'9 620 621 62L 623 624 625 626 IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE 627 628 629 630 631 632 633 634 635 636 637 638 FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL IERRLO VERSION: 0.0 EDIT DATE BY REASON BLOG60 BINDER FOR 11/60 ERROR LOG ROUTINES MACY11 30A(1052) 20-SEP-78 BLOG60.MAC 05-JUL-78 08:58 IERRLO INITIALIZE 11/60 ERROR LOG 640 641 642 643 644 (2) 645 646 647 S43 649 650 651 (2) 652 653 654 :355 656 657 658 659 660 661 (6) 662 663 664 665 666 667 668 669 670 (2) 671 672 (3) (3) (2) 17:30 PAGE 19-4 SEQ 0111 .SBTTL INITIALIZE 11/60 ERROR LOG ROUTINE ROUTINE IERRLO 000256' 000256 1 IERRLO: ;+ ; SAVE REGISTER RO, WHEN EXECUTING A "MED" INSTRUCTION RO IS ; USED TO TRANSFER DATA TOO AND FROM WHAMI REGISTER. PUSH RO 000256 000256 1 010046 1 MOV RO,-(SP) BIS #L6.ENB,RO MOV (SP)+,RO RTS PC j+ ; READ WHAMI REGISTER THEN SET THE ENABLE BIT INTO ; RO AND THEN WRITE BACK TO WHAMI REGISTER MED RDWHMI 000260 1 076600 000262 1 000022 000264 1 000264 1 052700 000270 076600 000272 1 000222 1 LET RO .- RO SET.BY #L6.ENB 100001 MED WTWHMI ;+ j RESTORE REGISTER AND RETURN 000274' 000274 1 012600 POP RO 000276 1 000276 1 000276 1 000276 1 000207 ENDRTN 50000$: 50001$: BLOG60 BINDER FOR 11/60 ERROR LOG ROUTINES MACY11 30A(1052) ~C-SEP-78 6LOG60.MAC OS-JUL-78 08:58 INITIALIZE 11/60 ERROR LUG ~OUTINE 17:30 PAGE 19-5 SEQ 0112 674 675 676 677 678 G79 580 .SBTTL ERRLOG 11/60 ERROR LOGGING ROUTINE .IDENT /VO.O/ ;++ MODULE NAME: ERRLOG G81 682 G83 684 385 685 687 G83 683 69) 691 592 693 694 695 693 697 693 699 700 701 702 703 704 FUNCTIONAL DESCRIPTION: THIS MODULE WILL READ THE 11/60 PROCESSOR ERROR LOG SCRATCHPAD AND TRANSFER THE ERROR LOG TO PHYSICAL CORE AND THEN GENERATE A MESSAGE THAT WILL CUT?UT 8 OF THE SCRATCHPAD REGISTERS (100-107). THESE REGISTERS AqE IDENTIFIED AS FOLLOWS: JAM - JAM REGISTER STATUS SRV - SERVICE REGISTER OF STATUS PBA - PHYSICAL BUS ADDRESS REGISTER (BIT 17,16) CUA - MICROPROGRAM ADDRESS FLG/INT - FLAG REQUEST REGIsrER OF STATUS/LAST VECTOR SERVICED WHAMI - VARIETY OF PROCESSOR OPTION STATUS BITS, PROCESSOR OPTION STATUS CDATA - CACHE DATA CTAG/CPU- CACHE TAG DATA/HIT REGISTER INPUTS: DTABLE IMPLICIT INPUTS: NONE OUTPUTS: NONE 7C5 70S 707 IMPLICIT OUTPUTS: NONE 70S 709 710 711 712 PATHOLOGICAL CONNECTIONS: NONE 716 SUBORDINATE RO~TINES CALLED: SAVREG - SAVE REGISTERS BOA16 - BINARY TO OCTAL ASCII CONVERSION (16 aITS) MSGDHOOK - MESSAGE HOOK ROUTINE RESREG - RESTORE REGIST~RS 717 718 719 FUNCTIONAL SIDE EFFECTS: NONE 713 714 715 720 721 722 723 724 725 726 727 728 729 CALLING SEQUENCE: CALL ERRLOG IN <A> A .. ADDRESS OF DT ABLE V~RSION: 0.0 EDIT CATE BY REASO~ BLOG60 BINDER FOR 11/60 ERROR LOG ROUTINES MACY11 30A(1052) 20-SEP-78 5L0360.MAC 05-JUL-78 08:58 ERRLOG 11/60 ERROR LOGGINS ROUTINE 731 732 733 734 735 (2) 733 737 738 739 740 741 742 743 (3) 744 (4 ) 745 (4 ) 746 747 748 749 750 751 752 (4) (6 ) ( 9) 753 754 (4 ) 755 (2 ) 755 (2 ) 764 (6) 765 7G6 (4) (3) 767 7G8 769 770 771 772 SEQ 0'13 ROUTINE ERRLOG <DTABLE> 000300' 000300' ERRLOG: ;+ ; SAVE REGISTERS AND GET ADDRESS OF LOG BUFFER ALONG WITH INITIALIZING ; LOG COMMAND AND ADDRESS TO ERROR LOG REGISTER 100 ;- C00300' (00300' 000304' 000304' 000310' 000310; CALL SAVREG 004767 012701 012702 OOOOOOG LET R1 . - # L6. BUF LET R2 . - #L6.0FF 000000' 000100 JSR PC,SAVREG MOV #L6.BUF,R1 MOV NL6.0FF,R2 C\I1P BGE R2,#L6.0FF+NL6.S 50003$ MOV R2, 1 $ ;+ ; NOW READ ERROR LOG wORD AND LOAD IT INTO LOG BUFFER UNTIL ; ERROR LOG IS SAVED. ;- 000314' 000314' 000314' 020227 000320' 002007 000322' C00322' 010267 000326' 000326' 076600 000330' 000330' ooooco WHILE R2 LT NL6.0FF+#L6.STO DO 50002$: 000110 LET 1$ .- R2 000002 IN LI NE <MED> MED INLINE <1$: .WORD 0> ,$: .WORD MOV RO,(R1)+ INC R2 8R 50002$ 0 ;+ ; LOAD RO (DATA FROM LOG) INTO LOG BUFFER AND POINT LOG BUFFER ; TO NEXT ENTRY AND R2 TO NEXT COMMAND AND ADDRESS 760 ('n PAGE 19-6 .SBTTL ERRLOG 11/60 ERROR LOG ROUTINE 757 758 759 761 762 763 17:30 000332' 000332' 000334' 000334' 000336' 000336' 00J340' LET (R1)+ '- RO 01002" LET R2 := R2 + #1 005202 ENDDO 000766 50003$: ;+ ; POINT TO "FP.LOG JAM" EN;RY IN LOG BUFFER AND POINT TO INDEX TABLE, CONVERT TO OCTAL ; ASCII AND LOAD MESSAGE ALSO DO THE SAME TO FOLLOWING 7 ENTRIES IN LOG BUFFER. GlOu60 BINDER FOR 11/60 ERROR LOG ROUTINES MACY11 30A(1052) 20-SEP-78 BLOG60.MAC C5-JUL-78 08:58 ERRLOG 11/60 ERROR LOG ROUTINE 773 (4 ) 774 (4 ) 775 (4 ) 776 (4 ) (6) ( 9) 777 (3) (5) (4 ) (3 ) (3 ) 778 (2 ) 779 (4) (3 ) 780 781 782 783 784 785 (4 ) 786 (3 ) (7 ) (6 ) (5 ) (4 ) (3 ) (3 ) 787 (2) 783 (2) 789 790 791 792 793 794 (2) 795 (3) 796 797 (3) (3) (2) 798 000340' 000340' 005002 0003421 000342' 012700 0:)0346' 000346' 012701 000352' OOC352' C00352' 020227 000356' 001410 000360' 000360' 0105413 000362' 012145 000364' 012045 000366' 004767 000372 1 012605 000374' 000374 1 105722 000376 1 000376 1 000765 000400' 17:30 PAGE 19-7 SEQ 0114 LET R2 .- #0 LET RO .- #L6.BUF 000000' LET R1 .- #L6.TAB 000020' CLR R2 MOV #L6.BUF,RO MOV #L6.TAB,R1 CMP BEQ R2,#L6.STO 50005$ MOV 11.10 v MJV JSR MOV R5,-(SP) ( R 1 ) + , - ( R5 ) (RO)+,-(R5) PC,BO.\16 (SP)+,R5 WHILE R2 NE #L6.STO DO 50004$: 000010 CALL BOA16 IN «RO)+,(R1)+> OOOOOOG INLINE <TSTB (R2)+> TSTB (R2)+ ENODO BR 50004$ MJV DTABLE(R5),RO MOV MOV MJV MGV MOV JSR MOV R5,-(SP) #3$,-(R5) #L6.MSG,-(R5) hMSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 2$: NOP BR 2$ 50005$: ;+ ; DUTPUT MESSAGE ;- 000400 1 000400' 016500 000404' 000404' 010545 000406' 012745 000412' 012745 000416' 012745 000422 1 01004:3 000424' 004767 000430 1 01260:3 000432' 000432 1 000240 000434 1 000434 1 000776 LET RO .- DTABLE(R5) 000000 CALL MSGDHOOK IN <RO,#MSGPOP,#L6.MSG,#3$> 000436' 000040' 000002 OOOOOOG INLINE <2$: NOP> INLINE <BR 2$> ;+ ; RESTORE REGISTERS AND RETURN , .000436' 000436' 000436 1 000436' 004767 000442' 000442 1 000442' 000442' 000207 OOOOO~ INLINE <3$:> 3.$: CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 50001$: .END MACY11 30A(1052) BLOG60 BINDER FOR 11/60 ERROR LOG ROUTINES SYMbOL TABLE 05-JUL-78 08:58 BLOG60.MAC ACSR 000102 ACTBIT= 004000 ADD~22= 001000 ADR 000006 ArT;--ER= 000004 APT?RE= 000200 t.SS 00O~06 ASS:::MB= OC0010 ASTAT = 00C104 AUTO 000010 AUTOST= 020000 AlvAS 000110 00C001 BITO GITOO 000001 8IT01 000002 BIT02 000004 BIT03 000010 81i04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 RIT09 001000 81i1 000002 BIT10 002000 BIT 1 1 004000 3IT 12 010000 81T13 020000 B1T14 040000 81T15 100000 81T2 000004 81-;-3 000010 81T4 OC0020 8175 000J40 OJ0100 BITG BIT7 000200 000':;00 BITS BIT9 001000 BKDEF 000002 i3KiV,OD 000020 SKl\iODE= 040000 SKSLSH= 000134 BOA16 = ***>1'** G CAPRES= 000004 CASTAT= 00C004 CDtRCT= 000146 CDviDCT = 000144 CKTIM = 100000 CLKPRE= 000001 CONFIC1= 000056 CQOVF 000001 000015 CR CSRA 000100 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DlAG-MC= 000000 DROPMO= 100000 DSEVNT= 000014 DTA8LE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESl= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KSE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.QFF= 000070 DT.PAS= 000074 DT.?C = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ~0-SEP-78 ENDLST= 000000 EOPBIT= 000001 ERRLOG 0OO300RG ERRTYP= 000105 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 lCOUNT= 000040 IDNUM = 000122 IE 000100 lERRLO 000256RG lNDPAR= 000040 lNHDRP= 040000 INHEPR= 020000 INHREL= 001000 lNHRRE= 000400 INIT 000030 INTR 000~20 lOMOD 100000 IOMODP= 102000 lOMODR= 112000 IOMODX= 110000 JACK 035060 KlPARO= 172340 KIPAR1= 1723£;2 KIPAR2= 172344 KlPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KlPDR1= 172302 KIPDR2= 172304 KIPDR3= 17L306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 0000:0 KTXTND= 040000 LF 000012 LPSTAT= 000001 L6.BUF OOOOOOR L6.CDA 000223R 17:30 PAGE 20 SEQ 0115 L6.CTA L6.CUA L6. ENB= L6. F LG L6.JAM L6.MSG L6.0FF= L6.PBA L6.SRV L6.SiO= L6.TAB L6.WHA MAPSTA= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDHO= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGf't.AP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= N8KMOD= NCPUOP= NOAPTY= NULL OItJEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 = 000246R 000140R 100001 000163R 000066R 000040R 000100 000122R 000104R 000010 000020R 000203R 000200 076600 040000 OO·~OOO 002000 001000 000010 000011 000005 ****** G 000017 177777 000013 000004 000022 00·)007 000021 177775 000002 177776 000001 00)006 000003 000015 00')014 000016 000000 000012 000020 001000 000020 000002 000000 0240LO 000010 002000 000100 000034 020000 004000 010000 PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRO PR4 P~5 PR6 P<:<7 PS PSW RANNU:v!= RBUFEA= RBUFPA= RSL! FSZ= RBUFVA= R::JSERV= RDWHMI= RELERR= RELMOD= RELTIM= RESREG= RES1 RES2 RICHAR= RPTDAT= RSTRT = RU80UT= RUNMQD= R5VALU= SAM SAVREG= S9ADR = SBKr,10D= SBKSEL= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SOFCNT= SOF;JAS= SPACE = SPOINT= SPVALU= SRO SR1 OOCOOO 00C040 000200 000240 000300 000340 000000 000200 000240 000300 000340 1777713 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 ****** G 000056 000060 031060 002000 000112 000177 100000 001740 075464 ****** 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 G MAC'( 11 30A(1052) BL.OG60 BINDER FOR 11/60 ERROR lOG ROUTINES SYMBOL TABLE 05-JUl-78 08:58 BLOG60.MAC UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= WBUFEA= WBUFPA= W8UFRQ= WBUFSZ= 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 \~DFR 000116 000114 WOrD WTINRE= 000352 SR2 177576 SR3 172516 STAT 000026 STATBI= 06C,757 STAT1 = 000027 SUSPND= 000001 SVRO 0:)0062 SVR1 000064 SVR2 000066 000070 SVR3 SVR4 000072 SVR5 (100074 SVR3 oe0076 SYSCNT= 00C052 SYSERR= 000100 HIIPIO :: 000002 TQOVF = 000002 UIP.6.RO= 177640 UIPAR1= 177642 LJIPA.R2= 177644 UIPAR3= 177646 ASS. 000000 000444 000 OOi ERRORS DETECTED: 0 DEFAULT GLOSALS GENERATED: 0 DSKZ:BLOG60,DSKZ:BLOG60=SPMAC/ML,EQUATE,BLOG60 RUN-TIME: 13 3 .3 SECONDS RUN-TIME RATIO: 36/16=2.1 CORE USED: 14K (27 PAGES) WTWHMI= 000222 XFlAG = 00,)005 XOFF 000023 XON 000021 $BGN LE= 177777 $ERFLG= OOO~OO $F$AND= 000310 $F$BAD= 000401 $F$SLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= OC0210 $FSLOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 20-SEP-78 17:30 PAGE 20-1 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000120 $SAVLE= 177777 $SSKO = 050005 $TAGlE= 177777 STAGNU= 050006 000300 $TEMP 050004 $TSKO $TSK1 = 050005 SEQ 0116 $$ARGC= 000002 $$8,(TE= 000403 $$CASE= 000000 $$D5T = 000000 $ $E LOC: 000000 $$ERFl= 000000 $$FLAG= 000340 $$FROM= 000000 $$LOC : 0OO3:,6R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$R7N1= 050000 $$RiN2= 050001 $$SRC = 000000 $$TGSV= OOOOO~ $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000444R .MAIN. WoACY11 30A(1052) 20-SEP-78 [QUATE.MAC 13-SEP-78 16:13 3 530 S33 575 G22 642 G90 17:31 TABLE OF CONTENTS COMMON EOU~TE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT ;SPMAC: VERSION 1.1 IERRLO INITIALIZE 11/70 REGISTERS AND ERROR LOG INITIALIZE 11/70 REGISTERS ROUTINE ERRLOG 11/70 ERROR LOGGING 11/70 ERROR LOG ROUTINE SEQ 0117 BLOG70 BINDER FOR ERR LOG MODULES BLOG70.MAC 06-SEP-78 15:53 508 509 510 511 512 513 514 515 :516 517 518 ~19 520 521 522 523 524 525 526 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE 17:31 PAGE 19 SEQ 0118 .TITLE BLOG70 BINDER FOR ERRLOG MODULES .IDENT JVO.Oj j++ MODULE PACKAGE NAME: SLOG70 FUNCTIONAL DESCRIPTION: THIS IS A BINDER TO KEEP ERRLOG MODULE TOGETHER. CONTAINS FOLLOWING MODULES: IERRLO - INITIALIZE 11j70 ERROR LOG ERRLOG - 11/70 ERROR LOG VERSION: 0.0 EDIT CATE BY REASON MACY11 30A(1052) 20-SEP-7e COMMON EQUATE MODULE BLOG70 BINDER FOR ERRLOG MODULES BLOG70.MAC 06-SEP-78 15:53 528 529 530 531 532 533 ( 1) 534 535 536 537 538 539 540 541 542 543 544 545 346 547 548 549 550 551 552 553 554 55S 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 17:31 PAGE 19-1 SEQ 0119 .SBTTL COMMON DEFINITIONS AND REFERENCES .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG = 1 000000 1 000000 1 000001 000001 ;****************** ; REFERENCED BY OTHER MODULES .GLOBL .GLOBL ;MODULE ENTRY POINT ;MODULE ENNTRY POIJNT IERRLO ERR LOG ;**************** ; GLOBAL REFERENCES .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GL03L .GLOBL .GLOBL .GLOBL ;CONVERT TO OCTAL ASCII (16 BITS) ;CONVERT TO OCiAL ASCII (22 BITS) ;MESSAGE HOOK ROUTINE ;CONTROL REGISTE~ (CACHE) ;TEMP STORAGE FOR CACHE OPERATION ;LOW ERROR ADDRESS REGISTER ;HIGH ERROR ADDRESS REGISTER ;MEMORY SYSTEM ERROR REGISTER ;MAINTENANCE REGISTER ;CPU ERROR REGISTER BOA16 BOAC MSGDHOOK CCNTRL KONTRL CPULAR CPUHAR CPUMER CPUMNT CPUCPE ;******w*****¥*** ; LOCAL MESSAGES 000000 1 000000 1 030445 000006 1 042440 000014 1 OL; 604 J OJ0020 1 046445 000026 1 042522 000033 1 000003 000041 I 04J 000046'1 04:2525 000054 1 020057 000056 1 ooooe6 0000641 000045 00C066 1 042101 000074 1 000010 000104 1 000045 L7.MSG: 027461 051122 043517 04G505 027507 030067 051117 . ASCII 1%11/70 ERROR LOG ' 0511C5 040 .ASCII '%MEMERREG/ L7.MED: 050103 043505 .BLKB .ASCII ~D<6> 020040 051122 L7.CED: .BLKB .ASCIZ 051104 020057 L 7. MS 1 : L7.ADR: .ASCII .BLKB .ASCIZ .EVEN I CPUERREG/ 1 . . D<6> /%/ 'ADDR/ . . D<8> /%/ I SLOG70 BINDER FOR ERR LOG MODULES BLOG70.MAC OG-SEP-78 15:53 574 575 576 577 573 579 580 581 582 583 584 585 583 587 5Ba 583 590 591 592 593 594 595 596 597 593 599 500 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 MACY11 30A(1052) 20-SEP-78 17:31 caM~ON DEFINITIONS AND REFERENCES PAGE 19-2 SEQ 0120 .SBTTL IERRLO INITIALIZE 11/70 REGISTERS AND ERROR LOG .IDENT JVO.Oj ;++ MODULE NAME: IERRLO FUNCTIONAL DESCRIPTION: THIS ROUTINE WILL INITIALIZE THE FOLLG~ING REGISTERS: MEMORY SYSTEM ERROR REGISTER CPU EhROR REGISTER LOW ERROR ADJRESS REGISTER HIGH ERROR ADDRESS REGISTER MAINTENANCE REGISTER CONTROL REGISTER (CACHE) INPUTS: NONE IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL IERRLO VERSION: 0.0 EDIT DATE BY REASON 5L0870 BINDER FOR ERR LOG MODULES BLOG70.MAC 06-SEP-78 15:53 621 622 623 624 (2) G25 626 627 628 629 MACYll 30A(1052) 20-SEP-78 17:31 PAGE 19-3 IERRLO INITIALIZE 11/70 REGISTERS AND ERROR LOG .SBTTL INITIALIZE 11/70 REGISTERS ROUTINE 1 ROUTINE IERRLO 000106 000106 1 IERRLO: ;+ ; INITIALIZE THE 11/70 REGISTERS; MEMORY SYSTEM ERROR, ; HIGH ADDRESS, CONTROL, MAINTENANCE AND CPU ERROR (530 G31 (4 ) 632 (4) 633 (4 ) 634 (4) 635 (4 ) 335 (4 ) 637 633 (3 ) (3 ) (2 ) 639 SEQ 0121 000106' OC0106' 000114 1 000114' 000120' C00120 1 000124' 000124' 000132 1 000132' 000136' 00C13f)' 017777 005077 005077 LET @CPUMER ·- @CPUMER LET @CP~LAR ·- #0 LET @lCPUHAR ·- #0 OOOOOOG OOOOOOG OOOOOOG OOOOOOG LOW ER~OR · - KONTRL OOOOOOG OOOOOOG LET @CPUCPE · - #0 OOOOOOG LET @CPUMNT · - #0 ADDRESS, MOV @CP.Ul\,lER ,@CPUMER CLR @lCPULAR CLR @lCPUHAR MOV f~ONTRL,@CCNTRi. CLR @CPUCPE CLR @lCFUMNT RTS PC LET @CCNTRL 016777 005077 005077 000142 1 000142 1 000142 1 000142 1 000207 OOOOOOG ENDRTN 50000$: 50001$: BLOG70 BINDER FOR ERR~OG MODULES BLOG70.MAC 06-SEP-78 15:53 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 563 664 665 666 667 668 669 670 671 672 673 674 675 67E 677 678 679 680 681 682 MACY11 30A(1052) 20-SEP-78 17:31 INITIALIZE 11/70 REGISTERS ROUTINE .SBTTL ERRLOG .IDENT IVO.O/ PAGE 19-4 SEQ 0122 11/70 ERROR LOGGING ;++ MODULE NAME: ERRLOG FUNCTIONAL DESCRIPTION: THIS MODULE WILL OUTPUT THE CONTENTS OF ~HE MEMORY SYSTEM ERROR REGISTER(17777744) AND THE CPU ERROR REGISTER(17777766). IF A PARITY ERROR OCCURRED THEN A 22 BIT ADDRESS IS ALSO OUTPUTTED, THE ADDRESS IS GE~ERATED FROM THE LOW ERROR ADDRESS REGISTER (17777740) AND THE HIGH ERROR ADDRESS REGISTER (17777742) INPUTS: DTABLE IMPLICIT INPUTS: DT.EVNT - EVENT WORD OF DTABLE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: BOA16 - OCTAL TO ASCII CONVERSION (16 BITS) BOAC - OCTAL TO ASCII CONVERSION (22 BITS) MSGDHOOK- MESSAGE HOOK ROUTINE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL ERRLOG IN <A> A --ADDRESS OF DTABLE 683 684 VERSION: 0.0 685 686 687 EDIT DATE BY REASON BLOG70 BINDER FOR ERR LOG MODULES 06-SEP-78 15:53 BLOG70.MAC 689 690 691 692 (2 ) 693 694 595 693 697 698 699 (2 ) (3) 700 701 (4) 702 (4) 703 704 705 706 707 703 709 ( 3) ( 5) (4 ) (3 ) (3 ) 710 711 712 713 714 715 716 (3 ) (5 ) (4 ) (3 ) (3 ) 717 718 719 720 721 722 (3 ) (7 ) (6) (5 ) (4) (3 ) (3 ) MACY11 30A(1052) 20-SEP-78 ERRLOG 11/70 ERROR LOGGING 17:31 PAGE 19-5 SEQ 0123 .SSTTL 11/70 ERROR LOG ROUTINE ROUTINE ERRLOG <DTABLE> 000144 1 000144 1 ERRLOG: ;+ ; SAVE REGISTERS, GET DTABLE AND EVENT CODE PUSH RO,R1 000144' 000144' 0100·Q6 000146 1 010146 000150' 000150' 016500 000154 1 000154' 016001 LET RO .- DTABLE(R5) 000000 LET R1 .- DT.EVNT(RO) 000000 MOV 1\10V RO,-(SP) R1 , - ( S P ) MOV DTABLE(R5),RO MOV DT.EVNT(RO),R1 ;+ ; CONVERT MEMORY SYSTEM ERROR REGISTER CONTENTS TO OCTAL ASCII AND ; LOAD INTO MESSAGE 000160' 000160' 000162' 000166' 000172' 000176 1 CALL BOA16 IN <@CPUMER,#L7.MED> 010546 012745 017745 004767 012605 000033 1 OOOOOOG OOOOOOG MOV MOV MOV JSR MOV R5,-(SP) #L7.MED,-(R5) @CPUMER,-(R5) PC,BOA16 (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #L7.CED,-(R5) @CPUCPE,-(R5) PC,BOA16 (SP)+,R5 MOV MOV WOV MOV MOV JSR MOV R5,-(SP) #2$,-(R5) #L7.MSG,-(R5) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 ;+ ; CONVERT CPU ERROR REGISTER CONTENTS TO OCTAL ASCII AND LOAD ; I NTO MESSAGE 000200' 000200' 000202' 000206 1 000212' 000216 1 CALL BOA16 IN 010546 012745 017745 004767 012605 <@CP~CPE,#L7.CED> 000056' OOOOOOG OOOOOOG ;+ ; OUTPUT MESSAGE 000220 1 000220' 000222' 000226' 000232' 00,J236 1 000240' 000244 1 CALL MSGDHOOK IN <RO,#MSGPOP,#L7.MSG,#2$> 010546 012745 012745 012745 010045 004767 012605 000252 1 000000 1 000002 OOOOOOG SLOG70 BINDER FOR ERR:"'OG MODULES 06-SEP-78 15:53 BLOG70 .MA.C 723 (2 ) 724 (2 ) 725 726 727 728 729 000246' 000246' 00024,) 000250' 000230' 000776 MACY11 30A(1052) 20-SEP-7e 11/70 ERROR LOG ROUTINE INLINE <1$: Nap> INLINE <BR 1$> 17:31 PAGE 19-6 SEQ 0124 1$: NOP BR 1$ ;+ ; DETERMINE IF PARITY ERROR OCCURED, IF SO, CONVERT THE 22 BIT ADDRESS CONTAINED ; IN LOW AND HIGH ERROR ADDRESS REGISTERS TO OCTAL ASCII AND OUTPUT MESSAGE 730 731 (2 ) 732 (6 ) (9 ) 733 (3) ( 7) (6) (5) (4 ) (3 ) (3 ) 734 735 ( 3) (7 ) (6) (5) (4 ) ( 3) (3 ) 736 (2 ) 737 (2 ) 738 739 (4) 740 741 742 743 744 745 (2 ) 746 (2 ) (3 ) 747 748 (3 ) (3 ) 000252' OC0252' C'00252 ' C00252' 000256' COCr260' 000260' 000262' 000266' 000272' 000276' 000300' 000304' 000306' 000306' 000310' 000314' 000320' 000324' 000326' CC0332' 000334' 000334' 000336' 000336' INLINE <2$:> 2$: IF #EVNTPE EO R1 THEN 022701 001030 010546 01274::; 01774::; 01774::; 010045 004767 012605 000202 #EVNTPE,R1 50002$ MOV R5,-(SP) #L7.ADR,-(R5) @;CPUHAR.-(R5) @CPULAR,-(R5) RO,-(R5) PC,BOAC (SP)+,R5 CALL BOAC IN <RO,@CPULAR,@CPUHAR,#L7.ADR> MOV MOV MOV MOV JSR MOV 000074' OOOOOOG OOOOOQG OOOOOOG CALL MSGDHOOK IN <RO,#MSGPOP,#L7.MS1,#4$> 010546 012745 012745 012745 010045 004767 012605 CMP BNE MClV MOV MCJV JSR MOV R5,-(SP) #4$,-(R5) #L7.MS1.-(R5) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 3$: NOP MOV MOV 000340' 000066' 000002 OOOOOOG INLINE <3$: NOP> INLINE < BR 000240 ~$> BR 000776 ENDIF 000340' 000340' 50002$: ;+ ; RESTORE REGISTERS AND RETURN INLINE <4$:> 000340' 000340' 00C340' 000340' 012601 000342' 012600 POP R 1 ,RO 000344' ENDRTN 000344' (2 ) 000344' 000344' 00C207 749 750 00000·1 . END 4$: Mev MOV ( 5 P ) + , R1 (SP)+,RO RTS PC 50000$: 50001$: 3$ MACY11 30A(1052) SYMSOL TABLE CL0370 BINDER FOR ERR_OG MODULES 06-SEP-78 15:53 BLOG70.MAC ACS.~ 00010L ;:'CTBIT= 004000 ADD~22= 001000 ADR 000006 APTFER= 000004 APT ,:lRE= 000200 ASB 000106 /\SSEM8= COO010 ASTAT = 000104 t.UT J 000010 :'UTOST= 020000 AlvAS 000110 GITO GOOOOl 000001 BITOO BITOl 000002 81T02 000004 [31,03 000010 BlT04 000020 8 ITO 5 .= 000040 [3 IT06 000100 3IT07 000200 BIT08 000400 BIT09 001000 BIT1 000002 BIT10 002000 :3 IT 11 004000 [3IT12 01COOO 020000 13 I T 13 81T14 04:JOOO [31T15 100000 3IT2 000004 [3 I T 3 000010 :31T4 000020 000040 '31 T5 SIT6 000100 SIT7 000200 000400 3ITB (J0100C 3:T9 3r\DEF 00000~ 3r(rv;OD 000:')20 Gi':I:ODE = o~oooo t3KSLSH= 000134 80l\C ****** BOA16 = *"''"'*** CAPRES= 000004 CASTA,= 000004 CCNTRL= ****** CDERCT= 000146 cm'-lDCT= 000144 CKTIM = 100000 CLKPRE= 000001 COI\FIG= 000056 CPLJCPE= ****** G G G G CPUHAK= CPULAR= CPUMER= CPUMNT= CQOVF CR CSRA CSRC CTRlC CTRLO CTRLU DCEVNT= DEFRTN= DI AG:v~C == DROPMO= DSEVNT= DTABLE= DT.ADD= DT.A.P = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ESI= DT.EVN= DT.EXS= DT.FCH= DT. FCt-.J= DT.HMX= DT.KBE= DT.K3P= DT.KBR= DT.KBLJ= DT.MLS= DT.MTI= DT.OFF= DT.PAS= DT.PC =: DT.PFL= DT.PSW= DT. PT A= DT.RCS= DT.REL= DT.SCT= DT.SMX= DT.SP = DT.SSI= DT.STO= DT.ST1= DT.SWR= DT.SYP= DT.WBU= ****** G ****** G ****** G ****** G OCOO01 000015 000100 000102 000003 000017 000025 00001 1 000400 000000 100000 000014 000000 000042 000100 000076 000034 000014 000016 000020 000044 000000 000060 000037 000036 000104 000024 000026 000022 000030 000032 OC0110 000070 000074 00C002 000062 000004 000064 000102 000040 000066 000106 000006 000046 000010 000012 000056 000072 000050 20-SEP-n: DT.WHL= 000054 DT.WLl= 000032 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRLOG 000144RG ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= "100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE IERRlO 000106RG INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIi 000030 INTR 000120 rOMOD 100000 IOMODP= 102000 IOMODR= 1120(;0 IOMODX= 110000 JACK 0350fO KIPARO= 1723--10 KIPAR1= 172342 KIPAR2= 172344 KIPAR3== 172346 KIPAR4= 172350 KIPAR5== 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDt<2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KONTRL= ****** G 17: 31 PAGE 20 SEQ 0125 KTERRO= KTPRES= KTSTAT= KTXTND= IF LPSTAT= l7.ADR L7.CED l7.MED L7.MSG L7.MSl MAPSTA= MED MEMP,l.S= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDHO= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPCP= MSGPRM= MSGRES-= MSGSFT= MSGSKE= MSGSM8= MSGSri1H== MSGS1V:S= MSGSTD= MSGSYS= MS::;VEC= NBKMOD= NCPLJOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPlSI= PDP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 000040 000400 000020 040000 000012 000001 00OO74R 000056R 000033R OOOOOOR 000066R 000200 07i)600 040000 004000 002000 001000 000010 00)011 000005 **'i<'~** 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 02JOOO 004000 010000 000000 PS G PSW RANNUM= RBLJFEA= R3UFPA= RaGFSZ= RBUFVA= RDSERV= RDi'lhMI= RELERR= RELMOD= RElTIM= RES1 RES2 RICHAR= RPTDAT= RSTRT = RUBOUT= RUNr,~OD= RSVALU= SAM SBACR = S ~Krv'OD= S3r.:SEL= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP:.: SC.ClO= SC.HLD= SC.SCA= SENDLS= SGFCNT= SOF?AS= SPACE = SPOINT= SPVALU= SRO SR1 SR2 SR8 STAT 000040 000200 000240 000300 000340 000000 000200 00024) 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 000056 000060 031060 002000 000112 000177 100000 001740 075464 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 5LOG70 BINDER FOR ERRLOG MODULES BLOG70.MAC 06-SEP-78 15:53 STATBI= 064757 STAT1 = 000027 SUSPND= 000001 SVR() 000062 SVR1 000064 SVR2 000066 SVR3 000070 S\/R4 000072 SVR5 00C074 SVRG 000076 S 'is·::;NT = 00(052 SYSERR= 000100 1 r.1p 10 = 000002 TQOVF == 000002 UIPARJ= 177640 UIPAR1= 177642 LlIPAR2= 177644 UIPAR3= 177646 JIPAR~= 177650 UIPAR5= 177652 UIPAR6= 177654 ASS. 000000 000346 177656 177600 177602 177604 177606 177610 177612 177614 177616 ~JASADR= 000104 vJBSTAT= 000040 WCUFEA= 000136 WBUFPA== 000134 WBUFRQ= 000140 wBUFSZ= 000142 000116 WDFR vJDTO 000114 vlTINRE= 000352 WTWH~1I1 = 000222 XFLAG 000005 000023 XOFF UIPAR7= UIPDR()= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDRG= UIPDR7= 000 001 ERRORS DETECTED: 0 GLOBALS GENERATED: DEFA~LT MACY 11 30A(1052) SYMBOL TABLE 0 DSKZ:BLOG70,DSKZ:BLOG70=SPMAC/ML,EQUATE,SLOG70 RUN-TI~E: 12 2 .4 SECONDS RUN-TIME RATIO: 39/16=2.3 CORE USED: 14K (27 PAGES) 20-SEP-78 XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 17:31 PAGE 20-1 SEQ 0126 $F$TRU= 000404 $F$UNT= 000130 $F$'v.'HI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000110 $SAVLE== 177777 $TAGLE= 177777 $TAGNU= 050003 $TEMP = 000300 $TSKO = 05J002 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$F LAG= 000001 $$FROM= 000000 $$LOC = 000256R $$LOCN= 000000 $$REG = 177777 $$RETU= OOQOOO $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000004 $$$TAG= 05000J 000346R .MAIN. MACV11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 563 566 584 CCMMON EQUATE MODULE GPA (COMMON DEFINITICNS 000000' GPA (CODE) 17:31 TABLE OF CONTENTS & REFERENCES) .PRINT ;SPMAC: VERSION 1.1 SEQ 0127 GPA (GET PHySICAL ADDRESS) GPA.MAC :28-JUL-78 09:08 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 53S 540 541 54~ 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 MACY11 30A(1052) 20-SEP-78 17:31 COMMON EQUATE MODULE PAGE 19 SEQ 0128 .TITLE GPA (GET PHYSICAL ACDRESS) .IDENT IVO.Oj ;++ MODULE NAME: GPA FUNCTIONAL DESCRIPTION: THIS MODULE DETERMINES THE 16-BIT, 18-BIT OR 22-BIT PHYSICAL ADDRESS FROM THE 16-BIT VIRTUAL ADDRESS GIVEN. IF 18-BIT ADDRESS, THE TOP :2 BITS ARE ALLIGNED TO POSITIONS 4 & 5 OF THE EA WORD. IF 22-BIT ADDRESS SYSTEM, THE TOP 6 BITS ARE RIGHT JUSTIFIED IN THE EA WORD. INPUTS: 1. DTABlE 2. TABLE ADDRESS CONTAINING VA,PA,EA WORDS VIRTUAL ADDRESS WHERE VA PHYSICAL ADDRESS PA EXTEI\:DED ADDRESS EA IMPLICIT INPUTS: 1. DT.CFO 2. DT.STO OUTPUTS: NONE IMPLICIT OUTPUTS: 1. PHYSICAL ADDRESS WORD 2. EXTENDED ADDRESS BITS WORD PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL GPA IN <DT,TBl> WHERE DT DTABLE ADDRESS TBl = TABLE ADDRESS (CONTAINS VA,PA,EA WORDS) VERSION: 0.0 EDIT DATE BY REASON GPA (GET PHYSICAL ADDRESS) GPA.MAC 28-JUL-73 09:08 .SBTTL GPA (COMMON DEFIN1TIONS & REFERENCES) 563 564 565 5E6 ( 1) 567 568 MACY11 30A(1052} 2C-SEP-78 17:31 PAGE 19-1 GPA (COMMON DEFINITIONS & ~EFERENCES) 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 569 570 571 572 ;**~************* ; REFERENCED BY OTHER MODULES 573 574 .GLOBL GPA 575 ;**************** 576 577 ; GLOBAL REFERENCES: 578 579 580 581 582 .GLOSL .GLOBL SAVRi:G RESREG ;MODULE ENTRY POINT SEQ 0129 GPA (GET PHYSICAL ADDRESS) 28-JUL-78 09:08 GPA.MAC 584 585 586 (2 ) 587 588 589 590 591 592 (3 ) 593 (4 ) 594 (4 ) 595 596 597 598 599 600 601 602 (4 ) 603 604 605 506 607 608 (6 ) ( 9) 609 (4 ) 610 611 (4 ) (3 ) 612 613 614 615 616 617 618 619 (6 ) 620 (7 ) ( 7) (7 ) (7 ) 621 (6 ) 622 (6) 20-SEP-78 MACY11 30A(10S2) GPA (CODE) 17:31 PAGE 19-2 SEQ 0130 .S8TTL GPA (CODE) 000000 1 000000 1 ROUTINE GPA <DT,TBL> GPA: ;+ ; SAVE REGS, GET DTABLE ADDRESS AND TABLE ADDRESS ., 000000 1 000000 1 004767 0000041 000004' 016500 000010 1 000010' 016501 CALL SAVREG OOOOOOG LET RO . - DT(R5) LET Rl . - TBl(R5) 000000 000002 JSR PC,SAVREG MOV DT (R5) ,RO MOV TBL(RS) ,Rl ;+ ; FETCH VIRTUAL ADDRESS FROM FIRST WORD OF USER SUPPLIED TABLE ; AND lOAD INTO THE PHYSICAL ADDRESS WORD (2ND WORD OF USER SUPPLIED ; TABLE) . , lET ( R1) 0000141 000014' 012111 . - (R 1 ) + MOV (Rl}+,(Rl) BIT BNE #KTSTAT,DT.STO(R 50002$ CLR 2 (R 1 ) BR 50003$ SWAB ( R1 ) ASR ASR ASR ASR (R 1 ) ( R1 ) ( R1 ) (R 1 ) BIC #177761,(R1} ADD #KIPARO,(R1) ;+ ; IF KT IS NOT ON, CLEAR EA WORD AND RETURN , 000016' 000016' 000024' 0()0026' 000026' IF #KTSTAT NOTSETIN DT.STO(RO} iHEN 032760 001003 000020 005061 000002 000010 LET 2(Rl} := #0 ELSE 000032' 000032 1 000454 000034' 50002$: ;+ ; KT IS ON. GENERATE 18 OR 22 BIT ADDRESS. ; BRI:-.JG PAGE BITS 13-15 OF PA IN POS.1-3, ADD TO KIPARO ; ADDRESS, AND GET THE CONTENTS OF THE FORMED KIPAR REG. , 000034' 000034' 000311 000036' 000036' 006211 000040' 006211 000042' 006211 000044' 006211 000046' 000046' 042711 000052' 000052 1 06271 1 LET ( R1 ) · - S'I!AP ( P. 1 ) LET (R 1 ) · - ( R1 ) SHIFT -4 LET ( R1 ) · - ( R1 ) CLR.BY #177761 LET ( R1 ) .- ( R1 ) + #KIPARO 177761 172340 CPA (GET PHYSICAL ADDRESS) 28-JUL-78 09:08 GPA.MAC 623 {4 ) 624 625 526 627 628 (6 ) (6 ) 629 (4 ) (7 ) (7 ) 630 '331 632 633 634 635 636 637 (7 ) (7 ) (7 ) (7 ) (7 ) (7 ) 638 (4 ) (6 ) 639 (2) 640 000056' 000056' 017111 (6 ) 005511 641 642 643 644 645 646 647 (6 ) (9 ) 648 (6 ) 649 (4 ) (3 ) 650 (6 ) 651 (7 ) (7 ) ( 7) ( 7) 652 20-SEP-78 MACY11 30A(10S2) GPA (CODE) 17:31 PAGE 19-3 SEQ 0131 .- @( R1 ) LET ( R1) 000000 MOV @(R1),(R1) MOV S\'JAB (R1),R2 R2 MOV ASR A5R R2,2(R1) 2 ( R1 ) 2 (R 1 ) ;+ ; BITS 15-10 ARE EA BITS. BRING THEM IN POSITION 5-0 ; AND STORE IN EA WORO. , '- 000062' 000062' 000064' 000066 ' 000066 ' 000072 ' 000076' LET R2 01 1102 0003C2 010261 006261 006261 . - SWAP ( R1) LET 2 (R 1 ) '- R2 SHIFT -2 000002 000002 000002 ;+ SHIFT THE CONTENTS OF PAR ; 6 PLACES TO THE LEFT.ADD LOW 12 B!TS OF V.A. ; RESULT IS STORED IN PA ; AND ANY CARRY IS ADDED TO THE EA WORD TO GET THE FINAL EA WORD. , C00102' 000102' 000104 ' 000106 ' 000110' 000112' 000114 ' 000116 ' 000116' 000122' 000126' 000126' 000130' 000130" LET (R 1 ) 006311 006311 006311 OC 6311 006311 00631 1 016102 042702 .- ( R1 ) SHIFT 6 ASL ASL ASL ASL ASL ASL ( R~ ) (R 1 ) (R1 ) (R 1 ) (R 1 ) (R 1 ) MOV BIC -2(R1),R2 #160000,R2 ADD R2, (R 1 ) + ADC (R 1 ) BIT SEQ #AODR22,DT.CFO(R 50004$ BIC #171700,(R1) BR 50005$ SIC #177774,(R1) ASL ASL ASL ASL (R 1 ) (R 1 ) ( R1) (R 1 ) LET R2 := -2(R1) CLR.BY #160000 177776 160000 INLINE <ADD R2, 060221 LET ( R1) (R 1 ) +> . - ( R1 ) + CARRY ;+ ; NOW CHECK IF 22-BIT ADDRESS SYSTEM. IF IT IS, GENERATE A ; 6-BIT EA WORD RIGHT JUSTIFIED, OTHERWISE GENERATE ; A 2-BIT EA WORD AND ALLIGN THE BITS IN POSITION 5-4. , 000132' 000132' 000140 ' 000142 ' 000142 ' 000146 ' 000146 ' 000150 ' 000150 ' 000150 ' 000154 ' 000154' 000156' 000160 ' 000162' 000164' IF #ADDR22 SETIN DT.CFO(RO) THEN 032760 001403 001000 0427'1 177700 000014 LET ( R1) ·- ( R1 ) CLR.BY #177700 ELSE 000406 042711 50004$: LET (R 1) · - ( R1 ) CLR.BY #177774 LET ( R1 ) · - ( R1 ) SHIFT 4 177774 006311 006311 006311 006311 ENDIF GPA (GET PHYSICAL ADDRESS) GPA.MAC 28-JUL-78 09:08 (4) 653 054 (4 ) 655 656 657 658 000164 PAGE 19-4 SEQ 0132 50005$: ENDIF 000164 1 000164 1 50003$: ;+ ; RESTORE REGS AND RETURN (3 ) (3) (2 ) 660 661 000001 559 17: 31 1 000164 1 Ou0164 1 004767 000170 1 (,00170 1 000170 1 000170 1 000207 (3 ) MACY 11 30A ( 1052) 20-SEP-78 GPA (CODE) CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 500005: 50001$: .END GPA (GET PHYSICAL ADDRESS) 28-JUL-78 09:08 GPA.MAC ACSR 000102 ACTBIT= e04000 ADDR22= 001000 ADR oeoo06 APTFER= 000004 APTf:RE: 000200 ASB 000106 ASSEM8= 000010 ASTAT = 000104 AUTO 00C010 AUTOST= 020000 t.\<JAS 0001 10 BITO 000001 BITOO 000001 BITOl 000002 8IT02 000004 BITC3 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 BIT09 001000 BITl 000002 B1Tl0 002000 BIT11 004000 8IT12 010000 E31T13 020000 8IT14 040000 BIT15 100000 8IT2 000004 81T3 000010 81T4 000020 000040 BITS BI~6 000100 000200 BIT7 000400 BITS 001000 BIT9 000002 BKDEF BKrv:OD 000020 9KIViODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 20-SEP-78 MACY 11 30A(1052) SYMBOL TABLE 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 000000 DT DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT. SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHl= 000054 DT.WLl= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 17:31 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 OOOOOQRG GPA HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE 1NDPAR= 000040 INHDRP= 040000 INHEPR= 0200()0 INHREL= 001000 INHRRE= 000400 IN IT 000030 INTR 000120 100000 IOMOD IOMODP= 102000 IOMODR= 112000 1OMOPX= 110000 JACK 0350GO K1PARO= 1723~0 KIPAR1= 172342 KIPAR2= 172344 K1PAR3= 172345 KIPAR4= 172350 KIPAR5= 172352 K1PAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 f( I PDR2= 172304 KIPDR3= 172306 K1PDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 LF 000012 LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 0040CO PAGE 20 SEQ 0133 MODHOL= MODSEL= MSGCKD= M3GCKS= MSGDER= rtlSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPR~= MSGRES= MSGSFT= MSGSKE= MSGSM8= MSGSr.1H= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NSKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PR11 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= RBUFEA= RBUFPA= RBUFSZ= 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 02')000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 RBUFVA= 000124 RDSERV= 000101 RD'...,HM I = 000022 RELERR= 000020 REU,iOD= 020000 REL TIM= 010000 RESREG= ****** G 000056 RESl 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SAVREG= ****** G S8ADR = 000102 SBKMOD= 000000 SBKSEl= 010000 SC.ADR= 000006 sc. ALC= 000014 SC.APC= 000016 SC.CKl= 000002 SC.CKP= 000004 SC.CLO= 000000 Sr..HlD= 000010 SC.SCA= 000012 Sc:r-.OLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SKO SRl 177574 Sj.{2 177576 172516 SR3 STAT 000026 STATBI= 064757 STATl = 000027 SUSPND= 000001 000062 SVRO SVRl 000064 000066 SVR2 000070 SVR3 SVR4 000072 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 000002 TBl TMPIO = 000002 20-SEP-78 MACY11 30A(1052) SYMBOL TABLE GPA (GET PHYSICAL ADDRESS) 28-JUL-78 09:08 GPA.MAC WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 1QO\lF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIP~R4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIP~R7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 ABS. 000000 000172 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:GPA,DSKZ:GPA=SPMAC/ML,EQUATE,GPA RUN-TIME: 14 4 .3 SECONDS RUN-TIME RATIO: 40/18=2.1 CORE USED: 14K (27 PAGES) 17:31 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 00014:) $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO 000001 $ISK1 = 000001 PAGE 20-1 SEQ 0134 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000110 $NSK2 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050006 $TEMP = 000300 $TSKO = 050003 $TSK1 = 050005 $$ARGC= 000004 $$8YTE= 00:)403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000140R $$LOCN= 000000 $$REG = 177777 $$~ETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $STGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000172R .MAIN. MACY11 30A(1052} 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 561 564 611 17:32 TABLE OF CONTENTS COMMON EQUATE MODULE COM~ON DEFINITIONS ANO REFERENCES FOR KTERR 000000 1 .PRINT ;SPMAC: VERSION 1.1 KTERR ROUTINE SEQ 0135 KTERR PROCESS MEMORY MANAGEMENT TRAPS KTERR.MAC 28-JUL-78 09:22 508 509 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE .TITLE KTERR .IDENT /VO.O/ 17:32 PAGE 19 SEQ 0136 PROCESS MEMORY MANAGEMENT TRAPS 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 ;++ MODULE NAME: KTERR FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES MEMORY MANAGEMENT TRAPS (THROUGH LOC 250). IT WILL FETCH THE CONTENTS OF THE STATUS REGISTERS, CONVERT TO ASCII, AND ENQUEUE A MESSAGE CONTAINING THE CONTENTS. THE KT ERROR BIT WILL BE SET IN THE DTABLE ERROR WORD. INPUTS: ADDRESS OF DATA TABLE IMPLICIT INPUTS: DT.STO DT.CFO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.ERR PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: MSGDHOOK - PRINT A MESSAGE RSTRCY - RESET RECOVERY ERRLOG BOA16 SAVREG RESREG FUNCTIONAL SIDE EFFECTS: NDrJE CALLING SEQUENCE: CALL KTERR IN <DTADR> WHERE DTADR = ADDKESS OF DATA TABLE VERSION: 0.0 EDIT DATE BY REASON KTERR PROCESS MEMORY MANAGEMENT TRAPS KTERR.MAC 28-JUl-78 09:22 561 562 563 564 (1) 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 59~1 598 599 600 601 602 603 604 605 606 607 MACY11 30A(1052) 20-SEP-78 17:32 PAGE 19-1 COMMON DEFINITIONS AND REFERENCES FOR KTERR .SBTTl COMMON DEFINITIONS AND REFERENCES FOR KTERR .IV:CALl STRUCT STRUCT .PRINT jSPMAC: VERSION 1.1 000000 1 000000 1 $lSTIN=1 $lSTTAG=1 000001 000001 ;**************** , ; REFERENCED BY OTHER MODULES: .GlOBl ;MODUlE ENTRY POINT KTERR ;**************** , ; GLOBAL REFERENCES: .GLOBL .GLOBL .GLOBL .GLOBl .GLOBL .GLOBL ;ERROR ;RESET ;PRINT ;OCTAl ERRLOG RSTRCY MSGDHOOK BOA16 SAVREG RESREG LOGGING RECOVERY A MESSAGE TO ASCII CONVERSION ROUTINE ;**************** , ; lOCAL STORAGE: 000000 1 044445 000006 1 C51124 080014' 05111J 000022' C53040 000030' 00:> 000031 1 045 000036' 020124 000044' 02504:> 000C50 C5144:3 000056 1 02004:> 0000541 000006 000072 1 02004:> 0000741 000006 000102' 00004'3 046114 050101 020125 052103 020056 052040 0521 13 022456 KT.BADKT: .ASCIZ 025052 051124 022452 030122 051123 045440 050101 KT.MG1: .ASCII 1%** KT TRAP **%1 .ASCII I%SRO 000104' 051445 000112 1 020040 000120 1 000006 030522 051123 I 0001L6' 020040 000130 1 000006 000136 1 000045 020040 022462 020040 022463 .BlKS KT.SSOMG: .ASCII KT.SS2MG: .ASCIZ 1 KT.MG2: I%SR1 .ASCII KT.SS1MG: .ASCII KT.SS3MG: .ASCIZ .EVEN I%ILl. TRAP THRU KT VCT.%/ SR2%1 6 1 .SlKS 6 1%1 .SlKS 1 1 .SlKS 1%1 S113%1 6 6 SEQ 0137 KTERR PROCESS MEMORY MANAGEMENT TRAPS KTERR.MAC 28-JUL-78 09:22 608 609 MACY11 30A(1052) 20-SEP-78 17:32 PAGE 19-2 COMMON DEFINITIONS AND REFERENCES FOR KTERR ;**************** SEQ 0138 KTERR PROCESS MEMORY MANAGEMENT TRAPS KTERR.MAC 28-JUL-78 09:22 611 612 613 (2) 614 615 616 617 618 619 (3) 620 (4) 621 622 523 624 625 626 627 628 (6) 629 630 631 632 633 634 635 636 (6) (9) 637 638 639 640 641 642 (6) 64::5 644 (3) (5) (4) (3) (3) 645 (3) (5) (4) (3) (3) 646 647 648 649 MACYll 30A(1052) KTERR ROUTINE .SBTTL 20-SEP-78 17:32 PAGE 19-3 KTERR ROUTINE ROUTINE KTERR <DTADR> 000140 1 000140' SEQ 0139 KTERR: ;+ ; INIT AND SAVE DTABLE 000140 1 000140 1 004767 000144 1 000144 1 016500 CALL SAVREG OOOOOOG LET RO := DTADR(R5) 000000 JSR PC,SAVREG MOV DTADR(R5),RO BIS #KTERROR,DT.ERR( SIT SEQ #KTSTAT,DT.STO(R 50002$ SIS #FATERR,DT.ERR(R MOV MOV R5,-(SP) #KT.SSOMG,-(R5) @#SRO,-(R5) PC,BOA16 (SP)+,R5 ;+ ; SET KT ERROR BIT IN ERROR WORD IN DTABLE 000150 1 000150 1 052760 LET DT.ERR(RO) := DT.ERR(RO) SET.BY #KTERROR 00004C 000020 ;+ ; IF KT ENABLED, SET FATAL BIT IN ERROR WORD 000156 1 000156 1 032760 000164 1 001535 IF #KTSTAT SETIN DT.STO(RO) THEN 000020 000010 ;+ ; SET FATAL BIT, GET THE CONTENTS OF SRO, SR2, CONVERT ; TO ASCII, AND ENQUEUE MESSAGE 000166' 000166' 052760 000174' 000174' 000176' 000202' 000206' 000212' 000214' 000214' 000216' 000222' 000226 1 000232' LET DT.ERR(RO) 100000 := DT.ERR(RO) SET.BY #FATERR 000020 CALL BOA16 IN <@#SRO,#KT.SSOMG> 0105'<:6 012745 013745 004767 012605 000064' 177572 OOOOOOG 010546 012745 013745 004767 012605 000074 1 177576 OOOOOOG Mev JSR MOV CAll BOA16 IN <@#SR2,#KT.SS2MG> ~/'OV MOV MOV JSR MOV + SEE IF EXTENDED KT R5,-(SP) #KT.SS2MG,-(RS) @#SR2,-(RS) PC,BOA16 (SP)+,R5 KTERR PROCESS MEMORY MANAGEMENT Tr<AP.3 28-JU L--78 09:22 KTERR.rJlAC 650 551 (6) (9 ) 652 653 654 655 656 657 (::S) ( 5) (4) (3 ) (3 ) 658 ( 3) (5 ) ( 4) (3 ) \ 3) 659 (4 ) 660 661 662 663 (2 ) 664 (3 ) (4 ) (3 ) ( 3) 665 666 667 (4 ) 668 (4 ) 669 (2 ) 670 671 (2 ) 672 (3 ) (7 ) 000234' 000234' 032760 000242' 001420 PAGE 19-4 SEQ 0140 IF #KTXTND SETIN DT.CFO(RO) THEN 040000 000014 BIT BEQ #KTXTI\jD,DT .CfO(R 50003$ MOV 1\1r]V i\10V JSR MOV R5,-(SP) #KT.SS1MG,-(R5) @/;'SR1 ,-(R5) PC,BOA16 (SP)+,R5 MOV MClV MOV JSR MOV R5,-(SP) #KT.SS3MG,-(R5) @#SR3,-(R5) PC,BOA16 (SP)+,R5 ITS AN EXTENDED KT, SO PUMP OUT SR1,SR3 000244' 000244' COO246' 00G252' 000256' 000262' 000264' 000264' 000266' 000272' 000276' 000302' 000304' 000304' CALL BOA16 IN <@#SR1,#KT.SS1MG> 010546 012745 013745 004767 012605 000120' 177574 OOOOOOG CALL BOA16 IN <@#SR3,#KT.SS3MG> 010546 012745 013745 004767 012605 000130' 172516 OOOOOOG ENDIF 50003$: + RESET AND RESTORE, LOWER PRIORITY 0003041 000304' OOOOO~) 000306' 000306' 010546 000310' 010045 000312' 004767 000316' 01260~) 000320' OOJ320' 005046 000322' 000322' 012746 000326' 000326' 000002 INLINE <RESET> RESET CALL RSTRCY IN <RO> OOOOOOG LET -(SP) '- #0 LET -(SP) '- #443$ 000330' MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,RSTRCY (SP)+,R5 CLR -(SP) MOV #443$,-(SP) INLINE <RTI> RTI INLINE <443$:> (3 ) (3) 673 674 (2 ) 675 000356' 000356' 000240 000360' (5 ) (4 ) 17:32 + 000330' 000330' 000330' 000330' 000332' 000336: 000342' 000346' 000350' 000354' (6) 20-SEP-78 MACY11 30A(1052) KTERR ROUTINE 443$: CALL MSGDHOOK IN <RO,#MSGPOP,#KT.MG1,#1$> 010546 012745 01:2745 012745 010045 004767 012605 rr.ov MOV IViOV JSR MOV R5,-(SP) #1$,-(R5) #KT .MG1 ,-(R5) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 4$: NOP MOV 000362' 000031 ' 000002 rv;ov OOOOOOG INLINE <4$: INLINE <BR 4$> NOP> KTERR PROCESS MEMORY MANAGEMENT TRAPS 28-JUL-78 09:22 KTERR.MAC (2 ) 676 677 (2 ) G78 679 680 (6) (9) 681 (3 ) (7 ) (6) (5 ) (4 ) (3 ) (3 ) MACY 11 30A(1052) KTERR ROUTINE 20-SEP-78 17:32 BR 4$ INLINE <1$:> 000362' 000362' 000362' 000362' 000370' 000372' 00(1372 ' 000374' 000400 1 000404 1 COO410' 000412 1 000416 1 1 $: IF HKTXTND SETIN DT.CFO(RO) THEN 032760 001415 010546 012745 012745 012745 010045 004767 012605 040000 000014 CALL MSGDHOOK IN <RO,#MSGPOP,HKT.MG2,H2$> 000424' 000104' 000002 0OO4~O' INLINE <6$: NOP> 000420 1 000240 000422' 000422' 000776 INLINE <BR 6$> INLINE <2$:> 000424' 000424' 000424' 000424' ENDIF (3 ) HKTXTND,DT.CFO(R 50004$ MOV MOV MOV MOV JSR MOV R5,-(SP) #2$,-(R5) #KT.MG2,-(R5) ;;'V1SGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,RG 6$: NOP BR 6$ 2$: 50004$: + DO ERROR LOGGING IF NECESSARY 690 (3 ) 698 699 700 701 (2 ) 702 BIT BEQ M:JV OOOOOOG (2 ) 683 (2 ) 684 585 (2 ) 686 (4 ) 687 688 689 (4 ) SEQ 0141 000360' 000776 1382 691 (6 ) (8) (6 ) ( 9) (6 ) 692 693 (3 ) (4 ) (3 ) (3) 694 695 (4 ) 696 697 PAGE 19-5 000424' 000424' 000432' 000434' 000442' 000444' 000444' 000444 1 000446' 000450' 000454 1 032760 001004 032760 001405 004000 000014 010000 000014 IF HPDP60 SETIN DT.CFO(RO) OR #PDP70 SETIN DT.CFO(RO) THEN BIT BNE BIT BEQ 50005$: CALL ERRLOG IN <RO> 010546 010045 OC4767 012605 OOOOOOG ENDIF 000456' 000456 1 000456 1 000456' 000427 000460 1 #PDP60,DT.CFO(RO 50005$ #PDP70,DT.CFO(RO 50006$ MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,ERRLOG (SP)+,R5 BR 50007$ 50006$: ELSt: 50002$: + RESET AND RESTORE, LmvER PRIORITY 000460' 000460' 000005 000462' 000462' 010546 IN LI NE <RESET> RESET CALL RSTRCY IN <RO> Iv. 0 V RS,-(SP) hTERR PROCESS MEMORY MANAGEMENT TRAPS 28-JU L-78 09:22 v'TERR.MAC (4 ) (3 ) (3 ) 703 704 705 (4 ) 706 (4 ) 707 (2 ) 000464' 010045 000466' 004767 000472' 012605 000474' 000474' 005046 000476' 000476' 012746 00C502' 000502' 000002 MACY11 30A(1052) KTERR ROUTINE 20·-SEP-78 17:32 PAGE 19-6 SEQ 0142 OOOOOOG MOV JSR MOV RO,-(R5) PC,RSTRCY (SP)+,R5 CLR -(SP) MOV N444$,-(SP) LET -(SP) ,- NO LET -(SP) '- N444$ 000504' INLINE <RTI> RTI '108 709 (2 ) 710 711 712 713 714 715 (3 ) (7 ) (6 ) (5 ) (4 ) (3 ) (3 ) 716 ( 2) 717 (2 ) 718 719 (2 ) 720 (4) 721 722 723 724 725 725 (3 ) 727 728 (3 ) (3 ) (2 ) 729 730 INLINE <444$:> 000504' 000504' 444$: + NO, KT IS NOT ENABLED, SO ENQUEUE THE BAD MESSA.GE 000504' 000504' 000506' 000512' 000516' 000522' 000524' 000530' 000532' 000532' 000534' 000534' CALL MSGDHOOK IN <RO,#MSGPOP,#KT.BADKT,#3$> 010546 012745 012745 012745 010045 004767 012605 000536' 000000' 000002 OOOOOOG INLINE <8$: NOP> INLINE <BR 8$> 000240 000776 MOV 1\10 V MOV MOV MJV JSR MOV R5,-(SP) N3$,-(R5) NKT.BADKT,-(R5) #MSGPOP,-(R5) 8$: NOP BR 8$ RO,-(~5) PC,MSGDHOOK (SP)+,R5 INLINE <3$:> 000536' 000536' 000536' 000536' 3$: ENDIF 50007$: ;+ ; CLEAN UP AND GET OUT , 000536' 000536' 004767 000542' 000542' 000542' 000542' 000207 000001 CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 50001$: ,END KTERR PROCESS MEMOR'{ MANAGC:MENT TRAPS 28-JUL-78 09:22 f<TERR. MAC ACSR 000102 ACTBIT= 004000 ADDi~22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASS:::::vI!3= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS C00110 EllTO 000001 000001 BITOO BIT01 000002 GIT02 000004 BIT03 000010 B1T04 000020 BIT05 000040 8IT06 000100 BIT07 000200 81T08 000400 B1T09 001000 000002 BIT1 B1T10 002000 SIT 11 004000 BIT12 010000 BIT13 020000 B1T14 040000 ~OOOOO BIT 15 3IT2 000004 BIT3 000010 00C020 BIT4 000040 BIT 5 000100 BIT6 000200 BIT7 3118 OOO~OO 001000 B1T9 i3KDEF 000002 BKrv~OD 000020 gKrv~ODE = 040000 oKSLSH= 000134 BJA16 = >!'***** G CAFRES= 000004 CASTAT= 000004 CDERCT= 000146 CDv.DCT= 000144 CKT1N: = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF 000015 CR 000100 CSRA CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRTN= DIAGMC= DROPMO= DSEVNT= DTADR = DT.ADD= DT.AP = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ESI= DT.EVN= DT.EXS= DT.FCH= DT.FCN= DT.HMX= DT.KBE= DT.KBP= DT.KBR= DT.KBU= DT.MLS= DT.MTI= DT.OFF= DT.PAS= DT.PC = DT.PFL= DT.PSIf..:= DT.PTA= DT.RCS= DT.REL= DT.SCT= DT.SMX= DT.SP = DT.SSI= DT.STO= DT.ST1= DT.SWR= DT.SYP= DT.WBU= DT.WHL= DT.WLL= DVID1 = ECCMEN!= ECCSTA= ENBEOP= ENBNUL= 000102 000003 000017 000025 000011 000400 000000 100000 000014 000000 000042 000100 000076 000034 000014 000016 000020 000044 000000 000060 000037 000036 000104 000024 000026 COO022 000030 000032 000110 000070 000074 000002 000062 000004 000064 000102 000040 000066 000106 000006 000046 000010 000012 000C56 000072 000050 000054 000052 000014 000100 000010 010000 000001 MACY11 30A(1052) SYMBOL TABLE 20-SEP-78 ENDLST= 000000 EOPBIT= 000001 ERRLOG= ****** G ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 0001:£2 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERR 000140RG KTERRO= 000040 KTPRES= OOO~OO KTSTAT= 0000::;:0 KTXTND= 040000 KT.BAD OOOOOOR 00002;1R KT.MG1 KT.MG2 000104R KT.SSO 000064R 17:32 PAGE 20 SEQ 0143 KT.SS1 KT.SS2 KT.SS3 LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOL= MCDSEL= MSGCKD= MSGCKS= MSGDER= MSGDHO= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSrVl8= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PAR?RE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO P R 11 PRI4 PRI5 PRI6 PRI7 PRO 000120R 000074R 000130R 000012 000001 000200 076600 040000 00:l000 002000 001000 000010 000011 000005 ****** G 000017 177777 00:)013 000C04 000022 000C07 000021 177775 000002 177776 00C001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 PR4 000240 PR5 PR6 000300 000340 PR7 177776 PS 177776 PSW RAN!\UM= 000054 RaUFEA= 000130 RSUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWf-1MI= 000022 R:::LERR= 000020 Ri:LMOD= 020000 REL TIM= 010000 RESREG= i<***** G 000056 RES1 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRCY= ****** G RSTRT = 000112 RUBOUT= 000177 RUNfvl0D= 100000 R5VALU= 001740 SM.l 075464 SAI/REG= ****** G SBADR = 000102 S BKr..,.,o 0= 000000 SBKSE L= 010000 SC.ADR= 000006 SC. ,4LC= 000014 SC.APC=- 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRC 177574 SRl 177576 SR2 172516 SR3 STAT 000026 STATBI= 064757 STAT1 = 000027 SUSPND= 000001 KTERR PROCESS MEMORY MANAGEMENT TRAPS KTERR.MAC 28-JUL-78 09:22 UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= WBUFEA= WBUFPA= WBUFRQ= WBUFS2= SVRO 000052 SVR1 000064 SVR2 000066 SVR3 000070 SVR4 000072 SVR5 000074 SVRS COO076 SYSCNT= 000052 SYS:::RR= 000100 TMPIO = 000002 TQOJF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 ABS. 000000 000544 ~<JDFR WDTO WTINRE= WTWHMI= XFLAG = XClFF XON $8GNLE= $ERFLG= MACY11 30A(1052) SYMBOL TABLE 177604 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 000352 000222 oeOO05 000023 000021 177777 000400 000 001 0 ERRORS DETECTED: DEFAULT GL08ALS GENERATED: 0 DSKZ:KTERR,DSKZ:KTERR=SPMAC/ML,EQUATE,KTERR RUN-TIME: 14 4 .4 SECONDS RUN-TIME RATIO: 36/19=1.8 14K (27 PAGES) CORE USED: 20-SEP-78 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000-100 $F$IF = 000110 $F$:rNC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$Wi-iI= 000120 17:32 PAGE 20-1 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $ISK1 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000110 $NSK2 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 05()010 $TEMP = 000300 $TSKO = 050007 $TSK 1 = 050006 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$DST = 000000 SEQ 0144 $$ELOC= 00040:2 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000442R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RT.'J1= o~,oooo $$R""N2= 05C001 $$SRC = 000000 $$TGSV= 000000 $$iGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000544R .MAIN. MACY11 3JA(i052) 20-SEP-73 EQUATE.MAC 13-$EP-78 16:13 3 553 559 580 17:33 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000· .PRINT KTSET ROUTINE iSPMAC: VERSION 1.1 SEQ 0145 KTSET MAP MEMORY MANAGEMENT REGISTERS KTSET.MAC 28-JUL-78 09:08 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE .TITLE KTSET .IDENT /VO.O/ 17:33 PAGE 19 SEQ 0146 MAP MEMORY MANAGEMENT REGISTERS ;++ MODULE NAME: KTSET FUNCTIONAL DESCRIPTION: ROUTINE WILL SET UP THE PDRS (USER AND KERNEL) TO THE FOLLOWING: READ/WRITE PROTECTION (NO SYSTEM TRAP/ABORT ACTION), UPWARD PAGE ADDRESSING, MAXIMUM BLOCK COUNT (4K). THE PARS WILL BE SET UP WITH PARO SET TO BANKO, PAR1-PARS SET UP TO DEFINED OFFSET, AND PAR7 TO THE I/O PAGE. INPUTS: DTABLE ADDRESS IMPLICIT INPUTS: DT.ADDR - CURRENT BASE OFFSET OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KTSET IN <A> A - ADDRESS OF DTABLE VERSION: 0.0 EDIT DATE BY REASON KTSET MAP MEMORY MANAGEMENT REGISTERS KTSET.MAC 28-JUL-78 09:08 555 556 557 558 559 ( 1) 560 561 562 563 564 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE 17:33 PAGE 19-1 SEQ 0147 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LST!N 1 $LSTTAG = 1 = ;**************** ; REFERENCED BY OTHER MODULES :565 566 567 .GLOBL 568 ;**************** 569 570 571 572 573 574 575 576 577 KTSET ;MODULE ENTRY POINT ; GLOBAL REFERENCES . GLOB!.. .GLOBL S.A.VREG RESREG ;SAVE REGISTERS ;RESTORE REGISTERS ;**************** ; LOCAL EQUATES 077406 KS.PDR = 77406 ;PDR VALUE KTSET MAP MEMORY MANAGE~E~T REG!STERS KTSET.MAC 28-JUL-78 09:08 579 580 581 582 (2) 583 584 585 586 587 588 589 590 (3) 591 (4) 592 (4) 593 594 595 596 597 598 (4) 599 (3) 600 601 602 603 604 605 (4) 606 (3) 607 608 609 610 611 (3) 612 (3) (3) (2) 613 614 (2) 615 616 617 618 619 620 (4) MACY11 30A(1052) 20-SEP-78 17:33 COM~ON DEFINITIONS AND ~EFERENCES PAGE 19-2 SEQ 0148 .SBTTL KTSET ROUTINE ROUTINE KTSET <DTABLE> 000000' 000000' KTSET: ;+ ; SAVE REGISTERS, RETRIEVE ADDRESS OF DTABLE ; INITIALIZE POINTER TO BANKO, SETUP R2 TO 77406 VALUE j- 000000' 000000' 004767 000004' 000004' 016500 000010' 000010' 012702 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV DTABLE(R5),RO MOV #KS.PDR,R2 MOV #UIPDRO,R3 JSR PC,KTSETO MOV #KIPDRO,R3 JSR PC,KTSETO JSR PC,RESREG RTS PC rtOv R3,R4 LET RO .- DTABLE(R5) 000000 LET R2 .- #KS.PDR 077406 ;+ ; CALL KTSETO, PASS ADDRESS OF UIPDRO 0000i4' 000014' 012703 000020' 000020' 004767 LET R3 .- #UIPDRO 177600 CALL KTSETO 000016 ;+ ; CALL KTSETO, PASS ADDRESS OF KIPDRO 000024' 000024' 012703 000030' 000030' 004767 LET R3 .- #KIPDRO 172300 CALL KTSETO 000006 ;+ ; RESTORE REGISTERS AND RETURN OOC034' 000034' 004767 OC0040' 000040' 000040' 000040' 000207 OC0042' 000042' CALL RESREG OOOOOOG ENDRTN ROUTINE KTSETO 50000$: 50001$: KTSETO: ;+ ; LOAD APRO BY MAPPING TO BANKO, SET UP R4 TO POINT TO APR7 000042' 000042 1 010304 LET R4 .- R3 + #16 KTSET MAP KTSET.MAC (6 ) 621 (4 ) 622 623 324 625 626 627 (4) 628 (2 ) 629 1330 631 632 633 634 (4) 535 (4 ) (6) (9 ) 636 (4 ) 637 (4) 638 (2 ) 639 (6 ) 640 (4 ) (3 ) 641 642 643 644 645 646 (4 ) 647 (4 ) 648 649 650 651 652 653 ( 3) (3 ) (2 ) 654 .655 MANAGEMENT REGISTERS 28-JU L-78 09: 08 MEMO~Y 000044 1 062704 00C050 1 000050 1 010213 20-SEP-78 MACY 11 30A(1052) KTSET ROUTINE 000016 LET (R3) 17:33 PAGE 19-3 SEQ 0149 . - R2 ADD #16,R4 MOV R2,(R3) CLR 40(R3) ;+ ; LOAD PARO TO MAP TO BANK 0 , 000052 1 00C052 1 005063 000056 1 000056 1 005723 LET 40(R3) . - #0 000040 INLINE <TST (R3)+> TST (R3)+ ;+ ; LOAD DT.ADDR INTO R1 AND LOAD APRO - APR6 ;- 000060 1 000060' 016001 000064 1 0000641 0000641 020304 COO066' 001407 000070 1 000070' 010213 000072 1 000072' 010163 000076' 000076' 005723 000100' 000100' 062701 000104 1 000104' 000767 000106' LET R1 .- DT.ADDR(RO) 000042 MOV DT.ADDR(RO),R1 CMP BEQ R3,R4 50003$ MOV R2,(R3) MOV R1,40(R3) WHILE R3 NE R4 DO 50002$: LET (R3) . - R2 LET 40(R3) 000040 .- R1 INLINE <TST (R3)+> LET R1 TST (R3)+ . - R1 + #200 000200 ENDDO ADD #200,R1 BR 50002$ MOV R2,(R3) MOV #177600,40(R3) RTS PC 50003$: ;+ ; NOW LOAD APR7 , 000106: 0001C6' 010213 000110' 000110' 012763 LET (R3) . - R2 LET 40(R3) 177600 000040 . - #177600 ;+ ; RETURN , 000116' 000116' 000116' 000116' 000207 COOO01 ENDRTN 50000$: 50001$: . END hTSET MAP MEMORY MANAGEMENT REGISTERS 28-JUL-78 09:08 KTSfT.MAC ACSR ACTBlT= ADDR22= ADR 000102 004000 001000 000006 A~TFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 A'v-JAS 000110 BITO 000001 BITOO 000001 BIT01 000002 [31T02 000004 000010 BIT03 BIT04 OOOO~O BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 001000 8IT09 BIT1 000002 BIT 1 0 002000 BIT11 004000 BIT12 010000 020000 BIT 13 BIT 14 040000 100000 BIT15 000004 BIT2 000010 BIT3 B!T4 000020 000040 BIT5 000100 BIT6 000200 BIT7 BIT8 000400 001000 BIT9 BKDEF 000002 BKri,OD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRi:.S= 000004 CASTAT= 000004 CDERCT= 000146 CDv;DCT = 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA = 000100 CSRC = 000102 CTRLC = 000003 CTRLO = 000017 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DlAGMC= COOOOO DROPf'liO= 100000 DSEVNT= 000014 DTABLE= OOOGOO DT.ADD= COO042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= CC0037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.Mil= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT. PSI'J= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL.= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 MACY 11 30A(1052) SYMBOL TABLE 20-SEP-78 EOPSlT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 00C201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 00:;'036 lCOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= OC0040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 0000:;0 INIT INTR 000120 lOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOI\10DX= 110000 035060 JACK KIPARO= 1723':;0 KIPAK1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPA;:(4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KS.PDR= 077406 KTERRO= 000040 KTPRES= 000400 KTSET OOOOOORG KTSETO 000042R KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 MED 076600 17:33 PAGE 20 SEQ 0150 MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSfv'lB= MSGSiV1H= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO P R11 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= RBUFEA= 040000 004COO 002000 001000 000010 000011 000005 000017 177777 00J013 000004 000022 000007 000021 177775 000002 177776 00J001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 00·':)034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 R8UFPA= RSUFSZ= RBUFVA= RDSERV= RDitJHM1= RELERR= REL:v10D= RELTIM= RESREG= RES1 RES2 RICHAR= RPTDAT= RSTRT = RUBCUT= RUNMOD= R5VALU= SAM SAVREG= SBADR = S3KMOD= SBKSEL= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SGFCNT= SOFPAS= SPACE = SPOINT= SPVALU= SRO SR1 SR2 SR3 STAT STATBl= STAT1 = SUSFND= SVRO ::: SVR1 SVR2 SVR3 SVR4 SVR5 SVR6 SYSCNT= SYSERR= 000126 000132 000124 000101 000022 000020 020000 010000 ****** G 000056 000060 031060 002000 000112 000177 100000 001740 075464 ****** G. 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 064757 000027 000001 000062 000064 000C66 000070 000072 000074 000076 000052 000100 KTSET MAP MEMORY MANAGEMENT REGISTERS KTSET.MAC 28-JUL-78 09:08 WASADR= WBSTAT= 1..:5UFEA= VJBUF PA= WBUFRQ= WBUFSZ= toJDFR WOTO WTINRE= WTVJHM I = XFLAG = XOFF XON $BGNLE= $ERFL..G= $F$AND= $F$BAD= $F$BLA= TMPIO = 000002 TQOVF = 000002 UIP,\RO= 17'1640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIP,~R5= 177652 UIPAR6= 177654 UI P .\R7 = 177656 UIPJRO= 177600 UIPDR1= 177602 UIP)R2= 177604 lIIPi)P3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIP0R6= 177614 UIPDR7= 177616 ASS. 000000 000120 MACY11 30A(1052) SYMBOL TABLE 000104 000040 000136 000134 000140 000142 000116 000114 000352 000222 000005 000023 000021 177777 000400 000310 000401 000170 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GE~ERATED: 0 DSKZ:KTSET,DSKZ:KTSET=SPMAC/ML,EQUATE,KTSET RU~-TIME: 12 2 .3 SECONDS RUN-TIME RATIO: 29/15=1.9 CORE USED: 14K (27 PAGES) 20-SEP-78 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LGO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 17:33 PAGE 20-1 $F$YES= $IFLEV= $LOCTA= $LSTIN= $LSTTA= $NESTL= $NSKO = $NSK1 = $SAVLE= $SSKO = $TAGLE= $TAGNU= $TEMP = $TSKO = $TSK1 = $$ARGC= $$BYTE= $$CASE= SEQ 0151 000402 177777 177777 000C01 000001 177777 000300 000120 177777 050003 177777 050004 000300 050002 050003 oooeoo 000403 000000 $$DST = 000000 $$ELOC= 000000 $$ERFL= 000000 $$FL.AG= 000340 $$FROM= 000000 $$L.OC = 000066R $$LOCN= 000000 17'1777 $$REG $$RETU= 000000 $SRTN 1 = 050000 $$RTN2= 050001 000000 $$5RC $$TGS\/= 000000 $'$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000120R = = .MAIN. MACY'1 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 565 568 621 17:33 TABLE OF CONTENTS COMMON EQUATE MODULE COM~ON DEFINITIONS AND REFERENCES FOR PAR ERR 000000' .PRINT ;SPMAC: VERSION 1.1 PARERR ROUTINE SEQ 0152 ~AR~RR PROCESS PARITY ERROR TRAPS 08-SEP-78 07:43 PAR~RR.MAC 508 509 ::>10 511 512 513 514 515 516 517 513 ::; 19 520 521 522 523 524 525 526 527 328 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 55~ 553 55~ 555 556 557 558 559 5GO 56~ 562 563 MACY11 30A(1052) 20-SEP-7£ COMMON EQUATE MODULE 17:33 PAGE 19 SEQ 0153 .TITLE PARERR PROCESS PARITY ERROR TRAPS .IDENT JVO.Oj ;++ MODULE NAME: PAR ERR FUNCTIONAL DESCRIPTION: THIS MODULE PROCESSES PARITY ERROR TRAPS. WHEN ENTERED IT WILL TEST FOR PARITY ENABLED. IF NOT ENABLED, AN APPRooRIATE MESSAGE IS ENQUEUED. A CHECK IS PERFORMED TO DETERMINE WHICH PARITY CSR HAS THE ERROR BIT SET. THE CSR AND ITS CONTENTS ARE ENQUEUED IN A PARITY MESSAGE(STANDARD). INPUTS: ADDRESS OF DATA TABLE IMPLICIT INPUTS: DT.STO DT.CFO DT.PTA OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: QUEUE A r.1ESSAGE ENOTQ BINARY TO OCTAL ASCII CONVERSION ROUTINE BOA16 SETUP KT REGISTERS KTSET SAVREG RESREG MSGDHOOK ERRLOG RSTRCY FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PARERR IN <DTADR> WHERE DTADR = ADDRESS OF DATA TABLE V£RSION: 0.0 EDIT LATE BY REASO~ PARERR PROCESS PARITY ERROR TRAPS PARERR.MAC 08-SEP-78 07:43 565 566 567 568 ( 1) 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 585 587 588 589 590 591 592 593 594 595 596 597 598 599 600 5U1 602 603 604 605 605 607 608 609 610 61 i 612 613 MACY11 30A(1052) 20-SEP-78 17:33 PAGE 19-1 COMMON DEFINITIONS AND REFERENCES FOR PARERR .SBTTL COMMON DEFINITIONS AND REFERENCES FOR PARERR .MCAlL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 000000 1 000000 I $LSTIN=1 $LSTTAG=1 000001 000001 ; REFERENCED BY OTHER MODULES: .GLOBL .GLOBL , ;MODULE ENTRY POINT ;NUMBER OF PARITY ERRORS PAR ERR PA.CNT ;**************** ; GL09AL REFERENCES: .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL ;ENQUEUE A MESSAGE ;RESET RECOVERY ROUTINE ;1160, 1170 ERROR LOGGING ;CACHE CONTROL REGISTER ;SAVE REGISTERS ;RESTORE REGISTERS ;BINARY TO OCTAL ASCII CONVERSION ROUTINE ;SETUP KT APRS' MSGDHOOK RSTRCY ERRLOG CCNTRl SAVREG RESREG BOA16 KTSET ;**************** , ;**************** ; LOCAL STORAGE: 000000' 000006' 000014' 000022' 000030' 000034' 088035' 000042' 000050' 000056' 000064' 000066' 000074' 02504~3 040522 O~) 252:2 020056 025052 000 040 020040 042524 000006 020040 000006 000045 000076' 000000 000100' 000010 025052 020120 053040 030461 022452 052040 044124 041505 020064 051503 041440 052116 020122 047117 022523 PA.MSG: PA.SP: .BYTE /%*** TRAP THRU VEC. 114 ***%/ 0 .ASCII / CSR . BLKB . ASCII .BlKB .ASCIZ PA.CSR: PA.CSC: PA.CNT: PA.MAX: .EVEN .ASCII .WORD .WORD 0 10 CONTENTS%/ 6 / / 6 /%/ ;NUMBER OF PARITY ERR(;RS ;MAX NUMBER OF ALLOWABLE PARITY ERRORS ;**~************* ; LOCAL EQUATES , 170370 170372 PA.M36 170370 PA.M37 = 170372 ;MAP REGISTER 36 ADDRESS ;MAP REGISTER 36 UPPER 6 BITS SEQ 0154 PARERR PReCESS PARITY ERROR TRAPS PARERR.MAC 08-SEP-78 07:43 614 615 616 617 618 619 MACY11 30A(1052) 20-SEP-78 17:33 PAGE 19-2 COMMON DEFINITIONS AND REFERENCES FOR PAR ERR + PARITY TABLE - FILLED WITH PARITY CSR ADDRESSES SEQ 0155 PARERR PROCESS PARITY ERROR TRAPS PARERR.MAC 08-SEP-78 07:43 621 622 623 (2) 624 625 .SBTTL (2 ) 644 (3) (4) (3) (3 ) 645 (4 ) 646 (4 ) 647 (2 ) (2 ) 17:33 PAGE 19-3 SEQ 0156 PAR ERR ROUTINE PARERR: ;+ ; INITIALIZE AND SAVE DTABLE ADDRESS ., 000102 1 000102 1 004767 000106 1 000106 1 016500 CALL SAVRt:.G OOOOOOG JSR PC,SAVREG MOV DTABLE(R5) ,RO BIS #PAERFt,DT.ERR(RO LET RO := DTABLE(R5) 000000 ;+ ; SET ERROR BIT IN DTABLE'S ERROR WORD 000112 1 000112 1 052760 LET DT.ERR(RO) := DT.ERR(RO) SET.BY #PAERR 000010 000020 ;+ ; RESET, RECOVER FROM RESET, AND LOWER PRIORITY 000120' 000120' 000122' 000122 1 000124' 000126' 000132' 000134' 000134' 000136' 000136 1 000142' 000142' INLINE <RESET> 000005 010546 010045 004767 01260!:; RESET CALL RSTRCY IN <RO> OOOOOOG LET -(SP) 012746 MOV MOV dSR MOV R5,-(SP) RO,-(R5) PC,RSTRCY (SP)+,R5 CLR -(SP) MOV #443$,-(SP) LET -(SP) .- #0 005046 := #443$ 000144 1 INLINE <RTI> RTI 000002 645 649 20-SEP-78 ROUTINE PARERR <DTABLE> 000102 1 000102 1 526 627 528 629 (3) 630 (4) 631 632 633 634 635 636 (0) 637 638 639 640 641 642 643 MACY11 30A(1052) PAR ERR ROuT H.jE INLINE <443$:> 000144 1 000144 1 650 651 652 653 443$: ;+ ; IS PARITY OR ECC ENABLED? 654 655 (6~ (8) (6) (9) (6) 6!::6 657 658 000144' 000144' 000152' 000154 1 000162 1 000164 1 IF #PARSTAT SETIN DT.STO(RO) OR #ECCSTAT SETIN DT.STO(RO) THEN 032760 001004 032760 001552 000100 000010 000010 000010 BIT BNE BIT BEQ 5C002$: #PARSTAT,DT.STO( 50002$ #ECCSTAT,DT.STO( 50003$ PldiERR PROCESS PARITY ERROR TRAPS 08-SEP-78 07:43 PARERR.MAC 659 660 661 662 G63 (564 (6 ) (8) (6) (9 ) (6) 665 ( 3) (4 ) (3) (3 ) S66 (4) 667 668 669 670 671 672 (4 ) MACY1 t 30A(1052) PARERI~ ROUTINE + 000164' 000164' 000172' 000174' 000202' 000204' 000204' 000204' e00206' 000210' 000214' 000216' 000216' 032760 001004 032760 001405 010546 010045 004767 012605 010000 000014 004000 000014 17:33 PAGE 19-4 SEQ 0157 IF 11/60 OR 11/70, CALL ERR LOG IF #PDP70 SETIN DT.CFO(RO) OR #PDP60 SETIN DT.CFO(RO) THEN BIT BNE BIT SEQ 50004$: CALL ERR LOG IN <RO> MOV MOV JSR MOV ENDIF 50005$: OOOOOOG + 000216' 000216' 016001 20-S£P-78 #PDP70,DT.CFO(RO 50004$ #PDP60,DT.CFO(RO 50005$ R5,-(SP) RO,-(R5) PC,ERRLOG (SP)+,R5 GET PTABLE ADDRESS LET R1 . - DT.PTA(RO) 000064 MOV DT.PTA(RO),R1 6'""-' I .... 674 675 676 677 676 (6 ) ( 9) 679 (4) 680 (4) 681 (4) 682 (4 ) 683 (4 ) 68L! (4 ) + 000222' 000222' 00023·) , 000232' 000232' 000236' 000236; 000242' 000242' 000246' 000246' 000252' 000252' 000256' 000256' IF #INDPAR SETIN DT.CFO(RO) THEN 032760 001443 COO040 017746 OOOOOOG 013746 172516 013746 170370 013746 170372 013746 172354 000262' (6) ()OO~62' 691 000270' 000270' 010546 000272' 010045 000274' 004767 (4) (3) SEQ #INDPAR,DT.CFO(R 50006$ MOV (2lCCNTRL,-(SP) MOV @#SRO,-(SP) rl.JV @#SR3,-(SP) MOV @#PA.M36,-(SP) M8V @#PA.M37,-(SP) MOV @#KIPAR6,-(SP) SIS #14,@lCCNTRL MOV f.f.OV R5,-(SP) RO,-(R5) PC,KTSET BIT 000014 LET -(SP) · - @CCNTRL LET -(SP) · - @!lSRO LET -(SP) · - @l#SR3 LET -(SP) · - @#PA.M36 177572 013746 685 686 687 688 689 69C (3 ) IF INDIRECT CSRS THEN SAVE APPROPRIATE REGISTERS (CACHE, KT AND MAP) · - @#PA.M37 LET -(SP) · - @l#KIPAR6 LET -(SP) + Nm\l SETUP APPROPRIATE REGISTERS TO GO AFTER INDIRECT CSRS LET @lCCNTRL := @lCCNTRL SET.BY #14 052777 000014 OOOOOOG OOOOOOG CALL KTSET IN <RO> JSR PARERR PROCESS PARITY ERROR TRAPS 08-SEP-78 07:43 PAR~RR.MAC (3) 692 (4 ) 693 (4 ) 694 (4 ) 695 (6) 696 (6) 697 (4 ) 698 699 700 701 702 703 704 (4 ) (6) (9 ) 705 (6) (8 ) (6 ) (9 ) (6) 706 (4) 707 (3 ) (5 ) (4 ) (3 ) (3 ) 708 (3 ) (5 ) (4 ) (3 ) (3 ) 709 (4 ) 710 (3 ) (7 ) (6) (5 ) (4 ) (3 ) (3 ) 71 ~ (2 ) 712 000300' 000302' 000302' 000310' 000310' 000316' 000316' 000324' 000324' 000332' 000332' 000340' 000340' MACY 11 30A(1052) PARERR ROUTINE 012605 012737 177400 172354 012737 160000 170370 012737 000077 170372 052737 000001 177572 052737 000060 PAGE 19-5 SEQ 0158 MOV (SP)+,R5 MOV #177400,@#KIPAR6 MOV #1GOOOO,@#PA.M36 MOV #77,@#PA.M37 BIS #BITOO,@#SRO SIS #60,@#SR3 TST BEQ (Rl ) 50010$ BIT BNE BIT BEQ #BIT15,@l(R1 ) 50011$ IIBIT04,@(R1 ) 50012$ M.JV (R1)+,R3 M:JV MOV JSR MOV R5,-(SP) #PA.CSR,-(R5) R3,-(R5) PC,BOA16 (SP)+,R5 MClV MOV MOV JSR MOV R5,-(SP) #PA.CSC,-(R5) (R3) ,-(R5) PC,BOA16 (SP)+,R5 MOV9 CALL MSGDHOOK IN <RO,#MSGPOP,#PA.MSG,#20$> MClV MOV MOV MGlV MOV JSR #SPACE,PA.SP LET @#KIPAR6 · - #177400 LET @#PA.M36 ·- #160000 LET @#PA.M37 · - #77 LET @,.\ISRO . - @l#SRO SET.BY #BITOO LET @#SR3 . - @#SR3 SET.BY #60 ENDIF 50006$: SEARCH PARITY TABLE UNTIL ERROR IS FOUND AND O/P MESSAGE ... WHILE (R 1 ) NE #0 DO 50007$: 005711 001462 032771 001004 032771 001451 IF #9IT15 SETIN @(R1) OR #9IT04 SETIN @( R1 ) THEN 100000 000000 000020 000000 LET R3 012103 0105'::0 012745 010345 C04767 012605 010546 012745 C11345 OCOL;14' 004767 000420' 012605 112767 000056' rt.ov OOOOOOG CALL BOA16 IN «R3) ,#PA.CSC> 000066' OOOOOOG LET PA.SP : 9= #SPACE 000040 01C546 01~745 012745 012745 010045 004767 012605 000240 50011$: . - (R1 ) + CALL BOA16 IN <R3,#PA.CSR> OOO~22' 000422 1 000430 1 000430' 000432' 000436 1 000442' 000446' 000450 1 0001;54' 000456 1 000456' 000460' 17:33 172516 + 000340' 000340' 000340' 000342' 000344' 000344' 000352' 000354' 000362' 000364' 000364' 000364' 000366' 000366' 000370' 000374' 000376' 000402' 000404' 000404' 000406' 000412' 20-SEP-l8 000462 1 000000' 000002 OOOOOOG 177404 INLINE <60$: NOP> INLINE <9R 60$> r{:ov R5,-(SP) #20$,-(R5) #PA.rflSG,-(R5) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 60$: NOP PARERR PROCESS PARITY ERROR TRAPS 08-SEP-78 07:43 PAR~RR.Mt.C (2 ) 713 l2 ) 714 (6) 715 (6) (9 ) 716 (6 ) 717 (4 ) 718 (2 ) 719 720 (4) 721 (4 ) (3 ) 722 (4) 723 724 725 726 727 728 729 730 731 732 733 734 (6 ) ( 9) 735 736 (4 ) 737 (3) (7 ) ( 6) ( 5) (4) (3 ) ( 3) 738 ( 2) 739 000460' 000462' 000462' 000462' 000462' 000466' 000466' 00(:474' 000476' 000476' 000504' 000504' 000504' 000504' PAGE 19-6 SEQ 0159 60$ INLINE <20$:> LET PA.CNT 005267 177410 026767 002403 177404 177404 052760 100000 000020 20$: . - PA.CNT + #1 INC PA.CNT IF PA.CNT GE PA.MAX THEN LET DT.ERR(RO) PA.CNT,PA.MAX CMP 50013$ BLT ..- DT.ERR(RO) SET.3Y #FATERR #FATERR,DT.ERR(R BIS ENDIF 500135: INLINE <SR 100$> BR 100$ 000424 ENDIF 50012$: ENDDO BR 50007$ BIT BNE #PDP70,DT.CFO(RO 50014$ GLRB PA.SP MOV 50010$: ENDIF 50003$: j+ NO PARITY OR EGC ENABLED SO ISSUE ERROR MSG OR NO ERROR WAS FOUND IN THE PA!;ITY CSRS. ; DO ~~OT PRINT THE MSG IF THIS IS AN 11/70 BECAUSE IT DOES NOT HAVE PARITY CSRS. IT MAY OR MAY NOT j ; HAVE ECG CSRS IN THE TABLE ., 000510' 000510' 032760 000516' 001017 (2 ) 741 742 (4) 000556' 000556' (2 ) 17:33 BR 000776 000506' 000506' 000506' 000506' 000714 000510' 000510' 000510' 00C520' 000520' 000524' 000524' 000526' 000532' 000536 ' 000542' 00C544' 000550' 000552: 000552' 000554' 000554' 000556' 000556' 740 20-SEP-78 MACY11 30A(1052) PARERR ROUTINE IF #PDP70 NOTSETIN DT.GFO(RO) THEN 010000 000014 LET PA.SP : B= #0 105067 010546 012745 012745 012745 010045 004767 012605 177310 CALL MSGDHOOK IN <RO,#MSGPOP,#PA.MSG,#9$> 000556' 000000' 000002 MOV rVlOV OOOOOOG JSR MOV R5,-(SP) #9$,-(R5) #PA.MSG,-(R5) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 4$: NOP BR 4$ ft.OV rliov 000240 000776 INLINE <4$: NOP> INLINE <BR 4$> INLINE <9$:> ENDIF 9$: 50014$: PAR ERR PROCESS PARITY ERROR TRAPS 08-SEP-78 07:43 PAR:::RR.MAC 743 744 745 746 747 748 (2 ) 749 (6) (9 ) 750 (4 ) 751 (4) 752 (4 ) 753 (4 ) 754 (4 ) 755 (4 ) 756 757 (4 ) 758 759 760 761 762 (3 ) 763 MACY11 30A(1052) PARERR ROUTINE 20-SEP-78 17:33 PAGE 19-7 SEQ 0160 ;+ ; IF INDIRECT CSRS THEN RESTORE CACHE, KT AND MAP REGISTERS 000556' 000556' 000556' 000556' 000564' 000566' 00056e' 00057:2' 000572' 000576' C00576' 000602' 000602' 000606' 000606' 000612' 000612' INLINE <100$:> 1 ;JO$: IF #INDPAR SETIN DT.CFO(RO) THEN 032760 001414 000040 012637 172354 012637 170372 012637 170370 000014 · - (SP)+ LET @kPA.M37 · - (SP)+ LET @lnPA.M36 · - (SP)+ LET @lIlKIPAR6 LET @l#SR3 012637 172516 012637 177572 012677 OOOOOOG '- #INDPAR,DT.CFO(R 50015$ MOV (SP)+,@#KIPAR6 MClV (SP)+,@l#PA.M37 MOV (SP)+,@l#PA.M36 MOV (SP)+,@l#SR3 MOV (SP)+,@lIlSRO MOV ~SP)+,@lCCNTRL JSR PC,RESREG RTS PC (SP)+ . - (SP)+ LET @lCCNTRL . - (SP)+ LET @#SRO ENDIF 000616' 000616' SIT 8EQ 500155: ;+ ; RESTORE REGISTERS AND RETURN 000616' 000616' CALL RESREG 004767 OOOOOOG 764 765 (3 ) (3) (2 ) 766 000622' 000622' 000622' 000622' ENDRTN 50000$: 50001$: 000207 000001 .END MACY 1 '1 30A(1052) SYMBOl.. TABLE PARERR PROCESS PARITY ERROR TRAPS 08-SEP-78 07:43 PARERR.MAC ACS~ 000102 rlCT 31 T = 004000 ADD~22= 001000 ADR 000006 APTFER= 000004 t.PT PRE= 000200 t.SB 00C106 I\SSEMi3= 000010 ASTAT = 000104 AUTO 000010 NJTJST= 020000 f:..\>JAS 000110 [lIT) COOO01 BITOO 000001 OIT:)l 000002 BIT02 000004 BITJ3 000010 BIT~4 000020 BIT05 000040 BITOG 000100 BIT07 000200 BIT08 000400 B1T09 001000 UITl 000002 f:)IT10 002000 bIT 11 004000 BIT12 010000 f:)IT13 020000 [3 IT 14 040000 81T15 10COOO BIT2 000004 13IT3 000010 B1T4 000020 BITS 000040 8IT5 000100 SIT 7 000200 BIT8 000400 BIT9 OO~OOO BKCEF 000002 BKr:.JD 000020 BKI\~ODE = 040000 i3KSLSH= 000134 GOA16 = ****** G CAPRES= 000004 CASTAT= 000004 CCNTRL= **.,,*** G CDERCT:: 000146 CD'ADCT= 000144 C KT I ~11 = 'i 00000 CLKPRE= OOCOOl CONFIG= 000056 CQCVF 000001 000015 CR CSRA CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRTN= DIAGMC= DROPMO= DSEVNT= DTABLE= DT.ADD= DT.AP = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= Di.ESI:: DT.EVN= DT.EXS= DT.FCH= DT.FCN= DT.HMX= DT.KBE= DT.KBP= DT.KSR= DT.KBU= DT.MLS= DT.MT1= DT.OFF= DT.PAS= DT.PC = CT.PFL= DT.PSW= DT.PTA:: DT.RCS= DT.REL= DT.SCT= DT.SMX= DT. SP = DT.SS1= DT.STO= DT.ST1= DT.SWR= DT.SYP= DT.WSG= DT.WHL= DT.WLL= DV1Dl = ECCMEM= ECCSTA= ENSEOP= 000100 000102 000003 000017 000025 000011 000400 000000 100000 00001-1 000000 000042 000100 000076 000034 000014 000016 000020 OOCC4~ 000000 000060 000037 000036 000104 000024 000026 000022 000030 000032 000110 000070 000074 000002 000052 000004 00C064 000102 000040 OOOOl3b 000106 000006 000046 000010 000012 000056 000072 000050 000054 000052 000014 000100 000010 010000 20-SEP-78 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRLOG= ****** G ERRTYP= 000108 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVI'!TRE= 00C201 FATERR= 100000 HRDCNT= COO044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 !NHD~P= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 000120 INTR lOMOD 100000 lOiviODP= 1020('0 IOMODR= 112000 !OMODX= 110000 JACK 035060 KIPARO= 172340 K1PAR1= 172342 K1PAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 1,'2302 KIPDR2= 172304 KIPDR3= 1723C6 KIPDR4= 172310 KIPDR5= 172312 K1PDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSET = **>!-*** G KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 17:33 PAGE 20 SEQ 0161 MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDHO= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= rv1SGSTD= MSGSYS= MSSVEC= NBKrI.OD= NCPUOP= NDAPTY= NULL OWEN PAEKR PARERR PARPRE= PARSTA= PASCNT= PA.CNT PA.CSC PA.CSR PA.MAX PA.MSG PA.M36= PA.M37= PA.SP PDPLS1= PDP60 PDP70 PRI0 PR!l PRI4 PRI5 076600 040000 004000 002000 001000 000010 000C11 000005 ***"'** G 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 COJ020 000002 000000 02·:1020 00J010 000102RG 002000 000100 000034 00OO76RG 000066R 00OO56R 000100R OOOOOOR 170370 170372 000034R 02,;)000 004COO 010000 000000 000040 000200 000240 PRI6 PRI7 PRO PR4 PR5 Pr16 P~7 PS PS\,>J R,:..r-iNUM= R3UFEA= RBUFPA= F~BL'FSZ= RJUFVA= RDSERV= ROWHMI= RELERR= R:::LMOD= REL TIM= RE'::.REG= RESl R:::S2 RICHAR= R?TDAT= RSTRCY= RSTRT = RJSOUT= RUNr,10D= R5VALU= SAM SAVREG= SatlDR = S3KMOD= saKSEL= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENJLS= SOFCNT= SOFFAS= SPACE = SPOINT= SPVALU= SRO SRl SR2 SR3 STAT 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 02.]000 Gl0000 ****** G 000055 000060 031060 002000 *'1'**** G 000112 000177 100000 001740 075464 ****** G 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 MACY11 30A(1052) SYMBOL iABLE PARERR PROCESS PARITY ERROR TRAPS 08-SEP-78 07:43 PARcRR.MAC UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAf= WBUrEA= WBUFPA= WSUFRQ= WBUFSZ= STATBI= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 000054 SVR1 SVR2 COO066 SVR3 000070 SVR4 000072 SVR5 000074 SVR6 000076 SYSCNT= 0:)0052 SYSERR= (-00100 H/lPIO = 000002 TQOVF = 000002 lJIPARO= 177640 UI P.~R 1 = 177G42 ~IPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 ASS. 000000 000624 ~\lDFR WDTO WTINRE::: WTWHMI= XFLAG ::: XOFF XON $SGNLE::: $ERFLG= $F$AND= 177602 177604 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 000352 000222 000005 000023 000021 177777 000400 000310 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:PARERR,DSKZ:PARERR=SPMAC/ML,EQUATE,PARERR RUN-TIME: 17 7 .4 SECONDS RUN-TIME RATIO: 41/25=1.6 CORE USED: 14K (27 PAGES) 20-SEP-78 $F$BAD= 000L;01 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO ::; 000001 17:33 PAGE 20-1 SEQ 0162 $ISK1 = $ISK2 = $LOCTA= $LSTIN= $LSTTA= $~JEST L= $NSKO $NSK1 $NSK2 $NSK3 $NSK4 $SAVLE= $SSKO = $TAGLE= $TAGNU= $TEN:P $TSKO $TSK1 $TSK2 $TSK3 $TSK4 $$ARGC= $$BYTE= 000001 000001 177777 000001 000001 17'1777 000300 000 110 000120 000110 00J110 177777 050010 177777 05)016 000300 05'J015 050007 050010 050012 050013 000002 000403 $$CASE= 000000 $$DST = 000000 $SE LOC= 000402 $$ERFL= 000000 $$F LAG= 000001 $$FRON1= 000000 $$LGC = 000564R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$F\TN1= 050000 $$RTN2= 050001 $$SKC = 000000 $'ETGS\i= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $'>TO $$$TAG= 050000 000624R .MAIN. ~ACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 583 5S6 634 1012 1~52 17:34 TABLE OF CONTENTS COMMON EQUATE MODULE PCDATA (COMMON DEFINITIONS AND REFERENCES) 000000' .PRINT ;SPMAC: VERSION 1.1 PCDAT~ (CODE) TOP16 SUBROUTINE TOP12 SUBROUTINE SEQ 0163 - 20-SEP-78 17:38 F~ST1CY RESET RECOVERY MACY11 30A(105:2) SYMBOL TABLE OB-SEP-78 08:17 RSTRCY.MAC ocooeo lABL "TMPIO = 000002 TQOJF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIP\R4= 177650 LJIPUl5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPORO= 177600 LJIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIP:)R4= 177610 UIP:)R5= 177612 UIPDR6= 177614 UIPDR7= 177616 ASS. 000000 000216 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WSUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WT\JJHM 1= 000222 XFLAG = 000005 000023 XOFF 000021 XON $8GN LE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 000 001 0 ER~ORS DETECTED: DE;:-AULT GLOBALS GENERATED: 0 DSKZ:RSTRCY,DSKZ:RSTRCY=SPMAC/ML,EQUATE,RSTRCY RU~-TIME: 14 4 .3 SECONDS RUN-TI~E RATIO: 37/19=1.8 CORE USED: 14K (27 PAGES) PAGE :2C.".1 $F$DEC= 0002:20 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$fHI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 SEQ 0:243 $ISKO = 000001 $ISK1 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000110 $NSK2 = 000110 $SAVLE= 177777 $TAGLE= 171777 $TAGNU= 05001:2 $TEMP = 000300 $TSKO = 050007 $TSK1 = 050011 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000172R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000002 $$$TAG= 050000 = 000216R PCDATA (PROCESS CDATA & DATCK TRAP CALLS) MACY11 30A(1052) PCDATA.MAC 31-JUL-78 16:22 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 525 527 528 529 530 531 532 533 534 535 536 537 538 539 5::0 MODULE NAME: PCDATA FUNCTIONAL DESCRIPTION: THIS IS A TWO ENTRY MODULE (PCDATA & PDATCK BEING ENTRY POINTS). THIS MODULE IS CALLED AS A RESULT OF CDATA OR DATCK TRAP CALL EXECUTED BY AN OPTION MODULE, TO CHECK A BLOCK OF DATA TRANSFERRED BY A DEVICE. IF THERE ARE NO ERRORS IN THE BLOCK, CONTROL RETURNS IMMEDIATELY TO THE INSTRUCTION FOLLOWING THE TRAP CALL IN THE MODULE. IF THERE ARE ERRORS, HOWEVER, AN ERROR MESSAGE IS ENQUEUED (WITH TRAP ADDRESS FILLED AS THE MODULE'S RETURN ADDRESS), WORD COUNT AND ERROR COUNT ARE SAVED IN THE MODULE HEADER. IF 'PRINT ALL DATA ERRORS ' SWITCH IS SET, ALL ERRORS ARE ENQUEUED, OTHERWISE ONLY THE FIRST THREE ERRORS ARE ENQUEUED AND THE REST ARE LOGGED. THE SOFT ERROR COUNT IS INCREMENTED EVERY TIME AN ERROR OCCURS AND AT THE END OF THE BLOCK CHECK, A SUMMARY MESSAGE IS PRINTED FOR CDATA CALLS. SOFT ERROR WORD AND SOFT ERRORS PER PASS WORD ARE INCREMENTED IN THE MODULE'S HEADER. IF THE TRAP CALL IS DATCK, THE TOTAL NUM3ER OF ERRORS IS PASSED TO A LOCATION SPECIFIED IN THE TRAP CALL. 542 543 IM~LICIT 548 549 550 551 552 553 554 55:) 55G 557 558 559 560 561 562 563 PAGE 19 ;++ INPUTS: 1. DTABLE ADDRESS 545 546 547 17:34 .TITLE PCDATA (PROCESS CDATA & DATCK TRAP CALLS) .IDENT /VO.O/ 541 544 20-SEP-76 INPUTS: 1. DT.PC 2. DT.STO 3. DT.SWR 4. DT.EVNT OUTPUTS: NONE OUTPUTS: ,. DT.STO 2. DT.PC IM~LICIT PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: 1. ENOTQ ;ENQUEUES AN ERROR MESSAGE 2. UNIPA ;MAP22 ROwTINE 3. SAVREG 4. RESREG SEQ 0164 PCDATA (PROCESS CDATA & DATCK TRAP CALLS) PCDATA.MAC 31-JJL-78 16:22 COMMON 564 565 56G 567 563 569 MACY11 30A(1052) MODULE 20-SEP-78 17:34 PAGE 19-1 SEQ 0165 EQUAT~ 5. GETPSW 6. APTSER 7. DRPMOD GETS PS WORD APT SOFT ERROR ROUTINE DROP A MODULE FUNCTIONAL SIDE EFFECTS: NONE 570 571 :372 573 574 CALLING SEQUENCE: CALL PCDATA IN <AA> CALL PDATCK IN <AA> liJHERE AA 575 DTABLE ADDRESS 576 577 579 579 58C 581 VERSION: 0.0 EDIT DATE BY REASON PCDATA (PROCESS CDATA & DATCK TRAP CALLS) MACY11 30A(1052) 20-SEP-78 17:34 PCDATA.MAC 31-JUL-78 16:22 PCDATA (COMMON DEFINITIONS AND REFERENCES) 583 584 585 58G ( 1) .SBTTL PCDATA (COMMON DEFINITIONS AND REFERENCES) 000000' 000000' 587 588 589 59) 591 592 593 594 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTIIG=1 ;**************** ; REFERENCED BY OTHER MODULES ;MODULE ENTRY POINT ;~ODULE ENTRY POINT .GLOBL PCDATA .GLOBL PDATCK ;*****.*********** 595 ; GLOBAL REFERENCES 596 397 ;ENQUE A MESSAGE ROUTINE ;MAP22 ROUTINE ;DROP A MODULE .GLOSL ENQTQ .GLOBL UNIPA .GLOBL DRPMOD .GLOSL SAVREG .GLOSL RESREG .GLOSL GETPSW .GLOBL APTSER 593 599 60:1 601 602 603 604 603 30G 607 60S 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 PAGE 19-2 ;GET PS WORD ROUTINE ;**************** LOCAL STORAGE ; NOTE: DO NOT DISTuRB THE ORDER OF THE NEXT 10 WORDS AS THEY FORM A TABLE. 000000' 000002' 000004' 000006' 000010' 000012' 000014' 000016' 000020' 000022' 000024' 000026' 000030' 000032' 000034' 000036' 000040' 000042' 000000 OOOOOJ 000000 000000 000000 000000 oooeoo 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 PC.RPt\: PC. REA: PC.RLO: PC.RH!: PC. Rr": PC. ',oJPA: PC.WEI\: PC.VJLO: PC. WH: : PC.WTP: 0 0 0 0 0 0 0 PC.RSl PC.TPC PC.TMP PC.DCF 0 ;REUFPA WORD ;RBUFEA '1iORD ;RBUF LO\lJER 16 BITS ;RBUF UPPER 2 BITS/6 ;RBUF TOP 12 BITS/16 ;WBUFPA '.>JORD ;WBUFEA WORD ;WBUF LO';JER 16 BITS ;WBUF UPPE.R 2 BITS/6 ;WGUF TOP 12 B1TS/16 0 0 0 0 0 0 .WORD .WORD . ~JORD .WORD 0 0 0 0 ;READ B~FFER SIZE ;PC OF CALL ;TEMP STORAGE ;DATCK FLAG ;USER MODE STACK BITS BITS BITS BITS SEQ 0166 PCDATA (PROCESS CDATA & DATCK TRAP CALLS) MACY11 30A(1052) PCDATA.MAC 31-JUL-78 16:22 PCDATA (CODE) 634 635 636 (2 ) 637 638 (4 ) 639 (2 ) 640 641 (2 ) 642 643 (4 ) 644 645 646 647 648 649 (2 ) 650 (3 ) ROUTINE PCDATA <DT> 000044' 000044' 000044' 000044' 005067 000050' 000050' 000403 659 (4) 660 661 662 663 664 (4 ) (6 ) 665 666 667 668 669 670 (4) (6) 671 672 673 674 675 676 PAGE 19-3 SEQ 0167 LET PC.DCF · - #0 CLR INLINE <BR COM> ROUTINE PDATCK <DT> 000052' 000052' 000052' 000052' 012767 PCDATA: 177762 LET PC.DCF 000001 177752 ·- #1 PC.DCF BR COM PDATCK: MOV # 1 ,PC. DCF ;+ ; SAVE REGISTERS , 000060' 000060' 000060' 000060' 004767 INLINE <COM:> CALL SAVREG COM: JSR OOOOOOG PC,SAVREG ;+ ; SET RO TO DTABLE ADDRESS, R1 TO HEADER ADDRESS AND R2 TO TABLE ADDRESS ; POINTING TO RBUF PA,EA & SIZE. R3 AND R4 WILL BE POINTERS TO READ AND ; WRITE BUFFERS RESPECTIVELY. R2 ALSO SERVES AS A WHILE-DO LOOP CONTROL. , 656 657 (4 ) 17:34 .SBTTL PCDATA (CODE) 651 652 653 654 655 658 20-SEP-78 000064' 000064' 016500 000070' 000070' 017001 . - DT(R5) LET R'I . - @DT.PC(RO) LET RO 000000 000002 MOV DT(R5),RO MOV @DT.PC(RO),R1 rI:o v SUB DT . PC ( RO) , PC. TPC #2,PC.TPC rr.OV ADD PC.TPC,R2 #4,R2 ;+ ; DEVELOP RETURN ADDRESS FOR MESSAGE , 000074' 000074' 016067 000102 1 ~62767 LET PC.TPC 000002 000002 177724 177716 · - DT.PC(RO) - #2 ;+ ; GET ADDRESS OF RBUF,PA,EA ;- 000110' 000110' 016702 000114' 062702 LET R2 := PC.TPC + #4 177712 000004 ;+ ; R3 GETS PA WORD AND SAVE ALSO IN PC.RPA 000120' LET R2 : = (R2) PCDATA (PROCESS CDATA & DATCK TRAP CALLS) MACY11 30A(1052) PCDATA.MAC 31-JUL-78 15:22 PCDATA (CODE) (4) 577 (4) 678 (4) 679 680 681 682 683 684 (4) 685 (4) 686 687 688 689 690 691 (4) 692 693 694 695 695 697 (4) 698 (4) 000120' 01'202 000122' 000122' 012203 000124' 000124' 010367 C00130' 000130' 012267 000134' 000134' 011267 000140' 000140' (3 ) 177650 713 MOV (R2)+,R3 MOV R3,PC.RPA MOV (R2)+,PC.REA 1\10V (R2),PC.RSZ MOV WBUFPA(R1),R4 MOV R4,PC.WPA MOV WBUFEA(R1),PC.WE LET PC. REA .- (R2)+ 177646 L~T PC.RSZ .- (R2) 17'1664 LET R4 := WBUFPA(R1) 016104 000134 FINALLY GET WBUFEA BITS INTO LOCAL STORAGE , 000144' 000144' 000150' 000150' 010467 016167 LET PC.WPA · - R4 LET PC.WEA · - WBUFEA(Rl) 177642 000136 177636 ;+ ; IF BIT15 OF WORD COUNT WORD OF MODULE HEADER IS NOT SET THEN YO~ ; ARE COMING TO THIS MODULE FOR THE FIRST TIME CLEAR THE WORD ; COUNT AND ERROR COUNT WORDS IN THE MODULE HEADER. , LET R2 016102 . - CDWDCT(R1) 000144 IFCOND PL THEN 100406 LET R2 005002 00506"1 005061 · - #0 LET CDWDCT(R1) : = #0 LET CDERCT(R1) . - #0 000144 000146 ELSE 00042"\ 50002$: 712 714 715 716 717 (R2),R2 ;+ 000162' 000162 000164' 000164' 000166' 000166' 000172' 000172' 000176' 000176 1 000200' (4 ) MOV LET PC.RPA := R3 ; 707 (4 ) 710 (4 ) 711 LET R:3 : = (R2)+ ;+ 0001~6' (4 ) SEQ 0168 ; GET W8UFPA INTO R4 000156' 709 PAGE 19-4 ., (4 ) (6 ) 17:34 ;+ ; SAVE EA BITS AND SIZE 699 700 701 702 703 704 705 706 702 20-SEP-78 ;+ ; ELSE YOU WERE HERE ; BEFORE FROM THE SAME TRAP MODIFY THE wORD COUNT, THE WRITE ; BUFFER AND THE READ BUFFER POINTERS ACCORDINGLY. MOV CDWDCT(R1),R2 BM! 50002$ CLR R2 CLR CDVJDCT(R1 ) CLR CDERCT(R1 ) BR 50003$ MACY11 30A(1052) PCD,\ 1.\ (PROCESS CDATA & DATCK TRAP CALLS) PCDATA lCODE) 31-JUl..-78 16:22 PCD;\TA.MAC 718 719 (6 ) 720 (6 ) 721 722 723 724 725 726 (7) 72.7 (6 ) 728 (4 ) 729 (6 ) 730 ( 6) 731 (4) 732 733 734 735 73G 737 (6 ) 738 (6) 739 ( 6) 740 (4 ) 741 742 743 744 745 746 (7 ) 747 (4 ) 748 749 750 75i 752 (4 ) 753 754 755 756 757 758 000200' 000200' 042702 000204' 000204' 005202 · - R2 CLR.BY #31T15 LET R2 · - R2 + #1 PAGE 19-5 SEQ 0169 060203 LET R2 · - R2 SHIFT ;FORM OFFSET LET R3 · - R3 + R2 ;NEW RBUF PTR LET PC.RPA . - R3 177562 IFCOND CS THEN 103003 LET PC. REA 062767 000020 . - PC.REA + #':LO 177554 #BIT15,R2 INC R2 ASL R2 ADD R2,R3 MOV R3,PC.RPA BCC 50004$ ADD #20,PC.REA ADD R2,R4 Bec 50005$ ADD #20,PC.WEA ASR R2 Mev R4,PC.WPA ENDIF 50004$: + UPDATE WRITE BUFFER POINTER AND IT'S EA BITS LET R4 000226' 000226' 060204 000230' 000230' 10300.3 0(,0232' 000232' 062767 000240' 000240' BIC ;UPDATE WORD COUNT UPDATE READ BUFFER POINTER AND EA BITS 006302 010367 17:34 LET R2 100000 + 000206' OJ0206' 000210' OC0210' 000212' C00212' 000216' 000216' 000220' 000220' 000226' 000226' ~0-SEP-78 · - R4 + R2 ;NEW WBUFF PTR IFCOND CS THEN LET PC.WEA 000020 . - PC.WEA + #20 177554 ENDIF 50005$: ;+ ; RESTORE WORD COUNT , LET R2 000240' 000240' 006202 000242' 000242' · - R2 SHIFT -1 ENDIF 50003$: ;+ ; NOW LOAD LOCAL STORAGE WITH WRITE BUFFER PA IN R4 , 000242' 000242' 010467 LET PC.WPA 177544 ;+ 1 ; , · - R4 IF In IS ON THEN DETERMHIE PHYSICAL ADDRESS IN PAR FORMAT ....• MACY11 30A(1052) PCDATA (PROCESS CDATA & DATCK TRAP CALLS) PCDATA (CODE) 31-JUL-78 16:22 PCDATA.MAC 759 (6 ) (9) 760 761 762 763 764 765 (6) (9 ) 766 (3 ) (4) (3 ) (3 ) 767 (3 ) (4) ( 3) (3 ) 768 (3 ) (4 ) ( 3) (3 ) 769 (3 ) (4) (3 ) (3 ) 770 (4 ) (3 ) 771 (3 ) (4 I (3 ) (3 ) 772 (3 ) (4 ) (3 ) (3 ) 773 (4 ) 774 775 775 77;' 778 779 (4 ) 780 (4 ) 781 000246' 000246' 032760 000254' 001515 17:34 PAGE 19-6 SEQ 0170 IF #KTSTAT SETIN DT.STO(RO) THEN 000020 000010 + 000256' 000256' 000264' 000266' 000266' 000270' 000274' 000300' 000302' 000302' OJ030 Ll, ' 000310' 000314' 000316' 000316' 000320' 000324' 00033') , OC0332' 000332' 000334' 000340' 000344' 000345' 000346' 000350' 000350' 000350' 000352' 000356' 000362' 000364' 000364' 000366' 00C372' 000376' 000400' 000400' 20-SEP-78 000200 000010 CALL UNIPA IN <#PC.RPA> 010546 012745 004767 012605 000000' OOOOOOG 010546 012745 004767 012605 000012' OOOOCOG 01054<) 012745 004767 012605 000004' 000730 010546 012745 0()4767 012605 000016' 000714 #KTSTAT,DT.STO(R 50006$ BIT 8=:Q #MAPSTAT,DT.STO( 50007$ MOV MGV JSR MOV R5,-\SP) #PC.RPA,-(R5) PC,UNIPA (SP)+,R5 MOV MOV JSR MOV R5,-(SP) #PC.WPA,-(R5) PC,UNIPA (SP)+,R5 MOV MOV JSR MOV R5,-(SP) #PC.RLO,-(R5) PC,TOP16 (SP)+,R5 MOV MOV JSR MOV R5,-(SP) I;PC.h/ LO,-(R5) PC,TOP16 (SP)+,R5 BR 50010$ M::JV MOV JSR MOV R5,-(SP) #PC.RPA,-(R5) PC,TOP12 (SP)+,R5 IViOV MOV JSR MOV R5,-(SP) #PC.WPA,-(R5) PC,TOP12 (SP)+,R5 fJlOV @#KIPARO,@#UIPAR MOV PC.WTP,@#UIPAR5 IF 22 BIT ADDRESSING ENABLED, GET 22 BIT PHYSICAL ADDRESS IF #MAPSTAT SETIN DT.STO(RO} THEN 032760 001431 8IT BEQ CALL UNIPA IN <#PC.WPA> CALL TOP16 IN <NPC.RLO> CALL TOP16 IN <#PC.WLO> ELSE 000414 50007$: CALL TOP12 IN <#PC.RPA> 010546 012745 004767 012605 000000' 000752 CALL TOP12 IN <#PC.WPA> 010546 012745 004767 012605 000012' 000736 ENDIF 50010$: + 000400' 000400' 013737 000406' 000406' 016737 000414' 172340 177410 LOAD PARS WITH VALUES PREVIOUSLY DETERMINED LET @#UIPARO .- @#KIPARO LET @#UIPAR5 .- PC.WTP LET @#UIPAR6 .- PC.RTP 177640 177652 MACY11 30A(1052} PCDATA (PRDCESS CDATA & DATCK TRAP CALLS) PCDA 1;\ {CODE) 31-uUL-73 16:22 PCDATA.MAC (4) 782 (4 ) 783 784 785 786 787 788 789 (6) 790 (6) 791 (6 ) 792 (6 ) 793 794 795 796 797 798 (4 ) (3 ) (4 ) 799 (6) 800 (2 ) (3 ) 801 (2 ) 802 (2 ) 803 804 805 806 807 (4 ) 80B 809 (4 ) 810 811 (2 ) 812 813 814 815 816 (4 ) (6 ) ( 9) 817 000414' 016737 000422' 000422' 012737 177370 177654 LET @#UIPAR7 177600 20-SEP-78 17:34 PAGE 19-7 SEQ 0171 . - #177600 1]7656 MOV PC.RTP,@#UIPAR6 MOV #177600,@#UIPAR7 B:C #177700,R3 ;+ ; SET R3 TO SELECT PAR6 AND R4 TO SELECT PARS AND ALSO ; LOAD R3 AND R4 WITH LOWER 6 BITS OF RBUF AND WBUF ADDRESSES , · - R3 CLR.BY #177700 LET R3 · - R3 SET.BY #1~00OO LET R3 000430' 000430' 000434' 000434' 000440' 000440' 000444' 000444' 042703 177700 052703 140000 042704 177700 052704 120000 SIS #140000,R3 LET R4 · - R4 CLR.BY #177700 BIC #177700,R4 LET R4 · - R4 SET.BY #120000 BIS #120000,R4 SUB JSR MOV #1*2,R5 PC, GETPSIIJ (R5)+,PC.TMP BIS #140000,PC.TMP MOV MOV PC.TMP,-(SP) #33$,-(SP) ;+ ; GET THE PSW AND GO TO USER MODE , 000450' 000450' 162705 000454' 004767 000460' 01~567 000464' 000464' C52767 000472' 000472' 016746 OOO~76' 012746 000502' 000502' 000002 000504' 000504' CALL GETPSW OUT <PC.TMP> 000002 OOOOOOG 177344 LET PC.TMP 140000 . - PC.TMP SET.BY #140000 177336 PUSH PC.TMP,#33$ 177332 000504' INLINE <RTI> RTI INl..INE <33$:> 33$: + SET UP USER MODE STACK 000504' 000504' 012706 LET SP : = #PCDATA MOV 000044' 000510' 000510' ENDIF 000510' 000510' INLINE <1$:> #PCDATA,SP 50006$: 1 $: ;+ ; NOW WE ARE READY TO COMPARE DATA WORDS , 000510' 000510' 000510' 020267 000514' 002113 000516' WHILE R2 LT PC.RSZ DO 177310 LET R2 .- R2 + #1 50011$: CMP BGE R2,PC.RSZ 50012$ PC DATA (PROCESS CDATA & DATCK TRAP CALLS) MACY11 30A(1052) PCDATA.MAC 31-JUL-78 16:22 PCDATA (CODE) (6) 818 (6) (9) 819 820 821 822 823 824 825 (6) 826 (6) (8 ) (6) (9) (6) 827 (4) 828 (4) 829 (6) ( 9) 830 (6) 831 832 833 834 835 836 837 838 839 840 (4) 841 (4 ) 842 843 844 845 846 847 848 (4 ) 849 (4 ) 000:516 1 005202 000520 1 000520 1 021314 000!::>221 001461 20-SEP-78 17:34 PAGE 19-8 SEQ 0172 R2 crl1P (R3),{R4) 50013$ BEQ ;+ ; WORDS DID NOT COMPARE .... UPDATE ERROR COUNTS AND SEE IF ; MESSAGE SHOULD BE OUTPUTTED. 000524 1 000524 1 005264 000530 1 000530 1 026127 000536 1 003404 000540 1 032760 000546 1 001446 000550 1 000550' 000550' 011367 000554' 00C554' 011467 000560 1 000560' 032760 000566 1 001406 000570 1 000570' 042767 LET CDERCT(Rl) .- CDERCT(R1) + #1 IF CDERCT(R1) LE #3 OR 000146 000146 CDERCT (Rl ) #BIT10 SETIN DT.SWR(RO) THEN 000003 CMP BIT BEQ CDERCT(Rl),#3 50014$ Ir'BIT10,DT .SWR(RO 50015$ MOV (R3),PC.WPA MOV (R4),PC.WEA BIT BEQ #KTSTAT,DT.STO(R 50016$ Brc #140000,PC.TMP BlE 002000 000056 500145: LET PC.WPA .- (R3) 177236 LET PC.WEA .- (R4) 177234 IF #KTSTAT SETIN DT.STO(RO) THEN 000020 000010 140000 177232 LET PC.TMP '- PC.TMP CLR.BY #140000 ;+ ***************************************************************~ NOTE!!!!! DIRECT REFERENCE TO PSW FOLLOWS !!! I! IN AN LSI MACHINE WITH KT ( SHOULD THIS EVER EXIST ), DIRECT ACCESS TO PSW MAY NOT BE ALLOWED !!! THE USE OF SOME TRAP MAY BE NECESSARY TO SWITCH TO KERNEL!!I! ******************************¥********************************* 000576' 000576' 016737 0006041 000604 1 LET @#PSW .- PC.TMP 177226 177776 MOV PC.TMP,@#PSW ENDIF 50016$: ;+ ; LOAD EXPECTED DATA WORO AND SHOULD BE DATA WORD IN MODULE HEADER, SET ; BIT15 IN WORD COUNT WORD IN MODULE HEADER AND ENQUE THE ERROR MESSAGE. 000604 1 000604' 016761 000612 1 000612 1 016761 850 851 852 858 177204 177174 LET AS B ( R1) : = PC. \.~ EA LET AWAS(Rl) .- PC.WPA 000106 000110 + LOAD THE "BEEN HERE BEFORE ON THIS TRAP FLAG" 85~ 855 INC IF (R3) NE (R4) THEN 000620' LET CDWDCT(R1) '- R2 SET.BY #BIT15 Mev PC. ~'E A , AS B ( R 1 ) MOV PC. WP A , A\.1/ AS ( R1 ) MACY11 30A(1052) PCD~TA (PROCESS CDATA & DA1CK TRAP CALLS) PCDATA (CODE) 31-JUL-78 16:22 PCDATA.MAC (4) (6) 856 (3 ) (8) (7 ) (6) (5 ) (4) (3 ) (3 ) 857 (2 ) 858 (4 ) 359 (4 ) (3 ) 860 861 862 863 864 86S 866 ( 2) 867 ( 2) 868 ( 6) (9) 869 (6 ) ( 9) 870 (4 ) 871 ( 6) 872 (4 ) 873 (G) (9) 874 (4 ) 875 (6 ) 87E (4 ) 877 (4) 878 (4 ) 879 (4 ) (:3 ) 000620' 000624' 000'332' 000632' 000634' 000640' 000642' 000646' 000552' 00C654' 000660' 000662' 000662' 000664' 000664' 000664 ' 000f)641 000666 ' 010261 052761 010546 016745 010145 016745 012745 010045 004767 012605 000144 100000 20-SEP-78 17:34 PAGE 19-9 SEO Q173 000144 CALL ENQTQ IN <RO,#MSGCKD,PC.TPC,Rl ,PC.TPC> MOV BIS R2, CD\~JDCT (R 1 ) #BIT15,CDWDCT(R1 MOV R5,-(SP) PC.TPC,-(R5) Rl,-(R5) oC.TPC,-(R5) #MSGCKD,-(R5) RO,-(R5) PC,ENQTQ (SP)+,R5 MO\/ 177166 MOV MOV MOV MOV JSR MOV 177160 000010 OOOOOCG INLINE <BR 3$> BR 3$ 000530 ENDIF 5001:;$: ELSE BR 000426 50017$ 500135: ;+ ; NO ERROR IN DATA WORDS, INCREMENT POINTERS. ; UPDATE PAR REGISTERS IF NECESSARY , 000666' 000666' 00(;670' 000670' 000672' 000672' 000700 ' 000702' 000702' 000706' 000710' 000710' 000714' 000714' 000722' 000722' 000722' 000722' 000726' 000730' 000730' 000734' 000734' 000742' 000742' 000742' 000742' 000742' 000742' 000742' 000742' 000744' INLINE <TST (R3)+> TST (R3)+ 005723 INLINE <TST (R4)+> 005724 TST (R4)+ IF #KTSTAT SETIN DT.STO(RO) THEN 032760 001420 000020 020327 001005 160000 012703 140000 062737 000200 000010 BIT Bt::Q #KTSTAT,DT.STO(R 50020$ OP.P 8~E R3,#160000 50021$ MOV #140000,R3 I\DD #200,@l#UIPAR6 CMP I3NE R4,#140000 50022$ MOV #120000,R4 ADD #200,@l#UIPAR5 SR 50011$ IF R3 EO #160000 THEN LET R3 . - #140000 LET @l#UIPAR6 . - @#UIPAR6 + #200 177654 ENDIF 50021$: IF R4 EQ #140000 THEN 020427 001005 140000 012704 120000 062737 000200 LET R4 . - #120000 LET @l#UIPAR5 .- @#UIPAR5 + #200 177652 ENDIF 50022$: ENDIF 5C0201: E.NDIF 50017$: ENDDO 000662 500121: PCDATA (PROCESS CDATA & DATCK TRAP CALLS) MACY11 30A(1052) r:OATA.MAC 31-JUL-78 16:22 PCDATA (CODE) ~O-SEP-78 17:34 PAGE 19-10 SEQ 0174 880 881 ;+ 882 883 88-+ 885 886 887 (6) (9) 888 NOW YOU GO TO KERNEL MODE, FOR SURE. CHECK IF THERE WERE ANY ERRORS. IF NONE, UPDATE DT.PC FOR PROPER RETURN AND CLEAR THE DEFERRED SERVICE ; BIT IN DT.STO, AND THATIS IT !!! (6) 889 890 891 892 893 894 895 896 897 898 (4 ) 899 (4 ) 900 901 902 903 904 905 906 ( 6) (9) 907 (6) 908 (6) i 000744 1 000744 1 032760 000752 1 001406 0007541 000754 1 042767 IF #KTSTAT SETIN DT.STO(RO) THEN 000020 000010 (6 ) (9 ) 914 (3 ) (4 ; (3 ) ( 3) 915 (4 ) (3 ) 916 917 918 BIT #KTSTAT,DT.STO(R 50023$ SIC #140000,PC.TMP LET PC.TMP .- PC.TMP CLR.8Y #140000 140000 177046 i+ ***************************************************************. NOTE. !!!!! DIRECT REFER£NCE TO PSW FOLLOWS !!!! I IN AN LSI MACHINE WITH KT ( SHOULD THIS EVER EXIST ), DIRECT ACCESS TO PSW MAY NOT BE ALLOWED!!I THE USE OF SOME TRAP MAY BE NECESSARY TO SWITCH TO KERNEL!!!! **************************************************************** 00C762 1 000762 1 016737 000770 1 000770 1 LET @#PSW '- PC.TMP 177042 177776 PC.TMP,@#PSW TST BEQ CDERCT(R1 ) 50024$ INC SOFCNT(R1 ) INC SDFPAS(R1) BIT BEQ #APTPRES,DT.CFO( 50025$ rt:ov MOV R5,-(SP) RO,-(R5) PC,APTSER (SP)+,R5 BR 50026$ 50023$: ;+ ; IF ERRORS, UPDATE ERRORS COUNTS AND DO APT 000770 1 000770 1 005761 0007741 001447 000776 1 000776 1 005261 001002 1 001002 1 005261 MOV ENDIF STU~F IF NECESSARY IF CDERCT{R1) NE #0 THEN 000146 LET SOFCNT(Rl) '- SOFCNT(R1) + #1 LET SOFPAS(R1) '- SOFPAS(R1) + #1 000042 000046 ;+ ; IF UNDER APT, CALL APT SOFT ERROR ROUTINE 909 910 911 912 913 8EQ 001006 1 001006 1 032760 001014 1 001406 001016 1 001016 1 01C546 001020 1 010045 001022 1 004767 001026 1 012605 001030 1 001030 1 000431 001032 1 IF NAPTPRES SETIN DT.CFO(RO) THEN 000200 000014 CALL APTSER IN <RO> M:JV JSR OOOOOOG ELSE 50025$: ;+ ; NOT APT . . . . . SEE IF TOO MANY ERRORS PCDATA (FROCESS CDATA & DATCK TRAP CALLS) MACY11 30A(1052) PCDATA.MAC 31-JUl-78 16:22 PCDhTA (CODE) 919 920 921 922 923 924 925 926 927 (6) (9) 928 (3) (5) (4) (3) (3) 929 (4) (3) 930 (6) (9) (6) (9) 931 (3) (5) (4) (3) (3) 932 (4) 933 (4) 934 (4) 935 936 (4) 937 938 939 940 941 (6) 942 943 944 945 946 947 (6) (9) 948 (6) ~O-SEP-78 17:34 PAGE 19-11 SEQ 0175 ;+ ; IF aIT 15 SET IN SWITCH REGISTER ... OR IF TOO MANY SOFT ERRORS AND ; BIT 14 SETIN SWITCH. REGISTER ... ALSO DUMP MODULE .... OOi032' 001032' 001040' 001042' 001042' 001044' 001046' 001050' 001054' 001056 ' 001056' 001::160' 001060' 001060' 001066 ' 001070; 001076' 001100 ' 001100 ' 001102 ' 001104' 001106' 001112 ' 001114' 001114' 001114 ' 001114' 00' 1 14' 001114 ' IF #BIT15 SETIN DT.SWR(RO) THEN 032760 001407 100000 000056 CALL DRPMOD IN <RO,R1> 010545 010145 010045 004767 012605 OOOOOOG BIT BEQ #BIT15,DT.SWR(RO 50027$ MOV MOV MOV JSR MOV R5,-(SP) R1,-(R5) RO,-(R5) PC,DRPMOD (SP)+,R5 ELSE BR 50030$ 50027$: IF SOFCNT(R1) HI DT.SMX(RO) AND #BIT14 NOTSETIN DT.SWR(RO) THEN CMP SOFCNT(R1 ),DT.SM BLOS 50031$ BIT #BIT14,DT.SWR(RO BNE 50031$ CALL DRPMOD IN <RO,R1> MOV R5,-(SP) MOV R1,-(R5) MOV RO,-(R5) JSR PC,DRPMOD MOV (SP)"T,R5 ENDIF 50031$: 000415 026160 101412 032760 001003 010545 010145 010045 004767 012605 000042 000100 040000 000056 OOOOOOG ENDIF 50030$: ENDIF 500265: ENDIF 001114' 001114' 50024$: ;+ ; UPDATE RETURN P.C. 001114 I 001114' 062760 LET DT.PC(RO) .- DT.PC(RO) + #6 000006 000002 ADD #6,DT.PC(RO) TST SEQ PC.DCF 50032$ ADD #2,DT.PC(RO) + IF DATACK, UPDATE AGAIN 001122 ' 001122' 005767 001,26' 001403 001130' 001130 ' 062760 IF PC.DCF NE #0 THEN 176704 LET DT . PC ( R0 ) . - Di' • PC ( R0) + # 2 000002 000002 PCDATA (PROCESS CDATA & DATCK TRAP CALLS) MACY11 30A(1052) PCDATA.MAC 31-JUL-78 16:22 PCDATA (CODE) 949 (4) 950 951 952 :353 954 955 (6) 956 957 958 959 960 961 962 963 :364 965 966 (2) 967 (6) (9) 968 (6) (9) 969 970 971 972 973 974 97S 976 (4) 977 (4) (6) 975 979 980 981 982 (6) (9) 98:.;; (3) (8) (7) (6) (5) (4) (3) (3) 984 20~SEP-78 17:34 PAGE 19-12 SEQ 0176 Ef'IJDI F 001136' 001136' 50032$: ;+ ; MARK IT AS DEFFERRED RETURN 001136' 001136' LET DT.STO(RO) 042760 000400 .- DT.STO(RO) CLR.BY #DEFRTN BIC 000010 #DEFRTN,DT.STO(R ;+ IF THERE ARE SOME ERRORS, IF COUNT IS DONE, CHECK IF THE TRAP CALL WAS A CDATA CALL. IF SO, ENQuE THE ERROR SUMMARY MESSAGE AND CHANGE THE RETURN ADDRESS TO LOCATION IN THE TRAP CALL. FOR DATCK TRAP, CLEAR THE DEFERRED SERVICE BIT IN DT.STO AND LOAD ERROR COUNT INTO LOCATION IN THE TRAP CALL. IN CASE YOU FORGOT R2 CONTAINED WORD COUNT SO FAR. ;- 001144' 001144' 001144' 001,44' 001150' 001152' 001152' 001156' INLINE <3$:> 3$: IF CDERCT(R1) NE #0 THEN 005761 001440 000146 020267 002435 176646 TST BEQ CDERCT(R1 ) 50033$ CMP BLT ;~2, PC. RSZ 50034$ MOV R2,CDWDCT(R1) MOV ADD PC.TPC,R2 #6,R2 TST BNE PC.DCF 50035$ MOV MGV R5,-(SP) (R2),-(R5) R1,-(R5) PC.TPC,-(R5) #MSGCKS,-(R5) RO,-(R5) PC,ENQTQ (SP)+,R5 IF R2 GE PC.RSZ THEN + 001160' 001160' 010261 001164\ 001164' 016702 001170' 062702 UPDATE WORD COUNT AND SET R2 TO RETURN ADDRESS LET CDWDCT(R1) 000144 .- R2 LET R2 .- PC.TPC + #6 176636 000006 + IF CDATA, ENQUEUE SUMMARY MESSAGE 001174' 001174' 001200 001202 001202' 001204' 001206' 001210' 001214' 001220' 001222' 001226 1 001230' IF PC.DCF EQ #0 THEN 005767 001014 176632 CALL ENQTQ IN <RO,#MSGCKS,PC.TPC,R1 ,(R2» 010546 011245 010145 016745 012745 010045 004767 012605 IV: 0 V MOV 176612 000011 MOV MOV JSR OOOOOOG rv.:.....; ELSE MACY 11 30A(1052) PCDATA (PReCESS CDATA & DATCK TRAP CALLS) PCDATA (CODE) 31-JUL-78 16:22 PCDATA.MAC (4 ) (3 ) 985 (4) 391 992 993 394 995 (4) 996 (6) 997 (4 ) 993 (4) 999 (4 ) 1000 1001 1002 1003 1004 1005 1006 1007 1003 (3) 1009 (3 ) (3 ) (2 ) 101C 17:34 PAGE 19-13 001230' 000410 001232' SEQ 0177 6R 50036$ MOV CDERCT(R1) ,2(R2) MOV (R2),DT.PC(RO) BIC #DEFRTN,DT.STO(R dSR PC,RESREG RTS PC 50035S: ;+ ; DATACK ...... R2 CONTAINS RETURN ADDRESS 98:3 987 ,388 389 990 20-SEP-78 , 001232' 001232' 016162 LET 2(R2) 000146 := CDERCT(R1) 000002 ;+ ; UPDATE RETURN P.C. ;- 001240' 001240' 011260 C01244' 00,244' 042760 001252 ' 001252' 001252' 001252' 001252' 001252' . - (R2) LET DT.STO(RO) . - DT.STO(RO) CLR.BY :iDEFR7N LET DT.PC(RO) 000002 000400 000010 ENDIF 50036S: ENDIF 50034$: ENDIF 50033$: ;+ ; CLEAN UP AND GOODBYE , 001252' 001252' 004767 001256' 00',256' OO"j 256' 001256' 000207 CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: PCDATA (PROCESS CDATA & DATCK TRAP CALLS) MACY11 30A(1052) PCDATA.MAC 31-JUl-78 16:22 TOPi6 SUBROUTINE 1012 1013 1014 (2) 1015 1016 1017 1018 1019 1020 1021 1022 1023 11)24 1025 (3) 1026 1027 1028 1029 1030 1031 1032 1033 1034 (4 ) 1035 ( 4) 1036 (4 ) 1037 (7 ) (7 ) (7 ) (7 ) ( 7) (7 ) 1038 (6 ) 1039 (6 ) 1040 (7 ) (7 ) 1041 (4 ) ( 6) 1042 1043 1044 1045 10Ll6 1047 (3) 1048 1049 2u-SEP-78 17:34 PAGE 19-14 SEQ 0178 .SBTTL TOP16 SUBROUTINE ROUTINE TOP16 <AA> 001260 1 001260 1 TOP16: ;+ THIS ROUTINE COMBINES THE 6 EA BITS WITH THE TOP 10 BITS OF THE PA WORD AND RETURNS THE RESULT IN PC.RTP/PC.WTP WORD. AA IS THE TABLE ADDRESS AND THE TABLE IS OF THE FORM: LO LOWER 16 BITS FROM MAP22 HI UPPER 6 BITS FROM MAP22 RESULT GOES HERE ( ) 001260 ' 001260 ' 004767 CALL SAVREG JSR OOOOOOG PC,SAVREG ;+ ; SET RO TO TABLE ADDRESS, R2 GETS 16-8IT PA AND Rl GETS 6-8IT ; EA. SHIFT PA 6 PLACES TO THE RIGHT AND BRING EA BITS IN POSITION ; 15-10. ADD EA AND PA TO GET TOP 16-BIT WORD. RETURN THE ; RESULT. 001264' 001264 ' 016500 001270 ' 001270 ' 012002 001272 ' 001272 ' 01200 '! 001274' 001274 1 006202 001276 1 006202 001300 1 006202 001302 1 006202 001304 ' 006202 001306 ' 006202 001310 ' 001310 1 0427C2 0013141 0013141 000301 LET RO '- AA(R5) 000000 LET R2 . LET R1 (RO) + MOV AA(R5),RO MOV (RO)+,R2 MOV (RO)+,R1 ASR ASR ASR ASR ASR ASR R2 R2 R2 R2 R2 R2 BIC #176000,R2 SWAB R1 ASL ASL Rl R1 MOV ADD R2, (RO) R1,(RO) dSR PC,RESREG .- (RO)+ LET R2 '- R2 SHIFT -6 LET R2 .- R2 CLR.BY #176006 176000 00~316' 001316 1 00630' 001320 ' 006301 0013221 001322 1 010210 0013241 060110 LET R1 . - SWAP R1 LET Rl .- R1 LET (RO) SHIFT 2 := R2 + R1 ;+ ; RESTORE REGISTERS 001326 ' 001326 1 004767 001332 ' CALL RESREG OOOOOOG ENDRTN PCDATA (PROCESS CDATA & DATCK TRAP CALLS) PCDATA.MAC 31-JUL-78 16:22 TOPi6 (3 ) (3 ) ( 2) 1050 001332' 001332' 001332' 000207 MACY11 30A(1052) ~v-SEP-78 17:34 PAGE 19-15 SUBROUTI~E SEQ 0179 50000$: 50001$: RTS PC PCDATA (PROCESS CDATA & DATCK TRAP CALLS) MACY11 30A(1052) PCDATA.MAC 31-JUL-78 16:22 TOP12 SUBROUTINE 1052 1053 1054 (2 ) 20-SEP-78 17:34 PAGE 19-16 SEQ 0180 .SBTTL TOP12 SUBROUTINE ROUTINE TOP12 <BB> 001334' 001334' TOP12: 1~55 1056 1057 10!::>8 1059 1060 1061 1062 1063 1064 1065 1066 1067 (3 ) 1063 1069 1070 1071 1072 1073 1074 1075 1076 (4 ) 1077 (4) 1078 (4) 1079 (7 ) (7 ) (7 ) ( 7) (7 ) (7 ) 1080 (7 ) (7 ) (7 ) (7 ) (7 } (7 ) 1081 (6 ) 1082 (4 ) (6 ) 1083 1084 (3 ) 108:' 1086 ;+ THIS ROUTINE COMBINES THE 2 EA BITS WITH THE TOP 10 BITS OF THE PA WORD AND RETURNS THE RESULT INTO LOCATION PC.RTP/~C.WTP. BB IS THE TABLE ADDRESS AND THE TABLE IS OF THE FORM: PA EA LO HI ( RESULT GOES HERE 001334' 001334' CALL SAVREG 004767 OOOOOOG JSR PC,SAVREG MOV BI3(R5),RO MOV (RO)+,R2 MOV (RO)+,R1 ASL ASL ASL ASL ASL ASL R1 R1 R1 R1 R1 R1 ASR ASR ASR ASR ASR ASR R2 R2 R2 R2 R2 R2 BIC #176000,R2 MOV ADD R2,4(RO) R1,4(RO) JSR PC,RESREG ;+ SET RO TO TABLE ADDRESS. R2 GETS PA AND R1 GETS EA. ; BRING EA BITS IN POSITION 9-10 AND SHIFT PA 6 PLACES ADD EA AND PA WORDS TO GET TOP 12 BIT WORD. ; TO THE RIGHT. ; RETURN THE RESULT. 001340' 001340' 001344' 001344' LET RO .- BB(R5) 016500 000000 LET R2 .- (RO)+ 012002 001346' 001346' 001350' 001350' 001352' 001354' 001356' 001360' 001362' 001364' 001364' 001366' 001370' 001372' 001374' 001376' 0014CO' 001400' 001404' 001404' 001410' 001414' 001414' 001420' LET R1 .- (RO)+ LET R1 .- R1 SHIFT 6 012001 006301 005301 006301 00(3301 006301 006301 LET R2 .- R2 SHIFT -6 006202 006202 006202 006202 006202 006202 LET R2 := R2 CLR.BY #176000 042702 176000 010260 060160 000004 000004 004767 OOOOOOG LET 4(RO) '- R2 + R1 CALL RESREG ENDRTN PCDATA (PROCESS CDATA & DATCK TRAP CALLS) MACY11 30A(1052) PCDATA.MAC 31-JUL-78 16:22 TOP12 SUBROUTINE (2 ) 001420' 001420' 001420' 000207 1087 1083 000001 (3 ) (3) 20-SEP-78 17:34 PAGE 19-17 SEQ 0181 50000$: 50001$: RTS .END PC MACY11 30A(1052) PCDATA (PROCESS CDATA & DATCK TRAP CALLS) SYMBOL TABLE 31-JUL-78 16:22 PCDATA.MAC AA 000000 ACSR 000102 ACTSIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 APTSER= ****** G ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 A'IJAS 000110 BB 000000 BITO 000001 BITOO 000001 BITOl 000002 B1T02 000004 BIT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 B1T09 001000 BIT1 000002 61T10 002000 BIT 11 004000 BIT 12 01COOO B1T13 020000 BIT14 040000 BIT 15 100000 B1T2 000004 000010 BIT3 31T4 000020 BITS 000040 BIT6 000100 BIT7 000200 BIT8 000400 B1T9 001COO BKDEF 000002 BKI\~OD 000020 8Kr,~ODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 00)004 CDERCT= 000146 CDv..DCT= 000144 CKTWI = 100000 CLKPRE= 000001 COM 000060R CONFIG= 000056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DRPMOD= ****** G DSEVNT= 000014 000000 DT DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.8LS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESl= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.Res= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 20-SEP-78 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUI..= 000001 ENDLST= 000000 ENQTO = ****** G EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000~02 EVNTRE= 000201 FATERR= 100000 GETPSW= ****** G HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= OC0040 IDNUM = 000122 IE 000100 INDPAR= 000040 It-.JHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 10MOD 100000 IOiJIODP= 102000 IOMODR= 112000 I Grl1ODX= 110000 035060 JACK KIPARO= 172340 K1PAR1= 172342 K1PAR2= 172344 KIPAR3::;: 1723Ll6 KIPA~4= 172350 KIPAR5= 172352 K1PAR6= 17~354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDt:<5= 172312 KIPDR6= 172314 K1PDR7= 172316 KTERRO= OOOO~O KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 17:34 PAGE 20 SEQ 0182 LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= IViSGSTD= MSGSYS= IViSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= rARSTA= PASCNT= PCDATA PC.DCF PC. REA PC.RHI PC.RLO PC.RPA PC.RSZ PC.RTP PC.TMP PC.TPC PC.WEA PC.WHI PC.WLO PC.WPA 000012 000001 000200 076600 040000 004000 002000 001000 000010 000011 00·J005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 000044RG 000032R 00OO02R 000006R 00OO04R OOOOOOR 00OO24R 00OO10R 000030R 00OO26R 0OOO14R 000020R OCOO16R 00OO12R PC.WTP PDATCK PDPLSI= PDP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PS,,\f RANNUM= RBUFEA= RBUFPA= RBUFSZ= RBUFVA= RDSt:RV= RD~mM I = RELERR= RELr,10D= REL TIM= RESF1EG= RES1 RES2 RICHAR= RPTc)AT= RST~T = RUBOUT= RUNrWD= R5VALU= SAI\~ SAVREG= SBADR SBKr,'OD= SBKSEL= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SOFCNT= SOFPAS= 000022R 000052RG 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 ****** G 000056 000060 031060 002000 000112 000177 100000 001740 075464 ****** G 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 MACY11 30A(1052) PCDATA (PROCESS CDATA & DATCK TRAP CALLS) SYMBOL TABLE 31-JU:"-78 16:22 PCDATA.MAC UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 UNIPA = ****** G WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 wDFR 000114 WDTO WTINRE= 000352 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 SRO 177572 SR1 177574 177576 SR2 SR3 172516 STAT 000026 STATBI= 06~757 ST AT1 = 000027 SUS.:JND= 000001 (:00062 SVRO SVR1 000064 SVR2 000066 SVR3 000070 000072 SVR4 SVR5 000074 S'JR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO 000002 TOP12 001334R TOP16 001260R TQOVF 000002 UIPARO= 177640 ASS. 000000 001422 000 001 0 ERRORS DETECTED: DEFAULT GLOEAL.S GENERATED: 0 DSKZ:PCDATA,DSKZ:PCDATA=SPMAC/ML,EQUATE,PCDATA RUN-TIME: 28 19 .4 SECONDS RUN-TIME RATIO: 67/47=1.4 CORE USED: 14K (27 PAGES) WTWHMI= 000222 XFLAG = 000005 XOFF 000023 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F5DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOU= 000200 $F$NAM= 000i60 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000:;00 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 20-SEP-78 17:34 PAGE 20-1 SEQ 0183 $F$UNT= 000130 $F$\tJH I = 000120 $F$YES= 000402 $IFLEV= 177777 000001 $ISKO $ISK1 = 000001 $ISK2 = 000001 $ISK3 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 000000 000300 $NSKO $NSK1 000300 000110 $NSK2 000110 $NSK3 000110 $NSK4 000110 $hlSK5 SSAVLE= 177777 $SSKO = 050012 $TAGlE= 177777 $TAGNU= 050002 000300 $TEMP 050033 $TSKO 050034 $TSK1 $TSK2 = 050036 $TSK3 = 050031 $TSi<4 = 050022 $$ARGC= 000002 S:3BYTE= 000403 $$U. SE= 000000 $$DST = 000000 S$E LOC= 000402 $:';E~FL= 000000 $$FLAG= 000001 $$F~OM= 000000 $$LCJC = 001200R $$LOCN= 000000 $$R::G = 177777 $$RETU= 000000 S$h:iN1= 050000 S$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 001422R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 555 558 591 17:35 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT PCTRLC ROUTINE ;SPMAC: VERSION 1.1 SEQ 0184 .MAIN. MACY11 30A(1052) 20-SEP-78 (QUATE.MAC 13-SEP-78 16:13 3 558 563 601 17:40 TABLE OF CONTENTS COMMON EQUATE MODULE COM~ON DEFINITIONS AND REFERENCES 000000' .PRINT ;SPMAC: VERSION 1.1 ACTIVATE BACKGROUND MODULE ROUTINE SEQ 0264 FCTRLC - PROCESS CTRL C MACY'1 30A(1052) 20-SEP-78 17:35 PAGE 19 28-JUL-78 09:09 COMMON EQUATE MODULE SEQ 0185 PCTRLC.M~C 503 S09 51C :31 1 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 54? 543 544 545 54b 547 548 549 550 551 552 553 .TITLE PCTRLC - PROCESS CTRL C .IDENT JVO.Oj ;++ MODULE NAME: PCTRLC FUNCTIONAL DESCRIPTION: CONT~OLS THE PROCESSING OF A CTRL C COMMAND FROM THE OPERATOR. INPUTS: DATA TABLE ADDRESS I iJl P LI CIT I NPUT S : DT.ADDR, DT.STO, DT.CFO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.STO PATOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: MSGDHOOK PRRLOC WBFLIM UNIMAP RSTRCY ;HOOK MESSAGE TO PROPER DRIVER ;PROCESS RELOCATION ;DETERMINE WRITE BUFFER LIMITS ;LOAD UNiBUS MAP ;RECOVER FROM RESET FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PCTRLC IN <A> A=DATA TABLE ADDRESS VERSION: 0.0 EDIT BY DATE REASON PCTRLC - PROCESS CTRL C MACY11 30A(1052) 2C-SEP-78 17:35 PAGE 19-1 PCTRLC.MAC 28-JUL-78 09:09 COMMON DEFINITIONS AND REFERENCES 555 556 557 558 ( ') 559 560 361 562 563 564 565 56S 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 SEQ 0186 .SBTTL COMMON DEFINITIONS AND REFERENCES .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=l $LSTTAG=l 000000 ' 000000 I 000001 000001 ;**************** ; REFERENCED BY OTHER MODULES .GLOBL PCTRLC ;MODULE ENTRY POINT ;**************** ; GLOBAL REFERENCES .GLOBL .GLOBL. .GLOBL .GLOBl .GLOBL .GLOBl .GLOBL MSGDHOOK PRRLOC WBFLIM UNIMAP RSTRCY DX.RSTRT XCSR ;**************** ; LOCAL STORAGE 000000 ' 041536 000045 PC.MSG: .ASCIZ /RC%/ .EVEN **************** ;HOOK MESSAGE TO PROPER DRIVER ;PROCESS RELOCATION ;DETERMINE WRITE BUFFER LIMITS ; LOAD UNIBUS rJlAP ;RECOVER FROM RESET ;MONITOR RESTART ADDRESS ;KEYBOARD PRINTER CSR PCTRLC - PROCESS CTRL C MACY11 30A(1052) 20-SEP-78 17:35 PCTRLC.MAC 28-JUL-78 09:09 PCTRL: ROUTINE 591 592 593 594 (2) 595 596 597 598 5S9 600 601 (2) 602 603 604 605 606 607 608 (4) 609 610 61 1 612 613 614 615 (2) 616 617 618 619 620 621 622 (4) 623 (4) 624 (2) 625 626 (2) 627 628 629 630 631 632 633 (3) (4) (3) (3) 634 PAGE 19-2 SEQ 0187 .SBTTL PCTRLC ROUTINE 000004 1 000004 1 ROUTINE PCTRLC <TABL> PCTRLC: ;+ ; SAVE REGISTERS 000004 1 000004 1 010046 PUSH RO MOV RO,-(SP) MOV TASL(R5),RO ;+ ; SET RO TO THE START OF THE DATA TABLE 000006 1 000006 1 016500 LET RO := TABL(R5) 000000 ;+ ; RESET THE UNIBUS 000012 1 000012 1 000005 INLINE <RESET> ;+ ; CLEAR THE PSW. 000014 1 0000141 005046 000016' 000016' 012746 000022' 000022' 000002 000024 1 LET -(SP) '- #0 LE.T -(SP) .- #1$ RESET (LOWER THE PRIORITY) INLINE <RTI> -(SP) MOV #1$,-(SP) RTI INLINE <1$:> 000024' 000024' 1$ : ;+ ; RESTORE THE PROCESSOR 000024' 000024' 0105~6 000026' 010045 000030' 004767 000034' 012605 CLR CALL RSTRCY IN <RO> ~ARDWARE TO THE STATE IT WAS IN BEFORE THE RESET. MOV rv:ov OOOOOOG dSR MOV R5,-(SP) RO,-(R5) PC,RSTRCY (SP)+,R5 PCTRLC - PROCESS CTRL C MACY11 30A(1052) 20-SEP-78 17:35 PCTRLC.MAC 28-JUL-78 09:09 PCTRLC ROUTINE PAGE 19-3 SEQ 0188 635 ;+ 636 637 633 639 640 (3 ) (7 ) (6 ) ( 5) (4 ) (3) ( 3) 641 (2 ) 642 (2 ) 643 54~ (2 ) 645 646 647 348 649 650 651 652 ( 6) ( 9) 653 ( 3) (5 ) (4) (3 ) (3 ) 654 (3 ) (4 ) (3 ) (3 ) 655 (6 ) (9 ) 656 (3 ) (4 ) (3 ) (3 ) 657 ... (" )\ 658 (4) 659 660 661 ; OUTPUT 000036' 000036' COO040' 000044' 0)0050' 000054' 000056' 000062' 000864' COO064' 000065' 000066' Ii~CIi. CALL MSGDHOOK IN <RO,#MSGPOP,#PC.MSG,#3$> 010546 012745 012745 0127~5 010045 004767 012605 MOV MOV MOV 000070 1 000000 1 000002 M~V MOV JSR OOOOOOG r.~ov INLINE <2$: NOP> 2$: NOP 000240 INLINE <BR 2$> BR 2$ 000776 INLINE <3$:> 000070' 000070' R5,-(SP) #3$,-(R5) #PC.MSG,-(R5) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 3$: ;+ ; IF THE EXERCISER IS NOT IN LOWEST MEMORY MOVE IT THERE, THEN RESET THE WRITE ; BUFFER LIMITS, AND RELOAD THE UNIBUS MAP IF IT EXISTS. ;- 000070' 000070' 000076' 000100' 000100' 000102' 000106' 000110' 000114' 000116' 000116' 000120' OOG122' 000125' 000130' 000130' 000136' 000140' 000140' 000142' 000144' 000130' 000152' 000152 ' 000152 1 000152' IF DT.ADDR(RO) NE #200 THEN 026027 001425 000042 000200 CALL PRRLOC IN <RO,#200> 010~4(3 012745 01004::; 004767 012605 010546 010045 004737 012605 032760 000200 OOOOOOG CALL WBFLIM IN <RO> DT.ADDR(RO),#200 50002$ MOV MClV MOV JSR MOV R5,-(SP) 1;200,-(R5) RO,-(R5) PC,PRRLOC (SP)+,R5 rJlov JSR MOV RS,-(SP) RO,-(R5) PC,WBFLIM (SP)+,R5 BIT BEQ #ADDR22,DT.CFO(R 50003$ MOV MOV JSR MOV RS,-(SP) RO,-(R5) PC,UNIMAP (SP)+,R5 Me\! OOOCOOG IF #ADDR22 SETIN DT.CFO(RO) THEN 001000 000014 001405 010546 010045 004767 012605 CMP BEQ CALL UNIMAP IN <RO> OOOOOOG ENDIF 50003$: ENDIF ;+ 50002$: PCT~LC - 662 863 664 665 ~6) CTRL C MACY11 30A(1C52) 20-SEP-78 17:35 28-JUL-78 09:09 PCTRLC ROUTINE ?~OC~SS PCT~LC.MAC PAGE 19-4 SEQ 0189 ; CLEAR THE RUN MODE INDICATOR AND THE RELOCATION TIME INDICATOR. 000152 1 000152 1 042760 LET DT.STO(RO) := DT.STO(RO) CLR.BY #RUNMODE!RELTIME 110000 000010 S6G 667 668 ;+ 363 ; RESTORE REGISTERS BIC HRUNMODEIRELTIME MOV (SP)+,RO 370 571 672 (2) 673 374 375 675 677 000160 1 000160 1 012600 POP RO ;+ ; RESTART THE MONITOR 378 679 (2 ) C001621 000162 1 000167 INLINE <JMP DX.RSTRT> JMP DX.RSTRT OOOOOOG 68:) 681 6fl2 (3 ) (3) (2 ) 683 000166 1 000163 1 000166 1 000166 1 000207 000001 ENDRTN 50000S: 50001$: RTS . END PC PCTRLC - PROCESS CTRL C r"IACY 11 PCTr~LC .MAC 000102 ACSR ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 000106 ASB ASSEM8= 000010 P,STAT = 000104 AUTO 000010 AUTOST= 020000 A~-JAS 000110 BITO 000001 BITOO 000001 BIT01 000002 [3IT02 000004 6IT03 000010 BIT04 000020 BIT05 000040 BIT06 OOO~OO BIT07 000200 BIT08 000400 GIT09 001000 BIT1 000002 l3IT10 C02000 00";000 B1T11 BIT12 010000 B1T13 020000 BIT14 040000 BIT15 100000 B1T2 000004 BIT3 000010 BIT4 000020 BIT5 000040 BIT6 000100 BIT7 000200 0004CO BIT8 O'J 1000 81T9 BKDEF 000002 BKrt.OD 000020 BKMODE= 040000 BKSLSH= 000134 CAFRES= 000004 CASTAT= 000004 CDERCT= 000146 CDl'JDCT = 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA 000100 CSRC 000102 30A(1052) 28-JUL-78 09:09 2C-SCP-78 17:35 SYMBO ... TABLE 000003 000017 000025 000011 OC0400 000000 100000 OC0014 000042 000100 000076 000034 000014 000016 000020 000044 000000 000060 000037 000036 000104 000024 000026 000022 000030 000032 000110 000070 000074 000002 000062 000004 000064 000102 000040 000066 000106 OaCOO6 000046 000010 000012 000056 000072 000050 000054 DT.~IJLL= 000052 DVID1 = 000014 DX.RST= ****** G ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 CTRLC = CTRLO = CTRLU = DCEVNT= DEFRTN= DIAGMC= DROPMO= DSEVNT= DT.ADD::: DT.AP = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ESI= DT.EVN= DT.EXS= DT.FCH= DT.FCN= DT.HMX= DT.KBE= DT.KBP= DT.KBR= DT.KBU= DT.MLS= DT.MTl= DT.OFF= DT.PAS= DT.PC = DT.PFL= DT. PSI.J= DT. PT A= DT.RCS= DT.REL= DT.SCT= DT.SMX= DT.SP = DT.SSI:.: DT.STO= DT.ST1= DT.SWR= DT.SYP= DT.WBU= DT . vJH L= PAGE 20 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT::: 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= ,000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 0.q0000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 SEQ 0190 MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDHO= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= N8KMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PCTRLC PC.MSG PDPLSI= PDP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRRLOC= PRO PR4 PR5 PR6 PR7 PS PSi'" RANNUM= 001000 000010 000011 000005 ****** G 000017 177777 uOOO13 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 000004RG OOJaOOR 020000 004000 010000 000000 000040 000200 000240 000300 00'')340 ***-1<** G 000000 000200 000240 000300 000340 177776 177776 000054 RBUFEA= 000130 R3JFPA= 000126 RBUFSZ= 000132 RBJFVA= 000124 RDSERV= 000101 RD'wHM I = 000022 RELERR= 000020 REU,10D= 020000 REL TIM= 010000 000056 RES1 000060 RES2 RICHAR= 031060 RPTCAT= 002000 RSTRCY= ****** G RSTRT = 000112 R'.JBDUT= 000177 RJNi\10D= 100000 R5VALU= 001740 075464 SAM S8ADR = 000102 SgKMOD= 000000 S:3KSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPO~NT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 SR3 172516 000026 STAT STATB!= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO SVR1 000064 000066 SVR2 SVR3 000070 SVR4 000072 000074 SVR5 000076 SVK6 SYSCNT= 000052 SYSERR= 000100 PCTRLC - PROCESS CTRL C IViACY1, 28-JUL-78 09:09 PCTRLC.MAC TABi... HIIPIO :: TQOVF :: UIPARO= UIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPORO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPORS= UIPDR6= UIPDR7= UNIMAP= 000000 000002 000002 177640 177642 177644 ABS. 000000 000170 30A(1052) WASAOR= WBFLIM:: WBSTAT= WBUFEA:: WBUFPA= IIJBUFRQ= WBUFSZ= WOFR WOTO WTINRE= WTWHMI= XCSR XFLAG = XOFF XON SBGNLE= $ERFLG= 1776~6 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 20-SEP-78 17:35 SYMBOL TABLE 000104 ****** G 000040 000136 000134 000140 000142 000116 000114 000352 000222 *Oi<**** G oeOO05 000023 000021 177777 000400 $F$A~D= 000310 $F$BAO= 000401 $F$BLA= 000170 ****** G 000 001 0 ERRORS DETECTED: L:>EFAULT GLOBALS GEN~RATED: 0 OSKZ:PCTRLC,DSKZ:PCTRLC=SPMAC/ML,EQUATE,PCTRLC RGN-TIME: 12 2 .4 SECONDS RuN-TIME RATIO: 29/15=1.9 CORE USED: 14K (27 PAGES) PAGE 20-1 $F$CAS= 000150 $F$OEC:: 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $r=$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 SEQ 0191 $ISKO :: 000001 $ISKl :: 000001 $LOCTA:: 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000110 $NSK2 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050004 $TEMP = 000300 $TSKO = 050002 $TSKl = 050003 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$OST = 000000 $$ELOC= 000402 $$ERFL:: $$FLAG:: $$FROf\1:: $$LOC = $$LCCN= $$Rt:G = $$RETU= $$RTN1= $$RTN2= $$SRC = $$TGSV= $$TGS1:: $$TGS2= $$TO $$$TAG= 000000 000001 000000 000136R 000000 177777 000000 050000 050001 00·)000 000000 00,:)000 008000 000001 050000 000170R · r" AIN. MAC Y1 1 3 CA( ~ 052 ) 20 - S EP-7 8 EQU.HE.MAC 1';'-$cP-7816:13 1 7 : 36 TABLE OF CONTENTS 3 CGMMON EQUATE MODULE 575 PFAIL (COMMON DEFINITIONS AND REFERENCES) 57a' 000000 1 .PRIN~: ;SPMAC: VERSION 1.1 606 PFAIL (CODE) SEQ 0192 .MAIN. M~CY11 38A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 563 566 601 17:41 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT BADMEM ROUTINE ;SPMAC: VERSION 1.1 SEQ 0272 PFAIL (PROCESS POWER FAIL/POWER UP) PFA:L.MAC 22-AUG-78 08:29 MA~Y11 30A(1052) 2:-SEP-78 17:36 PAGE 19 COMMON EQUATE MODULE 508 509 .TITLE PFAIL (PROCESS POWER FAIL/POWER UP) .IDENT /VO.O/ 511) 511 ;++ ~3 12 513 514 515 S1G MODULE NAME: PFAIL FUNCTIONAL DESCRIPTION: THIS MODULE CONTAINS THE FOLLOWING TWO ROUTINES: 517 518 ;HANDLES POWER DOWN SEQUENCE. ;HANDLES POWER UP SEQUENCE. 1. PWRDOWN 2. PWRUP 519 52,) 321 522 523 524 525 526 527 :528 529 ON POWER FAIL, IF THE SYSTEM CLOCK IS AVAILABLE IT IS TURNED OFF, POWER-UP VECTOR IS SET UP, AND THE CPU HALTS. ON POWER UP, THE FOLLOWING IS DONE: 1. SET UP POWER-DOWN VECTOR. 2. REINITIALIZE STACKS (R5 AND R6). 3. INCREMENT POWER FAIL COUNT IN DTABLE. 4. INITIALIZE APARS IF REQUIRED. 5. T~RN KT ON IF IT WAS ON BEFORE POWER FAIL. 6. TURN SYSTEM CLOCK ON IF AVAILA9LE. 7. PRINT POWER FAIL MESSAGE. 8. JU~P TO BOXOO (DX.RSTRT). 530 531 532 533 534 533 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 55E: 5::'7 558 559 560 561 562 563 INPUTS: NONE If'l1PLICIT INPUTS: 1 • DT . STO 2. DT.CFO 3. DT.PFL ;STATUS WORD #0 ;CONFIGURATION WORD #0 ;POWER FAIL COUNT WORD OUTPUTS: NONE IMPLICIT OUTPUTS: 1. DT.STO 2. DT.PFL PATHOLOGICAL CONNECTIONS: 1. DTABLE ADDRESS SUBORDINATE ROUTINES CALL.ED: ;CLOCK ON ROUTINE 1. CLKON ;CLOCK OFF ROUTINE 2. CLKOFF ;OUTPUTS A MESSAGE 3. MSGDHOOK ;STUFfS THE KERNEL & USER MODE APARS 4. KTSET ;RESET RECOVERY ROUTINE 5. RSTRCY FUNCTIONAL SIDE EFFECTS: NONE SEQ 0193 PFAIL (PROCESS POWER FAIL/POWER UP) PFAIL.MAC 22-AUG-78 08:29 564 565 566 567 S63 569 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE 17:36 PAGE 19-1 SEQ 0.94 CALLING SEQUENCE: THE MODULES ARE ENTERED DIRECTLY AS A R~SULT OF POWER FAIL/ POWER UP. VERSION: 0.0 570 571 572 573 EDIT DATE BY REASON PFAIL (PROCESS PJWER FAIL/POWER UP) PFAIL.MAC 22-AUG-78 08:29 575 MACY11 30A(1052) 20-SEP-78 17:36 PAGE 19-2 PFAIL (COMMON DEFINITIONS AND REFERENCES) .SBTTL PFAIL (COMMON DEFINITIONS AND REFERENCES) 576 577 578 (1) 579 580 581 582 583 584 .MCAU.. STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 000000 1 000000 1 $LSTIN=1 $LSTTAG=1 000001 000001 ;**************** ; GLOBAL REFERENCES 585 .GLOBL PWRFL . GLOBl PWRDO\oJN .GLOB~ PWRUP .GLOBL RSTRCY .GLOB. KTSET .GLOBl CLKON .GLOBL CLKOFF .GLOBl MSGDHOOK .GLOBL DX.RSTRT .GLOB~ DTABLE 586 587 588 589 590 591 592 593 594 595 596 597 ;**************** 598 599 600 601 602 603 604 000000 1 OOOOOOG 0000021 050045 053517 000010 1 043040 044501 000016' 041517 052503 000024 1 042105 000045 051105 020114 051122 ;FOWER FAIL VECTOR - LOC. 24 ;PGWER FAIL ENTRY POINT ;POWER UP ENTRY POINT ;RESET RECOVERY ROUTINE ;STUFF APARS ;TURN SYSTEM CLOCK ON ;T~RN SYSTEM CLOCK OFF ;TYPE A MESSAGE ROUTINE ;JUMP TO BOXOO ;DATA TABLE ; LOCAL STORAGE , PF.EXT: #DX.RSTRT ;RESTART ROUTINE PF.MSG: .ASCIZ /%POWER FAIL OCCURRED%/ .EVEN SEQ 0195 PFAIL (PROCESS POW~R FAIL/POWER UP) PFAIL.MAC 22-AUG-78 08:29 (4) 620 (4 ) 621 (4) 622 (4 ) 623 (6) (9 ) 624 (3) (4 ) (3 ) (3 ) 625 (4 ) 626 (2 ) 627 17:36 PAGE 19-3 SEQ 0196 ;+ ; POWER DOWN ROUTINE 509 613 20-SEP-7S .SBTTL PFAIL (CODE) 60S G07 608 610 611 612 (2) 613 614 515 016 617 018 MACY11 30A(1052) PFAIL (CODE) 000030 1 000030 1 IN LINE <PWRDOWN:> PWRDOWN: ;+ ; SET RO TO DTABLE ADDRESS. SET UP POWER-UP VECTOR, THEN HALT. ; AND TURN OFF SYSTEM CLOCK IF AVAILABLE. , 000030 1 000030 1 012706 000034 1 0000341 012705 000040 1 000040 1 012700 000044 1 0000441 012767 000052 1 00OC52 1 032760 000060 1 001405 000062 1 000062' 010546 000064 1 010045 000066 1 004767 000072 1 012605 000074 1 0000741 0000741 0000741 000000 · - #SPVALUE LET R5 · - #R5VALUE MOV #SPVALUE,SP MCJV #R5VALUE,R5 · - #DTABLE LET PWRFL . - #PWRUP MOV #DTABLE,RO MOV #P'}}RUP, PWRFL BIT BEQ #CLKPRES,DT.CFO( 50000$ MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,CLKOFF (SP)+,R5 LET SP 002200 001740 LET RO OOOOOOG 000076 1 OOOOOOG IF #CLKPRES SETIN DT.CFO(RO) THEN 000001 000014 CALL CLKOFF IN <RO> OOOOOOG ENDIF 50000$: INLlNE <HALT> HALT PFAIl (PROCESS POWER FAIL/POWER UP) PFAIl.~AC 22-AUG-78 08:29 529 630 631 632 633 1334 (2) 635 635 537 633 639 640 641 642 ;+ ; SET UP POWER-DOWN VECTOR, INITIALIZE STACKS ; , seT RO TO DTABlE ADDRESS, AND INCREMENT ; POWER-FAIL COUNT WORD IN DTABlE. ;- lET PWRFL '- #PWRDOWN (4) 000116' 012700 000122' 000122' 005260 647 ( 6) 648 649 650 651 652 653 (6) (9) 654 (3) (4) (3) (3) 655 (3) (4) (3) (.3) 656 (4) 012767 (6) (9) 663 (3) MJV 000030' OOOOOOG #PWRDOWN,PWRFL INLINE <RESET> RESET 000005 LET SP .- #SPVALUE 012706 002200 LET R5 .- #R5VALUE 012705 001740 LET RO .- #DTABLE OOOOOOG LET DT.PFL(RO) MOV #SPVALUE,SP MOV #R5VALUE,R5 MOV #DTABLE,RO INC DT.PFL(RO) '- DT.PFL(RO) + #1 000062 ;+ ; IF KT PRESENT THEN MAP APRS AND RESTORE HARDWARE TO PRE-POWER FAIL STATUS 000126 1 000126' 000134' 000136' 000136' 000140' 000142' 000146' 000150' 000150' 000152 000154' COO 160' 000162' 000162" 1 IF HKTPRES SETIN DT.CFO(RO) THEN 032760 001412 000400 000014 CALL KTSET IN <RO> 010546 010045 004757 012605 C~Ll 010546 010045 004767 012605 BIT SEQ #KTPRES,DT.CFO(R 50001$ MOV PIlOV R5,-(SP) RO,-(R5) PC,KTSET (SP)+,R5 JSR MOV OOOOOOG RSTRCY IN <RO> ENDIF JSR MOV R5,-(SP) RO,-(R5) PC,RSTRCY (SP)+,R5 SIT SEQ 50002$ MOV RS,-(SP) r::8V MOV OOOOOOG 6 t;:.., -'I 658 659 660 661 66~ SEQ 0197 P'NRUP: 0001~6' (4 ) 645 PAGE 19-4 INLINE <PWRUP:> 000076' 000076' (4) (2 ) 644 17:36 ,' - 646 643 20-SEP-78 ;+ ; POWER UP ROUTINE 000076' 000076' (;00104' 000104' 000106' 000106' 000112' 000112' (4) MACV11 30A(1052) PFAIl (CODE) 50001$: ;+ ; IF SYSTEM CLOCK AVAILABLE, TURN IT ON ;- 000162' 000162' 032750 000170' 001405 000172' 000172' 010546 IF #CLKPRES SETIN DT.CFO(RO) THEN 000001 000014 CALL CLKON IN <RO> #CLKPRES,DT.CFO( PFAIL (PROCESS POWER FAIL/POWER UP) 22-AUG-78 08:29 PFAIL.MAC (4) (3) (3) G64 (4 ) 665 G6G 667 G6B 669 670 (4 ) 671 (4) ( 6) (9) 672 (4 ) 673 (4 ) ( 6) ( 9) 674 (6) 675 (4 ) (3 ) 676 (6 ) 677 (4) (3 ) 678 679 680 681 000174 1 010045 000176 1 004767 000202 1 012605 000204' 000204' (2 ) 692 (3 ) (7 ) (6 ) (5 ) (4 ) 17:36 PAGE 19-5 SEQ 0198 OOOOOOG MOV JSR MOV RO,-(R5) PC,CLKON (SP)+,R5 MOV II-D<10>,R2 TST SEQ R2 50004S MOV 11-1,R1 TST SEQ R1 50006$ DEC R1 SR 50005$ DEC R2 SR 50003$ CLR -(SP) MOV 111$,-(SP) ENDIF 50002$: ;+ ; DO A TIMING LOOP TO LET EVERYBODY SETTLE DOWN ;- C00204' 000204 1 000210 1 000210' C00210' 000212' 000214' C'00214' 000220' 000220' 000220' 000222' LET R:2 := 11-0<10> 012702 000012 WHILE R2 NE 110 DO 50003$: 005702 001410 LET R1 012701 := 11-1 177777 WHI LE R1 NE 110 DO 50005$: 005701 001402 LET R1 000224' 000224' 000226' 000226' 000230' 000230' 000230 1 000232 1 000232 1 000234' := R1 - 111 005301 ENDDO 000774 LET R2 . - R2 - 111 50006$: 005302 ENDDO 000766 50004$: ;+ ; NOW LOWER PROIRITY TO 0 , .- #0 LET -(SP) .- 111$ 68~ 683 (4 ) 684 (4 ) 685 (2 ) 686 687 658 689 690 691 20-SEP-78 MACY11 30A(1052) PFAIL (CODE) 000234 1 000234 1 005046 000236 1 000236 1 012746 000242' 000242' 000002 LET -(SP) 000244 1 INLINE <RTI> RTI ;+ ; PRINT THE POWER FAIL MESSAGE AND JUMP TO DX.RSTRT. ,'000244' 000244' 000244' 000244 1 000246' 000252' 000256' 000262 1 INLINE <1$:> CALL MSGDHOOK IN <RO,IIMSGPOP,IIPF.MSG,#3$> 010546 012745 012745 012745 010045 000276 1 000002 1 000002 1 $: MOV MDV MOV MOV MOV RS,-(SP) 113$,-(R5) IIPF.MSG,-(RS) IIMSGPOP,-(RS) RO,-(RS) PFAIL (PF;OCESS POWE::\ FAI :"/POV~ER UP) PFAIL.MAC 22-;\UG-'i8 08:29 (3 ) (3 ) 693 (2 ) 694 (2 ) 695 (2 ) 696 (2 ) 697 (2 ) 69a 699 000264' 000270' 000272' C00272' 000272' 000272' 000274' 000274' 000276' 000276' 000276' 000276' 004767 MACY11 30A(1052) PFAI L (CODE) 20-SEP-78 OOOOOOG 17:36 PAGE 19-6 SEQ 0199 JSR MOV 012605 PC,MSGDHOOK (SP)+,R5 INLINE <2$:> 2$: INLINE <NOP> NOP 000240 INLINE <BR 2$> BR 2$ 000776 INLINE <3$:> 3$: INLINE <JMP @PF.EXT> 000177 000001 JMP @PF.EXT 177476 . END PFAIL (PROCESS PJVJER FAr L/POi'JER UP) 22-AUG-78 08:29 PFAIL.MAC ACSR 000102 ACTBIT= OOL-OOO ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= COO010 ASTAT = 000104 AUTO 000010 AUTOST= C20000 !\':.JA S 000110 BITO 000001 000001 SITOO BITOl 000002 f3ITJ2 000004 BIT03 000010 BIT04 000020 BIT05 000040 000100 GIT06 E3IT07 000200 000400 alTOS BIT09 081000 BIT, 000002 BIT10 002000 004000 BIT 11 E3IT12 010000 BIT 13 020000 [3IT14 040000 100000 BIT15 00(004 3lT2 BIT3 000010 BIT4 000020 000040 BITS 000100 BIT6 8IT7 000200 8ITS 000400 001000 BlT9 BKDEF 000002 BK[,1OD OOOO?O BKr,10DE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CD\..I,DCT= 000144 CKTIM = 100000 CLKOFF= **>i'*** G CLKON = ****** G CLkPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR MACY ~1 30A(1052) Syrt.BOl TABLE 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT,o\8LE= ****** G DT.ADD= 000042 OT.AP = 000100 DT.APK= 000076 DT.8LS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 CT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT. PT A= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.wBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVIDl = 000014 DX.RST= ****** G ECCMEM= 000100 ECCSTA= 000010 20-SEP-78 ENBEOP= 010000 ENBNUL= 000001 ENDLST= oocooo EOPBIT= 000001 ERRTYP= 000103 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 1eoooo HRDCNT= 000044 HRDPAS= 000050 ICONT = 000035 ICOUNT= 0000 4 0 lDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 lNHRRE= 000400 000030 INIT INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPARS= 172352 KlPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= ~72312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSET = **,.*** G KTSTAT= OOGO~O KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 17:36 PAGE 20 SEQ 0200 MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDHO= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= I\1SGNUL= MSGPOP= MSGPRrJl= MSGRES= MSGSFT= MSGSKE= MSGSM8= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 = PDP70 = PF.EXT P F . MSG PRIO P RI 1 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 076600 040000 004000 002000 001000 000010 000011 000005 ****** G 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 02~O20 000010 002000 000100 000034 020000 004()00 010000 OOOOOOR 00OO02R 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 PS PSW PWRDOW PWRFL = P.<JRUP RAN~~UM= 177776 177776 000030RG ;;.<***** G 0000'76RG 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 000056 000060 031060 002000 RBUFEA= RBUFPA= RBUFSZ= R8UFVA= RJSERV= RD\'\HMI= RELERR= REU,10D= REL TIM= RESl RES2 RICHAR= RPTDAT= RSTRCY= ****"'* G RSTRT = 000112 R~BOUT= 000177 RUMJlOD= 100000 R5VALU= 001740 SAM 075464 SEADR = 000102 SBK:viOD= 000000 SBKSEL= 010000 SC.AOR= 000006 SC.ALC= 000014 SC.APC= 000016 sc. CK L= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOF;::AS= 000046 SPACE = 000040 SPOINT= 000032 SFVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATSI= 064757 ST AT1 = 000027 SUSPND= 000001 000062 SVRO SVRl 000064 5VR2 000066 PFAIL (PROCESS POWER FAIL/POWER UP) PFAIL.MAC 22-AUG-78 08:29 SVR3 000070 SVR'l 000072 SVR5 000074 SVR3 ooeC76 SYSCNT= 000052 SYSERR= 000100 HIIPIO = COOO02 TQO'iF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 1775C2 UIPDR2= 177604 UIPDR3= 177606 ABS. 000000 000302 UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= WBUFEA= WBUFPA,= WBUFRQ= IIJBUFSZ= \lJDFR WDTO WTINRE= WTlrJHM 1== XFLAG = XOFF XON $BGN LE= $ERFLG= $F$AND= MACY1'1 30A(1052) SYMBO~ TABLE 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 000352 000222 000005 000023 000021 177777 000400 000310 000 001 ERRORS DETECTED: 0 8EFAULT GLOBALS GENERATED: 0 DSKZ:PFAIL,DSKZ:PFAIL=SPMAC/ML,EQUATE,PFAIL RUN-TIME: 14 4 .4 SECONDS KUN-TII'v:E RATIO: 34/19=1.7 CORE USED: 14K (27 PAGES) 20-SEP-7E: $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 00015) $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF : 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 0003CO $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 17:36 PAGE 20-1 SEQ 0201 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $LOCTA= 17'1777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000120 $NSK1 = 000120 $SAVLE= 177777 $SSKO = 050004 $TAGLE= 177777 $TAGNU== 05,)007 $TEMP 000402 $TSKO 050003 $TSK1 = 05:l004 $TSK2 = 050005 $TSK3 = 050006 $$ARGC= 000000 $$BYTE= 000403 $$CASE= 000000 $$;)5T = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000340 $$FROM= 000000 $$LCC = 000222R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 000000 $$RTi\!2= 000000 $$SRC = 000000 $$TGSV= 00000) $pTGS1= 000000 $$TGS2= 000000 $$TO 000004 $$$TAG= 050000 000302R .MAIN. MACV11 3~A(1C52) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 560 563 604 17:36 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT PRRLOC ROUTINE ;SPMAC: VERSION 1.1 SEQ 0202 GDASNV BINARY TO DECIMAL-ASCII CONVERSION ROUTINE BDACNV.MAC 28-JUL-78 09:11 BDACNV ROUTINE 594 595 596 (2) 597 598 599 600 MACY11 30A(1052) 20-SEP-78 17:41 PAGE 20-1 SEQ 0282 .SBTTL BDACNV ROUTINE ROUTINE BDACNV <NUM,ADR> OC0012 1 000012 1 BDACNV: ;+ ; SAVE REGISTERS. 501 602 (3) 1303 60L! 605 606 '007 608 609 610 (4) 000012 1 000012 1 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV ADR(R5),RO MOV HBD.TEN,R1 MDV ADD RO,R4 #5,R4 eMP RO,R4 50003$ ;+ ; SET RO TO THE START OF THE STORAGE AREA ; OF THE RESULT. ;- 000016 1 000016 1 016500 LET RO := ADR(R5) 000002 611 6,2 613 614 615 516 617 (4) ;+ ; SET R1 TO THE ADDRESS OF THE POWERS OF TEN TABLE. 000022 1 000022 1 012701 LET R1 := #BD.TEN 000000 1 618 619 620 621 6:2 623 624 (4) (6) 625 626 627 628 629 630 631 632 633 634 635 636 637 638 ;+ ; SET R4 TO COUNT 5 CHARACTERS. 000026 1 000026 1 010004 000030 1 062704 LET R4 := RO + #5 000005 ;+ PERFORM THE CONVERSION. 1. GET A POWER OF TCN FRCM THE TABLE. 2. SUBTRACT THIS VALUE FROM THE NUMBER WE ARE CONVERTING AS MANY TIMES AS POSSIBLE, KEEPING A COUNT OF THE NO. OF TIMES WE SUBTRACTED. 3. CONVERT THIS COUNT TO ASCII AND STORE IT IN THE STORAGE TABLE. 4. GET THE NEXT POWER OF TEN AND REPEAT. (4) (6) (9) 000034' 000034 000034 1 020004 000036 1 103016 639 640 000040 1 WHILE RO LO R4 DO 1 5000:2$: 6HIS LET R3 .- #0 PRRLOC - PROCESS RELOCATICN PRRLOC.MAC 28-JUL-78 09:09 508 509 MACY11 30A(1052) 20-SEP-78 17:36 COMMON EQUATE MODULE PAGE 19 SEQ 0203 .TITLE PRRLOC - PROCESS RELOCATION .IDENT JVO.Oj 510 51 1 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 5~9 550 551 552 553 554 555 556 557 558 ;++ MODULE NAME: PRRLOC FUNCTIONAL DESCRIPTION CONTROLS THE RELOCATING OF THE RUNTIME EXERCISER FROM ITS CURRENT LOCATION IN MEMORY TO A NEW LOCATION. INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: DT.ADDR, DT.ERR, DT.STO, DT.SWR OUTPUTS: NONE OUTPUTS: DT.ADDR IMP~ICIT PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NEWBA RELOC MSGDHOOK BOAC SAVREG RESREG ;ESTABLISH NEW BASE ADDRESS ;RELOCATE CODE ;HOOK MSG TO PROPER OUTPUT DRIVER ;BINARY TO OCTAL ASCII CONVERSION ;SAVE REGISTERS ;RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: QUEUEING MECHANISMS ARE INACTIVE DURING RELOCATION PROCESSING. CALLING SEQUENCE: CALL PRRLOC IN <A,B> A=DATA TABLE ADDRESS B=NEW SASE OFFSET (IF SET TO #0, NEWBA WILL CALCULATE A NEW BASE ADDRESS.) VERSION: 0.0 EDIT BY DATE REASON PRRLOC - PROCESS RELOCATION PRRLOC.MAC 28-JUL-78 09:09 560 561 562 563 000000' ( 1) 000000 ' MACY11 30A(1052) 20-SEP-78 ~7:3a PAGE 19-1 COMMON DEFINITIONS AND REFERENCES SEQ 0204 .S8TTL COMMON DEFINITIONS AND REFERENCES 364 565 .MCALL STRUCT SHWCT .PRINT ;SPMAC: VERSION 1.1 $LSTTAG=1 $ LS TIN =1 OOOOOi 000001 566 367 568 569 ;**************** , 570 571 ; REFERENCED BY OTHER MODULES 572 573 .GLOBL. .GLOBL. 574 575 576 PRRLOC PR.RL1 577 ;**************** , 578 ; GLOBAL REFERENCES 579 580 .GLOBL. .GLOBt .GlOBL .GLOBL .GLOBL .GLOSL. 581 582 583 584 585 MSGDHOOK NEWBA RELOC BOAC SAVREG RESREG ;MODULE ENTRY POINT ;1ST RELOCATION FLAG ;HOOK MSG TO PROPER OUTPUT DRIVER ;ROUTINE TO FIND NEW BASE OFFS~T ;ROUTINE TO MO~E CODE ;BINARY TO OCTAL ASCII CONVERSION ;SAVE REGISTERS ;RESTORE REGISTERS 586 587 ;**************** , 588 ; LOCAL STORAGE 589 590 591 592 000000' 000000 593 000002' 000006' 000014' 000022' 000024' 000034' 000036' 000044' 000052' 000060' 00;)002 051045 05210' 020117 000010 OOOC4S 051045 594 595 596 597 598 599 600 601 602 05210~ 04110' 022504 000064' PR. RL1: . WORD 0 046105 042105 046105 047511 051117 041517 PR.TBL: .BLKW 2 PR.MSG: .ASCII /%RELOCATED TO / ; FIRST RELOCATImJ FLAG - PATHOLOGICA!..LY ; SET AT INITIALIZATION ;TABLE FOq BOAC ROUTINE ;RELOCATION M~SSAGE PR.NBR: ;STORAGE FOR ASCII BASE ADDRESS 052040 041517 020116 .BLKB 10 .ASCIZ /%/ PR.MS1: .ASCIZ /%RELOCATION ABORTED%/ 042524 000 • EIJ EN , ;**************** ;RELOCATION ABORTED MESSAGE PRRLOC - PROCESS RELOCATION 28-JUL-78 09:09 PRRLOC.MAC 604 605 606 601 (2) 608 603 610 1311 612 613 614 (3) 615 516 617 318 619 620 521 (4) 622 623 624 625 626 627 628 (4) 5~9 630 631 632 633 634 63S 63E.. 637 638 (4 ) (3 ) (6 ) (5 ) (4 ) (3 ) (3 ) (4 ) 639 (6 ) ( 9) 640 (4 ) 641 (4 ) 642 6~3 MACY11 30A(1052) 20-SE?-78 PRRLOC ROUTINE 17:36 PAGE 19-2 SEQ 0205 .SBTTL PRRLOC ROUTINE ROUTINE PRRLOC <TABL,BASE> 000064 ' 000064 ' PRRLOC: ;+ ; SAVE REGISTERS 000064 ' 000064 ' 004767 CALL SAVREG OOOOOOG JSR PC, St\VREG MOV TABL(R5),RO MOV DT.ADDR(RO),R3 ;+ ; SET RO TO START OF DATA TABLE 000070 ' 000070 ' 016500 LET RO := TABL(RS) 000000 ;+ ; GET THE CURRENT BASE ADDRESS OFFSET 000074 ' 000074 ' 016003 LET R3 := DT.ADDR(RO) 000042 ;+ ; CALL NEWBA TO GENERATE A NEW BASE OFFSET. (THIS MUST BE DONE, EVEN IF A NEW ; BASE WAS PASSED TO THIS MODULE, TO ASSURE THAT NE~BA IS PROPERLY ; INITIALIZED.) AFTER CALLING NEWBA, IF A NEW SASE ADDRESS WAS PASSED ; TO THE MODULE, USE IT INSTEAD OF THE ONE NEWBA CALCULATED. 000100' 000100 ' 000104 ' 000106 ' 000112 ' 000114' 000116' 000122 ' 000124' 000126' OJ0126' 000132' 000134 ' 000134' 000140' 000140' CALL NEWBA IN <RO,R3,PR.RL1> OUT <R4> 162705 1')10546 016745 010345 010045 004767 0126C5 012504 000002 005765 001402 000002 016504 00000.2 MOV MOV #1*2,R5 R5,-(SP) PR.RL1,-(R5) R3,-(R5) RO,-(R5) PC,NE'.I:BA (SP)+,R5 (R5)+,R4 TST SEQ BASE(R5) 50002$ MO\} BASE(R5),R4 SUB MOV MeV 177666 MOV MOV JSR OOOOOOG IF 8ASE(R5) NE #0 THEN LET R4 .- 8ASE(RS) ENDIF 50002$: PRRLOC - PROCESS RE~OCATION PRRLOC.MAC 28-JUL-78 09:09 644 645 646 647 643 000140' (3). 000140' 010546 (7 ) 000142' 016745 (6) 000146' 010445 (5 ) 000150' 010345 (4 ) 000152' 010045 (3 ) 000154' 004767 (3 ) 000160' 012605 649 650 551 552 MACY11 30A(1052) 20-SEP-78 PRRLOC ROUTINE (9) 670 (6) (9} 671 672 673 674 675 676 677 678 (4) (7) (7) (7) (7) (7) 000162' 000162' 032760 000170' 001401 000172' 000172' 010304 000174' 000174' PAGE 19-3 SEQ 0206 ;+ ; CALL THE ROUTINE WHICH WILL MOVE THE CODE CALL RELOC IN <RO,R3,R4,PR.RL1> MOV MOV JSR MOV R5,-(SP) PR.RL1,-(R5) R4,-(R5) R3,-(RS) RO,-(R5) PC,RELOC (SP)+,R5 BIT BEQ #RELERR,DT.ERR(R 50003$ MOV R3,R4 MOil MOV MOV 177632 OOOOOOG ;+ ; IF THERE WAS A RELOCATIO~ ERROR, THE EXERCISER WAS RETURNED ; TO ITS STARTING POINT, SO THE NEW BASE EQUALS THE OLD. 653 654 655 656 657 (6) (9) 65:3 (4) 659 (4) 660 661 662 663 664 665 666 667 668 669 (6) 17:36 IF #RELERR SETIN DT.ERR(RO) THEN 000020 000020 LET R4 0- R3 ENDIF 50003$: ;+ ; IF THE RELOCATION ERROR BIT IS NOT SET ; IN THE ERROR WORD OF THE DATA TABLE, WE HAD A SUCCESSFUL ; RELOCATION, SO FORM AND OUTPUT A MESSAGE, UNLE3S INHIBITTED BY THE ; SOFTWARE SWITCH REGISTER. OTHERWISE, OUTPUT AN ERROR MESSAGE. 000174' 000174' 000202' 000204' 000204' 000212' IF #RELERR NOTSETIN 032760 001061 000020 000020 032760 001054 001000 000056 IF #INHREL DT.ERR(RO) THEN NOTSETI~ BIT 8NE #RELERR,DT.ERR(R 50004$ BIT BNE #INHREL,DT.SWR(R 50005$ r.r.OV R4,Rl Rl R1 R1 Rl Rl DT.SWR(RO) THEN ;+ ; CONVERT THE NEW BASE OFFSET TO A PHYSICAL ADDRESS AND PUT IT ; IN THE PROPER FORMAT FOR BOAC TO USE. 000214' 000214' 010401 000216' 006301 000220' 006301 000222' 006301 000224' 006301 000226' 006301 LET Rl .- R4 SHIFT #+6 ASL ASL ASL ASL ASL PRRLOC - PROCESS RELOCATION 28-JUL-78 09:09 PRRLOC.MAC (7 ) 679 (6 ) (6 ) 680 681 G82 683 684 585 686 (6) (9) 687 (7 ) (7 ) 688 (6) 689 (4) (3 ) 690 ( 7) (7 ) 691 (6 ) 692 (4 ) 693 694 (3 ) (7 ) (G) ( 5) (4 ) (3 ) (3 ) 695 (3 ) (7 ) (6 ) (5 ) (4 ) (3 ) (3 ) 696 (2 ) 697 (2 ) 698 6 00 -' -' (2 ) 700 (4) 701 702 20-SEP-7B MACY11 30A(10:>2) PRRLOC ROUTINE 000230' 006301 000232' 000232 1 010402 000234 1 000302 17:36 LET R2 PAGE 19-4 SEQ 0207 . - SWAP R4 ASL R1 MOV SWAB R4,R2 R2 ;+ ; IF THE UNIBUS MAP IS ENABLED, SET UP FOR 22-BIT ADDRESS CALCULATION, ; OTHERWISE SET UP FOR 18-CIT CALCULATION. , 0- IF #MAPSTAT SETIN DT.STO(RO) THEN 1 000236 000236 1 000244' 000246 1 000246' 000250 1 000252' 000252 1 000256' 000256 1 000260 1 000260' 000260' 000262' 000264' 000264' 000270' 000270' 000270' 000270' 000272' 000276' 000300' 000302' 000304' 000310' 000312' 000312 000314" 000320' 000324' 000330' OOC332' 000336' 000340' 000340' 000342' 000342' 0003441 OC0344' 000344' 000344 1 032760 001405 000200 000010 LET R2 006202 006202 LET R2 042702 177400 ·- R2 SHIFT #-2 · - R2 CLR.BY #177400 BIT SEQ #MAPSTAT,DT.STO( 50006$ ASR ASR R2 R2 SIC #177400,R2 BR 50007$ ASL ASL R2 R2 BIC #177717,R2 MOV MJV r/!JV MOV MOV JSR MOV R5,-(SP) #PR.NBR,-(R5) R2,-(R5) R1,-(R5) RO,-(R5) PC,80AC (SP)+,R5 MOV M.JV MOV MOV R5,-(SP) #2$,-(R5) #PR.MSG,-(RS) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,RS ELSE 000404 LET R2 006302 006302 042702 LET R2 177717 · - R2 SHIFT #+2 50006$: · - R2 CLR.BY #177717 ENDIF 50007$: CALL BOAC IN <RO,R1,R2,#PR.NBR> 010546 012745 010245 010145 010045 004767 012605 010546 012745 012745 012745 010045 004767 012605 000024 1 OOOOOOG CALL MSGDHOOK IN <RO,#MSGPOP,#PR.MSG,#2$> OU0344' 000006 1 000002 Mev JSR OOOOOOG MOV INLINE< 1 $: NOP> 000240 1 $ : NOP INLINE< ER 1$> BR 1$ 000776 INLINE <2$:> 2$: ENDIF 50005$: ;+ F'RRLOC - PROCESS RELOCATION 28-JUL-78 09:09 PRRLOC.MAC 703 704 705 706 (4) (3) 707 708 (3 ) (7 ) (6) (5) (4 ) (3 ) (3) 709 710 {2) 711 (2 ) 712 (2 ) 713 714 (4) 715 716 717 718 719 720 721 (4) 722 723 724 725 726 727 728 ( 3) 729 730 731 (3 ) (3 ) MACY 11 20-SEP-78 PRRLOC ROUTINE 30A(10~)2) 17:36 PAGE 19-5 SEQ 0208 j OUTi)UT AN ERROR MESSAGE. , ELSE 000344' 000344' 000415 000346' 000346' 000346' 000350' 000354' 000360' 000364' 000366' 000372' BR 50010$ IV;OV R5,-(SP) #10$,-(R5) #PR.MS1,-(R5) #MSGPOP,-(R5) 50004$: CALL MSGDHOOK IN <RO,#MSGPOP,#PR.MS1,#10$> 010546 012745 012745 012745 010045 004767 012605 MOV MOV 000400' 000036' 000002 M::JV 1'v10V OOOOOOG 000374' 000374' 000240 000376' 000376' 000776 000400' 000400' INLINE<9$ : NOP> INLINE <BR 9$> INLINE <10$:> ENDIF 000400' 000400' RO,-(~5) JSR MOV PC,MSGDHOOK (SP)+,R5 9$: NOP BR 9$ 10$: 50010$: j+ ; CLEAR THE FIRST RELOCATION FLAG , 000400' 000400' 005067 LET PR.RLl 177374 . - #0 CLR PR. RL1 JSR PC,RESREG RTS PC ;+ ; RESTORE REGISTERS , 000404' 000404' CALL RESREG 004767 (:.2 ) 000410' 00041C' 000410' 000410' 000207 732 733 000001 OOOOOOG ENDRTN 50000$: 50001$: .END PRRLOC - PROCESS RELOCATION 28-JUL-78 09:09 PRRLOC.MAC ACSR 000102 ACTa1T= 004000 ADD~22= 001000 ADR 000006 I,\PTFER= 000004 APTPRE= 0:)0200 ASB 000106 ASSEMS= 000010 ASTH = 000104 AUTO 000010 AUT8ST= 020000 A:.>.JAS 000110 000002 BASE BITO 000001 BITOO 000001 BIT01 000002 [HT02 000004 BIT03 000010 BIT04 000020 OOOOt;O HIT05 000100 BIT06 BIT07 000200 SIT08 000400 OO~OOO BIT09 8IT1 000002 002000 BIT10 BIT11 004000 [3 IT 12 010000 020.)00 61T13 81114 040000 100000 BIT 15 000004 31T2 000010 JIT3 BIT4 000020 BIT5 000040 000100 BIT6 3IT7 000200 000400 3118 001000 BIT9 Bf{DEF 000002 00(1020 BKrliOD BKr,;ODE = 040000 I3KSLSH= 000134 BOAC ****** G CAPRES= 000004 CASTAT= 08C004 C8ERCT= 000146 CDWDCT= 000144 CKllNi = 100000 CLKPRE= 000001 CONFlG= 000056 CQOVF 000001 000015 CR 20-SEP-78 MACY11 30A( 10:>2) SYMBOL TABLE 17:36 ENDLST= EOPBIT= ERRTYP= EVNTBE= EVNTHD= EVNTKT= EVNTPE= EVNTRE= FATERR= HRDCNT= HRDPAS= ICONT = ICOUNT= lDNUM = IE INDPAR= INHDRP= lNHEPR= IiJHREL.= INHRRE= INlT INTR lOMOD lOMODP= IOMODR= lOMODX= JACK KIPARO= KIPAR1= K1PAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPDR1= KIPDR2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= 000000 000001 000106 000200 000200 000203 000202 000201 100000 000044 000050 000036 000040 000122 000100 000040 040000 020000 C01000 000400 000030 000120 100000 102000 1120CO 110000 035060 172340 172342 172344 172346 172350 172352 172354 172356 172300 172302 172304 172306 172310 1723i2 172314 172316 000040 000400 000020 040000 000012 000001 000200 076600 040000 004000 CSRA CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRTN= DIAGMC= DRGPf/l0= DSEVNT= DT.ADD= DT.AP = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ES1= DT.EVN-= DT.EXS= DT.FCH= DT.FCN= DT.HMX= DT.KBE= DT.KBP= DT.KSt:<= DT.KBU= DT.MLS= DT.Mil= DT.OFF= DT.PAS= DT.PC = DT.PFL= DT.PSW= DT.PTA= DT.RCS= DT.REL= DT.SCT= DT.SMX= DT.SP = DT.SSl= DT.STO= DT.ST1= DT.SWR= DT.SYP= DT.WBU= DT.WHL= DT.WLL= DVID1 = ECCMEM= ECCSTA= ENBEOP= ENBNUL= 000100 000102 000003 000017 000025 000011 000400 000000 100000 000014 000042 000100 000076 000034 000014 000016 000020 000044 cceooo 000060 000037 000036 000104 000024 000026 000022 000030 000032 000110 000070 000074 000002 000062 000004 000064 000102 000040 000066 000106 000006 000046 000010 000012 000056 000072 000050 000054 000052 000014 000100 000010 010000 000001 PAGE 20 SEQ 0209 MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDHO= MSGDRP= MSGECH::.: MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSrv1H= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NSKMOD= NCPUOP= NEIN'BA = NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASOH= PDPLSI= PL)P60 PDP70 P~IO PR 11 PRI4 PRI5 PRI6 PRI7 PRRLOC PR.MSG PR.MS1 PR.NBR PR.RL1 PR.TBL PRO PR4 PR5 002000 001000 000010 000011 000005 **~'*** G 000017 177777 000013 000004 000022 00 1)007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 OOJOOO 000012 000020 001000 000020 ****** G 000002 00)800 024020 00:)010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000064RG 00J006R 000C36R 0OOO24R OOOOOORG 000002R 000000 000200 000240 PR6 PR7 PS PSW 000300 000340 177776 RA~~JU:Yl= 000054 000130 000126 000132 000124 000101 000022 RBLFEA= R3UFPA= R6UFSZ= RBU FVA= RuS~RV= Rm"''-1M 1= RELERR= REUI"OD= RELJC = REL TIM= RESREG= RES1 RC:S2 R1CHAR= RPTDAT= RST~T = R:.JBOUT= ~77776 00002'J 020000 ****** G 010000 ****** G 000055 OOOOGO 031060 002000 000112 000177 RLNr~OD= 100000 R5VALU= 001740 S,:\iV1 075464 SAVREG= ****** G S8ADR = 000102 S8K~,10D= 000000 S8KSEL= 010000 SC.~DR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SEN;)LS= 177777 SO~CNT= 000042 SOFPAS:. 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATSl= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 priR LOC - PROCESS RELOCATION 28-JUL-78 09:09 PRR:"OC.MAC SVR2 SVR3 SVR4 SVR:5 SVR3 SYSCNT= SYSERR= TABl TMPIO = TQOVF = UI P,L\RO= UIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAF<7= UIPDRO= UIPDR1= UIPDR2= 000066 000070 000072 000074 000076 000052 000100 000000 000002 000002 177640 177642 177644 177646 177650 1 7~'652 177654 177656 177600 177602 177604 ABS. 000000 000412 20-SEP-78 MACY 11 30A(10!52) SYMBOL TABLE UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= ~'w'BUFEA= w'BUFPA= WBUFRQ= ',,",SUFSZ= vJDFR WDTO \'w'TINRE= WTWHMI= XFLAG = XOFF XON $BGNLE= $ERFLG= $F$AND= 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 000352 000222 000005 000023 000021 177777 000400 000310 000 001 ERRORS DETECTED: 0 DEFAL'LT GLOBALS GENERATED: 0 DSKZ:PRRLOC,DSKZ:PRRLOC=SPMAC/ML,EQUATE,PRRLOC RUN-TIME: 14 4 .4 SECONDS RUN-TIME RATIO: 37/20=1.8 CeRE USED: 14K (27 PAGES) 17:36 $F$BAD= 0C.C401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 PAGE 20-1 SEQ 0210 $IFLEV= 177777 $ISKO = 000001 $ISKl = 000001 $ISK2 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 SNESTL= 17'1777 000300 $NSKO $NSK1 = 000110 $NSK2 = 000110 $NSK3 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050011 $TEMP 000300 $TSKO = 050010 $TSK1 = 050005 $TSK2 = 050007 $$ARGC= 000004 $$BYTE= 000403 $$CASE= $$DST = $$ELOC= $$ERFL= $$FLAG= $$FROM= $$LOC = $$LOCN= $$REG = $:'!l!;ETU= $$RT:-J1= $'SRT:-J2= $1SRC = $;j)TGSV= $$TGS1= $$TGS2= $$TO $$$TAG= 000000 000000 000402 000000 000001 000000 000244R 000000 177777 000000 050000 050001 000000 000000 OOOOOJ 000000 000000 050000 000412R .MAIN. MACV11 30~(1052) 20-SEP-78 EOUATE.W,AC 13-SE?-78 16:13 3 561 565 605 780 838 904 17:37 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES onoooo' .PRINT ;SPMAC: VERSION 1.1 RELOC ROUTINE ROUTINE RL.UP - MOVE CODE UP ROUTINE RL.DN - MOVE CODE DOWN ROUTINE RL.GOBACK - RETURN CODE TO ORIGINAL LOCATiON SEQ 0211 BDVSRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS BDVSRV.MAC 28-JUL-78 09:11 BADVEC ROUTINE MACV11 30A(i052) 20-SEP-78 17:42 PAGE 19-4 SEQ 0291 .SBTTL 8ADVEC ROUTINE 632 633 634 635 636 637 538 539 ;+ EXECUTE EMT INSTRUCTION TO INVOKE ROUTINE TO DEiERMINE A BAD VECTOR ; THE EMT WILL ALSO PUSH THE PSW ONTO THE STACK SO IT ; CAN CE READ. BADVC1 IS FOR VECTORS LESS THAN 400, ; BADVEC IS FOR VECTORS 400 AND UP. , 640 641 ( 2) 642 (2 ) 643 (3 ) (3 ) (2 ) 644 645 (2 ) 646 (2 ) 647 (3 ) (3) (2) 648 649 650 651 000014 1 000014 1 000014 1 000014 1 104000 000016 1 000016 1 000016 1 000016 1 000002 000020 1 000020' 000020 1 000020 1 104000 000022 1 OC0022 1 000022 1 000022 1 000002 IROUTINE BADVCl BADVC1: INLINE <EMT> EMT ENORTI 50000$: 50001$: Ron IROUTINE BAOVEC BADVEC: INL.INE <EMT> EMT ENORTI 50000$: 50001$: RTI RELOC - RELOCATE CODE MACY11 30A(1052) 20-SEP-78 17:37 PAGE 19 RELOC.MAC 28-JUL-78 09:09 COMMON EQUATE MODULE 508 509 51J 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 53;) 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 549 549 550 551 552 553 554 555 556 557 558 559 SEQ 0212 .TITLE RELOC - RELOCATE CODE .IDEN'- JVO.Oj ;++ MODULE NAME: RELOC FUNCTIONAL DESCRIPTION: THIS ROUTINE RELOCATES THE MOVABLE PORTION OF THE RUNTIME EXERCISER FROM ITS CURRENT LOCATION IN MEMORY TO A NEW AREA. IF A BAD MEMORY LOCATION IS ENCOUNTERED DURING THE MOVE, THE EXERCISER IS RETURNED TO THE CURRENT LOCATION AND AN ERROR INDICATOR IS SET. INPUTS: DATA TABLE ADDRESS, OLD ADDRESS OFFSET, NEW ADDRESS OFFSET, FIRST RELOCATION FLAG IMPLICIT INPUTS: DT.ADDR,DT.ESIZ,Di.ERR OUTPUTS: NONE IMPLICIT OUTPUTS: DT.ERR PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG RESREG BADMEM GPA ;REPORT BAD MEMORY TRANSFER ;GET PHYSICAL ADDRESS FUNCTIONAL SIDE EFFECTS: CURRENT COpy OF CODE MAY BE OVERLAYED CALLING SEQUENCE: CALL RELOC IN <h,B,C,D> A=ADDRESS OF DATA TABLE B=OLD ADDRESS OFFSET C=NEW ADDRESS OFFSET D=FIRST RELOCATION FLAG VERSION: 0.0 EDIT ;-- BY DATE REASON PELOC - RELOCATE CODE MACY11 30A(1052) 20-SEP-78 17:37 PAGE 16-1 RELOC.MAC 28-JUL-78 09:09 CGi;liviOiJ CEFINITICmS AND REFERENCES 561 562 563 S64 565 ( 1) 563 567 563 559 j70 :371 572 573 574 575 576 577 578 579 580 581 582 583 584 585 585 587 588 589 590 591 592 593 594 59S 596 597 598 599 600 601 602 603 SEQ 0213 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 ; REFERENCED BY OTHER MODULES .GLOBt. RELOC ;MODULE ENTRY POINT ;**************** , ; GLOBAL REFERENCES , .GLOBt. GPA .GLOSt. SAVREG .GLOB!. RESREG .GLOBt. BADMEM ;ROUTINE TO GET A PHYSICAL ADDRESS ;REPORT BAD MEMORY TR~NSFER ;**************** 000000' 000000 ; LOCAL STORAGE , RL.REG: .WORD 0 000002' 000000 RL.PAF(: 000004' 000000 RL.ERRCHK: .WORD 0 RL.RVAL: .WORD COOO06' 000010' 000016' 000020' 000000 000003 000000 000000 R L. T 6 ~: .WORD 0 • B LKI.~ 3 RL.DBD: .WORD a RL.DG(): .WORD a VALUE NEEDED TO POINT ; TO TOP OF EXERCISER ;PAR VAL~~ NEEDED TO POINT ; TO TOP OF EXERCISER ;ERROR-SERVICI~G FLAG. WHEN SET, : SERVICE MOVE ERRORS. WHEN NOT SET, ; IGNORE ER~ORS. SET AT BE3INNING ; OF ROUTINE, CLEARED AFTER 1ST ERROR ;TEMPORA~Y STOQAGE FO~ RL.DN SUBROUTINE ;STORAGE FOR GPA ROUTINE ;BAD DATA OF FAILING LOCATION ;GOOD DATA OF FAILING LOCATION ;REGISTE~ a RELOC - RELOCATE CODE MACY11 30A(10S2) 20-SEP-78 17:37 RELOC.MAC 28-JUL-78 09:09 RELOC ROUTINE 605 606 607 603 G09 (2) 1310 611 612 613 614 615 616 (3) 617 613 619 620 621 622 623 (~) 624 625 626 627 628 629 630 (2) 631 (2) 632 (2) 633 634 (2) 635 636 637 638 639 (6) (9) 640 641 642 643 644 645 646 647 648 649 (4) 650 PAGE 19-2 SEQ 0214 .SBTTL RELOC ROUTINE ROUTINE RELOC <TABL,OLDPAR,NEWPAR,RL1> 000022' 000022' RELOC: ;+ ; SAVE REGISTERS 000022' 000022' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV TABL(R5),RO MOV #PRI7,-(SP) MOV #10$,-(SP) ;+ ; SET RO TO THE START OF THE DATA TABLE ;- 000026' 000026' 016500 LET RO := TABL(RS) 000000 ;+ ; RAISE THE PROCESSOR'S PRIORITY TO 7. 000032' 000032' 000036' 000036' 000042' 000042' PUSH #PRI7 012746 000340 012746 000044' PUSH ~I 10$ INLINE <RTI> RTI 000002 INLINE <10$:> 000044' 000044' 10$: ;+ ; IS THiS THE FIRST RELOCATION? 000044' 000044' 026527 000052' 001031 IF RL1 (R5) EQ #1 THEN 000006 000001 CMP BNE RL1 (R5) ,#1 50002$ ;+ ; ; ; ; 000054' 000054' 016003 000060 1 YES. FIND THE REGISTER ~ND PAR VALUES USED AS OFFSETS TO POINT TO THE TOP OF THE EXERCISER. THE REGISTER VALUE (RL.REG) IS BITS 0-12 OF THE EXERCISER SIZE (DT.ESIZ). THE PAR VALUE (RL.PAR) IS 200 MULTIPLIED BY ONE LESS THAN THE VALUE IN BITS 13-15 OF DT.ESIZ. LET R3 := DT.ESIZ(RO) MOV 000044 LET RL.REG := R3 CLR.BY #160000 DT.ESIZ(RO),R3 - MACY11 30A(1052) 20-SEP-78 17:37 RELOCATE CODE RElOC RELOC ROUTINE 28-JUl-78 09:09 RElOC.MAC (4 ) ( 6) 651 652 (6 ) 653 (7 ) (7 ) (7 ) (7 ) (7 ) 654 (6 ) 655 (4 ) 656 (6 ) 557 (4 ) (6) (9) 658 (6 ) 659 ( 6) 660 (4 ) (3 ) 661 (4 ) 662 663 664 665 666 667 668 (4 ) 669 670 671 672 673 674 675 (6 ) (9 ) 676 677 678 679 6ec 681 682 683 684 000060' 010367 000064' 042767 000072' OOJ072' 000074' 000074' 000076' 000100' 000102' 000104' 000106' e00106' 000112 ' 000112' C001 16' 000116' 000120' 000120' 000120' 000122' 000124' 000124' 000132' 000132' 000134' 000134' 000136' 000136' 000136' 177714 160000 LET R3 ·- SWAP R3 LET R3 .- R3 SHIFT #-5 LET R3 · - R3 ClR.8Y #177770 006203 006203 006203 006203 006203 177770 LET RL.PAR 005067 SEQ 0215 177706 000303 042703 PAGE 19-3 177664 LET R3 005303 "- MOV 8IC R3,RL.REG #160000,RL.REG SWAB. R3 ASR ASR ASR ASR ASR R3 R3 R3 R3 R3 BIC #177770,R3 ClR RL. PAR DEC R3 TST BlE R3 50004$ ADD #200,RL.PAR DEC R3 BR 50003$ MOV #1,RL.ERRCHK CMP BlOS NEWPAR(R5),OLDPA 50005$ #0 · - R3 - #1 WHILE R3 GT #0 DO 500035: 005703 003405 062767 LET RL. PAR 000200 177650 LET R3 " . - RL. PAR + #200 - R3 - #1 005303 ENDDO 000771 500045: ENDIF 50002$: ;+ ; SET THE ERROR-SERVICING FLAG , 000136' 000136' 012767 LET Rl.ERRCHK 000001 .- #1 177640 ;+ ; ARE WE MOVING UP OR DOWN? , 000144' 000144' 026565 000152' 101427 IF NE!AlPAR (R5) HI OLDPAR(R5) THEN 000004 000002 ;+ ; MOVING UP , ;+ ; SET THE OLD ADDRESS POINTER TO THE TOP ADDRESS OF THE OLD AREA+2 20-SEP-78 17:37 MACY11 30A(10S2) RELOC - RELOCATE CODE RELOC ROUT!NE ~a-uUL-78 09:09 RELOC.MAC 685 686 687 (4) (6) 688 689 (4) (6) PAGE 18-4 SEQ 0216 , LET R1 000154 1 0001S4 1 016701 000160 1 062701 177620 020002 000164 1 000164 1 016537 000172 1 066737 000002 177604 · - RL.REG + #20002 LET @ltKIPAR1 : = OLCPAR(RS) + RL.PAR 172342 172342 MOV ADD P-L.REG,R1 #20002,R1 MOV ADD OLDPAR(RS),@ltKIP RL. PAR,@#KIPAR1 69,) 591 692 693 694 693 693 (4) (6 ) 697 (4 ) (6 ) 693 (3) 699 700 701 (4) (3 ) 702 703 704 705 706 707 708 709 710 711 712 (4 ) 713 (4 ) 714 715 716 717 718 719 720 (4 ) 721 (4) 722 (3) 723 (4) ;+ ; SET THE NEW ADDRESS POINTER TO THE TOP ADDRESS OF THE NEW AREA+2 ;- 000200 1 C00200 1 000204 1 OQ0210' 000210' (;00216' 000224' 000224' LET R2 016702 062702 177574 040002 0~6537 066737 000004 177560 004767 000146 · - RL.REG + #40002 LET @A'KIPAR2 · - NEWPAR(R5) + RL.PAR 172344 172344 CALL RL.UP ELSE 000230' 000230' 000414 000232 1 MOV ADD RL.REG,R2 #40002,R2 MOV ADD NEWPAR(R5),@IIKIP RL.PAR,@f.KIPAR2 J5R PC,RL.UP BR 50006$ MOV #20000,R1 MOV OLDPAR(RS),@#KIP MOV #40000,R2 MOV NEWPAR(R5),@l#KIP JSR PC,RL.DN SOO05$: ;+ ; MOVING DOWN , ;+ ; , 000232 1 000232' 012701 000236 1 000236 1 016537 SET THE OLD ADDRESS POINTER TO THE BOTTOfv1 OF THE OLD AREA · - #20000 LET @ltKIPAR1 · - OLDPAR(R5) LET R1 020000 000002 172342 ;+ ; SET THE NEW ADDRESS POINTER TO THE BOTTOM OF THE NEW AREA , 000244 1 000244 1 012702 000250 1 000250 1 016537 000256 1 000256 1 004767 000262 1 000262 1 LET R2 040000 · - #40000 LET @#KIPAR2 000004 · - NE\'JPAR (R5) 172344 CALL RL.DN 000224 ENDIF SOO06$: RELOC - RELOCATE CODE MACY11 30A(1052) 20-SEP-78 17:37 RELOC.MAC 28-JUL-78 09:09 RELOC ROUTINE 724 725 726 727 728 729 730 731 732 733 (4 ) 734 (4 ) 735 (4 ) 736 (3 ) 737 (6 ) 736 (4 ) 739 (6 ) 740 {3 ) (6) 741 742 743 744 745 740 747 (4 ) 748 749 750 751 752 753 754 (2) 755 (2) 756 (2) 757 758 (2) 759 760 PAGE 19-5 SEQ 0217 ;+ ; NOW RELOAD THE MEMORY MANAGEMENT PARIS SO THE EXERCISER PARO IS NOT CHANGED SINCE IT POINTS ; CALL RUN OUT OF THE NEW AREA. , TO THE LOWEST 4K OF THE EXERCISER, WHICH ALWAYS STAYS IN LOWEST MEMORY. , 000262 1 000262 1 00026G I 000266 1 000272 1 000272 1 000276' 000276' 000276 1 000276 1 000300' 000300 1 COO302' 000302' 000306 1 000306' 000310 1 012701 016502 LET R·I · - #KIPAR1 LET ·- NEWPAR(R5) 172342 R:~ 000004 LET R:3 012703 000006 · - #6 NKIPAR1,R1 MOV NEWPAR (R5) ,R2 MOV N6,R3 DEC R3 MOV R2, (R1)+ A:lD #200,R2 TST BNE R3 50007$ MOV NEWPAR(R5),DT.AD MOV NPRIO,-(SP) MOV #20$,-(SP) REPEA or LET R3 005303 . - R3 - #1 LET (R 1 ) + 010221 LET R2 062702 MOV '- 50007$: R2 . - R2 + N200 000200 UNTIL R3 EO #0 005703 001372 ;+ ; UPDATE THE CURRENT BASE ADDRESS. , 000312' 000312 1 016560 LET DT.ADDR(RO) 000004 := NEWPAR(R5) 000042 ;+ ; LOWER THE PROCESSORIS PRIORITY. 000320' 000320' 012746 000324' 000324' 012746 000330 1 000330 1 000002 000332 1 000332 1 PUSH #PRIO 000000 PUSH #20$ 000332 1 INUNE <RTI> RTI INLINI~ <20$:> 20$: 76~ ;+ 762 763 76 ... 765 ; IF THE RELOCATION WAS UNSUCCESSFUL eECAUSE OF A BAD MEMORY ; LOCATION, OUTPUT A MESSAGE INDICATING THAT LOCATION. MACY 11 30A(1052) 20-SEP-78 17:37 RELOC - RELOCATE CODE RELOC ROUTINE 28-JUL-78 09:09 RELOC.MAC 766 (6) (9 ) 767 (3) (7 ) (6) (5) (4 ) (3 ) (3 ) 763 (4) 769 770 771 772 7"7I'" 774 (3 ) 775 776 ( 3) (3) ( 2) 777 778 000332' 000332' 000340' 000342' 000342' 000344' 000350' 000354' 000360' 000362' 000366' 000370' 000370' PAGE 19-6 SEQ 0218 IF #RELERR SETIN DT.ERR(RO) THEN 032760 001413 010546 016745 016745 012745 010045 004767 012605 000020 000020 CALL SADMEM IN <RO,#RL.TS1+2,RL.DBD,RL.DGD> 177450 177442 000012' OOOOOOG ENDIF BIT BEQ #RELERR,DT.ERR(R 50010$ MOV MOV MOV MOV MOV JSR MOV R5,-(SP) RL.DGD,-(R5) RL.DBD,-(R5) #RL. TB1+2,-(R5) RO,-(R5) PC,BADMEM (SP)+,R5 JSR PC,RESREG RTS PC 50010$: ;+ ; RESTORE REGISTERS AND RETURN , 000370' 000370' 004767 000374' 000374' 000374' 000374' 000207 CALL FlESREG OOOOOOG ENDRTN 50000$: 50001$: RELOC - RELOCATE CODE MACY11 30A(1052) 20-SEP-78 17:37 PAGE 19-7 RELOC.MAC 28-JJL-78 09:09 ROUTINE RL.UP - MOVE CODE UP 780 781 782 783 784 785 786 787 788 789 (2) 79':) 791 792 (4) (6) (9) 793 (4) (6) (9) 794 795 796 797 798 799 800 (4) 801 .SBTTL SEQ 0219 ROUTINE RL.UP - MOVE CODE UP ;+ THIS SUBROUTINE MOVES CODE TO AN AREA HIGHER IN MEMORY THAN THE CURRENT ; AREA. THE MOVE BEGINS WITH THE HIGHEST ADDRESS TO BE RELOCATED AND WORKS ; DOWNWARD TO THE LOWEST ADDRESS. EACH TIME THE PAR'S ARE ADJUSTED TO THE ; NEXT LOWEST 4K 'AREA, THE REGISTERS ARE SET TO THE TOP OF THE 4K AREA. 000376' 000376' ROUT rr~E R L. UP 000376' 000376' 000376' 023765 C00404' 103437 C00406' 000406' 000406' 020127 000412' 003421 WHILE @#KIPAR1 HIS OLDPAR(R5) DO RL. UP: 50002$: 172342 000002 CNlP BlO @#KIPAR1,OlDPAR( 50003$ CMP BlE R1 ,#20000 50005$ MOV -(R1),-(R2) WHILE R1 GT #20000 DO 50004$: 020000 ;+ ; DECREMENT THE POINTERS AND MOVE A ~ORD 000414' 000414' LET -(R2) := -(R1) 014142 ao~ 803 804 805 806 807 808 809 810 811 812 (6 ) ( 9) 813 (6 ) (9 ) 814 (3 ) 815 (6 ) 8i6 (6 ) 817 (3 ) 818 (4 ) ;+ COMPARE THE CONTENTS OF THE OLD AND NEW ADDRESSES. IF THEY MATCH, KEEP GOING. IF THEY DON'T MATCH, THEN SEE IF THE ERROR-SERVICING FLAG IS SET. IT IS, CALL THE ERROR ROUTINE AND THEN MOVE THE CODE BACK TO WHERE IT WAS AND RETURN TO THE CALLER. IF THE ERROR-SERVICING FLAG IS NOT SET, THEN WE HAVE ALREADY DETECTED AN ERROR AND DO NOT WISH TO CHECK FOR ANY MORE, SO JUST CONTINUE MOVING CODE. IF , 000415' 000416' 000420' 000422' 000422' 000430' 000432' 000432' 000436' 000436' 000442' 000442' 000446' 000446' 00OLl52' 000452' IF ( R 1 ) NE (R2) THEN 021112 001415 CMP SEQ (R1),(R2) 50006$ CMP SNE RL.ERRCHK,#1 50007$ IF RL.ERRCHK EQ #1 THEN 026727 00'011 177356 004767 000210 000001 CALL RL.GOBACK 062701 062702 . - R1 + #2 JSR PC,RL.G08ACK LET R1 .- R2 + #2 ADD #2,R1 LET R2 ADD #2,R2 JSR PC,RL.DN BR 50000$ 000002 000002 CALL RL.DN 004767 000034 RETURN 000414 RELOC - RELOCATE CODE MACY11 30A(1052) 20-SEP-78 17:37 PAGE 19-8 RELOC.MAC 28-JUL-78 09:09 ROUTINE RL.UP - MOVE COD~ UP 319 (4) 820 (4) 821 (4) (3) 322 823 824 825 825 827 823 (4) 829 (4) 830 (6) 831 (6) 832 (4) (3) 833 (3) (3) (2) 834 835 836 SEQ 0220 ENDIF 000454' 000454' 000454' 000454' 000454' 000454' 000754 000456' 50007$: END!F 50006$: ENDDO BR 50004$ MLlV #40000,R1 MOV #60000,R2 SUB #200,@#KIPAR1 SUB #200,@#KIPAR2 BR 50002$ RTS PC 50005$: ;+ ; POSITION THE POINTERS TO THE TOP OF THE NEXT LOWER 4K PIECE. C00456' 000456' 012701 000462' 000462' 012702 000466' 000466' 162737 C00474' 000474' 162737 000502' 000502' 000735 000504' 000504' 000504' 000504' 000504' 000207 LET R1 . - #40000 040000 LET R2 .- #60000 060000 LET @#KIPAR1 000200 . - @#,KIPAR1 - #200 172342 LET @#KIPAR2 '- @#KIPAR2 - #200 000200 172344 ENDDO 50003$: ENDRTN 50000$: 50001$: RELOC - RELOCATE CODE MACY11 30A(1052) 20-SEP-78 17:37 PAGE 19-9 RELOC.MAC 28-JUL-78 09:09 ROUTINE RL.DN - MOVE CODE DOWN 838 839 840 .S8TTL ROUTINE RL.DN - MOVE CODE DOWN ;+ THIS SUBROUTINE MOVES CODE TO AN AREA LOWER IN MEMORY THAN THE CURRENT AREA. THE MOVE 8EGINS WITH THE LOWEST ADDRESS TO BE RELOCATED ANQ WORKS UPWARD TO THE HIGHEST ADDRESS. EACH TIME THE PAR'S ARE ADJUSTED TO POINT TO THE NEXT HIGHER 4K AREA OF MEMORY, THE REGISTERS ARE SET TO POINT TO THE BOTTOM OF THE 4K AREA. AND ARE INCREMENTED UNTIL THEY POINT TO THE TOP ADDRESS OF THAT 4K AREA. WHEN THE HIGHEST 4K SEGMENT OF THE EXERCISER IS REACHED, HOWEVER, THE REGISTERS MUST BE INCREMENTED ONLY TO THE HIGHEST EXERCISER ADDRESS AND NOT TO THE TOP OF THE 4K AREA. 841 342 843 844 845 846 847 348 849 850 351 852 (2) 853 8::34 855 (4) (6) 856 (4) (6) (9) 857 (6) (9) 856 (4) 859 (4) (3) 860 (4) (6) 86' (4) 862 (4) (6) (9) 863 SEQ 0221 ROUTINE RL.DN 000506' 000506' RL.DN: G0050S' (100506' 016503 000512' 066703 000516' 000516' 000516' 023703 000522' 101050 000524' 000524 1 023703 000530 1 103004 000532 1 0005321 012767 0)0540 1 0)0540 1 000406 000542 1 000542' 000542 1 016767 000550' 062767 000556 I 000556' 000556 1 000556' 000556' 020167 000562' 101015 LET R3 := OLDPAR(R5) + RL.PAR 000002 177264 WHILE @NKIPAR1 MOV ADD OLDPAR(R5),R3 RL.PAR,R3 CMP BHI @l#KIPAR1,R3 50003$ CMP BHIS @#KIPAR1 ,R3 50004$ MOV #37776,RL.RVAL BR 50005$ MOV ADD RL.REG,RL.RVAL #20000,RL.RVAL CM? BHI R1,RL.RVAL 50007$ MOV (R1),(R2) LOS R3 DO 50002$: 172342 IF @#KIPAR1 LO R3 THEN 172342 LET RL.RVAL := #37776 037776 177246 ELSE LET RL.RVAL := RL.REG + #20000 177232 020000 50004$: 177236 177230 ENDIF 50005$: ~HIL~ R1 LOS RL.RVML DO 50006$: 177224 86Ll 865 866 867 868 869 (4) 870 871 872 873 874 875 MOVE A WORD 000564' 000564' LET (R2) 011112 .- (R1) ;+ COMPARE THE CONTENTS OF THE OLD AND NEW ADDRESSES AND THEN INCREMENT ; THE POINTERS. IF THE CONTENTS MATCH, KEEP GCING. IF THEY DONIT MATCH, ; SEE IF THE ERROR-SERVICING FLAG IS SET. IF IT IS, RELOC - RELOCATE CODE MACY'1 30A(1052) 20-SEP-78 17:37 PAGE 19-10 RElOC.MAC 28-JUL-78 09:09 ROUTINE RL.DN - MOVE CODE DOWN ; ; ; ; 876 877 878 879 880 :381 882 (6) (9) 883 (6) (9) 884 (3) 885 (3 ) 886 (4) 887 (4) 88B (4) 889 (4) (3) 890 891 892 893 894 895 896 (4) 897 (4) 898 (6) 899 (6) 900 (4) (3) 901 (3) (3) (2) 902 000566 1 000566' 022122 000570' 001411 000572' 000572 1 026727 000600' 001005 000602' 000602' 004767 000606 1 0 0 0606 1 00 476 7 000612 1 00D612' 000414 0006141 C00614' 0006141 000514 1 0006141 000614 1 000760 000616 1 CALL THE ERROR ROUTINE, THEN MOVE THE CODE BACK TO WHERE IT WAS AND RETURN TO THE CALLER. IF THE ERROR-SERVICING FLAG IS NOT SET, THEN WE HAVE ALREADY ENCOUNTERED AN ERROR AND DO NOT WISH TO CHECK FOR ANY MORE, SO JUST CONTINUE MOVING CODE. IF (R1)+ NE (R2)+ THEN CIVlP SEQ IF RL.ERRCHK EO #1 177206 (R1 )+, (R2)+ 50010$ THE~ SNE RL.ERRCHK,#1 50011$ JSR PC,RL.GOBACK JSR PC,RL.UP BR 50000$ SR 50006$ MOV #20000,R1 MOV #40000,R2 ADD #200,@l#KIPAR1 ADD #200,@l#KIPAR2 BR 50002$ RTS PC CMP 000001 CALL RL.GOBACK 000040 CALL RL.UP 1 77564 RETURN ENDIF 50011$: ENDIF 50010$: ENDDO 50007$: + 000616 1 000616 1 012701 000622 1 000622' 012702 000626 1 000626' 062737 0006341 000634' 06L737 000642' 0006421 000725 000644' 000644' 000644 1 0006441 000644' 000207 SEQ 0222 POSITION THE POINTERS TO THE BOTTOM OF THE NEXT 4K SEGMENT. LET R1 . - #20000 020000 LET R2 .- #40000 040000 LET @#KIPAR1 000200 172342 000200 172344 '- @#KIPAR1 + #200 LET @#KIPAR2 '- @#KIPAR2 + #200 ENDDO 50003$: ENDRTN 50000$: 50001$: RELOC - RELOCATE CODE MACY11 30A(10S2) 20-SEP-78 17:37 RELOC.MAC 28-JUL-78 09:09 ROUTINE RL.GOBACK 904 905 90G 907 908 909 910 91 1 912 913 914 915 916 917 918 919 920 921 922 923 (2 ) 924 925 926 (4 ) 927 (4 ) 928 (4 ) 929 (3) (5 ) (4 ) (3 ) ( 3) 930 931 (4 ) 932 (6 ) 933 934 935 (4 ) 936 (4 ) 937 (4 ) 938 939 (4 ) 9·'10 (4 ) 941 (4 ) 942 .SBTTL PAGE 19-11 RETURN CODE TO ORIGINAL LOCATION ROUTINE RL.GOSACK - SEQ 0223 RETURN CODE TO ORIGINAL LOCATION ;+ THIS SUBROUTINE IS CALLED UPON THE DETECTION OF A RELOCATION ERROR. IT PERFORMS THE FOLLOWING FUNCTIONS: (1) SAVES THE ADDRESS OF THE FAILING LOCATION, ALONG WITH ITS ACTUAL AND SHOULD-BE CONTENTS. (2) CLEARS THE ERROR-SERVICING FLAG. (3) SETS THE RELOCATION ERROR BIT OF THE ERROR WORD IN THE DATA TABLE. (4) REVERSES THE POINTERS. I.E., MOVES THE CONTENTS OF THE OLD ADDRESS POINTER INTO T~E NEW ADC~ESS POINTER, AND VICE VERSA, SO WE CAN MOVE THE CODE BACK. (5) REVERSES THE VALUES IN OLDPAR AND NEWPAR. THIS ALSO IS NECESSARY FOR MOVING THE CODE BACK. , 000646 1 000646 1 000646 1 000646 1 010267 000652 1 000652 1 011267 000656 1 000656' 011167 000562' 000662' 010546 COO(364 ' 012745 000670' 010045 000672' 004767 (,00676 ' 012605 000700 " C00700' 005067 000704' 000704' 052760 C00712' 000712' 013704 000716 1 000716' 013737 000724' 000724 1 010437 000730' 000730 1 016504 000734' 000734 1 016555 0007421 000742' 010455 000746 1 ROUTINE RL.GOBACK RL.GOBACK: LET RL. TB1 ·- R2 LET RL.DBD · - (R2) LET R L. DGD · - (R 1 ) 177136 177140 177136 CALL GPA IN <RO,#RL.TB1> 000010 1 OOOOOOG LET RL.ERRCHK . - #0 LET DT.ERR(RO) · - DT.ERR(RO) SET.BY tlRELERR 177100 000020 000020 LET R4 . - @#KIPAR1 172342 172344 LET @#KIPAR1 . - @#KIPAR2 LET @ltKIPAR2 . - R4 172342 172344 LET R4 000004 . - NEWPAR(R5) · - OLDPAR(R5) LET OLDPAR(R5) · - R4 LET NEWPAR(R5) 000002 000004 000002 ENDRTN MOV R2,RL.TB1 MOV (R2),RL.DBD MLJV (R1),RL.DGD MOV MOV MOV JSR MOV R5,-(SP) #RL.T31,-(R5) RO,-(R5) PC,GPA (SP)+,R5 CLR RL.ERRCHK BIS #RELERR,DT.ERR(R MOV @#KIPAR1,R4 MOV @#KIPAR2,@#KIPAR rllOv R4,@#KIPAR2 MOV NEWPAR(R5),R4 rkJV OLDPAR(R5),NEWPA MOV R4,OLDPAR(RS) RELOC - RELOCATE CODE MACY11 30A(1052) 20-SEP-78 17:37 RELOC.MAC 28-JUL-78 09:09 ROUTINE RL.GOBACK (3) (3) (2) 943 000746' 000746' 000746' 000207 000001 PAGE 19-12 RETURN CODE TO ORIGINAL LOCATION SEQ 0224 50000$: 50001$: RTS .END PC 17:37 20-SEP-78 MACY 11 30A(1052) RELOC - RELOCATE CODE SYMBOL TABLE 28-JUL-78 09:09 RE LOC .!'viAC ACSR 000102 ACTBIT= 004000 ADD~22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 I\SB 000106 ASS~MB= 000010 ASTAT = 000104 AUTJ 000010 AUTOST= 020000 000110 AWAS BAD:',IlEM= ****** G eITa 000001 8ITOO 000001 GITOl 000002 8IT02 000004 BIT03 000010 000020 8IT04 BIT05 000040 BIT06 000100 GIT07 000200 GIT08 000400 BIT09 001000 000002 1:3 IT 1 8IT10 002000 13IT11 004000 BIT 12 010000 020000 BIT 13 BIT 14 040000 100000 GIT15 000004 BIT2 000010 3IT3 BIT4 000020 000040 SIT5 000100 BIT6 BIT7 000200 000400 E3 IT 8 B1T9 001000 BKDEF 000002 BKIV:OD 000020 BKlV,ODE = C40000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CD'v.;DCT = 000144 Cr01M = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 CR 000015 CSRA 000100 CSRC CTRLC CTRLO CTRLU OCEVNT= DEFRTN= DIAGMC= DROPMO= DSEVNT= DT. ADD= DT.AP = DT.APK: DT.BLS= D1.CFO= D1.CF1= DT.ERR= DT.ESI= DT.EVN= DT.EXS= DT.FCH= DT.FCN= DT.HMX= DT.K6E= DT.KBP= DT.KBR= DT.KBU= DT.MLS= DT.MTl= DT.OFF= DT.PAS= DT.PC = DT.PFL= DT.PSW= DT.PTA= DT.RCS= DT.REL= DT.SCT= DT.SMX= D1. SP = DT.SS!= D1.STO= O1.ST1= DT . SI\lR= DT.SYP= DT.WBU= DT.WHL= DT.WLL= DVID1 = ECCMEM= ECCSTA= ENBEOP= ENBNUL= ENDLST= 000102 000003 000017 000025 000011 000400 000000 100000 000014 000042 000100 000076 000034 000014 000016 000020 000044 000000 000060 000037 000036 000104 000024 OC0026 000022 000030 000032 000110 000070 000074 000002 000062 000004 000064 000102 000040 000066 000106 000006 000046 000010 000012 000056 000072 000050 000054 000052 000014 000100 000010 010000 000001 :)00000 PAGE 20 EOPBIT= 000001 ERRTYP;::: 000106 E\/NTBE;::: 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE"'" 000201 FATERR= 100000 GPA ****** G HRDCNT= 000044 HRDPAS= 000050 ICONT = 000030 ICOUNT= 000040 IDNUM = 000122 IE 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHR::L= 001000 INHRRE= 000400 INIT 000030 INTR 000120 IOMOO 100000 !OMODP= 102000 I Ofv10DR= 112000 IOMODX= 110000 JACK 035060 K1PARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KlPAR7= 172356 KIPDRO= 172300 KIPOR1= 172302 KIPDR2= 172304 K1PDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KlPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MIJDEXH= 004000 SEQ 0225 MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER:.: MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKfIlOO= NCPUOP= NEWPAR= NOAPTY= NULL OLDPAR= OW::N Pt>.ERR = PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PRll PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSI'" RANNUM= RBUFEA= 00:2000 001000 000010 000011 000005 000017 177777 000013 00()004 JOOO22 000001 00')021 177775 000002 177776 000001 000006 000003 000015 000014 000016 oooeoo 000012 000020 001000 000020 000004 000002 000000 000002 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 00;)300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 RBUFPA= RBUFSZ;::: R3Li FVA= ROSERV= RDWHMI= RELERR= RELMOD;::: RELCC RELTIM= PESREG= RESl RES2 R!CHAR= R:".DBD RL. DGD F:l... DN R L . !:RR RL. GOB Ri... PAR RL.REG R L. RVA RL.TBl RL.UP RL1 RPTDAT= RSTRT = RUBOUT= RUN rll0D= R5VALU= SAM SAVREG= SSt..DR = SBf\r,;OD= Si3KSEL= SC . .!.DR= SC.ALC= SC.APC= Sc. CK L= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SOf=CNT= SOF;::AS= SPACE = SFOINT= SPVALU= SRO SRl SR2 SR3 STAT 000126 000132 000124 000101 000022 000020 020000 0OO022RG 010000 ****** G 000056 000060 031060 000G16R 000020R 000506R 000004R 000646R 000002R OOOOOJR 000006R 00OO10R 00037t3R 000006 002000 000112 000177 100000 001740 075464 *"'**** G 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 RELOC - RELOCATE CODE MACY11 30A(1052) 20-SEP-78 17:37 RELOC.MAC 28-JUL-78 09:09 SYM80L TABLE UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 W6UFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 STATBl= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 SVR1 000064 SVR2 000066 SVR3 000070 SVR4 000072 SVR5 000074 SVRG 000076 SYSCNT= 000052 SYSERR= 000100 T ,'\BL 000000 TMPIO = 000002 TQO'JF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 ABS. 000000 000750 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENEKATED: C DSKZ:RELOC.DSKZ:RELOC=SPMAC/ML,EQUATE,RELOC RUN-TIME: 22 12 .4 SECONDS RUN-TIME RATIO: 57/35=1.6 CORE USED: 14K (27 PAGES) PAGE 20-1 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$5EL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 SEQ 0226 $ISKO = 000001 $ISK1 = 000001 $LOCTA= 177777 $LSTlN= 000001 $LSTTA= 000001 $~~ESTL= 177777 $NSKO 000300 $~SK1 00C120 $N5K2 000120 000110 $NSK3 000110 $NSK4 $SAVLE= 177777 $SSKO = 050003 $TAGLE= 177777 $TAGNU= 050002 000300 $TEMP 050002 $TSKO 050003 $TSK1 050006 $TSK2 050007 $TSK3 050010 $TSK4 050011 $TSK5 $$ARGC= 000000 $$3YTE= 000403 000000 $$05T = 000000 $$ELOC= 000402 $$Er:FL= 000000 $SF LAG= 000001 $$FROM= 000000 $$LOC = OOOGOOR $$LCCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $,~RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $5£T-3S1= 000000 $$TGS2= 000000 $$TO 000002 $$$TAG= 050000 000750R $$C~SE= .MAIN. ~ACY11 3CA(1052) 20-SEP-78 EQUATE.MAC ,13-SEP-78 16:13 3 560 563 597 17:38 TABLE OF CONTENTS COM~ON EQUATE MODULE COMMON DEFINITIONS & REFERENCES 000000 1 .PRINT RPIRQ (CODE) ;SPMAC: VERSION 1.1 SEQ 0227 PPIRQ (PIRQ SERVICE ROUTINE) RPIRQ.MAC 28-JUL-78 09:10 MACY11 30A(1052) 20-SEP-78 17:38 COMMON EQUATE MODULE PAGE 19 :308 509 510 .TITLE RPIRQ (PIRQ SERVICE ROUTINE) .IDENT JVO.Oj 51 1 512 j++ 513 514 515 516 517 513 319 520 521 522 523 524 525 523 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 54E 547 543 549 550 551 552 553 MODULE NAME: RPIRQ FUNCTIONAL DESCRIPTION: THIS MODULE SERVI:ES THE PIRQ TRAP CALL (WHICH IS AN lOT). IT ENQUEUES HEADER ADDR. AND RETURN PC OF THE MODULE INTO THE CONTROL QUEUE, UPDATES THE SYSTEM STACK AND RETURNS TO T~E INTERRUPTED ROUTINE. TO ENSURE THAT THE ENQUEUEING ROUTINE IS NOT INTERRUPTED, THIS MODULE IS HANDLtD AT PRIORITY 7. IF A BACKGROUND MODULE IS THE INTERRUPTED MODULE, IT WILL BE TAKEN OFF THE AIR. INPUTS: NONE IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: DATA TABLE ADDRESS BACKGROUND HEADER STORAGE SUBORDINATE ROUTINES CALLED: ENOCO jPUT ITEMS ON THE CONTROL QUEUE. ERREC ;ERROR RECOVERY ROUTINE RSTRCY ;RESTORE STATUS ROUTINE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: THIS ROUTINE IS ENTERED BY EXECUTING A 'PIRQ' INSTRUCTION. VERSION: 0.0 EDIT 554 555 556 55? 558 SEQ 0228 ;-- DATE BY REASON RPIRQ (PIRQ SERVICE ROUTINE) RPIRQ.~AC 28-JUL-78 09:10 560 561 562 563 (1) 564 565 566 567 568 MACY11 30A(1052) 20-SEP-78 17:38 PAGE 19-1 COMMON DEFINITIONS & REFERENCES .S8TTL COMMON DEFINITIONS & REFERENCES 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $L5TTAG=1 ;**************** ; REFERENCED BY OTHER MODULES: 363 , 570 571 572 573 574 375 576 577 578 579 580 581 582 583 584 58.3 .GLOBL ;MODULE ENTRY PO:NT ;**************** ; GL08AL REFERENCES ; 586 587 58S 589 590 591 592 593 594 S95 RPIRQ .GLOBL ENQCQ .GLOSL ERREC .GLOSL RSTRCY ;ROUTINE TO ENQUE ITEMS ON CONTROL QUEUE ;ERROR RECOVERY ROUTINE ;RESTORE STATUS ROUTINE .GLOBL DTABLE .GLOBL DX.RS .GLOBL DX.SP .GLOBL DX.OEQ ;SYSTEM DATA TABLE ;SYSTEM LINK REGISTER ;SYSTEM STACK ;RET ADDR IN BOXQO .GLOBL SA.HDR .GLOBL BA.RET .GLOBL BA.STAT ;BKMOD HEADER ADDRESS ;BKMOD RETURN ADDRESS ;BKMOD STATUS WORD ; 000000' OOOOOOG OOOOOS 000014' LOCAL STORAGE RP.EXT: DX.DEQ .REPT .WORD .ENDR RP.RSS: "'D<S> 0 ;GOTO ADDRESS IF INTERRUPTED MODULE IS A BK ;RS STORAGE ;RS STACK ALLOCATION rOR THIS MODULE SEQ 0229 RPIRQ (PIRQ SERVICE ROUTINE) 28-JUL-78 09:10 RPIRQ.MAC 597 598 599 600 601 602 603 (2) 604 605 606 607 608 609 (2) 610 (4) 611 612 613 614 615 616 (2) 617 (4) 618 619 620 621 622 623 (3) (6) (5) (4) (3) (3) 624 625 626 627 628 629 (6) 630 (2) 631 632 633 634 635 636 637 (4) 638 MACY11 30A(1052) 20-SEP-78 RPIRQ (CODE) 17:38 PAGE 19-2 SEQ 0230 .SBTTL RPIRQ (CODE) ;**************** ; PIRQ SERVICE ROUTINE STARTS HERE INLINE <RPIRQ:> 000014' 000014 ' RPIRQ: ;+ ; SAVE R1 AND LOAD IT WITH MODULE'S BEGIN ADDRESS 000014' 000014' 010146 000016 ' 000016 ' 016601 PUSH R1 LET R1 := 2(SP) 000002 MOV R1,-(SP) MOV 2(SP),Rl MOV R5,-(SP) MOV #RP.R5S,R5 MQV JSR MOV R5,-(SP) 2(R1) ,-(R5) (Rl) ,-(R5) #DTABLE,-(R5) PC,ENQCQ (SP)+,R5 BCS 50000$ MOV (SP)+,R5 MOV #DTABLE,Rl ;+ ; SAVE R5 AND ALLOCATE LO:AL R5 STACK 000022 ' 000822 ' 010546 000024' 000024' 012705 PUSH R5 LET R5 := #RP.R5S 000014 ' ;+ ; ENQUEUE THE MODULE INTO THE CONTROL QUEUE 000030' 000030 ' 000032 1 000036 ' 000040' 000044' 000050 ' CALL ENQCQ IN <#DTABLE,(R1),2(R1» 010546 016145 011145 012745 004767 012605 MOV 000002 Mev rkJV OOOOOOG OOOOOOG ;+ ; IF NO ERROR RESTORE R5 STACK IF.NO.ERROR THEN 000052' 000052 103500 000054 ' 000054' 012605 1 POP R5 ;+ ; I~OW GET ADDRESS OF DTABLE AND DETERMINE IF ; MODULE WAS INTERRUPTED. BAC~GROUND ;- 000056 ' 000056' 012701 000062 ' LET R1 OOOOOOG : = #DT ABLE IF #BKMODE SETIN DT.STO(R1) THEN RPIRQ (PIRQ SERVICE ROUTINE) 28-~~L-78 09:10 RPIRQ.MAC (6) (9) 639 640 641 G42 643 644 645 646 547 (6) (~) 000062 1 032761 000070 1 001464 000072 1 000072 1 032766 C00100 1 001060 658 000104 1 000104' 016700 ( 6) 671 672 673 674 675 676 (2 ) 677 (2 J 6'18 (4 ) 679 (4) 680 (4 ) 000010 BIT SEQ #BKMODE,DT.STO(R 50001$ TRY TO DETERMINE IF INTERRUPTED MODULE WAS TRULY A BACKGROUND MODULE, THIS IS DONE BY CHECKING THE STACK TO SEE IF THE INTERRUPTED MODULE ; HAS A PRIORITY "0". 000102 1 665 ( 6) 666 667 668 669 670 SEQ 0231 i OOUl 02 I 01004G (4) PAGE 19-3 i************************************************************* (2) (4 ) 17:38 ;+ 648 649 G50 651 652 653 654 655 656 657 659 660 661 662 663 6G4 040000 MACY11 30A(1052) 20-SEP-78 RPIRQ (CODE) IF #8IT07!BIT06!BIT05 NOTSETIN 10(SP) THEN 000340 000010 BIT BNE #8IT07!BIT06IBIT 50002$ ;************************************************************** ;+ IF IT WAS A BACKGROUND MODULE THEN GET ITIS HEADER ADDRESS FROM "8A.HDR" WHICH CONTAINS THE HEADER ADDRESS OF CURRENT RUNNING BACKGROUND MODULE. ; j PUSH RO MOV RO,-(SP) MOV BA.HDR,RO M:JVB i2(SP) ,STAT(RO) BIS #BKMOD,STAT(RO) BIC #ACTBIT,STAT(RO) I'v"OV (SP)+,SVRO(RO) MOV (SP)+,SVRl (RO) LET RO .- BA.HDR OOOOOOG + BE SURE TO SAVE THE BKMODIS COND CODES IN ITIS STAT WORD 000110 1 000110 1 116660 000116' 000116' 052760 000012 000020 LET STAT(RO) :B= 12(SP) LET STAT(RO) .- STAT(RO) SET.BY #BKMOJ 000026 000026 + NOW TAKE MODULE OFF THE AIR BY CLEARING ACTBIT. 000124' 000124' LET STAT(RO) 042760 004000 '- STAT(RO) CLR.BY #ACTSIT 000026 + NOW START SAVING MODULES REGISTERS 000132' 000132 1 000136' 000136' 000142' 000142' 000146' 000146' 000152' 000152' POP SVRO(RO} 012660 000062 POP SVR1(RO) 012660 010260 010360 010460 000064 LET SVR2(RO) .- R2 LET SVR3(RO) '- R3 LET SVR4(RO) .- R4 R2,SVR2(RO) 000066 000070 000072 r~~ov R3,SVR3(RO) MOV R4,SVR4(RO) RPIRQ (PIRQ SERVICE ROUTINE) RPI~Q.MAC 28-JUL-78 09:10 681 (4) 382 683 684 685 686 687 (6) 688 689 690 691 692 693 694 (2) 695 (4) (6) 696 697 698 699 70:; 701 702 (6) 703 (6) 704 705 706 707 708 709 (4) 710 711 712 713 714 715 (4) 716 (4) 717 718 719 720 721 722 (4) 723 (4) 724 000156' 000156' 010560 MACY11 30A(1052) 20-SEP-78 RPIRQ (CODE) 17:38 PAGE 19-4 LET SVR5 ( RO) SEQ 0232 . - RS 000074. MOV RS,SVR5(RO) ADD #4,SP MOV (SP)+,BA.RET MOV ADD SP,SVR6(RO) #2,SVR6(RO) ;+ ; UPDATE STACK TO LOOK AT INTERRUPTED MODULE 000162' 000162' 062706 LET SP .- SP + #4 000004 ;+ ; BEFORE SAVING R6 DETERMINE RETURN ADDRESS OF BACKGROUND ; MODULE BY LOOKING AT STACK POP BA.RET C00166' oae 166' 012567 OOOOOOG 000172' 000172' 010660 000176' 062760 000076 000002 LET SVR6(RO) .- SP + #2 000076 ;+ ; IT IS NOW TIME TO SET THE BACKGROUND SUSPEND BIT IN "BA.STAT ; AND ALSO CLEAR OUT THE "BI(MODE" BIT IN DT .STO. 000204' 000204' 052767 000212' 000212' 042761 LET BA.STAT '- BA.STAT SET.BY #SUSPND 000001 OOOOOOG 040000 000010 LET DT.STO(R1) BIS '- DT.STO(R1) CLR.BY #BKMODE BIC #SUSPND,BA.STAT #BKMODE,DT.STO(R ;+ ; GET THE INTERRUPTED MODULE PSW INTO RO LC- RO 000220' 000220' 012600 '- (SP)+ MOV (SP)+,RO MOV DX.R5,RS MOV DX.SP,SP ;+ ; NOW SETUP MONITOR RS AND R6 STACKS 000222' 000222' 016705 000226' 000226' 016706 LET RS .- DX.RS OOOOOOG L E "I SP • - DX • S P OOOCOOG ;+ ; LOAD UP PSW ON NEW R6 STACK AND A RETURN ADQRESS AND DO AN RTI TO THAT ADDRESS ,' 000232' 000222' 010046 000234' 000234' 016746 000240' 177540 LET -(SP) .- RO LET -(SP) .- RP.EXT INLINE <RTI> MOV RO,-(SP) MOV RP.EXT,-(SP) RPIRQ (PIRQ SERVICE ROUTINE) RPIRQ.MAC 28-JUL-78 09:10 (2) 725 (4) 726 (4) 727 728 729 730 731 732 733 (2) 734 (6) 735 (2) 736 737 (4) (3) 738 739 740 741 742 743 (2) 744 (4) 745 (4) 746 (3) (4) (3) (3) 747 748 749 750 751 75: (3) (4) (3) (3) 753 (4) 754 000240' 000242' 000242' 000242' 000242' MACY11 30A(1052) 20-SEP-78 RPIRQ (CODE) 17:38 PAGE 19-5 SEQ 0233 RTI 000002 ENDIF 50002$: ENDIF 50001$: ;+ ; WAS NOT BACKGROUND MODULE THEN RESTORE R1 AND ADJUST THE STACK ; AND RETURN TO INTERRUPTED MODULE. 000242' 000242' 012601 000244' 000244' 062706 000250' 000250' 000002 POP R1 MOV (SP)+,R1 AwD #4,SP LET SP '- SP + #4 000004 INLINE <RTI> RTI ELSE 000252' 000252' 000421 000254' BR 50003$ 50000$: + ERROR, CONTROL QUEUE OVERFLOW DO A RESET AND SET UP R5 AND R6 STACKS. 000254' 000254' 000256' 000256' 000262' 000262' 000266' 000266' 000270' 000274' 000300' INLINE <RESET> RESET 000005 LET R5 .- DX.RS 016705 OOOOOOG LET SP .- DX.SP 016706 OOOOOOG MOV DX.RS,R5 M,]V DX.SP,SP M:::lV MOV JSR rJlOV R5,-(SP) #DTA8LE,-(R5) PC,RSTRCY (SP)+,RS MOV fJlOV JSR MOV R5,-(SP) ItDT.A.BLE,-(RS} PC,ERREC (SP)+,RS CALL RSTRCY IN <!tDTABLE> 010546 012745 004767 012605 OOOOOOG OOOOOOG + NOW CALL ERROR RECOVERY ROUTINE 000302' 000302' 010546 000304' 012745 000310' 004767 000314' 012605 000316' 000316' 000001 CALL ERREC IN <#DTABLE> OOOOOOG OOOOOOG ENDIF 50003$: .END RPIRQ (PIRQ SERVICE RJUTINE) 28-JU L-78 09:10 RPIRQ.MAC ACSR 000102 ACTBIT= 004~OO ADD~22= 001COO ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 00C106 ASS~M3= 000010 ASTAT = 000104 AUTO COO010 AUTJST= 020000 A~>JAS 000110 CA.HDR= **"'*** G E3A.RET= **"'*** G E3A.STA= **"'*** G t)I TO 000001 CITOO 000001 BIT01 000002 BIT02 000004 BIT03 GOO010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 OO~OOO B1T09 E31T1 000002 B1T10 002000 E31T11 004000 B1T12 010000 BIT 1 3 020000 BIT 14 O~OOOO B1T15 '100000 B1T2 000004 000010 t3IT3 BIT4 000020 BITS 000040 000100 BIT6 BIT7 000200 BIT8 OOO~OO BIT9 001000 BKDEF 000002 BKrv':OD 000020 BKP/;ODE = 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDv..:DCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF = 000001 20-SEP-78 fvlACY 11 30A(1052) SYMBOL TABLE CR CSRA CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRHJ= DIAGMC= DROPMO= DSEVNT= DTABLE= DT.ADD= DT.AP = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ESI= DT.EVN= DT.EXS= DT.FCH= DT.FCN= DT.HMX= DT.KBE= DT.KBP= DT.KBR= DT.KBU= DT.MLS= DT.MTI= DT.OFF= DT.PAS= DT.PC = DT.PFL= DT.PSW= DT.PTA= DT.RCS= DT.REL= DT.SCT= DT.SMX= DT.SP = DT.SSI= DT.STO= DT.ST1= DT.SWR= DT.SYP= DT.W8U= DT . Ii;HL= DT.WLL= DVID1 = DX.DEQ= DX.R5 = 000015 000100 000102 000003 000017 000025 000011 000400 000000 100000 000014 ****** G 000042 000100 000076 000034 000014 000016 000020 000044 000000 000060 000037 000036 000104 000024 000026 000022 000030 000032 000110 000070 000074 000002 000062 000004 000064 000102 000040 000066 000106 000006 000046 000010 000012 000056 000072 000050 000054 000052 000014 ****** G ****** G DX.SP = ECC:ilEM= ECCSTA= ENBEOP= ENBNUL= ENDLST= ENQCQ = EOPBIT= ERREC = ERRTYP= EVNTBE= EVNTHD= EVNTKT= EVNTPE= EVNTRE= FATERR= HRDCNT= hRD?AS= ICONT = ICOUNT= IDNUM = IE INDPAR= INHDRP= INHEPR= INHREL= INHRRE= INIT INTR lOMOD IOMODP= IOMODR= IOMODX= JACK KIPARO= KIPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPDR1= KIPDR2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KTERRO= KTPRES= KTSTAT= 17:38 ****** G 000100 000010 010000 000001 000000 *****¥ G 000001 ****** G 000106 000200 000200 000203 000202 000201 100000 000044 000050 000036 000040 000122 000100 000040 040000 020000 001000 000400 000030 000120 100000 102000 112000 110000 035060 172340 172342 172344 172346 172350 172352 172354 172356 172300 172302 172304 172306 172310 172312 172314 172316 COO040 000400 000020 PAG:: 20 SEQ 0234 KTXTND= LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHR8= MSGi\iA?= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSfv1S= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO P R11 PRl4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 040000 000012 000001 000200 076600 040000 004000 002000 00 1 000 000010 000011 000005 000017 177777 000013 00J004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000)002 000000 024020 0000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 PR7 PS PSW R.ll.NNUM= RBJFEA= R3UFPA= R8UFSZ= RSUFVA= RJSERV= RD\tJHMI = Ri:.LERR= RcLi',10D= R:::L TIM= R::Sl RC<::;') RICHAR= RPIRQ RPTDAT= RP.EXT RP.R5S RSTRCY= RSTkT = RUBOUT= RUN:'I'10D= R5VALU= SAM SSADR = S8V!\i'OD= S3KSE L= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SEN0LS= SGFCNT= SOFPAS= SPACE = SPOINT= SPVALU= SRO SRl SR2 SR3 STAT STATBI= STAT1 = SUSPND= SVRO SVRl 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 000056 000060 031060 000014RG 002000 OOOOOOR 0OOO14R ****"'* G 000112 000177 100000 001740 075464 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 064757 000027 000001 000062 000064 RPIRQ (PIRQ SERVICE ROUTINE) 28-JUL-78 09:10 MACY11 30A(1052) 20-SEP-78 SYMBOL TABLE RPI~Q.MAC SVR2 000066 SVQ3 000070 SVR4 000072 SVR5 000074 000076 SVR5 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1'-" 177602 UIPDR2= 177604 UIPDR3= 177606 ABS. 000000 000316 LJIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 \,I;SUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 000 001 ERRORS DETECT~D: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:RPIRQ.DSKZ:RPIRQ=SPMAC/ML,EQUATE,RPIRQ RUN-TIME: 14 4 .3 SECONDS RUN-TIME RATIO: 39/19=1.9 CORE USED: 14K (27 PAGES) 17:38 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000~20 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 0003~0 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$\,IJHI= 000120 $F$YES= 000402 $IFLEV= 177777 PAGE 20-1 SEQ 0235 $ISKO = 000001 ~ISK1 = 000001 $ISK2 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000110 $NSK1 = 000110 $NSK2 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050004 $TEMP 050003 $TSKO = 050003 $TSK1 = 050001 $T5K2 = 050002 $$ARGC= 000000 $$BYTE= 000403 $$CA5E= 000000 $$D5T = 000000 $$ELOC= 000402 $$ERFL= 000000 $$ F LAG= 000001 $$FROM= 000000 $$LOC = 000100R $$LOCN= 000000 $$REG = 177777 S$iiETU= 000000 $SRTN1= 000000 $SRTN2= 000000 $$SRC = 000000 $ST::;SV= 000000 $$TGS1= 000000 $$TGS2= 000000 $:;TO 000001 $$$TAG= 050000 000316R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 553 556 582 17:38 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT RSTRCY ROUTINE ;SPMAC: VERSION 1.1 SEQ 0236 RSTRCY - RESET RECOVERY MACY11 30A(1052) 20-SE?-78 i7:33 P~~E 1S RSTRCY.MAC 08-SEP-78 08:17 COMMON EQUATE MODULE 508 509 510 511 512 513 514 315 516 517 518 519 520 521 S22 523 524 525 S28 527 528 529 530 531 532 S33 534 535 536 537 .TITLE RSTRCY - RESET RECQV£RY .IDENT IVO.O/ ;++ r'JlODU LE NAME: RSTRCY FUNCTIONAL DESCRIPTION: RESTORES PROCESSOR HARDWARE OPTIONS TO THE STATES THEY WERE IN BEFORE THE IIRESET" WAS ISSUED. INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: DT.STO DT.CFO DT.PTA OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: DT.KBRSP SUBORDINATE MODULES CALLED: KPON - PARITY ON ROUTINE 538 539 540 541 542 543 544 545 546 547 548 549 550 551 SEQ C237 FUNCTION~L SIDE EFFECTS: NONE CALLING SEQUENCE: CALL RSTRCY IN <A> A=DATA TABLE ADDRESS VERSION: 0.0 EDIT BY DATE REASON RSTRCY - RESET RECOVERY MACY11 30A(1052) 20-SEP-78 17:38 PAGE 19-1 RSTRCY.MAC 08-SEP-78 08:17 COMMON DEFINITIONS AND RE~ERENCES 553 554 555 556 (1) 557 558 559 SEQ 0238 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000 1 000000 1 000001 000001 560 561 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 562 ;**************** , 563 ; REFERENCED BY OTHER MODULES 564 565 .GLOBL RSTRCY ;MODULE ENTRY POINT 566 567 ;**************** 568 569 570 ; GLOBAL REFERENCES 571 572 573 .GLOBL .GLOBL .GLOBL 574 575 ;**************** 57c 577 KONTRL CCNTRL KPON ;BUFFER TO CACHE REGISTER ;CACHE REGISTER ;PARITY ON ROUTINE ; LOCAL STORAGE 578 379 580 000000 1 000002 1 000002 1 000015 RST.PTR: .WORD RST.BUF RST.BUF: .WORD <CR> ;FAKE BUFFER POINTER ;FAKE BUFFER RSTRCY - RESET RECOVERY MACY11 30A(1052) 2C-SEP-78 17:38 RSTRCY ROUTINE 08-SEP-78 08: 17 RSTRCY.MAC 582 583 584 585 (2 ) 586 587 588 589 590 591 592 ( 2) (3 ) 593 594 595 596 597 598 599 (4) 600 601 602 603 604 605 (6 ) 609 (6 ) (9 ) 610 (6 ) 611 (4 ) 612 (4 ) 613 614 615 616 617 618 619 620 ( 6) ( 9) 621 (6 ) 622 SEQ 02'39 .SBTTL RSTRCY ROUTINE ROUTINE RSTRCY <TABL> 000004' 000004' RSTRCY: ;+ ; SAVE REGISTERS ;- PUSH RO,R1 000004' 000004' 010046 000006' 010146 MOV MOV RO,-(SP) Rl,-(SP) MOV TABL(~5),RO BIT B~Q #KTSTAT,DT.STO(R 50002$ BIS #001001,@#SRO BIT BEQ #ADDR22,DT.CFO(R 50003$ BIS #BIT04,@#SR3 BIT BEQ #MAPSTAT,DT.STO( 50004$ 8IS #BIT05,@#SR3 ;+ ; SET RO TO THE START OF THE DATA TABLE ., 000010' 000010' 016500 LET RO ...... , ' ; ; , 000014' 000014' 000022' 000024' 000024' 000032' 000032' OSO()40' 000042' 000042' ooeS50' 000050' 000050' 000050' . - TABL(R5) 000000 1306 607 (6 ) ( 9) 608 FAGE 19-2 IF MEMORY MANAGEMENT WAS ENABLED, RE-ENABlE IT, INCLUDING 22-BIT ADDRESSING IF IT EXISTS. IF #KTSTAT SETIN DT.STO(RO) THEN 032760 001412 000020 000010 052737 001001 177572 032760 001403 001000 000014 052737 000020 172516 LET @#SRO := @#SRO SET.BY #001001 IF #ADDR22 SETIN DT.CFO(RO) THEN LET @#SR3 . - @#SR3 SET.BY #BIT04 ENDIF 50003$: ENDIF 50002$: ;+ ; IF THE UNIBUS MAP HAD BEEN ENABLED, RE-ENABLE IT. ;- 000050' 000050' 032760 000056' 001403 000060' 000060' 052737 000066' IF IIMAPSTAT SETIN DT.STO(RO) THEN 000200 000010 000040 172516 LET @#SR3 ENDIF ~= @#SR3 SET.BY #BIT05 RSTRCY - RESET ~~COVERY MACY11 30A(1C52) 2C-SEP-78 17:38 RSTKCY.MAC 08-SEP-78 08:17 RSTRCY ROUTINE (4) 623 G24 625 626 527 628 62:3 630 631 632 (6) (8) (6) (9) (S) 633 (3) (5) (4) (3) (3) 634 (4) 635 (4) PAGE 19-3 SEQ 0240 50004$: 000066 1 ;+ , ; ; ; C00066' 000066' 000074 1 000076' 000104' 000106' 000106 1 e00106' 000110' 000114' C00116 1 000122' 000124' oeo 124 I 000130 1 000130 1 63S 637 638 639 640 641 642 543 644 (6) (9) 645 (6) (9) 646 (6) 647 (4) 648 000130' 000130' 000136' 000140' 000140' 000146' 000150' 000150' 000156' 000156' 000164' IF PARITY OR ECC HAD SEEN ENABLED, RE-LOAD THE PARITY REGISTERS. BY CALLING KPON ROUTINE AND PASSING THE ADDRESS OF FAKE BUFFER. THEN CLEAR OUT KEYBOARD RESPONSE LOACATION IN DTABLE TO ELIMINATE OUTPUTTING MESSAGE. IF #PARSTAT SETIN 032760 001004 032760 001411 000100 000010 000010 000010 DT.~TO(RO) OR #ECCSTAT SETIN DT.STO(RO) THEN BIT 8NE BIT SEQ #PARSTAT,DT.STO( 50005$ #ECCSTAT,DT.STO( 50006$ MOV MOV MOV JSR MOV R5,-(SP) #RST.PTR,-(R5) RO,-(R5) PC,KPON (SP)+,R5 CLR DT.KBRSP(RO) 50005$: CALL KPON IN <RO,#RST.PTR> 010546 G1274~) 000000 1 010045 004767 012605 OOOOOOG 00506e 000022 LET DT.KBRSP(RO) .- #0 ENDIF 50006$: ;+ ; SEE IF CACHE MEMORY IS PRESE~T. IF IT IS, AND IF IT HAD BEEN ; DISABLED, THEN RE-DISABLE IT. ALSO, IF CACHE IS PRESENT AND IF ; PARITY HAD BEEN DISABLED, THEN CACHE PARITY MUST BE RE-DISA8LED. ;- (4) 000164' 649 (6) (9) 650 (6) 651 (4) 652 (4) 000~64' 000164' 000172' 000174' 000174' 000202' 000202' 000210' 000210' 653 000210' IF #CAPRES SETIN DT.CFO(RO) THEN 032760 001424 000004 000014 032760 001006 000004 000010 052767 000014 OOOOOOG BIT SEQ #CAPRES,DT.CFO(R 50007$ BIT BNE #CASTAT,DT.STO(R 50010$ BIS #14,KONTRL MOV KONTRL,@CCNTRL BIT 8NE #PARSTAT,DT.STO( BIS #202,KONTRL MOV KONTRL,@CCNTRL IF #CASTAT NOTSETIN DT.STO\RO) THEN LET KONTRL .- KONTRL SET.BY #14 LET @CCNTRL := KONTRL 016777 OOOOOOG OOOOOOG ENDIF 50010$: IF #PARSTAT NOTSETIN DT.STO(RO) THEN 032760 001006 000100 000010 50011$ LET KONTRL .- KuNTRL SET.BY #203 052767 000203 OOOOOOG LET @CCNTRL .- KONTRL 016777 OOOOOOG OOOOOOG ENDIF 50011$: ENDIF RSTRCY - RESET RECOVERY MACY', 30A(1052) 20-SE?-78 17:3B RSTRCY.MAC 08-SEP-78 08:'7 RSTRCY ROUTINE (4) PAGE 19-4 SEQ 0:241 50007$: 000210' 654 655 656 657 ;+ ; RESTORE REGISTERS AND RETURN. ;- 358 659 660 (2 ) POP R1 , RO (3 ) 000210' 000210' 01260'1 000212' 012500 661 662 (3 ) (3) ( 2) 663 000214' 000214' 000214' 000214' 000207 000001 ENDRTN MOV MOV (SP)+,R1 (SP)+,RO RTS PC 50000$: 50001$: .END RSTRCY - RESET RECOVERY MACY11 08-SEP-78 08:'7 RSTRCY.MAC ACSR 000102 ACTBlT= 004000 t-DDR22= 001000 ADR 000006 APT>=EK= 000004 APTPRE= 000200 ASB 000106 ASSEM3= 000010 t-STAT = 000104 I\UTO 000010 AUTOST= 020000 A\oJAS 000 110 BITO 000001 BITOO 000001 BIT01 000002 BIT02 COOO04 81T03 000010 81T04 000020 GITOS 000040 000100 BIT06 BIT07 000200 BIT08 000400 001000 BIT09 SITl 000002 BIT10 002000 BIT 11 004000 r>I T12 010000 BIT 13 020000 8IT14 040000 BIT 15 100000 [31 T2 000004 f3IT3 000010 l3IT4 000020 000040 BITS 000100 BIT6 BIT7 000200 BIT8 000400 BIT9 001000 BKDEF 000002 BKrv'iOD 000020 m·\r¥iODE = 040000 E3r\S LSH= 000134 CAPRES= 000004 CASTAT= 000004 CCNTRL= ***"'** G CDERCT= 000146 CD'.I;DCT = 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA 000100 30A(1052) 20-$EP-78 17:38 SYMBOL TABLE PAGE 20 000102 000003 000017 000025 000011 000400 000000 100000 000014 000042 000100 00C076 000034 000014 000016 000020 000044 000000 000060 000037 000036 000104 000024 000026 000022 000030 000032 000110 000070 000074 000002 000062 000004 000064 EOPBIT= ERRTYP= EVNTBE= EVNTHD= EVNTKT= EVNTPE= EVNTRE= FATERR= HRDCNT= HRDPAS= lCONT = ICOUNT= IDNUM = IE INDPAR= INHDRP= INHEPR= INHREL= INHRRE= INIT INTR lOMClD IOMODP= IOMODR= IOMODX= JACK KIPARO= KIPAR1= KlPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPDR1= KIPDR2= KIPDR3= KIPDrt4= KIPDR5= KIPDRG= KIPDR7= KONTRL= KPON KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MED MEMPAS= 000001 000106 0002CO 000200 000203 000202 000201 100000 000044 000050 000036 000040 000122 000100 000040 040000 020000 001000 000400 000030 CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRTN= DIAGMC= DRO?MO= DSEVNT= DT.ADD= DT.AP = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ESI= DT.EVN= DT.EXS= DT.FCH= DT.FC!\:= DT.Hrl:X= DT.KBE= DT.KBP= DT.KBR= DT.KBU= DT.MLS= DT.MTI= DT.OFF= DT.PAS= DT.PC = DT.PFL= DT.PSW= DT. PT A= DT.RCS= DT.REL= DT.SCT= DT.SrvlX= DT.SP = DT.SSI= DT.STO= DT.ST1= DT . S'vJR= DT.SYP= DT.WBU= DT.WHL= DT .WLL= DVID1 = ECCMEM= ECCSTA= ENBEOP= ENBNUL= ENDLST= 000~02 000040 OC0066 000106 000006 000046 000010 000012 000056 000072 000050 000054 000052 000014 000100 000010 010000 000001 000000 000120 100000 102000 112000 l1JOOO 035050 172340 172342 172344 172346 172350 172352 172354 172356 172300 172302 172304 172306 172310 172312 172314 172316 **'1'*** G ***"'** G 000040 OOO~CO 000020 040000 000012 000001 0002CO 076600 040000 SEQ 0242 MODEXH= r.l0DHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGH~,G= MSGHRD= MSGfI,A?= MSGNUL= MSGPOP= MSGPR;'vl= MSGRES= MSGSFT= MSGSKE= tI.SGSfv'lB= MSGSfJlH= MSGSrf.S= MSGSTD= MSGSYS= l\1SGVEC= NBKIV10!)= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTt-= PASCNT= PDPLSI= PDP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PRG PR7 PS PSV-J RANNUM= RBUFEA= RBUFPA= 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004:)00 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 RBUFSZ= RBUFVA= RDSERV= RDiNH[Vl I = RELERR= RELMGD= RELTIM= R:::S1 RES2 RICHAR= RPTDAT= RSTRCY RSTRT = RST. BU RST.PT RUBOUT= RUNMOD= R5VALU= SA:Vl S9"DR = SBKiViOD= SBKSEL= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SOFCNT= SOFPAS= SPt-CE = SPOINT= SPVALU= SRO SRl SR2 SQ3 STAT STATBl= ST ATl = SUSPND= SVRO SVR1 SVR2 SVR3 SVR4 SVR5 SVR6 SYSCNT= SYSERR= 000132 000124 000101 000022 000020 020000 010000 000056 000060 031060 002000 000004RG 000112 000002R OOOOOOR 000177 100000 001740 075464 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 064757 000027 000001 000062 000064 000066 000070 000072 000074 000076 000052 000100 .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 566 570 630 763 17:39 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT ;SPMAC: VERSION 1.1 ACTIVATE ROUTINE SET UP FOR THE NEXT PASS THRU MODULE LIST SEQ 0244 ACTIV - ACTIVATE NEXT OPTION MODULE ACTIV.MAC 13-SEP-78 16:25 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 MACY11 30A(1052) 20-SEP-7e COMMON EQUATE MODULE .TITLE .IDENT SEQ 0245 ACTIV - ACTIVATE NEXT OPTION MODULE JVO.Oj MODULE NAME: ACTIV FUNCTIONAL DESCRIPTION: THIS ROUTINE FETCHES FROM THE MODULE QUEUE LIST SUPPLIED BY THE CONFIGURATOR LINKER PROGRAM THE ADDRESS OF THE NEXT OPTION MODULE TO BE ACTIVATED, AND ACTIVATES IT BY MAKING AN ENTRY FOR IT IN THE CONTROL QUEUE INPUTS: 1. ADDRESS OF DATA TABLE IMPLICIT INPUTS: 1. DT.STO 2. DT .ST1 OUTPUTS: NONE 531 532 IMPLICIT OUTPUTS: 1. DT.STO 533 534 535 PATHOLOGICAL CONNECTIONS: NONE 536 537 SUBORDINATE ROUTINES CALLED: 1. ENQCQ 2. SAVREG 3. RESREG 538 539 540 541 542 MAKE ENTRY IN CONTROL QUEUE FUNCTIONAL SIDE EFFECTS: 1. THIS ROUTINE IS RESPONSIBLE FOR SETTING TH~ FOLLOWING BITS IN THE SYSTEM'S STATUS INDICATOR WORD: SET TO INDICATE THAT A SBK OR NBK MODULE ~JlODHOLD IS PRESENTLY RUNNING SET TO INDICATE THAT ALL OF THE EXERCISER'S MODEXH OPTION MODULES HAVE BEEN ACTIVATED SET IF BKMOD IS DOING A O~E TMPIO ONE ITERATION PASS, BKMOD WILL TAKE AN APPEARANCE OF AN IOMOD. 543 544 545 546 547 54~ 549 550 551 552 553 CALLING SEQUENCE: CALL ACTIV IN <DTABLE> 554 555 556 DTABLE 557 558 = ADDRESS OF DATA TABLE VERSION: 0.0 559 560 561 562 PAGE 19 ;++ 530 563 17:39 , '- EDIT BY DATE REASON ACTIV - ACTIVATE NEXT OPTION MODULE ACTIV.MAC 13-SEP-78 16:25 564 MACV11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE 17:39 PAGE 19-1 SEQ 0246 ACTIV - ACTIVATE NEXT OPTION MODULE 13-SEP-78 16:25 ACTIV.MAC 566 567 568 569 570 (1) S71 572 573 574 575 576 577 578 579 000000' 000000' PAGE 20 .SBTTL COMMON DEFINITIONS AND REFERENCES .PRINT .MCALL STRUCT STRUCT ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG = 1 000001 000001 , ;**************** , ; REFERENCED BY OTHER MODULES , 580 .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 595 599 , ;MODULE'S ENTRY POINT ACTIV AC.TPTR AC.TYPE AC.MPTR AC.MODQ MODO STATBITS SENDLST ;**************** , .GLOBL .GLOBL .GLOBL RESREG SAVREG ENQCQ ;RESTORE REGISTERS ROUTINE ;SAVE REGISTERS ROUTINE ;CONTROL QUEUE EN-QUEUE MODULE ;**************** LOCAL EQUATES , 001777 060757 177777 60C 601 602 603 604 60S 606 60', 608 609 610 611 612 613 614 615 616 617 618 619 620 MACY11 30A(1052) 20-SEP-78 17:39 COMMON DEFINITIONS AND REFERENCES NON32K = 001777 STATBITS = 060757 SENDLST = 177777 , ;NON-32K BOUNDARY ;MODULE'S STATUS WORD ;SPECIAL END OF LIST INDICATOR ; LOCAL STORAGE - PROGRAM IMPURE STORAGE o 000122' 000000 AC.MPTR: .WORD AC.MODQ: MODQ: .REPT .NLIST .WORD . LIST .ENDR .WORD o ;END OF LIST iNDICATOR 000124' 000126' 000130' 000132' 000134' AC.TPTR: .WORD AC. TYPE: . WORD .WORD .WORD .WORD SBKMOD SBKMOD NBKMGD BKMOD IOMOD ;MODULE-TYPE-LIST POINTER (ASSEMBLED TO SBKMOD) ;SPECIAL MODULE TYPE ;NON-BACKGROUND ; BACKGROUND ;1/0 MODULE - INTERRUPT DRIVEN 000000' 000000 000002' uOOOO2' 00005C 000000 OOCOOO 001000 000020 100000 ;MODULE-QUEUE-LIST POINTER "D<40> o SEQ 0247 ACTIV - ACTIVATE NEXT OPTION MODULE hCTIV.MAC 13-SEP-78 16:25 -.321 000'136 1 110000 622 000140 1 000142 1 523 624 625 626 627 628 102000 112000 000144 1 177777 MACY1' 30A(1052) 20-SEP-78 17:39 COMMON DEFINITIONS AND REFERENCES .WORD .WORD .WORD .WORD IOMODX IOMODP IOMODR SENDLST **************** PAGE 20-1 ;1/0 MODULE - NPR DRIVEN ;1/0 MODULE - RUNS ONLY ON 32K BOUNDARIES ;1/0 MODULE - RUNS ONLY AT LOWEST MEMORY BANK ;SPECIAL END-OF-LIST INDICATOR SEQ 0248 ACTIV - ACTIVATE NEXT OPTION MODULE ACTIV.MAC 13-SEP-78 16:25 630 631 632 (2) 633 534 635 636 637 635 (3) 639 (4) 640 641 642 643 644 645 646 (6) (9) 647 (4) (6) 645 (4) 649 (6) 650 (4) 651 652 653 654 655 656 (4) (6) (9) 657 658 659 660 661 662 (4) 663 664 665 666 667 668 (4) (6) (9) W,ACY1' 30A(1052) ACTIVATE ROUTINE .SBTTL 000146 1 000146 1 ~0-SEP-7c 17:39 PAGE 21 SEQ 0249 ACTIVATE ROUTINE ROUTINE ACTIV <DTABLE> ACTIV: ;+ ; SAVE REGISTERS AND PUT THE DATA TABLE ADDRESS IN RO. , '- 000146 1 000146 1 004767 CALL SAVREG OOOOOOG LET RO .- DTABLE(R5) 000152~ 000152 1 016500 000000 JSR PC,SAIIREG MOV DTABLE(R5),RO ;+ ; IF WE1VE BEEN THROUGH THE TY~E LIST ALREADY, RESET THE POINTERS TO ; IOMOD AND TO START OF MODQ LIST, THEN CLEAR THE MODSEL AND MODEXH ; BITS INSTATUS WORD O. ;- 000156 1 000156 1 032760 000164 1 001414 000166 1 000166 1 012767 000174 1 062767 000202 1 000202 I 012767 000210 1 000210 042760 000216 000216 1 1 IF #MODEXH SETIN DT.STO(RO) THEN 004000 MOV ADD #AC.TYPE,AC.TPTR #6,AC.TPTR MOV LET DT.STO(RO) .- DT.STO(RO) CLR.BY #MODSEL!MODEXH BIC #AC.MODQ,AC.MPTR LET AC.MPTR .- #AC.MODQ 000002 1 177570 000010 ENDIF 1 + 000216 1 000216 000216 027727 0.002241 001563 #MODEXH,DT.STO(R 50002$ LET AC.TPTR .- #AC.TYPE + #6 000126 1 177730 000006 177722 005000 BIT BEQ 000010 50002$: SEARCH UNTIL THE MODULE-TYPE-LIST IS EXHAUSTED WHILE @AC.TPTR NE #SENDLST DO 50003$: 1 1 #MODSEL!MOD2XH,D 177702 177777 CMP SEQ @AC.TPTR,#SENDLS 50004$ MOV @AC.TPTR,R3 TST SEQ @AC.rY:PTR 50006$ ;+ ; SAVE THE POINTER IN R3. ,' 000226 1 000226 1 017703 LET R3 "- @AC.TPTR 177672 ;+ ; SEARCH THE MODULE-QUEUE-LIST FOR A MODULE OF THE CURRENT TYPE 000232 1 000232 1 000232 1 005777 000236 1 001515 WHILE @AC.MPTR NE #0 DO 50005$: 177542 ACTIV - ACTIVATE NEXT OPTION MODULE 13'-S:;:p-7e 16:25 ACTIV.MAC 669 (4 ) 370 (4 ) 671 672 373 :374 675 576 (4) 577 (4) (6 ) 678 67S 680 681 682 683 684 (6) (9) 685 (6 ) ( 9) (6 ) (9) 686 687 688 689 590 691 (4) 692 693 694 69S 696 69, 698 699 (6 ) (9) 700 (4 ) 701 (4 ) (3 ) 702 (4 ) 703 (4 ) 704 705 (,00240' 000240' 017701 000244' 000244' 010104 MACY11 30A(1052) ACTIVATE ROUTINE 17:33 20-SEP-78 SEQ 0250 LET R1 · - @lAC.MPTR LET R4 · - R1 177534 PAGE 21-1 MOV @lAC.MPTR,R1 MOV R1,R4 ;+ ; CLEAR OUT ALL BUT THE MODULE TYPE BITS IN THE MODULE'S STATUS WORD. ., 000246' 000246' 016101 000252' 000252' 010102 000254' 042702 LET R1 · - STAT(R1 ) LET R2 · - R1 CLR.BY #STATBITS 000026 060757 MOV STAT(R1), R1 MOV BIC R1 ,R2 #STATBITS,R2 ;+ ; IF ONE IS FOUND MAKE SURE IT IS SELECTED AND THAT IT HAS NOT ; BEEN DROPPED AND IS NOT ACTIVE. ;- 000260' 000260' 000262' 000264' 000264' 000270' 000272' 000276' IF R2 EQ R3 THEN R2,R3 CMP B;\JE 50007$ IF #8IT14 SETIN R1 AND #BIT13!ACTBIT NOTSETIN R1 THEN #BIT14,Rl BIT 50010$ BEQ #BIT13!ACTBIT,R1 BIT 50010$ BNE 020203 001077 032701 00147·1 032701 001071 040000 024000 ;+ ; SAVE THE MODULE LIST POINTER. ;- 000300' 000300' LET R1 017701 . - @lAC.MPTR MOV 177474 @AC.MPTR,R1 ;+ ; IF THE OPTION MODULE'S PhSS COUNT IS NOT 0, THEN SAVE ITS RESTART ADDRESS. ; OTHERWISE, SAVE THE START ADDRESS AS THIS IS THE FIRST PASS. .r 000304' 000304' 005764 000310' 001403 000312' 000312' 016104 000316' 000316' 000402 000320' 000320' 000320' 016104 000324' OC0324' IF PASCNT(R4) NE #0 THEN 000034 LET R4 . - RSTRT(R1) 000112 TST BEQ PASCNT(R4) 50011$ MOV RSTRT(R1) ,R4 8R 50012$ MOV INIT(R1),R4 ELSE LET R4 000030 . - INIT(R1 ) 50011$: ENDIF 5001~$: ;+ ACTIV - ACTIVATE NEXT OPTION MODULE ACTIV.MAC 13-SEP-78 16:25 706 707 708 709 710 (4) 711 (3) (6) (5) (4) (3) (3) 712 713 714 715 716 717 (6) 718 719 720 721 722 723 724 (6 } (8 ) (6) (8) (6) ( 9) (6) 725 (6) 726 (4 ) 727 (6) (9) 728 (6 ) 729 (4 ) 730 731 73:: 733 734 735 736 737 738 (6) (9) MACY11 30A(1052) ACTIVATE ROUTINE 20-SEP-78 17:39 PAGE 21-2 SEQ 0251 ; BEFORE WE EN-QUEUE THE MODULE MAKE SURE ITS STACK WILL BE SETUP PROPERLY ; THEN EN-QUEUE THE MODULE IN THE CONTROL QUEUE ;000324' 000324' 000332' 000332' 000334' 000336' 000340' 000342' 000346' LET SVR6(R1) := SPOINT(R1) 016161 000032 000076 MOV SPOINT(R1),SVR6( MOV MOV MOV MOV JSR MOV R5,-(SP) R4,-(R5) R1,-(R5) RO,-(R5) PC,ENQCQ (SP)+,R5 BIS #ACTBIT,STAT(R1) CALL ENQCQ IN <RO,R1,R4> 010546 010445 010145 010045 004767 012605 OOOOOOG ;+ ; MARK THE OPTION MODULE AS BEING ACTIVE 000350' 000350' 052761 LET STAT(R1) := STAT(R1) SET.BY #ACTBIT 004000 000026 ;+ ; IF THIS MODULE IS OF THE SBK OR NBK TYPE SET THE MODULE-HOLD-FLAG ; WHICH WILL ALLOW THE MODULE TO RUN BY ITSELF ;000356' (J00356' 000362' 000364' 000370' OC0372' 000376' 000400' 000400' 000400' 000406' 000406' 000406' 000406' 000412' 000414' 000414' 000422' 000422' 020227 001406 020227 001403 020227 001003 IF R2 EQ #5BKMOD OR R2 EO #NBKMOD OR R2 EO #BKMOD THEN R2,ltSBKMOD CMP 50013$ BEQ R2,#NBKMOD CMP 50013$ BEQ R2,#3KMOD CMP 50014$ 8NE 50013$: - DT.STO(RO) SET.BY #MODHOLD LET DT.STO(RO) #MODHOLD,DT.STO( BIS ENDIF 50014$: IF R2 EQ #SBKMOD THEN R2,#SBKMOD CMP 50015$ BNE - DT.ST1(RO) SET.BY #SBKSEL LET DT.ST1(RO) #SBKSEL,DT.ST1(R BIS ENDIF 50015$: 000000 001000 000020 . 052760 002000 020227 001003 000000 052760 010000 000010 . 000012 ;+ IF MODULE IS A BKMOD THEN IT IS NECESSARY TO DO A ONE ITERATION ; PASS. THIS IS ACCOMPLISHED BY SETTING THE TMPIO BIT AND CHANGING THE ; BKMOD STAT TO THAT OF AN IOMOD. PRENDIT WILL CHANGE THE MODE ; BACK AT END-OF-PASS TIME. ;- 000422' 000422' 020227 000426' 001011 IF R2 EQ #BKMOD THEN 000020 CMP BNE R2,#8KMOD 50016$ ACTIV - ACTIVATE NEXT OPTION MODULE ACTIV.MAC 13-SEP-78 16:25 739 (6) 740 (6) 741 (6) 742 (4) 74-3 744 745 746 747 748 749 (6) 750 (2) 751 (4) 752 753 754 755 756 757 758 759 (4) 760 (6) 761 (4) (3) 000430 1 000430 1 052760 000436 1 000436' 042761 000444 1 000444 1 052761 000452' 000452 1 MACY11 30A(1052) ACTIVATE ROUTINE 20-SEP-78 17:39 PAGE 21-3 SEQ 0252 LET DT.STO(RO) 000002 000010 000020 000026 100000 000026 LET STAT(R1) LET STAT(R1) '- DT.STO(RO) SET.BY #TMPIO SIS #TMPIO,DT.STO(RO '- STAT(R1) CLR.BY #SKMOD BIC #BKMOD,STAT(R1) '- STAT(R1) SET.BY #IOMOD BIS #IOMOD,STAT(R1) ENDIF 50016$: ;+ ; ADVANCE THE MODULE-QUEUE-LIST POINTER, THEN RESTORE THE ; REGISTERS AND DO A RETURN ;- 000452' 000452' 062767 000460 1 000460 1 000450 000462 1 000462 1 LET AC.MPTR '- AC.MPTR + #2 000002 177320 INLINE <BR ADD #2,AC.MPTR BR 1$ 1$> ENDIF 5.001 OS: ;+ ; THE MODULE IS NOT OF THE CURRENT TYPE OR IF IT IS, IT IS ; PRESENTLY DESELECTED OR DROPPED, SO UPDATE THE MODULE-QUEUE-LIST ; POINTER AND KEEP SEARCHING ,' - 0004621 000462 1 000462 1 000462 1 062767 000470 1 000470' 000660 000472 1 ENDIF 50007$: LET AC.MPTR '- AC.MPTR + #2 000002 177310 ADD #2,AC.MPTR BR 50005$ ENDDO 50006$: ACTIV - ACTIVATE NEXT OPTION MODULE ACTIV.MAC 13~SEP-78 16:25 763 764 765 766 767 768 769 770 771 772 (4) 773 (6) 774 775 776 777 778 779 780 (6) (9) (6) (9) (6) (9) 781 (6) 782 (4) 783 784 785 786 78, 788 (6) (9) (6) (9) 789 (6) 790 (4) 791 (4) (3) 792 793 794 795 796 797 798 799 (6) MACY11 30A(1052) 20-SEP-78 17:39 PAGE 22 SET UP FOR THE NEXT PASS THRU MODULE LIST .S8TTL SEQ 0253 SET UP FOR THE NEXT PASS THRU MODULE LIST ;+ ; THE MODULE-QUEUE-LIST HAS BEEN EXHAUSTED SO SET THE POINTER BACK TO THE ; BEGINNING OF IT AND UPDATE THE MODULE-TYPE-LIST POINTER 000472' 000472' 012767 000500' 000500' 062767 LET AC.MPTR '- #4C.MODQ 000002' 177300 000002 LET AC.TPTR '- AC.TPTR + #2 177416 MOV #AC.MODQ,AC.MPTR ADD N2,AC.TPTR ;+ ; IF THE NEW CURRENT TYPE IS THAT OF IOMODP MAKE SURE THE IOMODP ; MODULES CAN RUN AT THIS 4DDRESS ;- 000506' 000506' 080514' 000516' 000524' 000526' 000534' 000536' 000536' 000544' 000544' 027727 001013 026027 OCl1407 032760 001403 177412 102000 000042 000200 001777 000042 062767 000002 177360 IF @AC.TPTR EQ #IOMODP AND DT.ADDR(RO) NE #200 AND #NON32K SETIN DT.ADDR(RO) CMP @AC.TPTR,#IOMODP BNE 50017$ CMP DT.ADDR(RO),#200 BEQ 50017$ BrT #NON32K,DT.ADDR( SEQ 50017$ LET AC.TPTR .- AC.TPTR + #2 ADD #2,AC.TPTR ENDIF 50017$: + 000544' 000544' 000552' 000554' 000562' 000564' 000564' 000572' 000572' 000572' 000572' 000574' IF ITS AN IOMODR TYPE MAKE SURE IT CAN RUN AT THIS ADDRESS IF @AC.TPTR EQ #IOMODR AND DT.ADDR(RO) NE #200 THEN 027727 001007 026827 001403 177354 112000 000042 000200 OOOOO~ 177332 CMP SNE CMP BEQ @AC.TPTR,#IOMODR 50020$ DT.ADDR(RO),#200 50020$ ADD #2,AC.TPTR BR 50003$ LET AC.TPTR '- AC.TPTR + #2 062767 ENDIF 50020$: ENDDO 000611 50004$: ;+ ; THE MQDULE-TYPE-LIST HAS BEEN EXHAUSTED, SO SET THE MODULE-QUEUE-LIST ; EXHAUSTED INDICATOR WHICH SAYS THAT ALL OF THE OPTION MCDULES HAVE ; SEEN ACTIVATED ,' 000574' 000574' 052760 LET DT.STO(RO) 004000 000010 "- DT.STO(RO) SET.BY #MODEXH SIS #MODEXH,DT.STO(R ~CTIV - ACTIVATE NEXT OPTION MODULE ACTIV.MAC 13-SEP-78 16:25 800 801 802 803 804 305 (2) 803 (3) 807 (3) (3) (2) 908 809 MACY11 30A(1052) 20-SEP-78 17:39 PAGE 22-1 SET UP FOR THE NEXT PASS THRU MODULE LIST SEQ 0254 ;+ ; RETURN TO CALLER 000602' 000602' 000602' 000602' 004767 000606' 000606' 000606' 000606' 000207 000001 INLINE <1$:> 1 $: CALL RESREG OOOOOOG J5R PC,RESREG RTS PC ENDRTN 50000$: 50001$: .END ACTIV - ACTIVATE NEXT OPTION MODULE ,'\CTIV.MAC 13-SEP-78 16:25 000102 ACSR ACTaIT= 004000 000146RG ACTlV AC.MOD 000002RG AC. ;J\PT OOOOOORG AC.TPT 000124RG AC.TVP 000126RG ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 000010 ,'UTO l\UTOS1= 020000 A'oIJAS 000110 81TO 000001 BITOO 000001 BIT01 000002 81T02 000004 3IT03 000010 81T04 000020 000040 BIT05 BIT06 000100 8IT07 000200 BITOB 000400 001000 8IT09 [31 T 1 000002 BIT10 002000 004000 l3 IT 11 010000 B1T12 [31T13 020000 BIT 14 040000 3IT15 100000 000004 BIT2 BIT3 OC0010 000020 3IT4 000040 BITS 000100 BIT6 000200 BIT7 000400 BITB B1T9 001000 BKDEF 000002 BKJv.OD 000020 BKfV:ODE= 040000 8KSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDE.RCT:: 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGr,1C= 000000 DRopr.lO= 100000 DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.SLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= OC0030 DT.MLS= 000032 DT.MTI:: 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT. PT A= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT. SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1:: 000012 DT.SWR= 000056 DT.SVP= 000072 DT.WBU:: 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 MACV11 30A(1C52} SYMBOL TABLE 2C-SEP-78 ECCMEM= 000100 ECCSTA= 000010 ENBEOP::. 010000 ENBNUL= 000001 ENDLST= OOOJOO ENQCQ = ****** G EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 I COUI~T= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 1NTR 000120 10MOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 0350E'0 JACK KIPARO= 172340 K1P.A.R1:: 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 K1PAR7:: ~72356 KI PDRe.= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 0000~2 LF 17:39 PAGE 23 LPSTAT= 000001 MAPSTA= 000200 076GOO MED MEIV1PAS= 040000 MODEXH= OO·~OOO MODHOL= 002000 00OO02RG MODQ MODSEL= 001000 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGrJiAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSflt.B= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC:: 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 001)002 NON32K= 001777 000000 NULL 02-~020 OWEN PAERR 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLS1= 020000 004000 PDP60 010000 PDP70 000000 PRIO 000040 PR 11 000200 PR14 PRI5 = 000240 000300 PRI6 000340 PRI7 000000 PRO 000200 PR4 000240 PR5 PR6 = 000300 SEQ 0255 000340 PR7 177776 PS 177776 PSW RANNUM= 000054 R3UFEA= 000 1.30 RSUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOD= 020000 RELTlM= 010000 RESREG= ****** RES1 000056 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBCUT= 000177 RUNl\~OD= 100000 R5VALU= 001740 0'15464 SAM SAVREG= ****** SBADR = 000102 SBKfVlOD= 000000 SBKSEL= 010000 SC.ADR:= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SP01NT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATB·I= 060757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 G G G G ACTIV - ACTIVATE NEXT OPTION MODULE ;\CTIV.MAC 13-SEP-78 16:25 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 SVR4 000072 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 Tft,P.IO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 ASS. 000000 000510 MACY11 30A(1052) SYMBOL TABLE 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:ACTIV,DSKZ:ACTIV=SPMAC/ML,EQUATE,ACTIV RUN-TIME: 19 9 .4 SECONDS RUN-TIME RATIO: 49/28=1.7 CORE USED: 14K (27 PAGES) 20-SEP-78 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $ISK1 = 000001 $ISK2 = 000001 $LOCTA= 177777 $LSTIN= 000001 17:39 PAGE 23-1 SEQ 0256 $LSTTA= $NESTL= $NSKO $hlSK 1 $NSK2 $NSK3 $NSK4 $NSK5 $SAVLE= $SSKO = $TAGLE= $TAGNU= $TEMP $TSKO 000001 177777 000300 000120 000110 000110 000110 000110 177777 050004 177777 050021 000300 050003 050004 $TS~1 050020 $TSK2 $TSK3 050006 $TSK4 050007 $TSK5 050010 050016 $TSK6 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$D5T = 000000 $$ELOC= 000402 $$ERFL= 000000 $$F LAG= 000001 $SFROM= 000000 $$LOC = 000562R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000610R .MAIN. N;ACYl130A(1052) 20-SEP-78 13-SEP-78 16:13 EQUAT~.MAC 3 558 561 576 17:40 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR ARGCHK OOCOOO' .PRINT ;SPMAC: VERSION 1.1 ARGCHK ROUTINE SEQ 0257 ARGCHK CHECK A KEY68A~D COMMAND ARGUMENT MACY11 30A(1052) ARGCHK.MAC 28-JUL-7B 09:10 COMMON EQUATE MODULE 50B 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 324 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 20-SEP-7B 17:40 PAGE 19 SEQ 0258 .TITLE ARGCHK CHECK A KEyBOARD COMMAND ARGUMENT .IDENT JVO.Oj j++ MODULE NAME: ARGCHK FUNCTIONAL DESCRIPTION: THIS ROUTINE IS USED TO VERIFY THE EXISTENCE OF A KEYBOARD COMMAND ARGUMENT. IT IS GIVEN THE DECODE BUFFER POINTER. IT WILL SEARCH FOR THE FIRST NON SPACE CHARACTER. IF IT IS A <CR> A RETURN WITH ERROR OCCURS. IN EITHER CASE, THE UPDATED COMMAND DECODE BUFFER PTR IS RETURNED POINTING TO THE FIRST NON SPACE CHARACTER. INPUTS: 1. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: NONE OUTPUTS: UPDATED COMMAND DECODE BUFFER POINTER ERROR INDICATION IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL ARGCHK IN <PTR> OUT <NEWPTR> WHERE PTR = CURRENT COMMAND DECODE BUFFER POINTER NEWPTR = UPDATED COMMAND DECODE BUFFER POINTER VERSION: 0.0 , '-- EDIT DATE BY REASON ARGCHK CHECK A KEYBOARD COMMAND ARGUMENT MACY11 30A(1052) 20-SEP-78 17:40 PAGE 19-1 hRGCHK.MAC 28-JUL-78 09:10 COMMON DEFINITIONS AND REFERENCES FOR ARGCHK .SB1TL 558 559 560 561 (1) 562 363 564 000000' 000000' 000001 000001 COMMON DEFINITIONS AND REFERENCES FOR ARGCHK .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 565 56G 567 568 569 570 371 572 573 574 ;**************** ; REFERENCED BY OTHER MODULES: , .GLOBL ARGCHK ;**************** ;MODULE ENTRY POINT SEQ 0259 MACY11 30A(1052) ARGCHK CHECK A KEYBOARD COMMAND ARGUMENT ARGCHK ROUTINE 28-JUL-78 09:10 ARGCHK.MAC 576 577 578 (2) 579 3BO 581 582 583 584 585 (2 ) 586 (4) 587 588 389 590 591 592 (4) (6 ) (9) 593 (6) 594 (4 ) (3 ) 595 596 597 5g8 599 600 60, 602 (4 ) 603 604 (6) (9 ) 605 (2 ) 606 (2 ) (4 ) 607 608 (3 ) 6C9 610 (2 ) 611 (4 ) 612 613 .SBTTL 000000 1 000000 1 20-SEP-78 17:40 PAGE 19-2 SEQ 0260 ARGCHK ROUTINE ROUTINE ARGCHK <PTR, NEv.JPTR> ARGCHK: ;+ ; INITIALIZE AND SAVE CURRENT DECODE BUFFER POINTER , 000000 1 000000 1 010046 0000021 000002 1 01650C PUSH RO LET RO . - PTR(R5) 000000 MOV RO,-(SP) MOV PTR(R5) ,RO CMPB BNE (RO) ,#SPACE 50003$ INC RO Bq 50002$ MOV RO,NEWPTR(R5) CMPB BNE (RO),#CR 50004$ r.rov (SP)+,RO SEC BR 50001$ MOV (SP)+,RO 8R 50000$ ;+ ; WHILE SPACE, ADVANCE TO NEXT CHARACTER ', - 000006 1 000006 1 000006 1 121027 000012 1 001002 000014 1 0000141 005200 000016 1 000016 1 000773 000020 1 WHILEB (RO) EQ #SPACE DO 50002$: 000040 LET RO . - RO + #1 ENDDO 50003$: ;+ ; UPDATE THE CMD DECODE BUFFER POINTER ; AND IF A <CR> RETURN WITH ERROR. IF NOT A <CR> RETURN ; NO ERROR , 000020 1 000020 1 010065 000:)24 1 000024 1 121027 000030 1 001003 0000321 000032 1 012600 000034 1 000034 1 000261 000036 1 000403 000040 1 000040' LET NEWPTR(R5) IFB (RO) EO NCR THEN 000015 POP RO RETURN ERROR ELSE 50004$: 000040 1 000040 1 012600 000042 1 000042 1 000400 000044 1 . - RO 000002 POP RO RETURN NO. ERROR ENDIF ARGCHK CHECK A KEY8JARD COMMAND ARGCHK.MAC 28-JUL-78 09:10 (4 ) 614 615 (3 ) (2 ) (3 ) (2 ) 616 617 000044 ARG~MENT MACY11 30A(1052) ARGCHK ROUTINE 20-SEP-78 17:40 PAGE 19-3 SEQ 0261 50005$: 1 000044 1 000044 1 000044 1 000241 000046' 000046' 000207 000001 ENDRTN 50000$: CLC 50001~: RTS .END PC MACY11 3C1A(1052} ARGCHK CHECK .A. KEYSO':'RD CDrJlMAND ARGUM!::I\:T SYMBOL TA9LE 28-JUL-78 09:~0 ARGCHK.MAC ACSR 000102 ACT3IT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ARGCHK OOGOOORG ASB 000106 hSSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BITO 000001 BITOO COOO01 GI T;)1 000002 8IT02 000004 BIT03 000010 BIT04 000020 B I -r 05 000040 BIT06 000100 BIT07 000200 BIT08 000400 BIT09 001000 BIT1 000002 8IT10 002000 8IT11 004000 8IT12 010000 8IT13 020000 8IT14 040000 3IT15 100000 BIT2 000004 BIT3 000010 B1T4 000020 BIT5 000040 BIT6 000100 L31 T7 000200 BIT8 000400 BIT9 001000 BKDEF 000002 SKrJlOD 000020 B,\MODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144. CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR -:SRA 000100 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DC£VNT= 000011 DEFRTN= 000400 DlAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT . sr.~x = 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT . t<JBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 EN8EOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTf\T= OCO~)03 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 lCONT = 000036 ICOUNT= 000040 IDNUM ::;: 000122 IE 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 lNHRRE= 000!i00 000030 INIT 000120 INTR lOrJlOD 100000 IOMODP= 102000 IOMODR= 112000 lOMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 17~3S4 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 0040GO MODHOL= 002000 20-SEP-78 17:40 PAGE 20 SEQ 0262 MODSEL= MSGCf\D= MSGCf\S= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGIV1AP= MSGNUL= MSGPOP= MSGPRiVI= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSG5r,llS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NEWPTR= NOAPTY= NULL O~"'EN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW PTR RANNUM= RBUFEA= RBUFPA= 001000 0000;0 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000002 00:)000 024020 000010 002000 000100 000034 02JOOO 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000000 000054 000130 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDNHMI= 000022 RELERR= 000020 RELMOD= 020000 RELTlM= 010000 000056 RES1 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNIV:OD= 100000 RSVALU= 001740 075464 SAM SBADR = 000102 SBKI\10D= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 S?OINT= 000032 S?VALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBl= 064757 ST AT1 = 000027 SUSPND= 000001 SVRO 000062 000064 SVR1 000066 SVR2 000070 SVR3 S'v'n4 000072 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 l.)IPARO= 177640 ARGCHK CHECK A KEYBOARD COMMAND ARGUMENT MACY11 JOA(1052) ARGCHK.MAC 28-JUL-78 09:10 SYMBOL TABLE UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIP.~R4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIP:\R7= 177656 UIP;)RO= 177600 UIP;)R1= 177602 UIPiJR2= 177604 lJIPJR3= 177606 UIPDR4= 177610 UIPDRS= 177612 UIPDR6= 177614 UIPDR7= 177616 \'v'ASADR= 000104 vJBSTAT= 000040 WBUFEA= 000136 ABS. 000000 000050 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WHJHMI= 000222 XFLAG = 000005 XOFF 000023 000021 XON $BGNLE= 177777 $ERFLG= 000000 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:ARGCHK,CSKZ:ARGCHK=SPMAC/ML,EQUATE,ARGCHK RUN-T IME: 11 1 .3 SECONDS RUN-TIME RATIO: 29/14=2.1 CORE USED: 14K (27 PAGES) $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$\>JHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 20-SEP-78 17:40 PAGE 20-1 SEQ $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000110 $SAVLE= 177777 $SSKO = 050003 $TAGLE= 177777 $TAGNU= OS0006 $TEMP = 000300 $TSKO = OSOO05 $TSK1 = OSOO03 $$ARGC= 000004 $$BYTE= 000402 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$F LAG= 000001 $$FROM= 000000 $$LOC = 000030R $$LOCN= 000000 $$REG = 177777 $$RETU= 000001 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000050R 0~63 8ACTIV - ACTIVATE NEXT BACKGROUND MODULE MACY11 30A(1052) BACTIV.MAC 28-JUL-78 09:10 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 :530 531 532 533 534 53:, 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 55:; 554 555 556 .TITLE .IDENT 20-SEP-78 17:40 PAGE 19 SEQ 0265 BACTIV - ACTIVATE NEXT BACKGROUND MODULE IVO.OI ;++ MODULE NAME: BACTIV FUNCTIONAL DESCRIPTION: THIS ROUTINE FETCHES THE ADDRESS OF THE NEXT BACKGROUND OPTION MODULE TO BE ACTIVATED F~OM THE BACKGROUND JOB LIST CONTAINED WITHIN THE MODULE LIST, AND ACTIVATES THE BACKGROUND MODULE BY PLACING IT IN THE MONITOR'S NEXT-TO-EXECUTE S~OT INPUTS: 1. ADDRESS OF DATA TABLE IMPLICIT INPUTS: 1. DT.BLST 2. MODULE'S STATUS WORD (STAT) 3. MODUL~'S START ADDRESS (INIT) OUTPUTS: NONE IMPLICIT OUTPUTS: 1. ERRORINO E~ROR INDICATOR WHERE ERROR NO ERROR - NO BKGRD MODULE TO ACTIVATE BKGRD MOJULE HAS BEEN ACTIVATED PATHOLOGICAL CONNECTIONS: 1. DX.HDR 2. DX.RET SUBORDINATE ROUTINES CALLED: SAVREG - SAVE REGI3TERS RESREG - RESTORE REGISTERS FUNCTIONAL NONE SID~ EFFECTS: CALLING SEQUENCE: CALL BACTIV IN <DTABLE> VERSION: 0.0 EDIT ;-- BY DATE REASON BACTIV - ACTIV~TE NEXT BACKGROUND MODULE MACY11 30A(lC52) 20-SEP-78 BACTIV.MAC 28-JUL-78 09:10 COMMON DEFINITIONS AND REFERENCES 558 17:40 .S8TTL COMMON DEFINITIONS AND REFERENCES .PRINT .MCALL STRUCT STRUCi ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG = 1 PAGE 20 553 560 561 562 563 (1) 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 000000 1 000000 1 000001 000001 ;**************** ; REFERENCED BY OTHER MODULES .GLOBL .GLOBL .GLOBL .GLOBl .GLOBL ;MODULE'S ENTRY POINT ;MODULE1S BKGRD lIST POINTER ;SUSPENDED BKGRD MODULE1S HEADER ADDRESS ;SUSPENDED BKGRD MODULE'S RETURN ADDRESS ;MODULE'S STATUS WORD ;**************** 580 581 582 583 584 58:: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 BACTIV BA.MPTP BA.HDR BA.RET BA.STAT ; GLOBAL REFERENCES .GLOBL .GLOBL .GLOBL .GLOBL DX.HDR DX.RET SAVREG RESREG ;MONITOR'S NEXT-TO-EXECUTE SLOT ;SAVE REGISTERS ;RESTORE REGISTERS ; GLOBAL STORAGE 1 000000 000000 000002 1 000000 0000041 000000 000006 1 000000 BA.MPTR: .WORD BA.HDR: .WORD BA.RET: .WORD BA.STAT: .WORD 0 a 0 0 **:~************* ;BACKGROUND-JOB-LIST POINTER ;STORAGE FOR SUSPENDE~ MODULE'S HEADER ADDRESS ;STORAGE FOR SUSPENDED MODULE'S RESUME ADDRESS ;BACKGROUND LIST STATUS WORD SEQ 0266 BACTIV - ACTIVATE NEXT BACKGROUND MODULE MACY11 30A(1052) ~0-SEP-78 BACTIV.MAC 28-JUL-78 09:10 ACTIVATE BACKGROUND MODULE ROUTINE 601 502 603 604 (2) GOS 606 607 .SBTTL 000010 1 000010 1 (9) 612 (~ ) (4 ) 613 (4 ) 614 615 616 617 618 619 (3 ) 620 (4 ) 621 322 623 624 625 626 (6) (9 ) 627 (4 ) 628 (4 ) 629 (4 ) 630 (6) 63, (2 ) 632 (4 ) SEQ 0267 ROUTINE BACTIV: ;+ ; IS THERE A BACKGROUND MODULE CURRENTLY WORKING ITIS WAY THRU ; THE QuEUING MECHANISM? 000010 1 000010 1 032767 000016 1 001402 000020 1 000020 1 000261 0000221 000513 0000241 000024 1 IF #BKDEF SETIN BA.STAT THEN 000002 177770 BIT SEQ #BKDEF,BA.STAT 50002$ SEC BR 50001$ JSR PC,SAVREG MOV DTABLE(R5),RO RETURN ERROR ENDIF 50002$: ;+ ; DO THE NECESSARY SET UP STUFF 000024 1 000024 1 004767 000030 I 000030 1 016500 CALL SAVREG OOOOOOG LET RO : = DTABLE (R5) 000000 ;+ ; IS THERE A BACKGROUND MODULE WAITING IN A SUSPEND STATE? I~ SO, ACTIVATE IT BY ; ENTERING IT INTO THE MONITOR'S NEXT-TO-EXECUTE SLOT AND RETURN TO CALLER 000034 1 000034 1 03L757 000042 1 001413 0000441 0000441 016701 000050 1 000050 1 010167 000054 1 000054 1 016767 000062 1 000062 1 042767 000070 1 000070 1 000461 000072 1 0000721 IF #SUSPND SETIN BA.STATUS THEN 000001 177744 LET R1 BIT BEQ #SUSPND,BA.STATU 50003$ MOV BA.HDR,R1 MOV R1,DX.HDR MOV BA.RET,DX.RET BIC #SUSPND,BA.STATU BR 1$ : = BA. HDR 177732 LET DX.HDR .- R1 OOOOOOG LET DX.RET .- BA.RET 177724 OOOOOOG LET BA.STATUS := SA. STATUS CLR.BY #SUSPND 000001 177716 INLINE <BR 1$> ENDIF 50003$: 633 634 ;+ ; OTHERWISE SEARCH THE BACKGROUND LIST LOOKING FOR A BACKGROUND MODULE TO ; ACTIVATE 63~) 636 637 638 639 (6) PAGE 21 ROUTINE BACTIV <DTABLE> 60S 609 610 611 (6) ACTIVATE BACKGROUND MODULE 17:40 ., 000072 1 000072 1 027727 IF @BA.MPTR EQ #ENDLST THEN 177702 000000 CMP @BA.MPTR,#ENDLST 8ACTIV - ACTIVATE NEXT 5ACKGRGUND MODULE MACV11 30A(1052) 20-SEP-78 BACTIV.MAC 28-JUL-78 09:10 ACTIVATE BACKGROUND MODULE ROUTINE (9) 640 641 642 643 644 645 (4) 646 (4) 647 (4) 648 649 650 651 652 653 654 (3) 655 (4) 656 657 653 S59 660 661 (4) 662 (6) (9) (6) (9) 663 664 66::' 666 667 668 669 670 (4) 671 (4) 672 (4) 673 (4) 674 (6) 675 (2) 676 (4) 677 17:40 PAGE 21-1 SEQ 0268 000100' 001003 BNE 50004$ MOV DT.BLST(RO),BA.M MOV BA.MPTR,R3 MOV (P)BA.MPTR,Rl MOV STAT(rtl),R2 BIT BEQ BIT BNE #BIT14,R2 50006$ #BIT13!ACTBIT,R2 50006$ ;+ ; IF THE LIST ENTRY IS A ZERO, RESET IT TO THE TOP OF LIST 000102 1 000102' 016067 000110 1 000110 1 000110 1 000110 1 016703 LET BA.MPTR '- DT.BLST(RO) 000034 177670 ENDIF 50004$: LET R3 .- BA.MPTR 177664 ;+ ; SEARCH LIST UNTIL WE WIND UP BACK WHERE WE STARTED, OR UNTIL ; WE FIND A MODULE THAT CAN BE ACTIVATED ;- 000114 1 000114 1 000114 1 000114 1 017701 REPEAT 50005$: LET R1 '- @BA.MPTR 177660 ;+ ; ONE HAS BEEN FOUND, NOW MAKE SURE THAT IT IS ELIGIBLE TO RUN 000120 1 000120 1 016102 000124 1 000124' 032702 000130 1 001421 000132 1 032702 000136' 001016 LET R2 .- STAT(R1) 000026 IF #BIT14 SETIN R2 AND #BIT13!ACTBIT NOTSETIN R2 THEN 040000 024000 ;+ ; IF IT IS ELIGIBLE, ENTER IT INTO THE MONITOR1S NEXT-TO-EXECUTE SLOT, SET ITS ; ACTIVE BIT, AND UPDATE THE ; BACKGROUND LIST POINTER, AND RETURN TO THE CALLER ;- 00014C' 000140' 010167 000144 1 000144 1 010167 000150 1 000150' 016167 000156' 000156' 016161 000164 1 000164 1 062767 000172 1 000172 1 000420 000174 1 000174' LET DX.HDR .- Rl OOOOOOG MOV Rl,DX.HDR fl10V R1,BA.HDR rfrOV I NIT ( R1 ) • DX. RET rv"ov SPOINT(Rl) ,SVR6( ADD #2,BA.MPTR ER 1$ LET BA.HDR '- Rl 177632 LET DX.RET '- INIT(Rl) 000030 OOOOOCG LET SVR6(Rl) 000032 000076 000002 177606 .- SPOINT(Rl) LET BA.MPTR .- BA.MPTR + #2 INLINE <BR 1$> ENDIF 50006$: GACTIV - ACTIVATE NEXT BACKGROUND MODULE MACY11 30A(1052) ~0-SEP-78 BACTIV.MAC 28-JUL-78 09:10 ACTIVATE BACKGROUND MODULE ROUTINE 678 679 580 681 (6) 582 683 684 685 686 687 (6) (9) 688 (4) 689 (4) 690 (3) (6) 691 692 693 694 695 696 697 (3) 698 (2) (4) 699 700 701 702 703 704 (2) 705 (6) 706 707 (3) 708 (4) 709 (3) (2) (3) (2) 710 711 17:40 PAGE 21-2 SEQ 0269 ;+ ; UPDATE THE LIST POINTER AND CONTINUE SEARCHING 000174' 000174' 062767 LET BA.MPTR .- BA.MPTR + #2 000002 177576 ADD #2,BA.MPTR TST BNE @lBA.MPTR 50007$ MOV DT.BLST(RO),BA.M CMP BNE BA.MPTR,R3 50005$ JSR PC,RESREG ;+ ; IF ENTRY IS ZERO, RESET TO TOP OF LIST 000202' 000202' 000206' 000210' 000210' 000216' 000216' 000216' 000216' 000222' IF @BA.MPTR EO #0 THEN 005777 001003 177572 016067 000034 LET BA.MPTR '- DT.BLST(RO) 177562 ENDIF 50007$: UNTIL SA.MPTR EO R3 026703 001334 177556 ;+ ; DO THE NECESSARY CLEAN-UP AND RETURN 000224' 000224' 004767 000230' 000230' 000261 000232' 000407 CALL RESREG OOOOOOG RETURN ERROR SEC Bf< 50001$ ;+ ; SET THE ACT8IT AND RETURN 000234' 000234' 000234' 000234' 000242' 000242' 000246' 000246' 000250' 000250 000250' 000252' 000252' INLlNE <1$:> 1 $: LEI STAT(R1) .- STAr(R1) SET.BY #ACTBIT 052761 004000 004767 OOOOOOG 000026 CAL.L RESREG BIS #ACTBIT,STAT(R1) JSR PC,RESREG 8R 50000$ RETURN NO. ERROR 000400 ENDRTN 50000$: i CLC 000241 50001$: RTS 000207 000001 .END PC MACY11. 30A(1052) BACTIV - ACTIVATE NEXT BACKGROUND MODULE SYMBOL TABLE 28-JUL-78 09:10 BACTlV.MAC 000102 ACSR ACTB1T= 004000 ADD:122= 001000 ADR 000006 APTFER= 000004 hPTPRE= 000200 000106 ASB ASS c:r~'8 = 000010 ASTAT = 000104 AUTJ 000010 AUTOST= 020000 A\aJAS 000110 !3ACTIV 00OO10RG 3A.HDR 00OO02RG COCoOORG BA.lIJIPT E3A.RET 000004RG t31\. STA 000006RG BITO 000001 131TOO 000001 BIT01 OOC002 81T02 000004 E31T03 000010 8IT04 000020 BIT05 000040 BIT06 000100 000200 GIT07 BIT08 000400 001000 B1T09 000002 BITl BIT10 002000 8 IT 11 004000 B1T12 010000 020000 BIT 13 BIT 14 040000 BIT15 100000 000004 BIT2 B1T3 000010 BIT4 000020 BITS 000040 000100 BIT6 B117 000200 BIT8 000400 001000 B1T9 BKDEF 000002 BKrv,OD 000020 BKiV,ODE= 040000 BKSLSH= 000134 CA~RES= 000004 CASTAT= 000004 CDERCT:: 0001.l6 CD'.'.DCi= 000144 CKT1M = 100000 CLKPRE= 000001 CONFlG= 000056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC COOO03 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGrYlC= 000000 DROPMO= 100000 DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 00C034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.E5I= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN:: 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT . S~IiR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 20-SEP-78 DX.HDR= ****** G DX.RET= ****** G ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= OOO~03 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 lDNUM = 000122 IE 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 000120 lNTR IOMOD 100000 10MODP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4:: 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 K1PDR1= 172302 KlPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KlPDR5= 172312 KlPDRG= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 17:40 PAGE 22 SEQ 0270 LF LPSTAT= MAPSTA= MED ME[,1PAS= MODEXH= MODHOL= r.1ODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= ~~SGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGP:JP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSM8= MSGSrviH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PR I 1 PRI4 PRl5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 000012 000001 000200 076600 040000 00·-+000 002000 OOiOOO 000010 00J011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 OOJOOO 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 00)300 000340 000000 000200 000240 00J300 000340 177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000130 RBGFPA= 000126 RBUFSZ= 000132 RBUFVt-.= 000124 RDSERV= 000101 RDllli-iMI= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 01000,) RESREG= ***.~;,,* G 000056 RES1 000060 P-ES2 RICHAR= 031060 RPTDAT= 002000 R5TRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SAVREG= ****** G SBADR = 000102 SBr\I.~OD= 000000 S8KSEL= 010000 SC.ADR= 000006 SC.AlC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 Sc. CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SDVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBl= 064757 STAT1 = 000027 St.,;S~ND= OOOCOl 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 000072 SVR4 BACTIV - ACTIVATE ~~EXT B:..CKGROUND MODULE SYMBOL 8ACTIV.MAC 28-JUL-78 09:10 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 JIPAR2= 177644 JIPAR3= 177646 UIPAR4= 177650 UIPl\R5= 177652 UIPAR6= 177654 UIPAR7= 177656 JIPJRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 ASS. 000000 000254 UIPDR5= UIPDR6= UIPDR7= WASADR= W8STAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= WDFR 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 VJDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF XON 000021 $BGNLE= 177777 $ERFLG= 000000 $F$AND= 000310 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GE0JERATED: 0 DSKZ:BACTIV,DSKZ:BACTIV=SPMAC/ML,EQUATE,BACTIV RUN-TIME: 14 4 .3 SECONDS RUN-TIME RATIO: 35/19=1.8 CQRE USED: 14K (27 PAGES) MACY 11 30A(1052) 20-SEP-78 17:40 PAGE 22-1 SEQ 0271 TAAL~ $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR - 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA-= 000001 $NESTL= 177777 $NSKO = 000300 $NSKl = 000130 $NSK2 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050010 $TEMP = 000300 $TSKO = 050005 $TSKl = 050007 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$:';ST = 000000 $$ELOC= 000403 $$::RFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000222R $$LOCN= 000000 $$REG = 177777 $$RETU= 000001 $SRTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $5T(,;S1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 000254R RADMEM - REPORT BAD MEMORY TRANSFER BADMEM.MAC 28-JUL-78 09:11 508 509 510 511 512 513 314 515 516 517 518 519 520 521 522 523 524 525 526 :327 528 529 530 531 532 533 534 535 536 S37 535 539 540 541 542 54:; 544 545 54€. 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE 17:41 PAGE 19 SEQ 0273 .TITLE 8ADMEM - REPORT BAD MEMORY TRANSFER .IDENT IVO.Oj ;++ MODULE NAME: BADMEM FUNCTIONAL DESCRIPTION: THIS MODULE IS USED TO REPORT A BAD ME~ORY TRANSFER. IT IS PASSED THE ADDRESS A TABLE CONTAINING THE FAILING ADDRESS, ALONG WITH THE ACTUAL AND SHOULD-BE CONTENTS FOR THAT ADDRESS. THE ROUTINE CONVERTS THESE VALUES TO ASCII AND OUTPUTS THEM. INPUTS: DATA TABLE ADDRESS ADDRESS OF TABLE CONTAINING LOW-ORDER AND HIGH-ORDER BITS OF PA ACTUAL CONTENTS SHOULD-BE CONTENTS IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: BOAC BOA16 MSGDHOOK SAVREG RES REG ;BINARY TO OCTAL-ASCII CONVERSION ;16-BIT BINARY TO OCTAL-ASCII CONVERSION ;HOOK MESSAGE TO PROPER DRIVER FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL BADMEM IN <A,B,C,D> A=ADDRESS OF DATA TABLE B=ADDRESS OF LOW ORDER 16 BITS OF PA C=ACTUAL CONTENTS D=SHOULD-BE CONTENTS VERSION: 0.0 EDIT BY DATE REASO!'-J SADMEM - REPORT gAD MEMORY TRANSFER 28-JUL-78 09:11 BADME~.MAC 563 56,i 565 56G ( 1) 59~ 595 596 597 598 599 SEQ 0274 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 000000 1 000000 1 000001 000001 , i**************** , ; REFERENCED BY OTHER MODULES .GLOBL BADMEM ;**************** , ; G~08A~ .GL08L .GLOBL .GLOBL .GLOSl .GLOBL , REFERENCES BOAC BOA16 MSGDHOOK SAVREG RESREG BINARY TO OCTAL-ASCII CONVERSION 16-BIT BINARY TO OCTAL ASCII CONVERSION HOOK MESSAGE TO PROPER DRIVER ;**************** ; LOCAL STORAGE , 59~ 592 593 PAGE 19-1 .SBTTL COMMON DEFINITIONS AND REFERENCES 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 384 585 586 587 588 589 591 MACY11 30A(1052) 20-SEP-7G 17:41 COMMON DEFINITIONS AND REFERENCES 000000 1 000006 1 000014' 000022 1 000030' 000033 1 000043 1 OO()O50 1 000056 1 000060 1 000066' 000074 1 000102 1 000104 1 000112 1 041045 046505 05112~ 051105 035122 000010 040 052116 020072 000006 020040 0~6125 020072 000006 000045 042101 051117 047101 040445 040 046440 020131 043123 042104 020040 047105 047503 051524 051440 020104 047510 042502 BM.MSG: .ASCII /%BAD MEMORY TRANSFER%ADDR: / BM.ADR: .BlKB 10 .ASCII / CONTENTS: / . B l KB 6 .ASCII / SHOULD 8E: / BM . B D: BM . GD : .EVEN . B l KB 6 .ASCIZ /%/ BADMEM - REPORT BAD MEMORY TRANSFER 28-JUL-73 09:11 SADMEM.MAC 601 602 603 (2 ) 604 605 606 607 608 609 {3 ) 510 511 612 613 614 615 616 617 (4) 618 (4 ) 619 (4) 620 (4) 621 622 623 624 625 626 627 ( 3) ( 7) (6) (5 ) (4 ) (3) (3 ) 628 629 630 631 63:: 633 634 (3) (5 ) (4) (3 ) (3 ) 635 (3 ) (5 ) (4) MACV11 30A(1052) BADMEM ROUTINE 20-SEP-78 17:41 PAGE 19-2 SEQ 0275 .SBTTL BADMEM ROUTINE ROUTINE BADMEM <TABL,PA,BD,GD> 000114' 000114' BADMEM: ;+ ; SAVE REGISTERS 000114' 000114' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG ;+ ; SET RO TO THE START OF THE DATA TABLE, R1 TO THE ADDRESS OF THE PA TABLE, ; R2 TO THE ACTUAL CONTENTS, AND R3 TO THE SHOuLD-BE CONTENTS. 000120' 000120' 000124' 000124' 000130' 000130' 000134' 000134' LET RO 016500 000000 · - TABL(R5) · - PA(R5) LET R2 · - BD(R5) LET R3 · - GD(R5) LET R1 016501 000002 016502 000004 016503 000006 MOV TABL(R5),RO MOV PA(R5),R1 MOV BD(R5),R2 MOV GD(R5),R3 MGV MOV MJV MOV MOV JSR MOV R5,-(SP) fBM.ADR,-(R5) 2 (R 1 ) ,- (R5) (R1) ,-(R5) RO,-(R5) PC,BOAC (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #BM.BD,-(R5) R2,-(R5) PC,BOA16 (SP)+,R5 MOV MOV MOV RS,-(SP) NBM.GD,-(R5) R3,-(R5) ;+ ; CONVERT THE PA TO ASCII. , 000140' 000140' 000142' 000146' 000152' 000154' 000156' 000162' CAL.L BOAC IN <RO,(R1),2(R1),#BM.ADR> 010546 0127 4 5 016145 011145 010045 004767 012605 000033' 000002 OOOOOOG ;+ ; CONVERT THE ACTUAL AND SHOULD-BE DATA TO ASCII. 000164' 000164' 000166' 000172.' 000174' 000200' 000202' 000202' 000204' 000210' CALL BOA16 IN <R2,#BM.BD> 010546 012745 010245 004767 012605 010546 012745 010345 000060' OOOOOOG CALL BOA16 IN <R3,NBM.GD> 000104' BADMEM - REPORT BAD MEMORY TRANSFER 28-JUL-78 09:11 BADiAEM. MAC ( 3) (3 ) 636 637 638 639 640 341 642 (3) ( 7) (6 ) (5 ) (4 ) ( 3) (3 ) 643 (2 ) 644 (2) 645 ( 2) 646 647 648 649 650 651 652 (3 ) 653 654 (3 ) (3 ) (2 ) 655 000212 1 004767 000216 1 012605 MACY11 30A(1052) BADrvlEM ROUTINE 20-SEP-78 17: 41 PAGE 19-3 SEQ 0276 OOOOOOG JSR MOV PC,BOA16 (SP)+,R5 MOV MOV MOV MJV MOV JSR MOV R5,-(SP) #2$,-(R5) #BM.MSG,-(R5) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 1 $: NOP BR 1$ ;+ ; OUTPUT THE MESSAGE. , 000220 1 000220 1 000222 1 C00226 1 000232 1 000236 1 000240 1 000244 1 000246 1 000246 1 000250 1 000250 1 000252 1 000252 1 CALL MSGDHOOK IN <RO,#MSGPOP,#BM.MSG,#2$> 010546 012745 012745 01 274~, 010045 004767 012605 000252 1 000000 1 000002 OOOOOOG INLINE <1$: NOP> INLlNE <BR 1$> 000240 000776 INLINE <2$:> 2$: ;+ ; RESTORE REGISTERS AND RETURN. , 000252 1 000252 1 004767 000256 1 000256 1 000256 1 000256 1 000207 000001 CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 50001$: .END BADr,1EM - REPORT BAD MEMORY TRANSFER et,DMEr\~. MAC ACSR ACTBIT= ADDR22= ADR APTFER= APTPRE= ASB ASSEMS= ASTAT = ,\UTO AUTOST= AloJAS BADfViEM GO BITO F31 TOO BIT01 lHT02 31T03 81T04 f:3ITOS aIT06 3IT07 3IT08 81T09 ~3 I T 1 :3 IT 1 a ~n T 11 aIT 12 61T13 JIT14 JIT15 :31 T 2 d1T3 31T4 B1T5 BIT6 81T7 3IT8 3IT9 BI,DEF SKMOO :3kMOOE = 3KSLSH::: 3M.ADR 3'\11. SD 8M.GO 3M.MSG SOAC SOA16 = CAPRES= CASTAT= CDERCT= 28-JUL-78 09: 11 000102 004000 001000 000006 000004 000200 000106 000010 000104 000010 02)000 000110 0OOl14RG 008004 000001 000001 000002 000004 000010 000020 000040 000100 ['00200 000400 001000 000002 002000 ()C4000 010000 020000 040000 100000 000004 000010 000020 000040 000100 000200 000400 001000 000002 000020 040000 000134 008033R 00OO60R 000104R OOOOOOR **"'*** G **"'*** G 000004 000004 000146 CDWDCT= CKTIM = CLKPRE= CONFIG= CQOVF CR CSf\A CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRTN= DIAGMC= DROPMO= DSEVNT= DT.ADD= DT.AP = DT.APK= DT.BLS= DT.CFO::: DT.CF1= DT.ERR::; DT.ESI'" DT.EVN::: DT.EXS= DT.FCH= DT.FCN= DT.HMX= DT.KBE:: DT.KBP= DT.KBR= DT.KBU::: DT.MLS= DT.MTI= DT.OFF= DT.PAS= DT.PC = DT.PFL= DT.PSW= DT.PT,l,= DT.RCS= DT.REL= DT.SCT= DT.SMX= DT. SP = DT.SSI= DT.STO= DT.ST1= DT.SWR= DT.SYP= DT.WBU= DT.WHL= 000144 100000 000001 000056 000001 000015 000100 000102 000003 00C017 000025 000011 000400 000000 100000 000014 000042 000100 000076 000034 000014 000016 000020 000044 000000 000060 000037 000036 000104 000024 000026 000022 000030 000032 000110 000070 000074 000002 000062 000004 000C'64 000102 000040 000066 000106 000006 000046 000010 000012 000056 000072 000050 000054 MACY11 30A(1052) SYMBOL TABLE 20-SEP-78 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000D00 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 000006 GO HRDCNT= 00()044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT INTR 000120 IOMOD 100000 IOMODP::: 102000 IOMODR::: 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 17:41 PAGE 20 SEQ 0277 KTXTND= LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOL= 1\1ODSE L= MSGCKD= MSGCKS= MSGDER= MSGDHO= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD::: MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSM8= rJlSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL Oi'.iEN PA PAERR PARPRE= PARSTA= PASCNT::: PDPLSI= PDP60 PDP70 PRIO PRIl PRI4 PRI5 PRI6 PRI7 PRO PR4 040000 000012 000001 000200 076600 040000 004000 002000 001000 000010 000011 000005 **""'** G 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 00,)014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000002 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 OC0340 000000 000200 PR5 PR6 PR7 PS PSW RAr',jNUM= RSUFEA= RBUFPA= RBUFSZ= RBUFVA= ROSERV= ROWHiVlI = RELERR= RcLMOD= REL iIM= RESREG= RES1 RES2 RICHAR= RPTDAT= RSTRT = RUBOUT= RUNMOD= R5V,l,LU= SAM SAVREG= SBADR = SaKMOD= SBKSEL= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SGFCNT= SOFPAS= SPACE = SPOINT= SPVALU= SRO SR1 SR2 SR3 STAT SlATSl= ST AT1 = SUSPND= SVRC SVRl 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 ****** G 000056 000060 031060 002000 000112 000177 100000 001740 075464 ****** 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 064757 000027 000001 000062 000064 ,.. \,;l E:1AD:v!EM - REPORT BAD MEMORY TRANSFER BADMEM.MAC 28-JUL-78 09: 11 SVR2 000066 SVR3 000070 SVR4 000072 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TABL 000800 Trv1P 10 = 000002 TQOIIF = 000002 UIPARO= 177640 UIPAR1= 177642 LJIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UI~DRO= 1776CO ABS. 000000 000260 UIPDR1::: UIPOR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPCR7= WASADR= WBSTAT= WBUFEA= WSUFPA= WBUFRQ= WBUFSZ= WOFR WDTO WTINRE= WTWHMI= XFLAG XOFF MACY11 30A(1052) SYMBOL TABLE 177602 177604 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 000352 000222 000005 00C023 ooe 001 ERRORS DE:ECTED: 0 DEFAULT GLOBALS GENERATED: 0 ~SKZ:BADMEM.DSKZ:6ADMEM=SPMAC/ML.EQUATE.8ADMEM RUN-T llViE: 11 1 .3 SECONDS RUN-TIME RATIO: 28/14=2.0 ceRE USED: 14K (27 PAGES) 20-SEP-78 XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 17:41 PAGE 20-1 SEQ 0278 $F$SEL= 000140 $F$THE= 00J330 $F$TRU= 000";04 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050002 $TEMP = 000300 $$ARGC= 000010 $$BYTE= 000000 $$CASE= 000000 $$OST ::: $5ELOC= $$ERFL= $$F LAG= $$FROM= $$LOC ::: $$LOCN= $$REG = 000000 000000 000000 000000 00')000 000000 000000 177777 $~RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000260R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 558 564 594 17:41 TA8LE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000· .PRINT ;SPMAC: VERSION 1.1 BDACNV ROUTINE SEQ 0279 BDACNV BINARY TO DECIMAL-ASCII CONVERSION ROUTINE MACY11 30A(1052) BDACNV.MAC 28-JUL-78 09:11 COMMON EQUATE MODULE 508 509 510 511 512 513 314 515 516 517 518 519 520 521 522 523 524 525 523 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 .TITLE .IDENT 17:41 PAGE 19 BINARY TO DECIMAL-ASCII CONVERSION ROUTINE ;++ MODULE NAME: BDACNV FUNCTIONAL DESCRIPTION: THIS ROUTINE CONVERTS A 16-BIT UNSIGNED BINARY NUM8ER TO A 5-DIGIT DECIMAL-ASCII NUMBER. THE TECHNIQUE USED IS THAT OF REPEATED DIVISION BY POWERS OF 10 (10), WITH THE REMAINDERS, WHICH COMPOSE THE DECIMAL NUMBER, BEING CONVERTED TO ASCII. INPUTS: 1. 16-8IT BINARY N~MBER THAT IS TO BE CONVERTED 2. ADDRESS AT WHICH THE RESULT IS TO BE STORED IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: 1. 5-CHARACTER DECIMAL-ASCII RESULT PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: 1. SAVREG 2. RESREG SAVE REGISTERS RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL BDACNV IN <NUMBER,ADDRESS> NUMBER 16-8IT BINARY NUMBER TO BE CONVERTED ADDRESS = ADDRESS TO STORE 5-CHAR RESULT VERSION: 0.0 554 555 556 BDACNV JVO.Oj 20-SEP-78 EDIT ;-- BY DATE REASON SEQ 0280 BDACNV BINARY TO DECIMAL-ASCII CONVERSION ROUTINE MACY11 30A(1052) 20-SEP-78 BDACNV.MAC 28-JUL-78 09:11 COMMON DEFINITIONS AND REFERENCES 558 559 560 561 .SBTTL COMMON DEFINITIONS AND .PRINT .MCALL STRUCT STRUCT ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG = 1 17:41 PAGE 20 REF~RENCES 562 563 S64 ( 1) 565 S6G 567 568 569 570 571 572 573 574 575 576 577 578 579 580 000000 1 000000 1 000001 000001 ;**************** ; REFERENCED BY OTHER MODULES .GLOBL BDACNV ;MODULE'S ENTRY POINT ;**************** 581 ; GLOBAL REFERENCES 582 582 .GLOBL .GLOBL 584 585 586 587 ;**************** , 588 589 590 591 592 SAVREG RESREG ; LOCAL STORAGE 000000 1 023420 000006 1 000012 001750 000001 000144 ;SAVE REGISTERS ;RESTORE REGISTERS SEQ 0281 BDACNV BINARY TO DECIMAL-ASCII CONVERSION ROUTINE BDACNV ROUTINE 2B-JUL-78 09:11 BDACNV.MAC (4 ) 641 642 (4) (6) (9) 643 (6) 644 (6 ) 645 (4 ) (3 ) 646 647 (6) 648 (4 ) 849 850 (6) 651 (4) (3 ) 652 653 MACY11 30A(1052) 20-SEP-78 17: 41 PAGE 20-2 SEQ 0283 000040 1 005003 000042 1 OClO042 1 0000421 026511 000046 1 103404 000050 1 000050 1 161165 000054' 000054' 005203 000056 1 000056 1 000771 000060 1 000060 1 000060 1 062703 000064 1 000064 1 110320 000066 1 000066 1 062701 000072 1 0000721 000760 000074 1 CLR R3 CMP BlO NWJ1(R5), (R1) 50005$ SUB (R1) ,NUM(R5) INC R3 BR 50004$ ADD #60,R3 MOVB R3,(RO)+ AJD #2,R1 BR 50002$ JSR PC,RESREG RTS PC WHILE NUM(R5) HIS ( R1 ) DO 50004$: 000000 LET NUM(R5) 000000 LET R3 . - NUM(R5) - ( R1 ) .- R3 + #1 ENDDO 50005$: LET R3 . - R3 + #60 000060 lET (RO)+ : B= R3 LET R1 . - R1 + #2 000002 ENDDO 50003$: 65~ 655 655 657 658 659 (3) 660 661 662 ( 3) (3) (2 ) 663 664 ;+ ; RESTORE REGISTERS AND RETURN. , 000074 1 000074 1 004767 000100 1 000100 1 000100 1 000100 1 000207 000001 CALL RESREG OOOOOOG ENDRTN 50000~: 50001$: .END BINARY TO DECIMAL-ASCII CONVERSION ROUTINE !:3DACNV SYMBOL TABLE 28-JUL-78 09:11 BDACNV.MAC ACSR ACTSlT= ADDR22= ADR APTFER= APTPRE= ASB ASSEMB= t\STAT = AUTO i\UTJST= AI>JAS GDACNV GO. TEN GITO BITOO SITOl :3IT02 GITJ3 8IT04 DIT05 BIT06 BIT07 I) IT 08 :31 T 09 131T1 BIT10 BIT11 !3IT 12 81T13 B1T14 BIT 15 BIT2 81T3 81T4 !3IT5 BIT6 3IT7 BITB B1T9 8KDEF BKIVOD BKrv'ODE= SKSLSH= CAPRES= CASTAT= CDE.ReT= CDI\'DC7= CKTIM = CLKP"E= CONF1G= CQOVF CR 000102 004000 001000 000002 000004 000200 000106 000010 000104 000010 020000 000110 000012RG OOOOOOR 000001 000001 000002 000004 000010 000020 000040 000100 000200 000400 001000 000002 002000 004000 0100CO 020000 040000 iOOOOO 000004 000010 000020 000040 000100 000200 000400 001000 000002 000020 040000 000134 000004 000004 000146 000144 100000 000001 000056 000001 000015 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000080 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT . HI\~X= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.r.t.TI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.5Tl= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WlL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 MACY11 30A( OJ 052) ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000~06 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 IE 000100 INDPAR= 000040 INHDRP= O~OOOO INHEPR= 020000 H!HREL= 001000 INHRRE= 000400 000030 INIT 000120 INTR IOMOD 100000 IOMODP= 102000 10MODR= 112000 10MODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 1723::0 KIPAR5= 172352 K1PAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 K1PDR1= 172302 KIPDR2= 172304 KIPDR3= '\72306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 K1PDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= OOU020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 MED 076600 MEMPAS= 040000 MODEXH= 004000 20-SEP-78 17:41 PAGE 21 SEQ 0284 MODHOL= MCDSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRI\~= MSGRES= MSGSFT= MSGSKE= MSGSfJlB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUO?= NOAPTY= NULL NUM OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDPoO PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= RBUFEA= RBUFPA= 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 Rl3UFSZ= R8UFVA= RDSERV= RDWHMI= RELERR= RElMOD= REL TIM= RESREG= RES1 RES2 RICHAR= RPTDAT= RSTRT = RUBOUT= RUt\I\IiO 0= R5VALU= SAM SAVREG= SBADR = SBKIV10D= SBKSEL= SC.t-DR= SC.ALC= SC.APC= Sc. CKL= SC.CKP= SC.CLO= SC.HLD= SC ° SCA= 000132 000124 000101 000022 000020 020000 010000 *****-+: G 000056 000060 031060 002000 000112 000177 100000 001740 075464 ****** G 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 SEN~LS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 S?VALU= 002200 177572 SRO SR1 177574 177576 SR2 172516 SR3 STAT 000026 STATB1= 064757 STAT1 = uOO027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 000072 SVR4 SVR5 000074 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TM1='1O = 000002 8DACNV BINARY TO DECIMAL-ASCII CONVERSION ROIJTINE SYMBOL TABLE 28-JUL-78 09:11 BOACNV.MAC TQOVF = UIPARO= LJIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= LJIPAR7= UIPJRO= UIPDR1= UIPi)R2= UIPDR3= LJIPDR4= UIP~R5= UIPDR6= UIPDR7= \~ASADR = ~~8S TAT = ABS. WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= WOFR WOTO WTINRE= WTWHMI= XFLAG ::: XOFF XON $BClNLE= $ERFLG:.:: $F$AND= $F$SAO= $F$BLA= $F$CAS= $F$OEC= $F$OO ::: 000002 177640 177642 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 000000 000102 000': 36 000134 000140 000142 000116 000114 000352 000222 000005 000023 000021 177777 000400 000310 000401 000170 000150 000220 000340 000 001 a E~RO"S DETECTED: DEFAULT GLOSALS GENERATED: 0 DSKZ:BDACNV,DSKZ:BDACNV=SPMAC/ML,EQUATE,BOACNV RUN-TIME: 12 2 .4 SECONDS RUN-TIME RATIO: 30/15=1.9 CORE USED: 14K (27 PAGES) MACY11 30A(1052) $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT::: 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $LOCTA= 177777 $LSTIN= 000001 20-SEP-78 17: ·l1 PAGE 21-1 SEQ 0285 $LSTTA= $NESTL= $~JSKO = $NSK1 = $NSK2 = $SAVLE= $SSKO = $TAGLE= $TAGNU= $TEMP $TSKO $TSK1 = $TSK2 = $TSK3 = $$ARGC= $$BYTE= $$CASE= $$OST = $$ELOC= 000001 t77777 000300 000120 000120 177777 050003 177777 050006 000300 050002 050003 050004 050005 000004 000:;03 000000 000000 000000 $$ERFL= 000000 $$FLAG= 000340 $$FROM= 000000 $$LOC = 000046R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $SRTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000102R .rMIN. MACY11.30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 530 533 572 632 653 701 764 al0 17:42 TABLE OF CONTENTS COMMON EQUATE MODULE cm,lMON DEFINITIONS AND STORAGE .PRINT ;SPMAC: VERSION 1.1 000000' BADVEC FIELD AN INTERRUPT THROUGH AN INCORRECT VECTOR BADVEC ROUTIh!E PBDVEC PROCESS EMTS(& INTERRUPTS THRU UNEXPECTED VECTORS) PBD'JEC ROUT I hiE SETVEC INITIALIZE ALL UNUSED VECTOR LOCATIONS (0-774) SETVEC ROUTINE SEQ 0:286 BDVSRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS MACY11 30A(1052) BDVSRV.MAC 28-JUL-78 09:11 COMMON EQUATE MODULE 508 509 .TITLE .IDENT BDVSRV 20-SEP-7B 17:42 PAGE 19 SEQ 0287 SERVICE INTERRUPTS THROUGH INCORRECT VECTORS JVO.Oj 510 511 512 513 ;++ MODULE PACKAGE NAME: BDVSRV 514 515 516 517 518 519 FUNCTIONAL DESCRIPTION: THIS PACKAGE CONSISTS OF THE FOLLOWING ROUTINES: 1. BADVEC - ISSUES AN EMT INSTRUCTION 2. PBDVEC - FORMS BAD VECTOR MESSAGE 3. SETVEC - SETS UP VECTORS 520 521 522 523 524 525 526 527 VERSION: 0.0 EDIT DATE BY REASmJ SDVSRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS MACV11 30A(1052) BDVSRV.MAC 26-JUL-78 09:11 CCMMON EQUATE MODULE 529 530 531 532 533 (1 ) 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 545 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 56B 569 .SBTTL 20-SEP-78 17:42 PAGE 19-1 COMMON DEFINITIONS AND STORAGE .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1 . 1 000000' 000000' 000001 000001 $LSTIN=l $LSTTAG=l ;REFERENCED BY OTHER MODULES: , .GLOBL .GLOBL .GLOBL .GLOBL BADVEC BADVC1 PBDVEC SETVEC ;MODULE ;MGDULE ;MODULE ;MGDULE ENTRY ENTRY ENTRY ENTRY POINT POINT POINT POINT ;**¥***~********* ;**************** ; GLOBAL REFERENCES .GLCl3L .GLOBL .GLOBL .GLOBL ENOTO DTABLE SAVREG RESREG ;MESSAGE ENQUEUER ;ADDRESS OF DTABLE ;SAVE REGISTERS ;RESTORE REGISTERS ; ;**************** ; 000000' oooooe 0000021 000000 OCOO041 oooooe OCOO06 1 000000 0000.10 1 000000 000012' 000000 0000141 :"OCAL STORAGE BD.VCT: . t>JORD 0 .WORD 0 .WORD 0 .WORD 0 .WORD 0 0 .WORD SVR5S: ;HIGH/LOW VECTOR FLAG ;SAVE R5 STUFF HERE , Nor IN INTERRUPTED MODULE SEQ 0288 BDVSRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS MACY11 30A(1052) BDVSRV.MAC 28-JUL-78 09:11 COM~ON DEFINITIONS AND STORAGE 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 596 599 600 MODULE NAME: BADVEC FUNCTIONAL DESCRIPTION: THIS ROUTINE IS ENTERED AS A RESULT OF AN INTERRUPT THROUGH AN INCORRECT VECTOR. BY ISSUING AN EMT INSTRUCTION,THE PSW IS PUSHED ONTO THE STACK. THE PSW WILL CONTAIN THE LOCATION OF THE BAD VECTOR. THE ROUTINE INVOKED BY THE EMT DETERMINES THE BAD VECTOR AND QUEUES A BAD VECTOR MESSAGE. CONTROL IS RETURNED TO THIS ROUTINE AND A RETURN TO THE INTERRUPTED ROUTINE THEN OCCURS. INPUTS: NONE IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE 602 603 604 SUBORDINATE ROUTINES CALLED: NONE 608 609 610 611 612 613 614 615 616 FUNCTIONAL SIDE EFFECTS: SINCE THE HARDWARE HAS INTERRUPTED THROUGH THE WRONG VECTOR ITIS INTERRUPT ROUTINE WILL NOT BE EXECUTED. THE DECX OPTION MODULE CONTROLLING THE HARDWARE WHICH INTERRUPTED THROUGH THE WRONG VECTOR ADDRESS WILL BECOME SUSPENDED. CALLING SEQUENCE: CALLED BY A HARDWARE INTERRUPT THROUGH AN INCORRECT VECTOR VERSION: 0.0 617 618 EDIT 619 620 621 622 PAGE 19-2 ;++ PATHOLOGICAL CONNECTIONS: NONE 606 60'1 17:42 .SBTTL BADVEC FIELD AN INTERRUPT THROUGH AN INCORRECT VECTOR .IDENT JVO.Oj 601 605 20-SEP-78 ;-- DATE By REASON SEQ 0289 BDVSRV SERVICE INT~RRUPTS THROUGH INCORRECT VECTORS MACY11 30A(1052) 2C-SEP-78 17:~2 PAGE 19-3 BDVSRV.MAC 28-JUL-78 09:11 BADVEC fIELD AN INTERRUPT THROUGH AN INCORRECT VECTOR 624 625 626 627 528 6~9 630 SEQ 0290 BDVSRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS BDVSRV.MAC 28-JUL-78 09:'1 PBDVEC PROCESS 653 654 555 656 657 658 S59 G60 661 662 663 664 665 666 667 668 669 670 MACY'1 30A(1052) 20-SEP-78 17:42 PAGE 19-5 INTERRUPTS THRU UNEXPECTED VECTORS) E~TS(& .SBTTL PBDVEC PROCESS EMTS(& INTERRUPTS THRU UNEXPECTED VECTORS) .IDENT IVO. 01 ;++ MODULE NAME: PBDVEC FUNCTIONAL DESCRIPTION: IF THE SYSTEM HARDWARE INTERRUPTS THRU AN UNEXPECTED VECTOR, AN EMT INSTRUCTION IS EXECUTED WHICH PUSHES THE PSW AND PC ONTO THE STACK AND THIS ROUTINE IS ENTERED. THIS PSW ON THE STACK CONTAINS THE UNEXPECTED VECTOR ADDRESS. A MESSAGE CONTAINING THE UNEXPECTED VECTOR IS QUEUED AND A RETURN TO THE ROUTINE WHICH ISSUED THE EMT TAKES PLACE. INPUTS: NONE 671 672 673 IMPLICIT INPUTS: NONE 674 675 676 OUTPUTS: NONE 677 IMPLICIT OUTPUTS: NONE 678 679 580 681 682 683 684 685 686 687 688 689 690 PATHOLOGICAL CONNECTIONS: ADDRESS OF DATA TASLE SUBORDINATE ROUTINES CALLED: ENQTQ MESSAGE ENQUEUER FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: ISSUE AN EMT INSTRUCTION 591 692 693 694 695 596 697 698 699 VERSION: 0.0 EDIT DATE BY REASON SEQ 0292 BDVSRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS BDVSRV.MAC 28-JUL-78 09:11 P8DVEC ROUTINE 701 702 703 (2) 704 705 706 707 708 709 (2) (3 ) (4) 710 711 712 713 714 (4) 20-SEP-78 17:42 PAGE 19-6 SEQ 0293 .SBTTL PBDVEC ROUTINE IROUTINE PBDVEC 000024' 000024' PBDVEC: ;+ ; INITIALIZATION - SAVE RO,Rl AND SAVE R5 HERE PUSH RO,Rl ,R5 000024' 000024' 010046 0000 26' 0 1-0 1 46 000030' 010546 MOV MOV M'JV RO,-(SP) R1,-(SP) R5,-(SP) MOV #SVR5S,R5 MOV 10(SP) ,RO MOV 10(SP),R1 BIC #177760,R1 BIC #177417.RO ASL R1 BIS R1 ,RO ;+ ; INIT THE NEW R5 STACK 000032' 000032' 012705 LET R5 := #SVR5S 000014' 715 716 717 718 ;+ GET THE UNEXPECTED VECTOR CODE FROM THE STACK SAVE IT IN RO,R1. CLEAR OUT ALL BUT BITS 0-3 IN R1 AND ALL BUT BITS 4-7 IN RO. SHIFT R1 TO LEFT. AND COMBINE THE TwO WORDS INTO RO. THIS IS DONE TO CONVERT THE SPECIAL VECTOR CODE BACK INTO THE ACTUAL VECTOR IT REPRESENTS. 7~9 720 721 722 723 724 725 726 727 (4) 728 (4) 729 (6) 730 (6) 731 (7) 732 (6) 733 734 735 736 737 738 (6) (9) (6) (9) 739 (6) 740 MACV11 30A(~052) 000036' 000036' 000042' 000042' 000046' 000046' 000052' 000052' 000056' 000056' 000060' 000060' LET RO .- 10(SP) 016600 016601 042701 000010 LET R1 .- 10(SP) LET Rl .- R1 CLR.BY #177760 000010 177760 LET RO .- RO CLR.BY #177417 042700 177417 LET Rl .- R1 SHIFT +1 006301 LET RO .- RO SET.BY R1 050100 ;+ ; IF INTERRUPT VECTOR GREATER THEN 374 THEN ADD 400- TO BAD VECTOR 000(62' 000062' 026627 00~C70' 101406 000072' 026627 000100' 1C3002 000102 i 000102' 062700 000106' IF 6(SP} HI #BADVC1 AND 6(SP) LO #BADVEC THEN 000006 000014' 000006 000020' CMP eLOS CMP BHIS 6(SP) ,#BADVC1 50002$ 6( SP) ,lfBADVEC 50002$ ADD #400,RO LET RO .- RO + '400 000400 ENDIF BDVSRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS PBDVEC ROUTINE 28-JUL-78 09: 1 1 ElDVSRV.MAC (4 ) 741 742 743 744 745 746 (3 ) (8) (7 ) (6) (5 ) (4 ) ( 3) (3 ) 747 748 (3 ) (4 ) 756 757 758 759 760 (3 ) (3 ) (2) 761 762 30A(~052) 20-SEP-78 17:42 PAGE 19-7 SEQ 0294 500025: 000106 1 ;+ ; ENQUEUE THE MESSAGE ;- 000106 1 000106' 000110' OC0114' 000120 1 000122 1 000126' 000132 i 000136' CALL ENQTQ IN <#DTABLE,#MSGVEC,RO,#O,#O> 012745 012745 01004=, 012745 012745 004767 JSR MOV R5,-(SP) #0,-(R5) #0,-(R5) RO,-(R5) hMSGVEC,-(R5) #DTABLE,-(R5) PC,ENQTQ (SP)+,R5 CLR SD.VCT MOV MOV MOV (SP)+,R5 (SP)+,R1 (SP)+,RO MOV MOV MOV MOV MOV 010546 000000 000000 000020 OOOOOOG OOOOOOG MeW 012605 ;+ ; CLEAN UP 743 750 751 752 (4) 753 754 755 (2 ) MACY11 , 000140' 000140' 005067 000144' 000144' 012605 000146' 012601 000150' 012600 LET SD.VCT . - #0 177634 POP R5,R1,RO ;+ ; RETURN ., 000152 1 000152 1 000152' 000152' 000002 ENDRTI 50000$: 5000~$: RTI BDVSRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS MACY11 30A(1052) 20-SEP-78 17:42 PAGE 19-8 BDVSRV.MAC 28-JUL-78 09:11 SET~EC INITIALIZE ALL UNUSED VECTOR LOCATIONS (0-774) 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 .SBTTL SETVEC INITIALIZE ALL UNUSED VECTOR LOCATIONS (0-774) .IDENT IVO.O/ ;++ MODULE NAME: SETVEC FUNCTIONAL DESCRIPTION: THIS ROUTINE WILL LOAD THE ADDRESS OF THE INCORRECT VECTOR ROUTINE IN ALL UNUSED VECTOR LOCATIONS FROM 0 TO 774. IT WILL PLACE A UNIQUE CODE IN ALL VECTOR + 2 LOCATIONS. THE CODE REPRESENTS THE VECTOR LOCATION . INPUTS: NONE IMPLICIT INPUTS: NONE OUTPUTS: NONE 785 786 787 788 789 790 791 792 79~ IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE 794 795 796 797 798 799 80C 801 FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL <SETVEC> 802 VERSION: 0.0 803 804 EDIT 805 806 807 DATE 8Y REASON SEQ 0295 SDVSRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS MACV11 30A(1052) 20-SEP-78 17:42 PAGE 19-9 BDVSRV.MAC 28-JUL-78 09:11 SETVEC INITIALIZE ALL UNUSED VECTOR LOCATIONS (0-774) 809 810 811 (2 ) 812 813 814 815 a16 817 (3 ) 818 (4 ) 319 820 821 822 823 824 (4 ) 825 (4 ) .S8TTL SETVEC ROUTINE ROUTINE SETVEC 000154' 000154' SETVEC: ;+ ; SAVE REGISTERS AND FLAG TO LOW VECTORS , 000154' 000154' 004767 000160' 000160' 005067 CALL SAVREG OOOOOOG LET BD.VCT (4) 833 (4 ) 83Ll 835 836 837 838 839 (4 ) 840 841 842 843 844 845 (4 ) (6) ( 9) 846 (6 ) ( 9) ( 6) ( 9) (6) ( 9) 847 . - #0 177614 JSR PC,SAVREG CLR BD.VCT MOV #BADVEC,@I/O CLR @1/2 ;+ ; , 000164' 000164' 012737 000172' 000172' 005037 LOAD LOC. o WITH BADVEC AND LOC. 2 WITH CODE LET @#o . - #BADVEC LET @#2 . - #0 000020' 000000 000002 826 827 828 829 830 831 832 SEO 0:296 ;+ ; LOAD TRACE TRAP VECTOR WITH BADVEC, AND TRACE TRAP'S PSW WITH CODE , 000176' 000176' 012737 000204' 000204 1 012737 . - #BADVEC LET @#16 . - #6 LET @#14 000020' 000014 000006 000016 MOV #BADVEC,@1/14 MOV #6,@#16 M:JV #70,RO CMP SEQ RO,#1000 50003$ RO,1I114 50004$ RO,#200 50004$ RO,Il250 50004$ ;+ ; START AT LOC. , 000212' 000212 1 LET RO 01~700 000070 ;+ ; , 000216 1 000216 1 000216' 000222 1 000224' 000224' 000230' 000232 1 000236 1 000240' 000244 1 70 AND START LOADING CODES .- 1/70 LOAD CODE UP TO LOCATION 1000 (WILL NOT LOAD 114,200 OR 250) WHILE RO NE #1000 DO 50002$: 020027 001446 001000 020027 001441 020027 001436 020027 001433 000114 CMP SEQ 000200 C:\1P IF RO NE #114 AND RO NE 1/200 AND RO NE 1/250 TrlEN 000250 SEQ CMP aEQ BDVSRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS SETVEC ROUTINE 2~l-JUL-78 09:11 BDVSRV.MAC 848 849 850 851 852 (6 ) ( 9) 853 (4 ) 854 (4) ( 3) .a55 (4) 85S 857 858 859 8GO 861 ( 6) (9) 862 (4) 863 (4) 864 (4) 20-SEP-78 MACV11 30A(1052) 1'1:42 PAGE 19-10 SEQ 0297 ;+ ; DETERMINE WHETHER WORKING VECTORS 0-376 OR 400-776 , 000245 ' 000246 ' 000252 ' 00(;254 ' 000254' 000260' 000260 ' 000262' 000262 ' 000262 ' IF BD.VCT NE #0 THEN 005767 001403 177526 012710 000014 ' . - #BADVC1 LET (RO) BD.VCT 50005$ MOV #BADVC1,(RO) BR 50006$ MOV #BADVEC,(RO) CMP BNE RO,#374 50007$ MOV #1,BD.VCT MOV BIC RO,R1 #BIT08,R1 ELSE 000410 50005$: . - #BADVEC LET (RO) 012710 TST BEQ 000020' ;+ ; IF AT VECTOR 374 THEN SET FLAG TO HIGH VECTORS , 000266' 0002£6' 020027 000272' 001003 000274' 000274 ' 012767 000302 ' 000302 ' 000302 ' 000302' IF RO EQ 1;374 THEN 000374 LET BD.VCT 000001 .- #1 177476 ENDIF 50007$: ENDIF 50006$: 865 8GG 867 868 869 870 (4 ) (6 ) 871 ( 2) 872 873 874 875 876 877 (4 ) (7) 878 (6 ) 879 880 ;+ ; STRIP OFF BIT 08 FOR CONVERSION ,'- 0003C2' 000302' 010001 000304' 042701 000310' 000310 ' 005720 LET R1 000400 INLINE <TST (RO)+> TST (RO)+ ;+ ; SHIFT RIGHT ONCE (DIVIDE BY 2) AND ONLY SAVE LOWER 4 BITS ;- 000312' 000312' 010102 000314' 006202 000316 ' 000316 ' 042702 LET R2 LET R2 177760 · - R1 SHIFT -1 ·- R2 CLR.BY #177760 fv"OV ASR R1 ,R2 R2 EIC #177760,R2 BIC #177037,R1 ;+ ; NOW STRIP UNWANTED BITS FROM R1 ;- 88~ 882 883 884 (6 ) 885 · - RO CLR.BY #BIT08 000322 ' 000322' 042701 000326 ' AND "OR" TOGETHER R1 AND R2 LET R1 · - R1 CLR.BY #177037 LET R1 · - R1 SET.BY R2 177037 MACY11 30A(1052) 8DVSRV SERVICE INTERRU?TS THROUGH INCORRECT VECTORS SETVEC ROUTINE 28-JUL-78 09:11 BDVSRV.MAC ~6) 886 887 888 889 890 891 (4) 892 (4 ) (3 ) 893 894 395 896 897 898 (2 ) 899 (4 ) 900 (4) (3 ) 901 902 903 904 905 90E (4 ) 907 (3 ) '308 ( 3) (3) (2 ) 908 20-SEP-78 17:42 PAGE 19-11 000326 1 050201 ;+ ; , SEQ 0298 SIS R2,R1 MOV R1,(RO)+ 8R 50010$ LOAD CODE INTO PSW WORD OF VECTOR 0- 000330 1 000330 1 010120 000332' 000332 1 000401 0003341 LET (RO)+ 0_ R1 ELSE 50004$: ;+ ; UPDATE RO SY 4 , INLINE <CMP (RO)+,(RO)+> C00334 1 000334 1 022020 000336 1 000336 1 000336 1 000336 1 000727 000340 1 ENDIF CMP (RO)+,(RO)+ 50010$: ENDDO SF! 50002$ CLR SD.VCT JSR PC,RESREG RTS PC 50003$: ;+ ; CLEAN UP , 000340 1 000340 1 005067 0003441 0003441 0047C7 000350 1 000350 1 000350 1 000350 1 000207 000001 LET SD.VCT 0_ #0 177434 CALL RESREG OOOOOOG ENDRTN .END 50000$: 50001S: BDVSRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS SYMBOL TABLE 28-JUL-78 09: 11 BDVSRV.MAC ACSR 000102 ACT81T= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 AS8 000106 ASSErJlB= 000010 ASTAT = 000104 AUTO COC010 AUTJST= 020000 A~I)AS 000110 BADVCl 000014RCi BADVEC 000020RG BD.VCT OOaOOOR 8ITO 000001 8ITOO 000001 8ITOl 000002 81T02 000004 8IT03 000010 8IT04 000020 iJ I T05 000040 81T06 000100 8IT07 000200 BITOB 000400 001000 BIT 09 [31 T 1 000002 BIT10 002000 i) I T 1 1 004000 8IT12 010000 [31T13 020000 BIT14 040000 [31T15 100JOO B1T2 000J04 ~31 T 3 000010 B1T4 000020 000040 BIT5 BIT6 000100 BIT7 000200 BIT8 000400 3IT9 001000 BKDEF 000002 [3KMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDwDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF = 000001 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 01 AG~'1C= 000000 DROPMO= 100000 DSEVNT= 000014 DTABLE= ****** G DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX:-: 000104 DT.KBE= 000024 DT . .KBP= 000026 DT.KBR= 000022 DT.K6U= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 00007:4 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 0:)0064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.ST0= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT . ~lLL= 000052 DVIDl = 000014 ECCMEM= 000100 ECCSTA= 000010 MACYll 30A(1052) ENBEOP= 010000 ENBNUL= 000001 ENDLST= oooooa ENQTQ = ****** G EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 lNHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT lNTR 000120 10MOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 1'72300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 K,PRES= 000400 KTSTAT= 000020 KTXTND= 040000 LF OOOC12 LPSTAT= 000001 MAPSTA= 00C200 20-SEP-78 17:42 PAGE 20 SEQ 0299 MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= IVlSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= rJlSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL Qt;JEN PAERR PARPRE= PARSTA= PASCNT= PBDVEC PDPLSl= PDP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW 076600 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 00:)000 000012 008020 001000 000020 000002 000000 024020 000010 002000 000100 000034 000024RG 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 OC0300 000340 177776 177776 RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 R8UFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RD\'\:HMI= 000022 RELERR= 000020 RELMOD= 020000 RELTIM= 010000 R=:SREG= ****** G 000056 RESl RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RU60UT= 000177 RUt.,,10D= 100000 R5VALU= 001740 SAM 075464 SAVREG= ****** G SS:'-DR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENJLS= 177777 SETVEC 000154RG SGFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 S~2 177576 SR3 172516 000026 STAT STATBl= 064757 5T AT1 = 000027 SUSPND= 000001 000062 SVRO S\/R 1 000064 000066 SVR2 000070 SVR3 SVR4 000072 000074 SVR5 ~:;OV SRV SERVICE INTERRUPTS THROUGH INCORRECT VECTORS SYMBOL TABLE 28-JUL.-78 09: 11 MACY11 30A (I 052) 20-SEP-78 17:42 PAGE 20-1 SEQ 0300 g~VSRV.MAC SVR5S 000014R SVR6 000076 SYSCNT= 000052 SYS::RR= 000100 TMPIO = 000002 "1"001/ F = 000002 UIP~RO= 177640 UIPAR1= 177642 UIPAR2= 177644 ~IPAR3= 177646 UIPAR4= 177650 JIPAR5= 177652 UIPAR6= 177654 lJIPAR7= 177656 UIPORO= 177600 lJIPJR1= 177602 UIPDR2= 177604 UIPJR3= 177606 UIPDR4:; 177610 LJIPDR5= 177612 UIPDR6= 177614 ASS. 000000 000352 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= (;00142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = OGOO05 XOFF 000023 XON 000021 $BGN LE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$8AD= 000401 $F$8LA= OC0170 $F$CAS= 000150 $F$DEC= 000220 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATEC: 0 DSKZ:SDVSRV,DSKZ:6DVSRV=SPMAC/ML,EQUATE,SDVSRV RUN-TIME: 16 6 .4 SECONDS RUN-TIW:E RATIO: 40/23=1.7 CORE USED: 14K (27 PAGES) $F$DO = 000340 $F$FAL= 000405 $FSGOO= 000400 $FSIF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$~vHI = 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO 000001 $ISK1 000001 $ISK2 000001 $LOCTA= 177777 $LSTIN= 000001 SLSTTA= 000001 $NESTL= 177777 $NSKO 000300 $NSKl 000120 $NSK2 = 000110 $NSK3 = 000110 $NSK4 = 000110 $SAVLE= 177777 $SSKO = 050003 $TAGLE= 177777 $TAGNU:: 050011 $TEMP 000300 $TSKO 050002 $TSK1 050003 $TSK2 05J010 $TSK3 050006 $TSK4 050007 $$ARGC= 000000 $$BYTE= 000403 $$CASE= 000000 $5DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$ F LAG= 000001 $$FROM= 000000 $~LOC = 000272R $$LOCN= 000000 $$REG = 177777 $$FlETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$iAG= 050000 000352R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 582 585 606 682 17:43 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR BOAC 000000 1 .PRINT ;SPMAC: VERSION 1.1 BOAC ROUTINE 22 BIT ADDRESSING CONVERSION SEQ 0301 BOAC BINARY TO OCTAL ASCII CONVERSION FOR 18 & 22 BIT NUMBERS BOAC.MAC 08-AUG-78 12:17 COMMON EQUATE MODULE MACY11 30A(1052) 20-SEP-78 17:43 PAGE 19 SEQ 0302 508 509 510 511 .TITLE BOAC BINARY TO OCTAL ASCII CONVERSION FOR 18 & 22 BIT NUMBERS .IDENT JVO.Oj 512 ;++ 513 514 515 516 517 518 519 MODULE NAME: BOAC FUNCTIONAL DESCRIPTION: THIS ROUTINE WILL CONVERT AN 18 OR 22 BIT BINARY NUMBER TO A 8 CHARACTER OCTAL ASCII STRING STORED AT THE CALLER SPECIFIED ADDRESS. 520 521 522 523 524 525 526 527 INPUTS: 1. ADDRESS OF DATA TABLE. 2. BITS 0 THRU 15 OF T~E NUMBER TO BE CONVERTED 3. BITS 16 & 17 OR BITS 16-21 OF THE NUMBER TO BE CONVERTED (SEE CALLING SEQUENCE BELOW) 4. STARTING ADDRESS OF THE 8 BYTE STORAGE AREA WHERE THE OCTAL ASCII CHARACTERS ARE TO BE STORED. 528 529 530 IMPLICIT INPUTS: NONE 531 532 533 OUTPUTS: NONE 53L: 535 536 IMPLICIT OUTPUTS: OCTAL ASCII CHARACTERS 537 538 539 540 541 PATHOLOGICAL CONNECTIONS: NONE 544 SUBORDINATE ROUTINES CALLED: BOA16 16 BIT BINARY TO OCTAL ASCII CONVERT ROUTINE SAVREG RESREG 545 546 547 FUNCTIONAL SIDE EFFECTS: NONE 542 543 548 549 550 551 552 553 554 555 556 CALLING SEQUENCE: CALL BO~C IN <DTADR,NUM1 ,NUM2,ADDR> WHERE DTADR ADDRESS OF DTABLE NUM1 = BITS 0-15 OF THE OCTAL NUMBER TO BE CONVERTED FOR NUM2 557 558 559 560 561 562 563 BIT S BITS 16 & 17 OF THE OCTAL NLMBER TO BE CONVERTED ( BIrs 16 & 17 MUST BE LINED UP IN BIT POSITIONS 4 AND 5 I.E. 0 000 000 000 XYC 000 ~HERE X BIT 17 AND Y = BIT 16 ) FOR NUM2 1 8 2 2 BIT S BITS 16 - 21 OF THE # TO BE CONVERTED. BOAC BINARY TO OCTAL ASCII CONVERSION FOR 18 & 22 8IT NUMBERS BOAC.MAC 08-AUG-78 12:17 COMMON EQUATE MODULE 564 MACY11 30A(1052) 20-SEP-78 17:43 PAGE 19-1 SEQ 030J (NUM2 MUST SE IN THE FOLLOWING FORMAT: o 000 000 000 FED CSA BIT 21 WHERE F BIT 20 E BIT 19 D BIT 18 C BIT 17 B BIT 16 A 565 566 567 568 569 570 571 572 ADDR 573 574 575 576 577 THE START ADDRESS OF THE 8 BYTE STORAGE AREA WHERE THE OCTAL ASCII CHARACTERS ARE TO BE STORED. VERSION: 0.0 578 579 580 ,. __. EDIT DATE BY REASON BOAC 3INARY TO OCTAL ASCII CONVERSION FOR 18 & 22 BIT NUMBERS MACY1i 30A(1052) 20-SEP-78 BOAC.MAC 08-AUG-78 12:17 COMMON DEFINITIONS AND REFERENCES FOR BOAC 582 583 .SBTTL 590 591 592 000000' 000000 ' 000001 000001 COMMON DEFINITIONS AND REFERENCES FOR BOAC $LSTIN=1 $LSTTAG=1 ;*************** , ;REFERENCED BY OTHER MODULES 593 , 594 595 596 597 .GLOBL 598 PAGE 19-2 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 584 585 ( 1) 586 587 588 589 17:43 BOAC ;MODULE ENTRY POINT ;**************** ;GLOBAL REFERENCES 599 600 601 602 603 604 .GLCBL .GLOBL .GLOBL BOA16 SAVREG RESREG ;CAllED TO CONVERT BITS 0-15 TO ASCII SEQ 0304 50AC BINARY TO OCTAL ASCII CONVERSION FOR 18 & 22 BIT NUMBERS BOAC.MAC 08-AUG-78 12:17 BOAC ROUTINE 606 607 608 (2) 609 610 611 612 613 614 615 (3) 616 617 618 619 620 621 (4) 622 623 624 625 626 627 628 (4) 629 (4) 630 (4) 631 632 633 634 635 636 637 (6) (9) 638 629 640 641 .SBTTL 000000 1 000000 1 20-SEP-78 17:43 PAGE 19-3 SEQ 0305 BOAC ROUTINE ROUTINE BOAC <DTADR,NUMB1 ,NUMB2,ADDR> BOAC: ;+ ;SAVE REGISTERS 000000 1 000000 1 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV DTADR(R5),R4 MOV NUMB1(R5),RO MOV NUMB2(R5),R3 MOV ADDR(R5),R1 BIT BNE #MAPSTAT,DT.STO( 50002$ IV.OVB #60,(R1)+ MOVe #60,(R1)+ ;+ ;GET DTABLE ADDRESS TO RO 000004 1 0000041 016504 LET R4 .- DTADR(R5) 000000 ;+ ; PUT THE LOW ORDER BITS IN RO, THE HIGH ORDER BITS IN R3, AND ; THE ADDRESS OF THESTORAGE AREA IN R1. 000010 1 000010 1 016500 000014 1 000014 1 016503 000020 1 000020 1 016501 LET RO .- NUMB1(R5) 000002 LET R3 .- NUMB2(R5) 000004 LET R1 .- ADDR(R5) 000006 ;+ ; IF NOT 18-BIT ADDRESSING GO TO 22-BIT SECTION. 000024' 000024 1 032764 000032' 001023 IF HMAPSTAT NOTSETIN DT.STO(R4) THEN 000200 000010 ;+ ;SINCE ONLY 18 BITS REQUIRED, ZERO THE UPPER 2 MOST SIGNIFICANT ;ASCII LOCATIONS AND UPDATE TABLE ADDRESS ;- 64L 643 644 645 (4) 646 (4) 647 648 649 650 651 MACY11 30A(1052) 000034' 0000341 112721 000040 1 000040 1 112721 LET (R1)+ :B= #60 000060 LET (R1)+ :9= #60 000060 ;+ ;CONVERT BITS 0-15 TO ASCII BOAC BINARY TO OCTAL ASCII CONVE~SION FOR 18 & 22 SIT NUMEERS BOAC.MAC 08-AUG-78 12:17 BOAC ROUTINE 652 653 654 (3) (5) (4) (3) (3) 355 656 557 658 659 660 661 662 (6) 663 664 665 666 667 668 (7) (7) (7) 669 670 671 672 67 3 674 675 (4 ) 676 (6 ) 677 (4 ) 678 679 (4 ) (3 ) 680 000044 ' 000044 ' 000046 ' 000050 ' 000052 ' 000056 ' CALL BOA16 010546 010145 010045 004761 012605 ~ACY11 30A(1052) 20-SEP-78 17:43 PAGE 19-4 SEQ 0306 IN <RO,R1> OOOOOOG MOV MOV MOV J3R MOV R5,-(SP) R1,-(R5) RO,-(R5) PC,BOA16 (SP)+,R5 SIC #177717,R3 ASR ASR ASR R3 R3 R3 ;+ ;CLEAR OUT ANY UNNEEDED BITS IF ANY ARE ACCIDENTALLY SET ;IN EXTENDED ADDRESS WORD 000060 ' 000060 ' 042703 LET R3 := R3 CLR.BY #177717 177717 ;+ ;SHIFT EXTENDED ADDRESS BliS FROM POSITION 4 & 5 TO 1 & 2 ;- LET R3 := R3 SHIFT -3 000054' 000064 ' 006203 000066 ' 006203 000070; 006203 ;+ ;ADD EA BITS TO FIRST ASCII CHARACTER(MOST SIGNIFICANT CHARACTER) ;THE SEQUENCE SHOWN IS TO HANDLE TABLES STARTING ON ODD BOUNDARIES LET RO :B= (R 1 ) 000072 ' 000072 ' 1 1 , 100 000074' 000074' 060300 000076' 000076' 1100' 1 000100' 000100 ' 000443 000102 ' LET RO . - RO + R3 MOVB (R1),RO ADD R3,RO MOVB RO,(R1) BR 50003$ LET ( R1 ) : B= RO ELSE 50002$: BOAC BINARY TO OCTAL ASCII CONVERSION FOR 18 & 22 BIT NUMBERS MACY11 30A(1052) BOAC.MAC 08-AUG-78 12:17 22 BIT ADDRESSING CONVERSION 682 683 684 685 686 687 688 689 690 691 692 693 694 695 (6) 396 (6) 697 698 699 700 701 702 703 704 (3) (5) (4) (3) (3) 705 706 707 708 709 710 711 712 713 (7) 714 (4) 715 716 717 718 719 720 721 722 723 724 725 (6) 726 (4) .SBTTL ;+ 20-SEP-78 17:43 PAGE 19-5 St;Q 0307 22 BIT ADDRESSING CONVERSION 2 2 BIT ADD RES SIN G ;- ;+ ;INITIALIZE AND SAVE ADDRESS + 2 OF ASCII STORAGE AREA ;TO CONVERT LOWER BITS(0-15) TO OCTAL ASCII ;ALSO CLEAN UP ANY UNWANTED BITS FROM BITS 16-21 000102' 000102' 062701 C00106' 000106' 042703 LET R1 .- R1 + #2 000002 ADD #2,R1 BIC #177700,R3 MOV MOV MJV JSR MOV R5,-(SP) R1,-(R5) RO,-(R5) PC,BOA16 (SP)+,R5 ASL R3 MOV R3,RO LET R3 .- R3 CLR.BY #177700 177700 ;+ ;SAVE BITS 0-15 AND CONVERT TO OCTAL ASCII 000112' 000112' 010546 000114' 010145 000116' 010045 000120' 004767 000124' 012605 CALL BOA16 IN <RO,R1> OOOOOOG ;+ ;SHIFT BITS 16-21 LEFT ONE TIME ;AND SAVE TO ALIGN BITS 16,17 WITH BITS 1,2 , '- 000126' 000126' 000130' 000130' LET R3 .- R3 SHIFT +1 006303 LET RO .- R3 010300 ;+ ;MASK OFF ALL BUT BITS 0-2 IN REG AND ADD TO MOST ;SIGNIFICANT OCTAL ASCII CHARACTER ;THE SEQUENCE SHOWN IS FOR HANDLING ODD ADDRESSES AS WELL AS EVEN ;000132' 000132' 000136' 000136' LET RO .- RO CLR.BY #177770 042700 177770 8IC #177770,RO MOVB (R1),R2 LET R2 :B= (R1) 111102 BOAC BINARY TO OCTAL ASCII CONVERSION FOR 18 & 22 BIT NUMBERS MACY11 30A(1052) BOAC.MAC 08-AUG-78 12:17 22 BIT ADDRESSING CONVERSION 727 (6) 728 (4) 729 730 731 732 733 734 (7) (7) (7) 735 736 737 736 73S 740 741 (4) 742 743 744 745 74€, 747 74E. 749 750 (4) (6) (9) 751 752 753 754 755 (4) 756 757 758 759 760 000140' 000140' 060002 000142' 000142' 110211 761 000164' (6) 762 (6) 763 764 765 766 767 768 (4) 769 000164' 042700 000170' 000170' 062700 20-SEP-78 17:43 PAGE 19-6 LET R2 .- R2 + RO LET (R1) SEQ 0308 ADD RO,R2 MOVB R2, (R 1 ) ASR ASR ASR R3 R3 R3 MOV #2,R2 TST BEQ R2 50005$ MOV R3,RO SIC #177770,RO ADD #60,RO MOVB RO,-(R1 ) :B= R2 ;+ ;SHIFT BITS 16-21 3 TIMES TO RIGHT LET R3 .- R3 SHIFT -3 000144' 000144' 006203 000146' 006203 000150' 006203 ;+ ;SET UP COUNTER 000152' 000152' 012702 LET R2 .- #2 000002 ;+ ° ;WHILE COUNTER NOT = ,SAVE BITS 18-21 IN RO,MASK OFF ALL ;BUT BITS 0-2 IN RO,ADD #60 TO RO, STORE RO IN ASCII AREA ;SHIFT BITS 18-21 3 TIMES TO RIGHi AND DECREMENT COUNTER ;WHILE R2 NE #0 DO 000156 1 000156' 000156' 005702 000160' 001413 50004$: + SAVE BITS 18-21 LET RO .- R3 000162 1 000162' 010300 + MASK OFF uNNEEDED BITS AND ADD # 60 LET RO .- RO CLR.BY #177770 177770 LET RO '- RO + #60 000060 + STORE IN ASCII AREA, SHIFT BITS AND DECREMENT COUNTER 000174' 000174' 110041 000176' LET -(R1) :B= RO LET R3 .- R3 SHIFT -3 BOAC BINARY TO OCTAL ASCII CONVERSICN FOR 18 8. 22 81 T NW~BERS ':I:ACY11 30A(1052) 08-AUG-78 12: 17 E:lOAC .IViAC 22 BIT ADDRESSING CONVERSIGN (7 ) ( 7) (7 ) '170 (6) 771 '772 (4 ) ( 3) 773 774 775 776 777 778 (4 ) 779 780 781 782 783 784 (3 ) 785 78€ (3 ) ( 3) (2 ) 787 000176 1 000200 1 COO202 1 000204 1 000204 1 006203 006203 006203 LET R2 005302 20-SEP-78 17:43 PAGE 19-7 SEQ 0309 . - R2 - #1 ASR ASR ASR R3 R3 R3 DEC R2 BR 50004$ JSR PC,RESREG RTS PC ENDDO 000206 1 000206 1 000763 000210 1 50005$: 000210 1 000210 1 ENDIF 50003$: ;+ ; RESTORE REGISTERS , 000210 1 000210 1 004767 000214 1 000214 1 000214 1 000214 1 000207 000001 CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: .END BOAC BINARY TO OCTAL ASCII CONVERSION FOR 18 & 22 8IT NUr,1BERS SYMBOL TABLE E,OAC. fllAC 08-AUG-78 , 2: 17 ACSR ACTBIT= ADDR ,D,DDR22= ADR APTFER= APTPRE= ASB ASSEM5= ASTAT = ;;UTO AUTOST= AItJAS BITO GITOO (3IT01 CIT02 8IT03 B1T04 BIT05 3IT06 BIT07 BIT08 B1T09 8IT1 8IT10 8 IT 11 B1T12 iJIT13 3IT14 8IT15 8IT2 ~3 IT 3 BIT1 8IT5 SIT6 BIT7 3IT8 3IT9 3KDEF 3KMOD i3KIViODE.= 3KSLSH= '30AC :30A16 = CAFRES= CASTAT= CDERCT= CDWDCT= CKTIM = CLKPRE= CONF1G= CQOVF = 000102 004000 000006 001000 000006 000004 000200 000106 000010 000104 000010 020000 C00110 000001 000001 00ClO02 000004 000010 000020 000040 000100 000200 000400 001000 000002 OO~OOO 004000 010000 020000 040000 100000 OCOCl04 000010 000020 000040 000100 000200 000400 001000 000002 000020 040000 000134 OClOOOORG ,< * '" * * * G 000004 000004 000146 000144 100000 000001 000056 000001 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000U25 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVtH= 000014 DTADR :: 000000 DT.ADD= 000042 DT.A? = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= OC0026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MT1= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000~06 DT.SP - 000006 DT.SSI= 000046 DT.STO= OC0010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= ENBNUL= ENDLST= EO?BIT= ERRTYP= EVNTBE= EVNTrlD= EVNTKT= EVNTPE= EVNTRE= F,\TERR= HRDCNT= HRDPAS= ICONT = ICOUNT= !DNUM = IE INDPAR= INHDRP= INHEPR= H~HREL= INHRRE= INlT INTR 10MOD ICMODP= IOMODR= IOMODX= JACK KIPARO= KIPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPDR1= KIPDR2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= M:\PST A= MED ~v1AC Y11 010000 000001 000000 000001 000106 000200 000200 000203 000202 000201 100000 000044 000050 000036 000040 000122 000100 000040 040000 020000 001000 000400 000030 000120 100000 102000 112000 110000 035060 172340 172342 172344 172346 172~50 172352 172354 172356 172JOO 172302 172304 172306 172310 172312 172314 172316 000040 000400 000020 040000 000012 000001 000200 076600 30A(1052) 20-SEP-78 17:43 PAGE 20 SEQ 0310 MEMPAS= MODEXH= MODHOL= I\IODSE L= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGH~~G= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRf.1= MSGRES= MSGSFT= MSGSKE= MSGSI\18= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBk.MOD= NCPUOP= NOAPTY= NULL NGiJ!B1 NUMB2 OWEN PAERR PAR?RE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 00UC06 000003 000015 000014 000016 000000 000012 00()O20 001000 000020 000002 000000 000002 000004 024020 000010 002000 00 J 100 000034 020000 OO~OOO 01:)000 000000 000040 00~)200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 RANNUM= RBU::EA= RBUFPA= RBUFSZ= RBUFVA= RDSERV= RD',r.irlrIlI= RELERR= RELMOD= REL TIM= RESREG= RES1 RES2 RICrlAR= RPTDAT= RSTRT = PU80UT= R'JN[,10D= R5'Jt-LU= SAM SAVREG= SBA::)R = SBK~P,OD= SSKSEL= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SOFCNT= SCFPAS= SPACE = SPOINT= S?VALU= SRO SR1 SR2 Sf'(3 STAT 5 T,l\ TB I = 5T AT1 = SL'SPND= SVRO SVRl SVR2 SVR3 SVR4 SVR5 SVR6 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 **:" *** G 000056 000060 031060 002000 000112 000177 100000 001740 075464 ****** G 000102 000000 010000 000006 000014 000016 000002 000004 008000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 064757 000027 000C01 000062 000064 000066 000070 000072 000074 000076 BOAC BINARY TO OCTAL ASCII CONVERSION FOR 18 & 22 BIT NUMBERS 08-AUG-78 12:17 SYMBOL TABLE ~ACY11 30A(1052) 20-SEP-78 17:43 PAGE 20-1 80AC.~AC SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQO') F = 000002 UIPA.RO= 177640 LJIPAR1= 177642 UIPAR2= 177644 UIP~R3= 177646 LJIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 ABS. 000000 000216 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 VJ6UFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 IvBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WnJHMI = 000222 XFLAG = 000005 000023 XOFF XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $FSBAD= 000401 $F$BLA= 000170 000 001 ERRORS DETECTED: a DEFAULT GLOBALS GENERATED: 0 DSKZ:BOAC,DSKZ:BOAC=SPMAC/ML,EQUATE,BOAC RUN-TI!Y.E: 14 4 .4 SECONDS RUN-TIME RATIO:: 36/20=1.7 CORE USED: 14K (27 PAGES) $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 SEQ 0311 $IFLEV= 17'1777 $ISKO = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000110 $NSK2 = 000120 $SAVLE= 177777 $SSKO = 050005 $TAGLE= 177777 $TAGNU= 050006 $TEMP 000300 $TSKO = 050003 $TSK1 = 050004 $TSK2 = 050005 $$ARGC= 000010 $$BYTE= 000403 $$CASE= 000000 $$OST = 000000 $$ELOC= 000402 $SERFL= 000000 $SF LAG= 000·001 $$FROM= 000000 $$LOC = 000160R $$LOCN= 000000 $SREG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $~SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000216R .MAIN. MACY11 30~(1052) 20-SEP-79 EQUATE.MAC 13-SEP-78 16:13 3 559 562 578 17:43 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR BOA16 000000' .PRINT jSPMAC: VERSION 1.1 BOA16 ROUTINE SEQ 0312 BOA16 OCTAL TO ASCII CONVERSION ROUTINE ~OR 16 BIT NUMBERS BOA16.MAC 28-JUL-78 09:11 COMMON EQUATE MODULE 5()8 ;:S09 510 ~ MACY11 30A(1C52) 20-SEP-7B 17:43 PAGE 19 .TITLE BOA16 OCTAL TO ASCII CONVERSION ROUTINE FOR 16 BIT NUMBERS .IDENT /VO.O/ 11 512 513 514 515 516 517 518 519 520 521 522 523 524 525 326 527 528 529 53~ 531 532 533 534 535 536 537 536 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 ;++ MODULE NAME: BOA16 FUNCTIONAL DESCRIPTION: THIS ROUTINE WILL COI..JVERT A SIX CHARACTER (SIXTEEN BIT) OCTAL NUMBE~ TO A SIX CHARACTER ASCII STRING STORED AT THE CALLER SPECIFIED ADDRESS. INPUTS: 1. NUMBER TO BE CONVERTED. 2. START ADDRESS OF 6 BYTE STORAGE AREA WHERE ASCII CHARACTERS ARE TO BE STORED. IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG - SAVE GPRS RESREG - RESTORE GPRS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL BOA16 IN <A,S> WHERE A NUMBER TO BE CONVERTED B = START ADDRESS OF 6 BYTE STORAGE AREA WHERE ASCII CHARACTERS ARE TO BE STORED EDIT DATE BY REAsm~ SEQ 0313 BOA16 OCTAL TO ASCII CONVERSION ROUTINE FOR 16 BIT NU~BER$ M~CY11 30A(1052) 20-SEP-78 BOAI6.MAC 28-JUL-78 09:11 COMMON DEFINITIONS AND REFERENCES FOR BOA16 559 560 561 362 (1) 563 564 565 566 567 568 569 570 571 572 573 574 575 .SBTTL COMMON DEFINITIONS AND REFERENCES FOR BOA16 000000 1 000000 1 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTTAG=1 $LSTIN=l **************** ; REFERENCED BY OTHER MODULES: .GLOBL BOA16 , ;ENTRY POINT FOR THIS MODULE ; **************** ; GLOBAL REFERENCES .GLOBL .GLOBL SAVREG RESREG ;SAVE GPRS ROUTINE ;RESTORE GPRS ROUTINE 17:43 PAGE 19-1 SEQ 0314 BOA16 OCTAL TO ASCII CONVERSION ROUTINE FOR 16 BIT NUMBERS MACY11 30A(1052) 20-SEP-78 BOA16.MAC 28-JUL-78 09:11 COMMON DEFINITIONS AND REFERENCES FOR BOA16 577 S78 579 (2 ) 580 581 582 583 584 585 (3 ) 586 587 588 589 590 591 (4) (6) 592 ( 4) 593 (4 ) 594 595 59E 597 598 599 600 601 (4 ) (6 ) (9) 602 (4 ) 603 (6 ) 604 (6) 605 (4 ) 606 (6) 607 (7 ) ( 7) (7 ) 608 (6) 6e9 (4) (3 ) 610 611 612 17:43 .SBTTL BOA16 ROUTINE ROUTINE BOA16 <NUM,ADRESS> 000000' 000000' PAGE 19-2 SEQ 0315 BOA16: :+ ; SAVE REGISTERS , 000000' 000000' 004767 CAl.L SAVREG OOOOOOG JSR PC,SAVREG MOV ADD ADRESS{R5),RO #6,RO ;+ ; GET 6 BYTE STORAGE ADDRESS + 6 AND SET CHARACTER COUNT , 000004' 000004' 000010' 000014' 000014' 000020' 000020' 016500 062700 000002 000006 012701 000006 016503 LET RO · - ADRESS(R5) + #6 LET R1 · - #6 MOV #6,R1 LET R3 ·- MOV NUM(R5) ,R3 000000 NUM(R5) ;+ ; v,'HI LE R1 IS NOT = O,GET THE OCTAL #,CLEAR OUT ALL SUT LSB 0-2, ; ADD 60 (CONVERT TO ASCII), STORE THE ASCII ,UPDATE POINTER,CLEAR ; OUT 3 BITS JUST CONVERTED, SHIFT NEXT 3 BITS, DECREMENT COUNTER , 000024' 000024' 000024' 000026' 000:)30' 000030' 000032' 00003:4' 000036' 000036' 000042' 000042' 000044' 000044' 000050' 000050' 000052' 000054' ooce56' 000056' 000060' 000060 1 000062' WHILE Rl NE #0 DO 005701 001415 50002$: · - R3 LET R2 · - R2 CLR.BY #177770 LET R2 · - R2 + #60 LET R2 010302 042702 177770 062702 000060 LET -(RO) 110240 042703 LET R3 · - R3 CLR.BY #7 LET R3 · - R3 ROTATE -3 LET R1 · - Rl - #1 000007 006003 006003 006003 : B= R2 005301 ENDDO 000761 50003$: ;+ TST SEQ Rl 50003$ MOV R3,R2 BIC #177770,R2 ADD #60,R2 MOVB R2,-(RO) BIC #7,R3 ROR ROR ROR R3 R3 R3 DEC R1 3R 50002$ bOA16 OCTAL TO ASCII CONVERS~ON ROUTINE FOR 16 SIT NUMBERS 80A16.MAC 28-JUL-78 09:11 BOA16 ROUTINE 613 614 615 616 (3 ) 617 318 (3 ) (3 ) (2 ) 619 MACY11 30A(1052) 20-SEP-78 17:43 PAGE 19-3 SEQ 0316 ; CLEAN UP , 000062 ' 000062 ' 004767 OC0066' 000066 ' 000066 ' 000066 ' 000207 000001 CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 50001$: .END DOA16 OCTAL TO ASCII CONVERSION ROUTINE FOR 16 BiT NUMBERS SYMBOL TABLE 28-JUL-78 09: 11 BOA16.MAC ACSR ACT3!T= ADDR22= ADR ADRESS= APTFER= APTPRE= IISB ASSEMB= ASTAT = AUTO AUTOST= AWAS [31TO [HTOO G1TOl [11T02 BITC3 B1T04 BIT05 BIT06 BIT07 B1T08 BIT09 B1T1 81T10 [11 T 11 B1T12 3IT13 B1T14 BIT 15 81T2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 BIT9 BKDEF BKIV:OD BKrv'lODE= BKSLSH= 30A16 (::APRES= CASTAT= CDERCT= CDWDCT= CKTIM = CLKPRE= CONFIG= CQOVF CR 000102 004000 001000 000006 000002 000004 000200 e00106 000010 000104 000010 020000 000110 000001 000001 000002 COOO04 000010 000020 000040 000100 000200 000400 001000 000002 002000 004000 010000 020:)00 040000 100000 000004 000010 000020 000040 000100 000200 000400 001000 000002 000020 040000 000134 OOOOOORG 000004 000004 000146 000144 100000 000001 000056 000001 000015 CSRA CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRTN= DIAGMC= DROPMO= DSEVNT= DT.ADD= DT.AP ::;: DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ESI= DT.EVN= DT.EXS= DT.FCH= DT.FCN: DT.HMX= DT.KB::= DT.KBP= DT.KBR= DT.KBU= DT.MLS= DT.MTI= DT.OFF= DT.PAS= DT.PC DT.PFL= DT.PSW= DT. PT A= DT.RCS= DT.REL= DT.SCT= DT.SMX= DT.SP = DT.SSI= DT.STO= DT.ST1= DT . S~IJR= DT.SYP= DT.WBU= DT.WHL= DT.WLL= DVID1 = ECCMEM= ECCSTA= ENBEOP= ENBNUL= 000100 000102 000003 000017 000025 000011 000400 000000 100000 000014 000042 000100 000076 000034 000014 000016 000020 000044 000000 000060 000037 000036 000104 000024 000026 (;00022 000030 000032 000110 000070 000074 000002 000062 000004 000064 000102 000040 0000G6 000i06 000006 000046 000010 000012 000056 000072 000050 000054 000052 000014 000100 000010 010000 000001 MACY11 30A(1C52) ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT: 000044 HRDPAS= 000050 ICONT = COO036 ICOUNT= 000040 IDNUM = 000122 IE 000100 INDPAR= 000040 INHDRP= 040000 Ir-.;HEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 IOMOD 100COO IOMODP= 102000 1OMODR= 112000 IOMODX= 110000 035060 JACK K1PARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 K1PAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 1'72300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 1723i4 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 0766CO MED MEMPAS= 040000 MODEXH= 004000 20-SEP-78 002000 001000 000010 000011 000005 000017 177777 00001"3 000004 000022 000007 000021 177775 000002 177'176 008001 JOJ006 000003 000015 OOc)C14 000016 000000 000012 000020 001000 000020 000002 000000 000000 024020 OOOOiO 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 00J240 PF~5 PR6 000300 PR7 00J340 177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 MODHOL= 1'v1ODSE L= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSG:V:AP= MSGNuL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSi,1H= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL NUM DIvEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRI0 P R11 PRI4 PRI5 PRI6 PRI7 PRO PR4 17:43 PAGE 20 SEQ 0317 RBUFSZ= RSUFVA= RDSERV= RD!JJHMI = RELERR= REU,10D= REL TIM= RESREG= Rt:S1 RES2 RICHAR= RPTDAT= RSTRT = RUBOUT= RUW:'OD= R5VALU= SAM SAVREG= SBADR = SBKMOD= SBKSEL= SC.ADR= SC. A.LC= SC.APC= SC.CKL= Sr::.CKP= SC.CLO= SC.hLD= SC.SCA= SENDLS= SOFCNT= SOFPAS= SPt.CE = SPO!NT= SPVALU= 000132 000124 000101 000022 000020 020000 010000 ****** G 000056 000060 031060 002000 000112 000177 100000 001740 075464 ****"'* G 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 SRO 177574 SR1 SR2 177=76 172516 SR3 STAT 000026 STATBI= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 SVR3 00C070 SVR4 000072 000074 SVK5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 IMPIO = 000002 JOA16 eCTAL Te ASCII CONVERSION ROUTINE FOR 16 BIT NUMBERS BOA16.MAC 28-JUL-78 09:11 SYMBOL TABLE TQOVF = UIPARO= UIPAR1= UI P,\R2= UIPAR3= UIP~R4= UIP~R5= UIPAR6= UIPAR7= JIPC>RO= UIP)R1= UIP:)R2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIP;)R7= WASADR= ASS. 000040 000136 000134 000140 000142 000116 000114 WTINR~= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 000002 177640 177642 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177516 000104 000000 000070 WBSTAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= WDFR WDTO 000 001 ERRORS DETECTED: 0 DEFAULT GLOSA LS GENERATED: a DSKZ:BOA16,DSKZ:BOA16=SPMAC/ML,EQUATE,BOA16 RUN-TIME: 12 2 .4 SECONDS RUN-TIME RATIO: 30/15=2.0 CORE USED: 14K (27 PAGES) MACY11 30A(1052) $FSDEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $ FS It~C= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 0004C4 $F$UNT= 000130 $F$WHI= 000120 $F$Y~S= 000402 20-SEP-78 17:43 PAGE 20-1 SEQ 0318 $IFLEV= 177777 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000120 $SAVLE= 177777 $SSKO = J50003 $TAGLE= 177777 $TAGNU= 050004 $TEMP = 00'J300 $TSKO = 050002 $TSK1 = 050003 $$ARGC= 000004 $$8YTE= 00')403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000000 $SERFL= 000000 $$FLAG= 000340 $$FRO'VI= 000000 $$LCC = 00002t3R $SLCCN= 000000 $SREG = 177777 $SRETU= 000000 $SRTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 00~070R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-5EP-78 16:13 3 552 554 572 17:44 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT CLREOP ROUTINE jSPMAC: VERSION 1.1 SEQ 0319 CLREOP - CLEAR END-OF-PASS INDICATORS CLREOP.MAC 28-JUL-78 09:12 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 MACY11 30A(1052) 20-SEP-76 COMMON EQUATE MODULE MODULE NAME: CLREOP FUNCTIONAL DESCRIPTION: CLEARS THE 1ST-END-OF-PASS INDICATOR IN EACH OPTION MODULE OF THE RUNTIME EXERCISER INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: DT.MLST OUTPUTS: NONE IMPLICIT OUTPUTS: MODULES' 1ST-EOP INDICATOR, LOCATED IN MODULE'S HEADER WORD, XFLAG PATHOLOGICAL CONNECTICNS: NONE SUBORDINATE MODULES CALLED: SAVREG - SAVE REGISTERS RESREG - RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL CLREOP IN <A> A=DATA TABLE ADDRESS 547 54B EDIT 550 SEQ 0320 ;++ VERSION: 0.0 549 PAGE 19 .TITLE CLREOP - CLEAR END-OF-PASS INDICATORS .IDENT /VO.O/ 546 545 17:44 BY DATE REASON CLREOP - CLEAR END-OF-PASS INDICATORS CLREOP.MAC 28-JUL-78 09:12 552 553 554 (1) 555 S56 557 558 559 000000' 000000' 000001 000001 MACY11 30A(1052) 20-SEP-76 17:44 COMMON DEFINITIONS AND REFERENCES , ;**************** ; 561 562 ; REFERENCED BY OTHER MODULES: 563 564 .GLOBL 565 ;**************** 567 SEQ 0321 .SBTTL COMMON DEFINITIONS AND REFERENCES .MCALL STRUCT STRUCT .PRINT ;5PMAC: VEr-SION 1.1 $LSTIN=1 $LSTTAG=1 560 566 PAGE 19-1 CLREOP ;MODULE ~NTRY ; ; GLOBAL REFERENCES 568 569 570 .GL08L .GLOBL SAVREG RESREG ;SAVE GPrt'S ;RESTORE GPR'S POINT CLREOP - CLEArt ;::~~D-O:=-? ;.SS INDICATORS 28-JUL-78 09:12 CLREOP.MAC 572 573 574 (2 ) 575 576 577 573 579 580 581 (3 ) 582 583 584 585 586 587 588 (4 ) 589 590 591 592 593 594 595 (4) 596 597 598 599 600 601 602 (4) (6) ( 9) 603 (4 ) 604 ( 6) 605 (4 ) (;3 ) 606 607 608 609 610 611 612 (3 ) 613 614 (3) MACY 1 1 30A(1052) CLREOP ROUTINE 20-SEP-76 17:44 PAGE 19-2 SEQ 0322 .SBTTL CLREOP ROUTINE ROUTINE CLREOP <TABL> 000000' 000000' CLREOP: ;+ ; SAVE REGISTERS , 000000' 000000' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV TABL(R5),RO MOV DT .MLST(RO) ,R1 CMP SEQ (R1 ) ,#ENDLST 50003$ MOV (R1)+,R2 BICB #EOPBIT,XFLAG(R2 BR 50002$ JSR PC,RESREG ;+ ; SET RO TO THE START OF THE DATA TABLE , 000004' 000004' 016500 LET RO 000000 . - TA8L(R5) ;+ ; GET THE MODULE LIST , 000010' 000010' 016001 LET R1 . - DT.MLST(RO) 000032 ;+ i CLEAR EOPBIT IN XFLAG IN EACH MODULE HEADER , 000014' 000014' 000014' 021127 000020' 00140~ 000022' 000022' 012102 000024' 000024' 142762 000032' 000032' 000770 000034' WHILE (R 1 ) NE #ENDLST DO 50002$: 000000 LET R2 . - (R1 ) + LET XFLAG(R2) 000001 : B= XFLAG(R2) CLR.BY #EOPBIT 000005 ENDDO 50003$: ;+ ; , 000034! 000034' 004767 000040' 000040' RESTORE REGISTERS AND RETURN CALL RESREG OOOOOOG Ei'lDRTN 50000$: CLREOP - CLEAR END-OF-PASS INDICATORS CLREOP.MAC 28-JUL-78 09:12 (3) (2) 615 616 MACY11 30A(1052) CLREOP ROUTINE 000040 000040 1 000207 17:44 PAGE 19-3 SEQ 0323 50001$: 1 000001 20-SEP-76 RTS .END PC CLRcOP - CLEAR END-OF-PASS INDICATORS 28-JUL-78 09: 12 CLREOP .MA.C ACSK ACTSlT= ADDR22= ..\DR APTFER= t\PT?RE= ASB ASSEM3= ASTAT = ;AUTO ;,UTOST = A...JA3 BITO 8ITOO :.n Tal :31 T02 BIT03 dlT04 BIT05 t3ITOG SIT07 BIT08 3IT09 (3 IT 1 81T10 BIT 11 BIT12 SIT13 SIT 14 BIT 15 3IT2 31T3 JIT4 3IT5 SIT6 3IT7 3IT8 81T9 BKOEF 3KrWD BKMODE= 3KSLSH= CAPRES= CASTAT= CDERCT= COt>..DCT= CKTIM = :LKPRE= Cl.REOP CONFIG= CQOVF CR CSRA 000102 004000 001000 000006 000004 000200 000106 ooeOl0 000104 000010 020000 000110 000001 000001 000002 000004 000010 000020 000040 000100 000200 000400 001000 000002 002000 004000 010000 020000 040000 100000 000004 000010 000020 000040 000100 000200 000400 001000 000002 000020 040000 000134 000004 000004 000146 000144 100000 000001 OOOOOORG 000056 000001 000015 000100 CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRTN= DIAGMC= DROPMO= DSEVNT= DT.ADD= DT.AP = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ESI= DT.EVN= DT.EXS= DT.FCH= DT.FeN= DT . Hr·J1X= DT.KBE= DT.KBP= DT.KBR= DT.KBU= DT.MLS= DT.MTI= DT.OFF= DT.PAS= DT.PC = DT.PFL= DT.PSW= DT.PTA= DT.Res= DT.REL= DT.SCT= DT.sr·,1X= DT.SP = DT.SSI= DT.STO= DT.ST1= DT.SWR= DT.SYP= DT.WBU= DT.WHL= DT.WLL= DVIDl = ECCMEM= ECCSTA= ENBEOP= ENBNUL= ENDLST= 000102 000003 000017 000025 000011 000400 000000 100000 000014 000042 000100 000076 000034 000014 000016 000020 000044 000000 000060 000037 000036 000104 000024 000026 000022 000030 000032 000'10 000070 000074 000002 000062 000004 000064 000102 000040 000066 000106 000006 000046 000010 000012 000056 000072 000050 000054 000052 000014 000100 000010 010000 000001 000000 MACY11 30A(1052) SYMBOL TABLE 20-SEP-78 EOPBIT:;: 000001 ERRTYP= 000106 EVNTBE:;: 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE:;: 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050. ICONT = 000036 ICOUNT= OOOOdO IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE:;: 000400 INIT 000030 INTR 000120 IOMOD 100000 IOMODP= 102000 IOi\1ODR= 112000 IOi.1ODX= 1 10000 JACK 035060 KIPARO= 172340 KIPA:<1= 172342 KIPAR2= 172344 KIPAR3= 172345 KIPAR4= 172350 KIPAR5= 172352 KIPAR6:;: 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4:;: 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT:;: 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA:;: 000200 07E600 MED MEMPAS= 040000 MODEXH= 0040C,0 MODHOL= 002000 17:44 PAGE 20 SEQ 0324 MODSEL:;: MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP:;: MSGHDR= MSGHNG= MSGHRD= . MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= N6KMOD= NCPUOP= NOAPTY:;: NULL Ot>JEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= POP60 PDP70 PRIO PR 11 PRI4 = ?RI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= RBUFEA= RBUFPA= RBUFSZ:;: RBUFVA= 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 00')006 00;)003 000015 000014 00J016 000000 000012 000020 001000 000020 000002 000000 024020 000C10 002000 000100 000034 020000 004000 010:)00 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 RDSERV= RDWHMI = RELERR= RELI\10D= REL TIM:;: RES REG:;: RESl RES2 RICHAR= RPTDAT= RSTRT = RU80UT= RJN:\<10D= RSVALU= SAM SAVREG= S3AOR = SBKlVOD= SBKSEL= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SOFCNT= SOFPAS= SPACE = SPOINT:;: S?VALU= SRO SR1 SR2 SR3 STAT STATBl= STAT1 = SUSPND= SVRO SVR1 SVR2 SVR3 SVR4 SVR5 SVR6 SYSCNT= SYSERR= TABL TMPIO TQOVF 000101 000022 000020 020000 010000 ****** G 000056 000060 031060 002000 000112 000177 100000 001740 075464 ****** 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 064757 000027 000001 000062 000064 000066 000070 000072 000074 00007E 000052 000100 000000 000002 000002 G CLRcQP - CLEAR END-OF-PASS INDICATORS CLR~OP.MAC UIPARO= UIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= LJIPDRO= UIPDR1= LJIP)R2= LJIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPl)R7= \.oJASADR= WBSTAT= 177640 177642 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 ABS. oooooe 000042 28-JL!L-78 09: 12 MACY11 30A(1052) SYMBOL TABLE WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = oeOO05 XOFF 000023 )(:IN 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 000 001 ERRORS DETECTED: 0 DEFAULT GLOB;.\LS GENERATED: 0 DSKZ:CLREOP,DSKZ:CLREOP=SPMAC/ML,EQUATE,CLREOP RUN-T IME: 11 1 .4 SECONDS RUN-TIME RATIO: 31/13=2.2 CORE USED: 14K (27 PAGES) 20-SEP-78 00034:) $F$DO $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$'wHI= 000120 $F$YES= 000402 $IFLEV= 177777 17:44 PAGE 20-1 SEQ 0325 $LOCTA= $LSTIN= $LSTTA= $NESTL= $NSKO = $NSK1 = $SAVLE= $SSKO = $TAGLE= 177777 JOOO01 000C01 177777 000300 000120 177777 050003 177777 $TAG~JU= 050004 $TEMP = 00()300 $TSKO = 050002 $TSK1 = 05;)003 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000000 $$ERFL= 000000 $$FLAG= 000340 $$FROM= 000000 $$LOC = 000020R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $SRTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $:;iTGS2= 000000 $$TO 000000 $$$TAG= 050000 000042R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 552 557 584 17:44 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT CMDCPY ROUTINE ;SPMAC: VERSION ,., SEQ 0326 CMDCPY - COMMAND COpy MACY1, 30A(1052) 20-SEP-78 17:44 PAGE 19 CMDCPY.MAC 28-JUL-78 09:12 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 519 519 320 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 SEQ 0327 .TITLE CMDCPY - COMMAND COpy .IDENi IVO.O/ ;++ MODULE NAME: CMDCPY FUNCTIONAL DESCRIPTION: COPIES A COMMAND FROM THE INPUT BUFFER TO THE DECODE BUFFER, EXCLUDING RUBBED OUT CHARACTERS INPUTS: DATA TABLE ADDRESS, DECODE BUFFER ADDRESS IMPLICIT INPUTS: DT.KBUF OUTPUTS: ABORT FLAG IMPLICIT OUTPUTS: NONE PATHOLOGICAL CGNNECTIONS: OV.HIKB SUBORDINATE MODULES CALLED: SAVREG RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL CMDCPY IN <A,B> OUT <C> A=DATA TABLE ADDRESS B=DECODE BUFFER ADDRESS C=ABORT FLAG VERSION: 0.0 ._, EDIT BY DATE REASON CMDCPY - COMMAND COpy MACY1, 30A(1052) 20-SEP-78 17:44 PAGE 19-1 CMDCPY.MAC 28-JUL-78 09:12 COMMON DEFINITIONS AND REFERENCES 552 553 554 555 556 557 (1) 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 SEQ 0328 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000· 000000· 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 ;**************** ; REFERENCED BY OTHER MODULES , .GLOBL , CMDCPY ;MODULE ENTRY POINT ;**************** , ; GLOBAL REFERENCES .GLOBL .GLOGL .GLOBL SAVREG RESREG OV.HIKS iKB BUF HIGH ADDR i**************** ; LOCAL STORAGE: 000000· OOOOOOG CM.KSIZ: OV.HIKB ;KB HIGH LIMIT 20-SEP-78 17:44 MACY11 30A(10S2) CMDCPY - COMMAND COpy CMDCPY ROUTINE 28-JUL-78 09: 12 CMDCPY.MAC 584 585 (2 ) 586 587 588 589 590 591 (3 ) 592 593 594 595 596 597 (4) 598 599 600 601 602 603 (4) 604 605 606 607 608 608 (4) 610 611 612 613 614 615 (4 ) 616 617 618 619 620 621 622 (6 ) (8) (6) ( 9) ( 6) 623 624 (4) 625 626 (4) PAGE 19-2 SEQ 0329 .SBTTL CMDCPY ROUTINE ROUTINE CMDCPY <TABL,DECBUF,ABORT> 000002' 000002 ' CMDCPY: ;+ ;SAVE REGISTERS ;- 000002 ' 000002 ' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV TABL(RS),RO CLR ABORT(R5) MOV DT.KBUF(RO),R1 MOV DECSUF(R5),R2 CMPB SEQ CMPB BNE (R1) ,I;CR 50002$ (R1),#RUBOUT 50003$ MOV # 1 , ABORT ( R5) BR 50004$ ;+ ;SET RO TO START OF DTABLE , 000006 ' 000006 ' 016500 LET RO 000000 · - TABL(R5) ;+ ;CLEAR THE ABORT FLAG ,' 000012' 000012 ' 005065 LET ABORT(R5) . - #0 000004 ;+ ; INITIALIZE INPUT BUFFER POINTER , 000016 ' 000016' 016001 LET R1 000030 · - DT.KBUF(RO) ;+ ; INITALIZE DECODE BUFFER POINTER , 000022 ' 000022 ' 016502 LET R2 000002 · - DECBUF(R5) ;+ ; IF FIRST CHARACTER IS <CR> OR <RUBOUT>, SET ;ABORT FLAG , 000(;26 ' 000026' 121127 000032; 001403 000034' 121127 000040 ' 001004 000042' 000042' 000042' IFB ( R1) EQ #C~ ORB ( R1 ) EO #RUBOUT THEN 000015 000177 50002$: LET ABORT(R5) 012765 00C050 ' 000050 ' 000441 000001 000004 ELSE . - #1 MACY11 30A(1052) 2.0-SE?-78 17:44 CMDCPY - COMMAND COPY CMDCPY FiOUTINE 28-JUL-78 09: 12. CMDCPY.MAC (3 ) 627 628 529 630 (4 ) (6 ) (9 ) 633 034 635 636 637 638 (6 ) (9) 639 (4 ) 640 (2 ) 641 (4 ) ( 3) 642 643 644 645 646 647 648 (6) ( 9) 649 (6 ) 650 (4 ) (6) (9 ) 651 (6 ) 652 (6) 653 (4) (3 ) 654 655 (4 ) (3) 65G 657 658 659 660 SEQ 0330 50003$: 000052' ;+ ;ELSE GO THROUGH INPUT STRING UNTIL END , 631 632 PAGE 1S-3 000052' 000052' 000052' 020167 000056' 103026 WHILE R1 LO CM.KSIZ DO 50005$: CMP BHIS 177722 R1,CM.KSIZ 50003$ ;-i- ; I F CHARACTER IS ~U, SET ABORT FLAG, RESTORE REGISTERS, AND RETURN , 000060' 000060' 000064' 000066' 000066' 000074' 000074' 000076' 000076' 000100' IFB ( R1) EQ #CTRLU THEN 121127 001005 000025 012765 000001 LET A60RT(R5) 00C004 INLINE <BR Bt~E (R1),#CTRLU 50007$ MOV #1,ABJRT(R5) BR 1$ BR 50010$ CMPB BNE (R1 ) ,#RUBOUT 50011$ INC R1 CMPB BEQ (R1) ,#RUBOUT 50013$ DEC R2 INC R1 8R 50012$ 8R 50014$ CMPB . - #1 1$> 000427 ELSE 000415 50007$: ;+ ;ELSE IF CHARACTER IS <RUBOUT>, LOOK FOR NEXT RU30UT AND ;5ACK UP DECODE BUFFER POHITER AS FAR AS NECESSARY ;000100' 00:)100' 000104' 000106' 000106' 000110' OCCi10' 000110' 000114' 000116 ' 000116' 000120' 000120' 000122' 000122' 000124' IFB ( R1) EO #RUBOUT THEN 121127 001010 000177 LET R1 005201 121127 001403 . - R1 + #1 WHILEB t R1) NE #RUBOUT DO 50012$: 000177 005302 005201 LET R2 . - R2 - #1 LET R1 . - R1 + #1 ENDDO 000772 50013$: ELSE 000124' 000124' 000401 000126 1 50011$: ;+ ;ELSE COpy CHARACTER FROM INPUT BUFFER TO DECODE BUFFER AND ;INCREiv:ENT DECODE BUFFER POINTER ;- (;MDCPY - COMMAND COpy MACY11 30A(1052) 20-SEP-78 17:44 CMDCPY ROUTINE 28-JUL-78 09: 12 CMDCPY.MAC 661 662 (4 ) G63 (4 ) 664 665 66'3 667 668 669 (6 ) 670 671 (4 ) 672 (4) (3) 673 674 675 676 677 678 679 680 681 682 (6 ) 683 (6) ( 9) 684 (4 ) 685 (4 ) 686 687 688 (4 ) 689 690 691 692 693 (2 ) 694 (3 ) 69S 696 ( 3) (3 ) (2 ) 697 000126' 000126' 000130' 000130' PAGE 19-4 SEQ 0331 LET (R2)+ : B= (R 1 ) 1 1 1 122 MOVB (R1),(R2)+ INC R1 BR 50005$ SUB #2,R2 CM? BriI R2,DECBUF(R5) 50015$ MOV #1,ABORT(R5) ENDIF 50014$: ;+ ;GET NEXT INPUT SUFFER CHARACTER , OC0130' 000130' LET R1 . - R1 + #1 005201 ENDIF 000132' 000132' 000132' 000132' 000747 000134' 50010$: ENDDO 50006$: ;+ ; IF THE ENTIRE INPUT STRING WAS RUBBED OlIT, SET THE ABORT FLAG ;(FIRST, BACK UP THE DECODE BUFFER POINTER TO ALLOW ;FOR THE CR AND LF, THEN SEE IF THE POINTER IS AT THE ;BEGINNING OF THE BUFFER.) , C00134' 000134' 162702 000140' 000140' 020265 000144' 101003 000146' 000146' 012765 000154' 000154' LET R2 000002 .- R2 - #2 IF R2 LOS DECSUF(R5) THEN 000002 LET ABORT(R5) 000001 . - #1 000004 ENDIF 5001S$: ENDIF 000154' 000154' 50004$: ;+ ;RESTORE REGISTERS AND RETURN , 000154' 000154' 000154' 000154' 004767 000160' 000160' 000160' 000160' 000207 000001 INLINE <1$:> 1 $: CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 50001$: . END - 20-SEP-78 17:44 MACY 11 30A(1052) CMDCPY COMMAND COpy SYMBOL TABLE 28-JUL-78 09: 12 CMDCPY.MAC ABORT = 000004 ACS~ 000102 ACTSlT= 004000 !\DDR22 = 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 f,SSEMB= 000010 I\STAT = 000104 ,;UTO 000010 ,\UTJST= 020000 J\~;JAS 000110 l1I T J 000001 ~n TOO 000001 UIT01 000002 F3I T02 000004 :31T03 000010 8ITJ4 000020 :3IT05 OC0040 [3IT06 OC0100 BIT07 OC0200 [3 IT 08 000400 :31 T 09 001000 8IT1 000002 i3IT 1 0 002000 aIT11 OC4000 [3 IT 12 010000 :3 I T 13 020000 3IT14 040000 :3IT15 100000 3IT2 000004 31T3 000010 !3I T4 000020 3115 000040 000,00 SIT6 3117 000200 000400 3IT8 8IT9 001000 :3KDEF 000002 SKrliOD 000020 BKMODE= 040000 :3KS LSH= 000134 CAPRES= 000004 ':::ASTAT= 000004 CDERCT= 000146 CD"'~DCT = 000144 CKTIM = 10~000 CLKPRE= 000001 CMDCPY 0OOO02RCi CM.KSI OOOOOOR CONFIG= 000056 CQOVF = 000001 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DECBUF= 000002 DEFRTN= 000400 DI AGr.1C = 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.A? = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERK= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS:: 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MT1= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 DT . SvJR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 PAGE 20 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INH8RP= OLlOOOO INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2:; 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 1723(.2 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 0000-,2 LF LPSTAT= 000001 MAPSTA= 000200 MED 076600 SEQ 0332 MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMi3= MSGS:\1H= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OV.HIK= OWEN PAERR = PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PR11 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= 040000 OO·-lOOO 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 00J021 177775 000002 177776 000001 000006 000003 00')015 000014 000016 000000 00J012 00,)020 001000 00')020 000002 000000 ****** G 024020 000010 00:2000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 00J300 000340 177776 177776 000054 RBLlFEA= RBUFPA= RSUFSZ= RSUFVA= RDSERV= RD',vHJ11 = RELERR= RELMOD= REL TIM= RESREG= RES, R::S2 RICHAR= RPTDAT= RSTRT = RLJBOUT= RUN~,iOD= F15V ALU= SAN: SAVREG= SBADR = SBKMOD= SBKSEL= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SOFCNT= SDFiJAS= SPACE = SPOINT= SPVALU= SRO SRl SR2 SR3 STAT STATBI= STATl = SUSPND= SVRC SVR1 SVR2 SVR3 SVR4 SVR5 SVR6 SYSCNT= 000130 000126 000132 000124 000101 000022 000020 020000 010000 G ****** 000056 000060 031060 002000 000112 000177 100000 001740 075464 *****-1< G 000102 000000 010000 000006 000014 0000 oj 6 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 064757 000027 000001 000062 000064 000066 000070 000072 000074 000076 000052 Cf\''lD~: PY - COMMAND COpy 20-SEP-78 MACY 11 30A(1052) 17:44 SYMBOL TABLE CMDCPY.MAC 28-JUL-78 09: 12 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 vJBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 XOFF 000023 XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$A~D= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 !SF$FAL= 000405 SYSERr-= 000100 TAB:'" 000000 ~MPIO = 000002 TOO'JF = 000002 LJIPARO= 177640 UIP.l.R1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 lJIPAR6= 177654 LJIPAR7= 177656 lJIPDRC= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPJR3= 177606 UIPJR4= 177610 UIPDR5= 177612 lJIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 A.BS. 000000 000162 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:CMDCPY,DSKZ:CMDCPY=SPMAC/ML,EQUATE,CMDCPY RUN-TIME: 14 4 .4 SECONDS RUN-TIME RATIO: 39/19=1.9 CORE USED: 14K (27 PAGES) PAGE 20-1 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO ;:: 000403 $F$OR = 000320 $F$RTI= 000350 $F$R1N= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$~<JHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $ISKl = 000001 $ISK2 = 000001 $LOCTA= 177777 $L5TIN= 000001 SEQ 0333 $LSTTA= 000001 $NESTL= 177777 $NSKO 000300 000;10 $NSKl $NSK2 000110 000110 $NSK3 $NSK4 000110 $NSK5 000120 $SAVLE= 17'7777 $SSKO = 058006 $TAGLE= 177777 $TAGNU= 050016 $TEMP 000300 $TSKO 058004 $TSK1 050015 $TSK2 050006 050010 $TSK3 $TSK4 050014 $TSK5 050012 $TSK6 050013 $$ARGC= 000006 $$BYTE= 000403 $$C,,-SE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000144R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $ .5S RC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000162R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 554 559 581 17:45 TABLE Of CONTENTS COMMON EQUATE MODULE DEFINITIONS AND REFERENCES 000000· .PRINT CMDDCD ROUTINE COM~ON ;SPMAC: VERSION 1.1 SEQ 0334 CMDDCD - DECODE COMMAND MACY11 30A(1052) 20-SEP-78 17:45 PAGE 19 CMDOCD.MAC 28-JUL-78 09:12 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 52£ 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 SEQ 0335 .TITLE CMDDCD - DECODE COMMAND .IDENT JVO.Oj ;++ MODULE NAME: CMDDCD FUNTIONAL DESCRIPTION: DECODES THE CONTENTS OF THE DECODE BUFFER AND RETURNS A COMMAND CODE INPUTS: DECODE BUFFER ADDRESS IMPLICIT INPUTS: NONE OUTPUTS: COMMAND CODE, UPDATED DECODE BUFFER POINTER IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL CMDDCD IN <A> OUT <B,C> A=DECODE BUFFER ADDRESS B=UPDATED DECODE BUFFER POINTER C=COMMAND CODE VERSION: 0.0 EDIT BY DATE REASON CMD~CD - DECODE COMMAND MACY11 30A(1052) 20-SEP-78 17:45 PAGE 19-1 CMDDCD.MAC 28-JU~-78 09:12 COMMON DEFINITIONS AND REFERENCES 554 555 556 '357 558 559 (1) 560 561 SEQ 0336 .SBTTl COMMON DEFINITIONS AND REFERENCES 000000 1 000000 1 000001 000001 .MCAll STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $lSTIN=l $lSTTAG=1 562 563 564 :365 563 567 563 569 570 571 572 ;******~********* ; REFERENCED BY OTHER MODULES .GLOBl CMDDCP ;MODULE ENTRY POINT ;*****~********** , 573 574 575 ; GLOBAL REFERENCES 57£ .GLOBl 577 578 579 ;**************** , CM.TBl ;VAlID COMMAND TABLE CMDDCD - DECODE COMMAND MACY1, 30A(1052) 20-SEP-78 17:45 CMDDCD.MAC 28-JUl-78 09:12 CMDGCD ROUTINE 581 582 583 584 (2) 585 586 587 588 :389 590 591 (2) (3) 592 593 S94 595 596 597 (4) 596 599 600 601 602 603 (4) PAGE 19-2 SEQ 0337 .SBTTL CMDDCD ROUTINE .EVEN ROUTINE CMDDCD <DECBUF,DBFPTR,CDCODE> 000000' 000000' CMDDCD: ;+ ;SAVE REGISTERS PUSH R1,R2 000000' 000000' 010146 000002' 010246 000004' 000004' 012701 ;+ ;LET R1 BE THE POINTER FOR THE VALID COMMAND TABLE LET R1 .- #CM.rBL OOOOOOG MOV MOV R1,-(SP) R2,-(SP) MOV #CM.TBL,R1 CLR CDCODE(R5) MOV DECBUF(R5) tR2 CMPB BNE (R2) ,#SPACE 50004$ INC R2 ;+ ;SET THE COMMAND CODE TO 0 000010' 000010 1 005065 LET CDCODE(R5) '- #0 000004 6004 60S ;+ ;GO THROUGH THE VALID COMMAND TABLE UNTIL THE END 506 607 608 609 610 (3) 611 612 613 614 615 616 (4) 617 618 619 620 REPEAT 000014' 000014' 50002$: ;+ ;LET R2 BE THE DECODE BCFFER PCINTER 000014' 000014' 016502 LET R2 .- DECBUF(R5) 000000 ;+ ;FIND THE FIRST CHARACTER IN THE DECODE BUFFER THAT ;IS NOT A SPACE 62~ 62~ 623 (4) (6) (9; 624 (6) 625 000020' 000020' 000020' 121227 000e24' 001002 000026' 000026' 005202 000030' WHILEB (R2) EO #SPACE DO 50003$: 000040 LET R2 .- R2 + #1 ENDDO 20-SEP-78 17:45 CMD)CD - DECODE COMMM"D MACY 11 30A(1052) CMDDCD ROUTINE OfoD)CD _MAC 28-JUL-78 09: 12 (4) (3 ) 626 627 628 629 630 631 632 (4 ) (6) ( 9) 633 000030 ' 000773 000032 ' (6) 005201 (3 ) 000O~4' 636 63/' 638 539 640 641 642 643 (6) ( 9) 644 645 (6 ) (8) (6) (9) ( 6) 646 ( 2) 647 (4 ) 648 649 (4 ) 650 651 652 653 654 655 656 (4 ) (6 ) ( 9) 657 (6) 658 BK 50003$ CMPB BNE (P.1), (R2) 50006$ INC R1 It~C R2 BR 50005$ TSTB BNE ( R1 ) 50007$ CMPB BEO CMPB BNE (R2),#SPACE 50010$ (R2),#CR 50011$ BR 1$ TSTB SEQ (R 1 ) 50013$ INC R1 50004$: , 635 (4) (6) SEO 0338 ;+ ;COMPARE CHARACTERS OF VA LI D COMr~lAND TO CHARACTERS IN ;DECODE BUFFER UNTIL A MISMATCH IS FOUND 000032' 000032' 000032' 000034' 000036' 000036' 000040' 000040 ' 000042 ' 000042' 63~ PAGE 19·-3 WHILEB ( R1) EO (R2) DO 121112 001003 50005$: · - R1 + #1 LET R2 · - R2 + #1 LET R1 005202 ENDDO 000773 50006$: ;+ THEN CHECK IF AT IF YES, ;END OF DECODE COMMAND. ;SAVE DECODE BUFFER POINTER; SAVE REGISTERS, AND RETURN , ; IF AT THE END OF A VALID COMMAND, IFB ( R1 ) EO #0 THEN 000044 ' 000044' 105711 OC,0046 ' 001007 000050' 000050' 121227 000054' 001403 OC0056' 121227 000062' 001001 000064' 000064' 000064' 000415 000066' 000066' IFB (R2) EO #SPACE ORB (R2) EO #CR THEN 000040 000015 50010$: INLINE <BR 1 $> ENDIF 50011$: ENDIF 000066! 000066' 50007$: ;+ ;ELSE THE COMMANDS DID NOT MATCH, SO INCREMENT THE COMMAND CO)E ;AND GET THE NEXT VALID CO~MAND FROM THE TABLE , 000066' 000066' OC0066' 105711 000:)70' 001402 000072' 000072' 005201 000074' WHILES ( R1 ) NE #0 LET R1 ENDDO no · - R1 + #1 50012$: (MDDCD - DECODE COMMAND MACY11 30A(1052) 20-SEP-78 17:45 CMDDCD ROUTINE 28-JLJ~-78 09: 12 CMDDCD.MAC (4 ) ( 3) 659 660 661 (6) 662 363 (6) 664 665 666 667 368 669 (3 ) (6) 670 671 672 673 674 675 676 (4 ) 677 678 679 680 681 682 (2 ) 683 (4) 684 685 686 687 688 689 690 ( 2) (3 ) 691 69~ (3 ) (3) (2 ) 693 694 695 696 697 698 699 PAGE 19-4 000074 1 000774 000076 1 00C076 1 000076 1 005265 SEQ 0339 BR 50012$ INC CDCODE(R5) INC R1 CMPB BNE (R1),#-1 50002$ MOV #-1,CDCODE(RS) 50013$: LET CDCODE(R5) 000004 LET R1 000102 1 000102 1 005201 .- CDCODE(R5) + #1 ·- R1 + #1 ;+ ;END OF TABLE YET? , 000104 1 000104 1 121127 000110 1 001341 UNTILB ( R1) EQ #-1 177777 ;+ ILLEGAL COMMAND ;YES ;SET COMMAND CODE TO -1 - , 000112 1 000112 1 012765 LET CDCODE(R5) 177777 000004 · - #-1 ;+ ;SAVE THE DECODE BUFFER POINTER , 000120' 000120' 000120' 000120' 010265 INLINE <1$:> 1 $: LET DSFPTR(R5) 000002 · - R2 MOV R2,DBFPTR(R5) MOV MOV (SP)+,R2 (SP)+,R1 RTS PC ;+ ;SAVE REGISTERS AND RETURN , 000124' 000124' 012602 000126' 012601 POP R2,R1 000130' 000130' 000130' 000130' 000207 ENDRTN ;+ ;VALID COMMAND TABLE , 000001 . END 50000Jj: 50001$: - :;:'0-SEP-78 17:45 CMDOCD D~CODE COMMAND MACY 11 30A(1052) SYMBOL TABLE CMDOCD.MAC 28-JUl-78 09: 12 000i02 ACSrt ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ;"SSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 {:,I'iAS 000110 BITO 000001 BITOO 000001 BIT01 000002 BIT02 000004 81T03 000010 3IT04 000020 000040 GIT05 BIT06 000100 BIT07 000200 000,100 :3IT08 GIT09 001000 BIT1 000002 BIT10 002000 8IT11 004000 81T12 010000 8IT13 020000 040000 3IT14 100000 SIT15 81T2 000004 000010 8IT3 GIT4 000020 BITS 000040 ~3 IT 6 000100 f3 I T7 000200 000400 JITS 001000 BIT9 BI\DEF 000002 8KMOD 000020 3KMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDCODE= 000004 CDERCT= 000146 CDwDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CMDDCD OOOOOORG CM.TBL= ****** G CONFIG= 000056 'CQOVF = 000001 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 eTRlO 000025 CTRLU DBFPTR= 000002 DCEVNT= 000011 DECBUF= 000000 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 OT.FCH:.: 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT. PT A= 000064 DT.Res= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SS1= 000046 D1.STO= 000C10 DT.ST1= 000012 DT.SWR= 000056 OT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLl= 000052 DVID1 = 000014 ECCMEM= 000100 PAGE 20 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 IeONT = 000036 IeOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 H~HEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 100000 10MOD 10MODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 ~~IPD~O= ~72300 KIPDR1= KIPDR2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= 172302 172304 172306 172310 172312 172314 172316 000040 000400 000,)20 040000 000012 000001 000200 SEQ 0340 MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGH;\JG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSrvlB= MSGSMH= MSGSIV1S= MSGSTD= MSGSYS= MSGVEC= NBKMOO= NCPUOP= NOAPTY= NULL OvJEN PAERR PARPRE= PARSTA= pt.,seNT= PDPLSI= PDP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= 07G600 040000 004000 002000 001000 000010 000011 00C005 000017 177777 00C013 000004 000022 000007 000021 177775 000002 177776 00nC01 000006 000003 000015 000014 000016 000000 000,)12 000020 001000 000020 000002 000000 024020 000G10 002000 000100 000034 020000 004000 010000 000000 000040 000200 000:240 000300 00·:)340 000000 000200 000240 000300 000340 177776 177776 OOQ054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RCo'/! Hf'll I = 000022 RELERR= 000020 RELI\10D= 020000 REL TIM= 010000 RES1 000056 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUSOUT= 000177 R:.JNMOD= 100000 R5VALU= 00174) 075464 SAM SBADR = 000102 S BK~~;OD= 000000 SBKSE L= 010000 SC.ADR= 000006 SC.ALC= 00JO'i4 SC.A.PC= 000016 SC.CKL= 000002 S:.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SClFPAS= 000046 S?ACE = 000040 S?OINT= 000032 S?VALU= 002200 177572 SRO SR1 177574 SR2 177576 172516 SR3 STAT 000026 STAiBl= 064757 ST AT1 = 000027 SUSPND= 000001 S\JRO 000062 S\lRI 000064 000066 SVR2 000070 SVR3 000072 SVR4 SVRS 000074 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 CMDDCD - DECODE COMMAND MACY1, 2H-JUL-78 09: 12 CMDJCD.MAC TQO'JF = UIPARO= UIPAR1= LJ1 D AR2= ulPAR3= UIP~R4= UIPAR5= UIPAR5= UIPAR7= UIP:lRO= UIP)R1= UIP0R2= LJIPJR3= UIPDR4= LJIPJR5= UIPDRE= LJIPDR7= \'JASADR = vj8STAT= ABS. 20-SEP-78 17:45 SYMBOL TABLE WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 000002 177640 177642 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 000000 000132 30A(1052) 000 001 ERKORS DETECTED: 0 DEFAULT GLOBALS GEt'OERATED: 0 DSKZ:CMDDCD,DSKZ:CMDDCD=SPMAC/ML,EQUATE,CMDDCD RUN-TIWE: 14 4 .4 SECONDS RUN-TIIY.E RATIO: 37/18=1.9 ceRE USED: 14K (27 PAGES) PAGE 20-1 $F$FAL= 00C405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLE'.J= 177777 $ISKO = 000001 $ISKl = 000001 SEQ 0341 $LOCTA== $LSTIN= $LSTTA= $NESTL= $NSKO $r~SK 1 = $NSK2 = $NSK3 = $SAVLE= $SSKO = $TAGLE= $TAGNU= $TEMP $TSKO = $TSK1 = $TSK2 = $$ARGC= $$BYTE= $$CASE= 177777 000001 000001 177777 000300 000130 000120 000110 177777 050013 177777 050014 000300 05,')002 050012 050013 000006 000402 000000 $$i)ST == $$ELOC= $$ERFL= $SFLAG= $$F~OM= $$LOC = $$LOCN= $$REG = $Sr::ETU= $$RTN1= $SRTN2= $$SRC = $$TGSV= $iTGS1= $$TGS2= $$TO $$$TAG= 000000 000402 000000 000340 000000 000110R 000000 177777 000000 050000 050001 000000 000000 000000 000000 000000 050000 000132R .MAIN. MACY11 30A(1052) 20-SEP-78 13-SEP-78 16:13 EQUAT~.MAC 3 553 558 622 17:46 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT CMDPRC ROUTINE ;SPMAC: VERSION 1.1 SEQ 0342 CMDPRC - PROCESS KEYBOARD COMMAND CMDPRC.MAC 06-SEP-78 14:32 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 54::> 541 MACY11 30A(1052) 2C-SEP-78 COMMON EQUATE MODULE 17:46 PAGE 19 SEQ 0343 .TITLE CMDPRC - PROCESS KEYBOARD COMMAND .IDENT JVO.Oj ;++ MODULE NAME: CMDPRC FUNCTIONAL DESCRIPTION: CONTROLS THE DECODING AND PROCESSING OF KEYBOARD COMMANDS BY IDENTIFYING THE COMMAND AND THEN CALLING THE PROPER SERVICE ROUTINE INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: CMDCPY, CMDDCD, CMDRST, ALL COMMAND SERVICE ROUTINES SAVRES RESREG FUNCTIONAL SIDE EFFECTS: NONE 54L 543 544 545 546 547 548 549 550 551 CALLING SEQUENCE: CALL CMDPRC IN <A> A=ADDRESS OF DATA TABLE VERSION: 0.0 EDIT BY DATE REASON CMDPRC - PROCESS KEYBOARD COMMAND CMDPRC.MAC 06-SEP-78 14:32 553 554 555 556 557 558 ( 1) 559 560 MACY11 30A(1052) 20-SEP-78 17:46 COMMON DEFINITIONS AND REFERENCES PAGE 19-1 SEQ 0344 .SBTTL COMMON DEFINITIONS AND REFERENCES .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 000000' 000000' 000001 000001 561 562 563 564 565 566 ;**************** ; REFERENCED BY OTHER MODULES 567 568 569 .GLGBl .GL08l .GL08l .GLDBl .GLOBl .GlOBL .GLOBl .GlOBL 570 571 572 573 57.:i 575 576 CMDPRC CM.BADNAME CM.ARG CM.NUM CM.ODD CM.RUN CM.ADR CM.NBAD ;MODULE ENTRY POINT - MESSAGES 577 ;**************** 578 579 380 581 582 ; GLOBAL REFERENCES .GL08L .GLOBl .GLUBl .GlGBl .GL08l .Gl..OBL 583 584 585 586 587 58E: 589 ;COMMAND ;COMMAND ;COMMAND ;COMMAND CMDCPY CMDDCD CMDR5T CM.DIS SAVREG RESREG COpy MODULE ENTRY POINT DECODE MODULE ENTRY POINT RESET MODULE ENTRY POINT DISPATCH TABLE ;**************** 590 591 .;**************** 592 ; LOCAL EQUATES: 593 59'-1 ;BUFFER SIZE 82 (10) BYTES ;MUST ALWAYS=KEYBD. aUF SIZE CM.BUFSIZ=~D<82> 000122 595 596 597 598 599 ;**************** 600 . ; lOCAL STORAGE: 601 602 603 604 605 606 000000 1 000002' 000004' 000006 1 000014' 000000 oooeoe 000000 047111 020104 040526 047515 044514 052504 CM.ABORT: CM.CDCODE: CM.DBFPTR: CM.BADNAME: .WORD 0 ;ABORT FLAG .WORD 0 ;COMMAND CODE .WOr-D 0 ;DECODE BUFFER POINTER .ASCIZ /INVAlID MODULE NAME%/ ; - MESSAGES MACY'1 30A(1052) 20-SEP-78 17:46 COMMON DEFINITIONS AND REFERENCES CMDPRC - PROCESS KEYBOARD COMMAND CMDPRC.MhC OG-SE?-78 14:32 607 609 609 610 611 6~3 614 615 616 617 618 619 620 000022' 042514 000030' 022505 111 000033' 042111 OOOO'~O' 000046' 044515 000054' 020107 000062' 042515 OOO,}70' 052516 000076' 052040 OC0104' 051101 000112 ' 052515 000120' 020105 000126' 040440 000134' 051523 000140' 047111 020104 C001~6' OCOI54' 047101 000162' 051040 000170' 042117 1 11 000175' 000202' 042111 000210' 042522 000216' 047516 000224' 047440 000232' 0·17040 000240' 022522 111 000243' 0(0250' 0421 11 000256' 0~()515 040 000264' 000265' 000122 000 000407' 000 000410' 000412' 047040 000 053116 047440 051523 051101 052116 041115 047517 042507 052123 053105 042104 UOO045 040526 047503 020104 047125 022505 053116 040440 051523 020124 052103 046525 000 053116 041440 042116 PAGE 19-2 SEQ 0345 046501 046101 020122 0471 1 1 052507 000045 051105 046040 000045 041040 047105 042522 CM.ARG: .ASCIZ /INVALID OR MISSING ARGUMENT%/ CM.NUM: .ASCIZ /NUMBER TOO LARGE%/ CM.ODD: .ASCIZ /MUST BE EVEN ADDRESS%/ 044514 046515 0471 11 046440 CM.RUN: .ASCIZ /INVALID COMMAND IN RUN MODE%/ 046101 042104 000045 047101 046101 042502 CM.ADR: .ASCIZ /INVALID ADDRESS%/ CM.NBAD: .ASCIZ /NOT AN OCTAL NUMBER%/ 046101 046517 026440 CM. HNCMD: .ASCII /INVALID COMMAND - / CM.DECBUF: .BYTE 0 .BYTE 0 .EVEN .BLKB CM.BUFSIZ ;KEYBOARD COMMAND DECODE BUFFER ;GUARANTEE 0 TERMINATION ceo ;**************** ***NOTE - ASCII INSTEAD OF ASCIZ - CMD;JRC PROCESS KEYBOARD COMMAND CMD,JRC. MAC 06-$EP-78 14:32 622 623 (2 ) 624 625 ,326 527 628 (3 ) 629 630 631 632 633 (4 ) 634 635 036 637 638 639 540 (4) 641 (4 ) (6) 642 (4) (6 ) (9 ) 643 (4 ) 644 (4 ) ( 3) 645 (4 ) 646 (4 ) 647 (4 ) 648 649 650 651 652 653 (4 ) (3 ) (5 ) (4 ) (3 ) (3 ) (4 ) 654 655 MACYll 30A(1052) CiVlLlPRC ROUTINE 20-SEP-78 17:46 PAGE 19-3 SEQ 0346 .SBTTL CMDPRC ROUTINE ROUTINE CMDPRC <TABL> 000412' 000412' CMDPRC: ;+ ;SAVE REGISTERS , 000412' 000412' CALL SAVREG 004767 OOOOOOG JSR PC,SAVREG MOV TABL(R5),RO MOV # C[VI . DE. C BUF , R 1 MOV ADD Rl ,R2 #C:vI.BUFSIZ,R2 CMPS BEQ Rl , R2 50003$ CLRS (R1 )+ BR 50002$ CLR CM.ABORT CLR CM.CDCODE CLR CM.DBFPTR SUB MOV #1>1-2,R5 R5,-(SP) #CM.DECBUF,-(RS) RO,-(R5) PC,CtJlDCPY (SP)+,R5 (R5)+,CM.ABORT ;+ ;SET RO TO START OF DTABLE 000416' 000416' 016500 , LET RO 000000 · - TABL(R5) ;+ ;CLEAR THE DECODE BUFFER AND LOCAL STORAGE WORDS , 000422' 000422' 012701 000426' 000426' 010102 000430' 062702 000434' C()0434' 000434' 120102 000436' 001402 000440' 000440' 105021 000442' 000442' 000774 C00444' 000444' 000444' 005067 000450' 0()0450' 005067 000454' 000454' 005067 · - #CM.DECBUF LET R2 · - R1 + #CM.BUFSIZ LET Rl 000265' 000122 WHILES Rl NE R2 DO 50002$: LET (R 1 ) + :B= #0 ENDDO . - #0 LET CM.CDCODE .- #0 LET CM.DBFPTR .- #0 LET CM.ABORT 177330 177326 177324 50003$: ;+ ; COpy INPUT BUFFER INTO DECODE SUFFER , 000460' 0(';0460 ' 000464' OOO·~66 ' OC0472' 000474' 000500' 000502' CALL CMDCPY IN <RO,#CM.DECOUF> OUT <CM.ASORT> 16270:; 010546 01274::; 010045 OJ4767 000002 r;~ov 000265' Mev JSR OOOOOOG M'JV M0V 01~605 012567 177272 ;+ CMD?RC - PROCESS KEYBOARD COMMAND CMDPRC.MAC 06-SEP-78 14:32 656 657 658 659 (6) (9) 660 661 :362 663 (4) (3) (4) (3) (3) (4) (4) 664 665 666 667 668 669 670 671 (6) (9) 672 673 (4) 674 675 (4) (3) 676 (4) (7) 677 (3) (5) (4) (3) (3) 678 (4) 679 (4) 680 681 682 683 684 685 686 687 (3) MACY11 30A(1052) CMDPRC ROUTINE .20-SEP-78 17:46 PAGE 19-4 SEQ 0347 ; IF ABORT FLAG NOT SET, DECODE COMMAND 000505' 000506' 026727 000514' 001436 000516' 000516' 000522' 000524' 000530' 000534' 000536' 000542' IF CM.A80RT NE #1 THEN 177266 000001 CMP BEQ CM.ABORT,#1 50004$ SUB MOV MJV JSR MJV MOV MOV #2~2,R5 CALL CMDDCD IN <#CM.DECBUF> OUT <CM.DBFPTR,CM.CDCODE> 162705 010546 012745 004767 012605 012567 012567 000004 000265' OOOOOOG 177242 177234 R5,-(SP) #C:'.1 . DEC BU F ,- (R5) ?C,CMDDCD (SP)+,R5 {R5)+,CM.DBFPTR (R5)+,CM.CDCODE ;+ , IF THERE WAS AN ERROR (CM.CDCODE=-1), THEN OUTPUT THE DECODE BUFFER ;ALONG WITH AN ERROR MESSAGE. IF THE COMMAND ;WAS VALID, DISPATCH CONTROL TO THE PROPER ROUTINE. IF CM.CDCODE EQ #-1 THEN 000546' 000546' 026727 000554' 001004 177230 000556' 000556' 012760 000243' 00002.2 000564' 000564' 000566' 000566' 000566 I 000572' 000574' 000574' 000576' 000502' 000604' 000510' 000612' 000612' 000612' 000612' 177777 LET DT .KBRSP(RO) CMP BNE CM.CDCODE,#-1 50005$ MOV #CM.INVCMD,DT.KB BR 50006$ MOV ASL CM.CDCODE,R1 R1 MOV MOV MOV JSR MOV R5,-(SP) CM.DBFPTR,-(R5) RO,-(R5) PC, @CM. 0 IS ( R 1 ) (SP)+,R5 MOV R5,-(SP) . - #CM.INVCMD ELSE 000412 50005$: LET R1 016701 006301 010546 016745 010045 004771 012605 := CM.CDCDDE SHIFT #+1 '77.210 CALL @CM.DIS(R1) IN <RO,CM.DBFPTR> 177.20.2 OOOOOOG ENDIF 50006$: ENDIF 50004$: ;+ ; CALL COMMAND RESET MODULE WHICH WILL OUTPUT PROMPT 000612' 000612' 010546 CALL CMDRST IN <RO> - CMDPRC PROCESS KEYBOARD COMMAND C(S-SEP-78 14:32 CMDPRC.MAC (4 ) (3 ) (3 ) 688 689 590 691 692 693 (3 ) 694 695 696 697 698 699 (3) (3 ) (2 ) 700 000614' 010045 000616' 004767 000622' 012605 MACY11 30A(1052) CMDPRC ROUTINE 20-SEP-76 17:46 PAGE 19-5 SEQ 0348 OOOOOOG MOV JSR MOV RO,-(R5) PC,CMDRST (SP)+,R5 JSR PC,RESREG RTS PC ;+ ;RESTORE REGISTERS , 000624' 000624' 004767 CALL RESREG OOOOOOG ;+ ;RETURN ;- 000630' 000630' 000630' 000630' 000207 000001 ENDRTN 50000S: 50001$: .END - O!,OPRC PROCESS KEYBOARD COMMAND 06-SEP-78 14:3:2 CMDPRC.MAC ACSR ACTBIT= ADDR2.2= ADR APTFER= APTPRE= ASB ASSEMB= ASTAT = t\UTO f\UTOST= {,V·JAS GITO f3ITOO f3ITOl GIT02 E3IT03 BIT04 BIT05 BIT06 BIT07 BIT08 BIT09 E3IT1 E3ITl0 UIT11 BlT12 B1T13 BIT14 GIT15 f3IT2 E3IT3 BIT4 BIT5 GlT6 131T7 tlITS 8IT9 6KDEF [)f\MOD B"MODE= BKSLSH= CAPRES= CASTAT= CDERCT= 000102 004000 001000 000006 000004 000200 000106 000010 000104 COO010 020000 000110 000001 000001 000002 000004 000010 000020 000040 000100 000200 000400 001000 000002 002000 004000 010000 020000 040000 100000 000004 000010 000020 000040 000100 000200 000400 001000 OCC002 000020 040000 000134 000004 000'J04 000146 CD~:DCT= 000144 CforM = 100000 CLKPRE= 000001 CMDCPY:: **"'*** G CMDDCD= >~***** G CMDPRC 000412RG CMCRST= ****** G CM.ABO OOOOOOR MACY 11 30A(1052) SYMBOL TABL.E CM.ADR 000175RG CM.ARG 000033RG CM.BAD 000006RG CM.BUF= 000122 000OO2R CM.CDC CM.DBF 000004R CM.DEC 000265R CM.DIS= ****** G 000243R CM.INV CM.NBA 000216RG CM.NUM 00OO70RG CM.ODD 000112RG CM.RUN 000140RG CONFIG= 000056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.H~X= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.l\1TI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 20-SEP-78 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVIDl = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 E::RRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 00C040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= COO400 000030 INIT 000120 INTR TOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 1 10000 035060 JACK KIPARO= 172340 KIPAR1= 17:2342 KIPAR2= 172344 KIPAR3= 1723'::6 KIPAR4= 172350 KIPAR5= 17235·2 KIPAR6= 172'354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 17:46 PAGE 20 KIPDR2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MED MEMPAS= MODEXrl= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= rv'ISGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPEM= MSGRES= MSGSFT= MSGSKE= MSGSM8= MSc.;SfVlH= MSGSfJlS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= ~~CPUCP= NOAPTY= NULL mIJEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO SEQ 0349 172304 172306 172310 17~312 172314 172316 000040 000400 000020 040000 000012 000001 000200 076600 040000 004000 002000 001COO 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 00:)015 000014 000016 OO·)COO 000012 000020 001eoo 000020 000002 000800 02·;020 000010 002000 000100 000034 020000 004000 010000 000000 PRI1 PRI4 PRI5 PRIG PRI7 PRO PR4 PR5 PR6 PR7 PS PSW R~.I\;NUM= RBUFEA= RBUFPA= R9UFSZ= RBUFVA= RDSERV= RDlIIHM 1= RELERR= RELMOD= REL TIM= RESREG= RES1 RES2 RICHAR= R?TDAT= RSTRT = RUBOUT= RUNMOD= R5VALU= SAM SAVREG= SBADR = SBKr"OD= SB!-<SE L= SC.ADR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SOFCNT= SGFPAS= SPACE = SPOINT= SPVALU= SRO SRl SR2 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177775 177776 000054 000130 000126 00013:2 000124 000101 000022 000020 02:)000 010000 ****** G 000056 000060 031060 002000 000112 000177 100000 001740 075464 ****** G 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 CMD?RC - PROCESS KEYBOARD COMMAND 06-SEP-76 14:32 CMDPRC.MAC UIPAR5= UIPAR6= UIPAR7= UlPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= WDFR WDTO WTINRE= WTWHMI= XFLAG = SR3 172516 STAT COO026 STATBl= C64757 ST AT 1 = 000027 SUSPND= 000001 SVRO 000062 000064 SVR1 000066 SVR2 OC0070 SVR3 ~;VR4 000072 000074 SVR5 000076 SVR3 SYSCNT= 000052 SYSERR= 000100 TABL 000000 TJvlP I 0 = (100002 TQO'JF = COOO02 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 1776S0 ABS. 000000 000632 MACY11 30A(1052) S'(;,180:" TAS:"'E 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 000352 000222 000005 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:CMDPRC,DSKZ:CMDPRC=SPMAC/ML,EQUATE,CMDPRC RU~-TIME: 13 3 .4 SECONDS RUN-TIME RATIO: 36/17=2.0 CORE USED: 14K (27 PAGES) XOFF 20-SEP-78 000023 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 00021·:> $F$LOO= 000200 $F$NAM= 000;60 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 XON 17:46 PAGE 20-1 SEQ 0350 $F$TRU= $F$UNT= $F$WHI= $F$YES= $IFLEV= $ISKO = $ISK1 = $LOCTA= $LSTIN= $LSTTA= $t~EST L= $NSKO = $NSK1 = $NSK2 = $S.t.VLE= $SSKO = $TAGLE= $TAGNU= $TEIVP = $TSKO = $TSK1 = $$ARGC= 000404 000130 000120 000402 177777 000001 000001 177777 000001 000001 177777 000300 000110 000110 177777 05;)003 177777 05 Je07 000300 050004 05;)006 000002 $$8YTE= 000403 $$C4SE= 000000 $$CST = 000000 $SE LOC= 000402 $SERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000554R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 S;SRTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000632R .MAIN. MACY11 30A(1052) 20-SEP-78 13-SEP-78 16:13 EQU~TE.MAC 3 549 554 576 17;46 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT ;SPMAC: VERSION 1.1 CMDRST ROUTINE SEQ 0351 CMDRST - KEYBOARD RESET MACY11 30A(1052) 20-SEP-78 17:46 PAGE 19 CMDRST.MAC 08-SEP-78 09:13 COMMON EQUATE MODULE 508 5C9 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 .TITLE CMDRST - KEYBOARD RESET .IDENT JVO.Oj ;++ MODULE NAME: CMDRST FUNCTIONAL DESCRIPTION: OUTPUTS A PROMPT TO THE KEYBOARD INPUTS: ADDRESS OF DATA TABLE IMPLICIT INPUTS: Dr. STO OUTPUTS: NONE 527 528 IMPLICIT OUTPUTS: DT.KBPRM 529 530 531 PATHOLOGICAL CONNECTIONS: NONE 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 SEQ 0352 SUBORDINATE MODULES CALLED: KBINI FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL CMDRST IN <A> A=ADDRESS OF DATA TABLE VERSION: 0.0 ._, EDIT BY DATE REASON CMDRST - KEYBOARD RESET MACY11 30A(1052) 20-SEP-78 17:46 PAGE 19-1 CMDRST.MAC 08-SEP-78 09:13 COMMON DEFINITIONS AND REFERENCES 549 550 551 552 553 554 (1) 555 556 557 558 559 560 561 562 563 564 565 :366 567 568 569 570 571 572 573 574 .SBTTL SEQ 0353 COMMON DEFINITIONS AND REFERENCES .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN::1 $LSTTAG=1 000000 1 000000' 000001 000001 .;**************** ; REFERENCED BY OTHER MODULES .GLOBL CMDRST ;MODULE ENTRY POINT ;**************** ; LOCAL STORAGE 000000' 051502 000005 1 103 037131 042115 000 000076 CM.RUNMSG: CM.CMDMSG: .ASCIZ /BSY>/ .ASCIZ /CMD>/ **************** ;RUN MODE PROMPT ;COMMAND MODE PROMPT CMDKST - KEYBOARD RESET MAC Y11 30A(1052) 20-5E;:'-7B 17:46 CMDRST ROUTINE 08-SEP-78 09: 13 CMDRST.MAC 576 577 573 (2 ) 573 58) 581 582 583 584 (2 ) 585 586 (4 ) 587 583 589 590 591 592 (6 ) ( 9) 593 (4 ) 594 595 596 597 598 :39S 600 (4 ) ( 3) 601 (4 ) 602 (4 ) 603 604 605 (2 ) 606 607 (3 ) (3 ) PAGE 19-2 SEQ 0354 .SBTTL CMDRST ROUTINE ROUTINE CMDRST <TABL> 000012 1 000012 1 CMDRST: ;+ ;SET RO TO START OF DATA TABLE , PUSH RO 000012' 000012' 010046000014' 000014' 016500 LET RO . - TA9L~R5) 000000 MOV RO,-(SP) MOV TA9L(R5),RO BIT BEQ #RUNMOD,DT.STO(R 50002$ MOV #CM.RUNMSG,DT.KB B~ 50003$ MOV #CM.CMDMSG,DT.KB rllDV (SP)+,RO RTS PC ;+ ; IF IN RUN MODE, OUTPUT RUN PROMPT , 000020' 000020' 032760 000026' 001404 000030' 000030' 012760 IF #RUNMOD SETIN DT.STO(RO) THEN 100000 000010 LET DT.KBPRM(RO) . - #CM.RUNMSG 000000' 000026 ;+ ;ELSE OUTPUT COMMAND MODE PROMPT , 000036 1 000036 1 000403 000040' 000040 1 000040 1 012760 000046 1 000046 1 ELSE LET DT.KBPRM(RO) .- #CM.CMDMSG 50002$: 000005' 000026 ENDIF 50003$: 000046 1 000046 1 012600 POP RO ENDRTN (2 ) 000050' 000050' 000050 1 000050' 000207 608 609 610 00000 1 50000$: 50001$: .END 20-SEP-78 17:46 CMDRST - KcYBOAFW R:::SET MACY11 30fl.(1052) SYMBOL TABLE 08-SEP-78 09: 13 CMDRST.MAC 00:)102 004000 001000 000006 ~PTFER= 000004 APT?RE= 000200 ASB 000106 A.SSEMB= 000010 ASTAT = 000104 j,UTO 000010 AUT;]ST= 020000 A~AS 000110 81TO 000001 BITOO 000001 BITOl 000002 81T02 000004 f3IT03 000010 3IT04 000020 3IT05 000040 BIT06 000100 BIT07 000200 B1T08 000400 31T09 001000 BIT1 000002 BIT10 002000 31T11 004000 31T12 010000 81T13 0200CO 31T14 040000 BIT 15 100000 BIT2 000004 :31T3 000010 BIT4 000020 BIT5 000040 BIT6 000100 BIT7 000200 BIT8 000400 BIT9 001000 BKDEF 000002 BKrtOO 000020 BKMODE= 040000 i3KSLSH= OC01~4 CAPRES= 000004 CASTAi= 000004 CDERC1= 000146 CDv~OCT= 000144 Cf\TIM = 100000 CLKPRE= 000001 C!\1[,RST OO:)012RG CM.CMD 00OO05R CM.RUN OOOOOOR COf\;FIG= 000056 CQOVF = 000001 ACSR ACT3IT= ADD;:(22= I\DR 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 OEFRTN= 000400 OI.AGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.AOD= 000042 DT.AP = 000100 OT.APK= 000076 DT.BLS= 000034 OT.CFO= 000014 0T.CF1= 000016 OT.ERR= 000020 DT.ESI= 000044 OT.EVN= 000000 OT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 OT.KBP= 000026 OT.KBR= 000022 OT.KBU= 000030 OT.I'vlLS= 000032 OT.MT1= 000110 OT.OFF= 000070 OT.PAS= 000074 OT.PC = 000002 DT.PFL= 000062 OT.PSW= 000004 OT.PTA= 000064 OT.RCS= 000102 DT.REL::: 000040 OT.SCT= OC0066 DT.SMX= 000106 DT.SP = 000006 OT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 OT.SYP:.: 000072 DT.WBU= 000050 OT.WHL= 000054 OT.WLL= 000052 OVID1 = 000014 ECCMEM= 000100 ECCSTA= 0(,0010 ENBEOP= 010000 PAGE 20 ENBNUL= 000001 ENDL.ST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HROCNT= 000044 HROPAS= 000050 ICONT = 000036 ICOUNT= 000040 IONUM = 000122 000100 IE aWPAR= 000040 INHORP= 040000 INHEPR= 020.000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 IOMOO 100000 IOMOOP= 102000 IOMODR= 112000 IO[v'100X= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPORO= 172300 KIPDR1= 172302 KIPOR2= 172304 KIPDR3= 172306 KIPOR4= 172310 KIPOR5= 172312 KIPOR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 iVlAPSTA= OOO~OO MED 076500 MEMPAS= 040000 SEQ 0355 MODEXH= MDDHOL= MGDSEL= MSGCKO= MSGCKS= MSGOER= MSGDRP= MSGECH= MSGEOP= MSGHOR= MSGHNG= MSGHRD= MSGI\1AP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSfVlB= MSGSrvlH= MSGSfv1S= MSGSTD= MSGSYS= MSGVEC= NBKMOO= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= POPLSI= P')P60 POP70 PRIO PRll PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNu:'JI= R8UFEA= RBUFPA= 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 OJOO07 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000)10 002000 000100 00J034 020000 004000 010000 000000 000040 000200 00')240 000300 00)340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 000056 000060 031060 002000 000112 000177 100000 001740 075464 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 00004J 000032 002200 177572 S~O 177574 SR1 177576 SR2 S.~3 172516 STAT 000026 STATB1= 064757 ST ATl = 000027 SUSPNO= 000001 SVRO 000062 000C64 SVR1 000066 SVR2 SVR3 000C70 000072 SVR4 000074 SVR5 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 000000 TABL 000002 TMPIO TQOVF 0~0002 RBUFSZ= R6:.JFVA= RDSERV= RDWHMI= RELERR= RELMO:)= REL TIM= RES1 RES2 R:CHAR= RPTOAT= RSTRT = RUBOUT= RIJNiV100= RSVALU= SAM SBAOR = SaKMOD= SBKSEL= SC.AOR= SC.ALC= SC.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLO= SC.SCA= SENOLS= SOFCNT= SOFPAS= SPACE = SPOINT= SPVALU= CMDRST - KEYBOARD RESET MACY" CMDf(S T . MAC 08-SEP-78 09: '3 COOOOO 000052 20-SEP-78 17:46 SYMBOL TABLE WEUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF oe0021 XON $8GNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 UIPARO= 177640 UIP.~Rl= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPJRO= 177600 UIPI)Rl= 177602 UIPOR2= 177604 UIPJR3= 177606 LJIPJR4= 177610 UIPDR5= 177612 UIP)R6= 177614 UIPDR7= 177616 VJASADR= 000104 WBSTAT= 000040 ABS. 30A(1052) 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 OSKZ:CMDRST,DSKZ:CMDRST=SPMAC/ML,EQUATE,CMDRST RUN-T IME: 11 1 .3 SECONDS RUN-TIME RATIO: 30/13=2.2 CORE USED: 14K (27 PAGES) PAGE 20-1 $F$DO = 000340 $F$FAL= 000405 $F$GOO= OG0400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 SEQ 0356 $ISKO = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSKl = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050004 $TEMP = 00')300 $TSKO = 050003 $$ARGC= 000002 $$BYTE= 00O'W3 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000026R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RT~2= 050001 $SSRC = 000000 $$TGSV= 000000 $$T:3S 1 = 000000 $STGS2= 000000 $$TO 000000 $$$TAG= 050000 000052R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SE?-78 16:13 3 COMMON EQUATE MODULE 17:47 TABLE OF CONTENTS SEQ 0357 eMDTS1 - COMMAND TABLE 1 CMDTB1.MAC 28-JUL-78 09:13 508 509 MACY11 30A(1052) 20-SEP-78 17:47 COMMON EQUATE MODULE PAGE 19 SEQ 0358 .TITLE CMDTB1 - COMMAND TABLE 1 .IDENT JVO.Oj 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 ;++ MODULE NAME: CMDTB1 FUNCTIONAL DESCRIPTION: CONTAINS THE COMPLETE VALID COMMAND AND COMMAND DISPATCH TABLES VERSION: 0.0 EDIT BY DATE REASON CMDTB1 - COMMAND TABLE 1 CMDTB1.MAC 28-JUL-78 09:13 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 58, MACY11 30A(1052). 20-SEP-78 17:47 COMMON EQUATE MODULE PAGE 19-1 ;**************** ; REFERENCED BY OTHER MODULES .GLOBL .GLOBL CM.DIS CM.TBL ;**************** , ; GLOBAL REFERENCES , .GLOBL .GLOBL .GLOSL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GL08L .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL :CACHE OFF ROUTINE :CACHE ON ROUTINE ;DESELECT ROUTINE ;E.XAM ROUTINE ;FILL ROUTINE : KT OFF ROUTH~E ;KT ON ROUTINE ;LP OFF ROUTINE ;LP ON ROUTINE ;MAP ROUTINE ;MODIFY ROUTINE ;UNIBUS MAP OFF ROUTINE ;UNIBUS MAP ON ROUTINE ;PARITY OFF ROUTINE ;PARITY ON ROUTINE ;WRITE BUFFER ROTATION OFF ROUTINE :WRITE BUFFER ROTATION ON ROUTINE ;RUN ROUTINE ;RUN LOCKED ROUTINE ;SELECT ROUTINE ;SUMMARY ROUTINE ;MODIFY SWITCH REGISTER ROUTINE KCOFF KCON KDES KEXAM KFILL KKTOFF KKTON KLPOFF KLPON KMAP KMOD KMOFF KMON KPOFF KPON KROTOF KROTON KRUN KRUNL KSEL KSUM KSWR ;**************** 000000 1 000000' 000002 1 000004 1 000006' 000010 1 000012' 000014' 000016' 000020 1 000022' 000024' 000026 1 00C030; 000032 1 000034' 000036' ;COMMAND DISPATCH TABLE CM.DIS: OOOOOOG OOOOOOG OOOOOGG OOOOOOG OOOOOOG 0OO000G OOOOOOG OOOOCOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOCOOG OOOOOOG .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD .WORD KCOFF KCON KDES KEXAM KFILL KKTOFF KKTON KLPOFF KLPON KMAP KMO:) KMOFF KMON KPOFF KPON KROTOF SEQ 0359 CMDTS1 - COMIVIAND TABLE 1 28-JUL-78 09:13 CMDTS1.MAC 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 MACV11 20-SEP-78 17:47 30A(1052} COMMON EQUATE MODULE 000040' OOOOOOG 000042' OOOOOOG 000044' OOOOOOG 000046' OOOOOOG 000050 1 OOOOOOG 000052 1 OOOOOOG 000054' 0000541 000061 ' 000065' C00071 ' 000076' 000103' 000110' 000111 ' 000116 ' 000124' 000131 I 000135' 000141 ' 000146' 000152' 000157' 000163' 000170' ('00172' 000200' 000204' 000211 ' 000215' 000221 ' 000225' .WORD .WORD .WORD . ~t.JORD .WORD .WORD KROTON KRUN KRUNL KSEL KSUM KSWR ;VAlID COMMAND TABLE CM. T8l: 047503 103 104 10::, 044506 113 000 1 13 050"4 050114 115 115 115 047515 04752(' 12C 1 ") ') 000106 047522 052522 052522 123 123 123 377 043106 047117 051505 040530 046114 047524 000 000 000 000115 000 043106 .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ /COFF/ /CON/ /DES/ /EXAM/ / F I LL/ /KTOFF/ 047524 043117 047117 050101 042117 043117 000116 043106 047117 052117 000116 000106 000 000 000 000106 .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ /KTON/ /LPOFF/ /LPON/ /MAP/ /MOD/ /MOFF / /MON/ /POFF/ /PON/ /ROTOFF/ 047524 000116 046116 046105 046525 051127 000116 .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .BYTE /ROTON/ /RUN/ /RUNL/ /SEL/ /SUM/ /SWR/ 000 000 043117 000 000 000 000 .EVEN 000001 .END PAGE 19-2 -1 SEQ 0360 (MOTS1 - COMMAND TA8LE 1 28-JUL-78 09:13 CMDTS1.MAC ACSR ACT8IT= ADDR22= ADR APTFER= APTPRE= ;\SB ASTAT = ,\UTO PIUTClST= AWAS 000102 004000 001000 000006 000004 000200 000106 COO104 COO010 C20000 000110 BliO OCOO01 [:lITOO 000001 GIT)1 000002 13IT02 000004 E3IT03 000010 f.3IT04 000020 3IT05 000040 BIT06 000100 BIT07 000201) BIT08 00Cl400 GIT09 001000 l3I T 1 000002 BIT10 002000 6 IT 11 004000 f31 T 12 010000 l3IT13 020000 6IT14 040000 BIT15 100000 [3IT2 000004 [3 IT 3 000010 f3 I T 4 000020 BIT5 000040 13 I To 0001CO BIT7 000200 [3 IT 8 000400 [3 IT 9 001000 t3KDEF 000002 BKI'I.OD 000020 8!\MODE= 04:)000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDwDCT= 000144 CKTlNi = 100000 CLKPRE= 000001 OOOOOCRG CM.DIS eM.TBL 000054RG CO!\FIG= 000056 CQOVF 000001 000015 CR CSRA 000100 2C-SEP-78 rviACY 11 30A(1052) SYMBOL TABLE 17:47 ERRTYP= EVNTBE= EVNTHD= EV"lTKT= EVNTPE:: EVNTRE= FATERR= HRDCNT= HRDPAS= ICONT = ICOUNT= IDNUM = IE INDPAR= INHDRP= INHEPR= If\;HREL= INHRRE= INIT INTR lOMOD IO:v10DP= IOMODR= IOMODX= JACK KCOFF KCON KDES KEXAM KFILL KIPARO= KIPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIP.A.R7= KIPDRO= KIPDR1= KIPDR2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KKTOFF= KKTON = KLPOFF= KLPON KMAP KMOD K[I..10FF 000106 000200 000200 000203 000202 000201 100000 000044 000050 000036 000040 000122 000100 000040 040000 020000 001000 000400 000030 000120 100000 102000 112000 110000 035060 CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRTN= DROPMO= DSEVNT= DT.ADD= DT.AP = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ES!= DT .. EVN= DT.EXS= DT.FCH= DT.FCN= DT . H~JlX= DT.KBE= DT.KBP= DT.KBR= DT.KBU= DT.MLS= DT.MTI= DT.OFF:: DT.PAS= DT.PC = DT.PFL= DT.PSW= DT.PTA= DT.RCS= DT.REL= DT.SCT= DT.SMX= DT.SP = DT.SSI= DT.STO= DT.ST1= DT.SWR:: DT.SYP= DT.WBU= DT.WHL= DT.WLL= D'JID1 = ECCTvlEM= ECCSTA= ENBEOP= ENBNUL= ENDLST= EOPB!T::.; 000102 000003 OCOC17 000025 000011 000400 100000 000014 000042 000100 000076 000034 000014 000016 000020 000044 000000 000060 000037 000036 000104 000024 000026 000022 000030 000032 000110 000070 000074 000002 000062 000004 000064 000102 000040 000066 000106 00C006 000046 000010 000012 000056 000072 000050 000054 000052 000014 000100 000010 010000 000001 000000 000001 ****** G ****** G ****** G ****** G ****** G 172340 172342 172344 172346 172350 172352 172354 172356 172300 172302 172304 172306 172310 172312 172314 172316 ****"'* G ****,;,* G ***""** G ****** G ****** G ****** G = ****** G PAG~ 20 SEQ 0361 KMON KPOFF KPON KROTOF= KROTON= KRUN KRUNL KSEL KSUM KS\>JR KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= rJlSGCKS= MSGDER= MSGDRP= MSG~CH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= r'IISGMA?= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSM8= MSGSMH= MSGSMS= MSGSTD= MSGSYS= I'vlSGVEC= NBKMOD= NCPUOP= NOAPTy= NULL Q\vEN PAERR PARPRE= PARSTA= PASCNT= ****** G G ****** G **<*** ****** G ****** G ****** G ****** G ****** G -f'* '" "'* * G ****** G 000040 000400 000020 040000 000012 000001 00:)200 073600 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000C07 000021 177775 000002 177776 008001 OCOO06 000003 000015 000014 000016 00,)000 00OC12 0C!O'j20 001eoo 00,)020 000002 000000 024J20 000010 002000 OOOiOO 000034 PDPLS!= PDP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRO PR4 P:i5 PR6 PR7 PS PSW RAN~JUM= R3UFEA= RBUFPA= RBUFSZ= R3UFVA= RDSERV= RDwf-l.:vl I:: RELERR= R~ L:\~OD= RELTlM= RES1 RES2 RICrlAR= RPTDAT= RSFH = RU80UT= RJ~-1r~10D= R5VALU= SAM SB.l\DR = SBf<J,10D= SBk.SEL= SC.ADR= SC.~LC= SC.APC= SC.CKL= -SC. CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SOFCNT= SOF;::'AS= SPACE = SPOINT= SPVALU= SRO 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 000056 000060 031060 002000 000112 000177 100000 001740 075464 000102 000000 010000 000006 000014 000016 0000,)2 000004 OOOO'JO 000010 000C12 177777 000042 000046 000040 000032 002200 177572 CMDTBl - COMMAND TABLE 1 .MAC 28-JUL-78 09:13 MACY11 30A,1052} 20-SEP-78 SYMBOL TABLE C~DTBl SRl 177574 SR2 177576 SR3 172516 STAT 000026 STATBl= 064757 ST ATl = 000027 SUSPND= 000001 SVRO 000062 SVR1 000064 SVR2 000066 ASS. 000000 000226 SVR3 SVR4 SVR5 SVR6 SYSCNT= SYSERR= TMPIO = TQOVF = UIPARO= UIPAR1= 000070 000072 000074 000076 000052 000100 000002 000002 177640 177642 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:CMDTB1,DSKZ:CMDTB1=SPMAC/ML,EQUATE,CMDT61 RUN-TIME: .7 .6 .3 SECONDS RUN-TIME RATIO: 4/1=2.5 CORE USED: 14K (27 PAGES) UIPAR2-= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= 17:47 PAGS 20-1 SEQ 0362 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 UIPDR4= UIPDR5= UI?DR6= UIPDR7= ~oJASADR= WBSTAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= 177610 177612 177614 177616 000104 00J040 000136 000134 000'140 000142 WDFR WDTO WTINRE= WTWhMl= XFLAG XOFF XON 000116 000114 000352 000222 000005 000023 000021 00022t3R .MAIN. WoACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 COMMON EQUATE MODULE 17:47 TABLE OF CONTENTS SEQ 0363 CMDTB2 - COMMAND TABLE 2 CMDTB2.MAC 28-JUL-78 09:13 MACY11 30A(1052) 20-SE?-76 17:47 COMMON EQUATE MODULE PAG~ 508 509 .TITLE CMDTB2 - COMMAND TABLE 2 .IDENT IVO.O/ 510 511 ;++ 512 :513 19 SEQ 0364 MODULE NAME: CMDTB2 514 315 516 517 FUNCTIONAL DESCRIPTION: CONTAINS SHORTENED VERSIONS OF THE VALID COMMAND AND COMMAND DISPATCH TABLES. 518 519 520 521 522 523 524 525 VERSION: 0.0 EDIT , '-- BY DATE REASON CMDTB2 - COMMAND TABLE 2 28-JUL-78 09:13 CMDTB2.MAC 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 543 549 550 551 552 553 554 555 556 5~7 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 MACV11 30A(1052) 20-SEP-78 17:47 COMMON EQUATE MODULE PAGE 19-1 SEQ 0365 ;**************** ; REFERENCED BY OTHER MODULES .GLOBL .GL.OBL CM.DIS CM.TBL ;**************** , ; G~OBAL .GL.OBL .GLOBL .GL.08L .GLOBL .GLOBL .GLOBL .GLOBL REFERENCES ;DESELECT ROUTINE ;FILL ROUTINE ;l\WDIFY ROUTINE ;RUN ROUTINE ;SELECT ROUTINE ;SUMMARY ROUTINE ;MODIFY SWITCH REGISTER ROUTINE KDES KFILL KMOD KRUN KSEL KSUM KSWR ;**************** 000000' 000000' 000002 ' 000004' 000006' 000010' 000012' 000014' ;COMMAND DISPATCH TABLE CM.DIS: .WORD OOOOOOG OOOOOOG OOCOOOG OOOOOOG OOOOOGG OOOOOOG OOOOOOG 000016' 000016' 042504 000022' 044506 115 OC0027' 122 000033' 123 000037' 123 000043 ' 000047' 123 377 000053' 000001 .l.\'ORD .WORD .WORD .WORD .WORD .WORD KDES KFILL KMOD KRUN KSEL KSUM KS~oJR ;VALID COMMAND TABLE CM. TBL: 000123 046114 OLl2117 047125 046105 046525 051127 .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ .BYTE 000 000 000 000 000 000 . EVEN .END /DES/ /FILL/ /MOD/ /RUN/ /SEL/ /SUM/ /St~R/ -1 CI\1DT82 - CCMM.1.!\J!J TA8!....E 2 28-JUL-78 09: 13 CMDTB2.MAC ACSR 000102 hCTBIT= 0(,4000 ADD~22= 001000 I,DR 000006 APTFE~= 000004 APTPRE= 000200 ASB 000106 ,\STAT = 000104 AUTO 000010 AUT·JST = 020000 AlvAS 000110 ~3 ITO 000001 BITOO 000001 3ITOl 000002 BIT)2 000004 BlT03 000010 11 IT 04 000020 8IT05 OC0040 000100 BIT06 BIT07 000200 BIT08 000400 001000 81T09 BIT1 000002 3IT10 002000 81 T 1 1 004000 (.10000 f.3lT 12 13IT13 020000 81T14 040000 100000 :31T15 000004 BIT2 000010 BIT3 8IT4 000020 000040 BIT5 000100 i:3IT6 BIT7 000200 BIT8 000400 001000 eIT9 000()O2 BKOEF 000020 BKIV:OD BKMODE= 040000 BKSLSH= 000124 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CD'v.DCT= 000144 CKTIM = 100000 CLKPRE= 000001 OOOOOORS CM.DIS CM.TBL OOOC16RG ·::ON F I G= 000056 000001 CQOVF 000015 CR CSRA 000100 20-SEP-78 MACY 11 30A(1052) SYM80L TABLE CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRTN= DROPMO= DSEVNT= DT.ADD= DT.AP = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ESI= DT.EVN= DT.EXS= DT.FCH= DT.FCN:: DT . Hi\lX= DT.KBE:: OT.KBP= DT.KBR= DT.KBiJ= DT.MLS= DT.MTl= DT.OFF= DT.PAS= DT.PC = DT.PFL= DT.PSW= DT.PiA= DT.RCS= DT.REL= DT.SCT= DT.SMX= DT.SP = DT.SSI= DT.STO= DT.ST1= DT.SWR= DT.SYP= DT.WBU= DT . ~""HL= DT.WLL= DVIDl = ECCrJlEM= ECCSTA= ENBEOP= ENBNUL= ENDLST= EOPBIT= 000102 000003 000017 000025 000011 (,00400 100000 000014 000042 000100 000076 000034 000014 000016 000020 000044 000000 OOOOc:O 000037 000036 000104 000024 000026 000022 000030 000032 000110 000070 000074 000002 000062 000004 000064 000102 000040 000066 000106 000006 000046 000010 000012 000056 000072 000050 000054 000052 000014 000100 000010 010000 000001 000000 000001 SEQ 0366 ERRTYP", 000106 EVNTBE= 000200 EVNTHD= 00020:) EV'NTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCiJT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IONUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000038 IN IT INTR 0001~0 100000 IOMOD lOMODP= 102000 lCMODR= 112000 IOMODX= 110000 035060 JACK KDES ****** KFILL ****** KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 1723'2 KIPDR6= 172314 KIPDR7= 172316 KMOD *>r**** KRUN ****** KSEL ****** KSU~ KSWR KTERRO= KTPRES= KTSTAT= KTXTND= LF PAGE 20 17:47 G G G G G ****** G ***"'** G 000040 000400 000020 040000 000012 LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODrlOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRO= MSGMAP= MSGNUL= MSGPOP= MSGPRr,1;:: MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= f'I1SGSYS= MSGVEC= NBKi\1DD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= POP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS 000001 000200 076600 040000 OO·~COO 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177775 000001 000006 000003 000015 00-) 014 000016 000000 000012 000020 001000 000J20 000002 000000 024020 000010 002000 000100 000034 020000 004JOO 010000 000000 000040 000200 000240 000300 000340 00;)000 000200 000240 000300 000340 177776 PSW RANNUM= R3UFEA= R'3UFPA= R3UFSZ= R3U FVA= ROSERV'= RChJHMI = RELERR= R::: L!'ViOD= REL iHI!= R:::Sl RES2 R:CHAR= RPTDAT= RSTRT = RUBOUT= RUNfll0D= R5VALU= SAM SBADR = SBKMOD= SBKSEL= SC.ADR= SC.ALC= SC.APC= Sc. CK L= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SOFCNT= SOFiJAS= S~ACE = SPOINT= SPVALU= SRO SR1 SR2 SR3 STAT STATBI= STAT1 = SUSPND= SVRO SVR1 SVR2 SVR3 SVR4 SVR5 SVR6 SYSCNT= 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 000055 000060 031060 002000 000112 000177 100000 001740 075464 000102 000000 010000 OOOOOS 000014 000'J15 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 064757 000027 000001 000062 000064 000066 000070 000C72 000074 000076 000052 MACV11 30A(1052) 20-SEP-78 SYMBOL TABLE CMDTB2 - COMMAND TABLE 2 CMDTB2.MAC 28-JUL-78 09:13 SYSERR= OC0100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 ASS. 000000 000054 UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= 177650 177652 177654 177656 177600 177602 177604 000 001 ERRO~S DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:CMDTB2,DSKZ:CMDTB2=SPMAC/ML,EQUATE,CMDTB2 RUN-TIME: .6 .6 .3 SECONDS RUN-TIME RATIO: 4/1=2.5 CORE USED: 14K (27 PAGES) UIPDR3= UIPDR4= UIPDR5:.: UIPDR6= UIPDR7= WASADR= WBSTAT= 17:47 PAGE 20-1 SEQ 0367 177605 177610 177612 177614 177616 000104 000040 WBUFEA= WBUFPA= W8UFRQ= WBUFSZ= WDFR WDTO WTINRE= 000136 000134 000140 000142 000116 000114 000352 WTWHMI= XFLAG XOFF XON 000222 000005 000023 000021 000054R .MAIN. MACY11 30A(10~2) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 COMMON EQUATE MODULE 17:47 TABLE OF CONTENTS SEQ 0368 CMDTB3 - CaM~AND TA8~E 2 CMDTB3.MAC 28-JUL-78 09:13 508 509 510 511 512 513 514 515 516 517 518 519 520 521 MACY11 30A(1052) 20-SEP-78 17:47 COMMON EQUATE MODULE PAGE 19 SEQ 0369 .TITLE CMDTB3 - COMMAND TABLE 3 .IDENT JVO.Oj ;++ MODULE NAME: CMDTB3 FUNCTIONAL DESCRIPiION: CONTAINS THE VALID COMMAND AND COMMAND DISPATCH TABLES EXCEPT: CON, COFF, KTON, KTOFF, MON, MOFF, RUNL VERSION: 0.0 522 523 524 525 EDtT BY DATE REASOI~ CMDTB3 - COMMAND TABLE 3 CMDTB3.MAC 28-JUL-78 09:13 MACY11 30A(1052) 20-SE~-78 COMMON EQUATE MODULE 527 528 329 ~7:47 PAGE 19-1 I ;**************** 530 I ; REFERENCED BY OTHER MODULES :531 532 , .GLOBL .GLOBL 533 53~ CM.DIS CM.TBl 535 536 S37 ;**************** , 538 539 ; ; GLOBAL REFERENCES .GLOBL .GLOBL .GLOBl .GLOBL .GLOBL .GLCBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL 540 541 542 543 544 545 546 547 548 549 550 551 S52 553 554 ;DESELECT ROUTINE ;EXhIViINE ROUTI"JE ;FILL ROUTINE ;LP OFF ROUTINE ; LP Ot~ ROUT INE ;MAP ROUTINE ;MODIFY ROUTINE ;PARITY OFF ROUTINE ;PARITY ON ROUTINE ;WRITE BUFFER ROTATION ROUTINE ;WRITE BUFFER ROTATION ON ROUTINE ;RUN ROUTINE ;SELECT ROUTINE ;SUMMARY ROUTINE ;MODIFY SWITCH REGISTER ROUTINE KDES KEXAM KFILL KLPOFF KLPON KMAP KI\WD KPOFF KPON KROTOF KROTON KRUN KSEL KSUM KSWR 555 ;**************** 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 OCOOOO' 000000' 000002' 000004' 000006' 000010' 000012' 000014' 000016' 000020' 000022' 000024' 000026' 000030' 000032' 000034' ;COMMAND DISPATCH TABLE CM.DIS: OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOCOOG OOOOOOG OOOOOOG OOOOOOG OOOOO·:)G OOOOOOG 00000(;.3 000008G OOOOCOG OOOOOOG O:)OOOOG .WORD · "'JORD .WORD · ~"'ORD · \>JORD · \,AJORD .WORD .WORD .WORD .WORD .WORD .vJORD .WORD .WORD · ~~ORD KDES KEXAM KFILL KLPOFF KLPON KMAP KMOD KPOi=F KPON KROTOF KROTON KRLJN KSEL KSUM KSWR .ASCIZ .Ascrz .ASCIZ .ASCIZ .ASCIZ /DES/ /EXAM/ /FILl/ /LPOFF/ /LPON/ 575 576 577 578 579 580 581 582 000036' 000036' 000042' 000047' 000054' 000062' ;VALID COMMAND TABLE CM. TBL: 042504 054105 106 050114 050114 000123 046501 046111 043117 047117 000 000114 000106 000 SEQ 0370 CMDTB3 - CO~\~M.A.ND T A8 LE 3 CMDTB3.MAC 28-JUL-78 09:13 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 000067' 115 000073' 115 000077' 120 000104' 047520 000110' 047522 000116' 000 000117' 122 000124' 000 000125' 122 123 000131 ' 000135' 123 123 000141 ' 000145' 377 MACY11 30A(1052) 20-SEP-78 17:47 COMMON EQUATE MUUULE 050101 042117 043117 000116 047524 000 000 000106 043106 .ASCIZ .ASCIZ .ASCIZ .ASCIZ .ASCIZ 052117 047117 .ASCIZ /ROTON/ 047125 046105 046525 051127 000 000 000 000 .ASCIZ .ASCIZ .ASCIZ .ASCIZ .BYTE .EVEN 000001 .END /MAP/ /MOD/ /POFF/ /PON/ /ROTOFF/ /RUN/ /SEL/ /SUM/ /SWR/ -1 PAGE 19-2 SEQ 0371 CMDT83 - COMMAND TABLE 3 28-JUL-78 09: 13 CMDTB3.MAC ACSR ACTBIT= ADDR22= ADR /\PT;:ER= /,PTPRE= i'.SB /\S T AT = /\UTJ AUTJST= f:,~~A5 31TO En TOO FH T 01 [.31T02 BIT03 i3I T 04 8IT05 BIT06 [31 T07 BITOS t31TJ9 BIT1 61T10 8 IT 11 !31 T 12 81T13 81T14 31T15 t3 I T 2 31 T3 BIT4 BITS SIT6 aIT7 8IT8 BIT9 BKDEF i3KfV:OD BKf'v'ODE = BKS LSH= CAPRES= CASTAi= CDERCT= CDi'iDCT= CKTllVi = (;LKPRE= CM.DIS CM.TBL CONF1G= CQOVF CR C:S~A 000102 004000 001000 000006 000004 000200 000106 000104 COO010 020000 C00110 COOO01 COOO01 000002 000004 000010 000020 000040 000100 000200 000400 OC1000 000002 002000 004000 010000 020000 040000 100000 000004 000010 000020 000040 000100 000200 000400 001000 000002 000020 040000 000134 000004 000004 000146 000144 100000 000001 OOOOOORO 000036RG 000056 000001 000015 000100 20-SEP-78 MACYll 30A(10S2) SYMBOL TABLE 17:47 ERRTYP= EVNTBE= EVNTHD= EVNTKT= EVNTPE= EVNTRE= FATERR= HRDCNT= HRDPAS= ICDNT = ICOUNT= IDNUM = IE INDPAR= INHDRP= INHEPR= INHREL= INHRRE= INIT INTR, = IOMOD = IOMODP= IOMODR= IOMODX= JACK KDES KEXAM KFILL KIPARO= KIPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPDR1-= KIPDR2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KLPOFF= KLPON KMAP KMOD KPOFF KPON KROTOF= KROTON= KRUN 000106 000200 000200 000203 000202 000201 100000 000044 000050 000036 000040 000122 000100 000040 040000 020000 001000 000400 000030 OC0120 100000 102000 112000 110000 035060 CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRTN= DROPMO= DSEVNT= DT.ADD= DT.AP = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ESl= DT.EVN= DT.EXS= DT.FCH= DT.FCN= DT. H:\~X= DT.KBE= DT.KBP= DT.KBR= DT.KBU= DT. MLS= DT.MTI= DT.OFF= DT.PAS= DT.PC = DT.PFL= DT. PSI"'= DT.PTA= DT.RCS= DT.REL= DT.SCT= DT.Si'/:X= DT.5P = DT.SSI= DT.STi)= DT.ST1= DT.SWR= DT.SYP= DT.WBU= Di.WHL= DT.WLL= DVID1 :: ECCMEM= ECCSTA= ENBEOP= ENBNUL= ENDLST= EOPBIT= 000102 000003 000017 000025 000011 C')0400 1000,)0 000014 000042 000100 000076 000034 000014 000016 000020 000044 COOOOO 000060 OOC037 000036 000104 000024 000026 000022 000030 000032 000110 000070 000074 000002 000062 000004 000064 000102 000040 000066 000106 000006 000046 000010 000012 000056 000072 000050 000054 000052 000014 000100 000010 010000 000001 000000 000001 PAGE 20 SEQ 0372 ****** G ****** G ****** G 172340 172342 172344 172346 172350 172352 172354 172356 172300 172302 172304 1723C6 172310 172312 172314 172316 ***"'** G ****** G ****** G *"'**** G ****** G ****** G ****>1'* G ****** G = ****** G KSEL KSUM KSi'JR KTERRD= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEGP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSr'f.B= MSGSrlr,H= MSGSfI1S= iVlSGSTD= MSGSYS= MSGVEC= NBf<;MOD= NCPUOP= NOAPTY= NUL.L m'iEN PAERR = PARPRE= PARSTA= PIISCNT= PDPLSI= PDP60 PDP70 PRIO P R 11 PRI4 PRI5 ****** G ****** G ***",**'G 000040 000400 000020 040000 000012 ')00001 00:>200 076600 040000 004000 002000 001000 000010 000011 000005 000017 177777 00C013 000004 000022 000007 00')021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 00)020 001000 000020 000002 000000 024020 000010 002COO 000100 000034 02JOOO 004000 010000 000000 000040 000200 OC0240 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RA~NUM= RBUFEA= R3UFPA= RBUFSZ= FI3UFVA= ROSERV= RD1'.'H:''v1I = RELERR= RELMOD= REL TIM= RES1 RES2 RICHAR= RPTDAT= RSTRT = RU30UT= RUNMOD= F~5VALU= SAM SB'::'DR = S 8f·<;iV10 D= SBr{SE L= SC.,t.,DR= SC.ALC= S2.APC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SENDLS= SOFCNT= SOFPAS= SPACE = SPOINT= SPVALU= SRO SR1 SR2 SR3 STAT STATS!= STATl = SUSPND= 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 000056 000060 031060 00200a 000112 000177 100000 001740 073464 000102 000000 010000 000006 000014 000016 000002 000004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 172516 000026 064757 000027 000001 MACY11 30A(1052) 20-SEP-78 SYMBOL TABLE CMDTB3 - COMMA~D TABLE 3 CMDTB3.MAC 28-JUL-78 09:13 SVRO SVR1 SVR2 SVR3 SVR4 SVR5 SVR13 SYSCNT= SYS:::RR= 000062 000064 000066 000070 000072 000074 000076 000052 000100 A3S. 000:)00 000146 TM?IO TQOVF UIPARO= UIPAR1= UIPAR2= UIPAR3= UI?AR4= UIPAR5= UIPAR6= 000002 000002 177640 177642 177644 177646 177650 177652 177654 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GE~ERATED: 0 DSKZ:CMOTB3,DSKZ:CMJTB3=SFMAC/ML,EQUATE,CMDTB3 RU~-T IME: .7 .6 .3 SECONDS RUN-TIME RATIO: 4/1=2.5 CORE USED: 14K (27 PAGES) UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= 17:47 PAGE 20-1 SEQ 0373 177653 177600 177602 177604 177606 177610 177612 177614 177616 ~IlASADR= WBSTAT= ~oJ3U FEA= WBUFPA= WBUFRQ= WBUFSZ= WDFR WDiO WTINRE= 000104 000040 000 136 000134 000140 000142 000116 000114 000352 \IJT'.oJHMI = XFLAG XOFF XON 000222 000005 000023 00002"1 000146R .MAIN. MACY11 30A(1C52) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 537 S40 573 616 633 683 748 797 17:47 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON D~FINITIONS & REFERENCES 000000 1 .PRINT COINI (FUNCTIONAL DESCRIPTION) COINI (CODE) ENOCQ (FUNCTIONAL DESCRIPTION) ENQCQ (CODE) DEQCO (FUNCTIONAL DESCRIPTION) DEOCQ (CODE) ;SPMAC: VERSION 1.1 SEQ 0374 CTLQUE (CONTROL QUEUE MODULES) CTLQUE.MAC 28-JUL-78 09:13 508 509 510 511 512 513 514 515 516 517 518 519 520 MACY11 30A(1052) 20-SEP-78 17:47 COMMON EQUATE MODULE PAGE 19 SEQ 0375 .TITLE CTLQUE (CONTROL QUEUE MODULES) .IDENT JVO.Oj ;++ MODULE PACKAGE NAME: CTLQUE FUNCTIONAL DESCRIPTION: THIS MODULE CONTAINS THREE MODULES. THE ~IRST ONE INITIALIZES THE CONTROL QUEUE AND THE NE~T TWO ACTUALLY DO THE ENQUEING AND DEQUEING OF ITEMS FROM THE CONTROL QUEUE. THE DESCRIPTION IS GIVEN UNDER THE RESPECTIVE MODULES. THESE MODULES ARE: 521 1. CQIN! - INITIALIZES THE CONTROL QJEUE. 2. ENQCQ - ENQUES ITEMS ON THE CONTROL QUEUE. 3. DEQCQ - DEQUES ITEMS FROM THE CONTROL QUEUE. 522 523 524 525 526 527 THE CONTROL QUEUE AND THE QUEUE POINTERS ARE CONTAINED IN THIS MODULE FOR USE BY THE ABOVE-NAMED MODULES LOCALLY. 528 529 530 531 532 533 534 535 VERSION: 0.0 EDIT DATE BY REASON CTLOUE (CONTROL QUEUE MODULES) CTLOUE.MAC 2B-JUL-78 09:13 .SBTTL COMMON DEFINITIONS & REFERENCES 537 538 539 540 ( 1) S41 542 MACY1130A(1052) 20-SEP-78 17:47 PAGE 19-1 COMMON DEFINITIONS & REFERENCES 000000' 000000 ' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 543 544 545 546 547 548 549 550 551 552 ;**************** ; REFERENCED BY OTHER MODULES: , .GLOSL CQINI .GL08L ENQCQ .GL08L DEQCQ **************** 553 554 555 556 557 558 , 553 560 561 562 GL08AL REFERENCES: .GL08L GETPSvJ ;GET CALLER'S PS WORD ROUTINE .GL08L OV.CQ .GLOBL OV.HICQ .GLOBL OV.CQSIZ ;CONTROL QUEUE BuFFER ;**************** ; LOCAL STORAGE 563 564 565 566 567 568 569 570 571 ;INITIALIZE CONTROL QUEUE ;ENQUE ITEMS ON THE CONTROL QUEUE ;DEQUE ITEMS F~OM THE CONTROL QUEUE 000000' 000002' 000004' 000006' 000010 1 000012' 000014' 000000 OOOOOGG OOOOOUG 000000 OOOOOOG OOOOOOG OOOOOOG CQ.PSW: CQ. I NP: CQ.OTP: CQ.CT: CO. HI: CQ.MAX: cQ.reQ: o OV.CQ OV.CQ o OV.HICQ OV.CQSIZ Ov.CQ ;LOC. TO SAVE CALLER'S PS WORD ;ENQUE POINTER ;DEQUE POINTER ;CURRENT ENTRY CJUNT ;QUEUE'S HIGH ADDR ;MAX NO. OF ENTRIES ALLOWED ;START OF CQ SEQ 0376 CTLQUE (CONTROL QUEUE MODULES) CTLQUE.MAC 28-JUL-78 09:13 573 574 575 576 577 578 579 :380 581 582 583 584 585 586 587 588 589 590 591 592 593 59~ 595 596 597 595 599 60C 601 602 603 60C, 605 606 607 605 609 610 611 612 613 614 MACY~1 30A(1052) 20-SEP-78 17:47 PAGE 19-2 CQINI (FUNCTIONAL DESCRIPTION) SEQ 0377 .SBTTL CQINI (FUNCTIONAL DESCRIPTION) ;++ MODULE NAME: CQINI FUNCTIONAL DESCRIPTION: THIS MODULE INITIALIZES THE CONTROL QUEUE. IT RESETS THE ENQUE AND DEQUE POINTERS TO THE START OF THE QUEUE, AND SETS THE COUNT TO ZERO. INPUTS: NONE IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUOORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL CQINI VERSION: 0.0 EDIT ., __ . DATE BY REASON CTLQUE (CONTROL QUEUE MODULES) CTLQUE.MAC 28-JUL-78 09:13 MACY11 30A(1052) 20-SEP-78 CQINI (CODE) 17:47 PAGE 19-3 SEQ 0378 .SBTTL CQINI (CODE) 616 617 618 619 520 621 622 623 524 ;**************** ; ROUTINE TO INITIALIZE CONTROL OUEUE ;+ ; INIT INPUT,OUTPUT AND COUNT 625 626 (2 ) 627 (4 ) 328 (4) 029 (4 ) 530 (3) (3 ) (2) 631 000016 1 000016 1 000016 1 oeOO16 1 OC0024 1 000024 1 000032 1 000032 1 000036 1 CCOO36 1 000036 1 000036 1 ROUTINE COINI COINI: LET CQ.INP .- CO.ICQ 016767 177772 177756 M~V CQ. ICQ,CQ. INP I\1JV CQ.ICQ,CQ.OTP CLR CQ.CT RTS PC LET CQ.OTP .- CQ.ICQ 016767 177764 177752 LET CQ.CT := #0 005067 177750 ENDRTN 50000S: 500015: 000207 CTLQUE (CONTROL QUEUE MODULES) CTLQUE.MAC 28-JUL-78 09:13 633 634 635 636 637 638 639 640 541 642 643 544 645 546 647 648 >349 650 651 552 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 MACY11 30A(1052) 20-SEP-78 17:47 PAGE 19-4 ENQCQ (FUNCTIONAL DESCRIPTION) SEQ 0379 .SBTTL ENQCQ (FUNCTIONAL DESCRIPTION) ;++ MODULE NAME: ENQCQ FUNCTIONAL DESCRIPTION: THIS MODULE HANDLES QUEUEING OF ITEMS ON THE CONTROL QUEUE. INPUTS: 1. DATA TABLE ADDRESS 2. MODULE'S HEADER ADDRESS 3. RETURN ADDRESS IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: DT.ERR PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: GETPSW ;GET CALLER'S PS WORD FUNCTIONAL SIDE EFFECTS: ENQUEING IS DONE AT PRIORITY LEVEL 7 WHICH SERVES AS A LOCK MECHANISM. CALLING SEQUENCE: CALL ENQCQ IN <DTADR,HDRADR,RETADR> WHERE DTADR = DATA TABLE ADDRESS HDRADR HEADER ADDRESS RETADR = RETURN ADDRESS 670 671 672 673 674 675 VERSION: 0.0 676 677 678 679 680 681 EDIT DATE BY REASON CTLQUE (CeNTROL QUEUE MODULES) CTLQUE.MAC 28-JUL-78 09:13 683 684 685 (2) 686 687 688 689 690 391 (2) 692 693 694 595 696 697 698 599 (5) (9) 700 (4) 701 (6) 702 (2) 703 (2) (4) 704 (4) 705 706 707 708 709 710 711 (4 ) (3) (4 ) 712 (2 ) 713 (2 ) 714 (2 ) 715 716 717 718 719 720 721 722 MACY11 30A(1052) 20-SEP-78 ENQCQ (CODE) 17:47 PAGE 19-5 SEQ 0380 .SBTTL ENQCQ (CODE) 000040 1 000040 1 ROUTINE ENQCQ <DT,HDR,RET> ENQCQ: ;+ ; SAVE RO PUSH RO 000040 I 000040' 010046 MOV RO,-(SP) CrAP SLT CQ.CT,CQ.MAX 50002$ MOV DT(R5),RO BIS #CQOVF!FATERR,DT MOV (SP)+,RO SEC BR 50001$ SUB JSR MOV #1*2,R5 PC, GETPS'.II (R5)+,CQ.PSW IV: 0 V #PR7,-(SP) MOV #1$,-(SP) ;+ ; IF THE COUNT IS EQUAL TO MAXIMUM, THE ; QUEUE IS FULL. SET ERROR FLAG IN THE ; STATUS INDICATOR AND RETURN WITH ERROR. ;- 000042 1 000042 I 026767 000050 1 002410 0000521 000052 1 016500 000056' 000055' 05:2760 000064 1 000064 1 012600 IF CQ.CT GE CQ.MAX THEN 177740 177742 LET RO := DT(R5) 000000 100001 LET DT.ERR(RO) 0- DT.ERR(RO) SET.BY #CQOVF!FATERR 000020 POP RO RETURN ERROR OOO~66' 000066 1 000261 000070' 000443 000072' 0000721 ENDIF 50002$: ;+ ; SAVE CALLERIS PS WORD AND CHANGE ; PRIORITY LEVEL TO 7 000072 1 0000721 162705 000076 1 004767 000102 1 012567 000106 1 000106 1 012746 000112' 000112 1 012746 000116 1 000116 1 000002 000120' CALL GETPSW OUT <CQ.PSW> 000002 OOOOOOG 177672 PUSH #PR7 000340 PUSH #1$ 000120' INLINE <RTI> RTI ;+ ; IF THE ENQUE POINTER IS AT HIGH ; ADDRESS, RE-INITIALIZE IT TO THE ; START ADDRESS OF THE QUEUE. ;INLlNE <1$:> CTLQUE (CONTROL QUEUE MODULES) 2B-JUL-78 09:13 CTLQUE.MAC 000120' 000120' 000120' 026767 000126' 00 Hl03 C00130' 000130' 016767 000136' 000136' 016700 177640 ( 4) 016520 000002 016520 000004 (3 ) (.2 ) 17:47 PAGE 19-6 SEO 0381 1:$ : (2 ) 723 (6 ) (9 ) 724 (4 ) 725 (4 ) 726 727 728 729 730 731 (4) 732 733 (4 ) 734 (4 ) 735 (6 ) 736 737 738 739 740 741 (2) 742 (2 ) 743 (2 ) 744 (2 ) 745 (2 ) 746 (3 ) (2 ) 20-SEP-78 MACY11 30A(1052) ENQCQ (CODE) IF CQ.INP EQ CQ.HI THEN 177656 177662 177660 177644 LET CO.INP ::: CO. rCQ CMP BNE CQ.INP,CQ.HI 50003$ MOV CQ. lCQ,CQ. INP MOV CQ.INP,RO MOV HD~(R5), (RO)+ MOV RET(R5) ,(RO)+ MOV RO,CQ.INP INC CQ.CT MOV CQ.PSW,-(SP) MOV #.2$,-(SP) ENDIF 50003$: ;+ ; I\: OW ENQUE THE ENTRY. , 000136' 000136' 000142' 000142' 000146' 000146' 000152' 000152' 000156' 000156' LET RO . - CQ.INP . - HDR(R5) LET (RO)+ . - RET(R5) LET (RO)+ LET CQ. I NP 010067 177624 005267 177624 . - RO LET CQ.CT := CQ.CT + #1 ;+ ; RESTORE CALLER'S PS WORD AND RETURN , 000162' 000162' 000166' 000166' 000172' 000172' 000174' 000174' 000174' 000174' 000176' 000176' 000176' 000200' 000200' PUSH CQ.PSW 016746 177612 012746 000174' 000002 PUSH #2$ INLINE <RTI> RTI INLINE <2$:> 2$: POP RO MOV 0125:)0 ENDRTN OJ0241 000207 (SP)+,RO 50000$: CLC 50001$: RTS PC CTLQUE (CONTROL QUEUE MODULES) CTLOUE.MAC 28-JUL-78 09:13 748 MACY11 30A(1052) 20-SEP-78 17:47 PAGE 19-7 DEQCQ (FUNCTIONAL DESCRIPTION) SEQ 0382 .SBTTl DEQCQ (FUNCTIONAL DESCRIPTION) 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 773 780 781 782 783 ;++ MODULE NAME: DEQCQ FUNCTIONAL DESCRIPTION: THIS MODULE HANDLES DEQUEUEING OF ITEMS FROM THE CONTROL QUEUE. INPUTS: NONE IMPLICIT INPUTS: NONE OUTPUTS: 1. MODULE'S HEADER ADDRESS 2. RETURN ADDRESS IMPLICIT OUTPUTS: ERROR RETURN INDICATES QUEUE UNDERFLOW. PATHOLOGICAL CONNECTIONS: NONE SU80RDINATE ROUTINES CALLED: GETPSW FUNCTIONAL SIDE EFFECTS: DEQUEING IS DONE AT PRIORiTY LEVEL 7 WHICH SERVES AS A LOCK MECHANISM. CALLING SEQUENCE: CALL DEQCQ OUT <HDRADR,RETADR> 784 786 787 788 789 790 791 792 793 794 795 HEADER ADDRESS !;ETURN ADDRESS WHERE HDRADR RETADR 785 VERSION: 0.0 EDIT DATE 8Y REASON CTLQUE (CONTROL QUEUE MODULES) 28-JUL-78 09: 13 CTLQUE.MAC 797 798 799 (2 ) 800 801 802 803 804 905 806 (6) (9) 807 (2 ) (4 ) 808 (4) 809 810 811 812 313 814 815 (4 ) ( 3) (4 ) 816 ( 2) 817 (2 ) 818 (2 ) 819 820 821 822 823 824 825 826 (2 ) 827 (6) ( 9) 828 (4 ) 829 (4 ) 830 831 832 833 884 835 MACY11 30A(1052) 20-SEP-78 DEQCQ (CODE) 17:47 PAGE 19-8 SEQ 0383 .SBTTL DEQCQ (CODE) ROUTINE DEQCQ <HDR,RET> 000202' 000202' DEQCQ: ;+ ; IF COUNT 15 EQUAL TO ZERO, THE QUEUE ; 15 EMPTY. RETURN WITH ERROR. ;- 000202' 00'J202' 000206 1 000210' 000210' 000212' 000214' OC0214' IF CQ.CT LE #0 THEN 005767 003002 177600 RETURN ERROR 000261 000444 TST BGT CQ.CT 50002$ SEC BR 50001$ SUB JSR MOV #1*2,R5 PC,GETPSW (R5)+,CQ.PSW MOV #PR7,-(SP) MOV #3$,-(SP) ENDIF 50002$: ;+ ; SAVE CALLER'S PS WORD AND ; CHANGE PRIORITY LEVEL TO 7 , 000214' 000214' 000220' 000224 1 000230' 000230' 000234' OC0234' 000240' 000240' CALL GETPSW OUT <CQ.PSW> 162705 004767 012567 000002 OOOOOOG 177550 012746 000340 012746 000242' PUSH NPR7 PUSH #3$ INLINE <RTI> RTI 000002 ;+ ; IF DEQUE POINTER IS AT HIGH ADDRESS, ; RE-INITIALIZE IT TO THE QUEUE'S ; START ADDRESS. , 000242 1 000242 1 000242 1 000242' 026767 000250 1 001003 000252' 000252' 012767 000260' 000260' INLINE. <3$:> 177536 177540 CMP ENE CQ.OTP,CQ.HI 50003$ IVOV #OV.CQ,CQ.OTP LET CQ.OTP := #OV.CQ OOOOOOG 177524 ENDIF 50003$: ;+ ; NOW DEQUEUE THE ENTRY. ;- 000260' 3$: IF CQ.OTP EQ CQ.HI THEN PUSH RO CTLQUE (CONTROL QUEUE MODULES) 28-JUL-7.s 09: 13 CTLQUE.MAC (2 ) 836 (4 ) 837 (4 ) 838 (4 ) 839 (4 ) 840 ( 6) 841 842 843 844 845 846 ( 2) 847 (2 ) 848 (2 ) 849 (2 ) 850 (2 ) 851 (3 ) (2 ) (3 ) (2) 852 000260' 000262' 000262' 000266' 000266' 000272' 000272' 000276' 000276' 000302' 000302' 010046 MACY11 30A(10S2) 20-SEP-78 DEQCQ (CODE) 17:47 PAGE 19-9 SEQ 0384 LET RO := CQ.OTP 016700 177516 012065 000000 012065 000002 010067 177502 005367 177500 LET HDR(R5) : = (RO)+ LET RET(R5) . - (RO)+ LET CQ.OTP := RO LET CQ.CT := CQ.CT - #1 MOV RO,-(SP) MOV CQ.OTP,RO MOV (RO)+,HDR(RS) MOV (RO)+,RET(R5) MOV RO,CQ.OTP DEC CQ.CT MOV CQ.PSW,-(SP) MOV #4$,-(SP) ;+ ; RESTORE CALLER'S PS WORD AND RETURN , 000306' 000306' 000312' 000312' 000316' (;00316: 000320' 000320' 000320' 000320' 000322' 000322' 000322' 000324' 000324' PUSH CQ.PSW 016746 177466 012746 000320' 000002 PUSH #4$ INLINE <RTI> RTI INLINE <4$:> 4$: POP RO MOV 012600 ENDRTN 50000$: CLC 000241 000207 000001 (SP)+,RO 50001$: RTS .END PC CTLQUE (COI\TROL QUEUE MODULES) 28-JUL-78 09:13 CTLQUE.MAC AC$R 000102 ACTBIT= 004000 ADDf<22 = 001000 ADR OCOO06 APTFER= 000004 APTPRE= 000200 000106 ASB ASSEM3= 000010 ASTl\T = 000104 AUTO 000010 AUTOST= 020000 A\~AS 000110 BITO OOCOOl BITOO 000001 BITOl 000002 BIT02 000004 BIT03 000010 8IT04 OC082Cl BIT05 000040 BIT06 000100 BIT07 000200 000400 eIT08 81T09 001000 000002 BIT1 BIT10 002000 GITll 004000 BIT 12 010000 31T13 020000 040000 BIT 14 100000 BIT15 81T2 000004 BIT3 000010 000020 BIT4 BITS 000040 000100 BIT6 (100200 BIT7 131 T8 000400 001000 B1T9 BKDEF 000002 13 Krf:OD 000020 SKlY.ODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDwDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQINI 000016RG CQCVF 000001 00OO06R CQ.CT CQ.HI 00OC10R 20-SEP-78 MACY 11 30A(1052) SyMBOL TABLE CQ.lCQ 000014R CQ.INP OCOO02R CQ.MAX 0OO012R CQ.OTP 000004R CQ.PSW OOOOOOR 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 000202RG DEQCQ DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 000000 DT DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT. PS\v= 000004 DT. PT A= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 17:47 PAGE 20 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 0OO040RG ENQCQ EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000:202 EVNTRE= 000201 FATERR= 100000 GETPSW= ****** G 000000 HDR HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 100000 lOMOD lOfv1ODP= 102000 IorJlODR= 112000 IOMODX= 1100CO 035060 JACK K1PARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 SEQ 0385 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 IVIODSEL= 001000 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 00C006 MSGSKE= 000003 MSGSM8= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL OV.CQ = **,~*** G OV.CQS= ****** G OV.HIC= ****** G 024020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 010000 PDP70 000000 PRIO 000040 PR 11 000200 PRI4 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 RDS~RV= 000101 RDWHMI= 000022 RELERR= 000020 R!::LMOD= 020000 REL TIM= 010000 RES1 000056 RES2 000060 000002 RET RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALL'= 001740 075464 SAM SBADR = 000102 SBKMOD= 000000 S3KSE L= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SCFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO SR1 177574 177576 SR2 172516 SR3 000026 STAT STATSI= 064757 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= R3UFEA= RBUFPA= RBUFSZ= RBUFVA= CTLQUE (CONTROL QUEUE MODULES) 28-JUL-78 09: 13 CTL~UE.MAC STATl = 000027 SUSPND= 000001 SVRO 000062 SVRl 000064 SVR2 000066 SVR3 000070 SVR4 000072 SVRS 000074 SVR5 000076 SYSCNT= 000052 SYS::'RR= 000100 TI'v1PIO = 000002 TQOVF = 000002 UIP<\RO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPARE;= 177654 A3S. 000000 000326 20-SEP-78 MACY11 30A(1052) SYMBOL TABLE UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR.2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE=. 000352 ~H~\lHMI = 000222 XFLAG = 000005 000 001 t:RRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:CTLQUE,DSKZ:CTLOUE=SPMAC/ML,EQUATE,CTLQUE RUN-TIME: 14 4 .4 SECONDS RUN-TIME RATIO: 40/19=2.0 CORE USED: 14K (27 PAGES) 17:47 XOFF 0000.23 XGN 0000.21 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$B,\D= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= (.00400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 PAGE 20-1 SEQ 0386 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177?77 $ISKO = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL== 17'1777 $NSKO = 000300 $NSKl == 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050004 $TEMP = 000300 $TSKO = 050003 $$ARGC= 000004 $.$BYTE= 000403 $$CASE= 000000 $$DST = 000000 $$EL.OC= 000402 $$ERFL= 000000 $SFLAG= 000001 $$FROM= 000001 $$lllC == 000250R $$LOCN= 000000 $$REG = 177777 $$RETU= 000001 $SR~N1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000326R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SE?-7B 16:13 3 531 534 577 629 722 772 17:48 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR CONOF 000000 1 .PRINT ;SPMAC: VERSION 1.1 KCON PROCESS THE ICON I (CACHE ON) KEYBOARD COMMAND KCON ROUTINE KCOFF PROCESS THE ICOFF I KEYBOARD COMMAND KCOFF PROCESS THE KEYBOARD COMMANDS ICOFF I SEQ 0387 CONOF PROCESS THE ICON I AND ICOFF I KEYBOARD COMMAND MACY'1 30A(10S:) CONQF.MAC 08-AUG-78 12:21 COM~ON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 513 519 520 .TITLE .IDENT CONOF JVO.Oj 20-SEP-78 17:48 P~GE SEQ 0388 PROCESS THE ICON I AND ICOFF I KEYBOARD COMMAND ;++ MODULE PACKAGE NAME: CONOF FUNCTIONAL DESCRIPTION: THIS MODULE PACKAGE CONTAINS: 1. KCON - PROCESS THE ICON I KEYBOARD COM~AND 2. KCOFF - PROCESS THE ICOFF I KEYBOARD COMMAND 521 522 VERSION: 523 524 525 526 527 528 529 0.0 EDIT 19 BY DATE REASON CONOF PROCESS THE 'CON' AND 'COFF' KEYBOARD COMMAND MACY11 30A(1052) 20-SEP-78 CONOF.MAC 08-AUG-78 12:21 COMMON DEFINITIONS AND REFERENCES FOR CONOF 531 532 533 534 (1) 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 55S 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 000000' oooono' 17:4B .SBTTL COMMON DEFINITIONS AND REFERENCES FOR CmJOF .MCALL STRUCT .PRINT STRUCT ;SPMAC: VERSION i • 1 $LSTTAG=1 $LSTIN=1 000001 000001 ;**************** ; REFERENCED BY OTHER MODuLES: .GLOBL .GLOBL ;KCON MODULE ENTRY POINT ;KCOFF MODULE ENTRY POINT KCON KCOFF ; GLOBAL REFERENCES: .GLOBL .GLOBL .GLOBL .GLOSL .GLOBL .GL08L ;CONTROL ItJORD FOR CACHE REG. ;SAVE REGISTERS ;RESTORE REGISTERS ;CHECK AN ARGUMENT ;'INVALID ARGUMENT' MESSAGE ;CONTROL WORD CCNTRL SAVREG RESREG ARGCHK CM.ARG KONTRL i**************** ;**************** ;**************** ; LOCAL EQUATES: ;FLUSH 11/60 CACHE CFLUSH=352 000352 ;**************** ; 000000' 000006' 000014' 000022' 000030' 000036' 000044' 000050' 000056' 000062' 000070 1 041445 042440 026440 052047 020116 040503 047117 047516 042510 040503 043117 000076' 041501 051122 053440 052040 047117 044103 000045 041440 000045 044103 022506 LOCAL STORAGE: 042510 051117 0471 17 051125 000045 020105 CO. BAD: .ASCIZ /%CACHE ERROR - WON'T TURN ON%/ CO. ON: .ASCIZ /CACHE ON%/ 041501 CO. NUN: .ASCIZ /NO CACHE%/ 020105 000 CO.OFF: .ASCIZ /CACHE OFF%/ .EVEN PAGE 19-1 SEQ 0389 CONOF PROCESS THE ICON I AND ICOFF I KEYBOARD COMMAND MACV11 30A(1C52) 20-SEP-78 17:48 CONOF.MAC 08-AUG-76 12:21 KeeN PROCESS THE 'CONI (C~CHE ON) KEYBOARD COMMAND PAGE 19-2 SEQ 0390 577 578 579 . SBTT L KCON PROCESS hiE I CON I (CACHE ON) KEYBOARD COMMAND .IDENT /VO.O/ :.380 ;++ S81 582 MODULE NAME: KCON 583 584 585 585 587 -385 S89 590 FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE ICON I (CACHE ON) KEYBOARD COMMAND. IT WILL FIRST CHECK FOR THE PRESENCE OF ILLEGAL ARGUMENTS. IF ANY, AN ERROR MESSAGE IS OUTPUTTED AND IF NOT, AND ITIS AN 11/60, THE CACHE IS FIRST CLEARED. IF NO CACHE, AN ERROR MESSAGE IS STUFFED. 591 592 INPUTS: 593 1. 594 595 596 597 598 2. DECODE BUFFER PTR 599 600 601 602 603 604 605 606 607 608 609 ADDRESS OF DATA TABLE IMPLICIT INPUTS: DT.CFO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.KBRSP PATHOLOGICAL CONNECTIONS: NONE 611 SUBORDINATE ROUTINES CALLED: 1. 4RGCHK - CHECK AN ARGUMENT 2. SAVREG - SAVE REGISTERS 3. RESREG - RESTORE REGISTERS 612 613 614 FUNCTIONAL SIDE EFFECTS: NONE 610 615 616 617 618 619 CALLING SEQUENCE: CALL KCON IN <DTADR,BUFPTR> WHERE DTADR = ADDRESS OF DATA TABLE BUFPTR = DECODE BUFFER POINTER 620 621 622 623 624 625 626 627 VERSION: 0.0 EDIT DATE BY REASON CONOF PROCESS THE 'CON' AND 'COFF' CONOF.MAC 08-AUG-78 12:21 629 630 631 (2 ) 632 633 634 635 636 637 (3 ) 638 (4 ) 639 (4 ) 640 641 642 643 644 645 (4 ) ( 3) (4 ) (3 ) (3) (4 ) 646 647 (6) 548 649 650 651 KEYBOARD COMMAND KCON ROUTINE .SBTTL (9) 661 662 663 664 665 666 667 668 (4) 20-SEP-78 11:48 PAGE 19-3 SEQ 0391 KCON ROUTINE ROUTINE KCON <DTADR,BUFPTR> 000076' 000076' KCON: ;+ ; , 000076 ' 000076 ' 004767 000102 ' 000102 ' 016501 000106' 000106 ' 016502 INIT AND SAVE DTABLE,BUFPTR CALL SAVREG OOOOOOG . - DTADR(R5) LET R2 . - BUFPTR(R5) LET R1 000000 000002 JSR PC,SAVREG MOV DTADR(R5),R1 MOV BUFPTR(R5),R2 SUB MOV MOV JSR MOV MOV #i*2,R5 R5,-(SP) R2,-(R5) PC,ARGCHK (SP)+,R5 (R5)+,R2 BCC 50002$ BIT BEQ #CAPRES,DT.CFO(R 50003$ BIT BEQ #PDP60,DT.CFO(R1 50004$ ;+ ; CHECK FOR JUNK ARGUMENTS , CALL ARGCHK IN <R2> OUT <R2> 000112 ' 000112' 000116 ' 000120 ' 000122' 000126' 000130 ' 16~705 000002 010546 010245 004767 012605 012502 OOOOOOG 000132 ' 000132 ' 103045 IF. ERROR THEN ;+ NO JUNK ARGS ... CONT I NUE ... SEE IF CACHE EXISTS AT A:"L , 65~ 653 654 (6) ( 9) 655 656 657 658 659 660 (6) MACY11 30A(1052) 000134 ' 000134 ' 032761 000142' 001435 IF NCAPRES SETIN DT.CFO(R1) THEN 000004 000014 ;+ ; THERE IS CACHE. .. SEE \II/HAT FLAVOR ..• PDP 11/60 OR OTHER , 000144 ' 000144 ' 032761 000152 ' 001404 IF #PDP60 SETIN DT .CFO(R1) THEN 004000 000014 ;+ ; IT'S AN 11/60 SO, US li~G THE 'MED' INSTRUCTION FEATURE OF IT, DO A ; CACHE SWEEP. CODE OF 200 TO RO,352 TRAILING TO GET INIT REG( INTERNAL ; MICROCODE), CLEAR THE FORCE MISS BI TS, ... ,' 000154 ' 000154 ' 012700 LET RO 000200 . - #200 MOV #200,RO CONOF PROCESS THE 'CON' AND 'COFF' KEYBOARD COMMAND CONOF.MAC 08-AUG-78 12:21 KCON ROUTINE 669 (2) 670 (2) 671 (4) 672 (6) 673 (4) 674 675 576 677 678 679 580 681 682 (6) ( 9) 683 (4 ) 684 ( 4) (3 ) 691 (G) 692 693 (4 ) 694 (4 ) (3 ) PAGE 19-4 MED INLINE <#CFLUSH> #CFLUSH ENDIF 000164' 000164' 000164' 000164' 042767 000172' 000172' 016777 50004$: LET KONTRL := KONTRL CLR.BY #14 000014 OOOOOOG BIC #14,KONTRL MOV KONTRL,@CCNTRL BIT BEQ #14,@CCNTRL 50005$ MOV #CO.BAD,DT.KBRSP BR 50006$ LET @CCNTRL '- KONTRL OOOOOOG OOOOOOG + SEE IF IT REALLY DID ENABLE ... IF NOT STUFF ERROR MSG ... IF #14 SETIN @CCNTRL THEN 032777 001404 000014 OOCOOOG 012761 000000' 000022 LET DT.KBRSP(R1) '- #CO.BAD ELSE 000406 50005$: ;+ ; NOW STUFF THE CACHE ON MSG, SET THE CACHE ENABLE BIT IN STATUS WORD ... 687 (4 ) 17:48 IN LI NE <MED> 076600 000162' 000162' 000352 000200' 000200' 000206' 000210' 000210' 000216' 000216' 000220' 20-SEP-78 SEQ 0392 000160' 000160' 685 586 688 689 690 MACY11 30A(1052) 000220' 000220' 012761 000226' 000226' 052761 LET DT.KBRSP(R1) 000004 .- #CO.ON MOV 000036' 000022 LET DT.STO(R1) #CO.ON,DT.KBRSP( := DT.STO(R1) SET.BY #CASTAT 000010 BIS #CASTAT,DT.STO(R BR 50007$ ENDIF 000234' 000234' 000234; 000234 1 000403 C00236' 50006$: ELSE 50003$: 695 ;+ 696 697 ; THERE IS NO CACHE .•. TELL OPERATOR - STUFF THE NO CACHE ERROR MSG 698 ;- 699 700 (4) 701 (4) 702 703 704 705 706 (4) 000236' 000236' 012761 000244' 000244' 000244' 000244' 000403 LET DT .KBRSP(R1) .- #CO.\JUN 000050' 000022 MOV #CO.NUN,DT.KBRSP ER 50010$ ENDIF ::50007$: ELSE CONOF PROCESS THE 'CON' AND 'COFF' KEYBOARD COMMAND CONOF.MAC C8-AUG-78 12:21 KCON ROUTINE (3) 707 708 709 710 711 712 713 (4) 714 71~ (4) 716 717 (3 ) MACY11 30A(1052) 20-SEP-78 000246' 17:48 PAGE 19-5 SEQ 0393 50002$: ;+ ; THERE WAS A JUNK ARGUMENT ; DON'T HONOR COMMAND ...• STUFF ERROR MSG 'f - 000246 ' 000246 ' 012761 LET DT.KBRSP(R1) := #CM.ARG OOOOOOG 000022 #CM.ARG,DT.KBRSP JSR PC,RESREG RTS PC ENDIF 000254 ' C00254 ' 000254 ' 000254 ' 004767 IVIOV 50010S: CALL R£SREG OOOOOOG 718 719 (3 ) (3) ( 2) 720 000260 ' 000260 ' 000260 ' 000260' 000207 ENDRTN 50000$: 50001$: CONOF PROCESS THE 'CON ' AND 'COFF' KEYBOARD COMMAND MACY11 30~(1052) 20-SEP-78 CONOF.MAC 08-AUG-78 12:21 KCOF~ PROCESS THE 'COFF' KEYBOA~D COMMAND 722 723 17:48 PAGE 19-6 .SBTTL KCOFF PROCESS THE 'COFF' KEYBOARD COMMAND .IDENT /VO.Oj 724 725 726 727 728 729 '130 731 732 733 734 735 736 737 738 739 ;++ MODULE NAME: KCOFF FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE 'COFF' (CACHE OFF) KEYBOARD COMMAND. IT WILL FIRST CHECK FOR THE PRESENCE OF ILLEGAL ARGUMENTS. IF ANY, AN ERROR MESSAGE IS OUTPUTTED AND IF NOT THE FORCE MISS BITS IN THE CONTROL REGISTER ARE SET. IF NO CACHE AN ERROR MESSAGE IS STUFFED. INPUTS: 1. ADDRESS OF DATA TABLE 2. DECODE BUFFER PTR 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 75f 757 IMPLICIT INPUTS: DT.CFO OUTPUTS: NONE IMPLICIT OUTPUTS: 1. DT.KBRSP PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: 1. ARGCHK - CHECK AN ARGUMENT FUNCTIONAL SIDE EFFECTS: NONE 758 759 760 761 762 76::' 764 765 76£ 767 768 769 770 CALLING SEQUENCE: CALL KCOFF IN <DTADR,BUFPTR> WHERE DTADR = ADDRESS OF DATA TABLE BUFPTR = DECODE BUFFER POINTER VERSION: 0.0 EDIT DATE BY REASON SEQ 0394 CONOF PROCESS THE 'CON' AND 'COFF' KEYBOARD COMMAND CONOF.MAC 08-AUG-78 12:21 KCOFF PROCESS 772 773 774 (2 ) 7""r:. loJ 776 777 778 779 780 (2 ) (3 ) 781 (4) 782 (4 ) 783 784 785 786 787 788 (4) ( 3) (4 ) (3 ) (3 ) (4 ) 789 790 (6 ) 791 792 792 794 795 796 797 (6 ) (9) 798 799 800 801 802 803 804 (6 ) 805 (4) 806 (4) 807 (6 ) 808 809 .SBTTL MACY11 30A(1052) 20-SEP-78 KEYBOARD COMMANDS 'COFF' 17:48 PAGE 19-7 SEQ 0395 TH~ KCOFF PROCESS THE KEYBOARD COMMANDS 'COFF' ROUTINE KCOFF <DTADR,BUFPTR> 000262' 000262' KCOFF: ;+ INITIALIZE AND SAVE DATA TABLE ADDRESS AND BUFPTR ; , 000262' 000262' 010046 000264' 010146 000266' 000266' 016500 PUSH RO,R1 . - DTADR(R5) LET RI . - BUFPTR(R5) RO,-(SP) R1,-(SP) MOV DTADR(R5),RO MOV BUFPTR(R5) ,R1 SUB MOV MOV JSR MOV MOV #1*2,R5 R5,-(SP) RI,-(R5) PC,ARGCHK (SP)+,R5 (R5)+,Rl BCC 50002$ BIT BEQ #CAPRES,DT.CFO(R 50003$ BIS #14,KONTRL MOV KONTRL,@CCNTRL MOV #CO.OFF,DT.KBRSP SIC #CASTAT,DT.STO(R LET RO 000000 000272' 000272' 016501 M:JV MOV 000002 ;+ SEE IF ANY JUNK ARGUMENTS , CALL ARGCHK IN <R1> OUT <R1> 000276' 000276' 000302' 000304' 000306' 000312' 000314' 162705 010546 010145 004767 012605 012501 000316' 000316' 103025 000002 OOOOOOG IF.ERROR THEN + NO JUNK ARGUMENTS FOUND SO SEE IF CACHE EXISTS AT ALL 000320' 000320' 032760 000326' 001415 IF #CAPRES SETIN DT.CFO(RO) THEN 000004 000014 + CACHE DOES EXIST SO TURN OFF CACHE AND STUFF MSG 000330' 000330' 000336' 000336' 000344' 000344' 000352' 000352' 000360' LET KONTRL := KONTRL SET.BY #14 OOOOOOG 052767 000014 016777 OOOOOOG OOOOOOG LET @CCNiRL := KONTRL LET DT.KBRSP(RO) 012760 000062' 000022 042760 000004 LET DT.STO(RO) 000010 ELSE := #CO.OFF . - DT.STO(RO) CLR.BY #C.A.STAT CONJF PROCESS THE ICON I AND ICOFFI KEYBOARD COMMAND MACVll 30A(1052) 20-SEP-78 CONOF.MAC 08-AUG-78 12:21 KCOFF PROCESS THE KEYBOARD COMMANDS 'COFF ' (4) (3) 810 811 812 813 814 815 (4) 316 817 (4) 318 (4) (3) 819 820 821 822 823 824 (4) 825 825 (4) 827 828 829 830 831 832 (2) (3) 833 834 (3) (3) (2) 835 836 17:48 PAGE 19-8 000360 1 000403 000362 1 SEQ 0396 BR 50004$ MOV #CO.NUN,DT.KBRSP BR 50005$ MOV #CM.ARG,DT.KBRSP MOV MOV (SP)+,Rl (SP)+,RO RTS PC 50003$: ;+ ; NO CACHE ON SYSTEM - GO INSULT OPERATOR .... ; STUFF ERROR MSG ..• 000362 1 000362 1 012760 LET DT.KBRSP(RO) '- #CO.NUN 000050 1 000022 000370 1 C00370 ' 000370 1 000370 1 000403 000372 1 ENDIF 50004$: ELSE 50002$: ;+ ; THERE ARE JUNK ARGUMENTS - STUFF ERROR MSG AND LEAVE ,' 000372 1 000372 1 012760 LET DT.KBRSP(RO) .- #CM.ARG OOOOOOG 000022 ENDIF 000400 000400 1 1 50005$: ;+ ; CLEAN UP AND SCRAM 000400 1 000400 I 01 2601 000402 1 012600 POP Rl,RO 000404 1 000404 1 000404 1 000404 1 000207 ENDRTN 000001 50000~: 50001$: .END CONUF PROCESS THE ICON I AND 08-AUG-78 12:21 CONOF.MAC :\CSR 000102 ACTBIT= 004000 .c.DDR22= 001000 ADR 000006 APTFER= OOC004 APTPRE= 000200 ARGCHK= ****** G ASB 000103 ASS[MB= 000010 ASTAT = 000104 AUTJ 000010 AUTOST= 020000 AVJAS oeo 110 81TO 000001 000001 81TOO 81T01 000002 81T02 000004 000010 8IT03 E3IT04 000020 [31T05 000040 000100 GIT06 BIT07 000200 HIT08 000400 001000 t3IT09 000002 oITl f3 IT 10 002000 BIT 11 004000 [3 IT 12 010000 81T13 020000 £31 T 14 040000 E3 IT 15 100000 £31 T 2 000004 000010 81T3 [31 T4 000020 [3IT5 000040 000100 BIT6 [j I T7 000200 000400 UIT8 001000 t11T9 BKDEF 000002 [3KMOD 000020 GKrWDE= 040000 [)KSLSH= 000134 E.lUFPTR= 000002 CAPRES= 000C04 CASTAT= 000004 CCNTRL= ****** G COERCT= 000146 CDWDCT= 000144 CFLUSH= 000352 CKTlM = 100000 CLKPRE= 000C01 CM.ARG= ****** G ICOFF I KEYBOARD COMMAND S)';'>vi80L TABLE CONFIG= CO. BAD CO.NUN CO.OFF CO.ON CQOVF CR CSRA CSRC CTRLC CTRLO CTRLU DCEVNT= DEFRTN= DIAGNlC= DROPMO= DSEVNT= DTADR = DT.ADO= DT.AP = DT.APK= DT.BLS= DT.CFO= DT.CF1= DT.ERR= DT.ES1= DT.EVN= DT.EXS= DT.FCH= DT.FCN= DT.HMX= DT.KBE= DT.KBP= DT.KBR= DT.KBU= DT.MLS= DT.MTl= DT.OFF= DT.PAS= DT.PC = DT.PFL= DT.PSW= DT.PTA= DT.RCS= DT.REL= DT.SCT:= DT.SMX= DT.SP = DT.SSI= OT.STO= DT.ST1= DT.SWR= DT. SYP= 000056 OOOOOOR 000050R 000062R 000036R 000001 000015 000100 000102 000003 000017 000025 000011 000400 000000 100000 000014 OCOOOO 000042 000100 000076 000034 000014 000016 000020 000044 000000 000060 000037 000036 000104 000024 000026 000022 000030 000032 000110 000070 000074 000002 000062 000004 000064 000102 000040 000066 000106 COOO06 000046 000010 000012 000056 000072 MACY11 30A(1052) DT.WBU= 000050 DT . ~'JH L= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000101) ECCSTA= 000010 ENBEOP= 010000 EN8NllL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 10000J HRDCNT= 000044 HROPAS= 000050 lCONT = 000036 lCOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 lNHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT INTR 000120 IOMOD 100000 IOMDDP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 KCOFF 000262RG 000076RG KeON KlPARO"'= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KlPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 1723CO KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 20-SEP-78 KONTRL= KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= M..\PSTA= MED MEMPAS= MODEXH= MODHOL= r.10DSE L= MSGCKO= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRPJI= MSGRES= MSGSFT= MSGSKE= MSGSfJlB= MSGSfv1H= MSGSrr:s= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSl= PDP60 PDP70 PRIO PR I 1 PRI4 PRI5 PRI6 PRI7 17:48 PAGE 20 **"':t** G 000:)40 000400 000020 040000 000012 000001 000200 0761'300 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 00.'J022 000007 000021 177775 000002 177776 000001 000005 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 01')':;00 000000 OOC040 000200 000~40 000300 000340 SEQ 0397 RANNUM= RL3lJFEA= RB'.... ::·PA= RBuFSZ= RBUFVA= RDSERV= RJiillHM I::. RELERR= RE Uv10D= RELTIM= 000000 000200 000240 000300 000340 177776 177776 000054 000131) OC0126 000132 000124 000101 000022 000020 020000 010000 RES~EG= ****** G PRO PR4 PR5 PR6 PP'7 PS PSW R:::S1 RES2 RICHAR= RPTDAT= RSTRT = RUBCUT= 000056 000060 031060 002000 000112 000177 RUN~v~OD= 100000 R5VALU= 001740 075464 SAM SAVREG= ****** G SBADR = 000102 SBKrf.OD= 000000 SBKSE L= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 00004-2 SDFPAS= 000046 SDACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATB!= 064757 STATl = 000027 SUSPND= 000001 CONOF FROCESS THE ICON I AND ICOFFI CONOF.MAC 08-AUG-78 12:21 SVRO 000062 SVR1 000064 SVR2 000066 SVR3 OC0070 SVR4 000072 SVR3 000074 SVRS 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 JIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 JIPDRO= 177600 UIPDR1= 177602 ASS. 000000 000406 KEYBOARD CCMMAND SYMCOl TABLE UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR== 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 \lJ8U F SZ == 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:CCNOF,DSKZ:CONOF=SPMACjML,EQUATE,CONOF RUN-TIME: 15 5 .4 SECONDS R~N-TIME RATIO: 42/21=2.0 CORE USED: 14K (27 PAGES) MACY11 30A(1052) $F$AND= 000310 $F$BMD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 20-SEP-78 17:48 PAGE 20-1 SEQ 0398 $F$YES== 000402 $IFLEV= 177777 $ISKO = 000001 $ISK1 = 00)001 $ISK2 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTl= 177777 $NSKO 000300 $NSK1 = 000110 $NSK2 = 000110 $NSK3 = 000110 $SAVLE= 177777 $TAGlE= 177777 $TAGNU== 050006 $TEMP 000300 $TSKO = 050005 $TSK1 = 050004 $TSK2 = 050006 $$ARGC= 000004 $SBYTE= 000403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFl= 000000 $$FLAG= 000001 $SFROII/I= 000001 $$LOC = 000326R $$LOCN= 000000 $$REG = 177777 $'~RETU= 00000,) $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$iO 000001 $$$TAG= 050000 000406R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 555 558 595 17:48 TABLE OF CONTENTS COM~ON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT DPEOP ROUTINE ;SPMAC: VERSION 1.1 SEO 0399 DPEOP - XXDPjACT-11 END-OF-PASS MACV11 30A(1052) 20-SEP-78 17:48 DPEOP.MAC 2S--JUL-78 09:14 COi,~r\~C:J eQUATE rr.OCL!LC 508 509 510 511 512 513 514 515 516 517 518 519 PAGE 19 SEQ 0400 .TITLE DPEOP - XXDPjACT-11 END-Of-PASS .IDENT JVO.Oj j++ MODULE NAME: DPEOP FUNCTIONAL DESCRIPTION: CONTROLS RETURN TO AND RESTART FROM XXDP!ACT-,1 INPUTS: DATA TABLE ADDRESS 520 521 522 523 524 525 526 527 528 529 530 531 53~ 533 534 535 536 537 532 539 540 541 54~ 543 544 545 546 547 548 549 550 551 552 553 IMPLICIT INPUTS: DT.ESIZ, DT.ADDR, DT.BLST, DT.SSIZ, DT.ST1 OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: MD. COD DX.R5 DX.SP BA.MPTR ;MESSAGE CODE IN MSGDEQ ;R5 STACK POINTER ;R6 STACK POINTER ;BACKGROUND MODULE LIST POINTER SUBORDINATE MODULES CALLED: RSTRCY MSGDEQ DX.INI ;RECOVER FROM RESET ;MESSAGE DEQUEUER ;MONITOR INIT. ROUTHI~ FUNCTIONAL SIDE EFFECTS: CAUSES PROGRAM CONTROL TO LEAVE THE EXERCISER CALLING SEQUENCE: CALL DPEOP IN <A> A=ADDRESS OF DATA TABLE VERSION: 0.0 EDIT ,'-- BY DATE REASON DPEOP - XXDPjACT-11 END-OF-PASS MACY11 30A(1052) 20-SEP-78 17:43 PAGE 19-1 DPEOP.MAC 28-JUL-78 09:14 COMMON DEFINITIONS AND REFERENCES 555 556 557 558 (1) 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 SEQ 0401 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 ;**************** , ; REFERENCED BY OTHER MODULES .GLOBL .GLOBL OPEOP $ENDAD ;MOOULE ENTRY POINT ;XXOP/ACT-11 "HOOK" ;**************** ; GLOBAL REFERENCES .GLOBL .GLCBL .GLOBL .GLOBL .GL03L .GLOBL .GLOBL .GLOBL RSTRCY DX. I NI DX.SP DX.RS DX.DEQ BA.MPTR MSGOEQ MD. COD ;RECOVER FROM RESET ;MONITOR INIT. ROUTINE ;POINTER TO MONITOR'S R6 STACK ;POINTER TO MONITOR'S RS STACK ;MONITOR'S DEQUEUING ROUTINE ;BACKGROUNO MODULE LI3T POINTER ;MESSAGE OEQUEUER ;MESSAGE TYPE CODE 58L' ; LOCAL STORAGE 58~, 586 587 588 589 590 591 592 593 oooaoo' 000000 000002' 000000 000004' 000000 , OP.RO: DP. R1 : DP.R2: .WORD 0 .WORD 0 .WORD 0 RO STORAGE STORAGE R2 STORAGE R1 DPEOP - XXDP/ACT-11 END-OF-PASS MACY11 30A(1052) 20-SEP-78 DPEOP.MAC 28-JUL-78 09:14 oPEOP ROUTINE 595 595 597 (2) 598 599 600 601 602 603 604 (4) 60S 606 507 608 609 610 611 (3) 612 (3) (4) (3) (3) 613 (3) (6) 614 615 616 517 618 619 620 621 622 (6) (9) 623 (4) 624 (4) (3) 625 (4) (7) (7) (7) (7) (7) (7) 626 (4) 627 628 17:4a ~ACE 19-2 SEQ 0402 .SBTTL DPEOP ROUTINE ROUTINE DPEOP <TABL> 000006' 000006 1 oPEOP: ;+ ; SET RO TO THE START OF THE DATA TABLE 000006 1 000006 1 016500 LET RO := TABL(R5) 000000 MOV TABL(R5),RO MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,MSGDEQ (SP)+,R5 CMP BNE MD.COD,#MSGNUL 50002$ ;+ ; WAIT FOR THE TYPE QUEUE TO EMPTY. ;000012' 000012' 000012' 000012' 010546 000014' 010045 000016' 004767 000022' 012605 OC0024' 000024' 026727 000032 1 001367 RE.PEAT 50002$: CALL MSGDEQ IN <RO> OOOOOOG UNTIL MD.COD EQ #MSGNUL OOOOOOG 177775 ;+ ; MOVE THE XXDP MONITOR (EVEN IF IT DOESN'T EXIST, SE:AUSE WE DON'T KNOW ; IF WE HAVE XXDP OF ACT-1~) TO THE TOP 1.5K OF MEMORY (BUT NOT HIGHER ; THAN 28K SINCE XXOP CAN1T USE KT). 000034' 000034' 026027 0000421 103403 0000441 000044 1 012702 000050 1 000050 1 000410 000052' 000052 1 000052 1 016002 000056 1 006302 OOC060 1 006302 000062 006302 000064 1 006302 000e66 1 006302 000070' 006302 000072' 000072' 000046 001600 IF DT.SSIZ(RO) HIS #1600 THEN LET R2 := #160000 160000 ELSE CMP BLO DT.SSIZ{RO) ,#160 50003$ MOV #160000,R2 BR 50004$ MOV ASL ASL ASL ASL ASL ASL oT.SSIZ(RO),R2 R2 R2 R2 50003$: LET R2 '- oT.SSIZ(RO) SHIFT #6 000046 1 ENDIF 50004$: R2 R2 R2 20-SEP-78 DPEOP - XXDP/ACT-11 END-Of-PASS MACY11 30A(1052) DPEOP ROUTINE 28-JUL-78 09: 14 DPEOP.MAC 629 630 631 632 633 634 635 636 (4 ) (6) 637 (4) 638 639 (4 ) (6) (9 ) 640 (4) 641 ( 6) 642 (4) (3 ) 643 644 645 646 647 648 649 (4 ) 650 (4 ) 651 (4 ) 652 653 654 655 656 657 658 659 (2 ) 660 (2 ) 661 (2 ) 662 (2 ) 663 664 665 666 667 17:48 PAGE 19-3 SEQ 0403 ;+ SET R1 TO THE 1 ST ADDRESS ABOVE THE EXERCISER, SET R3 TO 1 . 5K, AND MOVE THE CODE. ; (DON1T FORGET THAT DT.ESIZ IS THE SIZE OF THE EXERCISER PLUS THE XXDP ; MONITOR.) , 000072' 000072' 016001 000076' 062701 000102' 000102' 012703 LET R1 . - DT.ESIZ(RO) + #2 LET R3 . - #AD1536 000044 000002 003000 WHILE R3 NE #0 DO 000106' 000106' OC0106' 005703 000110' 001403 000112 1 000112' 014142 000114' 000114 1 005303 000116' 000116' 000773 000120' LET -(R2) LET R3 MOV t.DD DT.ESIZ(RO),R1 #2,R1 MOV #AD1536,R3 TST BEQ R3 50006$ MOV -(R1) ,-(R2) DEC R3 BR 50005$ MGV RO,DP.RC MOV R1,DP.R1 MGV R2,DP.R2 50005$: .- - (R1 ) .- R3 - #1 ENDDO 50006$: ;+ ; SAVE REGISTERS FOR AFTER THE RETURN FROM XXDP. , 000120' 000120' 010067 000124' 000124 1 010167 000130' 000130 1 010267 LET DP.RO 177654 · - RO · - R1 LET DP.R2 · - R2 LET DP.R1 177652 177650 ;+ ;**************** ; HERE IS THE ACTUAL XXDP/ACT-11 STUFF. , 000134' 000134' 000005 000136' 000136' 013700 000142' 000142 1 004710 000144' 000144' 000240 INLINE < RESET> INUNE < MOV RESET @#42,RO> 000042 INLINE <$ENDAD: JSR INLINE < 000240 .WORD NOP,NOP,NOP> 000240 ;+ ;**************** ;- PC, (RO» MOV @#42,RO $ENDAD: JSR PC, (RO) .toJORD NOP,NOP,NO 20-SEP-78 DPEGP - XXDP/ACT-11 END-OF-PASS MACV11 30A(1052) DPEOP ROUTINE 28-JUL-78 09: 14 DPEGP.MAC G68 669 670 671 672 (4 ) 573 (4) 674 \4) 675 576 677 578 679 680 681 (4) 582 (4 ) (6) (9) 683 (4 ) 684 (6) 685 (4 ) (3 ) 686 687 688 689 690 691 692 (4 ) 693 (4 ) 694 (4) 695 (4 ) 6S6 697 698 699 700 70i 702 (4 ) 703 704 705 706 707 17:48 PAGE 19-4 SEQ 0404 ;+ ; , 000152' 000152' 016700 000156' 000156' 016701 000162' 000162' 016702 RESTORE THE REGISTERS WE WERE USING. LET RO · - DP.RO MOV DP.RO,RO LET R1 · - DP.R1 MClV DP.R1,R1 LET R2 · - DP.R2 MOV DP.R2,R2 MOV #~D1536,R3 TST BEQ R3 50010$ MOV (R2)+, (R1)+ DEC R3 B:~ 50007$ MOV #SPVALUE,SP MOV SP,DX.SP MOV #R5VALUE,R5 MOV RS,DX.R5 MOV DT.BLST(RO),BA.M 177622 177620 177616 ;+ ; NOW MOVE THE XXDP MONITOR BACK TO THE TOP OF THE EXERCISER. , 000166' 000166' OC0172' 000172' 000172' OC0174' 000176' 000176' OC0200' 000200' 000202' 000202' 000204' LET R3 012703 , - #"D1536 003000 WHILE R3 NE #0 DO 50007$: 005703 001403 LET (R 1 ) + ' - (R2)+ 012221 LET R3 '- R3 - #1 005303 ENDDO 000773 50010$: ;+ ; , OC0204' 0(0204' 0(;0210' 000210' 000214' 000214' 000220' 000220' RE-INITIALlZE THE STACKS. LET SP 012706 002200 · - #SPVALUE LET DX.SP 010667 OOOOOOG LET R5 012705 001740 · - #R5VALUE LET DX.R5 010567 . - SP . - R5 OOOOOOG ;+ ; RE-INITIALIZE THE BACKGROUND LIST POINTER ;- 000224' 000224' 016067 LET BA.MPTR 000034 . - DT.BLST(RO) OOOOOOG ;+ SINCE ACT-11 REQUIRES AT LEAST 2CO MILLISECONDS BETWEEN RESETS, ; GO INTO A WAIT LOOP. DPEOP - XXDP/ACT-11 END-OF-PASS MACY11 30A(1052) 20-SEP-78 DPEOP.MAC 28-JUL-78 09:14 DPEOP ROUTINE 708 709 710 (4) 711 (4) (6) (9) 712 (4) 713 (4) (o) (9) 714 (6) 715 (4) (3) 716 (6) 717 (4) {J} 718 719 720 721 722 723 724 (2) 725 726 727 728 725 730 731 732 (3) (4) (3) (3) 733 734 73S 736 737 738 739 (6) 740 741 742 743 000232 1 000232 1 000236 000236 1 000236 1 000240 1 000242 1 000242 1 000246 1 000246 1 000246 1 000250 1 000252 1 000252 OOOL54 1 C00254 1 000256 1 000256 1 000256 1 000260' 000260 1 000262 1 PAGE 19-5 SEQ 0405 LET R4 . - # 10 012704 000010 WHILE R4 GT #0 DO 1 1 17:48 005704 003410 012703 LET R3 .- #177777 005703 001402 T5T BlE R4 50012$ MOV #177777,R3 1 ST Bi:Q R3 50014$ DEC R3 BR 50013$ DEC R4 BR 50011$ 50013$: LET R3 .- R3 - #1 005303 ENDDO 000774 #10,R4 50011$: 177777 WHILE R3 NE #0 DO MOV 50014$: LET R4 '- R4 - #1 005304 ENDDO 000766 50012$: ;+ ; NOW WE CAN DO A RESET. INLINE <RESET> 000262 1 000262 1 000005 RESET ;+ ; RESTORE ALL PROCESSOR OPTIONS TO THE STATE THEY WERE IN BEFORE ; WE BEGAN THIS NONSENSE. 000264 1 000264 1 000266 1 000270 1 000274 1 CALL RSTRCY IN <RC> 010546 01C045 004767 012605 MOV R5,-(SP) RO,-(r;.5) PC,RSTRCY (SP)+,R5 BIC #MEMPAS,DT.ST1(R MOV MOV JSR OOOOOOG ;+ ; CLEAR MEMPAS. 000276 1 000276 1 042760 LET DT.ST1(RO) 040000 '- DT.ST1(RO) elR.BY IIMEMPAS 000012 ;+ ; RE-INITALIZE THE MONITOR. DPEOP - XXDP/ACT-11 END-OF-PASS MACY11 30A(1052) 20-SEP-78 DPEOP.MAC 28-JUL-78 09:14 DPEOP ROUTINE 744 745 746 (3) 747 748 749 750 751 752 753 754 (2) 755 756 757 (3) (3) (2) 758 0003041 000304 1 004767 17:48 PAGE 19-6 SEQ 0406 CALL OX..INI OOOOOOG JSR PC,DX.INI ;+ ; ~OW ~E CAN CONTINUE WHERE WE LEFT OFF BY RETURNING TO THE MONITOR1S ; DE-QUEUEING MECHANISM. 000310 1 000310 1 000137 0003141 INLINE <JMP @#OX.OEQ> OOOOOOG JMP @#OX.OEQ ENDRTN 000314~ 000314 1 000314 1 000207 000001 50000$: 50001$: RTS .END PC 20-SEP-78 DPEGP - XXDP/ACT-11 END-OF-PASS MACY11 30A(1052) SYMBOL TABLE 28-JUL-78 09: 14 DPEOP.MAC ACSR 000102 ACTt3IT= 004:)00 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB e00106 !\SSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 8A. rY1PT= ****** G glTO 000001 BITOO 000001 31TO~ 000002 lJIT02 000004 81T03 000010 UIT04 000020 81T05 000040 BIT06 000100 BIT07 000200 S1T08 000400 B1T09 001000 i3 IT 1 000002 lJIT10 002000 BIT11 004000 81T12 010000 81T13 020000 a1T14 040000 81T15 100000 alT2 000004 !:31T3 000010 a1T4 000020 BITS 000040 BIT6 000100 8IT7 000200 81T8 000400 B1T9 001000 BKDEF 000002 BKMOD 000020 JKPI":OCE= OLlOOOO BKSLSH= 000134 CAPRES= 00000"; CASTAT= OOOOO~ CDERCT= 000146 CDv!DCT = 000144 CKTIM = 100000 CLKPRE= 000001 COl\iF1G= 000056 CQOVF 000001 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 00002S CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 000006RG DPEOP OOOOOOR DP.RO 000002R DP.R1 000C04R DP.R2 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= OQC'l034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.Kt3E= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 OT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 D1.ST1= 000012 DT . S~"R= 000056 DT.SYP= 000C72 DT.WBU= 000050 DT.WHL= 0000S4 D1.WLL= 0000S2 DVID1 = 000014 DX.DEQ= ****** G 17:48 PAGE 20 DX.INI= ****** G DX.RS = ****** G DX.SP = ****** G ECCMEM= 000100 ECCSTA= 00.0010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPt,R= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 100000 IOMOD IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 K1PAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDRI= 172302 KIPDR2= 1723C4 KIPDR3= 172306 KIPDR4= 172310 KIPDRS= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 SEQ 0407 KTXTND= LF LPSTAT= MAPSTA= MD.COD= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDEQ= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSr,13= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= N5KMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= 040000 000012 000001 000200 **"'*** G 076600 040000 004000 002000 001000 000010 000011 ****** G 000005 000017 177777 000013 000004 000022 000007 000021 17777S 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 OOJOOO 024020 000010 002000 000100 PASC~H= 000034 PDPLSI= 020000 004000 PDP60 010000 PDP70 000000 PRI0 000040 PRI1 000200 PRI4 000240 PRIS 000300 PRI6 000340 PRI7 000000 PRO 000200 PR4 PRS PR6 PR7 PS PSW RANNUM= RBUFEA= R3UFPA= RBUFSZ= RBI.JFVA= ROSERV= ROv-HMI= RELERR= REU.,18D= REL TIM= R:::S1 RES2 RICHAR= RPTDAT= RSTRCY= RSTRT = RUBOUT= 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 0000S3 000060 031060 002000 ****** G 000112 000177 RU~;rJlOD= 100000 R5VALU= 001740 075464 SAM SBADR = 000102 SBKrv10D= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SF-ACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATB!= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 DPEOP - XXDP/ACT-11 END-OF-PASS MACY11 30A(1052) 20-SEP-78 DPEOP.MAC 28-JUL-78 09:14 SYMBOL TABLE SVR3 000070 S V R ·1 0 0 0 0 72 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 ~>JOFR 000114 WOTO WTINRE= 000352 WTWHl\lI = 000222 000005 XFLAG 000023 XOFF 000021 XON $BGNLE= 177777 $ENDAD 000142RG $ERFLG= 000400 $F$AND= 000310 UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= SVR5 000074 SVRS 000076 SYSCNT= 00('052 SYSERR= 000100 TABL OOCOOO TMPIO = 000002 lQO\lF = 000002 UIPARO= 177640 LJIPAR1= 177642 UIPAR2= 177644 UIPAR3= 1T/646 UIPAR4= 177650 lJIPAR5= 177652 UIPt..R6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPOR3= 177606 ABS. oooooe 000316 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GE~ERATED: 0 DSKZ:DPEOP.DS~Z:DPEOP=SPMAC/ML,EQUATE,DPEOP RUN-TIME: 16 5 .4 SECONDS RUN-TIME RATIO: 45/22=2.0 CORE USED: 14K (27 PAGES) 17:48 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 00022Cl $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 PAGE 20-1 SEQ 0408 $IFLEV= $ISKO = $LOCTA= $LSTIN= $LSTTA= $NESTL= $NSKO = $NSKI = $NSK2 = $SAVLE= $SSKO = $TAGLE= $TAGNU= $TEMP $TSKO $TSK1 = $TSK2 = $TSK3 = $$ARGC= $$BYTE= $$CASE= 177777 00J001 177777 000001 000001 177777 000300 000120 00012:) 177777 050012 177777 050015 000300 050011 050012 050013 050014 000002 000403 000000 $$OST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000340 $$F~OiVI= 000000 $$LOC = 000250R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $SStiC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 000316R .MAIN. MACYll 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 552 555 578 17:49 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT DPSTRT ROUTINE ;SPMAC: VERSION 1.1 SEQ 0409 DPSTRT - XXDP/ACT-11 START-UP DPSTRT.MAC 28-J~L-78 09:14 508 509 510 511 512 5"13 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 535 539 540 541 542 543 544 545 MACY11 30A(105~) 20-SEP-78 SEQ 0410 ;++ MODULE NAME: DPSTRT FUNCTIONAL DESCRIPTION: MOV ES XXDP MON I TO~ AND FAKES A II RUN II COMf,lAND INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: DT.ESIZ,DT.SSIZ,DT.REL OUTPUTS: NONE IMPLICIT OUTPUTS: DT.ESIZ,DT.REL PATHOLOGICAL CONNECTIO~S: NONE SUBORDINATE MODULES CALLED: SAVREG .RESREG KRUN SAVE REGISTERS RESTORE REGISTERS PROCESS RUN Cm;iMAND II I, FUNCTIONAL SIDE EFFECTS: STARTS THE EXERCISING OF THE SYSTE~ CALLING SEQUENCE: CALL DPSTRT IN <A> A=DATA TABLE ADDRESS \/!:RSION: 0.0 547 EDIT 549 550 PAGE 19 .TITLE OPSTRT - XXDP/ACT-l1 START-UP .IDF-NT /VO.O/ 54(; 548 17:49 COMMON EQUATE MODULE BY DATE REASOi-J DPSTRT - XXDP/ACT-11 START-UP 28-JUL-78 09:14 DPSTRT.MAC 552 553 554 555 (1) 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 MACY11 SOA(1052) 20-SEP-78 17:49 PAGE 19-1 COMMON DEFINITIONS AND RE~ERENCES SEQ 0411 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 ;**************** , ; REFERENCED BY OTHER MODULES .GLOBL DPSTRT ;MODULE ENTRY POINT ;**************** , ; GLOBAL REFERENCES .GLOBL .GLOBL .Gl.OBL SAVREG RESREG KRUN ;*************** SAVE REGISTERS RESTORE REGISTERS PROCESS "RUNII COMMAND DPSTRT - XXDPjACT-11 START-UP DPSTRT.MAC 28-JUL-78 09:14 578 579 580 (2) 581 582 583 584 585 586 587 (3) 588 589 590 591 592 593 594 (4) 595 596 597 598 599 600 601 602 603 MACY11 30A(1052) 20-SEP-78 DPSTRT ROUTINE 17:49 PAGE 19-2 SEQ 0412 .SBTTL DPSTRT ROUTINE ROUTINE DPSTRT <TABL> 000000' 000000' DPSTRT: ;+ ; SAVE REGISTERS 000000' 000000' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV TABL(R5),RO :+ ; SET RO TO THE START OF THE DATA TABLE. 000004' 000004' 016500 LET RO := TABL(R5) 000000 ;+ ; ; ; ; MOVE THE XXDP MONITOR (EVEN IF IT DOESN'T EXIST, SINCE WE DON'T KNOW IF WE'RE UNDER XXDP OR ACT-1l) FROM ITS LOAD AREA (HIGHEST NON-KT ADDRESSABLE MEMORY IN THE SYSTEM) TO JUST ABOV~ THE EXERCISER. (R1 IS INITIALIZED TO THE 1ST FREE ADDRESS ABOVE THE EXERCISER, AND R2 IS INITIALIZED TO THE lOWEST ADDRESS OF XXDP.) 60L; IF DT.SSIZ(RO) HIS #1600 THEN 60S (6) (9) 606 (4) 607 (4) (3) 608 (4) (7) (7) (7) (7) (7) (7) 609 000010' 000010' 000016' 000020 ' 000020' 000024 ' 000024' 000026' 000026' 000026' 000032' 000034' 000036' 000040' 000042' 000044' 000046' (4) 0000,~6' 610 (4) 000046' 000046' 010302 000J50' 162702 (6) 61 i 612 (4) (6) 613 026027 103403 000046 012703 160000 001600 CMP BlO DT.SSIZ(RO),#160 50002$ MOV #160000,R3 B.~ 50003$ rllov ASL ASL ASL ASL ASL ASL DT.SSIZ(RO),R3 R3 R3 R3 R3 R3 R3 MOV SUS R3,R2 #-D3074,R2 MOV DT.ESIZ(RO),R1 #2,R1 LET R3 := #160000 ELSE 000410 50002$: LET R3 .- OT.SSIZ(RO) SHIFT #+6 016003 006303 006303 006303 006303 006303 006303 000054' 000054' 016001 000060' 062701 000064' 000046 ENDIF 50003$: lET R2 "- R3 - #-03074 006002 LET R1 := DT.ESIZ(RO) + #2 000044 000002 ~.DD WHILE R2 LO R3 DO - DPSTRT XXDP/ACT-11 START-UP 2B-JUL-78 09:14 DPSTRT.MAC (4 ) (6) (9 ) 614 (4) 015 (4) (3 ) 616 617 618 20-SEP-7s MACY11 30A(1052) DPSTRT ROUTINE 000064 1 0000641 020203 00006G 1 103002 000070 1 000070 1 012221 0000721 0000721 000774 000074 1 LET (R1 ) + (5 ) (4 ) (3 ) (3 ) 637 638 63S 640 641 642 643 (3 ) 644 645 (3 ) (3 ) (2 ) 646 647 SEQ 0413 .- (R2)+ ENDDO CM? BHIS R2,R3 50005$ MOV (R2)+, (R1)+ BR 50004$ M'JV SUB R1,DT.ESIZ(RO) #2,DT.ESIZ(RO) MQV #1600,DT.REL(RO) M8'.J MOV R5,-(SP) #O,-(R5) RO,-(R5) PC,KRUN (SP)+,R5 JSR PC,RESREG RTS PC 50005$: ;+ ; ADJUST THE EXERCISER SIZE TO INCLUDE THE XXDP MONITOR. ', - 0000741 0000741 010160 000100 1 162760 LET DT.ESIZ(RO) 000044 000002 . - R1 - #2 000044 ;+ ; , 000106 1 000106 1 012760 INCREASE THE RELOCATION CONSTANT TO 28K. LET DT.REL(RO) 001600 , 000114 1 000114 1 010546 000116 1 012745 000122 1 010045 000124 1 004767 000130 1 012605 . - #1600 000040 ;+ ; NOW PRETEND A 63Li 635 636 (3 ) PAGE 19-3 50004$: 619 620 621 622 (4) ( 6) 623 624 625 626 627 628 629 (4 ) 630 631 632 633 17:49 II RUNII COMMAND HAS BEEN TYPED. CALL KRUN IN <RO,#O> MJV 000000 MOV JSR OOOOOOG ;+ ; RESTORE REGISTERS AND RETURN. , 000132 1 000132 1 004767 000136 1 000136 1 000136' 000136 1 000207 000001 CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: .END DPSTRT - XXDP/ACT-~1 START-UP 2B-JUL-78 09: 14 DPSTRT.MAC hCSR C00102 ACT8IT= 004000 ADDR22= 001000 ADR 000006 t-f)TFER= 000004 APTPRE= 000200 000106 ASB ASSEMB= 000010 ASTAT = 000104 AUTO COO010 i",UTOST = C20000 t\WAS 000 i 10 000001 E3 ITO 000001 BITOO 8IT01 000002 B1T02 000004 BIT03 000010 81T04 000020 000040 BIT05 000100 8IT06 BIT07 000200 :31 T 08 000400 31T09 001000 000002 GIT1 BIT10 002000 BIT11 004000 010000 ~3 IT' 2 ~3IT13 020000 040000 ~3IT'4 3 IT 1 5 100000 000004 3IT2 000010 !3IT3 000020 BIT4 000040 BIT5 BIT6 000100 ,3 IT 7 000200 f3I T8 000400 001000 31T9 BKDEF 000002 000020 3KMOD 3Krl.ODE = 040000 3KSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDC1= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= OC0056 CQOVF 000001 000015 CR 000100 CSRA 000102 CSRC 20-SEP-78 MACY11 20A( 1 0~,2) SYMBOL. TABLE 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DPSTRT OOOCOORG DROPM:l= 100000 DSEVNT= 000014 DT.ADD= OGOO42 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.Ev'!,\...: OCC800 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT. PS'N= 0(;0004 DT.PTA= 000064 DT.RCS::: 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 OT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 080010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 17:49 EOPB:T= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 HJHREL= 001000 INHRRE= 000400 000030 INIT 000120 lNTR lOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 1 10000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KRUN ****** G KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 MED = 076600 MEMPAS= 040000 MODEXH= 004000 PAGE 20 SEQ 0414 MODHOL= 002000 MODS!:L= 001000 MSGCKD= 00J010 MSGC~<S= 000011 MSGDER= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 800013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= OCOO07 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRfv1= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGsr.1H= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 OOCJOOO NULL 024020 OWEN 000010 Pt..ERR PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 010000 PDP70 000000 PRIO 000)40 PRI1 000200 PRI4 000240 PRI5 000300 PRI6 000340 PRI7 000000 PRO 008200 PR4 000240 PR5 000300 PR6 000340 PR7 177776 PS 177776 PSI'" RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 R6UFVA= RDSERV= RDAiHM I = RELERR= Rt:U,10D= RcL TIM= R::::SREG= RES1 R€S2 RICHAR= ROTCAT= RSTRT = R'J5JUT= RUNl'vl0D= R5VALU= SAM SAVREG= SBA:::;R = SBK:V:OD= SBKSEL= SC.ADR= SC.ALC= SC.t-PC= SC.CKL= SC.CKP= SC.CLO= SC.HLD= SC.SCA= SE~~JLS= SOFCNT= SGFPAS= SPACE = SPOINT= SPVALU= SRC SRl SR2 SR3 STAT STATBI= STAT1 = SUSPND= SVRO SVR1 SVR2 SVR3 SVR4 SVRS SVR6 SYSCNT= SYSERR= TABL TMPIO = 000124 000101 000022 000020 020000 010000 ****** G 00005S 000060 031060 002000 000112 00.)177 100000 001740 075464 ****** G 000102 000000 010000 COOO06 000014 000016 000002 00C004 000000 000010 000012 177777 000042 000046 000040 000032 002200 177572 177574 177576 '72516 000026 064757 000027 000001 000062 000064 000066 000070 000072 000074 000076 000052 000100 000000 000002 DPSTRT - XXDP/ACT-ll START-UP DPSTRT.MAC 28-JUL-78 09: 14 TQO'JF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPl.R7= 177656 UIPORO= 177600 UIP)Rl= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIP::>R5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 ASS. 000000 000140 20-SE?-76 MACYll 30A(1052) SYMBOL TABLE WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 WDFR 000116 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 XOFF 000023 XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 OCO 001 ERRORS DETECTED: 0 DEFACLT GLOBALS GENERATED: 0 DSKZ:DPSTRT,DSKZ:DPSTRT=SPMAC/ML,EQUATE,DPSTRT RUN-TIME: 13 2 .3 SECONDS RUN-TIME RATIO~ 34/16=2.1 CORE USED: 14K (27 PAGES) .7:49 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 0003CO $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 PACE 20-1 SEQ 0415 $IFLEV:: 177777 $ISKO = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $t~ESTL= 177777 $NSKO = 000300 $NSK1 = 000120 $SAVLE= 177777 $SSKO = 050005 $TAGLE= 177777 $TAGr"U= 050006 $TEMP = ;)00300 $TSKO = 050004 $TSK1 = 050005 $$ARGC:: 000002 $SBYTE= 000403 $$CASE= 000000 $$05T = 000000 $$E LOC= 000401 $:iERFL= 000000 $$ F LAG= 000340 $$FROfv1= 000000 $:!;LOC = 000066R $SLOCN= 000000 $$REG :: 177777 $$RETU= 000000 $:5RTN1= 050000 $$RTN2= 050001 $$SQC :: 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000140R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 572 575 599 17:50 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR DRPMOD 000000' .PRINT iSPMAC: VERSION 1.1 DRPMOD ROUTINE SEQ 0416 ORPMOD DROP A MODULE FROM AN EXERCISER DRPMOD.MAC 28-JUL-78 09:14 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 MACY11 30A(1052) 20-SEP-7b COMMON EQUATE MODULE 17:50 PAGE 19 .TITLE DRPMOD DROP A MODULE FROM AN EXERCISER .IDENT IVO.Oj ;++ MODULE NAME: DRPMOD FUNCTIONAL DESCRIPTION: THIS ROUTINE WILL DROP A MODULE FROM AN EXERCISER. IT WILL FIRST INSURE THAT THE MODULE BEING DROPP~D HAS NOT ALREADY BEEN DROPPED. IF THE MODULE IS AN S8K OR NBK, IT WILL CLEAR THE MODHOLD BIT IN THE STATUS INDICATOR. THEN CLEAR THE MODULES ACTIVE BIT IN THE STA1US WORD ANJ SET THE DROPPED BIT IN THE MODULE'S STATUS WORD. THEN, SET THE CKTiM BIT. IF THE MODULE BEING DROPPED IS THE SYSTEM CLOCK MODULE, THE CLOCK PRESENT BIT IN THE CONFIGURATION WJRD WILL BE CLEARED AND THE LOCATION SC.CLO WILL BE CLEARED. INPUTS: 1. DATA TABLE ADDRESS 2. MODULE HEADER ADDRESS IMPLICIT INPUTS: DT.STO DT.ST1 DT.PC DT.ADDR DT.SCT DT.CFO DT.MLST OUTPUTS: NONE IMPLICIT OUTPUTS: 1. DT.MACT - NUMBER OF MODULES ACTIVE 2. DT.STO - STATUS INDICATOR 3. DT.MEOP - MODULES END OF PASS COUNT 4. DT.CFO - CONFIGURATION WORD 0 5. DT.ST1 - STATUS INDICATOR 1 PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: 1. SAVREG 2. RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL DRPMOD IN <DTADR,MODHDR> WHERE 1. OTADR = ADDRESS OF DATA TABLE 2. MODHDR - MODULE BEING DROPPED HEADER ADDRESS SEQ 0417 DRPMOO DROP A MODULE F~OM AN EXERCISER DRPMOD.MAC 28-JUL-78 09:14 564 565 566 567 568 569 570 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE 17:50 PAGE 19-1 SEQ 0418 VERSION: 0.0 EDIT DATE BY REASON DRPMOD DROP A MODULE FROM AN EXERCISER DRPMOD.MAC 28-JUL-78 09:14 572 573 574 575 ( 1) MACY11 30A(1052) 20-SEP-78 17:50 PAGE~19-2 COMMON DEFINITIONS AND REFERENCES FOR DRPMOD .S8TTL COMMON DEFINITIONS AND REFERENCES FOR DRPMOD .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 000000 1 000000 I 576 577 578 579 580 581 000001 000001 $LSTTAG=1 $LST IN= 1 ;**************** , 582 583 ; REFERENCED BY OTHER MODULES: 584 .GLOBL DRPMOD ;MODULE ENTRY POINT 585 586 ;**************** 587 , 588 ; GLOBAL REFERENCES: 589 590 591 592 593 594 t .GLOBL .GLOBL .GLOBL .GLOBl ENQTQ DUNCHK SAVREG RESREG 595 ;***~************ 596 597 ;**************** ;ENQUEUE A MESSAGE ;SEE IF ANY OTHER MODULES CAN RUN ;SAVE THE RECISTERS ;RESTORE THE REGISTERS SEQ 0419 DRPMOD DROP A MODULE FROM AN EXERCISER DRPMOD.MAC 28-JUL-78 09:14 599 600 601 (2) 602 603 604 605 506 607 (3) 608 (4) 609 (4) 610 611 612 613 614 615 616 617 618 (6) MACY11 30A(1052) DRPMOD ROUTINE .SBTTL 20-SEP-78 17:50 PAGE 19-3 SEQ 0420 DRPMOD ROUTINE ROUTINE DRPMOD <DTADR,MODHDR> 000000 I 000000 1 DRPMOD: ;+ ; INIT AND SAVE DATA TABLE ADDRESS AND MODULE HEADER ADDRESS ;- 000000 1 OOOOOOJ 004767 0000041 000004 1 016500 000010 1 000010 1 016501 CALL SAVREG JSR PC,SAVREG MOV DTADR(R5),RO MOV MODHDR(R5),R1 SIS #CKTJM,DT .S11 (RO SIC #ACTSIT,STAT{R1) SIS #SIT13,STAT(R1} MOV STAT(R1),R2 SIC #STATSITS,R2 000000 CiVlP 001000 CMP BNE R2,#SSKMOD 50002$ R2,#NBKMOD 50003$ SIC #MODHOLD,DT.STO( OOOOOOG LET RO .- DTADR(R5) 000000 LET R1 • - MODHDR ( R5) 000002 ;+ ; SET CKTIM BIT TO INDICATE THAT MODULE HAS BEEN ; DROPPED. SET DROPPED BIT IN MODULE STAT WORD ;- 000014 1 000014 1 052760 LET DT.ST1(RO) := DT.ST1~RO) SET.BY #CKTIM 100000 000012 004000 000026 619 620 621 (6) 622 (6) 623 624 625 626 627 628 (4) 629 (6) 630 631 632 (6) (8) (6) (9) (6) 633 634 635 636 637 638 639 (6) 000022 1 000022 1 042761 000030' 000030 1 052761 LET STAT(R1) .- STAT(R1) CLR.SY #ACTBIT LET STAT(R1) .- STAT(R1) SET.BY #BIT13 020000 000026 ;+ ; GET A COpy OF THE STATUS WORD AND SEE IF NBK OR SBK MOD 'f - 000036 1 000036 1 016102 000042 1 000042 1 042702 000046 1 000046 1 020227 000052 1 001403 0000541 020227 000060 1 001003 000062 1 LET R2 "- STAT(R1) 000026 LET R2 .- R2 CLR.BY #STATBITS 064757 IF R2 EQ #SBKMOD OR R2 EO #NBKMOD THEN SEQ 50002$: ;+ ; IT I 5 AN SBK OR NBK SO CLEAR THE MODHOLD BIT IN DT.STO ;- 000062 1 000062 1 042760 LET DT.STO(RO} := DT.STO(RO) CLR.BY #MODHOLD 002000 000010 DRPMOD DRO? A MODULE FROM AN EXERCISER DRPMOD.MAC 28-JUL-78 09:14 640 641 (4) 642 643 644 64S 646 647 648 (4) 649 650 651 652 653 654 6SS 6S6 {6} (9) 000070 1 000070' 20-SEP-78 17:50 PAGE 19-4 ENDIF SEQ 0421 50003$: ;+ ; GET ADDRESS OF SYS CLOCK TABLE ;- 000070' 000070' 016002 LET R2 := DT.SCT(RO) 000066 MOV DT.SCT(RO),R2 CMP BNE R1,SC.SCA(R2) 50004$ ;+ ; IF SYS CLOCK IS THE ONE BEING DROPPED - CLEAR OUT SC.CLO ; AND CLOCK PRESENT BIT IN DT.CFO ;- 000074' 0000741 020162 000100' 001005 IF R1 EO SC.SCA(R2) THEN 000012 657 658 659 660 661 MACY11 30A(10S2) DRPMOD ROUTINE ;+ ; YUP - ITIS THE SYS CLOCK ;LET SC.CLO(R2) '- #0 000102 1 (4) 000102' 662 000106' (6) 000106' 663 664 000114' (4) 000114' 665 666 667 668 669 670 671000114' (3) 000114' (5) 000116' (4) 000120' (3) 000122' (3) 000126' 672 673 674 675 676 677 000130' (4) 000130' (6) 000134' 678 000140' (3) 000140' (8) 000142' (7) 000146' 005062 000000 042760 000001 CLR LET DT.CFO(RO} .- DT.CFO(RO) CLR.BY #CLKPRES BIC 000014 #CLKPRES,DT.CFO( ENDIF 50004$: ;+ ; SEE IF ANY MORE MODULES CAN RUN CALL DUNCHK IN <RO,R1> 010546 010145 010045 004767 012605 OOOOOOG MOV MOV MOV JSR MOV R5,-(SP) R 1 ,- (R5) RO,-(R5) PC,DUNCHK (SP)+,R5 ;+ ; ENQUE THE MESSAGE ;- LET R3 := DT.PC(RO) - #2 016003 162703 000002 000002 CALL ENQTO IN <RO,#MSGDRP,R3,R1 ,#0> 010546 012745 010145 000000 MOV SUB DT.PC(RO),R3 #2,R3 MOV MOV MOV R5,-(SP) #O,-(R5) R1,-(R5) DRPMOD DROP A MODULE FROM AN EXErtCISER DRP:\o10D.MAC 28-JUL-78 09:14 (6) (5) (4) (3) (3) 679 680 681 682 683 684 685 (3) 086 687 (3) (3) (2) 688 689 690 000150' 000152 1 000156 1 000160' 000164 1 010345 012745 010045 004767 012605 ""'\1 ... I 1 30A(1C52) DRPMOD ROUTINE II f' • ,.1,,",,1.., ~ 20-S~P-78 17:50 PAGE 19-5 SEQ 0422 000017 OOOOOOG MOV MOV MOV JSR MOV R3,-(R5) #MSGDRP,-(R5) RO,-(R5) PC,ENQTQ (SP)+,R5 J:5R PC,RESREG RTS PC ~+ ; CLEAN UP ;- 000166' 000166 1 004767 000172 1 000172' 000172 1 000172' 000207 000001 CALL RESREG OOOOOOG ENDRTN 50000S: 50001$: .END DRPMOD DROP A MODULE FROM AN EXERCISER 28-JUL-78 09:14 DRPMOD.MAC ACSR 000102 ACTSIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 000106 ASB ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS 000001 BITO 000001 BITOO BIT01 000002 000004 BIT02 000010 BIT03 000020 BIT04 000040 BIT05 000100 BIT06 BIT07 000200 000400 BIT08 BIT09 001000 000002 BIT1 002000 BIT10 004000 8IT11 010000 BI112 020000 81T13 040000 BIT14 100000 8IT15 000004 BIT2 000010 BIT3 000020 BIT4 000040 BITS 000100 SIT6 000200 BIT7 000400 BIT8 001000 BIT9 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR 000100 CSRA 000102 CSRC MACY11 30A(1052) SYMBOL TABLE CTRlC = 000003 CTRlO = 000017 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGrv1C= caoooo DROPMO= 100000 DRPMOD OOOOOORG DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 000100 DT.AP DT.APK= 000076 D1. BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 D1.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 D1. KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 D1. WBU= 000050 DT.WHL= 000054 D1.WLL= 000052 DUNCHK= ****** G DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 20-SEP-78 ENBNUl= 000001 ENDlST= 000000 ENQTQ = ****** G EOPSlT= 000001 ERRTYP= 000106 EVNTBE= .000200 EVNTHD= 000200 EVNTKT= 000403 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT 000120 INTR 100000 IOMOD IOl\10DP~ 102000· 10MODR= 112000 lOMODX= 110000 035060 JACK KIPARO= 17234.0 KIPAR1= 172342 KIPAR2= 172344 KlPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KlPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KlPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 MED = 076600 17:50 PAGE 20 MEMPAS= MODEXH= MODHDR= MODHOL= MODSEl= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSr.JrB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= iviSGiiEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PR 11 PRl4 PRl5 PR16 PRI7 PRO PR4 PR5 PR5 PR7 PS PSW RANNUM= SEQ 0423 040000 004000 000002 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001' 000006 000003 00001:5 000014 000016 000000 000012 00002.0 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 OC0054 RSUFEA= 000130 RBUFPA= 000126 R3UFSZ= 000132 R3UFVA= OG0124 RDSERV= 000101 RDWHMI= 000022 RElERR= 000020 RELMOD= 020000 REL TIM= 010000 RESREG= ****** G 000056 RES1 000060 RES2 RlCHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SAVREG= ****** G SBADR = 000102 SSKry10D= 000000 SBKSEl= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HlD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SOVALU= 002200 177572 SRO 177574 SRi 177576 SR2 172516 SR3 000026 STAT STATBl= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO SVR1 = 000064 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 DRPMOD DROP A MODULE FROM AN EXERCISER DRPMOD.MAC 28-JUL-78 09:14 SYS~RR= 000100 TMPIO = 000002 TQO'JF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= I/IO'-t'-t UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIP::>R1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 ... ..,.., C" .... J'I ASS. 000000 000174 UIPDR7= WASADR= WBSTAT= WBUFEA= WBUFPA= 177616 000104 000040 000136 000134 ~'J8UFRQ= 000140 MACY11 30A(1052) SYMBOL TABLE 000142 000116 000114 000352 Wn~HMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 WBUFSZ= WDFR WDTO WTINRE= 000 001 ERRORS DETECTED: 0 DEFAULT GLOSALS GENERATED: 0 DSKZ:DRPMOD,DSKZ:DRPMOD=SPMAC/ML,EQUATE,DRPMOD RUN-TIME: 13 3 .4 SECONDS RUN-TIME RATIO: 38/17=2.1 CORE USED: 14K (27 PAGES) 20-SEP-78 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $FSGOO= 000400 $FSIF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 SF$RTI= 000350 $F$RTN= 000300 $F$SEl= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 17:50 PAGE 20-1 SEQ 0424 $F$I.NHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $LOCTA= 177777 SLSTIN= 000001 SLSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSKl = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050005 $TEMP = 000300 $TSKO = 050004 $$ARGC= 000004 $$BYTE= 000403 $$CASE= 000000 = 000000 1$DST $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $SFROM= 000000 $$LOC = 000100R $$LCCN= 000000 S$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000174R .MAIN. MACY11 30A(1052) 20-S~P-78 EQUATE.MAC 13-SEP-78 16:13 3 563 566 17:51 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR DUNCHK 000000 1 .PRINT ;SPMAC: VERSION 1.1 SEQ 0425 DUNCHK - SEE IF ANY MORE MODULES CAN RUN MACY11 30A(1052) DUNCHK.MAC 28-JUL-78 09:14 COMMON EQUATE MODULE .20-SEP-78 17:51 PAGE 19 509 .TITLE DUNCHK - SEE IF ANY MORE MODULES CAN RUN .IDENT JVO.Oj 510 511 ;++ 508 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 MODULE NAME: DUNCHK FUNCTIONAL DESCRIPTION: THIS ROUTINE CHECKS ALL OPTION MODULES TO SEE IF ANY OPTION MODULE CAN POSSIBLY RUN. IF NOT, AND THE EXERCISER IS RELOCATED, A RELOCATION BACK TO LOWEST MEMORY OCCURS AND A RETURN TO CMD MODE TAKES PLACE. A MESSAGE INDICATING THAT THE RUN IS OVER AND THE LAST MODULE IS DROPPED IS OUTPUTTED. IF MORE MODULES CAN RUN, A RETURN SIMPLY OCCURS. INPUTS: 1. DTABLE 2. MODULE HEADER ADDRESS (OF MODULE BEING DROPPED) IMPLICIT INPUTS: 1.0T.MLST 2. DT.ADDR 532 OUTPUTS: NONE 533 534 535 IMPLICIT OUTPUTS: 1. DT.STO 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: 1. PRRLOC 2. SAVREG 3. RESREG 4. MSGDHOOK 5. APTKIL 6. APTDED FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL DUNCHK IN <DT,AD> WHERE DT AND AD = MODULE HEADER ADDRESS. 0.0 EDIT 558 560 561 DATA TABLE ADDRESS VERSION: 556 557 559 SEQ 0426 ;- DATE BY REASON DUNCHK - SEE IF ANY MORE ~ODULES CAN RUN MACY11 30A(1052) 2C-SEP-78 17:51 PAGE 19-1 DUNCHK.MAC 28-JUL-78 09:14 COMMON DEFINITIONS AND REFERENCES FOR DUNCHK 563 564 565 566 (1) .SBTTL .MCALL STRUCT STRUCT' .PRINT ;SPMAC: VERSION 1.1 $LSTTAG=1 $LSTIN=1 000000' 000000 1 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 COMMON DEFINITIONS AND REFERENCES FOR DUNCHK 000001 000001 ;**************** , ; REFERENCED BY OTHER MODULES: .GLOBL DUNCHK , ;**************** , ; GLOBAL REFERENCES: .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL SAVREG RESREG PRRLOC MSGDHOOK DX.RSTRT APTDED APTKIL ;RELOCATE CODE ;O/P A MES$AGE ;RESTART ADDRESS ;PUT APT IN THE COFFIN ;KILL APT FATALLY :'88 589 ;**************** 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 60S ;***"'*********** ; LOCAL STORAGE: 000000 1 000001 I 000006 1 000014 1 000016 1 000024 1 000032 1 000040 1 000046 1 000054 1 000062 1 045 000005 042040 042105 020445 020116 026440 046440 051505 050120 022441 000066 1 047522 050120 020041 053117 040440 042117 042040 042105 000 052522 051105 046114 046125 047522 020440 DR. WOW: .ASCII DR.NAM: .BlKB .ASCII .ASCIZ .EVEN /%/ 5 / DROPPED/ /%1 ! RUN OVER - All MODULES DROPPED ! !%/ SEQ C4~7 DUNCHK - SEE IF ANY MORE MODULES CAN RUN MACY11 30A(1052) 20-SEP-78 17:51 PAGE 19-2 DUNCHK.MAC 28-JUL-78 09:14 COMMON DEFINITIONS AND REFERENCES FOR DUNCHK 607 (2) 608 (3) 609 (4) 610 (4) 611 612 613 614 615 616 617 000066 1 000066' 000066 1 000066 1 004767 000072' 000072' 016500 000076' 000076' 016501 SEQ 0428 ROUTINE DUNCHK <DTB,MOD> DUNCHK: CALL SAVREG OOOOOOG JSR PC,SAVREG MOV DTB(R5) ,RO LET RO '- DTB(R5) 000000 LET R1 .- MOD(R5) MOV ;+ ; IF UNDER APT AND WE GOT HERE (TO DUNCHK) IT WAS PROBABLY THE CLOCK ; THAT DID IT - SO CALL THE APTDED ROUTINE WHICH WILL PUT THE ; DROPPED MODULE NAME INTO APT MAILBOX ..•. THEN CALL APTKIL, ; WHICH WILL HALT THE EXERCISER FATALLy •.•... ;- 000002 MOD (R5) ,R 1 618 619 (6) (9) 620 (3) (5) (4) {3} (3) 621 (3) (4) (3) (3) 000102 1 000102' 000110 1 000112 1 000112' 000114' 000116 1 000120' 000124 1 000126 1 OOOi26' 000130' 000132 1 000136' 000140' 000140' 622 (4) 623 624 . 625 626 627 628 000140' (4) 000140' 629 000144' (4) 000144 1 630 000146' (4) 000146 1 (6) 000146' (9) 000150' 000152' 631 (4) 000152 1 632 000154' (6 ) 000154' (9) 000162 1 (6) 000164 1 (9) 000172 1 633 000174 1 (6) 000174 1 634 000176 1 (4) 000176' IF #APTPRES SETIN DT.CFO(RO) THEN 032760 001413 000200 000014 CALL APTDED IN <RO,R1> 010546 010145 010045 004767 012605 BIT SEQ #APTPRES,DT.CFO{ 50002$ MJV R5,-(SP) R 1 ,- (R5) RO,-(R5) PC,APTDEO (SP)+,R5 M~V MOV JSR OOOOOOG MOV CALL APTKIL IN <RO> 010546 010045 004767 012605 MOV JSR MGV R5 -{SP) RO,-(R5) PC,APTKIL (SP)+,R5 Mav DT.MLST(RO),R2 CLR R4 TST SEQ (R2) 50004$ M'JV OOOOOOG i ENDIF 500025: ;+ ; SEE IF THERE ARE ANY POSSIBLE MODULES LEFT TO RUN .•• 'r - LET R2 .- DT.MLST(RO) 016002 000032 LET R4 .- #0 005004 WHILE (R2) NE #0 DO 50003$: 005712 001413 LET R3 . - (R2) + 012203 032763 001405 032763 001001 005204 040000 000026 020000 000026 WoOV IF #BIT14 SETIN STAT(R3) AND #B!T13 NOTSETIN STAT(R3) THEN BIT SEQ BIT 8NE LET R4 .- R4 + #1 INC ENDIF 50005$: (R2)+,R3 #BIT14,STAT(R3) 50005$ #BIT13,STAT(R3) 50005$ R4 DUNCHK - SEE IF ANY MORE MODULES CAN RUN MACY11 30A(1052) ~0-SEP-78 17:51 PAGE 19-3 DUNCHK.MAC 28-JUL-78 09:14 COMMON DEFINITIONS AND REFERENCES FOR DUNCHK 635 (4) (3) 636 637 638 639 640 641 542 643 644 (6) (9) 645 (4) 646 (4) 647 (4) (6) (9) 648 (4) 649 (6) 000176' 000176' 000763 000200' 650 000224: (4) 000224' 000226' 000226' 000226' 000230' 000234' 000240' 000244' 000246' 000252' 000254' 000254' 000256' 000256' 000260' 000260' (3) 651 (3) (7 ) (6) (5) (4) (3) (3) 652 (2 ) 653 (2 ) 654 (2 ) 655 656 657 658 659 660 661 (6) (9) 662 (3) (5) (4) SEQ 0429 ENDDO BR 50003$ T5T BNE R4 50006$ !\1OV #DR.NAM,R2 MOV #5,R3 TST BEQ R3 50010$ MOVS (R1 )+, (R2)+ DEC R3 BR 50007$ MOV JSR MOV R5,-(SP) #443$,-(R5) #DR.WOW,-(R5) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 1$: NOP BR 1$ 50004$: ;+ ; IF NO MORE CAN RUN, GET THE MODULE NAME INTO THE ; MESSAGE THAT SAYS !! RUN OVER !! ETC, AND THEN OIP MESSAGE. ;- 000200' 000200' 000202' 000204' 000204' 000210' 000210' 000214' 000214' 000214' 000216' 000220' 000220' 000222' 000222' IF R4 EO #0 THEN 005704 001046 LET R2 '- #DR.NAM 012702 000001' 012703 000005 LET R3 '- #5 WHILE R3 NE #0 DO 50007$! 005703 001403 LET (R2)+ :8= (R1)+ 112122 LET R3 '- R3 - #1 005303 000773 50010S: CALL MSGDHOOK IN <RO,#MSGPOP,#DR.WOW,#443$> 010546 012745 012745 012745 010045 004767 012605 Mav 000260' 00.0000' 000002 ~I.'JV MOV MOV OOOOOOG 000240 000776 INLINE <1$: Nap> INLINE <BR 1$> INLINE <443$: > 443$: ;+ ; IF RELOCATED, RELOCATE BACK DOWN TO ZERO ;- 000260' 000260' 000266' 000270' 000270' 000272' 000276' IF DT.ADDR(RO) NE #200 THEN 026027 001407 010546 012745 010045 000042 CALL PRRLOC IN <RO,#200> 000200 SEQ DT,ADDR(RO),h200 50011$ MOV MOV MOV RS,-(SP) #200,-(R5) RO,-(R5) CMP 000200 DUNCHK - SEE IF ANY MORE MODULES CAN RUN MACY11 3CA(1052) ~0-SEP-78 17:51 PAGE 19-4 DUNCHK.MAC 28-JUL-78 09:14 COMMON DEFINITIONS AND REFERENCES FOR DUNCHK (3 ) (3 ) 000300' 004767 000.3'04' 012605 000306' 000306' OOOOOOG 042760 100000 000167 OOOOOOG 663 (4) 664 665 . 000306' (6) 000306' 666 667 000314' (2) 000314' 668 669 000320' (4) 000320' 670 671 672 673 674 675 676 677 678 000320' (3) 000320' 679 000324' (3) 000324' (3) 000324' (2) 000324 l 680 SEQ 0430 . JSR MOV PC,PRRlOC (SP)+,R5 BIC #RUNMODE,DT.STO( JMP DX.RSTRT JSR PC,RESREG RTS PC ENDIF 50011$: LET DT.STO(RO) := DT.STO(RO) CLR.BY #RUNMODE 000010 INLINE < JMP OX.RSTRT> ENDIF 500065: ;+ ; RESTORE REGISTERS CALL RESREG 004767 OOOOOOG ENDRTN 50800$: 50001$: 000207 000001 .END MACY11 30A(1052) DUNCHK - SEE IF ANY MORE MODULES CAN RUN SYMBOL TABLE 28-uUL-78 09:14 DUNCHK.MAC 000102 ACSR ACTSIT= 004000 ADDR22= 001000 000006 ADR APTDED= ****** G APTFER= 000004 APTKIL= ****** G APTPRE= 000200 000106 ASB ASSEM8= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 AWAS = 000110 000001 BITO BITOO 000001 BIT01 000002 BIT02 000004 000010 8IT03 BIT04 000020 000040 BIT05 000100 BIT06 BIT07 000200 000400 BIT08 001000 BIT09 000002 BITl l::)ITiO 002000 004000 BIT11 010000 BIT12 020000 BIT13 BIT14 = 040'000 BIT15 100000 BIT2 000004 000010 BIT3 8IT4 = 000020 8IT5 = 000040 8IT6 ::: 000100 000200 BIT7 000400 BIT8 001000 BIT9 BKDEF 000002 000020 BKMOD BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTA1= 000004 CDERCT=- 000146 CDWDCT= 000144 CKTIM =- 100000 CLKPRE=- 000001 CONFIG= 000056 000001 CQOVF CR = 000015 000100 000102 000003 000017 000025 000011 000400000000 100000 000001R OR.N.~M OOOOOOR DR~WOW DSEVNT= 000014 000000 DTB DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT. BLS= 000034 DT.CFO=- 000014 DT.CF1= 000016 DT.ERR=- 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO=- 000010 DT.ST1= 000012 DT . S~>JR= 000056 DT.SYP= 00_0072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DUNCHK 000066RG OVID1 = 000014 CSRA CSRC CTRLC CTRLO CTRLU DCEVNT= DEF-RTN= DIAGMC= DROPMO= 20-SEP-78 DX.RST= ****** G ECCMEM= 000100 ECCSTA= 000010 ENGEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EGPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 00'0200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE=- 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS=- 000050 ICONT =- 000036 ICOUNT= 000040 IDNWJI = 000122 IE = 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 17:51 PAGE 20 SEQ 0431 LPSTAT= 000001 MAPSTA= 000200 076600MED MEMPAS= 040000 MOD 000002MODEXH= 004000 MODHOL= 002000 MODSEL= 001000 MSGCKO= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDHO= ****** G MSGDRP=- 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG=- 000022 MSGHRD= 000007 MSGM.A.P= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSrM3= 000015 000300 PR6 000340 PR7 PS = 177776 PSW 177776 RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 ROSERV= 000101 RDWHMI= 000022 RELERR=- 000020 RELMOD= 020000 RELTIM= 010000 RESREG= ****** G 000056 RESl RES2 000060 RICHAR=- 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SAVREG= ****** G SBADR = 000102 oooeoo UUUI"U nnC""....,Cf-.l'll_ Ifl...JU....}.toil- ('\('\"11"1< ,., ';'),IIn: v u.."-' v , .....,. s2!-'~r,.~OD= IOMOD IOMODP= IOMODR= IOMOOX= JACK KIPARO= KIPAR1= 100000 102000 112000 110000 035060 172340 172342 172344 172346 172350 172352 172354 172356 172300 172302 172304 172306 172310 172312 172314 172316 000040 000400 000020 040000 000012 MSGSMS::: MSGSTD= MSGSYS= MSGVEC= NSKMOD= ,NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 =PDP70 PRIO PRll PRI4 PRI5 PRI6 PRI7 PRRLOC= PRO PR4 PR5 000016 dODOOO 000012 000020 .001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 sc. CKP= 000004 SC.CLO= 000000 SC.HLD=- 000010 SC.SCA= 000012 SENOLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBI= 064757 STAT1 =- 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 'T''-ITn KIPAR2~ KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPDR1= KIPDR2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KTERRO= KTPRES= KTSTAT= KTXTND= LF 1"\.t"'\1"\,,1"\1"'\ ****** G 000000 000200 000240 DUNCHK - SEE IF ANY MORE MODULES CAN RUN MACY11 30A(1052) DUNCHK.MAC 28-JUL-78 09:14 SyMBOL TABLE 177610 177612 177614 177616 000104 COO040 000136 000134 000140 000142 000116 000114 000352 Wn~HMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGN LE= 177777 $ERFLG= 000400 $F$AND= 000310 UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= WDFR WDTO WTINRE= 000070 SVR3 000072 SVR4 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 LJIPAR6= 177654 UIPAR7= 177656 UIPDRC= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 ASS. 000000 000326 000 001 a ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:DUNCHK,DSKZ:DUNCHK=SPMAC/ML,EQUATE,DUNCHK RUN-TIME: 14 4 .4 SECONDS RUN-TIME RATIO: 41/20=2.0 14K (27 PAGES) CORE USED: $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 SF$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 20-SEP-78 17:51 PAGE 20-1 $F$YES= 00':>402 $IFLEV= 177777 $ISKO = 000001 $ISK1 = 000001 $LOCTA= 11'1777 $LSTIN= 000001 SLSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000110 $NSK2 = 000110 $SAVLE= 177777 SSSKO = 050010 $TAGLE= 177777 $TAGNU= 050012 000300 $TEMP $TSKO = 05':>006 $TSK1 = 050011 $TSK2 = 050010 $$ARGC= 000004 SEQ 0432 $$BYTE= $$CASE= $$DST $$ELOC= $SERFL= $$FLAG= 000403 000000 000000 000402 000000 00,0001 $$FRO~,1= 00'0000 = $$LOC = 000266R $SLOCN= 000000 $SREG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 000000 $$SRC $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 SSTO $$$TAG= 050000 00Q326R = .MAIN. MACV11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 562 565 628 17:51 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINTIONS AND REFERENCES 000000' .PRINT ERREC ROUTINE ;SPMAC: VERSION 1.1 SEQ 0433 ERREC - ERROR RECOVERY MACY11 30A(1052) 20-SEP-78 17:51 PAGE 19 ERREC.MAC 01-AUG-78 09:45 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 .TITLE ERREC - ERROR RECOVERY .IDENT /VO.O/ ;++ MODULE NAME: ERREC FUNCTIONAL DESCRIPTION: ON FATAL ERRORS, THE CURRENT RUN OF THE EXERCISER IS ASORTED. IF THE ERROR IS NOT FATAL, THE EXERCISER IS RESTARTED. ' INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: DT.ERR, DT.ADDR, DT.CFO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.STO PATHOLGICAL CONNECTIONS: BUSY FLAG IN MSGDEQ (MD.BSY) MESSAGE CODE IN MSGDEQ SUBORDINATE MODULES CALLED: MSGDHOOK PRRLOC WBFLIM UNIMAP MSGDEQ CLKON KBINI APTKIL SAVREG RESREG CALLING SEQUENCE: CALL ERREC IN <A> A=DATA TABLE ADDRESS 554 555 556 VERSION: 0.0 557 558 ;HOGK MESSAGE TO PROPER D!iIVER ;PRGCESS ~ELOCATION ;DETERMINE WRITE BUFFER LIMITS ; LOAD UN I CUS !AAP ;MESSAGE DEQUEUER ;TURN ON SYSTEM CLOCK ;INITIALIZE KEYBOARD ;KILL AN APT RUN ;SAVE REGISTERS ;RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE 551 552 553 559 560 SEQ 0434 .0_- EDIT BY DATE REASON ERREC - ERROR RECOVERY MACY11 30A(1052) 20-SEP-78 17:51 PAGE 19-1 ERREC.MAC 01-AUG-78 09:45 COMMON DEFINTIONS AND REFERENCES 562 563 564 565 (1) SEQ 0435 .SBTTL COMMON DEFINTIONS AND REFERENCES .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN:::1 $LSTTAG=1 000000' 000000' 000001 000001 566 567 568 569 570 ;**************** 571 t ; REFERENCED BY OTHER MODULES: 572 573 .GLOBL 574 575 576 ERREC ;MODULE ENTRY POINT ;**************** , 577 578 ; GLOBAL REFERENCES 579 t .GLOBL .GLOBL .GLOBL .GLOSL .GLOBL .GL08L .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL 580 581 582 583 584 585 586 587 58e 589 590 591 592 MSGOHOOK APTKIL PRRLOC WBFUM UNIMAP IV!SGDEQ CLKON lJ'M T .. I T I'\D.l.''tJ. DX.RSTST MD.BSY MD. COD SAVREG RESREG ;MON!TOR'S RESTART LOCATION ;MSGDEQ BUSY FLAG ;MESSA3E CODE IN MSGDEQ 593 ;**~************* 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 t ; LOCAL STORAGE ;MESSAGE ADDRESS TABLE ER.TBL: 000000' 000000' 000002' 000004' 000006' 000010' 000012' 000014' 000072' 000121' 000145' 000151' 000167' 000202' 000205' 000016' 000024 1 000032' 000040' 000045 1 000052' 000060' 000066' 043045 042440 052045 047101 040 051522 040440 042105 . \oJORD ER. CQO . \I;'ORD ER. TQO .WORD ER.APT .IJJORD ER. PAR .WORD ER.REL .WORD ER.KT .WORD ER.SYS 052101 051122 047517 02013~ 051105 051045 047502 000045 046101 051117 046440 000 047522 047125 052122 , MESSAGESER.MG1: .ASCIZ /%FATAL ERROR%TOO MANY / ER.MG2: .ASCIZ / ERRORS%RUN ABORTED%/ ERREC - ERROR RECOVERY MACY11 30A(1052) 20-SEP-78 17:51 PAGE 19-2 ERREC.MAC 01-AUG-78 09:45 COMMON DEFINTIONS AND REFERENCES 611 612 613 614 615 516 617 618 619 620 621 522 623 624 625 526 ;+ ; THE FOLLOWING MESSAGES MUST BE IN THE SAME ORDER AS THEY ARE ; IN THE ERROR WORD OF THE DATA TABLE, I. E., THE ERROR ; MESSAGE ASSOCIATED WITH BIT 0 MUST BE FIRST, THEN THE ERROR MESSAGE ; ASSOCIATED WITH BIT 1, ETC. , 000072' 000100 1 000106' 000114' 000121 1 000126' 000134 1 000142 1 000145' 000151' 000156' 000164 1 000167' 000174 1 000202' 000205 1 000212' 047503 020114 020105 046106 124 052521 053117 053517 101 120 020131 041503 122 052101 052113 123 000115 052116 052521 053117 053517 050131 052505 051105 000 052120 051101 051117 000 046105 047511 000 051531 ER.CQO: .ASCIZ /CONTROL QUEUE OVERFLOW/ ER.TQO: .ASCIZ /TYPE QUEUE OVERFLOW/ 000 052111 042440 ER.APT: ER.PAR: .ASCIZ· /APT/ .ASCIZ /PARITY OR ECC/ 041517 000116 ER.REL! .ASCIZ /RELOCATION/ ER.KT: ER.SYS: .ASCIZ /KT/ .ASCIZ /SYSTEM/ 047522 052505 051105 000 020105 020105 046106 042524 .EVEN SEQ 0436 ERREC - ERROR RECOVERY MACY11 30A(1052) 20-SEP-78 17:51 ERREC.MAC 01-AUG-78 09:45 ERREC ROUTINE 628 629 630 631 (2) 632 633 634 635 636 637 638 (3) 639 PAGE 19-3 SEQ 0437 .SBTTl ERREC ROUTINE ROUTINE ERREC <TABl> 000214' 000214' ERREC: ;+ ; SAVE REGISTERS ;- 000214' 000214' 004767 CAll SAVREG OOOOOOG JSR PC,SAVREG MOV TABL(R5),RO BIT BEQ #FATERR,DT.ERRlR 50002$ 640 641 642 643 644 645 (4) 546 647 548 649 650 651 (6) (9) 652 653 654 655 656 657 658 659 ;+ ; SET RO TO THE START OF THE DATA TABLE. ;- 000220' 000220' 016500 LET RO := TA8L(R5) 000000 ;+ ; SEE IF THE ERROR WAS FATAL. '000224' 000224' 032760 000232 1 001532 IF #FATERR SETIN DT.ERR(RO) THEN 100000 ;+ ; THE ERROR WAS FATAL. ;+ DETERMINE THE TYPE OF ERROR. THIS IS DONE BY FIRST COPYING THE CONTENTS ; OF THE ERROR WORD (EXCEPT THE FATAL ERROR BIT) INTO TEMPORARY ; STORAGE (R2). THEN THE BIT NUMBER (R4) OF THE SET ERROR INDICATOR ; IS DETERMINED. 660 661 662 663 664 665 666 (4) (6) 667 (4) 668 (4) 669 (3) 670 (6) 671 (6) 000020 , 000234' 000234' 000240' 000244' 000244' 000250' 000250' 000254' 000254000254' 000254' 000256' 000256' 016002 042702 000020 100000 012703 000001 012704 177777 LET R2 . - DT.ERR(RO) CLR.BY #100000 LET R3 '- LET R4 .- #-1 MOV SIC DT • ERR (RO) , R2 #100000,R2 MOV #OOOOO1,R3 MOV #-1,R4 BIC R3,R2 INC R4 #000001 REPEAT 040302 005204 LET R2 . - R2 CLR ."BY R3 LET R4 . - R4 + #1 50003$: ERREC - ERROR RECOVERY MACY11 30A(1052) 20-SEP-78 17:51 ERREC.MAC 01-AUG-78 09:45 ERREC ROUTINE 672 (7) 673 (3) (6) 674 675 676 677 678 679 680 681 (7) 682 683 (4) (6) 684 685 (3) (7) (6) (5) (4) (3) (3) 686 (2 ) 687 (2 ) 688 (2 ) 689 (3 ) (7 ) (6) (5) (4 ) (3) (3) 690 (2 ) 691 (2 ) 692 (2) 693 (3) (7) (6) (5 ) (4) (3) (3) 694 PAGE 19-4 LET R3 := R3 SHIFT #+i 000260' 000260' 006303 000262' 000262' 005702 00C264' 001373 UNTIL R2 EQ #0 SEQ 0438 ASL R3 TST BNE R2 50003$ ;+ , NOW DOUBLE THE ERROR BIT NUMBER (R4) AND USE IT AS AN OFFSET INTO ; THE MESSAGE ADDRESS TABLE, THEN OUTPUT THE P~OPER MESSAGE. LET R4 .- R4 SHIFT #+1 000266' 000266' 006304 000270' 000270 1 012701 000274 1 060401 000276 1 000276 1 010546 000300' 012745 000304 1 012745 000310 1 012745 000314 1 010045 000316 1 004767 000322' 000324' 000324 1 000240 000326' 000326 1 000776 000330' 000330 1 000330 1 000330 1 010546 000332 1 012745 000336' 011145 000340 1 012745 000344 1 010045 000346 1 004767 000352' 012605 000354 1 0003541 000240 000356 1 000356 1 000776 000360 1 000360 1 000360: 000360 1 010546 000362 1 012745 000366 1 012745 000372 1 012745 000376 1 010045 000400 1 004767 000404' 012605 000406' LET Rl ASL R4 MOV ADD #ER.TBL,R1 R4, R1 MOV MOV MOV R5,-(SP) #2$,-(R5) #ER.MG1,-(R5) #MSGPOP,-(R5) RO,-(R5) PC,MS3DHOOK (SP)+,R5 • - #ER. TBl + R4 000000' CALL MSGDHOOK IN <RO,#MSGPOP,#ER.MG1,#2$> 000330' 000016 1 000002 MOV MOV JSR MOV OODeOOG INLINE <1$: NOP> 1$: Nap INLINE <SR 1$> BR 1$ INLINE <2$:> 2$: CALL MSGDHOOK IN <RO,#MSGPOP,(R1) ,#4$> 000360' MOV MOV MOV MOV 000002 rJiOV JSR MOV OOOOOOG INLINE <3$: NOP> R5,-(SP) #4$,-(R5) (R 1 ) ,- (R5) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 3$: NOP INLINE <BR 3$> SR 3$ INLINE <4$:> CALL MSGDHOOK IN <RO,#MSGPOP,#ER.MG2,#6$> 000412 1 000045 1 000002 OOOOOOG I NLINE <5$: NOP> 4$: MOV MOV MOV MOV MOV JSR MOV R5,-(SP) #6$,-(R5) #ER.MG2,-(R5) #MSGPOP,-(R5) RO,-(R5) PC,MSGDHOOK (SP)+,R5 ERREC - ERROR RECOVERY MACY11 30A(1052) 20-SEP-78 17:51 ERREC.MAC 01-AUG-78 09:45 ERREC ROUTINE (2) 695 (2) 696 697 (2) 698 699 700 701 702 703 704 705 (6) (9) 706 (3) (5) (4) (3) (3) 707 (3) (4) (3) 000406 1 000240 000410 1 000410 1 000776 (3) 000450 1 012605 70S (6) (9) 709 (3) (4) (3) (3) 710 (4) 711 (4) 712 713 714 715 716 717 718 (6) 719 720 721 722 723 724 725 726 727 PAGE 19-5 SEQ 0439 5$: NOP INLINE <SR 5$> SR 5$ INLINE <6$:> 000412 1 000412 1 6$: ;+ ( I F THE EXERCI SER IS NOT AT THE LOWEST PART OF ME:"MORY, MOVE IT, RESET ; THE WRITE BUFFER, AND RELOAD THE UNIBUS MAP IF IT EXISTS. ;- 000412 1 000412 1 000420 1 000422 1 000422 1 000424' 000430 1 000432' 000436 1 000440 1 000440 1 000442 1 000444 1 000452 1 000452 1 000460' 000462' 000462 1 000464 1 000466 1 000472 1 000474' 000474 1 000474 1 000474 1 IF DT.ADDR(RO) NE #200 THEN 026027 001425 010546 012745 010045 004767 012605 010546 010045 004767 032760 001405 010546 010045 004767 012605 000042 000200 CALL PRRLOC IN <RO,#200> 000200 OOOOOOG CMP BEQ DT.ADDR(RO),#200 50004$ MOV MOV MOV JSR MOV R5,-(SP) #200,-(R5) RO,-(R5) PC,PRRLOC (SP)+,R5 1\10V MOV JSR MOV RS,-(SP) RO,-(RS) PC,WBFLIM (SP)+,R5 BIT BEQ #ADDR22,DT.CFO(R 50005$ M:JV MOV R5,-(SP) RO,'""(R5) PC,UNIMAP (SP)+,R5 BIC #RUNMODE,DT.STO( CALL WBFLIM IN <RO> OOOOOOG IF #ADDR22 SETIN DT.CFO(RO) THEN 001000 000014 -CALL UNIMAP IN <RO> MOV JSR OOOOOOG ENDIF ENDIF 50005$: 50004$: ;+ ; CLEAR THE RUN MODE BIT. ;- 000474 1 000474 1 042760 LET DT.STO(RO) '- DT.STO(RO) CLR.BY #RUNMODE 100000 000010 ;+ ; IF AN APT FATAL ERROR .• ' CALL THE APT KILL ROUTINE ;- 000502 1 IF #APTFER SETIN DT.ERR(RO) THEN ERREC - ERROR RECOVERY MACY11 30A(1052) 20-SEP-78 17: 51 ERREC ROUTINE 01-AUG-78 09:45 ERREC.MAC (6) (9) 728 (3) 729 (4) 730 731 (4) (3) 732 733 734 735 736 737 738 739 740 741 742 743 (3) (4) (3) (3 ) 000502' 032760 000510' 001402 000512' 000512' 004767 000516' 000516 1 000004 PAGE 19-6 SEQ 0440 BEQ #APTFER,DT.ERR(R 50006$ JSR PC,APTKIL BR 50007$ MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,KBINI (SP)+,R5 CLR MD.BSY MOV MQV JSR Mev R5,-(SP) RO,-(R5) PC,MSGDEQ (SP)+,R5 eMP BNE MD. COD, #MSGNU L 50010$ EIT BEQ #CLKPREStDT.CFO( 50011$ MOV MOV R5,-(SP) RO,-(R5) 0n"~ ... , 000020 CALL APTKIL OOOOOOG ENDIF 50006$: ELSE 000516' 000516' 000431 000520' 50002$: ;+ ; THE ERROR WAS NOT FATAL. ;- ;+ ; ENABLE THE KEYBOARD INPUT. ;000520' 000520' 000522' 000524 1 C00530' CALL KBINI IN <RO> 010546 010045 004767 012605 OOOOOOG 74~ 745 746 747 748 749 750 (4) 751 (.3) 752 (3 ) (4) (3) (3) 753 (3) (6) 754 755 756 757 758 759 760 (6 ) (9) 761 (3) (4) ;+ ; WAIT FOT THE TYPE QUEUE TO EMPTY. ;000532' 000532 1 000536 1 000536' 000536' 000536' 000540 1 000542' 000546' 000550' 000550' 000556' LET MD.BSY 005067 != #0 OOOOOOG REPEAT 50010$: CALL MSGDEQ IN <RO> 010546 010045 004767 012605 OOOOOOG UNTIL MD. COD EO #MSGNUL 026727 001367 OOOOOOG 177775 ;+ ; TURN ON THE SYSTEM CLOCK IF IT EXISTS. ;000560' 000560' 000566' 000570' 000570' 000572' IF #CLKPRES SETIN OT.CFO(RO) THEN 032760 001405 000001 000014 CALL CLKON IN <RO> 010546 010045 ERREC - ERROR RECOVERY MACY11 30A(1052) 20-SEP-78 17: 51 ERREC ROUTINE 01-AUG-78 09:45 ERREC.MAC (3) (3) 762 (4) 763 764 765 (4) 766 767 768 769 770 771 (3) 772 773 774 775 776 777 778 (2 ) 779 780 781 (3) (3) (2) 782 0005741 004767 000600 1 012605 0006021 000602 1 PAGE 19-7 SEQ 0441 OOOOOOG JSR PC,CLKON MOV (SP)+t R5 JSR PC,RESREG ENDIF 50011$: ENDIF 000602 1 000602 1 50007$: ;+ ; RESTORE REGISTERS , 000602 1 000602 1 004767 CALL RESREG OOOOOOG j+ ; RESTART THE MONITOR. , 000606 1 000606 1 000167 000612' 000612 1 000612' 000612 1 000207 000001 INLINE <JMP DX.RSTRT> JMP DX.RSTRT OOOOOOG ENDRTN 50000$: 50001$: RTS .END PC ERREC - ERROR RECOVERY MACY11 30A(1052) 20-SEP-78 17:51 SYMBOL TABLE 01-AUG-78 09:45 ERR::C.MAC 000102 ACSR ACTBlT::: 004000 ADDR22= 001000 000006 ADR APTtER= 000004 APTKIl= ****** G APTPRE= 000200 b00106 ASB ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS 000001 BITO 000001 BITOO 000002 BITOl BIT02 000004 8IT03 000010 B1T04 000020 000040 BIT05 000100 BIT06 BIT07 000200 000400 BIT08 001000 8IT09 000002 BIT1 002000 BIT10 004000 BIT'1 B1T12 010000 020000 B1T13 040000 BIT14 100000 8IT15 000004 BIT2 000010 BIT3 000020 BIT4 BITS 000040 SIT6 000100 000200 BIT7 000400 BIT8 001000 BIT9 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CD~DCT= 000144 CKTIM = 100000 CLKON = ****** G CLKPRE= 000001 CONFIG= 000056 000001 CQCVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEfRTN= 000400 DIAGMC= 000000 DROPMO= '100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.8LS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT. EVN,= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 OT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT. PSi'J= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 DX.RST= ****** G ECCMEM= 000100 ECCSTA= 000010 ENSEOP= 010000 PAGE 20 ENBNUL= 00000; ENDLST= 000000 EOPBIT= 000001 000214RG ERRE;C ERRTYP= 000106 ER.APT 000145R ER.CQO 0OOO72R 000202R ER.KT 000016R ER.M\31 ER.MG2 000045R' ER ."PAR 000151R ER.REL 000i67R ER.SYS 000205R ER.TBL OOOOOOR ER.TQO 000121R EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS:: 000050 ICONT = 00003'6 1COUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 1NHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT 000120 1NTR IOr-1OD = 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KB1NI = ****** G KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 K1PAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 K1PDR4= 172310 SEQ 0442 KIPDR5::: KIPDR6= K1PDR7= KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MD.BSY= MD.COD= MED MErIlPAS= MODEXH= MODHOL= MODSfL= MSGCKD= MSGCKS= MSGDEQ= MSGDER= MSGDHO= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRf'li= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSiD= MSGSYS= MSGVEC= .""1"'\"'\"", I I ,,:·""1 4- 172314 172316 000040 000400 000020 040000 000012 000001 000200 ****** G ****** G 076600 040000 004000 002000 001000 000010 000011 ****** G 000005 ****** G 000017' 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 NB~MOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL 024020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 PDP70 = 010000 PRIO 000000 000040 PR1' 000200 PRI4 000240 PR15 000300 PRIG 000340 PRI7 PRRLOC= ****** G 000000 PRO PR4 000200 000240 PR5 000300 PR6 000340 PR7 177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000130 R8UFPA= 000126 R8UFSZ= 000132 R8UFVA= 000124 RDSERV= 000101 RDl>JHMI = 000022 RELERR= 000020 RELMOD::. 020000 REL Tn/I= 010000 RESREG= **"'*** G RE$j 000056 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RU80UT= 000177 RUNMOO= 100000 R5VALU= 001740 SAM 075464 SAVREG= ****** G saADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 sc. ALC= 000014 SC.APC= 000016 sc. CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPO!NT= 000032 SPVALU= 002200 177572 SRO ERREC - ERROR RECOVERY MACY11 30A(1052) 20-SEP-78 17:51 SYMBOL TABLE 01-AUG-78 09:45 ERREC.MAC UlPAR4= UlPAR5= UlPAR6= UIPAR7= UIPDRO= UlPDR1= UIPDR2= U1PDR3= UIPDR4= U1PDR5= UIPDR6= UlPDR7= UNIMAP= WASADR= WBFLIM= WBSTAT= WBUFEA= WBUFPA= ioJSUFRQ= WBUFSZ= WDFR WDTO WTINRE= SRi 177574 177576 SR2 SR3 172516 000026 STAT STATBl= 064757 STATi = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 000000 TABL TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 ASS. 000000 000614 177650 177652 177654 177656 177600 177602 i77604 177606 177610 177612 177614 177616 ****** G 000104 ****** G 000040 000136 000134 000140 000142 000116 000114 000352 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:ERREC,DSKZ:ERREC=SPMAC/ML,EQUATE,ERREC RUN-TIME: 15 5 .4 SECONDS RUN-TIME RATIO: 44/22=2.0 14K (27 PAGES) CORE USED: PAGE 20-1 WTWHMI= 000222 XFLAG = 000005 000023 XOFF XON 000021 $BGNLE= 177777 $ERFLG'; 000400 $F$AND= 000310 $F$BAD= 000401 $F$BlA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL~ 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $FSNAM= 000160 000403 $F$NO $F$OR = 000320 $F$RT!= 000350 $F$RTN= 000300 $F$SEL= 000140 = SEQ 0443 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $ F$WHI = 000120 $F$YES= 000402 $1FLEV= 177777 $ISKO = 000001 $1SK1 = 000001 $ISK2 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 000300 $NSKO $NSK1 = 000110 $NSK2 = 000110 $NSK3 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050012 000300 $TEMP 050007 $TSKO 050011 $TSK1 $TSK2 = 050005 S$ARGC= 000002 $$8YTE= 000403 $$CASE= 000000 $$DST = 000000 SSE LOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000566R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $STGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 000614R .MAIN. MACV11 30A(1052) 20-S~P-78 EQUATE.MAC 13-SEP-78 16:13 3 562 566 613 624 628 645 654 667 693 700 709 734 747 769 796 836 919 973 986 1016 1036 1068 1189 1218 1234 1269 17:52 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT ;SPMAC: VERSION 1.1 MESSAGE - END-OF-PASS MESSAGE - SUM COMMAND HEADER LINE (JUST A CR FOR THIS MONITOR) MESSAGE - SUM COMMAND MODULE LINE MESSAGE - SUM COMMAND SUMMARY LINE MESSAGE - COMMON ~EADER MESSAGE - HRDERR,SOFERR MESSAGE - HRDERR,SOFERR,EXTENSION MESSAGE - DROP MODULE MESSAGE - CKDATA,DATACK,DATERR MESSAGE - CKDATA/DATACK SUMMARY LINE FILLMSG - FILL-IN THE BLANKS ROUTINE PROCESS END-OF-PASS TYPE MESSAGE PROCESS COMMON HEADER TYPE MESSAGE PROCESS HRDERR,SOFERR PROCESS HRDERR, SOFERR EXTENDED PRINTOUT MESSAGES? PROCESS SUM COMMAND TYPE MESSAGES PROCESS SUM COMMAND MODULE LINE MESSAGE PROCESS SUM COMMAND SUMMARY LINE MESSAGE PROCESS DROP MODULE TYPE MESSAGE PROCESS CKDATA/DATACK/DATERR PROCESS CKDATA/DATACK SUMMARY LINE DO THE NECESSARY CLEAN-UP AND THEN RETURN GET MODULE NAME CONVERT VIRTUAL ADDRESS TO PHYSICAL ADDRESS ASCII SEQ 0444 FILLML - FILL MESSAGE {LITTLE} - TO FILL IN SKELETAL MSGS FILLML.MAC 16-AUG-78 14:36 COMMON EQUATE MODULE 508 509 510 511 .TITLE .IDENT MACi11 30A(1052) rILLML - FILL MESSAGE (~ITTLE) IVO.OI 20-SEP-78 17:52 ?AGE 19 - T8 FILL IN SKELETAL MSGS ;++ MODULE NAME: FILLMSG 512 Si3 514 FUNCTIONAL DESCRIPTION: THIS ROUTINE IS RESPONSIBLE FOR FIILLING IN THE BLANK FIELDS OF THE MONITOR GENERATED SKELETAL MESSAGES. THE TYPES OF SKELETAL MESSAGES SUPPORTED ARE: 1. END OF PASS 2. HARD ERROR 3. SUM COMMAND 4. SOFT ERROR 5. COMMON HEADER 6. DROP MODULE 7. DATA ERROR 8. BAD VECTOR 9. MAP SUMMARY 10. C~DATA CALL 515 516 517 518 519 520 521 522 523 524 525 526 ': INPUTS: 1. DATA TABLE 2. MSG TYPE CODE 3. MSG ADDRISPECIAL VALUE 4. MODULE1S HDR ADDR , 527 528 529 530 532 IMPLICIT INPUTS: DT.STO 533 534 OUTPUTS: 531 1. ADDRESS OF FILLED-IN MESSAGE 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: 1. BOACNV 2. BOAC 3. GPA 4. SAVREG 5. RESREG ;BINARY TO DECIMAL ASCII CONVERSION ;BINARY TO OCTAL-ASCII CONVERSION ;GET PHYSICAL ADDRESS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL FILLMSG IN <DTABLE,TYPCODE,MSGADDR,HDRADDR> OUT <FILMSGADR> VERSION: 0.0 EDIT ;- BY DATE REASON SEQ 0445 FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(lG52) FILlMl.~AC 16-AUG-78 14:36 COMMON DEFINITIONS AND REFERENCES 562 563 564 565 566 (1) 000000' 000000' VVVVVI 568 000001 569 570 571 572 573 .PRINT .MCALl STRUCT STRUCT ;SPMAC: VERSION 1.1 SLSTIN = 1 $LSTTAG = 1 11;~~ ~AU~ 1=-1 , 574 575 ; REFERENCED BV,OTHER MODULES , 576 577 578 579 .GlOBl ;MODULE'S ENTRY POINT FIllMSG j**************** , 580 ; GLOBAL REFERENCES 581 582 , ;BINARY TO DECIMAL ASCII CONVERSION ROUTINE ;BINARY TO OCTAL-ASCII CONVERSION ROUTINE ;BINARY TO OCTAL ASCII CONVERSION ;CHECK FOR HUNG MODULES ROUTINE ;GET PHYSICAL ADDRESS ROUTINE .GlOBl BDACN\J .GlOBL BOA16 .GlOBl BOAC .GlOBl CKHUNG .GlOBl GPA .GlOBl SAVREG .GlOBl RESREG 583 584 585 586 587 588 589 590 ;**************** , 591 592 593 ; LOCAL EQUATES: 594 000010 595 596 597 FLDMAX = "'0<8> ;MAX FIELDS PER LINe , ;**************** ; 598 611 COMMON DEFINITIONS AND REFERENCES 1"\1'\1"\1"\1"\411 567 599 600 601 602 603 604 60S 606 607 608 609 610 .SBiiL 20-~~~-jti ; LOCAL STORAGE , 000000' 000002 1 000004' 000004' 000006 1 000010' 000012' 000014 1 000000 000000 000000 000000 000000 000000 000000 FlDCNT: . WORD LINECNT: . WORD TMP1 : TMPVA: .WORD TMPPA: .WORD TMPEA: .WORD FM.PA: .WORD FM.EA: .WORD o a a o o o o r ;**************** ;FIElD COUNTER ; LINE COUNTER j STORAGE '/JORD ;STORAGE/VIRTUAL ADDRESS ;STORAGE/PHYSICAL ADDRESS ;STORAGE/EA BITS ;STORAGE - PHYS. ADOR. ,STORAGE - EA BITS SEQ 0446 FIlLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS FILLML.MAC 16-AUG-78 14:36 MESSAGE - END-OF-PASS 613 614 615 616 617 618 619 620 621 622 .SBTTL 000016 1 000017 1 000024 1 000032 1 000037' 000044 1 045 000005 042440 051501 000005 000045 042116 020123 050040 043 MACY11 30A(1052) MESSAGE - END-Of-PASS EOPMSG: . ASCI I /%/ "0<5> EOPNAM: . BLKS .u .f .ASCII / END PASS "1 EOPPAS: .BLKB .ASCIZ "D<5> 1%/ 20-SEP-78 17:52 PAGE 19-2 SEQ 0447 FIL~ML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) ~U-~t~-/~ i/.~' ~h~~ FILLML.MAC 16-A~G-78 14:36 MESSAGE - SUM caM~ANC HEADER LINE (JUST A CR FOR THIS MONITOR) .SBiTL 624 625 626 000046' 000045 I~ w MESSAGE - SUM COMMAND HEADER LINE (JUST A CR FOR THIS MONITOR) RNHMSG: .ASCIl /%/ SEQ 0448 FIllMl - FILL MESSAGE (lITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) FILlMl.MAC 16-AUG-78 14:36 MESSAGE - SUM COMMAND MODULE lINE 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 .SBTH. 000050' 000051 ' 000056' 000064 1 000066' 000074 ' 000102' 000110' 000116' 000117' 000124' 000132' 000135' 000142' 000150' 000153' 000160' 045 000005 040440 020072 000006 051440 000006 050040 043 000005 044040 051522 000005 051440 051522 000005 000 020124 040526 040524 020124 051501 MESSAGE - SUM COMMAND MODULE LINE RNBMSG: .ASCII /%/ "0<5> RNSNAM: .SlKS .ASCII / AT VA: / RN8PC: .BLKB 020123 .ASCII RNSSTAT: .SlKS .ASCII ""'0<6> / STAT / ""'D<6> / PASS #/ 042122 040 051105 RNBPAS: .BlKS .ASCII "0<5> / HROERRS / 052106 040 051105 RNBHRO: • SlKB .ASCII "'0<5> / SFTERRS / . . D<5> RNBSFT: .BlKS .BYTE 0 20-SEP-78 17:52 PAGE 19-4 SEQ 0449 FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) FIlLML.MAC 16-AUG-78 14:36 MESSAGE - SUM COMMAND SUMMARY LINE 545 646 647 648 649 650 651 652 .SBTTL 000161 ' 000166' 000174' 000201 ' 000206' 000214' 000222' 000230' 000235' 045 046505 051117 000005 020040 053517 044501 000005 045 035123 052123 051122 040 020040 051105 051514 050040 043040 020072 054523 04~440 MESSAG~ - RNSMSG: .ASCII RNSERR: .BLKB 000 Al""I"Tl' .1"\.;)1".1..1. SUM COMMAND SUMMARY /%SYSTEM ERRORS: / .... 0<5> I J .... 0<5> RNSPWR: .BLKB .ASCIZ /%/ POWER FAILS: / . ..,. ,,... ... L.J.J'lit:, 20-SEP-78 17:52 PA~~ l~-~ SEQ 0450 FILLML - FILL MESSAGE (LITTLE) FILLML.MAC 16-AUG-78 14:36 TO FILL IN SKELETAL MSGS MACY11 30A(1052) MESSACE - COWMON HEADER .S8TTL 654 655 656 657 658 659 660 661 662 663 664 665 000237' 000240' 000245 1 000252 1 000262' 000270 1 000276' 000304' 000305' 000312' 045 000005 040 000010 040440 000006 050040 043 000005 000045 040520 020072 041520 020072 HDRMSG: .ASCII /%/ ~D<5> HDRNAM: . SlKS • ASCII / PA: / AD<8> HDRPA: .SLKS HDRPC: 051501 020123 MESSAGE = COMMON HEADER .ASCII / APe: .SLKS 6 .ASCII / PASS HDRPAS: .SLKS .ASCIZ -D<5> /%1 I HI 20-SEP-7B "/:02 l-'A\.;il:: ""l~-O SEQ 0451 FI LLML - FILL MESSAGE (LITTLE) 16-AUG-78 14:36 FI LLML.MAC 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 MACY 11 30A(1052) TO FILL IN SKELETAL MSGS MESSAGE - HRDERR,SOFERR .S8iTL 045 000314 1 000315 1 000005 0003221 050040 00032'7 1 000010 1'\.111'\ v-rv 000337 1 000344'1 040 000345 1 000006 040 000353 1 000360,1 021440 000362' 000005 040 000367 1 000370' 000004 000374 1 042440 000401' 000005 000406 1 041445 040 000414 1 000415 1 000006 040 000423' 000430' 020072 000432' 000006 000440' 040440 000446' 020072 000450' 000006 000456 1 042440 000464' 035120 000467' 000006 045 000475 1 000476 1 000 035101 040 v ...rv I \,II f\t:;f\;f\~ 035103 040520 051523 11:bL I-'A\.:it. .SlKS .ASCII .ASCII /%/ .... D<5> / PA: / "'D<8> / APe: / . . 0<6> / PASS #/ 051122 043 051123 035101 "'0<5> .SlKS · ASCII / / "'0<4> OATTYP: .SlKS .ASCII / ERR#/ "'0<5> DATNUM: .SlKS · ASCII /%CSRA: / 051503 041522 DATADD: .SlKS · ASCII . . 0<6> / CSRC: DATCON: 052123 052101 .SlKS .ASCII . . 0<6> / ASTAT: / OATSTAT: 051122 040 054524 . BlKS .ASCII "'0<6> / ERRTYP: / DATERR: "'0<6> .BlKS · ASCII /%/ .SYTE 0 DATPAS: DATENO: 1':::1-' SEQ 0452 MESSAGE - HRDERRtSOFERR DATAMSG: DATNAM: .SlKS · ASCII .SlKS OAT PC: .ASCI! OATAPC: 20-::; !:. P-'[/j ;OATA, HARD, SOFT / ;ENO OF MESSAGE INDICATOR FILLML - FILL ~ESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) F!LLML.MAC 16-AUG-78 14:36 MESSAGE - HRDERR,SOFERRtEXTENSION .SBTTL 693 694 695 696 697 698 1 000477 000477 1 000344 001043 1 000 MESSAGE - HRDERR,SOfERR,EXTENSrON EXTMSG: .BlKS EXTEND: .BYTE 0 ~D<22B> 20-SEP-78 17:52 PAGE 19-8 SEQ 0453 FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS FILLML.MAC 16-AUG-78 14:36 MESSAGE - DROP MODULE .SBTTL 700 701 702 703 704 705 706 707 001044 1 001045 1 001052 1 001060 1 001066 1 001073 1 001101' 045 000005 042040 042105 050101 000006 045 047522 040440 035103 050120 020~24 MESSAGE - DROP MODULE DRPMSG: . ASCII /%/ ~D<5> DRPNAM: .BLKB .ASCII / DROPPED AT APC: / 040 DRPPC: 000 MACY11 30A(1052) ~D<6> .BLKB .ASCIZ /%/ 20-SEP-78 17:52 PAGE 19-9 SEQ 0454 MACY11 30A(1052) FILLMl - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MESSAGE - CKDATA,DATACK,DATERR 16-AUG-78 14:36 F!LLML.MAC 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 MESSAGE - CKDATA,DATACK,DATERR .SSTTL 001103' 001104' 001111' 001116' 001126' 001134' 001142' 001150' 001151' 001156' 001164' 001171' 001176 1 001200' 001206 1 001214' 001222 1 001230' 001236' 001244' 001245' 001255' 001262' 00i264! 001274 1 045 000005 040 000010 040440 000006 050040 043 000005 042440 000005 045 020072 000006 051440 000006 053440 000006 053440 040 000010 040 020122 000010 000045 040520 020072 041520 020072 051501 020123 051122 021440 051503 040522 041057 020072 051501 020072 040522 042122 CKDMSG: • ASCII CKDNAM: .SlKS .ASCII .SlKS CKDPA: · ASCII .BLKB CKOVA: .ASCII 1%1 .... D<5> I PA: I "'D<8> I APC: I .... 0<6> I PASS #1 .... 0<5> CKOPAS: .BLKS · ASCII CKDNUM: .SlKS .ASCII ""0<5> I%CSRA: 051104 .BLKS .ASCII .SlKS CI<DSB: .ASCII CKDWAS: .BlKS .ASCII "'0<6> II SIB: II .... D<6> I WAS: I . . D<6> / WRADR / 042101 CKDWRA: .BlKB .ASCII I RDADR / CKDADD: I"'vr-.!:lr-.I\ • wn~I'...,n • .SLKS I ERR #1 .... D<8> .... D<8> .ASCIZ 1%1 I 20-SEP-78 17:52 PAGE 19-10 SEQ 0455 FILlML - FILL MESSAGE (lITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) FILLML.MAC 16-AUG-78 14:36 MESSAGE - CKDATA/DATACK SUMMARY lINE 734 735 736 737 738 739 740 741 742 743 744 745 .SSTTl 001276' 001276' 001303' 001310' 001315' 001322' 001330' 001334' 001341' 001346' 001354' 000005 040 000005 040 051522 047440 000005 040 020123 000045 040510 020104 051105 047440 020106 047522 052125 047527 042522 042122 042101 20-SEP-78 MESSAGE - CKDATA/DATACK SUMMARY LINE CKDSMSG: CKDSNAM: .SLKS ~D<5> .ASCII / HAD / CKDSCNT: . SlKS ~D<5> .ASCII / ERRORS OUT OF / CKDSRD: .BlKS ~D<5> .ASCIZ / WORDS READ%/ .EVEN 17:52 PAGE 19-11 SEQ 0456 FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MA~ll ~UAllU~~) FILLML.MAC 16-AUG-78 i4:36 F!LLMSG - FILL-IN THE BLANKS ROUTINE '747 748 749 750 751 752 (2) 753 754 755 756 757 758 759 760 761 (3) 762 (4) 763 (4) 764 (4) 765 (4 ) 766 767 .S8TTL ~U-~~~-j~ 1/;O~ ~A~C I~-I~ SEQ 0457 FILLMSG - FILL-IN THE BLANKS ROUTINE ROUTINE FILLMSG <DTABLE,TVPCODE, MSGADR, HDRADR,FLMSADR> 001356 1 001356 1 FILLMSG: ;+ ; SAVE REGISTERS AND SAVE DTABLE,ADR,MSGADR AND TYPCODE ;- 001356' 001356 1 001362 1 001362' 001366 1 001366 1 001372' 001372 1 001376' 001376 1 CALL SAVREG 004767 OOOOOOG LET RO 016S00 000000 "- JSR PC,SAVREG MOV DTABLE(R5) ,RO MOV HDRADR(R5),R1 MOV MSGADR(R5),R2 MOV TYPCODE(R5),R4 DTABLE(RS) .- HDRADR(RS) LET R2 - MSGADR(RS) LET R1 016501 000006 " 016502 000004 LET R4 016S04 000002 "- TVPCODE(R5) FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) F!LLML.MAC 16-AUG-78 14:36 PROCESS END-Of-PASS TYPE MESSAGE 769 770 771 772 773 '774 775 776 777 778 779 (6) (9) 780 781 782 783 784 785 (3 ) (5) (4) (3) (3) 786 .SBTTL 17:52 PAGE 19-13 SEQ 0458 PROCESS END-Of-PASS TYPE MESSAGE ;+ ; IS IT AN END-OF-PASS TYPE? IF SO, FILL iN THE BLANK fIELDS, ; UPDATE THE MODULE'S PASS TIME, AND CHECK fOR ANY "HUNG" MODULES ;- 001402 1 001402 1 020427 001406 1 001024 IF R4 EO #MSGEOP THEN 000013 CMP BNE R4,#MSGEOP 50002$ MJV MOV MOV JSR MOV Fc5,-(SP) #EOPNAM,-(R5) R1,-(R5) PC,GETNAM (SP)+,R5 MOV MOV J5R MOV RS,-(SP) #EOPPAS,-(R5) PASCNT(R1),-(R5) PC,BDACNV (SP)+,R5 MOV #EOPMSG,FLMSADR( ;+ ; GET MODULE NAME ;- 001410 1 001410' 001412' 001416' 001420 1 001424' CALL GETNAM IN <R1, #EOPNAM> 010546 012745 010145 004767 012605 000017' 002032 ., ..... ...I 0"' ...I 788 789 790 (3) (5) (4) (3) (3) 791 792 (4) 793 (2) 794 (4) 20-SEP-78 ' ; CONVERT PASS COUNT TO DECIMAL ASCII ;- 001426 1 00"i426001430001434' 001440 1 001444' CALL BDACNV IN <PASCNT(R1), #EOPPAS> 010546 012745 016145 004767 012605 001446' 001446' 012765 001454 1 001454' 000167 001460' 001460' 000037 1 000034 OOOOOOG MJV LET FLMSADR(R5) .- #EOPMSG 000016 1 000010 INLINE. <JMP 1$> JMP 1 $ 001770 ENDIF 50002$: FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) FILLML.MAC 16-AUG..-78 14:36 PROCESS COMMON HEADER TYPE MESSAGE 796 797 798 799 800 801 802 (6) (9) 803 804 805 806 807 (3) (5) (4) (3) (3) 808 809 810 811 812 (3) (6) (5) (4) (3) (3) "SBTT L 20-SEP-78 17:52 PAGE 19-14 SEQ 0459 PROCESS COMMON. HEADER TYPE MESSAGE ;+ ; IS IT A COMMON HEADER TYPE MESSAGE? ;- 001460 1 001460 1 020427 001464 1 001045 001466 1 001466 1 001470 1 001474 1 001476 1 001502 1 IF R4 EQ #MSGHDR THEN 000004 ;+ ; GET MODULE NAME ;CALL GETNAM IN <R1,#HDRNAM> 010546 012745 010145 004767 012605 000240 1 CMP BNE R4,#MSGHDR 50003$ MOV MOV R5,-(SP) #HDRNAM,-(R5) R1,-(R5) PC,GETNAM (SP)+,R5 MOV JSR MOV 001754 ;+ ; GET PHYSICAL ADDRESS CALL GETAPA IN <RO,R2,#HDRPA> 001504 1 001504 1 010546 OO-j 506! 012745 001512 1 001514 1 001516 1 001522 1 010245 010045 004767 012605 MOV MOV R5,-(SP) #HDRP.A,-(R5) R2,-(R5) RO,-(R5) PC,GETAPA (SP)+,R5 MOV SUB R2,R3 R1,R3 MOV MOV MOV JSR MOV R5,-(SP) #HDRPC,-(R5) R3,-(R5) PC,BOA16 (SP)+,R5 MOV R5,-(SP) Mev 000252! MOV MOV JSR 001774 813 814 ;+ 815 816 917 818 (4) ; FORM APC (6 ) 819 820 821 822 823 824 (3) (5) (4) (3) (3) 825 826 827 828 829 830 (3) ;- LET R3 "- R2 - R1 001524 1 001524 1 010203 001526 1 160103 + AND CONVERT IT TO ASCII 001530 1 001530 1 001532 1 001536 1 001540 1 001544 1 CALL 80A16 IN <R3, #HDRPC> 010546 012745 010345 004767 012605 000270 1 OOOOOOG + CONVERT PASCNT TO ASCII 001546 1 001546' 010546 CALL BDACNV IN <PASCNT{R1), #HDRPAS> FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) F!LLML.MAC 16-AUG-78 14:36 PROCESS COMMON HEADER TYPE MESSAGE (5) (4) (3) (3) 831 (4) 832 (2) 833 (4) 834 001550' 001554' 001560' 001564' 001566' 001566' 001574' 001574' 001600' 001600' 012745 016145 004767 17:52 PAGE 19-15 SEQ 0460 000305' 000034 OOOOOOG 012605 LET FLMSADR(R5) 012765 20-SEP-78 .- #HDRMSG 000237' 000010 MOV MOV JSR MOV #HDRPAS,-(R5) PASCNT(R1),-(R5) PC,BDACNV (SP)+,R5 MOV #HDRMSG,FLMSADR( INLINE <JMP 1$> 000167 001650 dMP 1$ ENDIF 50003$: FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS FILLML.MAC 16-AUG-78 14:36 PROCESS HRDERR,SOFERR 836 837 838 839 840 841 842 843 844 (6) (9) (6) (9) 845 (2) 846 (4) 847 848 849 850 851 (4) 852 853 854 855 856 857 (3) (5) (4) (3) (3) 858 859 860 861 862 863 (3) (6) (5) (4) (3) (3) 864 865 866 8 01 .... .., 868 869 (4) (6) 870 871 .SBTTL MACY11 30A(1052) 20-SEP-78 17:52 PAGE 19-16 SEQ 0461 PROCESS HRDERR,SOFERR ;+ ; IF NOT A HARD OR SOFT ;- 001600' 001600' 001604' 001606' 001612' 001614' 001614' C01620' 001620' ER~OR, CONTINUE CHECKING IF R4 NE #MSGSFT AND R4 NE #MSGHRD THEN CMP SEQ CMP. SEQ 000006 020427 001405 020427 001402 000007 000167 000474 IN LINE <JMP 100$> JMP 100$ ENDIF 50004$: ;+ ; INSERT THE END OF MESSAGE CHARACTER AND ASSUME THAT THERE IS NO ;- 001620' 001620' 105067 R4,#MSGSFT 50004$ R4,#MSGHRD 50004$ EXTENDED PRINTOUT LET DATEND :B= #0 176652 CLRB DATEND MClV R5,-(SP) #DATNAM,-(R5) Rl,-(R5) PC,GETNAM (SP)+,R5 ;+ ; GET MODULE NAME ., 001624' 001624' 001626' 001632' 001634' 001640' CALL GETNAM IN <R1, #DATNAM> 010546 012745 010145 004767 012605 MOV MOV JSR 000315' 001616 MOV ;+ ; GET P.A. f 001642' 001642' 001644' 001650' 001652' 001654' 001660' CALL GETAPA IN <RC,R2,#DATPC> 010546 012745 010245 010045 004767 012605 MOV MOV MOV MOV JSR 000327' 001636 MOV R5,-(SP) #DATPC,-(R5) R2,-(R5) RO,-(R5) PC,GETAPA (SP)+,R5 ;+ ; FORM APC ;- 001662' 001662' 010203 001664' 160103 LET R3 := R2 - R1 MOV sua ;+ R2,R3 R1,R3 FILLML - FILL MESSAGE (LITTLE) - TO FILL I~ SKELETAL MSGS PROCESS HRDERR,SOFERR 16-AUG-78 14:36 FILLML.MAC 872 373 874 875 (3 ) (5) (4) (3) (3 ) 876 877 878 879 880 881 (3 ) (5 ) (4) (3) (3) 882 883 (4) 884 885 895 (4) 896 (4) 897 (4) 898 (4) 899 (4 ) 900 (4) 901 20-SEP-78 17:52 PAGE 19-17 SEQ 0462 0- t 001666' 001666' 001670' 001674' 001676 1 001702' CALL BOA16 IN <R3, #DATAPC> 010546 012745 010345 004767 012605 MOV JSR MOV R5,-(SP) #DATAPC,-(R5) R3,-(R5) PC,BOA16 (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #DATPAS,-(R5) PASCNT(R1),-(RS) PC,BDACNV (SP)+,R5 MOV #DATTYP,R3 CMP BNE R4,#MSGSFT 50005$ MOVe ;f;.'IS,(R3)+ Move #'O,(R3)+ MOVB #'F,(R3)+ MOVB #' T , (R3)+ MOV SOFCNT(R1),RO 8R 50006$ MOVB # I H, (R3)+ MOVB # I A, (R3)+ MOVB #'R,(R3)+ MOV8 #'D,(R3)+ MOV HRDCNT(R1),RO MOV iviOV 000345' OOOOOOG ;+ ; CONVERT PASS COUNT TO ASCII ;- 001704 1 001704' 001706' 001712' 001716' 001722' CALL BDACNV IN <PASCNT(R1), #DATPAS> 010546 012745 016145 004767 012605 001724' 001724' 012703 000362' 000034 OOOOOOG LET R3 . - #DATTYP 000370' ;+ ; IF c:::nt;T nf"t~ (3 ) 30A(1052) ; CONVERT IT TO ASCII oou 887 888 (6) (9) 889 (4) 890 (4) 891 (4) 892 (4) 893 (4) 894 (4) MACY11 ....,, __ , ~ I , FILL IN 'IJORD 'SOFT' IF HARD, FILL IN tl.'ORD 'HARD' 0- 001730' 001730' 001734' 001736' 001736' 001742' 001742' 001746' 001746' 001752' 001752' 001756' 001756' 001762 1 001762' 001764' 001764' 001764' 001770' 001770' 001774' 001774' 002000 1 002000' 002004' 002004' 002010' 002010' IF R4 EQ #MSGSFT THEN 020427 001013 000006 112723 000123 112723 000117 LET (R3)+ :B= #'5 LET (R3)+ :8= #10 LET (R3)+ :B= #'F 112723 000106 112723 000124 LET (R3)+ :8= #'T LET RO 016100 "- SOFCtH(R1 ) 000042 ELSE 000412 50005$: LET (R3)+ :8= #IH 112723 000110 LET (R3)+ :8= #'A 112723 000101 LET (R3)+ :8= #'R 112723 00012: 112723 000104 LET (R3)+ :8= #ID LET RO 016100 . - HRDCNT(R1) 000044 ENDIF 50006$: F I LLM L - F ILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS PROCESS HRDERR,SOFERR 16-AUG-78 14:36 !=ILlMl.MAC 902 903 904 905 906 907 (3) (5) (4) (3) (3) 908 909 910 911 912 913 (3) (5) (4) (3) (3) 914 (3) (5) (4) (3) (3) 915 (3) (5) (4) (3) (3) 916 (3) (5) (4) (3) (3) 917 MACY11 30A(1052) 20-SEP-78 17:52 PAGE 19-18 SEQ 0463 ;+ ; CONVERT HARD OR SOFT TO ASCII , 002010' 002010' 002012' 002016' 002020' 002024' CALL BDACNV IN <RO,#DATNUM> 010546 012745 010045 004767 012605 000401 I OOOOOOG MOV MOV MOV JSR MOV R5,-(SP) #DATNUM,-(R5) RO,-(R5) PC,BDACNV (SP)+,R5 MOV MOV MOV JSR R5,-(SP) #DATADD,-(R5) CSRA ( R1 ) ,- (R5) PC,BOA16 (SP)+,R5 ;+ i , 002026' 002026' 002030' 002034' 002040' 002044' 002046' 002046' 002050' 002054 1 002060 i 002064' 002066' 002066 1 002070' 002074 1 002100 1 002104 1 002106 1 002106 1 002110 1 002114 1 002120 1 002124' CONVERT CSRA,CSRC,ASTAT,ERRTVP TO ASCII CALL BOA16 IN <CSRA(R1), #DATADD> 010546 012745 016145 004767 012605 000415' 000100 OOOOOOG 010546 012745 016145 004767 012605 000432' 000102 OOOOOOG MOV CALL BOA16 IN <CSRC(R1), #DATCON> CALL BOA16 IN <ASTAT(R1),#DATSTAT> 010546 012745 016145 004767 012605 000450' 000104 OOOOOOG MClV MOV MGV JSR MOV R5,-(SP) #DATCON,-(R5) CSRC(R1) ,-(R5) MOV MOV R5,-(SP) #DATSTAT,-(R5) ASTAT(R1).-(R5) PC,BOA16 (SP)+,R5 MOV JSR MOV CALL BOA16 IN <ERRTYP(R1),#DATERR> MOV 010546 012745 016145 004767 012605 000467' 000106 OOOOOOG MOV MOV JSR MOV PC,SOA16 (SP)+,R5 R5,-(SP) #DATERR,-(R5) ERRTYP(R1) ,-(R5) PC,BOA16 (SP)+,R5 FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) 20-SEP-78 FILLML.MAC 16-AUG-78 14:36 PROCESS HRDERR, SOFERR EXTENDED PRINTOUT MESSAGES? 919 920 921 922 923 924 925 926 927 (6) (8) (6) (9) (6) 928 (6) 929 (4 ) 930 (6) (9) 931 (4) 932 933 .SBTTL 948 (4) (6) (9) 949 (4) (6) (9) 950 (3) (5) (4) SEQ 0464 PROCESS HRDERR, SOFERR EXTENDED PRINTOUT MESSAGES? ; IS THERE"A HRDERRjSOFERR EXTENDED PRINTOUT ASSOCIATED WITH THIS MESSAGE? ;- 002126' 002126' 002132 1 002134' 002140' 002142' 002142' 002142' 002146' 002146' 002150' 002150' 002152' 002154' 002154' IF R4 EQ #MSGSFT OR R4 EQ #MSGHRD THEN 020427 001403 020427 001065 062702 000006 000007 R4,#MSGSFT 50007$ R4,#MSGHRD 50010$ ADD #4,R2 MOV (R2),R2 7ST BEQ R2 50011$ MOV8 #<CR>,DATEND R2 + #4 LET R2 '- LET R2 .- (R2) 000004 011202 IF R2 NE #0 THEN 005702 001453 112767 CM? BEQ CMF BNE 500075: LET DATEND :B= #<CR> 000015 176314 ;+ 939 (9) PAGE 19-19 ;+ 935 936 937 938 940 941 942 943 944 945 (4) 946 (4) 947 (4) (6) 17:52 GO THROUGH THE MESSAGE TABLE AND, FOR EACH ADn~ESS !~ THE TA5LE, FIND THE CONTENTS OF THAT ADDRESS, CONVERT IT TO ASCII, STORE THE ASCII IN THE EXTENDED PRINTOUT TABLE (EXTMSG) FOLLOWED BY A SPACE AND, I~THE MAXIMUM NUMBER OF ENTRIES PER LINE HAS BEEN REACHED, LOAD A CR, LF (%) INTO THE TABLE. CONTINUE THIS UNTIL EITHER THE LAST ENTRY IN THE MESSAGE TABLE OR THE END OF THE PRINTOUT STORAGE AREA (EXTEN~) IS REACHED. ;- 002162' 002162 1 002166 1 002166 1 002172' 002172' 002172' 002176 1 002200' 002200' 002200 1 002204 1 002206' 002206 1 002206 1 002214 1 002216' 002216 1 002220' 002222' LET R3 := #EXTMSG 012703 000477 1 005067 175606 MOV #EXTMSG,R3 CLR FLDCNT CMP SEQ (R2) ,#-1 50013$ CMP 8HIS R3,#EXTEND 50015$ LET FLDCNT '- #0 WHILE (R2) NE #-1 DO 50012$: 021227 001436 177777 020327 103032 001043' 026727 G02021 175566 WHILE R3 LO #EXTEND DO 50014$: 010546 010345 013245 WHILE FLDCNT LT #FLDMAX DO 50016$: 000010 CMP BGE CALL SOA16 IN <@(R2)+,R3> MOV MOV MOV FLDCNT,#FLDMAX 50017$ R5,-(SP) R3,-(R5) @(R2)+,-(R5) 20-SEP-78 MACY11 30A(1052) FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS PROCESS HRDERR, SOF~RR EXTENDED PRINTOUT MESSAGES? 16-AUG-78 14:36 FILLML.MAC (3) (3 ) 951 (6) 952 (4) 953 (6) (9) 954 (2) 955 (4 ) 956 (6) 957 (4) (3) 95B (4) 959 (4) 960 (4) (3) 002224 1 004767 002230 1 012605 002232 1 002232 ' 062703 002236' 002236; 112723 002242 1 002242 1 021227 00.2246 1 001001 002250 1 002250 1 000411 002252 ' 002252 1 002252 1 002252' 005267 002256' 002256 1 000753 002260 1 002260 1 002260 1 112723 002264 1 002264' 005067 002270 1 002270' 000743 002272' nCo 002272' (4) (3) 962 (2) 963 (4) 964 (4) 965 966 967 (4) 968 (4) 969 002272' 000737 002274 1 002274 ' 002274 1 002274 ' 002274 1 112723 002300 1 002300 1 105023 ;;;lUI (2) 970 (4) 971 (2) 002302 1 002302 1 002302' 002302' 012765 002310 1 002310' 000167 002314' 002314' 002314 1 002314' 17:52 PAGE 19-20 SEQ 0465 JSR MOV PC,BOA16 (SP)+,R5 ADD #6,R3 MOV8 #<SPACE>, (R3)+ CMP BNE 1000$> (R2),#-1 50020$ BR 1000$ .- FLOCNT + #1INC FLOCNT BR 50016$ MOVB #1%,(R3)+ CLR FLDCNT BR 50014$ OOOOOOG LET R3 000006 "- R3 + #6 LET (R3)+ :B= #<SPACE> 000040 IF (R2) EQ #-1 THEN 177777 INLINE <BR ENOIF 50020$: LET FLDC!'JT 175522 ENOOO 500175: LET (R3)+ : B= # 1% 000045 LET FLDCNT . - #0 175510 ENDDO 50015$: ENDDO n:-\ 01"\ C::""i"la:: "'/VV'4-+1 50013$: INLINE <1000$:> 1000$: LET (R3)+ :B= #'% 000045 MOVB #1%,(R3)+ CLRB (R3)+ MOV #DATAMS,FLMSADR( JMP 1$ LET (R3)+ :B= #0 ENDIF 50011$: LET FLMSADR(R5) := #DATAMS 000314 1 000010 INLINE <JMP 1 $> 001134 ENDIF INLINE <100$:> 50010$: 100$: FilLML - FIll MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS M~CY11 30A(1052) FIlLMl.MAC 16-AUG-78 14:36 PROCESS SUM COMMAND TYPE MESSAGES 973 974 975 976 977 978 979 . 980 981 002314 1 (6) 002314 1 (9) 002320 1 982 002322 1 (4) 002322 1 983 002330 1 (2) 002330' 984 002334' (4) 002334' oSBTTl 20-SEP-78 17:52 ?AGE 19-21 SEQ 0466 PROCESS SUM COMMAND TYPE MESSAGES ;+ ; IS IT A SUM COMMAND HEADER LINE TYPE MESSAGE? ;- IF R4 EO #MSGSMH THEN 020427 001005 000014 012765 000046 1 000010 8NE R4,#MSGSMH 50021$ MOV #RNHMSG,FlMSADR( CMP lET FLMSADR(R5) 0- #RNHMSG INlINE <JMP 1$> 000167 001114 JMP 1$ ENDIF 50021$: FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1C52) FILLML.MAC 16-AUG-78 14:36 PROCESS SUM COMMAND MODULE LINE MESSAGE ;+ ; TC' 991 992 993 994 (6) (9) 995 996 997 998 999 1000 (3) (5) (4) (3) (3) 1001 1002 1003 J.~ (3) (5) (4) (3) (3) 1007 (3) (5 ) (4) (3) (3) 1008 (3) (5) (4) (3) (3) 1009 (3) (5) (4) (3) (3) 1010 (3) (5) (4) (3) PAGE 19-22 SEQ 0467 I A 1'\ II SUfv1 CO~,1~,1A~~D-f,10DU LE-L! I\JE II MESSAGE? of 002334 1 002334 1 020427 002340' 001063 IF R4 EO #MSGSMB THEN 000015 CMP BNE R4, #MSGSMB 50022$ MIJV MOV MOV JSR MOV R5,-(SP) #RNBNAM,-(R5) R1,-(R5) PC,GETNAM (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #RN8PC,-(R5) R1,-(R5) PC,BOA16 (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #RNBSTAT,-(R5) STAT(R1) ,-(R5) PC,BOA16 (SP)+,R5 MOV MOV MOV JSR M'JV R5,-(SP) #RNBPAS,-(R5) PASCNT(R1),-(R5) PC,BDACNV (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #RNBHRD,-(R5) HRDCNT(R1) ,-(R5) PC,BDACNV (SP)+,R5 MOV MOV MOV R5,-(SP) #RNBSFT,-(RS) SOFCNT(R1),-(RS) PC,BDACNV ;+ ; GET MODULE NAME ;002342 1 002342 1 002344 1 002350 1 002352 1 002356 1 CALL GETNAM IN <R1, #RNBNAM> 010546 012745 010145 004767 012605 000051 I 001100 ;+ ; CONVERT PC,STAT,PASS COUNT,HARD ERORRS AND SOFT ERRORS : TO ASCII 1004 1005 1006 TT J. 17:52 PROCESS SUM COMMAND MODULE LINE MESSAGE .SBTTL 986 987 988 989 990 20-SEP-78 , 002360 1 002360 I. 010546 002362 ' 012745 002366 1 010145 002370 1 004767 002374 1 012605 002376 1 002376' 010546 002400 1 012745 002404 1 016145 002410 1 004767 002414 1 012605 002416 1 002416 1 . 010546 002420 1 012745 002424 1 016145 002430 1 004767 002434 1 012605 002436' 002436 1 010546 002440 1 012745 002444 1 016145 002450 1 004767 002454; 012605 002456 1 002456' 010546 002460 1 012745 002464 1 016145 002470 1 004767 CALL BOA16 IN <R1.#RNBPC> 000066 1 OOOOOOG CALL BOA16 IN <STATeR1), #RNBSTAT> 000102 1 000026 OOOOOCG CALL BDACNV IN <PASCNT(R1), #RNBPAS> 000117 1 000034 OOOOOOG CALL BDACNV IN <HRDCNT(R1), #RNBHRD> 000135' 000044 OOOOOOG CALL BDACNV IN <SOFCNT(R1), #RNBSFT> 000153' 000042 OOOOOOG JSR FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) FILLML.MAC 16-AUG-78 14:36 PROCESS SUM COMMAND MODULE LINE MESSAGE (3) 1011 (4) 1012 (2) 1013 (4) 1014 002474 1 012605 002476 1 002476 1 012765 002504 1 002504 1 000167 002510; 002510' LET FLMSADR(R5) 000050 1 20-SEP-78 17:52 PAGE 19-23 SEQ 0468 . - #RNBMSG 000010 MOV (SP)+,R5 MOV #RNBMSG,FLMSADR( INLINE <JMP 1$> 000740 JMP 1 $ ENDIF 50022$: FILLML - FILL MESSAGE (LITTLE) - TO FILL IN S,(ELETAL rl"lSGS :'v1ACY113CA(1052) FILLML.MAC 16-AUG-78 14:36 PROC[SS SUM COMMAND SUMMARY LINE MESSAGE .SBTTL 1016 1017 1018 1019 1020 (3 ) (5) (4) (3) (3) 1030 (3) (5) (4) (3) (3) 1031 (4) 1032 (2) 1033 (4) 1034 17:52 PAGE 19-24 SEQ 0469 PROCESS SUM COMMAND SUMMARY LINE MESSAGE ;+ ; IS IT A SUM COMMAND SUMMARY LINE MESSAGE? 'i 021 1022 1023 1024 (6) (9) 1025 1026 1027 1028 1029 20-SEP-78 ,' - 002510' 002510' 020427 002514' 001025 002516' 002516' 002520' 002524' 002530' 002534' 002536' 002536' 002540' 002544 1 OO?550' 002554' 002556' 002556' 002564' 002564 1 002570 1 002570' IF R4 EO HMSGSMS THEN 000016 CMP BNE R4,HMSGSMS 50023$ MOV MOV MOV JSR MOV R5,-(SP) HRNSERR,-(R5) DT.EXS(RO),-(R5) PC,8DACNV (SP)+,R5 MOV R5,-(SP) #RNSP\tJR, - (R5) DT.PFL(RO),-(R5) PC,BDACNV ;+ ; CONVERT SYSTEM ERRORS AND POWER FAILS TO ASCII ;CALL BDACNV IN <DT.EXS(RO), HRNSERR> 010546 012745 016045 004767 012605 000201 ' 000060 OOOOOOG 010546 012745 016045 004767 012605 000230' 000062 OOOOOOG 012765 000161 ' 000010 000167 000660 CALL BDACNV IN <DT.PFL(RO), #RNSPWR> MOV MOV JSR ivlC\l LET FLMSADR(R5) '- #RNSMSG MOV INLINE <JMP 1$> . ENDIF JMP 1 $ 50023$: #RNSMSG,FLMSADR( FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) FILLML.MAC 16-AUG-78 14:36 PROCESS DROP MODULE TYPE MESSAGE .SBTTL 1036 1037 1038 1039 1040 "'''II'' IV~' (3) (3) 1051 1052 1053 1054 1055 1055 (4) (6) 1057 1058 1059 1060 1061 1062 (3) (5) (4) (3) (3) 1063 (4) 1064 (2) 1065 (4) 1066 17:52 PAG~ 19-25 SEQ 0470 PROCESS DROP MODULE TYPE MESSAGE ;+ ; IS IT A DROP MODULE MESSAGE? ;- 1042 1043 1044 1045 (6) (9) 1046 1047 1048 1049 1050 (3) (5) (4) 20-SEP-78 002570' 002570' 020427 002574' 001025 IF R4 EO #MSGDRP THEN 000017 CMP BNE R4,#MSGDRP 50024$ MJV R5,-(SP) #DRPNAM,-(R5) R1,-(R5) PC,GETNAM (SP)+,RS ;+ ; GET MODULE NAME .f 002576' 002576' 002600' 002604' 002606' 0026,12 1 CALL GETNAM IN <R1,#DRPNAM> 010546 012745 010145 004767 012605 MOV 001045' MOV JSR 000644 MOV ;+ ; FORM APC ;- LET R3 .- R2 - R1 002614' 002614' 010203 0026 16 ' 1 60 1 03 MOV SL:B R2,R3 R1 ,R3 ;+ ; CONVERT DROP PC TO ASCII ;002620' 002620' 002622' 002626' 002630' 002634' 002636; 002636' 002644 1 002644' 002650' 002650' CALL BOA16 IN <R3, #DRPPC> 010546 012745 010345 004767 012605 MOV RS,-(SP) #DRPPC,-(R5) R3,-(R5) PC,BOA16 (SP)+,R5 MOV #DRPMSG,FLMSADR( MOV MOV MOV 001073' JSR OOOOOOG LET FLMSADR(R5) '- #DRPMSG 012765 001044' 000010 000167 000600 INLINE <JMP 1$> ENDIF JMP 1 $ 50024$: FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) FILLML.MAC 16-AUG-78 14:36 PROCESS CKDATA/DATACK/DATERR .SBTTL 1068 1069 1070 1071 1072 1073 1074 (6) (9) (6) (9) 1075 (2 ) 1076 (4) 1077 PAGE 19-26 SEQ 0471 PROCESS CKDATA/DATACK/DATERR ; IS IT A CKDATA/DATACK/DATERR TYPE MESSAGE? ;- IF R4 NE #MSGCKD AND R4 NE #MSGDER THEN 002650' 002650' 020427 000010 002654' 001405 002656' 020427 000005 002662' 001402 002664' 002664' 000167 002670' 002670' 000460 INLINE <JMP 339$> CMP SEQ CMP SEQ R4,#MSGCKD 50025$ R4,#MSGDER 50025$ JMP 339$ MOV MDV MOV JSR MOV R5,-(SP) #CKDNAM,-(R5) R1,-(R5) PC,GETNAM (SP)+,R5 MOV MOV MOV MOV JSR MOV R5,-(SP) #CKDPA,-(R5) R2,-(R5) RO,-(R5) PC,GETAPA (SP)+,R5 MOV SUB R2,R3 R1 , R3 IviDV RS,-(SP) #CKDVA,-(R5) R3,-(R5) PC,SDA16 ENDIF 50025$: ;+ ; GET MODULE NAME ;- 1080 (3 ) 17:52 ;+ 1078 1079 1081 1082 20-SEP-78 CALL GETNAM IN <R1, #CKDNAM> 002670' 002670' 010546 002672' 012745 (5) (4) 002676' 010145 (3) 002700' 004767 (3) 002704' 012605 001104' 000552 1083 ;+ 1084 1085 1086 1087 1088 (3) (6) (5) (4) (3) (3) ; GET A PA ;- CALL GETAPA IN <ROt R2, #CKDPA> 002706 1 002706' 010546 002710' 012745 002714' 010245 002716; 010045 001116' 002720' 004767 002724' 012605 000572 1089 1090 1091 ;+ ; FORM APC 1092 1093 1094 LET R3 .- R2 - R1 002726' ( 4) 002726' 010203 (6) 1095 1096 002730' 160103 ;+ ; CONVERT VA TO ASCII 1097 1098 1099 1100 (3) ;- CALL BOA16 IN <R3, #CKDVA> 002732' 002732' 010546 (5) 002734' 012745 001134' IV:OV (4) (3) 002740' 010345 002742' 004767 OOOOOOG JSR 1'v~DV MACY11 30A(1052) FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS PROCESS CKDATAjDATACKjDATERR 16-AUG-78 14:36 FILLML.MAC (3) 1101 1102 1103 '104 110S 1106 (3) (5) (4) (3) (3) 1107 1108 1109 1110 1111 1112 (3) (5) (4) (3 ) (3) 1113 1114 1115 '116 1117 002746' 012605 11'18 003010' 003010' 003012' 003016' 003022' 003026' 003030' 003030' 003032' 003036' 003042' 003046' 003050' 003050' 003052' 003056' 003062' 003066' (3) (5) (4) (3) (3) 1119 (3) (5) (4) (3) (3 ) 1120 (3 ) (5) (4) (3) (3) 1121 1122 1123 1124 1125 1126 (6) (9) 1127 1128 20-SEP-78 17:52 PAGE 19-27 SEQ 0472 MOV (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #CKDPAS,-(R5) PASCNT(R1),-(R5) PC,BDACNV (SP)+,R5 MOV MOV MOV JSR MIJV R5,-(SP) #CKDNUM,-(R5) SOFCNT(R1) ,-(R5) PC,BDACNV (SP)+,R5 MOV R5,-(SP) #CKDADD,-(R5) CSRA(R1),-(R5) PC,BOA16 (SP)+,R5 ;+ ; CONVERT PASS COUNT TO ASC II ., 002750' 002750' 002752' 002756' 002762' 002766' CALL BDACNV IN <PASCNT(R1), #CKDPAS> 010546 012745 016145 004767 012605 001151' 000034 OOOOOOG ;+ ; CONVERT SOFCNT TO ASC II , 002770' 002770' 002772' 002776' 003002' 003006' CALL BD~CNV IN <SOFCNT(R1), #CKDNUM> 010546 012745 016145 004767 012605 001164' 000042 OOOOOOG ;+ ; CONVERT CSRA,ASB~AWAS TO ASCII , CALL BOA16 IN <CSRA(R1), #CKDADD> 010546 012745 016145 004767 012605 010546 012745 016145 004767 012605 010546 012745 016145 004767 012605 003070' 003070' 020427 003074' 001476 MOV MOV 001200' 000100 OOOOOOG JSR MOV CALL BOA16 IN <ASB(R1), #CKDSB> MOV MOV 001214' 000106 OOOOOOG MOV JSR MOV CALL BOA16 IN <AWAS(R1), #CKDWAS> Mev MOV R5,-(SP) #CKDWAS,-(R5) AWAS(R1) ,-(R5) PC,BOA16 (SP)+,R5 CMP SEQ R4,#MSGDER 50026$ MOV MOV 001230' 000110 OOOOOOG JSR ;+ ; IF NOT A DATERR, ; GO BUILD THE PHYSICAL ADDRESSES ;IF R4 NE #MSGDER THEN 000005 R5,-(SP) #CKDSB,-(R5) AS B ( R1 ) , - ( R5) PC,BOA16 (SP)+,R5 FILLML - FILL MESSAGE (LITTLE) 16-AUG-78 14:36 FILlML.MAC 1129 1130 1131 1132 1133 , /I \ \""f} (6) 1134 1135 1136 1137 1138 1139 (6 ) 1140 (7 ) 1141 (4) (6 ) 1142 1143 (4) 1144 (4~ 1145 (4) 1146 (4) 1147 1148 114911 !50 1151 1152 1153 1154 (3) (7) (6) (5) (4) (3) (3) 1155 (4 ) (6) 1156 (6) 1157 (4) (6) 1158 (4) 1159 1160 (4) MACY11 30A(1052) TO FILL IN SKELETAL MSGS PROCESS CKDATA/DATACK/DATERR 20-SEP-78 17:52 PAGE 19-28 SEQ 0473 ;-r ; CLEAR MSB OF WORD COUNT . 003076' C1 1'\'2 v I U oJ 003076' 1'\1 003102' 042703 I \"I LET R3 := CDVJDCT(R1) CLR.BY #BIT15 000144 100000 MOV BIC CDWDCT(R1),R3 #BIT15,R3 DEC R3 ASL R3 MOV ADD R3,R4 WBL!FPA(R1),R4 MOV R4, TrIlPPA MOV WBUFEA(Rl),TMPEA MOV TMPPA,FM.PA MOV TMPEA,FM.EA rllov R5,-(SP) #CKDWRA,-(R5) FM.EA,-(R5) FM.PA,-(R5) RO,-(R5) PC,BOAC (SP)+,R5 ;+ ; FORM WRITE BUFFER FAILING ADDRESS , '- 0031'06' 003106' 003110' 003110' 003"112 ' 003112' 003114' 003120' 003120' 003124' 003124' 003132' 003132 1 003140 1 003140' LET R3 "- R3 - #1 LET R3 °- R3 SHIFT LET R4 '- R3 + WBUFPA(R1) 005303 006303 010304 066104 000134 010467 174662 LET TMPPA 016167 016767 016767 000136 174650 174644 0- R4 WBUFEA(R1) LET TMPEA 0- LET FM.PA '- TMPPA LET FM.EA '- TMPEA 174656 174652 174646 ;+ ; CONVERT WRITE ADDRESS TO ASCII ;003146' 003146 1 003150' 003154' 003160' 003164' 003166 1 003172' 003174' 003174' 003176 1 003202' 003202' 003206' 003206' 003210' 003214' 003214' CALL BOAC IN <RO,FM.PA,FM.EA, #CKDWRA> 010546 012745 016745 016745 010045 004767 012605 001245' 174634 174626 MOV MOV MOV OOOOOOG JSR MOV MOV LET R4 010204 062704 000004 067403 000000 011404 062704 .- R2 + #4 LET R3 °- R3 + @(R4) LET R4 "- (R4) + #2 000002 LET R4 "- (R4) 011404 003216' 003216' 010367 LET TMPPA := R3 174564 MOV ADD R2,R4 #4,R4 ADD @( R4) ,R3 MOV ADD (R4) ,R4 #2,R4 MOV (R4) ,R4 MOV R3,TW:PPA FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) FILLML.MAC 16-AUG-78 14:36 PROCESS CKDATAjDATACK/DATERR 1161 (4) 1162 1163 (4) 1164 (4) 1165 1166 1167 1168 1169 1170 (3) (7 ) (6) (5) (4) (3) (3) 1171 1172 1173 1174 '175 1176 (4 ) (3 ) 1177 (3) (6) (S) (4) (3) (3) 1178 (3) (6) (5) (4) (3) (3) 1179 1180 1181 (4) 1182 1183 1184 (4) 1185 (2) 1186 (2) '187 003222' 003222' 010467 003226' 003226' 016767 003234' 003234' 016767 20-SEP-78 17:52 PhGE 19-29 SEQ 0474 LET TMPEA .- R4 174562 MOV R4,TMPEA MOV TMPPA,FM.PA MOV TMPEA,FM.EA MOV MOV MOV R5,-(SP) #CKDRDA,-(R5) FM.EA,-(R5) FM.PA,-(R5) RO,-(R5) PC,BOAC (SP)+,R5 BR 50027$ MOV R5,-(SP) #CKDWRA,-(R5) SBADR(R1) ,-(R5) LET FM.PA .- TMPPA 174554 174556 174550 174552 LET FM.EA .- TMPEA ;+ ; CONVERT READ ADDRESS TO ASCII ;- 003242' 003242' 003244' 003250' 003254' 003260' 003262' 003266 1 CALL BOAC IN <RO, FM.PA,FM.EA. #CKDRDA> 010546 012745 016745 016745 010045 004767 012605 001264' 174540 174532 MOV MOV MClV JSR OOOOOOG ;+ ; IT'S A DATERR. SO GET SBADR AND WASADR ;- 003270' 003270' 003272' 003272' 003272' 003274' 003300' 003304' 003306' 003312' 003314' 003314' 003316' 003322' 003326' 003330' 003334' ELSE 000422 500265: CALL GETAPA IN <RO,SBADR(Rl),#CKDWRA> 010546 012745 016145 010045 004767 012605 010546 012745 016145 010045 004767 012605 MOV MOV 000204 CALL GETAPA IN <RO,WASADR(R1),#CKDRDA> 001264' 000104 PC,GETAPA MOV (SP)+,R5 MOV MOV MOV R5,-(SP) #CKDRDA,-(R5) WASADR(R1 ),-(R5) RO,-(R5) PC,GETAPA (SP)+,R5 JSR MOV ENDIF 50027$: LET FLMSADR(R5) .- #CKDMSG #CKDMSG,FLMSADR( 001103' 000010 INLINE <JMP 1$> 000100 INLINE <339$:> RO,-(R5) JSR MOV 000162 003336' 003336' 003336' 003336' 012765 003344' 003344' 000167 003350' 003350' Mev 001245' 000102 JMP 1 $ 339£: FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) FILLML.MAC 16-AUG-78 14:36 PROCESS CKDATA/DATACK SUMMARY LINE .SBTTL ;+ ; IS IT THE CKDATA/DATACK SUMMARY LINE? 1194 "1 (9) 1 i 97 (4 ) (6) 1198 003350' 003350' 0033541 003356' 003356' 003362' (3) (5) (4) (3) (3) 1204 1205 1206 1207 1208 1209 (3) (5, (4) (3) (3) 1210 1211 1212 1213 1214 (3 ) (5) (4) (3) (3) 1215 (4) 1216 (4) PAGE 19-30 SEQ 0475 IF R4 EQ #MSGCKS THEN 020427 001035 000011 016103 042703 000146 100000 CMP BNE R4,#MSGCKS 50030$ MOV BIC CDERCT(R1),R3 #BIT1.5,R3 MOV MOV MOV JSR MOV RS,-(SP) #CKDSNAM,-(R5) R1,-(R5) PC,GETNAM (SP)+,R5 MOV MOV R5, -( SP.) #CKDSCNT,-(RS) R3,-(R5) PC,BDACNV (SP)+,R5 LET R3 := CDERCT(R1) CLR.BY #BIT15 ;+ ; GET THE MODULE NAME 1199 1200 1201 1202 1203 17:52 PROCESS CKDATA/DATACK SUMMARY LINE 1189 1190 1191 1192 1193 1195 1196 (6) 20-SEP-78 ;- 003366' 003366' 003370' 003374' 003376' 003402' CALL GETNAM IN <Rl,#CKDSNAM> 010546 012745 010145 004767 012605 001276 1 000054 ;+ ; CONVERT SUMMARY COUNT TO ASCII ;003404' 003404' 003406' 003412' 003414' 003420' 003422' 003422' 003424' 003430' 003434' 003440' 003442' 003442' 003450' 003450' CALL BDACNV IN <R3, #CKDSCNT> 010546 012745 010345 004767 012605 001310' MOV JSR MOV OOOOOOG ;+ ; CONVERT NUMBER OF LOCATIONS READ TO ASCII ;CALL BDACNV IN <RBUFSZ(R1),#CKDSRD> 010546 012745 016145 004767 012605 MOV R5,-(SP) #CKDSRD,-(R5) RBUFSZ(Rl) ,-(R5) PC,BDACNV (SP)+,RS MOV HCKDSMSG,FLMSADR MOV MOV MOV 001334' 000132 .,JSR OOOOOOG LET FLMSADR(R5) "- #CKDSMSG 012765 001276' 000C10 ENDIF 50030$: FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) 20-SEP-78 FILLML.MAC 16-AUG-78 14:36 DO THE NECESSARY CLEAN-UP AND THEN RETURN 1218 1219 1220 1221 1222 .SBTTL 17:52 PAGE 19-31 SEQ 0476 DO THE NECESSARY CLEAN-UP AND THEN RETURN 1 ')')':) ILL.,.} 1224 1225 1226 1227 1228 1229 (2) 1230 (3) 1231 (3) (3) (2 ) 1232 ;+ ; NOW THAT WE1VE FILLED-IN THE BLANK FIELDS, DO THE CLEAN UP AND RETURN ., 003450 1 003450 1 003450 1 003450 1 004767 003454 1 003454 1 003454 1 003454 1 000207 INLINE <1$:> 1$: CALL RESREG OOOOOOG ENDRTN JSR PC,RESREG RTS PC 500005: 50001$: FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS FILLML.MAC 16-AUG-78 14:36 GET MODULE NAME 1234 1235 1236 1237 1238 1239 1240 1241 (2 ) 1242 1243 1244 1245 1246 1247 (3) 1248 1249 1250 1251 1252 1253 (4) 1254 (4 ) 1255 (4) 1256 (4) (6) (9) 1257 (4 ) 1258 (6) 1259 (4) (3 ) 1260 1261 1262 1263 1264 (3) 1265 (3) (3) (2) 1266 1267 .SBTTL MACY11 30A(1052) 20-SEP-'l8 17:52 PAGE 19-32 SEQ 0477 GET MODULE NAME ;+ ; THIS ROUTINE RETRIEVES THE MODULE NAME FROM THE MODULE'S HEADER AND ; STORES IT IN THE CALLER SUPPLIED STORAGE AREA . "- ROUTINE GETNAM <HDRADR, RSLTADR> 003456' 003456' GETNAM: ;+ ; SAVE REGISTERS , 0- 003456' 003456' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV HDRADR(R5),RO ;+ ; GET HEADER AODRo, MOVE 5 CHARS TO RESULT ADDR. ;- 003462' 003462' 003466' 003466 1 003472' 003472' 003476' 003476' 003476' 003500' 003502' 003502' 003504' 003504' 003506' 003506' 003510' LET RO "- HDRADR(R5) 016500 000000 016501 000002 012702 LET R1 "- RSLTADR(R5) MOV RSL TADR(R5) ,R1 '.":-\\1 iViUV rr TST BLE R2 MOVe (RO)+, (R1)+ DeC R2 BR 50002$ JSR PC,RESREG RTS PC LET R2 "- #"0<5> 000005 J.J.""'r"'\/'c:: ...... rJI"J ..,; ...... ....J't", WHILE R2 GT #0 DO 50002$: 005702 003403 LET (R1)+ :B= (RO)+ 112021 50003$ LET R2 := R2 - #1 005302 ENDDO 000773 50003$: ;+ ; RESTORE REGISTERS 003510' 003510' 004767 003514' 003514' 003514' 003514' 000207 CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) 20-SEP-78 FILLMl.MAC 16-AUG-78 14:36 CONVERT VIRTUAL ADDRESS TO PHYSICAL ADDRESS ASCII . SBTT l 1269 1270 1271 1272 1273 (4) (3) (3) 1296 (3) (7 ) (6) (5) (4) (3) (3 ) 1297 1298 1299 1300 1301 (3) 1302 (3) (3) (2) 1303 PAGE 19-33 SEQ 0478 CONVERT VIRTUAL ADDRESS TO PHYSICAL ADDRESS ASCII ,• ..t... ; THIS ROUTINE ACCEPTS A i6-BIT VIRTUAL ADDRESS AND RETURNS AN 8-BYTE PHYSICAL ADDRESS IN THE CALLER SUPPLIER STORAGE AREA ;- , (22 BIT) 1274 1275 1276 1277 (2) 1278 1279 1280 1281 1282 1283 1284 (3) 1285 1286 1287 1288 1289 (4) 1290 (4) 1291 (4) 1292 1293 1294 1295 (3) (5) 17:52 ROUTINE GETAPA <DTABLE, VA, RSLTADR> 003516' 003516' GETAPA: ;+ ; SAVE REGISTERS ;- 003516' 003516' 004767 CALL SAVREG OOOuOOG JSR PC,SAVREG MOV DTABLE(R5),RO MOV RSLTADR(R5),R1 MOV VA( R5) ,TMPVA MOV MOV MOV JSR MOV R5,-(SP) #TMPVA,-(R5) RO,-(R5) PC,GPA (SP)+,R5 MOV MOV MOV MOV JSR MOV R5,-(SP) R1,-(R5) TMPEA,-(R5) TMPPA,-(R5) RO,-(R5) PC,BOAC (SP)+,R5 JSR PC,RESREG RTS PC ;+ i SAVE DTABLE ADDR,RESULT ADDR , 003522' 003522' 016500 003526' 003526' 016501 003532' 003532' 016567 LET RO .- DTABLE(RS) LET R1 .- RSLTADR(R5) 000000 000004 LET TM?VA 000002 .- VA(R5) 174244 ;+ ; CONVERT TO PA AND THEN TO ASCII T 003540' 003540' 003542' 003546' 003550' 003554' 003556' 003556' 003560' 003562' 003566' 003572' 003574' 003600' CALL GPA IN <RO, #TMPVA> 010546 012745 010045 004767 012605 000004' OOOOOOG CALL BOAC IN <RO, TMPPA, TMPEA, R1> 010546 010145 016745 016745 010045 004767 012605 174222 174214 MOV OOOOOOG j+ ; RESTORE REGISTERS , 003602' 003602' 004767 003606: 003606' 003606' 003606' 000207 CALL RESREG OOOOOOG ENDRTN 50000:$ : 50001$: FILLML - FILL MESSAGE (LITTLE) - TO FILL IN SKELETAL MSGS MACY11 30A(1052) 20-SEP-78 FILLML.MAC 16-AUG-78 14:36 CONVERT VIRTUAL ADDRESS TO PHYSICAL ADDRESS ASCII 1304 000001 .END 17:52 PAGE 19-34 SEQ 04i9 FILLML -: FILL MESSAGE (LITTLE) 16-AUG-78 14:36 FILlML.MAC 000102 004000 001000 000006 000004 APT?R~= 000200 000106 ASS ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS BDACNV= ****** G 000001 BITO 000001 BITOO 000002 BIT01 000004 BIT02 BIT03 = 000010 000020 BIT04 000040 BIT05 000100 BIT06 000200 Bli07 BIT08 000400 001000 8IT09 BIT1 000002 002000 BITi0 BIT11 004000 010000 8IT12 020000 BIT13 8IT14 040000 BIT15 100000 BIT2 000004 000010 B1T3 000020 BIT4 000040 BITS 000100 BIT6 000200 8IT7 000400 BIT8 001000 B1T9 000002 BKCEF BKrvlOD 000020 BKMODE= 040000 BKSLSH= 000134 BOAC ****** G BOA16 = ****** G CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDlhDCT= 000144 CKDADD 001200R CKOMSG 001103R CKDNAM 001104R CKDNUM 001164R ACSR ACTSIT= ADDR22= ADR APTFER= - TO FILL IN SKELETAL MSGS 001116R 001151R 001264R 001214R' 001310R CQ1276R CKDSMS CKDSNA 001276R CKDSRD 001334R 001134R CKDVA CKDWAS 001230R CKDWRA 001245R CKHUNG= ****** G CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF CR = 000015 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DATADD 000415R DATAMS 000314R DATAPC 000345R DATCON 000432R DATEND 000476R DATERR 000467R DATNAM 000315R DATNUM 000401R DATPAS 000362R 000327R DATPC DATSTA 000450R DATTYP 000370R DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DRoprv'iO= 100000 DRPMSG 001044R DRPNAM 001045R 001073R DRPPC DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 CKDPA CKDPAS CKDRDA CKDSB CKDSCN MACY11 30A(1052) 20-SEP-78 17:52 PAGE 20 SEQ 0480 SYMBOL TABLE DT.FCH= 000037 DT. FCN,= 000035 DT.HMX= 000104 DT.KBE= 000024 DT.KB?= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT. MiI'= 000110 Dr.OFF= 0'00070 DT.PAS:::: 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.R.EL= 000040 DT.SCT= 000066 DT.siVlx= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.STi= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 Di • ~~riL'" vuvv:;;..., DT.Wl..L= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 EQPMSG 000016R EOPNAM 00OO17R cOPPAS COOO37R ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 EXTEND 001043R EXTMSG 000477R FATERR= 100000 FILLMS 001356RG FLDCNT OOOOOOR FLDMAX= 000010 FLMSAD= 000010 000014R FM.EA 000012R FM.PA "",;",,\r"'\r::"JII GETAPA ,003516R GETNAM 003456R GPA ****** G HDRADR= 000000 HDRMSG 000237R HDRNAM 000240R 000252R HDRPA HDRPAS 000305R Oo.0270R HDRPC HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT 00;)120 INTR 100000 I DrYlOD IONlODP= 102000 IOMODR= 112000 IOMODX= 110000 035C60 JJ~CK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 K1PDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LINECN 000002R LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 004000 002000 001000 000004 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 P~IO 000040 PRI1 000200 PRI4 000240 PRI5 P~I6 000300 000340 PRI? 000000 PRO PR4 = 000200 000240 PR5 000300 PR6 000340 PR7 177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000130 MODEXH= MODHO L= MODSEL= MSGADR= MSGCKD= MSGCKS= iviSGDER= MSGDRP= 1\1SGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= I\1SGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSG'jEC= !'J8KMOD= NCPUOP= NOAPTY= N'JLL O.vEN P!\ERR PAR"'RE= PARSTA= PASCNT= PJPLSI= PDP60 PDP70 FILlML - FILL MESSAGE (LITTLE) - TO FILL IN SKEL~TAL MSGS FILLMLoMAC 16-AUG-78 14:36 SYMBOL TABLE SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 S C . C LO = 00 00 00 SC.HLD= 000010 SC.SCA= 000012 SENDLS=177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 SRO 177572 SR1 177574 SR2 177576 SR3 172516 STAT 000026 STATBI: 064757 STAT1 - 000027 SUSPND= 000001 SVRO 000062 SVRl 000064 SVR2 000066 SVR3 000070 SVR4 000072 SVR5 000074 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDVJrlMI= 000022 RELERR= 000020 RELMOD= 020000 RELTIM= 010000 RESREG= ****** G 000056 RESl RES2 000060 R:CHAR= 031060 RNBHRD OC0135R RNBMSG 000050R RNBNAM 000051R RNBPAS 000117R 000066R RNBPC RNBSFT 000153R RNBSTA 000102R RNHMSG 000046R RNSERR 000201R RNS:vI5G 000161R RNSPWR 000230R RPTDAT= 002000 RSLTAD= 000004 RSTRT = 000112 Ru80UT= COOi77 RUNMOD= 100000 R5VALU= 001740 SAM 075464 SAVREG= ****** G SBADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SCoALC= 000014 ABS. 000000 003610 n.."" 1'\"..., C. VUVUIV SYSCNT= SYSERR= TMPEA TMPIO TMPPA TMPVA TMPl TQOVF TYPCOD= 000052 000100 000010R 000002 000006R 000004R 000004R 000002 000002 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:FILLML,DSKZ:FILLML=SPMAC/ML,EQUATE,FILLML RUN-TIME: 30 20 05 SECONDS RUN-TIME RATIO: 89/51=1.7 CORE USED: 14K (27 PAGES) MACY11 30A(10S2) UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 1776S0 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDRS= 177612 UIPDR6= 177614 UIPDR7= 177616 000002 VA WASADR= OC0104 ~IJBST AT= 000040 WSUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WOFR WOTQ 000114 WTINRE= 000352 WTWHM!= 000222 XFLAG = 000005 XOFF 000023 XCN 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 SFSBAD= 000401 $F$BLA= 000170 $F$CAS= 000150 20-SEP~78 17:S2 PAGE 20-1 SEQ 0481 $F$DEC= 000220 S:=-SDO = 000340 $F$FAL= 00{)405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $FSOR = 000320 $FSRTI= 000350 $F$RTN= 000300 SfSSEL= 000140 $F$T'HE==' 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $ IF LEV= 177777 $ISKO = 000001 SISK1 = 000001 SISK2 = 000001 $ LOCT A= 177777 $LSTIN= 000001 $LSTTA= 000001 SNESTL= 177777 $NSKO 000300 $NSK1 000120 $NSK2 000110 $NSK3 000120 SNSK4 000120 SNSK5 000120 $NSK6 000110 $SAVLE= 177777 $SSKO = 050003 $TAGLE- 177777 $TAGNU= 050002 STEMP = 000300 $TSKO = 050002 $TSKl = 050003 $TSK10= 050020 050012 $TSK2 050013 $TSK3 OS0014 STSK4 050015 $TSK5 050016 $TSK6 OS0017 $TSK7 $$ARGC= 000006 $SBYTE= 000403 $SCASE= 000000 000000 S$OST S$ELOC= 000402 $$ERFL= 000000 S$FLAG= 000340 $$FR8M= 000000 $$LOC = 003500R SSLDCN= 000000 $SR::G = 177777 $$RETU= 000000 $$RTi\l1= 050000 $$RTN2= 050001 $$SRC = 000000 $STGSV= 000000 $$TGS1= 000000 $$TGS2= 00000~ 000000 $$TO S$$TAG= 050000 003610R = = = .MAIN. MACYi1 30'A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 565 569 620 635 642 659 668 681 707 714 723 730 741 748 773 786 808 860 900 983 1037 1051 1081 1101 1133 1146 1173 1201 1335 1364 1380 1415 1466 1520 17:53 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS' AND REFERENCES 000000 1 .PRINT jSPMAC: VERSION 1.1 MESSAGE - END-OF-PASS MESSAG.E - SUM COMMAND HEADER LI NE MESSAGE - SUM COMMAND MODULE LINE MESSAGE - SUM COMMAND SUMMARY LINE MESSAGE - COMMON HEADER MESSAGE - HRDERR,SOFERR MESSAGE - HRDERR,SOFERR,EXTENSrON MESSAGE - DROP MODULE MESSAGE - BAD VECTOR MESSAGE - MAP COMMAND MESSAGE - HUNG MODULE MESSAGE - CKDATA,DATACK,DATERR MESSAGE - CKDATA/DATACK SUMMARY LINE FILLMSG - FILL-IN THE BLANKS ROUTINE PROCESS END-OF-PASS TYPE MESSAGE PROCESS COMMON HEADER TYPE MESSAGE PROCESS HRDERR,SOFERR PROCESS HRDERR, SOFERR EXTENDED PRINTOUT MESSAGES? PROCESS SUM COMMAND TYPE MESSAGES PROCESS SUM COMMAND MODULE LINE MESSAGE PROCESS SUM COMMAND SUMMARY LINE MESSAGE PROCESS DROP MODULE TYPE MESSAGE PROCESS HUNG MODULE MESSAGE PROCESS BAD VECTOR TYPE MESSAGE PROCESS MAP COMMAND TYPE MESSAGE PROCESS CKDATA/DATACK/DATERR PROCESS CKDATA/DATACK SUMMARY LINE DO THE NECESSARY CLEAN-UP AND THEN RETURN GET MODULE NAME GET ELASPED TIME GET MODULE'S PASS TIME CONVERT VIRTUAL ADDRESS TO PHYSICAL ADDRESS ASCII SEQ 0482 FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES FILLMS.MAC 15-AUG-78 16:52 COMMON EQUATE MODULE MACY11 30A(1052) 508 509 510 .TITlE FIlLMS - MODULE TO FILL IN .IDENT /VO.O/ 511 ;++ 512 513 514 515 516 517 518 519 520 521 522 523 524 525 538 539 540 541 542 543 544 545 546 547 548 549 55.0 551 552 553 554 555 556 557 558 559 560 561 562 563 FIELDS IN SKELETAL MESSAGES INPUTS: 1. DATA TABLE 2. MSG TYPE CODE 3. MSG ADDR/SPECIAL VALUE 4. MODULE'S HDR ADDR IMPLICIT INPUTS: STATUS INDICATOR WORD 0 OUTPUTS: 1. ADDRESS OF FILLED-IN MESSAGE 535 536 537 PAGE 19 FUNCTIONAL DESCRIPTION: THIS ROUTINE IS RESPONSIBLE FOR FIIllING IN THE BLANK FIELDS OF THE MONITOR GENERATED SKELETAL MESSAGES. THE TYPES OF S~ElETAl MESSAGES SUPPORTED ARE: 1. END OF PASS 2. HARD ERROR 3. SUM COMMAND 4. SOFT ERROR 5. COMMON HEADER 6. DROP MODULE 7. DATA ERROR 8. BAD VECTOR 9. MAP SUMMARY 10. CKDATA CALL 527 531 532 533 534 17:53 MODULE NAME: FILLMSG 526 528 529 530 BLAN~ 20-SEP-7B IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: 1. BDACNV 2. UPDTIM 3. CKHUNG 4. BOAC 5. GPA 6. SAVREG 7. RESREG 8. UNIPA ;8INARY TO DECIMAL ASCII CONVERSION ;UPDATE MODULE'S END-OF-PASS TIME iCHECK FOR HUNG OPTION MODULES ;BINARY TO OCTAL-ASCII CONVERSION ;GET PHYSICAL ADDRESS , ;GET UNIBUS PHYSICAL ADDRESS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL FILLMSG IN <DTABLE,TYPCODE.MSGADDR,HDRADDR> OUT <FILMSGADR> VERSION: 0.0 EDIT ;-- BY DATE REASON SEQ 0483 FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FILLMS.MAC 15-AUG-78 16:52 COMMON DEFINITIONS AND REFERENCES 565 566 567 568 569 (1) 000000' 000000' COMMON DEFINITIONS AND REFERENCES .~RINT .MCALL STRUCT STRUCT ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG = 1 000001 000001 570 57~ 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 17:53 PAGE 19-1 , ;**************** , ; REFERENCED BY OTHER MODULES , .GLOBL FILLMSG , ;**************** , ;MODULE'S ENTRY POINT ; GLOBAL REFERENCES .GLOBL .GLOBL .GLOBL .GLOBL BDACNV BOA16 BOAC CKHUNG ·UL...v ..... I.... GPA ,.., ""'0' ;BINARY TO DECIMAL ASCI! CONVERSION ROUTINE ;BINARY TO OCTAL-ASCII CONVERSION ROUTINE ;BINARY TO OCTAL ASCII CONVERSION ;CHECK FOR HUNG MODULES ROUTINE ;GET PHYSICAL AQDRESS ROUTINE ;GET TIME ROUTINE ;GET PASS TIME ROUTINE ;UPDArE MODULES PASS TIME ROUTINE .GLOBL PRHMS .GLOBL PRPSCN .GLOBL UPDTIM .GL03L SAVREG .GLOBL RESREG .GLOBL UNIPA 59~ 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 .SBTTL 20-SEP-78 , ;GET UNIBUS PHYSICAL ADDRESS ;**************** , . ; LOCAL EQUATES: 000010 FLDMAX = iMAX FIELDS PER LINE ~D<8> ;**************** , ; LOCAL STORAGE , 000000' 000002' 000004' 000004' 000006' 000010' 000012' 000014' 000000 000000 000000 000000 000000 000000 000000 FLDCNT: .WORD LINECNT: .WORD TMP1 : TMPVA: .WORD TMPPA: .WORD TMPEA: .WORD FM.PA: .WORD FM.t:A: .WORD 0 0 a 0 0 0 0 ;**************** ;FIELD COUNTER ; LINE COUNTER ;STORAGE WORD ;STORAGE/VIRTUAL ADDRESS ;STORAGE/PHYS:CAL ADDRESS ;STORAGE/EA BITS ;STORAGE - PHYS. ADDR. ;STORAGE - EA BITS SEQ 0484 FILlMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES FILlMS.MAC MESSAGE - END-OF-PASS 15-AUG-78 16:52 620 621 622 623 624 625 626 627 628 629 630 631 632 633 000016 1 045 000017 1 000005 0000241 042440 000032 1 051501 000037 1 000005 0000441 020056 000052 1 04651,1 000057 ' 000011 000070' 050040 000076' 035105 000101 ' 0000'1 000112' 000045 042116 020123 050040 043 052522 035105 052116 040 052123 040 046511 MACY11 30A(1052) . 58TT l MESSAGE - END-OF-PASS EOPM5G: EOPNAM: .ASCII /%/ AD<5> .BlKS i END PASS #/ • ASCII EOPPAS: .BlKB · ASCII AD<5> /. RUNTIME: / EOPTIM: · BlKS · ASCII AD<9> / PSTIME: / EOPPST: AD<9> /%/ .8lKS .ASCIZ 20-SEP-78 17:53 PAGE 19-2 SEQ 0485 FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FILLMS.MAC 15-AUG-78 16:52 MESSAGE - SUM COMMAND HEA)ER LINE 635 636 637 638 639 640 000114' 000122' 000130' 000136' 000141 ' 000152' 051445 054522 052522 035105 000011 000 046525 040440 052116 040 040515 020124 046511 .SBTTL MESSAGE - SUM RNHMSG: .ASCII RNHTIM: .BlKS .BYTE COM~!lAND 20-SEP-78 17:53 SEQ 0486 HEADER LINE /%SUMMARY AT RUNTIME: / -D<9> 0 PAGE 19-3 ;ASCII TERMINATOR FIllMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FI lLMS .MAC 15-AUG-78 16:52 MESSAGE - SUM COMMAND MODULE LINE 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 1 000153 000154 1 000161' 000166' 000171 ' 000177' 000204' 000205' 000213' 000220' 000222' 000227' 000234' 000240' 000245' 000252' 000256' 000263' 045 000005 040 035101 000006 040 040 000006 040 021440 000005 040 051122 000005 040 051122 000005 000 .SBTTl MESSAGE - SUM RNBMSG: RNBNAM: .ASCII /%/ "D<5> .BlKB . ASCII / AT VA: / RNBPC: .BlKS .ASCII "D<6> / STAT / RNBSTAT: "D<6> / PASS 052101 040 053040 052123 052101 040520 051523 .BLKB .ASCII 051110 020123 042504 RNBPAS: .BlKB . ASCII 043123 020123 042524 CO~~AND HI ~D<5> / HRDERRS I RNBHRD: .BlKS .ASCII "'D<5> / SFTERRS I RNBSFT: "'D<5> .BlKB .BYTE 0 MODULE LINE 20-SEP-78 17:53 PAGE 19-4 SEQ 0487 MACY11 30A(1052) FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MESSAGE - SUM COMMAND SUIV:MARY LINE 15-AUG-78 16:52 FILLMS.MAC 659 660 661 662 663 664 665 666 000264' 000272' 000300' 000304' 000311 ' 000316' 000324' 000332' 000333' 000340' 051445 020115 051522 000005 040 047520 040506 040 000005 000045 051531 051105 020072 042524 047522 020040 042527 046111 020040 020122 035123 .SBTTL MESSAGE - RNSMSG: .ASCII RNSERR: .BLKB 1II.l""'''T,. .I-\;;)~J.l. RNSPWR: SUM COMMAND SUMMARY LINE /%SVSTEM ERRORS: / "'0<5> / I -D<5> .BLKB .ASCIZ /%/ POWER FAILS: I / 20-SEP-78 17:53 PAGE 19-5 SEQ 0488 MACY11 30A(1052) FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MESSAGE - COMrJiON HEADER 15-AUG-78 16:52 FILLMS.MAC 668 669 670 671 672 673 674 675 676 677 678 679 .SBTTL 000342' 000343' 000350' 000355' 000365' 000372' 000373' 000401 ' 000406' 000410' 000415' 045 000005 050040 000010 040 040 000006 040 021440 000005 045 035101 040 050101 035103 040520 051523 HDRMSG: . ASCII /%/ "'0<5> HDRNAM: .BLKB .ASCII / PA: / -0<8> HDRPA: .BlKS .ASCII / APe: / HORPC: 000 MESSAGE - COMMON HEADER .BlKS 6 .ASCII / PASS #/ "0<5> HDRPAS: .BlKS .ASCIZ /%/ 20-SEP-78 17:53 PAGE 19-5 SEQ 0489 MACY11 30A(1052) FIllMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MESSAGE - H~DERR,SOFERR 15-AUG-78 16:52 FILLMS.MAC 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 70S .SBTTL 000417 1 000420 1 000425 1 000432 1 000442; 000450 1 000456 1 000464 1 000465 1 000472 1 000473 1 000477 1 000504 1 000511 I 000516 1 000520 1 000526 1 000534 1 000535 1 000543 1 000550 1 000553 1 000561 I 000566 1 000572 1 000600 1 000601 1 045 000005 040 000010 040440 000006 050040 043 000005 040 000004 040 000005 045 020072 000006 041440 040 0000C6 040 035124 000006 040 050131 000006 045 000 040520 020072 041520 020072 051501 020123 MESSAGE - DATAMSG: DATNAM: .BLKS · ASCII DATPC: .BLKS .ASCII OATAPC: .BLKS · ASCII 20-SEP-78 '7:~;;5 I-'Ali~ SEQ 0490 HRDERR,SOFERR .ASCII 1%/ .... D<5> I PA: I . . 0<8> / APe: I . . 0<6> / PASS HI 051105 021522 051503 040522 .... 0<5> .SlKS .ASCII I I .... 0<4> OATTYP: .BlKS .ASCII I ERR#I .... 0<5> OATNUM: .BLKB .ASCII /%CSRA: I 051123 035103 DATADD: .BLKS .ASC!! 051501 040 040524 051105 020072 052122 DATPAS: "'D<6> / CSRC: ;OATA, HARD, SOFT I "'0<6> DATCON: .BLKB · ASCII I ASTAT: I DATSTAT: .BLKS .ASCII I ERRTYP: I DATERR: DATEND: .BlKB · ASCII .BYTE "'0<6> . . 0<6> 1%1 0 1';:;-' ;END OF MESSAGE INDICATOR FIlLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FIlLMS.MAC 15-AUG-78 16:52 MESSAGE - HRDERR,SOFERR,EXTENSION 707 708 709 710 711 712 .SBTTL 000602 1 000602 1 000344 001146 1 000 MESSAGE - HRDERR,SOFERR,EXiENSION EXTMSG: .BlKS . . 0<228> EXTEND: .BYTE 0 20-SEP-78 17:53 PA~= 1~-~ SEQ 0491 FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES r. 1ESSAGE . - DROP MOCUlE FIllMS.MAC 15-AUG-78 16:5.2 714 715 716 717 718 719 720 721 .SSTTl 00.1147' 001150' 001155 1 001162' 001170' 001176' 001204' 045 000005 040 042520 040440 000006 000045 051104 020104 041520 050117 052101 020072 MACY11 30A(1052) MESSAGE - DROP MODULE DR.PMSG: .ASCII /%/ AD<S> DRPNAM: .BlKS .ASCII 1 DROPPED AT APC: / DRPPC: -D<6> .BlKB .ASCIZ 1%/ 20-SEP-78 17:53 PAGE 19-9 SEQ 0492 FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES FILLMS.MAC 15-AUG-78 16:52 MESSAGE - BAD VECTOR 723 724 725 726 727 728 .SBTTL 1 001206 041045 001214 1 041505 001222 1 040 001223 1 000006 001231' 045 042101 047524 000 053040 035122 MESSAGE - MACY11 3CA(1052) BAD VECTOR BADVMSG: .ASCII /%BAD VECTOR: / -0<6> BADVCT: .BlKS .ASCIZ /%/ 20-SEP-78 17:53 PAGE 19-10 SEQ 0493 FIllMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES FILlMS.MAC 15-AUG-78 16:52 MESSAGE - MAP COMMAND 730 731 732 733 734 735 736 737 738 739 • SSTT L 001233' 001234' 001241' 001246' OOi25i' 001257' 001264' 001266' 001274' 045 000005 040 035101 000006 040 020072 000006 000 052101 040 053040 052123 052101 MACY11 30A(1052) MESSAGE - MAP COiv'iiViAND MAPMSG: • ASCII /%/ "0<5> MAPNAM: .BlKB . ASCII / AT VA: / f,1APPC: .BLKS "D<6> .ASCII / STAT: / . . . 0<6> MAPSTT: .BlKB .BYTE 0 20-SEP-78 17:53 PAuc :~-11 SEQ 0494 FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES FILLMS.MAC 15-AUG-78 16:52 M~SSAGE - HUNG MODULE 741 742 743 744 745 746 .S8TTL 001275' 045 001276' 000005 040 001303' 001310' 047125 00;3;6 1 050117 001324' 000 051511 027507 042520 044040 051104 022504 MACY11 30A(1052) MESSAGE - HUNG MODULE HNGMSG: .ASCII /%/ HNGNAM: .BlKS ~D<5> .ASCIZ I IS HUNG/DROPPED%1 20-SEP-78 17:53 PAGE 19-12 SEQ 0495 MACY11 30A(1052) FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MESSAGE - CKDATA,DATACK,DATERR 15-AUG-78 16:52 FILLMS.MAC 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 001325' 001326 1 001333 1 001340 1 001350= 001356' 001364' 001372 1 001373' 001400 1 001406' 001413' 001420' 001422' 001430' 001435' 001444' 001452' 001460' 001466' 001467' 001477' 001504' 001506' 001516' 045 000005 040 000010 040440 000006 050040 043 000005 042440 000005 045 020072 000006 051440 000006 053440 000006 053440 040 000010 040 020122 000010 000045 040520 020072 041520 ,.,n ...... ,,"" U"::UU/":: .SBTTL MESSAGE - CKDATA,DATACK,DATERR CKDMSG: CKONAM: .ASCII .BlKS .ASCII .BLKS .ASCII .BLKS .ASCII CKOPA: CKDVA: 051501 020123 0511'22 021440 051503 040522 041057 020072 051501 020072 040522 051104 042122 042101 1%1 -0<5> I PA: I "'0<8> / APe: I .... 0<6> I PASS HI I CKOPAS: .BlKB · ASCII CKDNUM: .BlKS .ASCI! . . . 0<5> I ERR #1 "0<5> I%CSRA: I .BLKS .ASCII CKOSB: · BlK8 · ASCII CKOWAS: .BlKS .ASCII "'0<6> CKOAOO: II SIB: Ii "'0<6> I WAS: 1 . . . 0<6> I WRADR I CKDWRA: .SlKS .ASCII "0<8> I ROADR CKDRDA: • SlKS .ASCIZ 1%1 "0<8> I 20-SEP-78 17:53 PAGE 1~-1;;S SEQ 0496 FILlMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FIlLMS.MAC 15-AUG-78 16:52 MESSAGE - CKDATA/DATACK SUMMARY LINE 773 774 775 776 777 778 779 780 781 782 783 784 .SBTTL 1 001520 001520 1 001525 1 001532 1 001537 1 001544 1 001552' 001556 1 001563' 001570' 001576' 000005 040 000005 040 051522 047440 000005 040 020123 000045 040510 020104 05" 05 047440 020106 047522 052125 047527 042522 042122 042101 20-SEP-78 MESSAGE - CKDATA/DATACK SUMMARY LINE CKDSMSG: CKDSNAM: .BlKB ~D<5> .ASCII / HAD / CKDSCNT: .BLKB AD<5> .ASCII I / ERRORS OUT OF / CKDSRD: .BlKB -D<5> .ASCIZ / WORDS READ%/ .EVEN '1:~~ ~~~~ 1~-1~ SEQ 0497 FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FILLMS.MAC 15-AUG-78 16:52 FILLMSG - FILL-IN THE BLANKS ROUTINE .SBTTL 786 787 788 789 790 791 001600' (2) 00;600; 792 793 794 795 796 797 798 799 800 (3) 801 (4) 00~620' (4) 803 (4) 805 806 PAGE 19-15 SEQ 0498 FILLMSG - FILL-IN THE BLANKS ROUTINE ROUTINE FILLMSG <DTABLErTYPCODE, MSGADR, HDRADR,FLMSADR> , 804 (4) 11:53 ;+ ; SAVE REGISTERS AND SAVE DTABLE,ADR,MSGAwR AND TYPCODE 001600' 001600' 001604' 001604' 001610' 001610' 001614' 001614' 001620' 802 20-SEP-78 CALL SAVREG 004767 016500 016501 OOOOOOG LET RO . - DTABLE(RS) LET R1 .- HDRADR(R5) 000000 000006 .- MSGADR(R5) LET R4 . - TYPCODE(R5) JSR PC,SAVREG MOV DTABLE(R5),RO MOV HDRADR(R5),R1 MOV MSGADR(R5),R2 MOV TYPCODE(R5),R4 LET R2 016502 000004 016504 000002 FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FILLMS.MAC 15-AUG-78 16;52 PROCESS ENO-OF-?ASS TYPE MESSAGE .S8TTL 80B 809 810 811 812 813 (4) (3) (3) 825 826 (3) (3) PAGE 19-16 SEQ 0499 PROCESS END-OF-PASS TYPE MESSAGE 1~''-'L.lV 001624' 001624' 020427 001630' 001057 ...;J IF R4 EQ #MSGEOP THEN 000013 CMP BNE R4,#MSGEOP 50002$ MOV MOV MOV JSR MOV R5,-(SP) #EOPNAM,-(R5) R1,-(R5) PC,GETNAM (SP)+,R5 MJV MOV MOV JSR MOV R5,-(SP) #EOPPAS,-(R5) PASCNT(R1),-{R5) PC,BDACNV (SP)+,R5 MOV R5,-(SP) #EOPTIfl'1,-(R5) RO,-(R5) PC,GETETIM (SP)+,R5 ;+ ; GET MODULE NAME , 0- 001632' 001632 1 001634' 001640' 001642' 001646' CALL GETNAM IN <R1, #EOPNAM> 010546 012745 010145 004767 012605 000017' 002406 ;+ : CONVERT PASS COUNT TO DECIMAL ASCII 827 828 829 (3 ) (5) (4 ) (3 ) (3) 830 831 832 833 834 835 (3) (5) (4) (3) (3) 836 837 838 839 840 (3) (6) (5) (4) 17:53 ;+ ; IS IT AN END-OF-PASS TYPE? IF SO, FILL IN THE BLANK FIELDS, ~M'H"\III 1::' co PASS TIME, AND CHECK FOR ANY II HU~JGli MODULES I (H... '-'; UPDATE TUI:: ;- 814 815 816 817 818 (6) (9) 819 820 821 822 823 824 (3) (5 ) 20-SEP-7B ;- 001650' 001650' 001652' 001656 1 001662' 001666' CALL 8DACNV IN <PASCNT(R1), #EOPPAS> 010546 012745 016145 004767 012605 000037' 000034 OOOOOOG ;+ ; GET ELAPSED TIME CONVERTED TO ASCII ;- 001670' 001670' 001672' 001676' 001'700' 001704' CALL GETETIM IN <ROt #EOPTIM> 010546 012745 010045 004767 012605 I'v~OV 000057' MOV JSR MOV 002410 ;+ ; CONVERT PASS TIME TO ASCII , 0- 001706 1 001706' 001710 1 001714 ' 001716 1 001720 1 001724' CALL GETPTIM IN <RO, R1 , #EOPPST> 010546 012745 010145 010045 004767 012605 IV: 0 V 000101 1 002460 MOV MOV MOV JSR IViOV R5,-(SP) #EOPPST,-(R5) R1,-(R5) RO,-(R5) PC,GETPTIM (SP)+,R5 MACY11 30A(1052) FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES PROCESS END-OF-PASS TYPE MESSAGE 15-AUG-78 16:52 FILLMS.MAC 841 842 843 844 345 846 847 (6) (9) 848 (3) (5) (4) (3) (3) 849 850 851 852 853 854 (3 ) 855 (4) 856 (4) B57 (2} 858 (4) 20-SEP-78 17:53 PAGE 19-17 SEQ 0500 ;+ ; IF A CLOCK ... UPDATE TIME ;- 001726 1 001726' 001734' 001736' 001736' 001740' 001742' 001744' 001750' IF #CLKPRES SETIN DT.CFO(RO) THEN 032760 001410 000001 000014 SIT SEQ #CLKPRES,DT.CFO( 50003$ MOV M:JV MOV JSR MOV R5,-(SP) R1,-(R5) RO,-(R5) PC,UPDTIM (SP)+,R5 JSR PC,CKHUNG MOV #EOPMSG,FLMSADR( CALL UPDTIM IN <RO,R1> 010546 010145 010045 004767 012605 OOOOOOG ;+ ; SEE IF ANY MODULE IS HUNG , 001752' 001752' 004767 001756' 001756' 001756' 001756' 012765 001764' 001764' 000167 0017-70 ' 001770' CALL CKHUNG OOOOOOG ENDIF LET FLMSADR(R5) 000016' 000010 . - #EOPMSG 500035: INLINE <JMP 1$> JMP 1$ 002256 ENDIF 50002$: FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FILLMS.MAC 15-AUG-79 16:52 PROCESS COMMON HEADER TYPE MESSAGE 860 861 862 863 864 865 366 (6) (9) 867 868 869 870 871 (3) (5) (4) (3) (3) 872 873 874 875 876 (3) (6) (5) ( 4) (3 ) (3) 877 878 879 880 881 882 (4) (6) 883 884 885 886 887 888 (3) (5) (4) (3) (3) 889 890 891 892 893 894 (3) .SBiiL 20-SEP-78 17:53 PkGE 19-18 SEQ 0501 PROCESS COMMON HEADER TYPE MESSAGE ;+ ; IS IT A COMMON HEADER TYPE MESSAGE? ;"" .. ..,.,.,"', IF R4 EO #MSGHDR THEN UU 1 I I V· 001770 1 020427 001774 1 001045 000004 CMP BNE R4,#MSGHDR 50004$ MOV MOV MOV R5,-(SP) #HDRNAM,-(R5) R1,-(R5) PC,GETNAM (SP)+,RS ;+ ; GET MODULE NAME ," 001776' 001776 1 002000 1 002004 1 002006 1 002012 1 CALL GETNAM IN <R1,#HDRNAM> 010546 012745 010145 004767 012605 000343 1 JSR 002242 MOV ;+ ; GET PHYSICAL ADDRESS ;- 002014 1 002014' 002016 1 002022 1 002024 1 002026' 002032 1 CALL GETAPA IN <RO,R2,#HDRPA> 010546 012745 010245 010045 004767 012605 000355' MOV MOV MOV MOV JSR 002450 MOV R5,-(SP) #HDRPA,-(RS) R2,-(R5) RO,-(R5) PC,GETAPA (SP)+,RS ;+ ; FORM APC ;- LET R3 .- R2 - Rl 002034 1 002034' 010203 002036' 160103 MOV SUB R2,R3 Rl,R3 ;+ ; AND CONVERT IT TO ASCII ;- 002040' 002040' 002042' 002046' 002050' 002054 1 CALL BOA16 IN <R3. #HDRPC> 010546 012745 010345 004767 012605 MOV RS,-(SP) #HDRPC,-(R5) R3,-(RS) PC,BOA16 (SP)+,RS MOV R5,-(SP) MO'''' MOV MO'J 000373 1 JSR OOOOOOG ;+ ; CONVERT PASCNT TO ASCII , 0- 002056' 002056' 010546 CALL BDACNV IN <PASCNT(Rl), #HDRPAS> FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY" 30Al'U~~) FILLMS.MAC 15-AUG-78 16:52 ~ROCESS COMMCN HEACER TYPE MESSAGE (5) (4) (3) (3) B95 (4) 896 (2) 897 (4) 898 002060' 002064 1 002070' 002074' 002076' 002076' 002;04 1 002104 1 002110' 002110' 012745 016145 004767 012605 I/.~~ ~hU~ l~ SEQ OS02 000410 000034 OOOOOOG i MOV MOV JSR LET FLMSADR(R5) 012765 ~U-~~~-IO "- MOV #HDRPAS,-(RS) PASCNT(R1),-(RS) PC,BDACNV (SP)+,R5 MOV #HDRMSG,FLMSAOR( #HDRMSG 000342' 000010 !NUNE <JMP 1$> 000167 002136 JMP 1$ ENDIF 50004$: FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES FILLMS.MAC 15-AUG-7S 16:52 PROCESS HRDE~R.SOFERR 900 901 902 903 904 905 906 907 908 (6) (9) (6) (9) 909 (2) 910 (4) 911 912 913 914 915 (4) 916 917 918 ,... ......... ..,.. .:;'01 f I- PROCESS HRDERR,SOFERR ;+ ; IF NOT A HARD OR SOFT ERROR, CONTINUE CHECKING , 0- 002110' 002110' 002114' 002116' 002122' 002124' 002124' 002130' 002130 1 IF R4 NE #MSGSFT AND R4 NE #MSGHRD THEN 020427 001405 020427 001402 000006 000167 000474 000007 CMP SEQ eMP SEQ R4,#MSGSFT 50005$ R4,#MSGHRD 50005$ INLINE <JMP 100$> JMP 100$ ENDIF 500055: ;+ ; INSERT THE END OF MESSAGE CHARACTER AND ASSUME THAT THERE IS NO EXTENDED PRINTOUT , 002130' 002130' 105067 LET DATEND :S= #0 176445 CLRB DATEND MOV MDV MJV JSR MClV R5,-(SP) #DA TNAfvl, - (R5) R1,-(R5) PC,GETNAM (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #DATPC,-(R5) R2,-(R5) RO,-(R5) PC,GETAPA (SP)+,R5 MOV SUB R2,R3 R1 ,R3 ;+ ; GET MODULE NAME ;- 919 920 921 (3) (5) (4) (3) (3) 922 923 924 925 926 927 (3) (6 ) (5 ) (4) (3) (3) 928 929 930 931 932 933 (4) (6) 934 935 SEQ 0503 002134 1 00.2134' 002136' 002142' 002144 1 002150' CALL GETNAM IN <R1, HDATNAM> 010546 012745 010145 004767 012605 000420' 002104 ;+ ; GET P.A. , 002152' 002152' 002154 1 002160' 002162' 002164' 002170' CALL GETAPA IN <RO,R2,#DATPC> 010546 012745 010245 010045 004767 012605 000432 1 WiD\! 002312 ;+ ; FORM APC ;- 002172' 002172' 010203 002174' 160103 LET R3 := R2 - R1 ;+ FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES PROCESS HRDERR,SOFERR 15-AUG-78 16:52 FILLMS.MAC 20-SEP-78 17:53 PAGE 19-21 SEQ 0504 ; CONVERT IT TO ASCII 936 937 938 939 (3) (5) 002176 1 002176 1 010546 002200 1 012745 (4) 002204 1 (3) (3) 940 941 942 943 944 945 (3) (5) (4) (3) (3) 946 947 (4) 948 949 950 951 952 (6 ) {9} 953 (4) 954 (4) 955 (4) 956 (4) 957 (4 ) 958 (4) (3) 959 (4) 960 (4) 961 (4) 962 (4) 963 (4 ) 964 (4) 965 MACY11 30A(1052) ;- CALL BOA16 IN <R3, #DATAPC> MOV MOV MOV MOV JSR MOV R5,-(SP) #DATPAS,-(R5) PASCNT(R1),-(R5) PC,BDACNV (SP)+,R5 MOV #DATTYP,R3 CMP BNE R4,#MSGSFT 50006$ MOVB #'S,(R3)+ MOVB # 10, (R3)+ MOVB #'F,(R3)+ MOVB #'T,(R3)+ MOV SOFCNT(R1),RO BR 50007$ MOV9 #'H,(R3)+ WOVB #'A,(R3)+ MOVS #IR,(R3)+ MOV8 #'D,(R3)+ MOV HRDCNT(R1),RO MOV ""III"\~"r= VIV";)"TJ 002206 1 004767 002212 1 012605 R5,-(SP) #DATAPC,-(R5) R3,-(RS) PC,BOA16 (SP)+.R5 MOV MOV 000450 1 JSR OOOOOOG ;+ ; CONVERT PASS COUNT TO ASCII , 002214' 002214' 002216' 002222 1 002226' 002232' CALL BDACNV IN <PASCNT(R1), #DATPAS> 010546 012745 016145 004767 012605 002234 1 002234' 012703 000465' 000034 OOOOOOG LET R3 .- #DATTYP 000473 1 ;+ 002240' 002240' 002244' 002246' 002246' 002252' 002252' 002256' 002256' 002262' 002262' 002266' 002266' 002272' 002272' 002274' 002274' 002274' 002300' 002300 1 002304' 002304' 002310' 002310' 002314' 002314' 002320' 002320' ; IF SOFT, FILL IN WORD 'SOFT I . IF HARD, ;IF R4 EQ #MSGSFT THEN 020427 001013 000006 112723 000123 112723 000117 112723 000106 112723 000124 LET (R3)+ :B= #15 LET (R3)+ :B= #10 LET (R3)+ :s= #'F LET (R3)+ :B= #'T LET RO 016100 FILL IN WORD 'HARDI. .- SOFCNT(R1) 000042 ::LSE 000412 50006$: LET (R3)+ : B= #IH 112723 000110 112723 000101 112723 000122 112723 000104 LET (R3)+ : B= #'A LET (R3)+ :S= #'R LET (R3)+ :8= #10 LET RO 016100 . - HRDCNT(R1) 000044 ENDIF 50007$: FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES PROCESS HRDERR,SCFERR 15-AUG-78 16:52 FILLMS.MAC 966 967 968 969 970 971 (3) (5) (4) (3) (3) 972 973 974 975 976 977 {3 ) (5) (4) (3) (3) 978 (3) (5) (4) (3) (3 ) 979 (3 ) (5) (4) (3) (3 ) 98C (3) (5) (4) (3) (3) 981 MAC)", 1 30A(1052) 20-SEP-78 17:53 PAG~ 19-22 SEQ 0505 ;+ ; CONVERT HARD OR SOFT TO ASCII ;002320' 002320' 002322 1 002326' 002330' 002334' CALL BDACNV IN <RO,#DATNUM> 010546 012745 010045 004767 012605 000504' OOOOOOG MOV MOV MOV JSR MOV R5,-(SP) #DATNUM,-(R5) RO,-(R5) PC,BDACNV (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #DATADD,-(R5) CSRA(R1),-(R5) PC,BOA16 (SP)+,R5 MOV MOV MOV JSR R5,-(SP) #DATCON,-(R5) CSRC(R1),-(R5) PC,BOA16 (SP)+,R5 ;+ ; CONVERT CSRA,CSRCTASTAT,ERRTYP TO ASCII ;002336' 002336' 002340' 002344 1 002350' 002354 1 002356' 002356' 002360 1 002364 1 002370' 002374' 002376 1 002376 1 002400' 002404' 002410' 002414' 002416' 002416' 002420' 002424' 002430' 002434' CALL BOA16 IN <CSRA(R1), #DATADD> 010546 012745 016145 004767 012605 000520' 000100 OOOOOOG 010546 012745 016i45 004767 012605 000535' 000102 OOOOOOG 010546 012745 016145 004767 012605 000553 1 000104 OOOOOOG CALL BOA16 IN <CSRC(R1), #DATCON> M;JV CALL BOA16 IN <ASTAT(R1),#DATSTAT> MOV MOV MOV JSR MOV CALL BOA16 IN <ERRTYP(R1),#DATERR> 010546 012745 016145 004767 012605 000572' 000106 OOOOOCG MOV MOV MOV JSR MOV R5,-(SP) #DATSTAT,-(R5) ASTAT(R1) ,-(R5) PC,BOA16 (SP)+,R5 R5,-(SP) #DATERR,-{R5) ERRTYP(R1),-(R5j PC,BOA16 (SP)+,R5 FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACYll ~UAllU~~) ~v-~~r-fO FILLMS.MAC 15-AUG-7S 16:52 PROCESS HRDE~R, SOFERR EXTENDED PRINTOUT MESSAGES? 983 984 985 986 987 988 989 990 991 (6) (8) (6) (9) (6) 992 (6) 993 {4} 994 (6) (9) 995 (4 ) .SBTTL ;- 002436 1 002436 1 002442 1 002444 1 002450' C02452 1 002452 1 002452 1 002456' 002456 1 002460 1 002460 1 002462 1 002464 1 002464 1 IF R4 EQ #MSGSFT OR R4 EO #MSGHRD THEN 020427 001403 020427 001065 000006 000007 062702 000004 011202 IF R2 NE #0 THEN 005702 001453 112767 (6) (9) 1013 (4) (6) (9) 1014 (3) (5) (4) CMP BEQ CMP BNE R4,#MSGSFT 50010$ R4,#MSGHRD 50011$ ADD #4,R2 MOV (R2),R2 TST BEQ R2 50012$ MOVe #<CR>,DATEND 50010S: . - R2 + #4 LET R2 . - (R2) LET R2 LET DATEND :8= #<CR> 000015 176107 ;+ 997 (4) PROCESS HRDERR t SOFERR EXTENDED PRINTOUT MESSAGES? ;+ ; IS THERE A HRDERR/SOFERR EXTENDED PRINTOUT ASSOCIATED WITH THIS MESSAGE? 996 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 (4) 1010 (4) 1011 (4) (6) (9) 1012 SEQ 0506 GO THROUGH THE MESSAGE TABLE AND, FOR EACH ADD~ESS I~ THE T~BLE, FIND THE CONTENTS OF THAT ADDRESS, CONVERT IT TO ASCII, STORE THE ASCII IN THE ExTE~DED PRINTouT TABLE ,EXTMSG) FOLLCWED BY A SPACE AND, IF THE MAXIMUM NUMBER OF ENTRIES PER LINE HAS BEEN REACHED, LOAD A CRt LF ~%) INTO THE TABLE. CONTINUE THIS UNTIL EITHER THE LAST ENTRY IN THE MESSAGE TABLE OR THE END OF THE PRINTOUT STORAGE AREA (EXTEND) IS REACHED. ;- 002472 1 002472 1 002475 1 002476 1 002502 1 002502 1 002502' 002506 1 002510 1 002510 1 002510 1 002514 1 002516 1 002516 1 002516 1 002524 1 002526 1 002526 1 002530' 002532 1 LET R3 := #EXTMSG 012703 000602 1 005067 175276 021227 001436 177777 020327 103032 001146 1 026727 002021 175256 MOV #EXTMSG,R3 CLR FLDCNT CMP SEQ {R2),#-1 50014$ CMP BHIS R3,#EXTEND 50016$ LET FLDCNT '- #0 WHILE (R2) NE #-1 DO 50013$: WHILE R3 LO #EXTENO DO 50015$: 010546 010345 013245 WHILE FLDCNT LT #FLDMAX DO 50017$: 000010 CMP BGE CALL BOA16 IN <@(R2)+,R3> MO\! IVi(JV MOV FLDCNT,#Fi..DMAX 50020$ R5,-(SP) R3,-(R5) @(R 2)+,-(R5) 0 20-SEP-78 MACY11 30A(1052) FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES PROCESS HRDERR, SOFERR EXTENDED PRINTOUT MESSAGES? 15-AUG-78 16:52 FILLMS.MAC (3) (3) 1015 (6) 1016 (4) 1017 (6) (9) 1018 (2 ) 1019 (4) 1020 (6) 1021 (4) (3) 1022 (4) 1023 (4) 1024 (4) (3) 1025 (4) (3) 1026 (2 ) 1027 (4) 102B (4) 1029 1030 1031 (4) 1032 (4) 1033 (2 ) 1034 (4) 1035 (2) 002534 i 002540' 002542 1 002542' 002546 1 002546 1 002552 1 002552 1 002556' 002560' 002560 1 002562 1 002562' 002562' 002562' 002566 1 002566' 002570 1 002570' 002570' 002574' 002574' 002600' 002600' 002602' 002602 1 002602 1 002604 1 002604' 002604 1 002604 1 002604 1 002610 1 002610 1 004767 012605 OOOOOOG 062703 000006 112723 000040 021227 001001 177777 17:53 PAGE 1:1-:l4 SEQ 0507 MOV PC,BOA16 (SP)+,R5 ADD #6,R3 MOVB #<SPACE>,(R3)+ CMP SNE 1000$> BR (R2) ,#-1 50021$ JSR LET R3 .- R3 + #6 LET (R3)+ :B= #<SPACE> IF (R2) EO #-1 THEN INLINE <8R 000411 1000$ ENDIF 50021$: LET FLDCNT 005267 175212 .- FLDCNT + #1 II\IC FLDCNT BR 50017$ MOVS # 1 %, (R3)+ CLR FLDCNT BR 50015$ BR 50013$ ENDDO 000753 50020$: LET (R3)+ :B= #'% 112723 000045 005067 175200 LET FLDCNT .- #0 ENDDO 000743 50016$: ENDDO 000737 50014$; INLINE <1000$:> 1000$: LET (R3)+ : B= #1% 112723 000045 105023 002612' 002612' 002612' 002612 1 012765 002620' 002620' 000167 002624 1 002624' 002624' 002624 1 MOV8 # 1 %, (R3)+ CLR8 (R3)+ MOV #DATAMS,FLMSADR( JMP 1$ LET (R3)+ :8= #0 ENDIF 50012$: LET FLMSADR(R5) := #DATAMS 000417' 000010 INLINE <JMP 1$> 001422 ENDIF INLINE <100$:> 50011$: 100$: MACY11 30A(1052) FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES PROCESS SUM COMMAND TYPE MESSAGES FILLMS.MAC 15-AUG-78 16:52 .SBTTL 1037 1038 1039 1040 1041 1042 17:53 PAGE 19-25 SEQ 0508 PROCESS SUM COMMAND TYPE MESSAGES ;+ ; IS IT A SUM COMMAND HEADER LINE TYPE MESSAGE? , 1043 1044 1045 (6) (9) 1046 (3) (5) (4) (3) (3) 1047 (4) 1048 (2) 1049 (4) 20-SEP-78 002624' 002624 1 020427 002630 1 001014 002632 1 002632 1 010546 002634 1 012745 002640 1 010045 002642 1 004767 002646 1 012605 002650 1 002650 1 012765 002656 1 002656 1 000167 002662 1 002662 1 IF R4 EQ #MSGSMH THEN 000Q14 CMP BNE R4 1#MSGSMH 50022$ MOV MOV MOV MOV R5,-(SP) #RNHTIM,-(R5) RO,-(R5) PC,GETETIM (SP)+,R5 MOV #RNHMSG1FLMSADR( CALL GETETIM IN <RO, #RNHTIM> 000141 1 001446 JSR LET FLMSADR(R5) .- #RNHMSG 000114 1 000010 INLINE <JMP 1$> 001364 JMP 1$ ENDIF 50022$: FILLMS - MODULE TO FILL IN BLA.NK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FILLMS.MAC 15-AUG-78 16:52 PROCESS SUM COMMAND MODULE LINE MESSAGE 1051 1052 1053 1054 1055 1056 1057 1058 1059 (6) (9) 1060 1061 1062 1063 1064 1065 (3) (5) (4) (3) (3) 1066 1067 .SBTTL (5) (4) (3) (3) 1072 (3) (5) (4) (3) (3) 1073 (3) (5) (4) (3) (3) 1074 (3) (5) (4) (3) (3) 1075 (3) (5) (4) (3) PAGE 19-26 SEQ 0509 PROCESS SUM COMMAND MODULE LINE MESSAGE ; IS IT A "SUM COMMAND-MODULE-LINE:: MESSAGE? ., 002662' 002662' 020427 002666' 001063 IF R4 EO #MSGSMB THEN 000015 CMP BNE R4,#MSGSMB 50023$ MOV MOV R5,-(SP) #RNBNAM,-(R5) R1,-(R5) PC,CETNAM (SP)+,R5 ;+ ; GET MODULE NAME ;002670' 002670' 002672' 002676' 002700' 002704' CALL GETNAM IN <R1, #RNBNAM> 010546 012745 010145 004767 012605 000154' MOV JSR MOV 001350 ;+ ; CONVERT PC,STAT,PASS COUNT,HARD ERORRS AND SOFT ERRORS ,• Tn ,'-' ASCII 1069 (3) 17:53 ;+ 1068 1070 1071 20-SEP-78 of 002706' 002706' 002710' 002714' 002716' 002722' 002724' 002724' 002726' 002732' 002736' 002742' 002744' 002744' 002746' 002752' 002756' 002762' 002764' 002764' 002766' 002772' 002776' 003002' 003004' 003004' 003006' 003012' 003016' CALL BOA16 IN <R1,#RNBPC> 010546 012745 010145 004767 012605 010546 012745 016145 004767 012605 010546 012745 016145 004767 012605 010546 012745 016145 004767 012605 010546 012745 016145 004767 MOV MOV 000171' MOV JSR OOOOOOG MJV CALL BOA16 IN <STAT(R1), #RNBSTAT> 000205' 000026 MOV MOV MOV JSR MOV OOOOOOG CALL BDACNV IN <PASCNT(R1), #RNBPAS> 000222' 000034 N!OV MOV MOV JSR OOOOOOG MOV R5,-(SP) #RNBPC.-(R5) R1,-(R5) PC,BOA16 (SP)+,R5 R5.-(SP) #RNBSTAT,-(R5) STAT(R1),-(R5) PC,BOA16 (SP)+,R5 R5,-(SP) #RNBPAS.-(R5) PASCNT(R1),-(R5) PC,BDACNV (SP)+,R5 CALL BDACNV IN <HRDCNT(R1), #RNBHRD> MOV MOV 000240' 000044 r,,~ov uSR OOOOOOG MOV CALL BDACNV IN <SOFCNT(R1), #RNBSFi> 000256' 000042 OOOOOOG MOV MOV MOV JSR R5,-(SP) #RNBHRD,-(R5) HRDCNT(R1),-(R5) PC.BDACNV (SP)+,R5 R5,-(SP) #RNBSFT,-(R5) SOFCNT(R1),-(R5) PC,BDACNV FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FILLMS.MAC 15-AUG-78 16:52 PROCESS SUM COMMAND MODULE LINE MESSAGE (3) 1076 (4) 1077 (2) 1078 (4) 1079 003022 1 012605 003024' 003024 1 012765 0030321 003032 1 000167 003036 1 003036 1 LET FLMSADR(R5) 000153 1 000010 20-SEP-78 17:53 PAGE 19-27 SEQ 0510 .- #RNBMSG MOV ( 5 P ) + , R5 MOV #RNBMSG,FLMSADR( IN LINE <JMP 1 $> 001210 JMP 1$ ENDIF 50023$: FILLMS - MODULE TO FILL IN BLANK FIELDS IN ~K~L~IAL Mt~~A~C~ MA~T I I ~~~\ IV~~J FILLMS.MAC 15-AUG-78 16:52 ~ROCESS SUM COMMAND SUMMARY LINE MESSAGE .SBTTL 108i 1082 1083 1084 1085 1086 LV ~~r SEQ 0511 PROCESS SUM COMMAND SUMMARY LINE MESSAGE ;+ ; IS IT A SUM COMMAND SUMMARY LINE MESSAGE? 1087 1088 1089 (6) (9) 1090 1091 1092 1093 1094 (3) (5) (4 ) (3) (3) 1095 (3) ( 5) (4) (3 ) (3) 1096 (4) 1097 (2) 1098 (4) 1099 003036 1 003036 1 020427 003042 1 001025 IF R4 EO #MSGSMS THEN 000016 CMP BNE R4,#MSGSMS 50024$ MOV MOV MOV uSR MOV R5,-(SP) #RNSERR,-(R5) DT.EXS(RO),-(R5) PC, BDAC'NV (SP)+,R5 MOV MOV MOV R5,-(SP) #RNSPvJR, - (R5) DT.PFL(RO),-(R5) PC,BUACNV {SP)+,R5 MOV #RNSMSG,FLMSADR( ;+ 003044 1 003044 1 010546· 003046 1 012745 003052 i 016045 003056 1 004767 0030621 012605 003064 1 003064 1 010546 003066 1 012745 003072 1 016045 003076 1 004767 003102 1 012605 003104 1 003104 1 012765 003112 1 003112 1 000167 003116 1 003116 1 ; CONVERT SYSTEM ERRORS AND POWER FAILS TO ASCII ;CALL BDACNV IN <DT.EXS(RO), #RNSERR> 000304 1 000060 OOOOOOG CALL BDACNV IN <DT.PFL(RO), #RNSPWR> 000333 1 000062 OOOOOOG MOV JSR LET FLMSADR(RS) .000264 1 000010 INLINE <uMP 1$> uMP 1$ 001130 ENDIF 50024$: FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) F!LLMS.MAC 15-AUG-78 16:52 . PROCESS DROP MODULE TYPE MESSAGE 1101 .SBTTL 1102 1103 1104 1105 1106 1107 1108 1109 1110 ;+ ; IS IT A DROP MODULE MESSAGE? (6) (9) 1111 1112 1113 1114 1115 (3) (5) (4) (3) (3) 003116' 003116' 020427 003122' 001025 003124' 003124 1 003126' 003132 ' 003134' 003140' PAGE 19-29 PROCESS DROP MODULE TYPE MESSAGE ;+ ; GET MODULE NAME ;CALL GETNAM IN <P.1 r #DRPNAM> 010546 012745 010145 004767 012605 SEQ 0512 IF R4 EO HMSGDRP THEN 001150' 001114 CMP BNE R4,HMSGDRP 50025$ MOV MOV MOV JSR MOV R5,-(SP) #DRPNAM,-(R5) R'i ,-(R5) PC,GETNAM (SP)"+,R5 MOV S~B R2,R3 R1,R3 M:JV MOV MOV JSR MOV RS,-(SP) #DRPPC,-(R5) R3,-(R5) PC,BOA16 (SP)+r R5 MOV #DRPMSG,FLMSADR( ;+ ; FORM APC ;- 1119 (4) (6) 17:53 000017 1116 1117 1118 1120 .1121 20-SEP-78 LET R3 "- R2 - 003142' 003142' 010203 003144' 160103 R1 112~ 1123 1124 1125 1126 1127 (3) (5) (4) (3) (3) 1128 (4) 1129 (2) 1130 (4) 1131 ;+ ; CONVERT DROP PC TO ASCII or 003146 1 003146' 003150' 003154' 003156' 003162 1 003164 1 003164 1 003172' 003172' 003176' 003176' CALL BOA16 IN <R3, #DRPPC> 010546 012745 010345 004767 012605 001176' OOOOOOG LET FLMSADR(R5) 012765 '- #DRPMSG 001147' 000010 INLINE <JMP 1$> 000167 JMP 1 $ 001050 ENDIF 50025~: FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY~1 30A(1052) FILLMS.MAC 15-AUG-78 16:52 PROCESS HUNG MODULE MESSAGE 1133 1134 1135 1136 1137 113B 1139 1140 (6) (9) 1141 (3) (5) (4) (3) (3) 1142 (4) 1143 (2 ) 1144 (4) 1145 1146 .SBTTL 20-SEP-78 17:53 PAGE 19-30 SEQ 0513 PROCESS HUNG MODULE MESSAGE ;+ ; IS IT A HUNG MODULE TYPE MESSAGE? 003176 1 003176 1 003202 1 003204 1 003204 1 003206 1 003212' 003214' 003220 1 003222 1 003222' 003230' 003230 1 003234' 003234' IF R4 EQ #MSGHNG THEN 020427 001014 000022 CMP SNE R4,#MSGHNG 50026$ MOV MOV MOV R5,-(SP) #HNGNAM,-(R5) R 1 ,- ( R5) PC,GETNAM (SP)+,R5 MOV #HNGMSG,FLMSADR( CALL GETNAM IN <R1, #HNGNAM> 010546 012745 010145 004767 012605 001276 1 MOV 001034 JSR LET FLMSADR(R5) '- #HNGMSG 012765 001275 1 000010 INLINE <JMP 1$> 000167 001012 JMP 1$ ENDIF 50026$: FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FILLMS.MAC 15-AUG-78 16:52 PROCESS BAD VECTOR TYPE MESSAGE 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 (6) (9) 1158 1159 1160 1161 1162 1163 (4) 1164 1165 1166 1167 1168 .SBTTL 003234 i 003234' 020427 003240' .001016 PAGE .9-31 SEQ 0514 PROCESS BAD VECTOR TYPE MESSAGE IF R4 EO #MSGVEC THEN 000020 CMP BNE R4,#MSGVEC 50027$ MOV MSGADR(R5),R2 MOV JSR MOV R5,-(SP) #BADVCT,-(R5) R2,-(QS) PC,BOA16 (SP)+,R5 MOV #BADVMSG,FLMSAOR ;+ ; SAVE BAD VECTOR ADDRESS IN R2 ;003242' 003242' 016502 LET R2 := MSGADR(R5) 000004 ;+ ; CONVERT BAD VECTOR TO ASCII ;CALL BOA16 IN <R2, #BADVCT> 003246 1 003246' 010546 I",. \ \'-I} 1'\1"\"')I"'''IC'f'\I IJV.J.tt...JV 012745 001223' (4) 003254' 003256 1 003262 1 003264 1 003264' 003272 1 003272 1 003276' 003276 1 010245 004767 012605 OOOOOOG 012765 001206' 000010 (4) 17:53 ;+ ; IS IT A BAD VECTOR MESSAGE? ;- (3) (3) (3) 1169 (4) 1170 (2) 1171 20-SEP-78 MOV MLJV LET FLMSADR(R5) .:= #BADVMSG INLINE <JMP 1 $> 000167 000750 JMP 1$ ENDIF 50027$: FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) FILLMS.MAC 15-AUG-78 16~52 PROCESS MAP COMMAND TYPE MESSAGE 1173 1174 1175 1176 1177 i 178 1179 1180 1181 1182 (6) (9) 1183 1184 1185 1186 1187 1188 (3) (5) (4) (3) (3) 1189 1190 .SBTTL (3) (5) (4 ) (3) (3) 1195 (3) (5) (4) (3 ) (3) 1196 (4) 1197 (2) 1198 (4) 1199 17:53 PAGE 19-32 SEQ 0515 PROCESS MAP COMMAND TYPE MESSAGE ;+ ; IS IT A MAP MESSAGE? ;003276' 003276' 020427 003302' 001033 IF R4 EO #MSGMAP THEN CMP 000021 B;.JE R4,#MSGMAP 50030$ ;+ ; GET MODULE NAME ;003304' 003304' 003306 1 003312' 003314' 003320' CALL GETNAM IN <R1, #MAPNAM> 010546 012745 010145 004767 012605 MOV MOV MOV 001234' JSR 000734 MOV R5,-(SP) #MAPNAM,-(R5) R1,-(R5) PC,GETNAM (SP)+,R5 + CONVERT PC AND STATUS TO ASCII 1191 1192 1193 1194 20-SEP-78 003322' 003322' 003324' 003330' 003332' 003336 1 003340' 003340' 003342' 003346' 003352' 003356' 003360' 003360' 003366' 003366' 003372' 003372' CALL BOA16 IN <R1, #MAPPC> 010546 012745 010145 004767 012605 rv:OV MOV MOV 001251 ' JSR OOOOOOG MOV CALL BOA16 IN <STAT(R1), #MAPSTT> MOV JSR MOV R5,-(SP) #MAPSTT,-(R5) STAT(R1) ,-(R5) PC,BOA16 (SP)+,R5 MOV #MAPMSG,FLMSADR( MOV 010546 012745 016145 004767 012605 001266' 000026 OOOOOOG 012765 001233' 000010 rliov LET FLMSADR(R5) .- #MAPMSG INLINE <JMP 1$> 000167 R5,-(SP) #MAPPC,-(R5) R1,-(R5) PC,80A16 (SP)+,R5 JMP 1$ 000654 ENDIF 50030$: FILlMS - MODULE TO fILL IN 8LANK FIELDS IN SKELETAL i\~ESSAGES MACY1130A(1052) FILLMS.MAC 15-AUG-78 16:52 PROCESS CKDATAjDATACK/DATERR .SBTTL 1201 1202 1203 1204 1205 (9) (6) (9) 1208 (2) 1209 (4) 003372 1 003372 1 003376' 003400 1 003404 1 003406' 003406' 003412' 003412' 020427 001405 020427 001402 000010 000167 000534 INLINE <JMP (3) 1216 1217 1218 1219 1220 1221 (3) (6) (5) (4) (3) (3) 1222 1223 1224 1225 1226 1227 (4) (6) 1228 1229 1230 1231 1232 1233 (3) (5) (4) (3) 339$> ENDIF R4,#MSGCKD C:v1P SEQ CMP SEQ 50031$ JMP 339$ MOV MOV R5,-(SP) #CKDNAM,-(R5) R~ ,-(R5) PC,GETNAM (SP)+,R5 50031$ R4,#MSGDER 50031$: ;+ ; GET MODULE NAME ., 1213 1214 (5) (4) (3) SEQ 0516 PROCESS CKDATAjDATACK/DATERR 000005 1212 (3) Pt.GE 19-33 CKDATAjDATACKjDATERR TYPE MESSAGE? ,-IF; ISR4 ITNE A#MSGCKD AND R4 NE #MSGDER THEN 1210 1211 1215 17:53 ;+ 1:206 1207 (6) 20-SEP-78 003412' 003412' 003414' 003420 1 003422' 003426' CALL GETNAM IN <R1, #CKDNAM> 010546 012745 010145 004767 012605 001326 1 MOV JSR MOV 000626 ;+ ; GET A PA 003430' 003430' 003432' 003436 1 003440' 003442 1 003446' CALL GETAPA IN <RO, R2, #CKDPA> 010546 012745 010245 010045 004767 012605 001340' Mev Mav MOV R5,-(SP) #CKDPA,-(R5) R2,-(R5) RO,-(R5) PC,GETAPA (SP)+,R5 MOV SUB R2,R3 R1 ,R3 MOV IViOV R5,-(SP) #CKDVA,-(R5) R3,-(R5) JSR PC,80A16 MOV Mav JSR 001034 ;+ ; FORM APC ;- LET R3 := R2 - R1 003450' 003450' 010203 003452' 160103 ;+ ; CONVERT VA TO ASCII ;- 003454' 003454' 003456' 003462' 003464 1 CALL BOA16 IN <R3, #CKDVA> 010546 012745 010345 004767 001356' OOOOOOG Mav MACY11 30A(1052) FIlLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES PROCESS CKDATA/DATACK/DATERR 15-AUG-78 16:52 FILlMS.MAC (3) 1234 1235 1236 1237 1238 1239 003470' 012605 (3) 010546 012745 016145 004767 012605 (5) (4) (3) (3) 1240 1241 1242 1243 1244 1245 (3 ) (5) (4) (3) (3) 1246 1247 (4) (3) (3) 17:53 PAGE 19-34 SEQ 0517 MOV (SP)+,R5 MOV MOV MOV JSR MOV R5,-(S?) #CI<DPAS, - (R5) PASCNT(R1),-(R5) PC,BDACNV (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #CKDNUM,-(R5) SOFCNT(R1),-(R5) PC,BDA.CNV (SP)+,R5 MJV MoV MOV JSR MOV R5,-(SP) #CKDADD,-(R5) CSRA(R1),-(R5) PC,BoA16 (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #CKDSB,-(R5) ASB(R1) ,-(R5) PC,BOA16 (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #CKDWAS,-(R5) A~~AS(R1) 1-(R5) PC , BOA16 (SP)+,R5 CMP SEQ R4,#MSGDER 50032$ ;+ ; CONVERT PASS COUNT TO ASCII ;003472' 003472' 003474' 003500' 003504' 003510' CALL BDACNV IN <PASCNT(R1), #CKDPAS> 001373' 000034 OOOOOOG ;+ ; CONVERT SOFCNT TO ASCII ,' 003512' 003512' 003514 ' 003520' 003524' 003530' CALL BDACNV IN <SOFCNT(R1), #CKDNUM> 010546 012745 001A06' 016145· 000042 004767 OOOOOOG 012605 ;+ 4111"'\'''''" I~"'O 1249 1250 1251 (3) (5) (4) (3) (3) 1252 (3) (5) (4) ( 3·) (3) 1253 (3) (5) 20-SEP-'78 , 003532 1 003532 1 003534' 003540 1 003544 1 003550 1 003552 ' 003552' 003554' 003560' 003564' 003570" 003572' 003572' 003574' 003600' 003604 1 003610' CONVERT CSRA,ASB,AWAS TO ASCII CALL BOA16 IN <CSRA(R1), #CKDADD> 010546 012745 016145 004767 012605 001422' 000100 OOOOOOG 010546 012745 016145 004767 012605 001436' 000106 OOOOOOG 010546 012745 016145 004767 012605 001452' 000110 OOOOOOG 1254 1255 1256 1257 1258 1259 003612' (6) 003612' 020427 (9) .003616' 001524 1260 1261 CALL BOA16 IN <ASB(R1), #CKDSB> CALL BOA16 IN <AWAS(R1), #CKDWAS> ;+ ; IF NOT A DATERR, ; GO BUILD THE PHYSICAL ADDRESSES . IF R4 NE #MSGDER THEN 000005 MACY11 30A(1052) FILLM5 - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES PROCESS CKDATAjDATACKjDAT:RR 15-AUG-78 16:52 FILLMS.MAC 1262 1263 1264 1265 1266 (4) (6) 1267 1268 1269 1270 1271 1272 (6) 1273 (7) 1274 (4) (6) 1275 1276 (4) 1277 (4) 1278 1295 (3) (7) (6) 17:53 PAGE 19-35 SEQ 0518 ;+ ; CLEAR MSB OF WORD COUNT ;003620 1 003620' 016103 003624' 042'103 LET R3 := CDWDCT(Ri) CLR.BY #BIT15 VVVI"'t"'t MOV 100000 BIC CDWDCT(R1),R3 #BIT15,R3 DEC R3 ASL R3 MOV ADD R3,R4 WBUFPA(R1),R4 MOV R4,TMPPA MOV WBUFEA(R1),TMPEA BIT BEQ #MAFSTAT,DT.STO( 5.0033$ MOV fI10V JSR MOV R5,-(SP) #TMPPA,-(R5) PC,UNIPA (SP) +, R5 BR 50034$ MOV TMPPA,FM.PA MOV TMPEA,FM.EA N.OV IY:OV MOV R5,-(SP) #CKDWRA,-(R5) FM.EA,-(R5) ,...",,, .. .1111 ;+ ; FORM WRITE BUFFER FAILING ADDRESS ;- 003630' 003630 1 003632 1 003632 1 003634' 003634 1 003636' LET R3 .- R3 - #1 LET R3 . - R3 SHIFT 1 LET R4 . - R3 + WBUFPA(R1) 005303 006303 010304 066104 003642' 003642' 010467 003646 1 003646 1 016167 000134 LET TMPPA ' - R4 174140 LET TMPEA 000136 "- WBUFEA(R1) 174134 ;+ ; IF MAPPING ON, CALL UNIPA 1279 1280 1281 1282 (6) (9) 1283 (3) (4) (3) (3) 1284 (4) (3) 1285 (4 ) 1286 (4) 1287 (4) 1288 1289 1290 1291 1292 1293 1294 20-SEP-78 , 003654' 003654 1 003662 ' 003664 1 003664 1 003666' 003672' 003676' 003700' 003700' 003702' 003702' 003702' 003710' 003710' 003716' 003716 1 IF #MAPSTAT SETIN DT.STO(RO) THEN 032760 001407 000200 000010 CALL UNIPA IN <#TMPPA> 010546 012745 004767 012605 000006' OOOOOOG ELSE 000406 .- TMPPA LET FM.EA . - TMPEA 50033$: LET FM.PA 016767 174100 174102 016767 174074 174076 ENDIF 50034$: ;+ ; CONVERT WRITE ADDRESS TO ASCII , 003716 1 003716 1 010546 003720 1 012745 003724 1 016745 CALL BOAC IN <RO,FM.PA,FM.EA, #CKDWRA> 001467' 174064 MACY11 3CA(10S2) FILLMS - MODULE TO FILL IN SLANt< FIELDS IN SKELETAL MESSAGES PROCESS CKDATA/DATACK/DATERR 1S-AUG-78 16:52 FILLMS.MAC (5) (4) (3) (3) 1296 (4 ) (6) 1297 (6) 1298 (4) (6) 1299 (4) 1300 1301 (4) 1302 (4) 1303 1304 1305 1306 1307 1302 (6) (9) 1309 (3) (4) (3) (3) 1310 (4) (3) 1311 (4) 1312 (4) 1313 (4) 1314 1315 1316 1317 1318 1319 (3) (7) (6) (5) (4) (3 ) (3) 1320 (4) 003730 1 016745 0037341 010045 003736 1 004767 003742' 012605 003744 1 003744' 010204 003746 1 062704 003752' 0037521 067403 003756' 003756' 011404 003760\ 062704 003764 1 003764\ 011404 003766 1 003766 1 010367 003772 1 003772' 010467 20-SEP-78 17:53 P~GE SEQ 0519 174056 OOOOOOG LET R4 000004 '- .- R3 + @l(R4) LET R4 '- LET R4 . - (R4) 000002 MOV MOV JSR MOV FM.PA,-(R5) RO,-(R5) PC,BOAC (SP)+,R5 MOV ADD R2.R4 #4,R4 ADD @l( R4) , R3 MOV ADD (R4) ,R4 #2,R4 MOV (R4) ,R4 MDV R3,TMPPA MOV R4,TMPEA BIT StQ #MAPSTAT,DT.STO( 50035$ MOV MOV JSR MOV R5,-(SP) #TMPPA,-(RS) PC,UNIPA (SP)+,R5 BR 50036$ MOV TMPPA,FM.PA MOV TMPEA,FM.EA IVlOV M:JV MOV MOV IVlOV JSR MOV R5,-(SP) #CKDRDA,-(R5) FM.EA,-(R5) FM.PA,-(R5) RO,-(R5) PC,BOAC (SP)+,R5 SR 50037$ R2 + #4 LET R3 000000 19-36 (R4) + #2 LET TMPPA '- R3 LET TMPEA '- R4 174014 174012 + IF MAPPING ON CALL UNIPA 003776 1 003776' 032760 004004 1 001407 004006' 004006 1 010546 004010 1 012745 004014 1 004767 004020 1 012605 004022 1 C04022 1 000406 004024' 004024 1 004024 1 016767 004032' 004032 1 016767 004040 1 004040 1 IF #MAPSTAT SETIN DT.STO(RO) THEN vvv..:.vv ""'1'\""''''' 000010 CALL UNIPA IN <#TMPPA> 000006 1 OOOOOOG ELSE 173756 173752 LET FM.PA . - TMPPA LET FM.EA .- TMPEA 173760 50035$: 173754 ENDIF 50036$: ;+ ; CONVERT READ ADDRESS TO .ASCI I ;- 004040' 004040 1 010546 004042 1 012745 004046 1 016745 004052 1 016745 004056' 010045 004060 1 004767 004064 1 012605 004066' 004066 1 000422 CALL BOAC IN <RO,· FM.PA,FM.EA, #CKDRDA> 001506 1 173742 173734 OOOOOOG ELSE FILLMS - MODULE TO FILL IN BLANK FIELDS IN SK2LETAL MESShGES MACY11 30A(10S2) FILLMS.MAC 15-AUG-78 16:52 PROCESS CKDATA/DATACK/DATERR 20-SEP-78 17:53 PAGE 19-37 SEQ 0520 50032$: (3 ) 1321 1322 1323 1324 1325 1326 1327 (3) (6) (5) (4) (3) (3) 1328 (3) (6) (5) (4) (3) (3) 1329 (4) 1330 (4) 004070' 1331 004142' (2) 1332 (2) 1333 004142 1 000167 004146 1 004146' ;+ ; GET A P.A. j- 004070' 004070' 004072 1 004076 1 004102 1 004104' 004110 1 004112' 004112 1 004114' 004120' 004124 1 004126 1 004132 1 004134 1 004134 1 004134 1 004134 1 CALL GETAPA IN <RO,SBADR(R1),#CKDWRA> 010546 012745 016145 010045 004767 012605 010546 012745 016145 010045 004767 012605 001467' 0001'02 000372 R5,-(SP) #CKDWRA,-(R5) SBADR(R1),-(R5) RO,-(R5) PC,GETAPA (SP)+,R5 MOV MOV MOV MOV JSR MOV R5,-(SP) #CKDRDA,-(R5) WASADR(R1),-(R5) RO,-(R5) PC,GETAPA (SP)+,R5 MOV #CKDMSG,FLMSADR( CALL GETAPA IN <RO,WASADR(R1),#CKDRDA> 001506' 000104 000350 ENDIF LET FLMSADR(R5) 012765 MOV MOV MOV MOV JSR MOV 00132::' 000010 INLINE <JMP 1$> 000100 INLINE <339$:> .- #CKDMSG 50037$: '~.n U:llr i ,..,ct 339$: FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACYi1 30A(1052) FILLMS.MAC 15-AUG-78 16:52 PROCESS CKDATA/DATACK SUMMARY LINE .SSTTL 1335 1336 1337 1338 1339 (4) 1362 (4) 17:53 PAGE 19-38 SEQ 0521 PROCESS CKDATA/DATACK SUMMARY LINE ;+ ; IS IT THE CKDATA/DATACK SUMMARY LINE? ;- 1340 1341 1342 (6) (9) 1343 (4) (6) 1344 1345 1346 1347 1348 1349 (3) (5) (4) (3) (3) 1350 1351 1352 1353 1354 1355 (3) (5) (4) (3) (3) i 356 1357 1358 1359 1360 (3 ) (5) (4) (3) (3) 1361 20-SEP-78 004146' 004146' 004152' 004154' 004154' 004160' IF R4 EQ #MSGCKS THEN 020427 001035 000011 016103 042703 000146 100000 CMP BNE R4,#MSGCKS 50040$ MOV SIC CDERCT (R1) ,R3 #BIT15,R3 MOV MOV MOV JSR MOV R5,-(SP) #CKDSNAM,-(R5) R1 ,- (R5) PC,GETNAM (SP)+,R5 MOV MOV MOV JSR MOV RS.-(SP) #CKDSCNT.-(R5) R3,-(R5) PC,BDACNV (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #CKDSRD,-(R5) RBUFSZ(R1),-(R5) PC,8DACNV (SP)+,R5 MOV #CKDSMSG,FLMSADR LET R3 := COERCT(R1) CLR.BY #BIT15 ;+ ; GET THE MODULE NAME ;- 004164 1 004164' 004166' 004172 1 004174 1 004200' CALL GETNAM IN <R1,#CKDSNAM> 010546 012745 010145 004767 012605 001520 1 000054 ;+ ; CONVERT SUMMARY COUNT TO ASCII ;- 004202 1 004202' 004204' 004210' 004212' 004216' CALL BDACNV IN <R3, #CKDSCNT> 010546 012745 010345 004767 012605 001532 1 OOOOOOG ;+ ; CONVERT NUMBER OF LOCATIONS READ TO ASCII , 004220' 004220' 010546 004222 1 012745 004226' 016145 004232 1 004767 004236 1 012605 004240 1 004240' 012765 004246' 004246' CALL BDACNV IN <RBUFSZ(R1),#CKDSRD> 001556 1 000132 OOOOOOG LET FLMSADR(R5) '- #CKDSMSG 001520' 000010 ENDIF 50040$: FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) 20-SEP-78 FILLMS.MAC 15-AUG-78 16:52 DO THE NECESSARY CLEAN-UP AND THEN RETURN 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 (2) '376 (3) 1377 (3) (3) (2) 1378 .SBTTL 17:53 PAGE 19-39 SEQ 0522 DO THE NECESSARY CLEAN-UP AND THEN RETURN ;+ ; NOW THAT W~IVE FILLED-IN THE BLANK FIELDS, DQ tHE CLEAN UP AND RETURN ;- 004246 1 004246 1 004246 1 004246 1 004767 004252 1 004252 1 004252 1 004252' 000207 INLINE <1$:> 1 $: CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 500015: F1LLMS - MODULE TO FILL IN SLANK FIELDS IN SKELETAL MESSAGES FILLMS.MAC 15-AUG-78 16:52 GET MODULE NAME . SSTT L' 1380 1381 1382 1383 1384 (2) . 1388 1389 1390 1391 1392 1393 (3) 1394 1395 1396 1397 1398 1399 (4) 1400 (4) 1401 (4) 1402 (4) (6) (9) 1403 (4) 1404 (6) 1405 (4) (3) 1406 1407 1408 1409 1410 (3) 1411 (3) (3) (2) 1412 1413 3CA(1052) 20-SEP-78 17:53 PAGE 19-40 SEQ 0523 GET MODU LE NAME ;+ ; THIS ROUTINE RETRIEVES THE MODULE NAME FROM THE MODULE1S HEADER AND ; STORES IT IN THE CALLER SUPPLIED STORAGE AREA ;- 1385 1386 1387 ~ACY11 ROUTINE GETNAM <HDRADR, RSLTADR> 004254 1 004254 1 GETNAM: ;+ ; SAVE REGISTERS 004254 1 004254' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV HDRADR(R5),RO MOV RSLTADR(R5),R1 ;+ ; GET HEADER ADDR., MOVE 5 CHARS TO RESULT ADDR. 004260 1 004260 1 016500 004264 1 004264 1 016501 LET RO .- HDRADR(R5) 000000 LET R1 .- RSLTADR(R5) 000002 LET R2 .- 004270 1 004270 1 012702 004274 1 004274' 004274 1 o.Q,5702 004276 1 003403 004300 1 004300 1 112021 004302 1 004302 1 005302 004304 1 004304 1 000773 004306' 000005 #~D<5> MOV WHILE R2 GT #0 DO 50002$: BlE R2 50003$ MOVS (RO)+, (R1)+ uEC R2 SR 50002$ JSR PC,RESREG RTS PC TST LET (R1)+ :S= (RO)+ lET R2 := R2 - #1 ENDDO 50003$: ;+ ; RESTORE REGISTERS ;004306 1 004306 1 004767 004312 1 004312' 004312 1 004312 1 000207 CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: MACY11 30A(1052) FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKE~ETAL MESSAGES FILLMS.MAC 15-AUG-78 16:52 GET ELASPED TIME .SBTTL 1415 1416 1417 1418 1419 1421 1422 1423 (2) 1424 1425 1426 1427 1428 1429 (3) 20-SEP-78 17:53 PAGE 19-41 SEQ 0524 GET ELASPED TIME ;+ ; THIS ROUTINE RETRIEVES THE EXERCISER'S ELASPED TIME AND RETURNS IT IN ; THE 9-BYTE FORMAT: "HHH:MM:SS~ ;- ROUTINE GETETIM <DTABLE, RSLTADR> 004314' 004314' GETETIM: ;+ ; SAVE REGISTERS CALL SAVREG 004314' 004314 1 004767 OOOOOOG JSR PC,SAVREG MOV DTABLE(R5),RO MOV RSLTADR(R5),R1 BIT BEQ #CLKPRES,DT.CFO( 50002$ MOV iv'lOV MOV JSR rv:OV R5,-(SP) R1,-(R5) RO,-(R5) PC,PRHMS (SP)+,R5 BR 50003$ flf;OV #"'D<9>,R2 TST BLE R2 50005$ 1430 1431 1432 1433 1434 1435 ;+ ; SAVE DTABLE ADDR.,RESULT ADDR. ;- LET RO .- DTABLE(R5) 004320' 000000 1436 004320' 016500 004324' (4) 004324' 016501 000002 (4) LET R1 .- RSLTADR(R5) 1437 1438 1439 ;+ ; IF A CLOCK ON SYSTEM, CONVERT ELAPSED TIME INTO HRS, ; MIN. ,SECS. 1440 1441 1442 1443 1444 (6) (9) 1445 (3) (5) (4) (3) (3) 1446 (4 ) (3) IF #CLK?RES SETIN DT.CFO(RO) THEN 004330 1 004330 1 032760 004336 1 004340' 0043L",Q 1 004342 1 004344' 000001 000014 001407 CALL PRHMS IN <RO, R1> 010545 010145 010045 004346 1 004767 OOOOOOG 004352 1 012605 004354' 004354 1 000410 004356' ELSE 50002$: 1447 ;+ 1448 ; IF NOT, FILL IN BLANKS WITH SPACES 1449 1450 1451 1452 (4) 1453 (4 ) (6) (9) ;- 004356 1 004356 1 012702 004362 1 004362 1 004362 1 005702 004364' 003404 LET R2 000011 0- #-D<9> WHILE R2 GT #0 DO 50004$: FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES GET ELASPED TIME FILLMS.MAC 15-AUG-78 16:52 1454 (4) 1455 (6) 1456 I " ~ \'t} (3) 1457 (4) 1458 1459 1460 1461 1462 (3) 1463 (3) (3) (2) 1464 004366' 004366' 112721 004372' 004372' 005302 004374' "r..J1"\'7J11 VV't,;)/-r 000772 004376' 004376' 004376 1 MACY11 30A(1052) 20-SEP-78 17:53 PAGE 19-42 SEQ 0525 LET (R 1 ) + :B= #<SPACE> 000040 LET R2 ::c R2 - #1 MOVB #<SPACE>, (R1 H . DEC R2 BR 50004$ JSR PC,RESREG RTS PC ENDDO 500055; ENDIF 500035: ;+ ; RESTORE REGISTERS ;- 004376' 004376 1 004767 004402 1 004402' 004402' 004402 1 000207 CALL RESREG OOOOOOG ENDRTN 50000$: 500015: FILLMS - MODULE TO FILL IN BLANX FIELDS IN SKELETAL MESSAGES FILLMS.MAC 15-AUG-78 16:52 GET MODULE'S PASS TIME .SBTTL 1466 1467 1468 1469 1470 4 1487 (4) 1488 (4) 1489 1490 1491 1492 1493 1494 (6) (9) 1495 (3) (6) (5) (4) (3) (3) 1496 (4) (3 ) 1497 1498 1499 1500 1501 1502 (4) 1503 ( 4) (6) 17:53 PAGE 19-43 SEQ 0526 GET MODULE'S PASS TIME ; THIS ROUTINE GETS THE OPTION MODULE'S PASS TIME AND RETURNS IT IN THE /I.,. 4I (4) 20-SEP-78 ;+ ; 9-BYTE FORMAT: "HHH:MM:SS" • ..,., 1472 1473 1474 (2) 1475 1476 1477 1478 1479 1480 (3) 1481 1482 1483 1484 1485 1486 MACY11 30A(1052) ', - ROUTINE GETPTIM <DTABlE,HDRADR,RSLTADR> 004404' 004404' GETPTIM: ;+ ; SAVE REGISTERS j- 004404' 004404' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG" MOV DTASLE(R5) ,RO MOV HDRADR(R5),R1 MOV RSLTADR(R5) ,R2 BIT SEQ #CLKPRES,DT.CFO( 50002$ MOV MOV MOV MOV JSR MOV R5,-(SP) R2,-(R5) R1,-(RS} RO,-(RS) PC,PRPSCNT (SP)+,R5 BR 50003$ MOV #"'D<9>,R3 TST R3 ;+ ; SAVE DTABLE ADDR,HEADER ADDR,RESULT ADDR. 004410' 004410' 016500 004414' 004414' 016501 004420' 004420' 016502 LET RO .- DTASLE(R5) 000000 LET R1 .- HDRADR(R5) 000002 LET R2 .- RSLTADR(R5) 000004 ;+ ; IF A CLOCK ON SYSTEM, UPDATE MODULE'S PASS TIME ;- 004424' 004424' 004432' 004434' 004434' 004436' 004440 1 004442' 004444' 004450' 004452' 004452' 004454' IF #CLKPRES SETIN DT.CFO(RO) THEN 032760 001410 010545 010245 010145 010045 004767 012605 000001 000014 CALL PRPSCNT IN <RO,R1 ,R2> OOOOOOG ELSE 000410 50002$: ;+ ; I NSERT SPACES 004454' 004454' 012703 004460' 004460' 004460' 005703 LET R3 .- #"'D<9> 000011 WHILE R3 GT #0 DO 50004$: FILLMS - MODULE TO FILL IN SLANK FIELDS IN SKELETAL MESSAGES FILLMS.MAC 15-AUG-78 16:52 GET MODULE'S PASS TIME (9) 1504 (4) 1505 (6) 1506 (4) (3) 1507 (4) 004462' 004464' 004464' 004470' 004470' 004472' 004472' 004474' 004474' 004474' MACY11 30A(1052) 20-SEP-78 17:53 PhGE 19-44 SEQ 0527 003404 BlE 50005$ MOVB #<SPACE>, (R2)+ DEC R3 8R 50004$ LET (R2)+ :B= #<SPACE> 112722 000040 LET R3 . - R3 - #1 005303 ENDDO 000772 50005$: ENDIF 50003$: FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES FIlLMS.MAC 15-AUG-78 16:52 GET MODULE'S PASS TIME 1509 1510 1511 1512 1513 004474' 004474' 004767 004500' 004500' 004500' 004500' 000207 1 S1 8 17:53 PAGE 20 SEQ 0528 ; RESTORE REGISTERS (3) 1515 (3) (2) 1516 1517 20-SEP-78 ;+ 1514 (3) MACY11 30A(10S2) CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 50001S: FILLMS - MODULE TO F!LL IN BLANK FIELDS IN SKELETAL MESSAGES MACY11 30A(1052) 20-SEP-78 FILLMS.MAC 15-AUG-78 16:52 CONVERT VIRTUAL ADDRESS TQ PHYSICAL ADDRESS ASCII 1520 1521 1522 1523 1524 1525 1526 1527 152B (2 ) 1529 1530 1531 1532 1533 1534 1535 (3) 1536 1537 1538 1539 1540 (4) 1541 (4) 1542 (4 ) 1543 1544 1545 1546 (3) (5) (4) (3) (3) 1547 (3) (7 ) (6) (5) (4) (3) (3) 154B 1549 1550 1551 1552 (3) 1553 (3) (3) (2) 1SS4 .S8TTL 17:53 PAGE 20-1 SEQ 0529 CONVERT VIRTUAL ADDRESS TO PHYSICAL ADDRESS ASCII ;+ ; THIS ROUTINE ACCEPTS A l6-BIT VIRTUAL ADDRESS AND RETURNS AN 8-BYTE ; (22 BIT) PHYSICAL ADDRESS IN THE CALLER SUPPLIER STORAGE AREA ;- ROUTINE GETAPA <DTABLE, VA, RSLTADR> 004502 1 004502 1 GETAPA: ;+ ; SAVE REGISTERS 004502 1 004502 1 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV DTABLE(R5),RO MOV RSLTAQR(R5),R1 Mav VA(R5),TMPVA MOV MOV R5,-(SP) #TMPVA,-(R5) RO,-(R5) PC,GPA (SP)+,RS ;+ ; SAVE DTABLE ADDR,RESULT ADDR 004506' 004506 1 016500 004512 1 004512 1 016501 004516' 004516 1 016567 LET RO .- DTA8LE(RS) 000000 LET R1 .- RSLTADR(RS) 000004 LEi 000002 .... 1l.~\1 A 1 IVIr- VI-\. 173260 ;+ ; CONVERT TO PA AND THEN TO ASCII 'f - 004524 1 004524 1 004526 1 004532 1 004534 1 004540 1 004542 1 004542' 004544 1 004546' 0045S2 1 0045S6 1 004560' 004564' CALL GPA IN 010546 012745 010045 004767 01260S 010546 010145 016745 016745 010045 004767 012605 <RO~ #TMPVA> 000004 1 MOV JSR MOV OOOOOOG CALL BOAC IN <RO, TMPPA, TMPEA, R1> MOV MOV RS,-(SP) R1,-(R5) TMPEA,-(RS) TMPPA,-(RS) RO,-(R5) PC,BOAC (SP)+,RS JSR PC,RESREG RTS PC MOV MOV MOV MOV 173236 173230 JSR OOOOOOG ;+ ; RESTORE REGISTERS 004566 1 004566 1 004767 004572 1 004572' 004572 1 004572 1 000207 CALL RESREG OOOOOOG ENDRTN 50000$: S0001$: FILLMS - MODULE TO ~ILL IN BLANK FIELDS IN SK~LETAL MESSAGES MACY11 30A(1052) 20-SEP-78 FILLMS.MAC 15-AUG-78 16:52 CONVERT VIRTUAL ADDRESS TO PHYSICAL ADDRESS ASCII 1555 000001 .END 17:53 PAGE 20-2 SEQ 0530 FILLMS - MODULE TO FILL IN BLANK FIELDS IN SKELETAL MESSAGES SYMBOl.. TABLE 15-AUG-78 16:52 FILLMS.MAC ACSR = 000102 ACTSIT= 004000 ADDR22= 001000 .000006 ADR APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BADVCT 001223R BADVMS 001206R BDACNV= ****** G BITO 000001 000001 BITOO BITOt = 000002 BIT02 000004 BIT03 000010 BIT04 000020 000040 BIT05 BIT06 = 000100 000200 BIT07 BITOS 000400 BI T,09 001000 000002 BITl 002000 BITtO BIT 11 004000 8IT12 010000 020000 BIT13 BIT14 040000 100000 SITtS BIT2 000004 000010 BIT3 BIT4 = 000020 BITS 000040 BIT6 000100 BIT7 000200 BITB 000400 BIT9 001000 0000.02 BKDEF BKMOD 000020 I3KMODE= 040000 BKSLSH= 000134 BOAC ****** G BOA16 = ****** G CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKDADD CKDM-SG 001422R 001325R CKDNAM 001326R CKDNUM 001406R 001340R CKDPA CKDPAS 001373R CKDRDA 001506R 001436R CKDSB CKDSCN 001532R CKDSMS 001520R CKDSNA 00 l520R CKDSRD 001556R 001356R CKDVA CKDWAS 001452R CKDWRA' 001467R CKHUNG= ****** G CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF COO015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRlO 000025 CTRLU DATADD , 000520R DATAMS 000417R 0OO450R DATA PC DATCON 000535R DATEND 000601R DATERR 000572R DATNAM 000420R DATNUM 000504R DATPAS 000465R 000432R DATPC DATSTA 000553R DATTYP 000473R DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DRPMSG 001147R DRPNAM 001150R 001176R DRPPC DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 MACY11 30A(1052) DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036, DT.HMX= 000104 DT.KBE= 000024, DT.KBP= 000026 DT.KBR= 000022 ~. DT.KBU'; 00003{) DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 Dr.ST1= 000012 DT.SWR= 000056 f""\'T' cvn_ L.J, • ...l' r- "''''f'\f'\''''~ V VVVIL DT.W3U= 000050 DT . ~JHL= 000054 DT.WLL= 000052 DVIDl = 000014 ECCMEM= 000100 ECCSTA= 0000.1-0 ENBEOP= 010000 ENBNUL= OOOOOt ENDlST= 000000 EOPBIT= 000001 EOPMSG 000016R EOPNAM 00001/R EOPPAS 000037R EOPPST 000101R EOPTIM 0OOO57R ERRTYP= 000106 EVNTBE= 000200 EVNTHD::: 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 EXTEND 001146R EXTMSG 000602R FATERR= 100000 FILLMS 001600RG Fl..DCNT OOOODOR 20-SEP-78 17:53 SEQ 0531 'FLDMAX= 000010 FLMSAD= 000010 000014R FM.EA 000012R FM.PA GETAPA 004502R GETETI 004314R GETNAM Q04254R GETPTI 004404R GPA "'*>i<*** G HDRADR= 000002 HDRMSG 000342R HDRNAM 000343R 000355R HCRPA HDRPAS 000410R 000373R HDRPC HNGMSG 001275R HNGNAM 001276R HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000t22 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= INIT INTR IOMOD 000400 000030 000120 100000 102000 112000 110000 035060 172340 172342 172344 172346 172350 172352 172354 172356 172300 172302 172304 172306 172310 172312 172314 172316 000040 OOQ400 IO~ODP= IOMODR= IOMODX= JACK KIPARO= KIPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPDR1= KIPDR2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KTERRO= KTPRES= PAGE 21 KTSTAT= 000020 KTXTND= 040000 LF = 000012 'lINECN 000002R l?STAT= 000001 MAFMSG 001233R MAPNAM 001234R MAPPC Ml-IPSTA= MAPSTT MEO l\'lEMPAS= MODEXH= MODHOL= MJDSEL= MSGADR= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGi:CH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGrMP= MSGNUL= MSGPOP= MSG?RM= MSGRES= MSGSFT= MSGSKE= MSGSMB= rJlSGSiViH= MSGSMS= MSGSTD= M5.GSYS= MSGVEC= NBKMOD= NCPLOP= NOAPTY= 001251R 000200 001266R 076600 Q40000 004000 002000 001000 000004 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 l'lULL OWEN PAERR PAR?RE= PARSTA= PASCNT= PDP LSI= PDP60 PDP70 PRHMS ****** G PRIO 000000 PRI1 = 000040 FILLMS - MODULE TO FILL . IN BLA!'!K FIELDS IN SKELETAL MESSAGES SYMBOL TABLE 15-AUG-78 16:52 FILLMS.MAC PRI4 PRI5 PRI6 PRI7 PRPSCN= PRO PR4 PR5 PR6 PR7 PS PSW ·RANNUM= R8UFEA= RBUFPA= RBUFSZ= RBUFVA= RDSERV= RDWHMI= RELERR= RELMOD= RELTIM= RESREG= RES1 RES2 RICHAR= RSLTAD= 000004 RSTRT = 000112 RU80UT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SAVREG= ****** G SBADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.AD"R= 000006 Sc. ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 SRO = 177572 177574 SRl 177576 SR2 172516 SR3 000026 STAT STATBI= 064757 STATl = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 000076 SVR6 000200 000240 000300 000340 ****** G 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 ****** G 000056 000060 031060 HN8HRD 0OO240R RNBMSG 000153R RNBNAM 000154R RNBPAS 000222R RNBPC 000171R RNBSFT 000256R RNBSTA 000205R RNHMSG 000114R RNHTIM 000141R RNSERR 000304R RNSMSG 000264R RNSPWR 000333R RPTDAT= 002000 ASS. 000000 004574 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:FILLMS,DSKZ:FILLMS=SPMAC/ML,EQUATE,FILLMS RUN-TIME: 37 27 .4 SECONDS RUN-TIME RATIO: 105/65=1.6 14K (27 PAGES) CORE USED: MACY11 30A(1052) uru VA WASADR= WBSTAT= WBUFEA= 17:53 PAGE :21-1 SEQ 0532 SySCNT= 000052 SYSERR= 000100 Tl\lPEA 00OO10R Ti'v1PIO 000002 TMPPA OOOOOt3R TMPVA 000004R 000004R TMP1 TQOVF 000002 TYPCOD= 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR"6= 177654 UIPAR7= 177656 UIPDiiO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 UNIPA = ****** G llnt""\'T' Tfl~_ i .L.lU- 20-SEP-78 **::!.:*** G 000002 000104 000040 000136 \~BUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 WDFR 000116 WDTO 000114 WTINRE= 000352 WTWHMI= 000222 XFLAG = 0000e5 000023 000021 177777 000400 0003{O 000401 000170 000150 000220 000340 000405 060400 000110 000210 000200 000160 000403 000320 000350 000300 000140 000330 000404 000130 000120 000402 S:FLEV= 177777 $ISKO = 000001 $ISK1 = 000001 $ISK2 = 000001 $LOCTA= 177777 $LSTIN= 000001 $lSTTA= 000001 $NESTL= 177777 000300 $NSKO 000110 $NSK1 000120 $NSK2 000120 $NSK3 000120 $NSK4 XOFF XON $BGNLE= SERFLG= SF$AND= $F$BAD= $F$BLA= $F$CAS= $FSDEC= $F$DO = $F$FAL= $F$GOO= SF$IF = $F$INC;::: $FSLOO= $F$NAM;::: $FSNO = $FSOR = $F$RTI= $F$RTN= $FSSEl..= SF$THE= SF$TRU= $FSUNT= $F$WHI= $F$YES= 000120 $NSK5 $NSK6 000110 $SAVLE= 177777 $SSKO = 050005 $TAGLE= 177777 $TAGNU= 050002 STEMP = 000300 $TSKO = 050003 $TSKl = 050004 $TSK10= 050021 050005 STSK2 $TSK3 050014 050015 $TSK4 $TSK5 050016 $iSK6 050017 $TSK7 050020 $5ARGC= 000006 $SSYTE= 000403 $SCASE= 000000 $$DST ;::: 000000 $SELOC= 000402 SSERFL= 000000 S$FLAG= 000001 $$FROM= 000000 $$LOC = 004462R $$LOCN;::: 000000 $$REG = 177777 $SRETU= 000000 5SRTN1= 050000 $$RTN2= 050001 SSSRC = 000000 $STGSV= 000000 S$TGS1= 000000 $STGS2;::: 000000 000000 SSTO $$$TAG= 050000 004574R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 552 555 565 17:55 TABLE OF CONTENTS COMMON EQUATE MODULE GETPSW (COMMON DEFINITIONS & REFERENCES) 000000 1 .PRINT ;SPMAC: VERSION 1.1 GETPSW (CODE) SEQ 0533 GETPSW (GET CALLER'S PS WORD) GETPSW.MAC 28-JUL-78 09:15 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 MACY11 30A(1052) 20-SEP-78 17:55 COMMON EQUATE MODULE ;++ MODULE NAME: GETPSW FUNCTIONAL DESCRIPTION: THIS MODULE RETURNS THE CALLER'S PROCESSOR STATUS WORD. INPUTS: NONE IMPLICIT INPUTS: NONE OUTPUTS: PROCESSOR STATUS wORD IMPLICIT OUTPUTS: NONE 529 530 531 PATHOLOGICAL CONNECTIONS: NONE 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 SEQ 0534 .TITLE GETPSW (GET CALLER'S PS WORD) .IDENT JVO.Oj 528 527 PAGE 19 SUBORDINATE MODULES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL GETPSW OUT <AA> WHERE AA = PS WORD VERSION: 0.0 EDIT DATE BY REASON GETPSW (GET CALLER'S PS WORD) GETPSW.MAC 28-JUL-78 09:15 552 553 554 555 (1) MACY11 30A(1052) 20-SEP-78 17:55 PAGE 19-1 GETPSW (COMMON DEFINITIONS & REFERENCES) .SBTTL GETPSW (COMMON DEFINITIONS & REFERENCES) 000000' 000000' 556 000001 557 558 559 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LST IN=1 $LSTTAG=1 ;***~************ 560 ; REFERENCED BY OTHER MODULES 561 562 563 .GLOBL GETPSW f ;MODULE'S ENTRY POINT SEQ 0535 GETPSW (GET GETPSW.MAC 565 566 567 (2) 568 569 570 571 572 573 574 575 576 577 (2 ) 578 (4) 579 (2) 580 (2) 581 (3) (3 ) (2 ) 582 583 (2) 584 (4) 585 (2) 586 587 588 PS WORD) 28-JUL-78 09: 15 CALL~R'S MACY11 30A(1052) 20-SEP-78 GETPSW (CODE) 17:55 PAGE 19-2 SEQ 0536 .SBTTL GETPSW (CODE) ROUTINE GETPSW <A A> 000000' 000000' GETPSW: ;+ SAVE VECTOR 10; LOAD ADDRESS TO HANDLE ILLEGAL INSTRUCTION TRAP. EXECUTE AN ILLEGAL INSTRUCTION. THE TRAP iJI LL PUSH PSW ; AND PC+ ON THE STACK. IN THE TRAP HANDLER, GET THE PSW AND ; RETURN TO PC+ BY DOING AN RTl. NOW RESTORE THE ORIGINAL ; TRAP HANDLER AND RETURN. ;- 000000 1 000000' 000004' 000004' 000012' 000012' 000014' 000014' 000020' 000020' 000020' 000020' PUSH @#10 013746 000010 LET @#10 012737 .- #1$ 000022' 000010 MOV @#10,-(SP) MOV #1$,@#10 INLINE <·#77> #77 000077 POP @#10 012637 000010 MaV (SP)+,@#10 RTS PC ENDRTN 5UOOOS: 50001$: 000207 000022' 000022' 000022' 000022' 016665 000030' 000030' 000002 000001 TlIl 1"dC J.P' 1.....1.. i.'fo'" .... -1 <!: ...... .... I .......... LET AA(R5) 000002 1 $: . - 2(SP) MOV 000000 INLINE <RTI> ;RETURN RTI .END 2{SP),AA(R5) GET?SW (GET CALLER1S PS WORD) 28-JUL-78 09: 15 GETPSW.MAC 000000 AA 000102 ACSR ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 000106 ASB ASSEMB= 000010 ASTAT = 000104 000010 . AUTO AUTOST= 020000 000110 AWAS BITO 000001 000001 BITOO 000002 BIT01 000004 BIT02 000010 BIT03 000020 8IT04 000040 BIT05 000100 BIT06 BIT07 = 000200 000400 BIT08 001000 81T09 000002 BIT1 002000 BIT10 004000 81 Til 010000 BIT12 020000 BIT13 040000 BIT14 100000 BlT15 B1T2 000004 000010 BIT3 000020 8IT4 000040 BITS 000100 BIT6 000200 BIT7 000400 BIT8 BIT9 001000 000002 BKDEF BKMOO 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 COWOCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF = 000001 000015 CR CSRA = 000100 20-SEP-78 MACV11 30A(1052) SYMBOl. TAaLE 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTHU.l DCEVNT= 000011 DEFRTN-= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 OT. ADD= 000042 DT. AP = 000100 DT.APK= 000076 DT.SLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 OT.ESI: 000044 DT.EVN= 0.00000 OT.EXS= 000060 DT,.FCH= 000037 DT. FCN= '000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 OT.KBR= 000022 DT.KBU= 000030 Di .iv'LS~ vvvv...), DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 OT.PSW: 000004 OT.PTA= 000064 DT.RCS: 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 OT.SP = 000006 DT.SSI= 000046 OT. STO= 000010 OT.ST1= 000012 DT.SWR= 000056 OT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT. WLL= 000052 OVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 1"\1'\1"\1"'\':'\1"\ 17:55 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 GETPSW OOOOOORG HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 Icm.iNT= 000040 IONUM. = 000122 000100 IE INOPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE:: 000400 INIT ::: 000030 INTR 000120 IOMOD =. 100000 IOMODP;:;' 102000 IOMODR= 112000 10MODX= 1.0000 JACi{ 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KlPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPOR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MOOEXH= 004000 PAGE 20 SEQ 0537 MODHOL= 002000 1V1ODSEL= 001000 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 000017 MSGECH= i 77777 MSGEOP= .000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRO= 000007 MSGMAP= 000021 ~,'1SGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSM8= 000015 MSGSMH= 00')014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NCAPTY= 000')02 000000 NULL 024020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 POPLSI= 020000 004000 POP60 010000 PDP70 000000 PRIO 000040 PRI1 000200 PRI4 000240 PRI5 000300 PRI6 000340 PRI7 000000 PRO 000200 PR4 000240 PR5 000300 PR6 000340 PR7 177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 000056 RES: 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RJ80UT= 000177 RUNMOD= 100000 R5 1j ALU= 001740 075464 SAM SBADR = 000102 S8KN:OD= 000000 SBKSEL= 010000 SC:.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 Sc. CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SQFPAS= 000046 SP;.CE = 000040 SPOINT= 000032 SPVALU= 002200 177572 S~O 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATB!= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TiJlPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 GETPSW (GET CALLER'S PS WORD) GETPSW.MAC 28-JUL-78 09:15 WBUFPA= WBUFRQ= WBUFSZ= WDFR 000134 000140 000142 000116 000114 I~DTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 XOFF 000023 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $FSBAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIP.A.R7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 \~BSTAT= 000040 WSUFEA= 000136 ASS. 000000 000032 MACY11 30A(1052) 20-SEP-78 SYMBOL TABLE 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:GETPSW,DSKZ:GETPSW=SPMAC/ML,EQUATE,GETPSw RUN-TIME: 10 .9 .3 SECONDS RUN-TIME RATIO: 26/12=2.1 CORE USED: 14K (27 PAGES) 17:55 SEQ 0538 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $FSINC= 000210 $F$LOO= 000200 $F$NAM= PAGE 20-1 nT\I"\-tC'1'\ UVVIOU $FSNO = 000403 $F$OR = 000320 SF$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050002 $TEMP = 000402 $$ARGC= 000002 $$BYTE= 000000 $$CASE= 000000 $SDST = 000000 S$ELOC= 000000 $$ERFL= 000000 $$FLAG= 000000 r. (\ ('\('11"\ $$FrtOM= r.vvvvvv $SLOC = 000000 $$LOCN= 000000 $$REG = 177777 $SRETU= 000000 $$RTN1= 050000 $$RTN2= 050001 000000 $SSRC $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $STO 000000 $$$TAG= 050000 000032R = .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 552 555 566 17:56 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT HRDADRCHK ROUTINE ;SPMAC: VERSION 1.1 SEQ 0539 HRDADR HRDADRCHK - HARDWARE ADDRESS CHECK MACY11 30A(1052) HRDADR.MAC 28-JUL-78 09:15 CaMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 550 17:56 PAGE 19 SEQ 0540 .TITLE HRDADR HRDADRCHK - HARDWARE ADDRESS CHECK .IDENT JVO.Oj ;++ MODULE NAME: HRDADR FUNCTIONkL DESCRIPTION: MODULE WILL DETERMINE IF AN ADDRESS IS AVAILABLE BY TRYING TO READ THE LOCATION. LOCATION 4 WILL BE MODIFIED TO FIELD A NON-EXISTENT MEMORY TRAP. AN ERROR INDICATION WILL BE RETURNED IF THE ADDRESS DOES NOT RESPOND. INPUTS: ADDRESS TO BE CHECKED IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: ERROR INDICATOR PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL HRDADR IN <A> A= ADDRESS TO BE CHECKED 546 547 548 549 20-SEP-78 EDIT ;-- DATE BY REASON HRDADR HRDADRCHK - HARDWARE ADDRESS CHECK MACY11 30A(1052) 20-SEP-78 HRDADR.MAC 28-JUL-78 09:15 COMMON DEFINITIONS AND REFERENCES 552 553 554 555 (1) 556 557 558 559 560 561 562 563 554 17:56 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN =1 $LSiiAG =1 ;**************** ; REFERENCED BY OTHER MODULES , .GLOBL HRDADR ;MODULE ENTRY POINT PAGE 19-1 SEQ 0541 HRDADR HRDADRCHK - HARDWARE ADDRESS CHECK MACY11 30A(1052) HRDADR.MAC 28-JUL-78 09:15 HRDADRCHK ROUTINE 566 567 568 569 (2) 570 571 572 573 574 575 576 577 (2) 578 (4) 579 580 581 582 583 584 (2) 585 586 587 20-SEP-78 17:56 PAGE 19-2 SEQ 0542 HRDADRCHK ROUTINE .SBTTL ROUTINE HRDADRCHK <ADRCHK> 000000' 000000' HRDADRCHK: ;+ ; SAVE REGISTERS AND RETRIEVE ADDRESS ; FROM R5 STACK , 000000' 000000' 010046 000002 1 0000021 016500 RO PUSH LET RO := ADRCHK(R5) 000000 MOV RO,-(SP) MOV ADRCHX(R5),RO MOV @#4,-(SP) MOV #1$,@#4 ADD #O,(RO) MOV MOV (SP)+,@#4 (SP)+,RO 2R 50000$ ;+ ; SAV~ , 000006' 000006 1 013746 CURRENT CONTENTS OF LaC. 4 ON STACK PUSH @#4 000004 ;+ , LOAD LOCo 4 WITH THE TEMPORARY NON-EXISTENT ",-on ; MEMORY TRAP ROUTINE AT LABEL 1$ 589 590 591 (4) 592 593 594 595 596 597 (6) 598 599 600 601 602 603 (2 ) (3) 604 60S (4) 606 ;- ~oo 000012' 000012' 012737 LET @#4 '- #1$ 000034' 000004 ;+ ; CHECK TO SEE IF ADDRESS IS A VALID ADDRESS . ClOOCi20' 000020' 062710 LET (RO) . - (RO) + #0 000000 ;+ ; RESTORE LOC. 4 AND RO, AND RETURN NO ERROR INDICATOR . 000024' 000024' 012637 000030' 012600 000032 1 000032' 000410 POP @#4,RO 000004 RETURN NO. ERROR HRDADR HRDADRCHK - HARDWARE ADDRESS CHECK MACY11 30A(1052) HRDADR.MAC 28-JUL-78 09:15 HRDADRCHK ROUTINE (2) 618 619 620 621 622 623 (2) 624 625 (2) (3) 626 527 , 0- 000034' 000034' 000034' 000034' 012716 000040' 000040' 000002 000042 1 000042' 012637 000046' 012600 1 $: . - #2$ MOV 000042 1 #2$,(SP) INLINE <RTI> RTI POP 2$: @#4,RO MOV MOV 000004 RETURN ERROR (4) 000052' 000401 (3) (2) 634 635 (SP) INLlNE <2$:> 000050' 000261 (2) LET 000042' 000042' 000050' 528 629 630 531 632 633 (3) INLINE <1$:> ;+ ; RETURN HERE IF TRAP OCCURRED, CLEAN-UP STACK AND RETURN ERROR ;- J \ " SEQ 0543 NON-EXISTENT MEMORY TRAP TOOK PLACE, ., , ( PAGE 19-3 ; THEREFORE ADDRESS TESTED WAS ILLEGAL, ; REPLACE RETURN ADDRESS ON STACK WITH 2$ ; AND DO A RTI WHICH WILL SEND ·YOU TO 2$. 610 617 17:56 ;+ 608 609 611 612 613 614 615 (2) 616 (4) 20-SEP-78 (SP)+,@#4 (SP)+,RO SEC BR 50001$ ;+ ;RETURN TO CALLER ;000054 1 000054' 000054' 000241 000056' 000056' 000207 000001 ENDRTN 50000$: CLC 50001$: RTS .END PC MACY11 30A(1052) HRDADR HRDADRCHK - HARDWARE ADORESS CHECK SYMBOL TABLE 28-JUL-78 09:15 HRDADR.MAC ACSR 000102 ACTSlT= 004000 ADDR22= 001000 000006 ADR ADRCHK= 000000 APTFER= 000004 APTPRE= 000200 000106 ASB ASSEMS= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AtIJAS 000110 BITO 000001 BITOO 000001 BIT01 000002 000004 BIT02 8IT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 001000 BIT09 000002 BIT1 002000 BIT1 0 1"I1"I1l1"I1"I1"l BIT11 v'J BIT12 010000 020000 BIT13 B1T14 040000 8IT15 100000 8IT2 000004 000010 BIT3 BIT4 000020 000040 BIT5 BIT6 000100 BIT7 000200 13IT8 000400 B1T9 00.1000 SKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 ClKPRE= 000001 CONFIG= 000056 CQOVF = 000001 000015 CR CSRA = 000100 V V""TV CSRC = 000102 000003 CTRLC 000017 CTRlO 000025 CTRlU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT .ADD= 000042 DT.AP = 000100 DT. APK= 000076 DT.BlS= 000034 DT.CFO= 000014 DT.CFt= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN: 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.Of:F= 000070 DT.PAS= 000074 DT.PC = 000002 DT. PFl= 000062 OT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000000 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WSU= 000050 DT.WHl= 000054 DT.WlL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 20-SEP-78 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDADR OOOOOORG HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 IE 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 ,JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172345 KlPAR4= 172350 KlPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 K1PD~3= 172306 KIPDR4= i72310 KIPDR5= 172312 KIPDR6= 172314 K1PDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF lPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 004000 17:56 PAGE 20 SEQ 0544 MODHOl= 00200"0 MODSEL= 001000 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 00001.7 MSGECH= "'" '7I i I I r-rI MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 17777-5 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSM8= 000015 MSGSMH= 000014 MSGSivlS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NSKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL 024020 OWEN 000010 PAERR PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 PDP70 = 010000 000000 PRIO 000040 PRI1 000200 PRI4 000240 PRI5 000300 PRI6 000340 PRI7 PRO 000000 000200 PR4 000240 PR5 PR6 000300 000340 PR7 177776 PS 177776 PSW RANi'JUrw'1= 000054 R8UFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 I r'"] r"J-J RBUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RElMOD= 020000 RELTIM= 010000 RESi 000056 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VAlU= 001740 075464 SAM SBADR = 000102 SSKMOD= 000000 S3KSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.ClO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENOlS= 177777 SOFCNT= 000042 SGFPAS= 000046 S?ACE = 000040 SPOINT= 000032 SPVAlU= 002200 177572 SRO SR1 177574 177576 SR2 172516 SR3 000026 STAT STATBl= 064757 STAT1 = 000027 SUS?ND= 000001 000062 SVRO SVR1 000064 000066 SVR2 000070 Sv'R3 SVR4 000072 000074 SVR5 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 HRDADR HRDADRCHK - HARDWARE ADDRESS CHECK MACY11 30A(1052) HRDADR.MAC 28-JUL-78 09:15 SYMBOL TABLE UIPAR2= UIPAR3= UIPAR4= UiPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= V.lASADR= ItJBSTAT= \<JBUFEA= 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 000136 ASS. 000000 000060 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHM!= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000000 $F$AND= 000310 $F$3AD= 000401 $F$BLA= 000170 $F$CAS= 000150 $FSDEC= 000220 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERAT~D: 0 DSKZ:HRDADR,DSKZ:HRDADR=SPMAC/ML,EQUATE,HRDADR RUt~-T I lyiE: 11 1 .3 S ECON8S RUN-TIME RATIO: 27/13=2.1 CORE USED: 14K (27 PAGES) $F$DO = 000340 $F$FAL= 000405 $FSGOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 i1"r-l'!""'II.IIiR_ ;j'lr;j'lI'll-\ifI- 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 20-SEP-78 17:56 PAGE 20-1 $IFLEV= 177777 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $S,l1,V LE= 177777 $TAGLE= 177777 $TAGNU= 050002 $TEMP = 000300 $$ARGC= 000002 $$BYTE= 000000 $SCASE= 000000 $$DST = 000000 $$ELOC= 000403 $$ERFL= 000000 $$FLAG= 000000 SEQ 0545 $$rROr\~= 000000 000000 $$LOC $$LCCN= 000000 $S;:(!:G = 177777 $$RETU= 000'001 $SRTN1= 050000 $SRTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$T;3S1= 000000 $STGS2= 000000 000000 $$TO $$$TAG= 050000 000060R = .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 552 555 578 17:56 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000· .PRINT HTRAP ROUTINE ;SPMAC: VERSION 1.1 SEQ 0546 HTRAP - FIELD ERROR TRAPS HTRAP.MAC 28-JUL-78 09:15 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 53tt 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 MACY11 30A(1052) 20-SEP-78 17:56 COMMON EQUATE MODULE PAGE 19 SEQ 0547 .TITLE HTRAP - FIELD ERROR TRAPS .IDENT /VO.O/ ;++ MODULE NAME: HTRAP FUNCTIONAL DESCRIPTION: THIS MODULE IS ENTERED AS A RESULT OF A HARDWARE TRAP. THE CODE SIMPLY PUSHES AN EVENT CODE ON THE STACK AND EXITS. THERE ARE SEVERAL ENTRY POINTS. THE ENTRY POINT IS DETERMINED BY THE HARDWARE TRAP VECTOR. INPUTS: NONE. IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE. PATHOLOGICAL CONNECTIONS: NONE. SUBORDINATE MODULES CALLED: NONE. FUNCTIONAL SIDE EFFECTS: NONE. CALLING SEQUENCE: CALLED BY HARDWARE ONLY. VERSION: 0.0 EDIT BY DATE REASON HTRAP - FIELD ERROR TRAPS HTRAP.MAC 28-JUL-78 09:15 .SBiiL COMMON DEFINITIONS AND REFERENCES 552 553 554 555 (1) 556 557 558 559 560 561 562 563 564 565 5613 567 568 569 MACY11 30A(1052) 20-SEP-78 17:56 - PAGE 19-1 COMMON DEFINITIONS AND REFERENCES 000000' 000000' .PRINT 000001 000001 .MCALL STRUCT STRUCT ;SPMAC: VERSION 1.1 $ LST IN = 1 $LSTTAG =1 ;**************** , ;REFERENCED BY OTHER MODULES .GLOBL .GLOBL .GL08L .GLOBL .GLOBL HT.EXT HTBUSS HTREIN HTPAER HTKT ;ADDRESS TO EXIT THIS MODULE THROUGH ;ENTRY POINT FOR BUSS ERROR TRAP ;ENTRY POINT FOR RESERVED INSTRUCTION TRAP ;ENTRY POINT FOR PARITY ERROR TRAP ;ENTRY POINT FOR KT TRAP 570 571 ;**************** , 572 ;LOCAL STORAGE: 573 , 574 575 576 000000' 000000 HT . EX T: . WORD o ;ADDRESS TO EXIT THIS MODULE THRU SEQ 0548 HTRAP - FIELD ERROR TRAPS 28-JUL-78 09:15 HTRAP.MAC 578 579 580 581 582 583 584 (2) 585 (2) 586 587 588 589 590 591 (2) 592 (2) 593 594 595 596 597 598 599 MACV11 30A(1052) 20-SEP-78 HTRAP RCUTINE 17:56 PAGE 19-2 SEQ 0549 .SBTTl HTRAP ROUTINE ;+ ;ENTER HERE ON BUSS ERROR TRAP , INLINE <KT8USS:> 0OOOO2·! 000002 1 000002' 000002' 012746 000006' 000177 000012' 000012' 000012' 000012' 012746 000016' 000177 000200 177766 HT8USS: PUSH #EVNTBE JMP @HT.EXT MOV ;+ ;ENTER HERE ON RESERVED INSTR. TRAP ;INllNE <HTREIN:> PUSH #EVNTRE JMP @HT.EXT HTREIN: MOV 00020; 177756 #EVNT8E,-(SP) ;EXIT #EVNTRE,-(SP) ;EXIT ;+ ;ENTER HERE ON PARITY ERROR TRAP . INLINE <HTPAER:> 000022 1 (2 ) 000022 1 600 (2) 601 602 603 604 605 606 6C7 608 (2) 609 (2) 610 611 612 000022 1 000022 1 01~746 000026 1 000177 000202 177746 HTPAER: PUSH #EVNTPE JMP @HT.EXT MOV #EVNTPE,-(SP) ;EXIT ;+ ; ENTER HERE ON MEMORY MANAGEMENT ERROR 000032 1 000032' 000032 1 000032 1 012746 000036' 000177 000001 INLINE <HTKT:> 000203 177736 HTKT: PUSH #EVNTKT JMP @HT.EXT MOV .END ;EXIT #EVNTKT,-(SP) HTRAP - FIELD ERROR TRAPS HTRAP.MAC 28-JUL-78 09:15 ACSR ACTBIT= ADDR22= ADR APTFER= APTPRE= 000102 004000 001000 000006 000004 000200 ASS 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 000110 MoJA5 BITO 000001 000001 BITOO 000002 BIT01 BIT02 000004 000010 BIT03 000020 BIT04 BIT05 000040 000100 BIT06 BIT07 000200 000400 BIT08 OO~OOO BIT09 BIT1 000002 002000 BIT10 004000 BITi1 010000 BIT12 020000 BIT13 040000 BIT14 100000 BIT15 000004 BIT2 000010 8IT3 000020 BIT4 BITS = 000040 BIT6 000100 BIT7 000200 000400 BIT8 001000 BIT9 000002 BKDEF BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAFRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = ~OOOOO CU<PRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA 000100 000102 CSRC = MACY11 30A(1052) 20-SEP-78 SYMSOL TABLE 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO::= 100000 DSEVNT= 000014 DT.ADD::: 000042 DT. AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT .. CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBB: 000022 DT.KBU= 000030 DT .MLS= 000032 DT.MTI= 000110 DT ,:OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.~EL= 000040 DT. SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI::: OG0046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT . WBU= 000050 DT. WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENSNUL= 000001 ENDLST= 000000 EOPBIT= 000001 11:~b ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 HTBUSS 000002RG 000032RG HTKT HTPAER 000022RG HTREIN 000012RG HT.EXT OOOOOORG ICONT : 000036 ICOUNT= 000040 IDNUrJI = 000122 IE 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 0.00030 HHT INTR 000120 IOMOD 109000 IOMODP= 102000 IOMODR= 1 i 2000 IOMODX= JACK KIPARO= KIPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPDR1= KIPDR2= KIPDR3= KIPDR4= t\ I PDR5= KIPDR6= KIPDR7= KTERRO= KTPRES= InSTAT= KTXTND= LF LPSTAT= MAPSTA= 110000 035060 172340 172342 172344 172346 172350 1.72352 172354 172356 172300 172302 172304 172306 172310 172312 172314 172316 000040 000400 000020 0400CO 000012 000001 000200 ~A~~ ~u SEQ 0550 MED 076'600 MEMPAS= MODEXH= MODHOl= MODSEl= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSG:-.JUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSM3= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= 040000 004000 002000 001000 000010 000011 000005 000017 17'7777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 00·)015000014 000016 000000 000012 000020 i .........\.o! r,..,!'\ VUIUVU NCPUOP= NOAPTY= NULL OI}JEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRl7 000020 000002 OODOOO 024020 000010 002000 000100 008034 020000 004000 010000 000000 000040 000200 000240 000300 000340 PRO 000000 PR4 000200 PR5 00:)240 PR6 000300 PR7 000340 PS 177776 PSW 177776 RANNUM= 00-J054 RBUFEA= 000130 RBUFPA= 000126 R3UFSZ= 000132 R3UFVA= 000124 RDSERV= 000101 RQW!--!M!= 000022 RElERR= 000020 RELMOD= 020000 RELTIM= 010000 RES1 000056 RES2 000060 RICHAR= 031060·· RPiDAT= 002000 000112 RSTRT RJBOUT= 000177 RUNMOD= 100000 R5VALJ= 001740 SAM 075464 SBADR = 000102 SSKMOD= 000000 S3KSEL= 010000 SC.ADR= 000006 sc. ALC= 000014 se.APC= 000016 SC.CKL= 000002 SC.CKP= 00J004 SC.elO= 000000 = SC . HLD= OOCO~O SC.SCA= 000012 SENDLS= 177777 SGFCNT= 000042 SQFPAS= 000045 000040 SPACE S?OINi= 000032 SPVALU= 002200 177572 SRO SR1 177574 177576 SR2 172516 SR3 000026 STAT STATBI= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO SVR1 000064 000e66 SVR2 000070 SVR3 000072 SVR4 SVR5 000074 000076 SVR6 SYSCNT= 000052 SYSERR:..: 000100 T'\1P 10 000002 = = MACY11 30A(1052) 20-SEP-78 SYMBOL TABLE HTR~P - FIELD ERROR TRAPS 28-JUL-78 09: 15 HTRAP.MAC TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3:: 177646 UIPAR4= 177650 UIPAR5= 177652 UI PAR6:::' 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR'l= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 ASS. 000000 000042 WASADR= WBSTAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= 000104 000040 000136 000134 000140 000142 ~~DFR ",...J"\04.ofC uuv I .u 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGN LE= 177777 $ERFLG= 000000 $F$AND= 000310 $F$SAD= 000401 000 001 0 ERRORS DETECTED: DEFAULT GLOBAL5 GENERATED: 0 DSKZ:HTRAP,DSKZ:HTRAP=SPMAC/ML,EQUATE,HTRAP RUN-TIME: 10 .7 .3 SECONDS RUN-TIME RATIO: 26/11=2.2 CORE USED: 14K (27 PAGES) 17:56 $F$8LA= OOOi70 $FSCAS= 000150 $FSDEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 SFSLOO= 000200 $FSNAM= 000160 $FSNO = 000403 $FSOR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 SF$THE= 000330 $F$TRU= 000404 PAGE 20-1 SEQ 0551 $F$UNT= 00,0130 SFSWHI= 000120 $FSYES= 000402 $IFLEV= 177777 $LOCTA= 177777 SLST!N= 000001 $LSTTA= 000001 SNESTL= 177777 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050000 $$ARGC= 000000 $SBYTE= 000000 SSCA5E= 000000 $$DST = 000000 sSELOC= 000000 $$ERFL= 000000 $$FLAG= 000000 $$FROM= 000000 $SLOC = 000000 SSLOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 000000 $SRTN2= 000000 $SSRC = 000000 SSTGSV= 000000 $$TG51= 000000 $$TG52= 000000 $$TO 000000 $$STAG= 050000 000042R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 562 565 SSg 17:57 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT INDIRECT ECC CSR ON/OFF ROUTINE ;SPMAC: VERSION 1.1 SEQ 0552 ICSROO INDIRECT ECC CSRS ON/OFF ICSROO.MAC 06-SEP-78 15:46 508 509 510 511 512 513 ~ .. SEQ 0553 COMMON EQUATE MODULE .TITLE ICSROO INDIRECT ECC CSRS ON/OFF .IDENT /VO.O/ ;++ MODULE NAME: ICSROO .It 01'"+ 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 SSg FUNCTIONAL DESCRIPTION: ROUTINE WILL TURN ON/OFF ECC MEMORY IF CSRS ARE LOCATED ON THE MAIN MEMORY BUSS. THIS IS ACCOMPLISHED AS FOLLOWS: NO NPR ACTIVITY - TURN OFF CACHE - MAP KIPAR6 TO 177400 - ENABLE KT AND 22 BIT ADDRESSING - SET UP MAP REG 36 TO 17760000 - TURN MAP BOX ON - ACCESS CSR REGISTERS LISTED IN PARITY TABLE AND TAKE APPROPRIATE ACTION. (ON/OFF) lNPUTS: DTABLE ADDRESS ON/OFF FLAG IMPLICIT INPUTS: DT.PTA OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTICNS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL ICSROO IN <DTABLE,FLAG> DTABLE - ADDRESS OF DTABLE FLAG - ECC ON/OFF FLAG VERSION: 0.0 , *-- EDIT DATE BY REASOi-.J ICSROO INDIRECT ECC CSRS ON/OFF leSROO.MAC 06-SEP-78 15:46 561 562 563 564 MACY11 30A(1052) 20-SEP-78 17:57 PAGE 19-1 COMMON EQUATE MODULE SEQ 0554 .SBTTL COMMON DEFINITIONS AND REFERENCES 565 000000 1 (1 ) 566 567 568 569 000000 I 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG = 1 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 ;**************** ; REFERENCED BY OTHER MOD~LES .GLOBL ICSROO ;MODULE ENTRY POINT ;**************** ; GLOBAL REFERENCES .GLOBL CCNTRL ;CACHE CONTROL REGISTER ;**************** ; LOCAL EQU;'TES 152100 152136 170370 170372 IN.PCSR 152100 IN. pelS 152136 IN.M36 IN.M37 170370 170372 ;START OF PARITY CSRS BY INDIRECT MODE ;LAST PARITY CSR BY INDIRECT MODE ;MAP REG 36 LOWER 16 BITS ;MAP REG 36 UPPER 6 BITS MACY11 30A(1052) ICSROO INDIRECT ECC CSRS ON/OFF 06-SEP-78 15:46 ICSROO.MAC 589 590 591 (2) 592 593 594 595 596 597 598 (2) (3) 599 (4) 600 (4) 601 602 603 604 605 606 (2) 607 (2) 60B (2 ) 609 (2) 610 (2) 611 (2) 612 613 614 615 616 617 618 (6) 619 (4) 620 (6) 621 (6) 622 (4) 623 (4) 624 625 626 627 20-SEP-78 17:57 PAGE 19-2 SEQ 0555 IND!RECT ECC CSR ON/OFF ROCTINE .SBTTL !NDIRECT ECC CSR ON/OFF ROUTINE ROUTINE ICSROO <DTABLE,FLAG> 000000' 000000' ICSROO: • <IT ; SAVE REGISTERS AND GET ADDRESS OF PARITY TABLE .I 000000' 000000' 000002' 000004' 000004' 000010' 000010' PUSH RO,R1 010046 010146 MOV MOV RO,-(SP) Rl,-(SP) MOV DTABLE(R5),RO MOV DT.PTA(RO),R1 MOV @CCNTRL,-(SP) MOV @#SRO,-(SP) MOV @#SR3,-(SP) Mev @#IN.M36,-(SP) MOV @#IN.M37,-(SP) MOV @#KIPAR6,-(SP) LET RO .- DTABLE(R5) 016500 000000 LET R1 016001 .- DT.PTA(RO) 000064 ;+ ; SAVE STATUS OF CACHE, KT AND UNIBUS MAP REGISTERS 000014' 000014' 000020' 000020' 000024' 000024' 000030' 000030' 000034' 000034' 000040' 000040' PUSH @CCNTRL 017746 OOOOOOG PUSH @#SRO 013746 177572 PUSH ~#SR3 013746 172516 PUSH @#IN.M36 013746 170370 PUSH @#IN.M37 013746 170372 PUSH @#KIPAR6 013746 172354 ;+ ; TURN CACHE OFF, TURN KT ON, SETUP K!PAR6 TO POINT TO ; MAP REG 36 AND SETUP MA~ REGISTER 36 TO LOOK AT 128K I/O PAGE SHADOW AREA 000044' 000044' 000052' 000052' 000060' 000060' 000066' 000066 1 000074' 000074' 000102 1 000102 1 LET @CCNTRL := @CCNTRL SET.BY #14 052777 000014 012737 177400 OOOOOOG BIS #14,@CCNTRL MOV #177400,@#K!PAR6 BIS #BITOO,@l#SRO SIS #60,@#SR3 MOV #160000,@#IN.M36 MOV #77,@#IN.M37 LET @#KIPAR6 := #177400 052737 000001 052737 000060 172354 LET @#SRO .- @#SRO SET.BY #BITOO LET @#SR3 . - @#SR3 SET.BY #60 177572 172516 .- #160000 LET @#IN.M37 .- #77 LET @#IN.M36 012737 160000 170370 012737 000077 170372 ;+ ; WHILE ENTRY IN PARITY TABLE TAKE THE APPROPRIATE ACTION OF rURNING ON/OFF ECC MEMORY. 't - ICSROO INDIRECT ECC CSRS ON/OFF ICSROO.MAC 06-SEP-78 15:46 628 629 (4) (6) (9) 630 (6) (9) 631 (6) 632 (4) (3) 633 (6) 634 (4) 635 536 (4) (3) 637 638 639 640 641 000110' 000110' 000110' 000114' 000116' OOOli6' 000122 1 000124' 000124 1 000130' 000130' 000132' 000132 1 000132' 000136' 000136 1 SEQ 0556 INDIRECT ECC CSR ON/OFF ROUTINE WHILE (R1) NE #ENDLST DO 50002$: 021127 001411 000000 (R1 ) ,#ENDLST 50003$ TST SNE FL,.l.G(R5) . 50004$ SIS #3,@(R1)+ BR 50005$ BIC #3,@( R1 )+- 8i1 50002$ IF FLAG(R5) EO #0 THEN 005765 001003 052731 CMP SEQ LET @(R1)+ := @(R1)+ SET.BY #3 000003 ELSE 000402 50004$: LET @(R1)+ '- @(R1)+ CLR.BY #3 042731 000003 ENDIF 50005$: ENDDO 000136' 000136 1 000764 000140' 50003$: ;+ ; NOW RESTORE STATUS TO CACHE, KT AND MAP REGISTERS 'f - 642 000140' (2) 643 (2) 644 (2) 645 (2) 646 (2) 647 (2) 648 649 650 651 652 653 (2) (3) 654 655 (3) (3) (2) 656 000140' 000144' 000144' 000150' 000150' 000154' 000154' 000160' 000160' 000164' 000164' POP @#KIPAR6 012637 M0V 172354 POP @#IN.M37 012637 170372 MOV (SP)+,@#IN.M37 M8V (SP)+,@#IN.M36 MOV (SP)+,@#SR3 MOV (SP)+,@#SRO MOV (SP)+,@CCNTRL MOV MOV (SP)+,R1 (SP)+t RO RTS PC POP @#IN.M36 012637 170370 POP @l#SR3 012637 172516 POP @#SRO 012637 177572 POP @CCNTRL 012677 OOOOOOG ;+ ; NOW RESTORE REGISTERS AND RETURN 000170' 000170' 012601 000172' 012600 POP R1,RO 000174' 000174' 000174' 000174' 000207 000001 ENDRTN 50000$: 50001$: .END ICSROO INDIRECT ECC CSRS ON/OFF 06-SEP-78 15:46 ICSROO.MAC ACSR ACTBIT= ADDR22= ADR APTFER= APTPRE= 000102 004000 001000 000006 000004 000200 ASS 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 000110 AVJAS BITO 000001 000001 8ITOO BIT01 000002 BIT02 000004 000010 81T03 000020 BIT04 000040 BIT05 000100 BIT06 000200 BIT07 000400 BITOS 001000 B1T09 000002 BITl BIT10 002000 BITll 004000 B1T12 010000 020000 8IT13 BIT14 040000 100000 B1T15 BIT2 000004 000010 BIT3 B1T4 000020 BIT5 000040 000100 BIT6 BIT7 000200 000400 BIT8 BIT9 001000 BKDEF 000002 BKMOD 000020 BKMOOE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CCNTRL= ****** G CDERCT= 000146 CDWDCT= 000144 CKT1M = 100000 CLKPRE= 000001 CONF1G= 000056 000001 CQOVF 000015 CR CSRA 000100 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT. BLS= 000034 DT.CFO= 000014 D1.CF1= 000016 DT.ERR= 000020 D1.ESI= 000044 DT .I;VN=· 000000 DT. EXS=. 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX::: 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT . MLS= 000032 D1.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 OT.SMX= 000106 DT.SP = 000006 D1.SSI= 000046 DT.STO= 000010 OT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WSU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 MACY11 30A(1052) 20-SEP-78 17:07 !-lAG!::. 2U SEQ 0557 SY;V180L TABLE ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 000002 FLAG HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 rCSROO OOOOOORG IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 1NHRRE= 000400 000030 IN1T 000120 INTR 1N.M36= 170370 IN.M37= 170372 IN.,PCl= -i52136 IN.PCS= 152100 IOMOD ::: 100000 IOMODP';" 102000 IOMODR= 112000 10MODX= ·110000 JACK ::: 035060 KIPARO= 172340 KIPAR1= 172342 K1PAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 1\1 PORO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 K1POR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 II:" L-I 000012 L,PSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOl= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= 000001 000200 076600 040000 00400.0 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 ooood 1, 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 00J010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 MSGSi'~IB= MSGSrJlH= MSGSMS= MSGSTD= MSGSYS= MSG\l~C= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLS1= POP60 PDP70 PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 177776 PS PSW 177776 RANNUM= 000054 RBUFEA=. 000i30 RBUFPA= 000126 R8UFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 R;)\tJHM I = 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 RES1 000056 RES2 000060 RICHAR= 031060 RPTC)AT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNi\10D= 100000 R5VALU= 001740 SAM 075464 S8ADR = 000102 S3KMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 ' SCFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO SR1 177574 SR2 177576 172516 SR3 STAT 000026 STATB!= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 SVR2 000066 000070 SVR3 000072 SVR4 000074 SVR5 SVR6 ::: 000076 ICSROO INDIRECT ECC CSRS ON/OFF. 06-SEP=78 15:46 ICSROO.MAC UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= C00134 W8UFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $8GNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $FSBAD= 000401 $F$BLA= 000170 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 ABS. 000000 000176 MACY11 30A(1052) 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 20-SEP-78 17:57 PAGE 20-1 SEQ 0558 SYMBOL TABLE 0 DSKZ: ICSROO,DSKZ: ICSROO=SPMAC/ML,EQUATE,ICSROO RUN-TIME: 12 2 .3 SECONDS RUN-TIME RATIO: 31/16=1.9 CORE USED: 14K (27 PAGES) SF$CAS= 000150 SF$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110· $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $LOCTA= 177777 $LSTIN= 000001 $L5TTA= 000001 $NESTL= 1777'17 $NSKO = 000300 $N5K1 = 000120 $NSK2 = 000110 $SAVLE= 177777 $5SKO = 05000.3 $TAGLE= 177777 $TAGNU= 050006 000300 $TEMP $TSKO = 050002 $TSK1 = 050003 $TSK2 = 050005 $$ARGC= 000004 $$BYTE= 000403 $$CASE= 000000 $$05T = 000000 $$ELOC= 000402 SSERFL= 000000 $$FLAG= 000001 $'£FROivi= 000000 $SLOC = 000122R $$LOCN= 000000 $SREG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$iGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000176R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13=$EP-78 16:13 3 566 569 595 17:57 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT ;SPMAC: VERSION 1.1 INDIRECT ECC MEMORY CSR SIZING ROUTINE SEQ 0559 ICSRSZ INDIRECT ECC MEMORY CSR SIZING ROUTINE MA~Yll ~UAllU~~} ICSRSZ.MAC 06-SEP-78 15:50 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 545 546 547 548 549 550 551 552 553 INPUTS: DTABLE ADDRESS DT.ero OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG - SAVE REGISTERS RESREG - RESTORE REGISTERS KTSET - SET UP KT REGISTERS HRDADRCHK - ILLEGAL ADDRESS CHECK 554 FUNCTIONAL SIDE EFFECTS: NONE 555 556 557 558 CALLING SEQUENCE: CALL ICSRSZ IN <DTASLE> DTABLE - ADDRESS OF DTABLE 559 560 561 562 563 SEQ 0560 FUNCTIONAL DESCRIPTION: THIS MODULE WILL DETERMINE IF ECC MEMORY CSRS ARE HIDDEN ON THE MAIN MEMORY BUS OF THE 11/70 SYSTEM. THE MANNER IN WHICH THIS IS ACCOMPLISHED IS BY THE FOLLOWING: - NO NPR ACTIVITY - TURN CACHE OFF - MAP KIPAR6 TO 177400 - ENABLE MEMORY MANAGEMENT IN 22 BIT MODE - MAP UNIBUS MAP REGISTER 36 TO 17760000 - TURN ON UNIBUS MAP BOX ACCESS VIRTUAL ADDRESSES 152100 THROUGH 152136 AS ECC MEMORY CSRS IF ECC FOUND THEN THE CSR ADDRESS WILL Be ENTERED INTO THE PARITY TABLE. DT.STO 544 I~ MODULE NAME: ICSRSZ 535 536 543 ~nU~ ;++ IMPLICIT INPUTS: DT.PTA 539 540 541 542 1/;01 .TITLE ICSRSZ INDIRECT ECC MEMORY CSR SIZING ROUTINE .IDENT JVO.Oj 534 537 538 ~V-~~~-{C VERSION: 0.0 EDIT DATE BY REASON ICSRSZ INDIRECT ECC MEMORY CSR SIZING ROUTINE MACY11 30A(1052) ICSRSZ.MAC 06-SEP-78 15:50 COMMON EQUATE MODULE 564 .f 20-SEP-78 17:57 PAGE 19-1 SEQ 0561 ICSRSZ INDIRECT ECC MEMORY CSR SIZING ROUTINE MACY11 30A(1052) 20-SEP-78 !CSRSZ.MAC 06-SEP-78 15:50· COMMON DEFINITIONS AND REFERENCES 568 (1) 570 571 572 573 PAGE .19-2 . SBTTL COMMON DEFINITIONS AND REFERENCES 566 567 569 17:57 000000' 000000 I 000001 000001 574 .MCALL STRUCT STRUCT .PRINT ;SPMAC: .VERSION 1.1 $ LST IN = 1 $LSTTAG = 1 ;**************** ; REFERENCED BY OTHER MODULES 575 576 577 578 .GLOBL 579 ICSRSZ ;MODULE ENTRY POINT ;**************** ; GLOBAL REFERENCES 580 591 , 582 583 584 .GLOBL .GLOBL .GLOBL .GL03L .GLOBL 585 586 587 SAVREG RESREG KTSET HRDADRCHK CCNTRL ;SARE REGISTERS' ;RESTORE REGISTE~S iSET UP KT ;ILLEGAL ADDRESS CHECK ;CACHE CONTROL REGISTER ;**************** ; LOCAL EQUATES 588 , 589 59J 152100 591 592 593 152136 170370 170372 IC.PCSR IC.PClS IC.M36 IC.M37 152100 152136 170370 170372 ;START OF PARITY CSRS 3Y INDIRECT MODE ;LAST PARITY CSR 9Y INDIRECT MODE ;MAP REG 36 LOWE~ 16 BITS ;MAP REG 36 UPPE~ 6 BITS SEQ 0562 . ICSRSZ INDIRECT ECC MEMORY CSR SIZING ROUTINE MACYll 30A(1052) 20-SEP-78 17:57 ICSRSZ.MAC 06-SEP-78 15:50 INDIRECT ECC MEMORY CSR SIZING ROUTINE 595 596 597 598 (2) 599 600 601 602 603 604 (3) 605 (4) 606 607 608 609 610 611 (2) 612 (2) 613 (2) 614 (2) 615 (2) 616 (2) 617 618 619 620 621 622 623 (6) 624 (3 ) (4) (3 ) (3 ) 625 (4) 626 (6) 627 (6) 628 (4) 629 (4) 630 (4) .SBTTL PAGE 19-3 SEQ 0563 INDIRECT ECC MEMORY CSR SIZING ROUTINE ROUTINE ICSRSZ <DTABLE> 000000' 000000' ICSRSZ: ;+ ; SAVE REGISTERS AND GET ADDRESS OF DTABLE of 000000' 000000' 004767 000004' 000004' 016500 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV DTASLE(R5) ,RO LET RO := DTABLE(R5) 000000 i+ i SAVE CONTENTS OF CACHE CSR, KT STATUS, KIPAR6, AND MAP REGISTER ;- 000010' 000010' 017746 000014 1 000014' 013746 000020' 000020' 013746 ",..,...,..""""". uuuu..:'"+ 000024' 013746 000030' 000030 1 013746 000034' 000034' 013746 PUSH @lCCNTRL OOOOOOG MGV @lCCNTRL,-(SP) MOV @#SRO,-(SP) MOV @#SR3,-(SP) MOV @#IC.M36,-(SP) MOV @#IC.M37,-(SP) MOV @#KIPAR6,-(SP) SIS #14,@CCNTRI,. MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,KTSET (SP)+,RS MOV H177400,@#KIPAR6 SIS H3ITOO,@#SRO SIS H60,@#SR3 MOV HIC.PCSR,R3 MOV H160000,@#IC.M36 MOV H77,@lHIC.M37 PUSH @#SRO 177572 PUSH @#SR3 172516 170370 PUSH @#IC.M37 170372 PUSH @#KIPAR6 172354 ;+ ; TURN CACHE OF~, SETUP KT, SETUP KIPAR6 TO POINt TO MAP REG 36, i AND MAP REGISTER 36 TO LOOK AT 128K I/O SHADOW AREA. 000040' 000040' 000046 1 000046 1 000050 1 000052 1 000056 1 000060' 000060! 000066' 000066' 000074 1 000074' 000102' 000102 1 000106' 000106' 000114' 000114' LET @CCNTRL := @CCNTRL SET.BY #14 052777 000014 OOOOOOG CALL KTSET IN <RO> 010546 010045 004767 012605 OOOOOOG 012737 177400 LET @#KIPAR6 := #177400 172354 LET @#SRO .- @#SRO SET.BY #aITOO 052737 052737 000001 177572 LET @#SR3 000060 0- @#SR3 SET.BY #60 172516 LET R3 .- #IC.PCSR 012703 152100 012737 160000 012737 LET @#IC.M36 .- #160000 170370 LET @#IC.M37 000077 170372 0- #77 ICSRSZ INDIRECTECC MEMORY CSR SIZING ROUTINE MACY11 30A(1052) 20-SEP-78 17:57 ICSK5Z.MAC 06-SEP-78 15:50 INDIRECT ECC MEMORY CSR SIZING ROUTINE 631 632 633 634 635 636 (4) 637 638 639 640 641 642 643 (4) (6) (9) 644 (3) (4) (3) (3) 645 (6) 646 IA\ ;+ 000122' 000122' 016001 LET R1 := DT.PTA(RO) MOV 000064 DT.PTA(RO),R1 ;+ ; NOW DETERMINE IF ANY PARITY CSRS EXIST INDIRECTLY, IF SO LOAD ADDRESS INTO ; PARITY TABLE AND SET ECC MEMORY PRESENT AND ALSO INDIRECT PARITY REG BIT. C00126 1 000126 1 000126' 000132' 000134 1 000134' 000136 1 000140 1 000144' 000146' 000146' 000150' ~~~~~n' WHILE R3 LOS #IC.PClS DO 50002$: 020327 101021 010546 010345 004767 012605 152136 CALL HRDADRCHK IN <R3> OOOOOOG R3,#IC.PCLS 50003$ MOV MOV JSR MOV R5,-(SP) R3,-(R5) PC,HRDADRCHK (SP)+,R5 BCS 50004$ MOV R3,(R1)+ BIS #ECCMEM,DT.CFO(R BIS #INDPAR,DT.CFO(R CLR (R3) ADD #4,R3 BR 50002$ rt.OV (SP)+,@#KIPAR6 LET (R1)+ .- R3 ~~~~~~ VVVI~V 000152' 000152' 052760 000160' 000160' 052760 CMP BHI IF.NO.ERROR THEN 103410 ,~} (6) SEQ 0564 ; GET ADDRESS OF PARITY TABLE 647 648 (6) 649 650 651 652 653 654 (4) 655 (4) 656 657 658 659 660 661 (6) 662 (4) (3) 663 664 665 686 667 668 (2) PAGE 19-4 VIV~,I LET DT.CFO(RO) '- DT.CFO(RO) SET.BY #ECCMEM 000100 000014 000040 000014 LET DT.CFO(RO) .- DT.CFO(RO) SET.BY #INDPAR ;+ ; CLEAR OUT CSR, THUS TURNING OFF ECC LET (R3) := #0 000166' 000166' 005013 000170' 000170' ENDIF 50004$: ;+ ; UPDATE CSR ADDRESS AND GO LOOK AGAIN ;- 000170' 000170' 062703 000174' 000174' 000754 000176' LET R3 := R3 + #4 000004 ENDDO 50003$: ;+ ; NOW RESTORE CACHE, KT AND MAP REGISTERS ;- 000176' 000176' 012637 POP @#KIPAR6 172354 ICSRSZ INDIRECT ECC MEMORY CSR SIZING ROUTINE MACY11 30A(1052) 20-SEP-78 17:57 ICSRSZ.MAC 06-SEP-78 15:50 INDIRECT ECC MEMORY CSR SIZING ROUTINE 669 (2) 670 (2) 671 (2) 672 (2) 673 (2) 674 675 676 677 678 679 (3) 680 681 (3) (3) (2) 682 000202 1 000202 1 000206 1 000206 1 000212 1 000212 i 000216 1 000216 1 000222 1 000222 1 PAGE 19-5 SEQ 0565' POP @#IC.M37 012637 170372 MOV (SP)+,@#IC.M37 MOV (SP)+,@I#IC.M36 iviOV (SP)+,@#SR3 MOV (SP)+,@#SRO MOV {SP)+.@lCCNTRL JSR PC,RESREG RTS PC POP @#IC.M36 012637 170370 POP @#SR3 012637 172516 POP @#SRO 012637 012677 177572 oooqOOG POP @CCNTRL ;+ ; RESTORE REGISTERS AND RETURN TO CALLER ;- 000226 1 000226 1 004767 000232 1 000232 1 000232 1 000232 1 000207 000001 CALL RESREG OOOOOCG ENDRTN 50000$: 50001$: .END MACY11 30A(1052) ICSRSZ INDIRECT ECC MEMORY CSR SIZING ROUTINE SYMBOL TABLE 06-SEP-78 15:50 ICSRSZ.MAC 000102 ACSR ACTSIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 000106 ASB ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS 000001 BITO BITOO 000001 000002 B1 T01 000004 B1T02 000010 BIT03 BIT04 000020 000040 BIT05 000100 BIT06 BIT07 00.0200 BIT08 000400 001000 BIT09 000002 SITl BIT10 = 002000 004000 BIT11 010000 8IT12 81T13 020000 040000· BIT14 100000 BIT15 81T2 = 000004 0000"10 Brr3 000020 B1T4 000040 BIT5 000100 BIT6 000200 BIT7 BIT8 000400 BIT9 001000 BKDEF 000002 BKMOD = 000020 BKMODE= 040000 BKSlSH= 000134 CAPRES= 000004 CASTAT= 000004 CCNTRl= ****** G CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 ClKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA 000100 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400. DIAGMC=' 000000 DROPMO= 100000 DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = 000100 DT. APK= 000076 '. DT.BlS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT. ERR=. 000020 DT.ESl= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 0'00036 DT.HMX:::z 000104 DT.KBE= 000024 DT.KBP~ 000026 DT.K8R= OOOO?? DT.KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT ~PC .=- 00000·2 DT.PFl= 000062 DT.PSW= 000004 DT. PT A= 000064 DT.RCS= 000102 DT. REl= 000040 DT.seT= 00G066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STC= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLl= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 20-SEP-78 000000 00·0·001 000.106 000200 000200 t:. VI" I F\ 1 - 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDADR= ****** G HRDCNT= 000044 HRDPAS= 000050 ICONT = 00003.6 ICOUNT= 000040 ICSRSZ OOOOOORG IC.M36= 170370 lC.M37= 170372 IC. PCl= 152136 IC.PCS= 152100 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR = 000120 IOMOD 100000 lOMODP= 102000 IOMODR= 112000 rmroox=: . 1TOOlTo035060 JACK KIPARO= 172340 KlPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KlPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES~ 000400 KTSET = ****** G KTSTAT= 000020 ENDLST= EOPBIT= ERRTYP= EVNTBE= EVNTHD= """!Io-I"T'I.I'T ..... 17:57 PAGE 20 SEQ 0566 KTXTND= 040000 LF· 000012 LPSTAT= 000001 MA?STA= 000200 075600 MED MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 MODSEL= 00.1 QOO MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= OCOO07 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 rliSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSM8= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NHK1I.1OU=- oonmcr NCPUO?= 000020 NOAPTY= 000002 000000 NUll 024020 OWEN PAERR 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 PDP60 004000 PDP70 010000 000000 PRIO PRI1 000040 PRI4 000200 000240 PRI5 000300 PRI6 000340 PRl7 PRO 000000 PR4 000200 000240 PR5 PR6 000300 PR7 PS PSW RAN~UM= RBUFEA= R3UFPA= 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 RBUFSZ= RBUFVA= RDSERV= RDWHMI= REL.ERR= REU,,'OD= REl Tnl= RESREG= ****** G 000056 RES1 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 RSV.D..LU= 001740 075464 SAM SAVREG= ****** G S6ADR = 000102 SEK!VIOD= 000000 SBKSEL= 010000 SC ..tl.DR= 0000.06 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC:-c1tP"=- ()(j(}OO4 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOrPAS= 000C46 SPACE = 000040 SPOlNT= 000032 SPVALU= 002200 177572 SRO 177574 SRl 177576 SR2 172516 SR3 000026 STAT STATBI= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 000064 SVRl 000066 SVR2 000070 SVR3 MACY11 30A(1052) ICSRSZ INDIRECT ECC MEMORY CSR SIZING ROUTINE SYMBOL TABLE 06-SEP-78 15:50 ICSRSZ.MAC UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000;36 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI = 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 000072 SVR4 00.0074 SVRS SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 ASS. 000000 000234 ERRORS DETECTED: 000 001 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:ICSRSZ,DSKZ:ICSRSZ=SPMAC/ML,EQUATE,ICSRSZ RUN-TIME: 13 3 .3 SECONDS RUN-TIME RATIO : 32/17=1.9 CORE USED: 14K (27 PAGES) . $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$lOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEl= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 20-SEP-78 17:57 PAGE 20-1 SEQ 0567 $IFLEV= 177777 SISKO = 000001 $lOCTA= 177777 $lSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 SNSK1 = 000120 $NSK2 = 000110 $SAVLE= 177777 $SSKO = 050003 $TAGlE= 177777 $TAGNU= 050005 000300 $TEMP $TSKO = 050002 $TSK1 = 050003 $TSK2 = 050004 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFl= 000000 $$FLAG= 000001 $SFROM= 000000 $SLOC = 000146R $$lOCN= 000000 $$REG = 177777 $$RETU= 000000 $SRTN1= 050000 SSRTN2= 050001 $$SRC = 000000 S$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 000234R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 564 567 611 17:58 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR KEXAM 000000' .PRINT ;SPMAC: VERSION 1.1 KEXAM ROUTINE SEQ 0568 KEXAM PROCESS THE 'EXAM ' KEYBOARD COMMAND MACY11 30A(1052) KEXAM.MAC 19-5EP-78 16:11 COMMON EQUATE MODULE 508 509 510 511 512 .TITLE KEXAM .IDENT /VO.O/ 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539, 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 17:58 PAGE 19 SEQ, 0569 PROCESS THE 'EXAM' KEYBOARD COMMAND ;++ MODULE NAME: KEXAfv1 513 514 20-SEP-78 FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE I EXAW KEYBOARD COMMAND. IT WILL DETERMINE IF AN ARGUMENT IS INCLUDED IN THE COMMAND STRING. IF NO ARGUMENTS ARE INCLUDED, THE LAST LOCATION EXAMINED WILL BE OUTPUTTED. IF ARGUMENTS ARE INCLUDED, THE MODULE NAME AND/OR THE OCTAL ADDRESS WILL BE VERIFIED AND IF NO ERRORS, THE APPROPRIATE LOCATION AND ITS CONTENTS WILL BE OUTPUTTED. INPUTS: 1. ADDRESS OF DATA TABLE 2. DECODE BUFFER POINTER IMPLICIT INPUTS: 1. DT.STO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.KBRSP PATHOLOGICAL CONNECTIONS: CM.BADNAME,CM.ADR,CM.ODD,CM.ARG SUBORDINATE ROUTINES CALLED: ARGCHK - CHECK FOR ARGUMENTS SAVREG RESREG BOA16 NUlltiCHK NAMCHK FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KEXAM IN <DTADR,BUFPTR> WHERE DTADR = ADDRESS OF DATA TABLE 8UFPTR = COMMAND DECODE BUFFER POINTER VERSION: 0.0 EDIT ;- DATE BY REASON KEXAM PROCESS THE 'EXAM' KEYBOARD CO~MAND MACY11 30A(1052) 20-SEP-78 17:58 PAGE 19-1 KEXAM.MAC 19-5Eo-78 16:11 COMMON DEFINITIONS AND REFERENCES FOR KEXAM 564 565 566 567 ( 1) .SBTTL COMMON DEFINITIONS AND REFERENCES FOR KEXAM .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 000000' 000000 I 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 000001 000001 ; REFERENCED BY OTHER MODULES: .GLOBL .GlOBL 600 601 602 603 604 605 606 607 608 609 KE.lOC KEXAM ;INITIAlIZED TO 0 IF RUN CMD IS GIVEN ;MODULE ENTRY POINT , ;**************** ; GLOBAL REFERENCES: 590 591 592 593 594 595 596 597 598 599 $LSTIN=1 $LSTTAG=1 .GLOBl .GlOBl .GLOBl .GlOBL .GLOBL .GLOBL .GLOBL SAVREG RESREG SOA16 ARGCHK CM.SADNAME CM.ADR NUMCHK .GLOBL .GLOSL .GLOBl CM.ODD NAMCHK CM.ARG REGI STERS ;RESTORE REGISTERS ;SINARY TO OCTAL ASCII CONV ROUTINE ;ROUTINE TO CHECK AN ARGUMENT ;"INVALID MODULE NAME" MESSAGE ;uBAD ADDRESS" MESSAGE ;VERIFY A NUMBER IS OCTAL, & ;16 SITS OR LESS IN LENGTH ; INOT AN EVEN NUMBER I MSG ADDRESS ;VERIFY A MODULE NAME ;"INVALID ARGUMENT" MESSAGE ; S.L'.VE ; ;~*"~***.***"**** ; LOCAL STORAGE: 000000' 000002' 000002' 000010 1 000012' 000020' 000000 000006 020057 000006 000045 KE.lOC: .WORD KE.MG1 : KE.MG2: .BlKS .ASCII KE.MG3: .BlKS .ASCIZ .EVEN ;HOLD LOCATION TO BE EXAMINED 0 6 '/ 6 /%/ ;**************** I ;HOLD ASCII OF ADDRESS TO 8E EXAMINED ;SEPARATOR ;HOLD ASCII CONTENTS OF ADDRESS SEQ 0570 KEXAM PROCESS THE 'EXAM' KEYBOARD COMMAND MACY11 30A(1052) KEXAM.MAC 19-5EP-78 16:11 KEXAM ROUTINE 611 612 613 (2) 614 615 616 617 618 619 (3) 620 621 (4) 622 (4) 623 624 625 626 627 628 (4) 629 630 .SBTTL 000022 1 000022 1 20-SEP-78 17:59 000026' 000026' 016500 000032' 000032' 016501 SEQ 0571 KEXAM ROUTINE ROUTINE KEXAM <DTADR,CMDBUF> ;+ ; SAVE REGISTERS AND SAVE ADDRESS OF DTABLE ;- 000022' 000022 1 004767 PAGE 19-2 KEXAM: & ADDRESS OF DECODE BUFFER CALL SAVREG OOOOOOG ·· - CMDBUF(R5) JSR PC,SAVREG MOV DTADR(R5),RO MOV CMDBUF(R5),R1 CLR R2 SUB MOV #1*2.R5 R5.-(SP) i',JhJV R1,-(R5-} JSR MOV MOV PC.ARGCHK (SP)+,R5 (R5)+,R1 LET RO ' - DTADR(R5) 000000 LET R1 000002 ;+ ; INIT R2 FOR LATER USE ;- 000036 1 000036' 0050·02 LET R2 ·- #0 ;+ 631 : GET TO FIRST ARGUMENT 632 633 634 (4) (3) (4) (3) (3) (4) 635 636 637 638 639 640 (6) 641 642 643 (3) 644 645 646 647 648 (4) (3) 649 650 651 'r - 000040' 000040' 162705 0000441 010546 000646 T 010145 000050' 004767 000054 1 012605 000056' 012501 CALL ARGCHK IN <R1> OUT <R1> 000002 OOOOOOG ;+ ; IF THERE IS A CR AS FIRST ARGUMENT - CONVERT LAST EXAMINED ADDRESS ; TO ASCII, OUTPUT IT, AND RETURN ;- IF. ERROR THEN 000060' 000060' 103003 000062' 000062' 004767 000066' 000066' 000526 .000070 I Bce 50002$ JSR PC,CONV BR 50003$ CALL CONV 000264 ELSE 50002$: ;+ ; THERE IS AN ARGUMENT - FIND OUT WHETHER ALPHA OR NUMERIC KEXAM PROCESS THE 'EXAM' KEYBOARD COMMAND MACY11 30A(105~) KEXAM.MAC 19-5EP-78 16:11 KEXAM ROUTINE 652 653 654 (6) (8) (6) (9) (6) 655 656 657 658 659 660 (4) (3) (5) (4) (3) (3) (4) (4) 661 662 663 664 665 (6) 666 667 668 (4) 669 (3) 670 (4) 671 672 (3) 673 674 675 676 677 678 (4) (3) (4) (3) (3) (4) 679 680 681 682 683 20-SEP-78 17:58 PAGE 19-3 SEQ 0572 ;- 000070 1 000070 1 000074' 000076' 000102 1 000104' IFB (Rl) LT #'0 ORB (Rl) GT #'9 THEN 121127 002403 121127 003440 000060 000071 CMPS SLT CMPB BlE (R1),#'0 50004$ (R1),#'9 50005$ SUB MOV MOV MOV JSR MOV MOV MOV #2*2,R5 R5,-(SP) R1,-(R5) RO,-(R5) PC,NAMCHK (SP)+,R5 (R5)+,R2 (R5)+,Rl BCC 50006$ f.J!OV #CM . BADNM~_Et'DT • K JSR PC,RESREG BR 50000$ SUB MOV MOV JSR MOV MOV #1*2,R5 RS,-(SP) R1 , - (R5) PC,ARGCHK (SP)+;R5 (R5)+,R1 50004$: ;+ ; IT'S ALPHABETIC - SO VERIFY MODULE NAME 'r - 000104' 000104' 000110' 000112' 000114' 000116' 000122' 000124 1 000126 1 CALL NAMCHK IN <RO,Rl> OUT <R2,R1> 162705 010546 010145 010045 004767 012605 012502 012501 000004 OOOOOOG ;+ ; IF THE MODULE NAME IS BAD - STUFF ERROR MSG AND lEAVE ;- IF. ERROR THEN 000130' 000130' 103006 000132' 000132 1 012760 000140' 000140' 004767 000144' 000144 1 000501 LET DT.KBRSP(RO) .- #CM.BADNAME OOOOOOG 000022 CALL RESREG OOOOOOG RETURN ELSE 000146' 000146' 50006$: ;+ ; OTHERWISE MODULE NAME IS O.K. - ADVANCE TO NEXT ARGUMENT j- 000146' 000146' 000152' 000154' 000156' 000162' 000164' CALL ARGCHK IN <R1> OUT <Rl> 162705 010546 010145 004767 012605 012501 000002 OOOOOOG ;+ IF THERE IS NO ADDITIONAL ARGUMENT - YOU CANNOT HAVE A MODULE ; NAME WITHOUT NUMBER .•.. TELL OPERATOR HE MADE MISTAKE (STUFF ; ERROR MSG) ••• KEXAM PROCESS THE 'EXAM' KEYSOARD COMMAND MACY11 30A(1052) KEXAM.MAC 19-5EP-78 16:11 KEXAM ROUTINE 684 685 (6) 686 687 68S (4) 689 (3) 690 (4) 691 (4) 692 (4) 693 694 (4) 695 696 697 698 699 700 701 702 (4) (3) (5) (4) (3) (3) (4) (4) 703 704 705 (6) 706 707 708 709 710 711 712 713 714 715 (7) 716 (6) 717 (4) 718 (4) (3) 20-SEP-78 17:58 PAGE 19-4 SEQ 0573 j- IF. ERROR THEN 000166' 000166' 103006 000170' 000170' 012760 000176' 000176 1 004767 000202' 000202' 000462 000204 1 000204' 000204' 000204' BCC 50010$ MOV #CM.ARG,DT.KBRSP JSR PC,RESREG BR 50000$ sue MOV H2*2,R5 R5,-(SP) Rl,-(R5) RO,-(R5) LET DT=KBRSP(RO) .- #CM.ARG OOOOOOG 000022 CALL RESREG OOOOOOG RETURN ENDIF 50010$: ENDIF 50007$: ENDIF 000204' 000204' 50005$: ;+ ; CHECK OUT THE NUMBER ;- 000204 1 000204 1 000210' 000212' 000214' 000216' 000222' 000224' 000226' CALL NUMCHK IN <RO,R1> OUT <R1,R3> 162705 010546 010145 010045 004767 012605 012501 012503 000004 MOV MOV OOOOOOG IF.NO.ERROR THEN 000230' 000230 1 103445 JSR PC,NUMCHK MOV MOV MOV (SP)+,R5 (R5)+,R1 (R5)+,R3 BCS 50011$ ;+ IF VALID VIRTUAL ADDRESS THEN ; SHIFT NUMBER ONE PLACE TO RIGHT. IF THE C BIT SETS IT IS AN ODD ; NUMBER ..• NOT ALLOWED!!!. STUFF ERROR MSG AND RETURN ••.. ; IF THE NUMBER IS OK,RESTORE ~T AND CONTINUE. ;000232' 000232' 000234' 000234 1 000236' 000236' 000244' 000244' 000246' LET R3 .- R3 ROTATE -1 006003 IFCOND CS THEN 103004 012760 LET DT.KBRSP(RO) .- HCM.ODD ODOOOOG 000022 ROR R3 BCC . 50012$ MOV HCM.ODD,DT.KBRSP BR 50013$ ELSE 000437 50012$: KEXAM PROCESS THE IEXAM' KEYBOARD COMMAND MACY11 30A(1052) KEXAM.MAC 19-5EP-78 16:11 KEXAM ROUTINE 719 (7) 720 721 722 20-SEP-78 17:58 PAGE 19-5 SEQ 0574 LET R3 := R3 ROTATE 1 000246' 000246' 006103 ROL R3 SUB MOV MOV JSR MOV MOV #1*2,R5 R5,-(SP) R1,-(R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 BCS 50014$ MOV HCM.ARG,DT.KBRSP 723 724 725 726 727 728 729 (4) (3) (4) (3) (3) (4) ;+ ; THE NUMBER IS OK ••• CHECK FOR ANY JUNK ARGUMENTS .• ;- 000250 1 000250' 000254 1 000256' 000260' 000264' 000266' CALL ARGCHK IN <R1> OUT <R1> 162705 010546 010145 004767 012605 012501 000002 OOOOOOG 730 731 732 733 734 (6) 735 736 737 738 (4) 739 740 7"41 742 743 744 745 (4) (3) 746 747 748 749 750 751 752 753 754 (6) 755 (6) 756 (4) 757 (4) (3) 758 ;+ ; IF IT'S NOT A CR ••• STUFF ERROR MSG AND LEAVE IF.NO.ERROR THEN 000270' 000270' 103404 'f - 000272' 000272' 012760 LET DT.KBRSP(RO) '- #CM.ARG OOOOOOG 000022 ;+ , ELSE THERE ARE NO dUNK A"RGUMENTS ... NOW SEE IF THE NUMBER IS IN· ; THE EXERCISER RANGE ..• AND NOT> THAN 32 K ELSE 000300' 000300' 000421 000302' BR 50015$ ADD R2,R3 Bee 50016$ 50014$: ;+ ; FORM THE SUM (MODULE HEADER ADDRESS + NUMBER 000302' 000302 1 000304' 000304' 000306 1 000306' 000314 1 000314' 000316 1 LET R3 "- R3 + R2 060203 IFCOND es THEN 103004 012760 LET DT.KBRSP(RO) .- #CM.AJR MOV OOOOOOG 000022 ELSE 000413 BR 50016$: ;+ #CM.ADR,DT.KBRSP 50017$ KEXAM PROCESS THE 'EXAM' KEYBOARD COMMAND MACY11 30A(1052) KEXAM.MAC 19-5EP-78 16:11 KEXAM ROUTINE 759 760 761 (6) (9) 762 763 764 (4) 765 766 767 768 769 (4) (3) 770 771 772 (4) 773 (3) 774 (4) 775 (4) 776 (4) 777 (4) 778 (4) 779 (4 ) 780 781 782 783 784 785 (3) 786 787 (3) (3 ) (2 ) 788 789 790 (2 ) 791 792 793 794 795 796 20-SEP-78 17:58 PAGE 19-6 SEQ 0575 ; IF THE NUMBER IS TOO BIG ••• TELL OPERATOR AND LEAVE ••. ,' - IF R3 HI DT.ESIZ(RO) THEN 000316' 000316' 020360 000322' 101404 000044 000324' 000324 1 012760 OOOOOOG 000022 LET DT.KBRSP(RO) R3,DT.ESIZ(RO) 50020$ . - #CM.ADR MOV #CM.ADR,DT.KBRSP BR 50021$ MOV R3,KE.LOC JSR PC,CONV JSR PC,RESREG RTS PC ;+ ; ELSE THE NUMBER IS OK ..•• GO OUTPUT IT ••. ;ELSE 000332 1 000332' 000404 000334' 000334 1 0003341 010367 000340' 000340' 004767 000344' 000344' 000344' 000344' 000344 1 000344' 000344' 000344' 0003441 000344' 000344' 000344' CMP BLOS 50020$: LET KE.LOC 177440 '- R3 CALL CONV 000006 ENDIF 50021$: ENDIF 50017$: E.NDIF 50015$: ENDIF 50013$: ENDIF 5Q011$; ENDIF 50003$: ;+ ;CLEAN UP AND LEAVE ;- 000344' 000344' 004767 CALL RESREG OOOOOOG 000350' 000350' 000350' 000350' 000207 ENDRTN 000352' 000352' ROUTINE CONV 50000$: 50001$: CONV: ;+ ; THIS ROUTINE CONVERTS THE LOCATION TO BE EXAMINED AND ITS CDNTENTS ; TO ASCII ;- KEXAM PROCESS THE 1EXAM' KEY80ARD COMMA~ID MACY11 30A (1 052) KEXAM.MAC 19-5EP-78 16:11 KEXAM ROUTINE 797 798 (3) (5) (4) (3) (3) 799 (3) (5) (4) (3) (3) 800 (4) 801 (3) (3) (2) 802 000352 1 0003521 010546 000354 1 012745 000360' 016745 000364' 004767 000370 1 012605 000372 1 000372 1 010546 000374 1 012745 000400 1 017745 000404 1 004767 000410' 012605 000412' 000412' 012760 000420' 000420' 000420' 000420' 000207 000001 20-SEP-78 17: 58 PAGE -: 9-7 SEQ 0576 CP;-LL BOA16 IN <KE.LOC,#KE.MG2> 000002 1 177414 """"""...,.... vvvvvv~ CALL BOA16 IN LET DT.KBRSP(RO) "- #KE.MG1 000002' 000022 .END R5,-(SP) #KE.MG2,-(R5) KE.LOC,-(R5) JSR PC,BQA16 MOV (SP)+,R5 MOV MOV MOV JSR MOV R5,-(SP) #KE.MG3,-(R5) @KE.LOC,-(RS) PC,BOA16 (SP)+,R5 MOV #KE.MG1,DT.KBRSP RTS PC <@KE"LOC,#KE~MG3> 000012 1 177374 OOOOOOG ENDRTN MOV MOV MOV 500005: 50001$: MACY11 30A(1052) KEXAM PROCESS THE 'EXAM' KEYBOARD CC:IIMAND SYMBOL TABLE 19-5EP-78 16: 11 KEXAM.MAC ACSR :: 000102 ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTl'RE= 000200 ARGCHK= ****** G ASB 0001 0 9 ASSEMB= 000010 ASTAT :: 000104 AUTO 000010 AUTOST= 020000 000110 AWAS BI TO . = 000001 000001 BITOO 000002 BIT01 000004 BIT02 000010 BIT03 81T04 000020 000040 BIT05 000100 BIT06 BIT07 ::: 000200 000400 SITOB 001000 8IT09 000002 BIT1 BIT10 002000 81T11 004000 8IT12 = 010000 8IT13 020000 040000 BI114 100000 BIT15 000004 BIT2 000010 BIT3 000020 BIT4 000040 BITS 000100 BIT6 000200 BIT7 000400 BIT8 001000 BIT9 000002 BKDEF BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BOA16 = ****** G CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CMDBUF= 000002 CM.ADR= ****** G CM.ARG= ****** G CM.BAD= ****** G CM.ODD= ****** G CONFIG= 000056 000352R CONV 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 DT.AP = 000100. DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT .KBP.:: 00.0:0.26. DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 20-SEP-78 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEO?= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR=: 100000 HRDCNT::. 000044 HRDPAS= 000050 ICONT = 000036 ICOUNi= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT = 000030 INTR' ::: 000120 lOMOD ::: 100000 IOMODP= 102000 IOMQDR.=: 1J .20.o0 IOMODX= 110000 035060 JACK 000022RG KEXAM KE.LOC OOOOOORG 000002R KE.MG1 KE.MG2 000002R KE.MG3 000012R KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= ~723S6 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDRS= 172312 17:58 PAGE 20 KIPDR6= KIPDR7= KTER-RO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= r,1SGPR\~= SEQ 0577 172314 172316 000040 000400 000020 040000 000012 000001 000200 076600 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 MSGRES= MSGSFT= MSGSKE= MSGSM!3= MSGSMH= 1'v1S'GSMS= odon16 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NAMCrlK= ****** G NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL NUMCHK= ****** G 024020 O\.AJEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 010000 PDP70 000000 PRIO 000040 PRI1 OC0200 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 P~6 .- 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 Prt7 PS PS\rJ RANNUM= RBUFEA= RBUFPA= RBUfSZ= RBUFVA= RDSERV= RmAJHMI= RELERR= RE:LMOD= REL TIM= RES;:(EG= ****** G 000056 RES1 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 . RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 SAM 075464 SAVREG= ****** G SBADR = 000102 SB1\T,'tOD= ·000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT KEXAM PROCESS THE I EXAM' KEYBOARD COM~,~AND MACY 11 30.'!,. (1052) KEXAM.MAC 19-5EP-78 16:11 SYMBOL TA8LE UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 U!PDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WSUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTD WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 XOFF - 000023 000021 XON $BGNLE= 177777 $ERFLG= 000400 $FSAND= 000310 $F$BAD= 000401 $F$BLA= 000170 STATS!= 064757 STAT1 = 000027 SUSPND= 000001 SVRO = 000062 SVR1 000064 000066 SVR2 SVR3 000070 SVR4 000072 000074 SVR5 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPID = 000002· TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 ABS. 000000 000422 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:KEXAM,DSKZ:KEXAM=SPMAC/ML,EQUATE,KEXAM RUN-TIME: 15 5 .4 SECONDS RUN-TIME RATIO: 38/21 =1. 7 14K (27 PAGES) CORE USED: $F$CAS= 000150 $FSDEC= 000220 $F$DD = 000340 $ F$ FA L= 000405 $F$GDD= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOD= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO 000001 $ISK1 000001 $ISK2 000001 000001 $ISK3 20-SEP-78 17: 58 PAGE 20-1 OOCOO1 $ISK4 000001 $ISK5 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO ::. 000300 000110 $NSK1 000i10 $NSK2 000110 $NSK3 000110 $NSK4 000110 $NSK5 000110 $NSK6 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050002 000300 $TEMP 050003 $TSKO 050011 $TSK1 050013 $TSK2 050015 $TSK3 $TSK4 050017 $TSK5 = 050021 $$ARGC= 000000 SEQ 057S" $$SYTE= 000403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 SSERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000322R $$LOCN= 000000 177777 S$REG $$RETU= 000000 $$RTN1= 050000 $~RiN2= 050001 $$SRC = 000000 $$TGSV= 000000 $STGS1= 000000 $$TGS2= 000000 000002 $$TO $$STAG= 050000 000422R = .MAIN. MACV11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 558 561 594 17:58 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR KFILL 000000' .PRINT ;SPMAC: VERSION 1.1 KFILL ROUTINE SEQ 0579 KF I LL PROCESS THE I FI LL' KEYBOARD CDr:'MAND MACY 11 30A (1052) KFILL.MAC 28-JUL-78 09:18 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 .TITLE KFILL .IDENT /VO.O/ 20-SEP-78 17: 58 PAGE 19 SEQ 0580 PROCESS THE 'FILL' KEYBOARD COMMAND ;++ MODULE NAME: KFILL FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE 'FILL' KEYBOARD COMMAND. IF NO ARGUMENT IS FOUND IN THE DECODE BUFFER, THE CONTENTS OF THE FILL COUNT/FILL CHAR ARE OUTPUTTED. INPUTS: 1. ADDRESS OF DATA TABLE 2. DECODE BUFFER POINTER IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: 1. DT.KBRSP 2. DT.FCNT PATHOLOGICAL CONNECTIONS: CM.Ar<G SUBORDINATE ROUTINES CALLED! 1. ARGCHK - VERIFY AN ARGUMENT 2. BOA16 - BINARY TO OCTAL ASCII CONVERSION 3. SAVREG 4. RESREG 5. NUMCHK FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KFILL IN <DTADR,BUFPTR> WHERE: DTADR = ADDRESS OF DTABLE BUFPTR = CMD DECODE BUFFER POINTER VERSION: 0.0 EDIT ;- DATE BY REASON KFILL PROCESS THE 'FILL' KEYBOARD COMMAND MACY11 30A(1052) 20-SEP-78 17:58 PAGE 19-1 KFILL.MAC 28-JUL-78 09:18 COMMON DEFINITIONS AND REFERENCES FOR KFlLL 558 .SBTTL COMMON DEFINITIONS AND REFERENCES FOR KFILL .MCALL STRUCT .PRINT STRUCT 559 560 561 ( 1) 562 563 564 565 566 567 568 569 570 571 572 573 000000' 000000' $LSTIN=1 $LSTTAG=1 000001 000001 ; REFERENCES BY OTHER MODULES: .GlOBl r , .GLOBL .GLOBL .GL08L .GL08L .GlOBL .GLOBL , 583 584 ; ; 585 590 591 592 iBINARY TO OCTAL ASCII CONVERSION ;SAVE REGISTERS ;RESTORE REGISTERS ;CHECK AN AR~UMENT ;CHECK AN OCTAL ASCII NUMBER ;~INVALID OR MISSING ARGUMENT" MESSAGE r 582 589 BOA16 SAVREG RESREG ARGCHK NUMCHK CM.ARG ;**************** ;**************** 581 588 ;MODULE ENTRY POINT ; GLOBAL REFERENCES: 580 587 KFIlL , ;**************** 574 575 576 577 578 579 586 ;SPMAC: VERSION 1.1 000000' 043045 046111 000006' 040 000007' 000006 045 000 000015' 000020' 027514 LOCAL STORAGE: KF.MG1: .ASCII '%FILL/ KF.MG2: . BLKS .ASCIZ .EVEN 6 /%/ ;**************** I ;FILL MESSAGE ;HOLD ASCII DT.FLCNT CONTENTS SEQ 0581 KFILL PROCESS THE 'FILL' KEYBOARD COMMAND MACY11 30A(1052) KFILL.MAC 28-JUL-78 09:18 KFILL ROUTINE 594 395 596 597 (2) 598 599 600 501 602 603 (3) 604 (.4 ) 605 (4) 606 607 609 609 610 611 612 (4) (6) 613 614 615 616 617 (4) (3) (4) (3) (3) (4) 618 619 620 621 622 (6) 623 624 625 (4) (3 ) (5) (4) (3) (3) (4) (4) 626 627 6:29 .SBTTL 20-SEP-78 17:58 PAGE 19-2 SEQ 0582 KFILL ROUTINE ROUTINE KFILL <DTADR,BUFPTR> 000020' 000020 1 KFILL: ;+ ; SAVE REGISTERS AND SAVE CATA TABLE ADDRESS, AND DECODE BUFFER PJINTER , 000020 1 000020 1 004767 000024 1 000024 1 016500 000030 1 000030 1 016501 CAL!... SAVREG OOOOOOG LET RO "- DTADR(R5) LET R1 "- BUFPTR(R5) 000000 000002 JSR PC,SAVREG MOV DTADR(R5),RO MOV BUFPTR(R5),R1 MOV ADD #DT.FCNT,R3 RO,R3 SUB MOV JSR MOV MOV #1*2,R5 R5,-(SP) R1,-(R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 BCS 50002$ SUB MOV MOV #2,,:2,R5 R5,-(SP) R1,-(R5) RO,-(R5) PC,NUMCHK (SP)+,R5 (R5)+,R1 (R5)+,R2 ;+ ; R3 GETS ADDRESS OF FILL COUNT ;000034' 0000341 012703 000040' 060003 LET R3 : = #DT.FCNT + RO 000036 ;+ ; GET TO FIRST ARGUi,iENT ;- 000042' 000042 1 162705 000046' 010546 000050' 010145 000052' 004767 000056' 012605 000060' 012501 CALL ARGCHK IN <R1> OUT <R1> 000002 M!JV OOOOOOG ;+ ; IF IT'S NOT A CARRIAGE RETURN, VERIFY THE NUMBER ;IF.NO.ERROR THEN 000062 1 000062 1 103464 000064' 000064' 162705 000070' 010546 000072' 010145 000074' 010045 000076' 004767 000102' 012605 000104 1 012501 000106' 012502 CALL NUMCHK IN <RO,R1> OUT <R1,R2> 000004 MOV JSR N'OV MOV OOOOOOG MOV ;+ ; IF THERE IS AN ERROR IN THE NUMBER, LEAVE KFI LL PROCESS THE 'F! LL' KE.YBOARD COMM,d.ND MACY 11 30A (1052) KFILL.MAC 28-JUL-78 09:18 KFILL ROUTINE 629 630 (6) 631 632 000112' 000463 (3) (4) (3) (3) (4) 642 643 644 645 646 647 (6) 648 649 650 (4) 651 (2 ) 652 653 (4) 654 655 (4 ) (3) (5) (4) (3 ) (3) (4) (4) 656 657 658 659 660 661 (6) 662 SEQ 05&3 IF.ERROR THEN IN LINE <8R 000112' (4 ) PAGE 19-3 f (2) 634 635 636 637 638 639 640 641 17: 58 o- 000110' 000110' 103001 633 (4) 20-SEP-78 Bec 50003$ BR 1$ SUB MOV MOV #1*2,R5 RS,-(SP) Rl,-(RS) PC,ARGCHK (SP)+,RS (R5)+,Rl BCC S0004$ MOV ICM.ARG,DT.KBRSP BR 1$ SUB MOV MOV #2*2,RS RS,-(SP) R1,-(RS) RO,-(RS) PC,NUMCHK (SP)+,RS (R5)+,R1 (R5)+,R4 sec 5000S$ 1$> ENDIF 000114' 000114' 50003S: ;+ ; GET NEXT ARGUMENT ;- 000114 1 000114' 000120· 000122' 000124 1 000130' 000132' CALL ARGCHK IN <R1> OUT <Rl> 162705 010546 010145 004767 012605 012501 000002 MOV MOV JSR OOOOOOG j+ ; IF AN ERROR ... HE DIDN'T GIVE ENOUGH ARGU~ENTS ;- IF.ERROR THEN 000134 1 000134' 103004 000136 1 000136 1 012760 000144' 000144 1 000446 LET DT.KSRSP(RO) INLINE <8R 1$> ENDIF 000146 1 000146 1 000146' 000146 1 000152' 000154' 000156 1 000160' 000164' 000166' 000170' '- #CM.ARG OOOOOOG 000022 50004$: CALL NUMCHK IN <RO,Ri> OUT <R1,R4> 162705 010546 010145 010045 004767 012605 012501 012504 000004 MOV MOV MOV JSR OOOOOOG MOV + WE GOT THE SECOND PART OF THE ARGUMENT,IF INVALID, LEAVE 000172' 000172' 103001 IF. ERROR THEN KFILL PROCESS THE 'FILL' KEYBOARD COMMAND MACY11 30A(1052) KFILL.MAC 28-JUl-78 09:18 KFILL ROUTINE 663 (2) 664 665 (4) 666 667 668 669 670 INLINE <BR 000174' 000174' 000432 17:58 PAGE 19-4 SEQ 0584 1$> BR 1$ SUB MOV MOV JSR MOV MOV #1*2,R5 R5,-(SP) Rl,-(R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 ENDIF 000176' 000176' 500055: i+ ; NUMBER OK, VERIFY NO JUNK ARGUMENTS EXIST i- 671 672 000176' (4) 000176' (3) 000202' (4) 000204' (3) 000206 ' (3) 000212' (4) 000214' 673 674 675 676 677 000216' (6) 000216' 678 679 680 000220' (4) 000220' 681 000226' (2) 000226' 682 683 ·00·0230* (4) 000230' 684 685 686 687 688 689 690 000230' (4} 000230' 691 000232' (4) 000232 1 692 693 694 000234' (4) 000234' 695 696 697 698 699 700 000234' (3) 000234' (5) 000236' (4) 000242' 20-SEP-78 CALL ARGCHK IN <R1> OUT <R1> 162705 010546 010145 004767 012605 012501 000002 OOOOOOG ;+ ; IF THERE ARE MORE JUNK ARGUMENTS - LEAVE, BUT STUFF ERROR MSG FIRST ;- IF.NO.ERROR THEN 103404 LET DT .KERSP(RC) 012760 -- 50006$ MOV #CM.ARG,DT.KBRSP 8R 1$ Move R4, (R3)+ MOVB R2. (R3) MOV R5,-(SP) #KF.MG2,-(R5) DT.FCNT(RO),-(R5 #cr~~~ARG OOOOOOG 000022 INLINE <BR BC5 1$> 000415 ENOI·f 50006$: ;+ ; NO JUNK ARGUMENTS - SO REPLACE FILL COUNT/CHAR wITH ; NEW VALUES ;- LET (R3)+ :8= R4 110423 LET (R3) : B= R2 110213 ENDIF 50002$: ;+ ; CONVERT THE NUMBER IN DT.FCNT TO ASCII, STUFF MESSAGE ; AND RETURN ;- CALL BOA16 IN <DT.FCNT(RO),#KF.MG2> 010546 012745 016045 000007' 000036 MOV MOV KFILL PROCESS THE IFILL' KEYBOARD COMMAND MACY11 30A(1052) KFILL.MAC 28-JUL-78 09:18 KFILL ROUTINE (3) (3) 701 702 (4) 703 (2) 704 (3 ) 705 706 (3) (3) (2 ) 707 000246 1 004767 000252' 012605 000254 1 000254 1 012760 000262 1 000262' 000262' 000262' 004767 000266' 000266' 000266' OC0266' 000207 000001 20-SEP-78 17:58 PAGE 19-5 SEQ 0585 OOOOOOG LET DT.KBRSP(RO) JSR MOV PC,BOA16 (SP)+,R5 MOV #KF.MG1,DT.KBRSP .- #KF .MG1 000000 1 000022 INLINE <1$:> i $: CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: RTS .END PC MACY11 30A(1052) PROCESS THE IFILL' KEYBOARD COMMAND KFILL SYMBOL TABLE 28-JU L-78 09: 18 KFILL.MAC ACSR = 000102 ACTS!T= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ARGCHK= ****** G ASB 000106 ASSEM8= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 000001 BITO BITOO = 000001 000002 BITOl 000004 BIT02 000010 BIT03 000020 BIT04 000040 BIT05 000100 BIT06 BIT07 = 000200 000400 BIT08 001000 BIT09 000002 BIT1 BIT10 = 002000 004000 BIT11 BIT12 010000 020000 BIT13 040000 BIT14 100000 BIT15 0060-0-4 B11"2000010 BIT3 BIT4 000020 000040 BITS 000100 BIT6 BIT7 000200 000400 BIT8 BIT9 . 001000 000002 BKDEF BKMOD 000C20 BKMODE= 040000 3KSLSH= 000134 BOA16 = ****** G BUFPTR= 000002 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CM.ARG= ****** G CONFIG= 000056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD:: 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO:: 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE:.= 000024 DT.KBP= 000026 DT.KBR:::: 000022 DT.KBU= 000030 DT.MLS= 000032 DT .MTl= Q{).Ol1-0 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT. PS~oJ= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REl= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP :: 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 20-SEP-78 ECCSTA= .000010 ENBEOP= 010000 ENSNUL= 000001 ENDLST= 000·000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTtlD= 000200 EVNTKT= 00020·3 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRD?AS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100' IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 000·120 INTR IOMOD 100000 .l.U,1Iuur-';;' IU,UUV IOMODR= 112000 IOMODX= 110000 035060 JACK 000020RG KFIlL KfO'.MG1 . 0.000.0 o.R KF.MG2 0OOO07R KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDRi= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 .,.,....,t.,,......1""'11.~ .... "'1"'\',,/,,\1"\ 17:58 PAGE 20 SEQ 0586 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 MODSEL= 001000 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 00000sMSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNlJL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= 000014 r.~s GS~I~S = 00;)016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPWOP= 9.09Q20 NOAPTY= 00:)002 000000 NULL NUMCHK= **'''*** G 024020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 POP60 010000 PDP70 000000 PRIO 000040 PRI1 000200 PRI4 000240 PRI5 000300 PRI6 000340 PRI7 000000 PRO 000200 PR4 000240 PR5 000300 PR6 PR7 PS PSW RANNUM= RBUFEA= RBUFPA= RBUFSZ= R3UFVA= RDSERV= RDWHMI= RELERR= RELMOD= RElTIM= R~SREG= 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 010000 ****** G 000056 RES1 000060 RES2 R!CHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RlJSQUT= 000177 RlJN[,10D= 100000 R5VALU= 001740 075464 SAri: SAVREG= ****** G Si3ADR = 000102 S8KMOD= 000000 S8KSEL= 010000 S,:. ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC .CLO;';;-- 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SP~.CE = 000040 SPOINT= 000032 SPVALU= 002200 SRO 177572 SR1 177574 SR2 = 177576 172516 SR3 STAT 000026 STATBI= 064757 STAT1 = 000027 SUSDND= 000001 000062 SVRO 000064 SVR1 SVR2 000066 SVR3 000070 KFILl PROCESS THE 'FILL' KEYBOARD COMMAND MACY11 30A(1052) KFILL.MAC 28-JUL-78 09:18 SYMBOL TABLE UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WOTD WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG=- 000400 $F$AND= 000310 $F$BAD= 000401 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 iQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPOR1= 177602 UIPOR2= 177604 UIPDR3= 177606 UIPDR4= 177610 ABS. 000000 000270 000 001 0 ERRORS DETECTED: DEFAULT GLOBAL5 GENERATED: " \J DSKZ:KFILL,DSKZ:KFILL=SPMAC/ML,EQUATE,KFILL RUN-TIME: '3 3 .3 SECONDS RUN-TIME RATIO: 31/16=1.8 14K (21- PAGES) CORE US-E-D; $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$~JHI= 000120 $F$YES= 000402 20-SEP-78 17:58 PAGE 20-1 $IFLEV= ; 77777 $ISKO = 000001 $ISK1 = 000001 $LOCiA= 177777 $LSiIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000110 $NSK2 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050007 $TEMP = 000300STSKO = 050002 $TSK1 = 050006 $$ARGC= 000004 $$BY;E= 000000 $$CASE= 000000 $$DST = 000000 SEQ 0537 $$EL.OC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 000216R $$LOC $$LOCN= 000000 $$REG = 177777 $SRETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$iGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 000270R = .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 561 564 598 17:59 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR KMAP 000000 1 .PRINT ;SPMAC: VERSION 1.1 KMAP ROUTINE SEQ 0588 KMAP PROCESS THE 'MAP ' KEYBOARD COMMAND MACY11 30A(1052) KMAP.MAC 19-5EP-78 16:20 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 54.6 547 548 549 550 551 552 553 554 555 556 557 558 559 .TITlE KMAP .IDENT JVO.Oj 20-SEP-78 17:59 PAGE 19 SEQ 0589 PROCESS THE 'MAP ' KEYBOARD COMMAND ;++ MODULE NAME: KMAP FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE 'MAP' KEYBOARD COMMAND. IT WILL SEARCH THE MODULE LIST AND ENQUEUE THE MAP MESSAGE FOR EACH MODULE~ IF A MODULE NAME IS SPECIFIED, A MAP MESSAGE IS OUTPUTTED FOR THAT MODULE ONLY. INPUTS: 1~ ADDRESS OF DATA TABLE 2. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: DT.MLST DT.STO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.KBRSP PATHOLOGICAL CONNECTIONS: CM.ARG,CM.BADNAME SUBORDINATE ROUTINES CALLED: 1. ARGCHK - CHECK FOR JUNK ARGUMENTS 2 .ENQTQ- ENQUEUE A MESSAGE 3. NAMCHK - VERIFY A MODULE NAME 4. SAVREG - SAVE REGISTERS 5. RESREG - RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KMAP IN <DTADR,BUFPTR> WHERE DTADR ADDRESS OF DATA TABLE BUFPTR = COMMAND DECODE BUFFER POINTER VERSION: 0.0 EDIT DA-:-E BY REASON KMAP PROCESS THE 'MAP' KEYBOARD COMMAND MACY11 30A(1052) 20-SEP-78 17:59 KMA?MAC 19-5EP-78 16~20 COMMON DEFINITIONS AND REFERENCES FOR KMAP 561 562 563 564 (1) 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 .SBTTL SEQ 0590 COMMON DEFINITIONS AND REFERENCES FOR KMAP .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 000000' 000000' $LSTTAG~1 000001 000001 $LSTIN=1 ;**************** , ; REFERENCED BY OTHER MODULES: .GLOBL , KMAP jMODULE ENTRY POINT j**************** , ; GLOaAL REFERENCES: .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOSL r-nr;:,)00 587 588 589 590 591 592 593 594 595 596 PAGE 19-1 ARGCHK SAVREG RESREG ENQTQ CM.ARG NAMCHK ;CHECK AN ARGUMENT ;SAVE REGS 0-4 ;RESTORE REGS 0-4 ;ENQUEUE A MESSAGE ; 'ILLEGAL ARGUMENT i ERROR MSG jCHECK A MODULE NAME C~.1. 8AD!,-JA~~E ; 'INVALID MODULE NAME' E~ROR ;**************** , ; LOCAL STORAGE: 000000' 000000 000002 1 041445 000010' 041045 042115 054523 000076 000076 KM.HLD KM.CMD KM.RUN .EVEN .WORD .ASCIZ .ASCIZ o /%CMD>/ /%BSY>/ ;HOLD ADDRESS OF MESSAGE MESSAGE KMAP PROCESS THE 'MAP' KEYBOARD COMMAND MACY11 30A(1052) KMAP.MAC 19-5EP-78 16:20 KMAP ROUTINE 598 599 600 (2) 601 602 603 604 605 606 (3) 607 (4) 608 (4) 609 .S8TTL 20-SEP-78 17:59 PAGE 19-2 SEQ 0591 KMAP ROUTINE ROUTINE KMAP <DTADR,BUFPTR> 000016' 000016 1 KMAP: ;+ ; INITIALIZE AND SAVE DTABLE ADDRESS AND DECODE BUFFER PTR ;- 000016' 000016' 004767 000022' 000022' 016500 000026' 000026' 016501 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV DTADR(R5),RO MOV BU F PT R ( R5 ) , R1 BIT BEQ #RUNMODE,DT.STn( 50002$ MOV #Ki\t1. R~-":J ,.K~1. HLD BR 50003$ MOV #KM.CMD,KM.HLD sus #1*2,R5 R5,-(SP) R1,-(R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 LET RO '- DTADR(RS) 000000 LET Rl "- BUFPTR(R5) 000002 310 611 612 613 614 615 616 617 618 619 620 621 (6) (9) 622 (4) 623 (4) (3) 624 (4) 625 (4) 626 627 628 629 630 631 (4) (3) (4) (3) (3) (4) 632 633 634 635 636 ;+ ; ; ; ; IF IN RUNMODE , STUFF FAKE COMMAND PROMPT SINCE THIS COMMAND USES ENQTQ, IT WILL OjP THE NORMAL PROMPT BEFORE ANY OF THE MAP MESSAGES WILL BE PRINTED - THEN THIS DUMMY PRO~PT WILL BE OUTPUTTED ..•... r 000032' 000032' 000040' 000042' 000042' 000050' 000050' 000052' 000052' 000052' 000060' 000060' IF #RUNMODE SETIN DT.STO(RO) THEN 032760 001404 100000 000010 012767 000010' 177730 LET KM.HLD := #KM.RUN ELSE 000403 50002$: LET KM.HLD .- #KM.CMD 012767 000002' 177720 ENDIF 50003$: ;+ ; SEE IF ANY ARGUMENTS ARE INCLUDED IN DECODE BUFFER 000060' 000060' 000064' 000066' 000070' 000074' 000076' CALL ARGCHK IN 162705 010546 010145 004767 012605 012501 000002 <~1> OUT <R1> 'N':OV MOV JSR MOV MOV OOOOOOG ;+ IF THERE ARE NO ARGUMENTS DO A FULL MAP (ALL MODULES). GET ADDRESS OF MODULE LIST. THEN, WHILE THE ENTRY IN THE MODULE LIST IS NOT 0, ENQUEUE THE MAP MESSAGE FOR THE MODULES. MACY11 30A(1052) PROCESS THE IMAp l KEYBOARD COMMAND KMAP KMAP ROUTINE 19-5EP-78 16:20 KMAP.MAC 637 638 639 640 (6) 641 642 (4) 643 (4) (6) (9) 644 (3) (8) (7 ) (6) (5 ) (4) (3) (3) 645 (4) (3) 646 647 (4) (3) 648 649 650 651 652 653 (4) (3) (5) (4) (3) (3) (4) (4) 654 655 656 657 (6) 658 659 660 (4) (3) (4) (3) (3) (4) 20-SEP-78 17:59 PAGE 19-3 SEQ 0592 ;- IF.ERROR THEN 000100 1 000100 1 103023 000102 1 000102 1 000106 1 000106 1 000106 1 000112 1 000114 1 000114 1 000116 1 000122 1 000124 1 000130' 000134 1 000136 1 000142 1 000144 1 000144 1 000146 1 LET R2 ;= DT.MLST(RO) 016002 000032 021227 001415 oooqoo 010546 012745 012245 012745 012745 010045 004767 012605 WHILE (R2) NE #ENDLST DO Bce 50004$ MOV DT .MLST(RO) ,R2 CMP SEQ (R2) ,#ENDLST 50006$ MOV MOV MOV R5,-(SP) #0,-(R5} (R2)+,-(R5) #O,-(R5) #MSGMAP,-(R5) RO,-(RS) PC,ENQTQ (SP)+,R5 BR 5000S$ BR 50007$ SUB MOV MOV #2*2,R5 R5,-(SP) R1 ,- (R5) RO,-(R5) PC,NAMCHK (SP)+,RS (R5)+,R2 (R5)+,R1 BCS 50010$ SUB #1*2,R5 R5,-(SP) R1,-(R5) PC.ARGCHK (SP)+,RS (R5)+,R1 50005$: CALL ENQTQ IN <RO,#MSGMAP,#0,(R2)+,#0> 000000 MOV MOV 000000 000021 MOV MOV JSR OOOOOOG ENDDO 000760 SOO06S: ELSE 000146 1 000;46! 000450 000150 1 50004$: ;+ ; THERE IS AN ARGUMENT - GO CHECK IT OUT ', - CALL NAMCHK IN <RO,R1> OUT <R2,R1> 1 000150 000150 1 000154 1 000156 1 000160 1 000162 1 000166 1 000170 1 000172 1 162705 010546 010145 010045 004767 012605 012502 012S01 000004 MOV MOV MOV MOV ;+ ; IF MODULE NAME IS O.K. - JUST VERIFY THERE IS NO JUNK ARGUMSNT ;IF.NO.ERROR THEN 000174 1 000174 1 103432 000176 1 000176' 000202 1 000204 1 000206 1 000212 1 000214 1 JSR OOOOOOG CALL ARGCHK IN <R1> OUT <R1> 162705 010546 010145 004767 012605 012501 000002 OOOOOOG MOV MOV JSR MOV MOV KMAP PROCESS THE 'MAP' KEYBOARD COMMAND MACY11 30A(1052) KMAP.MAC 19-5EP-78 16:20 KMAP ROUTINE 661 662 663 664 (6) 665 666 667 (3) (8) (7) (6) (5) (4) (3) (3) 668 669 (4) (3) 670 671 672 673 674 (4) 675 676 (4) 677 678 (4) (3) 679 680 681 682 683 684 (4) 685 686 (4) 687 688 (4) 689 690 691 692 693 694 695 696 (6) (9) 20-SEP-78 17:59 PAGE 19-4 SEQ 0593 i+ ; IF NO JUNK ARGUMENTS .... ENQUEUE THE MESSAGE FOR THIS MODULE IF.ERROR THEN 000216 1 000216 1 103015 000220 1 000220' 000222' 000226' 000230 1 000234' 010546 012745 010245 012745 012745 000~40' 0100 a 5 000242 1 004767 000246' 012605 BCC 50011$ MOV MOV MOV MOV MOV JSR MOV R5,-(SP) #0,-(R5) R2,-(R5) #0,-(R5) #MSGMAP,-(R5). RO,-(R5) PC,ENQTQ (SP)+,R5 BR 50012$ CALL ENQTQ IN <RO,#MSGMAP,#0,R2,#0> 000000 MOV 000000 000021 OOOOOOG ELSE 000250 1 000250' 000403 000252 1 50011$: ;+ ; THERE IS A JUNK ARGUMENT IN DECODE BUFFER ... STUFF ERROR MSG ..• o- r 000252 1 000252' 012760 LET DT.KBRSP(RO) := #CM.ARG OOOOOOG 000022 MOV #CM.ARG,DT.KBRSP BR 50013$ MOV #CM.BADNAME,DT.K TST BNE DT.KBRSP(RO) 50014$ ENOIF 000260 1 000260 I 50012$: ELSE 000260' 000260' 000403 000262 1 50010$: ;+ ; BAD MODULE NAME •..• STUFF ERROR MSG .... , 0- 000262 1 000262' 012760 LET DT.K8RSP(RO) .- #CM.BADNAME OOOOOOG 000022 ENDIF 000270' 000270' ENDIF 000270 1 000270' 50013$: 50007$: ;+ ; IF NO ERRORS, ALSO ENQUEUE A PROMPT ;000270' 000270' 005760 000274' 001015 IF DT.KBRSP(RO) EQ #0 THEN 000022 MACY11 30A(1052) KMAP PROCESS THE 'MAP' KEYBOARD COMMAND KMAP ROUTINE 19-5EP-78 16:20 KMAP.MAC 697 (3) (8) (7 ) (6) (5) (4) (3) (3) 698 (4) 699 700 701 702 703 704 (3) 705 706 (3) (3) (2) 707 708 000276' 000276' 000300' 000304' 000310' 000314' 000320 1 000322 1 000326' 000330' 000330' 20-SEP-78 17:59 PAGE 19-5 SEQ 0594 CALL ENQTQ IN <RO,#MSGSTD,KM.HLD,#O,#O> 010546 012745 012745 016745 012745 010045 004767 012605 000000 000000 177464 000000 MOV MOV MOV R5,-(SP) #O,-(R5) #0,-(R5) KM.HLD,-(R5) #MSGSTD,-(R5) iviOV RO,=(R5) OOOOOOG JSR MOV PC,ENQTQ (SP)+,R5 JSR PC,RESREG RTS PC MOV i\'lOV ENDIF 50014$: ;+ ; CLEAN UP AND GOODBYE j- 000330' 000330' 004767 000334' 000334' 000334' 000334' 000207 000001 CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: .END MACY11 30A(1052) KMAP PROCESS THE 'MAP' KEYBOARD COMMAND SYMBOL TABLE 19-5EP-78 16:20 KMAP.MAC ACSR 000102 ACTSlT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APT PRE::: 000200 ARGCHK::: ****** G 000106 ASB ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 000001 BITO 000001 BITOO BIT01 = 000002 BIT02 000004 BIT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 001000 BIT09 BIT1 000002 BIT10 002000 004000 8ITli BIT12 010000 BIT13 = 020000 BIT14 ::: 040000 . BIT15 100000 OOOD,04 B1T2 000010 BIT3 BIT4 000020 BITS 000040 000100 SIT6 BIT7 000200 BIT8 ::: 000400 BIT9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BUFPTR= 000002 CAPRES= 000004 CASTAT::: 000004 CDERCT::: 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CM.ARG= ****** G CM.BAD: ****** G CONFIG= 000056 ~0-SEP-78 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT::: 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT. BLS= 000034 DT.CFO= 00001-4 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 ECCSTA= 000010 ENBEOP= 010000 ENBNUL::: 000001 ENDLST::: 000000 ENQTQ = ****** G EOPBIT::: 000001 ERRTYP::: 000i06 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000i03 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT ::: 0000·36 ICOUNT= 000040 IDNUM : 000122 IE 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 ""'T' . 't/ c::-c_ TOMOD U~.(\i....oL...- 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= QO,0110 DT.OFF::: 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT. PT A= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT: 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL::: 000054 DT.WLL::: 000052 DVID1 = 000014 ECCMEM= 000100 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 K,!PARQ::: 172340 KIPAR1= 172342 KIPAR2::: 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAK7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 000016RG KMAP KM.CMD 000002R KM.HLD OOOOOOR KM.RUN 000010R KTERRO= 000040 KTPRES= 000400 17:59 PAGE 20 SEQ 0595 000020 040000 000012 000001 000200 076600 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 MSG?R~Jl= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 M5G5Mg= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NAMCHK= ****** G NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 00:)000 NULL 024020 OWEN PAERR oe0010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 PDP70 010000 00,)000 PRIO PRI1 000040 000200 PRI4 000240 PRI5 PRI6 000300 000340 PRI7 000000 PRO 000200 PR4 KTSTAT= KTXTND= LF, LPSTAT::: MAPSTA= MED MEiviPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= !V!SGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPO?= PR5 = 000240 PR6 000300 PR7 000340 177776 PS 177776 PSW RANNUM::: 000054 R3UFEA= 1'\1'\"..(':)1'\ VVUlvV RBUFPA= 000126 R8UFSZ= 000132 RB!.JFVA= 000124 RDSERV= 000101 RDWHMI = 000022 RELERR= 000'020 RELMOD= 020000 RELTIM= 010000 RESREG= ****** G 000056 RES1 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBCUT= 000177 RUNMOD= 100000 R5VALU= 001740 SAM 075464 SAvREG= ****** G SBADR = 000102 S8KN:OD= 000000 S3KSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC::: 000016 SC. CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 SR2 177576 172516 SR3 000026 STAT STATBI= 064757 STA T1 ::: 000027 SUSPND= 000001 SVRO 000062 000064 SVR1 KMAP PROCESS THE 'MAP' KEYBOARD COMMAND MACY11 30A(1052) KMAP.MAC 19-5EP-78 16:20 SYMBOL TABLE UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFlAG = 000005 000023 XOFF 000021 XON $BGNLE=. 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 000066 SVR2 000070 SVR3 SVR4 000072 000074 SVR5 SVR6 = 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 ASS. 000000 000336 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:KMAP.DSKZ:KMAP=SPMAC/ML.EQUATE~KMAP RUN-TIME: 13 4 .4· SECONDS RUN-TIME RATIO: 37/18=2.0 14K (27 PAGES) CORE USED: $F$BLA= 000170 $FSCAS= 000150 SF$DEC= 000220 $FSDO = 000340 SF$FAL= 000405 $F$GOO= 000400 $F$IF = 000il0 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 SFSOR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 20-SEP-78 17:59 PAGE 20-1 SEQ 0596 000001 SISKO 000001 SISK1 000001 $ISK2 SLOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 000300 SNSKO $NSK1 = 000110 $NSK2 = 000110 $NSK3 = 000110 $SAVLE= 177777 $SSKO = 050005 $TAGLE= 177777 $TAGNU= 050015 000300 STEMP $TSKO = 050014 $TSK1 = 050013 $TSK2 = 050012 $$ARGC= 000004 $$BYTE= 000403 $SCASE= 000000 S5DST = 000000 $$::LOC= 000402 $SERFL= 000000 $$F LAG= 000001 $$FROM= 000000 $$LOC = 000274R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 000000 $$SRC $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000336R = .MAIN. MACV11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SE?-78 16:13 3 573 576 628 18:00 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR KMOD 000000 1 .PRINT ;SPMAC: VERSION 1.1 KMOD ROUTINE SEQ 0597 KMOD PROCESS THE 'MOD' KEYBOARD COMMAN!) MACY1t 30A(1052) KMOD.MAC 28-JUL-78 09:19 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 .519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 .TITLE KMOD .IDENT IVO.O/ 20-SEP-78 18:00 PAGE 19 PROCESS THE 'MODI KEYBOARD COMMAND ;++ MODULE NAME: KMOD FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE IMOD I KEYBOARD COMMAND. IT CAN BE USED WITH OR WIlHOUT AN ARGUMENT. IF NO ARGUMENT, THE LAST PREVIOUSLY MODIFIED LOCATION WILL BE OPENED. THERE CAN BE ONE OR TWO ARGUMENTS: A MODULE NAME AND A NUMBER. IF A MODULE NAME, A NUMB~R MUST FOLLOW. THE MODULE NAME WILL BE VERIFIED. IF NO MODULE BY THAT NAME AN ERROR MESSAGE IS ISSUED. THE NUMBER WILL BE VERIFIED. IF NOT OCTAL OR NOT EVEN, AN ERROR MESSAGE IS ISSUED. THE OPERATOR MAY ENTER NEW CONTENTS FOR AN OPENED LOCATION. IT MAY BE TERMINATED BY CTRL U, LF OR CR. INPUTS: 1. ADDRESS OF DATA TABLE 2. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: NONE OUTPUTS: NONE 538 IMPLICIT OUTPUTS: 1. DT.KBRSP - KEYBOARD RESPONSE 539 540 541 PATHOLOGICAL CONNECTIONS: CM.ARG,CM.BADNAME,CM.ODD,CM.RUN,CM.ADR,DX.KFL 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 5S7 558 559 560 561 562 563 SUBORDINATE ROUTINES CALLED: 1. ENQTQ - ENQUEUE A MESSAGE 2. NUMCHK - CHECK A NUMBER 3. NAMCHK CHECK A NAME 4. ARGCHK - CHECK AN ARGUMENT 5. HRDADR CHECK AN ADDRESS FOR EXISTENCE 6. CMDCPY COpy KEYBOARD BUFFER TO DECODE BUFFER 7. MSGDEQ - DEQUEUE A MESSAGE 8. SAVREG 9. RESREG 10. HRDADRCHK 11. BOA 16 12. KBINI FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KMOD IN <DTADR,BUFPTR> WHERE DTADR = ADDRESS OF DATA TABLE AND BUFPTR = DECODE BUFFER POINTER SEQ 0598 KMOD PROCESS THE IMOD I KEYBOARD COMMAND MACY11 30A(1052) KMOD.MAC 28-JUL-78 09:19 COMMON EQUATE MODULE 564 565 566 '- 20-SEP-78 18:00 PAGE 19-1 SEQ 0599 VERSION: 0.0 567 568 569 570 571 EDIT ;- DATE BY REASON KMOD PROCESS THE 'MOD' KEYBOARD Cmf'IMAND MACY 11 30A (1052) 20-SEP-78 18: 00 KMOD.MAC 28-JUL-78 09:19 COMMON DEFINITIONS AND REFERENCES FOR KMOD 573 574 575 576 (1) 577 578 579 580 .SBTTL 000001 000001 COMMON DEFINITIONS AND REFERENCES FOR KMOD $LSTTAG=1 $LSTIN=1 ;************** , 582 ; REFERENCED BY OTHER MODULES: 583 584 .GLOBL 585 586 587 588 589 590 , ; GLOBAL REFERENCES: .GLOBL .GLOBL .GLOBL .GLOB.L .GlOBL .GLOBL .GLOBL .GLOEL .GLOBL .GLOSL .GLOBL .GLOBL .GLOBL .GLOSL .GLOBL .GLOBL .GLOBL 591 592 593 594 595 596 597 ~98 599 600 601 602 603 604 605 606 607 608 609 610 615 616 617 618 619 620 621 622 623 624 625 626 Cr-.,. ARG MSGDEQ CMDCPY CM.ADR CM.RUN NArJlCHK CM.BADNAME NUMCHK ARGCHK HRDADRCHK CM.ODD BOA16 SAVREG KBINI RESREG DX.KFL· ; 'IllEGAL ARGUMENT' ;MESSAGE DEQUEUER ;COPY KEYBOARD aUF TO DECODE BUF ; IILLEGAL ADDRESS I ; IILLEGAL CO~~AND IN RUN MODE ;CHECK AN OPTION MODULE NAME .; 'INVALID MODULE MODULE NAMEI ;ENQUEUE A MESSAGE ;CHECK A NUMBER ;CHECK AN ARGUMENT ;CHECK AN ADDRESS ROUTINE ; INGM8ER MUST BE EVEN ;BINARY TO OCTAL ASCII CONVERSION ;SAVEREGISTERS ;KEYBOARD INIT ROUTINE ;RESTORE REGISTERS ;CARRIAGE RETURN FLAG t ;**************** i ; LOCAL STORAGE: 611 614 ;MODULE ENTRY POINT KMOD , ;*************** , 512 SEQ 0600 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 000000 1 000000' 581 613 PAGE 19-2 000000 1 000000 0000021 000006 000010 1 020057 0000121 000006 000020 1 020040 000 000022' 000 000023' 000 000024' 000026 1 KM.LOC: .WORD KM.MG1: .BlKS . ASCI I KM.MG2: .BLKS . ASC I I .BYTE KM.ABT: .BYTE KM.FLG: .BYTE 0 € 1/,' 6 / I 0 0 0 .EVEN ;**************** ;HOLD LOCATION TO BE MODIFIED ;HOLD ASCII LOCATION ;SEPARATOR ;HO~D ASCII CONTENTS OF LOCATION ;SPACES ;TERMINATOR (NO CR DESIRED) ;ABORT FLAG ;KBINT FLAG ;. KMOD PROCESS THE 'MOD' KEYBOARD COMMAND MACY11 30A(1052) KMOD.MAC 28-JUL-78 09:19 KMOD ROUTINE 628 629 630 (2) 631 632 633 634 635 636 (3) 637 (4) 638 (4) 639 640 641 642 643 (3) (4) (3) (3) 644 645 646 647 649 649 (4) 650 651 652 653 654 655 656 657 (6) (9 ) 658 659 (4) 660 (2 ) 661 66~ (4) 663 664 665 666 667 668 (4) .SBTTL 2"0-SEP-78 18:00 PAGE 19-3 SEQ C601 KMOD ROUTINE ROUTINE KMOD <DTADR,BUFPTR> 000026' 000026' KMOD: ;+ ;SAVE REGISTERS AND SAVE OiABlE ADDRESS + BUFFER POINTER ;000026' 000026' 004767 000032' 000032' 016500 000036' 000036' 016501 CALL SAVREG OOOOOOG '- LET R1 .- BUFPTR(R5) 000000 000002 DTADR(R5) LET RO JSR PC,SAVREG MOV DTADR(R5),RO MOV BUFPTR(R5) ,R1 MOV MOV JSR MClV R5,-(SP) RO,-(R5) PC,MSGDEQ (SP)+,R5 CLRB KM.ABT BIT SEQ #RUN:vlODE,DT.STO( 50002$ MOV #CM.RUN,DT.KBRSP JMP 1$ ,' • oJ. ; TYPE OUT THE CR AT END OF MOD COMMAND , 000042' 000042' 000044' 000046' 000052' CALL MSGDEQ IN <RO> 010546 010045 004767 012605 OOOOOOG ;+ T .. ,,,,,. ; J..I"J. I ;- 000054' 000054' 105067 ~OI"'lOT "' .... \",011'\1 FLAG . LET KM. ABT :B= #0 177743 ;+ ; IF IN RUNMODE, LOAD MESSAGE AND LEAVE , '- 000060' 000060' 032760 000066' 001405 000070' 000070' 012760 000076' 000076' 000167 000102' 000102' IF #RUNMODE SETIN DT.STO(RO) THEN 100000 000010 LET DT.KBRSP(RO) ' - #CM.RUN OOOOOOG 000022 INLINE <JMP 1$> 001014 ENDIF 50002$: ;+ ; INIT R2 TO O. WILL BE MODULE HEADER ADDRESS LATER IF SPECIFIED ; ARGUMENT IN , 000102000102' 005002 LET R2 '- #0 CLR R2 KMOD PROCESS THE 'MOD' KEYBOARD COMMAND MACY11 30A{10S2) KMOD.MAC 28-JUL-78 09:19 KMOD ROUTINE 669 670 671 672 673 000104 1 000110' 000112' 000114' 000120 1 000122 1 (5) (4) (3) (3) (4) (4) 689 690 691 692 693 (6) 694 695 696 CALL ARGCHK IN <R1> OUT <R1> 162705 010546 010145 004767 012605 012501 BCS 50003$ CMPB BLT CMPB BlE (R1),#'O 50004$ (Ri),H ' 9 50005$ SUB j12~2 .R~ MG\/ MOV R5,-(SP) R1,-(R5) RO,-(R5) PC,NAMCHK (SP)+,R5 (R5}+.R2 (R5)+,R1 BCC 50006$ MOV #CM.BADNAME,DT.K JMP 1$ MOV MOV JSR OOOOOOG ;+ ; IF IT'S NOT A CR, SEE IF ALPHABETIC CHAR ;- IF.NO.ERROR THEN 000124 1 000124 1 103532 000126 1 000126 1 000132 1 000134 1 000140' 000142' IFB (R1) LT #'0 ORB (R1) GT #'9 THEN 121127 002403 121127 003436 000060 000071 500045: ;+ ; IT'S ALPHABETIC - GO VERIFY MODULE NAME .... ;- 000142 1 000142 1 000146' 000150 1 000152' 000154 1 000160' 000162 1 000164 1 CALL NAMCHK IN <RO,R1> OUT <R2,R1> 162705 010546 010145 010045 004767 012605 012502 012501 000004 MOV MOV J5R OOOOOOG MOV MOV ;+ ; If MODULE NAME BAD - STUFF ERROR MSG AND RETURN ;- IF.ERROR THEN 000166 1 000166 1 103005 LET DT.KBRSP(RO) .OOOOOOG 000022 (2) 000176 1 000176 1 000167 000714 699 700 (4) 000202 1 000202 1 697 698 MOV MOV #1*2,R5 R5,-(SP) R1,-(R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 SUB 000002 000170' 000170 1 012760 (4) SEQ 0602 ;000104 1 (3) PAGE 19-4 ;+ (4) (3) (4) (3) (4) 675 676 677 678 679 (6) 680 681 682 (6) (8) (6) (9) (6) 683 684 685 586 687 688 (4) 18:00 ; GET THE FIRST ARGUMENT 674 (3) 20-SEP-78 INLINE <JMP ENDIF #CM.BADNAM~ 1$> 50006$: KMOD PROCESS THE IMOD I KEYBOARD CO~W.AND MACY11 30A(1052) KMOD.MAC 28-JUL-78 09:19 KMOD ROUTINE 701 702 703 704 705 706 (4) (3 ) (4) (3) (3) (4) 707 708 709 710 711 712 (6) 713 714 715 (4) 716 (2 ) 717 718 (4) 719 720 (4 ) 721 722 723 724 725 726 (4) (3) (5) (4) (3) (3) (4) (4 ) 727 728 729 730 731 (6) 722 733 734 (2) 735 ;+ ; NAME O.K. , 000202' 000202' 000206' 000210' 000212 1 000216 1 000220 1 20-SEP-78 18:00 PAGE 19-5 SEQ 0603 ... CHECK NEXT ARGUMENT CALL ARGCHK IN <R1> OUT <Rl> 162705 010546 010145 004767 012605 012501 000002 #1*2,R5 R5,-(SP) R1,-(R5) PC,ARGCHK (SP)+,R5 (R5)+,Rl MOV JSR MOV MOV OOOOOOG ;+ ; IF THE ARGUMENT IS A CR .... WHEN A MODULE NAME IS SPECIFIED, A NUMBER ; MUST FOLLOW ... BUST COMMAND!! I ... STUFF ERROR MSG ;IF.ERROR THEN 50007$ BCC 000222 1 000222 1 103005 000224 1 000224' 012760 000232' 000232' 000167 5110 .......... MOV LET DT.KBRSP(RO) .- #CM.ARG OOOOOOG 000022 INLINE <JMP MOV #CM.ARG,DT.KBRSP JMP 1$ 1$> 000660 ENDIF 000236' 000236' 50007$: ENDIF 000236' 000236' 50005$: ;+ ; THERE vJAS ANOTHER ARGUMENT ... GO CHECK IT.. SHOULD BE A NUMBER ... ;000236 1 000236' 000242 ' 000244' 000246 1 000250 ' 000254 ' 000256 ' 000260' CALL NUMCHK IN <RO,Rl> OUT <R1,R3> 162705 010546 010145 010045 004767 012605 012501 012503 OOOOOOG MOV #2*2,R5 RS,-(SP) Rl,-(RS) RO,-(RS) PC,NUMCHK (SP)+,R5 (R5)+,Rl {RS)+,R3 BCC 50010$ JMP 1$ ;+ ; IF NUMBER WAS TOO LARGE ... OR NON OCT AL. .• BUST COMMAND ... ;IF.ERROR THEN 000262 ' 000262 1 103002 000264' 000264' 000167 SUB MOV MOV MOV JSR MOV MOV 000004 INLINE <uMP 000626 1$> KMOD PROCESS THE 'MOD' KEYBOARD COMMAND MACY11 30A(1052) KMOD.MAC 28-JUL-78 09:19 KMOD ROUTINE 736 (4) 737 738 739 740 74; 742 (7) 743 744 (6) 745 746 747 748 749 750 (4) 751 (2) 752 753 (4) 754 755 (3) (4) (3) (3) (4) 767 768 769 770 771 772 (6) 773 774 775 (4) 776 18:00 PAGE 19-5 SEQ 0604 ENDIF 000270 ' 000270 ' 50010$: ;+ ; NOW MAKE SURE IT'S AN EVEN NUMBER 'f - . - R3 ROTATE -1 000270' 000270 ' 006003 LET R3 000272' 000272' 103005 IFCOND CS THEN ROR R3 SCC 50011$ ;+ ; UH OH ... AN ODD ADDRESS ... BUST COMMAND ..•• STUFF ERROR AND LEAVE .. ;- 000274 ' 000274' 012760 000302' 000302' 000167 LET DT.KBRSP(RO) '- #CM.ODD OOOOOOG 000022 INLINE <JMP MOV #CM.ODD,DT.KBRSP JMP 1$ RGL R3 SUB MOV MOV JSR MOV MOV #1*2,RS R5,-(SP) R1,-(RS) PC,ARGCHK (SP)+,RS (R5)+,R1 1$> 000610 ENDIF 000306' 000306' 50011$: ;+ RESTORE NUMBER 756 757 758 759 (7) 760 761 762 763 764 765 766 (4) ~0-SEP-78 'f - LET R3 000306' 000306' 006103 . - R3 ROTATE 1 ;+ ; NOW ..• JUST CHECK FOR ANY JUNK ARGUMENTS .... ;000310' 000310 1 000314' 000316' 000320' 000324 ' 000326' CALL ARGCHK IN <R1> OUT <R1> 162705 010546 010145 004767 012605 012501 000002 OOOOOOG ;+ ; IF JUNK ARGUMENTS FOUND ! SHOULD HAVE BEEN CR ; STUFF ERROR MSG & RETURN .... BUST COMMAND ...• , IF.NO.ERROR THEN 000330' 000330' 103405 000332' 000332' 012760 000340' LET DT.KBRSP(RO) . - #CM.ARG INLINE <JMP 1$> OOOOOOG 000022 BCS 50012$ MOV #CM.ARG,DT.KBRSP KMOD PROCESS THE 'MOD' KEYBOARD COMMAND MACY11 30A(1052) KMOD.MAC 28-JUL-78 09:19 KMOD ROuTINE (2) 777 778 (4) 779 780 000340' 000167 798 (2 ) 799 800 (4) 801 802 803 804 805 806 807 (3) (4) (3) (3 ) 808 809 810 811 812 (6 ) 813 814 815 (4) 816 (2 ) PAGE 19-, SEQ 0605 JMP ENDIF 000344' 000344' 1$ 50012$: ;+ ; FORM FINAL ADDRESS - ADD MODULE HEADER ADDRESS(IF ANY) TO NUMBER ; IN R3 AND STORE IN R3 ;LET R3 "- R3 + R2 000344 1 000344' 060203 ADD R2,R3 Bec 50013$ MOV #CM.ADR,DT.KBRSP JiviP i$ MOV JSR MOV R5,-(SP) R3,-(R5) PC,HRDADR (SP}+,R5 BCC 50014$ MOV #CM.ADR,DT.KBRSP JMP 1$ ;+ ; SEE IF ADDRESS IS > 32K •... NEVER ALLOWED .... IFCOND CS THEN 000346' 000346' 103005 i+ ; NUMBER> 32K •.. SORRY ... NOT ALLOWED .... 000350' 000350' 012760 000356' 000356' 000167 LET DT.KBRSP(RO) '- #CM.ADR OOOOOOG 000022 INLINE <JMP 1$> 000534 ENDIF 000362' 000362' 50013$: ;+ ; BUT DOES IT REALLY EXIST .... ;- 000362' 000362' 000364' 000366 1 000372' CALL HRDADR IN <R3> 010546 010345 004767 012605 MOV OOOOOOG ;+ i IF NO SUCH MEMORY ADDRESS ..•. STUFF ERROR .... i- 000376' 000376' 012760 000404' 000404' 000167 000410: AND SO LONG .•.• IF.ERROR THEN 000374' 000374' 103005 817 818 18:00 000552 781 782 783 784 785 (6) 786 787 788 789 790 791 79.2 (6) 793 794 795 796 797 (4) 2b-SEP-78 LET DT.KBRSP(RO} .- #CM.ADR OOOOOOG 000022 INLINE <JMP 000506 END!F 1$> MACY11 30A(1052) PROCESS THE 'MOD' KEYBOARD COMMAND KMOD KMOD ROUTINE 28-JUL-78 09:19 KMOD.MAC 000410 1 000410' 000402 (3) 000412! (3 ) (3 ) 850 851 852 853 854 (6) 855 856 (4 ) 857 18:00 PAGE 19-8 SEQ 0606 50014$: (4) 819 820 821 822 (4) 823 824 825 826 827 828 (4) 829 830 (4) 831 832 833 834 835 836 837 838 839 840 841 (2) 842 (4) 843 (4) 844 845 846 847 848 849 (3 ) (4) 20-SEP-78 000410' ELSE BR 50015$ MOV KM.LOC,R3 SOO035: ;+ ; ITIS A CR SO MOVE KM. LOC TO R3 ;- 000412 1 000412 1 016703 LET R3 := KM.LOC 177362 ENDIF 000416' 000416' 5001SS: ********* LOO? WHILE NOT LONE CR ON INPUT ************* ;+ ; CLEAR KM.ABT AND R4 ( BOTH FLAGS) , 000416' 000416' 000416 1 000416' 105067 000422 1 000422' 005004 INLINE <S$:> 5$: LET KM.ABT :B= #0 177401 CLRB KM.ABT CLR R4 MOV MOV JSR MOV R5,-(SP) R3,-(R5) PC,HRDADR (SP)+,RS BCC SOO16$ MOV #CM.ADR,DT.KBRSP JMP 1$ LET R4 := #0 ;+ ; SEE IF ADDRESS EXISTS ;- 000424' 000424 1 000426' 000430' 000434' CALL HRDADR IN <R3> 010546 010345 004767 012605 OOOOOOG ;+ ; IF THIS NEW ADDRESS IS A BUMMER ... STUFF ERROR MSG ;- IF.ERROR THEN 000436 1 000436 1 103006 (2 ) 000440 1 000440 1 012760 000446 1 000446' 000167 858 859 000452' LET DT.K8RSP(RO) OOOOOOG 000022 INLINE <JMP 000444 ELSE . - #CM.ADR 1$> MACY11 30A(1052) PROCESS THE 'MOD' KEYBOARD COMMAND KMOD KMIJD ROUTINE 2B-JUL-78 0~:19 KMOD.MAC (4) (3) 860 861 862 863 864 865 866 (4) 867 868 (4) 869 870 871 872 873 874 (3 ) (5) (4) (3 ) (3 ) 875 (3 ) (5 ) (4) (3) (3) 876 877 878 879 880 881 (3) (8 ) (7 ) (6) (5) (4) (3 ) (3) 882 883 884 885 886 (3) (4 ) (3) (3 ) 887 888 889 .20-SEP-78 18:00 PAGE 19-9 SEQ 0607 000452' 000402 000454' BR 50017$ MOV R3,KM.LOC MOV MOV MOV JSR MOV R5,-(SP) # K[vi • MG1 ,- ( R5 ) KM.LOC,-(R5) PC,BOA16 (SP)+,R5 MOV MOV R5,-(S?) #KM.MG2,-(R5) MOV @lKI'Il. LOC , - (R5) JSR MOV PC,BOAi6 (SP)+,R5 MOV MOV MOV MOV MOV MOV JSR MOV R5,-(SP) #0,-(R5) #0,-(R5) #KM.MG1,-(R5) #MSGSTD,-(R5) RO,-(R5) PC,ENQTQ (SP)+,R5 MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,MSGDEQ (SP)+,R5 50016$: ;+ ; SAVE R3 IN KM.LOC ;- 000454' 000454' 010367 LET KM.LOC '- R3 177320 ENDIF 000460' 000460' 500175: ;+ ; CONVERT LOCAL STORAGE TO ASCII AND OUTPUT ;- 000460' 000460' 000462' 000466' 000472' 000476' 000500' 000500' 000502' 000506' 000512' 000516' CALL BOA16 IN <KM.LOC,#KM.MG1> 010546 012745 016745 004767 012605 000002' 177306 OOOOOOG 010546 ()12745 017745 004767 012605 000012' 177266 OOOOOOG CALL BOA16 IN <@KM.LOC,#KM.MG2> +ENQUEUE IT 000520' 000520' 000522' 000526' 000532' 000536' 000542' 000544' 000550' CALL ENQTQ IN <RO,#MSGSTD,#KM.MG1,#0,#0> 010546 012745 012745 012745 012745 010045 004767 012605 000000 000000 000002' 000000 OOOOOOG ;+ ; , 000552' 000552' 000554' 000556 1 000562' A~~D PRINT IT CALL MSGDEQ IN <RO> 010546 010045 004 76~1 012605 OOOOOOG ;+ ; NOW GET SOME NEW INPUT FROM KEYBOARD, WHEN A CR KMOD PROCES.S THE 1 MOD I KEYBOARD COMMAND MACY11 30A (1052) KMOD. MAC .28~JU L-78 09: 19 KMOD ROUT I NE 890 891 892 893 (4) 20-SEP-78 18: 00 PAGE 19-10 SEQ 0608 ; IS STRUCK, INiERRUPT iHE REPEAT-LOOP . 0- 000564 1 000564 1 005067 LET DX.KFL .- #0 OOOOOOG ClR DX.KFL MOV MOV R5,-(SP) RO,-(R5) PC,K8INI (SP)+,R5 894 895 896 (3) (4) (3) (3) 897 898 (3) 899 (3) (4) (3) (3 ) 900 901 (3) (6) 902 903 904 905 906 (2 ) 907 908 909 910 911 912 913 (4) 914 915 916 917 918 919 (4) 920 (6) (9 ) 921 (2 ) 922 (4) 923 924 925 926 000570 1 000570 1 000572 1 000574' 000600' 000602' 000602' 000602' 000602' 0006.04' 0006e6' 000612' CALL KBINI IN <RO> 010546 010045 004767 012605 JSR OOOOOOG MoV REPEAT 50020$: CAll MSGDEO IN <RO> 010546 010045 004767 012605 000614' 000614' 105767 000620' 001770 MOV R5,-(SP) RO,-(R5) PC,MSGDEQ (SP)+,R5 iSi8 SEQ DX.KFL 50020$ MOV MOV JSR OOOOOOG UNTIlB DX.KFL NE #0 OOOOOOG INLI NE <2$: > 000622' 000622' 2$: ;+ ; IN!T KM.FLG ;000622' 000622' 105067 LET KM.FLG :B= #0 177176 ClRS KM.FLG MOV DT.KBUF(RO),R1 CMP8 5NE (R1) ,HCR 50021$ JMP 1$ ;+ ; IF FIRST CHAR WAS A CR ... JUST lEAVE ...• ,' - 000626 1 000626 1 000632' 000632 1 000636' 000640' 000640' 000644' 000644' lET R1 016001 := DT.KBUF(RO) 000030 IFB (R1) EO #eR THEN 121127 001002 000015 000167 000252 INlINE <JMP 1$> ENDIF 50021$: ;+ ; GET ORIGINAL DECODE BUFFER POINTER .•. COpy KEYBOARD BUFfER INTO ; DECODE BUFFER .•.. o KMOD PROCESS THE 'MOD' KEYBOARD COMMAND MACY11 30A (1052) KMOD.MAC 28-JUL-78 09:19 KMOD ROUTINE 927 928 (4) 929 930 931 (4) (3) (5) (4) (3) (3) (4) 932 933 934 935 936 937 938 (4) (3) (4) (3) (3) (4) 939 94C 941 942 943 (6) (9) (6) (9) (6) (9 ) 944 945 946- (4) (3) (5) (4) (3) (3 ) (4) (4) 947 948 949 (6 ) 950 951 952 953 ~rO-SEP-78 18: 00 PAGE 19-11 SEQ 0609 ;- 000644' 000644' 016501 000650 1 000650! 000654' 000656' 000660' 000662' 000666' 000670' LET R1 .- BUFPTR(R5) 000002 MOV BUFPTR(R5),R1 SUB #1*2,R5 R5,-(SP) R1,-(R5) RO,-(R5) PC,CMDCPY (SP)+,R5 (R5)+,R4 CALL CMDCPY IN <RO,R1> OUT <R4> i 62705 010546 010145 010045 004767 012605 012504 000002 MOV MOV MOV JSR OOOOOOG MOV MOV ;+ ; GET FIRST ARGUMENT ;- 000672' 000672' 000676' 000700' 000702' 000706' 000710' CALL ARGCHK IN <R1> OUT <R1> 162705 010546 010145 004767 012605 012501 SUB 000002 MOV MOV JSR OOOOOOG MO'J MOV #1*2,R5 R5,-(SP) R1,-(R5) PC,ARGCHK (SP )+, R5 (R5)+.R1 ;+ ; IF THE FIRST CHAR IS NOT A TERMINATOR (CR,LF,~U) ... GO CHECK NUMBER ... of IF R4 EO #0 ANDB (R1) NE #LF ANDB (R1) NE NCR THEN 000712 1 000712' 000714 1 000716 1 000722' 000724' 000730' 005704 001054 121127 001451 121127 001446 000732 1 000732' 000736' 000740' 000742' 000744' 000750' 000752' 000754' 162705 010546 010145 010045 004767 012605 012501 012502 000012 000015 TST BNE CMF'S BEQ CMPS BEQ R4 50022$ (R1),#LF 50022$ (R1) ,NCR 50022$ SUB MOV MOV MOV #2*2,R5 R5,-(SP) R1,-(R5) RO,-(R5) PC,NUMCHK (SP)+,R5 (R5)+,R1 (R5)+,R2 BCS 50023$ CALL NUMCHK IN <RO.R1> OUT <R1,R2> 000756' 000756' 103430 000004 MOV MOV JSR OOOOOOG MOV IF.NO.ERROR THEN ;+ ; NUMBER O.K. - GET NEXT ARGUMENT MACY11 30A(1052) PROCESS THE 'MOD' KEY80ARD COMMAND KMOD KMOD ROUTIN!: 28-JUL-78 09:~9 KMOD.MAC 954 955 (4) (3) (4) (3) (3 ) (4) 956 957 958 959 960 (6 ) (9) (6 ) (9) 961 362 963 (4) 964 (4 ) 965 966 (4) (3) 967 968 969 970 971 972 (4) 973 974 (4) 975 976 (4) (3) 977 978 979 980 981 982 (4) 983 984 (4) 985 986 (4) 987 988 000760' 000760' 000764: 000766 1 000770' 000774! 000776' !!u-SEP-78 18:00 PAGE 19-12 SEQ 0610 CALL ARGCHK IN <R1> OUT <R1> 162705 000002 010546 010145 004767 OOOOOOG MOV #1*2,R5 R5,-(SP) R1,-(R5) PC,ARGCHK (SP)+,R5 {R5)+,R1 CMPB SEQ CMPB SEQ (R1) ,#LF 50024$ (R1) ,#CR 50024$ I\lOV #CM.A~G,DT.KBRSP MO\l8 #1,KM.AST BR 50C25$ SUB Mev MOV JS;:( MOV Oi2605 012501 ;+ ; IF NOT A TERMINATOR (CR OR LF) STUFF ERROR MSG , 001000' 001000' 001004 1 001006 1 001012' 121127 001412 121127 001407 001014' 001014' 012760 001022' 001022' 112767 IFB ( R1) NE #LF ANDB ( R1) NE #CR THEN 000012 000015 LET DT.KSRSP(RO) OOOOOOG 000022 000001 .- #CM.ARG LET KM.ABT :8= #1 176173 ELSE 001030' 001030 1 000402 001032' 50024$: ;+ ; IT WAS A TERMINATOR ... CHANGE CONTENTS OF LOCATION(IN LOCAL STORAGE) ,"- 001032' 001032 1 010217 LET @lKM.LOC :,= R2 176742 MQV R2,@lKM.LOC BR 50026$ MOVS #1,KM.ABT ENDIF 001036' 001036' 50025$: ELSE 001036 1 001036' 000403 001040' 50023$: ;+ ; BAD NUMBER ..•• SET ABORT FLAG , 001040 1 001040' 112767 LET KM.ABT : B= #1 000001 176755 ENDIF 001046 1 001046' 001046' 001046' 50026$: ENDIF 50022$: MACY11 30A(1052) PROCESS THE 'MOD I KEYBOARD COMMAND KMOD KMOD ROUTINE 28-JUL-78 09:19 KMOD.MAC 989 990 991 992 993 (6) (9) (6) (9) (6) (9) 994 995 (6) 996 997 (4) 998 999 1000 1001 1002 1003 1004 (2) 1005 (2) 1006 (2) 1007 (~) 1008 (2) 1009 (2 ) 1010 (2 ) 1011 (2 ) 1012 1013 1014 1015 1016 (2) 1017 (3 ) 1018 1019 (3) (3) (2) 1020 1021 20-SEP-78 18:00 PAGE 19-13 SEQ 0611 ;+ ; SEE IF TERMINATOR IS LF AND ABORT FLAG = 0 (NO ABORT) ;- IFB ( Rn EQ #LF "" .. ,,/lC:1 VVIV~U 001046 1 001052 1 001054 1 001060 1 001052' 001064 1 121127 001007 105767 001004 005704 001002 001066' 001066' 062703 ANDa KM.ABT EQ #0 AND R4 EQ #0 THEN 000012 176743 LET R3 CMPS (Rl),#LF BNE iSTa BNE TST BNE 50027$ KM.ABT 50027$ R4 50027$ ADD #2,R3 .- R3 + #2 000002 ENDIF 001072' 001072' 50027$: ;+ ; UNTIL TERMINATOR = CR AND ABORT FLAG NOT SET (= 1) ;- 001072 1 001072 1 001076' 001076 1 001100' 001100' 001104' 001104' 001104' 001104' 001110' 001110 1 001112' 001112 1 001116 1 001116' INLINE <CMPB (R1),#CR> 121127 CMPB (R1),#CR 000015 INLINE <SEQ 6$> BEQ 6$ 001402 INLINE <JMP 5$> 000167 JMP 5$ 177312 INLINE <6$:> 6$; INLINE <TSTB KM.ABT> 105767 TST8 KM.ABT 176713 INLINE <BEQ 7$> BEQ 7$ 001402 INLINE <JMP 5$> 000167 JMP 5$ 177300 INLINE <7$:> 7$: 001116' 001116 1 001.116 ' 001116' 004767 001122 1 001122 1 001122 1 001122' 000207 000001 INLINE <1$:> 1 $: CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 50001$: .END KMOD MACY11 30A(i052) PROCESS THE IMOD I KEYBOARD COMMAND SYMBOL TABLE 28-JUL-78 09: 19 20-SEP-78 i8:00 ?AGE 20 SEQ 0612 Kr,10D. rlaAC 000102 ACSR ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ARGCHK= ****** G 000106 ASB ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 000001 BITO BITOO 000001 000002 BITOl 000004 BIT02 000010 B1T03 BIT04 000020 BIT05 000040 000100 BIT06 000200 BIT07 000400 BIT08 001000 B1T09 8ITl 000002 002000 B1110 BIT 11 004000 B1T12 010000 8IT13 020000 B1T14 040000 100000 BIT15 B1T2 000004 B1T3 = 000010 BIT4 000020 BITS 000040 BIT6 000100 BIT7 000200 BIT8 000400 BIT9 = 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BOA16 = ****** G BUFPTR= 000002 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKT1M = 100000 CLKPRE= 000001 CMDCPY= ****** G CM.ADR= ****** G CM.ARG= ****** G CM.BAO:: ****** G CM.ODD:: ****** G CM.RUN= ****** G CONFIG= ('00056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 D1AGMC= 000000 DROPMO= 100000 DSEVNT= 000.014 DTADR = 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 D1.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 ,..,,,.""',,,,. ..., DT.ESI;;; vVV"'"t'" DT.EVN= 000000 D1. EXS= 000060 DT. FCH= 000037 DT.FCN= 000036 DT .HMX-= 0:00:1.0:4 DT.KBE= 00{)024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 D1. REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT . WLL= 000052 DVID1 = 000014 DX.KFL= ******. G ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 ENQTQ = ******. G EOPB1T= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDADR= *****'" G HRDCNT= 000044 HRDPAS= 000050 lCONT = 000036 lCOUNT= 000040 1DNUM = 000122 IE 1NDP/!.R= INHDRP= 1NHEPR= 1NHREL= 0OO1CO 000040 040000 020000 001000 INHRR:E:= O:09:49:Q , 1NIT 000030 INTR 000120 IOMOD 100000 1OMODP= 102000 IOMODR= 112000 IOMO!)X= 110000· JACK 035060 KBINI = ****** G KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KlPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 K1PDR6= K1PDR7= KMOD KM.ABT KM.FLG 172314 172316 000026RG 000023R 000024R KM. LOC OOOOOOR KM.MG1 KM.MG2 KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCK5= MSGDEQ= MSGDER= MSGDRP= !VlSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= 000002R 00OO12R 000040 000400 000020 040000 000012 000001 000200 076600 040000 004000 002000 001000 000010 000011 .M~~rw1A:p= "'***** G· 000005 000017 177777 000013 000004 000022 000007 000021 17777""5 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMS= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NAMCHK= ****** G NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL NUMCHK= ****** G 024020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 000034 020000 004000 010000 000000 Mn,.. .. r-r<:.l.1 000040 PRI4 000200 PRI5 000240 PRI6 000300 PRI7 000340 PRO 000000 PR4 = 000200 000240 PR5 PR6 = 000;300 000340 PR7 177776 PS PS\,l.l 177776 RANNUM= 000054 RBUFEA= 000130 RBUfPA= 000126 RSUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 RESREG= ****** G 000056 RESl 000060 RES2 RICHAR= 031060 RoiDAT·= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 SAM 075464 SAVREG= ****** G S5ADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC . .A.LC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 Sc. CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENl)LS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 PASCNT= PDPLSI= PDP60 PDP70 PRIO KMOD PROCESS THE 'MOD I KEYBOARD COMMAND MACY11 30A(1052) KMOD.MAC 2S~JUL-78 09:19 SYMBOL TABLE UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UlPDR2= UIPDR3= UlPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= IoIJ8STAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= WDFR WDTO WTINRE= 000032 002200 177572 177574 SR2 177576 172516 SR3 000026 STAT STATBl= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 COO076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 SPOINT= SPVALU= SRO SR1 ABS. 000000 001124 177644 177646 177.650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 000352 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:KMOD,DSKZ:KMOD=SPMAC/ML,EQUATE,KMOD RUN-TIME: 20 10 .4 SECONDS RUN-TIME RATIO: 58/32=1.8 14K (27 PAGES) CORE USED: WTWHMl= 000222 XFLAG = 000005 XOFF 000023 XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$f\!AM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 20-SEP-78 18:00 PAGE 20-1 $F$JHE= 000330 $F$TRU= 000404 SFSUNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $ISK1 = 000001 $ISK2 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 00000'1 SNESTL= 177777000300 SNSKO $!'JSK1 = 000110 $NSK2 = 000110 SNSK3 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050030 000300 $TEMP 050027 $TSKO 050026 $TSK1 SEQ 0613 $TSK2 = 050025 $$.ARGC= 000004 $$8YTE= 000403 $$CASE= 000000 $$OST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 001064R $$LOCN= 000000 SSREG = 177777 S$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 001124R .MAIN. MACY11 30A(1052} 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 526 578 631 634 564 18:01 TABLE OF CONTENTS COMMON EQUATE MODULE KMON PROCESS MON KEYBOARD COMMAND KMOFF PROCESS MOFF KEYBOARD COMMAND COMMON DEFINTITIONS AND REFERENCES FOR KMON .PRINT ;SPMAC: VERSION 1.1 000000' KMON ROUTINE SEQ 0614 KMONOF PROCESS MON, MOFF KEYBOARD COMMANDS MACY11 30A(1052) KMONOF.MAC 09-AUG-78 09:37 COMMON EQUATE MODULE 508 509 510 511 512 513 .TITLE .IDENT 20-SEP-78 ~8:C1 PAGE 19 SEQ 0615 KMONOF PROCESS MON, MOFF KEYBOARD COMMANDS JVO.Oj ;++ MODULE PACKAGE NAME: KMONOF 514 515 516 517 518 519 520 521 522 523 524 FUNCTIONAL DESCRIPTION: THIS MODULE PACKAGE CONTAINS TWO ROUTINES: 1. KMON - TURN THE UNIBUS MAP HARDWARE ON 2. KMOFF - TURN THE UNIBUS MAP HARDWARE OFF VERSION: 0.0 EDIT ;- DATE BY REASON KMONOF PROCESS MON, MOFF KEYBOARD CCMMANDS KMONOF.MAC 09-AUG-78 09:37 KMON 526 527 528 .529 530 531 532 533 534 535 536 537 538 539 540 FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE "MON" KEYBOARD COMMAND. IT WILL TEST TO SEE IF 22 BIT ADDRESSING IS AVAILABLE, AND THAT THE EXERCISER IS NOT IN RUN MODE. IT WILL ENABLE THE UNIBUS MAP HARDWARE. IF IN RUN MODE OR NO 22 BIT ADDRESSING AVAILABLE, THE APPROPRIATE ERROR MESSAGE IS OUTPUTTED. INPUTS: 1. ADDRESS OF DATA TABLE 2. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: DT.STO DT.CFO 545 546 547 548 OUTPUTS: NONE 549 550 55t IMPLICIT OUTPUTS: DT.STO DT.KBRSP 552 553 554 555 561 562 563 564 565 566 567 568 569 570 A PATHOLOGICAL CONNECTIONS: CM.ARG,CM.RUN SUBORDINATE ROUTINES CALLED: ARGCHK FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KMON IN <DTADR,BUFPTR> WHERE DTADR = ADDRESS OF DATA TABLE BUFPTR = COMMAND DECODE BUFFER POINTER VERSION: 0.0 571 572 573 574 575 SEQ 0616 MODULE NAME: KMON 543 544 560 PAGE 19-1 ;++ 541 557 558 559 18:01 .SBTTL KMON PROCESS MON KEYBOARD COMMAND .IDENT IVO.OI 542 556 MACY11 30A(1052) 20-SEP-78 PROCESS MON KEYBOARQ COMMAND 0, EDIT DATE BY REASO:-.l KMONOF PROCESS MON, MOFF KEYBOARD COMMANDS MACY11 30A(1052) 20-SEP-78 KMONOF.MAC 09-AUG-78 09:37 KMOFF PROCESS MOFF KEYBOARD COMMAND 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 FUNCTIONAL DESCRIPTION: THIS ROUTINE WILL FROCESS THE "MOFF" KEYBOARD COMMAND. IT WILL TEST FOR THE PRESENCE OF 22 BIT ADDRESSING. IF NO 22 SIT ADDRESSING, IT WILL STUFF A NO UNIBUS MAP MESSAGE. IF UNIBUS MAP IS AVAILABLE, A CHECK IS MADE TO SEE IF THE EXERCISER IS IN RU~ MODE. IF iN RUN MODE, THE ERROR MESSAGE IS STUFFED. IF NOT IN RUN MODE, THE STATUS WORD WILL BE UPDATED(THE UNIBUS MAP BIT CLEARED) AND THE UNIBUS MAP TURNED OFF. LOCATION. INPUTS: ADDRESS OF DATA TABLE COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: DT. CFO DT.STO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.STO DT.KBRSP PATHOLOGICAL CONNECTIONS: CM.ARG,CM.RUN 616 617 618 FUNCTIONAL SIDE EFFECTS: NONE 619 621 622 -623 624 625 626 627 628 629 SEQ 0617 ;++ MODULE NAME: KMOFF SUBORDINATE ROUTINES CALLED: ARGCHK 620 PAGE 19-2 .SBTTL KMOFF PROCESS MOFF KEYBOARD COMMAND .IDENT JVO.Oj 615 614 18:01 CALLING SEQUENCE: CALL KMOFF IN <DTADR,CMDBUF> WHERE DTADR = ADDRESS OF DATA TABLE CMDBUF = COMMAND DECODE BUFFER PCINTER VERSION: 0.0 EDIT DATE BY REASON KMONOF PROCESS MON, MOFF KEYBOARD COMiVIANDS MACY11 3CA(1052) 20-SEP-78 18:01 PAGE 19-3 KMONOF.MAC 09-AUG-78 09:37 COMMON DEFINTITIONS AND REFERENCES FOR KMON 631 632 633 634 (1) 635 636 637 638 639 640 641 642 643 644· 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 .SBTTL COMMON DEFINTITIONS AND REFERENCES FOR KMON .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=i $LSTTAG=1 000000 1 000000 1 000001 000001 ;**************** , ; REFERENCED BY OTHER MODULES: .GlOBL .GLOBL , KMOFF KMON ;MODULE ENTRY POINT ;MODULE ENTRY POINT ;**************** ; GLOBAL REFERENCES: t .GLOBL .GLOBL .GLOBL ARGCHK Crvl.ARG CM.RUN ;CHECK FOR EXISTENCE OF AN ARGUMENT ; IILLEGAL OR INVALID ARG 1 MESSAGE ;"NOT A VALID COMMAND IN RUN MODE" MESSAGE ;**************** f ; LOC.l\ L STORAGE: f 000000 1 000006 1 000014 1 000017 1 000024 1 000032 1 000036 1 000044 1 000052 1 000056 1 047516 052502 022520 125 020123 047117 047125 046440 043106 000 000060 1 052440 020123 000 044516 040515 000045 041111 050101 000045 044516 040515 MB.NOMB: 052502 020120 MS.•. ON: .ASCIZ IUNIBUS MAP ON%/ 051525 047440 MB.OFF: .ASCIZ /UNIBUS MAP OFF%/ MB.FLG: .BYTE . EVEN a .ASCIZ INO UNIBUS MAP%/ ;UNIBUS MAP ON/OFF FLAG SEQ 0618 KMONOF PROCESS MON, MOFF KEYBOARD COMMANDS KMONOF.MAC 09-AUG-78 09:37 KMON 664 665 666 (2) 667 668 669 670 671 672 (4) 673 (2) 674 (3) (3) (2) 67? 676 (2) 677 678 679 680 681 .SBTTL MACY11 30A(1052) ROUTINE KMON 20-SEP-78 18:01 PAGE 19-4 SEQ 0619 ROUTINE ROUTINE KMON <DTADR,BUFPTR> 000060' 000060' KMON: ;+ ; SET ON FLAG ;- 000060' 000060 1 105067 000064' 000064' 000404 000066' 000066' 000066' 0000~6' 000207 LET MB.FLG :B= #0 CLRB 177'772 INLINE <BR MBROU> ENDRTN MB.FLG BR MBROU 50000$: 50001$: RTS PC MOVB #1 t MB.FLG ROUTINE KMOFF <DTADR,BUFPTR> 000070' 000070' KMOFF: ;+ ; SET THE OFF FLAG ,' - LET MB.FLG ..... ,...,,... 00":: ",,,,,,,,,,.,1\1 VVUU/V (4) 683 684 685 6.86 €?87 688 (2) 689 (2) (3) 690 (4) 691 (4) 692 693 694 695 696 697 (6) (9) 698 699 700 701 702 703 704 000070 1 112767 000001 :8~ #1 177760 ;+ ; SAVE REGISTERS AND DATA TABLE ADDRESS ;- 000076' 000076' 000076' 000076 1 000100' 000102 1 000102 I 000106 1 000106 1 INLINE <MBROU:> MEROU: PUSH RO,R1 LET RO .- DTADR(RS) 016500 000000 LET R1 "- SUFPTR(RS) 016501 MGV RO,-(SP) R1,-(SP) MOV DTADR(RS),RO MOV BUFPTR(RS),R1 BIT BNE #RUNMODE,DT.STO( S0002$ MOV 010046 010146 000002 ;+ ; IF NOT IN RUN MODE CONTINUE ;- 000112 1 000112 1 032760 000120 1 001054 IF #RUNMODE NOTSETIN DT.STO(RO) THEN 100000 000010 ;+ ; SEE IF ANY ARGUMENTS EXIST & IF ; THEY DO , THIS IS A BAD COMMAND 000122' CALL ARGCHK IN <R1> OUT <R1> KMOhlOF PROCESS MON, MOFF KEYBOARD COM1VlANDS KMONOF.MAC 09-AUG-78 09:37 KMON (4) (3) (4) (3) (3) (4) 705 706 707 708 709 710 711 (6) 712 713 714 715 (6) (9) 716 717 718 719 720 (6) (9 ) 721 (6) 722 (6) 723 724 725 726 727 (4) 728 (4) (3) 729 730 731 732 000122' 000126' 000130' 000132' 000136' 000140' 162705 010546 010145 004767 012605 012501 MACY11 30A(1052) ROUTINE 20-SEP-78 18:01 PAGE 19-5 SEQ 0620 sus 000002 MOV MOV JSR MOV OOOOOOG MOV #1*2,R5 R5,-(SP) R1,-(R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 ;+ ; THE ARGUMENT IS A CR SO ALL IS O.K. ; SEE IF 22 BIT ADDRESSING IS PRESENT AND IF IT IS, ; IF MB FLAG IS 0 THEN SET THE KTSTAT BIT IN DT.STO OTHERWISE. CLEAR IT. ;- IF. ERROR THEN 000142 1 000142' 103037 000144 1 000144 1 032760 000152' 001427 Bec 50003$ BIT SEQ #ADDR22,DT.CFO(R 50004$ IF #ADDR22 SETIN DT.CFO(RO) THEN 001000 000014 j+ ; IF MB.FLG EQUALS 0 THEN TURN MAP ON ;- 000154 1 IFB MB.FLG EQ #0 THEN ..IV;,)/UI <..,..,C.,c 000160 1 001012 000162 1 000162 1 052760 000170' 000170' 052737 000200 000010 000040 172516 """,...,.. ... ,... ... , UUUIO'"t I'\r-"'.-~ i. J I TSTS MB.FLG Bi\lE 50005$ LET DT.STO(RO) :: DT.STO{RO) SET.BY #MAPSTAT SIS #MAPSTAT.OT.STO( LET @#SR3 :: @#SR3 SET.BY #BIT05 8IS #BIT05 , @l#SR3 VIU ;+ ; LOAD UNIBUS MAP ON MESSAGE ;- 000176' 000176 1 012760 000204 1 000204' 000411 000206' LET DT.KBRSP(RO) .- #M8.0N 000017' 000022 MOV #MB.ON,DT.KBRSP( BR 50006$ ELSE 50005$: ;+ ; TURN IT OFF 733 734 (6) 735 (6) 736 737 738 739 740 (4) 741 000206 1 000206 1 042760 000214' 000214 1 042737 000200 000010 000040 172516 LET DT.STO(RO) := DT.STO(RO) CLR.BY #MAPSTAT BIC #MAPSTAT,DT.STO( LET @#SR3 := @#SR3 CLR.BY #BIT05 BIC #BIT05,@#SR3 ;+ ; LOAD THE UNIBUS MAP OFF MESSAGE ;- 000222' 000222 1 012760 000230 1 LET DT.KBRSP(RO) .- #MB.OFF MOV 000036 1 000022 ENJIF #MB.CFF,DT.KBRSP KMONOF PROCESS MON, MOFF KEYSOARD COMMANDS KMON 09-AUG-78 09:37 KMONOF.MAC (4) 742 (4) (3) 743 744 745 746 747 (4) 748 (4) 749 750 (4) (3 ) '751 752 753 754 755 (4) 756 (4) 757 000230' 000230' 000230' 000403 000232' f /1 , 000250' 000403 (3 ) 758 759 760 761 762 763 (4 ) 764 (4 ) 765 766 767 768 769 770 (2 ) (3 ) 771 772 (3) (3) (2) 773 774 000252' \ -r ) MACY11 30A(1052) ROUTINE 20-SEP-78 18:01 PAGE 19-6 SEQ 0621 50006$: ELSE BR 50007$ MOV #MB.NOMB,DT.KBRS BR 50010$ MOV #CM.ARG,DT.KBRSP BR 50011$ MOV #CM.RUN,DT.KBRSP MOV MOV (SP)+,R1 (SP)+,RO RTS PC 50004$: ;+ ; LOAD iHE NO Ui'1IBUS MAP MESSAGE , 0- 000232' 000232' 012760 000240' 000240' LET DT.KBRSP(RO} . - #MB.NOMS 000000' 000022 ENDIF 50007$: ELSE 000240' 000240' 000403 000242' 50003$: ;+ ; LOAD THE ILLEGAL ARGUMENT MESSAGE ;- 000242' 000242' 000250' 000250' 000250' LET Di.KBRSP(RO) 0~2760 .- #CM.ARG OOOOOOG 000022 ENDIF 50010$: ELSE 500025: ;+ ; LOAD THE RUN MODE MESSAGE ;- 000252' 000252' 012760 000260' 000260' LET DT.KBRSP(RO) := #CM.RUN OOOOOOG 000022 ENDIF 50011$: ;+ ; CLEAN UP , 000260' 000260' 012601 000262 1 012600 POP R1, RO 000264' 000264' 000264' 000264' 000207 ENDRTN 000001 . END 50000$: 50001$: MACY 11 30A(1052) KMONOF PROCESS MON. MOFF KEYBOARD COMMANDS SYMi30L TABLE 09-AUG-78 09:37 20-SEP-78 18:01 PAG:=' 20 SEQ 0622 KMONOF.MAC 000102 ACSR ACTi3IT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ARGCHK= ****** G 000106 ASB ASSEMB= 000010 ASTAT = 000104 'AUTO 000010 AUTOST= 020000 000110 AWAS 000001 BITO 000001 BITOO BIT01 = 000002 B1T02 000004 B1T03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 000400 BIT08 BIT09 001000 BIT1 000002 t'"<t.T'T' .. '" 0.1. I I V r'i.1"'I""'""l'\n Vv,vvv BIT11 004000 B1T12 010000 BIT;3 020000 BIT14 040000 100000 BIT15 BIT2 000004 000010 BIT3 BIT4 000020 BIT5 000040 BIT6 000100 BIT7 000200 BIT8 000400 BIT9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BUFPTR= 000002 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100~OO CLKPRE= 000001 CM.ARG= ****** G CM.RUN= ****** G CONFIG= 000056 000001 CQOVF 000015 CR CSRA = 000100 000102, CSRC 000003 CTRLC 000017 CTRlO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042, DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT . H~.~,X= 000104 DT.KBt= 000024 DT.KBP= 000026 DT.KSR= 000022 DT.KBU= 000030 DT.MlS~ 00.0032 DT . rl' lT I = 000110 DT.OFF= 000070 DT.PAS= 000074 DT. PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT . REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT. SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SIJJR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHl= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= '000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM= 000122 000100 IE INDPAR= 000040 INHDRP::. 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 10000.0 TOMOD IOMODP= 102000 IOMOD'R= 112000 IOMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAP.3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316' 000070RG KMOFF KMON 000060RG KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF PR4 PR5 PR6 PR7 PS 000200 000240 000300 000340 177776 (\(\(\('\':1':::0 PSloJ 177776 000017R 076600 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 0000.04 000022 000007 000021 177775 00,0002 1777.76 000001 000006 000003 000015 000014 000054 000130 000126 000132 000124 R~SERV= 000101 R~WHMI= 000022 RELERR= 000020 Ri::Lrt.OD= 020000 RElTIM= 010000 RcS1 000056 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNrv'10D= 100000 R5VALU= 001740 075464 SAM SBADR = 000102 SBK!V:OD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.AlC= 000014 SC.AP_C= OOOQ.tQ SC.CKl= 000002 Sc. CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 S?ACE = 000040 SPOIN1= 000032 SPVALU= 002200 17757.2 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBl= 064757 STA i1 = 000027 SUS;:ND= 000001 SVRiJ 000062 000064 SVR1 000066 SVR2 LPSTAT= MAPSTA= M8ROU MB.FlG MB. NOM 000001 000200 000076R 000056R OOOOOOR MB.OFF vVVV....J~..,.,," MB.ON MED MEM?AS= MODEXH= MODHOl= ~.IlODSE L= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUl= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS-:;; MSGSTD= MSGSYS= MSGVEC= NBf<MOD= NCPUOP= NOAPTY= NUll OV.JEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRO nillWj.6 000000 000012 000020 001000 00Q020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 R.ANNUM= RBUFEA= RBU;:PA= RBUFSZ= RBUFVA= KMONOF PROCESS MON, MOFF KEYBOARD COMMANDS MACY11 30A(1052) KMONOF.MAC 09-AUG-78 09:37 SYMBOL TABLE UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $8GNLE= 177777 $ERFLG= 000400 SF$AND= 000310 $FSBAD= 000401 $F$BLA= 000170 000070 SVR3 SVR4 000072 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 ABS. 000000 000266 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:KMONOF,DSKZ:KMONOF=SPMAC/ML,EQUATE,KMONOF RUN-TIME: 13 4 .4 SECONDS RUN-TIME RATIO: 34/18=1.8 14K (27 PAGES) CORE USED: $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $FSRTI= 000350 $F$RTN= 000300 $FSSEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 20-SEP-78 18:01 PAGE 20-1 000001 $ISK1 000001 $ISK2 000001 $ISK3 SLOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 000300 $NSKO 000110 $NSK1 $NSK2 = 000110 $NSK3 = 000110 SNSK4 = 000110 $SAVLE= 177777 STAGLE= 177777 $TAGNU= 050012 $TEMP 000300 050011 $TSKO 050010 STSK1 050007 $TSK2 050006 $TSK3 $$ARGC= 000004 SEQ 0623 $$BYTE= 000402 $SC"-SE= 000000 $$D5T = 000000 $$ELOC= 000402 $$ERFL= 000000 $SFLAG= 000001 $$FROM= 000001 $$LOC = 000160R $$LOCN= 000000 177777 $$REG $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 000000 $$SRC $$iGSV= 000000 $$TGS1= 000000 S$TGS2= 000000 000001 S$TO $$STAG= 050000 000266R = = .MAIN. MACY1.1 30A(1052) 20-SEP-78 EOUATE.MAC 13-SEP-78 16:13 3 586 589 644 18:01 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR KRUN 000000' .PRINT ;SPMAC: VERSION 1.1 KRUN ROUTINE SEQ 0624 KRUN PROCESS THE 'RUN ' COMMAND & (RUNL ' CCMMAND MACY11 30A(1052) KRUN.MAC 20-SEP-78 09:15 COMMON EQUATE MODULE 508 509 510 511 512 5·13 514 515 516 517 518 519 520 521 522 523 524 525 526 527 .TITLE KRUN .IDENT JVO.Oj KRUN FUNCTIONAL DESCRIPTION! THIS ROUTINE PROCESSES THE (RUN ' AND THE 'RUNL( KEYBOARD COMMANDS. IF AN ADDRESS IS INCLUDED, IT WILL BE VERIFIED. ALL OPTION MODULES HEADERS WILL BE INITIALIZED. THE SYSTEM ERROR COUNT, POWER FAIL COUNT, AND RELOCATION FLAG WILL BE INITIALIZED. THE KT WILL BE MAPPED TO THE NEW LOCATION (IF ANY SPECIFIED). THE WRITE BUFFER LIMITS WILL BE SET UP. . INPUTS: 1.DTABLE ADDRESS 2. DECODE BUFFER POINTER 534 535 536 OUTPUTS: NONE 530 531 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 PAGE 19 ;++ MODULE NAME: 532 533 5~9 18:01 PROCESS THE (RUN ' COMMAND & (RUNL' COMMAND IMPLICIT INPUTS: 1. DT.MLST 2. DT.STO 3. DT.SSIZ 4. DT .CFO 5. DT.ADDR 528 20-SEP-78 IMPLICIT OUTPUTS: 1. DT.STO 2. DT.KBRSP 3. DT.ESIZ 4. DT.SYP 5. DT.EXS 6. DT.PFL PATHOLOGICAL CONNECTIONS: 1. BE.MCNT - NUMBER OF MONITOR SYS ERRORS 2. PR.RL1 - RELOCATION FLAG 3. CM.ADDR 4. MD.COD 5. CM.RUN 6. CM NBAD 7. CM.NUM 8. CM.ARG 9. PA.CNT SUBORDINATE ROUTINES CALLED: 1. ARGCHK 2. CLRTIM 3. SAVREG 4. RESREG 5. WBFLIM 6. WSTBUS SEQ 0625 KRUN PROCESS THE 'RUN ' COMMAND & 'RUNL ' COMMAND MACY11 30A(1052) KRUN.MAC 20-SE?-78 09:15 COMMON EQUATE MODULE 564 565 566 567 568 569 570 7. CLKCHK 8. APTSEL 9. PRRLOC 10. MSGDEQ 11. SETVEC 12. UNIMAP 571 572 FUNCTIONAL SIDE EFFECTS: NONE 573 574 575 576 20-SEP-78 i8:01 PAGE 19-1 SEQ 06"26 CALLING SEQUENCE: CALL KRUN(L) IN <DTADR,BUFPTR> WHERE DTADR = DTABLE ADDRESS BUFPTR COMMAND DECODE BUFFER P 577 578 579 VERSION: 0.0 580 581 582 583 584 EDIT ;- DATE BY REASO!>J KRUN PROCESS THE 'RUN ' COMMAND & 'RUNL' COMMAND MACY11 30A(1052} 20-SEP-78 KRUN.MAC 20-SEP-78 09:15 'COMMON DEFINITIONS AND REFERENCES FOR KRUN 586 587 588 589 (1) .SBTTL 590 COMMON DEFINITIONS AND REFERENCES FOR KRUN $LSTTAG=1 $LST IN=1 000001 000001 ;**************** ; REFERENCED BY OTHER MODULES: .GLOBL .GLOBL ;MODULE ENTRY POINT ;MODULE ENTRY POINT KRUN KRUNL ; ' ;**************** ; GLOBAL REFERENCES: 604 .GLOBL .GLOBL .GL08L .GLOBL .GLOSL .GLOBl .GL08L .GLOBL .GLOBL" .GLOBL .GLOSL .GL08L .GLOBL .GLGSL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 PAGE 19-2 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 000000' 000000' 591 592 593 594 595 596 597 598 599 600 601 602 603 18:01 ;SEE IF A CLOCK IS HERE ;APT SELECT ROUTINE ;CODE ;'ILLEGAL ADDRESS' ;RELOCATE THE CODE ;MESSAGE DEQUE ;SET UP UNUSED VECTORS ;UNISUS MAPPING ;'ILLEGAL COMMAND IN RUN MODE' ; 'NOT AN OCTAL #1 ; 'NUMBER TOO LARGE ' ; 'ILLEGAL OR MISSING ARGUMENT' ;CLEAR TIME TABLE ;CHECK AN ARGUMENT ;SAVE REGISTERS ;RESTORE REGISTERS ;RELOCATION FLAG ;NUMBER OF PARITY ERRORS jMONITOR SYSTEM ERROR COUNT ;ESTABLISH WRITE BUFFER LIMITS ;WRITE WORST CASE UNIBUS PATTERN CLKCHK APTSEL MD.COD CM.ADR PRRLOC MSGDEQ SETVEC UNIMAP CM.RUN CM.NSAD CM.NUM CM.ARG CLRTIM ARGCHK SAVREG RESREG PR. RL1 PA.CNT BE.MCNT WBFLIM WSTBUS ;**************** ; ; 000000 1 000002' 000004' 0000121 000020' 000026 1 000034 1 0000421 000050' 000056' 000000 000000 052515 020105 042524 047101 050505 047524 031050 022451 052123 051107 020122 047440 040525 032040 030060 000 041040 040505 044124 020122 020114 020113 030060 LOCAL STORAGE: KR.FLG: .WORD KR.MOV: .WORD KR.SML: .ASCIZ ; 11 1 IF CMD IS RUNL - '0 1 IF CMD IS RUN 0 ; , 1 1 IF MOVING CODE - 10 1 IF NOT 0 /MUST BE GREATER THAN OR EQUAL TO 4K (20000)%/ SEQ 0627 KRUN PROCESS THE 'RUN' COMMAND & 'RUNL' COMMAND MACV11 30A(1052) ~0-SEP-78 KRUN.MAC 20-SEP-7'S 09: 15 COMMON DEFINITIONS AND REFERENCES FOR KRUN 634 635 636 637 638 639 640 641 642 000061 I 000066' 000074' 000102' 000110' 000116' 000124' 000127' 000134' 000142' 000150' 000156' 000164' 000172' 000175' 000202' 000210' 000216' 101 051523 020056 054105 042523 023516 022524 115 040510 020124 047516 046125 046105 022504 115 054117 020124 022516 000222' 042104 047440 052502 051105 020122 .l'\r\I'\-tf"')J! ULV'£"'t 000 051525 042526 047117 046440 051505 041505 000 050101 046440 042502 000 18:01 PAGE 19-3 042522 045456 020124 044503 047527 044506 KR.BIG: .ASCIZ /ADDRESS O.K. BUT EXERCISER WON'T FIT%/ 020124 045440 000045 042117 051440 042524 KR.KT: !MUST HAVE KT ON%/ KR.MOD: .ASCIZ /NO MODULES SElECTED%/ 041040 051525 047440 KR.MAP: /MAP BOX MUST BE ON%/ .ASCIZ .ASCIZ .EVEN ;**************** SEQ 0628 KRUN PROCESS THE 'RUN ' COMMAND & IRUNL 1 COMMAND KRUN.MAC 20-SEP-78 09:15 KRUN ROUTINE 644 645 646 (2) 647 648 649 650 651 652 (4) 653 (2) 654 (3) (3) (2) 655 656 (2 ) 657 558 659 660 661 662 (4) 663 664 .SBTTL MACY" 30A(1052) 18:01 PAGE 19-4 SEQ 0629 KRUN ROUTINE ROUTINE KRUN <DTADR,BUFPTR> 000222 1 000222 1 20-SEP-78 KRUN: ;+ ; INDICATE IRUN 1 COMMAND , 000222 1 000222 1 005067 000226 1 000226 1 000404 000230 1 000230 1 000230' 000230 1 000207 LET KR.FLG .- #0 177552 INL!NE <BR CLR KR.FLG BR RUN SUB RTS PC iviOV ff I t 1'\1'\; • r 1..1,;1 RUNSUB> ENDRTN 50000S: 500015: ROUT!NE KRUNL <DTADR,BUFPTR> 000232' 000232' KRUNL: ;+ ; INDICATE IRUNL COMMAND ;- 000232 1 000232 1 012767 LET KR.FLG : = #1 000001 177540 IJ" I ' r"'\ r- t ,... KRUN PROCESS THE 'RUN' COMMAND & 'RUNL' CO~MAND 20-SEP-78 09:15 KRUN ROUTINE MACV11 30A(1052) 20-SEP-78 18:01 PAGE 19-5 SEQ 0630 KRU~.MAC 666 (2) 667 668 669 INLINE <RUNSUB:> 000240' 000240' ;+ ;INIT FLAG,SAVE REGISTERS,DTABLE AND BUF PTR ;- 670. 671 672 673 (4) 674 (3) 675 (4) 676 (4) 677 678 679 680 681 (6) (8) (6) (9) (6) 682 (2) 683 (4) 684 685 686 687 688 689 690 (6) (9) 691 (4) 692 (2 ) 693 694 (4 ) 695 696 697 698 699 700 701 702 703 704 RUNSUB: 000240' 000240' 000244' 000244' 000250' 000250' 000254' 000254' 000260' 000260' 000266 1 000270' 000276' 000300' 000300' 000300' 000304' 000304' LET KR.MOV := #0 005067 .77536 004767 OOOOOOG LET RO .- DTADR(RS) 016500 000000 JSR PC,SAVREG MOV DTADR(R5),RO MJV BUFPTR(R5),R1 ;+ ; IF IN AUTO OR APTPRES MODE, DONIT CHECK ANY ARGUMENTS - JUST GO TO WORK 016501 000002 032760 001004 032760 001402 000010 000014 000200 000014 IF #AUTO SETIN DT.CFO(RO) OR #APTPRES SETIN DT.CFO(RO) THEN 000167 #AUTO,DT.CFO(RO) 50002$ #APTPRES,DT.CFO( 50003$ JMP 339$ BIT BEQ #RUNMODE,DT.STO( 50004$ MOV #CM.RUN,DT.KBRSP JMP 1$ 339$> 000504 ENDIF 50003$: IF IN RUNMODE - IF SO STUFF ERROR AND SCRAM IF #RUNMODE SETIN DT.STO(RO) THEN 000010 032760 001405 100000 012760 OOOOOOG 000022 000167 BIT BNE BIT BEQ 50002$: INLINE <JMP , 000326' 000326 1 KR.MOV LET R1 .- BUFPTR(R5) ;+ ; SEE 000304' 000304' 000312' 000314' 000314' 000322' 000322' CLR CALL SAVREG LET DT.KBRSP(RO) .- #CM.RUN INLINE <JMP 1$> 001166 ENDIF 50004$: ;+ ; WE ARE NOT IN RUNMODE .•.. ALL IS OK, SAVE DT.ADJR ..••.... GET AN ARGUMENT IF ANy .•.•. ;;+ ; SAVE DT.ADDR ;- PROCESS THE 'RUNI COMMAND & 'RUNL I COM:t.t.ND KRUi.J KRUN ROUTINE 20-SEP-78 09:15 KRUN.MAC 705 706 (4) 707 708 (4) (3) (4) (3) (3) (4) 709 710 711 712 713 714 (6) 715 716 (2 ) 717 718 (4) 719 720 721 722 723 724 725 (4) 726 727 (4) (6) (9) 728 (6) 729 (4) (3 ) 730 731 732 733 734 735 736 (4 ) 737 (4) 738 (4) 739 (4) 000326 1 000326 1 016003 000332 1 000332 1 162705 000336 1 010546 000340 1 010145 000342 1 004767 000346 1 012605 000350 1 012501 20-SEP-78 MACV11 30A(1052) 18: 01 PAGE 19-6 SEQ 0631 LET R3 := DT.ADDR(RO) 000042 MOV DT.ADDR(RO),R3 SUB I'ilOV. MOV JSR MOV MOV #1*2,R5 R5,-(SP) R1,-(R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 BCC 50005$ JMP 339$ CALL ARGCHK IN <R1> OUT <R1> ~.1\"""l"\1"\ vvvvv..:: OOOOOOG ;+ ; IF NO ARGS, JUMP AHEAD ;000352 1 000352 1 103002 000354 1 0003541 000167 IF.ERROR THEN INLINE <JMP 339$> 000430 ENDIF 000360 1 000360 1 500055: ;+ ; NOT A CARRIAGE RETURN .. SET FLAG .. GET BY ANY LEADING OIS AND VERIFY NUMBER .... , 000360 1 000360 1 012767 000866 1 000366 1 000366 1 121127 000372 1 001002 0003741 0003741 005201 000376 1 000376 1 000773 000400 1 LET KR.MOV := #1 000001 177414 MOV #i ,KR.MOV CMPB BNE (R1),#'O 50007$ INC R1 BR 50006$ WHILES (R 1 ) EO #'0 DO 50006S: 000060 LET R1 .- R1 + #1 ENDDO 50007$: ;+ ; INIT C-BIT AND REGISTERS 'f - 000400 1 000400 1 000241 000402 1 000402 1 005004 000404 1 000404 1 005003 000406' 000406 1 005002 LET CARRY '- LET R4 #0 0 CLC '- . - #0 LET R2 .- #0 CLR R4 CLR R3 CLR R2 LET R3 KRUN PROCESS THE 'RUN' COMMAND & IRUNL I CCMMAND KRUN.MAC 20-SEP-78 09:15 KRUN ROUTINE 740 741 742 743 744 745 746 747 748 749 750 (4) (6) (9) (6) (9) 751 752 753 754 755 756 (4) 757 758 759 760 761 (6) 762 763 764 765 766 767 (7 ) 768 769 770 771 (7 ) 772 (7 ) 773 (7 ) 774 (7i 775 (7 ) 776 777 778 779 780 (0) 781 MACY11 30A(1052) 20-SEP-78 18:01 PAGE 19-7 SEQ 0632 ;+ NUMBER VERIFICATION CONSISTS OF CHECKING UNTIL SOMETHING OTHER ; THAN A 10 1 THRU 17 1 IS DETECTED IN THE DECODE SUFFER ..... THE OCTAL ; ASCII CHARACTERS WILL BE DE-ASC II ED, SHIFTED INTO R3 AND ANY OVERFLOW SHIFTED INTO R4 ..•. A COUNT OF THE NUMBER OF y ; MAINTAINED .•.••• CHA~ACTERS IS ;000410 1 000410 1 000410' 121127 000414' 002420 000416' 121127 000422 1 003015 WHILEB (R1 ) GE #10 ANDB ( R1) LE #17 DO 50010$: 000060 000067 CMPB BlT CMPB BGT (R1},#IO 50011$ (R1),#17 50011$ MOVB (R1),RO SUB #IO,RO ASL R3 ROL R4 ASL R3 ROL R4 ASL R3 ROL R4 ADD RO,R3 ;+ ; GET A BYTE ;LET RO :B= ( R1) 000424' 000424 1 111100 ;+ ; DE-ASCII IT ;- 000426 1 000426 1 162700 LET RO ·- RO - #10 000060 ;+ ; SHIFT OLD STUFF(LO ORDER) TO RIGHT ', - LET R3 000432' 0.004321 006303 · - R3 SHIFT 1 ;+ ;ROTATE HIGH ORDER 000434 1 000434 1 006104 000436' 000436 1 006303 000440' 000440' 006104 000442 1 000442' 006303 000444' 000444' 006104 of ·- R4 ROTATE LET R3 ·- R3 SIH FT 1 LET R4 LET R4 0- R4 ROTATE 1 LET R3 '- R3 SHIFT 1 LET R4 .- R4 ROTATE 1 + ADD THE NEW CHAR 000446 1 000446' 060003 LET R3 0- R3 + RO KRUN PROCESS THE 'RUN' COMMAND & 'RUNL 1 COMMAND KRUN.MAC 20-SEP-78 09:15 KRUN ROUTINE 782 783 784 785 786 {e:.\ \V} 787 788 789 790 791 792 (6) 793 794 (4) (3) 795 796 797 798 799 800 801 (4) 802 803 804 805 806 807 808 (6) (9) (6) (9) 809 810 (4) 811 (2 ) 812 (4) 813 814 815 816 817 818 819 (6) (9) 820 (4) 821 (2) MACYll 30A(1052) 20-SEP-78 18:01 PAGE 19-8 SEQ 0633 ;+ ; INCREMENT CHAR COUNTER .f LET R2 000450' 000450' 005202 .- R2 + #1 INC R2 INC R1 BR 50010$ MOV DTADR(R5),RO C~,~PB SEQ CMPS SEQ (Rl),#CR 50012$ (Rl ) ,#SPACE 50012$ MOV #CM.NBAD,DT.KBRS JMP 1$ ;+ ; GET NEXT BYTE ;- LET R1 000452' 000452' 005201 0- Rl + #1 ENDDO 000454' 000454' 000755 000456' 50011$: ;+ ; RESTORE DTABLE TO RO ;- 000456' 000456 1 016500 LET RO := DTADR(R5) 000000 ;+ ; Rl IS NOW POIN7ING TO FIRST NON-OCTAL-ASCII-CHAR .•.• IT MUST BE ; CR OR SPACE ... IF NOT - STUFF ERROR MSG AND SCRAM •..• ;- 000462' 000462' 000466' 000470' 000474' IFB (R1) NE HCR ANDB (R1) NE #SPACE THEN 121127 001410 121127 001405 000476' 000476' 012760 000504' 000504' 000167 000510' 000510' 000015 000040 LET DT.KBRSP(RO) OOOOOOG 000022 INLINE <JMP . - #CM.NBAD 1 $> 001004 ENDIF 50012$: ;+ ; IF THE ADDRESS GIVEN WAS MORE THAN 8 CHARS ... (NOT COUNTING LEADING C'S) •. STUFF ; ERROR MSG AND RETURN ... ;000510' 000510' 000514' 000516' 000516' 000524' 000524' IF R2 GT #10 THEN 020227 003405 000010 012760 OOOOOOG 000022 LET DT.KBRSP(RO) INLINE <JMP 000167 000764 .- #CM.ADR 1$> CMP BlE R2,#10 50013$ MOV #CM.ADR,DT.KBRSP JMF 1$ PROCESS THE IRUN I COMMAND & • RUNL· COMMAND KRUN KRUN ROUTINE 20-SEP-78 09:15 KRUN.MAC 822 (4) 823 824 825 826 827 828 829 830 831 832 833 834 (4) 835 836 (4) (6) (9) 837 838 (7 ) 839 (7 ) 940 (6) 841 842 (4) (3) 843 844 845 846 847 848 849 850 (6) (9) 851 (4) 852 (:2 ) 853 854 (4) 855 856 857 858 859 860 (6) (9) 20-SEP-78 MACY11 30A(1052) 18:01 PAGE 19-9 SEQ 0634 ENDIF 000530' 000530' 50013$: ;+ ; CONVERT THE NUMBER TO PAR FORMAT ... TO DO, SHIFT THE HIGH AND LOW ; ADDRESS BITS TO THE RIGHT 6 TIMES ..... . ;+ ; INIT COUNTER ;LET R2 := #0 000530' 000530 1 005002 000532 1 000532 1 000532' 020227 000536 1 001404 CLR R2 CMP SEQ R2,#6 50015$ ASR R4 ROR R3 ,. J.I'IV R2 BR 50014$ TST BEQ R4 50016$ MOV HCM.ADR,DT.KBRSP JMP 1$ CMP BHI R3,#177 50017$ WHILE R2 NE #6 DO 50014$: 000006 000540' 000540· 006204 0005421 000542 1 006003 000544 1 000544 1 005202 LET R4 .- R4 SHIFT -1 LET R3 .- R3 ROTATE -1 LET R2 '- R2 + #1 ~I"" ENDDO 000546 1 000546 1 000771 000550' 50015$: ;+ ; R3 IS NOW PAR FORMAT. IF R4, THE HIGH ORDER BITS, IS NOT ZERO, ; THE ADDRESS WAS TOO BIG .... STUFF ERROR AND SCRAM ... ;- 000550 1 000550· 005704 000552 1 001405 000554 1 000554 1 012760 000562 1 000562 1 000167 IF R4 NE #0 THEN LET DT.KBRSP(RO) INLINE <JMP 1$> 000726 ENDIF 000566' 000566 1 000566 1 000566 1 020327 000572 1 101005 . - #CM.ADR OOOOOOG 000022 50016$: ;+ ; ALSO BUST COMMAND IF THE LOW ORDER WORD IS LESS THAN 4K ;IF R3 LOS #177 THEN 000177 KRUN PROCESS THE 'RUN' COMMAND & 'RUNl' COMMAND KRUN.MAC 20-SEP-78 09:15 KRUN ROUTINE 861 862 (4) 863 (2) 864 865 (4) 866 867 868 869 870 871 872 873 874 875 876 (6) (9) 877 (4) 878 (2) 879 (4) 880 881 882 (4) 883 (4) 884 (4) (6 ) (9) 885 (4 ) 886 (7 ) 887 (6) 888 (4) (3) 889 890 891 892 893 894 895 896 (6) 897 000574' 000574' 012760 000602' 000602' 000167 MACY11 30A(1052) 20-SEP-78 18:01 PAGE 19-10 SEQ 0635 .- #KR.SML LET DT.KBRSP(RO) 000004' 000022 INLINE <JMP MOV #KR. SML, DT • K,BRSP JMP 1$ 1$> 000706 ENDIF 000606' 000606 1 50017$: j+ 000606' 000606' 000612' 000614' 000614' 000622' 000622' 000626' 000626' 000626' 000626' 000632' 000632' 000634' 000634' 000634' 000640' 000642' 000642' 000644' 000644' 000646' 000646' 000650' 000650' 000652' 020360 101405 000046 012760 OOOOOOG 000022 000167 000666 NEXT, SEE IF THE EXERCISER CAN POSSIBLY FIT INTO THE NEW ADDRESS SPACE AND SEE IF ADDRESS EXISTS AT ALL ..... GET THE EXERCISER SIZE, CONVERT TO PAR FORMAT, IF THE NEW ADDRESS DESIRED IS GREATER THAN THE SYSTEM SIZE .... STUFF ERROR MSG AND RETURN ... IF NOT, SUBTRACT THE NEW ADDRESS FROM THE SYSTEM SIZE .... SEE IF THE EXERCISER WILL FIT .•.• IF NOT STUFF ERROR MSG AND RETURN ..... ;IF R3 HI DT.SSIZ(RO) THEN R3,CT.SSIZ(RO) CMP 50020$ Bles LET DT. KBRSP (RO) .- #CM.ADR #CM.ADR,DT.KBRSP MOV INLINE <JMP 1$> 1$ JMP ENDIF r-/"\"I"t"~. ;;J\,iV,",V-l)' 016002 LET R2 '- DT.ESIZ(RO) LET R4 ' - -HO 000044 005004 MOV DT.ESIZ(RO),R2 CLR R4 eMP R4,#6 50022$ WHILE R4 NE #6 DO 50021$: 020427 001404 000006 LET CARRY .- 0 LET R2 R2 ROTATE -1 000241 006002 '- BEQ CLC ROR R2 INC R4 6R 50021$ LET R4 ' - R4 + #1 005204 ENDDO 000771 50022$: ;+ ; R2 NOW HAS EXERCISER SIZE IN PAR FORMAT .... SEE IF ROOM EXISTS FOR IT ... ; FIRST SUBTRACT 4K FROM IT (THE UN MOVABLE PORTION) AND SUBTRACT NEW ; ADDR FROM SYS SIZE •.•. ;- 000652' 000652' 162702 000656' LET R2 000177 '- R2 - #177 SUB LET R4 ' - OT.SSIZ(RO) - R3 #177,RZ KRUN PROCESS THE 'RUN' COMMAND & 'RUNL' COMMAND KRUN.MAC 20-SEP-7S 09:15 KRUN ROUTINE (4) (6) 898 899 900 000656' 016004 000662' 160304 (6) (9) 906 (4) 907 (2 ) 908 (4) 909 (4) (3) (4 ) (3) (3) 18:01 PAGE 19-11 SEQ 0636 MOV SUB DT.SSIZ(RO),R4 R3,R4 ;+ ; IF R4 (THE DIFFERENCE BETWEEN THE TOP OF MEMORY AND RELOCATION ; ADDRESS) IS LESS THAN THE EXERCISER SIZE, WE OBVIOUSLY DON'T HAVE ROOM. ; STUFF ERROR MSG AND RETURN. ;- 000664' 000664' 000666' 000670' 000670' 000676' 000676' 000702 1 000702' IF R4 LE R2 THEN 020402 003005 LET DT.KBRSP(RO) 012760 000061 1 000022 000167 000612 INLINE <JMP '- #KR.BIG CMP BGT R4,R2 5C023$ MOV #KR.BIG,DT.K8RSP JMP 1$ 1$> ENDIF 50023$: ;+ ; AT THIS POINT, THE NUMBER HAS BEEN VERIFIED ..•. FINALLY CHECK FOR ; JUNK ARGUMENTS 910 911 912 913 914 915 20-SEP-78 000046 901 902 903 904 905 MACY11 30A(1052) 000702' 000702' 000706' 000710' 000712 1 000716' 000720' (4) 916 917 000722 1 (6) 000722' 918 000724' (4) 000724' 919 000732' (2) 000732' 920 921 000736' (4) 000736' 922 923 924 925 926 927 000736 1 (6) 000736' (9) 000744' 928 000746' (4) -000746' 929 000754' (2} 000754' 930 000760' (4) 000760 1 931 CALL ARGCHK IN <R1> OUT <R1> 162705 010546 010145 004767 012605 012501 SUB MJV MOV JSR MOV 000002 OOOOOOG IF.NO.ERROR THEN 103405 LET DT.KBRSP(RO) 012760 OOOOOOG 000022 000167 000556 INLINE <JMP .- #CM.ARG 1$> ENDIF MOV #1*2,R5 R5,-{SP) R1,-(R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 BCS 50024$ MOV #CM.ARG,DT.KBRSP JMP 1$ BIT BNE HKTSTAT,DT.STO(R 50025$ MOV HKR.KT,DT.KBRSP( JMP 1$ 50024$: ;+ ; JUST CHECK TO MAKE SURE KT IS ENABLED ...• ;IF #KTSTAT NOTSETIN DT,STO{RO) THEN 000010 032760 001005 000020 012760 000127' 000022 000167 000534 LET DT.KBRSP(RO) INLINE <JMP ENDIF '- #KR.KT 1$> 50025$: KRUN PROCESS THE 'RUN' COMMAND & 'RUNL' COMMAND KRUN.MAC 20-SEP-78 09:15 KRUN ROUTINE MACY11 30A(1052) 20-SEP-78 18:01 PAGE 19-12 SEQ 0637 ;+ ; IF R3 IS BIGGER THAN OR EQUAL TO 6000 AND MAPPING IS NOT ON, BUST ; COMMAND •... THAT IS t YOU CANNOT RUN ABOVE 96K (ASSUMES AN EXERCrSER SIZE ; OF 28K) BECAUSE YOU MAY OVERLAP SOME OF THE EXERCISER ABOVE ; 124K AND WITH MAP BOX OFF, YOU WILL DIE •....• 932 933 934 935 936 937 938 939 (6) (9) (6) (9) 940 (4) 941 (2) 942 (4) 943 944 945 946 947 948 949 950 951 95~ (6) (9) 953 (3) (4) (3) (3) 954 (4) 955 956 (4) 957 958 (4) 959 960 961 962 963 (4) (6) (9) 964 965 966 967 968 000760' 000760' 000764 1 000766' 000774' 000776' 000776' 001004' 001004' 001010' 001010' IF R3 HIS #6000 AND #MAPSTAT NOTSETIN DT.STO(RO) THEN 020327 103411 032760 001005 006000 012760 000175' 000022 000167 000504 000200 000010 LET DT.KBRSP(RO) MOV #KR.MAP,DT.KBRSP JMP 1$ BIT #APTPRES,DT.CFO( 50027$ #KR.MAP 1$> 50026$: 339$: ;+ ; IF UNDER APT, USE APT'S TABLE TO SELECT THE MODULES ; AND SET UP DEVICE COUNT IF HAPTPRES SETIN DT.CFO(RO) THEN 032760 001405 010546 010045 004767 012605 001032' 001032' 016001 000200 000014 SEQ CALL APTSEL IN <RO> MOV JSR MOV R5,-(SP) RO,-(R5) PC,APTSEL (SP)+,R5 MOV DT.MLST(RO),R1 M:JV OOOOOOG ENDIF 50027$: LET R1 '- DT.MLST(RO) ;GET ADDRESS OF MODULE LIST 000032 001036' 001036 1 005004 LET R4 := #0 001040 1 001040' 001040 1 021127 001044' 001410 WHILE (R1) NE #ENDLST DO CLR ;+ ; BEFORE HONORING COMMAND, MAKE SURE AT LEAST ONE MODULE IS SELECTED ;- ; GET A MODULE ADDRESS ;- LET R2'- (R1)+ R4 50030$: CM? BEQ 000000 ;+ 001046' R3,#6000 50026$ #MAPSTAT,DT.STO{ 50026$ ENDIF 001010' 001010' 001010' 001016' 001020' 001020 I 001022' 001024' 001030' 001032' 001032' INLINE <JMP != CMP BlO BIT BNE (R1),#ENDLST 50031$ KRUN PROCESS THE 'RUN' COMMAND & 'RUNL' COMMAND KRUN.MAC 20-SEP-78·~9:15 KRUN ROUTINE (4) 969 (6) (9) 970 (4) 971 (4 ) 972 (4) (3) 973 974 975 976 977 978 979 980 (6) (9 ) 981 (4) 982 (2) 983 (4) 984 985 986 987 988 989 390 991 992 993 994 995 996 997 998 999 1000 (3) 1001 (3 ) (4) (3) (3 ) 1002 (3 ) (6) 1003 1004 1005 001046' 001050' 001050' 001056' 001060 1 001060' 001064' 001064' 001064' 001064' 001066' 012102 MACV11 30A(1052) 20-SEP-78 18:01 PAGE 19-13 SEQ 0638 MOV (R1 )+,R2 BIT 8EQ #BIT14,STAT(R2) 50032$ . MOV #1 ,R4 8R 50030$ IF #81T14 SETIN STAT(R2) THEN 032762 001402 040000 012704 000001 000026 LET R4 := #1 ENDIF 50032$: ENDDO 000765 50031$: ;+ ; IF R4 IS ZERO .•. NO MODULES SELECTED •...• STUFF ERROR AND GOODBYE ... ;001066' 001066' 001070' 001072' 001072' 001100' 001100' 001104' 001104; IF R4 EQ #0 THEN 005704 001005 012760 R4 50033$ MOV #KR.MOD,DT.KBRSP JMP 1$ I'!. 0 V MOV JSR MOV R5,-(SP) RO,-(R5) PC,MSGDEQ (SP)+,R5 CMP ENE MD.COD,#MSGNUL 50034$ LET DT.KBRSP(RO) .- #KR.MOD 000150' 000022 INLINE <JMP 000167 TST 8NE 1$> 000410 ENDIF 50033$: ;+ ; !!!!! GO TO WORK ! I ! ! ! ! GET THE MODULE HEADERS CLEANED UP ;+ BUT FIRST PRINT THE CR - IT TAKES SO LONG TO WRITE WSTBUS ; PATTERN THAT THE CR WOULD NOT BE ECHOED FOR A LONG TIME ; AND IT MAY CAUSE WORRY - HENCE THE CALL TO MSGDEQ WILL PRINT ; IT RIGHT AWAy ••.. ;- 001104 1 001104 1 001104' 001104' 001106 1 001110 1 001114 1 001116 1 001116 1 001124 1 REPEAT 50034$: CALL MSGDEQ IN <RO> 010546 010045 004767 012605 026727 001367 OOOOOOG UNTIL MD.eOD EQ #MSGNUL OOOOOOG 177775 ;+ MACV11 30A(1052) PROCESS THE 'RUN' COMMAND & 'RUNL' COMMAND KRUN KRUN ROUTINE 20-SEP-78 09:15 KRUN.MAC 1006 1007 1008 1009 (3) (4) (3) (3) 1010 1011 (6) (9) 1012 1013 (3) (4) (3) (3) 1014 1015 (4) 1016 1017 1018 1019 1020 1021 (4 ) 1022 1023 (4) (6 ) (9) 1024 102S 1026 1027 1028 1029 1030 (4) 1031 1032 1033 (4) 1034 (4) 1035 (4 ) 1036 (4) 1037 (4) 1038 ( 4) 1039 20-SEP-78 18:01 PAGE 19-14 SE.Q 0639 ;IF THE CLOCK IS PRESENT, CLEAR CLOCK TASLE ...• SEE IF IT IS ••• ;- 001126' 001126' 001130' 001132' 001136 1 CALL CLKCHK IN <RO> 010546 010045 004767 012605 001140' 001140' 032760 001146' 001405 001150 1 001150 1 010546 001152' 010045 0.011541 004767 001160' 012605 MOV RS,-(SP) RO,-(RS) PC,CLKCHK (SP)+,R5 BIT SEQ #CLKPRES,DT.CFO( 50035$ MOV MOV JSR MOV RS,-(SP) RO,-(R5) PC,CLRTIM (SP)+,R5 MOV Dr .MLST(RO) ,R1 CMP SEQ (R1 ) ,#ENDLST S0037$ MOV (R1)+,R2 CLR PASCNT(R2) CLR ICOUNT(R2) CLR SOFCNT(R2) CLR HRDCNT(R2) CLR SOFPAS(R2) CLR HRDPAS(R2) MOV MOV JSR OOOOOOG IF #CLKPRES SETIN DT.CFO(RO) THEN 000001 000014 CALL CLRTIM IN <RO> OOOOOOG ENDIF 001162' 00.162' 50035$: ;+ ; GET MODULE LIST ;001162 i 001162 1 016001 001166' 001166' 001166 1 021127 001172 1 001450 I r-T 1..t;;.1 not 1"\1 "_ I"\T • "'" I - ft~lCT{On' _'Wi .... ...., • \ .,," I 000032 WHILE ( R1) NE #ENDLST DO ;+ ; CLEAR OUT HEADER STUFF AND COpy CONFIG WORD TO RES1 ;LET R2 001174' 001174' 012102 001176 1 001176' 005062 001202 1 001202' 005062 001206' 001206' 005062 001212' 001212' 005062 001216 1 001216' 005062 001222 1 001222' 005062 001226' 50036$: 000000 . - (R1 ) + LET PASCNT(R2) 000034 ·- #0 .- #0 LET SOFCNT(R2) · - #0 LET ICOUNT(R2) 000040 000042 LET HRDCNT(R2) ·- #0 LET SOFPAS(R2) .- #0 000044 000046 · - #0 LET SYSCNT(R2) .- #0 IN HEADER LET HRDPAS(R2) OOOOSO PROCESS T!-lE IRUN I COMMAND & KRUN 20-SEP-78 09:15 KRUN.MAC (4) 1040 (4) 1041 (4) 001226 1 005062 001232 1 001232 1 105062 001236 1 001236 1 016062 1 RUNL 1 COMMAND KRUN ROUTINE (6) (8) (6) (8 ) {6} (9) (6) 1060 1061 1062 1063 1064 1065 (4) 1066 (4) 1067 (4 ) 1068 1069 (4) (3) 1070 1071 1072 1073 1074 20-SEP-78 18:01 PAGE 19-15 SEQ 0640 000052 LET XFLAG(R2) : B= #0 000005 CLR SYSCNT(R2) CL'~B XFLAG(R2) MOV DT.CFO(RO),RES1( SIC #BIT13!ACTBIT,ST LET RES1(R2) := DT.CFO(RO) 000014 000056 1042 1043 1044 1045 1046 1047 (6) 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 MACY11 30A(10S2) ;+ ; CLEAR ACTIVE AND DROPPED BIT IN STAT WORD OF MODULE ;- 001244 1 001244 1 042762 LET STAT(R2) := STAT(R2) CLR.BY #BIT13!ACTBIT 024000 000026 ;+ ; IF AN IOMODR(P)(X) CLEAR CDATA ERROR AND WORD COUNTS 'f - 001252 1 001252 1 001260 1 001262; 001270 1 001272 1 001300 1 001302 1 IF #IOMODR SETIN STAT(R2) OR #lOMODP SETIN STAT(R2) OR #IOMODX SETIN STAT(R2) TH 032762 001010 112000 000026 032",62 102000 000026 001004 032762 001404 110000 000026 BIT #IO~ODR,STAT(R2) BNE 8=Q 50040$ #IOMODP,STAT(R2) 50040$ #IOMODX,STAT(R2) 50041$ CLR CDERCT(R2) CLR CmJDCT (R2) BR 50036$ BIT Bi~E BIT 50040$: ;+ ; THIS MODULE NEEDS X - TRA WORK - CLEAR ERROR COUNTS ,' 001302 1 001302 1 005062 00.1306 1 001306 1 005062 001312' 001312 1 001312' 001312 1 000725 001314 1 LET CDERCT(R2) . - #0 000146 LET CDWDCT(R2) : = #0 000144 ENDIF 50041$: ENDDO 50037$: ;+ ; CLEAR SOME OTHER GOODIES 1075 ;- 1076 1077 1078 1079 ;+ ; CLEAR OUT SYS PASS COUNT KRUN PROCESS THE 'RUN' COMMAND & 'RUNL' COMMAND KRUN.MAC 20-SEP-78 09:15 KRUN ROUTINE 1080 1081 (4) 1082 1083 001314' 001314' 005070 (4) 1108 1109 1110 1111 1112 1113 1114 1115 (3 ) 1116 1117 1118 1119 1120 1121 (3 ) (4) (3) (3) 1122 1123 1124 001320' 001320' 005060 20-SEP-78 18:01 PAGE 19-16 SEQ 0641 LET @DT.SYP(RO) .- #0 000072 CLR @DT.SYP(RO) CLR DT . P F L ( RO ) . CLR BE.MCNT CLR PA.CNT CLR DT.EXS(RO) fv'lQV #1,PR.RL1 dSR PC,SETVEC MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,WST8US (SP)+,R5 ;+ ; CLEAR # OF POWER FAILS ;LET DT.PFL(RO) '- #0 1084 1085 1086 1087 (4) 1088 1089 1090 1091 1092 (4) 1093 1094 1095 1096 1097 (4) 1098 1099 1100 1101 1102 (4) 1103 1104 11 05 1106 1107 MACV11 30A(1052) 000062 ;+ ; CLEAR # OF MONITOR SYS ERRORS 001324' 001324' 005067 LET BE.MCNT := #0 OOOOOOG ;+ ; CLR # OF PARITY ERRORS 001330' 001330' 005067 001334; 001334' 005060 LET PA.Ct...T .- #0 OOOOOOG ;+ ; CLEAR EXERCISER TOTAL SYS ERRORS ;LET DT.EXS(RO) := #0 000060 ;+ ; INIT RELOCATION FLAG ;- 001340' 001340 1 012767 LET PR.RL1 000001 .- #1 OOOOOOG ;+ ; STUFF UNUSED VECTORS ;- 001346' 001346' 004767 CALL SETVEC OOOOOOG ;+ ; WRITE WORST CASE UNIBUS PATTERN ,' 001352 1 001352' 001354' 001356' 001362' CALL WSTBUS IN <RO> 010546 010045 004767 012605 OOOOOOG ;+ KRUN PROCESS THE 'RUN' COMMAND & 'RUNL' COMMAND KRUN ROUTINE 20-SEP-78 09:15 KRUN.MAC 18: 0·1 PAGE 19-17 SEQ 0642 , 112.6 fa' \ ... I 20-SEP-78 ; MOVE THE CODE IF NECESSARY 1125 1127 1128 (6) MACV11 30A(1052) 001364 1 001364' 026727 001372' 001010 1129 1130 001374' (3) 001374' 010546 (5) 001376' 010345 (4) 001400' 010045 (3) 001402 1 004767 (3) .001406' 012605 1131 1132 1133 '134 001410' (4) 001410' 010360 1135 001414' (4 ) 001414 1 1136 1137 1138 1139 1140 1141 001414' 001414' 026727 (6) 001422' 001404 (8) (6) 001424' 032760 001432' 001004 (9) (6) 001434' 1142 1143 001434' 001434' 042760 (6) 1144 1145 001442' (4) 001442' 000403 001444' (3) 1146 1147 1148 1149 1150 001444' 1151 001444' 052760 (6) 1152 1153 001452' (4) 001452' 1154 1155 1156 1157 1158 1159 1160 001452' 001452' 010546 (3) IF KR.MOV EO #1 THEN 176412 BNE KR.MOV,#1 50042$ MOV MOV MOV JSR MOV R5,-(SP) R3,-(R5) RO,-(R5) PC,PRRLOC (SP)+,R5 MOV R3,DT.ADDR(RO) n,·p Bi'-JE KR.FLG.#1 50043$ #KTSTAT,DT.STO(R 50044$ BIC #RElMODE,DT.STO( BR 50045$ SIS #RELMODE,DT.STO( MOV R5,-(SP) CMP 000001 CALL PRRLOC IN <RO,R3> OOOOOOG lET DT.ADDR(RO) . - R3 000042 ENDIF 50042$: ;+ ; IF THIS IS lOCK MODE OR KT OFF, CLEAR THE RELMODE BIT ;- IF KR.FlG EQ #1 OR #KTSTAT NOTSETIN DT.STO(RO) THEN 170300 OOOOOi BE:Q 000020 BIT 000010 50043$: LET OT.STO{RO) 020000 000010 . - DT.STO(RO) CLR. BY #RELMODE ELSE 50044$: ;+ ; NOT lOCK MODE , lET DT.STO(RO) 020000 . - DT.STO(RO) SET.BY #RELMODE 000010 ENDIF 50045$: + SETUP THE WRITE SUFFER LIMITS CALL WBFLIM IN <RO> PROCESS THE 'RUN' COMMAND & ' RUNL' COMMA~D KRUN KRUN ROUTINE 20-SEP-78 09:15 KRUN.MAC (4) (3) . (3) 1161 1162 1163 1164 1165 1166 (6) (9) 1167 1168 (3) (4) (3) (3) 1169 1170 (4) '171 1172 1173 1174 1175 1176 001454' 010045 001456' 004767 001462' 012605 MACY11 30A(10S2) 20-SEP-78 18:01 PAGE 19-18 SEQ 0643 OOOOOOG MOV RO,-(RS) JSR PC, WBFLIM (SP)+,R5 MOV ;+ ; IF 22 BIT ADDRESSING ... MAP THE UNIBUS MAP REGS. ;- 001464' 001464' 032760 001472' 001405 001474' 001474' 001476' 001500' 001504' IF #ADDR22 SETIN DT.CFO(RO) THEN 001000 BIT 000014 BEQ #ADDR22,DT.CFO(R 50046$ MOV MOV JSR MOV RS;-(SP) RO,-(R5) PC,UNIMAP (SP)+,R5 BIS #RUNMODE,DT.SrO( CALL UNIMAP IN <RO> 010546 010045 004767 012605 OOOOOOG ENDIF 001506' 001506' 50046$: j+ ; SET RUNMODE BIT •.•. AND DONE ;- LET DT.STO(RO) 1177 001506: (6) 1178 1179 1180 (2) 1181 (3) 1182 1183 (3) (3) 001506' 052760 001514' 001514' 001514' 001514' 004767 (2) 001520' 001520' 001520' 001520' 000207 1.84 1185 000001 100000 '- DT.STO(RO) SET.BY #RUNMODE 000010 INLINE <1$:> 1$: CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 50001$: .END KRUN PROCESS THE 'RUN' COMMAND 20-SEP-78 09: 15 KRUN.MAC 000102 ACSR ACTSIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 APTSEL= ****** G ARGCHK= ****** G 000106 ASS ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS BE.MCN= ****** G 000001 BITO 000001 BITOO 000002 BIT01 000004 BIT02 B1T03 000010 000020 8IT04 000040 BITOS BIT06 000100 BIT07 000200 000400 BIT08 001000 BIT09 000002 BITl BI11 0 = 002000 BIT11 004000 010000 BIT12 BIT13 020000 040000 BIT14 100000 BIT15 000004 8IT2 BIT3 000010 000020 BIT4 BITS 000040 BIT6 000100 BIT7 000200 000400 BIT8 BIT9 001000 BKDEF = 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BUFPTR= 000002 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTltv'! = 100000 CLKCHK= ****** G CLKPRE= 00C001 & RUNL I I COMMAND SYMBOL TABLE CLRTIM= ****** G CM.ADR= ****** G CM.ARG= ****** G CM.NBA= ****** G CM.NUM= ****** G CM.RUN= ****** G CONFIG= 000056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTR4C 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO=. 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 "".,.. r-nn_ U 1".Cl'""i:i\- 1'\:"\I'\f'\"'If'\ VUV'\JLV DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REl= 000040 D1.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 MACV11 30A(1052) 20-SEP-78 18:01 : PAGE 20 SEQ 0644 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 IE = 000100 INDPAR= 000040 I Nl-!:JRP'" 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INTT INTR 000120 IOMOD 100000 IOMODP= 102000 IorI10DR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 K1PAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 K1PDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KRUN KRUNL KR.BIG KR.FLG KR.KT KR.MAP KR. iviOD KR.MOV KR.SML KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MD.COD= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDEQ= MSGDER= 000222RG 000232RG 000061R OOOOOOR 000127R 000175R 0OO150R 00OO02R 00OO04R 000040 000400 000020 040000 000012 000001 000200 ****** G 076600 040000 0'04000 002000 001000 000010 000011 ****** G 00:)005 MSG~RP= 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000:)01 000006 000003 000015 000014 MSGSr~1S= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBI{MOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL 024020 OltJEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= 000034 PASCNT= PA.CNT= PDP LS 1= PDP60 PDP70 PRIO 020000 004000 010000 000000 PRI1 VVVU ... U ****** G r-.",r.r.....,,, PRI4 PRI5 PRI6 PRl7 PRRLOC= PR.RL1= 000200 000240 000300 000340 PRO 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 020000 PR4 PR5 PR6 ptn ****** G ****** G PS PSW RA!\:-.JUM= R3UFEA= R8UFPA= R8UFSZ= R3UFVA= RJSERV= RDI.>.fHMI= RELERR= RELiVl0D= REL TIM= OiOOOO RESREG= ****** G 000056 RESl 000060 R~S2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNfv10D= 100000 RUNSUB 000240R R5VALU= 001740 075464 SAM SAVREG= ****** G SBADR = 000102 SBKMOD= 000000 SBKSE L= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 KRUN PROCESS THE 'RUN ' COMMAND & 'RUNL ' COMMAND KRUN.MAC 20-SEP-78 09:15 SYMBOL TA8LE TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPOR6= 177614 UIPDR7= 177616 UNIMAP= ****** G WASADR= 000104 WBFLIM= ****** G WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 SENDLS= 177777 SETVEC= ****** G SOFCNT= 000042 SOFPA5= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBI= 064757 STAn = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 000072 SVR4 SVR5 000074 SVR6 = 000076 SYSCNT= 000052 SYSERR= 000100 ASS. 000000 001522 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:KRUN,DSKZ:KRUN=SPMAC/ML,EQUATE,KRUN RUN-TIME: 29 19 .4 SECONDS RUN-TIME RATIO: 82/49=1.6 14K (27 PAGES) CORE USED: MACY11 30A(1052} WBUFRQ= 000140 W8UFSZ= 000142 WDFR = 000116 WDTO = 000114 \4,/ST BUS= ****** G WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$8LA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $FSFAL= OOOL;05 $F$GOO= 000400 $F$IF = 000'10 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 20-SEP-78 18:01 000403 $F$NO 000320 $F$OR $F$RTI= 000350 $FSRTN= 000300 $F$SEL=- 000140 $F$THE= 000330 $f$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 SNESTL= 177777 $NSKO = 000300 $NSK1 = 000110 $NSK2 = 000110 $SAVLE= 177777 $SSKO = 050037 $TAGLE= 177777 $TAGNU= 050C47 $TEMP = 000300 PAGE 20-1 SEQ 0645 = = 050046 SiSKO 050037 $TSK1 $TSK2 = 050041 $$ARGC= 000004 $$BYTE= 000403 $SCASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$F LAG= 000001 $$FqOM= 000000 $$LOC = 001472R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RiN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 001522R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 576 579 625 18:03 TABLE Of CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR KRUN 000000' .PRINT ;SPMAC: VERSION 1.1 KRUN ROUTINE SEQ 0646 KRUNS PROCESS THE 'RUN' COMMAND FOR SMALL MONITORS MACV11 30A(1052) KRUNS.MAC 14-SEP-7811:34 COMMON EQUATE MODULE 508 509 .TITLE KRUNS .IDENT JVO.Oj 20-SEP-78 18:03 PAGE 19 PROCESS THE 'RUN' COMMAND FOR SMALL MONITORS 510 511512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 ;++ MODULE NAME: KRUNS ;. FUNCTIONAL DESCRIPTION: THIS MODULE IS FOR NON-KT MONITORS ONLY. THIS ROUTINE PROCESSES THE 'RUN' KEYBOARD COMMAND. IF AN ARGUMENT IS INCLUDED,AN ERROR MSG. IS ISSUED. ALL OPTION MODULES HEADERS WILL BE INITIALIZED. THE SYSTEM ERROR COUNT AND POWER FAIL COUNT WILL BE INITIALIZED. THE WRITE BUFFER LIMITS WILL BE SET UP. INPUTS: 1. DTABLE ADDRESS 2. DECODE BUFFER POINTER IMPLICIT INPUTS: 1. DT.MLST 2. DT.STO 3. DT.CFO OUTPUTS: NONE IMPLICIT OUTPUTS: 1. DT. STO 2. DT.KBRSP 3. DT.ESIZ 4. DT.PFL 5. DT.EXS PATHOLOGICAL CONNECTIONS: 1. BE.MeNT 2. MD. COD 3. PA.CNT 4. CM.RUN ,. 5. CM.ARG SUBORDINATE ROUTINES CALLED: 1. ARGCHK 2. CLRTIM 3. SAVREG 4. RESREG 5. WBFLIM 6. WSTBUS 7. CLKCHK 8. APTSEL 561 FUNCTIONAL SIDE EFFECTS: NONE 562 563 CALLING SEQUENCE: SEQ 0647 KRUNS PROCESS THE 'RUN' COMMAND FOR SMALL MONITORS MACY11 30A(1052) KRUNS.MAC 14-SEP-7811:34 COMMON EQUATE MODULE 564 565 566 567 568 569 570 571 572 573 574 20-SEP-78 18:03 PAGE 19-1 SEQ 0648 CALL KRUN IN <DTADR,BUFPTR> WHERE DTADR = DTABLE ADDRESS BUFPTR = COMMAND DECODE BUFFER POINTER VERSION: 0.0 ,"-- EDIT DATE BY REASON KRUNS PROCESS THE 'RUN' COMMAND FOR SMALL MONITORS MACY11 30A(1052} 20-SEP-78 KRUNS.MAC 14-SEP-7811:34 COMMON DEFINITIONS AND REFERENCES FOR KRUN .SBTTL 576 577 578 579 (1 ) 580 581 582 583 584 585 COMMON DEFINITIONS AND REFERENCES FOR KRUN SLSTTAG;;1 $LST IN= 1 00000; 00C001 ;*************** , ; REFERENCED BY OTHER MODULES: 587 .GLOBL 588 589 590 591 592 593 594 595 ;MODULE ENTRY POINT KRUN ;***********~**** , ; GLOBAL REFERENCES: , .GlOBL CLKCHK .GLOBL APTSEL .GLOBL MD. COD .GLOBL MSGDEQ .GLOBL CM. RUN .GLOBL CM.ARG .GLOBL CLRTIM .GlOBL ARGCHK .GLOBL SAVREG .GLOBL RESREG .GLOBL PA.CNT .GLOBL BE.MCNT .GLOBL WBFLIM .GLOBL WSTBUS 596 597 598 599 600 601 602 603 604 605 606 607 ;SEE IF A CLOCK IS HERE ;APT SELECT ROUTINE ;CODE ;MESSAGE DEQUE ; IILLEGAL COMMAND IN RUN MODEl ; 'ILLEGAL OR MISSING ARGUMENT I ;CLEAR TIME TABLE ;CHECK AN ARGUMENT ;SAVE REGISTERS ;RESTORE REGISTERS ;NUMBER OF PARITY ERRORS ;MONITOR SYSTEM ERROR COUNT ;ESTABLISH WRITE BUFFER LIMITS ;WRITE WORST CASE UNIBUS PATTERN. 608 ;**************** , 609 610 ; GLOBAL EQUATES: 611 612 61.3 ;**************** 614 619 ; LOCAL STORAGE: 000000 1 000006 1 000014 1 000022 1 047045 052504 042523 042105 020117 042514 042514 000045 047515 020123 KR.MOD: .ASCIZ /%NO MODULES SELECTED%/ 052103 .EVEN 620 621 622 623 PAGE 19-2 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 000000 1 000000 1 586 615 616 617 618 18:03 ;**************** SEQ 0649 KRUNS PROCESS THE 'RUN' COMMAND FOR SMALL MONITORS KRUNS.MAC 14-SEP-7811:34 KRUN ROUTINE 625 626 627 (2) 628 629 630 631 632 633 634 635 636 (3) 637 (4 ) 638 (4) 639 640 641 642 643 (6) (8) (6) (9) (6) 644 (2) 645 (4) 646 .SBTTL ~ACY1' 30A(1052) 20-SEP-78 18:03 PAGE 19-3 SEQ 0650 KRUN ROUTINE ROUTINE KRUN <DTADR.BUFPTR> 000026' 000026' KRUN: ;+ ; SAVE REGISTERS AND SAVE DTA8LE ADDR AND BUFFER POINTER , 000026' 000026' 004767 000032' 000032 1 016500 000036' 000036' 016501 CALL SAVREG OOOOOOG LET RO .- DTADR(R5) LET R1 .- BUFPTR(RS) 000000 000002 ;+ ; JSR PC,SAVREG MClV DTADR(R5),RO MOV BUFPTR(R5),R1 IF IN AUTO OR APTPRES MODE, DON'T CHECK ANY ARGUMENTS - JUST GO TO WORK , 000042' 000042' 000050' 000052' 000060' 000062' 000062' 000062 1 000064' 000064 1 IF #AUTO SETIN DT.CFO(RO) OR #APTPRES SETIN DT.CFO(RO) THEN 032760 001004 032760 001401 000010 000014 000200 000014 BIT BNE BIT 8cQ #AUTO,DT.CFO(RO) 50002$ #APTPRES.DT.CFO(. 50003$ BR 339$ BIT BEQ #RUNMODE.DT.STO( 50004$ MOV #CM.RUN,DT.KBRSP JMP 1$ 50002$: INLINE <BR 000431 339$> ENDIF 50003$: 647 ;+ 648 649 650 651 652 (6) (9 ) 653 (4) 654 (2) . SEE IF IN RUNMODE - IF SO STUFF ERROR AND SCRAM ; 000064' 000064' 000072' 000074' 000074' 000102' 000102' 655 656 (4) 000106' 000106' IF #RUNMODE SETIN DT.STO{RO) THEN 000010 032760 001405 100000 012760 OOOOOOG 000022 000167 000424 ENDIF LET DT.KBRSP(RO) .- #CM.RUN INLINE <JMP 1$> 50004$: 657 658 659 660 661 662 663 664 + WE ARE NOT IN RUNMODE .... ALL IS OK .... GET AN ARGUMENT IF ANY ....• KRUNS PROCESS THE 'RUN' COMMAND FOR SMALL MONITORS KRUNS.MAC 14-SEP-7811:34 KRUN ROUTINE 665 666 (4) (3) 000106' 000106' 162705 000112' 010546 (4) 000114' (3) (3) (4) 667 668 669 670 671 672 (6) 673 674 (2) 675 676 (4) (3) 677 678 679 680 681 682 (4) 683 (2) 684 (4) 685 686 (2) 687 688 689 690 691 692 (6) (9) 693 (3) (4) (3) (3) 694 (4) 695 696 697 698 699 000116' 004767 000122' 012605 000124' 012501 MACV11 30A(1052) 20-SEP-78 18:03 PAGE 19-4 SEQ 0651 CALL ARGCHK IN <R1> OUT <R1> 000002 010145 OOOOOOG SUB MOV MOV JSR MOV MOV #1*2,R5 R5,-(SP). R1 , - (R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 Bec 50005$ BR 339$ 8R 50006$ ;+ ; IF NO ARGS, JUMP AHEAD ., IF. ERROR THEN 000126' 000126' 103002 INLINE <BR 000130' 000130' 000406 339$> ELSE 000132' 000132' 000405 000134' 500055: ;+ ; THERE ARE ARGUMENTS ..... TOO BAD - NOT ALLOWED IN THIS MONITOR .••. I 'RUN' O~~LY ; STUFF ERROR MSG AND SEE YA ..... N[XT , .L. IV,£- -rvnr:: TT~H~ 000134' 000134' 012760 000142' 000142' 000167 000146' 000146' i f i- LET DT.KBRSP(RO) .- #CM.ARG OOOOOOG 000022 INLINE <JMP MOV #CM.ARG.DT.KBRSP JM? 1$ 1$> 000364 ENOIF 50006$: INLINE <339$:> 000146' 000146' 339$: ;+ ; IF UNDER APT, USE APT'S TABLE TO SELECT THE MODULES ; AND SET UP DEVICE COUNT 000146' 000146' 000154' 000156' 000156' 000160' 000162' 000166' 000170' 000170' IF #APTPRES SETIN DT.CFO(RO) THEN 032760 001405 000200 000014 BIT SEQ #APTPRES,DT.CFO( MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,APTSEL (SP)+,R5 CALL APTSEL IN <RO> 010546 010045 004767 012605 OOOOOOG ENDIF 5C007$: + GET ADDR OF MODULE LIST 50007$ KRUNS PROCESS THE 'RUN ' COMMAND FOR SMALL MONITORS KRUNS.MAC 14-SEP-7811:34 KRUN ROUTINE 700 701 (4) 702 703 704 705 706 707 (4) 708 709 710 711 712 713 714 (4) (6) (9) 715 (4) 716 (6) (9) 000170' 000170 1 016001 SEQ 0652 DT.MLST(RO) MOV DT.MLST(RO).R1 LET R4 .- #0 CLR R4 ;+ ; WHILE NOT AT END OF MODULE LIST •.• SEE IF A MODULE IS SELECTED .•• ; IF SQ, INCREMENT A COUNT 000176' 000176' 000176 1 000200 1 000202' 000202 1 000204' 000204' 000212' WHILE (R1) NE #0 DO 50010$: 005711 001407 032762 001401 TST BEQ 50011$ MOV (R1 )+,R2 BIT SEQ #BIT14,STAT(R2) 50012$ INC R4 LET R2 := (R1)+ 012102 (R 1 ) IF #BIT14 SETIN STAT(R2) THEN 040000 000026 LET R4 000214 1 005204 000216 1 000216' 000216' 000216 1 000767 000220' (4) PAGE 19-5 000032 000174' 000174' 005004 000214' 731 732 733 734 735 736 737 738 18:03 ; FLAG (6) 718 (4) 719 (4) (3) 720 721 722 723 724 725 726 727 (6) 728 (4) 729 (2) 730 != 20-SEP-78 ;+ 717 (9) LET R1 MACY11 30A(1052) := R4 + H1 ENDIF 500125: ENDDO 50010$ 50011$: ;+ ; IF R4 IS ZERO ... NO MODULES SELECTED ..... STUFF ERROR AND GOODBYE .•. ;- 000220 1 000220' 000222' 000224' 000224' 000232' d00232' 000236' 000236' IF R4 EQ #0 THEN 005704 001005 012760 R4 50013$ MOV #KR.MOD,DT.KBRSP JMP 1$ LET DT.KBRSP(RO) := HKR.MOD 000000' 000022 INLINE <JMP 000167 TST BNE 1$> 000274 ENDIF 50013$: ;+ ! ! ! !! GO TO WORK !!!!!! GET THE MODULE HEADERS CLEANED UP BUT FIRST PRINT THE CR - IT TAKES SO LONG TO WRITE WSTBUS PATT~RN THAT THE CR WOULD NOT BE ECHOED FOR A LONG TIME AND IT MAY CAUSE WORRY - HENCE THE CALL TO MSGDEQ WILL PRINT KRUNS PROCESS THE IRUN 1 COMMAND FOR SMALL MONITORS KRUNS.MAC 14-SEP-7811:34 KRUN ROUTINE 739 740 741 742 743 744 (3) 745 (3) (4) (3) (3) 746 (3) (6) 747 748 749 750 751 752 753 '154 (6) (9) 755 756 757 758 759 (3) (4) (3) (3) 760 761 (6) (9) 762 763 (3) (4) (3 ) (3) 764 765 (4) 766 (4) 767 768 769 770 771 772 (4) MACV11 30A(1052) 20-SEP-78 18:03 PAGE 19-6 SEQ 0653 ; IT RIGHT AWAy ..•• ;- 000236 1 000236' 000236 1 000236 1 000240' 000242' 000246' 000250' 000250' 000256 1 REPEAT 500;4$: CALL MSGDEQ IN <RO> 010546 010045 004767 012605 026727 001367 MiJV JSR MOV R5,-(SP) RO,-(R5) PC,MSGDEQ (SP)+,R5 CMP 6NE MD.COw,#MSGNUL 50014$ MOV OOOOOOG UNTIL MD. COD EO #MSGNUL OOOOOOG 177775 ;+ ; IF THIS IS THE SCRAWNY MONITOR ..• DONIT EVEN CONSIDER THE CLOCK ; STUFF ;- 000260 1 000260 1 032760 000266 1 001016 IF #NCPUOP NOTSETIN DT.CFO(RO) THEN 000020 000014 ;+ ;IF THE CLOCK IS ;- 000270 1 000270 1 010546 000272' 010045 000274 1 004767 000300' 012605 000302 1 000302 1 032760 000310' 001405 000312'000312 1 010546 000314' 010045 000316' 004767 000322 1 012605 CLEA~ CLOCK TA8~E .. .. SEE BIT 6:--.1E #NCPUOP,DT.CFO(R 50015$ MJV JSR MOV R5,-(SP) RO,-(R5) PC,CLKCHK (SP)+,R5 BIT BEQ #CLKPRES,DT.CFO( 50016$ MOV MOV MOV R5,-(SP) RO,-(R5) PC,CLRTIM (SP)+,R5 MOV DT .MLST(RO) ,R1 !F IT IS ... CALL CLKCHK IN <RO> MOV OOOOOOG IF #CLKPRES SETIN DT.CFO(RO) THEN 000001 000014 CALL CLRTIM IN <RO> JSR OOOOOOG ENDIF 000324 1 000324 1 000324' 000324 1 ENDIF 50016$: 50015$: ;+ ; GET MODULE LIST 0003241 000324 1 016001 LET R1 000032 .- DT.MLST(RO) KRUNS PROCESS THE 'RUN 1 COMMAND FOR SMALL MONITORS KRUNS.MAC 14-SEP-7811:34 KRUN ROUTINE 773 774 775 776 777 778 779 780 (4) (6) (9) 781 782 (4 ) 783 784 785 786 (4) 787 (4) 788 (4) 789 (4) 790 r JI , MACV11 30A(1052) 20-SEP-78 18:03 PAGE 19-7 SEQ 0654 ;+ ; WHILE NOT AT END OF MODULE LIST, CLR OUT MODULE HEADER LOCATIONS ; AND COpy CONFIG WORD o INTO RES1. ;- WHILE (R1 ) NE #0 DO 000330' 000330' 000330 1 005711 0003321 001450 LET R2 000334' 000334 1 012102 000336' 000336 1 005062 000342 1 0003421 005062 000346 1 000346 1 005062 000352 1 000352 1 005062 000356 1 t"\.""''''''"'t:'C t \ '"t j vVU.:J...JU 791 (4) 792 (4) 793 (4) 794 (4) 795 796 797 798 799 800 (6) 80' 802 803 804 805 806 807 808 809 810 811 812 (6) (8) 000362 1 000362 1 0.00366 1 000366 1 000372 1 000372' 000376' 000376' I'\I'\t::"C:" vv...,J ....I\·.,;, 50017$: · - #0 LET ICOUNT(R2) .- #0 LET SOFCNT(R2) · - #0 LET HRDCNT(R2) .- #0 000040 000042 000044 LET SOFPAS(R2) ·- #0 LET HRDPAS(R2) .- #0 LET SYSCNT{R2) · - #0 LET XFLAG(R2) :B= #0 000045 005062 000050 005062 000052 105062 000005 016062 000014 (R1 ) BEQ 50020$ M8V (R1)+,R2 CLR PASCNT(R2) CLR ICOUNT(R2) CLR SOFCNT(R2) CLR HROCNT(R2) CLR SOFPAS(R2) CLR HROPAS(R2) CLR SYSCNT(R2) CLRB XFLAG(R2) . MOV DT.CFO(RO),RES1( SIC #BIT13!ACTBIT,ST . - (R1)+ LET PASCNT(R2) 000034 TST LET RES1(R2) := DT.CFO(RO) 000056 ;+ ; CLEAR ACTIVE AND DROPP~D BIT IN STAT WORD OF MODULE ;- 000404 1 000404' 042762 LET STAT(R2) := STAT(R2) CLR.BY #BIT13!ACTBIT 024000 000026 ;+ ; IF AN IOMODR(P)(X) CLEAR CDATA ERROR AND WORD COUNTS . 000412' 000412' 032762 000420' 001010 112000 000026 IF HIOMODR SETIN STAT(R2) OR HIOMODP SETIN STAT(R2) OR # rOfviGDX SETIN STAT(R2} TH #IOMODR,STAT(R2) SIT 50021$ BNE KRUNS PROCESS THE IRUN 1 COMMAND FOR SMALL MONITORS KRUNS.MAC 14-SEP-78'1:34 KRUN ROUTINE (6) (8) (6) (9) (6) 813 000422 1 000430 1 000432' 000440' 000442 1 032762 001004 032762 001404 102000 000026 110000 000026 000442' 000442 1 005062 000446' 000446' 005062 000452' 000452 1 20-SEP-78 18:03 PAGE 19-8 SEQ 0655 #IOMODP,STAT(R2) BIT BNE BIT SEQ 50021$ #IOMODX,STAT(R2) 50022$ C~R CDERCT(R2) CLR CDWDCT(R2) SR 50017$ 50021$: 814 815 (4) 816 (4) 817 (4) 818 819 (4) (3) 820 821 822 823 824 825 826 827 828 (4) 829 (4) 830 (4) 831 (4) 832 (4) 833 834 835 836 837 838 839 840 (3) (4) (3) (3) 841 842 843 844 845 846 847 848 (3) MACV11 30A(i052) LET CDERCT(R2) '- #0 000146 LET CDWDCT(R2) '- #0 000144 ENDIF 50022$: END DO 000452' 000452' 000726 000454' 50020$: ;+ ; CLEAR SOME OTHER GOODIES ..... THAT IS, SYSTEM PASS COUNT ... MONITOR SYS ERRORS ; PARITY ERRORS, AND TOTAL SYS ERRORS ;- 000454' 000454' 000460 1 000460' 000464' 000464' 000470' 000470' 000474' 000474' LET @DT.SYP(RO) := #0 005070 000072 005060 000062 LET DT.PFL(RO) .- #0 LET BE.MCNT '- #0 005067 OOOOOOG LET PA.CNT := #0 005067 OOOOOOG 005060 000060 CLR @DT.SYP(RO) CLR DT.PFL(RO) CLR BE.MCNT CLR PA.CNT CLR DT.EXS(RO) MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,WSTBUS (SP)+,R5 MOV R5,-(SP) LET DT.EXS(RO) '- #0 ;+ ; WRITE WORST CASE UNIBUS PATTERN ;- 000500 1 000500 1 000502' 000504' 000510' CALL WSTBUS IN <RO> 010546 010045 004767 012605 OOOOOOG ;+ ;SETUP THE WRITE BUFFER LIMITS 000512 1 000512 1 010546 CALL WBFLIM IN <RO> KRUNS PROCESS THE 'RUN' COMMAND FOR SMALL MONITORS KRUN ROUTINE 14-SEP-7B 11:34 KRUNS.MAC (4) (3) (3) 949 850 851 852 853 854 855 (6) 856 857 858 (2) 859 (3) 860 861 (3) (3) (2 ) 862 863 000514' 010045 000516' 004767 000522' 012605 MACV11 30A(1052) 20-SEP-78 18:03 PAGE 1:-~-~ SEQ 0656 JSR MOV RO;-(R5) PC, WSFLIM (SP)+,R5 SIS #RUNMODE,DT.STO( MOV OOOOOOG ;+ , SET no ,,,,urln!: C T T I"\UI .. IfIU....,~ &..I . . . . . . . . . AND DONE of 000524' 000524' 052760 000532' 000532' 000532' 000532' 004767 000536' 000536' 000536 1 000536 1 000207 000001 LET DT.STO(RO) := DT.STO(RO) SET.BY #RUNMODE 100000 000010 INLINE <1$:> 1$: CAll RESREG OOOOOOG J5R PC,RESREG RTS PC ENDRTN 50000$: 50001$: .END PROCESS THE 'RUN ' COMMAND FOR SMALL MONITORS KRUNS SYMBO!.. TABLE 14-SEP-76 11:34 KRUNS.MAC ACSR 000102 ACTSIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 APTSEL= ****** G ARGCHK= ****** G 000106 ASB ASSEM8= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS B!:..MCN= ****** G 000001 BITO 000001 BITOO 000002 BIT01 000004 BIT02 BIT03 000010 BIT04 000020 000040 BIT05 000100 BIT06 000200 BIT07 000400 B1T08 001000 BIT09 000002 SIT1 002000 BIT 1 0 004000 81 T 11 010000 B1T12 020000 BIT13 040000 BIT14 100000 3IT15 000004 S1T2 000010 B1T3 000020 BIT4 000040 BITS BIT6 000100 000200 BIT7 000400 B1T8 001000 B1T9 000002 BKDEF BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BUFPTR= 000002 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKCHK= ****** G CLKPRE= 000001 CLRTIM= ****** G CM.ARG= ****** G CM.RUN= ****** G CONFIG= 000056 000001 CQOVF 000015 CR I"'tor-,,.,,,t\t\ VVVIVV CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRlU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 DT. AP= OOG1OO DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT. ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT. WBU= 000050 MACV11 30A (1052) DT.WHL= 000054 DT.\aJLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 E~JB!,JU L= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNT8E= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 IE = 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT INTR = 000120 100000 lOMOD IOMODP= 102000 IOMODR=' 112000 . 10MODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KlPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 000026RG KRUN. KR.MOD OOOOOOR KTERRO= 000040 20-SEP-78 ;8:03 PAGE 20 SEQ 0657 KTPRES= "rtf"'ol!f"\1"\ Y.TSTAT= KTXTND= LF LPSTAT= MAPSTA= MD.COD= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDEQ= MSGDER= MSGDRP= MSG!:.CH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOD= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMi3= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PA.CNT= PDPLSI= PD?60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 000020 040000 000012 000001 000200 vvu"""tvv **"'*** G 076600 040000 004000 002000 001000 000010 000011 ****** G 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 ****** G 020000 004000 010000 000000 000040 000200 000240 000300 000340 PRI7 000000 PRO 000200 PR4 000240 PR5 000300 PR6 PR7 = 000340 177776 PS 177776 PSW R.t..NNUM= 000054 RBU::=EA= 0-00130 RSUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOD= 020000 REl TIM= 010000 RESREG= ****** G RES1 000056 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSiRT = 000112 RUBOUT= 000177 RUNri10D= 100000 R5VALU= 001740 075464 SAiVi SAVREG= ****** G S3ADR = 000102 S3Kt,iOD= 000000 SSKSEL= 010000 SC.ADR= 000006 Sc. ALC= 000014 SC.APC= 000016 Sc. CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENJLS= 177777 SOFCNT= 000042 SOF?AS= 000046 SPACE = OOOO~O SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SRi 177576 SR2 172516 SR3 000026 STAT STATBI= 064757 STATl = 000027 KRUNS PROCESS THE 'RUN ' COMMAND FOR SMALL MONITORS 14-SEP-78 11 :34 SYMBOL TABLE MACY11 30A(1052) 20~SEP-78 18:03 PAGE 20-1 SEQ 0658 KRUNS.~AC UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6== 177614 UIPDR7= 177616 WASADR= 000104 WBFLIM= ****** G WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WSTBUS= ****** G WTINRE= 000352 WnJHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON SBGNLE= 177777 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 SVR3 000070 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 ABS. 000000 000540 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:KRUNS,DSKZ:KRUNS=SPMAC/ML,EQUATE,KRUNS RUN-TIME: 18 9 .4 SECONDS RUN-TIME RATIO: 54/27=1.9 14K (27 PAGES) CORE USED: $ERFLG= 000400 $FSA01D= 000310 $F$i3AD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $FSGOO= 000400 $F$IF = 000110 $FSINC= 000210 $F$LOO= 000200 $F$NAM= 000160 $FSNO = 000403 $F$OR = 000320 $F$RTI= 000350 SFSRTN= 000300 SF$SEL= 000140 SF$THE= 000330 $FSTRU= 000404 $FSUNT= 000130 $FSWHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $ISK1 = 000001 $LOCTA= 177777 SLSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000120 $NSK2 == 000110 $SAVLE= 177777 $SSKO = 050020 $TAGLE= 177777 $TAG~U= 050023 000300 $TEMP STSKO = 050017 $TSK1= 050020 $TSK2 = 050022 $$ARGC:;: 000004 $$BYTE= 000403 $$CASE= 000000 $$D5T ;; 000000 $$ELOC= 000402 $$ERFL= 000000 S$FLAG= 000001 $$FROM= 000000 $$LOC = 000440R $$LOCN= 000000 $$REG = 177777 SSRETU= 000000 $$RTi~1 = 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000540R = .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 563 566 602 18:03 TA3LE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR KSUM 000000' .PRINT ;SPMAC: VERSION 1.1 KSUM ROUTINE SEQ 0659 KSUM PROCESS THE 'SUM' KEYBOARD COMMAND MACY11 30A(1052) KSUM.MAC 28-JUL-78 09:21 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 5'17 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 .TITLE KSUM .IDENT IVO.OI Zu-SEP-78 18:03 PAll!: 1~ SEQ 0660 PROCESS THE 'SUM' KEYBOARD COMMAND ;++ MODULE NAME: KSUM FUNCTIONAL DESCRIPTION! THIS ROUTINE PROCESSES THE 'SUM' KEYBOARD COMMAND. IT WILL SEARCH THE MODULE LIST AND ENQUEUE THE SUM MESSAGE FOR EACH MODULE. IF A MODULE NAME IS SPECIFIED, A SUMMARY MESSAGE IS OUTPUTTED FOR THAT MODULE ONLY AND NO HEADER OR TRAILER MESSAGES ARE OUTPUTTED. INPUTS: 1. ADDRESS OF DATA TABLE 2. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: DT.MLST, DT.STO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.KBRSP PATHOLOGICAL CONNECTIONS: CM.ARG, CM.BADNAME SUBORDINATE ROUTINES CALLED: 1. ARGCHK - CHECK FOR JU~K ARGUMENTS 2. ENQTQ - ENQUEUE A MESSAGE 3. NAMCHK - VERIFY A MODULE NAME 4. SAVREG - SAVE REGISTERS 5. RESREG - RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KSUM IN <DTADR,BUFPTR> WHERE DTADR ADDRESS OF DATA TABLE BUFPTR = COMMAND DECODE BUFFER POINTER VERSION: 0.0 EDIT DATE BY REASON KSUM PROCESS THE 'SUM ' KEYBOARD COMMAND MACY11 30A(1052) 20-SEP-78 18:03 KSUM.MAC 28-JUL-78 09:21 COMMON DEFINITIONS AND REFERENCES FOR KSUM 563 564 565 566 (1) 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 .SBTTL COMMON DEFINITIONS AND REFERENCES FOR KSUM .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 000000' 000000 I PAGE 19-1 ' $LSTTAG=1 $LST IN=1 000001 000001 ;**************** ; REFERENCED BY OTHER MODULES .GLOBL KSUM ;MODULE ENTRY POINT , ;**************** . ; GLOBAL REFERENCES: .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL :'87 .GL08L 588 589 590 591 592 593 594 595 596 597 598 599 600 .GLOBL SAVREG RESREG ARGCHK ENQTQ CM.ARG ;S;'VE REGISTERS ;RESTORE REGISTERS ;CHECK AN ARGUMENT ;ENQUEUE A MESSAGE ; 'ILLEGAL ARGUMENT' ERROR MSG .f"Ut:f"V ,\"Ii , ' - \.•" , CM.BADNAME , ;**************** A r\ ~.H"H'''IC If, ........ V;".~ t"~,Mt: 1.,....111'-. ; 'INVALID MODULE NAME' ERROR MESSAGE ; LOCAL STORAGE: , 000000' 000000 000002 1 041445 000010' 041045 042115 054523 000076 000076 KS.HLD KS.CMD KS.RUN .EVEN .ASCIZ .ASCIZ .WORD /%CMD>/ /%BSY>/ o ;HOLD ADDRESS OF PROMPT SEQ 0661 KSUM PROCESS THE ISUM 1 KEYBOARD COMMAND MACY11 30A(1052) KSUM.MAC 28-JUL-78 09:21 KSUM ROUTINE 6.02 603 504 (2) 605 606 607 608 609 610 (3) 611 (4) 612 (4) 613 614 615 616 617 618 619 620 621 (6) (9) 622 (4) 623 (4 ) (3) 624 (4 ) 625 (4 ) 626 627 628 629 630 631 632 (4) (3) (4) (3) (3) (4) 633 634 635 636 637 638 639 640 .SBTTL 000016 1 000016 1 20-SEP-78 18:03 PAGE 19-2 SEQ 0662 KSUM ROUTINE ROUTINE KSUM <DTADR,BUFPTR> KSUM: ;+ ; SAVE REGISTERS, DTABLE ADDRESS, AND DECODE BUFFER PTR 000016 1 000016 1 004767 000022 1 000022 1 016500 000026 1 000026 1 016501 CALL SAVREG OOOOOOG LET RO 0- LET Rl .- BUFPTR(R5) JSR PC,SAVREG MOV DTADR(R5),RO MOV BUFPTR(R5)tR1 BIT BEQ #RUNMODE,DT.STO( 50002$ MJV #KS.RUN,KS.HLD BR 50003$ MOV #KS.CMD,KS.HLD sua #1*2,R5 R5,-(SP) R1 , - (R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 DTADR(R5) 000000 000002 ;+ , IF IN RUN MODE - STUFF A PROMPT TO BE ENQU~UED LATER ; IN THIS MODULE - IT IS USED BECAUSE THE NORMAL PROMPT ; IS OUTPUTTED BEFORE ANY SUM MESSAGES ARE OUTPUTTED ; THIS ONE WILL FOLLOW THE SUM MESSAGES ...• 000032 1 000032 1 032760 000040' 001404 000042 1 000042 1 012767 000050 1 000050' 000403 000052' 000052 1 000052 1 012767 000060 1 000060 1 IF HRUNMOCE SETIN DT.STO(RO) THEN 100000 000010 LET KS.HLD 000010 1 177730 != #KS.RUN ELSE 50002$: LET KS.HLD "- #KS.CMD 000002' 177720 ENDIF 50003$: ;+ ; SEE IF ANY ARGUMENTS ARE INCLUDED IN DECODE BUFFER ., 0.00060 1 000060 1 162705 0000641 010546 000066 1 010145 000070 1 004767 000074 1 012605 000076 1 012501 CALL ARGCHK IN <R1> OUT <R1> 000002 MOV r,~ov JSR MOV MOV OOOOOOG ;+ ; IF THERE ARE NO ARGUMENTS DO A FULL S~MMARY (A~L MODULES). GET AD:RESS ; OF MODULE LIST, ENQUEUE THE RUN SUMMARY HEADER ~ESSAGE, THEN, WHILE ; THE ENTRY IN THE MODULE LIST IS NOT 0, ENQUEUE THE SUMMARY MESSAGE ; FOR THE MODULES. WHEN MODULE LIST ENTRY 0, ENQUEUE THE TRAILING MESSAGE .. ;- = MACY11 30A(1052) PROCESS THE ISUM 1 KEYBOARD COMMAND KSUM ",.... I". .u.,.,.... KSUM ROUTINE 28-JUL-78 09:21 r\;:)UIVI. 'VI .... 1.. 641 642 (6) 643 644 (4) 645 (4) 646 (4) 647 (3 ) 648 649 (4) 650 (4) 651 (4) (6) (9) 652 (4) 653 (3) 654 (4) {3} 655 656 (4) 657 (4) 658 (3) 659 660 (4) (3) 661 662 663 664 665 666 (4) (3) (5) (4) (3) (3) (4) (4) 667 (6) 668 000116 1 000116 1 000122' 000122' 000126' 000126' 000126' 000130' 000132' 000132' 000134' 000134' 000140' 000140' 000142' PAGE 19-3 SEQ 0663 BCC LET R1 012701 18:03 IF. ERROR THEN 000100 1 000100' 103026 000102' 000102' 000106' 000106' 000110 1 000110' 000112' 000112' 20-SEP-78 '- #MSGSMH .,,1"',\\1 000014 LET R2 . - #0 005002 LET R3 . - #0 005003 000176 012701 000015 016004 000032 LET R1 '- #MSGSMB LET R4 "- DT.MLST(RO) ./.<ll,1Cf".CnnU 01 I~IUV TTI .. ...,)~oJUIl I , " I CLR R2 C~R R3 JSR PC,NQ MOV #MSGSMB,R1 MOV DT.MLST(RO),R4 TST BEQ (R4) 50006$ MOV (R4)+,R3 JSR PC,NQ BR 50005$ MOV #MSGSMS,R1 CLR R2 JSR PC,NQ BR 50007$ SUB !V;OV #2*2,R5 R5,-(SP) R1,-(R5) RO,-(R5) PC,NAMCHK {SP)+,R5 (R5)+,R2 (R5)+,R1 8CS 50010$ CALL NQ 004767 50004$ WHILE (R4) NE #0 DO 50005$: 005714 001404 LET R3 012403 004767 . - (R4)+ CALL NQ 000154 """'1"'\1""'""", c;.nuuu 000772 000142' 000142' 012701 060146' 000146' 005002 000150' 000150' 004767 50006$: LET R1 '- #MSGSMS LET R2 "- #0 000016 CALL NQ 000140 ELSE 000154' 000154' 000442 000156' 50004$: ;+ ; THERE IS AN ARGUMENT - GO CHECK IT OUT ;- 000156' 000156' 000162' 000164' 000166' 000170 1 000174' 000176 1 000200 1 000202' 000202' CALL NAMCHK IN <RO,R1> OUT <R2,R1> 162705 010546 010145 010045 004767 012605 012502 012501 103424 000004 tJlOV MOV MOV JSR OOOOOOG r..r:ov r-rov IF.NO.ERROR THEN KSUM PROCESS THE 'SUM' KEYBOARD COMMAND MACY11 30A(1052) KSUM.MAC 28-JUL-78 09:21 KSUM ROUTINE 669 670 671 672 673 (4) (3) (4) (3) (3) (4) 674 (6) 675 676 677 678 679 680 (4) 681 000204' 000204' 000210' 000212' 000214' 000220' 000222' 000224' 000224' CALL ARGCHK IN <R1> OUT <R1> 162705 010546 010145 004767 012605 012501 000002 .;;U'-' CltO #1*2,R5 MOV ri.O V R5,-(SP) R1 ,- (R5) PC,ARGCHK (SP)+,R5 JSR MOV MOV OOOOOOG IF.ERROR THEN 103007 (~5)+,R1 Bec 50011$ MOV #MSGSMB,R1 MOV R2,R3 CLR R2 JSR PC,NQ BR 50012$ ;+ ; NO JUNK ARGUMENTS •••. ENQUEUE THE MESSAGE FOR THIS MODULE ;- ~n~n~a' VVv,~U ~n~~c~ VV~IVI LET R1 .- #MSGSMB 000015 LET R3 0- R2 LET R2 "- #0 CALL NO ~nnn~~ vvv~~, ELSE 000242' 000242' 000403 000244' 50011$: ;+ ; THERE IS A JUNK ARGUMENT IN DECODE BUFFER ... srUFF ERROR MSG ... 'f - 000244' 000244' 012760 LET DT.KBRSP(RO) := #CM.ARG OOOOOOG 000022 MOV #CM.ARG,DT.KBRSP BR 50013$ MOV #CM.BADNAME,DT.K ENDIF 000252' 000252' 50012S: ELSE 000252' 000252' 000403 000254' 50010$: ;+ ; BAD MODULE NAME ..•. STUFF ERROR MSG .... ;- 000254' 000254' 012760 LET DT.KBRSP(RO) := #CM.BADNAME OOOOOOG 000022 ENDIF 000262' 000262' 703 704 (4) SEQ 0664 ; MODULE NAME IS O.K. - NOW JUST VERIFY THERE IS NO JUNK ARGUMENT I~\ \~J PAGE 19-4 ;- 682 (4) 683 684 685 (4) (3) 686 687 688 689 690 (4) 691 692 (4) 693 694 (4) (3) 695 696 697 698 699 700 (4) 701 702 (4) 18:03 ;+ 000226' 000226' 012701 000232' 000232' 010203 000234' 000234' 005002 000236' (4) 20-SEP-78 000262' 000262 1 ENDIF 500135: 50007$: MACY11 30A(1052) KSUM PROCESS THE 'SUM' KEYBOARD COI\1MAND KSUM ROUTINE 28-JUL-78 09:21 KSUM.MAC 705 706 707 708 709 710 (6) (9 ) 711 (4) 712 (4) 713 (4) 714 (3) 715 (4) 716 717 718 719 ;+ ; IF NO ERRORS ;000262' 000262' 000266' 000270' 000270' 000274' 000274' 000300' 000300' 000302' 000302' 000306' 000306' IF 005760 001007 000022 012701 000000 016702 000306' (3) ""''''''''_''''''''''1 uUU,juo (8) (7 ) (6) (5) (4) (3 ) (3 ) 733 734 (3) (3) (2) 735 PAGE 19-5 SEQ 0665 ENQUEUE A PROMPT BNE DT.KBRSP(RO) 50014$ MOV #MSGSTD,R1 MOV KS.HLu,R2 CLR R3 JSR PC,NQ dSR PC,RESREG RTS PC MOV fVlOV MOV MOV MOV MOV JSR MOV R5,-(SP) #0,-(R5) R3,-(R5) R2,-(R5) R'! , - (R5) RO,-(R5) PC,ENQTQ (SP)+,R5 RTS PC T~'T ,:J. LET R1 . - #MSGSTD LET R2 " LET R3 "- - KS.HLD #0 005003 CALL NQ 004767 000006 ENDIF 50014$: ;+ ; CLEAN UP AND GOODBYE ;- 721 722 (3 ) 18:03 DT.KBRSP(RO) EO #0 THEN 177500 7::W 723 724 (3) (3) (2 ) 725 726 727 728 729 730 (2) 731 732 20-SEP-78 CALL RESREG "",.,.,,......, VV<.+/OI """",,/'\,... VVV\,IVVI,;I ENDRTN 000312' 000312' 000312' 000312' 000207 50000$: 50001$: ;+ ; THIS IS THE ACTUAL CALL TO THE TYPE-QUEUE ENQUEUEING ROUTINE. , ROUTINE NQ 000314 1 000314' 000314' 000314 1 000316' 000322' 000324' 000326' 000330 1 000332' 000336' NQ: CALL ENQTQ IN <RO,R1,R2,R3,#0> 010546 012745 010345 010245 010145 010045 004767 012605 000340' 000340' 000340' 000340' 000207 000001 000000 OOOOOOG ENDRTN 50000$: 50001$: .END KSUM MACV11 30A(i052) PROCESS THE 'SUM ' KEYBOARD COMMAND SY~BOL TABLE 28-JUL-78 09:21 20-SEP-78 18:03 PAGE 20 SEQ 0666 KSUr.1. ~,1AC 000102 ACSR ACTBIT= 004000 ADDR2.2= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ARGCHK= ****** G 000106 ASB ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS 000001 BITO 000001 BITOO BIT01 000002 000004 BIT02 BIT03 000010 BIT04 000020 BIT05 000040 000100 BIT06 BIT07 000200 000400 BITOS 001000 BIT09 000002 BIT1 61110 002000 BIT11 004000 BIT12 010000 BIT13 020000 BIT14 040000 100000 BIT15 BIT2 000004 BIT3 000010 BIT4 000020 BITS 000040 BIT6 000100 BIT7 000200 BIT8 000400 001000 B1T9 000002 BKDEF BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BUFPTR= 000002 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDV.'DCT= 000144 CKTIM = 100000 CLKPRE= 000001 CM.ARG= ****** G eM.BAD= ****** G CONFIG= 000056 00C001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT. BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT . Hiv~X= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT .MlS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.Res= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000105 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 Dr. SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENSEOP= 010000 ENBNUL= 000001 ENDLST= 000000 ENQTQ = ****** G EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 Ttrr..,T!"1 ..I..1't1 r\. n"n1'"ln v...; v ,"'-v IOMOD IOMODP= IOMODR= IOMODX= JACK K1PARO= KIPAR1= K1PAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= K1PAR7= KIPDRO= KIPDR1= KIP!)R2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KSUM KS.CMD KS.HLD KS.RUN KTERRO= KTPRES= 100000 102000 112000 110000 035060 172340 172342 172344 172346 172350 172352 1723154 1723;'56 172300 172302 172304 172306 172310 172312 172314 1723.16 000016RG 000002R OOOODOR 000010R 000040 000400 KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOl= MODSEl= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGKRD= MSGMAP= I\1SGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NAiI1CHK= NBKMOD= NCPUOP= NOAPTY= NO NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PR11 PRI4 PRI5 PRI6 PRI7 PRO 000020 040000 000012 000001 000200 076600 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 OOOOOq 000012 000020 **.1=*** G 001000 000020 000002 000314R 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 OCCOOO PR4 000200 000240 PR5 000300 PR6 000340 PR7 177776 PS 177776 PSW RANNU!Vl= 000054 RBUFEA= 000130 RBUFPA= 000126 R8U:=SZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOD= 020000 RELTIM= 010000 RESREG= ****** G RES1 000056 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RST~T = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 SAM 075464 SAVREG= ****** G SSADR = 000102 SBKI\10D= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 Sc. CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBl= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRC KSUM PROCESS THE 'SUM ' KEYBOARD KSUM.MAC 28-JUL-7B 09:21 000000 000342 MACY11 30A(1052) SYMBOL TABLE UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 SVR1 000064 SVR2 000066 SVR3 000070 SVR4 000072 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 00·0100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIP.ll.R7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 ABS. COrM~AND 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:KSUM,DSKZ:KSUM=SPMAC/Ml.EQUATE,KSUM RUN-jIME: 15 5 .4 SECONDS RUN-TIME RATIO: 56/21=2.6 CORE USED: 14K (27 PAGES) $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $FSDO = 000340 $F$FAL= 000405 $FSGOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$liJHI = 000120 $F$YES= 000402 20-SEP-78 18:03 PAGE 20-1 SEQ 0667 $IFLEV= 177777 $ISKO = 000001 $ISK1 = 000001 $ISK2 = 000001 $LOCTA= 177777 SLSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO 000300 $NSK1 = 000110 $NSK2 = 000110 SNSK3 = 000110 $SAVlE= 177777 $SSKO = 050006 $TAGlE= 177777 $TAGNU= 050002 STEMP 000300 $TSKO = 050014 STSK1 = 050013 $TSK2 = 050012 $$ARGC= 000000 $SBYTE= 000403 $$CASE= 000000 $$DST = 000000 $$!:LOC= 000402 $$ERF L= 000000 $$FLAG= 000001 $$FROM= 000000 S$LOC = 000266R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000005 $$$TAG= 050000 000342R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 561 564 598 18:04 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR KSWR 000000' .PRINT ;SPMAC: VERSION 1.1 KSWR ROUTINE SEQ 0668 KSWR PROCESS THE ISWR' KEYBOARD COMMAND MACY1130A{1C52) KSWR.MAC 28-JUL-78 09:21 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 .TITLE KSWR .lDENT JVO.Oj 20-SEP-78 18:04 PAGE 19 SEQ 0669 PROCESS THE ISWR' KEYBOARD COMMAND ;++ MODULE NAME: KSWR FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE 'SWR ' KEYBOARD COMM~ND. IF NO ARGUMENT IS FOUND IN THE DECODE BUFFER, THE CONTENTS OF THE SOFTWARE SWITCH REGISTER ARE OUTPUTTED. THE NU~BER IS VERIFIED TO BE OCTAL AND 16 BITS OR LESS IN LENGTH. IF THE NUMBER IS VALID, IT WILL REPLACE THE CONTENTS OF THE SOFTWARE SWITCH REGISTER AND THE NEW CONTENTS WILL BE OUTPUTTED. INPUTS: 1. ADDRESS OF DATA TABLE 2. DECODE BUFFER POINTER IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: 1. DT.KBRSP 2. DT.SWR PATHOLOGICAL CONNECTIONS: CM.ARG SUBORDINATE ROUTINES CALLED: 1. ARGCHK - VERIFY AN ARGUMENT 2. BOA16 - BINARY TO OCTAL ASCII CONVERSION 3. SAVREG - SAVE REGISTERS 4. RESREG - RESTORE REGISTERS 5. NUMCHK - CHECK FOR VALID NUMBER FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KSWR IN <DTADR,BUFPTR> WHERE: DTADR = ADDRESS OF DTABLE BUFPTR = CMD DECODE BUFFER POINTER VERSION: 0.0 EDIT DATE BY REASON KSWR PROCESS THE 'SWR' KEYBOARD COMMAND MACY11 30A(1052) 20-SEP-78 18:04 KSWR.MAC 28-JUL-78 09=21 COMMON DEFINITIONS AND REFERENCES FOR KSWR 561 562 563 564 (1) .565 566 567 000000' 000000 1 PAGE 19-1 .SBTTL COMMON DEFINITIONS AND REFERENCES FOR KSWR .N!CALL STRUCT .PRINT STRUCT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 000001 000001 568 569 ;******~********* , 570 ; REFERENCED BY OTHER MODULES: 571 572 .GLOBL .573 KSWR ;MODULE ENTRY POINT 574 575 ;**************** 576 ; 577 ; GLOBAL REFERENCES: 578 .GL08L .GLOBL .GLOBL .GLOBL .GL08L .GLOSL 579 580 581 582 583 584 585 586 ; lOCAL STORAGE: 588 596 ;SAVE REGISTERS ;RESTORE REGISTERS ;8INARY TO OCTAL ASCII CONVERSION ;CHECK AN ARGUMENT ;CHECK AN OCTAL ASCII NUMBER ;"INVALID OR MISSING ARGUMENT" MESSAGE ;**************** 587 589 590 591 592 593 594 595 SAVREG RESREG BOA16 ARGCHK NUMCHK CM.ARG , 000000 1 053523 027522 000005' 000006 000013 1 045 000 000016 1 040 KS. MG1: • ASCII KS.MG2: .BlKS .ASCIZ .EVEN 'SWR/ 6 /%/ ;**************** 1 ;SWR MESSAGE ;HOLD ASCII DT.SWR CONTENTS SEQ 0670 KSWR PROCESS THE 'SWR' KEYBOARD COMMAND MACY11 30A(1052) KSWR.MAC 28-JUL-78 09:21 KSWR ROUTINE 598 599 600 601 (2 ) 602 603 604 605 606 607 (3) 608 (4) 609 (4) 610 611 612 613 614 (4) (3) (4) (3) (3) (4) 615 616 617 618 619 620 621 (6) 622 (4) (3) (5) (4) (3) (3) (4) (4) 623 624 625 626 627 628 629 (6) 630 (2) 631 632 .SBTTL 20-S£P-78 18:04 PAGE 19-2 SEQ 0671 KSWR ROUTINE ROUTINE KSWR <DTADR,BUFPTR> 000016' 000016' KSWR: ;+ ; SAVE REGISTERS, DATA TABLE ADDRESS, AND DECODE BUFFER POINTER , 000016' 000016' 004767 0000221 000022' 016500 000026' 000026' 016501 CALL SAVREG OOOOOOG .- DTADR(R5) LET R1 .- BUFPTR(R5) JSR PC,SAVREG MDV DTADR(R5},RO MOV BUFPTR (R5) ,R1 SUB #~*2,R5 MOV JSR MJV MOV R5,-(SP) R1,-(RS) PC,ARGCHK (SP)+,RS (RS)+,R1 BCS 50002$ SUB rv10V MOV MOV JSR MOV MOV MOV #2*2,R5 R5,-(SP) R1,-(R5) RO,-(R5) PC,NUMCHK (SP)+,R5 (R5)+,R1 (RS)+,R2 BCC 50003$ 3R 1$ LET RO 000000 000002 ;+ ; GET TO FIRST ARGUMENT ;- 000032 1 000032 1 162705 000036' 010546 000040' 010145 000042 1 004767 000046' CALL ARGCHK IN <R1> OUT <R1> 000002 MDV OOOOOOG I'\""",~,,~ VI~UV;') 000050' 012501 ;+ ; IF ITIS NOT A CARRIAGE RETURN, VERIFY THAT IT IS NUMBER , '- 000052 1 000052 1 103435 000054 1 000054' 162705 000060 1 010546 000062 1 010145 000064 1 010045 000066 1 004767 000072' 012605 000074' 012501 000076 1 012502 IF.NO.ERROR THEN CALL NUMCHK IN <RO,R1> OUT <R1,R2> 000004 OOOOOOG ;+ ; IF THERE IS AN ERROR IN THE NUMBER, LEAVE ., 000100 1 000100' 103002 000102 1 000102 1 000434 IF.ERROR THEN 000104 1 ELSE INLINE <BR 1$> KSWR PROCESS THE ISWR 1 KEYBOARD KSWR.MAC 28-JUL-78 09:21 (4) (3) 633 634 635 636 637 638 (4) (3) (4) (3) (3) (4) 639 640 641 642 CO~~A~D t'" \ L J 648 649 (4 ) (3 ) 650 651 652 653 654 655 656 (4) 657 658 (4) 659 (4) 660 661 (4) 662 663 664 665 666 667 (3) (5) (4) (3) 20-SEP-78 18:04 PAGE 19-3 000104' 000420 000106' SEQ 0672 SR 50004$ SUB #1*2,R5 R5,-(SP) R1 , - (R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 500035: ;+ ; NUMBER OK, VERIFY NO JUNK ARGUMENTS EXIST :000106' 000106' 000112' 000114 1 000116 1 000122' 000124' CALL ARGCHK IN <R1> OUT <R1> 162705 010546 010145 004767 012605 012501 000002 M8V MOV JSR OOOOOOG MOV MOV ;+ ; IF THERE ARE MORE JUNK ARGUMENTS - LEAVE, BUT STUFF ERROR MSG FIRST ;- 64~ 644 645 (6) 646 (4) 647 MACY11 30A(1052) KSWR ROUTINE 000126' 000126 1 103405 000130' 000130' 012760 000136' 000136' 000416 IF.NO.ERROR THEN BCS 50005$ MOV #CM.ARG,DT.KBRSP BR 1$ BR 50006$ MOV R2,DT.SWR(RO) MOV R5,-(SP) #KS.MG2,-(R5) DT.SWR(RO),-(R5) PC,BOA16 LET DT.KBRSP(RO) .- #CM.ARG OOOOOOG 000022 INLINE <BR 1$> ELSE 000140' 000140' 000402 000142' 50005$: ;+ ; NO JUNK ARGUMENTS - SO REPLACE SOFTWARE SWITCH REG WITH ; NEW VALUE 000142' 000142' 010260 LET DT. SWR (RO) • - R2 000056 ENDIF 000146' 000146 1 000146' 000146' 50006$: ENDIF 50004$: ENDIF 000146' 000146' 50002$: ;+ ; CONVERT THE NUMBER IN DT.SWR TO ASCII, STUFF MESSAGE ; AND RETURN 000146' 000146 1 000150 1 000154' 000160' CALL BOA16 IN <DT.SWR(RO),#KS.MG2> 010546 012745 016045 004767 000005 1 000056 OOOOOOG MOV MOV JSR rviACY1 i 30A(1052) KSWR PROCESS THE ISWR 1 KEYBOARD COMMAND KSWR ROUTINE 28-JUL-78 09:21 KSWR.MAC (3) 668 669 (4) 670 671 672 673 674 675 (2) 676 (3) 677 678 (3) (3) (2) 679 20-SEP-7B 18:04 PAGE 19-4 SEQ 0673 000164 1 012605 000166 1 000166 1 012760 LET DT.KBRSP(RO) 000000 1 000022 .- #KS.MG1 MdV (SP)+,R5 MOV #KS.MG1,DT.KBRSP ;+ ; RESTORE REGISTERS AND RETURN. ;- 000174 1 000174 1 000174 1 000174 1 004767 000200 1 000200 1 000200 1 000200 1 000207 000001 INLINE <1$:> 1$: CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 50001$: .END MACY11 30A(1052) KSWR PROCESS THE ISWR 1 KEYBOARD COMMANil SYMBOL TABLE 28-JUL-78 09:21 KSWR.MAC 000102 ACSR ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ARGCHK= ****** G 000106 ASB ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS 000001 BITO 000001 BITOO 000002 BITOl B1T02 000004 000010 BIT03 000020 BIT04 000040 BIT05 BIT06 000100 000200 BIT07 000400 BITOS 001000 81T09 BIT1 000002 8!T10 002000 BIT11 004000 8IT12 010000 BIT13 020000 81T14 040000 BIT1S 100000 000004 811'2 000010 BIT3 000020 BIT4 000040 BIT5 BIT6 000100 000200 BIT7 000400 BITS BIT9 = 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BOA16 = ****** G BUFPTR= 000002 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CM.ARG= ****** G CONFIG= 000056 000001 000015 000100 000102 000003 ....... 'Tnll""'l 000017 1.1r;LU 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 0000'42 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT .CFO=' 000014 OT.CF1= 000016 DT.ERR= 000020 OT.ES1= 000044 DT.EVN= 000000 OT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MlS= 000032 DT.MTI= 000,10 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000054 DT.RCS= 000102 DT. REL= 000040 DT.SCT= 000066 DT.SMX= 000106· DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT. WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 CQOVF CR CSRA CSRC CTRLC ;::: 20-SEP-76 ECCSTA= 000010 EN8EOP= 010000 ENBNUL= 00000' ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 1NHDRP= 040000 INHEPR= 020000 Ir~HREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 100000 lOMOD IOMODP~ 102000 IOMODR= , 112000 IOMODX= 1100CO 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 K1PAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 K1POR7= 172316 000016RG KSWR OOOOOOR KS.MG1 KS.MG2 0OOOO5R KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 18:04 PAGE 20 SEQ 0674 LF = LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MODHOL::;: MODSEl= M$GCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPO?= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSM8= MSGSMH= 000012 000001 000200 076600 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 OOOC22 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 iviSGSMS= 00JOi6 MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOA?TY= NULL NUM-CHK= 000000 000012 000020 001000 000020 000002 000000 *** *** G 024020 PAERR = 00a010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 010000 PDP70 000000 PRIO 000040 PRI1 000200 PRI4 000240 PRI5 000300 PRI6 000340 PRI7 000000 PRO 000200 PR4 000240 PR5 000300 PR6 m~EN PR7, PS PS~J 000340 177776 177776 000054 000130 000126 000132 (')00124 000101 000022 000020 020000 010000 RANNUM= RBUFEA= RBUFPA= RBUFSZ= RBUFVA= RDSERV= RDlr,fHMI= RELERR= RELMOD= RE.L TIM= RESREG= ****** G 000056 RES1 ;::: 000060 R~S2 RICHAR= 031060 RPTDAT= 002000 . RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5Vt.LU= 001740 075464 SAM SAVREG= ****** G SSt.,OR = 000102 SBKMOD= 000000 r:- n i l ' -r" I _ .Jc:H... ..;:"-~- ""' rt"''''' ViUVVV SC ..lI.DR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 S?OINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBI= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 KSWR PROCESS THE ISWR 1 KEYBOARD COMMAND MACY11 30A(1052) KSWR.MAC 28-JUL-78 09:21 SYMBOL TABLE UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASAOR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 If..'BUFSZ= 000142 000116 WDfR 000114 WOTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 ABS. 000000 000202 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:KSWR,DSKZ:KSWR=SPMAC/ML,EQUATEyKSWR RUN-TIME: 12 2 .4 SECONDS RUN-TIME RATIO: 41/15=2.6 14K (27 PAGES) CORE USED: $F$BLA= 000170 SF$CAS= 000150 $F$OEC= 000220 $F$DO = 000340 $F$FAL= 000405 t!""r-r.-l"""r""..,·''''1_ ;;;lr;puuu- I'\~T\ i f " " uuv ... vu $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130. $F$WHI= 000120 $F$YES= 000402 20-SEP-78 18:04 PAGE 20-1 SIFLEV= 177777 SISKO = 000001 $ISK1 = 000001 $ISK2 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 000300 $NSKO $NSK1 = 000110 $NSK2 = 000110 $NSK3 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050007 000300 $TEMP $TSKO = 050002 $TSK1 = 050004 $TSK2 = 050006 $$ARGC= 000004 SEQ 0675 $$BYTE= 000000 $SCASE= 000000 $$DST = 000000 $SELOC= 000402 $$ERFL= 000000 SSFL.t...G= 000001 $$FROM= 000000 $SLOC = 000126R $$LOCN= 000000 $$R=:G = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 000202R ·MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 526 579 633 636 667 18:05 TABLE OF CONTENTS COMMON EQUATE MODULE KKTON PROCESS KTON KEYBOARD COMMAND KKTOFF PROCESS KTOFF KEYBOARD COMMAND COMMON DEFINTITIONS AND REFERENCES FOR KKTON . PR I·NT ;SPMAC: VERSION 1.1 000000' KKTON ROUTlf'-JE SEQ 0676 KTONOF PROCESS KTON, KTOFF KEYBOARD COMMANDS MACY'1 30A(1C52) KTONOF.MAC 28-JUL-78 09:21 COMMON EQUATE MODULE 508 509 .TITLE .IDENT 510 511 512 ;++ 5;3 2C-SEP-78 18:05 PAGE 19 SEQ 0677 KTONOF PROCESS KTON, KTOFF KEYBOARD COMMANDS JVO.Oj MODULE PACKAGE NAME: KTONOF 514 515 516 517 518 519 520 521 522 523 524 FUNCTIONAL DESCRIPTION: THIS MODULE PACKAGE CONTAINS TWO ROUTINES: 1. KKTON - TURN THE MEMORY MANAGEMENT HARDWARE ON 2. KKTOFF - TURN THE MEMORY MANAGEMENT OFF VERSION: 0.0 EDIT ;- DATE BY REASON KTONOF PROCESS KTON, KTOFF KEYBOARD COMMANDS KTONOF.MAC 28-JUL-78 09:21 KKTON 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 MACY11 30A(1052) 20-SEP-78 18:05 PROCESS KTON KEYBOARD COMMAND .SBTTL KKTON .IDENT JVO.Oj PAGE 19-1 PROCESS KTON KEYBOARD COMMAND ;++ MODULE NAME: KKTON FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCE5SES THE "KTON" KEYBOARD COMMAND. 'IT WILL TEST TO SEE IF KT IS AVAILABLE, AND THAT THE ~XERCISER IS NOT IN RUN MODE. IT WILL SET THE KT STATUS BIT IN STATUS WORD 0 AND ENABLE THE KT HARDWARE. IFIN RUN MODE OR NO KT AVAILABLE, THE APPROPRIATE ERROR MESSAGE IS STUFFED INTO THE DATA TABLE1S ADDRESS OF KB CMD RES?ONSE. INPUTS: 1. ADDRESS OF DATA TABLE 2. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: DT.CFO DT.STO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.STO DT.KBRSP PATHOLOGICAL CONNECTIONS: CM.ARG CM.RUN 562 SUBORDINATE ROUTINES CALLED: ARGCHK - CHECK FOR EXISTENCE OF AN ARGUMENT 563 564 565 FUNCTIONAL SIDE EFFECTS: NONE 566 570 CALLING SEQUENCE: CALL KKTON IN <DTADR,BUFPTR> WHERE DTADR = ADDRESS OF DATA TABLE BUFPTR = COMMAND DECODE SUFFER POINTER 571 572 VERSION: 567 568 569 0.0 573 574 575 576 577 SEQ 0678 EDIT ;- DATE BY REASON KTONOF PROCESS KTON, KTOFF KEYBOARD COMMANDS MACYi1 3CA(1052) 20-SE?-78 18:05 KTONOF.MAC 28-JUL-78 09:21 KKTOFF PROCESS KTOFF KEYBOARD COMMAND 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 60S 606 607 608 609 610 611 612 613 614 615 616 61'7 618 619 620 621 622 PAGE ~9-2 .SBTTL KKTOFf PROCESS KTOFF KEYBOARD COMMAND .IDENT /VO.O/ ;++ MODULE NAME: KKTOFF FUNCTIONAL DESCRIPTION: THIS ROUTINE WILL PROCESS THE KTOFF KEYBOARD COMMAND. IT WILL TEST FOR THE PRESENCE OF KT. IF NO KT AVAILABLE, IT WILL STUFF A NO KT MESSAGE. IF KT IS AVAILABLE, A CHECK IS MADE TO SEE IF THE EXERCISER IS IN RUN MODE. IF IN RUN MODE, THE ERROR MESSAGE IS STUFFED. IF NOT IN RUN MODE, THE STATUS WORD WILL BE UPDATED(THE KT BIT CLEARED) AND THE KT TURNED OFF. NOTE: THE MESSAGES ARE STUFFED INTO THE DATA TABLE'S ADDRESS OF KB CMD RESPONSE LOCATION. INPUTS: ADDRESS OF DATA TABLE COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: DT.STO DT.CFO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.STO DT.KBRSP PATHOLOGICAL CONNECTIONS: NONE SU80R~INATE ROUTINES CAL~ED: ARGCHK FUNCTIONAL SIDE EFFECTS: NONE 624 625 CALLING SEQUENCE: CALL KKTOFF IN <DTADR,CMDBUF> WHERE DTADR = ADDRESS OF DATA TABLE CMDBUF = COMMAND DECODE BUFFER POINTER 626 627 VERSION: 623 628 629 630 631 SEQ 0679 0.0 EDIT DATE BY REASON KTO!~OF PROCESS KTON, KTOFF KEYBOARD COMMANDS MACY11 30A(1052) 2C-SE?-78 ;8:05 PAGE 19-3 KTONOF.MAC 28-JUL-78 09:21 COMMON DEFINTITIONS AND REFERENCES FOR KKTON 633 634 635 536 (1) 637 638 639 000000' 000000' 000001 000001 .SBTTL COMMON DEFINTITIONS AND REFERENCES FOR KKTON .MCALL STRUCT .PRINT STRUCT ;SPMAC: VERSION 1.1 $LSTIN:1 $LSTTAG=1 540 641 542 643 644 645 646 647 648 549 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 ;**************** , . ; REFERENCED BY OTHER MODULES: .GL08L .GLOBL , KKTOFF KKTON ;MODULE ENTRY POINT ;MODULE ENTRY POINT ;**************** , ; GLOBAL REFERENCES: , .GL08L .GLOBL .GLOBL ARGCHK CM.ARG CM.RUN ;CHECK FOR EXISTENCE OF AN ARGUMENT ; 'ILLEGAL OR INVALID ARG' MESSAGE ; "NOT A VALID COMMAND IN RUN MODE" MESSAGE ;**************** ; LOCAL STORAGE: 000000' 000006' 000007' 000014' 000016' 000024' 000026' 047516 045440 000 113 020124 000045 052113 047440 000045 000 000030' 022524 KT. NOKT: .ASCIZ 047117 KT.ON: .ASCIZ /KT ON%/ 043106 KT.OFi=: .ASCIZ /KT OFF%/ KT.FLG: .EVEN .BYTE 0 /NO KT%/ jKT ON/OFF FLAG SEQ 0680 KTONOF PROCESS KTON, KTOFF KEYBOARD COMMANDS KTONOF.MAC 28-JUL-78 09:21 KKTON 667 668 669 (2) 670 67; 672 673 674 (4) 675 (2) 676 (3) (3 ) (2 ) 677 678 (2 ) 679 680 681 682 683 (4) 684 685 686 687 688 689 (2) 690 (2) (3) 691 (4) 692 (4) 693 694 695 696 697 698 (6) (9) 699 700 701 702 703 704 705 (4) (3) .S8TTL MACY11 30A(1052) ROUTINE KKTON ~0-SEP-78 18:05 SEQ 0681 ROUTINE ROUTINE KKTON <DTADR,BUFPTR> 000030' 000030' PAGE 19-4 KKTON: ..... ,' ; SET UP THE ON FLAG 'f - 000030' 000030' 105067 000034' COO034' 000404 000036' 000036' 000036' 000036' 000207 LET KT.FLG :B= #0 CLR3 177772 INLINE <BR KTROU> KT.FLG BR KTROU ENDRTN 500005: 50001$: RTS PC MOVB #1,KT.FLG ROUTINE KKTOFF <DTADR,BUFPTR> 000040' 000040' KKTOF!=: 000040' 000040' 112767 ;+ ; SET UP THE OFF FLAG ;LET KT.FLG :B= #1 000001 177760 ;+ ; SAVE REGISTERS AND DATA TABLE ADDRESS ;- 000046' 000046' 000046' 000046' 000050' 000052' 000052' 000056' 000-056' INLINE <KTROU:> KTROU: PUSH RO,R1 016500 016501 r'JlJV RO,-(SP) R1,-(SP) MOV DTADR(R5),RO MOV BUFPTR(R5),R1 BIT BNE #RUNMODE,DT.STO{ 50002$ C:"O #1*2,R5 R5,-(SP) MOV 010046 010146 LET RO .- DTADR(R5) LET Rl '- 000000 BUFPTR(R5) 000002 ;+ ; IF NOT IN RUNMODE THEN CONTINUE ;- 000062' 000062' 032760 000070' 001071 IF #RUNMODE NOTSETIN DT.STO(RO) THEN 100000 000010 ;+ ; SEE IF ANY ARGUMENTS EXIST & IF ; THEY DO , THIS IS A BAD COMMAND , 000072' 000072' 162705 000076' 010546 CALL ARGCHK IN <R1> OUT <R1> 000002 -~-' IV.OV KTONOF PROCESS KTON, KTOFF KEYBOARD CDMMANDS KTONOF.MAC 28-JUL-78 09:21 KKTON (4) (3) (3 ) (4) 706 "'I V ... ..,I 708 709 710 711 712 713 (6) 714 (6) (9) 715 (6) (9) 716 (6) 717 (4) 713 (6) (9) 719 (6) 720 (4) 721 000100 1 000102 1 000106 1 000110' 010145 004767 012605 012501 18:05 PAGE 19-5 SEQ 0682 MOV R1 t - ( R5) PC,ARGCHK (SP)+,R5 (R5)+,R1 JSR ~;10V MOV THE ARGUMENT IS A CR SO ALL IS O.K. SEE IF KT IS PRESENT AND IF IT IS, IF KT FLAG IS 0 THEN SET THE KTSTAT BIT IN DT.STO OTHERWISE CLEAR IT IF.ERROR THEN IF #KTPRES SETIN DT.CFO(RO) THEN 000014 032760 001444 000400 105767 001021 177676 052760 000020 000010 012737 000001 177572 032760 001403 001000 000014 IFB KT.FLG EO #0 THEN LET DT.STO(RO) #KTPRES.DT.~FO(R SEQ 50004$ KT.FLG TSTS 50005$ BNE DT.STO(RO) SET.BY #KTSTAT #KTSTAT,DT.STO(R BIS MOV #1 ,@#SRO BIT 8EQ #ADDR22,CT.C~0(R IF #ADDR22 SETIN DT.CFO(RO) THEN ' 000020 .- BIT LET @#SRO := #1 ... .,. Lt:.1 052737 50003$ BCC 103054 r.:.'I.ilrn'"\ ""'rt.;)r;.;) .- ~~~n~ ~rr..Jr\...J ~~T .,.)1- ~ ov ....... 172516 I 50006$ ~ctTn~ TI 1.00' .... 1_ . . SIS #BIT04,@#SR3 MOV #KT.ON,DT.KBRSP( ENDIF 50006$: ;+ ; LOAD THE KTON MESSAGE IN DT.KBRSP 72~ 723 724 725 (4) 726 (4) (3) 727 (6) 728 (4) 729 (6) (9) 730 (6) 731 (4) 732 733 734 735 736 (4) 20-SEP-78 OOOOOOG + 000112 1 000112 1 000114 1 000114 1 000122' 000124 1 000124 1 000130' 000132' 000132 1 000140 1 000140 1 000146 1 000146 1 000154 1 000156 1 000156' 000164' 000164' MACY11 30A(1052) ROUTINE , 000164' 000164 1 000172' 000172 1 000174' 000174 1 000174 1 000202 1 000202 1 000206 1 000206' 000214 1 000216' 000216' 000224' 000224 1 LET DT.KSRSP(RO) 012760 000007' 000022 ELSE 50007$ BR 50005$: LET DT.STO(RO) . - DT.STO(RO) CLR.BY HKTSTAT #KTSTAT,DT.STO(R 8IC LET @#SRO := #0 @#SRO CLR IF #ADDR22 SETIN DT.CFO(RO) THEN #ADDR22,DT.CFO(R BIT 50010$ BEQ LET @#SR3 := @#SR3 CLR.BY #81T04 #BIT04,@#SR3 SIC ENDIF 50010$: 000417 000010 042760 000020 005037 177572 032760 001403 001000 000014 042737 000020 172516 .- #KT.ON + LOAD KTOFF MESSAGE INTO DT.KBRSP 000224 1 000224' 012760 LET DT.KBRSP(RO) 000016 1 000022 .- #!<T .OFF r{OV #KT.OFF,DT.KBRSP KTONOF PROCESS KTON, KTOFF KEYBOARD COMMANDS KKTON 28-JUL-78 09:21 KTONOF.MAC 737 (4) 738 (4) (3) MACY11 30A(1052) ROUTINE 20-SEP-78 18:05 PAGE 19-6 SEQ 0683 ENDIF 000232' 000232' 000232' 000232 1 000403 000234 1 50C07$: ELSE BR 50011$ MOV #KT.NOKT,DT.KBRS BR 50012$ MOV #CM.ARG,DT.KBRSP BR 50013$ MOV #CM.RUN,DT.KBRSP MOV MOV (SP)+,R1 (SP)+,RO RTS PC 50004$: "7-::,,,,, '''''::' 740 741 742 743 744 (4) 745 (4) 746 747 (4 ) (3) 748 749 750 751 752 753 (4) 754 (4) 755 (4) (3) 756 757 758 759 760 761 (4) 762 (4 ) 763 764 765 766 767 768 (2) (3) 769 770 (3) (3) (2) 771 772 773 ;+ ; LOAD THE NO KT MESSAGE INTO DT.KBRSP ;000234 1 000234 1 012760 000242' LET DT.KBRSP(RO) .- #KT.NOKT 000000 1 000022 ENDIF 50011$: 000242' ELSE 000242 1 000242' 000403 000244 1 500035: ;+ ; LOAD THE ILLEGAL ARGUMENT INTO DT.KBRSP . 000244 1 000244' 012760 000252' 000252' 000252' 000252' 000403 000254' LET DT.KBRSP(RO) 0- #CM.ARG OOOOOOG 000022 ENDIF 500;2$; ELSE 50002$: ;1'" ; LOAD THE RUN MODE MESSAGE . 000254' 000254' 012760 000262 1 000262' LET DT.KBRSP(RO) . - #CM.RUN OOOOOOG 000022 ENDIF 50013$: ;+ ; CLEAN UP ;- 000262 1 000262' 012601 000264 1 012600 POP Rl,RO 000266' 000266' 000266' 000266' 000207 ENDRTN 000001 .END 50000$: 50001$: MACY11 30A(1052) KTONOF PROCESS KTON, KTOFF KEYBOARD COMMANDS SYMBOL TABLE 28-JUL-78 09:21 KTONOF.MAC ACSR 000102 ACTSIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= UUUL.UV ARGCHK= ****** G 000106 ASB ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS 000001 BITO 000001 BITOO BIT01 000002 000004 BIT02 8IT03 000010 81T04 000020 BIT05 000040 BIT06 000100 BIT07 000200 'B I T08 000400 BIT09 001000 BIT1 000002 BIT10 002000 BIT11 004000 81T12 010000 020000 BIT13 040000 BIT14 100000 BIT15 000004 8IT2 BIT3 000010 000020 8IT4 BIT5 000040 BIT6 000100 000200 BIT7 BIT8 000400 001000 BIT9 BKDEF 000002 BKIVlOD 000020 BKMODE= 040000 BKSLSH= 000134 BUFPTR= 000002 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001, CM.ARG= ****** G CM.RUN= ****** G CONFIG= 000056 #"\1*\1"\1"'\/"\1"\ 000001 000015 000100 000102 000003 GOQ017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT. BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT .,KBP::: 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS::: 000032 DT.MTI= 00011 {) DT.OFF= 000070 DT. PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 CQOVF CR CSRA CSRC CTRLC 20-SEP-78 ECCSTA= 000010 ENSEOP= 010000 ENBNUL= 00D001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000, HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT::: 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 IOMOD ,- 100000 IOMODP= 102000 IOMODR= 112000 10MODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KKTOFF 000040RG 000030RG KKTON KTERRO= 000040 KTPRES= 000400 KTROU 000046R KTSTAT::: 000020 KTXTND= 040000 18:05 PAGE 20 SEQ 0684 KT.FLG 000026R KT.NOK OOOOOOR KT.OFF 000016R 000007R KT.ON 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= :)40000 MODEXH= 004000 MODHOL= 002000 1V1ODSE L= 001000 MSGCKD=' 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 0000'13 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 00J001 MSGSfT= 000006 MSGSKE= 000003 MSGSM9= 000015 MSGSMH= 000011 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000':)02 000000 NULL 024020 mAJEN 000010 PAERR PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 010000 PDP70 000000 PRIO 000040 PRI1 000200 PRI4 000240 PR15 000300 PRI6 000340 PRI7 000000 PRO PR4 000200 PR5 000240 PR6 000300 PR7 000340 177776 PS 177776 PSW RANNUM= 000054 R3UFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 R8UFVA= 000124 RDSERV= 000101 R0WHMI= 000022 RELERR= 000020 REUJiOD= 020000 RC:L TIM= 010000 RES1 000056 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNIV10D= 100000 R5VALU= 001740 SAM 075464 SB~,DR = 000102 Sbr..r'iiOD= 000000 S3KSEL= 0;0000 SC.ADR= 000006 Sc. ALC= 000014 SC.APC= 0000i6 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBI= 064757 STA i1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 SVR2 000066 KTONOF PROCESS KTON, KTOFF KEYBOARD COMMANDS MACY11 30A(1052) KTCNOF.MAC 28-JUL-78 0~:21 SYMBOL TABLE UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WSUFRQ= 000140 WSUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $SGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $FSCAS= 000150 $F$DEC= 000220 000070 SVR3 000072 SVR4 000074 SVR5 SVR6 = 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 ABS. 000000 000270 000 001 0 ERRORS DETECTED: DEFAULT GL08ALS GENERATED: a DSKZ:KTONOF,DSKZ:KTONOF=SPMAC/ML,EQUATE,KTONOF RUN-T IfYlE: 14 5 .4 SECONDS RUN-TIME RATIO: 54/20=2.6 14K (27 PAGES) CORE USED: $F$DO = 000340 $F$FAL= 000405 SF$GOO= 000400 $F$IF = 000110 $FSINC= 000210 $F$~OO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLi:.V= 177777 000001 $ISKO 000001 $ISK1 $ISK2 000001 $ISK3 000001 20-SEP-78 18:05 PAGE 20-1' $ISK4 $LOCTA= $LSTIN= $LSTTA= $NESTL= $NSKO $NSK1 SNSK2 $NSK3 $NSK4 $NSK5 $SAVLE= STAGLE= $TAGNU= $TEMP $TSKO $TSK1 $TSK2 $TSK3 $TSK4 $$ARGC= $$BYTE= 000001 177777 000001 000001 177777 000300 000110 000110 000110 000110 000110 177777 177777 050014 000300 050013 050012 050011 050007 050010 000004 000403 SEQ 0685 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFl= 000000 $$FLAG= 000001 $$FROM= 000001 $$LOC = 000214R $$LOCN= 000000 S$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 S$TO 000001 S$$TAG= 050000 000270R = .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 529 532 562 613 663 18:06 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR LPONOF 000000' .PRINT ;SPMAC: VERSION 1.1 KLPON PROCESS THE 'LPON' KEYBOARD COMMAND KLPOFF PROCESS THE 'ROTOF' KEYBOARD COMMAND KLPON ROUTINE SEQ 0686 LPONOF PROCESS THE 'LPON ' AND 'LPOFF ' KEYBOARD COMMANDS LPONOF.MAC 28-JUL-78 09:22 COMMON EQUATE MODULE 508 509 510 511 512 514 515 516 517 518 519 520 521 522 523 524 525 526 527 .TITLE .IDENT LPONOF JVO.Oj MACY11 30A(1052) 20-SEP-78 18:06 SEQ 0687 PROCESS THE 'LPON ' AND 'LPOFF ' KEYBOARD COMMANDS ;++ MODULE PACKAGE NAME: lPONOF FUNCTIONAL DESCRIPTION: THIS ROUTINE CONSISTS OF TWO MODULES: 1. KLPON - PROCESS THE KEYBOARD COMMAND iLPON ' 2. KlPOFF - PROCESS THE KEYBOARD COMMAND 'LPOFF' VERSION: 0.0 EDIT PAGE)9 BY DATE REASON lPONOF PROCESS THE 'lPON ' AND 'LPOFF' KEyBOARD COMMANDS MACY11 30A(1052) 20-SEP-78 LPONOF.MAC 28-JUL-78 09:22 COMMON DEFINITIONS AND REFERENCES FOR LPONOF .SBTTL 529 530 531 532 ( 1) 533· 534 COMMON DEFINITIONS AND REFERENCES FOR LPONOF .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG = 1 000000 1 000000 ' 000001 000001 535 536 ;**************** 537 538 ; REFERENCED BY OTHER MODULES: 539 .GLOBL .GLOBL 540 541 KLPON KLPOFF ;'LPON ' MODULE ENTRY POINT ; 'LPOFF ' MODULE ENTRY POINT 542 ;**************** , 543 544 ; GLOGAL REFERENCES: 545 546 , 547 .GLOBL .GLOBL .GLOBL 548 549 CM.ARG ARGCHK LPINT ;ILLEGAL ARGUMENT MESSAGE ;CHECK AN ARGUMENT ;LP INTERRUPT ROUTINE 550 551 ;**************** 552 553 ; LOCAL STORAGE: 554 555 556 557 558 559 560 000000 1 050114 000006' 000 000007' 114 000014 1 022506 000017' 000 047440 022516 LP.MGN: .ASCIZ /LP ON%/ 020120 000 043117 LP.MGF: .ASCIZ /LP OFF%/ LP.FLG: .BYTE .EVEN a ;ON/OFF FLAG BYT~ 18:06 PAGE 19-1 SEQ 0'688 LPONOF PROCESS THE 'LPGN' AND 'LPOFF ' KEY80ARD COMMANDS MACY11 30A(1052) 20-SEP-78 LPONOF.MAC 28-JUL-78 09:22 KLPON PROCESS THE 'LPON l KEYBOARD COMMAND 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 .SBTTL KLPON .IDENT /VO.O/ 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 PAGE 19-2 PROCESS THE 'LPON ' KEYBOARD COMMAND ;++ MODULE NAME: KLPON FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE 'LPON KEYBOARD ROUTINE. IT WILL FIRST VERIFY THAT NO ARGUMENT APPEARS IN THE COMMAND DECODE BUFFER. IF AN ARGUMENT IS IN THE BUFFER, AN ERROR MESSAGE IS ISSUED. OTHERWISE, THE LP ON/OFF STATUS BIT IN THE STATUS INDICATOR IS SET. t INPUTS: 1. ADDRESS OF DTABLE 2. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: DT.STC 589 590 591 592 18:06 PATHOLOGICAL CONNECTIONS: LPINT ROUTINE, LOC. 200 AND 202 Cf.JI.ARG SUBORDINATE ROUTINES CALLED: ARGCHK - CHECK FOR UNWANTED ARGUMENTS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KLPON IN <DTADR,BUFPTR> WHERE: DTADR = ADDRESS OF DTABLE BUFPTR = COMMAND DECODE BUFFER POINTER VERSION: 0.0 EDIT ;-- DATE BY REASON SEQ C6B9 LPONOF PROCESS THE 'LPON ' AND 'LPOFF ' KEYBOARD COMMANDS MACY11 30A(1C52) 2C-SEP-78 LPONOF.MAC 28-JUL-78 09:22 KLPOFF PROCESS THE iROTOF ' KEYBOARD COMMAND 613 614 .SBTTL KLPOFF .IDENT /VO.O/ 18:06 PAGE PROCESS THE 'ROTOF ' KEYBOARD COMMAND 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 6GO 661 ;++ MODULE NAME: KLPOFF FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE 'LPOFF ' KEYBOARD ROUTINE. IT WILL FIRST VERIFY THAT NO ARGUMENT APPEARS IN THE COMMAND DECODE BUFFER~ IF AN ARGUMENT IS IN THE BUFFER, AN ERROR MESSAGE IS ISSUED. OTHERWISE, THE LP ON/OFF STATUS BIT IN THE STATUS INDICATOR IS CLEARED. INPUiS: 1. ADDRESS OF DTABLE 2. COMMAND DECODE BUFFER POINTER 3. ADDRESS OF COMMAND RESPONSE BUFFER IMPLICIT INPUTS: NONE OUTPUTS: NONE iMPLICIT OUTPUTS: DT.KBRSP DT.STO PATHOLOGICAL CONNECTIONS: CM.ARG SUBORDINATE ROUTINES CALLED: ARGCHK - CHECK FOR UNWANTED ARGUMENTS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KLPOFF IN <DTADR,BUFPTR> WHERE: DTADR = ADDRESS OF DTABLE BUFPTR = COMMAND DECODE BUFFER POINTER VERSION: 0.0 EDIT DATE BY REASON ~9-3 SEQ 0690 LPONOF PROCESS THE 'LPON' AND 'LPOFF ' KEYBOARD COMMANDS LPONOF.MAC 28-JUL-78 09:22 KLPON ROUTINE 663 664 665 666 (2 ) 667 668 669 670 671 672 (4) 673 (2 ) 674 (3) (3) (2) 675 676 677 (2 ) 678 679 680 681 682 683 (4) 684 685 686 687 688 689 (2) 690 (2 ) (3) 691 (4 ) 692 (4) 693 694 695 696 697 698 699 (4) (3) (4) (3} (3) (4) .SBTTL MACY11 30A(1052) 20-SEP-78 18:06 PAGE 19-4 SEQ 0691 KLPON ROUTINE ROUTINE KLPON <DTADR,BUFPTR> 000020' 000020' KLPON: ;+ . ; SET ON FLAG 000020' 000020' 105067 000024' 000024' 000404 000026' 000026' 000026' 000026' 000207 LET LP.FLG :B= #0 CLR8 177773 LP,FLG INLINE <BR LPROU> BR LPROU ENDRTN 50000$: 50001$: RTS PC MOV8 #1.LP.FLG ROUTINE KLPOFF <DTADR,BUFPTR> 000030' 000030' KLPOFF: ;+ ; SET OFF FLAG ;- 000030' 000030' 112767 LET LP.FLG :B= #1 000001 177761 ;+ ; INITIALIZE AND SAVE DTABlE ADDRESS AND DECODE BUFFER POINTER , 000036' 000036' 000036' 000036' 000040' 000042' 000042' 000046' 000046' INLINE <LPROU:> LPROU: PuSH RO,R1 010046 010146 016500 016501 LET RO '- DTADR(R5) LET R1 ' - BUFPTR(R5) 000000 000002 MOV MOV RO,-(SP) R1.-(SP) MOV DTADR(R5) ,RO MOV BUFPTR(R5),R1 SUB MOV MOV JSR #1*2.R5 R5,-(SP) R1,-(R5) PC,ARGCHK (SP)+,R5 {R5)+,R1 ;+ ; MAKE SURE NO ADDITIONAL ARGUMENTS ARE IN DECODE BUFFER ;- 000052' 000052' 000056' 000060' 0000"62 • 000066' 000070' CALL ARGCHK IN <R1> OUT <R1> 162705 010546 010145 004767 012605 012501 000002 OOOOOOG rrov MOV MACY11 30A(1052) LPONOF PROCESS THE 'LPON' AND 'LPOFF' KEYBOARD COMMANDS LPONOF.MAC 2S-JUL-78 09:22 KLPON ROUTINE 700 701 702 703 704 705 706 707 (6) 70S (4) 709 710 (4) (3) 20-SEP-78 18:06 PAGE 19-5 SEQ 0692 ;+ THERE IS NO <CR> YET SO IT'S A BAD COMMAND ... STUFF ERROR : MESSAGE AND BEAT IT .•.. f 'f - 000072' 000072' 103404 000074' 000074' 012760 IF.NO.ERROR THEN LET DT.KBRSP(RO) .- #CM.ARG OOOOOOG 000022 ELSE 000102 1 000102' 000426 000104' BCS 50002$ MOV #CM.ARG,DT.KBRSP BR 50003$ TSTB BNE LP.FLG 50004$ 50002$: 711 ;+ ; NOW DETERMINE IF LPON OR LPOFF COMMAND 712 713 714 715 716 (6) (9) 717 718 719 , 000104' 000104' 105767 000110 1 001015 IFB LP.FLG ;+ ; SET THE LPSTAT BIT ; IN DT.STO ... AND LOAD UP INTERRUP ROUTINE ,- '720 721 722 (6) 723 (4) 724 (4) 725 (4) 726 727 (4) (3) 728 729 730 731 732 733 (6) 734 (4) 735 (4) 736 (4) 737 738 739 EO #0 THEN 177707 000112 1 000112' 000120' 000120' 000126' 000126 1 000134' 000134' LET DT.STO(RO) := DT.STO(RO) SET.BY #LPSTAT .- #LPINT SIS #LPSTAT,DT.STO(R LET @#200 . - #PRI1 MOV #LPINT,@#200 LET @#202 MOV #PR!1,@#202 MOV #LP.MGN,DT.KBRSP BR 50005$ BIC #LPSTAT,DT.STO(R MOV #LP.MGF,DT.KBRSP 000010 052760 000001 012737 OOOOOOG 000200 012737 000040 000202 LET DT.KBRSP(RO) 012760 . - #LP.MGN 000000 1 000022 ELSE 000142' 000142' 000406 000144' 50004$: + CLEAR THE LPSTAT BIT IN DT.STO ....... 000144 1 000144 1 042760 000152 1 000152 1 012760 000160 1 000160' 000160' 000160' LET DT.STO(RO) := DT.STO(RO) CLR.BY #LPSTAT 000001 000010 LET DT.KBRSP(RO) := #LP.MGF 000007' 000022 ENDIF 50005$: ENDIF ;+ ; CLEAN UP AND LEAVE 500035: LPONOF PROCESS THE 'LPON ' AND 'LPOFF ' KEYBOARD COMMANDS 2B-JUL-78 09:22 KLPON ROUTINE MACYi1 30A(1052) 20-SEP-78 18:06 PAGE 19-6 SEQ 0693 LPO~OF.MAC ;- 740 741 742 (2) (3 ) 743 744 745 (3) (3) (2) 746 000160' 000160 1 012601 000162 1 012600 POP R1,RO 000164 1 000164 1 000164 1 000164 1 000207 000001 ENDRTN MOV MOV (SP)+,R1 (SP)+,RO RTS PC 50000S: 50001$: .END LPOilJOF PROCESS THE ILPON ' AND 'LPOFF ' KEYBOARD COMMANDS SYM.BOL TABLE 28-JUL-78 09:22 LPONOF.MAC ACSR 000102 ACTSIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ARGCHK= ****** G 000106 ASB ASSEM8= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS BITO 000001 000001 8ITOO 000002 BIT01 BIT02 000004 000010 8IT03 BIT04 000020 000040 BITOS BIT06 000100 000200 BIT07 BIT08 000400 001000 BIT09 BITl 000002 BIT10 002000 81 Til 004000 BIT12 010000 BIT13 020000 BIT14 040000 100000 BIT1S B1T2 000004 000010 8IT3 BIT4 000020 BIT5 000040 000100 BIT6 BIT7 000200 BIT8 000400 BIT9 . 001.000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BUFPTR= 000002 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CM.ARG= ****** G CONFIG= 000056 CQOVF = 000001 CR = 000015 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 .' DT. ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ES1= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.K8E= 000024 ,....,.,. "nM_ ul.l'\or- 1'\t"\I"\r-,"'.C VU\,.JU'£'U DT.KBR= 000022 DT.KBU= 000030 DT.ML.S= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.\oJLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 MACY11 30A(1052) ENBEOP= 010000 ENBNUL= 000001 ENDl-5T= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT INTR 000120 100000 IOMOD IOMODP= 102000 20-SEP-78 ,lPROU LPSTAT= LP.FLG LP.MGF LP.MGN MAPSTA= MED MEMPAS= MODEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= Ior",':ODR= 112000 ~SGS!<E= IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KlPDR7= 172316 KLPOFF 000030RG 000020RG KLPON KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 LF 000012 LPINT = ****** G MSGS~.;1B= MSGSlV:H= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRO PR4' 18:06 PhGE 20 SEQ 0694 0OO036R 000001 000017R 0OOO07R OOOOOOR 000200 076600 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000e06 000003 000015 000014 000016 000000 000012 000020 001000 000020 001)002 000000 024020 000010 002000 000100 00:)034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 PR5 = 000240 000300 PR6 PR7 000340 177776 PS 177776 PSW RANNUM= 000054 RBJFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RSUrVA= 000124 RDSERV= 000101 RDi/1HMI= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 RES1 000056 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUaOUT= 000177 RUN:ll0D= 100000 R5VALU= 001740 075464 SAM S8ADR = 000102 SBK!Vl0D= 000000 SSKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 5C.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBl= 064757 STAT1 = 000027 Sl;SPND= 000001 000062 SVRO 000064 SVR1 SVR2 000066 000070 SVR3 LPONOF PROCESS THE 'LPON' AND 'LPOFF' KEYBOARD COMMANDS LPONOF.MAC 28-JUL-78 09:22 SYMBOL TABLE UI PDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WaSTAT= 000040 WSUFEA= 000136 WaUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG=. 000400 $F$AND= 0003"\0 $F$BAD= 000401 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIP;)R4= 177610 ASS. 000000 000166 000 001 0 ERRORS DETECTED: DE-FAULl GLOBALS GENERATED; 0 DSKZ:LPONOF,DSKZ:LPONOF=SPMAC/ML,EQUATE,LPONOF RUN-TIME: 12 3 .4 SECONDS RUN-TIME RATIO: 43/16=2.6 14K (27 PAGES) CORE USED: MACY11 30A(1052) $F$BLA= 000170 SFSCAS= 000150 SFSDEC= 000220 SFSDO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 20-SEP-78 18:06 PAGE 20-1 SEQ 0695 $IFLEV= 177777 $ISKO = 000001 $ISK1 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NEST L= i 77777 SNSKO = 000300 $NSK1 = 000110 $NSK2 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050006 STEMP = 000300 $TSKO = 050003· $TSK1 = 050005 $$ARGC= 000004 $$BYTE= 000402 $$CASE= 000000 $$DST = 000000 $SELOC= 000402 $$ERFL= 000000 $SFLAG= 000001 $$FROM= 000001 $$LOC = 000110R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 S$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000001 $$TO $$STAG= 050000 000166R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 528 531 553 603 703 747 18:07 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR LSTCHK 000000' .PRINT jSPMAC: VERSION 1.1 CHKEOP CHECK THAT ALL MODULES HAVE DONE END OF PASS CHKEOP ROUTINE CHKACT CHECK FOR ACTIVE MODULES CHKACT ROUTINE SEQ 0696 LSTCHK CHECK MODULES TO DETERMINE IF ALL HAVE MADE END OF PASS LSTCHK.MAC 28-JUL-78 09:22 COMMON EQUATE MODULE 508 509 510 511 MACY11 30A(1052) 20-SEP-78 18:07 SEQ 0697 .TITLE LSTCHK CHECK MODULES TO DETERMINE IF ALL HAVE MADE END OF PASS .IDENT IVO.Oj ;++ 512 513 514 MODULE PACKAGE NAME: lSTCHK 515 516 fUNCTIONAL DESCRIPTION: THIS MODULE PACKAGE CONTAINS TWO ROUTINES: 1. CHKEO? - CHECK FOR END-Of-PASS 2. CHKACT - CHECK ALL MODULES INACTIVE 517 518 519 520 PAGE 19 VERSION: 521 522 0.0 523 524 525 526 EDIT DATE BY REASON LSTCHK CHECK MODULES TO DETERMINE IF ALL HAVE MADE END OF PASS MACY11 30A(1052) 20-SEP-78 LSTCHK.MAC 28-JUL-78 09:22 COMMON DEFINITIONS AND REFER~NCES FOR LSTCHK 528 529 530 531 ( 1) 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 .SBTTL 000000' 000000 ' 000001 000001 COMMON DEFINITIONS AND REFERENCES FOR LSTCHK .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTTAG=1 $LSTIN=i ;**************** , ; REFERENCED BY OTHER MODULES: , .GLOBL .GLOBL CHKEOP CHKACT , ;**************** , ; GLOBAL REFERENCES: , .GLOBL .GLOBL SAVREG RESREG ;**************** ;MODULE ENTRY POINT ;MCDULE ENTRY POINT 18:07 PAGE 19-1 SEQ 0698· LSTCHK CHECK MODULES TO DETERMINE IF ALL HAVE MADE END OF PASS MACY11 30A(1052) 20-SEP-78 LSTCHK.MAC 28-JUL-78 09:22 CHKEO? CHECK THAT ALL MODULES HAVE DONE END OF PASS 553 554 555 556 557 558 .SBTTL .IDENT FUNCTIONAL DESCRIPTION: THIS MODULE IS CALLED TO CHECK END OF PASS CONDITION OF ALL MODULES. IF ALL MODULES HAVE MADE END OF PASS AT THIS RELOCATION, A RETURN NO ERROR OCCURS. IF ONLY BACKGROUND MODULES ARE CONFIGURED, ONLY ONE MUST COMPLETE END OF PASS FOR THE RETURN NO ERROR CONDITION 563 564 565 566 567 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 CHKEOP CHECK THAT ALL MODULES HAVE DONE END OF PASS JVO.Oj MOCULE NAME: CHKEOP 559 570 PAGE 19-2 ;++ 560 561 562 568 569 18:07 .; INPUTS: DTABLE IMPLICIT INPUTS: DT.MLST DT.BLST OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL CHKEOP IN <DTADR> WHERE DTADR IS DATA TABLE ADDRESS VERSION: 0.0 ._, EDIT DATE BY REASON SEQ 0699 LSTCHK CHECK MODULES TO DETERMINE IF ALL HAVE MADE END OF PASS LSTCHK.MAC 28-JUL-78 09:22 CHKEOP ROUTINE 603 604 60S (2) 606 607 608 609 610 611 (3) 612 (4) 613 (4) 614 615 616 617 618 519 (4) 620 (4) 521 622 623 624 625 626 627 628 629 630 (4) (6) (9) (6) (9) 631 (4) 532 (6) (9) (6) (9) 633 (6) 634 (6) (9) 635 (6) 636 (6) (9) .SBTTL MACY11 30A(1052) 20-SEP-78 PAGE 19-3 SEQ 0700 CHKEOP ROUTINE ROUTINE GHKEOP <DTADR> 000000' 000000' 18:07 CHKEOP: ;+ ; SAVE REGISTERS AND GET DTABLE ADDR AND MODULE LIST ;- 000000' 000000' 004767 000004 1 000004' 016500 000010' 000010' 016001 CALL SAVREG JSR OOOOOOG LET RO .- DTADR(R5) 000000 MOV DTADR(R5),RO MOV DT.MLST(RO),R1 CLR R3 CLR R4 LET R1 .- DT.MLST(RO) 000032 ;+ ; INIT COUNTERS of LET R3 '- #0 000014' 000014' 005003 000016' 000016' 005004 LET R4 .- #0 ;+ WHILE NOT AT END OF LIST AND NOT AT END OF IOMOD LIST, GET A MODULE HEADER ADDRESS. IF THE MODULE IS SELECTED AND NOT ; DROPPED, INCREMENT COUNT IN R4. IF, IN ADDITION, IT IS ; ACTIVE, INCREMENT R3 COUNT. IF ACTIVE, CHECK EOP BIT - IF SET ; CONTINUE TO NEXT MODULE. IF NOT SET - RETURN ERROR - CAN'T RELOCATE. ;- 000020 1 000020' 000020' 000024' 000026' 000032 1 000034 1 000034' 000036 1 000036 1 000044 1 000046' 000054 1 000056 1 000056' 000060' 000060' 000066 1 000070 1 000070 1 000072 1 000072' 000100' WHILE (R1) NE #ENDLST AND R1 NE DT.BLST(RO) DO 50002$: 021127 001430 020160 001425 000000 000034 040000 000026 020000 000026 005204 032762 001406 004000 000026 005203 132762 001001 (R1) ,#ENDLST 50003$ R1,DT.BLST(RO) 50003$ MOV (R1)+,R2 LET R2 .- (R1)+ 012102 032762 001417 032762 001013 CM? BEQ CMP BEQ 000001 000005 IF #BIT14 SETIN STAT(R2) AND #BIT13 NOTSETIN STAT(R2) THEN BIT SEQ BIT BNE LET R4 := R4 + #1 INC IF #ACTBIT SET IN STAT(R2) THEN BIT SEQ LE; R3 := R3 + #1 INC IFB #EOPBIT NOTSETIN XFLAG(R2) THEN SITS 8NE II'BIT14,STAT(R2) 50004$ #BIT13,STAT(R2) 50004$ R4 #ACTBIT,STAT(R2) 50005$ R3 #EOPSIT,XFLAG(R2 50006$ LSTCHK CHECK MODULES TO DETERMINE IF ALL HAVE MADE END OF PASS LSTCHK.MAC 28-JUL-78 09:22 CHKEOP ROUTINE 637 (2) 638 (4) 639 (4) 640 (4) 641 (4) (3) 642 643 644 645 646 647 648 649 650 651 652 (6) (9) 653 (4) (6) (9) 654 (4) 655 (6) (9) (6) (9) 656 (6) 657 (6) (9) 658 (3) 659 (4) 660 (4) 661 (4) 662 (4) (3) 663 (4) (3) 664 665 MACY11 30A(1052) 20-SEP-78 18:07 PAGE 19-4 SEQ 0701 INLINE <8R 000102' 000102 1 000443 000104' 000104' 000104' 000104 1 000104! 000104' 000104' 000104' 000745 000106' BR 1$ BR 50002$ ENDIF 50006$: ENDIF 50005$: 50004$: ENDDO 50003$: ;+ IF R3 IS ZERO .... WE HAVE NO ACTIVE IOMOJS - SEE IF WE HAVE ANY SKMODS THAT HAVE DONE EOP. IF ONE HAS, IT'S O.K. TO RELOCATE" SO ; RETURN NO ERROR. IF # IOMODS ACTIVE IS NOT ZERO AND WE GOT THIS ; FAR, WE CAN DEFINITELY RELOCATE (THE ELSE SIDE) •••. RETURN ; NO ERROR ..... IF R3 EO #0 THEN 000106' 000106' 005703 000110' 001026 000112' 000112' 000112' 021127 000116' 000120' 000120' 000122' 000122' 000130' 000132' 000140' 000142' 000142' 000144' 000144 1 000152' 000154' 000154' 000160' 000160' 000162' 000162 1 000162' 000162' 000162' 000162' 000164' 000164' 000164' 000166' 001422 R3 50007$ CMP (R1),#ENDLST 5001'$ WHILE (R1) NE #ENDlST DO 500105: 000000 SEQ LET R2 '- (R1)+ (R1 )+,R2 MOV IF #BIT14 SETIN STAT(R2) AND #BIT13 NOTSETIN STAT(R2) THEN #BIT14,STAT(R2) BIT 50012$ SEQ #BIT13,STAT(R2) BIT 50012$ BNE LET R3 '- R3 + #1 INC R3 IFS #EOPSlT SETIN XFLAG(R2) THEN BITB #EOPBIT,XFLAG(R2 SEQ 50013$ CIl.LL RESREG JSR ?C,RESREG RETURN NO.ERROR BR 50000$ ENDIF 50013$: ENDIF 50012$: 012102 032762 001414 032762 001010 TST BNE 040000 000026 020000 000026 132762 001403 00000 i ooooe5 004767 OOOOOOG 005203 000420 ENDDO 000753 SR 50010$ BR 50014$ 50011$: ELSE 000403 50007$: ;+ LSTCHK CHECK MODULES TO DETERMINE IF ALL HAVE MADE END OF PASS LSTCHK.MAC 28-JUL-78 09:22 CHKEOP ROUTINE MACY11 30A(1052) 20-SEP-78 18:07 PAGE 19-5 SEQ 0702 ; THERE WAS AT LEAST ONE rOMOO ACTIVE •... SINCE WE GOT THIS ; FAR, THE EOP BIT MUST HAVE BEEN SET IN ALL- SO RELOCATE ....• 666 667 668 669 670 (3) 571 (4) 572 (4) 000166 1 000166 1 004767 000172 1 000172' 000413 000174' 000174' CALL RESREG OOOOOOG RETURN NO. ERROR ENDIF 673 674 675 681 682 683 Ie' 005704 000202 1 001403 000204 1 000204 1 004767 000210 1 000210 1 000404 000212 1 000212 1 (3) 688 (4) 689 (4) 690 CALL RESREG OOOOOOG (2) (4 ) 698 699 (3) (2) (3) (2} 000222 1 000222' 000222 1 000241 000224 1 000224 1 000207 (3) 697 700 701 R3 50015$ R4 50015$. JSR PC,RESREG BR 50000$ 500155: ; IF WE GET HERE - WE SIMPLY ARE WAITING FOR A BACKGROUND TO EOP 000212 1 000212 1 000212 1 000212 1 004767 000216 1 000216 1 000261 000220 1 000401 696 TST BNE TST SEQ ;+ 692 693 (2 ) RETURN NO. ERROR ENDIF 691 694 695 50000$ 50014$: IF R3 EQ #0 AND R4 NE #0 THEN 000174 1 000.74 1 005703 000176 1 001005 (9) 687 J SR IF WE EVER GET HERE. ... !!!!!! . . . . . . . . . . . . . THE SITUATION COULD BE THIS: THE NUMBER OF ACTIVE IOMODS IS ZERO. SO WE TRIED TO USE BACKGROUND EOP BITS AS RELOCATION CRITERIA AND COULDN'T - IF THERE ARE ~O BACKGROUND MODULES SELECTED AND NOT DROPPED, (OR MAYBE NONE AT ALL (R3 WOULD BE ZERO)THERE ARE IOMODS THAT ARE NOT CURRENTLY ACTIVE BUT COULD RUN SOMEPLACE (R4 NE #0) THEN WE MAY AS WELL RELOCATE OVER AND OVER AGAIN IN HOPES OF FINDING A PLACE WHERE THEY CAN RUN ....•..•••......... 678 679 680 \ U PC,RESREG ;+ 676 677 684 685 686 (6) (9) JSR INLINE <1$:> 1 $: CALL RESREG OOOOOOG RETURN ERROR ENDRTN JSR PC,RESREG SEC BR 50001$ 50000$: CLC 50001$: RTS PC LSTCHK CHECK MODULES TO DETERMINE IF ALL HAVE MADE END OF PASS MACY11 30A(1052) LSTCHK.MAC 28-JUL-78 09:22 CHKACT CHECK FOR ACTIVE M~DULES 703 704 .SBTTL .IDENT CHKACT CHECK FOR JVO.Oj ACTIV~ 20-SEP-78 18:07 PAGE 19-6 MODULES 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 ., "\1'\ ";;'; 730 731 732 733 734 735 736 737 738 739 740 741 ;++ MODULE NAME: CHKACT FUNCTIONAL DESCR!PTION: THIS ROUTINE SIMPLY CHECKS ALL OPTION MODULES TO SEE IF THEY ARE ACTIVE INPUTS: ADDRESS OF DTABLE IMPLICIT INPUTS: DT.MLST OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUROROINATE ROUTINES CALLED: 1. SAVREG 2. RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL CHKACT IN <DT> WHERE DT = DTABLE ADDRESS VERSION: C.C 742 743 744 745 ,"-- EDIT DATE BY REASON SEQ 0703 LSTCHK CHECK MODULES TO DETERMINE IF ALL HAVE MADE END OF PASS LSTCHK.MAC 28-JUL-78 09:22 CHKACT ROUTINE 747 748 749 (2) 750 751 752 753 754 755 756 (3) 757 (4) 758 (4) 759 760 761 762 763 764 765 .SBTTL MACY11 30A(1052) 20-SEP-7B 18:07 PAGE 19-7 SEQ 0704 CHKACT ROUTINE ROUTINE CHKACT <DTADR> 000226 1 000226 1 CHKACT: ;+ ; SAVE REGISTERS AND GET DTABLE ADOR. AND ADOR. OF MODULE LIST ;- 000226' 000226 1 004767 000232' 000232 1 016500 000236 1 000236 1 016001 000242' 000242 1 (6) 000242' (9) 000246' 766 000250' (4) 000250' 767 000252 1 (6) 000252' (9 ) 000260' 768 000262' (3 ) 000262 1 769 000266 1 (2) 000266' (4) 000270' 770 000272 1 (4) . 000272' 771 000272' (4) 000272' (3) 000274 1 772 773 774 775 776 777 000274 1 (3 ) 000274' 778 000300 1 (4) 000300 1 779 780 000302' (3) 000302' (2) 000302: (3) 000304' (2) 000304 1 CALL SAVREG OOOOOOG JSR PC,SA'JREG MOV DTADR(R5),RO MOV OT .MLST(RO) ,R1 CMP SEQ (R1),#ENOLST 50003$ MOV (R1 )+,R2 BIT SEQ #ACTBIT,STAT(R2) 50004$ JSR PC,RESREG LET RO .- DTADR(R5) 000000 LET R1 .- OT.MLST(RO) 000032 ;+ ; SEARCH LIST OF MODULES UNTIL END OR UNTIL AN ACTIVE ; BIT IS SET IN STAT WORD ;WHILE (R1) NE #ENDLST DO 500025: (4) 021127 001412 000000 LET R2 .- (R1)+ 012102 IF #ACTSIT SETIN STAT(R2) THEN 032762 001404 004000 004767 OOOOOOG 000026 CALL RESREG RETURN ERROR SEC 000261 000405 SR 50001$ BR 50002$ JSR PC,RESREG SR 50000$ ENDIF 50004$: C:NDDO 000763 500C3$: ;+ ; WE WENT ALL THE WAY THRU .... GUESS NONE ACTIVE ;- CALL RESREG 004767 OOOOOOG RETURN NO. ERROR 000400 ENDRTN 000241 u00207 50000$: CLC 50001$: RTS PC LSTCHK CHECK MODULES TO DETERMINE IF ALL HAVE MADE END OF PASS LSTCHK.MAC 28-JUL-78 09:22 CHKACT ROUTINE 781 782 000001 .END M~CY11 30A(1052) 20-SEP-78 18:07 PAGE 19-8 SEQ 0705 LSTCHK CHECK MODULES TO DETERMINE IF ALL HAVE MADE END OF PASS SYMaOL TABLE 28-JUL-78 09:22 LSTCHK.MAC 000102 ACSR ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFE,R= 000004 APTPRE= 000200 000,06 ASS ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS 000001 BITO 000001 BITOO 000002 BIT01 000004 BIT02 BIT03 000010 ·000020 BIT04 BIT05 000040 oootoo BIT06 BIT07 000200 BIT08 000400 001000 BIT09 000002 BIT1 002000 BIT10 BI T11 004000 0100·00 81T12 BIT13 020000 040000 BIT14 100000 BIT15 000004 BIT2 000010 BIT3 000020 BIT4 000040 BITS BIT6 = 000100 BIT7 000200 000400 BITS BIT9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 cm-JOCT= 000144 CHKACT 000226RG CHKEOP OOOOOORG CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF = 000001 000015 CR 000100 000102 000003 000017 000025 000011 DEFRTi~= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 DT. AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FeN= 000036 DT.HMX= 000104 DT.KBE= 0000~4 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 00.0074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT. WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENSEOP= 010000 CSRA CSRC CTRLC CTRLO CTRLU' DCEVNT= MACY11 30A(1052) 00000; 000000 000001 000106 000200 000200 EVNTKT"= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 IE = 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT INTR 000120 100000 IOMOD Ior/100P= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KI PARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPORO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 ENBNUL= ENDLST= EOPBIT= ERRTYP= EVNTBE= EVNTHD= 20-SEP-78 18:07 PAGE 20 SEQ 0706 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 17'1775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 OOiOOO 000020 000002 000000 024020 000010 002000 000100 0'00034 ~DPLSI= 020000 004000 POP60 010000 PDP70 000000 PRIO 000040 PR 11 000200 PRI4 PRI5 = 000240 000300 PRI6 000340 PRI7 000000 PRO 000200 PR4 000240 PR5 000300 PR6 000340 PR7 .177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 iviCDEXH= MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSM8= MSGSMH= MSG5rJlS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL moJEN PAERR PARPRE= PARSTA= PASCNT= OOII~C'7_ r".;...t\.JI-.;)"-- 000132 RBUFVA= 000124 ROSERV';' 000101 RDWHMI= 000022 RELERR= 000020 REUJ10D= 020000 RELTIM= 010000 RESREG= ****** G RES1 000056 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTi=<T = 000112 RUBOUT= 000177 RU~~vl0D= 100000 R5VALU= 001740 075464 SAM SAViiEG= ****** G S3AOR = 000102 SBKMOD="OOOOOO SBKSEL= 010000 SC.AOR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.hLD= OOOO"j ;) SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SiJFPAS= 000046 SPACE = 000040 S?OINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATB!= 064757 STAT1 = 000027 SUS?ND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 LSTCHK CHECK MODULES TO DETERMINE IF ALl HAVE MADE END OF PASS LSTCHK.MAC 28-JUL-78 09:22 SyMBOL TABLE 000134 000140 000142 000116 000114 000352 WTWHMI= 000222 XFlAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000000 $F$AND= 000310 $FSBAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $FSFAl=" 000405 $FSGOO= 000400 WBUFPA= WBUFRQ= WBUFSZ= WDFR WDTO WTINRE= TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 ASS. 000000 000306 ERRORS DETECTED: DEFAULT GLOB,1l..LS 000 001 0 GENERATED~ 0 DSKZ:LSTCHK,DSKZ:LSTCHK=SPMACjML,EQUATE,lSTCHK RUN-TIME: 17 7 .4 SECONDS RUN-TIME RATIO: 67/25=2.6 14K (27 PAGES) CORE USED: $F$IF MACY11 30A(1052) 0001;0 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 SF$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFlEV= 177777 $ISKO = 000001 $ISK1 = 000001 $ISK2 = 000001 $LOCTA= 177777 $LSTIN= 000001 20-SEP-78 $LSTTA= 000001 $NESTL= 177777 000300 $NSKO 000120 $NSKl $NSK2 = 000110 $NSK3 = 000110 $NSK4 = 000110 $SAVLE= 177777 $SSKO = 050003 $TAGLE= 177777 STAGNU= 050005 000300 $TEMP 050002 $TSKO 050003 $TSK1 050004 $TSK2 050012 $TSK3 $TSK4 050013 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 18:07 PAGE 20-1 000000 $SDST $$ELOC= 000403 $$ERFL= 000000 $$fLAG= 000001 $SFROM= 000000 $$LOC = 000260R $$LOCN= 000000 $$REG = 177777 $SRETU= 000001 $$RT'\I1= 05000a $$RTN2= 050001 $$SRC = 000000 $STGSV= 000000 $$TGS1= 000000 S$TGS2= 000000 000000 $$TO $$$TAG= 050000 000306R SEQ 0707 .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 563 569 618 722 770 18:08 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT ;SPMAC: VERSION 1.1 PROCESS NEXT MESSAGE PERFORM CLEAN-UP FOR THE LAST MESSAGE RESTORE THE INTERRUPTED MODULE'S R5 BEFORE RETURNING SEQ 0709 MSGDEQ - DE-QUEUE NEXT MESSAGE MSGDEQ.MAC 28-JUL-78 09:22 508 509 MACY11 30A(1052) 20-SEP-78 18:08- PAGE 19 COMMON (QUATE MODULE .TITLE .IDENT SEO 0709 MSGDEQ - DE-QUEUE NEXT /VO.O/ 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 ;++ MODULE NAME: MSGDEQ FUNCTIONAL DESCRIPTION: THIS MODULE CONTAINS THE TWO ROUTINES MSGDEQ AND MSGDRET. THE MSGDEQ ROUTINE DE-QUEUES THE NEXT MESSAGE TO BE PROCESSED, WHICH CONSISTS OF PERFORMING THE FOLLOWING: 1. DEQUEUING NEXT MESSAGE 2. ENABLING/INHIBITTING PRINTING OF MESSAGE BASED ON THE SOFTWARE SWITCH REGISTER SETTING 3. HOOKING MESSAGE TO APPROPRIATE OUTPUT DRIVER THE MSGDRET ROUTINE PERFORMS THE NECESSARY CLEAN-UP ASSOCIATED WITH THE PROCESSING OF THE LAST MESSAGE. THIS CONSISTS OF: 1. ACTIVATING REQUESTOR MODULE, I.E., THE MODULE THAT JUST HAD ITS MESSAGE PROCESSED 2. RESETTING THE CONTROL-O FLAG INPUTS: 1. ADDRESS OF DATA TABLE IMPLICIT INPUTS: DT.SWR 538 539 540 541 542 543 OUTPUTS: NONE 544· PATHOLOGICAL CONNECTIONS: 1. CTRLOF 2. DX.,KFL ;CONTROL-O FLAG ;CARRIAGE RETURN FLAG SUBORDINATE MODULES CALLED: 1. ENQCQ 2. KBINI 3. MSGDGET 4. MSGDHOOK ENTRY IN CONTROL QUEUE INITIALIZE KEYBOARD HANDLER ROUTINE GET NEXT MESSAGE MODULE HOOK MESSAGE TO OUTPUT DRIVER 545 546 IMPLICIT OUTPUTS: NONE 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 ~AKE CALLING SEQUENCE: CALL MSGDEQ IN <DTABLE> VERSION: 0.0 EDIT ;-- EY DATE REASON MSGDEQ - DE-QUEUE NEXT MESSAGE MSGDEQ.MAC 28-JUL-78 09:22 MACY1130A(1052) 20-SEP-78 18:03- PAGE 20 COMMON DEFINITIONS AND REFERENCES .SBiiL 563 564 565 566 567 568 COMMON DEFINITIONS AND REfERENCES .MCALL 569 000000: (1) 000000 ' SEQ 0710 STRUCT STRUCT .PRINT 570 000001 571 572 000001 573 574 575 576 577 ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 ;**************** 578 ; REFERENCED BY OTHER MODULES 579 , 580 581 582 .GLOBL .GLOBL .GLOBL 583 MSGDEQ MD.BSY MD.COD ;MODUlE'S ENTRY POINT ;BUSY FLAG ;MESSAGE TYPE INDICATOR 584 ;**************** 585 58E ; GLOBAL REFERENCES 587 588 589 .GLOBL .GlOBL .GLOBL .GlOBL .GLOBL .GlOBL .GL08L 590 591 592 593 594 595 596 ENQCQ BA.STAT KBINI DX.KFL MSGDGET MSGDHOCK CTRLOF ;CONTROL QUEUE 597 ;*************** ; LOCAL STORAGE - PROGRAM IMPURE STORAGE 605 606 607 608 000000· 000002 1 000004' 000006' 000010' 000012 1 000000 000000 000000 000000 000000 000000 000005 609 610 611 612 613 614 615 616 000026 1 000026' 000050 001 000146' o MD.COD: .WORD . \fJORD o MD.HDR: .WORD o o MD. RET: .WORO MD. DTBl: . WORD o o MD.BSY: .WORD ~D<5> .REPT .WORD o .ENDR MD.RSS: MD.K8ECH: .BLKW ~D40 MD.NUl: .BYTE 1,0 MD. MSG: 000 ;**************** .EVEN MODU~E ;KB I/O INITIATOR MODULE ;CARRIAGE RETURN FLAG ;MESSAGE DE-QUEING MODU~E ;OUTPUT MESSAGE TO DRIVER MODULE ;CONTROL-O FLAG 598 599 600 601 602 603 604 E~-QUEING ;MESSAGE TYPE CODE ;ADDRESS OF MESSAGE ;ADDRESS OF MODU~E'S HEADER ;ADDRESS AT WHICH MODULE IS TO BE RESUMED ;ADDRESS OF DATA TABLE ;MESSAGE-QUEUE BUSY INDICATOR ;SAVE 5 WORDS FOR R5 STACK ;LOCAL RS STACK ;KEYBOARD ECHO BUFFER ;NULL CHAR MESSAGE MSGDEQ - DE-QUEUE NEXT MESSAGE MSGDEQ.MAC 28-JUL-78 09:22 618 619 620 (2) 621 622 623 624 625 626 627 (6) (9) 628 (4) 629 (4) 630 631 632 633 634 635 636 MACY11 30A(1052) 20-SEP-78 18:08 PROCESS NEXT MESSAGE .SBTTL PAGE 21 SEQ 0711 PROCESS NEXT MESSAGE ROUTINE MSGDEQ <DTABLE> 000150' 000150' MSGDEQ: ;+ ; MAKE SURE THE MESSAGE QUEUE MECHANISM IS NOT BUSY. If; IT IS, SIMPLY RETURN TO THE CALLER ;000150' 000150' 026727 000156' 001001 000160' 000160' 000561 000162' 000162' IF MD.BSY EO #1 THEN 177636 000001 RETURN ENDIF CMP BNE MD.BSY,#1 50002$ BR 50000$ 50002$: ;+ ; SAVE REGISTERS, THEN GET THE DATA TABLE ADDRESS AND SAVE IT IN ; LOCAL STORAGE. (2) 000162' 000162' 010046 (3) 000;64= 637 (4) 638 (4) 639 640 641 642 643 644 (4) (3) (6) (5) (4) (3) (3) (4) (4) (4) (4) 645 646 647 648 649 650 651 652 (6) 000166 1 000166' 016500 000172' 000172' 010067 PUSH RO,R1 OiOi46 LET RO := DTABLE(R5} 000000 LET MD.DTBl := RO 177612 MOV RO,-(SP) MCJV 01 -fC::o) ."., MOV DTABLE(R5),RO MOV RO,MD.DTBl \_.) ;+ ; GET THE NEXT MESSAGE TO BE PRINTED ;- 000176' 000176' 000202' 000204' 000210' 000214' 000216 1 000222 1 000224 1 000230 1 000234' 000240 1 162705 010546 012745 012745 010045 004767 012605 012567 012567 012567 012567 CALL MSGDGET IN <RO,#MD.KBECH,#MD.NUll> OUT <MD.COD,MD.MSG,MD.HDR,MD.RET> SUB #4*2,R5 MOV R5,-(SP) MOV #MD.NULl,-(R5) MOV #MD.KBECH,-(R5) 000010 000146 1 000026 1 OOOOOOG 177550 177546 177544 177542 ~r.o V R0 • - ( R5 ) JSR MOV MOV MOV MOV MOV PC,MSGDGET (SP)+,R5 (R5)+,MD.COD (R5)+,MD.MSG (R5)+,MD.HDR (R5)+,MD.RET ;+ ; IF THIS IS THE NULL CHARACTER MESSAGE AND IF OUTPUTTING TH~ ; NULL IS ENABLED, THEN HOOK UP THE MESSAGE. OTHERWISE, ; JUST RETURN. IN EITHER CASE, DONIT BOTHER MAKING ANY OF THE OTHER TESTS. ;- 000244 1 000244' 026727 IF MD. COD EO #MSGNUl 177530 177775 THE~ CMP MD.COD,#MSGNUL MSGDEQ ~ DE-QUEUE NEXT MESSAGE MSGDEQ.MAC 28-JUL-7B 09:22 (9) 653 (6) (9) 654 (2) 655 (4) (3) 656 (2) 657 (4) 658 (4) 659 660 661 662 663 564 665 666 667 668 (6) (8) (6) (9) (6) (6) (9) 669 (6) (9) 670 (3) (6) (5) (4) (3) (3) 671 (2) 672 (4) 673 (4) 574 675 676 677 678 679 680 681 000252' 000254' 000254' 000262 1 000264' 000264' 000266' 000266' 000270' 000270' 000270' 000272' 000272' 000272' 000272' MACY1T 30A(1052) 20-SEP-78 18:0B PROCESS NEXT MESSAGE SEQ 0712 50003$ 001007 032760 001402 PAGE 21-1 IF #ENBNUL SETIN DT.SWR(RO) THEN 000001 000056 INLINE <BR 000470 BIT BEQ #ENBNUL,DT.SWR(R 50004$ 6R 1$ 8R 50005$ BR 2$ 1$> ELSE 000401 50004$: INLINE <BR 000513 2$> ENDIF 500055: END!F 500035: ;+ ; IF THIS IS AN ERROR MESSAGE OR A MESSAGE COMING DIRECTLY ; FROM A MODULE, AND IF THE PRINTING OF THESE TYPES OF MESSAGES ; IS INHIBITTED, DON'T PRINT THE MESSAGE. INSTEAD, JUST ENTER THE MODULE IN ; THE CONTROL QUEUE AND RETURN. ;- 000272' 000272' 000300 1 000302' 000310' 000312 1 000312 1 000320 1 000322 1 000322' 000330 1 000332' 000332' 000334' 000340! 000344' 000346' 000352' 000354' 000354' 000356' 000356' 000356' 000356' 026727 001404 026727 002422 177502 000000 177472 000003 BLT MD.COD,#MSGSTD 50006$ MD.COD,tfMSGSKEL 50007$ CMP BGE MD.COD,#MSGSYS 50007$ BIT BEQ #INHEPRT,DT.SWR{ 50010$ MOV MGV MOV MOV JSR MOV R5,-(SP) MD.RET,-(R5) MD.HDR,-(R5) RO,-(R5) PC,ENQCQ (SP)+,R5 BR 2$ crv1? 50006$: 026727 002016 177462 000012 032760 001412 020000 000056 010546 016745 016745 010045 004767 012605 IF MD.COD EQ #MSGSTD OR MD. COD GE #MSGSKEL AND MD.COD LT #MSG5YS THEN CMP BEQ IF #INHEPRT SEiIN DT.SWR(RO) THEN CALL ENQCQ IN <RO,MD.HDR,MD.RET> 177446 177440 OOOOOOG INLINE <BR 2$> 000461 ENDIF 50010$: ENDIF 50007$: ;+ IF THIS IS AND END-OF-PASS MESSAGE, AND IF THE PRINTING OF THIS TYPE OF MESSAGE IS NOT ENABLED, DON'T PRINT THE MESSAGE. INSTEAD, IF THIS MESSAGE CAME FROM A BKMOD, CLEAR THE DEFERRED-RETURN BIT IN THE BACKGROUND STATUS INDICATOR; ELSE ENQUEUE THE MODULE IN THE CONTROL QU~UE. THEN JUST RETURN. MSGDEQ - DE-QUEUE NEXT MESSAGE MSGDEQ.MAC 28-JUL-78 09:22 682 683 684 (6) (9) (6) PAGE 21-2 SEQ 0713 IF MD.COD EQ #MSGEOP AND #ENBEOP NOTSETIN DT.SWR(RO) THEN 685 (4) 686 (6) (9) 687 (6) 688 (4) (3) 689 (3) (6) (5) (4) (3) (3) 690 000356 1 000356' 000364 1 000366 1 000374 1 000376 1 000376' 000402 1 000402 1 000410 1 000412 1 000412 1 000420 1 000420 1 000422' 000422' 000422 1 000424 1 000430 1 000434' 000436 1 000442 1 000444 1 (4) 000444 1 691 (2) 692 (4) 693 694 695 696 697 698 699 (2) 700 (4) 701 702 703 704 705 706 707 708 (6) (9) 709 {3} (7) (6) (5) (4) 000444' 000444' 000425 000446' 000446 1 (9) MACY11 30A(1052) 20-SEP-78 18:08 PROCESS NEXT MESSAGE BNE MD.COD,#MSGEOP 50011$ #ENBEOP,DT.5WR(R 50011$ MOV MD.HDR,R1 BIT SEQ #BKMOD.STAT(R1) 50012$ BIC #SKDEF,BA.STAT BR 50013$ MOV JSR MOV R5,-(SP) MD.RET,-(R5) MD.HDR,-(R5) RO,-(R5) PC,ENQCQ (SP)+,R5 BR 2$ 026727 001030 032760 001024 177416 000013 CM? BNE 010000 000056 BIi 016701 177402 032761 001404 000020 000026 042767 000002 OOOOOOG LET R1 '- MD.HDR IF #BKMOD SETIN STAT(R1) THEN LET SA. STAT := SA. STAT CLR.BY #8KDEF ELSE 000411 50012$: CALL ENQCQ IN <RO,MD.HDR,MD.RET> 010546 016745 016745 010045 004767 012605 177356 177350 MDV MOV MOV OOOOOOG ENDIF INLINE <BR 500135: 2$> ENDIF 5001t$: ;+ ; SET THE MESSAGE-QUEUE BUSY FLAG. 000446 1 000446' 000446 1 000446 1 012767 INLINE <1$:> 1 $: LET MD.BSY '- #1 000001 177336 MOV #1,MD.BSY ;+ ; IF NO TTY I DONIT BOTHER CALLING MSGDHOOK - JUST CALL MSGRET WHICH ; WILL RTS BACK TO HERE 000454 1 000454 1 000462 1 000464' 000464' 000466' 000472 1 000476 1 000502 1 IF #NOAPTY NOTSETIN DT.CFO(RO) THEN 032760 001014 010546 012745 016745 016745 010045 000002 000014 CALL MSGDHOOK IN <RO,MD.COD,MD.MSG,#MSGDRET> 000526 1 177304 177276 3IT BNE #NOAPTY,DT.CFO(R 50014$ N!OV MOV MOV ;v. 0 V MOV R5.-(SP) #MSGDRET,-(RS) MD.MSG,-(R5) MD.COD,-(R5) RO,-(R5) MSGDEQ - DE-QUEUE NEXT MESSAGE 28-JUL-78 09:22 MSGDEQ.MAC (3) (3) 710 (4) (3) 711 (3) 712 (4) 713 714 715 716 717 718 (2) 719 (2 ) (3 ) 720 (3) (3) (2 ) 000504 1 000510 1 000512 1 000512 1 000514 1 000514' 000514' 000520' 000520' 004767 012605 MACY11 30A(1052) 20-SEP-78 18:08 PROCESS NEXT MESSAGE PAGE 21-3 SEQ 0714 OOOOOOG ELSE 000402 PC,MSGDHOOK BR 50015$ JSR PC,MSGDRET (SP)+,R5 50014$: CALL MSGDRET 004767 JSR MOV 000006 ENDIF 50015$: ;+ ; RETURN TO CALLER ;000520' 000520' 000520' 000520' 012601 000522' 012600 000524 1 000524' 000524' 000524' 000207 INL!NE <2$:> POP 2$: R1,RO MOV (SP)+,R1 (SP)+t RO RTS PC MOV ENDRTN 50000$: 50001$: MSGDEQ - DE-QUEUE NEXT MESSAGE MSGDEQ.MAC 28-JUL-78 09:22 722 723 724 725 726 727 728 729 730 (4) 731 (4) 732 733 734 735 736 737 (2) (3) (4) 738 (4) 739 (4) 740 741 742 743 744 745 746 747 748 (6) (9) 749 (6) (8) (6) (9) (6) 750 (3) (6) (5) (4) (3) (3) 751 (4) 752 (4) 753 754 755 MACY11 30A(1052) 20-SEP-78 18:08 PAGE 22 PERFORM CLEAN-UP FOR THE LAST MESSAGE .SSTTL SEQ 0715 PERFORM CLEAN-UP FOR THE LAST MESSAGE ;+ ; SET THE MESSAGE QUEUE AS BEING NOT BUSY, AND RESET THE ; CONT'ROL-O FLAG ;- 000526 1 000526 1 005067 000532 1 000532 1 005067 MSGDRET: 177260 LET MD.BSY := #0 LET CTRLOF := #0 OOOOOOG CLR MD.BSY CLR CTRLOF MOV MOV MOV R5,-(SP) RO,-(SP) R1,-(SP) MOV MD. DTBL, R1 MOV #MD.R5S,RS TST SEQ MD.HDR S0016$ CM? SEQ CMP BLT MD.COD,#MSGSTD 50017$ MD.COD,#MSGSKEL 50020$ MOV MOV MOV MOV JSR MOV RS,-(SP) MD.RET,-(R5) MD.HDR,-(R5) MD.DTBL.-(R5) PC,ENQCQ (SP)+,R5 ;+ ; SWITCH TO A LOCAL R5 STACK ;- 000536 1 000536 1 000540 1 000542 1 0005441 000544 1 000550 1 000550 1 PUSH R5,RO,R1 010546 010046 010146 LET R1 016701 177240 012705 000026 1 '- MD.DTBL LET R5 .- #MD.RSS ;+ DETERMINE IF THE LAST MESSAGE WAS ISSUED BY AN OPTION MODULE ; OR MONITOR (I.E. MD.HDR IS NOT 0). ; AND IF IT WAS, RESUME ITS EXECUTION SY MAKING AN ENTRY FOR IT ; IN THE CONTROL QUEUE ;- 000554 1 000554 1 005767 000560 1 001422 000562' 000562 1 026727 000570' 001404 000572' 026727 000600' 002412 000602 1 0006021 000602 1 010546 000604 1 016745 000610 1 016745 0006141 016745 000620 1 004767 000624' 012605 000626 1 000626' 000626 1 000626 1 IF MD.HDR NE #0 THEN 177224 IF MD. COD EQ #MSGSTD OR MD.COD GE #MSGSKEL THEN 177212 000000 177202 000003 50017$: CALL ENQCQ IN <MD.DTBL,MD.HDR,MD.RET> 177176 177170 177170 OOOOOOG ENDIF 50020$: ENDIF ;+ 50016$: MSGDEQ - DE-QUEUE NEXT MESSAGE MSGDEQ.MAC 28-JUL-18 09:22 756 757 758 759 760 (6) (9) 761 (3) (4) (3) (3) 762 (4) 763 764 765 MACY11 30A(1052) 20-SEP-78 18:08 PAGE 22-1 PERFORM CLEAN-UP FOR THE LAST MESSAGE SEQ 0716 ; IF THE MESSAGE WAS ONE OF THE KEYBOARD PRO~lPTSr THEN UNLOCK THE ; KEYBOARD AND ALLOW THE NEXT COMMAND TO BE ENTERED ., 000626' 000626' 000634' 000636\ 000636' 000640' 000644' 000650' 000652' 000652' IF MD.COD EQ #MSGPRM THEN 026727 001006 177146 177776 CMP iviD. COD, #iviSGPRM 8NE 50021$ MOV MDV JSR M:JV R5,-(SP) MD.DTBL,-(R5) PC,KBINI (SP)+,R5 CALL KBINI IN <MD.DTBL> 010546 016745 004767 012605 177144 OOOOOOG ENDIF 50021$: MSGDEQ - DE-QUEUE NEXT MESSAGE MSGDEQ.MAC 2B-JUL-78 09:22 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 (6) (9) 783 (2) (3) (4) 784 (2) 785 (4) (3) 786 (2) (3) (4 ) 787 (2) 788 (4) 789 790 MACY11 30A(1052) 20-SEP-78 18:08 PAGE 23 PERFORM CLEAN-UP FOR THE LAST MESSAGE .SBTTL RESTORE THE INTERRUPTED MODULE'S RS BEFORE RETURNING ;+ ; NOW RETURN TO THE INTERRUPTED ROUTINE 000652' 000652 1 032761 000660' 001005 0006621 000662 1 012601 000664 1 012600 000666 1 012605 000670 1 000670 1 000002 000672 1 000672' 000404 000674 1 0006741 0006741 012601 000676 1 012600 000700 1 012605 000702 1 000702 1 000207 000704 1 000704' 000001 ;+ ; DO AN RTS IF NO TTY - AN RTI IF A TTY PRESENT ;IF #NOAPTY NOTSETIN DT.CFO(R1) THEN 000002 000014 POP R1,RO,R5 INLINE <RTI> ELSE POP R1,RO.RS INLINE <RTS ENDIF .END PC> SEQ 0717 MSGDEQ - DE-QUEUE NEXT MESSAGE 28-JUL-78 09:22 MSGDEQ.MAC 000102 ACS~ ACTSlT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 r\1"\""'"C VVVIVU ASB ASSEMB= 000010 ASTAT = 000104 AUTO = 000010 AUTOST= 020000 A\\lAS 000110 BA.STA= ****** G 000001 BITO BITOO 000001 000002 BIT01 000004 BIT02 000010 BIT03 000020 BIT04 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 0004CO 001000 BIT09 BIT1 000002 002000 BIT10 BIT11 = 004000 B1T12 = 010000 020000 BI113 B1T14 040000 BIT15 100000 BIT2 000004 000010 8IT3 BIT4 000020 BIT5 000040 BIT6 000100 BIT7 000200 BIT8 000400 001000 BIT9 BKDEF 000002 BKMOD 000020 BKMODE= 040000 Bi<SLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF. 000001 CR = 000015 000100 CSRA 20-SEP-n$ MACY11 30A(1052) SYMSOL TABLE 1 !:::I: Uts E~JSEOP= 010000 000102 CSRC 000003 CTRLC 000017 CTRLO CTRLOF= ****** G CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DlAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.K8?= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT. PC = 000002 D1.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.S51= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= OOOOSO D1. WHL= 000054 DT.WLL= 000052 DVID1 = 000014 DX.KFl= ****** G ECCMEM= 000100 EceSTA= 000010 i""AI.:II:'. L~ SEQ 0718 ENBNUL= 000001 ENDLST= 000000 ENQCQ = ****** G EOPBIT= 000001 ERRTYP.= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT .= 000036 ICOUNT= 000040 IDNUM = 000122 IE 000100 INDPAR= 000040 1NHDRP= 040000 INHEPR= 020000 1NHREL= 001000 INHRRE= 000400 INlT 000030 1NTR 000120 lOMOD 100000 IOMODP= 10200'0 I Giv'iODR= i 12000 IOMODX= 110000 035060 JACK KBINI = ****** G KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 1723S0 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KlPDRO= 172300 KIPDR1= 172302 KlPDR2= 172304 K1PDR3= 172306 KIPDR4= 172310 KIPDR5= 1.72312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= MD.BSY MD. COD MD.DTB MD.HDR MD.KBE MD.MSG MD. NUL MD.RET MD.RSS MED MEMPAS= MODEXH= MODHOL= MODSEl= MSGCKD= MSGCKS= MSGDEQ MSGDER= MSGDGE= MSGDHO= MSGDRE MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= 1I/fr-,...... iJ~"""·_ I;I"'>U'II\...I- 000200 000012RG OOOOOORG 000010R 00OO04R 0OO026R 000002R 000146R 00OC06R 000026R 076600 040000 004000 002000 OOiOOO 000010 000011 000150RG OOOOOS ****** G ****** G 00OS26R 000017 177777 000013 000004 000022 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 ~/ISSPRM= 177776 MSGRES:.: 000001 M5GSFT= 00:]006 M5GSKE= 00\)003 MSGSMB= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= OO'JOOO MSGSYS= 000012 MSGVEC= 00J020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000J02 000000 NULL 024020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004COO PDP60 PDP70 = 010000 PRIC PRI1 PRl4 PRI5 PRI6 PRI7 PRO 000000 000040 000200 000240 000300 000340 000000 PR4 000200 PRS 000240 PR6 000300 000340 PR? 177776 PS PSW 177776 RANNUM= 000054 RBUFEA= 000130 RSUFPA= 000126 R8UFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI=·OOO022 RELERR= 000020 RELMOD= 020000 RELTIM= 010000 RES1 000056 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBCJUT= 000177 RIJr-.;;·,10 D= 100000 R3VALU= 001740 SAM 075464 SBADR = 000102 S8K;,iOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SO~PAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 SRO = 177572 177574 SR~ 177576 SR2 172516 5R3 MSGDEQ - DE-QUEUE NEXT MESSAGE MSGDEQ.MAC 28-JUL-78 09:22 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 U!PDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000026 STAT STATBI= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 ABS. 000000 000704 MACY11 30A(1052) 20-SEP-78 SYMBOL TABLE 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:MSGDEQ,DSKZ:MSGDEQ=SPMAC/ML.EQUATE,MSGDEQ RUN-TIME: 18 8 .4 SECONDS RUN-TIME RATIO: 85/26=3.2 14K (27 PAGES) CORE USED: 18:08 XOFF 000023 000021 XON $8GNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$8LA= 000170 $F$CAS= 000150 $FSDEC= 000220 $F$DO :: 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $FSNO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 PAGE 24-1 SEQ 0719 $F$THE= 000330 $F$TRU= 000404 $FSUNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $ I SK 1 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000110 $NSK1 = 000110 $NSK2 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050024 050023 $TEMP 050023 $TSKO 050020 $TSK1 $$ARGC= 000002 $$8YTE= 000403 $$CASE= 000000 $SDST = 000000 $$ELOC= 000402 $$ERrL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000660R $$LOCN= 000000 $SREG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $STGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000001 $$$TAG= 050000 000704R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 570 574 602 18:09 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT ;SPMAC: VERSION 1.1 DE-QUEUE NEXT MESSAGE SEQ 0720 MSGDGET - DE-QUEUE THE NEXT MESSAGE TO BE PRINTED MACY11 30A(1052) MSGDGE.MAC 28-JUL-78 09:23 COMMON EQUATE MODULE 508 509 .TITLE .IDENT 20-SEP-78 18:09 PAGE 19 MSGDGET -.DE-QUEUE THE NEXT MESSAGE TO BE PRINTED JVO.Oj 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 ;++ MODULE NAME: MSGDGET FUNCTIONAL DESCRIPTION: THE DE-QUEUE-NEXT-MESSAGE MODULE IS CALLED WHENEVER IT IS NECESSARY TO FETCH THE ADDRESS OF THE NEXT MESSAGE TO BE PRINTED. MESSAGES ARE DE-QUEUED ACCORDING TO THE FOLLOWING PRIORITY: 1. OPERATOR INPUT STRING 2. KEYBOARD COMMAND RESPONSE 3. KEYBOARD COMMAND PROMPT 4. TYPE QUEUE ENTRY 5. DEFAULT MESSAGE (ONE-CHAR NULL MESSAGE) INPUTS: 1. ADDRESS OF DATA TABLE 2. ADDRESS OF KEYBOARD'S ECHO BUFFER 3. ADDRESS OF DEFAULT MESSAGE (ONE-CHAR NULL MESSAGE) 533 534 IMPLICIT INPUTS: 1. DT.KBRSP 2. DT.KBUF 3. DT.KBECH 4. DT.KBPRM 535 536 OUTPUTS: 531 532 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 562 1. FOUR-WORD MESSAGE PACKET: WORD 1: TYPE CODE 2: ADDRESS OF MESSAGE 3: OPTION MODULE'S HEADER ADDRESS 4: OPTION MODULE'S RETURN ADDRESS IMPLICIT CUTPUTS: 1. UPDATED DT.KBECH PATHOLOGICAL CONNECTIONS: 1. KEYBOARD INPUT POINTER (KB.INP) SUBORDINATE MODULES CALLED: 1. DEQTQ 2. FILLMSG 3. SAVREG 4. RESREG ;DE-QUEUE NEXT TYPE QUEUE ENTRY ;FILL-IN SKELETAL MESSAGE ;SAVE REGISTERS ;RESTORE REGISTERS CALLING SEQUENCE: CALL MSGDGET IN <DTABLE,KBECH,DFTMSG> OUT <MSGTYPE,MSGADDR,HDRADDR,RETADDR> WHERE DTABLE - DTABLE ADDRESS KBECH - ECHO BUFFER POINTER DFTMSG - DEFAULT MESSAGE MSGTYPE - MESSAGE TYPE MSGADDR - MESSAGE ADDRESS HDRADDR - HEADER ADDRESS RETADDR - RETURN ADDRESS SEQ 0721 MACV11 30A(1052) MSGDGET - DE-QUEUE THE NEXT MESSAGE TO BE PRINTED COMMON EQUATE MODULE MSGDGE.MAC 28-JUL-78 09:23 564 565 566 567 568 ; ; VERSION: . EDIT 20-SEP-78 18:09 PAGE 19-1 SEQ 0722 0.0 BY DATE REASON MSGDGET - DE-QUEUE THE NEXT MESSAGE TO BE PRINTED MACY11 30A(1052) 20-SEP-78 MSGDGE.MAC 28-JUL-78 09:23 COMMON DEFINITIONS AND REFERENCES .SBTiL 570 18:09 PAGE 20 COMMON DEFINITIONS AND REFERENCES 571 572 573 574 (i ) 575 576 000000 1 000000: ... ..,.. • I""K.l.I'I1 ........... .,. .MCALL STRUCT STRUCT ; sprvlAC: \lERSIOt~ ~ I • ..1 $LSTIN = 1 $LSTTAG = 1 000001 000001 577 578 579 580 581 582 ;**************** , 583 ; REFERENCED BY OTHER MODULES 584 585 586 .GLOBL 587 588 589 ;**************** , 597 598 599 600 ;MODULE'S ENTRY POINT ; GLOBAL REFERENCES 590 591 592 593 594 595 596 MSGDGET .GLOBL .GLOBL .GL08L .GLOBL .GLOBL DEQTQ FILLMSG KB.INP SAVREG RESREG , ;**************** ;TYPE QUEUE DE-QUEUING MODULE ;FILL IN SKELETAL MESSAGE MODU~E ;KEY80ARD ' S INPUT BUFFER POINTER :SAVE REGISTER ROUTINE ;RESTORE REGISTER ROUTINE SEQ 0723 MSGDGET - DE-QUEUE THE NEXT ~ESSAGE TO BE PRINTED MACY11 30A(1052) MSGDGE.MAC 28-JUL-78 09:23 DE-QUEUE NEXT MESSAGE oSBTTL 602 603 604 (2) 605 606 (4) 612 (4) 613 614 615 616 617 618 619 620 000000 1 000000' 004767 000004' 000004' 016500 000010' 000010' 016501 000024' 000030' 000030' 000030' 000032' 000034' 000034' 000036' 000036' 000040' 000040' 000042' (6) 635 (4) (3) LET RO '- DTABLE(R5) 000000 JSR PC,SAVREG Mav DTABLE(R5),RO MOV KBECH(R5),R1 LET R1 .- KBECH(R5) 000002 ;- 000024' (9) 633 (4) 634 CALL SAVREG OOOOOOG ; SEE IF ANY OPERATOR INPUT IS AWAITING ECHOING, AND IF SO, ZERO THE KEYBOARD ; ECHO BUFFER, COPY THE CHARACTERS TO BE ECHOED INTO IT AND USE THIS AS THE ; FIRST MESSAGE (4) 622 (4) (6) (9) 623 (4) 624 (6) 625 (4) (6 ) DE-QUEUE NEXT MESSAGE ;+ 621 626 627 628 629 630 631 (4) 632 (4) SEQ 0724 0-',T (9) (3) PAGE 21 ; SAVE REGISTERS AND GET DTABLE ADDRESS AND KEYBOARD ECHO POINTER ;- 000014' 000014' 026067 000022.1 103031 (6) 18:09 ROUTINE MSGDGET <DTA8LE.KBECH,DFTMSG,MSGTYPE,MSGADDR,HDRADDR,RETADDR> MSGDGET: 000000' 000000' 607 608 609 610 (3) 611 20-SEP-78 012702 IF DT.KBECH(RO) LO KB.INP THEN 000024 OOOOOOG 000050 CMP BHIS DT.KBECH(RO),KB. 50002$ MOV #~O<40>,R2 TST BLE R2 50004$ CLR (R1)+ DEC R2 8R 50003$ MOV KBECH{R5),R1 eM? SGE DT.KBECH(RO),KB. 50006$ MOVB @DT.KBECH(RO),(R INC DT.KBECH(RO) 5R 50005$ WHILE R2 GT #0 DO 50003$: 005702 003403 LET (R1)+ 005021 0- #0 LET R2 '- R2 - #1 005302 ENDDO 000773 50004$: ;+ ; LOAD UP ECHO BUFFER FROM INPUT BUFFER 000042' 000042' 000046' 000046' 000046' 000054' 000056' 000056' 000062' 000062' 000066' 000066' 000070' LET R1 '- KBECH(R5) 016501 000002 WHILE DT.KBECH(RO) LT KB.INP DO 50005$: 026067 002005 000024 117021 000024 005260 000024 OOOOOOG LET (R1)+ :B= @DT.KBECH(RO) LET DT.KBECH(RO) := DT.KBECH(RO) + #1 ENDDO 000767 50006$: MSGDGET - DE-QUEUE THE'NEXT MESSAGE TO BE PRINTED MACY11 30A(1052) MSGDGE.MAC 28-uUL-78 09:23 DE-QUEUE NEXT MESSAGE 636 637 638 639 640 641 (4) 642 (4) 643 (4) 644 (4) 645 (4) (3) 646 647 648 649 650 651 652 (6) (9) 20-SEP-78 18:09 PAGE 21-1 SEQ 0725 ;+ ; SET UP OUTPUT ARGUMENTS FOR ECHO TYPE MESSAGE TYPE ., 000070' 000070 1 000074 1 000074 1 000100' 000100' 000102' 000102' 000104' 000104' 000106' LET R1 012701 177777 016502 000002 .- #MSGECH .- KBECH(R5) LET R3 .- #0 MOV #MSGECH,R1 MOV KBECH(R5),R2 CLR R3 CLR R4 BR 50007$ LET R2 005003 LET R4 0- #0 005004 ELSE 000466 50002$: ;+ ; SEE IF THERE IS A KEYBOARD COMMAND RESPONSE WAITING TO BE OUTPUT, ; IF SO, TAKE IT NEXT, AND THEN CLEAR KEYBOARD RESPONSE INDICATOR , 000106' 000106' 005760 000112' 001411 653 000114' (4) 654 (4) 655 (4) 656 (4) 657 (4) 658 (4 ) (3) 659 660 661 662 663 664 665 (6) (9) 666 (4) 667 (4) 668 (4) 669 (4) 670 000114' 000120' 000120 1 000124 1 000124' 000126 1 000126: 000130' 000130' 000134' 000134' 000136' IF DT.KBRSP(RO) NE #0 THEN 000022 .- #MSGRES LET R2 . - DT.KBRSP(RO) DT.KBRS?(RO) 50010$ Ivl0V #MSGRES,Rl MOV DT.KBRSP(RO),R2 CLR R3 CLR R4 CLR DT.KBRSP(RO) BR 50011$ TST SEQ DT.KBPRM(RO) 50012$ MOV #MSGPRM,R1 MOV DT.KBPRM(RO),R2 CLR R3 CLR R4 LET R1 012701 000001 016002 000022 005003 LET R3 .- #0 LET R4 .- #0 005004 LET DT.KBRSP(RO) 005060 TST SEQ . - #0 000022 ELSE 000452 50010$: ;+ ; SEE IF THERE IS A KEYBOARD PROMPT AWAITING OUTPIJT, IF SO, TAKE ; IT, AND CLEAR THE KEYBOARD PROMPT INDICATOR ;- 000136' 000136' 000142' 000144 1 000144' 000150' 000150' 000154' 000154' 000156' 000156' 000160' IF DT.KBPRM(RO) NE #0 THEN 005760 001411 000026 012701 177776 016002 000026 LET R1 · - #MSGPRM LET R2 ·- DT.KBPRM(RO) LET R3 .- #0 LET R4 · - #0 005003 005004 LET DT.KBPRM(RO) "- #0 MACV11 30A(1052) MSGDGET - DE-QUEUE THE NEXT MESSAGE TO BE PRINTED DE-QUEUE NEXT MESSAGE 28-JUl-78 09:23 MSGDGE.MAC (4) 671 (4) (3) 072 000160 1 005060 000164 1 000164 1 000436 000166 1 (4) (4) (4) 680 (6) 681 (6) (9) 582 (4) (3 ) (7) (6) (5) (4) (3) (3) (4) 683 (4) 684 (4) (3) 685 686 687 688 689 690 691 (4) 692 (4) 693 (4) 694 (4) 695 (4) 696 (4) 18:09 PAGE 21-2 SEQ 0726 000026 ELSE CLR DT.KBPRM(RO) BR 50013$ 50012$: ,0 673 674 675 676 677 678 679 (4) (3) (4) 20-SEP-78 ; SEE IF THERE IS ANYTHING IN THE TYPE QuEUE WAITING TO BE PRINTED, ; IF SO, CHECK TO SEE IF ITS A SKELETAL MESSAGE THAT HAS TO BE ; FILLED-IN ;- 000166 1 000166 1 000172 1 000176 1 000200 1 000202 1 000204 1 000206 1 000206 1 000210' 000210' 000214 1 000216 1 000216 1 0OO2?2 1 000224 1 000226 1 000230' 000232' 000234' 000240 1 000242 1 000244' 000244' 000244 1 000244' 000246' CALL DEQTQ OUT <R1,R2,R3,R4> 162705 004767 012501 012502 012503 012504 000010 OOOOOOG sua JSR MOV MOV #4*2,R5 PC,DEQTQ (R5)+,R1 MOV MOV {R5)+,R3 (R5)+,R4 BCS 50014$ (R5)+fR~ IF.NO.ERROR THEN 103417 IF 020127 002413 000003 162705 010546 010345 010245 010145 010045 004767 012605 012502 000002 R1 GE #MSGSKEL THEN CM? Bli CALL FILLMSG IN <RO,R1,R2,R3> OUT <R2> SUB MOV #1*2,R5 R5,-(SP) R3,-(R5) R2,-(R5) R1,-(R5) RO,-(R5) PC,FILLMSG (SP)+,R5 (R5)+,R2 BR 50016$ MOV i'~iJ\i MOV 1\110 V MOV JSR OOOOOOG R1,#MSGSKEL 50015$ MOV ENDIF 50015$: ELSE 000406 50014$: ;+ ; THE TYPE QUEUE MUST BE E1,1PTY, SO WEilL RETURN THE DEFAULT MESSAGE ; WHICH IS THE ONE-CHAR NULL MESSAGE , 000246' 000246' 000252 1 000252 1 000256' 000256' 000260 1 000260' 000262 1 000262' 000262' 000262' 012701 177775 016502 000004 · - #MSGNUL LET R2 · - DFTMSG(R5) · - #0 LET R4 · - #0 r/,ov #MSGNUL,R1 MOV DFTMSG(R5),R2 CLR R3 CLR R4 LET R3 005003 005004 lET R1 ENDIF 50016$: ENDIF 50013$: MACY11 30A(1052) MSGDGET ... DE-QUEUE THE NEXT MESSAGE TO BE PRINTED DE-QUEUE NEXT MESSAGE 2B-JUL-7B 09:23 MSGDGE.MAC 697 (4) 698 (4 ) 699 (3) (3) (2) 715 716 18:09 PAGE 21-3 SEQ 0727 ENDIF 00026~; 500115: 000262' 000262' 000262' ENDIF 50007$: ;+ ; LOAD UP OUTPUT ARGUMENTS 700 701 702 703 704 (4) 705 (4) 706 (4) 707 (4) 708 709 710 711 712 713 (3) 714 20-SE?-78 , 000262' 000262' 000266' 000266' 000272' 000272' 000276' 000276' . - R1 LET MSGADDR(R5) .- R2 LET MSGTYPE(R5) 010165 000006 010265 000010 010365 010455 " LET RETADDR(R5) "- 000012 RESTORE REGISTERS AND 000001 R1,MSGTYPE(R5) MOV R2,MSGADDR(R5) MOV R3,HDRADDR(R5) MOV R4,RETADDR(R5) JSR PC,RESREG RTS PC R4 000014 + 000302' 000302' 004767 000306' 000306 1 000306' 000306' 000207 - R3 LET HDRADDR(R5) MOV R~TURN TO CALLER CALL RESREG OOOOOOG ENDRTN 50000S: 50001S: .END MSGDGET - DE-QUEUE THE NEXT MESSAGE TO BE PRINiED MSGDGE.MAC 28-JUL-78 09:23 SYMBOL TABLE ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASS 000106 ASSEMB= 000010 ASTAT = 000104 AUTO == 000010 AUTOST= 020000 AWAS 000110 BITO 000001 BITOO 000001 BIT01 000002 BIT02 000004 BIT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 BIT09 001000 BI T 1 000002 31T10 002000 8!T11 004000 BIT12 010000 8IT13 020000 BIT14 040000 BIT15 = 100000 81T2 000004 81T3 000010 BIT4 000020 BIT5 000040 BITS = 000100 BIT7 000200 BIT8 000400 BIT9 001000 SKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 ClKPRE= 000001 CONFIG= 000056 CQOVF 000001 CR 000015 CSRA 000100 CSRC 000102 CTRLC = 000003 CTRLO = 000017 CTRLU = 000025 OCEVNT= 000011 O"EFRTN= 000400 DEQiQ ~ ****** G DFTMSG= 000004 DIAGMC= 000000 DRQPMO= 100000 DSEVNT= 000014 DTABlE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DL ES I:: 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT . KBP= 000026 DT.KSR= {l00022 DT.KBU= 000030 DT .MLS=" 000032 DT.MTI= 000110 DT.OFF=" 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 OT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 MACY11 30A(1052) 2C-SEP-78 ~8:09 PAGE 22 SEQ 0728 ENBNUL= ENDLST= EOPBIT= ERRTYP= EVNTBE= EVf\.JTHD= 000001 000000 000001 000106 000200 000200 000203 000202 000201 100000 EVNTKT= EVNTPE= EVNTRE= FATERR= FILLMS= ****** G HDRADD= 000012 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 !NHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 IN IT 000120 INTR I Of-AOD 100000 HJMODP= 102000 10MO:)R= 112000 IOMODX= 110000 035060 JACK KBECH = 000002 KB.INP= ***¥** G KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 r.,,1ED 076600 MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 r.mDSEL= 001000 MSGADD= 000010 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDGE OOOOOORG MSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRrVl= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMS= 000015 MSGsrv1H= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGTYP= 000006 MSGVEC= 000020 NSKMOD= 001000 NCPUOP= Q00020 NOAPTY= 000002 000000 NULL 024020 O~JEN " 000010 PAERR PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 010000 PDP70 000000 PRIO 000040 PR 11 000200 PRI4 000240 PRI5 000300 PRI6 000340 PRI7 000000 PRO = 000200 PR4 000240 PR5 000300 PR6 000340 PR7 177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000130 RSUFPA= 000126 R9UFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHfJII= 000022 RELERR= 000020 RELMOD= 02.0000 REL TIM= 010000 RESREG= ****** G RES1 000056 000060 RES2 RETADD= 000014 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VAlU= 001740 075464 SA:'V1 SAVREG= ****** G SBADR = OOOi02 SBKMOD= 000000 SSKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKl= 000002 SC.CKP= 000004 SC.CLO= 0000"00 SC.HlD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 sponn= 000032 SPIJALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBl= 064757 STA T1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 MSGDGET - DE-QUEUE THE NEXT MESSAGE TO BE PRINTED MSGDGE.MAC 28-JUL-78 09:23 SYMBOL TABLE UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WSUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTD WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XDFF 000021 XON $SGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$8AD= 000401 $F$8LA= 000170 $F$CAS= 000150 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQDVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 ABS. 000000 000310 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:MSGDGE,DSKZ:MSGDGE=SPMAC/ML,EQUATE,MSGDGE RUN-TIME: 16 6 .4 SECONDS RUN-TIME RATIO: 102/23=4.2 14K (27 PAGES) CORE USED: MACY11 30A(1052) $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$!NC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$ND = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEl= 000140 $Fsn:E= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$\fJHI= 000120 $F$YES= 000402 $IFLEV= 177777 000001 $ISKO 000001 $ISK1 000001 $ISK2 20-SEP-78 18:09 000001 $ISK3 000001 $ISK4 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 000300 $NSKO 000110 $NSK1 000110 $NSK2 000110 $NSK3 . $NSK4 000110 000110 $NSK5 $SAVLE= 177777 $SSKO = 050006 $TAGLE= 177777 $TAGNU= 050017 000300 $TEMP 050007 STSKO 050011 STSK1 050013 $TSK2 050016 $TSK3 050015 $TSK4 PAGE 22-1 SEQ 0729 $$ARGC= 000016 $$8YTE= 000403 $SCASE= 000000 SSDST = 000000 $$ElOC= 000402 $$ERF L= 000000 $$FLAG= 000001 5$ FRor~l= 000000 $$LOC = 000214R S$LOCN= 000000 $$REG = 177777 $$RETU= 000000 SSRTN1= 050000 $$RTN2= 050001 SSSRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000310R .MAIN. MACV11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 565 570 598 18:11 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINTIONS AND REFERENCES 000000' .PRINT ;SPMAC: VERSION 1.1 MSGDHOOK ROUTINE SEQ 0730 MSGDHOOK - HOOK MESSAGE TO OUTFUT DRIVER MACY11 30A(1052) MSGDHO.MAC 01-AUG-7811:29 COMMON EQUATE MODULE 508 509 510 511 512 . 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 .TITLE .IDENT 20-SEP-78 18:11 PAGE 19 SEQ 0731 MSGDHOOK - HOOK MESSAGE TO OUTPUT DRIVER /VO.O/ ;++ MODULE NAME: MSGDHOOK FUNCTIONAL DESCRIPTION: THIS ROUTINE HOOKS THE ADDRESS OF THE NEXT MESSAGE TO BE PRINTED TO THE APPROPRIATE OUTPUT DRIVER AND THEN INITIATES THE PRINTING OF THE MESSAGE BY CALLING THE DRIVER AT ITS I/O INITIATOR ENTRY POINT. INPUTS: 1. 2. 3. 4. ADDRESS OF DATA TABLE MESSAGE TYPE CODE ADDRESS OF MESSAGE RETURN ADDRESS IMPLICIT INPUTS: 1. DT.STO 2. DT.CFO OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: TTINI LPINI SAVREG RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL MSGDHOOK IN <DTABLE,MSGCOD,MSGADDR,RETADR> WHERE DTABLE ADDRESS OF DATA TABLE MSGCOD MESSAGE TYPE CODE MSGADDR MESSAGE ADDRESS RETADDR RETURN ADDRESS VERSION: 0.0 EDIT ;- BY DATE REASON MSGDHOOK - HOOK MESSAGE TO OUTPUT DRIVER MACY11 30A(1052) MSGDHO.MAC 01-AUG-7811:29 COMMON EQUATE MODULE 564 565 566 20-SEP-78 18:11 PAGE 20 SEQ 0732 .SBTTL COMMON DEFINTIONS AND REFERENCES .PRINT ;MCALL STRUCT STRUCT ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG = 1 567 568 569 570 (1) 571 572 573 574 575 576 577 000000' 000000 • 000001 000001 ;**************** , ; REFERENCED BY OTHER MODULES 578 579 .GLOBL 58C 581 582 MSGDHOOK ;MODULE'S ENTRY POINT ;**************** 583 , 584 ; GLOBAL REFERENCES 585 586 587 588 .GLOSL .GLOBL .GLOBL .GLOBL 589 TTINI LPINI SAVREG RESREG ;TERMINAL DRIVER MODULE ;LINE PRINTER DRIVER MODULE 590 591 592 ;**************** , 593 ; LOCAL STORAGE: 594 595 596 OOOOCO' 000000 MS. EXT: .WORD 0 ;EXIT THROUGH HE~E IF NO TTY(~NDER APT) ;AND ITS A MSGPOP MSGDHOOK - HOOK MESSAGE TO OUToUT DRIVER MACY11 30A(1052) MSGDHO.MAC 01-AUG-7811:29 MSGDHOOK ROUTINE 598 599 600 601 (2) 602 603 604 605 606 607 608 (3) 609 (4) 610 (4) 611 (4) 612 (4) 613 (4) 614 615 616 617 618 619 620 621 622 (6) (9) 623 624 625 626 627 628 (6) (9) 629 (3) (7) (6) (5 ) (4) (3 ) (3) 630 (4) (3 ) 631 632 633 .SBTTL 20-SEP-78 18:11 PAGE 21 SEQ 0733 MSGDHOOK ROUTINE ROUTINE MSGDHOOK <DTABLE,MSGCODE,MSGADDR,RETADR> 000002 1 000002 1 MSGDHOOK: ;+ ; DO THE NECESSARY SET-UP STUFF ;- 000002 1 000002' 000006' 000006' 000012' 000012' 000016' 000016' 000022' 000022' 000026' 000026' CALL SAVREG 004767 OOOOOOG LET R1 016501 JSR PC,SAVREG MOV MSGCODE(R5),R1 MOV MSGADDR(R5),R2 MOV RETADR(R5),R3 MOV R3,MS.EXT MOV DTABLE(R5) ,RO .- MSGCODE(R5) 000002 LET R2 .- MSGADDR(R5) 016502 000004 016503 000006 LET R3 '- RETADR(R5) LET MS. EXT := R3 010367 177752 016500 000000 LET RO := DTABLE(R5) ;+ ; IF THERE IS NO TTY (UNDER APT) WE WILL BE EXITTING DIRECTLY ;000032' 000032 1 032760 000040' 001026 (BE~DW) IF #NOAPTY NOTSETIN DT.CFO(RO) THEN 000002 000014 BIT BNE #NOAPTY,DT.CFO(R 50002$ BIT BEQ #LPSTAT,DT.STO(R 50003$ MOV JSR MOV R5,-(SP) R3,-(R5) R2,-(R5) R1,-{R5) RO,-(R5) PC,LPINI (SP)+,R5 BR 50004$ ;+ ; IS THE ULPON" KEYBOARD COMMAND IN EFFECT? IF IT IS, ; THIS MESSAGE IS TO GO TO THE LINE PRINTER ', - 000042' 000042' 000050 I 000052 1 000052 1 000054' 000056 1 000060 1 000062' 000064 1 000070' 000072 1 000072 1 000074' IF #LPSTAT SETIN DT.STO(RO) THEN 032760 001411 000001 000010 CALL LPINI IN <RO,R1 ,R2,R3> 010546 010345 010245 010145 010045 004767 012605 MOV MOV MOV MOV OOOOOOG ELSE 000410 50003$: ;+ ; IF NO ONE ELSE WANTS IT, PASS IT TO THE TERMINAL OUTPUT DRIVER MSGDHOOK - HOOK MESSAGE TC OUTPUT DRIVER MACY11 30A(1052) MSGDHO.MAC 01-AUG-7811:29 MSGDHOOK ROUTINE 634 635 (3) (7) (6) 000102 1 010145 (4) (3) 000104' 000106 1 000112 1 000114' 000114 1 000114' 000114' 000116' (3) 636 (4) 637 (4) (3) 638 639 640 641 642 643 644 (3) 645 646 (2 ) 647 (2) 648 (2) 649 (4) 650 651 652 653 654 655 656 (3) 657 (3) (3) 010045 004767 012605 18:11 PAGE 21-1 SEQ 0734 CALL TTINI IN <RO,R1 ,R2,R3> 000074 1 000074 1 010546 000076 1 010345 000100 1 010245 (5) 20-SEP-78 OOOOOOG MOV MGV MOV MOV MOV JSR MOV R5,-(SP) R3,-(R5) R2,-(R5) R1,-(R5) RO,-(R5) PC,TTINI (SP)+,R5 BR 50005$ JSR PC,RESREG TST (SP)+ MJV (SP)+,R5 ENDIF 50004$: ELSE 000406 000116' 000116' 004767 000122' 000122' 005726 .000124' 000124 1 012605 000126' 000126 1 000177 000132 1 000132' 50002$: ;+ ; IF WE ARE UNDER APT WITH NO TTY, ; CLEAN UP IN AN .UNNATURAL WAY (SIMULATE THE N8R~AL RETURN ; THAT IS, RESTORE REGS, DO ONE FINAL POP, WHICH KILLS ; THE RTS PC. RESTORE R5 THEN JUMP THRU MS. EXT) ;CALL RESREG OOOOOOG INLINE <TST (SP)+> INUNE <MOV (SP)+,R5> INLINE <JMP @MS.EXT> JMP @MS.EXT 177646 ENDIF 50005$: ;+ ; CHOW BABY!!!!! !1 'f - (2 ) 000132' 000132' 004767 000136' 000136' 000136' 000136' 000207 658 659 660 000001 CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ENDRTN 50000$: 50001$: .END MACY11 30A (1052) MSGDHOOK - HOOK MESSAGE TO OUTPUT DRIVER SYMBOL TABLE 01-AUG-78 11 : 29 MSGDHO.MAC 000102 ACSR ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 0"" . . "('\ 000106 ASB ASSEM9= 000010 ASTAT = 000104 AUTO : 000010 AUTOST= 020000 000110 AtvAS BITO 000001 BITOO = 000001 BI T01 000002 000004 BIT02 000010 BIT03 000020 BIT04 BIT05 000040 000100 BIT06 000200 BIT07 BIT08 000400 001000 BIT09 BIT1 = 000002 BIT10 002000 BIT11 004000 010000 BIT12 020000 BIT13 3IT14 040000 BIT15 100000 000004 BIT2 BIT3 000010 000020 BIT4 BITS 000040 BIT6 000100 BIT7 000200 BIT8 000400 BIT9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA = 000100 000102 CSRC \,I'v,/!."",""" CTRLC = 000003 CTRLO = 000017 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 D!AGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTABLE= 000000 DT.ADD: 000042 DT.AP = 000100 DT.APK= 000076 DT .BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT .KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFl= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 00.0106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT. WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 20-SEP-78 EOPBIT= 000001 ERRTYP= 000103 EVNTBE= 00020'0 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 17.2352 KIPAR6= 172354 KIPAR7= 172355 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPINI = ****** G LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 004000 18: 11 PAGE 22 SEQ 0735 MODHOL= MODSEL= MSGADD= MSGCKD= MSGCKS= MSGCOD= MSGDER= MSGDHO MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSM3= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= MS. EXT NBKMOD= NCPUOP= NOAPTY= NUll OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PD?70 PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW 002000 001000 000004 000010 000011 000002 000005 000C02RG 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 OOOOOOR OOiOOO 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 00~300 000340 000000 000200 000240 000300 00J340 177776 177776 RANNUfV!= 000054 RBUFEA= 000130 R8UFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWrlMI= 000022 RELERR= 000020 RELMOD= 020000 RELTIM= 010000 RESREG= ****** G RES1 000056 00006() RES2 RETADR= 000006 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RU60UT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SA\/REG= ****** G SBADR = 000102 SBKMOD= 000000 S9KSEL= 010000 SC.ADR= 000006 SC.ALC= 0000;4 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRC 177574 SR1 177576 SR2 172516 SR3 000026 STAT STAiBI= 064757 STAn = 000027 SUS?ND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 S\iR3 000072 SVR4 SVR5 000074 MSGDHCOK - HOOK MESSAGE TO OUTPUT DRIVER MACY11 30A(1052) MSGDHO.MAC 01-AUG-7811:29 SYMBOL TABLE UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WSUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$SLA= 000170 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 TTINI = ****** G UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 ASS. 000000 000140 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSXZ:MSGDHO,DSKZ:MSGDHO=SPMAC/ML,EQUATE,MSGDHO RUN-TIME: 12 2 .4 SECONDS RUN-TIME RATIO: 69/16=4.3 14K (27 PAGES) CORE. USED: "20-SEp-78 $FSCAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $FSLOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 18:11 PAGE 22-1 000001 $ISKO 000001 $ISK1 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $NSK1 = 000110 $NSK2 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050006 STEMP = 000300 STSKO = 050005 $TSK1 = 050004 $$ARGC= 000010 $$BYTE= 000403 $SCASE= 000000 $$DST = 000000 $$ELOC= 000402 SEQ 0736 $SERFL= 000000 $SFLAG= 000001 $$FROM= 000000 000050R $$LOC $$LOCN= 000000 177777 $$REG $SRETU= 000000 $$RTN1= 050000 $SRTN2= 050001 $SSRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 000140R = = .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 565 568 590 18:12 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR NAMCHK 000000 1 .PRINT iSPMAC: VERSION 1.1 NAMCHK ROUTINE SEQ 0737 NAMCHK VERIFY A MODULE NAME NAMCHK.MAC 2B-JUL-78 09:23 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 ·525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 MACY11 30A(1052) 20-SEP-78 18:12' PAGE 19 COMMON EQUATE MODULE SEQ 0738 .TITLE NAMCHK VERIFY A MODULE NAME .IDENT JVO.Oj ;++ MODULE NAME: NAMCHK FUNCTIONAL DESCRIPTION: THIS ROUTINE IS CALLED TO VERIFY A MODULE NAME. IT RECEIVES THE ADDRESS OF THE FIRST CHARACTER OF THE MODULE NAME AND SEARCHES THE MODULE LIST FOR A FIVE CHARACTER MATCH. IF THE MODULE NAME IS FOUND, THE HEAD~R ADDRESS OF THE MODULE IS RETURNED. IF IT IS NOT FOUND, A RETURN WITH ERROR OCCURS. THE UPDATED COMMAND DECODE BUFFER IS RETURNED WHETHER OR NOT THERE WAS AN ERROR. A RETURN WITH ERROR OCCURS IF THE MODULE NAME IS MORE THAN 5 CHARACTERS IN LENGTH. INPUTS: 1. ADDRESS OF DATA TABLE 2. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: DT.MLST OUTPUTS: 1. HEADER ADDRESS OF MODULE 2. UPDATED COMMAND DECODE BUFFER POINTER IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL NAMCHK IN <DTADR,MODBUF> OUT <HEAD,NEWBUF> WHERE DTADR = ADDRESS OF DATA TABLE MODBUF = ADDRESS OF 5 BYTE BUFFER CONTAINING MODULE NAME HEAD = HEADER ADDRESS OF VERIFIED MODULE NEWBUF = UPDATED DECODE BUFFER POINTER VERSION: 0.0 EDIT DAi-E BY REASON NAMCHK VERIFY A MODULE NAME NAMCHK.MAC 28-JUL-78 09:23 565 566 567 568 (1) 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 MACY11 30A(1052) 20-SEP-78 18:12 PAGE 19-1 COMMON DEFINITIONS AND REFERENCES FOR NAMCHK .SBTTL COMMON DEFINITIONS AND REFERENCES FOR NAMCHK .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 000000' 000000' 000001 000001 $LSTIN=1 $LSTTAG=1 ;**************** , ; REFERENCED BY OTHER MODULES: .GLOBL NAMCHK ;**************** , ; GLOBAL REFEReNCES: .GLCBL .GLOBL SAVREG RESREG ;**************** ;ROUTINE ENTRY POINT SEQ 0739 NAMCHK VERIFY A MODULE NAME NAMCHK.MAC 28-JUL-78 09:23 590 591 592 (2) 593 594 595 596 597 598 599 600 .SBTTL (4) 607 60S 609 610 611 612 (4) 613 (4) 614 615 000044' 604 (6) (9) (6) (9) 605 LET R1 := MODBUF(R5) 000002 LET NEWBUF(R5) := Rl + #5 000006 000005 000006 000005 000040 000005 000015 IFB 5(R1) NE #SPACE ANDB 5(R1) NE NCR THEN INLINE <BR 1$> JSR PC,SAVREG MOV MODBUF(R5) ,R1 MOV ADD R1,NE\IJBUF(R5) #5,NEWBUF(R5) CMPB BEQ C:..1PB BEQ 5(Rl),HSPACE 50002$ 5(Rl),#CR 50002$ BR 1$ MOV DTADR(R5),RO MOV DT .MLST(RO) ,RO MOV (RO) , R2 CMP EEQ (RO) ,#ENDLST 50004$ 50002$: ;+ ; SAVE DTABLE ADR, THEN MODULE LIST ;- 000044' 000044' 016500 000050' 000050' 016000 LET RO .- DTADR(R5) 000000 LET RO '- DT.MLST(RO) 000032 ;+ ; SAVE FIRST MODULE ADDR IN R2 ', - 617 618 (4) NAMCHK: CALL SAVREG OOOOOOG 616 619 <DTADR,MODBUF,HEAD,NEWBUF> ;- 000044: (4) 603 (4) (6 ) SEQ 0740 ; SAVE REGISTERS, UPDATE CMD DECODE BUFFER POINTER, AND SEE IF IT'S ; A SPACE OR <CR> .... IF NOT, POP R1 AND RETURN ERROR BECAUSE ; MODULE NAME MAY NOT EXCEED 5 CHARACTERS ..... 606 602 PAGE 19-2 ;+ (2 ) (3 ) 18:12 NAMCHK ROUTINE ROUTINE NAMCHK 000000' 000000' 000000' 000000 1 004767 000004' 000004' 016501 000010' 000010' 010165 000014' 062765 000022' 000022' 126127 000030' 001405· 000032' 126127 000040' 001401 000042' '000042' 000433 601 MACY11 30A(1052) 20-SEP-78 NAMCHK ROUTINE LET R2 .- (RO) 000054' 000054' 011002 620 621 622 623 624 625 (4) (6) (9) 626 627 628 ;+ ; WHILE MODULE LIST IS NOT EXHAUSTED (=0) •• •••••• , '- WHILE (RO) NE #ENDLST DO 000056' 000056' 000056' 021027 50003$: 000000 000062' 001423 ;+ ; INIT COUNT - WHILE CHARACTER IN MODULE HEADER CHARACTER IN NAMCHK VERIFY A MODULE NAME 28-JUL-78 09:23 NAMCHK.MAC 629 630 631 632 (4) 633 (4 ) (6 ) (9) 634 635 636 637 638 639 640 641 (6) 642 (6) (9) 643 (4) 644 (3 ) 645 (4) 646 (4) 547 (4 ) (3) 648 649 650 651 652 (6) 653 654 655 656 657 658 659 660 (4 ) 661 662 663 664 665 666 (4) 667 (4) 20-SEP-78 MACY 11 30A(1052) NAMCHK ROUTINE 18: 12 PAGE 19-3 SEQ 0741 ; BUFFER .•.... , 000064' 000064' 012703 000070' 000070' 000070' 122221 000072' 001011 LET R3 := #5 000005 MOV #5,R3 CMPB BNE (R2)+, (R1)+ 50006$ DEC R3 TST BNE R3 50007$ MOV (RO),HEAD(R5) JSR PC,RESREG g~ 50000$ BR 50005$ ADD #2,RO MOV (RO) ,R2 r-t.ov MODSUF(R5),Rt 8R 50003$ WHILEB (R2)+ EQ (R1)+ DO 50005$: ;+ ; ADVANCE TO NEXT CHARACTER, DECREMENT COUNT, SEE IF COUNT ; IF IT IS ZERO, SAVE CURRENT HEADER ADDRESS (RO) AND ; RETURN WITH NO ERROR. O. , 000074' 000074' 000076' 000076' 000100' 000102' 000102' 000106 1 000106' 000112' 000112' 000114' 000114' 000114 1 000114' 000116' 005303 LET R3 . - R3 - #1 IF R3 EO #0 THEN 005703 001005 LET HEAD(R5) 011065 000004 004767 OOOOOOG .- (RO) CALL RESREG RETURN NO.ERf(OR 000413 ENDIF 500075: ENDDO 000765 50006$: + GET TO THE NEXT TABLE ADDRESS 000116' 000116' 062700 LET RO .- RQ + #2 000002 ;+ ; SAVE NEW MODULE ADDRESS IN R2 ;- LET R2 000122' 000122' 011002 . - (RO) ;+ ; RESTORE MODULE BUFFER POINTER ;000124' 000124' 016501 000130' 000130' 000752 LET R1 000002 ENDDO := MODBUF(R5) NAMCHK VERIFY A MODULE NAME 28-JUL-78 09:23 NAMCHK.MAC (3) MACY11 30A(1052) 20-SEP-78 NAMCHK ROUTINE 18:12 PAGE 19-4 SEQ 0742 50004$: 000132' 6S3 669 670 671 ;+ ; CLEAN UP AND RETURN WITH ERROR BECAUSE MODULE NAME tJOT FOUND 072 673 (2) 574 (3 ) 675 676 (2) (4 ) 677 678 (3) (2 ) (3) (2) 679 680 000132' 000132' OOC132' 000132' 004767 !NLINE <1$:> CALL RESREG OOOOOOG JSR 000136' 000136' 000261 000140' 000401 RETURN ERROR 000142' 000142 1 000142' 000241 000144 1 000144 1 000207 ENDRTN 000001 PCtRESREG SeC 8:-< 50001$ 500005: CLC 50001$: RTS .END PC NAMCHK VERIFY A MODULE NAME 2S-JUL-78 09:23 NAMCHK.MAC 000102 ACSR ACTaIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 000106 ASB ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS 000001 BITO 000001 BITOO BIT01 = 000002 000004 B1T02 000010 BIT03 000020 B1T04 000040 BIT05 000100 BIT06 000200 BIT07 000400 BIT08 001000 BIT09 000002 BIT1 002000 BIT10 004000 BIT11 B1T12 010000 81T13 020000 BIT14 040000 81T15 100000 BIT2 = 000004 000010 BIT3 81T4 000020 000040 BIT5 BIT6 000100 BIT7 = 000200 000400 BIT8 BIT9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF 000015 CR CSRA 000100 CSRC 000102 MACY11 30A(1052) 20-SEP-78 SYMBOL TABLE 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGW1C= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 DT. AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ES1== 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT .KBP= 000C26 DT.KBR= 000022 DT.KBU= 000030 DT.iv1LS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT. PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 Dr. PT A= 000064 DT.ReS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.5S1= 000046 DT.STO= 000010 DT.5T1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 18: 12 PAGE 20 SEQ 0743 EOPB1T= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 000004 HEAD HRDCNT= 000044 HRDPAS= 000050 lCONT = 000036 ICOUNT= 000040 IDNUM = 0001~2 IE = 000100 1NDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT INTR 000120 IOMOD 100000 10MODP= 102000 10MODR= 112000 IOMODX= 110000 MO~EXH= 004000 MOCHOl= 002000 MODSEL= 001000 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 0000i7 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP== 000021 MSGNUL=· 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 I\1SGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= 000014 MSGS!'v1S= 000016 MSGSTD== 000000 MSGSYS== 000012 MSGVEC= 000020 NAMCHK OOOOOORG "'1" "',""Cf'lCI"I V....J...,JVUy !,-JSK\'OD~ 001000 KIPARO= KIPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPDR1= KIPDR2= KIPDR3= KIPDR4= KIPDR5= KIPDR6= KIPDR7= KTERRO= KTPRES= KiSTAT= KTXTND= LF LP5TAT= MAPSTA= MED MEMPAS= MODBUF= 172340 172342 172344 172345 NCPUOP= NEWBUF= NOAPTY::: NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSl= PDP60 PDP70 PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= 000020 000006 000002 000000 024020 000010 002000 000100 000034 020000 I" Un\"''' 172350 172352 172354 172356 172300 172302 172304 172306 172310 172312 172314 172316 000040 000400 000020 040000 000012 000001 000200 076600 040000 000002 004~00 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 R8UFEA= 000130 RBUFPA= 000126 RBUr=SZ= 000132 RBUFVA= 000124 RDSERV= 000101 RD~lHM1 = 000022 RELERR= 000020 RELMOD= 020000 RELTIM= 010000 RESREG== ****** G 000056 RES1 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SAVREG= ***"'** G S3ADR = 000102 SBK:i,OD= 000000 S9KSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC,CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SRi 177576 SR2 172516 SR3 STAT 000026 STATBI= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 000064 SVR1 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 MACV11 3riA(1052) 20-SEP-78 SYMBOL TABLE NAMCHK VERIFY A MODULE NAME NAMCHK.MAC 28-JUL-78 09:23 W8STAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTD WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XDFF 000021 XON $BGNLE= 177777 $ERFLG= 000000 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 SYSERR= 000100 TMPID = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 ASS. 000000 000146 ERRORS DETECTED: 000 001 0 DEFAULT GL08ALS GENERATED: 0 DSKZ:NAMCHK,DSKZ:NAMCHK=SPMAC/ML,EQUATE,NAMCHK RUN-TIME: 13 3 .4 SECONDS RUN-TIME RATIO: 79/18=4.3 14K (27 PAGES) CORE USED: 18:12 $F$FAL= 000405 $F$GDO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LDD= 000200 $F$NAM= 000160 $F$ND = 000403 $F$DR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $LOCTA= 177777 $LSTIN= 000001 PAGE 20-1 SEQ 0744 $LSTTA= 000001 177777 000300 $NSKO $NSK1 = 000120 $NSK2 = 000120 $NSK3 = 000110 $SAVLE= 177777 $SSKO = 050004 $TAGLE= 177777 $TAGNU= 050010 000300 $TEMP 050003 $TSKO 050004 $TSK1 050005 $TSK2 050006 $TSK3 $TSK4 050007 $$ARGC= 000010 $$SYTE= 000403 $$CASE= 000000 $$DST = 000000 $N~STL= $$ELOC= 000403 $SERFL= 000000· $$FLAG= 000001 $$FROM= 000000 $SLOC = 000100R $$LOCN= 000000 S$REG = 177777 $$RETU= 000001 $$RTN1= 050000 $$RTN2= 050001 $SSRC = 000000 $STGSV= 000000 $$TGS1= 000000 SSTGS2= 000000 000000 $$TO $$$TAG= 050000 000146R .MAIN. MACY11 30A(1052} 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 558 561 603 18:14 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFENITIONS AND REFERENCES 000000 1 .PRINT NEWBA ROUTINE ;SPMAC: VERSION 1.1 SEQ 0745 NEW8A - ESTABLISH NEW BASE ADDRESS NEWBA.MAC 28-JUL-78 09:23 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534· 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE 18:14 PAGE 19 SEQ 0746 .TITLE NEWBA - ESTABLISH NEW BASE ADDRESS .lDENT JVO.Oj ;++ MODULE NAME: NEWBA FUNCTIONAL DESCRIPTION: CALCULATES A NEW RELOCATION BASE ADDRESS BY USING EITHER THE CONSTANT OFFSET OR A RANDOMLY GENERATED OFFSET VALUE INPUTS: DATA TABLE ADDRESS, CURRENT ADDRESS OFFSET, FIRST RELOCATION FLAG IMPLICIT INPUTS: DT.REL, DT.ESIZ, DT.SSIZ, DT.SWR, DT.STO OUTPUTS: NEW ADDRESS OFFSET IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS~ NONE SUBORDINATE MODULES CALLED: RANDOM SAVREG RESREG ;RANDOM NUMBER GENERATOR ;SAVE REGISTERS ;RESTOREREGISTERS FUNCTIONAL SIDE EFFECTS NONE CALLING SEQUENCE: CALL NEWBA IN <A,B.C> OUT <D> A=ADDRESS OF DATA TABLE B=CURKENT ADDRESS OFFSET C=FIRST RELOCATION FLAG D=NEW ADDRESS OFFSET VERSION: 0.0 EDIT ,._.- BY DATE REASON NEWBA - ESTABLISH NEW BASE ADDRESS NEW3A.MAC 28-JUL-78 09:23 558 559 560 561 ( 1) 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 MACY11 3QA(1052) 20-SEP-78 18:14 COMMON ~EFENITIONS AND REFERENCES 000000' 000000 1 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 ;**************** ; REFERENCED BY OTHER MODULES .GLOBL NEWBA ;MODULE ENTRY POINT ;**************** ; GLOBAL REFERENCES .GLOBL .GLOBL .GLOBL RANDOM SAVREG RES REG ;RANDOM NUMBER GENERATOR ;SAVE REGISTERS' ;RESTORE REGISTERS ; ;**************** 582 ; ; LOC.'''. L 583 STOR.~,GE 584 585 586 587 588 589 590 000000' 000000 NB.CNT: .WORD a 000002' 000000 ~8.CYCLNG: .WORD 0 000004' 000000 NB.MAX: .WORD 0 591 000006 1 000000 000010 1 000000 NB.NBR: NB.STADDR: .WORD 0 .WORD 0 000012' 000000 NS.OFLAG: .l~ORD 000014 000000 NB.TOP: .WORD 0 000016 1 000000 NB.B!T: .WORD 0 593 594 0 595 596 1 597 598 599 600 601 SEQ 0747 .SBTTL COMMON DEFENITIONS AND REFERENCES 581 592 PAGE 19-1 ;**************** ;NO. OF RANDOM RELOCATION5 SINCE LAST ; MOVE TO BOTTOM OF MEMORY ;CYCLING FLAG - INDIC~TESf WHEN SET, RELOCATING BY CONSTANT OFFSET (CYCLING) ;MAX. NO. OF RANDOM R~LOCATIONS ALLOWED SEFOR= RELOCATING BACK TO BOTTOM ;STORAGE FOR RANDOM NUMBER ;STORAGE FOR EXERCISER'S STARTING ADDRESS OFFSET VALUE ;O-FLAG - INDlCATES, WHEN SET, THAT THERE HAS BEEN A RELOCATION TO BOTTOM ;OFFSET NEEDED TO MOVE THE EXERCISER TO HIGHEST MEMORY ;BIT PATTERN FOR USE WITH RANDOM NUMBER NEWBA - ESTABLISH NEW BASE ADDRESS NEWSA.MAC 28-JUL-78 09:23 603 604 605 (2) 606 607 608 609 610 611 612 (3) 613 614 615 616 617 618 619 (4) 620 621 622 623 624 625 '326 (6) (9) 627 628 629 630 631 632 633 (4) 634 ( 4) 635 (4) 636 637 638 639 640 641 (4 ) 642 643 644 645 646 647 648 649 MACY11 30A(1052) 20-SEP-78 18:14 PAGE 19-2 SEQ 0748 NEW8A ROUTINE .SBTTL NEWBA ROUTINE ROUTINE NEWBA <TABL,OLDPAR,RL1,NEWPAR> 000020' 000020' NEWBA: ;+ ;SAVE REGISTERS 000020' 000020' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV TA8L(R5),RO ;+ ;SET RO TO START OF DATA TABLE ;- 000024' 000024' 016500 LET RO := TABL(R5) 000000 ;+ ;IF THIS IS THE FIRST RELOCATION, DO THE ;- 000030' 000030' 026527 000036' 001067 NECESSA~Y INITIALIZATION IF RL1(RS) EO #1 THEN 000004 000001 CMP B;-..JE RL1(R5),#1 50002$ MOV #l,NB.CYCLNG CLR NB.OFLAG CLR NB.CNT MOV OLDPAR(R5),NB.ST ;+ ;INITIALIZE FLAGS AND NB.CNT ;000040' 000040' 012767 000046 1 000046 1 005067 000052' 000052 1 005067 LET NB.CYCLNG := #1 000001 177734 LET NB.OFLAG := #0 177740 LET NB.ctn := #0 177722 ;+ ;SAVE THE INITIAL ADDRESS OFFSET ;- 000056' 000056 1 016567 LET NB.STADDR := OLDPAR(R5) 000002 177724 ;+ ;CALCULATE NB.MAX BY DIVIDING BY 2 THE NUMBER OF K' 5 OF MEMORY. ;THIS IS DONE BY GETTING THE CONTENTS OF DT.SSIZ AND SrlIFTING ;TO THE RIGHT 6 TIMES. (5 TIMES TO GET NO. OF KIS, AND ONCE MORE TO ;DIVIDE BY 2). ;DON'T, HOWEVER, ALLOW NB.MAX TO BE GREATER THAN 30(10). NEWBA - ESTABLISH NEW BASE ADDRESS 28-JUL-78 09:23 NEWBA.MAC 650 651 652 (4) 653 (7) (7) (7 ) (7) (7) (7) 654 (6) (9) 655 (4) 656 (4) 657 (4) 20-SEP-78 MACY 11 30A(1052) NEWBA ROUTINE 18: 14 PAGE 19-3 SEQ 0749 , 000064 1 000064 1 000070' 000070' 000072' 000074 1 000076 1 000100 1 000102' 000104 1 000104' 000110' 000112 1 000112 1 000116 1 000116 1 000116 1 000116' 016001 LET R1 .- DT.SSIZ(RO) LET R1 .- R1 SHIFT #-6 000046 MOV ASR ASR ASR ASR 006201 006201 006201 006201 006201 006201 IF R1 GT # .... D30 THEN 000036 012701 000036 LET R1 R1 n~ rtl ASR R1 R1 R1 R1 CMP BLE R1,# . . D30 50003$ MOV #"030,R1 MOV R1,NB.MAX ASR 020127 003402 DT.SSIZ(RO).R1 := # .... D30 ENDIF LET NB.MAX 010167 177662 .- R1 500035: NEWBA - ESTABLISH NEW BASE ADDRESS NEWBA.MAC 28-JUL-78 09:23 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 (4) (6) 674 (7) (7) (7 ) (7) (7 ) (7 ) 675 (6 ) 676 (6) 677 678 (6) (9) (6) (9) 67£1 (4) 680 (4) (3) 681 (4) 682 (4) 683 684 (4) (6) 685 686 687 688 (4) 689 690 691 692 MACY11 30A(1052) NEWBA ROUTINE 20-SEP-78 18:14 PAGE 20 SEQ 0750 ;+ ;CALCUlATE THE ADDRESS OFFSET NEEDED TO MOVE THE EXERCISER TO THE ;TOP OF CORE. THIS IS DONE USING THE FOllOWNG A~GORITHM: 1. GET THE SIZE OF THE MOVABLE PORTION OF THE eXERCISER 2. SHIFT OUT THE SIX lEAST SIGNIFICANT BITS rr3. ADD ONE TO THE RESULT TO ALLOW ROOM .... ,.....1""'1. Inc SHIFTED OUT 4. SUBTRACT THIS FROM THE SYSTEM SIZE. IF, HOWEVER, THE UNIBUS MAP IS SHUT OFF, (IT MAY NOT EVEN EXIST), THEN DON1T ALLOW RELOCATION ABOVE 124K. ru~ -rl 1"""11 ""f"'.lft."'!" O~U~~J II Ie---..,. UU~I ;000122 1 000122 1 016002 000126 1 162702 000132 1 000132 1 006202 000134 1 006202 000136' 006202 000140' 006202 000142 1 006202 000144 1 006202 000146 1 000146 1 042702 LET R2 '- DT.ESIZ(RO) - #20000 000044 020000 LET R2 '- R2 SHIFT 000216' 000216' ASR ASR ASR ASR ASR ASR R2 R2 R2 R2 R2 R2 BIC #176000,R2 INC R2 LET R2 '- R2 CLR.BY #;76000 LET R2 .- R2 + #1 000152 1 005202 000206' 000206' 010167 000212' 160267 DT.ESIZ(RO),R2 #20000,R2 #~6 176000 OOO~521 000154' 000154' 032760 000162' 001007 000164' 026027 000172' 103403 000174 1 000174' 012701 000200' 000200 1 000402 000202 1 0002021 000202' 016001 000206 1 000206 1 MOV SUB 000200 000010 000046 007600 IF #MAPSTAT NOTSETIN DT.STO(RO) AND DT.SSIZ(RO) HIS #7600 THEN BIT BNE CMP BlO LET Ri . - #7600 MOV ELSE 007600 #MAPSTAT,DT.STO( 50004$ DT.SSIZ(RO},#760 50004$ #7600,R1 BR 50005$ MOV DT.SSIZ(RO),R1 Mev R1,NB.TOP R2,NB.TOP 50004$: LET Ri 0- DT.SSIZ(RO) 000046 ENDIF 50005$: LET NB.TOP 0- R1 - R2 177602 177576 SUB ENDIF 50002$: ;+ ;ARE WE RELOCATING BY THE CONSTANT OFFSET (CYCLING) ? WE ARE IF NEWBA - ESTABLISH NEW BASE ADDRESS NEWBA.MAC 28-JUL-78 09:23 000216' 000216 1 026727 (8) 000224' 001404 (6) (9) (6) 698 699 700 701 702 703 704 705 706 707 70S 709 (4) (6) 710 711 000226' 032760 000234' 001435 000236 1 717 718 719 720 721 722 723 724 725 726 (4) 727 (4) 728 729 730 (4) 731 732 733 734 735 736 18:14 PAGE 20-1 SEQ 0751 ;- IF NB.CYCLNG EQ #1 OR #BIT08 SETIN DT.SWR(RO) THEN 177560 000400 000001 CMP NB.CYCLNG,#1 OCt"l 50006$ u .... "" 000056 BIT BEQ #BIT08,DT.SWR(RO 50007$ MOV ADD OLDPAR(R5),NEWPA DT.REL(RO),NEWPA CMP BlOS NEWPAR(R5),NB.TO 50010$ 50006S: ;+ ;RELOCATING BY CONSTANT OFFSET (CYCLING) ;- ;+ ;ADD THE OFFSET CONSTANT TO THE CURRENT ADDRESS OFFSET TO FIND ;A NEW BASE ;- 000236' 000236' 016565 000244' 066065 LET NEWPAR(R5) "- OLDPAR(R5) + DT.REL(RO) 000002 000040 000006 000006 ;+ 712 (9) 20-SEP-78 ;THE CYCLING FLAG IS SET OR IF BIT 8 OF THE SOFTWARE SWITCH ;REGISTER IS SET. 693 694 695 696 697 (6) 713 714 715 716 (6) MACY11 30A(1052) NEWBA ROUTINE . ;SEE IF THIS NEW BASE VALUE IS TOO LARGE FOR THE SYSTEM. "- 000252' 000252' 026567 000260' 101406 IF NEWPAR(R5) HI NB.TOP THEN 000006 177534 ;+ ;THE NEW ADDRESS WILL BE TOO HIGH - WE'VE HIT THE TOP OF CORE, SO ;IT'S TIME TO RELOCATE TO THE BOTTOM. THE NEW OFFSET VALUE WILL BE 200. ;THIS WILL PUT THE EXERCISER SACK TOGETHER AGAIN AT THE BOTTOM OF ;MEMORY. SET NB.OFLAG TO INDICATE WE1VE GONE TO THE BOTTOM, AND RETURN. ;- 000262' 000262' 012765 000270' 000270' 012767 LET NEWPAR( R5) : = #200 000200 000006 000001 177514 LET NB.OFLAG := #1 MOV #200,NEWPAR(R5) Mev #1,NB.OFLAG ENDIF 000276' 000276' 50010$: ;+ ;NEW ADDRESS IS OK. BUT BEFORE WE LEAVE, WE HAVE TO SEE IF WE HAVE ;FINISHED CYCLING. THIS IS DuNE BY CHECKING IF THE NEW BASE IS ;GREATER THAN OR EQUAL TO THE STARTING ADDRESS OFFSET, AND IF NB.OFLAG NEWBA - ESTABLISH NEW BASE ADDRESS NEWBA.MAC 28-JUL-78 09:23 737 738 739 740 (6) (9) (6) (9) 741 742 743 744 745 746 747 748 (4) 749 (4) 750 751 20-SEP-78 18:14 PAGE 20-2 SEQ 0752 ;IS SEi ;- 000276' 000276' 000304 1 000306: 000314' IF NEWPAR(R5) HIS NB.STADDR AND NB.OFLAG EQ #1 THEN 026567 103410 026727 001004 000006 177504 i77500 OOOOOt BlO NEWPAR(R5),NB.ST 50011$ BNE 50011$ CLR NS.CYCLNG ClR NS.OFLAG SR 50012$ CMP BNE NB.OFLAG,#1 50013$ CMP ~~B. OFLAG, #1 ;+ ;CYCLING IS COMPLETED. ;ALSO CLEAR NB.OFLAG. 000316' 000316' 005067 000322' 000322' 005067 (4) 000326' 000326' 752 753 754 (4) 000326 1 000326' 000463 (3) 000330' 755 756 757 758 759 760 761 762 763 764 765 766 (6) (9) 767 768 769 770 771 772 773 (4) 774 (4) 775 776 777 (4) (3) MACY11 30A(10S2) NEWBA ROUTINE CLEAR THE CYCLING FLAG. LET NB.CYCLNG '- #0 177460 LET NB.OFLAG .- #0 177464 ENDIF 50011$: ELSE 50007$: ;+ ;RELOCATING BY RANDOM OFFSET VALUES ; - ;+ ;IF THE LAST RELOCATION WAS BACK TO THE BOTTOM OF MEMORY, THEN ;WE MUST NOW RELOCATE TO THE TOP-MOST PIECE OF MEMORY. ,' 000330' 000330' 026727 000336' 001006 IF Na.OFLAG EO #1 THEN 177456 000001 ;+ ;GET THE PREVIOUSLY CALCULATED OFFSET NEEDED TO GST US TO THE TOP ;OF MEMORY. ALSO CLEAR NB.OFLAG. , 0- 000340' 000340' 016765 000346' 000346' 005067 000352' 000352' 000451 000354' LET NEWPAR(R5) '- N8.TOP 177450 000006 MOV NB.TOP,NEWPAR(R5 CLR NS.OFLAG BR 50014$ LET NB.OFLAG '- #0 177440 ELSE 50013$: NEWBA - ESTABLISH NEW BASE ADDRESS NEWBA.MAC 28-JUl-78 09:23 778 779 780 781 782 783 784 785 786 (6) (9) 787 (4) 788 (4) 789 (4) 790 791 (4) (3) 792 793 794 795 796 797 798 799 800 801 802 803 804 805 (3) 806 (4) 807 (4) (3) (4) 808 (4) (6) (9) 809 (6) 810 (7) 811 (4) (3) 812 (3) (6) MACY11 30A(1052) NEW8A ROl.!TINE 20-SEP-78 18:14 PAGE 20-3 SEQ 0753 ;+ ;IF THE NUMBER OF PREVIOUS RANDOM RELOCATIONS EQUALS THE MAXIMUM, ;THEN RELOCATE TO THE BOTTOM OF CORE, SET NB.OFLAG, AND RESET THE ;RELOCATION COUNTER ;= 000354' 000354' 000362' 000364' 000364' 000372' 000372' 000400' 000400' IF NB.CNT EQ NB.MAX THEN 026767 001011 177420 177422 012765 000200 000006 012767 000001 005067 177374 CMP BNE NB.CNT,NB.MAX 50015$ MOV #200,NEWPAR(R5) MOV #1,NB.OFLAG ClR NB.CNT BR 50016$ LET NEWPAR(R5) .- #200 LET NB.OFlAG := #1 177412 LET NB.CNT := #0 ELSE 000404' 000404' 000434 000406' 500155: ;+ ;GET A RANDOM NUMBER AND SEE IF IT CAN BE USED TO CREATE AN ADDRESS ;WHICH IS GREATER THAN THE HIGHEST ADDRESS OF THE lOW 4K OF THE :EXERCISER AND SMALLER THAN OR EQUAL TO NB.TOP. ;IF IT IS TOO BIG, START CLEARING HIGH ORDER BITS ONE AT A ;TIME U~T!l THE NUMBER IS SMALL ENOUGH. THEN CHECK TO SEE IF IT IS ;TOO SMAll. IF IT IS, GET ANOTHER RANDOM NUMBER AND START ;AGAIN. WHEN A GOOD VALUE IS FOUND, SET UP THE OUTPUT AND INCREMENT ; THE COUNTER OF THE NUMBER OF RELOCATIONS. 000406' 000406' 000406' 000406' 000414' 000414' 000420' 000424' 000430' 000430' 000430' 000436' 000440' 000440' 000446' 000446' 000452' 000452' 000454' 000454' 000454' 000462' REPEAT 50017$: LET NB.BIT '- #100000 012757 100000 177402 162705 004767 012567 000002 OOOOOOG 177356 026767 101406 177352 177356 046767 177352 177340 006267 177344 MOV #100000,NB.BIT SUB JSR MOV #1*2,R5 PC,RANDOM (R5)+,NB.NBR CALL RANDOM OUT <NB.NBR> WHILE NB.NBR HI NB.TOP DO 50020$: CMP NB.NBR.NB.TOP BLOS 50021$ LET NB.NBR .- NB.NBR ClR.BY NB.BIT BIC NB.BIT.NB.NBR LET NB.BIT '- NB.BIT SHIFT #-1 ASR NB.BIT ENDDO 000766 8R 50020$ CMP BLO NB.NBR.#200 50017$ 50021$: UNTIL NB.NBR HIS #200 02672 7 103751 177326 000200 NEW3A - ESTABLISH NEW BASE ADDRESS 28-JUL-78 09:23 NEWBA.MAC 813 (4 ) 814 (6) 815 816 (4) 817 (4) 818 (4) 000464' 000464: 016765 000472' 000472' 005267 MACY 11 30A(1052) NEWBA ROUTINE 20-SEP-78 18: 14 PAGE 20-4 SEQ 0754 LET NEWPAR(R5) 177316 := NB.NBR 000006 MOV NB.NBR,NEWPAR(R5 INC NB.CNT JSR PC,RESREG RTS PC LET NB.CNT := NB.CNT + #1 177302 ENDIF 000476' 000476' 000476' 000476' 000476 ' 000476' 50016$: ENDIF 500145: ENDIF 500125: 819 820 821 822 823 824 825 (3 ) 826 827 (3 ) (3 ) (2 ) 828 829 ;+ ;RESTORE REGISTERS AND RETURN ;+ 000476' 000476' 004767 000502' 000502' 000502' 000502' 000207 000001 CALL RESREG OOOOOOG ENDRTN 500005: 500015: .END MACY11 30A(1052) SYMBOL TABLE NEWBA - ESTABLISH NEW BASE ADDRESS 28-JUL-78 09:23 NEWBA.MAC 000102 ACSR ACTBli= 004000 ADDR22.:: 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ASS 000106 ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 A\vAS 000110 000001 BITO 000001 BITOO 000002 BIT01 000004 BIT02 BIT03 000010 000020 BIT04 000040 BITOS 000100 BIT06 BIT07 000200 000400 BITOS BIT09 OO~OOO 000002 BIT1 BIT10 002000 004000 BIT11 010000 BIT12 BIT13 020000 040000 BIT14 100000 BIT1S BIT2 000004 000010 BIT3 000020 BIT4 000040 BIT5 BITS 000100 BIT7 000200 BITS 000400 BIT9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDW.DCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF CR = 000015 CSRA = 000100 CSRC = 000102 CTRLC = 000003 CTRLO = 000017 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 20-SEP-78 ERRTYf>= EVNTBE= EVNTHD= EVNTKT= EVNTPE= EVNTRE= 000105 000200 000200 000203 000202 000201 100000 FATERR= ".vvvvv "" {'''", DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100. DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT. EXS=. 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT. KBU= 000030 DT.MLS= 000032 DT.MTI:: 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 0001.02 DT. REL= 000040 DT. SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 .- 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 HRDCNi= 000044 HRDPAS=. 000050 ICONT = 000036 ICOUNT= 000040 IONUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT 000120 INTR rOMOD 100000 IOrJIODP= 102000 IOMGDR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 t~IPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 MODSEL= 001000 DROpr,10= 18: 14 PAGE 21 0000;0 000011 000005 000017, 177777 000013 ~~1SGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= 000014 MSGSi'r1S= 000016 MSGSTD= 000000 rt.SGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NB.BIT 00OJ16R NB.CNT OOOOOOR NB.CYC 00OO02R NB.MAX 00OO04R NB.NBR 00OO06R N8.STA 00a010R NB.TOP 00OO14R NB.OFL 000012R NCPUOP= 000020 000020RG NEvliBA NEWPAR= 000006 NOAPTY= 000002 000000 NULL OLDPAR= 000002 024020 0111 EN PAERR = 000010 PARPRE= 002:)00 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 PDP70 = 010000 000000 PRIO 00'0040 PR 11 000200 PRI4 000240 PRI5 000300 PRI6 000340 PRI7 000000 PRO 000200 PR4 MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= SEQ 0755 000240 000300 000340 PR7 PS = 177776 177776 PS~'tI RAN00M= ****** G RANNU:\~= 000054 RSUFEA= 000130 R8UFPA= 000126 RBUFSZ= 000132 RSUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOO= 020000 RELTIM= 010000 RESREG= ****** G RESl 000056 000060 RES2 RICHAR= 031060 R:" 1 000004 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 SAM 075464 SAVREG= ****** G S8ADR = 000102 SBKMOD= 000000 S5KSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 00000'2 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOrPAS= 000046 SPACE = 000040 SF-OINT= 000032 SPVALU= 002200 SRO 177572 SRi 177574 177576 SR2 172516 SR3 000026 STAT STATo!= 064757 STAn = 000027 SUSPND= 000001 PR5 PR6 NEWSA - ESTABLISH NEW BASE ADDRESS 28-JUL-I'8 09:23 NEW6A.MAC UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WaSTA,= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 000062 SVRO SVRl 000064 SVR2 000066 SVR3 000070 SVR4 000072 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TABL 000000 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 . ASS. 000000 000504 MACY11 30A(1052) SYMBOL TABLE 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:NEWBA,DSKZ:NEWBA=SPMAC/ML,EQUATE,NEWBA RUN-TIME: 18 8 .4 SECONDS RUN-TIME RATIO: 84/28=2.9 CORE USED: 14K (27 PAGES) 20-SEP-78 $F$CAS;:: 000150 $F$DEC= 000220 $F$DO = 000340 $F5FAL= 000405 $F$GOO= 000400 $F$IF = 000110 ... rl"'_ 0."" VU<!IV .... • " ;pr;p.l.I" .... $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $FSOR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 SF$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 000001 $ISKO 000001 $ISK1 $ISK2 000001 &r-~T 18: 14 PAGE 21-1 SEQ 0756 $LOCTA= $LSTIN= $LSTTA= $NESTL= $NSKO $NSKI 177777 000001 000001 177777 000300 000110 $NSK2 000110 000110 $NSK3 000130 $NSK4 000120 SNSK5 SSAVLE= 177777 $SSKO = 050021 -$TAGLE= 177777 $TAGNU= 050022 000300 $TEMP 050012 $TSKO 050014 $TSK1 050016 STSK2 050017 $TSK3 050020 STSK4 $TSK5 050021 $$ARGC= 000010 $$BYTE= 000403 $$CASE= 000000 $$OST = 000000 $$ELOC= 000402 $$ERFL= 000000 $SFLAG= 000001 $$FROM= 000000 $$LCC = OOQ462R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RiN1= 050000 $SRTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$STAG= 050000 000504R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 565 568 593 18:15 TABLE OF CONTENTS COMMON EQUATE MODULE OOOOOOr COMMON DEFINTIONS AND REFERENCES FOR NUMCHK .PRINT ;SPMAC: VERSION 1.1 NUMCHK ROUTINE SEQ 0757 NUMCHK OCTAL ASCII TO BINARY CONVERSION ROUTINE MACY11 30A(1052) NUMCHK.MAC 28-JUL-78 09:23 COM~ON EQUATE MODULE 508 509 510 511 512 513 5i4 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 54C 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 18:15 PAGE 19 SEQ 0758 .TITLE NUMCHK OCTAL ASCII TO BINARY CONVERSION ROUTINE .lDENT /VO.O/ ;++ MODULE NAME: NUMCHK FUNCTIONAL DESCRIPTION: THIS ROUTINE CONVERTS A 6 DIGIT aCTAl ASCII NUMBER INTO A 16 BIT BINARY NUMBER. IT WILL VERIFY THAT THE NUMBER IS NOT MORE THAN 16 BITS IN LENGTH(LEADING ZEROES ARE ARE NOT COUNTED AS PART OF THE 16 BITS) AND THAT IT IS AN OCTAL NUMBER. A RETURN WITH ERROR OCCURS IF THE NUMBER IS GREATER THAN 16 .; BITS IN LENGTH OR IT IS NOT OCTAL ( I.E. SOMETHING OTHER THAN THE NUMBERS 0-7 WAS DETECTED IN THE NUMBER). INPUTS: 1. ADDRESS OF DATA TABLE 2. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: NONE OUTPUTS: 1. UPDATED COMMAND DECODE BUFFER POINTER 2. THE BINARY NUMBER IMPLICIT OUTPUTS: DT.KBRSP - THE COMMAND RESPONSE LOCATION PATHOLOGICAL CONNECTIONS: CM.NUM CM.NBAD ;ERROR MESSAGE ;ERROR MESSAGE SUBORDINATE ROUTINES CALLED: SAVREG RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL NUMCHK IN <DTADR,CMDPTR> OUT <NEWPTR,NUM> WHERE: DTADR = ADDRESS OF DATA TABLE CMDPTR = COMMAND DECODE BUFFER POINTER NEWPTR = UPDATED CMD DECODE BUFFER POINTER NUM = CONVERTED .6 BIT BINARY NUMBER VERSION: 0.0 559 560 561 562 563 20-SEP-78 ,'-- EDIT DATE BY REASON NUMCHK OCTAL ASCII TO BINARY CONVERSION ROUTINE MACY11 3CA(1052) 20-SEP-78 18:15 PAGE 19-1 NUMCHK.MAC 28-JUL-78 09:23 COMMON ~EFINTIONS AND REFERENCES FOR NUMCHK .SBTTL 565 566 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 567 568 000000' (1 ) 000000 ' 569 570 00000; 571 572 000001 573 574 575 $LST IN=1 $LSTTAG=1 ;**************** , ; REFERENCED BY OTHER MODULES 576 , 577 578 1 579 580 581 582 583 584 585 586 587 588 589 SGC 591 COMMON DEFINTIONS AND REFERENCES FOR NUMCHK .GlOBL NUMCHK ;MODULE ENTRY POINT ;**************** , ; GLOBAL REFERENCES: , .GLOBL .GL08L .GLOBl .GL08L CM.NUM SAVREG RESREG CM.NBAD ;**************** ; 'NUMBER TOO LARGE' MSG ADDRESS ;SAVE REGISTERS ;RESTORE REGISTERS ; 'NOT AN OCTAL NUMBER I MSG ADDRESS SEQ 0759 NUMCHK OCTAL ASCII TO BINARY CONVERSION ROUTINE MACY11 30A(1052) NUMCHK.MAC 28-JUL-78 09:23 NUMCHK ROUTINE 593 594 595 (2) 596 597 598 599 600 601 (3) 602 603 (4) 604 (4) 605 606 607 608 609 610 (4) 611 612 613 614 615 616 (4) (6) (9) (6) (9) 617 618 619 620 621 622 623 (4) 624 625 626 627 628 629 630 631 (4) 632 (6) 633 (4) (6) .SBTTL 20-SEP-78 18:'15 PAGE 19-2 SEQ 0760 NUMCHK ROUTINE ROUTINE NUMCHK <DTADR,CMDBUF,NEWPTR,NUM> 000000 1 000000 1 NUMCHK: ;+ ; SAVE REGISTERS, DATA TABLE ADDRESS AND CMD DECODE BUFFER POINTER 'f - 000000 1 000000' 004767 000004' 000004' 016500 000010' 000010' 016501 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV DTADR(R5) ,RO MOV CMDBU F ( R5) , R1 CLR R2 CMPa BLT CMPB BGT (R1),#10 50003$ (R1},#'7 ' 50003$ CLR R4 LET RO .- DTADR(R5) 000000 LET R1 '- CMDBUF(R5) 000002 ;+ ; INITIALIZE THE OUTPUT REG ;- LET R2 := #0 000014 1 000014' 005002 ;+ ; WHILE THERE IS AN OCTAL ASCII CHAR IN CMD DECOGE SUFFER ..... 000016' 000016' 000016' 000022 1 000024' 000030' WHILES (R1) GE #'0 ANDB (R1) LE #17 DO 50002$: 121127 002425 121127 003022 000060 000067 ;+ ; INITIALIZE THE COUNTER. ;LET R4 := #0 000032' 000032' 005004 ;+ ; GET A CHARACTER, SUBTRACT ASCII ZERO, ROTATE 3 LEFT (TO MAKE ROOM), ; AND CHECK TO SEE IF NUM IS NOW> 16 BITS. IF IT IS, STUFF ; ERROR MSG AND RETURN. IF NOT, MOVE R3 TO R2. 000034' 000034 1 112103 000036' 000036' 162703 000042' 000042 1 000042; 020427 LET R3 :B= (Rl)+ [Ii 0 V 8 (Rl)+,R3 SUB #'0,R3 CM? R4, #3 LET R3 .- R3 - #10 000060 WHILE R4 NE #3 DO 50004$: 000003 NUMCHK OCTAL ASCII TO BINARY CONVERSION ROUTINE MACY11 30A(1052) NUMCHK.MAC 28-JUL-78 09:23 NUMCHK ROUTINE (9) 634 (4) 635 (7) 636 (6) 637 (4) 638 (2) 639 (4) 640 (6) 641 (4) (3) 642 643 644 (6) 645 (4) (3) 646 647 648 649 650 651 652 653 (6) (9) (6) (9) (6) (9) 654 (4) 655 (2) 656 657 (4) (3) 658 659 660 661 662 663 664 (4) 665 000046 1 000050' 000050' 000052' 000052' 000054' 000054' 000056' 000056' 000064' 000064' 000066' 000066' 000066' 000066' 000070· 000070' 000072' 18:1~ PAG~ 1~-~ SEQ 0761 SEQ 001411 LET CARRY .- 0 50005$ C l(" t... ... 000241 LET R2 '- R2 ROTATE 006102 ROL R2 BCC 50006$ MOV #CM.NUM,DT.KSRSP BR 1$ INC R4 BR 50004$ BISB R3,R2 BR 50002$ IFCOND CS THEN 103004 012760 20-SEP-78 LET DT.KBRSP(RO) '- #CM.NUM OOOOOOG 000022 INLINE <BR 000431 1$> ENDIF 50006S: LET R4 '- R4 + #1 005204 ENDDO 000764 50005$: LET R2 :B= R2 SET.BY R3 000072' 000072' 150302 000074' 000074' 000750 000076' ENDDO 50003$: ;+ ; IF THE NON-OCTAL CHAR JUST DETECTED IS NOT A SPACE AND NOT A CR, ; STUFF ERROR MSG AND RETURN. ELSE RETURN WITH NO ERROR ... , 0- 000076' 000076' 000102' 000104 1 000110' 000112' 000116' 000120' 000120' 000126' 000126' IFB (Rl) NE #CR ANDB (R1) NE #SPACE ANDB (R1) NE #LF THEN 121127000015 001413 121127 000040 001410 121127 000012 001405 012760 LET DT.KBRSP(RO) .- #CM.NBAD OOOOOOG 000022 INLINE <BR 1$> 000410 ELSE 000130' 000130' 000407 000132' CNIPS SEQ crt.PB SEQ CM?B BEQ (R1) ,NCR 50007$ (R1 ) t #SPACE 50007$ (R1),#LF 50007$ MOV #CM.NBAD,DT.KBRS BR 1$ BR 50010$ MOV R2,NUM(R5) 50007$: ;+ ; THE NUMBER IS OK (16 BITS OR LESS AND OCTAL) ; SO SET UP OUTPUTS AND RETURN NO ERROR. , 0- 000132' 000132' 010265 000136' LET NUM(R5) := R2 000006 LET NEWPTR(R5) '- R1 NUMCHK OCTAL ASCII TO BINARY CONVERSION ROUTINE MACY11 30A(1052) NUMCHK ROUTINE 2B-JU~-78 09:23 NUMCHK.MAC (4) ·666 (3) 667 (4) 668 , ", \ \ .... J 669 670 (2 ) 671 (3) 672 (2 ) (4) 673 674 (3) (2) (3) (2) 675 676 000136 1 010165 000142 1 000142 1 004767 000146 1 000146' 000404 000150' 000160' 000160' 000160' 00C241 000162' 000162' 000207 000001 18:15 PAGE 19-4 SEQ 0762 000004 MOV R1,NEWP.TR(RS) JSR PC,RESREG BR 50000$ CALL RESREG OOOOOOG RETURN NO. ERROR ENOIF 000150 1 000150' 000150 1 000150' 000150 1 004767 000154' 000154' 000261 000156' 000401 :20-SEP-78 c:"r-. .. I'\~. ;")VlJl\J~· INLINE <1$:> 1$: CALL RESREG JSR OOOOOOG RETURN ERROR PC,RESREG SEC 8R 50001$ ENDRTN 50000$: CLC 50001$: RTS .END PC NUMCHK OCTAL ASCII TO BINARY CONVERSION ROUTINE MACY11 30A(1052} SYMBOL TABLE 28-uUL-78 09:23 NUMCHK.MAC ACS~ 000i02 CR 000015 ENBEOP= 010000 ACTBIT= ADDR22= ADR APTFER= APTPRE= 004000 001000 000006 000004 000200 CSRA CSRC CTRlC CTRLO CTRlU 000100 000102 000003 000017 000025 ASS 0'''' vv "c::. DCEVNT::: 00 00 11 ENBNUL= 000001 ENDlST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 600200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT=. 000044 HRDPAS= 00·0050 ICONT = 000036 ICOUNT= 000040 IDNUM ::: 000122 IE = 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT = 000030 INTR = 000120 IOMOD = 100000 IOMODP= 102000 IOMOOR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPOR3= 172306 KIPOR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 IF lPSTAT= 000001 MAPSTA= 000200 076600 MED 1I ""'''''''' ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 AllIAS 000110 000001 BITO 000001 BITOO BITOl = 000002 000004 BIT02 000010 BIT03 BIT04 000020 000040 BIT05 000100 BIT06 000200 BIT07 BIT08 000400 001000 BIT09 BIT1 000002 BIT10 002000 B1 T 11 004000 010000 8IT12 BIT13 020000 BIT14 040000 BIT15 100000 BIT2 000004 000010 BIT3 000020 BIT4 BITS 000040 BIT6 000100 BIT7 000200 BIT8 000400 BIT9 001000 8KDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CMOBUF= 000002 CM.NBA= ****** G CM.NUM= ****** G CONFIG= 000056 CQOVF = 000001 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT~CF1= 000016 DT.ERR= 00002·0 OT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 OT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 OT.SYP= 000072 DT.WBU= 000050 DT. WHL= 000054 DT.WLL= 000052 DVIDl = 000014 ECCMEM= 000100 EceSTA= 000010 2'u-SEP-78 '8: 15 PAGE 20 040000 MODEXH= 004000 MODHOL= 002000 MODSEl= 001000 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD::: 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 00 1 000 NCPUOP= 000020 NEWPTR= 000004 NOAPTY= 000002 000000 NULL NUM 000006 NUMCHK OOOOOORG 024020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 010000 PDP70 PRIO 000000 000040 PR 11 000200 PRI4 000240 PRI5 000300 PRI6 000340 PRI7 000000 PRO 000200 PR4 000240 PR5 PR6 = 000300 PR7 = 000340 177776 PS rv~ErJiPAS= SEQ 0763 177776 PS~\I RANNUM= 000054 R8UFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI = 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 RESREG= ****** G RES1 000056 RES2 = 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 SAM 075464 SAVREG= ****** G SSADR = 000102 SBKMOD= 000000 S3KSEL= 010000 SC.AOR= 000006 SC.ALC= 000014 SC. APe= 0000 -16 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HlD= 000010 SC.SCA= 000012 SENDlS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVAlU= 002200 177572 SRO 177574 SRl 177576 SR2 SR3 172516 000026 STAT STATBI= 064757 STATl = 000027 SUSPND= 000001 000062 SVRO SVR1 000064 000066 SVR2 000070 SVR3 SVR4 000072 SVR5 000074 NUMCHK OCTAL ASCII TO BINARY CONVERSION ROUTINE MACY11 30A(1052) NUMCHK.MAC 28-JUL-78 09:23 SYMBOL TABLE UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WT!NRE= 000352 WHJHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000000 $F$AND=- 000310 $F$BAD= 000401 $F$8LA= 000170 $F$CAS= 000150 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIP.!I.R2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPOR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 ABS. 000000 000164 000 001 0 t:.I-<I-<Uk~ DETECTED; DEFAULT GLOBALS GENERATED: 0 DSKZ:NUMCHK,DSKZ:NUMCHK=SPMAC/ML,EQUATE,NUMCHK RUN-TIME: 14 4 .3 SECONDS RUN--TIME RATIO: 45/19=2.3 14K (27 PAGES) CORE USED: $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 20-SEP-78 18: 15 PAGE 20-1 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 000300 $NSKO SNSK1 = 000110 $NSK2 = 000120 $NSK3 = 000110 SSAVLE= 177777 $SSKO = 050003 $TAGLE= 177777 STAGNU= 050011 000300 $TEMP 050010 $TSKO $TSK1 050003 050004 $TSK2 050005 $TSK3 050006 STSK4 $$ARGC= 000010 $$8YTE= 000402 SEQ 0764 $$CASE= 000000 $$DST = 000000 $SELOC= 000403 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000116R $SLOCN= 000000 $$REG = 177777 $$RETU= 000001 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $5TO $$STAG= 050000 000164R .MAIN. MACY11 30A(1052) 20-SEP-78 13-SEP-78 16:13 EQUATE.MAC 3 555 COMMON EQUATE MODULE 000000 1 18:16 TABLE OF CONTENTS .PRINT ;SPMAC: VERSION 1.1 SEQ 0765 PBREAK PROCESS BREAK MODULE (PBREAK) PBREAK.MAC 28-JUL-78 09:23 508 509 510 511 512 513 514 515 515 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 MACY11 30A(1052) 20-SEP-7B COMMON EQUATE MODULE 18:16 PAGE 19 .TITLE P8REAK PROCESS BREAK IVIUUUL-t:.r.IDENT JVO.Oj (PBREAK) 1\ .. ,....."'111 ;++ MODULE NAME: PBREAK FUNCTIONAL DESCRIPTION: THIS MODULE PROCESSES BREAK TRAP CALLS. IT ENTERS THE OPTION MODULE MAKING THE CALL INTO THE CONTROL QUEUE. INPUTS: DTABLE ADDRESS IMPLICIT INPUTS: DT.PC OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: ENQCQ SAVREG RESREG FUNCTIONAL SIDE ErFECTS: NONE CALLING SEQUENCE: CALL PBREAK IN<DTA> 545 546 DTA 547 548 549 550 551 552 SEQ 0766 EDIT CATA TABLE ADDRESS DATE BY REASON PBREAK PROCESS BREAK MODULE (PBREAK) PBREAK.MAC 28-JUL-78 09:23 .r,1CALL STRUCT 554 555 (1) 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 MACY11 30A(1052) 20-5~P-7~< COMMON EQUATE MODULE 000000' 000000' 000001 000001 STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN:1 $LSTTAG=1 ;********************* ;REFERENCED BY OTHER MODULES , .GLOBL PBREAK j ;********************* i GLOBAL REFERENCES , .GL08L .GLOBL .GLOSL ENQCQ SAVREG RES REG ;********************* l~;'b ~A~t l~-l SEQ 0767 PBREAK PROCESS BREAK MODULE (PBREAK) 28-JUL-78 09:23 PBREAK.MAC 573 (2) 574 575 576 577 578 (3) 579 580 581 582 583 ·584 585 (4) 586 (4) 587 (4 ) (6) 588 589 590 591 592 593 (3) (6) (5) (4} (3) (3) 594 595 596 597 598 599 (3) 600 601 (3) (3) (2) 602 603 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE 18:16 PAGE 19-2 SEQ 0768 ROUTINE PBREAK <DTA> 000000' 000000' PBREAK: ;+ ; SAVE REGISTERS NEEDED ., 000000' 000000' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MJV DTA(R5) ,RO MOV DT . PC ( RO) t R1 MOV ADD R1 ,R2 #2,R2 MClV MOV MOV MJV JSR MOV R5,-(SP) R2,-(R5) (R1) ,-(R5) RO,-(R5) PC,ENQCQ (SP)+,R5 JSR PC,RESREG RTS PC ;+ ; GET DATA TABLE ADDRESS ARGUMENT PASSED ; GET BEGIN ADDRESS AND DEVELOP RETURN ADDRESS ;000004' 000004' 000010' 000010' 000014' 000014' 000016' LET RO 016500 000000 016001 000002 010102 062702 0- DTA(R5) LET R1 . - DT.PC(RO) LET R2 .- R1 + #2 000002 ;+ ; MAKE ENTRY IN CONTROL QUEUE ;- 000022' 000022' 000024' 000026' 000030 1 000032' 000036 1 CALL ENQCQ IN <RO,(Rl),R2> 010546 010245 011145 010045 004767 012605 OOOOOOG ;+ ; RESTORE REGISTERS ;- 000040' 000040' 004767 000044' 000044' 000044' 000044' 000207 000001 CALL RESREG OOOOOOG ENDRTN .END 50000$: 50001$: PBREAK PROCESS BREAK MODULE (PBREAK) 28-JUL-78 09:23 PBREAK. ~.1AC 000102 ACSR ACTBlT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 000106 ASB ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS 000001 8ITO 000001 BITOO 000002 BIT01 000004 BIT02 000010 BIT03 000020 81T04 BIT05 000040 BIT06 000100 000200 BIT07 BIT08 000400 BIT09 001000 000002 BIn 002000 BIT10 BITi; 004000 BIT12 010000 BIT13 020000 BIT14 040000 81T15 100000 81T2 000004 000010 81T3 81T4 000020 BIT5 000040 BIT6 000100 BIT7 000200 BITS 000400 BIT9 ' 001000 BKDEF 000002 8KMOD 000020 8KMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA 000100 CSRC 000102 CTRLC = 000003 CTRLO = 000017 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 000000 DTA DT.ADD= 000042 DT. AP' = 000100 DT.APK= 000076 D1. BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESl= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 MACY11 30A(1052) SYMBOL TABLE 20-SEP-78 ENQCQ ****** G EGPSIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 ' FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 :::: 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 IN!T 000030 000120 !NTR rOMOD 100000 IOMODP= 102000 10\VlODR= 112000 UUUv';)V ..... 1"'\ ..... , , / ' \ I'O~,;ODX= 110000 DT.MLS= 000032 DT.MTl= 000110 DT.OFF'= 000070 DT.PAS:::: 000074 DT. PC, = 000002 D1.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 OT.SP = 000006 OT.5SI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.5YP= 000072 DT.WBU= 000050 DT.WHL= 000054 OT.WLL= 000052 OVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDL5T= 000000 JACK KIPARO= KIPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPDRO= KIPOR1= KIPOR2= KIPDR3= KIPDR4= KIPDR5= KIPOR6= KIPDR7= KTERRO= KTPRES= KTSTAT= KTXTNO= LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= 035060 172340 172342 172344 172346 172350 172352 172354 172356 172300 172302 172304 172306 172310 172312 172314 172316 000040 000400 000020 040000 000012 000001 000200 076600 040000 004000 DT .• KS"U:;. " 18: 16 PAGE 20 SEQ 0769 I\mDHOL=' 002000 rJlODSEL= 001000 MSGCKD= 000010 rV:SGCKS= 000011 MSGDER= 000005 MSGDRP= 0000i7 MSGECH= 177777 MSG£OP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSfVlH= 000014 MSGSMS= 000016 iVlSGSTD= 000000 fvlSGSYS= 000012 MSGVEC= 000020 NBKMOO= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL 024020 OtIJEN 000010 PAERR PA.RPRE= 002000 PARSTA= 000100 PASCNT= 000034 PBREAK OOOOOORG PDPLSI= 020000 004000 POP60 010000 PDP70 000000 PRIO 000040 P R11 000200 PR14 00,J240 PRI5 000300 PRI6 000340 PRI7 000000 PRO 000;200 PR4 000240 PR5 000300 PR6 000340 PR7 177776 PS 177776 PSW RANNU;J!= 000054 RBUFEA= 000130 RBUFPA= 000126 000132 000124 000101 000022 000020 REUil0~= 020000 REL TIM= 010000 RESREG= ****** G 000056 RES1 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SAVREG= ****** G SBADR = 000102 SBXMOD= 000000 S8KSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC~CKP':: 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBI= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO SVR1 000064 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 RBUFSZ= RBU,FVA= RDSERV= RDIIJHMI= RELERR= PBREAK PROCESS BREAK MODULE (PBREAK) 28-JUL-78 09:23 PBREAK.MAC WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR WDTO 000114 WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGN LE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD=. 000401 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 ABS. 000000 000046 MACY11 30A(1052) SYMBOL TABLE 000 001 ERRORS DETECTED: a DEFAULT GLOBALS GENERATED: 0 DSKZ:PBREAK,DSKZ:PBREAK=SPMAC/ML,EQUATE,PBREAK RUN-T IME: 11 1 .3 SECONDS RUN-TIME RATIO: 33/13=2.5 CORE USED: 14K (27 PAGES) 20-SEP-78 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 18: 16 PAGE 20-1 SEQ 0770 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 SIFLEV= 177777 SLOCTA= 177777 SLSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050002 $TEMP = 000300 $SARGC= 000002 $$BYTE= 000000 $$CASE= 000000 $SDST = 000000 $$ELOC= 000000 $$ERFL= 000000 S$FLAG= 000000 $$FRO!'t.= 000000 $$LOC = 000000 $$LOC~~= nnnr.r.n vvvvvv $$REG = 177777 $$RETU= 000000 $$RiN1= 050000 $$=<TN2= 050001 $SSRC = 000000 $STGSV= 000000 $STGS1= 000000 $$iGS2= 000000 $$TO 000000 S$$TAG= 050000 000046R .MAIN. MACY11 30Ati052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 551 557 581 18~16 TABLE OF CONTENTS COMMON EQUATE MODULE COM~ON DEFINITIONS AND REFERENCES 000000' .PRINT ;SPMAC: VERSION 1.1 PROCESS END TRAP CALL SEQ 0771 PEND - PROCESS END TRAP CALL PEND.MAC 28-JUL-78 09:24 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 r:-""~ ;;;J.;).;) 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 MACV11 30A(1052) 20-SEP-78 18:16 COM~ON EQUATE MODULE .TITLE .IDENT PAGE 19 SEQ 0772 PEND - PROCESS END TRAP CALL JVO.Oj ;++ MODULE NAME PEND FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE 'ENDMOD ' TRAP CALL (END$). INPUTS: 1. DATA TABLE IMPLICIT INPUTS: 1. DT. PC OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: 1. DRPf'iiOD ;ROUTINE TO DROP MODULE FROM EXECUTION FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PEND IN <DTABLE> VERSION: 0.0 EDIT ;- BY DATE REASON PEND - PROCESS END TRAP CALL PEND.MAC 28-JUL-78 09:24 551 552 553 554 555 556557 000000' (1) 000000' 558 000001 559 000001 560 561 562 563 564 565 566 567 568 569 570 - 571 572 573 574 575 576 577 578 579 20-SEP-78 18:16 PAGE 20 COMMON DEFINITIONS AND REFERENCES MACY11 30A(1052) .SBTTL COMMON DEFINITIONS AND REFERENCES • ~,~CALL .PRINT STRUCT STRUCT ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG = 1 , ;**************** ; REFERENCED BY OTHER MODULES .GLOBL PEND ;**************** ; GLOBAL REFERENCES ..GLOBL DRPMOD ;**************** ;MODULE'S ENTRY POINT SEQ 0773 PEND - PROCESS END TRAP CALL 28-JUL-78 09:24 PEND.MAC 581 582 583 584 (2) 585 586 587 588 589 590 591 592 (2 ) (3) 593 (4 ) 594 (4) 595 596 597 598 599 600 ( ':I \ \~I (5) (4 ) (3 ) (3) 601 602 603 (2 ) (3) 604 (3) (3 ) (2) 605 606 607 MACV11 30A(1052) 20-SE?-78 18:16 PROCESS END TRAP CALL .SBTTL PAGE 21 SEQ 0774 PROCESS END TRAP CALL ROUTINE PEND <DTABlE> 000000 1 000000' PEND: ;+ ; INIT, GET DTABLE ADDR. AND HEADER ;- 000000' 000000' 000002' 000004' 000004' 000010' 000010' PUSH RO,R1 016500 RO,-(SP) R1,-(SP) MOV DTABLE(R5),RO MOV @DT.PC(RO),R1 ~~:v JSR MJV R5, -(SP) R1,-(R5) RO,-(R5) PC,DRPMOD (SP)+,R5 MOV MOV (SP)+,R1 (SP)+,RO RTS PC LET RO '- DTABLE(R5) 000000 LET R1 .- @DT.PC(RO) 017001 MOV M:JV 010046 010146 000002 ;+ ; GO DROP THE OPTION MODULE FROM EXECUTION, ;- 000014' 000014' 000016' 000020' 000022' 000026' CALL DRPMOD IN <RO,R1> 010546 010145 010045 004767 012605 000030' 000030' 012601 000032' 012600 000034' 000034' 000034' 000034' 000207 000001 MOV MJV OOOOOOG POP R1 ,RO ENDiHN .END 50000$: 50001$: 20-SE?-78 MACY11 30A(1052) SYMBOL TABLE PEND - PROCESS END TRAP CALL 2S-JUL-78 09:24 PEND.MAC 000102 ACSR ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 I'"\,,~""""f"\ APT PRE::; VVV..:.VV ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 000001 BITO BITOO 000001 000002 BIT01 BIT02 000004 000010 BIT03 000020 BIT04 BIT05 000040 000100 BIT06 000200 BIT07 BIT08 000400 001000 BIT09 000002 BIT1 BIT10 002000 BIT11 004000 010000 BIT12 BIT13' 020000 040000 BIT14 100000 BIT15 000004 BIT2 BIT3 000010 000020 BIT4 BITS 000040 BIT6 000100 000200 BIT7 000400 BITS BIT9 OO~OOO 000002 BKDEF BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR 000100 CSRA 000102 CSRC > 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= '000400 r"'\ T /"'''nr'_ 000000 DROPMO= 100000 DR?MOD= ****** G DSEVNT= 000014 DTABLE= 000000 DT.ADD::: 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= oeOO16 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 00,0000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT. KBU= 000030 DT.MLS= 000032 DT.MTl= oeOl10 DT.OFF= 000070 DT.PAS= 000074 DT. PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000G66 DT.SMX= 000106 DT.SP = 000006 DT.SS!= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 J\ U.1.I"\~IiII\..t- ENDLST= EOPBIT= ERRTYP= EVNTBE= EVNTHD= 18: 16 000000 000001 000106 000200 000200 EV~~TKT=: 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREl= 001000 lNHRRE= 000400 000030 INIT 000120 lNTR 100000 lOMOD IOMODP= 1020CO IOMODR= 112000 IOMODX= 11 0000 035060 JACK KlPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 MED 076600 MEMPAS= 040000 MODEXH= 004000 PAGE 22 SEQ 0775 f.lODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= 002QOO 001000 00C010 000011 000005 ~1SGDRP= 000017 MSGECH= MSGEOP= MSGHDR= MSGHNG= f/lSGHRD= MSGMAP= MSGNUL= MSGPOP= MSG?RfVl= MSGRES= MSGSFT= MSGSKE::t MSGSMB= MSGSMH,= 1\1SGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OVJEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PEND PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= RBUFEA= RBUFPA= 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 OOOOOORG 000000 000040 00J200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 000020 RE L~,~OD= 020000 REL TIM= 010000, 000056 RES1 000060 RES2 RICHAR= 031060 RPT:JAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUN!\;OD= 100000 R5VAlU= 001740 SAM 075464 SBADR = 000102 SBK:\tl0D= 000000 SBKSEL= 010000 SC.ADR= 000006 sc. ALC= 000014 SS.~PC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SCJFCNT= 000042 SOFPAS= 000046 SPACE = 000040 S?OINT= 000032 SPV;"LU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 000026 STAT STATBl= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 R8UFSZ= RBUFVA= RDSERV= RDWHMl= RELERR= MACY11 30A(1052) 20-SEP-78 SYMBOL TABLE PEN~ - PROCESS END TRAP CALL PEND.MAC 28-JUL-78 09:24 UIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= 177642 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 ABS. 000000 000036 WBUFEA= vJBUFPA= WBUFRQ= WBUFSZ= WDFR WDro 000136 000134 000140 000142 000116 000114 WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS=, 000150 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:PEND,DSKZ:PEND:SPMAC/ML.EQUATE,PEND RUN-T IME: 11 1 .3 SECONDS RUN-TIME RATIO: 53/13=4.0 CORE USED: 14K (27 PAGES) 18:16 $F$DEC= 000220 $F$DO ='000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 PAGE 22-1 SEQ 0776 $F$YES= $IFLEV= $LOCTA= $LSTIN= $LSTTA= 000402 177777 177777 000001 000C01 $NESTL= '7....,~....,..,. .I. I i I I I $NSKO = 000300 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050002 $TEMP = 000300 $SARGC= 000002 S$BYTE= 000000 $$CASE= 000000 $SDST = 000000 $$ELOC= 000000 $$ERFL= 000000 SSFLAG= 000000 $SFROM= 000000 $$LOC = 000000 S$LOCN= 000000 SSREG = 177777 $$KETU= vvvvvv ""1"1""" $$RTN1= 050000 SSRTN2= 050001 $$SRC = 000000 $STGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000002 $$$TAG= 050000 000036R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC. 13-SEP-78 16:13 3 562 566 592 18:17 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT ;SPMAC: VERSION 1.1 PROCESS ENDIT ROUTINE SEQ 0777 PENDIT - PROCESS ENDIT TRAP CALL PENDIT.MAC 14-SEP-7810:57 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 5"36 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 MACYil 30A(1052) 20-5CP-78 COMMON EQUATE MODULE .TITLE .IDENT 16:17 PAGE 19 SEQ 0778 PENDIT - PROCESS ENDIT TRAP CALL IVO.OI • ..L.L ,TT MODULE NAME: PENDIT FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE IENDIT' TRAP CALL, WHICH CONSISTS OF HANDLING END OF PASS CALLS AND END OF ITERATION CALLS. ALSO, AS PART OF SERVICING THE END OF PASS CALLS, BACKGROUND MODULES ARE TAKEN OFF THE AIR. INPUTS: 1. DATA TABLE IMPLICIT INPUTS: 1. DT. PC 2. DT.STC 3. MODULEIS HEADER ADDRESS" 4. DT.ST1 5. DT.CFO OUTPUTS: NONE IMPLICIT OUTPUTS: 1. U?DATED RETURN ADDRESS (DT.PC) 2. UPDATED DT.STO PATHOLOGICAL CONNECTIONS: SA. STAT SUBORDINATE MODULES CALLED: 1. ENQTQ 2. SAVREG 3. RESREG 4. ENQCQ ;BACKGROUND QUEUE STATUS WORD ;EN-QUEUE TYPE QUEUE ENTRY ;ENQEUE CONTROL QUEUE ENTRY FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PENDIT IN <DTABLE> VERSION: 0.0 EDIT ;- BY DATE REASON PENDIT - PROCESS ENDIT TRAP CALL PENDIT.MAC 14-SEP-7810:57 562 563 564 565 566 000000 1 (i) OOOOOO! 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 MACy11 30A(1052) 20-SEP-78 18:17 COMMON DEFINITIONS AND REFERENCES .SSTTL CO~MON .PRINT .MCALL STRUCT STRUCT ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG 1 000001 000001 PAGE 20 DEFINITIONS AND REFERENCES = , ;**************** , ; REFERENCED SY OTHER MODULES , .GLOBL , PENDIT ;MODULE1S ENTRY POINT ;**************** ; GLOBAL REFERENCES .GLOSL .GLOBL .GLOBL .GLOBL .GLOBL SAVREG RESREG ENQTQ ENQCQ SA.STAT ;EN-QUEUE TYPE QUEUE ROUTINE ;ENQUEUE INTO THE CONTROL QUEUE ;SACKGROUND QUEUE STATUS WORD SEQ 0779 MACY11 30A(1052) 20-SEP-78 PROCESS ENOIT ROUTINE PENDIT - PROCESS ENDIT TRAP CALL PENDIT.MAC 14-SEP-78 10:57 392 593 594 595 (2 ) 596 597 598 599 600 601 602 603 (3) 604 (4) 605 (4) 606 (6) 607 608 609 610 611 612 613 (4) 614 (4) 615 (6) 616 617 618 619 620 621 622 (6) (8) (6) (9) (6) 623 (6) 624 (4) 625 626 627 628 629 630 (6) 631 .SBTTL 18:17 PAGE 21 SEQ 0780 PROCESS ENOIT ROUTINE ROUTINE PENDIT <OTABLE> 000000' 000000' PENOIT: ;+ ; DO THE NECESSARY SET-UP STUFF, WHICH CONSISTS OF SAVING THE GPR'S ; AND MARKING THE MODULE FOR AN IMMEDIATE RETL~N AFTER ; THE PROCESSING OF THIS TRAP CALL , 0- 000000' 000000 1 004767 000004 1 0000041 005004 000006 1 000006' 016500 000012' 000012' 042760 CALL SAVREG OOOOOOG JSR PC,SAVREG CLR F\4 MOV DTABLE(R5),RO SIC #DEFRTN,DT.STO(R LET R4 .- #0 LET RO '- DTABLE(R5) 000000 000400 LET DT.STO(RO) := DT.STO(RO) CLR.SY #DEFRTN 000010 ;+ , GET THE MODULE'S HEADER, THEN GET ITS STATUS WORD, WITH ALL SU, ; THE STATUS BITS MASKED OUT. ;- 000020 1 000020 1 017001 0000241 000024' 016102 000030' 000030' 042702 LET R1 .- @lDT .PC(RO) 000002 MJV @lDT.PC(RO),R1 MOV STAT(R1),R2 BIC #STATSITS,R2 LET R2 .- STAT(R1) 000026 LET R2 .- R2 CLR.SY #STATBITS 064757 ;+ ; IF THE MODULE IS SBK OR NBK, INDICATE THE A DEFERRED RETURN MUST TAKE ; PLACE. ;- 000034 1 0000341 020227 000040 1 001403 000042 1 020227 000046 1 001003 000050 1 000050' 000050' 052760 000056 1 000056 1 IF R2 EO #SSKMOD OR R2 EO #NSKMOD THEN 000000 eMP 001000 CMP BNE R2,#SSKMOD 50002$ R2,#NSKMOD 50003$ SIS #DEFRTN,DT.STO(R ADD #2,DT.PC(RO) SEQ 50002$: LET DT.STO(RO) .- DT.STO(RO) SET.BY #DEFRTN 000400 000010 ENDIF 50003$: ;+ ; UPDATE THE RETURN PC. 000056' 000056 i 062760 LET DT.PC(RO) '- OT.PC(RO) + #2 000002 000002 MACY11 30A(1052) ~O-SEP-78 PROCESS ENDIl ROUTINE PENDIT - PROCESS ENDIT TRAP CALL PENDIT.MAC 14-SEP-78 10:57 632 633 634 635 636 637 638 (6) 639 (6) (8) (6) (9) (6) 640 641 642 643 644 645 646 647 (6) 643 (6) 649 (4) 650 (4) 651 (4) 652 (6) 653 654 655 656 657 658 659 (6) 660 661 662 663 664 665 666 667 668 669 670 (6) (8) (6) (8) 18:17 PAGE 21-1 SEQ 0781 ;+ INCREMENT THE MODULE'S ITERATION VARIABLE, AND DETERMINE IF AN ; END OF PASS IS IN ORDER (I.E., IF ITERATIONS EQUAL MAX. OR ; INITIAL PASS OF A BKMOD) ;000064' 000064' 000070 1 000070 1 000076 1 000100 1 000106' 000110' LET ICOUNT(R1) .- rCOUNT(R1) + #1 005261 000040 026161 103004 032760 001501 000040 000036 000002 000010 INC IF ICOUNT(R1) HIS rCONT(R1) OR #TMPIO SETIN DT.STO(RO) THEN CMP BHIS BIT BEQ 50004$: ICOUNT(R1) ICOUNT(R1),ICONT 50004$ #TMPIO,DT.STO(RO 50005$ ;+ ; ITS END-OF-PASS TIME, SO, MARK THE MODULE AS NOT REQUIRING AN IMMEDIATE ; RETURN FROM THIS CALL, RESET THE ERRORS PER PASS COUNTS, ; BUMP THE END OF PASS COUNT AND RESET THE ITERATION COUNT. 'f - 000110' 000110' 000116 1 000116 1 000124 1 000124 1 000130 1 000130 1 000134' 000134' 000140' 000140' LET DT.ST1(RO) .- DT.ST1(RO) SET.BY #CKTIM 052760 100000 000012 BIS #CKTIM,DT.ST1(RO BIS #DEFRTN,DT.STO(R LET DT.STO(RO) '- DT.STO(RO) SET.BY #DEFRTN 052760 000400 000010 LET SOFPAS(R1) .- #0 005061 000046 eLR LET HRDPAS(Rl) .- #0 005061 000050 CLR HRDPAS(R1) CLR ICOUNT(R1) INC PAS'CNT( R1 ) INC R4 LET ICOUNT(R1) '- #0 005061 000040 LET PASCNT(R1) '- PASCNT(R1) + #1 005261 000034 ;+ ; NOTE THAT AN END OF PASS MESSAGE IS IN ORDER ;- LET R4 := R4 + #1 000144' 000144' 005204 ;+ IF THE MODULE TYPE IS BK, BSK, OR NBK. DO THE FOLLOWING: 1. CLEAR THE RETURN ADDRESS FOR THE MESSAGE ENQUEUE CALL. 2. CLEAR THE ACTIVE BIT TO TAKE THE MODULE OFF THE AIR. 3. IF NBK, SET THE "DROP" BIT. 4. IF SBK OR NBK, UNLOCK THE MODULE QUEUE LIST. OTHERWISE, LOAD THE MODULE'S RETURN ADDRESS FOR THE MESSAGE ENQUEUE CALL. ;- 000146' 000146' 000152' 000154 1 000160' 020227 001406 020227 001403 000000 001000 IF R2 EO #SBKMOD OR R2 EQ.#NBKMOD OR R2 EQ #BKMOD THEN eM? BEQ CMP SEQ R2,#SBKMOD 50006$ R2,#NBKMOD 50006$ MACY11 30A(1052) 20-SEP-78 PROCESS ENDIT ROUTINE PENDIT - PROCESS ENDIT TRAP CALL PENDIT.MAC 14-SEP-7810:57 (6) (9) (6) 671 (4) 672 (6) 673 (6) (9) 674 (6) 675 (4) 676 (6) (8) (6) (9) (6) 677 (6) 678 (4 ) 679 (4) 680 (4) (3) 681 (4) 682 (4) 683 684 685 686 687 688 689 690 691 (6 ) (9) 692 (6) 693 (4) (3) 694 (4 ) 695 (6) 696 (6) 697 000162' 000166' 000170 1 000170 1 000170' 000172' 000172' 000200' 000200' 000204' 000206' 000206' 000214' 000214' 000214' 000214' 000220' 000222' 000226' 000230' 000230' 000230' 000236' 000236' 000240' 000240' 000240' 000240' 000242' 000242' 000242 1 000246' 000246' 020227 001025 18:17 PAGE 21-2 SEQ 0782 000020 CMP SNE R2,#BKMOD 50007$ CLR R3 SIC HACTBIT,STAT(R1} 50006S: LET R3 := HO 005003 LET STAT{R1) 042761 004000 020227 001003 001000 052761 020000 000026 :~ STAT(R1) CLR.BY #ACTBIT IF R2 EQ #NBKMOD THEN CMP BNE LET STAT(R1) '- STAT(R1) SET.BY HBI T 13 SIS 000026 R2,#N3KMOD 50010$ #SIT13,STAT(R1) ENDIF 50010$: IF R2 EQ #SBKMOD OR R2 EO #NBKMOD THEN 020227 001403 020227 001004 CMP SEQ CMP BNE 000000 001000 LET 042760 002000 DT~STO(RO) 000010 R2,#SSKMOD 50011$ R2,#NSKMOD 50012$ 50011$: .- DT.STO(RO) CLR.SY #MODHOLD BIC #MODHOLD,DT.STO( LET R3 := #0 005003 CLR R3 BR 50013$ MOV RSTRT(R1),R3 ENDIF 500125: ELSE 000402 50007$: LET R3 .- RSTRT(R1) 016103 000112 ENDIF 500135: ;+ SET THE MODULE'S EOP BIT, UNLESS THIS IS A BKMOD IN DISGUISE AS A IOMOD ; (TMPIO = 1), IN WHICH CASE WE MUST CHANGE ; THE 8KMOD'S STAT BITS BACK FROM IOMOD TO BKMOD AND ; CLEAR TMPIO. ;- 000246' 000246 1 000254 1 000256' 000256' 000264 1 000264' 000266' 000266' 000266' 000270' 000270 1 000276 1 000276' 000304 1 IF #TMPIO NOTSETIN DT.STO(RO) THEN 032760 001004 000002 000010 152761 000001 000005 BIT 8NE LET XFLAG(R1) :B= XFLAG(R1) SET.BY #EOPBIT BlSB ELSE 000412 #TMPIO,DT.STO(RO 50014$ #EOPBIT,XFLAG(R1 BR 50015$ CLR R3 BIC #IOMOD,STAT(R1) 50014$: LET R3 := #0 005003 LET STAT(R1) '- STAT(R1) CLR.BY #IOMOD 042761 100000 000026 052761 000020 000026 LET STAT(R1) .- STAT(R1) SET.BY #8KMOD SIS #BKMOD,STAT(R1) LET DT.STO(RO) := DT.STO(RO) CLR.BY #TMPIO!MODHOLD PENDIT - PROCESS END!T TRAP CALL PENCIT.MAC 14-SEP-78 10:57 (6) 698 (4) 699 (4) 700 701 702 703 704 705 706 (6) (8) (6) (8) (6) (9) (6) 000304' 042760 000312' 000312' 000312' 000312' 002002 MACY11 30A(1052) 20-SEP-78 PROCESS ENDIT ROUTINE 18:17 PAGE 21-3 SEO 0783 BIC 000010 #TMPIO!MODHOLD,D ENDIF 50015$: ENDIF 50005$: ;+ ; DETERMINE IF THE EXERCISER IS RUNNING IN RELOCATASLE MODE, ; AUTOMATIC MODE, OR IF S3KSEL IS SET, AND IF SO, DO THE REQUIRED STUFF ;- 000312' 000312 i 000320' 000322' 000330' 000332' 000340' 000342' 707 708 709 710 711 712 713 714 715 716 . 000342' (6) 000342 1 (8) 000350' (6 ) 000352' (9) 000360' (6) 000362' 717 000362' (6) 000362' 718 000370' (6 ) 000370' 719 720 721 722 723 724 725 000376' (6) 000376' (9 ) 000404' (6) 000406' (9) 000414' 726 000416' (6) 000416' 727 000424' (4) 000424' 728 729 730 000424 1 032760 001010 032760 001004 032760 001432 020000 000010 000010 000014 010000 000012 IF #RELMODE SETIN DT.STO(RO) OR #AUTO SET IN D'.CFO(RO) OR #SBKSEL SETIN DT.ST1(R BIT #RELMODE,DT.STO{ 8:--.lE 50016$ SIT #AUTO,DT.CFO(RO) 8NE 50016$ BIT #SBKSEL,DT.ST1(R SEQ 50017$ 50016$: ;+ IS IT TIME TO RELOCATE? OR, IF NOT IN RELOCATICN MJDE, IS IT TIME TO RETURN TO ; THE XXDP MONITOR? IF SO, MARK THE MODULE AS NOT REQUIRING ; AN IMMEDIATE RETURN FROM THIS CALL, DE-ACTIVATE THE MODULE, AND ; SET THE MODULE'S RETURN ADDRESS TO O. ;- 032760 001004 032760 001422 010000 000010 040000 000012 052760 000400 000010 042761 004000 000026 IF #RELTIME SETIN DT.STOeRO) OR #MEMPAS SETIN DT.ST1(RO) THEN BIT #RELTIME,DT.STO( BNE 50020$ BIT #MEMPAS, DT .. 5TH R SEQ 50021$ 50020$: LET DT.STO(RO) := DT.STO(RO) SET.BY #DEFRTN BIS #DEFRTN,DT~STO(R LET STAT(R1) != STAT(R1) CLR.BY #ACTBIT BIC #ACTBIT,STAT(R1) ;+ ; IF ITS A BACKGROUND MODULE, RESET THE BKMODE BIT IN THE MONITOR'S STATUS ; INDICATOR WORD 0 ;- 032761 001407 032760 001403 042760 000020 000026 040000 000010 040000 000010 IF #BKMOD SETIN STAT(R1) AND #8KMODE SETIN DT.STO(RO) THEN BIT #BKMOD,STAT(R1) BEQ 50022$ BIT #BKMODE,DT.STO(R SEQ 50022$ LET DT.STO(RO) .- DT.STO(RO) CLR.BY #BKMODE BIC #8KMODE,DT.STO(R ENDIF 5C022$: LET R3 '- #0 PENDIT - PROCESS ENDIT TRAP CALL 14-SEP-78 10:57 PENDIT.MAC (4) 731 ( 4) 732 (4) 733 734 735 736 737 738 739 740 (6) (9) 741 (3) (8) (7) (6) (5) (4) (3) (3) 742 (4) (3) 743 ( 6) (8) (6) (9) (6) 744 (4) 745 (3) (6) (5) (4) (3) (3) 746 (4) 747 (4) 748 749 750 751 752 753 (3) 754 (3) (3) 20-SEP-78 PROCESS ENDIT ROUTINE MACY11 30A(1052) 000424' 005003 000426' 000426' 000426' 000426' 18: 17 P,~GE 21-4 SEQ 0784 CLR R3 TST SEQ R4 50023$ MOV MOV MOV MOV MOV MOV JSR MOV R5,-(SP) R3,-(R5) R1,-(R5) HO,-(R5) #MSGEOP,-(R5) RO,-:-(R5) PC,ENQTQ (SP)-i-,R5 BR 50024$ CMP BEQ CMP BNE R2,#SBKMOD 50025$ R2,#NBKMOD 50026$ MOV DT.PC(RO),R2 MOV MOV R5,-(SP) R2,-(R5) R1,-(R5) RO,-(R5) PC,ENQCQ (SP)+,R5 JSR PC,RE3REG ENDIF 50021$: ENDIF 50017$: ;+ ; IF Ii IS AN END-OF-PASS, ENQUEUE A MESSAGE. ; OTHERWISE, IF NBK OR SBK, GET THE RETURN ADDRESS AND MAKE A ; CONTROL QUEUE ENTRY. ;- 000426' 000426' 000430' 000432' 000432' 000434' 000436' 000440' 000444' 000450' 000452' 000456' 000460' 000460' 000462' 000462 1 000462' 000466' 000470' 000474' . 000476' 000476' 000476' 000502' 000502 1 000504 1 000506' 000510 1 000512' 000516' 000520' 000520' 000520' 000520' IF R4 NE #0 THEN 005704 001414 010546 010345 010145 012745 012745 010045 004767 012605 CALL ENQTQ IN <RO,#MSGEOP,#0,R1,R3> 000000 000013 OOOOOOG ELSE 000417 50023$: IF R2 EO USBKMOD OR R2 EQ #NSKMOD THEN 020227 001403 020227 001011 000000 001000 50025$: LET R2 := DT.PC(RO) 016002 010546 010245 010145 010045 004767 012605 000002 CALL ENQCQ IN <RO,R1,R2> MOV MOV MOV JSR OOOOOOG ENDIF 50026$: ENDIF 50024$: ;+ ; RETURN TO CALLER ;- 000520' 000520 1 004767 000524' 000524' 000524' CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: PENDIT - PROCESS END!T TRAP CALL PENDIT.MAC 14-SEP-7810:57 (2) 755 756 757 MACY11 30A(1052) 20-SEP-78 PROCESS ENDlT ROUTINE 18:17 PAGE 21-5 000524 1 000207 000001 SEQ 0785 RTS .END ;THAT1S ALL FOLKS!!! PC PENDIT - PROCESS ENDIT TRAP CALL 14-SEP-78 10:57 PENDIT.MAC 000102 ACSR ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 000106 ASB ASSEMS= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS BA.STA= ****** G 000001 BITO 000001 BITOO 000002 8IT01 000004 BIT02 000010 BIT03 B1T04 000020 BIT05 000040 000100 BIT06 000200 BIT07 BIT08 000400 BlT09 = 001000 BIT1 000002 BIT10 002000 004000 B1 T11 BIT12 010000 BIT13 020000 040000 BIT14 100000 BIT15 BIT2 = 000004 000010 BIT3 BIT4 000020 BITS 000040 BIT6 000100 BIT7 000200 000400 BIT8 001000 BIT9 BKOEF 000002 BKMOD 000020 BKMODE= 040000 BK5LSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 COWDCT= 000144 CKTIM = 100000 CLKPRE:; 000001 CONFIG= 000056 000001 CQOVF 000015 CR CSRA 000100 000102 CSRC 000003 CTRLC CTRLO = 000017 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 D1.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 .OT. KBP=· 000026 DT.KBR= 000022 Ot.KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DJ.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 D1. PT A= 000064 OT.RCS= 000102 OT.REL= 000040 DT.SCT= 000066 OT.SMX= 000106 DT.SP = 000006 DT.S51= 000046 OT.STO= 000010 D1.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 OT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVI01 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 MACY11 30A(1052) SYMBOL TABLE 2Q-SEP-78 PAGE 22 SEQ 0786 ENDLST= 000000 ENQCQ = ****** G ENQTQ = ****** G EOPB1T= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 0000·44 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IONUM = 000122 000100 IE INOPAR= 000040 INHORP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 IN1T 000030 INTR 000120 100000 lOMOD IOMOOP= 102000 IOiviODR= ; i 2000 10MODX= JACK KIPARO= K:IPAR1= KIPAR2= KIPAR3= KIPAR4= KIPAR5= KIPAR6= KIPAR7= KIPORO= K!PDR1= KIPOR2= KIPOR3= KIPDR4= KIPOR5= KIPDR6= KIPOR7= KTERRO= KTPRES= KTSTAT= KTXTND= LF LPSTAT= MAPSTA= MED 18: 1 7 1.10000 035060 172340 172342 172344 172346 172350 172352 172354 172356 172300 172302 172304 172306 172310 172312 172314 172316 000040 000400 000020 040000 000012 000001 000200 076600 MEMPAS= MODEXH= r,,10DHOL= MODSEL= MSGCKD= MSGCKS= MSGD~R= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGH~~G= 040000 004000 002000 0'01000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 00000"2. 177776 000001 000006 000003 000015 000014 000016 000000 MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSrI1S= MSGSTO= MSGSYS= 000012 MSGVEC= 000020 NBKiyiCD= 001GOe NCPUOP= 000020 NOAPTY= 000002 000000 NULL OWEN = 024020 000010 PAERR PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 POPLSI= 020000 POP60 = 004000 POP70 = 010000 PENOIT OOOOOORG 000000 PRIO 000040 PR 11 000200 PRI4 000240 PRI5 000300 PRI6 000340 PRI7 000000 PRO 000200 PR4 000240 PR5 000300 PR6 000340 PR7 177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RD\iJHMI = 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 RESREG= ****** G RES1 000056 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RU90UT= 000177 RUNMOO= 100000 R5VALU= 001740 SAM 075464 SAVREG= ****** G SBADR = 000102 SBKMOO= 000000 SBKSEL= 010000 ·SC.AOR= 000006 SC.ALC= 000014 SC.APC= 000016 ,....~ ,....l~ I _ .:) ..... \...I'\~- 1"\1"'\1"'\1"\/'\" UUvuu,,:; SC.CKP,:, 000004 SC.CLO= 0000'00 SC.HLO= 000010 SC.SCA= 000012 SENOLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576 SR2 172516 SR3 STAT 000026 STAiBI= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO SVR1 000064 SVR2 000066 000070 SVR3 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 - ~ROC;:SS Er~DI T 7R;"P ~ALL ?ENOIT 14-SEP-78 10:57 PE.NDIT.MAC SYSERR= 000100 TMPIO = 000002 TQOV'F = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 ABS. 000000 000526 WBST AT= WBUFEA= WBUFPA= W8UFRQ= WBUFSZ= WDFR WDTO WTINRE= MACY11 000040 000136 000134 000140 000142 000116 000114 000352 000222 XFLAG = 000005 000023 XOFF XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 WTWH~'ilI= 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 30A(~052) 20-SEP-'78 18: 17 P.A.GE 22-1 SYMBOL TABLE 0 DSKZ!PENDIT,DSKZ:PENDIT=SPMAC/ML,EQUATE,PENDIT RUN-TIME: 20 11'.3 SECONDS RUN-TIME RATIO: 92/32=2.8 CORE USED: 14K (27 PAGES) SFSFAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 00020G $F$NAM= 000160 $F$NO = 000403 SFSOR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 SF$TRU= 000404 $F$UNT= 000130 $FSvJH I = 000120 $F$YES= 000402 $IFLEV= 177777 . $ISKO 000001 $ISK1 = 000001 $ISK2 = 000001 SEQ 0787 SLOCTA= 177777 $LSTIN= 000001 $LSTTA= OOOGOl $NESTL= 177777 $NSKO 000300 SNSKl = 000110 $NSK2 = 000110 $NSK3 = 00J110 SSAVLE= 177777 STAGLE= 11"1777 $T .A.GNU= 050027 000300 STEMP $TSKO = 050024 $TSK1 = :J50Q26 $TSK2 = 050022 $$ARGC= 000002 $$SYTE= 000403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $iERrL= 000000 $$FLA3= 000001 $$FROM= 000000 $$LOC = 000474R $$LOCN= 000000 $,)Ri.:G = 177777 $$RETU= 000000 $:3RTNl = 050000 $:$RTN2= 050001 $$SRC = 000000 S$TGSV= 000000 $$TGS1= 000000 $STGS2=. 000000 $.iiTO 00')000 $$$TAG= 050000 000526R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 556 559 582 18:19 TABLE OF CONTENTS COMMON EQUATE MODULE PDATER (COMMON DEFINITIONS AND REFERENCES) 000000 1 .PRINT ;SPMAC: VERSION 1.1 PDATER (CODE) SEQ 07138 rDATER (PROCESS DATERS TRAP) PDAfER.MAC :2B-JUL-78 09:24 508 509 510 511 512 513 514 515 516 517 :518 51£' MACY11 30A(1052) 20-SEP-78 18:19 COMMON EQUATE MODULE 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 SEQ 0789 .TITLE PDATER (PROCESS DATER$ TRAP) .IDENT IVO.O/ ;++ MODULE NAME: PDATER FUNCTIONAL DESCRIPTION: THIS MOpULE· IS CALLED AS A RESULT OF t. D,:,\TER$ TRAP EXECUTED BY AN OPTION MODULE. IT ENQUEU~S AN ERROR MESSAGE. I ~":PUTS: 1. 52C 521 522 523 PAGE 19 DTABLE ADDRESS IMPLICIT INPUTS: 1. Dr.PC :2. Dr. CFO OUTPUTS: NONE IMPLICIT OUTPUTS: NONE. PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: 1. ENQTQ ;ENQUE THE ERROR MESSAGE 2. SJWREG 3. RESREG 4. APTSER 5. DRPMOD FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PDATER IN <DT> WHERE DT ~ DATA TABLE ADDRESS VERSION: 0.0 EDIT ;-- DATE BY REASON PDATER (PROCESS DATERS TRAP) PDATER.MAC 28-JUL-78 09:24 556 557 558 559 (1) 560 561 MACV11 30A(1052) 20-SEP-78 18:19 PAGE 19-1 PDATER (COMMON DEFINITIONS AND REFERENCES) .SBTTl.PDATER (COMMON DEFINITIONS AND REFERENCES) 000000' 000000' 000001 000001 .MCALl STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=', $lSTTAG=1 562 563 564 ;**************** 565 : REFERENCED BY OTHER MODULES 566 567 .GlOBl 568 569 570 i 571 572 , 573 574 i PDATER :**************** ; GLOBAL REFERENCES 575 576 577 .GlOBl .GlOBL .GlOBL .GlOBL .GLOBL 578 579 ;**************** 580 jMODUlc ENTRY POINT ENOTO SAVREG RESREG APTSER DRPMOD ; ;ENQUES ERROR MSG , ;APT ROUTINE ;DROP MODU~E SEQ 0790 PDATER (PROCESS OATER$ TRAP) PDATER.MAC 28-JUL-78 09:24 582 583 584 (2) 585 586 587 588 589 590 591 592 593 594 595 596 (3) 597 598 (4) 599 (4) 600 (4) 601 602 603 604 605 606 607 (6) 608 (6 ) 609 (6) (9) 610 (3) (4) (3) (3) 611 (4) (3) 612 613 614 615 616 617 618 619 (6) (9) 620 MACY11 30A(1052) 20-SEP-78 PDATER (CODE) 18:19 PAGE 19-2 SEQ 0791 .SBTTL PDATER (CODE) ROUTINE POATER <AA> 000000' 000000' PDATER: j+ THIS ROUTINE ENQUES THE DATA ERROR MESSAGE IN THE TYPE QUEUE. RO R1 R2 R3 MSGDER 000000' 000000' 004767 000004' 000004' 016500 000010' 000010' 016001 000014' 000014' 017004 = DTABLE ADDRESS = PC+2 OF CALL peOF CALL AND IS PASSED AS ADDR OF MSG RETURN ADDRESS DATA ERROR TYPE MSG CODE CALL SAVREG OOOOOOG JSR PC,SAVREG MOV AA(R5),RO MOV DT.PC(RO) ,R'1 MOV @DT.PC(RO),R4 INC SOFCNT(R4) INC SOFPAS(R4) BIT BEQ #APTPRES,OT.CFO( 50002$ MOV MOV JSR MOV R5,-(SP) RO,-(R5) PC,APTSER (SP)+"R5 SR 50003$ BIT SEQ #BIT1:5,DT.SWR(RO 50004$ LET RD .- AA(R5) 000000 LET R1 .- DT.PC(RO) 000002 LET R4 .- @DT.PC(RO) 000002 ;+ ; INCREMENT SOFCNT, AND SOFPAS AND IF UNDER APT, CALL APT SOFT ; ERROR ROUTINE ;- 000020' 000020' 000024' 000024' 000030' 000030' 000036' 000040' 000040' 000042' 000044' 000050' 000052' 000052' 000054' LET SOFCNT(R4) := SOFCNT(R4) + #1 005264 000042 LET SOFPAS(R4) := SOFPAS(R4) + #1 005264 000046 IF #APTPRES SETIN DT.CFO(RO) THEN 032760 001406 000200 000014 CALL APTSER IN <RO> 010546 010045 004767 012605 OOOOOOG ELSE 000431 50002$: ;+ ; THE ENVIRONMENT IS NOT APT. ; IF THE SWITCH REGISTER SAYS DROP THE MODULE BECAUSE OF THE ; ERROR. DO IT. ', - 000054' 000054' 032760 000062' 001407 000064' IF #BIT15 SETIN DT.SWR(RO) THEN 100000 000056 CALL DRPMOD IN <RO,R4> PDATER (PROCESS DATER$ TRAP) PDATER.MAC 28-JUL-78 09:24 (3) (5) (4) (3) (3) 621 (4) (3) 622 623 624 625 626 627 628 629 (6) (9) (6) (9) 630 (3) (5) (4) (3) (3) 631 (4) 632 (4) 633 (4) 634 635 636 637 638 639 640 (4) (6) 641 642 643 644 645 646 (4) (6) 647 (3) (8) (7) (6) (5) (4) 000064 1 010546 000066 1 010445 000070 I 010045 000072 I '004767 000076 1 012605 000100 I 000100 1 000416 000102 1 MACYi1 30A(1052) 20-SEP-78 PDATER (CODE) 18:19 PAGE 19-3 SEQ 0792 OOOOOOG ELSE MOV MOV MOV JSR IVIOV R5,'-(SP) R4,.-(R!5) RO,-(R '5) PC,ORPMOD (SP)+,R5 BR 50005$ 50004$: ;+ ; IF THE ERROR COUNT HAS REACHED THE LIMIT, t~ND IF THE SWITCH REGISTER ; INDICATES THE MODULE SHOULD BE DROPPED, DO IT. ., 000102 1 000102 1 000110 1 000112 1 000120 1 000122 1 000122 1 000124 1 000126 1 000130 1 000134 1 000136 1 000136 1 000136 1 000136 1 000136 1 000136 1 IF SOFCNT(R4) HI DT.SMX(RO) AND #BIT14 NOTSETIN 026460 101412 032760 001006 010546 010445 010045 004767 012605 000042 000106 040000 000056 D~.SWR(RO) BlOS BIT BNE THEN SOFCNT(R4),DT.SM 50006$ #BIT14,DT.SWR(RO 50006$ MOV MOV MOV JSR MOV R5,-(SP) R4,-(R5) RO,-(R5) PC,DRPMOD (SP)+,R5 MOV SUB Ri , R2 #2,R2 MOV ADD Ri , R3 #2,R3 MOV MOV R5,-(SP) R3,-(H5) C~P CALL DRPMOD IN <RO,R4> OOOOOOG ENDIF 50006$: ENDIF ENDIF 5·0005$ : 5,0003$ : ;+ ; PUT THE ADDRESS OF THE TRAP CALL IN R2. .r LET R2 .- Ri - #2 1 000136 000136 1 010102 000140 I 162702 000002 ;+ ; PUT THE OPTION MODULEIS RETURN ADDRESS IN R3. ;- 000144 1 000144 1 000146 1 000152 1 000152 1 000154 1 000156 1 000160 1 000162 1 000166 1 LET R3 .- R1 + #2 010103 002703 010546 010345 011145 010245 012745 010045 000002 000005 CALL ENQTQ IN <RO,#MSGDER,R2,(R1),R3> IVIOV (R1) ,--(R5) MOV MOV MOV R2,-(H5) #MSGDER,-(R5) RO,-(H5) PDATER (PROCESS DATER$ TRAP) PDATER.MAC 2B-JUL-78 09:24 (3) (3) 648 649 (3 ) 650 651 (3) (3) (2) 652 653 000170' 004767 000174' 012605 000176' 000'176' 004767 000202' 000202' 000202' 000202' 000207 000001 20~·SEP-7B MACV11 30A(1052) PDATER (CODE) 1 B: 19 PAGE 19-4 SEQ 0793 OOOOOOG JSR MOV PC,ENQTQ (SP)+,H5 JSR PC,HESHEG RTS PC CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: .END PDATER (PROCESS DATER$ TRAP) 28-JUL-7B 09:24 PDATER.MAC 000000 AA 000102 ACSR ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 APTSER= ****** G ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BITO 000001 BITOO 000001 BIT01 000002 BIT02 000004 BIT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 BIT09 001000 ::: 000002 BIT1 ·002000 BIT10 BI111 004000 010000 BIT12 BIT13 020000 BIT14 040000 BIT15 100000 131T2 000004 BIT3 000010 000020 . £31T4 BIT5 000040 BIT6 000100 BIT7 000200 BIT8 000400 BIT9 = 001000 BKDEF 000002 BKMOD 000020 8KMODE= 040000 BKSLSH= 000134 CAPRE5= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONF1G= 000056 CQOVF 000001 CR = 000015 20-SEP-78 MACY11 30A(1052) SYMBOL TABLE 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DRPMOD= ****** G DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.8LS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR=, 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EX5= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 0'00104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PA5= 000074 DT.PC ::: 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.55I= 000046 DT.5TO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVIDl = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 18: 19 ENBNUL= ,000001 ENDLST= 000000 ENOTO = ****** G EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM :: 000122 000100 IE INDPAR:: 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 000120 INTR IOMOD =. 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 K1PAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO::: 000040 KTPRE5= 000400 KT5TAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED PAGE .20 SEQ 0794 MEMPAS::: 040000 MODEXH=: 00400Q MODHOL=: 002000 MODSEL=: 00 '1000 MSGCKD=: 000010 MSGCKS== 000011 MSGDER=: 000005 MSGDRP:: 000017 MSGECH:: 177777 MSGEOP:: 000013 MSGHDR:: 000004 MSGHNG:: 000022 MSGHRD= 000007 MSGMAP:: 000021 MSGNUL:: 177775 MSGPOP:: 000002 MSGPRM:: 177776 MSGRES:: 00J001 MSGSFT:= 000006 MSGSKE:= 000003 MSGSMB:= 000015 MSGSMH:= 000014 MSGSMS::: 000016 MSG5TD:: 000000 M5GSYS:= 000012 MSGVEC= 000020 NBKIVlOD:= 001000 NCPUOP:= 000020 NOAPTY:= 000002 000000 NULL '024020 OWEN 000010 PAERR PARPRE= 002000 PARSTA= 000100 PA5CNT= 000034 PDATER OOOOOORG PDPL51= 020000 004000 PDP60 PDP70 010000 PRIO 000000 000040 PRI1 000200 PRI4 000240 PR!5 000300 PRI6 000340 PR17 000000 PRO 000200 PR4 000240 PR5 000300 PR6 000340 PR7 PS = 177776 177776 PSW RANNUM= 000054 ' R8UFEA= 000130 RBUFPA::!: 000126 RBUFSZ= 000132 R8UFVA= 000124 RDSERV= 00010'1 RDWHMI= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 RESREG= ****** G 000056 RES1 000060 RES'2 RICHAR= 031060 RPTDAT= 002000 R5TRT :: 000112 RUBOUT= 000177 RJNMOD= 100000 RSVALU= 001740 075464 SAM SAVREG= ****** G SBADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016. SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 5C.HLD= 000010 SC.SCA= 000012~ SENDLS= 177777' SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 00003:;;~ SPVALU= 002200 177572 5RO 177574 SRi 177576 SR2 17251E; 5R3 STAT 00002E> STATBl= 064757 5TATl = 000027 SUSPND= 000001 SVRO = 000062 SVR1 000064 SVR2 = 00006E> 00007() SVR3 00007~~ SVR4 5VR5 = 000074 00007E5 5VR6 SY5CNT= OOOO?~~ MACY 11 30A(1052) 20'-SEP-78 SYMBOL iABLE POATER (PROCESS DATER$ TRAP) 28-JUL-78 09:24 POATER.MAC WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WOTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$SAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 ,SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPJRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 LJIPDR7= 177616 WASADR= 000104 ASS. 000000 000204 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:PDATER,DSKZ:PDATER=SPMAC/ML,EQUATE,PDATER RUN-TIME: 13 3 .4 SECONDS RUN-TIME RATIO: 64/17=3.6 CORE USED: 14K (27 PAGES) 18: 19 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 000001 $ISKO 000001 $ISK1 $ISK2 = 000001 PAGE 20-1 SEQ 0795 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 000300 $NSKO $NSK1 -, 000110 $NSK2 = 000110 $NSK3 =: 000110 $SAVLE= 177777 $TAGLE=: 177777 $TAGNU=: 050007 000300 $TEMP $TSKO .' 050003 $TSK1 - 050005 $TSK2 •. 050006 $$ARGC:.: 000002 $$BYTE=: 000403 $$CASE=: 000000 $$DST .. 000000 $$ELOC= 000402 $$ERFL= 000000 $$F LAG= 000001 $$FROM= 000000 $$LOC = 0001201~ $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$ SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 000204R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 565 568 587 COMMON EQUATE MODULE PGETPA (COMMON DEFINITIONS 000000 I PGETPA (CODE) 18:20 TABLE OF CONTENTS & REFERENCES) • PR I NT i SPMAC: VERSION 1.1 SEQ 0796 PGETPA (GET PHYSICAL ADDRESS MODULE) PGETPA.MAC 28-JUL-78 09:24 508 509 510 511 512 513 514 515 516 517 518 519 020 521 522 523 524 525 526 52" 528 529 530 531 532 533 534 535 5:j6 537 538 539 540 541 542 54:; 544 545 546 547 548 549 550 551 552 553 554 55:1 55f:i 557 558 55!) 560 561 532 563 MACV11 30A(1052) 20~SEP-78 COMMON EQUATE MODULE .TITLE PGETPA .IDENT IVO.C/ (GET 18:20 PAGE 19 PHYSICAL ADDRESS MODULE) j++ MODULE NAME: PGETPA FUNCTIONAL DESCRIPTION: THIS MODULE SERVICES CErPA TRAP CALLS. IT RETURNS A 16-81T OR 18-BIT VIRTUAL ADDRESS FOR A 16-81T VIRTUAL ADDRES3 GIV~N (DEPENDING ON IF KT IS TURNED ON). A POINTER TO A 3-wORD AREA IS RECEIVED. THE FIRST WORD CONTAINS THE 16-8IT VIRTUAL ADDRESS, THE NEXT TWO WORDS WILL CONTAIN, ON RETURN, THE LOW 18-BITS OF THE ADDRESS AND THE EXTENDED ADDRESS BITS. HlPUTS: DTABLE ADDRESS IMPLICIT INPUTS: 1. DT.PC ;DT.PC+2 POINTS TO TAB E CONTAIN:NG VA,PA,EA WHERE VA VIR UAL ADORESS PA PHY leAL ADDRESS EA EXT NDED ADDRESS 2. DT.STO 3. Dr.OFFSET OUTPUTS: NONE IMPLICIT OUTPUTS: 1. PHYSICAL ADDRESS WORD 2. EXTENDED ADDRESS WORD PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG RESREG ;SAVE REGISTERS ;RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PGETPA IN <DT> WHERE DT = DTA3LE ADDRESS VERSION: 0.0 EDIT DATE BY SEQ 0797 PGETPA (GET PHYSICAL ADDRESS MODULE) PGETPA.MAC 28-JUL-78 09:24 565 566 567 568 (1) 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 MACY11 30A(1052) 2u-SEP-78 18:20 PAGE 19-1 PGETPA (COMMON DEFINITIONS & REFERENCES) .SBTTL PGETPA (COMMON DEFINITIONS & REFERENCES) .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 000000' 000000 • 000001 000001 $LSTIN=1 $LSTTAG=1 ;**************** ; REFERENCED BY OTHER MODULES t .GLOBL PGETPA , i**************** ;MODULE ENTRY POINT ; GLOBAL REFERENCES .GLOBL .GLOBL SAVREG RESREG ;**************** ;SAVE REGISTERS ;RESTORE REGISTERS SEQ 0798 PGETPA (GET PHYSICAL ADDRESS MODULE) PGETPA.MAC 28-JUL-78 09:24 587 588 589 (2) 590 591 592 593 594 595 (3) 596 597 598 599 600 601 602 (4) 603 604 605 606 607 608 609 (4) (6) 610 611 (4) 61.2 613 614 615 616 617 618 (5) 619 620 621 622 623 624 625 626 627 (6) (9 ) 628 (4) 629 (4) 630 631 MACY11 30A(1052) PGETPA (CODE) 20-SEP-78 18:20 PAGE 19-2 SEQ 0799 .SBTTL PGETPA (CODE) ROUTINE PGETPA <DT> 000000' 000000' PGETPA: ;+ ; SAVE REGISTERS ;- 000000' 000000' 004767 CALL SAVREG OOOQOOG ;+ ; SET RO TO THE START OF THE DATA TABLE ;- 000004' 000004' 016500 LET RO := DT(R5) 000000 MOV DT(R5),RO MOV ADD DT.PC(RO),R2 #2,R2 MOV (R2) ,R1 ADD #4,DT.PC(RO) ;+ ; SET R1 TO THE START OF THE ADDRESS TABLE. 000010' 000010' 016002 000014' 062702 LET R2 := DT.PC(RO) + #2 00000.2 000002 LET R 1 • - 000020' 000020' 011201 (R2) ;+ ; UPDATE DT.PC TO REFLECT THE OPTION MODULE'S RETURN ADDRESS. 000022' 000022' 06.2760 LET DT.PC(RO) := DT.PC(RO} + #4 000004 000002 ;+ ; IF MEMORY MANAGEMENT IS NOT TURNED ON, SIMPLY MOVE THE ; 16-BIT VIRTUAL ADDRESS TO THE OUTPUT POSITION OF THE TAGLE, CLEAR THE ; HIGH BIT TABLE POSITION, AND RETURN. ;- 000030' 000030' 000036' 000040' 000040' 000042' 000042 i 000046' IF #KTSTAT NOTSETIN DT.STO(RO) THEN 032760 001004 000020 000010 BIT BNE #KTSTAT,DT.STO{R 50002$ MOV (R1)+,(R1) CLR 2 (R 1 ) LET (R1) := (R1)+ 012111 LET 2(R1) 005061 00000.2 ELSE. := #0 PGETPA (GET PHYSICAL ADDRESS MODULE) PGETPA.MAC 28-JUL-78 09:24 (4) (3) 632 633 634 635 636 637 638 639 640 641 642 643 644 645 (4) 646 (6) 647 (7) (7) (7) (7) 648 (6) 649 (4) (6) 650 651 652 653 654 655 656 (4) 657 658 659 660 661 662 663 664 (6) 665 666 667 668 669 670 671 672 673 674 MACY11 30A(1052) PGETPA (CODE) 20-SEP-78 18:20 PAGE 19-3 000046' 000446 000050' SEQ 0800 BR 50003$ MOV (R1),R2 S'IJAB R2 ASR ASR ASR ASR R2 R2 R2 R2 BIC #177761,R2 MOV ADD #KIPARO,R3 R2,R3 MOV (R3),R2 50002$: ;+ ; ELSE MEMORY MANAGEMENT IS ON. ;- ;+ ; DETERMINE THE PAR REGISTER REFERENCED BY THE VIRTUAL ADDRESS ; BY PLACING THE VA IN R2, DETERMINING THE ADDRESS ; OF THE PROPER PAR REGISTER, AND PLACING THE ADDRESS OF THIS ; REGISTER IN R3. 'f - 000050' 000050' 000052 1 000052' 000054' 000054' 000056' 000060' 000062' 000064' 000064' 000070' 000070 1 000074' LET R2.- (R1) 011102 LET R2 '- SWAP R2 000302 LET R2 '- R2 SHIFT #-4 006202 006202 006202 006202 LET R2 '- R2 CLR.BY #177761 042702 177761 012703 060203 172340 LET R3 '- #KIPARO + R2 + NOW GET THE CONTENTS OF THIS PAR REGISTER. LET R2 . - 000076 1 000076' 011302 (R3) WE NOw HAVE THE 22-BIT PHYSICAL ADDRESS IN PAR FORMAT. MAKE THIS A VIRTUAL 18-BIT VALUE (STILL PAR FORMAT) BY SUBTRACTING THE CURRENT OFFSET VALUE. 000100' 000100' 166002 LET R2 := R2 - DT.OFFSET(RO) 000070 SUB ;+ ; NOW CONVERT THIS VALUE TO 18 BITS. ; FIRST FORM THE LOW-ORDER 16-BITS BY SHIFTING THE HIGH ; ORDER BITS OUT OF THE PAR CONTENTS AND ADDING THE LOW 12 BITS OF THE ; ORIGINAL VA, THEN IF THERE IS OVERFLOW, CARRY IT TO THE HIGH BITS. 000104' LET R3 != R2 SHIFT #6 DT.OFFSET(RO),R2 PGETPA (GET PHYSICAL ADDRESS MODULE) 28-JUL-78 09:24 PGETPA.MAC (4) (7) (7 ) (7 ) (7 ) (7 ) (7) 675 (4) (6) 676 (4) (6) 677 (6 ) 678 (6) 679 (4 ) 680 681 682 683 684 685 686 687 (6) 688 (7 ) (7 ) 689 (6) 690 (4) 691 692 693 (4) 694 695 696 697 698 699 700 (3) 701 702 (3 ) (3) (2 ) 703 704 000104' 000106' 000110' 000112' 000114 1 000116 1 000120' 000122' 000122' 000124 1 000130' 000130' 000134' 000140' 000140' 000142' 000142' 000146' 000146' 010203 006303 006303 006303 006303 006303 006303 LET R4 01 1104 042704 160000 010361 060461 000002 000002 18:20 PAGE 19-4 SEQ 0801 · - (Rn CLR.BY #160000 LET :2(R1 ) := R3 + R4 IFCOND CS THEN 103002 062702 20-SEP-78 MACY11 30A(1052) PGETPA (CODE) LET R2 . - R2 + #200 000200 ENDIF MOV ASL ASL ASL ASL ASL ASL R2,H3 R3 R3 R3 R3 R3 R3 MOV BIC (R 1 ) , R4 #160000,R4 MOV ADD R3,2(R1) R4, :2 ( R1 ) BCC 50004$ ADD #200 t R2 SWAB R2 ASL ASL R2 R2 BIC #177717,R2 MOV R2,4(R1) JSR PC,RESREG RTS PC 50004$: ;+ ; FORM THE HIGH-ORDER 2 BITS, SHIFTING THEM INTO BIT POSTIONS ; 4 AND 5. ;- 000146' 000146' 000150' 000150' 000152 1 000154' 000154 1 000160' 000160' LET R2 000302 LET R2 006302 006302 042702 010261 LET R2 177717 ·- SWAP R2 0- R2 SHIFT #+2 · - R2 CLR.BY #177717 LET 4 (R 1 ) '- R2 000004 ENDIF 000164' 000164' 50003$: ;+ ; RESTORE RE.GISTERS AND RETURN. ,'- 000164' 000164 1 004767 000170 1 000170 1 000170' 000170' 000207 000001 CALL RESREG OOOOOOG ENDRTN .END 5,0000$ : 5iOO01$: PGETPA (GET PHYSICAL ADDRESS MODULE) 28-JUL-78 09:24 PGETPA.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 :: 000006 ADR APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BITO 000001 BITOO 000001 BIT01 000002 BIT02 000004 BIT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 B1T09 001000 BIT1 000002 BIT10 002000 BIT11 004000 BIT12 010000 BIT13 020000 BIT14 = 040000 BIT15 100000 BIT2 000004 BIT3 000010 BIT4 000020 BIT5 000040 8IT6 000100 BIT7 000200 Bl T8 000400 BIT9 001000 BKDEF, 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CU(PRE= 000001 CONFIG= 000056 CQOVF 000001 CR 000015 CSRA 000100 CSRC 000102 CTRLC = 000003 CTRLO = 000017 CTRLU.= 000025 DCEVNT= '000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 000000 DT DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 ·DT.PTA= 000064 DT.RCS::; 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP~ 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNU L= 000001 ENDLST= 000000 MACV11 30A(1052) SYMBOL TABLE 2Q-SEP-78 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 'EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122· 000 100· IE INDPAR= 000040 INHDRP= 040000 Il\:HEPR= 020000 INHREL= 001000 1NHRRE= 000400 INIT 000030 0001.20 INTR 100000 IOMOD 1OMODP= 102000 1OMODR= 112000 IOMODX= 110000 JACK :;: 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR:l== 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5::; 172352 KIPAR6= 172::154 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 17:2310 KJPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 LF 000012 LPSTAT= 000001 MAPSTA= 000200 MED 076600 MEMPAS= 040000 MODEXH= 004000 MODHOL:: 002000 18:20 PAGE 20 SEQ 0802 MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL=: MSGPOP=: MSGPr~M=: MSGRES=: MSGSFT= MSGSKE::: MSGSM8=: MSGSMH= MSGSMS=: IVlSGSTD=; MSGSVS:: MSGVEC=: NBKMOD:: NCPUOP:: NOAPTY;: NULL OWEN PAERR PARPRE= PARSTA:: PASCNT= PDPLSI:: PDP60 PDP70 _. PGETPA PRIO P RI 1 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= RBUFEA= RBUFPA= RBUFSZ:: 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 0000'16 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 OOOOOORG 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 RBUFVA= 000 '124 RDSERV= 000'101 RDWHIVI I = 000022 RELERI~= 000020 RELMOD= 020000 RELTIM= 010000 RESREG= ****** G 'RES1 000056 000060 'RES2 RICHAR= 031060 RPTDAT= 002000 F~S T RT = 000112 R'J80UT= 000177 RUNMOD= 100000 R5VALU= 001740 SAN: 075464 SAVREG= ****** G 5BADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 00004.2 SOFPAS= 000046 SPACE =. 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO SRi 177574 177576 SR2 172516 SR3 STAT 000026 STATBl= 064757 STA T1 = 000027 SUSPND= 000001 SVRO 000062 SVR1 000064 SVR2 000066 000070 SVR3 SVR4 000072 00007·1 SVR5 SVR6 000076 SVSCNT= 000052 SVSERR= 000100. 000002: TMPIO TQOVF = 000002: PGETPA (GET PHYSICAL ADDRESS MODULE) 28-JUL-78 09:24 PGETPA.MAC UIPARO= UIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO:: UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= \>JASADR= WBSTAT= 177640 177642 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 ASS. 000000 000172 MACY 11 30A(1052) SYMBOL TABLE WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 IIJBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE:: 000352 WTWHMI :: 000222 XFLAG :: 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS:: 000150 $ F$DEC=. 000220 000 001 0 ERRORS DETECTED: DEFAULT GLOSALS GENERATED: 0 DSKZ:PGETPA,DSKZ:PGETPA=SPMAC/ML,EQUATE,PGETPA RUN-TIME: 14 4 .4 SECONDS RUN-TIME RATIO: 72/19=3.7 CORE USED: 14K (27 PAGES) 20-SEp .... 78 $F$DO 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO:: 000200 $F$NAM= 000160 $F$NO :: 000403 $F$OR :: 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 00040:2 $IFLEV= 177777 18:20 PAGE 20-1 $ISKO _. 000001 000001 $ISK1 $LOCTA= 177777 $LSTIN=: 000001 . $LSTTA= 000001 $NESTL::: 177777 000300 $NSKO 000110 $NSK1 $NSK2 = 000110 $SAVLE::: 177777 $TAGLE= 177777 $ T AGNU=: 050005 $TEMP _. 000300 $TSKO - 050003 $TSKl _. 050004 $$ARGC:: 000002 $$BYTE= 000403 $$CASE:: 000000 ~. ~. ~. SEQ 0803 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG:: 000001 $$FROM= 000000 $$LOC :: 000140R $$LOCN= 000000 $$REG :: 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC :: 000000 $STGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 000172R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 550 552 570 18:21 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT PMAP22 ROUTINE jSPMAC: VERSION 1.1 SEQ 0804 PMAP22 - PROCESS MAP22 MACY11 30A(1052) 20-SEP-78 18:21 PAGE 19 PMAP22.MAC 28-JUL-78 09:24 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 54.6 547 548 SEQ 0805 .TITLE PMAP22 - PROCESS MAP22 .IDENT JVO.O/ i++ MODULE NAME: PMAP22 FUNCTIONAL DESCRIPTION: PROCESSES MAP22 TRAP CALLS INPUTS: DATA TABLE IMPLICIT INPUTS: DT.PC OUTPUTS: NONE IMPLICIT OUTPUTS: DT.PC PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: UNIPA ;GET PHYS. ADDR. FROM UNIBUS MAP FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PMAP22 IN <A> A=ADDRESS OF DATA TABLE vERSION: 0.0 EDIT BY DATE REASON PMAP22 - PROCESS MAP22 MACY11 30A(1052) 20-SEP-78 18:21 PAGE 19-1 PMAP22.MAC 28-JUL-78 09:24 COMMON DEFINITIONS AND REFERENCES 550 551 552 (1) 553 554 555 000000' 000000' 000001 000001 .SBTTL COMMON DEFINITIONS AND REFERENCES .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=l $LSTTAG=1 556 , 557 558 559 ; 560 561 562 563 564 565 566 567 568 SEQ 0806 ;**************** ; REFERENC£D BY OTHER MODULES .GLOBL PMAP22 ;MODULE ENTRY POINT ;**************** , ; GLOBAL REFERENCES .GLOBL UNIPA ;GET PHYS. AODR. FROM UNIBUS MAP PMAP22 - PROCESS MAP22 MACY11 30A(1052) 20-SEP-78 18:21 PMAP22.MAC 28-JUL-78 09:24 PMAP22 ROUTINE 570 571 572 (2 ) 573 574 575 576 577 578 579 (2 ) (3) 580 581 582 583 584 585 586 (4 ) 587 588 589 590 591 592 593 594 595 (4) (6) 596 597 598 599 600 601 602 (3) (4) (3 ) (3 ) 603 604 605 606 607 608 609 610 611 (6 ) 612 613 614 PAGE 19-2 SEQ 0807 .SBTTL PMAP22 ROUTINE ROUTINE PMAP22 <TABL> 1 000000 000000 1 PIVIAP22: ;+ ; SAVE REGISTERS ,'- PUSH RO,R1 000000 1 000000 1 010046 000002' 010146 MOV MOV RO,-(SP) R1,-(SP) MOV TABL(RS),RO ;+ ; SET RO TO START OF DATA TABLE 000004' 000004 1 016S00 LET RO := TABL(RS) 000000 ;+ ; GET THE ADDRESS OF THE TABLE REQUIRED BY UNIPA. THIS TABLE ; CONTAINS THE 18-BIT ADDRESS TO BE CONVERTED ALONG WITH A STORAGE ; AREA FOR THE 22-BIT RESULT. ;- 000010' 000010 1 016001 000014 1 062701 LET R1 := DT.PC(RO) + #2 000002 000002 MOV ADD DT , PC ( HO) , R1 #2, R1 MOV MOV JSR MOV R5,-(SP) (R1) ,"(R5) PC,UNIPA (SP)+"R5 ADD #4,DT.PC(RO) ;+ ; CALL UNIPA ;- 000020 1 000020 1 010546 000022 1 011145 0000241 004767 000030' 01260S CALL UNIPA IN «R1» OOOOOOG ;+ ; UPDATE DT.PC TO REFLECT THE OPTION MODULE1S RE-ENTRY ; ADDRESS. (THAT IS, JUMP OVER THE INPUT ARGUMENT OF ; THE TRAP CALL.) , '- 000032' 000032' 062760 LET DT.PC(RO) := DT.PC(RO) + #4 000004 000002 i+ PMAP22 - PROCESS MAP22 MACY11 30A(1052) 20-SEP-78 18:21 PMAP22.MAC 28-JUL-78 09:24 PMAP22 ROUTINE 615 616 617 618 (2 ) (3 ) 619 620 621 622 623 624 525 (3 ) (3) ( 2) 626 627 PAGE 19-3 SEQ 0808 ; RESTORE REGISTERS ;- 000040' 000040' 012601 000042' 012600 pap R1,RO MOV MOV (SP)+,H1 (SP)+,IRO RTS PC ;+ ; GOOD-BYE. , 000044' 000044' 000044' 000044' 000207 000001 ENDRTN 50000$: 50001$: .END PAGE 2C 20-SEP-78 18:21 PMAP22 - PROCESS MAP22 MACY11 30A(1052) SYMBOL TABLE 28-JUL-78 09:24 PMAP22.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 M~AS 000110 BITO 000001 BITOO 000001 BIT01 000002 BIT02 000004 I31T03 000010 BIT04 000020 BIT05 000040 BIT06 = 000100 000200 BIT07 BIT08 000400 001000 B1T09 BIT1 000002 I3IT10 002000 BIT11 004000 B1T12 010000 BIT13 020000 B1T14 040000 B1T15 100000 B1T2 000004 BIT3 000010 BIT4 000020 000040 BITS BIT6 000100 BIT7 000200 BIT8 = 000400 BIT9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 C LKPR E= 000001 CONFIG= 000056 CQOVF 000001 CR 000015 CSRA 000100 CSRC = 000102 CTRLC = 000003 CTRLO = 000017 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT ,'APK= 000076 DT .. BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 D1.ES1= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE::: 000024 DT.KBP= 000026 D1.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MT1= CJOO110 DT.Oi=F= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 D1. SP = 000006 D1.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT . WBU= 000050 D1. WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 SEQ 0809 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 000122 [DNUM 000100 IE INOPAR= 000040 INHDRP= 040000 1NHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT = 000030 INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 ,JACK 035060 I-<IPARO= 172340 1~IPAR1= 172342 t-<IPAR2= 172344 KIPAR3= 172348 KIPAR4= 172350 K1PAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 .KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 K1PDR7= 172316 KTERRO= 000040 KTPRES::: 000400 ~<TSTAT= 000020 KTXTND= 040000 LF 000012 LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 MODSEL= 001000 = 000010 00001 I 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 17'1776 000001 000006 000003 000015 00-)014 0000'16 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 P~,SCNT= 000034 PDPLSI= 020000 PDP60 = 004000 PDP70 ::: 010000 PMAP22 OOOOOORG 000000 PRIO 000040 PRI1 000200 PRI4 000240 PRI5 PRI6 -, 000300 000340 PRI7 000000 PRO 000200 PR4 000240 PR5 000300 PR6 000340 PR7 PS 177776 PSW 177776 RAf-.,JNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ=: 000132 RBUFVA= 000124 MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOD= 020000 RELTIM= 010000 000056 RES1 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000"112 RUBOUT= 000 '177 RUNMOD= 100000 R5V tl.LU= 001'140 SAM 075464 SBADR = 000102 S8KMOD= 000000 S3KSEL= 010000 SC.ADR= 000006 Sc. ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177 !572 SRO 177!574 SR1 SR2 177576 SR3 172:516 STAT 000026 STATBI= 064757 STAT1 = 000027 SUSPND= 000001 SVRO = 000062 SVR1 = 00006'-1 SVR2 000066 SVR3 000070 000072 SVR4 S\lR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TABL 000000 TMF'IO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 PMAP22 - PROCESS MAP22 MACY11 30A(1052) 20-SEP-78 18:21 SYMBOL TABLE PMAP22.MAC 28-JUL-78 09:24 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 UNIPA = ****** G WASADR= 000104 WBSTAT= 000040 A8S. 000000 000046 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 XOFF 000023 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:PMAP22,DSKZ:PMAP22=SPMAC/ML,EQUATE,PMAP22 RUN-TIME: 11 1 .3 SECONDS RUN-TIME RATIO: 62/13=4.6 CORE USED: 14K (27 PAGES) PAGE 20-1 :$F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO::; 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $f$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$5EL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$vJHI= 000120 SEQ 0810 $F$YES= 000402 $IFLEV=: 177777 $LOCTA=' 177777 $LSTIN=: 000001 $LSTTA= 000001 $NESTL=: 17 '177 7 $NSKO - 000300 $SAVLE=: 177777 $TAGLE:: 177777 $TAGNU= 050002 $TEMP _. 000300 $$ARGC:: 000002 $$BYTE=: 000000 $$CASE= 000000 $$D5T - 000000 $$ELOC:: 000000 $$ERFL= 000000 $$FLAG= 000000 $$FROM= 000000 $$LOC = 000000 $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TG5V= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000001 $$$TAG::.: 050000 000046R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 526 584 587 624 18:22 TABLE OF CONTENTS COMMON EQUATE MODULE KPON/KPOFF PROCESS THE KEYBOARD COMMANDS: IPON1/1POFF 1 COMMON DEFINITIONS AND REFERENCES FOR PONOF 000000 1 .PRINT ;SPMAC: VERSION 1.1 KPON/KPOFF ROUTINE SEQ 0811 PONOF PROCESS THE KEYBOARD COMMANDS 'PONt AND 'POFf' MACY11 30A(1052) PONOF.MAC 11-SEP-78 14:03 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 .TITLE .IDENT PONOF JVO.Oj 20-SEP-78 18:22 PAGE '19 SEQ 0812 PROCESS THE KEYBOARD COMMANDS 'PONt AND 'POFF' ;++ MODULE PACKAGE NAME: PONOF FUNCTIONAL DESCRIPTION: THIS MODULE PACKAGE CONTAINS TWO ROUTINES: 1. KPON - PROCESS THE KEYBOARD COMMAND 'PONt 2. KPOFF - PROCESS THE KEYBOARD COMMAND 'POFF ' VERSION: 0.0 EDIT BY DATE REASON PONOF PROCESS THE KEYBOARD COMMANDS 'PON' AND 'POFF' MACY11 30A(1052) 20-SEP-78 18:22 PAGE 19-1 PONOF.MAC 11-SEP-7814:03 KPON/KPOFF PROCESS THE KEYBOARD COMMANDS: 'PON'/'POFF' 526 527 .SBTTL KPON/KPOFF .IDENT /VO.O/ PROCESS THE KEYBOARD COMMANDS: 'PON'/'POFF' 529 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 ;++ MODULE NAME: KPON/KPOFF FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE 'PON'/'POFF' KEYBOARD COMMANDS. IT WILL FIRST VERIFY THAT NO JUNK ARGL~ENTS EXIST. IT WILL THEN VERIFY THAT PARITY IS PRESENT ON THE SYSTEM. ALL PARITY CSR'S IN THE PARITY TABLE WILL HAVE THE APPROPRIATE BITS SET OR CLEARED DEPENDING ON COMMAND ISSUED. THE REGISTERS MAY BE NORMAL PARITY OR ECC(ER~OR CO~RECTION CIRCUITRY). IF CACHE THEN THE CACHE CONTROL REGISTER IS CLEARED. IF THE CPU IS AN 11/70, BITS 0,1 IN THE MEMORY CONTROL REGISTER ARE CLEAR~D. THE PARITY ENABLED MESSAGE WILL BE STUFFED. IF INDIRECT ECC CSR'S THEN THIS COMMAND IS NOT VALID IN BUSY MODE. INPUTS: 1. ADDRESS OF DATA TABLE 2. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: DT.PTA DT.CFO DT.STO 556 OUTPUTS: NONE 557 558 559 IMPLICIT OUTPUTS: DT.KBRSP 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 PATHOLOGICAL CONNECTIONS: CM.RUN - COMMAND NOT ALLOWED IN RUN MODE MESSAGE CM.ARG - ILLEGAL ARGUMENT MESSAGE SUBORDINATE ROUTINES CALLED: ARGCHK - CHECK AN ARGUMENT ICSROO - TURN ON/OFF INDIRECT ECC CSRS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KPON IN <DTADR,CMDBUF> WHERE: DTADR = ADDRESS OF DATA TABLE CMDBUF = COMMAND DECODE BUFFER POINTER VERSION: 0.0 ,"-- EDIT DATE BY REASO;\! SEQ 0813 PONOF PROCESS THE KEYBOARD COMMANDS IPON I AND IPOFF I MACY11 30A(1052) 20-SEP-78 18:22 PAGE 19-2 PONOF.MAC 11-SEP-7814:03 KPON/KPOFF PROCESS THE KEYBOARD COMMANDS: IPONI/IPOFF I 583 584 585 586 587 (1) 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 61'7 618 619 620 621 622 .SBTTL COMMON DEFINITIONS AND REFERENCES FOR PONOF .MCALL STRUCT STRUCT .PRINT iSPMAC: VERSION 1 • 1 000000 1 000000 1 $LSTTAG:::1 $LSTIN=l 000001 000001 ;**************** ; REFERENCED BY OTHER MODULES: .GLOBL .GLOBL iKPON ENTRY POINT iKPOFF ENTRY POINT KPON KPOFF ;**************** ; GLOBAL REFERENCES: .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL ;CACHE OR MEMORY CONTROL REG ;CHECK AN ARGUMENT ; INDIRECT ECC CSR ROUTINE ; I INVALID OR ILLEGAL ARG~MENT' MSG ;'ILLEGAL COMMAND IN BUSY MODE I MSG ;CONTROL WORD CCNTRL ARGCHK ICSROO CM;ARG CM.RUN KONTRL ;**************** 000000 1 000000 000002 1 047516 000010 1 0521 1 1 000015 1 120 0000221 020131 000030 1 054522 000036 1 045 000 000037 1 ; ; LOCAL STORAGE: ; 050040 022531 051101 042515 047440 051101 000 052111 047515 043106 ;PON/POFF FLAG po. FLAG: PO. NUN: .ASCIZ . ~'IIORD 0 /NO PARITY%/ PO.OFF: .ASCII /PARITY MEMORY OFF%/ PO.MBO: .BYTE 0 042515 047440 PO.EOF: .ASCIZ ;WILL BE STUFFED WITH A % IF ;Eec MEM IS PRESENT IECC MEMORY OFF%I 044522 054524 PO.ON: IPARITY MEMORY ON%I 046505 047117 051117 045 000102' 041505 020103 000110 1 047515 054522 000 000116' 022516 000122 1 042515 047440 000040 1 041505 000046 1 047515 000054 1 043106 000060 1 040520 000066 1 046440 000074 1 020131 000 000101 1 020103 054522 000045 .ASCII PO.MB1: .BYTE 0 PO. EON: .ASCIZ IEec MEMORY ON%I . EVEN ;vJILL BE STUF FED \tJI TH A % IF ;ECC MEM IS PRESENT SEQ 0814 PONOF PROCESS THE KEYBOARD COMMANDS IPON I AND IPOFF' MACY11 30A(1052) PONOF.MAC 11-SEP-78 14:03 KPON/KPOFF ROUTINE 624 625 626 (2) 627 628 629 630 .SBTTL 000122 000122' (4 ) 633 (2 ) 634 (3) (3 ) (2 ) 635 636 637 ( 2) 638 639 640 641 642 643 (4 ) (2 ) 649 (:2 ) (3 ) 650 (4) 651 (4) (4 ) KPON: ; SET THE FLAG TO REFLECT PON COMMAND 000122 1 000122 1 005067 000126 1 000126 1 000404 000130 1 000130 1 000130 1 000130 1 000207 LET PO. FLAG := #0 177652 CLR IN LINE <BR PARITY> Bt~ PO. FLAG PARITY ENDRTN 50000$: 50001$: ROUTINE KPOFF <DTADR,BUFPTR> 000132 1 000132 1 RTS PC MOV #1,PO.FLAG KPOFF: ;+ ; SET THE FLAG TO REFLECT POFF COMMAND 000132 1 000132 1 012767 LET PO. FLAG := #1 000001 177640 ;+ i 000140 1 000140 1 000140 1 000140 1 000142 1 000144 1 000144 1 000150 1 000150 1 SAVE REGISTERS, DTABLE ADDRESS AND BUFPTR IN LINE <PARITY:> PUSH RO,R1 010046 010146 016500 oooeoo 016501 000002 LET RO .- DTADR(R5) LET R1 := BUFPTR(R5) PARITY: MOV MOV RO,-(SP) R1,-(SP) MOV DTADR(R5) ,RO MOV BUFPTR(R5),R1 CLRB PO. Mao CLRB PO.MSl ;+ ,-; PLACE MESSAGE TERMINATORS IN MESSAGES 000154 1 000154 1 105067 000160 1 000160 I 105067 LET PO.MBO 177657 ~B= #0 LET PO.MB1 :B= #0 177715 659 ;+ 660 ; INSURE NO JUNK ARGUMENTS EXIST 661 662 663 664 SEQ 0815 ', - 652 653 654 655 656 657 (4) 658 PAGE 19-3 ;+ 644 645 646 647 648 18:22 KPON/KPOFF ROUTINE ROUTINE KPON <DTADR,BUFPTR> 1 631 632 20-SEP-78 ;- 000164 1 CALL ARGCHK IN <R1> OUT <Rl> PONOF PROCESS THE KEYBOARD COMMANDS 'PONt AND 'POFf' MACY11 30A(1052) PONOF.MAC 11-SEP-78 14:03 KPON/KPOFF ROUTINE (4) (3) (4) (3) (3) (4) 665 666 (6) 667 669 669 670 671 672 (4) 673 674 (4) (3) 675 676 677 678 679 680 (6) (9) 681 682 683 684 685 686 (4) 687 688 (4) (3) 689 690 691 692 693 694 (6) (9) 695 696 697 698 699 700 701 702 (4) 000164' 000170' 000172' 000174' 000200' 000202' 162705 010546 010145 004767 012605 012501 20-SEP-78 18:22 PAGE '19-4 000002 OOOOOOG IF.NO.ERROR THEN 000:204' 000204' 103404 SEQ 0816 SUB MOV MOV JSR MOV MOV #1*2,R!3 R5,-(SF.» R1,·-(R:3) PC,ARGCHK (S P) + , 1~5 (R5 )+, 1~1 BCS 50002$ MOV #CM.ARG,DT.KBRSP SR 50003$ BIT BNE #PARPRES!ECCMEM, 50004$ MOV # PO. NUN, DT . KBF~SP BR 50005$ ;+ ; IT'S NOT A CR SO STUFF ERROR MSG ANO SCRAM ... ;- 000206' 000206' 012760 LET DT.KBRSP(RO) .- #CM.ARG OOOOOOG 0000:22 ELSE. 000214' 000214' 000564 000216' 50002$: ;+ ; IT'S A CR SO SEE IF PARITY OR ECC EXISTS AT ALL ..•. 000:216' 000216' 032760 000224' 001004 IF #PARPRES!ECCMEM NOTSETIN DT.CFO(RO) THEN 002100 000014 ;+ ; NO PARITY .. OR ECC ... STUFF ERROR MSG AND LEAVE ...• 000226' 000226' 012760 LET DT.KBRSP(RO) := #PO.NUN 000002' 000022 ELSE, 000:234' 000234' 000554 000236' 50004$: ;+ ; DETERMINE IF INDIRECT PARITY REGISTERS IF NOT THEN GO CHECK TABLE. ;000236' 000236' 032760 000244' 001016 IF #INDPAR NOTSETIN DT.CFO(RO) THEN 000040 BIT BNE 000014 #INDP,A.R,DT.CFO(R 50006$ ;+ ; THERE IS PARITY ON THE SySTEM .... GET THE PARITY TABLE ADDRESS : THE REGISTERS MAY ; BE PARITY OR ECC .•. IF 11/70, THE PARITY TABLE COULD BE EMPTy ..... ', - 000:246' 000246' 016001 LET R1 := DT.PTA(RO) 000064 MOV DT. PTtI(RO) ,R1 PONOF PROCESS THE KEYBOARD COMMANDS 'PON' AND 'POFF' MACY11 30A(1052) PONOF.MAC 11-SEP-78 14:03 KPON/KPOFF ROUTINE 703 (4) (6) (9) 704 705 706 707 708 709 (6) (9) 710 (6) 711 (4) (3) 712 (6) 713 (4) 714 (4) (3) 715 716 (4) (3) 717 718 719 720 721 722 (6) (9) 723 (4) 724 (2) 725 (4) (3) 726 727 728 729 730 731 732 733 (3) (5) (4) (3) (3) 20-SEP-78 18:22 PAGE 19-5 SEQ 0817 WHILE (R1) NE #0 DO 000252' 000252' 000252' 005711 000254' 001411 50>007$: TST BEQ {R1) !50010$ ;+ ; DETERMINE WHETHER PON OR POFF COMMAND AND SET OR CLEAR APPROPRIATE BITS 000256' 000256' 000262' 000264' 000264' 000270' 000270' 000272' 000272' 000272' 000276' 000276' 000276' 000276' 000300' IF PO. FLAG EO #0 THEN 005767 001003 177516 052731 000003 TST SNE LET @(R1)+ .- @(R1)+ SET.BY #3 BIS SR 50012$ 5()0-11$~ LET @(R1)+ '- @(R1)+ CLR.BY #3 BIC 000003 #3,@(R1)+ ENDIF 50012$: ENDDO 000765 BR 50007$ BR 50013$ 5()010$: ELSE 000300' 000300' 000420 000302' 50006$: + 000302' 000302' 000310' 000312' 000312' 000320' 000320' 000322' 000322' 000324' #3,@(R1)+ ELSE 000402 042731 PO. FLAG 50011$ THERE ARE INDIRECT ECC CSRS THEN IF IN RUN MODE DO NOT LOOK BUT RETURN IF #RUNMODE SETIN DT.STO(RO) THEN 032760 001405 100000 000010 012760 OOOOOOG 000022 LET DT.KBRSP(RO) BIT SEQ #RUNMODE,DT.STO( 50014$ MOV #CM.RUN,DT.KBRSP := #CM.RUN INLINE <SR 100$> SR 100$ 000522 ELSE 000407 BR 500 -15$ MOV MOV MOV JSR MOV R5 , -- ( 5 P ) PO.FLAG,-(R5) RO,-(R5) PC,ICSROO (SP)+,R5 50014$: j+ ; IT IS OKAY TO GO TO INDIRECT CSRS ; SEND FLAG A '0' TO INDICATE PON COMMAND ; OR SEND FLAG A '1' TO INDICATE POFF COMMAND 000324' 000324' 000326' 000332' 000334' 000340' CALL leSROO IN <RO,PO.FLAG> 010546 016745 010045 004767 012605 177446 OOOOOOG PONOF PROCESS THE KEYBOARD COMMANDS IPON 1 AND IPOFFI MACY11 30A(1052) PONOF.MAC 11-SEP-78 14:03 KPON/KPOFF ROUTINE 734 (4 ) 735 (4) 736 737 738 739 740 741 (6 ) (9) 742 743 744 745 746 747 748 (6) (9) 749 (6) 750 (4) (3 ) 751 (6) 752 (4) 753 (4) 754 755 (4) 756 20-SEP-78 18:22 PAGE 19-6 SEQ 0818 ENDIF 000342 1 000342 1 000342 1 000342 1 50015$: ENDIF 50013$: ;+ ; IF CACHE PRESENT 000342 1 000342 1 032760 000350 1 001415 IF #CAPRES SETIN DT.CFO(RO) THEN 000004 000014 BIT BEQ #CAPRES,DT.CFO(R 50016$ TST BNE PO. FLAG 50017$ BIC #203,KONTRL SR 50020$ SIS #203,KDNTRL MOV KONTRL,@CCNTRL ;+ ; IF PON COMMAND TURN ON CACHE PARITY OTHERWISE ; MUST BE A PARITY POFF COMMAND , 000352 1 000352 1 005767 000356 1 001004 000360 1 000360 1 042767 000366 1 000366 1 000403 000370 1 000370 1 000370 1 052767 000376 1 000376 1 000376 1 000376 1 016777 IF PO. FLAG EQ #0 THEN 177422 LET KONTRL := KONTRL CLR.SY #203 000203 OOOOOOG ELSE 50017$: LET KONTRL '- KONTRL SET.BY #203 000203 OOOOOOG ENDIF 50020$: LET @CCNTRL '- KONTRL OOOOOOG OOOOOOG 000404 1 000404 1 ENDIF 50016$: + P/57 NOW STUFF THE APPROPRIATE BITS IN DT.STO AND LOAD THE ASSOCIATE MESSAGES 758 759 760 761 (6 ) (9) 762 (6) (9) 763 (6) (9) 764 (4) 765 (6 ) 766 (4) (3) 000404' 000404 1 032760 000412 1 001445 000414 1 000414 1 032760 000422 1 001420 000424 1 000424' 005767 000430 1 001007 000432 1 000432 1 112767 000440' 000440 1 052760 000446 1 000446 1 000406 000450 1 IF #PARPRES SETIN DT.CFO(RO) THEN 002000 000014 000100 000014 BIT BEQ #PARPRES,DT.CFO( 50021$ BIT BEQ #ECCMEM,DT.CFO(R 50022$ TST BNE PO. FLAG 50023$ IF #ECCMEM SETIN DT.CFO(RO) THEN IF PO. FLAG EO #0 THEN 177350 LET PO.MSl :B= #1% 000045 177441 000010 000010 LET DT.STO(RO) MOVB #1%,PO.MB1 '- DT.STO(RO) SET.BY #ECCSTAT SIS #ECCSTAT,DT.STO( ELSE 8R 50023$: 50024$ MACY11 30A(1052) PONOF PROCESS THE KEYBOARD COMMANDS IPON' AND IPOFFI KPON/KPOFF ROUTINE 11-SEP-7814:03 PONOF.MAC 767 (4) 768 (6) 769 (4) 770 (4) 771 (6) (9) 772 (4) 773 (6) 774 (4) (3) 775 (4 ) 776 (6) 777 (4) 778 (4) (3) 779 (6) (9 ) 780 (4) 781 (6) 782 (4) (3) 783 (4) 784 (6) 785 (4) 786 787 (4) 788 (4 ) 789 790 (4 ) 791 792 793 794 795 000450 1 000450 1 112767 000456' 000456' 042760 000464' 000464' 000464' 000464' 000464' 000464' 005767 000470 1 001007 000472' 000472 1 012760 000500 1 000500 1 052760 000506 1 000506' 000406 000510' 000510' 000510' 012760 000516' 000516 1 042760 000524' 000524' 000524' 000524' 000420 000526 1 000526' 000526 1 005767 000532 1 001007 000534 1 000534 1 012760 000542 1 000542 1 052760 000550 1 000550' 000406 000552' 000552' 0005521 012760 000560 1 000560 1 042760 000566' 000566' 18:22 PAGE 119-7 SEQ 0819 LET PO.MBO :8= #1% 000045 177361 000010 000010 LET DT.STO(RO) #I%,PO"MBO MOVB .- DT.STO(RO) CLR.BY #ECCSTAT BIC #ECCSTJ~T, DT .STO( TST BNE PO. FLAG 50025$ MOV #PO.ON,DT.KBRSP( ENDIF 50024$: ENDIF 50022$: IF PO. FLAG EO #0 THEN 177310 LET DT.KBRSP(RO) 000060' 000022 000100 LET DT.STO(RO) ::: #PO.ON := DT.STO(RO) SET.8Y #PARSTAT 000010 BIS #PAI~STAT, DT. STO ( BR 50026$ ELSE LET DT.KBRSP(RO) 000015 1 000022 000100 LET DT.STO(RO) '- 50025$: #PO.OFF MOV #PO.OFF"DT .KBRSP .- DT.STO(RO) CLR.BY #PAR:STAT 000010 BIC #PARSTAT,DT.STO( BR 50027$ TST BNE PO. FLAG 50030$ MOV #PO.EON,DT.KBRSP ENDIF 500265: ELSE 50021$: IF PO. FLAG EO #0 THEN 177246 LET DT.KBRSP(RO) 000102' 000022 000010 LET DT.STOeRO) := #PO.EON := DT.STO(RO) SET.BY #ECCSTAT 000010 BIS #ECCSTAT,DT.STO{ BR 50031$ ELSE LE.T DT.KBRSP(RO) 000040 1 000022 000010 LET DT.STO(RO) .- 50030.$: #PO.EOF #PO.EOF,DT.KBRSP MOV . - DT.STO(RO) CLR.BY #ECCSTAT BIC 000010 ENDIF ENDIF 000566' 000566' 000566' 000566 1 000566 1 000566 1 20-SEP-78 5,0031 $: ~i0027$ : ENDIF ti0005$ : ENDIF + CLEAN UP MESS .•. :;0003$ : #ECCSTAT,DT.STO( PONOF PROCESS THE KEYBOARD COMMANDS 'PONt AND 'POFF ' MACV11 30A(1052) PONOF.MAC 11-5EP-78 14:03 KPON/KPOFF ROUTINE 796 797 (2 ) 798 (2 ) (3) 799 800 (3) (3) (2) 801 000566' 000566 1 000566' 000566 1 012601 000570 1 012600 000572' 0005721 000572' 000572' 000207 000001 20-SEP-78 18:22 PAGE 19-8 SEQ 0820 INLINE <100$:> 100$: POP R1,RO MOV MOV (SP)+,R1 (SP)+,RO RTS PC ENDRTN 50000$: 50001$: .END PONOF PROCESS THE KEYBOARD COMMANDS 'PON ' AND 'POFF ' PONOF.MAC 11-SEP-78 14:03 SYMBOL TABLE ACSR 000102 ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ARGCHK= ****** ASB 000106 ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 AV,JAS 000110 BITO 000001 000001 BITOO BIT01 000002 BIT02 000004 000010 BIT03 B1T04 000020 BIT05 000040 000100 BIT06 000200 BIT07 000400 BIT08 001000 BIT09 BIT1 000002 BIT10 002000 BIT11 = 004000 BIT12 010000 B1T13 020000 BIT14 040000 BIT15 100000 BIT2 000004 000010 BIT3 BIT4 000020 BITS 000040 BIT6 000100 BIT7 000200 BIT8 000400 BIT9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BUFPTR= 000002 CAPRES= 000004 CASTAT= 000004 CCNTRL= ****** CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CM.ARG= ****** CM.RUN= ****** G G G G CONFIG= 000056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 D1AGMC:: 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 DT. AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT. CFO=' 000014 DT.CF1= 000016 DT.ERR= 000020 D1.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 Dr. FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP:: 000026 D1. KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 D1. PF L= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS:: 000102 DT.REL= 000040 DT.SCT:.: 000066 DT.SMX= 000106 DT. SP :: 000006 DT.SSI= 000046 DT.STO= 000010 D1.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT . WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 MACV}1 30A(1052) ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT.= '000001 ERR TYP::c ',000 1 0 6 EVNTBE:t: 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= Q00201 FATERR= 1'00000 HRDCNT= 000044 HRDPAS= 000050 lCONT = 000036 ICOUNT= 000040 ICSROO= ****** G 1DNUM = 000122 IE 000100 INDPAR= 000040 INHDRP= 040000 1NHEPR= 020000 INHREL= 001000 Ii'JHRRE= 000400 IN1T 000030 lNTR 000120 lOMOD 100000 IOMODP= 102000 IOMODR= 112000 !OMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 1'12344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5::: 172352 KIPAR6= 172354 KIPAR7= 1723~6 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4::: 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KONTRL= ****** G KPOFF 000132RG KPON 000122RG KTERRO= 000040 KTPRES= 000400 20-SEP-78 KTSTAT= KTXTND= .LF LPSTAT= MAPSTA= MED MEMPAS= MODEXH= MOr.;HOL= IY1ODSEL= MSGCKD= MSGCKS= MSGDER= M$GDRP= MSGECH= 'MSGEOP= MSGHDR= MSGHNG::: MSGHRD= MSGMAP=: MSGNUL=: MSGPOp:: MSGPRM=: MSGRES=: MSGSFT=: MSGSKE= MSGSMB::: MSGSMH": MSGSMS:' MSGSTD=: MSGSYS= MSGVEC= N8KMOD= NCPUOP,: NOAPTY= NULL mvEN PAERR PARITY PARPRE:: PARSTA:: PASCN T:= PDP LSI:: PDP60 .PDP70 .PO.EOF PO. EON PO.FLA PO.MBO PO.MB1 PO.NUN PO.OFF PO.ON 18:22 PAGE 20 000020 040000 000012 000C01 000200 076600 040000 004000 002000 001 COO 000010 000011 000005 000017 177777 001)01:3 000004 000022 000007 000021 177775 000002 177776 00')001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 000140R 002000 000100 000 034 020000 004000 010000 000040R 000102R OOOOOOR 000037R 000101R 000002R 000015R 000060R SEQ 0821 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 Pi~6 000340 PR7 177'776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000130 R8UFPA= 000126 RBUFSZ= 000132 RBUF'VA= 000124 RDSERV= 000101 ROWHM1= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 000056 RES1 000060 RES2 RICHAR= 031060 RPTDA T= 002000 RSTRT -. 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SBADR = 000102 SBI<MOD= 000000 SBKSE L= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE :: 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SRi 177576SR2 172516 SR3 PRIO PRJ1 PRl4 PRI5 PRI6 PRI7 PRO PR4 PR5 PONOF PROCESS THE KEYBOARD COMMANDS 'PON' AND 'POFF' PONOF.MAC 11-SEP-78 14:03 SYMBOL TABLE UIPDR1= UlPDR2= UIPDR3= UIPDR4= UlPDR5= UIPOR6= UIPDR7= WASAOR= WBSTAT= WBUFEA= \,oJBUFPA= WBUFRQ= WBUFSZ= WDFR WOTO WTINRE= WTWHMI= XFLAG :: XOFF XON $BGNLE= $ERFLG:: $F$AND= $F$BAD= 000026 STAT STATBl= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 SVR1 000064 SVR2 000066 SVR3 000070 SVR4 000072 SVR5 000074 SIJR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 ABS. 000000 000574 177602 177604 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 000352 000222 000005 000023 000021 177777 000400 000310 000401 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:PONOF,DSKZ:PONOF=SPMAC/ML,EQUATE,PONOF RUN-TIME: 19 9 .4 SECONDS RUN-TIME RATIO: 111/29=3.7 CORE USED: 14K (27 PAGES) MACY11· 30A(1052) $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$OO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$lF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$VVHI= 000120 $F$YES= 00040'2 $IFLEV= 177777 000001 $ISKO $ISK1 000001 $ISK2 000001 20-SEP-78 $ISK3 $lSK4 $LOCTA= $LSTlN=: $LSTTA=: $NESTL=: $NSKO $NSK1 $NSK2 $NSK3 $NSK4 $NSK5 $SAV LE:: $SSKO -$TAGLE:: $T AGNU=: $TEMP $TSKO $TSK1 $TSK2 $ TSI{3 $TSK4 $TSK5 $$ARGC:: 18:22 000001 000001 177777 000001 000001 177777 000300 000110 000~10 000110 000110 000110 177777 050010 177777 050032 000300 050003 050005 050027 050031 050024 050012 000004 PAGE 20-1 SEQ 0822 $$BYTE= 000403 $$CASE= 000000 $$OST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 00053.2R $$LOCN= 000000 $$REG = 177777 $$RETU= 00000-:) $$RTN1= 050000 $$RTN2= 050001 $$SRC = OOOOO() $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000002 $$$TAG= 050000 000574R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 556 559 578 18:24 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR PRBTOD 000000' .PRINT ;SPMAC: VERSION 1.1 PRBTOD ROUTINE SEQ 0823 PRBTOD PROCESS THE IBTOD I MACRO IN OPTION MODULES MACY11 30A(1052) PRBTOD.MAC 28-JUL-78 09:25 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE IBTODI TRAP ISSUED BY OPTION MODULES. IT WILL RETRIEVE THE NUMBER TO BE CONVERrED TO DECIMAL ASCII FROM DT.PC+2 AND THE TABLE ADDRESS AT WHICH TO STORE THE DECIMAL ASCII FROM DT.PC +4. IT CALLS THE BINARY TO DECIMAL ASCII CONVERSION ROUTINE. THE RETURN PC IS UPDATED SINCE THIS IS DIRECT SERVICE. INPUTS: DTABLE ADDRESS 528 529 530 OUTPUTS: NONE 537 538 539 540 541 IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE. SUBORDINATE ROUTINES CALLED: BDACNV - BINARY TO DECIMAL ASCII CONVERSION ROUTINE 542 FUNCTIONAL SIDE EFFECTS: NONE 543 544 545 546 CALLING SEQUENCE: CALL PRBTOD IN <DTADR> WHERE DTADR = ADDRESS OF DATA TABLE 547 548 549 VERSION: 0.0 550 551 552 553 554 PAGE 19 ;++ MODULE NAME: PRBTOD IMPLICIT INPUTS: DT.PC 531 18:24 .TITLE PRBTOD PROCESS THE IBTOD I MACRO IN OPTION MODULES .IDENT JVO.Oj 526 527 532 533 534 535 536 20-SEP-78 EDI,. ;-- DATE BY ~!EASON SEQ 0824 PRBTOD PROCESS THE IBTOD I MACRO IN OPTION MODULES MACY11 30A(1052) 20-SEP-78 18:24 PRBTOD.MAC 28-JUL-78 09:25 COMMON DEFINITIONS AND REFERENCES FOR PRBTOD 556 557 558 559 (1) 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 . 575 576 .SBTTL PAGE,19-1 COMMON DEFINITIONS AND REFERENCES FOR PRBTOD .MCALl STRUCT STRUCT .PRINT jSPMAC: VERSION 1.1 000000' 000000' 000001 000001 $lSTIN=1 $lSTTAG=1 ;**************** ; i REFERENCED BY OTHER MODULES: ; .Gl08L , PRBTOD ;MODULE ENTRY POINT ;**************** , ; GLOBAL REFERENCES: , .GlOaL BDACNV ;BINARY TO DECIMAL ASCII CONVERSION ROUTINE SEQ 0825 PRBTOD PROCESS THE 'BTOO' MACRO IN OPTION MODULES PRBTOD.MAC 28-JUL-78 09:25 PRBTOD ROUTINE 578 579 580 (2) 581 582 583 584 585 586 587 (2) (3) 588 (4) 589 .SBTTL 20-SEP-78 18:24 PAGE '19-2 SEQ 0826 PRBTOD ROUTINE ROUTINE PRBTOD <DTAOR> 000000' 000000' PI~BTOD: ;+ ;INITIALIZE AND SAVE DATA TABLE ADDRESS , 0- 000000' 000000' 010046 000002' 010146 000004' 000004' 016500 PUSH RO,R1 LET RO := DTADR(R5) 000000 MOV MOV RO,-(SP) R1,.-(SP) MOV DTADR(R5),RO MOV DT.PC(RO),R1 MOV MOV MOV JSR MOV R5,-(SP) 4(R1) ,-(R5) @2(R1),-(R5) PC,BDACNV (SP)+,R5 ADD #6,DT.PC(RO) MOV MOV (SP)+,R1 (SP)+,RO RTS PC ;+ ; GET DT.PC AND CALL BDACNV ;- 5~0 591 592 593 594 (4) 595 (3) (5) (4) (3) (3) 596 597 598 599 600 601 (6) 602 603 604 605 606 607 (2) (3) 608 609 (3) (3) (2) 610 611 MACV11 30A(1052) 000010' 000010' 000014' 000014' 000016' 000022' 000026' 000032' LET R1 016001 ;= DT.PC(RO) 000002 CALL BDACNV IN <@2(R1),4(R1» 010546 016145 017145 004767 012605 000004 000002 OOOOOOG ;+ ; UPDATE RETURN PC ;- 000034' 000034' 062760 LET DT.PC(RO) := OT.PC(RO) + #6 000006 000002 ;+ ; CLEAN UP AND GOODBYE ;- 000042' 000042' 012601 000044' 012EOO POP R1 fRO 000046' 000046' 000046' 000046' 000207 ENDRTN 000001 .END 5,0000$ : 500001$: PRBTOD PROCESS THE 'BTOD I MACRO IN OPTION MODULES SYMBOL TABLE 28-JUL-78 0.9:25 PRBTOD.MAC ACSR 0.00102 ACTBIT= 0.0.40.00. ADDR22:;: 0.0.1000 ADR 0.000.06 APTFER= 0.00004 APTPRE= 0.0.0.200 ASB 00.0106 ASSEMB= 00.0010 ASTAT = 00.010.4 AUTO 0.0.0010. AUTOST= 020000 AWAS 0.0.0110 BDACNV= ****** G BITC 00.000.1 0.0.0.00.1 BITOC BITC1 0.0.0002 000.0.04 BIT02 BITC3 000.010 0.0.0.0.20. BITC4 BITC5 00.0.040. BITC6 0.0.0.10.0 BIT07 00.0.20.0 BITCB 0.00.40.0 BIT09 0.0.10.0.0 BIT1 00.0.0.0.2 BIT10 0.0.20.0.0 BIT11 00.40.0.0. BIT12 0.1000.0 BIT13 0.200.00. BIT14 0.4000.0. BIT15 10000.0 BIT2 00.0.0.04 BIT3 0.00.0.10 BIT4 0.00.0.20 BITS 0.000.40. 8IT6 0.0.010.0. BIT7 0.00.200 BIT8 000.400 BIT9 0.0.100.0 BKDEF 00.0.00.2 BKMOD 0.0.0020. BKMODE= 040.00.0 BKSLSH= 0.0.0134 CAPRES= 0.0.00.04 CASTAT= 0.0.0.004 CDERCT= 0.00146 CDWDCT= 0.0.0144 CKTIM = 10.0.0.00. CLKPRE= 0.00.0.0.1 CONFIG= 00.0.0.56 CQOVF 00.00.0.1 0.0.0015 CR CSRA = 0.0.010.0 000.10.2 CSRC 000.00.3 CTRlC 0.00.0.17 CTRLO 0.000.25 CTRlU DCEVNT= 000011 DEFRTN= 0.00.400. DIAGMC= 0.0000.0. DROPMO= 100000 DSEVNT= 0.0.00.14 DTADR = 00000.0 DT.ADD= 00.0.042 DT.AP = 000100 DT.APK= 00.0.0.76 DT.BLS= 00.0034 DT.CFC= 0.0.00.14 DT.CF1= 0.00016 DT. ERR=, 00.0.0.20. DT.ESI= 0.0.0.0.44 DT.EVN= 0.00000. DT.EXS= 0.000.60 DT.FCH= 00.0.037 DT.FCN::: 000.0.36 DT.HMX= 0.0.010.4 DT.KBE= 000024 DT.KBP= 00.0.026 DT.KBR= 00.0.022 DT.KBU= 0.000.30. DT.MLS= 0.00.0.32 DT.MTI= 0.0.0.110 DT.OFF:::: 000.0.70. DT.PAS= 0.000.74 DT.PC = 00000.2 DT.PFL= 0.0.0062 DT.PSW= 0.000.04 DT.PTA= 00.0.0.64 DT.RCS= 000102 DT.REL= 0.0.0.0.40 DT.SCT:: 0.00066 DT.SMX= 00010.6 DT.SP = 0.00.0.06 DT.SSI= 0.00.0.46 DT.STO= 000.0.10. DT.ST1= 0.0.0.012 DT.SWR= 0.00.0.56 DT.SYP= 0.00.0.72 DT.WBU= 0.0.0.0.50. DT.WHL= 00.0.054 DT.WLL= 0.0.00.52 DVID1 = 0.00.0.14 ECCMEM= 0.0010.0. ECCSTA= 0.000.10. ENBEOP= 0.10.0.00. ENBNUL= 00.000.1 MACY11 3CA(1C52) ENDLST= 0.0.0.0.0.0 EOPBIT= 00.000.1 ERRTYP= 00010.6 EVNTBE= 0.00200 EVNTHD= 000200. EVNTKT= 0.00.20.3 EVNTPE= 0.0.0.202 EVNTRE= 0.00201 FATERR= 1000.00 IHRDCNT= 00.0044 IHRDPAS= 0.00050 ICONT = 000036 ICOUNT= 0000.40 IDNUM = 000122 0.0.0.100 IE INDPAR= 0.0.0.0.40. INHDRP=' 0.400.00 INHEPR= 0.20.0.0.0 INHREL= 0.01000 INHRRE= 000.40.0. INIT 0.0.0.0.30. INTR 000.120. IOMOD 10.0.0.0.0 IOMODP= 10.200.0. IOMODR= 1120.0.0 IOMODX= 110.00.0. 035060. JACK KIPARo.= 172340. KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350. KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRo.= 17230.0 KIPDR1= 17230.2 1\1 PDR2= 172304 KIPDR3= 17230.6 KIPDR4= 172310 KIPDR5::: 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 0.0.00.40 KTPRES= 0.00400 KTSTAT= 0.00020. KTXTND= 0.400.00. LF 0.00.0.12 LPSTAT= 0.0.0001 MAPSTA= 0.00200. 0.76600. MED MEMPAS= 0.40000 MODEXH= 004000 20-SEP-78 MODHOL= MODSEl= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL=: MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSM8= MSGSMH= MSGSMS=: MSGSTD= MSGSYS= MSGVEC=: NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA== PASCNT= PDPLSI== PDP6C PDP70 PRBTOD PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRO. PR4 PR5 PR6 PR7 PS PSW RANNUM:: RBUFEA= RBUFPA= 18:24 PAGE ::20. 0.020.0.0. 001000 000010. 000011 000005 000.0.17 17'1777 00.0013 00000.4 0.00.022 000007 00.00.21 177775 000002 177776 000001 00.000.6 0.0.00.0.3 00.00.15 0.0.0014 000016 00.000.0. 00.0012 000020. 0.0.100.0 000020. 000.00.2 0.0.00.00. 0.240.20. 0.0.0010. 0.0200.0 0.00100. 00.0034 0.2000.0 0.0400.0 0.1000.0. Oo.OOCCRG 0.0000.0. 00.0.040 00020..0. 0.0.0240 00030.0 0.00340. 00000.0. 0.0020.0. 000240. 0.0.030.0. 000.340. 177776 177776 00.0054 0.0.0.130. 0.00126 SEQ 0.827 RBUFSZ= 0.0.0.132 RBUFVA= 00.0'124 RDSERV= 0.00'10.1 RDWHMI= 0.00022 RELERR= 00.0020 RElMOD= 0.20.000. REL TIM= 0.10000 RES1 0.0.00.56 0.00.060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 0.0.0112 RUBOUT= 000177 RUNMOD= 10.0000. R5VALU= 0.01740. 0.75464 SAM SBADR = 0.0.0.102 SBKMOD= 0.0.000.0 SBKSEL= 0.10.000 SC.ADR= 0.0.0.00.6 SC.ALC= 0.00014 SC.APC= 00.0016 SC.CKL= 0.0.000.2 SC.CKP= 0.0000.4 SC.CLO= 0.00000. SC.HLD= 0.0.0010 SC.SCA= 0.0.00.12 SENDLS:.: 177777 SOFCNT= 000042 SOFPAS= 0.00046 SPACE = 0.00040. SPOINT= COOC32 SPVALU= 002200 SRC 177572 :::: 17'1574 SR1 SR2 177576 172516 SR3 STAT = 0.000.26 STATBI= 0.64757 STAT1 = 00.0027 SUSPND= 0.0.000'1 SVRO 0.000.62 0.000.64 SVR1 0.00.066 SVR2 0000.70. SVR3 000072 SVR4 0.0.00.74 SVR5 SVR6 000076 SYSCNT= 0000.52 SYSERR= 000.10.0. TMPIO = 0.00.002 TQOVi: = 0000.02 UIPARO= 177640 PRBTOD PROCESS THE IBTOD 1 MACRO ,IN OPTION MODULES SYMBOL TABLE 28-JUL-78 09:25 PRBTOD.MAC UIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPORO= UIPDR1= UIPDR2= UIP,)R3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= \<JBSTAT= ABS. WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WOlO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAO= 000401 $F$BLA= 000170 $F$CAS= 000150 177642 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 000000 000050 000 001 a ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:PRBTOD,DSKZ:PRBTOD=SPMAC/ML,EQUATE,PRBTOD RUN-TIME: 11 1 .3 SECONDS RUN-TIME RATIO: 33/13=2.5 CORE USED: 14K (27 PAGES) MACY11 30A(1052} $F$DEC= 000220 $F$OO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO - 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 20-SEP-78 18:24 $F$.YES= 000402 $IFLEV= 177777 $ LOCT A=: 177777 $LSTIN=: 000001 $ LSTf A= 000001 $NESTL= 177777 $NSKO -- 000300 $SAVLE= 177777 $TAGLE= 177777 $TAGNU:: 050002 $TEMP = 000300 $$ARGC:: 000002 $$BYTE:: 000000 $$CASE= 000000 $$OST - 000000 $$ELOC= 000000 $$ERFL= 000000 PAGE ,20-1 SEQ 0828 $$FLAG= 000000 $$FROM= 000000 $$LOC = 000000 $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000002 $$$TAG= 050000 000050R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 563 566 638 18:25 TABLE OF CONTENTS COMMON EQuATE MODULE COMMON DEFINITIONS & REFERENCES 000000' .PRINT PREVT (CODE) ;SPMAC: VERSION 1.1 SEQ 0829 PREVT (PROCESS EVENT MODULE) PREVT.MAC 28-JUL-78 09:25 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 MACV11 30A(1052) 20-SEP-78 18:25 COMMON EQUATE MODULE PAGE 19 SEQ 0830 .TITLE PREVT (PROCESS EVENT MODULE) .IDENT IVO.O/ ;++ MODULE NAME: PREVT FUNCTIONAL DESCRIPTION: THIS MODULE DISPATCHES CONTROL TO VARIOUS EVENT HANDLING ROUTINES. THE ADDRESS OF A DATA TABLE IS PASSED TO THIS MODULE. THE EVENT CODE IS EXTRACTED FROM THE TABLE AND AN OFFSET IS GENERATED. THIS OFFSET IS USED TO FORM ADDRESS IN THE DISPATCH TABLE TO SEND CONTROL TO THE PROPER EVENT HANDLING ROUTINE. NOTE: IF EVENT CODE IS IZERO', THE STACK IS POPPED AND CONTROL GOES BACK TO CALLER. INPUTS: ADDRESS OF DATA TABLE IMPLICIT INPUTS: EVENT CODE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: IT CALLS THE ACTUAL EVENT HANDLING ROUTINE THROUGH A POINTER AND THE FORMAT IS: CALL PTR IN <DTADDR> WHERE DTADDR = DATA TABLE ADDRESS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PREVT IN <DTADR> WHERE DTADR = DATA TABLE ADDRESS VERSION: 0.0 EDIT ;-- DATE BY REASON PREVT (PROCESS EVENT MODULE) PREVT.MAC 28-JUL-78 09:25 563 564 565 566 ( 1) 567 568 569 570 MACY11 30A(1052) 20-SEP-78 18:25 PAGE 19-1 COMMON DEFINITIONS & REFERENCES .SBTTL COMMON DEFINITIONS & REFERENCES 000000 1 000000 1 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 1 ;**************** , ;REFERENCED BY OTHER MODULES: 571 572 573 574 575 576 577 ; ;MODULE ENTRY POINT .GLOBL PREVT ;*************~** GLOBAL REFERENCES 578 579 580 582 583 584 585 586 587 588 589 59C 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 ;ENDIT HANDLER ;END HANDLER ;HRDER HANDLER ;DATER HANDLER ;MSG HANDLER ;BREAK HANDLER iSOFER HANDLER ;MSGN HANDLEFI ; GI,oJBUFF HANDLER iGETPA HANDLER ;DATACK HANDLER ;CDATA HANDLER ;MAP22 HANDLER ; MSGS HAND LEF~ ;RAND TRAP HANDLER ;MEMORY PARITY ERROR HANDLER ;MEMORY MGMT VIOL. HANDLER iTIMEOUT,ILLEGAL INSTR. ETC . ;OCTAL-TO-DECIMAL EVENT ;BIN-TO-DEClMAL EVENT .GLOBL PENDIT .GLOBL PEND .GLOBL PRHARD .GL08L PDATER .GLOBL PRMSG .GLOBL PBREAK .GLOBL PRSOFT .GLOBL PRMSGN .GLOBL PRGWB .GLOBL PGETPA .GLOBL PDATCK .GLOBL PCDATA .GLOBL PMAP22 .GLOBL PRMSGS .GLOBL PRRAND .GLOBL PARERR .GL08L KTERR . GLOBL BUSERR .GLOBL PROTOA .GLOBL PRBTOD 581 ;**************** LOCAL STORAGE: DISPATCH TABLE FOR SOFT-TRAP EVENTS 000000 1 000000 1 000002 1 000004 1 000006 1 000010 1 000012 1 000014 1 000016 1 000020' 000000 OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG PR.TRPTBL: .WORD PRMSG PRMSGS PRMSGN PDATER PRHARD PRSOFT PBREAK PEND 0 ;ADDRESS OF EVENT HANDLER EXIT IS ZERO - DOES NOT NEED A ROUTINE SEQ 0831 PREVT (PROCESS EVENT MODULE) 28-JUL-78 09:25 PREVT.MAC 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 000022' 000024' 000026' 000030' 000032' 000034' 000036' 000040' 000042' MACY'1 30A(1052) 20-SEP-78 18:25 PAGE 19-2 COMMON DEFINITIONS & REFERENCES PDATCK PCDATA PENDIT PRGWB PGETPA PMAP22 PRRAND PROTOA PRBiOD OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG OOOOOOG ;**************** ; DISPATCH TABLE FOR HARD TRAPS & MISC. EVENTS , 000044' 000044' 000046' 000050' 000052' OOOOOOG OOOOOOG OOOOOOG OOOOOOG PR.NTRPTBL: BUSERR BUS ERR PARERR KTERR ;ADDRESS OF EVENT HANDLER SEQ 0832 PREVT (PROCESS EVENT MODULE) 28-JUL-78 09:25 PREVT.MAC 638 639 640 641 (2 ) 642 643 644 645 646 647 648 649 (2 ) (3) 650 (4 ) 651 (4) 652 (6) (9) 653 654 655 656 (6) 657 (7 ) 658 659 (6 ) (9) 660 661 662 663 664 665 666 (6) 667 (4 ) (3 ) 668 669 670 671 672 673 674 (6) 675 (4) 676 (3) 18:25 20-·SEP-78 MACY 11 30A(1052) PREVT (CODE) PAGE 19-3 SEQ 0833 .SBTTL PREVT (CODE) ROUTINE PREVT <DTBl> 000054' 000054' PFI EVT; ;+ ; SAVE REGISTERS,FETCH DTABLE ADDRESS & EVENT CODE. ; IF EVENT CODE IS 0, RETURN. ; ELSE CHECK IF EVENT CODE IS A HARDWARE-TRAP TYPE. ;- 000054' 000054' 000056' 000060' 000060' 000064' 000064' 000070' 000070' 000072' PUSH RO,R1 010046 010146 .- DTI3L(R5) LET R1 . - DT.EVNT(RO) MOV MOV RO,-(SP) R1,-(SP) MOV DTBL(R~»,RO MOV DT.EVNT(RO),R1 TST SEQ R1 50002$ SIC #177700,R1 ASL R1 CMP BLT DT.EVNT(RO),#EVN 50003$ ADD #PR.NTRPTSL,R1 BR 50004$ ADD #PR.TRPTSL,R1 MOV R5,-(SP) LET RO 016500 000000 016001 000000 IF R1 NE #0 THEN 005701 001421 ;+ ; DEVELOP OFFSET INTO TABLE j- 000074 1 000074 1 042701 000100' 000100' 006301 000102' 000102 1 026027 000110' 002403 LET Ii 1 . - R1 CLR.BY #177700 LET R1 . - R1 SHIFT 1 177700 IF DT.EVNT(RO) GE #EVNTHD THEN 000000 000200 ;+ ; IT IS A HARDWARE-TRAP EVENT. ; DEVELOP ADDRESS. , '- 000112' 000112' 062701 000116' 000116 1 000402 000120' LET R1 . - R1 + #PR.NTRPTBL 000044' ELSE 50003$: ;+ ; IT IS A SOFT'lJARE TRAP EVENT. ; FORM AN ADDRESS , '- 000120' 000120' 062701 000124' 000124' 000124' 000124' 010546 LET R1 000000' .- R1 + #PR.TRPTSL ENDIF 50004$: CALL ~(R1) IN <RO> PREVT (PROCESS EVENT MODULE) 28-JUL-78 09:25 PREVT.MAC (4) (3) (3) 677 678 (4) 679 680 681 682 683 (2 ) (3 ) 684 (3) (3) (:2) 685 000126' 010045 000130' 004771 000134' 012605 000136' 000136' 20'-SEP-78 MACV 11 30A.( 1052) PREVT (CODE) 18:25 PAGE 19-4 SEQ 0834 000000 MOV ROf·~(R!» JSR PC,@l(Rl) MOV (SP)+,1~5 MCJV MOV (SP)+,R1 (SP)+,RO RTS PC ENDIF 50002$: ;+ ; RESTORE REGISTERS AND R~TURN , 000136' 000136' 012601 000140' 012600 000142' 000142' 000142' 000142' 000207 000001 POP R1,RO ENDRTN 50000$: 50001$: .END I PREVT (PROCESS EVENT MODULE) 28-JUL-78 09:25 PREVT.MAC 0'00102 ACSR ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEM8= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 0001,10 AWAS BITO 000001 SITOO = 000001 B1 T01 000002 B1T02 000004 BIT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 = 000400 BIT09 001000 000002 BIT 1 BIT10 002000 BIT11 004000 BIT12 010000 BIT13 020000 BIT14 = 040000 1'00000 BIT15 BIT2 000004 000010 BIT3 000020 BIT4 BITS 000040 BIT6 000100 BIT7 000200 BITS 000400 BIT9 oe1000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BUSERR= ****** G CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA 000100 20--SEP-78 MACY 11 30A(1052) SYMBOL TABLE 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 D1AGMC= 000000 DROPMO= 100000 DSEVNT= 000014 000000 DTBL DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI:::, 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT. SP :: 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= UOOOSO DT. WH L= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 18:25 ENDLST= 000000 [OPBIT:: 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 IE 000100 INDPAR= 000040 I NHDR P= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 00012q INTR IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPARS= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERR = ****,..'" G KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 LF 000012 LPSTAT= 000001 MAPSTA= 000200 MED 076600 MEMPAS= 040000 PAGE 20 SEQ,OB35 MODEXH= 004000 MODHOL= 002000 MODSEL= 001000 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRp::: 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= ,000014 MSGSMS= 000016 MSGSTD= 000000 MSGSY5=: 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP:: 000020 NOAPTY:: 000002 000000 NULL 024020 OWEN PAERR 000010 PARERR= ****** G PARPRE= 002000 PARSTA:: 000100 PASCNT:: 000034 PBREAK:: ***-1:** G PCDATA= ****** G PDATCK= ****** G POATER:: ****** G PDPLSI==, 020000 PDP60 - 004000 PDP70 .- 010000 PEND ****** G PENDIT;: *** ** >I< G PGETPA:: ****** G PMAP22:::: **:l<*** G PRBTOD:= ****** G 000054RG PRE=VT PRGWB ,- ****** G PRHARD= ****** G PRIO 000000 PRI1 000040 PRI4 000200 PRI5 PRI6 PRI7 PRMSG PR:v1SGN= PRMSGS= PROrOA= PRRAND= PRSOFT= PR. ~JTR PR.TRP PRO PR4 PRS PR6 PR7 000240 000300 000340 ****** G ****** G ****** G ****** G ****** G ****** G 000044f~ OOOOOOH 000000 000200 Oq0240 000300 000340 PS 177776 PSt~ 177'776 RANNUM= 000054 RSUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI = 000022 RELERR= 000020 RELIVlOD= 020000 REL TIM= 010000 000056 RESl RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 0001'77 RUNMOD= 100000 H5VALU= 001740 SAM 075464 SBADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC", 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPO!NT= 000032 MACY11 30A(1052) 20-SEP-78 SYMBOL TABLE PREVT (PROCESS EVENT MODULE) PREVT.MAC 28-JUL-78 09:25 UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= SPVALU= 002200 SRO 177572 SRl 177574 SR2 = 177576 SR3 172516 STAT 000026 STATBI= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 SVR1 000064 SVR2 000066 SVR3 000070 SVR4 000072 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 ABS. 000000 000144 ~"'DFR WDTO 177644 177646 177650 177652 177654 177656 177600 17760:2 177604 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 00011€ 000114 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 18:25 vHINRE= 000352 vHWHMI= 000222 XFLAG= 000005 )(OFF 000023 )<ON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 PAGE 20-1 SEQ 0936 000300 000140 000330 000404 000130 $ F$vJHI = 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO :;: 000001 $ I SK 1 '" 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO :;: 000300 $NSK1 = 000 110 $NSK2 = 000110 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050005 $TEMP 000300 $TSKO = 050002 $F$RTN= $F$SEL= $F$THE= $F$TRU= $F$UNT= 0 $TSK1 = 050004 $$ARGC= 000002 $$BYT E= 000403 $$CASE= OOCOOO $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$ F LAG= 000001 $$FROM= 000000 $$LOC = 000~110H $$LOCN= 000000 177777 $$REG $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000001 $$$TAG= 050000 000 °1441~ = , 0 DSKZ:PREVT,DSKZ:PREVT=SPMAC/ML,EQUATE,PREVT RUN-TIME: 12 2 .4 SECONDS RUN-TIME RATIO: 39/15=2.5 14K (27 PAGES) CORE USED: .MAIN. MACV11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16~13 3 554 556 586 18:25 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINTIONS AND REFERENCES 000000' .PRINT PRGWB ROUTINE ;SPMAC: VERSION 1.1 SEQ OB37 PRGWB - PROCESS GWBUF MACY11 30A(1052) 20-SEP-78 18:~5 PAGE 19 PRGWB.MAC 28-JUL-78 09:25 COMMON EQUATE MODULE 50B 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 SEQ 0838 .TITLE PRGWB - PROCESS GW9UF .IDENT IVO.O/ ;++ MODULI:: NAME: PRGWB FUNCTIONAL DESCRIPTION: PROCESSES GWBUF CALLS FROM OPTION MODULES. DETERMINES AND PASSES TO A REQUESTING OPTION MODULE A BUFFER SIZE AND STARTING ADDRESS. INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: DT.ADDR"DT.SSIZ,DT.ESIZ,DT.PC,DT.STO,DT.WBUF, DT.WLLMT,DT.WHLMT,DT.OFFSET OUTPUTS: NONE IMPLICIT OUTPUTS: DT.WBUF PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: SAVREG RESREG jSAVE REGISTERS ;RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE: CALLING SEQUENCE: CALL PRGWB IN <A> A=ADDRESS OF DATA TABLE VERSION: 0.0 EDIT ;-- BY DATE f;!EASON PRGWB - PROCESS GWBUF MACY11 30A(1C52) 20-SEP-78 18:25 PAGE 19-1 PRGWB.MAC 2B-JUL-78 09:25 COMMON DEFINTIONS AND REFERENCES 554 555 556 (1) 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 000000 1 000000 1 000001 000001 SEQ 0839 .SBTTL COMMON DEFINTIONS AND REFERENCES .MCALL STRUcr STRUCT .PRINT ;SPMAC: VERSION 1 • 1 $LSTIN=1 $LSTTAG=1 ; ;*************** ; ; REFERENCED BY OTHER MODULES: ; .GL08L PRGWB ; ;MODULE ENTRY POINT ;**************** ; ; GL08AL REFERENCES ; .GLOBL SAVREG .GLOBL RESREG ;SAVE REGISTERS ;RESTORE REGISTERS ;**************** ; ; LOCAL STORAGE , 000000 1 000000 000002 1 000000 PG.AVAIL: PG.SIZE: .WORD 0 .WORD 0 ;**************** ;AVAILABLE BUFFER SIZE - PAR FORMAT ;ACTUAL WRITE BUFFER SIZE - PAR FORMAT PRGWB - PROCESS GWBUF MACY11 30A(1052) 20-SEP-78 18:25 PRGWB.MAC 28-JUL-78 09:25 PRGWB ROUTINE 586 587 (2) 588 589 590 591 592 593 (3) 594 595 596 597 598 599 600 (4) 601 602 603 604 605 606 607 (4) 608 609 610 611 612 613 (6) (9) 621 (4) (6) 622 (4) ( 3) 623 (4) (6) 624 (4) 625 SEQ 0840 .SBTTL PRGWB ROUTINE ROUTINE PRGWS <TABL> 000004' 000004' PI~GWB: ;+ ; SAVE REGISTERS ;000004' 000004' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV TABL(R5),RO MOV @DT.PC(RO),R1 ;+ ; SET RO TO THE START OF THE DATA TABLE ;000010' 000010' 016500 LET RO != TABL(R5} 000000 ;+ ; GET THE OPTIONS MODULE'S HEADER ADDRESS ;- 000014' 000014' 017001 LET R1 := @DT.PC(RO) 000002 ;+ CALCULATE THE LARGEST AVAILABLE BUFFER SIZE. IF THE BUFFER ADDRESS POINTER IS POINTING BELOW THE MOVABLE PORTION OF THE EXERCISER, THEN THE AVAILABLE BUFFER SIZE IS EVERYTHING FROM THE CURRENT POINTER POSITION UP TO THE BASE ADDRESS OF THE MOVA3LE PORTION OF THE EXERCISER. IF THE BUFFER ADDRESS POINTER IS ABOVE THE TOP OF THE EXERCISER, THEN THE AVAILABLE BUFFER SIZE IS EVERYTHING FROM THE CURRENT POINTER POSI7ION UP TO THE HIGH BUFFER LIMIT. 6~4 615 616 617 618 619 620 PAGE 19-2 , 000020' 000020' 000026' 000030' 000030' 000036' 000044' 000044' 000046' 000046' 000046' 000054' 000062' 000062' IF DT.WBUF(RO) LO DT.ADDR(RO) THEN 026060 103007 000050 000042 016067 166067 000042 000050 177742 177734 DT.WBUF(RO),DT.A 50002$ MOV SUB DT.ADDR(RO),PG.A DT.IIJ8UF(RO) ,PG.A BR 50003$ IV!OV SUB DT . IIJH LMT ( RO) I PG. DT.WBUF(RC) ,PG.A LET PG.AVAIL := DT.ADDR(RO) - DT.WBUF(RO) ELSE 000406 LET PG.AVA.l.L 016067 166067 CMP BHIS 000054 000050 . - DT.WHLMT(RO) - DT.WBUF(RO) 50002$: 177724 177716 ENDIF 50003$: 626 627 628 ;+ ; GET THE REQUESTED BUFFER SIZE FROM THE OPTION MODULE, CONVERT IT TO PRGWB - PROCESS GWBUF MACY11 30A(1052} 20-SEP-78 18:25 PRGWB.MAC 28-JUL-78 09:25 PRGWB ROUTINE 629 630 631 632 633 634 635 636 (4) (7) (7) (7) (7) (7) (7) 637 (6) 638 (7) 639 (6) (9) 640 (4) 641 (4) (3) 642 (4) 643 (4) 644 (4) (7) (7) (7) (7) (7) (7) 645 (7) 646 (6) 647 648 649 650 651 652 653 6SL1. (4) (6) 655 (4) 656 PAGE 19-3 SEQ 0641 PAR FORMAT, DOUBLE IT TO CHANGE IT FROM A WORD COUNT TO A M~MORY AREA SIZE, AND COMPARE IT TO THE AVAILABLE BUFFER SIZE. IF THE REQUESTED SIZE IS LARGER THAN THAT AVAILABLE, LET THE ACTUAL BUFFER SIZE EQUAL THE AVAILABLE SIZE. OTHERWISE, LET THE ACTUAL SIZE BE THE FULL REQUESTED SIZE. THEN PASS THE ACTUAL SIZE TO THE OPTION MODULE, AFTER CONVERTING IT TO A PHYSICAL WORD COUNT FROM PAR FORMAT. 000062 1 000062' 000066' 000070' 000072' 000074' 000076' 000100' 000102' 000102' 000106' 000106' 000110' 000110' 000114 1 000116' 000116' 000124' 000124' 000126' 000126' 000126' 000132' 000132' 000132' 000132' 000140' 000144' 000150' 000154' 000160' 000164' 000170' 000170' 000174' 000174' LET R2 .- WBUFRQ(Rl) SHIFT #-6 016102 006202 006202 006202 006202 006202 006202 000140 042702 176000 MOV ASR ASR ASR ASR ASR ASR WBUFRQ(R1),R2 R2 R2 R2 R2 R2 R2 BIC #176000,R2 ASL R2 CMP BLOS R2,PG.AVAIL 50004$ MOV PG.AVAIl,PG.SIZE BR 50005$ MOV R2,PG.SIZE MOV ASL ASL ASL ASL ASL ASL PG.SIZE,WBUFSZ(R WBUFSZ(Rl) WBUFSZ(R1) WBUFSZ(Rl) WBUFSZ(R1 ) WBUFSZ(R1) WBUFSZ(Rl) ASR WBUFSZ(R1) BIC #100000,WBUFSZ(R LET R2 .- R2 CLR.BY #176000 LET R2 '- R2 SHIFT #+1 006302 IF R2 HI PG.AVAIL THEN 020267 101404 177664 016767 177656 LET PG.SIZE '- PG.AVAIL 177656 ELSE 000402 50004$: LET PG.SIZE '- R2 010267 177650 ENDIF 50005$: LET WBUFSZ(Rl) .- PG.SIZE SHIFT #+6 016761 006361 006361 006361 006361 006361 006361 177644 000142 000142 000142 000142 00014'00014:2 006261 000142 042761 100000 000142 LET WBUFSZ(R1) .- WBUFSZ(R1) SHIFT #-1 LET WBUFSZ(R1) '- WBUFSZ(R1) CLR.BY #100000 000142 ;+ ; CONVERT THE BUFFER ADDRESS POINTER FROM PAR FORMAT TO AN 18-BIT ; VIRTUAL ADDRESS, AND PASS IT TO THE OPTION MODULE. 000202' 000202' 016002 000206 1 166002 000212' 0002.12' 010:203 000214' LET R2 0- DT.WBUF(RO) - DT.OFFSET(RO) 000050 000070 MOV SUB DT.WBUF(RO),R2 DT.OFFSET(RO),R2 rv'iOV R2, R3 LET R3 .- R2. LET R2 .- R2 SHIFT #+6 PRGWB - PROCESS GWBUF MACY11 30A(1C52) 20-SEP-78 18:25 PRGWB.MAC 28-JUL-78 09:25 PRGWB ROUTINE (7) (7) (7) (7) (7) (7) 657 (6) 653 (7) (7) 659 (6) 660 (4) 661 (4) 662 663 664 665 666 667 668 669 (6) (9) 670 671 672 673 674 675 676 677 678 679 (6) (7) 680 681 682 683 684 685 686 687 688 689 (4) (6) 690 (6) (9) 691 (4) 000214 1 000216 1 000220 1 000222 1 000224 1 000226 1 000230 1 000230 1 000232 1 000232 1 000234 1 000236 1 000236 1 000242 1 000242' 000246' 000246' PAGE 19-4 SEQ 0842 006302 006302 006302 006302 006302 006302 ASL ASL ASL ASL ASL fl.,SL R2 R2 R2 R2 R2 SWAB R3 ASL ASL R3 R3 BIC #'17771'7, R3 MOV R2,WBUFPA(R1) MOV R3,I,oJBUFEA(R1 ) R2 LET R3 .- SWAP R3 000303 LET R3 '- R3 SHIFT #+2 006303 006303 LET R3 '- R3 CLR.BY #177717 042703 010261 010361 177717 LET WBUFPA(R1) '- R2 LET WBUFEA(R1) '- R3 000134 000136 ;+ ; IF WRITE BUFFER ROTATION IS ENABLED, FIND A NEW VALUE FOR THE WRITE ; BUFFER ADDRESS POINTER. OTHERWISE, JUST RETURN. ;- 000252 1 000252' 032760 000260' 001470 IF #WBSTAT SETIN DT.STO(RO) THEN 000040 BIT BEQ 000010 #WBSTAT,DT.STO(R 50006$ ;+ , LET THE NEW BUFFER ADDPESS POINTER EQUAL THE CURRENT POINTER PLUS ; THE SIZE OF THE BUFFER WE JUST PASSED TO THE OPTION MODULE. ; ADD ONE TO THIS VALUE TO GET THE NEXT 100 BYTE BLOCK, TO ; ASSURE THAT THERE IS NO OVERLAPPING OF WRITE BUFFERS. 000262' 000262' 066760 000270' 005260 LET DT.WBUF(RO) := DT.WBUF(RO) + PG.SIZE + #1 177514 000050 ADD INC 000050 P G • S I Z E , DT • loJ BUF ( DT.WBUF(RO) ;+ ; IF THIS NEW BUFFER STARTING ADDRESS IS GREATER THAN OR EQUAL TO THE ; HIGH BUFFER LIMIT MINUS 1/2 K (THE 1/2 K IS TO ASSURE THAT WE HAVE A WRITE ; BUFFER AREA OF AT LEAST THAT SIZE), THEN MOVE THE BUFFER ADDRESS POINTER TO THE ; LOW BUFFER LIMIT. ;- 000274 1 000274' 000300' 000304 1 000304 1 000310 1 000312 1 000312' LET R3 := DT.WHLMT(RO) - #20 016003 162703 000054 000020 026003 103403 000050 016060 000052 MOV SUB DT.WHLMT(RO),R3 #20,R3 CMP BLO DT.W8UF(RO),R3 50007$ MOV DT.WLLMT(RO),DT. IF DT.WBUF(RO) HIS R3 THEN LET DT .WBUF(RO) 000050 '-. DT .WLLMT(RO) PRGWB - PROCESS GWBUF MACY11 30A(1052) 20-SEP-78 18:25 PRGWB.MAC 28-JUL-78 09:25 PRGWB ROUTINE 692 (4) 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 (4) ( 7) (7) ( 7) (7) (7 ) (7) 711 (6) 712 (6) 713 (6) ( 7) 714 715 (4) (6) 716 717 (6) (9) (6) (9) 718 (4 ) (6) 719 (6) (9) (6) (9 ) 720 (4) 721 (4) SEQ 0843 ENDIF 000320' 000320' 50007$: ;+ ,' - NOW CHECK TO SEE IF THE POINTER HAS BEEN PLACED WITHIN THE CURRENT POSITION OF THE EXERCISER. TO DO THIS, WE FIRST CAlCULATE'THE CURRENT POSITION OF THE TOP OF THE EXERCISER (WITHIN 100 BYTES, BECAUSE WE ARE WORKING WITH PAR-FORMATTED WORDS). THEN SEE IF THE CONTENTS OF THE POINTER IS LESS THAN THIS VALUE BUT GREATER THAN THE BASE ADDRESS OF THE MOVABLE PORTION OF THE EXERCISER MINUS 1/2 K. IF IT IS NOT, THEN WE HAVE A GOOD POINTER VALUE. BUT IF IT IS, WE MUST THEN CHECK TO SEE IF THE TOP OF THE EXERCISER IS WITHIN 1/2 K OF THE HIGH BUFFER lIMIT. IF YES, AND IF THE MOVABLE PORTION OF THE EXERCISER IS NOT IN LOWEST MEMORY, MOVE THE BUFFER ADDRESS POINTER DOWN TO THE lOW BUFFER LIMIT. OTHERWISE, MOVE THE POINTER TO THE TOP OF THE EXERCISER. LET R2 '- DT.ESIZ(RO) SHIFT #-6 000320' 000320 " 016002 000324' 006202 000326' 006202 000330' 006202 000332' 006202 000334' 006202 000336' 006202 000340' 000340' 042702 000344' 000344' 005202 00034G' 000346' 066002 000352' 162702 000042 000200 000356' 000356' 016003 000362' 162703 000042 000020 000366' 000366' 000372' 000374' 000400' 000402' 000402' 000406' 000412' 000412' 000414' 000416' 000424' 000426' 000426' 000434' 000434' i9~5 PAGE 000044 MOV ASR ASR ASR ASR ASR ASR DT.ESIZ(RO),R2 R2 R2 R2 R2 R2 R2 SIC #176000,R2 INC R2 ADD SUB Dl.ADDR(RO),R2 #200,R2 MOV SUB DT.ADDR(RO),R3 #20,R3 CMP BHI CMP BlO DT .WBUF(RO) ,R2 50010$ DT.WBUF(RO),R3 50010$ MOV SUB DT. WHLMT(RO) ,R4 #20,R4 CMP BlO CMP BlOS R2,R4 50011$ DT.ADDR(RO).#200 50011$ MOV DT.WLLMT(RO),DT. 8R 50012$ LET R2 '- R2 CLR.BY #176000 176000 LET R2 "- R2 + #1 LET R2 .- R2 + DT.ADDR(RO) - #200 LET R3 '- DT.ADDR(RO) - #20 IF DT.WBUF(RO) lOS R2 AND DT.WBUF(RO) HIS R3 THEN 026002 101023 026003 103420 000050 016004 162704 000054 000020 000050 LET R4 := DT.WHlMT(RO) - #20 020204 103410 026027 101404 016060 IF R2 HIS R4 AND DT.ADDR(RO) HI #200 THEN 000042 000200 000052 000050 LET DT.WBUF(RO) .- DT.WllMT(RO) ELSE 000402 MACY11 30A(1052) 20-SF.P-78 18:25 PRGWB - PROCESS GW8UF PRGWB ROUTINE PRGWB.MAC 28-JU L-78 09:25 (3) 722 (4 ) 723 (4) 724 (4) 725 726 (4) 727 728 729 730 731 732 733 734 (6) 735 736 737 738 739 740 741 (3) 742 743 744 (3) (3 ) (2) 745 000436' 000436 1 000436 1 010260 000442' 000442' 000442' 000442 1 PAGE 19-6 SEQ 0844 LET DT.WBUF(RO) .- R2 5()011$! MOV 000050 R2,DT .1NBUF(RO} ENDIF 510012$: ENDIF 50010$: ENDIF 000442' 000442 1 50006$: ;+ ; UPDATE DT.PC TO REFLECT THE ADDRESS TO RETURN TO (1. E. , THE ADDRESS ; AFTER THE GWBUF TRAP CALL. ;- 000442' 000442' 062760 LET DT.PC(RO) := DT.PC(RO) + #2 000002 000002 ADD #2,DT.PC(RO} JSR PC,RESREG RTS PC ;+ ; RESTORE REGISTERS AND RETURN ;- 000450' 000450' 004767 000454' 000454' 000454' 000454' 000207 000001 CALL RESREG OOOOOOG ENDRTN 50000$: 50001$: .END 20-SEP-78 18:25 MACY11 .:sOA(1052) PRGWB - PROCESS GWBUF SYMBOL TABLE 28-JUL-7B 09:25 PRG\oJB. MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR = 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWA5 000110 000001 I3ITO B1TOO 000001 B1T01 000002 B1T02 000004 8IT03 000010 BIT04 000020 BIT05 000040 B1T06 000100 BIT07 000200 BIT08 000400 BIT09 001000 8IT1 000002 B1T10 002000 BIT11 004000 BIT12 010000 BIT13 020000 81T14 040000 BIT15 100000 BIT2 000004 8113 000010 BIT4 000020 BITS 000040 BIT6 000100 B1T7 000200 BIT8 000400 8IT9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSL5H= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF = 000001 CR 000015 000100 CSRA CSRC 000102 CTRLC :: 000003 CTRlO = 000017 CTRlU = 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BlS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN:: 000000 DT.EXS= 000060 D1.FCH= 000037 DT.FCN::: OQ0036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT. KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REl= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.5P = 000006 DT.S5I= 000046 DT.STO= 000010 DT.511= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLSi= 000000 EOPBIT= 000001 PAGE 20 E.RRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000035 lCOUNT= 000040 IDNUM= 000122 IE = 000100 INDPAR= 000040 INHDRP= 040000 INHEPR:;::: 020000 INHREL= 00 'i 000 INHRRE= 000400 000030 XNIT INTR 000120 rOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 dACK 035060 ~<1PARO= 172340 ~(IPAR1= 172342 ~<I PAR2= 172344 f(IPAR3= 172346 f<I PAR4= 172350 f<I PAR5= 172352 1<1 PARe= 172354 I(I PAR7= 172356 1(1 PDRO= 172300 I(IPDR1= 172302 1<1 PDR2= 1723(,4 I( I PDR3= " 72306 I( I PDR4= 172310 I( I PDR5= 172312 I{ I PDR6= 172314 1-<1 PDR7= 172316 I{TERRO= OOOOLlO KTPRES= 000400 !{TSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 IVlAPSTA= 000200 IVlED 076600 IVlEMPAS= 040000 MODEXH= 004000 IVIODHOL= 002000 IVIODSEL= 001000 SEQ 0845 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR== 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 17'/775 MSGPOP= 000002 rIISGPRM= 177776 MSGRES= 000001, MSGSFT= 000006 MSGSKE= 000003 MSGSM8= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL 024020 OWEN PAERR 000010 PARPRE= 002000 PARSTA:.: 00,:)100 PASCNT:: 000034 PDPLSI= 020000 PDP60 = 004000 PDP70 = 010000 PG.AVA OOOOOOR PG.S1Z 00OO02R 00OOO4RG PRGWB PRIO 000000 000040 P RI 1 000200 PRI4 000240 PR15 000300 PR16 PRI7 000340 PRO 000000 PR4 000200 000240 PR5 PR6 000300 000340 PR7 1777713 PS PSW 177776 RANNUM= 000054 RBUFEA= 000130 RBUFPA=: 000126 RBUFSZ= 000132 RBUFVA= 000124 ROSERV= 000101 RDWHMI= 000022 RELERR::.: 000020 RELMOD= 020000 REL TIM:: 010000 RESREG= ****** G 000056 RESl RES2 000060 RICHAR= 031060 RPTDAT:: 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 0017'40 SAM 075464 s/\Vr~EG= *** ~:* * G SBA8R = 000102 SBKMOD= 00::>000 S8KSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP-= 000004 SC.CLO= 000000 SC.HLD= 000010 5C.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SFACE = 000()40 SPOINT= 00()O32 SPVAlU= 002200 1 77~)72 SRO 177574 SR1 1 77~576 SR2 172~)16 SR3 STAT 000026 STATBI= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 SVR1 000064 SVR2 000066 SV'R3 000070 SVR4 000072 000074 SVRS 000076 5VR6 SYSCNT= 000052 SYSERR:: 000100 TABL 000000 PRGWB - PROCESS GWBUF MACY11 30A(1052) 20-SEP-78 18:25 PRGWB.MAC 28-JUL-78 09:25 SYMBOL TABLE WBSTAT= 000040 \~BUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNlE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177852 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 vJASADR= 000104 . ABS. 000000 000456 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:PRGWB,DSKZ:PRGWB=SPMAC/ML,EQUATE,PRGWB RUN-TIME: 18 8 .4 SECONDS RUN-TIME RATIO: 64/27=2.3 CORE USED: 14K (27 PAGES) PAGE 20-1 $F$DO = 000340 $F$FAL:: 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$TH== 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 = SEQ 0846 $ I SK 1 = 000001 $ISK2 ::: 000001 $LOCTA= 1777'7'7 $LSTIN= 000001 $LSTTA= 000001 $NESTL=: 177777 000300 $NSKO $NSK 1 =: 000110 $NSK2 =: 000110 $NSK3 =: 000110 $SAV LE=: 177777 $TAGLE:: 177777 ST AGNU:: 050013 -:)00300 $TEMP $TSKO :: 050006 $TSK1 :: 050010 $TSK2 :: 050012 $$ARGC:: 000002 $$BYTE:: 000403 $$CASE= 000000 $$D5T ::;'000000 $$E LOC= 000il02 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $.$LOC = 000424R $SLOCN= 000000 $$REG = 177777 $$r~ETU= 000000 $':tRTN 1 = 050000 $$RTN2= 05000 'I $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000456R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 573 576 596 18:26 TABLE OF CONTENTS COMMON EQUATE MODULE PRHARD (COMMON DEFINITIONS & REFERENCES) 000000 t • PR I NT ; SPMAC: VERS I ON 1.1 PRHARD (CODE) SEQ 0847 PRHARD (PROCESS HARD ERRORS) PRHARD.MAC 28-JUL-78 09:25 MACV11 30A(1052) 20-SEP-78 18:26 COMMON EQUATE MODULE PAGE 19 508 509 .TITLE PRHARD (PROCESS HARD ERRORS) .IDENT /VO.O/ 510 511 ;++ 512 513 514 515 516 517 518 519 MODULE NAME: PRHARD FUNCTIONAL DESCRIPTION: THIS MODULE IS CALLED AS A RESULT OF A 'rlRDERR' TRAP EXECUTED BY AN OPTION MODULE. FIRST THE FOLLOWING IS DONE 520 521 522 523 524 525 526 527 528 1. THE MODULE'S HARD ERROR COUNT IS INCREMENTED. 2. ERROR MESSAGE IS QUEUED UP. IF THE ENVIRONMENT IS APT, THEN AN APT ERROR HANDLING ROUTINE IS CALLED. IF NOT UNDER APT ENVIRONMENT, THEN 1. IF BIT15 OF THE SOFTWARE SWITCH REGISTER IS SET, THE 529 MODULE IS DROPPED WITH 'MODULE DROPPED ' MESSAGE PRINTED, EVEN ON THE FIRST ERROR. 2. IF THE ERROR COUNT IS EQUAL TO OR GREATER THAN THE LIMIT, THEN 8IT14 OF THE SOFTWARE SWITCH REGISTER IS CHECKED. IF BIT14 IS SET, THE MODULE IS NOT DROPPED. 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: DT.STO,DT.CFO,DT.HMX OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: 1. DRPMOD 2. ENQTQ 3. APTHER 4. SAVREG 5. HESREG DROP A MODULE ROUTINE ENQUE AN ERROR MSG ROUTINE APT HARD ERROR ROUTINE FUNCTIONAL SIDE EFFECTS: UNDER APT ENVIRONMENT IT CAN SHUT DOWN THE EXCERCISER. CALLING SEQUENCE: CALL PRHARD IN <DT> SEQ 0848 PRHARD (PROCESS HARD ERRORS) PRHARD.MAC 28-JUL-78 09:25 564 565 566 567 568 569 570 571 MACY11 30A(1052) 20-SEP-78 18:26 COMMON EQUATE MODULE WHERE DT PAGE 19-1 SEQ 0849 = DATA TABLE ADDRESS VERSION: 0.0 EDIT ;-- DATE BY REASON PRHARD (PROCESS HARD ERRORS) PRHARD.MAC 28-JUL-78 09:25 573 574 575 576 (1) 577 578 579 580 581 582 583 MACY'1 30A(1052) 20-SEP-78 18:26 PAGE 19-2 PRHARD (COMMON DEFINITIONS & REFERENCES) .SBTTL PRHARD (COMMON DEFINITIONS & REFERENCES) 000000 1 000000 1 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=l $LSTTAG=1 ;**************** ; REFERENCED BY OTHER MODULES .GLOBL PRHARD ;MODULE ENTRY POINT 584 585 5813 587 588 589 590 591 592 593 594 ;**************** ; GLOBAL REFERENCES .GLOBL APTHER .GLOBL ENOTO' .GLOBL DRPMOD .GLOBL SAVREG .GLOBL RESRE.G HARD ERROR HANDLER UNDER APT ENQUE A MESSAGE INTO THE TYPE QUEUE 'DROP THE MODULE' ROUTINE SEQ 0850 PRHARD (PROCESS HARD ERRORS) PRHARD.MAC 28-JUL-78 09:25 596 597 598 (2) 599 600 601 602 603 604 605 (3) 606 (4) 607 (4) 608 (4) 609 610 611 612 613 (4) (6) 614 615 616 6·17 618 619 (6) 620 621 622 623 624 625 (6) 626 (6) 627 (3) (8) (7 ) (6) (5) (4) (3) (3 ) 628 629 630 631 632 633 MACY11 30A(1052) 20-SEP-78 PRHARD (CODE) 18:26 PAGE 19-3 SEQ 0851 .SBTTL PRHARD (CODE) ROUTINE PRHARD <DTA> 000000' 000000' P:RHARD: ;+ ; SAVE REGS, GET DTABLE ADDRESS AND MODULE ; HEADER ADDRESS. 000000' 000000' 000004' 000004' 000010' 000010' 000014' 000014' CALL SAVREG 004767 OOOOOOG LET RO .- DTA(R5) 016500 000000 LET R1 016001 := DT.PC(RO) 000002 LET R2 .- (R1) 011102 000016' 060016' 010103 000020' 162703 ;+ ; POINT TO TRAP PC ;LET R3 := R1 - #2 000002 JSR PC,SAVREG MOV DTA(R5),RO MOV DT.PC(RO),R1 MOV (R1),R2 MOV SUB R1,R3 #2,R3 ADD #4,R1 INC HRDCNT(R2) INC HRDPAS(R2) MOV MOV MOV MOV MOV MOV JSR MOV R5,'-(SP) R1,'-(H5) R2,'-(R5) R3,'-(R5) #MSGHRD,-(R5) RO,.-(R5) PC,ENQTQ (SP)+,R5 ;+ ; POINT R1 TO RETURN PC ;- 000024' 000024' 062701 LET R1 : = R1 + # 4 000004 ;+ ; INCREMENT MODULE'S ERROR COUNT, AND ENQUE ERROR MESSAGE. ;- 000030' 000030' 000034' 000034' 000040' 000040 ' 000042' 000044 ' 000046' 000050' 000C54' 000056' 000062' LET HRDCNT(R2) 005262 005262 010546 010145 010245 010345 012745 010045 004767 012605 000044 LET HRDPAS(R2) '- HRDCNT(R2) + #1 0- HRDPAS(R2) + #1 000050 CALL ENQTQ IN <RO,#MSGHRD,R3,R2,R1> 000007 OOOOOOG ;+ ; IF APT ENVIRONMENT, CALL APT ERROR HANDLING ROUTINE 000064' IF #APTPRE SETIN DT.CFO(RO) THEN PRHARD (PROCESS HARD ERRORS) PRHARD.MAC 28-JUL-78 09:25 (6) (9) 634 (3) (4) (3) (3) 635 (4 ) (3) 636 637 638 639 640 641 642 643 (6) (9) 644 (3) (5) (4) 000064' 000072' 000074' 000074' 000076' 000100' 000104' 000106' 000106' 000110' 000110' 000110' 000116' 000120' 000120' 000122' 000124' (3 ) .000126' (3) 000132' 645 000134' (4) 000134' (3 ) 000136' 646 647 648 649 650 000136' (6) 000136' (9 ) 000144 1 (6 ) 000146' (9) 000154' 000156' 651 000156' (3) ( 5) 000160' (4) 000162' (3) 000164' 000170' (3) 652 000172' (4) 000172' 653 000172' (4 ) 000172' 654 000172' (4 ) 000172' 655 656 657 658 659 660 032760 001406 010546 010045 004767 012605 000200 MACY11 30A(1052) 20-SEP-78 PRHARD (CODE) 18:26 PAGE 19-4 SE~ 000014 CALL APTHERR IN <RO> OOOOOOG ELSE 000431 0352 BIT SEQ #APTPRE,DT.CFO(R 50002$ MOV MOV JSR MOV RS,.-(SP) RO,-(R5) PC,APTHERR (SP)+,R5 BR 50003$ BIT BEQ #BIT15,DT.SWR(RO 50004$ MOV MOV MOV JSR MOV R5,-(SP) R2,-(R5) RO,-(R5) PC,DRPMOD (SP)+,R5 BR 50005$ 50002$: ;+ ; THE ENVIRONMENT IS NOT APT. ; CHECK SWITCH REGISTER IF THE MODULE IS TO BE DROPPED i DUE TO THIS ERROR. ', - IF #BIT15 SETIN DT.SWR(RO) THEN 032760 001407 010546 010245 010045 004767 012605 100000 000056 CALL DRPMOD IN <RO,R2> OOOOOOG ELSE 000416 50004$: + 026260 103412 032760 001006 010546 010245 010045 004767 012605 000044 000104 040000 000056 IF TOO MANY HARD ERRORS AND BIT 14 NOT SET IN SWR, DROP MODULE IF HRDCNT(R2) HIS DT.HMX(RO) AND #BIT14 NOTSETIN DT.SWR(RO) THEN CMP HRDCNT(R2),DT.HM 50006$ BlO BIT #BIT14,DT.SWR(RO BNE 50006$ CALL DRPMOD IN <RO,R2> MOV R5,-(SP) MOV R2,-(R:S) MOV RO,-(R5) JSR PC,DRPMOD MOV (SP)+,RS ENDIF OOOOOOG ENDIF ~i0005$ : ENDIF + RESTORE REGS AND RETURN :;0003$ : PRHARD (PROCESS HARD ERRORS) PRHARD.MAC 28-JUL-78 09:25 661 (3) 662 663 (3) (3) (2) 664 665 000172' 000172' 004767 000176' 000176' 000176' 000176 1 000207 000001 MACY11 30A(1052) 20-SEP-78 PRHARD (CODE) 18:26 PAGE 19-5 SEQ 0853 CALL RES!iEG OOOOOOG JSR PC. RESI~EG RTS PC ENDRTN 50000$: 50001$: .END PRHARD (PROCESS HARD ERRORS) 28-JUL-78 09:25 PRHARO.MAC 000102 ACSR ACTBIT= 004000 AODR22= 001000 AOR 000006 APTFER= 000004 APTHER= ****** G APTPRE= 000200 000106 ASB ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BITO 000001 BITOO 000001 BIT01 000002 8IT02 000004 8IT03 000010 8IT04 000020 BIT05 000040 000100 BIT06 BIT07 000200 BIT08 000400 BIT09 001000 BITl 000002 BIT10 002000 BI T 11 004000 BIT12 010000 BIT13 020000 B1T14 040000 BIT15 100000 BIT2 000004 000010 8IT3 BIT4 = 000020 BIT5 000040 BIT6 = 000100 BIT7 = 000200 BITS 000400 BIT9 00100e BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA 000100 20-SEP-78 MACY11 30A(1052) SYMBOL TABLE 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DRPMOO= ****** G DSEVNT= 000014 000000 DTA DT.ADD= 000042 DT.AP = 000100 OT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT . ERR=. 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE:: 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MT1= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC :: 000002 DT.?FL= 000062 OT . PS~J= 000004 DT.PTA= 000064 DT.RCS= 000102 OT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI: 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT . WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 OVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 18:26 ENBNUL= 000001 ENDLST~ 000000 ENQTQ = ****** G EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 IE 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL:: 001000 INHRRE:: 000400 INIT 000030 000120 INTR 101'.100 100000 IOMODP= 102000 1OMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPORO= 172300 KIPDR1= 17.2302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7"-= 172316 KTERRO= 000040 KTPRES= 000400 KTST,AT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 ::: 076600 MED PAGE 20 SEQ 0854 MEMPAS::: MODEXH:: MODHOL:: MODSEL= MSGCKD::: MSGCKS= ~SGDER::: MSGDRP:: MSGECH:: MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP:: MSGNU L:= MSGPOP= MSGPRM': IVISGRES': MSGSFT= MSGSKE:: MSGSIVIB:= MSGSMH'= MSGSMS:: MSGSTD,: MSGSYS'= MSGVEC== NBKMOD:: NCPUOP:: NOAPTY:: NULL OWEN PAERR PAR PRE:: PARSTA:: PASCNT:= PDPLSI:: PDP60 .POP70 .PRHARD PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNU!\1= 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 OOOOOORG 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RE LMOD= 020000 REL TIM= 010000 RESREG= ****'*-+< G RES1 000056 RES2 000060 RICHAR= 031060 nPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNiVlOD= 100000 R5VALU= 001740 SAM 075454 SAVREG= ****** G S8ADR :: 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 1777'17 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO SRl 177574 SR2 177576 ::; 172516 SR3 STAT 000026 STATBI= 064757 ST.A.T1 = 000027 SiJSPND= 000001 000062 SVRC 000064 SVR1 SVR2 000066 SVR3 000070 SVR4 000072 000074 SVR5 SVR6 000076 SYSCNT= 000052 MACY11 30A(1052) 20-SEP-78 SYMBO:" TABLE PRHARO (PROCESS HARD ERRORS) PRHARD.MAC 2B-JUL-78 09:25 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR WOTO = 000114 WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA:: 000170 $F$CAS= 000150 $F$DEC:= 000220 $F$DO :: 000340 SYSERR= 000100 TMPID. = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPOR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPOR7= 177616 WASADR= 000104 ASS. 000000 000200 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:PRHARD,DSKZ:PRHARD::SPMAC/ML,EQUATE,PRHARD RUN-TIME: 13 3 .4 SECONDS RUN-TIME RATIO: 42/17=2.3 CORE USED: 14K (27 PAGES) 18:26 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$lNC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 00035.0 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES:: 000402 $IFLEV= 1 77777 SISKO = 000001 $ISK1 000001 :$lSK2 :: 000001 PAGE 20-1 SEQ 0855 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 000300 $NSKO $NSK 1 :: 000110 $NSK2 = 000110 000110 $NSK3 $SAVLE= 11'/'1'17 $TAGLE= 177777 $TAGNU= 050007 000300 $TEMP $TSKO = 050003 $TSK 1 = 050005 $TSK2 :: 050006 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$DST :: 000000 $$ELOC= 000402 = $$ERFL= 000000 $SFLAG= 000001 $$FROM:: 000000 $$ LOC = 000 1 541~ $$ LOCN=· 000000 $SREG :: 17777'7 $$RETU:: 000000 $$RTN1:: 050000 $$RTN2:: 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO OOOOOJ $$$TAG= 050000 = 0002001~ .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 553 556 579 18:27 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON REFERENCES AND DEFINITIONS 000000' .PRINT PRMSG ROUTINE ;SPMAC: VERSION 1.1 SEQ 0856 PRMSG - ~ROCESS MSG MACY11 30A(1052) 20-SEP-78 18:27 PAGE 19 PRMSG.MAC 28-JUL-78 09:25 COMMON EQUATE MODULE 508 509 510 511 512 513 .TITLE PRMSG - PROCESS MSG .IDENT jVO. OJ ;++ MODULE NAME: PRMSG 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 53B 539 540 541 542 543 544 545 546 547 FUNCTIONAL DESCRIPTION: PROCESSES MSG CALLS FROM OPTION MODULES 8Y LOADING THE TYPE-QUEUE WITH THE SPECIFIED MESSAGE INPUTS: DATA TABLE ADDRESS i IMPLICIT INPUTS: DT.PC OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: ENQTQ - TYPE-QUEUE ENQUEUER SAVREG RESREG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PRMSG IN <A> A=ADDRESS OF DATA TABLE VERSION: 0.0 548 549 550 551 SEQ 0857 EDIT , '-- BY DATE REASON PRMSG - PROCESS MSG MACY11 30A(1052) 20-SEP-78 18:27 PAGE 19-1 PRMSG.MAC 28-JUL-78 09:25 COMMON REFERENCES AND DEFINITIONS 553 554 555 556 (1) SEQ 0858 .SBTTL COMMON REFERENCES AND DEFINITIONS 000000' 000000 1 557 00 000 1 558 000001 .MCALL STRUCr STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG.:1 559 560 561 562 563 564 565 566 ;**************** ; ; REFERENCED BY OTHER MODULES ,GLOBL PRMSG ;MODULE ENTRY POINT 567 568 569 ;**************** , 570 ;GLOBAL REFERENCES 571 572 573 574 575 576 577 .GLOBL .GLOBL .GLOBL ENOlO SAVREG RESREG ;**************** ;TYPE-QUEUE ENOUEUER PRMSG -PROCESS MSG MACY', 30A(1052) 20-SEP-78 18:27 PRMSG.MAC 28-JUL-78 09:25 PRMSG ROUTINE 579 580 581 582 (2) 583 584 585 586 587 588 (3) 589 590 591 592 593 594 595 (4) 596 597 598 599 600 601 602 (4) 603 604 605 606 607 608 609 (4) 610 (4) 611 (3) (8) (7) (6) (5) (4) (3) (3) 617 618 619 620 SEQ 0859 .SBTTL PRMSG ROUTINE ROUTINE PRMSG <TA8L> 000000' 000000 r PI~MSG : ;+ ;SAVE REGISTERS ', - 000000' 000000' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV TABL(R5),RO MOV DT. PC(RO) ,R1 MOV (R1 )+,R2 MiJV (R1 )+,R3 ;+ ;SET RO TO START OF DTABLE ;- 000004' 000004' 016500 LET RO := TABL(R5) 000000 ;+ ;GET PC+2 OF THE MSG TRAP CALL FROM THE DATA TABLE ;- 000010' 000010' 016001 LET R1 .- DT.PC(RO) 000002 ;+ ;GET THE OPTION MODULE HEADER ADDRESS AND MESSAGE ADDRESS. ;- LET R2 .- (R1)+ 000014' 000014' 012102 000016' 000016 1 012103 LET R3 .- (R1)+ 61'~ 613 614 615 616 PAGE 19-2 ;+ ;ENQUEUE THE MESSAGE, USING THE STANDARD MESSAGE CODE 000020 1 000020 1 000022' 000024 1 000026 1 000030' 000034 I 000036 1 000042' CALL ENQTQ IN <RO,#MSGSTD,R3,R2,R1> 010546 010145 010245 010345 012745 010045 004767 012605 000000 OOOOOOG ;+ ;RESTORE REGISTERS MOV R5,-(SP) MOV MOV MOV MOV MOV JSR I't.OV R1 ,- (R5) R2,-(R5) R3,-(R5) #MSCSTD,-(RS) RO,-(R5} PC,ENQTQ (SP)+,R5 PRMSG - PROCESS MSG MACY11 30A(1052) 20-SEP-78 18:27 PRMSG.MAC 28-JUL-78 09:25 PRMSG ROUTINE 621 622 623 (3) 624 625 626 627 628 629 630 (3) (3) (2) 631 PAGE 19-3 SEQ 0860 'f 000044 1 000044 1 004767 CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ;+ ;RETURN 'f - 000050 1 000050 • 000050' 000050' 000207 000001 ENDRTN 50000$: 50001$: . END 20-SEP-78 18:27 MACY11 30A(1052) PRMSG - PROCESS MSG SYMBOL TABLE 28-JUL-78 09:25 PRMSG.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 000106 ASB ASSEMB= 000010 ASTAT = 000104 AUTO = 000010 AUTOST= 020000 AWAS 000110 BITO = 000001 BITOO = 000001 BIT01 000002 BIT02 000004 BIT03 000010 B1T04 000020 BIT05 000040 BIT06 000100 BlT07 000200 BITOS = 000400 BIT09 001000 BIT1 000002 BIT10 002000 BIT11 004000 BIT12 010000 BIT13 020000 BIT14 040000 BIT15 100000 BIT2 000004 BIT3 000010 BIT4 000020 BIT5 000040 000100 BIT6 BIT7 000200 BIT8 000400 BIT9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 CR 000015 CSRA 000100 CSRC 000102 CTRLC = 000003 CTRLO = 000017 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH;;.: 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 ENQTQ = ****** G PAGE 20 000001 000106 000200 000200 000203 000202 000201 F~TERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 10MOD 100000 10MODP= 102000 IOMODR= 112000 IOrJtODX= 110000 ,JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= OtlOOOO MODEXH= 004000 MODHOL= 002000 EOPBIT= ERRTYP= EVNTBE= EVNTHD= EVNTKT= EVNTPE= EVNTRE= SEQ 0861 MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES::: MSGSFT= MSGSKE= MSGSMB= MSGSMH::: MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT=: PDPLSI= POP60 -PDP70 PRIO PRI1 PRI4 PR15 PRI6 PRI7 PRMSG PRO PR4 PR5 PR6 PR7 PS PSW RANNUM:: RBUFEA:: RBUFPA:: RBUFSZ:: 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 17'1775 000002 1/7776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 oooeoo 024020 000010 002000 000100 000034 020000 001000 010000 000000 000040 000200 000240 000300 000340 OOOOOORG 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 RESREG= ****** G 0000513 RES1 RES2 000060 RICHAR= 03-1060 RPTDAT= 002000 RSTRT = 000112 RUSOUT= 000 :177 RUNMOD= 100000 R5VIILU= 001740 075464 SAM SAVREG= ****** G SBADR :: 000"102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 5C.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 'SC. SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 008046 SPACE ::: 000040 SPOINT= 000032 SPVALU= 002200 SRO 177 572 177574 SR1 177576 SR2 SR3 = 172516 STAT 000026 STATSl= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 SVR4 000072 000074 SVR5 SVR6 000076 SYSCNT::; 000052 SYSERR= 000100 TABL 000000 TMPIO = 000002 1 PRMSG - PROCESS MSG MACY11 30A(1052) 20-SEP-78 18:27 PRMSG.MAC 28-JUL-78 09:25 SYMBOL TABLE WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ:: 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 ABS. 000000 000052 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 D5XZ:PRMSG,DSKZ:PRMSG=SPMAC/ML,EQUATE,PRMSG RUN-T IME: 11 1 .3 SECONDS RUN-TIME RATIO: 26/13=2.0 CORE USED: 14K (27 PAGES) PAGE 20-1 $F$8LA= 000170 $F$CAS= 000150 $F$DEC== 000220 $F$DO == 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 SEQ OB62 $F$UNT= $F$WHI=: $F$YES=: $IFLEV:: $ LOCT A=: $LSTIN:: $LSTTA:: $NESTL:: $NSKO :: $SAVLE:: $TAGLE:: $ TAGNU:: $TEMP :: $$ARGC:: $SBYTE:: $$CASE:: $$DST :: 000130 000120 000402 177777 177777 000001 000001 17'1777 000300 177777 177777 050002 000300 000002 000000 000000 000000 $$ELOC= 000000 $$ERFL= 000000 $$FLAG= 000000 $$FROM= 000000 000000 $$LOC $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RiN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000052R = .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 554 558 580 18:28 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT PRMSGN ROUTINE ;SPMAC: VERSION 1.1 SEQ 0863 PRMSGN - PROCESS MSGN MACY11 30A(1052) 20-SEP-78 18:28 PAGE 19 PRMSGN.MAC 28-JuL-78 09:25 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 .TITLE PRMSGN - PROCESS MSGN .IDENT /VO.O/ ;++ MODULE NAME: PRMSGN FUNCTIONAL DESCRIPTION: PROCESSES MSGN CALLS FROM OPTION MODULES BY LOADING THE TYPE-QUEUE WITH, FIRST, AN ENTRY fOR THE HEADER MESSAGE AND, THEN, AN ENTRY FOR EACH ADDRESS IN THE MESSAGE ADDRESS TABLE INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: DT.PC OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: PRMSGS - PROCESS MSGS ROUTINE ENQTQ - TYPE-QUEUE ENQUEUER FUNCTIONAL SIDE EFFECTS: NONE. CALLING SE.QUENCE: CALL PRMSGN IN <A> A=ADDRESS OF DATA TABLE VERSION: 0.0 548 549 550 551 552 SEQ 0864 EDIT ;-- BY DATE REASON PRMSGN - PROCESS MSGN MACY11 30A(1052) 20-SEP-78 18:28 PAGE 19-1 PRMSGN.MAC 28-JUL-78 09:25 COMMON DEFINITIONS AND REFERENCES SEQ 0865 .SBTTL COMMON DEFINITIONS AND REFERENCES 554 555 556 557 558 (1) 559 560 561 562 563 564 565 566 567 568 569 570 571 572 000000 ' 000000 ' 000001 000001 .MCALL STRUC,. STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 ; ;**************** ; ; REFERENCED BY OTHER MODULES , .GLOBL , 574 .GLOBL .GLOBL 576 577 578 ;MODULE ENTRY POINT ; GLOBAL REFERENCES 573 575 PRMSGN , ;**************** ENQTQ PRMSGS , ;**************** ;TYPE-QUEUE ENQUEUER ;PROCESS MSGS ROUTINE PRMSGN - PROCESS MSGN MACY11 30A(1052) 20-SEP-78 18:28 PRMSGN.MAC 28-JUL-78 09:25 PRMSGN ROUTINE 580 581 582 000000 1 (2) 000000 1 583 584 585 586 587 588 000000 1 (2) 000000 1 010046 (3) 000002 1 010146 589 590 591 592 593 594 595 000004 1 (4) 000004 1 016500 596 597 598 599 600 601 602 603 604 605 000010' (4) 000010' 016001 (6) 000014' 162701 606 . 000020' (3) 000020' 010546 (8) 000022' 012745 (7) 000026'016145 (6) 000032' 010145 (5) 000034' 012745 (4) 000040' 010045 (3) 000042' 004767 (3) 000046' 012605 607 608 609 610 611 612 613 614 000050' (3) 000050' 010546 (4) 000052' 010045 (3) 000054 1 004767 (3) 000060' 012605 615 616 617 PAGE 19-2 SEQ 0866 .SBTTL PRMSGN ROUTINE ROUTINE PRMSGN <TABL> PIRMSGN: ;+ ;SAVE REGISTERS ;- PUSH RO,R1 MOV MOV RO,.... (SP) R1,'-(SP) MOV TABL(R5),RO ;+ ;SET RO TO START OF DATA TABLE LET RO != TABL(RS) 000000 ;+ ;ENQUEUE THE SKELETAL HEADER MESSAGE, SETTING THE MESSAGE ADDRESS ;PARAMETER TO THE TRAP ADDRESS IN THE OPTION MODULE AND ;THE RETURN ADDRESS PARAMETER TO #0, ;(THE TRAP ADDRESS IS NEEDED FOR THE HEADER MESSAGE.) ,' - LET R1 := DT.PC(RO) - #2 000002 000002 CALL ENOTO IN <RO,#MSGHDR,R1 ,2(R1),#0> 000000 000002 000004 OOOOOOG MOV SUB DT,PC(RO),R'1 #2,R1 MOV MOV MGV MOV MOV MOV JSR MOV R5,-(SP) hO,-(R5) 2(R1) ,-(R5) R1,-(H5} #MSGHDR,-(R5) RO,-(R5) PC,ENQTQ (SP)+,R5 lViOV MOV JSR MOV R5,-(SP) ;+ ;ENQUEUE THE MESSAGES LISTED IN THE MESSAGE ADDRESS TABLE ; BY CALLING II PROCESS MSGS". ,' - CALL PRMSGS IN <RO> OOOOOOG ;+ RO,-(~t5) PC,PRMSGS (SP)+,R5 MACY11 30A(1052) .20-SEP-78 18:28 PRMSGN - PROCESS MSGN PRMSGN ROUTINE PRMSGN.MAC 28-JUL-78 09:25 618 619 620 621 (2) (3 ) 622 623 524 625 626 627 628 (3) (3) (2 ) 629 630 PAGE 18-3 SEQ 0867 ;RESTORE REGISTERS , 000062 1 000062 1 012601 0000641 012600 POP R1,RO MOV MOV (SP)+,R1 (SP)+.RO RTS PC ;+ ;RETURN , 000066 1 000066 1 000066 1 000066 1 000207 000001 ENDRTN 50000$: 50001~: .END 20-SEP-78 18:28 MACY11 30A(t052) PRMSGN - PROCESS MSGN SYM80L TABLE 28-JUL-78 09:25 PRMSGN.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 000001 BITO BITOO == 000001 BIT01 000002 81T02 000004 BIT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 8IT08 000400 BIT09 001000 000002 BIT1 BIT10 002000 BIT11 004000 BIT12 010000 BIT13 020000 BIT14 040000 BIT15 100000 B1T2 000004 BIT3 000010 000020 BIT4 BITS 000040 000100 BIT6 BIT7 000200 8IT8 000400 BI T9 . 001000 BKDEF 000002 BKMOD 000020 BKMODE== 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT== 000144 CKTIM == 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 CR 000015 000100 CSRA CSRC 000102 CTRLC = 000003 CTRLO = 000017 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= . 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 00.0076 DT.BLS= 000034 DT.CFQ= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 . DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 D1. PT A= 000064 DT.RCS= 000102 D1.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 OT.STO= 000010 DT.ST1= 000012 DT.SWR= 00.0056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 == 000014 ECCMEM= 000100 ECCSTA:: 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST== 000000 ENQTQ = ****** G PAGE 20 EOPBIT:: 000:001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD::. 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= OOOOAO IDNUM = 000122 000100 IE aWPAR= 000040 ItmDRP= 040000 INHEPR== 020000 INHREL= 001000 1NHRRE= 000400 INIT 000030 INTR = 000120 lOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 1.72346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3== 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO:: 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND== 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 MED 076600 MEMPAS= 040000 MODEXH== 004000 MODHOL= 002000 SEQ 0868 MODSEL= 00100.0 MSGCKD=: 000010 MSGCKS=: 000011 MSGDER:::: 000005 MSGDRP=: 000017 MSGECH:: 177777 MSGEOp:: . 000013 MSGHDR=: 000004 MSGHNG:: 000022 IVlSGHRD=: 000007 MSGMAP=: 000021 IVISGNU L=: 177775 MSGPOP= 000002 MSGPRM:; 177776 MSGRES:: 000001 MSGSFT:: 000006 MSGSKE=: 000003 MSGSMB:: 000015 MSGSMH:: 000014 MSGSMS:: 000016 MSGSTD:: 000000 MSGSYS:: 000012 MSGVEC:= 000020 NBKMOD:= 001000 NCPUOP= 000020 NOAPTY== 000002 000000 NULL 024020 OWEN 00U010 PAERR PARPRE:: 002000 PARSTA:: 00:>100 PASCNT:: 000034 PDPLSI:: 020000 004()00 PDP60 010000 PDP70 000000 PRIO PR 11 000040 OOOLOO PRI4 000240 PRI5 000300 PRI6 000340 PRI7 PRMSGN OOOOOORG PRMSGS::: '1'***** G 000000 PRO 000200 PR4 000240 PR5 000300 PR6 000340 PR7 177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 R8UFVA= 000124 RDSERV= 000101 RDwHlVlI= 000022 RELERR= 000020 RELMOD= 02000(') RELTIM= 010000 RES, 000056 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SBADR == 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE == 000040 SPOINT:: 000032 SPVALU= 002200 177572 SRO 177574 SR1 177576SR2 172516 SR3 00OO2E~ STAT STATBl= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 000066 SVR2 000070 SVR3 SVR4 000072 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 0001100 000000 TABL 000002 TMPIO TQOVF = OOOOO~t MACY 11 30A(1052) 20-SEP-78 18:28 PRMSGN - PROCESS MSGN SYMBOL TABLE 28-JUL-78 09:25 PRMSGN.MAC WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 VJBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTlrJHM 1= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 UIPARO= 177640 UIPAR1 = 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIP,~R6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 ASS. 000000 000070 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:PRMSGN,DSKZ:PRMSGN=SPMAC/ML,EQUATE,PRMSGN RUN-T IME: 11 1 .3 SECONDS RUN-TIME RATIO: 26/13=2.0 CORE USED: 14K (27 PAGES) PAGE 20-1 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 001)405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 SEQ 0869 $F$WHI= $F$YES= $IFLEV= $LOCTA= $LSTIN= $LSTTA= $NESTL= $NSKO ::, $SAVLE= $TAGLE= $TAGNU= $TEMP =: $$ARGC= $$BYTE:::: $$CASE=: $$DST $$ELOC= 000120 000402 17'1777 177777 000001 000001 177777 000300 177777 177777 050002 000300 000002 000000 000000 000000 000000 $$ERFL= 000000 $$FLAG= 000000 $$FROM= 000000 $$LOC = 000000 $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV'; 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000001 $$$TAG= 050000 000070R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 554 558 581 18:28 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT PRMSGS ROUTINE jSPMAC: VERSION 1.1 SEQ 0870 PRMSGS - PROCESS MSGS MACY11 30A(1052) 20-SEP-78 18:28 PAGE 19 PRMSGS.MAC 28-JUL-78 09:26 COMMON EQUATE MODULE 508 509 510 .TITLE PRMSGS - PROCESS MSGS .IDENT JVO.Oj 511 512 ;++ 513 514 515 516 517 518 519 520 521 522 523 524 525 526 5~7 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 MODULE NAME: PRMSGS FUNCTIONAL DESCRIPTION: PROCESSES MSGS CALLS FROM OPTION MODULES BY LOADING THE TYPE-QUEUE WITH AN ENTRY FOR EACH ADDRESS IN THE MESSAGE ADDRESS TABLE INPUTS: ADDRESS OF DATA TABLE IMPLICIT INPUTS: DT.PC OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: ENOTO - TYPE-QUtUE ENQUEUER SAVREG - SAVE REGISTERS RESREG - RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PRMSGS IN <A> A=ADDRESS OF DATA TABLE VERSION: 0.0 EDIT 551 552 SEQ 0871 ;-- BY DATE REASON PRMSGS - PROCESS MSGS MACY11 30A(1052) 20-SEP-78 18:28 PAGE 19-1 PRMSGS.MAC 28-JUL-78 09:26 COMMON DEFINITIONS AND REFERENCES 554 555 556 557 558 (1) 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 SEQ 0872 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 ;**************** , ; REFERENCED BY OTHER MODULES , .GLOBL PRMSGS ;MODULE ENTRY POINT ;**************** , . ; GLOBAL REFERENCES . GLOBL .GLOBL .GLOBL ENOTO SAVR.EG RESREG **************** ;TYPE-QUEUE ENQUUEUER ;SAVE REGISTERS ;RESTORE REGISTERS PRMSGS - PROCESS MSGS MACY1; 30A(1052) 20-SEP-78 18:28 PRMSGS.MAC 28-JUL-78 09:26 PRMSGS ROUTINE 581 582 583 (2) 584 585 586 587 588 589 (3) 590 591 592 593 594 595 596 (4) 597 598 599 600 601 602 603 (4) 604 605 606 607 608 609 610 611 612 (4) 613 (4) 614 615 616 617 618 619 620 621 622 623 (4) (6) (9) 624 (6) (9) 625 PAGE 19-2 SEQ 0873 .SBTTl PRMSGS ROUTINE ROUTINE PRMSGS <TABl> 000000' 000000' PRMSGS: ;+ ;SAVE REGISTERS 000000' 000000' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV TABl(R5),RO MOV DT. PC(RO) ,Ri ;+ ;SET RO TO START OF DATA TABLE ;- 000004' 000004' 016500 LET RO := TABL(R5) 000000 ;+ ;GET PC+2 OF THE MSGS TRAP CALL 000010' 000010' 016001 LET R1 .- DT.PC(RO) 000002 ;+ ;GET THE OPTIONS MODULE'S HEADER ADDRESS, THE MESSAGE ADDRESS TABLE, ;AND THE RETURN ADDRESS. (THE MESSAGE ADDRESS TABLE ADDRESS ;15 PLACED IN R2). LET R3 .- (R1)+ 000014' 000014' 012103 000016' 000016' 012102 LET R2 .- (R1)+ MOV (R 1 ) + , R3 MOV (R1)+,R2 ;+ ;BUILD AND ENQUEUE A TYPE-QUEUE ENTRY FOR EACH ADDRESS IN THE MESSAGE ;ADDRESS TABLE. THE RETURN ADDRESS FOR EACH ENTRY EXCEPT THE LAST ;ONE WILL BE O. THE LAST ENTRY WILL CONTAIN THE ACTUAL RETURN ADDRESS ;FOR THE OPTION MODULES. 000020' 000020' 000020 1 000024' 000026' 000026' 000034' 000036 1 WHILE (R2) NE #-1 DO 50002$: 021227 001422 177777 026227 001002 000002 CMP 8EQ (R2),#-1 50003$ CMP BNE 2(R2),#-1 50004$ IF 2(R2) EO #-1 THEN 177777 LET R4 := R1 MACY11 30A(1052) 20-SEP-78 18:28 PRMSGS - PROCESS MSGS PRMSGS ROUTINE 28-JUL-78 09:26 PRMSGS.MAC (4) 626 (4) (3) 627 (4) 628 (4) 329 (3) (8) (7 ) (6) (5) (4) (3) (3) 630 (4) (3) 631 632 633 634 635 636 637 638 (3) 639 640 641 642 643 644 645 (3) (3) 000036' 000040' 000040' 000042' 000042' 000042' 000044' 000044' 000044' 000044' 000046' 000050' 000052' 000054' 000060' 000062' 000066' 000070' 000070' 000072' PAGE 19-3 SEQ 0874 010104 ELSE 000401 LET R4 , - #0 R1 , R4 SR 50005$ CLR R4 MOV MOV MOV MOV MOV JSR MOV R5,-(SP) R4,-(R5) R3,-(R5) (R2)+,-(R5) #MSGSTD,-(R5) RO,-(R5) PC,ENQTQ (SP)+,R5 BR 50002$ JSR PC,RESREG RTS PC 50004$: 005004 ENDIF MOV 50005$: CALL ENQTQ IN <RO,#MSGSTD,(R2)+,R3,R4> 010546 010445 010345 012245 012745 010045 004767 012605 MOV 000000 OOOOOOG ENDDO 000753 50003$: ;+ ;RESTORE REGISTERS , 000072' 000072' 004767 CALL RESREG OOOOOOG ;+ iRETURN , '- (2 ) 000076' 000076' 000076' 000076' 000207 646 647 000001 ENDRTN .END 5,0000$ : 5,0001$: 20-SEP-78 18:28 MACY11 30A(1052) PRMSGS - PROCESS MSGS SYMBOL TABLE 28-JUL-78 09:26 PRMSGS.MAC 000102 ACSR ACTSIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMS= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AloJAS 000110 BITO 000001 000001 BITOO BIT01 000002 BIT02 000004 000010 BIT03 BIT04 000020 BIT05 000040 000100 BIT06 BIT07 000200 BITOS 000400 GIT09 001000 BIT1 000002 BIT10 = 002000 B1 T 11 004000 B1T12 010000 B1T13 020000 'B 1 T 14 040000 BIT15 100000 B1T2 000004 BIT3 000010 BI14 000020 BIT5 000040 BIT6 000100 BIT7 000200 BITB 000400 BIT9 001000 BKC'EF 000002 BKMOD 000020 BKMODE= 040000 BKSlSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA 000100 CSRC 000102 CTRLC = 000003 CTRlO = 0000~7 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 D1AGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT. EVN=, 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= (\00030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT. PS\-IJ= 000004 Dr. PT A= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 Di.SP = 000006 DT.SSI= 000046 DT. STO= 000010 DT.ST1= 000012 DT . SvJR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVIDl = 000014 ECCMEM= 000100 ECCSTA::: 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 ENQTQ = ****** G PAGE 20 EOPBIT= 00000'1 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 1CONT = 000036 ICOUNT= 000040 IDNUM = 000~22 000100 IE INDPAR= 000040 1NHDRP= 040000 INHEPR= 020000 INI--:RCL= 001COO INHRRE= 000400 000030 INIT INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 1723L!2 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 K1PAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 0766(10 MED MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 SEQ 0875 MODSEL=: MSGCKD=: MSGCKS=: MSGDER=: MSGDRP=: MSGECH=: MSGEOP=: MSGHDR=: MSGHNG=: MSGHRD=: MSGMAP=: MSGNUL=: MSGPOP=' MSGPRM=: MSGRES=: MSGSFT=: MSGSKE== M5GSMB=: MSGSMH= MSGSMS:: MSGSTD:: MSG5YS= MSGVEC:: NBKMOD:: NCPUOp:: NOAPTY:= NULL OVv'EN PAERR PARPRE:: PARSTA:: PASCNT:o PDPLSI:: PDP60 PDP70 PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRMSGS PRO PR4 PR5 PR6 PR7 PS P5W RANNUM:= RBUFEA:= RBUFPA= RBUFSZ= 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000;')00 024020 000010 002000 00J100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 OOOOOORG 000000 000200 000240 000300 000340 177776 177776 00Cl054 000130 000126 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 RESREG= ****** G RES1 000056 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SAVREG= *****'* G SBADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 0000'14 SC.APC= 0000'16 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040' SPOINT= 000032 S?VAlU= 002200 177572 SRO 177574 SR1 SR2 177576 172516 SR3 000026 STAT STATBI= 064757 STAT1 = 00002'7 SUSPND= 000001 SVRO 000062 SVR1 000064 SVR2 000066 000070 SVR3 000072 SVri4 SVR5 000074000076 SVR6 SYSCNT= 000052: SYSERR= 000100 TASL 000000 TMPIO = 000002 20-SEP-78 ;8:28 MACY11 30A(1052) PRMSGS - PROCESS MSGS SYMBOL TABLE 28-JUL-78 09:26 PRMSGS.MAC WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WOFR 000114 WOTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 17-7600 UIPDR1= 177602 UIPDR2:: 177604 UIPDR3= 177606 UIPDR4= 177610 lJIPDR5= 177612 UI~DR6= 177614 UIPDR7= 177616 vJASAOR= 000104 WBSTAT= 000040 ASS. 000000 000100 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:PRMSGS,DSKZ:PRMSGS=SPMAC/ML,EQUATE,PRMSGS RUN-TIME: 12 2 .3 SECONDS RUN-TIME RATIO: 29/14=2.0 CORE USED: 14K (27 PAGES) PAGE 20-1 $F$FAL:: 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL:: 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $LOCTA= 17'7777 SEQ 0876 $LSTIN=: $LSTTA=: $NESTL= $NSKO .$NSK1 .$NSK2 .$SAVLE=: $SSKO -$TAGLE:: $TAGNU:: $TEMP $TSKO $TSK1 -$TSK2 $$ARGC:: $$BYTE:: $$CASE= $$D5T _. $$ELOC:: 0- 000001 000001 "177777 000300 000120 000110 177777 050003 177777 050006 000300 050002 050003 050005 000002 000403 000000 000000 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000034R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 000i00R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 556 559 577 18:29 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR PROTOA 000000' .PRINT ;SPMAC: VERSION 1.1 PROTOA ROUTINE SEQ 0877 PROTOA PROCESS THE 10TOA I MACRO IN OPTION MODULES MACY11 30A(1052} PROTOA.MAC 28-JUL-78 09:26 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 553 554 18:29 PAGE 19 .TITLE PROTOA PROCESS THE 10TOA I MACRO IN OPTION MODULES .IDENT JVO.Oj ;++ MODULE NAME: PROTOA FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE 10TOA I TRAP ISSUED BY OPTION MODULES. IT WILL RETRIEVE THE NUMBER TO BE CONVERTED TO OCTAL ASCII FROM DT.PC+2 AND THE TABLE ADDRESS AT WHICH TO STORE THE OCTAL ASCII FROM DT.PC +4. IT CALLS THE BINARY TO OCTAL ASCII CONVERSION ROUTINE. THE RETURN PC IS UPDATED SINCE THIS' IS DIRECT SERVICE. INPUTS: DTAEILE ADDRESS IMPLICIT INPUTS: DT.PC OUTPUTS: NONE: IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: BOA16 - BINARY TO OCTAL ASCII CONVERSION ROUTINE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PROTOA IN <DTADR> WHERE DTADR = ADDRESS OF DATA TABLE VERSION: 0.0 550 551 552 20-SEP-78 EDIT ;-- DATE BY ~!EASON SEQ 0878 PROTOA PROCESS THE 10TOA I MACRO IN OPTION MODULES MACY11 30A(1052) 20-SEP-78 18:29 PROTOA.MAC 28-JUL-78 09:26 COMMON DEFINITIONS AND REFERENCES FOR PROTOA 556 557 558 559 (1) 560 561 562 .SBTTL PAGE 19-1 COMMON DEFINITIONS AND REFERENCES FOR PROTOA .MCALL STRUCT STRUCT .PRINT iSPMAC: VERSION 1.1 000000' 000000 • 000001 000001 $LSTIN=1 $LSTT AG= 1 563 564 565 ;**************** ; 566 567 568 ; REFERENCED BY OTHER MODULES: 569 570 ; 571 , .GLOBL PROTOA ;**************** 572 i GLOBAL REFERENCES: 573 I 574 .GLOBL 575 ;MODULE ENTRY POINT BOA16 ;BINARY TO OCTAL ASCII CONVERSION ROUTINE SEQ 0879 PROTOA PROCESS THE IOTOAI MACRO IN OPTION MODULES PROTOA.MAC 28-JUL-78 09:26 PROTOA ROUTINE 577 578 579 (2) 580 581 582 583 584 585 586 (2) (3) 587 (4) 588 589 590 591 592 593 (4) 594 (3) (5) (Il) (3) (3) 595 596 597 598 599 600 (6) 601 602 603 604 605 606 (2) (3) 607 608 (3) (3) (2) 609 610 .SBTTL MACY11 30A(1052) 20-SEP-78 18:29 PAGE 19-2 SEQ 0880 PROTOA ROUTINE ROUTINE PROTOA <DTADR> 000000 1 000000 1 PROTOA: ;+ ;INITIALIZE AND SAVE DATA TABLE ADDRESS 000000 1 000000 1 010046 000002 1 010146 000004 1 000004 1 016500 PUSH RO,R1 LET RO '- DTADR(R5) 000000 MOV MOV RO,-(SP) R1,-(SP) MOV DTADR(R5),RO MOV DT. PC(RO) ,R1 MOV MOV MOV JSR MOV R5,-{SP) 4(R1) ,-(R5) @2(R1) ,-(R5) PC,BOA16 (SP)+,R5 ADD #6,DT.PC(RO) MOV MOV (SP)+,R1 (SP)+,RO Ins PC i+ ; GET DT.PC AND CALL BOA16 ;- 000010 1 000010 1 000014' 000014 1 000016' 000022 1 000026 1 000032 1 LET R1 016001 := DT.PC(RO) 000002 CALL BOA16 IN <@2(R1),4{R1» 010546 016145 017145 004767 012605 000004 000002 OOOOOOG ;+ ; UPDATE RETURN PC ;- 000034' 000034 1 062760 LET DT. PC (RO) : = DT. PC (RO) + #6 000006 000002 ;+ ; CLEAN UP AND GOODBYE 000042 1 000042 1 012601 000044 I 012600 POP R1 , RO 000046 1 000046 1 000046 1 000046 1 000207 ENDRTN 000001 50000$: 50001$: . END PROTOA PROCESS THE 'OTOA' MACRO IN OPTION MODULES SYMBOL TAB LE 28-JUL-78 09:26 PROTOA.MAC ACSR 000102 ACT3IT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BITO 000001 BITOO 000001 BIT01 000002 B1T02 000004 BIT03 000010 81T04 000020 BIT05 000040 BIT06 000100 BIT07 000200 000400 BITOB 001000 BIT09 BIT1 000002 8IT10 002000 BIT11 004000 B1T12 010000 020000 BIT13 BIT14 040000 BIT15 100000 BIT2 000004 000010 8IT3 000020 BIT4 BITS = 000040 000100 BIT6 BIT7 000200 BI18 000400 001000 BIT9 000002 BKDEF BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BOA16 = ****** G CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDv;oCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF 000015 CR CSRA 000100 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK.: 000076 DT. BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 OT.SWR= 000056 OT.SYP= 000072 DT . WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 OVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 MACY11 30A(1052) ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000103 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 lCONT = 000036 ICOUNT= 000040 IDNUM = Ob0122 IE 000100 INDPAR= 000040 INHDRP= 040000 INHEPR=' 020000 1NHREL= ,,001000 1NHRRE= 000400 INIT 000030 1NTR 000120 10MOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2:: 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5:: 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= OOOOLlO KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 LF 000012 LPSTAT= 000001 MAPSTA= OOO?OO 076600 MED MEMPAS= 040000 MODEXH= 004000 20-SEP-78 18:29 PAGE :2:0 MODHOL= 002000 MODSEL= 001000 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM=, 17'7776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD.::: 000000 MSGSYS= 000012 MSGVEC::: 000020 NBKMOD= 0.01000 NCPUOP=: 000020 NOAPTY=: 000002 000000 NULL OWEN 024020 PAERR 000010 PARPRE:: 002000 PARSTA~: 000100 PASCNT= 000034 PDPLSI:: 020000 004000 PDP60 010000 PDP70 000000 PRIO 000040 PRI1 000200 PRI4 PRI5 000240 000300 PRI6 PRI7 000340 PFWTOA OOOOOORG PRO 000000 000200 PR4 000240 PR5 PR6 OC0300 000340 PR7 PS 177776 PSVJ 177776 RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 SEQ 0881 RBUFSZ= 000132 R8UFVA= 000124 RDSERV= 000101 RDWrlMI= 000022 RELERR= 000020 REUVlOD= 020000 REL TIM= 010aOO RES1 000056 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000~12 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SBADR = 000'\ 02 SBKIViOD= 000000 SGKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 Sc. CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPP.,CE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SRi 177576 SR2 172516 SR3 000026 STAT STATBl= 064757 STAT1 :: 000027 SUSPND= 000001 000062 SVRO 000064 SVR1 SVR2 000066 000070 SVR3 SVR4 000072 000074 SVR5 SVR6 - 000076 SYSCNT= 000052 SYSE.RR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 PROTOA PROCESS THE IOTOA I MACRO IN ODTION MODULES PROTOA.MAC 28-JUL-78 09:26 SYMBOL TABLE UIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDRS= UIPDR6= UIPDR7= WASADR= WBSTAT= 177642 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 ABS. 000000 OOOOSO WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = OOOOOS 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$8AD= 000401 $F$BLA= 000170 $F$CAS= 0001S0 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:PROTOA,DSKZ:PROTOA=5PMAC/ML,EQUATE,PROTOA RUN-TIME: 11 1 .3 SECONDS RUN-TIME RATIO: 26/12=2.0 CORE USED: 14K (27 PAGES) MACY11 30A(1052) $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000';l05 $F$GOO= 000400 $F$IF ::: 000110 $F$INC::: 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO ::: 000403 $F$OR ::: 000320 $F$RTI= 0003S0 $F$RTN= 000300 $F$SEL= 000140 $F$THE::: 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 20-SEP-78 $F$YE5::: $IFLEV= $LOCTA::: $LSTIN::: $L5TTA::: $NESTL::: $N5KO ::: $5AVLE::: $TAGLE::: $ T AGNU:= $ TEMP ::: $$ARGC::: $$BYTE::: $$CASE= $$D5T ::: $$ELOC:: $$ ERF L:= 18.:29 000402 177777 177777 000001 000001 177777 000300 177777 177777 050002 000300 000002 000000 000000 000000 000000 000000 PAGE 20-1 SEQ 0882 $$FLAG= 000000 $$FROM= 000000 $$L.OC ::: 000000 $$L.OCN= 000000 $$REG = 17777'7 $$RETU= 000000 $$RTN1= OSOOOO $$RTN2::: 050001 $$SRC = 000000 $$TGSV= 000000 $$TG51= 000000 $$TG52= 000000 000002 $$TO $$$TAG= 050000 000050R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 556 559 577 18:29 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT PRRAND (CODE) jSPMAC: VERSION 1.1 SEQ 0883 PRRAND (PROCESS 'RAND' TRAP CALL) PRRAND.MAC 28-JUL-78 09:26 508 509 510 511 512 513 514 515 516 517 518 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE 18:29 PAGE 19 .TITLEPRRAND (PROCESS 'RAND' TRAP CALL) .IDENT JVO.Oj ;++ MODULE NAME: PRRAND FUNCTIONAL DESCRIPTION: THIS MODULE SERVICES A 'RAND ' TRAP CALL AND RETURNS A RANDOM NUMBER TO A LOCATION IN THE MODULE'S HEADER. 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: 1 . DT . PC OUTPUTS: NONE IMPLICIT OUTPUTS: RANDOM NUMBER PATHOLOGICAL CONNECTIONS: NONE 537 SUBORDINATE ROUTINES CALLED: RANDOM 538 539 540 FUNCTIONAL SIDE EFFECTS: NONE. 536 541 542 543 CALLING SEQUENCE: CALL PRRAND IN <AA> 544 545 546 547 548 WHERE AA VERSION: 0.0 549 EDIT' 550 551 552 553 554 = DATA TABLE ADDRESS ;-- DATE BY REASON SEQ 0884 PRRAND (PROCESS fRAND' TRAP CALL) PRRAND.MAC 28-JUL-78 09:26 556 557 558 559 (1) 560 561 562 MACY11 30A(1052) 20-SEP-78 18:29 COMMON DEFINITIONS AND REFERENCES PAGE 19-1 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000' 000000' 000001 000001 .MCALL STRUCr STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 563 564 565 566 ;**************** , ; REFERENCED BY OTHER MODULES 567 , 568 .GLOBL PRRAND 569 570 571 572 573 574 575 ;MODULE'S ENTRY POINT ;**************** ; GLOBAL REFERENCES ; .GL08L RANDOM ;ROUTINE 'RANDOM' SEQ 0885 PRRAND (PROCESS 'RAND' TRAP CALL) PRRAND.MAC 28-JUL-78 09:26 577 578 579 (2) 580 581 582 583 584 585 (2) (3) 586 587 588 589 590 591 592 (4) 593 (4) 594 (4) (6) 595 (4) 596 597 598 599 600 601 (4} (3) (4) 602 603 604 605 606 607 (2) (3) 608 (3) (3) (2) 609 610 MACY11 30A(1052) PRRAND (CODE) 20-SEP-78 18:29 PAGE 19-2 SEQ 0886 .SBTTL PRRAND (CODE) ROUTINE PRRAND <AA> 000000' OOCOOO' PRRAND: :+ i SAVE REGISTERS o- r PUSH RO,R1 000000' 000000' 010046 000002' 010146 MOV MOV FW,-(SP) R1,-(SP) ;+ ; GET DTABLE ADDRESS ,GET HEADER ADDRESS AND GET RANDOM NUMBER ADDRESS ; IN HEADER ;- 000004' 000004' 000010' 000010' 000014' 000014' 000020' 000026' 000026' · - AA(R5) LET R1 · - DT.PC(RO) LET DT.PC(RO) . - R1 + #2 LET RO 016500 000000 016001 000002 010160 062760 000002 000002 000002 LET R1 011101 ·- ( R1) MOV AA(R5),RO MOV DT.PC(RO),R1 MOV ADD R1,DT.PC(RO) #2,DT.PC(RO) MOV (R1),1i:1 SUB JSR MOV #1*2,F1!5 PC, RAI\IDOIVI (R5,)+,RANNUM(R1 ) MOV MOV (SP)+,R1 (SP)+,RO RTS PC ;+ ; GET RANDOM NUMBER , 000030' 000030' 162705 000034' 004767 000040' 012561 CALL RANDOM OUT <RANNUM(R1» 000002 OOOOOOG 000054 j+ ; RESTORE REGISTERS AND RETURN ;000044' 000044' 012601 000046' 012600 000050' 000050' 000050' 000050' 000207 000001 POP R1,RO ENDRTN !:iOOOO$ : ~iOOO1$: .END PRRAND (PROCESS IRAND' TRAP CALL) 28-JUL-78 09:26 PRRAND.MAC 000000 AA ACSR 000102 ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BITO 000001 BITOO 000001 BIT01 000002 BIT02 000004 BIT03 000010 8IT04 000020 000040 BIT05 BIT06 = 000100 BIT07 000200 BITOO 000400 BIT09 001000 BIT1 000002 BIT10 002000 B1T11 004000 BIT12 010000 B1T13 020000 BIT14 040000 B1T15 100000 BIT2 = 000004 8IT3 000010 BIT4 000020 BITS 000040 B1T6 = 000100 BIT7 :: 000200 8IT8 000400 001000 BIT9 000002 BKDEF 000020 BKMOD BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKT1M = 100000 CLKPRE= 000001 CONF1G= 000056 CQOVF = 000001 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT. ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT. EVN=' 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT. SMX= 000106 DT.SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 DT. SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DvID1 :::: 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 30A(1052) SYMBOL TABLE MACY11 20-SEP-78 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT 000120 INTR 100000 IOMOD 10MODP= 102000 IOMODR= 112000 IOMODX= 110000 035050 JACK K1PARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 K1PDR1= 1'72302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 K1PDR5= 172312 K1PDR6= 172314 K1PDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 18:29 PAGE 20 MODSEl= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP=: MSGHDR= MSGHNG=: MSGHRO=: MSGMAP=: MSGNUL=: MSGPOP=: MSGPRM=: MSGRES::;: MSGSFT= MSGSKE=: MSGSMB= MSGSfvlH= SEQ 0887 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 00~002 177776 000001 000006 000003 000015 000014 MSGSMS~: '000016 MSGSTD:: 000000 MSGSYS:: 000012 MSGVE6: 000020 NBKMOO:: 001000 NCPUOp:: 000020 NO.'-\PTY:: 000002 000000 NULL 024020 OWEN PAERR 000010 PARPRE:: 002000 PARSTA:: 000100 PASCNT:: 000034 PDP LSI:: 020000 004000 PDP60 010000 POP70 000000 PRIO 000040 PR 11 000200 PRI4 000240 PRI5 000300 PRI6 000340 PRI7 PRRAND OOOOOORG 000000 PRO 000200 PR4 000240 PR5 000300 PR6 00U340 PR7 177776 PS 177776 PSW RANDOM= *' * * *'* '" G RANNUM= 000054 RBUFEA= 000130 RBUFPA= OC0126 RBUFSZ= 000132 R8UFVA= 000124 RDSERV~ 000'101 RDlrJHMI = 000022 RELERR= 000020 RElMOD= 020000 RElTIM= 010000 000056 RESl 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOO= 100000 R5VALU= 001740 SAM 075464 SBADR = 00010'2 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 00a006 Sc. ALe= 000014 SC.APC= 000016 SC.CKL= 000002 sc. CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO SRl 1775'74 177576 SR2 172516 SR3 000026 STAT STATBI= 064757 STAT1 = 000027 SUSPND= GOOOO1 000062 SVRO 000064 SVR1 000066SVR2 000070 SVR3 000072 SVR4 000074 SVR5 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = OOOOO:;;~ UIPARO= 177640 PRRAND (PROCESS 'RAND' TRAP CALL) PRRAND.MAC 28-JUL-78 09:26 UIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPOR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= 177642 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 . ABS. 000000 000052 MACY11 30A(1052) SYMBOL TABLE WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 WDFR 000116 WDTO 000114 WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 XOFF 000023 XON :: 000021 $BGNLE= 177777 $ERFLG= Ou0400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 OSKZ:PRRAND,DSK~:PRRAND=SPMAC/ML,EQUATE,PRRAND RUN-T IME: 11 1 .3 SECONDS RUN-TIME RATIO: 27/12=2.1 CORE USED: 14K (27 PAGES) 20-SEP-78 $F$DEC= 000220 $F$OO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR :: 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 18:29 PAGE 20-1 SEQ 0888 $F$YES=: $IFLEV=: $ LOCT A=: $LSTIN=: $LSTTA=: $NEST L=: $NSKO -' $SAV LE=; $TAGLE::; $TAGNU=; $TEMP _. $$ARGC=: $$BYTE .. $$CASE=: $$OST -$$ELOC:: $$ERFL:: 000402 177777 177777 000001 000001 177777 000300 177777 177777 050002 000300 000002 000000 000000 000000 000000 000000 $$FLAG= 000000 $$FROM= 000001 $$LOC = 000000 $$LOCN= 000000 $$I~EG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000052R .MAIN. MACV11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 576 579 599 18:30 TABLE OF CONTENTS COMMON EQUATE MODULE PRSOFT (COMMON DEFINITIONS & REFERENCES) 000000 I • PR I NT i SPMAC: VERSION 1.1 PRSOFT (CODE) SEQ 0889 PRSOFT (PROCESS SOFT ERRORS) PRSOFT.MAC 28-JUL-78 09:26 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 MACY11 30A(1052) 20-SEP-78 18:30 COMMON EQUATE MODULE PAGE 19 .TITLE PRSOFT (PROCESS SOFT ERRORS) .IDENT Iva.ol ;++ MODULE NAME: PRSOFT FUNCTIONAL DESCRIPTION: THIS MODULE IS CALLED AS A RESULT OF A 'SOFERR' TRAP EXECUTED BY AN OPTION MODULE. FIRST THE FOLLOWING IS DONE: 1. THE MODULE'S SOFT ERROR COUNT IS INCREMENTED. 2. ERROR MESSAGE IS QUEUED UP. 524 525 IF THE ENVIRONMENT IS APT, THEN AN APT ERROR HANDLING ROUTINE IS CALLED AND ON RETURN, THE CONTROL GOES BACK TO THE CALLER. 526 527 IF NOT UNDER APT ENVIRONMENT, THEN 528 529 1. IF 8IT15 OF THE SOFTWARE SWITCH REGISTER IS SET, THE MODULE IS DROPPED WITH 'MODULE DROPPED' MESSAGE PRINTED, EVEN ON THE FIRST ERROR. 2. IF THE ERROR COUNT IS EQUAL TO OR GREATER THAN THE LIMIT, THEN BIT14 OF THE SOFT~ARE SWITCH REGISTER IS CHECKED. IF BIT14 IS SET, THE MODULE IS NOT DROPPED. 3. CONTROL RETURNS TO THE CALLER. 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: 1. DATA TABLE OFFSETS 2. MODULE HEADER OFFSETS OUTPUTS: NONE IMPLICIT OUTPUTS: 1. DATA TABLE 2. MODULE HEADER PATHOLOGICAL CONNECTIONS: NONE SUBORDINA1E ROUTINES CALLED: 1. DRPMOD 2. ENQTO 3. APTSER 4. SAVREG 5. HESREG ;DROP A MODULE ROUTINE ;ENQUE AN ERROR MSG ROUTINE ;APT SOFT ERROR ROUTINE FUNCTIONAL SIDE EFFECTS: UNDER APT ENVIRO~MENT IT CAN SHUT DOWN THE EXCERCISER. SEQ 0890 PRSOFT (PROCESS SOFT ERRORS) PRSOFT.MAC 28-JUL-7S 09:26 564 565 566 567 568 569 570 MACY11 30A(1052) 20-SEP-78 18:30 COMMON EQUATE MODULE PAGE 19-1 SEQ 0891 CALLING SEQUENCE: CALL PRSOFT IN <DT> WHERE DT = DATA TABLE ADDRESS VERSION: 0.0 571 572 573 574 EDIT DATE BY REASON PRSOFT (PROCESS SOFT ERRORS) PRSOFT.MAC 2B-JUL-7B 09:26 576 577 578 579 (1) 580 581 582 583 584 585 586 587 588 MACY11 30A(1052) 20-SEP-78 18:30 PAGE 19-2 PRSOFT (COMMON DEFINITIONS & REFERENCES) .SBTTL PRSOFT (COMMON DEFINITIONS & REFERENCES) 000000· 000000· 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG:::1 ;**************** ; REFERENCED BY OTHER MODULES ; .GLOBL PRSOFT ;MODULE ENTRY POINT ;**************** 589 590 591 592 593 594 595 596 ; GLOBAL REFERENCES , .GLOBL ENQTQ .GLOBL APTSER .GLOBL DRPMOD .GLOBL SAVREG .GLOBL RESREG 597 ;***************** ENQUE A MESSAGE INTO THE TYPE QUEUE APT SOFT ERROR HANDLER IDROP THE MODULE· ROUTINE SEQ 0892 PRSOFT (PROCESS SOFT ERRORS) 28-JUL-78 09:26 PRSOFT.MAC 599 600 601 (2) 602 603 604 605 606 607 608 (3) 609 (4 ) 610 (4) 611 (4) 612 613 614 615 616 617 (4) (6) 618 619 620 621 622 623 (6) 624 625 626 627 628 629 (6) 630 (6) 631 (3) (8) (7) (6) (5) (4) (3) (3) 632 633 634 635 636 MACV11 30A(1052) 20-SEP-78 PRSOFT (CODE) 13:30 PAGE 19-3 SEQ 0893 .SBTTL PRSOFT (CODE) ROUTINE PRSOFT <DTA> 000000' 000000' PI~SOFT : ;+ ; SAVE REGS, GET DTARLE ADDRESS AND MODULE ; HEADER ADDRESS. ;- 000000' 000000' 000004' 000004' 000010' 000010' 000014' 000014 1 CALL SAVREG 004767 OOOOOOG 016500 000000 016001 000002 JSR PC,St\VREG MOV DTA(R5) ,RO MOV DT. PC(RO) ,Rl MOV (Rl) ,R2 LET RO '- DTA(R5) LET Rt '- DT.PC(RO) LET R2 .- (R1) 011102 ;+ j POINT R3 TO TRAP ADDRESS ;- 000016' 000016' 010103 000020' 162703 LET R3 := Rl - #2 000002 MOV SUB ;+ ; POINT R1 TO RETURN ADDRESS ,' 000024' 000024' 062701 LET Rt : = Rt + #4 000004 ADD #4, R1 INC SOFCNT(R2) INC SOFPAS(R2) MOV MOV MOV MOV MOV MOV JSR MOV R5,-(SP) Rl,-(R5) R2,-(R5) R3,-(R5) #MSGSFT,-(R5) RO,-(R5) PC,ENqTQ (SP)+,R5 ;+ ; INCREMENT MODULE'S SOFT ERROR COUNT AND ENQUE THE ERROR ; MESSAGE. , 000030' 000030' 000034' 000034' 000040' 000040' 000042' 000044' 000046' 000050' 000054' 000056' 000062' LET SOFCNT(R2) '- SOFCNT(R2) + #1 005262 000042 005262 000046 010546 010145 010245 010345 012745 010045 004767 012605 LET SOFPAS(R2) '- SOFPAS(R2) + #1 CALL ENQTQ IN <RO,#MSGSFT,R3,R2,R1> 000006 OOOOOOG ;+ ; IF APT ENVIRONMENT, CALL APT ERROR HANDLING ROUTINE ;- PRSOFT (PROCESS SOFT ERRORS) 28-JUl-78 09:26 PRSOFT.MAC 637 (6) (9) 638 (3) (4) (3) (3) 639 (4) (3 ) 640 641 642 643 644 645 646 647 (6) (9 ) 648 (3 ) (5) (4) (3 ) (3) 649 (4) (3) 650 651 652 653 654 655 656 (6) (9) (6 ) (9 ) 657 (3 ) (5) (4 ) (3) (3) 658 (4 ) 659 (4) 660 661 (4) 662 663 000064' 000064' 000072 1 000074' 000074' 000076' 000100 1 000104 1 000106' 000106 1 000110 1 MACY11 30A(1052) 20'-SEP-78 PRSOFT (CODE) 18:30 PAGE 1 ~~-4 SEQ 0894 IF #APTPRE SETIN DT.CFO(RO) THEN 032760 001406 010546 010045 004767 012605 000200 000014 CALL APTSER IN <RO> OOOOOOG ELSE 000431 BIT BEQ #APTPHE,DT.CFO(R 50002$ MOV MOV JSR MOV R5,"-(SP) BR 50003$ BIT BEQ #BIT15,DT.SvJR(RO 50004$ MOV MOV MGV JSR MOV R5,-(SP) R2,-(R5) RO,-(R5) PC,DRPMOD BR 50005$ RO,-(r~15) PC,APTSER (SP)+,R5 50002$: ;+ ; THE ENVIRONMENT IS NOT APT. ; CHECK SWITCH REGISTER IF THE MODULE IS TO BE DROPPED i DUE TO THIS ERROR. of 000110' 000110 1 000116' 000120 1 000120 1 000122' 000124 1 000126' 000132' 000134 1 000134 1 000136 1 IF #B1T15 SETIN DT.SWR(RO) THEN 032760 001407 010546 010245 010045 004767 012605 100000 000056 CALL DRPMOD IN <RO,R2> OOOOOOG ELSE 000416 (SP)+~R5 50004$: ;+ ; IF THE COUNT IS EQUAL TO OR GREATER THAN THE LIMIT, ; CHECK SWITCH REGISTER IF MODULE IS TO BE DfWPPED. ;- 000136' 000136' 000144' 000146' 000154 1 000156 1 000156 1 000160' 000162 1 000164' 000170 1 000172 1 000172' 000172' 000172' 000172' 000172 1 026260 101412 032760 001006 010546 010245 010045 004767 012605 000042 000106 040000 000056 THEN IF SOFCNT(R2) HI DT.SMX(RO) AND #8IT14 NOTSETIN DT. 5WR (rW) SOFCNT(R2),DT.SM CMP 50006$ BlOS #BIT14,DT.SWR(RO BIT 50006$ BNE CALL DRPMOD IN <RO,R2> R5,-(SP) MOV R2,-(R5) MOV RO,-(R5) MOV PC,DRPMOD JSR (SP)+,R5 MOV ENDIF 5,0006$ : OOOOOOG ENDIF 50005$: ENDIF ;+ !:i0003$ : PRSOFT (PROCESS SOFT ERRORS) PRSOFT.MAC 28-JUL-78 09:26 664 665 666 667 (3 ) 668 669 (3) (3) (2) 670 671 MACY11 30A(1052) 20-SEP-78 PRSOFT (CODE) 18:30 PAGE 19-5 SEQ 0895 ; RESTORE REGS AND RETURN 000172 1 000172 1 004767 000176 1 000176 1 000176 1 000176 1 000207 000001 CALL RESREG OOOOOOG JSR PC.RESREG RTS PC ENDRTN 50000$: 50001$: .END PRSOFT (PROCESS SOFT ERRORS) 28-JUL-78 09:26 PRSOFT.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 APTSER= ****** G 000106 ASB ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 000110 AWAS BITO 000001 BITOO 000001 BIT01 000002 BIT02 000004 BIT03 000010 8IT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 BIT09 001000 BIT1 - 000002 BIT10 002000 BIT11 004000 BIT12 010000 BIT13 020000 040000 BIT14 100000 BIT1S 8IT2 000004 000010 BIT3 000020 BIT4 BIT5 000040 000100 BIT6 000200 BIT7 000400 BITS 001000 BIT9 BKDEF = 000002 BKMOD ::;: 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF 000015 CR CSRA = 000100 18:30 20-SEP-78 MACY11 30A(1052) SYMBOL TABLE, 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DRPMOD= ****** G DSEVNT= 000014 000000 DTA DT.ADD= 000042 DT.AP = 000100 DT.APK.= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= OOOOGO DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 Dr. KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 0000G6 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 PAGE 20 SEQ 0896 ENBNUL= 000001 000000 ENQTQ = ****** G EOPBIT= COOO01 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP':I 040000 INHEPR= 020000 INHREL::;: 001000 INHRRE:; 000400 INIT -, 0'00030 lNTR ;;: 000120 lOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPARS= 172352 KIPAR6= 172354 KIPAR7= 172~56 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED ~NDLST= " MEMPAS:: MODEXH:: MODHOL:: MODSEL= MSGCKD:: MSGCKS:: MSGDER:: MSGDRP:= MSGECH:: MSGEOP:: MSGHDR:= MSGHNG:= MSGHRD:= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC'" N5KMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDPGO PDP70 PRIO P R11 PRI4 PRI5 PRI6 PRI7 PRSOFT PRO PR4 PR5 PR6 PR7 PS PSVJ RANNUM= 040000 004000 00:2000 OO~OOO 000010 000011 000005 000017 177777 00D013 000004 000022 000007 000021 177775 000002 177776 000001 008006 000003 000015 000014 000016 000000 000012 00OC20 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 . 000240 000300 000340 OOOOOORG 000000 008200 000240 000300 000340 177776 177776 000054 R8UFEA= 000130 RBUFPA= 000126 R9UFSZ= 000132 R8UFVA= 000124 RDSERV= 000101 ,RDWHMI = 000022 'RE LERR= 000020 RELMOD= 020000 RiEL TIM= 0100uO RESREG= ****** G 000056 RES1 0000601 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SAVREG= ****** G SBADR - 000102 SBKIVlOD= 000000 SBKSEL= 010000 SC.ADR= OOOOOE> Sc. ALC= 000014 SC.APC= 00001 Ei SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 00001~! SENDLS= 177777 SOFCNT= 00004~! SOFPA$:: 00004E> SPACE = 0OO04() SPOINT= 000032 SPVALU= 002200 1 7757~! SRO 177574 SR1 SR2 177576 17251E> SR3 STAT 000026 STATBl= 064757 STAT1 - 000027 SUSPND= 00000'1 000062 SVRO 000064 SVR1 00()06E3 SVR2 000070 SVR3 00007:2 SVR4 SVR5 000074 00007E5 SVR6 SYSCNT= 00005:2 MACY1' 30A(1052) 20-SEP-78 SYMBOL TABLE PRSOFT (PROCESS SOFT ERRORS) 28-JUL-78 09:26 PRSOFT.MAC WBSTAT:: 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 SVSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 ASS. 000000 000200 000 001 ERRORS DETECTED: 0 DEFAULT GLOSALS GENERATED: 0 DSKZ:PRSOFT,DSKZ:PRSOFT=SPMAC/ML,EQUATE,PRSOFT RUN-TIME: 13 3 .3 SECONDS RUN-TIME RATIO: 32/17=1.B CORE USED: 14K (27 PAGES) 18:30 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO 000001 $ISK1 000001 $ISK2 :: 000001 PAGE 20-1 SEQ 0897 $LOCTA= $LSTIN= $LSTTA= $NESTL=: $NSKO $NSK 1 _. $NSK2 _. $NSK3 :: $SAVLE=: $T AGLE:: $TAGNU:: $TEMP $TSKO :: $TSKl $TSK2 -$$ARGC:: $$BYTE= $$CASE= $$DST $$ELOC= 177777 000001 000001 177777 000300 000110 000110 000110 177777 177777 050007 000300 050003 050005 050006 000002 000403 000000 000000 000402 $$.ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC :: 000154R $$LDeN= 000000 17777'7 $$REG $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC :: 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 00Q200R = .MAIN. MACV11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 561 564 586 18:30 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT RANDOM (CODE) iSPMAC: VERSION 1.1 SEQ 0898 RANDOM (PSEUDO-RANDOM NUMBER GENERATOR) MACV11 30A(1052) 20-SEP-78 RANDOM.MAC 28-JUL-7B 09:26 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 18:30 .TITLE RANDOM (PSEUDO-RANDOM NUMBER GENERATOR) .IDENT JVO.Oj ;++ MODULE NAME: RANDOM FUNCTIONAL DESCRIPTION: THIS MODULE GENERATES AND RETURNS A 16-BIT RANDOM NUMBER TO THE CALLER. THE ALGORITHM USED CONSISTS OF ROTATING fWO BASE WORDS ONE POSITION TO THE RIGHT AND THEN PERFORMING AN EXCLUSIVE-OR OPERATION ON CERTAIN BITS IN WORD-1. TO INSURE THOROUGH RANDOMNESS OF THE NUMBER, THIS OPERATION IS REPEATED 16 TIMES BEFORE RETURNING THE RANDOM NUMBER FROM THE SECOND WORD. INPUTS: NONE IMPLICIT INPUTS: NONE OUTPUTS: A RANDOM NUMBER IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG RESREG FUNCTIONAL SIDE EFFECTS: NONE. 549 CALLING SEQUENCE: CALL RANDOM O~T <XXX> 550 551 WHERE XXX 552 553 554 555 556 557 558 559 PAGE 19 = RANDOM NUMBER RETURNED. VERSION: 0.0 EDIT DATE BY REASON SEQ 0899 RANDOM (PSEUDO-RANDOM NUMBER GENERATOR) MACY11 30A(1052) 20-SEP-7E 18:30 RANDOM.MAC 28-JUL-78 09:26 COMMON DEFINITIONS AND REFERENCES 561 562 563 564 (1) 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 PAGE 19-1 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 ;**************** ; REFERENCED BY OTHER MODULES , .GLOBL RANDOM ;MODULE'S ENTRY POINT ;**************** ; GLOBAL REFERENCES .GLOBL .GLOBL , SAVREG RESREG ;**************** ; LOCAL STORAGE 000000' 022333 000002' 123456 WORK: RAND: 2232:3 123456 WORD-1 WORD-2 THE CHOICE OF VALUES IS ARBITRARY SEQ 0900 RANDOM (PSEUDO-RANDOM NUMBER GENERATOR) MACY11 30A(1052) RANDOM.MAC 28-JUL-78 09:26 RANDOM (CODE) 586 587 588 (2) 589 590 591 592 593 594 595 (3) 596 (4) 597 (4) 593 599 600 601 602 603 604 605 606 (4) (5) (4) (7) (5) (5) (7) 607 (7) 608 (7) 609 '( 6 ) 61.0 (6) 611 (6) (9) 612 (6) 613 (4) 614 (4) (3) 615 (6) 616 (6) (9) 617 20-SEP-78 18:30 PAGE 19-2 SEQ 0901 .SBTTL RANDOM (CODE) ROUTINE RANDOM <RSLT> 000004' 000004' RANDOM: ;+ ; SAVE REGISTERS ; GET THE TWO BASE WORDS INTO RO AND R1. 000004' 000004' 004767 000010' 000010' 016700 000014' 000014' 016701 CALL SAVREG OOOOOOG JSR PC, SAVF~EG MOV WORt', RO MOV RAND,R" MOV BR #15. ,R:2 50002$ DEC R2 TST SLT R2 50004$ ROR RO ROR Rl BCS 50005$ SIC #BIT12,RO SIT BEQ #BIT10,RO 50006$ SIS #BIT12,RO SR 50007$ SIS #BIT12,RO BIT BEQ #BIT10,RO 50010$ LET RO "- WOHK 177764 LET Ri : = RAND 177762 ;+ ; SET UP LOOP FOR 16 ITERATIONS, ROTATE THE TWO ; WORDS ONE POSITION TO THE RIGHT, AND THEN DO , THE EXCLUSIVE-OR OPERATION ON BIT12 AND BIT10 ; OF WORD-1 I BASED ON "CARRY" CONDITION. 000020' 000020' 000024' 000026' 000026' 000030' 000030' 000032' 000034' 000034' 000036' 000036' 000040' 000040' 000042' 000042' 000046' 000046' 000052' 000054' 000054' 000060' 000060' 000060' 000060' 000062' 000062' 000062' 000066' 000066' 000072' 000074' DEeR R2 FROM #15. TO #0 BY #1 012702 000401 000017 50003$: 005302 50002$: 005702 002423 LET RO .- RO ROTATE -#1 006000 LET R1 '- R1 ROTATE -#1 006001 IF.NO.CARRY THEN 1 0 341 0 LET RO '- RO CLR.BY #8IT12 042700 010000 032700 001402 002000 052700 010000 IF #BIT10 SETIN RD THEN LET RO := RO S[T.BY #BIT12 ENDIF 50006$: ELSE 000407 50005$: LET RO "- RD SET.BY #BIT12 052700 010000 032700 001402 002000 IF #BIT10 SETlN RO THEN LET RC := RO CLR.BY #BIT12 RANDOM (PSEUDO-RANDOM NUMBER GENERATOR) MACY11 30A(1052) RANDOM.MAC 28-JUL-78 09:26 RANDOM (CODE) (6) 618 (4) 619 (4) 620 (4) (3) 621 622 623 624 625 626 627 628 629 (4) 630 (4) 631 (4) 632 633 634 635 636 637 (3) 638 639 (3) (3) (2) 640 641 000074 1 042700 000100' 000100' 000100' 000100' 000100 1 000100 1 000752 000102 1 010000 20-SEP-78 18:30 PAGE 19-3 ENDIF SEQ 0902 BIC #BIT12,RO BR 50003$ MOV RO, WOR:K MOV R1,RAND MOV R1,RSL.T(R5) JSR PC,RESREG RTS PC 50010$: ENDIF 50007$: ENDDEC 50004$: ;+ ; NOW THAT YOU HAVE DONE THE 16 ITERATIONS 'AND ; GOTTEN THE RESULT, STORE THE TWO WORDS BACK ; INTO THE BASE WORDS. DON1T FORGET TO RETURN : THE RESULT, 000102 1 000102 1 010067 000106 1 000106' 010167 000112' 000112 1 010165 LET WORK .- RO 177672 LET RAND '- R1 177670 LET RSLT(R5) .- R1 000000 ;+ ; RESTORE REGISTERS AND RETURN - HURRAH. 000116 1 000116 1 004767 000122 1 000122 1 000122 1 000122 1 000207 000001 CALL RESREG OOOOOOG ENDRTN SOOOO$: ~;0001$: .END RANDOM (PSEUDO-RANDOM NUMBER GENERATOR) MACY11 30A(1052) SYMBOL TABLE 28-JUL-78 09:26 RANDOM.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTA1- = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 000001 BITO BITOO 000001 000002 BIT01 000004 BIT02 BIT03 000010 BIT04 000020 BITOS 000040 000100 BIT06 000200 BIT07 BIT08 000400 BIT09 001000 BIT1 000002 B111 0 002000 1:31T11 004000 BIT12 010000 BIT 13 020000 BIT14 040000 BIT15 100000 BIT2 000004 BIT3 000010 000020 BIT4 BITS 000040 BIT6 000100 BIT7 000200 BIT8 000400 BIT9 001000 000002 BKDEF BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF CR = 000015 CSRA = 000100 CSRC :II 000102 CTRLC = 000003 CTRLO = 000017 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADO= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT. EXS'= 000060 DT.FCH= 000037 DT.FCN= 0'00036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU;: 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 20-SEP-78 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000:203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM"= 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT :;: 000C30 000120 INTR lOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1== 172342 KIPAR2= 1723L;4 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1:.: 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 K1PDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 MED 076600 MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 MODSEL= 001000 18:30 PAGE 20 MSGCKD=: MSGCKS= MSGDER=: MSGDRP=: MSGECH= MSGEOP=: MSGHDRc:: MSGHNG= MSGHRD=: MSGMAP=: MSGNU L=: MSGPOP=: MSGPRM=: MSGRES;: MSGSFT=: MSGSKE=: MSGSMB= MSGSMH:: MSGSMS= MSGSTD= MSGSYS:: MSGVEC:: NBKMOD= NCPUOP= NOAPTY== NULL. .OWEN PAERR -PARPRE= PARSTA= PASCNT= PDPLSI': PDP60 PDP70 PRIO PRI1 PR14 PR15 PR16 PR17 PRO PR4 PR5 PR6 PR7 PS PSW RAND RANDOM RANNUM= RBUFEA= RBUFPA= RBUFSZ= SEQ 0903 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 0OOO2{) 00100.0 000020 000002 000000 0240,20 000010 00:2000 000100 000034 020000 004000 010000 000000 000040 000.200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000002R 0OOO04RG 000054 000130 000126 000132 RBUFVA= 000124 RDSERV= 000101 RD\tJHM 1= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 RESREG= **f**-i' G 000056 RES' 000060 R='S2 RICHAR= 031060 RPTDAT= 002000 RSLT 000000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 SAM 075464 SAVREG= ****** G SBADR = 000102 SBKMOD= 000000 SBKSE L= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 Sc. CK L= 000002 Sc. CKP= 000004 Sc. CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SQFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 :: 177572 SRO 177574 SR1 177576SR2 1725'16 SR3 0000260 STAT STATB1= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000 062~ 000064 SVR1 000066 SVR2 000070 SVR3 00007~! SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 RANDOM (PSEUDO-RANDOM NUMBER GENERATOR) MACY11 30A(1052) SYMBOL TABLE 28-JUL-78 09:26 RANDOM.MAC WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO OOOOOOR WORK WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPJR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 ABS. 000000 000124 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:RANDOM,DSKZ:RANDOM=SPMACjML,EQUATE,RANDOM RUN-TIME: 13 3 .4 SECONDS RUN-TIME RATIO: 31/17=1.8 CORE USED: 14K (27 PAGES) 20-SEP-76 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $ISK1 = 000001 $LOCTA= 177777 $LSTIN= 000001 18:30 PAGE 20-1 $LSTTA= $NEST L=: $NSKO $NSK1 -$NSK2 -$NSK3 -$SAV LE=: $SSKO -$T AGLE=: $TAGNU:: $TEMP $TSKO $TSK1 $TSK2 $TSK3 $$ARGC:: $$8YTE:: $$CASE:: $$DST -$$ELOC::: SEQ 0904 000001 177777 000300 000220 000110 000110 177777 050003 17'1'177 050011 000300 050004 050003 050007 050010 000002 000403 000000 000000 000402 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000072R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 050000 000124R $$Er~F L= ,.MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 559 562 609 18:31 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 I • PR I NT RELCTL ROUTINE ; SPMAC: VERS I ON 1.1 SEQ 0905 RELCTL - RELOCATION CONTROL RELCTL.MAC 26-JUL-78 09:26 MACY11 30A(1052) 20-SEP-78 18:31 COMMON EQUATE MODULE PAGE 19 508 509 510 .TITLE RELCTL - RELOCATION CONTROL .IDENT /VO. 0/ 511 ;++ 512 513 514 SEQ 0906 MODULE NAME: RELCTL 516 517 FUNCTIONAL DESCRIPTION: CONTROLS THE SEQUENCE OF EVENTS THAT MUST OCCUR BEFORE, DURING, AND AFTER THE RELOCATION PROC~SS. 518 519 520 INPUTS: DATA TABLE ADDRESS 515 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 IMPLICIT INPUTS: CURRENT BASE ADDRESS, CONFIGURATION WORD 0, STATUS INDICATOR WORD 0, STATUS INDICATOR WORD OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: MESSAGE CODE IN MSGDEQ (MD. COD) SUBORDINATE MODULES CALLED: CLKOFF CLKON PRRLOC WBFLIM UNIMAP WSTBUS MSGDEQ DX.INI FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL RELCTL IN <A> A=DATA TABLE ADDRESS VERSION: 0.0 554 555 EDIT 55G 557 ;TURN OFF SYSTEM CLOCK ;TURN ON SYSTEM CLOCK ;PROCESS RELOCATION ;DETERMINE WRITE BUFFER LIMITS ;LOAD UNIBUS MAP ;WRITE WORST-CASE UNIBUS PATTERNS ;MESSAGE DEQUEUER ;INITIALIZE QUEU2S AND KEYBOARD ;-- BY DATE F~EASON RELCTL- RELOCATION CONTROL RELCTL.MAC 28-JUL-78 09:26 561 (1) 563 564 565 566 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT' iSPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 567 , ;**************** 568 569 ; REFERENCED BY OTHER MODULES 570 571 572 .GLOBL 573 574 575 i , 577 .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GL08L . GLOBL· .GLOBL .GLOBL .GLOBL 580 581 582 583 584 585 586 587 588 589 CLKOFF CMDPRC DX.KFL CLKGN PRRLOC UNIIVIAP WSTBUS DX.INI MSGDEQ MD. COD ;**************** , 591 592 , 594 595 596 597 598 599 600 601 602 603 604 605 606 607 ;PROCESS A KEYBOARD COMMAND ;KEYBOARD FLAG ~'IlBFLIM 590 593 ;MODULE ENTRY POINT ; GLOBAL REFERENCES , 579 RELCTL , ;**************** , 576 578 SEQ 0907 .SBTTL COMMON DEFINITIONS AND REFERENCES 559 560 562 MACY11 30A(1052) 20-SEP-78 18:31 PAGE 19-1 COMMON DEFINITIONS AND REFERENCES ;MESSAGE DEQUEUER ;MESSAGE CODE IN MESDEQ i GLOBAL EQUATES .GLOBL .GLOBL .GLOBL .GL08L .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLObL DT.STO DT.ST1 DT.CFO Dj.ADDR RELTIME MSGNUL ADDR22 RCS~t IE CLKPRES MEMPAS AUTO ;****************** ;STATUS INDICATOR WORD 0 ;STATUS INDICATOR WORD 1 ;CONFIGURATION WORD 0 ;CURRENT BASE ADDRESS ;RELOCATION TIME INDICATOR ;NULL MESSAGE TYPE CODE ;22-8IT ADDRESSING ;KB INPUT CSR ;INTERRUPT ENABLE ;SYSTEM CLOCK PRESENT ;LAST SYSTEM EOP WAS IN LOWEST MEMORY ;AUTOMATIC MODE RELCTL - RELOCATION CONTROL 28-JUL-78 09:26 RELCTL.MAC 609 610 611 612 000000' (2 ) 000000' 613 614 615 616 617 618 619 000000' (2 ) 000000' 620 621 622 623 . 624 625 626 000002' (4 ) 000002' 627 628 629 630 631 632 633 000006' (6 ) 000006' (9) 000014' 634 000016' (3 ) 000016' (4) 000020' (3 ) 000022' (3 ) 000026' 635 000030' (4) 000030' 636 637 638 639 000030 f (6) 000030' (9 ) 000036' 640 000040' (3) 000040' (4) 000042' 000044' (3) (3) 000050' 641 000052' 000052' (4) 642 000056' (4) 000056' 643 644 645 646 18:31 20-SEP-78 MACY1t 30A(1052) RELCTL ROUTINE PAGE 19-2 SEQ 0908 .SBTTL RELCTL ROUTINE ROUTINE RELCTL <TABL> RELCTL: ;+ ; SAVE REGISTERS ,' - PUSH RO 010046 MOV RO,-(SP) MOV TABL(R5),RO BIT SEQ #CLKPF;:ES, DT. CFO ( 50002$ MOV MOV dSR MOV R5,-(SP) RO,-(f;:5) PC, CUWFF (SP)+,R5 CMP DX.KFt,#1 50003$ ;+ ; SET RO TO THE START OF THE DATA TABLE ,' - LET RO := TABL(R5) 016500 000000 ; t· ; SHUT OFF THE SYSTEM CLOCK IF IT EXISTS. ; _. IF #CLKPRES SETIN DT.CFO(RO) THEN 032760 001405 000001 000014 CALL CLKOFF IN <RO> 010546 010045 004767 012605 OOOOOOG ENDIF 50002$: ;+ ; SERVICE ANY FINAL I<EYBOARD COMMANDS ;IF DX.KFL EQ #1 THEN 026727 001007 OOOOOOG 000001 BNE CALL CMDPRC IN 010546 010045 004767 012605 OOOOOOG LET DX.KFL 005067 <RO> . - #0 OOOOOOG ENDIF ~50003$ : ;+ ; WAIT FOR THE TYPE-QUEUE TO EMPTY MOV MOV JSR MOV R5,-(SP) CLR DX.KFL RO,-(F~5) PC,CM[)PRC (SP)+lI R5 RELCTL - RELOCATION CONTROL RELCTL.MAC 28-JUL-7B 09:26 647 648 649 (3) 650 (3) (4) (3) (3) 651 (3) (6) 652 653 654 655 656 657 658 (3) (5) (4) (3) (3) 659 660 661 662 663 664 665 (6) (9) 666 (3) (4) (3) (3) 667 (4) 668 669 670 671 672 673 674 (3) (4) (3) (3) 675 676 677 678 679 MACY11 30A(1052) 20-SEP-78 RELCTL ROUTINE 18:31 PAGE 19-3 SEQ 0909 '- , 000056 1 000056 1 000056 1 000056' 000060' 000062' 000066' 000070 1 000070' 000076' REPEAT 5()004$: CALL MSGDEQ IN <RO> 010546 010045 004767 012605 026727 001367 MOV MOV L1SR MOV OOOOOOG UNTIL MD. COD EQ #MSGNUL OOOOOOG 177775 R5,·-(SP) RO,··(R~) PC,MSGDEQ (SP)+,H5 CMP BNE MD.COD,#MSGNUL 50004$ MOV MOV MOV JSR MOV R5,'-(SP) #O,'-(RS) RO,'-(R:5) PC,PRHLOC (SP)+,R5 BIT BEQ #CLKPRES,DT.CFO( 50005$ MOV MOV JSR R5,-(SP) RO,-(R5) PC,CLKON (SP)+.R5 ;+ ; RELOCATE 000100' 000100' 000102' 000106' 000110 1 000114' CALL PRRLOC IN <RO,#O> 010546 012745 010045 004767 012605 000000 OOOOOOG ;+ ; TURN THE SYSTEM CLOCK BACK ON IF IT EXISTS. 000116' 000116' 000124' 000126' 000126' 000130' 000132' 000136 1 000140' 000140 1 IF #CLKPRES SETIN DT.CFO(RO) THEN 032760 001405 01 0546 010045 004767 012605 000001 000014 CALL CLKON IN <RC> OOOOOOG MOV ENDIF 50005$: ;+ ; SET THE WRITE BUFFER LIMITS AND INITIALIZE THE WRITE BUFFER POINTER 000140' 000140 1 000142' 000144 1 000150 1 CALL WBFLIM IN <RO> 010546 010045 004767 012605 MOV MOV JSR MOV OOOOOOG ;+ ; IF THE UNIBUS MAP EXISTS, LOAD THE MAP REGISTERS. ;- R5,-(SP) RO,-(R5) PC,WBFLIM (SP)+,R5 RElCTl - RELOCATION CONTROL RELCTL.MAC 28-JUL-78 09:26 680 681 (6) (9) 682 (3) (4) (3) (3) 683 (4) 684 685 686 687 688 689 690 691 (6) (9) 692 (3) (4) (3) (3) 693 (6) (9) 694 (6) 695 (4) 696 (4) 697 698 699 700 701 702 703 (3) 704 705 706 707 708 709 710 711 (6) 712 713 714 715 000152 1 000152 1 000160 1 000162 1 000162' 000164' 000166= 000172 1 000174' 000174' MACY 11 30A ( 1052) 20-SEP-78 RELCTL ROUTINE 18: 31 PAGE 19-4 SEQ 0910 IF #ADDR22 SETIN DT.CFO(RO) THEN 032760 001405 001000 000014 BIT B£Q #ADDR22,DT.CFO(R 50006$ MOV MOV JSR MOV R5,-(SP} RO,-(R:5) PC, UNIIIJIAP (SP)+,R5 CMP BNE DT.ADDR(RO).#200 50007$ CALL UNIMAP IN <RO> 010546 010045 004767 012605 OOOOOOG ENDIF 5i0006$ : ;+ ; IF THIS RELOCATION WAS TO THE LOWEST PART OF MEMORY. WRITE THE ; WORST-CASE UNIBUS PATTERNS INTO ALL OF fREE MEMORY, ;- 000174' 000174 1 000202 1 000204 1 000204 1 000206 1 000210' 000214 1 000216 1 000216 1 000224' 000226' 000226' 000234' 000234' 000234 1 000234 1 IF DT.ADDR(RO) EQ #200 THEN 026027 001014 000042 000200 CALL WSTBUS IN <RO> MOV MOV JSR MOV 010546 010045 004767 012605 OOOOOOG R5,-(SP) RO,-(~!5) PC,WSTBUS (SP)+,R5 IF HAUTO SETIN DT.CFO(RO) THEN 032760 001403 000010 000014 052760 040000 000012 BIT BEQ #AUTO,DT.CFO(RO) 50010$ BIS #MEMPAS,DT.ST1(R JSR PC,DX.INI BIC #RELTJ:ME,DT.STO( LET DT.STi(RO) '- DT.ST1(RO) SET.BY #MEMPAS ENDIF :;0010$ : ENDIF :;0007$ : ;+ ; INITIALIZE THE QUEUES AND KEYBOARD. j- 000234 1 000234 1 004767 CALL DX.INI OOOOOOG ;+ ; CLEAR ,' - 000240' 000240 1 042760 TH~ RELOCATION TIME INDICATOR IN STATUS INDICATOR WORD 0 LET DT.STO(RO) '- DT.STO(RO) CLR.BY #RELTIME 010000 000010 j+ ; RESTORE REGISTERS RELCTL - RELOCATION CONTROL RELCTL.MAC 28-JUL-78 09:26 716 717 718 (2 ) 719 720 721 (3 ) (3 ) (2) 722 723 MACV11 30A(1052) 20-SEP-78 RELCTL ROUTINE 000246 1 000246 1 012600 POP RO 000250 1 000250 1 000250 1 000250' 000207 ENDRTN 000001 18:31 PAGE 19-5 SEQ 0911 MOV (SP)+,RO RTS PC 50000$: 50001$: .END - RELOCATION CONTROL RELCTL 28-JUL-78 09:26 RELCTL.MAC ACSR 000102 ACT8IT= 004000 ADDR22= 001000 G ADR = 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 G AUTOST= 020000 AVJAS 000110 BITO 000001 BITOO 000001 BIT01 000002 BIT02 000004 BIT03 000010 BlT04 000020 BITOS 000040 BIT06 000100 BIT07 000200 BITOS 000400 001000 BIT09 BIT1 000002 002000 BIT10 BI T 11 004000 BIT12 010000 BIT13 020000 ElIT14 040000 BlT1S 100000 BIT2 000004 BIT3 000010 BIT4 000020 BITS 000040 BIT6 000100 000200 BIT7 000400 BITS BIT9 001000 000002 BKDEF BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKOFF= ****** G CLKON = ****** G CLKPRE= 000001 G CMDPRC= ****** G CONFIG= 000056 CQOVF = 000001 20-SEP-78 MACY11 30A(1052) SYMBOL TABLE 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRlU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ES!= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= (100037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT. KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS::: 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSl= 000046 DT.STO= 000010 DT.ST1= 0.00012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 DX.INI= ****** DX.1<FL= ****** ECCMEM= 000100 G G G G G G 18:31 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM ::: 000122 000100 G IE INDPAR= 000C40 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 IN IT INTR 000120 IOMOD = 100000 IOMODP= 102000 IOMODR= 112.000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7=- 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 1'72304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 PAGE 20 SEQ 0912 MD.COD= MED MEMPAS:: MODEXH:: MODHOl:= MODSEl::: MSGCKD:: MSGCKS:: MSGDEQ':; MSGDER::: MSGDRp::: MSGECH::: MSGEOP= MSGHDR:= MSGHNG= MSGHRD:= MSGMAP= MSGNUL:= MSGPOP:= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSl= PDP60 PDP70 PRIO PRI1 PRl4 PR15 PRI6 PRI7 PRRLOC= PRO PR4 PR5 PR6 PR7 ****** G 076600 040000 G 004000 00:2000 001000 000010 000011 ****** G 00U005 000017 177777 000013 000004 000022 000007 000021 177775 G 000C02 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 02~O20 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 ****** G 000000 000200 000240 000300 000340 PS PSW RAN~MM= 177776 177776 000054 000130 000126 000132 000124 RBUFEA= RBUFPA= RBUFSZ= RBUFVA= RCSR ****** G RDSERV= 000101 RDWHMI = 000022 RELCTL OOOOOORG RELERR= 000020 RELMOD= 020000 R£LTIM= 010000 G 000056 RES1 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= -j 000-00 R5VALU= 001740 SAM 07546L1SBADR :: 000102 SBKMOD= 000000 S8KSEL= 010000 SC.ADR= OOOOCE. SC.ALC= 000014 SC.APC= 00001 E; SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 00004Ei SPACE :: 00004Cl SPOlNT= 000032 SPVALU= 00220() 177572 SRO 177574 SR1 17757E) SR2 SR3 17251E> 000026 STAT STATBl= 064757 STAT1 = 000027 SUSPND= 00U0011 SVRO 000062 :: 000064 SVR1 00006E:; SVR2 00007() SVR3 SVR4 000072 20'-SEP-7B MACY 11 30A(1052) SYMBOL TABLE RELCTL - RELOCATION CONTROL 28-JUL-78 09:26 RELCTL.MAC UIPOR5= 177612 UIPDR6= 177614 UIPOR7= 177616 UNIMAP= ****** G WASAOR= 000104 WBFLIM= ****** G WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WSTBUS= ****** G WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF XON 000021 $8GNLE= 177777 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TABL 000000 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPOR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 ASS. 000000 000252 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:RELCTL,DSKZ:RELCTL=SPMAC/ML,EQUATE,RELCTL RUN-TIME: 13 4 .3 SECONDS RUN-TIME RATIO: 32/18=1.7 CORE" USED: 14K (27 PAGES) 18: 31 $ERFLG= 000400 $F$ANO= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$OEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 PAGE 20-1 SEQ 0913 $F$UNT= 000130 $F$vJHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $ISK1 = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA=: 000001 $NESTL=; 177777 $NSKO -" 000300 $NSK1 _. 000110 $NSK2 _. 000110 $SAV LE=: 177777 $TAGLE=: 177777 $T AGNU=: 050011 $TEMP =: 000300 $TSKO _. 050007 $TSK1 _. 050010 $$ARGC=: 000002 $$BYTE= 000403 $$CASE= 000000 $$05T = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000224!R $SLOCN= 000000 $$REG = 177'777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 = ()00252R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 529 532 563 617 18:31 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR RONOF 000000' .PRINT ;SPMAC: VERSION 1.1 KROTON & KROTOF - PROCESS THE IROTON 1 AND 'ROTOFF' KEYBOARD COMMANDS KROTON - KROTOF ROUTINE SEQ 0914 RONOF PROCESS THE IROTON I AND IROTOFF I KEYBOARD COMMANDS RONOF.MAC 28-JUL-78 15:35 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 .TITLE .IDENT MACY1130A(1052) 20-SEP-78 113:31 SEQ 0915 RONOF PROCESS THE IROTON I AND IROTOFF I KEYBOARD COMMANDS JVO.Oj ;++ MODULE PACKAGE NAME: RONOF FUNCTIONAL DESCRIPTION: THIS ROUTINE CONSISTS OF TWO MODULES: 1. KROTON - PROCESS THE KEYBOARD COMMAND 'ROTONI 2. KROTOF - PROCESS THE KEYBOARD COMMAND IROTOFFI VERSION: 0.0 EDIT PAGE 19 BY DATE REASON RONOF PROCESS THE 'ROTON' AND 'ROTOFF' KEYBOARD COMMANDS MACY11 30A(1052) 20-SEP-7B RONOF.MAC 28-JUL-78 15:35 COMMON DEFINiTIONS AND REFERENCES FOR RONOF 529 530 531 532 (1) 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 .SBTTL COMMON DEFINITIONS AND REFERENCES FOR RONOF .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG = 1 000000' 000000' 000001 000001 ;**************** ; REFERENCED BY OTHER MODULES: , .GLOBL .GLOBL ; 'ROTON' MODULE ENTRY POINT ;'ROTOFF' MODULE ENTRY POINT KROTON KROTOF ;**************** , ; GLOBAL REFERENCES: .GLOBL .GL08L .GLOBL .GLOBL ;ILLEGAL ARGUMENT MESSAGE ;CHECK AN ARGUMENT CM.A.RG ARGCHI, SAVREG RESREG , ;**************** , ; LOCAL STOr;:AGE: 000000' 000006' 000014' 000022' 000030' 000032' 000040' 000046' 000054' 000062' 000065' 051127 052502 051040 047511 000045 051127 052502 051040 047511 022506 000 052111 043106 052117 020116 020105 051105 052101 047117 RO.MGN: .ASCIZ /WRITE BUFFER ROTATION ON%/ 052111 043106 052117 020116 000 020105 051105 052101 043117 RO.MGF: .ASCIZ /WRITE BUFFER ROTATION OFF%/ RO.FLG: .8YTE a . EVEN ;1 IF ROTOF, 0 IF ROTON 18:31 PAGE '9-1 SEQ 0916 RONOF PROCESS THE 'ROTON' AND 'ROTOFF' KEYBOARD COMMANDS MACY11 30A(1052) 20-SEP-78 18:31 PAGE 19-2 RONOF.MAC 28-JUL-78 15:35 KROTON & KROTOF - PROCESS THE 'ROTON' AND 'ROTOFF' KEYBOARD COMMANDS .SBTTL KROTON & KROTOF - PROCESS THE 'ROTON' AND IROTOFF I KEYBOARD COMMANDS 563 .IDENT JVO.Oj 564 5E5 ;++ 566 MODULE NAME: 567 KROTON - KROTOF 568 569 FUNCTIONAL DESCRIPTION: 570 THIS ROUTINE PROCESSES THE IROTON' AND IROTOFF' KEYBOARD COMMANDS 571 IT WILL FIRST VERIFY THAT NO ARGUMENT APPEARS 572 I N THE COMMAND. DECODE BUF FER. I F AN t\RGUMENT I SIN THE 573 BUFFER, AN ERROR MESSAGE IS ISSUED. OTHERWISE, 574 THE WRITE BUFFER ROTATION BIT IN THE STATUS 575 INDICATOR IS SET IF IROTON I AND CLEARED IF IROTOFF I • 576 577 INPUTS: 578 1. ADDRESS OF DTABLE 579 2. COMMAND DECODE BUFFER POINTER 580 581 IMPLICIT INPUTS: 582 NONE 583 584 OUTPUTS: 585 NONE 586 587 IMPLICIT OUTPUTS: 588 DT.KBRSP 589 DT.STO 590 591 PATHOLOGICAL CONNECTIONS: 592 CM.ARG 593 594 SUBORDINATE ROUTINES CALLED: 595 ARGCHK - CHECK FOR UNWANTED ARGUMENTS 596 SAVREG 597 RESREG 598 599 FUNCTIONAL SIDE EFFECTS: 600 NONE. 601 602 CALLING SEQUENCE: 603 CALL KROTON IN <GTADR,BUFPTR> 604 CALL KROTOF IN <DTADR,BUFPTR> 605 WHERE: DTADR = ADDRESS OF DTABLE 606 BUFPTR = COMMAND DECODE BUFFER POINTER 607 608 VERSION: 609 0.0 610 611 R:EASON EDI,. BY DATE 612 ;-613 614 615 SEQ 0917 RONOF PROCESS THE 'ROTON' AND 'ROTOFF' KEYBOARD COMMANDS MACY11 30A(1052) RONOF.MAC 28-JUL-78 15:35 KROTON - KROTOF ROUTINE 617 618 619 620 621 (2 ) 622 623 624 625 626 627 (6) 628 (2 ) 629 630 631 (2 ) 632 633 634 635 636 637 638 (4) 6:i9 640 ( 2) 641 642 643 644 645 (3 ) 646 (4) 647 (4 ) 648 649 650 651 652 653 654 (4 ) (3 ) (4 ) (3) (3) (4) 655 656 (6) .SBTTL 20-SEP-78 18:31 PAGE 19-3 SEQ 0918 KROTON - KROTOF ROUTINE INLINE <KROTOF:> 000066' 000066' KROTO F: ;+ t INDICATE IT'S 'ROTOFF' 000066' 000066' 105267 000072' 000072' 000402 LET RO.FLG :B= RO.FLG + #1 177773 INLINE <BR GUNCH> INCB RO.FLG BR GUNCH CLRB RO.FLG ROUTINE KROTON <DTADR,BUFPTR> 000074' 000074' I-<.ROTON: ;+ ; INDICATE 'ROTON' COMMAND 000074' 000074' 105067 LET RO.FLG :B= #0 177765 INLINE <GUNCH!> 000100' 000100' GUNCH: ;+ ; SAVE REGISTERS AND SAVE DTABLE ADDRESS AND DECODE BUFFER POINTER ;- 000100' 000100' 004767 000104' 000104' 016500 000110' 000110' 016501 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV DT.A,DR(R5) fRO MOV BUFPTF1(R5),R1 LET RO .- DTADR(R5) 000000 LET R1 .- BUFPTR(R5) 000002 ;+ ; MAKE SURE NO ADDITIONAL ARGUMENTS ARE IN DECODE BUFFER ;- 000114' 000114' 000120' 000122' 000124' 000130' 000132' CALL ARGCHK IN <R1> OUT <R1> 162705 010546 010145 004767 012605 012501 000134' 000134' 103404 000002 OOOOOOG sus #1*2,F~5 MOV MOV JSR MOV MOV R5,-(SP) R1,-(H5) PC,ARGCHK (SP)+t R5 (R5)+t R1 BCS 50002$ IF.NO.ERROR THEN RONOF PROCESS THE I ROTON I AND 'ROTOFF' KEYBOARD COMMANDS MACY11 30A(1052) RONOF.MAC 28-JUL-78 15:35 KROTON - KROTOF ROUTINE 657 658 659 660 661 662 663 (4) 664 665 (4) (3) 666 667 668 669 670 671 672 (6) (9) 673 (6) 674 (4) 675 676 (4) (3) 677 678 679 (6) 680 (4) 681 (4) 682 (4) 683 684 685 686 687 688 689 (3) 690 691 (3) (3) (2) 6£2 20-SEP-78 18:31 PAGE 19-4 SEQ 0919 ;+ ; THERE IS NO <CR> YET SO ITIS A BAD COMMAND ... STUFF 'ERROR i MESSAGE AND BEAT IT .•.. ;- 000136 1 000136 1 012760 LET DT.KBRSP(RO) .- #CM.ARG OOOOOOG 000022 MOV #CM.AHG,DT.KBRSP SR 50003$ T5TB BNE RD.FLG 50004$ BIS #WBSTAT,DT.STO(R MOV #RO.MGN,DT.K8RSP BR 50005$ BIC #WBSTAT,DT.STO(R MDV #RO.MG.F,DT.KBRSP JSR PC,RESREG RTS PC ELSE 000144 1 000144 1 000420 000146 1 50002$: ;+ ; ITIS A <CR> SO GO PROCESS .... SET THE WBSTAT BIT ; IN DT.STO IF 'ROTON I AND CLEAR IT IF IROTOF I ;- 000146 000146 1 000152 1 000;54 1 000154 1 000162 1 000162' IFB RO.FLG EO #0 THEN 1 105767 001007 177713 052760 000040 LET DT.STO(RO) := DT.STO(RO) SET.BY #W8STAT 000010 LET DT. KBRSP (RO) 012760 000000 1 000022 ELSE 000170 1 000170 1 000406 000172 1 000172 1 000172 1 042760 000200 1 000200 1 012760 000206' 000206 1 000206 1 000206 1 : = #RO. MGN 50004$: LET DT.STO(RO) := DT.STO(RO) CLR.BY #WBSTAT 000040 000010 LET DT.KBRSP(RO) := #RO.MGF 000032 1 000022 ENDIF 50005$: ENDIF 50003$: ;+ ; CLEAN UP AND LEAVE ; _. 000206 1 000206 1 004767 000212 1 CALL RESREG OOOOOOG ENDRTN 0002~21 000212 1 000212 1 000207 OC0001 .END 5;0000'$ : Ei0001$: RONOF PROCESS THE 'ROTON ' AND 28-JUL-78 15:35 RONOF.MAC ACSR 000102 ACTBlT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ARGCHK= ****** G ASS 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS = 000110 BITO 000001 BITOO 000001 BITOl 000002 BIT02 000004 BIT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 000200 BIT07 BIT08 000400 BIT09 001000 BI T1 000002 BIT1a 002000 8 IT 11 = 004000 BIT12 010000 020000 BIT13 040000 8IT14 BIT15 iOOOOO BIT2 000004 BIT3 000010 BIT4 000020 BIT5 000040 BIT6 000100 BIT7 000200 BITB 000400 BIT9 001000 BKDEF 000002 BKMOD 000020 BKIV:ODE= 040000 BKSLSH= 000134 BUFPTR= 000002 CAPRES= 000004 CASTAT= 000004 CDERCT= 0001~6 COWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CM.ARG= ****** G CONFIG= 000056 CQOVF = 000001 'ROTOFF ' KEYBOARD COMMANDS SYMBOL TAB LE, 000015 CR 000100 CSRA ' .cSRC 000102 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTADR = 000000 DT.ADD= 000Q42 DT. AP : 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT . ERR:' 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 00'0024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT. PSvJ= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP : 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 :: 000014 ECCMEM= 000100 ECCSTA= 000010 MACY11 30A(1052) ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 0OO100R GUNCH HRDCNT= 000044 HRDPAS= 000050 ICONT : 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL:::: 0010.00 INHRRE= 000400 000030 INIT 000120 INTR IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KlPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KROTOF 000066RG KROTON 000074t~G KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 LF 000012 20·~SEP-78 18: 31 PAGE 20 SEQ 09:20 LPSTAT:: MAPSTA:: MED MEMPAS:: MODEXH:: MODHOL::: MODSEL::: MSGCKD= MSGCKS:: MSGDER:: MSGDRp:= MSGECH:;: MSGEOP::: MSGHD,R:= MSGHNG::: MSGHRD:= MSGMAp:= MSGNUL:= MSGPOp:= MSGPRM:= MSGRES= MSGSFT:::: MSGSKE= MSGSMB::: MSC1SMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY::;; NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= POPGO POP70 = PRIO = PRI1 PRI4 PRI5 PRIG PRI7 PRO PR4 PR5 PR6 PR7 PS 000001 000200 076600 040000 004000 002000 001000 000010 00l}O11 000005 000017 11'1777 000013 000004 000022 000007 000021 177775 000002 177'/76 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 PSW RANNUM= 000054 R3UFEA= 000130 RSUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDl'llHMI = 000022 RELERR= 000020 REUJ!OD= 020000 REL TIM= 010000 RESREG= ****** G RESl 000056 RES2 000060 HICHAR= 031060 RO.FLG 0000651R 000032R RJ.MGF RO.MGN OOOOODR RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177' RUNMOD= 100000 f~5VALU= 001740 075464 SAM SAVREG= ****** G SBtlOR == 000102 SBKMOD== 000000 SBKSEL= 010000 SC.ADR= OOOOOE; Sc. ALC= 0OO01L:~ SC ,. APC= 00001 E; SC.CKL= 000002 SC.CKP= 000 OOL~ SC.CLO= 000000 SC.HLD= 0()0010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO SR1 = 177574 177576 SR2 172516 SR3 0OO02Ei STAT STATSI:: 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 000064 SVR1 SVR2 :: OC006Ei RONOF PROCESS THE IROTON I AND IROTOFF' KEYBOARD COMMANDS RONOF.MAC 28-JUL-78 15:35 SYMBOL TABLE UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 " WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 000070 SVR3 SVR4 000072 SVR5 000074 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPOR2= 177604 UIPDR3= 177606 . ABS. 000000 000214 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:RONOF,DSKZ:RONOF=SPMAC/ML,EQUATE,RONOF RUN-TIME: 12 2 .4 SECONDS RUN-TIME RATIO: 57/16=3.5 CORE USED: 14K (27 PAGES) MACY11 30A(1052) $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 20-SEP-78 18:3"1 PAGE 20-1 SEQ 0921 $F$YES= 000402 $IFLEV= 177777 $ISKO = 000001 $ISKl = 000001 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO = 000300 $N5Kl = 000110 $NSK2 :: 00O"i10 $SAVLE= 177777 $TAGLE= 177777 $TAGNU= 050006 $TEMP = 000300 $TSKO = 050003 $TSK1 -" 050005 $$ARGC= 000004 $$BYTE=: 000402 $$CASE= 000000 $$05T 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 0001521~ $$LOCN= 000000 $$REG = 17777'7 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO = 000000 $$$TAG= 050000 0002141R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 526 568 571 581 607 648 657 18:32 TABLE OF CONTENTS COMMON EQUATE MODULE SAVREG SAVE REGISTER RO THRU R4 COMMON DEFINITIONS AND REFERENCES 1 000000 .PRINT ;SPMAC: VERSION 1.1 SAVE REGISTER'S RO THRU R4 ROUTINE RESREG RESTORE GENERAL REGISTERS RO THRU R4 COMMON DEFINITIONS AND REFERENCES RESTORE GENERAL REGISTERS RO THRU R4 ROUTINE SEQ 0922 SAVRES BINDER FOR SAVREG AND RESREG SAVRES.MAC 28-JUL-78 09:27 SOB 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE 18:32 PAGE 19 SEQ 0923 .TITLE SAVRES BINDER FOR SAVREG AND RESREG .IDENT JVO.Oj ;++ MODULE PACKAGE NAME: SAVRES FUNCTIONAL DESCRIPTION: BINDER FOR THE FOLLOWING MODULES: SAVREG - SAVE REGISTERS RESREG - RESTORE REGISTERS VERSION: 0.0 EDIT ;-- DATE BY REASON SAVRES BINDER FOR SAVREG AND RESREG SAVRES.MAC 28-JUL-78 09:27 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 54,3 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 MACY11 30A(1052) 20-SEP-78 18:32 SAVREG SAVE REGISTER RO THRU R4 PAGE 19-~ SEQ 0924 .SBTTL SAVREG SAVE REGISTER RO THRU R4 .IDENT JVO.Oj ;++ MODULE NAME: SAVREG FUNCTIONAL DESCRIPTION: THIS MODULE WILL SAVE GENERAL PURPOSE REGISTERS RO THRU R4 ON THE R6 STACK AND RETURNS TO CALLER INPUTS: NONE IMPLICIT INPUTS: NONE OUTPUTS: NONE. IMPLICIT OUTPUTS: NONE: PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL. SAVREG VERSION: 0.0 EDI1" ;-- DATE BY REASON SAVRES BINDER FOR SAVREG AND RESREG SAVRES.MAC 28-JUL-78 09:27 567 568 569 570 571 (1) 572 573 574 575 576 577 578 579 MACY11 30A(1052) 20-SEP-78 18:32 SAVREG SAVE REGISTER RO THRU R4 PAGE 19-2 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000 I 000000 I 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN 1 $LSTTAG 1 = = ;**************** ; REFERENCED BY OTHER MODULES .GLOBL SAVREG ;MODULE ENTRY POINT SEQ 0925 SAVRES BINDER FOR SAVREG AND RESREG 28-JUL-78 09:27 SAVRES.MAC 581 582 583 584 (2) 585 586 587 588 589 590 591 592 (6) 593 (4) 594 (4 ) 595 (4) 596 (4 ) 597 (4 ) 598 (4) 599 600 601 602 603 604 (3 ) (3) (2) 605 MACY11 30A(1052) 20-SEP-78 18:32 SAVE REGISTER'S RO THRU R4 ROUTINE PAGE 19-3 SEQ 0926 .SBTTL SAVE REGISTER1S RO THRU R4 ROUTINE ROUTINE SAVREG 000000' 000000 1 SAVREG: ;+ ; FIRST ALLOCATE 10 BYTES ON THE STACK POINTER BY SETTING STACK ; POINTER TO SP + 12, THEN LOAD RETURN ADDRESS INTO NEW STACK POINTER ; NOW SAVE REGISTERS 000000' 000000' 162706 000004 1 000004' 016616 000010' 000010 1 010466 000014' 000014 1 010366 000020 1 000020 1 010266 000024 1 000024 1 010166 000030 1 000030 1 010066 LET SP := SP - #12 000012 LET (SP) . - +12(SP) 000012 LET 2(SP) : = R4 000002 LET 4(SP) . - R3 LET 6(SP) .-, R2 LET 10(SP) . - R1 LET 12(SP) .- RO 000004 000006 000010 000012 SUB #12,SP MOV +12(SP), (SP) MOV R4,2(SP) MOV R3,4(SP) MOV R2,6(SP) MOV R1,10(SP) MOV RO,12(SP) RTS PC ;+ ; RETURN TO CALLER ;- 000034 1 000034 1 000034 1 000034 1 000207 ENDRTN 50000$: !:i0001$: SAVRES BIND.ER FOR SAVREG AND RESREG SAVRES.MAC 28-JUL-78 09:27 607 608 609 610 611 612 613 614 615 616 517 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 MACY1' 30A(1052) 20-SEP-78 18:32 PAGE 19-4 RESREG RESTORE GENERAL REGISTERS RO THRU R4 .SBTTL RESREG RESTORE GENERAL REGISTERS RO THRU R4 .IDENT JVO.Oj ;++ MODULE NAME: RESREG FUNCTIONAL DESCRIPTION: THIS MODULE WILL RESTORE GENERAL REGISTERS RO THRU R4 FROM THE R6 STACK AND RETURN TO CALLER. INPUTS: NONE: IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL RESREG VERSION: 0.0 644 645 646 SEQ 0927 EDIT ;-- DATE BY FIEASON SAVRES BINDER FOR SAVREG AND RESREG SAVRES.MAC 28-JUL-78 09:27 648 649 650 651 652 653 654 655 MACY11 30A(1052) 20-SEP-78 18:32 COMMON DEFINITIONS AND REFERENCES PAGE 19-5 .SBTTL COMMON DEFINITIONS AND REFERENCES ;**************** ; REFERENCED BY OTHER MODULES .GLOBL RESREG ;MODULE ENTRY POINT SEQ 0928 SAVRES BINDER FOR SAVREG AND RESREG 28-JUL-78 09:27 SAVRES.MAC 657 658 659 (2 ) 660 661 662 663 664 665 666 (4 ) 667 (4) 668 (4) 669 (4) 670 (4) 671 (4 ) 672 (6) 673 674 675 676 677 678 (3) (3) (2 ) 679 680 MACY11 30A(1052) 20-SEP-78 18:32 PAGE 19-6 RESTORE GENERAL REGISTERS RO THRU R4 ROUTINE SEQ 0929 .SBTTL RESTORE GENERAL REGISTERS RO THRU R4 ROUTINE ROUTINE RESREG 000036 1 000036 1 RESREG: j+ ; RESTORE REGISTERS RO THRU R4 FROM R6 STACK, THEN CLEAN UP STACK FOR ; RETURN TO CALLER ,' 000036 1 000036 1 000042 1 000042' 000046 1 000046 1 000052' 000052 1 000056' 000056' 000062 1 000062 1 000066 1 000066 1 · - 2(SP) LET R3 · - 4(SP) LET R4 016604 000002 016603 000004 ·- 6(SP) LET Rl · - 10(SP) LET RO · - 12(SP) LET R2 Oi6602 000006 016601 000010 016600 000012 LET 12(SP) 011666 000012 062706 000012 LET SP . - (SP) · - SP + #12 MOV 2(SP),R4 MOV 4(SP)"R3 MOV 6(SP)t R2 MOV 10(SP)t R1 MOV 12(SP).RO MOV (SP),12(SP) ADD #12,SP RTS PC ;+ ; RETURN TO CALLER ;- 000072 1 000072' 000072' 000072 1 000207 000001 ENDRTN .END 50000$: 50001$: SAVRES BINDER FOr< SAVREG AND RESREG 2B-JUL-7B 09:27 SAVRES.MAC 000102 ACSR ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 AssEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AlAJAS 000110 BITO 000001 BITOO 000001 BIT01 000002 8IT02 000004 B1T03 000010 B1T04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BITOB 000400 001000 B1T09 BIT1 000002 BIT10 002000 004000 BIT 11 BIT12 010000 BIT13 020000 BIT14 040000 8IT15 100000 B1T2 000004 BIT3 000010 B1T4 000020 BITS 000040 BIT6 000100 BIT7 000200 000400 BIT8 B1T9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 81"S LSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA 000100 CSRC 000102 MACY 11 30A(1052) SYMBOL TABLE CTRLC = 000003 CTRLO = 000017 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT. AP = 000100' DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ES1:: 000044 DT .'EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT. KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT . PS~"'= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT. WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVIDl = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 20-SEP-78 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200::1 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 r.COUNT= 000040 IDNUM = 000122 IE 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 1NHRRE= 000400 INIT 000030 INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 112000 1OMODX= 110000 JACK ::: 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 K1PAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES::: 000400 KTSTAT= 000020 KTXTND:;: 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 004000 MODHOL= 002000 MODSEL= 001000 18:3.2 PAGE 20 SEQ 0930 MSGCKD= 000010 MSGCKS:= 000011 MSGDER:= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 177775 MsGPOP= 000002 MSGPRM= 177776 MsGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP== 000020 NOAP,TY= 000002 000000 NULL 02A020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 010000 PDP70 000000 PRIO 000040 PR 11 000200 PRI4 PRI5 000240 PRI6 000300 000340 PR17 000000 PRO PR4 000200 000240 PR5 PR6 000300 000340 PR7 PS 177776 171'176 PSW RANNUM= 000054 RElUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 R!)WHMI= 000022 RELERR= 000020 REU~10D= 020000 REL TIM= 010000 RES REG 0OO03EiRG RES1 000056 000060 RES2 RICHAR= 031060 RPTDAT= 002000 RsHH = 000112 RUBOUT= 000177' RUNMOD= 100000 R5VALU:: 001740 07~,464 SAM SAVREG OOOOOORG SBADR = 000102 SBKrJlOD= 000000 SBKSEL= 010000 SC.ADR= 00000,; SC.ALC= 000014 SC,APC= 00001E; SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000 OOC) SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 00004~! SOFPAS= 00004E; SPACE = 000040 SPOINT= 000032 SPVALU= 00220C> SRO 177572 177574 SRi 17757E, SR2 17251Ei SR3 00002E, STAT STATBI= 064757 STAT1 = 000027 SUSPND= 0000011 000062 SVRO 000064 SVR1 00006(> SVR2 00007() SVR3 000072 SVR4 000074 SVR5 00007€) SVR6 SYSCNT= 00005~~ SYSERR= 000100 TMPIO = OOOOO:~ TQOVF = OOOOO~~ UIPARO= 177640 UIPAR1= 177642 SAVRES BINDER FOR SAVREG AND RESREG SAVRES.MAC 28-JUL-7B 09:27 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WT INRE= 000352 WTWHMI= 000222 XFLAG = 000005 XOFF = 000023 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPOR1 = 177602 UIPDR2=.177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 vJASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 . ABS. 000000 000074 MACY11 30A(1052) SYMBOL TABLE 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:SAVRES,DSKZ:SAVRES=SPMAC/ML,EQUATE,SAVRES RUN-TIME: 12 2 .4 SECONDS RUN-TIME RATIO: 69/15=4.5 CORE USED: 14K (27 PAGES) 20-SEP-78 $F$DO 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 18:32 PAGE 20-"1 $IFLEV:: 177777 177777 $LSTIN= 000001 $LSTTA:: 00.0001 $NEST L:= 177777 $NSKO "- 000300 $SAVLE::: 17"1"177 $TAGLE::: 177777 $TAGNU:= 050002 $TEMP .- 000300 $$ARGC:= 000000 $$ BYT E:= 000000 $$CASE:= 000000 $$DST .- 000000 $$ELOC:= 000000 $$ERFL= 000000 $$FLAG:= 000000 $ LOCT A:= SEQ 0931 000000 000000 000000 177777 000000 050000 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000074R $$FROM= $$l.OC :::; $$LOCN= $$REG $$RETU= $$RTN1= $$RTN2= = .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 527 530 563 618 630 684 696 18:33 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES FOR SELDES 000000 1 .PRINT ;SPMAC: VERSION 1.1 KSEL PROCESS THE 'SEL' KEYBOARD COMMAND KSEL ROUTINE KDES PROCESS THE IDES' KEYBOARD COMMAND KDES ROUTINE PRSEDE ROUTINE SEQ 0932 SELDES PROCESS THE KEYBOARD COMMANDS ISEL' AND IDES' MACY11 30A(1052) SELDES.MAC 10-AUG-78 17:09 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 .TITLE SELDES .IDENT IVO.O/ 20-SEP-78 18:33 PAGE 19 SEQ 0933 PROCESS THE KEYBOARD COMMANDS ISEL' AND IDES I ;++ MODULE PACKAGE NAME: SELDES FUNCTIONAL DESCRIPTION: THIS PACKAGE CONTAINS TWO ROUTINES: 1. KSEL - PROCESS THE KEYBOARD COMMAND 'SEL' 2. KDES - PROCESS THE KEYBOARD COMMAND 'DES' VERSION: 0.0 EDIT DATE BY REASON SELDES PROCESS THE KEYBOARD COMMANDS ISEL I AND IDES I MACY11 30A(1052) 20-SEP-78 18:33 SELDES.MAC 10-AUG-78 17:09 COMMON DEFINITIONS AND REFERENCES FOR SELDES 527 528 529 530 (1) 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 54B 549 550 551 552 553 554 555 556 557 558 559 560 561 .SBTTL PAGE 19-1 COMMON DEFINITIONS AND REFERENCES FOR SELDES .MCALL STRUC:T STRUCT .PRINT ;SPMAC: VERSION 1.1 000000' 000000' 000001 000001 $LSTIN=1 $LSTTAG=1 ;**************** , ; REFERENCED BY OTHER MODULES: , .GLOBL .GLOBL KSEL. KDES ;SELECT A MODULE ;DESELCT A MODULE ;**************** I ; GLOBAL REFERENCES: , .GLOBL .GLOBL .GLOBL .GLOBL .GL08L .GLOBL NAMCHK SAVF<EG RESF<EG CM.BADNAME CM .I\RG ARGCHK ;MODULE NAME VERIFICATION ROUTINE ;SAVE REGISTERS ;RESTORE REGISTERS ;ADDRESS OF BAD MODULE NAME MESSAGE ;ADDRESS OF INVALID ARGUMENT MESSAGE ;ARGCHK ROUTINE ;**************** ; LOCAL STOHAGE: , 000000' 000000 SE.FLG: .WORD 0 ;**************** ;WHE~ A 1 - SELECT, WHEN A 0, DESELECT SEQ 0934 SELDES PROCESS THE KEYBOARD COMMANDS 'SELl AND 'DES I MACY11 30A(1052) 20-SEP-78 SELDES.MAC 10-AUG-78 17:09 KSEL PROCESS THE 'SELl KEYBOARD COMMAND 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 .S8TTL KSEL .IDENT JVO.Oj 615 616 PAGE 19-2 PROCESS THE 'SEL' KEYBOARD COMMAND ;++ MODULE NAME: KSEL. FUNCTIONAL. DESCRIPTION: THIS ROUTINE PROCESSES THE 'SEL I KEYBOARD COMMAND. IT SHALL DETERMINE IF A MODULE ~AME HAS BEEN INCLUDED IN THE COMMAND STRING. IF THERE IS NO MODULE NAME, ALL MODULES ' STATUS WORDS WILL HAVE THE SELECT BIT SET. IF THERE IS A MODULE NAME IN THE COMMAND STRING, THE NAME MUST FIRST BE VERIFIED AND IF VALID, THE STATUS WORD IN THE MODULE WILL BE UPDATED(SELECT BI T SET). INPUTS: 1. CTABLE ADDRESS 2. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: DT.MLST DT.STO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.I<:BRSP DT.ST1 DT.STO PATHOLOGICAL CONNECTIONS: CM.ARG CM.BADNAME SUBORDINATE ROUTINES CALLED: SAVFlEG RESHEG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KSEL IN <DTADR,CMDBUF> WHERE DTADR = ADDRESS OF CTABlE CMDBUF = COMMAND DECODE BUFFER POINTER VERSION: 0.0 613 614 18:33 EDIT ;-- DATE BY REASON SEQ 0935 SELDES PROCESS THE KEYBOARD COMMANDS ISEL I AND 'DES' SELDES.MAC 10-AUG-78 17:09 KSEL ROUTINE 618 619 620 (2) 621 622 (4) 623 624 (2) 625 626 (3) (3) (2) 627 628 .SBTTL 000002 000002 1 000010' 000010 1 000403 1 000012 000012' 000012 1 000012 1 000207 20-SEP-78 18:33 PAGE 19-3 SEQ 0936 KSEL ROUTINE ROUTINE KSEL <DTADR,CMDBUF> 1 000002' 000002' 012767 MACY11 30A(1052) KSEL: LET SE.FLG 000001 177770 INLINE <BR .- #1 MOV #1,SE.FLG BR PRSEDE. RTS PC PRSEDE> ENDRTN 5,0000$ : 5,0001$: SELDES PROCESS THE KEYBOARD COMMANDS iSEL' AND 'DES'. MACY11 30A(1052) 20-SEP-78 SELDES.MAC 10-AUG-78 17:09 KDES PROCESS THE 'DES' KEYBOARD COMMAND 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 .SBTTL KDES .IDENT IVO.OI 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 PROCESS THE 'DES' KEYBOARD COMMAND MODULE NAME: KDES FUNCTIONAL DESCRIPTION: THIS ROUTINE PROCESSES THE 'DES' KEYBOARD COMMAND. IT SHALL DETERMINE IF A MODULE NAME HAS BEEN INCLUDED IN THE COMMAND STRING. IF THERE IS NO MODULE NAME, ALL MODULES' STATUS WORDS WILL HAVE THE SELECT BIT CLEARED. IF THERE IS A MODULE NAME IN THE COMMAND STRING, THE NAME MUST FIRST BE VERIFIED AND IF VALID, THE STATUS WORD IN THE MODULE WILL BE UPDATED(SELECT BIT CLEARED). INPUTS: 1. DTABLE ADDRESS 2. COMMAND DECODE BUFFER POINTER IMPLICIT INPUTS: DT.MLST DT.STO OUTPUTS: NONE IMPLICIT OUTPUTS: DT.KBRSP DT.ST1 DT.STO PATHOLOGICAL CONNECTIONS: CM. JIRG CM.BADNAME SUBORDINATE ROUTINES CALLED: SAVHEG RESF~EG FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL KDES IN <DTADR,CMDBUF> WHERE DTADR = ADDR~SS OF DTABLE CMDBUF = COMMAND DECODE BUFFER POINTER VERSION: 0.0 679 680 681 682 PAGE 19-4 ;++ 648 649 650 651 18:33 , '-- EDIT DATE BY f~EASON SEQ 0937 SELDES PROCESS THE KEYBOARD COMMANDS 'SEL' AND 'DES' SELDES.MAC 10-AUG-78 17:09 KDES ROUTINE 684 685 686 (2) 687 688 689 690 691 692 (4) 693 694 .SBTTL MACY11 30A(1052) 20-SEP-78 18:33 PAGE 19-5 SEQ 0938 KDES ROUTINE ROUTINE KDES <DTADR,CMDBUF> 000014' 000014' I1:DES: j+ ; SET THE FLAG TO DESELECT AND CALL THE COMMON ROUTINE , '- 000014' 000014' 005067 LET SE.FLG ::= #0 177760 CLR SE.FLCi SELDES PROCESS THE KSYBOARD COMMANDS 'SEL' AND 'DES' SELDES.MAC 10-AUG-78 17:09 PRSEDE ROUTINE 696 697 698 (2) 699 700 701 702 703 704 (3) 705 (4) 706 707 708 709 710 711 (4) 712 (4) 713 714 715 716 717 718 719 720 721 722 723 724 (4) (3) (4 ) (3 ) (3 ) (4) 725 726 (6) 727 728 729 730 731 732 733 734 735 736 737 738 739 .SBTTL MACY11 30A(1052) 20-SEP-78 18:33 PAGE 19-6 SEQ 0939 PRSEDE ROUTINE INLI NE <PRSE.DE: > 000020' 000020 1 PRSEDE: ;+ ; SAVE REGIStERS AND SAVE CTABLE ADDRESS ;- 000020 1 000020' 004767 000024' 000024' 016500 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV DTADR(R5),RO MOV DT.MLST(RO),R1 MOV CMDBUF(R5),R2 SUB M8V MOV JSR MOV MOV #1*2,F/5 R5,-(SP) R2,-(H5) PC,ARGCHK (SP)+,.R5 (R5)+,.R2 Bce 50002$ LET RO := DTADR(R5) 000000 ;+ ; GET ADDRESS OF MODULE LIST AND SAVE DECODE BUFFER POINTER 000030 1 000030' 016001 0000341 000034' 016502 LET R1 .- DT.MLST(RO) 000032 LET R2 .- CMDBUF(R5) 000002 ;+ ; ADVANCE DECODE BUFFER PTR TO FIRST NON SPACE CHARACTER. ; IF IT'S A <CR>, SELECT ALL MODULES - IF NOT A <CR> ; GO VERIFY THE MODULE NAME ;- 000040' 000040' 000044' 000046' 000050' 000054' 000056' CALL ARGCHK IN <R2> OUT <R2> 162705 010546 010245 004767 012605 012502 000060' 000060' 103047 000002 OOOOOOG IF.ERROR THEN ;+ ; ITS A CR SO SELECT - DESELECT THEM ALL ;+ ; IF WE ARE SELECTING, SET BIT 14. ; IF WE ARE DESELECTING, CLEAR BIT 14. ;- 000062 1 IF SE.FLG GT #0 THEN I SELDES PROCESS THE KEYBOARD COMMANDS ISEL I AND IDES PRSEDE ROUTINE 10-AUG-7B 17:09 SELDES.MAC (6) (9 ) 740 (4) (6) (9) 741 742 743 744 745 746 747 .( 4) 748 749 (6) 750 (4 ) (6) 751 (6) (9) 752 (6) 753 (4) 754 755 (4 ) (3) 756 (6) (9) 757 (6 ) 758 (4) 759 760 (4) (3 ) 761 762 (6) 763 (4 ) (6) (9) 764 765 766 767 768 769 770 000062 1 000066 1 000070 1 000070 1 000070 1 000072 1 005767 003431 MACY11 30A(1052) 2C':-SEP-78 18:33 PAGE 19-7 SEQ 0940 177712 ~JHI LE T5T BLE SE.FLGi 50003$ TST SEQ ( R1 ) 50005$ MOV (R1}+,R2 SIS #BIT14,STAT(R2) MOV 8IC #STATElITS, R4 ( R1 ) NE #0 DO 5,0004$ : 005711 001417 ;+ ; GET A MODULE HEADER ADDRESS FROM MODULE LIST, UPDATE ; STATUS WORD, ADVANCE TO GET NEXT MODULE HEADER ADDRESS. ;- LET R2 000074 1 000074 1 012102 000076 1 000076 1 000104 1 000104 1 000110 1 000114 1 000114 1 000120 ' 000122 1 000122 1 000130 1 000130 1 000130 ' 000130 ' 000132 ' 000132 1 000132 1 000140 1 000142 1 000142 1 000150 1 000150 1 · - (R 1 ) + LET STAT(Fl2) 052762 040000 016204 042704 000026 064757 020427 001003 000000 052760 010000 000026 LET R4 .- STAT(R2) SET.BY #BIT14 ·- STAT(R2) CLR.BY #STATBITS IF R4 EQ #SBKMOD THEN CMP LET DT.ST1(RO) .- 000012 R4, #SE~KMOD 50006'1; BNE DT.ST1(RO) SET.BY #SBKSEL. #SElKSEL,D".ST1(R SIS ENDIF SOO06$: ENDDO BR 000757 IF #RUNMODE SETIN DT.STO(RO) THEN 032760 001403 100000 000010 052760 001000 000010 000152 1 000152 1 052760 000160 1 000160 1 000160 1 005711 000162 1 001405 50004$ :>0005$ : BIT SEQ LET DT.STO(RO) := DT.STO(RO) SET" BY #MODSEL BIS #RUNMODE,DT.STO( 50007$ #MODSEL,DT.STO(R ENDIF SOO07$: ELSE 000150 1 000150 1 000412 000152 1 BR 50010$ BIS #CKTIM,DT.ST1(RO TST BEQ (R 1 ) 50012$ ~50003$ : LET DT.ST1(RO) 100000 000012 · - DT.ST1(RO) SET.BY #CKTIM WHILE ( R1) NE #0 DO ~50011$: ;+ ; GET A MODULE HEADER ADDR:SS FROM MODULE, LIST, UPDATE ; STATUS WOIW, ADVANCE TO GET NEXT MODULE HEADER ADDRESS . i- 000164 1 STAT(~12),R4 LET R2 · - (R 1 )+ SELDES· PROCESS THE KEYBOARD COMMANDS 'SEL' AND 'DES' SELDES.MAC 10-AUG-78 17:09 PRSEDE ROUTINE (4) 771 (6) 772 773 (4) (3) 774 775 (4) 776 777 778 (4) (3) 779 780 781 782 783 784 (4) (3) (5) (4) (3) (3) (4) (4) 785 786 787 788 789 790 (6) 791 792 793 794 795 796 797 798 (4) (3) (4) (3) (3) (4) 799 (6) BOO B01 B02 B03 000164' 012102 000166' 000166' 042762 044000 MACY11 30A(105~) 20-SEP-78 18:33 PAGE 19-8 SEQ 0941 MOV LET 5TAT(R2) .- STAT(R2) CLR.BY #BIT14!ACTBIT BIC 000026 ENDDO U00174' 000174' 000771 000176' (R1 )+,F~2 #BIT14! ACTSI·T ,ST BR 50011 $ BR 50013$ SUB MOV MOV MOV JSR MOV MOV MOV #2*2,R5 R5,-(SP) R2,-(R5) RO,-(R5) PC,NAMCHK (SP)+,R5 (R5)+,R3 (R5)+,R2 BCS 50014$ SUB MOV MOV JSR MOV MOV #1*2,R'5 R5,-(SP) R2,-(R:5) PC,ARGiCHK (SP)+,R5 (R5)+,R2 BCC 50015$ 50012$: ENDIF 000176' 000176' 000176' 000176' 000472 000200' 50010$: ELSE 50002$: ;+ ; THERE IS A MODULE NAME, SO GO CHECK IT OUT ;- 000200' 000200' 000204' 000206' 000210' 000212' 000216' 000220' 000222' CALL NAMCHK IN <RO,R2> OUT <R3,R2> 162705 010546 010245 010045 004767 012605 012503 012502 000004 OOOOOOG ;+ ; SEE IF NAME O.K. ; WILL BE IN R3. IF IT WAS, THE MODULE HEADER ADDRESS IF.NO.ERROR THEN 000224' 000224' 103454 ; CALL ARGCHK AGAIN TO SEE IF ANY ; MORE ARGUMENTS (IF SO, THEY ARE ILLEGAL) j- 000226\ 000226' 000232\ 000234' 000236' 000242' 000244' 000246' 000246' CALL ARGCHK IN <R2> OUT <R2> 162705 010546 010245 004767 012605 012502 000002 OOOOOOG IF.ERROR THEN 103037 j+ ; ITIS A CR, SO ALL IS WFL~, SO IF SELECTING - SET BIT 14 ; AND IF DESELECTING - CLEAR BIT 14 SELDES PROCESS THE KEYBOARD COMMANDS 'SEL' AND 'DES' SELDES.MAC 10-AUG-78 17:09 PRSEDE ROUTINE 804 805 806 807 808 (6) (9) 809 (6) 810 (6) (9) 811 (6) 812 (4) 813 (4) (6) 814 (6) (9) 815 (6) 816 (4 ) 817 (4) (3 ) 818 819 820 821 822 823 824 (6) 825 (6 ) 826 (4) 827 (4) (3) 828 829 83U 831 832 833 (4) 834 (4) 835 (4) (3) MACY11 30A(1052) 20-SEP-78 18:33 PAGE 19-9 SEQ 0942 , 000250' 000250' 000254' 000256' 000256' 000264' 000264' 000272' 000274' 000274' 000302' 000302' 000302' 000302' 000306' 000312' 000312' 000316' 000320' 000320' 000326' 000326' 000326' 000326' 000330' IF SE.FLG GT #0 THEN 005767 003425 177524 052763 040000 000026 032760 001403 100000 000010 052760 001000 000010 016304 042704 000026 064757 020427 001003 000000 052760 010000 SE.FLG TST 50016$ BlE LET STAT(R3) := STAT(R3) SET.BY #BIT14 #BIT14,STAT(R3) BIS IF #RUNMODE SETIN DT.STO(RO) THEN #RUNMODE,DT,STO( BIT 50017$ BEQ LET DT.STO(RO) - DT.STO(RO) SET.BY #MODSEL #MODSEL,DT.STO(R BIS ENDIF 50017$: LET R4 := STAT(R3) CLR.BY #STATBITS STAT(R3),R4 MOV #STATBITS,R4 BIC IF R4 EQ #SBI<MOD THEN R4,#SBKMOD CMP 50020$ Bi"iE LET DT.ST1(RO) - DT.ST1(RO) SET.BY #SBKSEL #SBK5EL,DT.ST1(R BIS CNDIF 50020$: . . 000012 ELSE BR 000406 50021$ :i0016$: + IT'S A DESELECT .••. DO IT 000330' 000330' 052760 000336' 000336 1 042763 000344 1 000344 1 000344' 000344 1 000403 000346' 000346 1 000346' 012760 000354' 000354' 000354' 000354' 000403 000356' LET DT.ST1(RO) 100000 000012 044000 000026 LE.T STAT(R3) . := DT.ST1(RO) SET. BY #CKTIM #C~~T1M,DT .ST1 (RO BIS - STAT(I~3) CLR.BY #BIT14! ACTBIT #BIT14!ACTBIT,ST BIC ENDIF :50021$: ELSE BR 50022$ MOV #CM.AfW,DT .KBRSP BR 50023$ 50015$: ;+ ; BAD I THERE ARE ADDITIONAL ARGUMENTS BEYOND TH~ MODULE NAME ; 50 STUFF THE BAD ARG MESSAGE AND GET OUT ;LET DT.KBRSP(RO) := #CM.ARG OOOOOOG 000022 ENDIF S0022$: ELSE !50014$: SELDES PROCESS THE KEYBOARD COMMANDS 'SEL' AN::> IDES I PRSEDE ROUTINE 10-AUG-78 17:09 SELDES.MAC 836 837 838 839 840 841 842 (4) 843 (4) 844 845 (4) 846 847 848 849 850 851 (3 ) 852 853 (3 ) (3) Mt'.CY11 30A(1052) 20-SEP-78 18:33 PAGE 19-10 SEQ 0943 ;+ ; THERE WAS AN ERROR IN SYNTAX OF MODULE NAME ; SO STUFF THE INVALID MODULE NAME ERROR MSG , 000356 1 000356 1 012760 000364 1 000364 1 LET DT.KBRSP(RO) := #CM.BADNAME OOOOOOG 000022 MOV #CM.BADNAME,DT.K JSR PC,RESREG RTS PC ENDIF 5·00235 : ENDtF 000364 1 000364 1 5·0013$: ;+ ; CLEAN UP , CALL RESREG 1 000364 000364 1 004767 (.2 ) 000370 1 000370 1 000370 1 000370 1 000207 854 855 000001 OOOOOOG ENDRTN :;0000$ : :;0001$: .END SELDES PROCESS THE KEYBOARD COMMANDS 10-AUG-78 17:09 SELDES.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ARGCHK= ****** G ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BITO 000001 SITOO 000001 Bli01 000002 000004 B1T02 BIT03 000010 B1T04 000020 BIT05 000040 000100 BIT06 BIT07 ;: 000200 000400 B.I TOB BIT09 001000 BIT1 000002 BIT10 002000 BIT11 004000 BIT12 010000 020000 BIT13 BIT14 040000 BIT15 100000 6IT2 000004 000010 BIT3 8IT4 000020 BIT5 000040 BIT6 000100 BIT7 000200 BITB 000400 BIT9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKT1M = 100000 CLKPRE= 000001 CMDBUF= 000002 CM.ARG= ****** G CM.BAD= ****** G CONFIG= 000056 I SEL I AND 'DES ' SYMBOL TABLE 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROP\V10= 100000 DSEVNT= 000014 DTADR == 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK:;: 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI::: 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS:: 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVlD1 = 000014 ECCMEM= 000100 MACY11 30A(1052) ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 00010S EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT== 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 1DNUM = 000122 IE 000100 INDPAR= 000040 lNHDRP= 040000 INHEPR= 020000 lNHREL';' 001000 INHRRE= 000400 INIT 000030 000120 INTR 100000 IOMOD IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK 000014RG KDES KIPARO= 172340 KIPAR1= 172342 KIPAR2:;: 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6::: 172354 KIPAR7== 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 000002~~G KSEL KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF 20-SEP-78 18:33 PAGE 20 SEQ 0944 LPSTAT=: MAPST A=: MED MEMPAS=: MODEXH:: MODHOL=: MODSEL== MSGCf<D:: MSGCKS:: MSGDER:: MSGDRP:: MSGECH:= MSGEOP:: MSGHDR:: MSGHNG:: MSGHRD= MSGr'1'1AP:: MSGNUL:: MSGPOp:.: MSGPRM:: MSGRES:: MSGSFT::: MSGSKE:: MSGSMB= MSGSMH::: MSGSMS:: MSGSTD:= MSGSYS= MSGVEC= NAMCHK= NBKMOD= NCPUOP= NOAPTY= NULL OWEN PAERR PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRSEDE PRO PR4 PR5 PR6 000001 000200 076600 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 00001.6 000000 000012 000020 **-1<*** G 001000 000020 000Cl02 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 0OOO20R 000000 000200 000240 OC0300 000340 PR7 177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 00·0130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RmvHMI = 000022 RELERR= 000020 RELMOD== 020000 RELTIM= 010000 RESREG= ****** G 000056 F~ES 1 000060 RES2 RIO-iAR= 031060 RPTDAT::: 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740 075464 SAM SAVREG= ****** G' SBADR = 00010:2! SBKfv10D= 0000001 SBKSEL= 010000 SC.ADR= OOOOOEi SC.ALC= 000014 SC.APC= 00001E; SCCKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SE.FLG OOOOOOR SOFCNT== 000042 SOFPAS= 000046 SPACE :: 000040 SPOINT= 00003~~ SPVALU= 002200 177572 SRO 177574 SR1 SR2 -. 17757E> 17251f) SR3 000026 STAT STATBl= 064757 STAT1 = 000027 SUSPND= 00000 'I 000062 SVRO 000064 SVR1 00006f3 SVR2 SELDES PROCESS THE KEVBOARD COMMANDS ISEL I AND IDESI SELDES.MAC· 10-AUG-78 17:09 SYMBOL TABLE UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 \fJOTO WTINRE= 000352 WHJHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 000070 SVR3 SVR4 000072 000074 SVR5 SVR6 000076 SVSCNT= 000052 SVSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 ABS. 000000 000372 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:SELDES,DSKZ:SELDES=SPMAC/Ml,EQUATE,SELDES RUN-TIME: 17 8 .4 SECONDS RUN-TIME RATIO: 91/26=3.4 CORE USED: 14K (27 PAGES) MACV11 30A(1052) $F$DO= 000340 $F$FAL= 000405 $F$GOO::: 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO ::: 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$VES= 000402 $IFLEV= 177777 $ISKO 000001 $ISK1 000001 $ISK2 000001 $ISK3 000001 20-SEP-78 18:33 000001 $ISK4 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO 000300 $NSK1 000110 000110 $NSK2 000110 $NSK3 000110 $NSK4 $NSK5 000110 $SAVLE= 177777 $SSKO = 050012 $TAGLE= 177777 $TAGNU= 050024 000:300 $TEMP 050013 $TSKO 050023 $TSK1 $TSK2 050022 050021 $TSK3 050020 $TSK4 $$ARGC= 000004 PAGE 20-1 SEQ 0945 $$BYTE= 000403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$F LAG= 000001 $$FROM= 000000 $$LOC = 000316f~ $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 0003721~ .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 555 558 577 18:35 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT STRAP ROUTINE ;SPMAC: VERSION 1.1 SEQ 0946 STRAP (FIELD SOFTWARE TRAP) STRAP.MAC 28-JUL-78 09:27 MACY11 30A(1052) 20-SEP-78 18:35 COMMON EQUATE MODULE PAGE 19 508 509 510 .TITLE STRAP (FIELD SOFTWARE TRAP) .IDENT IVO.O/ 311 ;++ 512 513 514 515 MODULE NAME: STRAP FUNCTIONAL DESCRIPTION: 516 517 518 THIS ROUTINE IS ENTERED BY ANY ONE OF SEVERAL SOFTWARE TRAPS (I.E. MSGN, GWBUFF, ETC.)FROM DECX/11 OPTION MODULES. AN EVENT CODE IS GENERATED AND PUSHED ONTO THE STACK. THERE IS ONE ENTRY POINT FOR A SOFTWARE TRAP THRU LOC. 34. 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 5~9 540 541 542 543 544 545 546 54'1 548 549 550 551 552 553 SEQ 0947 INPUTS: NONE. IMPLICIT INPUTS: SOFTWARE TRAP INSTRUCTION (THRU LOCATION 34) OUTPUTS: NONE IMPLICIT OUTPUTS: EVENT CODE PATHOLOGICAL CONNECTIONS: NONE. SUBORDINATE MODULES CALLED: NONE. FUNCTIONAL SIDE EFFECTS: NONE. CALLING SEQUENCE: CALLED BY A 1044XX TRAP INSTRUCTION XX = THE CODE FOR THE PARTICULAR TRAP INSTRUCTION. VERSION: 0.0 EDIT j-- BY OP-.TE REASON STRAP (FIELQ SOFTWARE TRAP) STRAP.MAC 28-JUL-78 09:27 MACY11 30A(1052) 20-SEP-78 18:35 PAGE 19-1 COMMON DEFINITIONS AND REFERENCES .SBTTL COMMON DEFINITIONS AND REFERENCES 555 556 557 558 ( 1) 000000' 000000 ' .PRINT 559 000001 560 561 000001 562 563 ;**************** 564 ; f , 565 566 568 569 570 BY OTHER MODULES STINT ST.EXT ;ENTRY ADDRESS OF FIELD SOFTWARE TRAP ROUTINE ;ADDRESS TO EXIT THROUGH :**************** , 571 572 573 574 575 REFERE~CED .GLOBL .GLOBL 567 ~- .MCALL STRUCT STRUCT ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG = 1 ;LOCAL STORAGE: ; 000000' 000000 ST.EXT: .WORD o ;ADDRESS TO EXIT THIS MODULE THRU SEQ 0948 STRAP (FIELD SOFTWARE TRAP) STRAP.MAC 28-JUL-78 09:27 577 578 579 580 581 582 583 584 (2) 585 586 587 588 589 590 (2) 591 (4) 592 (4) 593 594 595 596 597 598 599 (6) 600 (2 ) 601 (4 ) 602 (4) 603 604 605 MACY11 30A(1052) 20-SEP-78 STRAP ROUT II\IE 18:35 PAGE 19-2 SEQ 0949 .SBTTL STRAP ROUTINE ;+ ;ENTER HERE FOR SOFTWARE TRAP ,' - INLINE <STINT:> 000002' 000002 1 STINT: ;+ ; SAVE REGISTER AND RETRIEVE PC+2 FROM STACK AND DETERMINE ACTUAL TRAP ADDRESS 'f - 000002 1 000002 1 010046 000004 1 000004 1 016600 000010 1 000010 1 014000 PUSH RO LET RO .- 2(SP) LET RO : = -(RO) 000002 MOV RO,-(SP) MOV 2(SP),RO MOV -(RO),RO BIC #177400,RO MOV RO,-(SP) MOV 2(SP),RO MOV (SP)+, (SP) ;+ ; IDENTIFY TRAP AND SAVE EVENT CODE ON STACK, RESTORE REGISTER ; AND CLEAN UP STACK AND EXIT ROUT1NE ;- 000012 1 000012 1 000016 1 000016 1 000020 1 000020 1 000024 1 000024 1 000026 1 042700 RO PUSH RO LET RO ::= 2(SP) LET (SP) JMP @lST . EXT 010046 016600 012616 000177 000001 .,- RO CLR.BY #177400 LET 177400 00000:2 177746 .END : = (SP)+ STRAP (FIELD SOFTWARE TRAP) 28-JUL-78 09:27 STRAP.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ASS 000106 ASSEMB= 000010 ASTAT = 000104 AUTO = 000010 AUTOST= 020000 AWAS 000110 BITO 000001 BITOO :: 000001 BIT01 000002 BIT02 000004 000010 BIT03 BIT04 000020 BIT05 - 000040 BIT06 000100 BIT07 000200 BITOB 000400 BIT09 001000 B1T1 000002 BIT10 = 002000 BIT11 = 004000 BIT12 010000 BIT13 = 020000 BIT14 = 040000 BIT15 100000 BIT2 000004 3IT3 000010 000020 BIT4 BITS 000040 BIT6 000100 BIT7 000200 BITB = 000400 BIT9 001000 BKDEF 000002 BKMOO 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQDVF 000001 000015 CR CSRA 000100 000102 CSRC 20-SEP-78 MACY 11 30A(1052) SYMBOL TABLE 000003 CTRLC CTRLO .: 000017 CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ES1= 000044 DT.EVN= 000000 DT. EXS=. 000060 OT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE=' 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 OT.MTI= 000110 Dr.OFF= 000070 DT~PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 OT.PTA= 000064 DT.RCS: 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 OT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 OT.WBU= 000050 OT.WHL= 000054 DT.WLL= 000052 OVID1 = 000014 ECCMEM= 000100 ECCSTA:: 000010 ENBEDP= 010000 ENBNUL= 000001 ENOLST= 000000 EOPBIT=- 000001 18:35 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 IeONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 IOMOD 100000 IOMODP::: 102000 IOMODR= 112000 IOMOOX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7== 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPOR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPOR7= 172316 KTERRD= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 076600 MED MEMPAS= 040000 MODEXH= 004000 MODHDL= 002000 MOOSEL= 001000 PAGE 20 SEQ 0950 MSGCKD;;: 000010 MSGCKS:: 00001 1 MSGDER::z 000005 MSGDRp:: 000017 MSGECH:: 177777 MSGEOp:: 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD:= 000007 MSGMAp:= 000021 MSGNUL:= 177775 MSGPOp:= 000002 MSGPRM= 1'77776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 N8KMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL OlllEN 024020 PAERR 000010 PARPRE= 002000 .'PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 PDP70 010000 PRIO 000000 000040 PRI1 000200 PRI4 000240 PRI5 PRIG 000300 000340 PRI7 000000 PRO PR4 = 000200 000240 PR5 000300 PR6 000340 PR7 177776 PS 177776 PSW Rt\NNUM= 000054 RBUFEA= 000130 RBUFPJ\= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSER\(= 000101 ROWHMI= 000022 R::'LERR= 000020 RELMOD= 020000 REL TIM'= 010000 000056 RES1 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112: RUBOUT= 000177 RUNMOD= 1000001 R5VALU= 001740 075464 SA.M SBADR = 000102 SBKf',10D= 000000 SBKSEL= 010000 SC.ADR= OOOOOE; SC.ALC= 000014 SC.APC= 00001E; SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 00001() SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 00Cl04G SP.c,CE = 000040 SPOINT= 00003~2 SPVALU= 002200 177572 SRO 177574 SRl 17757(3 SR2 17251(3 SR3 STAT = 00002(3 STATBI= 064757 STATl = 000027 OOOOO:2RG STINT ST.EXT OOOOOORG SUSPND= 000001 SVRO OOOOG:2 SVR1 000064 0000613 SVF~2 SVR3 =.000070 SVR4 00007:2 SVR5 000074 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO -. 000002 TQOVF -, 000002 UI PARO:: 177640 UIPAR1=: 177642 MACY11 30A(1052} 20-SEP-78 SYMBOL TABLE STRAP (FIELD SOFTWARE TRAP) 28-JUL-78 09:'27 STRAP.MAC UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIP,)R1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTA1= WBUFEA= 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 000136 ASS. 000000 000032 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 WDFR = 000116 000114 . WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 XOFF = 000023 000021 XON $SGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$SAD= 000401 $F$SLA= 000170 $F$CAS= 000150 $F$DEC= 000220 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:STRAP,DSKZ:STRAP=SPMAC/ML,EQUATE,STRAP RUN-TIME: 11 1 .3 SECONDS RUN-TIME RATIO: 64/13=4.8 CORE USED: 14K (27 PAGES) 18:35 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF '. 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR :: 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000320 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 PAGE 20-1 SEQ 0951 $IFLEV=: 177777 $LOCTA= 177777 $LSTIN=: 000001 $LSTTA=: 000001 $NESTL= 177777 $SAV LE:: 177777 $TAGLE:: 177777 $T AGNU:: 050000 $TEMP = 000402 $$ARGC= 000000 $$BYTE:: 000000 $$CASE:: 000000 $$D5T .- 000000 $$ELOC:: 000000 $$ERFL:: 000000 $$FLAG:: 000000 $$FROM= 000000 $$LOC = 000000 $$ LOCN=' 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 000000 $$RTN2= 000000 $$SRC = 000000 $$TGSV= 000000 $$TG51= 00000:) $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000032R .MAIN. MACY11 30A(1052) 20~SEP-78 EQUATE.MAC 13-SE?-78 16:13 3 534 600 603 627 779 826 833 903 951 961 990 1045 1060 1129 1155 1218 1233 1328 1385 1417 1547 1602 1616 1683 1731 1740 1781 183~ 1856 1A:36 TABLE OF CONTENTS COMMON EQUATE MODULE CLKCHK - SYSTEM CLOCK CHECK COMMON DEFINITIONS AND REFERENCES 000000 I • PR I NT ; SPMAC: VERSION 1.1 CHECK FOR SYSTEM CLOCK ROUTINE CLKOFF - SYSTEM CLOCK-OFF COMMON DEFINITIONS AND REFERENCES CLKOFF ROUTINE CLKON SYSTEM CLOCK-ON COMMON DEFINITIONS AND REFERENCES CLKON ROUTINE PRHMS PROCESS HOURS, MINUTES, AND SECONDS CONVERSION COMMON DEFINITIONS AND REFERENCES PROCESS HOURS, MINUTES AND SECONDS CONVERSION ROUTINE LDTIME - LOAD CONVERTED TIME PRPSCNT PROCESS PASS COUNT TIME COMMON DEFINITIONS AND REFERENCES PROCESS PASS COuNT TIME ROUTINE HMS HOURS, MINUTES, AND SECONDS CONVERSION COMMON DEFINITIONS AND REFERENCES HOURS, MINUTES AND SECONDS CONVERSION ROUTINE UPDTIM UPDATE MODULE PASS TIME COMMON DEFINITIONS AND REFERENCES UPDATE TIME ROUTINE CLRTIM CLEAR TIME FROM SYSTEM CLOCK TIME TABLES COMMON DEFINITIONS AND REFERENCES CLEAR TIME ROUTINE CKHUNG CHECK FOR HUNG OPTION MODULES COMMON DEFINITIONS AND REFERENCES CHECK MODULE HUNG ROUTINE SEQ 0952 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 508 509 510·' 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE .TITLE .IDENT 18:36 PAGE 19 SEQ 0953 SYSCLK SYSTEM CLOCK BINDER MODULE IVO.OI ;++ MODULE PACKAGE NAME: SYSCLK FUNCTIONAL DESCRIPTION: BINDER FOR THE FOLLOWING MODULES: CLKCHK - SYSTEM CLOCK CHECK CLKOFF - TURN SYSTEM CLOCK OFF CLKON - TURN SYSTEM CLOCK ON PRHMS - PROCESS HOURS, MINUTES AND SECONDS CONVERSION PRPSCNT - PROCESS PASS COUNT TIME HMS - HOURS, MINUTES AND SECONDS CONVERSION UPDTIM - UFDATE PASS TIME CLRTIM - CLEAR MODULE TIME TABLE CKHUNG - CHECK FOR HUNG OPTION MODULE VERSION: 0.0 EDIT' ;-- DATE BY REASON SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 MACY11 30A(1052) 20-SEP-76 COMMON EQUATE MODULE 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 58-4 58,5 586 587 588 PAGE 19-1 .SBTTL CLKCHK - SYSTEM CLOCK CHECK .1DENT /VO.O/ ;++ MODULE NAME: CLKCHK FUNCTIONAL DESCRIPTION: THIS MODULE DETERMINES IF A CLOCK IS AVAILABLE ON THE SYSTEM. THIS IS ACCOMPLISHED BY FIRST CHECKING TO SEE IF A KW11~L AND/OR A KW11-P CLOCK OPTION MODULES ARE PART OF THE RUNTIME EXERCISER AND SECONDLY, . WHETHER THE CLOCK HARDWARE IS PART OF THE SYSTEM CONFIGURATION. ONCE A CLOCK HAS BEEN DETERMINED TO BE AVAILABLE THEN THE APPROPRIATE CLOCK CODE IS SET IN THE SYSTEM CLOCK INDICATOR WORD, THIS INDICATES THE TYPE OF SYSTEM CLOCK, AND ALSO SYSTEM CLOCK PRESENT BIT IN CONFIGURATION WORD a AND FINALLY THE SYSTEM CLOCK MODULE BEGIN ADDRESS IS PLACED IN THE SYSTEM CLOCK WORD. IF THERE IS NOT A SYSTEM CLOCK AVAILABLE THEN THE ABOVE WORDS WILL REFLECT THE NO CLOCK CONDITION. NOTE: 555 556 557 18:36 IF THE KW11-L IS AVAILABLE IT WILL BE USED AS THE SYSTEM CLOCK EVEN IF A KW11-P IS PRESENT. THIS MODULE WILL BE A ONE TIME ONLY ROUTINE CALLED AT INITIALIZATION OF DEC/X11. INPUTS: ADDRESS OF DTABLE IMPLICIT INPUTS: Dr. CFO DT.SCT SC.CLO SC.CKL SC.CLP SC.SCA - CONFIGURATION WORD 0 LOCATED IN DTABLE SCTAB ADDRESS SYSTEM CLOCK WORD ADDRESS OF POINTER TO KW11-L HEADER ADDRESS ADDRESS OF POINTER TO KW11-P HEADER ADDRESS SYSTEM CLOCK ADDRESS OUTPUTS: NONE IMPLICIT OUTPUTS: DT.CFO SC.CLO SC.SCA - CONFIGURATION WORD 0 LOCATED IN DTABLE - SYSTEM CLOCK WORD - SYSTEM CLOCK ADDRESS PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE RduTINES CALLED: SAVREG - SAVE REGISTERS ENQTQ - TYPE-QUEUE ENQUEUER HRDADRCHK - HARDWARE ADDRESS CHECK RESREG - RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: SEQ 0954 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 589 590 591 592 593 594 595 596 597 598 MACY11 30A(1052) 20-SEP-78 CLKCHK - SYSTEM CLOCK CHEC~ 18:36 PAGE 19-2 SEQ 0955 NONE CALLING SEQUENCE: CALL CLKCHK IN <A> A= ADDRESS OF DTABLE EDIT DATE BY REASON SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 600 601 602 603 (1) 604 605 606 607 608 609 610 611 61.2 613 614 615 616 617 618 619 6.20 621 622 6.23 6.24 625 MACY11 30A(1052) 20-SEP-78 18:36 COMMON DEFINITIONS AND REFERENCES PAGE 19-3 .SBTTL COMMON DEFINITIONS AND REFERENCES .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN =1 $L5TTAG =1 000000' 000000' 000001 000001 ;**************** i REFERENCED BY OTHER MODULES .GLOBL CLKCHK ;MODULE ENTRY POINT ;**************** ; GLOBAL REFERENCES , .GLOBL .GLOBL .GLOBL .GLOBL SAVREG HRDADRCHK ENQTQ RESFtEG ;SAVE REGISTERS ;HARDWARE ADDRESS CHECK ;ENQUEUE INTO TYPE QUEUE ;RESTORE REGISTERS ;**************** ; LOCAL STORAGE , 000000' 000006' 000014' 000022' 000030' 054523 041440 047040 040526 042514 0521.23 047514 05.2117 046111 000045 046505 045503 040440 041101 CC.CM1! . EVEN .ASCIZ /SYSTEM CLOCK NOT AVAILABLE%/ SEQ 0956 SYSCLK SYSTEM CLOCK BINDER MODULE 28-JUL-78 09:28 SYSCLK.MAC 627 628 629 (2 ) 630 631 632 633 634 635 636 637 (3 ) 638 (4) 639 (4) 640 641 642 643 644 645 (4) 646 (4) 647 648 649 650 651 652 653 (6) (9) 654 655 65€) 657 658 659 (4) 660 661 662 663 664 665 666 (4) 667 668 669 670 671 672 MACY11 30A(1052) 20-SEP-78 18:36 CHECK FOR SYSTEM CLOCK ROUTINE .SBTTL PAGE 19-4 SEQ 0957 CHECK FOR SYSTEM CLOCK ROUTINE ROUTINE CLKCHK <DTA> 000034' 000034' CLKCHK: ;+ ; SAVE REGISTERS ON STACK AND RETRIEVE ; ADDRESS OF DTABLE FROM R5 STACK AND ADDRESS OF SCTAB ; FROM DTABLE 000034' 000034' 004767 000040' 000040' 016502 000044' 000044' 016203 CALL SAVREG OOOOOOG LET R2 '- DTA(R5) LET R3 '- DT.SCT(R2) 000000 000066 JSR PC,SAVREG MQV DTA(R5),R2 MOV DT.SCT(R2),R3 CLR SC.CLO(R3) CLR SC.SCA(R3) TST SEQ SC.CKL(R3) 50002$ MOV @SC.CKL(R3),RO MOV ADR(RO),R1 ;+ ; INITIALIZE SYSTEM CLOCK WORD AND SYSTEM CLOCK ADDRESS WORD 'f - 000050' 000050' 005063 000054' 000054' 005063 LET SC.CLO(R3) '- #0 000000 LET SC.SCA(R3) '- #0 000012 ;+ ; DETERMINE IF KW11-L OPTION MODULE ; IS PART OF THE RUNTIME EXERCISER ;- 000060' 000060' 005763 000064' 001423 IF SC.CKL(R3) NE #0 THEN 000002 ;+ ; GET KW11-L OPTION MODULE HEADER ADDRESS ;- 000066' 000066' 017300 LET RO := @SC.CKL(R3) 000002 ;+ ; GET KW11-L HARDWARE CSR ADDRESS FROM KW11-L ; OPTION MODULE'S HEADER ;- 000072' 000072' 016001 LET R1 + 000076' := ADR(RO) 000006 CHECK TO SEE IF KW11-L HARDWARE IS AVAILABLE CALL HRDADRCHK IN <R1> SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 (3) (4) (3) (3) 673 674 675 676 677 678 679 680 (6) 681 (4) 682 683 684 685 686 687 688 (6) 689 (4) 690 000076' 000100' 000102' 000106' 010546 010145 004767 MACY11 30A(1052) 20-SEP-78 18:36 CHECK FOR SYSTEM CLOCK ROUTINE PAGE 19-5 SEQ 0958 MOV MOV JSR MOV OOOOOOG 012605 R5,-(SP) R 1 ,- ( R5) PC,HRDADRCHK (SP)+,R5 ;+ ; IF KW11L IS AVAILABLE THEN INDICATE KW11-L IS SYSTEM CLOCK ; IN SYSTEM CLOCK WORD. SITOO SET MEANS KW11-L IS ; SYSTEM CLOCK. 000110' 000110' 103411 000112' 000112' 012763 IF.NO.ERROR THEN sr:;S 50003$ MOV #BITOO,SC.CLO(R3 BIS #ClKPRES,DT.CFO( MOV RO,SC.SCA(R3) LET SC.CLO(R3) .- #BITOO 000001 000000 ;+ ; SET SYSTEM CLOCK PRESENT BIT IN CONFIGURATION WORD 0 IN ; AND SAVE SYSTEM CLOCK ADDRESS 000120' 000120' 052762 000126' 000126' 010063 DT~BLE LET DT.CFO(R2) .- DT.CFO(R2) SET.BY #CLKPRES 000001 000014 LET SC. SCA ( R3) • - RO 000012 691 692 ;+ 693 694 695 (2) ;- ; RETURN IN LINE <BR 100$> 000132' 000132' 000461 BR 100$ 696 697 698 (4) 699 (4) 700 701 702 703 704 705 706 707 (6) (9) 708 709 710 711 712 713 (4) 714 ENDIF 000134' 000134' 000134' 000134' ~50003$ : ENDIF ~30002$ : ;+ ; DETERMINE IF KW11-P OPTION MODULE IS ; PART OF THE RUN TIME EXERCISER ;- 000134' 000134' 005763 000140' 001441 IF SC.CKP(R3) NE #0 THEN 000004 lST SEQ SC.CKP(R3) 50004$ MOV @SC.CKP(R3),RO ;+ ; GET KW11-P OPTION MODULE HEADER ADDRESS ;- 000142' 000142' 017300 LET RO := @SC.CKP(R3) 000004 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 20-SEP-78 18:36 CHECK FOR SYSTEM CLOCK ROUTiNE PAG~ MACY11 30A(1052) 717 ; GET KW11-P HARDWARE CSR ADDRESS , FROM KW11-P OPTION MODULE'S HEADER 719 't - 716 000146' 000146 1 016001 LET R1 '- ADR(RO) 000006 (3) (3) MOV ADR(RO),R1 MOV MJV JSR MOV R5,-(SP) R1,-(R5) PC,HRDADRCHK (SP)+,R5 BCS 50005$ MOV #BIT01,SC.CLO(R3 131S #CLKPRES,DT.CFO( MOV RO,SC.SCA(R3) BR 50006$ !V:O\l [I/OV MOV #0,-([-;,5) ;+ ; CHECK TO SEE IF KW11-P HARDWARE ; IS AVAILABLE ;- 725 726 727 (3) (4) SEQ 0959 ;+ 715 719 720 (4) 721 722 723 724 19-6 000152 1 000152' 000154' 000156' 000162' CALL HRDADRCHK IN <R1> 010546 010145 004767 012605 OOOOOOG 728 729 ;+ ; IF ADDRESS WAS AVAILABLE THEN INDICATE KW11-P IS SYSTEM CLOCK 730 731 ; IN SYSTEM CLOCK WORD 732 ~- 733 734 (6 ) IF.NO,ERROR THEN 000164' 000164' 103411 735 736 (4) 000166' 000166' 0"' 2763 LET SC.CLO(R3) '- #8IT01 000002 000000 737 738 ;+ 730 ; SET SYSTEM CLOCK PRESENT BIT IN CONFIGURATION WORD 0 IN DTA8LE : AND SAVE SYSTEM CLOCK ADDRESS 740 741 742 74:~ (6) 744 (4 ) 745 746 (4 ) (3) 000174' 000174 1 052762 000202; 000202' 010063 LET DT.CFO(R2) := DT.CFO(R2) SET.BY #CLKPRES 000001 000014 LET SC.SCA(R3) .- RO ()00012 ELSE: 000206' 000206 1 000415 000210' S0005$: 747 748 749 ;+ 750 ; OUTPUT MESSAGE INDICATING NO SYSTEM CLOCK 751 ;- 752 753 ( 3) (8) ( 7} (6) (5) (4) 000210' 000210' 000212 1 000216 1 000222' 000226' 000232' CALL ENOlO IN <R2,#MSGSTD,#CC.CW1 ,#0,#0> 010546 012745 012745 012745 012745 010245 000000 000000 000000' 000000 Ivav rv:]v f'/;OV R5,-(SP) #O,-(E5) #ce.CM1,-(R5) #MSGS1D,-(R5) R2, - (F:;5) SYSCLK SYSTEM CLOCK BINDER MODULE 28-JUL-78 09:28 SYSCLK.MAC (3) (3) 754 (4) 755 (4) (3 ) 756 757 758 759 760 761 (3) (8) (7) (6) (5) (4) (3 ) (3) 762 (4 ) 763 764 (2 ) 765 766 767 768 769 (3) 770 771 772 773 774 775 (3) (3) (2) 776 777 000234' 004767 000240' 012605 000242' 000242 1 000242' 000242' 000415 000244' MACY 11 30A(1052) 20-SEP-78 18:36 CHECK FOR SYSTEM CLOCK ROUTINE PAGE 19-7 SEQ 0960 OOOOOOG ENDIF JSR MOV PC,ENQTQ (SP)+,R5 BR 50007$ MOV MiJV MOV R5,-(SP) #0,-(R:5) 50006$: ELSE 50004$: ;+ ; OUTPUT MESSAGE INDICATING SYSTEM CLOCK IS NOT AVAILABLE ;- 000244' 000244 1 000246' 000252' 000256 1 000262' 000266' 000270' 000274' 000276' 000276' CALL ENQTQ IN <R2,#0,#CC.CM1,#0,#0> 010546 012745 012745 012745 012745 010245 004767 012605 000000 000000 000000' 000000 OOOOOOG ENDIF #CC.CM1,-(R5) M:JV MOV JSR MOV #0,-(N~5) R2,-(F6) PC, ENC;)TQ (SP)+,R5 !:i0007$ : INLINE <100$:> 000276 1 000276' 1t0,-(H5) MOV 100$: ;+ ; RESTORE REGISTERS , 000276' 00'0276 ' 004767 CALL RESREG OOOOOOG JSR PC,RESREG RTS PC ;+ ; RETURN TO CALLER ;- 000302' 000302' 000302' 000302' 000207 ENDRTN :jOOOO$ : ~jOO01$: SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 MACV11 30A(1052) 20-SEP-78 CLKOFF - SYSTEM CLOCK-OFF 18:36 779 780 781 .SBTTL CLKOFF - SYSTEM CLOCK-OFF .IDENT JVO.Oj 782 ;++ 783 784 785 PAGE 19-8 SEQ 0961 MODULE NAME: CLKClFF 788 789 FUNCTIONAL DESCRIPTION: THIS MODULE WILL SHUT OFF THE SYSTEM CLOCK (IF AVAILABLE). THE ROUTiNE WILL SAVE THE CLOCKIS CONTROL STATUS REGISTER (CSR) ADDRESS AND ITIS CONTENTS. PLUS TUR~ THE CLOCK OFF BY CLEARING THE INTERRUPT ENABLE BIT. 790 791 792 INPUTS: DTABLE - ADDRESS OF DATA TABLE 786 787 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 IMPLICIT INPUTS: DT.SCT - ADDRESS OF SYSTEM CLOCK TABLE SYSTEM CLOCK WORD Dr. CLO POINTER TO KW11L OPTION MODULE SC.CKL POINTER TO KW11P OPTION MODULE SC.CKP OUTPUTS: NONE IMPLICIT OUTPUTS: SC.ADR - SAVE LOCATION FOR CLOCK CSR ADDRESS SC.HLD - SAVE LOCATION FOR CONTENTS OF CLOCKIS CSR PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL CLKOFF IN <A> A= ADDRESS OF DTABLE EDIT ;-- DATE BY HEASON SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 MACY11 30A(1052) 20-SEP-78 18:36 COMMON DEFINITIONS AND REFERENCES PAGE 19-9 .SBTTL COMMON DEFINITIONS AND REFERENCES 826 827 828 829 830 , 831 .GLOBL ;************~*** ; REFERENCED BY OTHER MODULES CLKOFF ;MODULE ENTRY POINT SEQ 0962 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 833 834 835 836 (2) 837 838 839 840 841 842 843 844 (2) (3) 845 (4) 846 (4) 847 848 849 850 651 852 853 854 (6) (9) 855 (4) 856 857 (4) (3) S58 859 860 861 862 863 864 (4) 8S5 (4) 866 867 868 869 870 871 872 873 (4) 874 875 MACY11 30A(1052) CLKOFF ROUTINE .SBTTL 20-SEP-7E 18:36 PAGE 19-10 SEQ 0953 CLKOFF ROUTINE ROUTINE CLKOFF <DTA> 000304' 000304' CLKOFF: ;+ ; SAVE REGISTERS ON STACK AND RETRIEVE ADDRESS OF DTABLE AND ; GET ADDRESS OF SYSTEM CLOCK TABLE (SCTAB) ,'- 000304' 000304' 000306' 000310' 000310' 000314' 000314' PUSH RO,R1 010046 010146 LET 016501 R1 016101 RO,-(SP) Ri,-(SP) MOV DTA(R5) ,R1 MOV DT .seT(R1) ,1~1 BIT BEQ #BITOO,SC.CLO(R1 50002$ MOV @SC.C~~L(R1) ,RO BR 50003$ MOV @lSC.C~<P(R1) ,RO MOV ADf~(RO) ,SC.ADR(R := DTA(R5) 000000 LET R1 MOV MOV := DT.SCT(R1) 000066 ;+ ; IF KW11-L IS SYSTEM CLOCK THEN GET THE KW11-L ; OPTION MODULE HEADER ADDRESS ;- 000320' 000320' 032761 000326' 001403 000330' 000330' 017100 IF #BITOO SETIN SC.CLO(R1) THEN 000001 000000 LET RO != @SC.CKL(R1) 000002 ELSE 000334' 000334' 000402 000336' ~)0002$ : ;+ ; KW11-P IS SYSTEM CLOCK, GET THE KW11-P ; OPTION MOOUL~ HEADER ADDRESS 000336' 000336' 017100 000342' 000342' LET RO := @SC.CKP(R1) 000004 ENDIF ~50003$ : ;+ ; GET SySTEM CLOCK CSR ADDRESS AND SAVE IN ; SC.ADR. RO CONTAINS THE OPTION ; MODULE HEADER ADDRESS. 000342' 000342' 016061 LET SC.ADR(R1) := ADR(RO) 000006 000006 ;+ SYSCLK SYSTEM CLOCK BINDER MODULE 28-JUL-78 09:28 SYSCLK.MAC 876 877 878 879 880 (4) 20-SEP-78 18:36 PAGE 19-11 SEQ 0964 ; GET CONTENTS OF SYSTEM CLOCK CSR AND SAVE ; IN SC.HLD 000350' 000350' 017161 LET SC.HLD(R1) := @SC.ADR(R1) 000006 000010 MOV @SC.ADR(R1),SC.H CLR @SC.ADR(R1) MOV MOV (SP)+,R1 (SP)+,RO RTS PC ;+ ; TURN SYSTEM CLOCK OFF BY CLEARING ; IT'S CSR 881 882 883 384 885 886 (4 ) 887 888 889 890 891 (2) (3) 892 893 894 895 896 897 (3) (3) (2 ) 898 899 900 901 MACY11 30A(1052) CLKOFF ROUTINE ,' 000356' 000356' 005071 LET @SC.ADR(R1) := #0 000006 ;+ ; RESTORE REGISTERS 'f - 000362' 000362' 012601 000364' 012600 POP R1,RO ;+ ; RETURN TO CALLING MODULE 000366' 000366' 000366' 000366' 000207 ENDRTN e,OOOO$ : ei0001$: SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 MACY11 30A(1052) 20-SEP-78 CLKON SYSTEM CLOCK-ON 927 928 929 930 931 932 933 934 935 936 937 938 939 .940 941 942 943 944 945 946 947 948 949 PAGE 19-12 SEQ 0965 .SBTTL CLKON SYSTEM CLOCK-ON .IDENT /VO.O/ ;++ MODULE NAME: CLKON FUNCTIONAL DESCRIPTION: THIS MODULE WILL TURN ON THE SYSTEM CLOCK. THIS WILL BE ACCOMPLISHED BY RESTORING THE CONTENTS OF THE CSR TO ITiS VALUE AT THE TIME THE CLOCK WAS TURNED OFF. THE CONTENTS OF THE CSR IS DEPENDENT UPON THE SYSTEM CLOCK IN USE. THE KW11-L WILL ONLY SET THE INTERRUPT ENABLE BIT WHILE THE KW11-P WILL ALSO SET THE APPROPRIATE MODE AND FREQUENCY BITS. INPUTS: DTABlE - DATA TABLE ADDRESS IMPLICIT INPUTS: DT.seT - ADDRESS OF SYSTEM CLOCK TABLE SC.AOR - STORAGE FOR CLOCK CSR ADDRESS SC.HLD - STORAGE FOR CONTENTS OF CSR 924 925 926 18:36 OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECiS: NONE CALLING SEQUENCE: CALL CLKON IN<A> A= DTABLE ADDRESS EDIT ;-- DATE BY REASON SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 2S-JUL-78 09:28 951 952 MACY11 30A(1052) 20-SEP-78 18:36 COMMON DEFINITIONS AND REFERENCES PAGE 19-13 .SBTTL COMMON DEFINITIONS hND REFERENCES 953 954 955 956 ;**************** 957 .GLOBL 959 959 ; REFERENCED BY OTHER MODULES t CLKON ;MODULE ENTRY POINT SEQ 0966 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 961, 962 963 964 (2) 965 966 967 968 969 970 971 972 973 974 975 (2) 976 (4) 977 (4) 978 (4) 979 980 981 982 983 984 985 (2) 986 987 (3) (3) (2) 988 MACY11 30A(1052) C LKON ROUT I hiE .SBTTL CLKON 20-SEP-78 18:36 PAGE 19-14 SEQ 0967 ROUTINE ROUTINE CLKON <OTA> 000370 1 000370 1 CLKON: ;+ ; ; ; ; SAVE RO AND RETRIEVE DTABLE FROM RS AND GET SCTAB INTO RO GET THE SYSTEM CLOCK CSR ADDRESS AND RESTORE ITS CONTENTS, THIS WILL TURN THE CLOCK ON. RO CONTAINS THE ADDRESS OF SCTAB. j- 000370 1 000370 1 010046 0003721 000372 1 016500 000376 1 000376 1 016000 000402 1 000402 1 016070 PUSH RD MOV RO,-(SP) MOV DTA(R5,),RO MOV DT.SCT(RO),RO MOV SC.HLD(RO),@SC.A MDV (SP)+,RO HTS PC LET RO '- DTA(R5) 000000 LET RO .- DT.SCT(RO) 000066 000010 LET @SC.ADR(RO) := SC.HLD(RO) 000006 ;+ .;, _. RESTORE REGISTER AND RETURN TO CALLER 000410 1 000410 1 012600 POP RO 000412 1 000412 1 000412 1 000412 1 000207 ENDRTN ~jOOOO$ : ~)0001$: SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 '004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 10:23 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 MACY11 30A(1052) 20-SEP-78 18:36 PAGE 19-15 PRHMS PROCESS HOURS, MINUTES, AND SECONDS CONVERSION .SBTTL PRHMS .IDENT IVO.OI SEQ 0968 PROCESS HOURS, MINUTES, AND SECONDS CONVERSION ;++ MODULE NAME: PRHMS FUNCTIONAL DESCRIPTION: THIS MODULE WHEN CALLED WILL GET THE TOTAL RUNTIME IN SECONDS FROM THE SYSTEM CLOCK OPTION MODULE (KW11-L OR KW11-P) HAVE IT CONVERTED TO HOURS, MINUTES AND SECONDS, AND RETURNS THE CONVERTED TIME TO THE CALLER. INPUTS: ADDRESS OF DTABlE ADDRESS OF CONVERTED TIME ST8RAGE IMPLICIT INPUTS: DT.SCT SC.CLO SC.CKL SC.CKP OUTPUTS: NONE: IMPLICIT OUTPUTS: HOURS \ MINUTES ---IN STORAGE SPECIFIED SECONDS / PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG - SAVE REGISTERS HMS - CONVERSION TO HRS, MINS AND SECS RESREG - RESTORE REGISTERS LDTIME - LOAD RESULTANT TIME FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL PRHMS IN <A,B> A = ADDRESS OF DTABlE B = ADDRESS OF CONVERTED TIME VERSION: 0.0 ._, EDIT DATE BY f~EASON SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1044 1045 1046 1047 1048 1049 1050 1051 1052 MACY11 30A(1052) 20-SEP-78 18:36 PAGE 19-16 PRHMS PROCESS HOURS, MINUTES, AND SECONDS CONVERSION .SBTTL COMMON DEFINITIONS AND REFERENCES ;**************** ; REFERENCED BY OTHER MODULES , .GLOBL PRHMS ;**************** 1053 1054 ; GLOBAL REFERENCES 1055 .GLOBL .GLOBL .GLOBL 1056 1057 ;MODULE ENTRY POINT ; SAVREG HMS RESREG SAVE REGISTERS HOURS, MINUTES AND SECONDS CONVERSION RESTORE REGISTERS SEQ 0969 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1059 1060 1061 1062 1063 (2 ) .SBTTL 1073 (4) 1074 (4) 1075 1076 1077 1078 1079 1080 1081 (6) (9 ) 1082 1083 1084 1085 1086 1087 1088 1089 (4 ) (6) 1090 1091 1092 (4) (3) 1093 1094 (G) 1101 PROCESS HOURS, MINUTES AND SECONDS CONVERSION ROUTINE ;+ ; SAVE REGISTERS ON STACK, RETRIEVE AbDRESS OF DTABLE FROM ; R5 STACK AND DETERMINE ADDRESS OF SCTAB. ;000414 1 000414 1 000416 1 000420 1 000420 1 000424 1 000424 1 PUSH RO,R1 010046 010146 016500 MOV MOV RO,-(SP} R1,-(SP) MOV DTA(R5) ,RO MOV DT.SCr(RO),RO BIT SEQ #BITOO,SC.CLO(RO 50002$ MOV ADD SC.CKL(RO) ,R1 #2,R1 SR 50003$ LET RO '- DTA(R5) 000000 LET RO .- DT.SCT(RO) 016000 000066 ;+ ; DETERMINE IF KW11-L IS SYSTEM CLOCK BY CHECKING IF ; BIT 0 IS SET IN SC.CLO WORD OF seTAB ;- 000430 1 000430 1 032760 000436 1 001405 IF #BITOO SETIN SC.CLO(RO) THEN 000001 000000 ;+ ; GET ADDRESS OF KW11-L ELAPSED TIME TABLE. TIME TABLE IS THE ; ADDRESS FOLLOWING THE LOCATION CONTAINED IN SC.CKL. TH~ TABLE ; CONTAINS ELAPSED TIME AND EXTENDED ELAPSED TIME. 000440 1 000440' 016001 000444 1 062701 LET R1 := SC.CKL(RO) + #2 000002 000002 ELSE 000450 1 000450 1 000404 000452 1 ~50002$ : j+ ; MUST BE A KW11-P CLOCK. GET ADDRESS OF KW11-P ELAPS~D TIME TABLE. ; THE TABLE IS THE ADDRESS FOLLOWING THE LOCATION CONTAINED IN SC.CKP. ; THE TABLE CONTAINS ELAPSCD TIME AND EXTENOEC ELAPSED TIME. 109~ 1096 1097 109B 1099 1100 (4) SEQ 0970 PRHMS: 1069 ( 2) (3) PAGE 19-17 ROUTINE PRHMS <DTA,RESULT> 000414 1 000414 1 1064 1065 1066 1067 1068 1070 1071 1072 MACY11 30A(1052) 20-SEP-78 18:36 COMMON DEFINITIONS AND REFERENCES j- 000452 1 000452 1 016001 000456 1 062701 LET R1 000004 000002 := SC.CKP(RO) + #2 MOV ADD SC"CKP(RO),R1 #2"R1 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-uUL-78 09:28 1102 1103 (4) 1104 (3) (3) (4) SEQ 0971 50003$: .- 1108 f 1109 (4 ) PAGE 19-18 ;+ 1107 (3) (5) 18:36 ; CALL HMS TO CONVERT TIME TO DECIMAL ASCII HOURS. ; MINUTES AND SECONDS. 1106 (4 ) 20-SEP-78 PROCESS ~OU~S, MINUTES AND SECONDS CONVERSION ROUTINE ENDIF 000462,1 000462 1 1105 1110 MACY11 30A(1052) 000462' 000462 1 000466' 000470 1 000474 1 000476 1 000502' 000504' CALL HMS IN «R1),2(R1» 162705 010546 016145 011145 004767 012605 012501 OUT <R1> 00000:2 000002 SUB #1*2,R5 MOV MOV R5,-(SP) 2(R1) f-(R5) ( R1 ) , - ( R5 ) PC,HMS 1\10V JSR 000302 MOV (SP)+,R5 MOV (R5)+,R1 MOV RESULT(R5) ,fW MOV MOV MOV JSR MOV R5,-(SP) RO,-(R:5) MQV rJlOV (SP)+,R1 RTS PC 1111 1112 , 113 1114 1115 1116 1117 (4) 1118 (3) (5) (4) (3) (3) ;+ ; LOAD RESULT ADDRESS INTO R1 AND NOW LOAD UP THE TIME ;- 000506' 000506' 016500 000512 1 000512' 010546 000514' 010045 000516' 010145 000520' 004767 000524' 012605 LET RO "- RESULT(R5) 000002 CALL LDTIME IN <R1,RO> 000010 R1,-(11:5) PC,LDTIME (SP)+,R5 1119 ;+ 1120 1121 ; RESTORE REGISTERS AND RETURN 1122 ;- '123 1124 (2 ) (3 ) 000526' 000526 1 012601 000530 1 012600 POP R1,RO 000532 1 000532' 000532' 000532' 000207 ENDRTN (SP)+,RO 1125 1126 (3) (3) (2 ) 1127 ~)00003; : :;0001$: SYSCLK SYSTEM CLOCK BINOER MODULE SYSCLK.MAC 28-JUL-79 09:28 1129 1130 1131 (2) 1132 1133 1134 1135 1136 1137 1138 1139 (2) (3) 1140 (4) 1141 (4 ) 1142 (4 ) 1143 (4) 1144 (4) 1145 (4) 1146 (4 ) 1147 (4 ) 1148 (4 ) 1149 (4) 1150 (4) 1151 (2 ) (3 ) 1152 (3 ) (3) (2) MACY11 30A(1052) 20-SEP-78 18:36 LDTIME - LOAD CONVERTED TIME PAGE 19-19 SEQ 0972 .SBTTL LDTIME - LOAD CONVERTED TIME ROUTINE LDTIME <ADR,RESULT> 000534' 000534' LDTIME: ;+ ; GET CALLING MODULE CONVERTED TIME STORAGE ADDRESS, THEN LOAD UP THE ; STORAGE WITH THE CONVERTED TIME AND INCLUDE COLONS(:) IN APPROPRIATE ; LOCATIONS . ADR(R5) WILL CONTAIN THE STORAGE ADDRESS WHILE RESULT(R5) CONTAINS i , 000534' 000534' 010046 000536 1 010146 000540 1 000540 1 016500 000544' 000544 1 016501 000550 1 000550 1 112120 000552 1 000552 1 112120 000554 1 000554 1 11 2120 000556 1 000556 1 112720 000562 1 000562 1 112120 000564 1 000564 1 112120 000566 1 000566 1 112720 0005721 000572 1 11 2120 000574 1 0005741 111110 000576 1 000576 1 012601 000600 1 012600 000602 1 0006021 000602 1 000602 1 000207 THE RESULT ADDRESS PUSH RO,R1 LET RO .- RESULT(R5) LET R1 . - ADR(R5) 000002 000000 LET (RO)+ : B= (R 1 ) + LET (RO)+ :B= (R 1 ) + LET (RO)+ :B= (R1 ) + LET (RO)+ :B= # ' : 000072 LET (RO)+ : B= ( R1 ) + LET (RO)+ : B= (R 1 )+ LET (RO)+ : B= # 1 : 000072 LET (RO)+ : B= (Rl ) + LET (RO) : B=: ( R1) POP R1 ,RO ENDRTN MOV MOV RO,-(SP) R1,-(SP) MDV RESU L1"( R5) , RO MOV ADht(R~» MOV8 (Ri )+,. (RO)+ MOVB (Rl )+,. (RO)+ MOVB (R1)+,(RO)+ MOVB #I:,(FW)+ MOVB (Rl )+, (RO)+ MOVB (R1 )+, (RO)+ MOVB #i:,(FIO)+ MOVB (R1 )+, (RO)+ MOVB (R1),(RO) MOV MOV (SP)+,Rl (SP)+,RO RTS PC =;0000$ : =iOO01$: ,R1 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 MACY11 30A(1052) 20-SEP-78 18:36 LDTIME - LOAD CONVERTED TIME .SBTTL PRPSCNT .IDENT /VO.O/ PAG~ 19-20 PROCESS PASS COUNT TIME ;++ MODULE NAME: PRPSCNT FUNCTIONAL DESCRIPTION: THIS MODULE WILL BE CALLED IF SYSTEM CLOCK IS AVAILABLE. THE PASS COUNT TIME IS DETERMINED BY FIRST SEARCHING THE MODULE TIME TABLE (IN CLOCK OPTION MODULE) AND THEN SUBSTRACTING PASS COUNT TIME FROM THE SYSTEM ELAPSED TIME. THEN THE PASS COUNT TIME WILL BE CONVERTED TO HOURS, MINUTES AND SECONDS, AND THEN WILL RETURN CONVERTED TIME TO CALLING MODULE. NOTE - THIS MODULE WILL RETURN T~E CONVERTED TIME IN THE FOLLOWING FORMAT: HHH:MM:SS THE COLON <:) WILL BE GENERATED BY THIS MODULE. INPUTS: DTABLE ADDRESS ADDRESS OF MODULE DOING END OF PASS ADDRESS OF STORAGE FOR CONVERTED TIME IMPLICIT INPUTS: DT.SCT DT.MLST SC.CLO SC.CKl Sc. CKP OUTPUTS: NONE IMPLICIT OUTPUTS: CONVERTED TIME IN HOURS, MINUTES AND SECONDS HHH:MM:SS 1191 1192 1193 PATHOLOGICAL CONNECTIONS: NONE 1194 1195 1196 1197 1198 1199 SUBORDINATE ROUTINES CALLED: SAVREG - SAVE REGISTERS HMS - CONVERT TIME RESREG - RESTORE REGISTERS LDTIME - LOAD RESULTANT TIME 1200 1201 1202 FUNCTIONAL SIDE EFFECTS: NONE 1203 1204 1205 1206 1207 1208 1209 SEQ 0973 CALLING SEQUENCE: CALL IN <ArB,C> A - ADDRESS OF DTABlE B - ADDRESS OF MODULE DOING END OF PASS C - ADDRESS OF CONVERTED TIME STORAGE SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 MACY11 30A(1052) 20-SEP-78 18:36 PRPSCNT PROCESS PASS COUNT TIME SEQ 0974 VERSION: 0.0 1210 1211 1212 1213 1214 PAGE 19-:21 , '- EDIT DATE BY ~1EASON SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1216 1217 121'8 MACY11 30A(10S2) 20-SEP-78 18:36 PRPSCNT PROCESS PASS COUNT TIME .SBTTL PAGE 19-22 COMMON DEFINITIONS AND REFERENCES 1219 1220 1221 1222 1223 ;**************** ; REFERENCED BY OTHER MOOULES , .GLOBL PRPSCNT 1224 1225 1 '.226 1227 1228 1229 1230 ;MODULE ENTRY POINT ;**************** ; GLOBAL REFERENCES , .GLOBL .GLOBL .GLOBL HMS SAVREG RESREG ;HOURS MINUTES AND SECONDS CONVERSION ;SAVE REGISTERS ;RESTORE REGISTERS SEQ 0975 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1232 1233 1234 1235 1236 (2) 1237 1238 1239 1240 1241 1242 1243 1244 (3 ) 1245 1246 (4) 1247 (4) 1248 (4) 1249 1250 1251 1252 1253 1254 1:255 (6) (9) 1:256 1257 1:258 1:259 1260 1261 (4) 1262 (4) (3 ) 1263 1264 1265 1:266 1267 1:268 1269 1270 (4) 1271 (4 ) 1:272 1273 1274 1275 MACYll 30A(1052) 20-SEP-78 18:36 COMMON DEFINITIONS AND REFERENCES .SBTTL PAGE 19-23 PROCESS PASS COUNT TIME ROUTINE ROUTINE PRPSCNT <DTA,BGNADR,RESULT> 000604 1 000604 1 SEQ 0976 PRPSCNT: ;+ ; SAVE REGISTERS, RETRIEVE ADDRESS OF DTABLE FROM RS STACK, THEN ; DETERMINE PTR TO MODULE LIST AND ADDRESS OF SCTAB 000604 1 000604 1 004767 000610 1 000610' 016501 000614 1 000614 1 016100 000620 1 000620 1 016101 CALL SAVREG OOOOOOG PC,SAVREG LET Rl ·- DTA(RS) MOV DTA(RS),Rl LET RO ·- ·- Dr.SCT(Rl) MOV DT.MLST(R1),RO LET Rl MOV DT .SCr(Rl) ,Rl 000000 000032 JSR 000066 DT.MLST(R1) ;+ ; DETERMINE IF KW11-L IS SYSTEM CLOCK BY CHECKING IF BIT 0 IS SET IN SC.CLO ; WORD OF SCTAB ;- 000624 1 000624 1 032761 000632 1 001403 IF #BITOO SETIN SC.CLO(Rl) THEN 000001 000000 BIT BEQ #BITOO,SC.CLO(R1 50002$ MOV SC.CKL.(R1) ,Rl BR 50003$ MOV SC. CK P ( R1 ) , R1 ;+ ; GET ADDRESS OF KWli-L ELAPSED TIME TABLE ,' 000634 1 000634 1 016101 000640' 000640 1 000402 000642 1 LET R1 '- SC.CI\L(Rl) 000002 ELSE ~)0002$ : ;+ ; MUST BE A KW11-P CLOCK GET ADDRESS OF KW11-P ELAPSED TIME ; TABLE ;- 00064:2 1 000642 1 016101 000646' 000646 1 LET R1 '- SC.CKP(Rl) 000004 END1F ~)00033; ;+ GET R2 TO POINT TO MODULE TIME TABLE AND Rl TO POINT TO ; R.T.E ELAPSED TIME : SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1276 1277 1278 (4) (6) 1279 (6) 1280 1281 1282 1283 1284 1285 (4) 1286 1287 1288 1289 1290 1291 1292 1293 (4) (6) (9) 1294 (6) 1295 (6) 1296 (4) (3) 1297 1298 1299 1300 1301 1302 1303 (4) (6) 1304 1305 1306 1307 130B 1309 1310 (4) (3) (5) (4) (3) (3 ) (4) 1311 MACY11 30A(1052) 20-SEP-78 18:36 PROCESS PASS COUNT TIME ROUTINE PAGE 19-24 SEQ 0977 , '- 000646' 000646' 010102 000650' 062702 000654' 000654' 062701 LET R2 '- R1 + #6 000006 LET Ri MOV ADD R1 ,H2 #6,R2 ADD #2, f( 1 MOV BGNADR(R5),R3 CMP BEQ (RO),R3 50005$ ADD #2,RO AOD #4,R2 BR 50004$ .- R1 + #2 000002 ;+ ; GET ADDRESS OF MODULE TO BE UPDATED FROM R5 STACK ;- 000660' 000660' 016503 LET R3 := BGNADR(R5) 000002 ;+ ; SEARCH MODULE LIST UNTIL MODULE LIST POINTER POINTS TO ADDRESS ; IN R3, IF NOT EQUAL INCREMENT MODULE LIST POINTER AND MODULE ; TIME POINTER 000664' 000664' 000664' 000666' 000670' 000670' 000674' 000674' 000700' 000700' 000702' WHILE (RO) NE R3 DO 50004$: 021003 001405 062700 LET RO .- RO + #2 000002 LET R2 := R2 + #4 062702 000004 ENDDO 000771 50005$: ;+ ; GET ELAPSED TIME AND SUBTRACT MODULES ELAPSED TIME TO DETERMINE ; MODULE'S PASS TIME ;- LET Ri 000702 1 000702' 011101 000704' 161201 := (Ri) - (R2) ;+ ; NOW CALL HMS TO CONVERT THE PASS TIME, ; BE O. MOV SUB (Ri),R1 (R2),R1 SUB MOV MOV MOV JSR MOV MOV #1*2,R5 R5,-(SP) #0,-(R5) R1,-(R5) PC,HMS (SP)+,R5 (R5)+,R1 EXTENDED TIME WILL ;- 000706' 000706' 000712' 000714' 000720' 000722' 000726' 000730' CALL HMS IN <R1 ,#0> OUT <R1> 162705 010546 012745 010145 004767 012605 012501 000002 000000 000056 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1312 1313 1314 1315 1316 (4) 1317 (3) (5 ) (4 ) (3 ) (3 ) (3) 1324 1325 (3) (3 ) (2) 1326 PAGE 19-25 SEQ 0978 ;+ ; LOAD THE RESULT CONVERSION STORAGE AND ALSO LOAD THE TIME ;- 000732 1 000732 1 000736 1 000736 1 000740 1 000742 1 000744 1 000750 1 LET RO := RESULT(R5) 016500 MOV 000004 RESU LT (R5) ,f<O CALL LDTIME IN <R1,RO> 010546 010045 010145 004767 01:2605 MOV MOV MOV JSR MOV 177564 1318 1319 1320 1321 1322 1323 MACY11 30A(1052) 20-SEP-7~ 18:36 PROCESS PASS COUNT TIME ROUTINE R5,-(SP) RO,-(R5) R1,-(R5) PC, LDTIME (SP)+,R5 ;+ ; RESTORE REGISTERS AND RETURN TO CALLER ;- 000752 1 000752 1 004767 000756 1 000756 1 000756 1 000756 1 000207 CALL RESREG OOOOOOG JSR PC, RES;REG RTS PC ENDRTN ~50000$ : :10001$: SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 MACY11 30A(1052) 20-SEP-78 18:36 PAGt 20 HMS HOURS, MINUTES, AND SECONDS CONVERSION 1329 .SBTTL HMS .IDENT IVO.OI 1330 1331 ;++ 1328 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 FUNCTIONAL DESCRIPTION: THIS MODULE WILL CONVERT THE GIVEN TIME IN SECONDS INTO DECIMAL ASCII HOURS, MINUTES, AND SECONDS. THEN LOAD THE INFORMATION INTO A TABLE AND THE ADDRESS OF THIS TABLE IS RETURNED TO THE CALLER CONVERTED TIME TABLE: 3 BYTES DEFINED FOR HOURS 2 BYTES DEFINED FOR MINUTES 2 BYTES DEFINED FOR SECONDS NOTE: MAXIMUM NUMBER OF HOURS THAT WILL BE CONVERTED WILL BE 999 DECIMAL. INPUTS: ELAPSED TIME EXTENDED ELAPSED TIME IMPLICIT INPUTS: NONE OUTPUTS: ADDRESS OF CONVERTED TIME TABLE IMPLICIT OUTPUTS: HOUHS \ MINUTES ---CONVERTED TIME SECONDS I ROUTINES CALLED: SAVREG - SAVE REGISTERS BDACNV - CONVERSION TO DECIMAL ASCII RESREG - RESTORE REGISTERS SUBORDINAT~ 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 137b 1379 1380 FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL HMS IN <A,B> OUT <C> A - ELAPSED TIME B - EXTENDED ELAPSED TIME C - ADDRESS OF CONVERTED TIME TABLE VERSION: 0.0 1381 1382 1383 TAB~E PATHOLOGICAL CONNECTIONS: NONE 1364 1365 HOURS, MINUTES, AND SECONDS CONVERSION MODULE NAME: HMS 1345 1346 1347 SEQ 0979 Eon" ;-- BY REASON SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 I"., 1385 MACY11 30A(1052) 20-SEP-78 18:36 COMMON DEFINITIONS AND ~EFERENCES PAGE 20-1 .SBTTL COMMON DEFINITIONS AND REFERENCES 1386 1387 ;**************** 1388 1389 , ; REFERENCED BY OTHER .GLOBL 1390 HMS MODu~ES ;MODULE ENTRY POINT 1391 1392 ;**************** 1393 1394 1395 , ; GLOBAL REFERENCES .GLOBL .GLOBL .GLOBL 1396 1397 SAVREG BDACNV RESREG ;SAVE REGISTERS ;BINARY TO DECIMAL ASCII CONVERSION ;RESTORE REGISTERS 1398 ;**************** 1399 ; LOCA L STOj;~AGE 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 000760' 000760' 000003 000763 1 000002 000765 1 000002 000770 1 000770 1 000770 1 000000 000772 1 000000 000774 1 000000 HM.CTT HM.HRS HM.MIN HM.SEC .EVEN HM.CTE HM.THR HM.TMI HM. TSE 000776 1 000005 001004 1 HM.CNV .EVEN : . BL.KB 3 :. BL.KS 2 :. Bl.KB 2 ;CONVERTED TIME TABLE HOURS MINUTES SECONDS : . WORD 0 : . WORD 0 : . WORD 0 ;END OF CONVERTED TIME TABLE ;TOTAL TIME IN HOURS STORAGE ;TOTAL TIME IN MINUTES STORAGE ;TOTAL TIME IN SECONDS STORAGE :. Bl.KB 5 ;STORAGE FOR BDACNV CALL SEQ 0980 SYSCLK SYSTEM CLOCK BiNDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1416 1417 1418 1419 1420 (2 ) 1421 1422 1423 1424 1425 1426 1427 (3) 1428 (4) 1429 (4) 1430 (4) 1431 (4) 1432 (4) 1433 1434 1435 1436 1437 1438 (4 ) (6) (9) 1439 MACY11 30A(1052) 20-SEP-78 18:36 COMMON DEFINITIONS AND REFERENCES ROUTINE HMS <TIME,XTIME,ADRCT> 001004' 001004' HMS: ;+ ; SAVE REGISTERS ON STACK, RETRIEVE TIME (RO) AND EXTENDED TIME (R1) FROM STACK, ; INITIALIZE LOCAL STORAGE 001004' 001004' 001010' 001010' 001014' 001014' 001020' 001020' 001024' 001024' 001030' 001030' CALL SAVREG 004767 OOOOOOG 016500 000000 LET RO "- TIME{R5) LET R1 016501 000002 005067 177744 005067 177742 LET HM. TMI "- #0 005067 177740 (6 ) 1449 (6) 1450 (4 ) (3) 1451 (6) 1452 (6) PC,SAVREG MOV TIME(R5),RO MOV XTIME(R5),R1 CLR HM.THR CLR HM.TMl. CLR HM.TSE TST BEQ 50003$ ;+ ; PROCESS (EXTENDED TIME BITS) INTO HOURS ;- WHILE R1 NE #0 DO 001034' 001034' 001034' 005701 001036' 001417 ;- 1448 JSR LET HM.TSE '- #0 ;+ (6 ) .- XTIME(R5) LET HM.THR ,- #0 1441 1442 1443 1444 1445 1446 (6) 1447 SEQ 0981 .SBTTL HOURS, MINUTES AND SECONDS CONVERSION ROUTINE 1440 (9) PAGE 20-2 S0002$: R'j ; 1B HRS, 12 MIN AND 16 SEC REQUIRED FOR EXTIME TO BE INCREMENTED ; IF TIME IS LESS THAN 1 HOUR THEN ADD 18 HOURS TO HOURS AND ; ADD 12 MINUTES 16 SECONDS TO RO (TIME) 001040' 001040' 001044' 001046' 001046' 001054' 001054' 001060' 001060' 001062' 001062' 001064' 001064' 001064' 001070' 001070' IF RO LO #~D3600 THEN 020027 103007 007020 062767 000022 062700 001340 LET HM.THR .- HM.THR + 005301 177714 LET RO "- RO + LET R1 '- R1 - #1 CMP SHIS RO,#AD3600 50004$ DEC R1 SR 50005$ INC HM.THH #~D18 #~D736 ELSE 000404 ~50004$ : LET HM.THR := HM.THR + #1 005267 177700 162700 007020 LET RO SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1453 (4) 1454 (4) (3) 1455 1456 1457 145B 1459 1460 (4) (6) (9) 1461 (6) 1462 (6) 1463 (4) (3) 1.464 1465 1466 1467 1468 1469 (4) (6) (9) 1470 t6) 1471 (6) 1472 (4) (3 ) 147.3 1474 1475 1476 1477 1478 (4) 1479 1480 1481 1482 1483 1484 (3 ) (5) (4 ) (3) (3) 1485 MACY11 30A(1052) 20-SEP-78 18:36 PAGE 20-3 HOURS, MINUTES AND SECONDS CONVERSION ROUTINE SEQ 0982 ENDIF 001074 1 001074 1 001074 1 001074 1 000757 001076 1 50005$: ENDDO BR 50002$ CMP BLO RO,lr03600 50007$ INC HM. THf;t SUB #"'D3600,RO BR 50006$ CMP BlO RO, ir D60 50011$ INC HM.TMI SUB #"'D60" RO BR 50010$ MOV RO,HM.TSE MOV R5,-(SP) #HM.CNV,-(R5) HM.THIR,-(R5) PC,BDACNV (SP)+,R5 50003$: ;+ ; PROCESS REMAINING HOURS CONTAINED IN RO (TIME). ;- 001076 1 001076 1 001076 1 020027 001102 1 103405 001104 1 001104 1 005267 001110 1 001110 1 162700 001114 1 001114 1 000770 001116 1 WHILE RO HIS #AD3600 DO :;,0006$ : 007020 LET HM.THR := HM.THR + #1 177660 LET RO 007020 ENDDO :;0007$ : ;+ ; PROCESS MINUTES FROM REMAINING RO (TIME) ,' - 001116 1 001116 1 001116 1 020027 001122 1 103405 001124 1 001124 1 005267 001130 1 001130 1 162700 001134 1 0011341 000770 001136 1 WHILE RO HIS #AD60 DO ::;0010S: 000074 LET HM.TMI .- HM.TMI + #1 177642 LET RO '- RO - #~D60 000074 ENDDO ~50011$: ;+ ; TIME lEFT STICK IN HM.TSE 001136 1 001136 1 010067 LET HM.TSE := RO 177632 ;+ ; CONVERT HOURS TO DECIMhL ASCII ;- 001142 1 001142 1 001144 1 001150 1 001154' 001160 1 CALL BDACNV IN <HM.THR,#HM.CNV> 010546 012745 016745 004767 012605 000776 1 177614 OOOOOOG MOV MOV JSR MOV SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1486 1487 1488 1489 1490 1491 (4) (6 ) 1492 (4) 1493 (4) 1494 (4) 1495 (4) 1496 1497 1498 1499 1500 1501 (3) (5) (4) (3) (3) 1502 1503 1504 1505 1506 1507 1508 (4) (6) 1509 (4) 1510 (4) 1511 (4 ) 151 ~ 1513 1514 1515 1516 1517 (3) (5 ) (4) (3 ) (3) 1518 1519 1520 MACY11 30A(1052) 20-SEP-78 18:36 PAGE 20-4 HOURS, MINUTES AND SECONDS CONVERSION ROUTINE SEQ 0983 ;+ ; INITIALIZE R2 TO POINT TO HM.CNV TABLE + 2 AND R3 TO POINT TO HM.HRS. ; THEN MOVE LOWEST THREE BYTES IN HM.CNV TABLE INTO HM.HRS STORAGE IN HM.CTT. 001162' 001162' 001166' 001172' 001172' 001176' 001176' 001200' 001200' 001202' 001202' LET R2 .- #HM.CNV + #2 012702 062702 000776' 000002 012703 00076(), LET R3 '- #HM.HRS LET (R3)+ 112223 :B~ (R2)+ LET (R3)+ :B= (R2)+ 112223 LET (R3)+ :B= (R2)+ 112223 MOV ADD #HM.CNV,R2 #2,R2 MOV #HM.HRS,R3 MOVB (R2)+,(R3)+ MOV8 (R2)+,(R3)+ MOV8 (R2)+,(R3)+ MOV MOV MOV JSR MOV R5,-(SP) #HiVI.Ct'-IV,-(RS) HM.TMl,-(R5) PC,BDACNV (SP)+,R5 ;+ ; CONVERT MINUTES TO DECIMAL ASCII ', - 001204' 001204' 001206' 001212' 001216' 001222' CALL BDACNV IN 010546 012745 016745 004767 012605 <HM.TMI,#H~.CNV> 000776' 177554 OOOOOOG ;+ ; INITIALIZE R2 TO POINT TO HM.CNV TABLE + 3, R3 TO POINT TO HM.MIN, ; MOVE 2 ENTRIES IN HM.CNV TABLE INTO HM.MIN STORAGE IN HM.CTT. 001224' 001224' 001230' 001234' 001234' 001240' 001240' 001242' 001242' LET R2 .- #HM.CNV + #3 012702 062702 000776' 000003 012703 000763' LET R3 .- #HM.MIN 112223 LET (R3)+ :B= (R2)+ LET (R3)+ :B= (R2)+ 112223 MOV ADD #HM. C.NV , R2 #3,R2 MOV #HM.MIN,R3 MOVB (R2)+" (R3)+ MOVB (R2)+,,(R3)+ MOV MOV MOV JSR R5,-(SP) #HM.CtN ,-(R5) HM"TSE,-(R5) PC,BDACNV (SP)+,R5 ;+ ; FINALLY CONVERT SECONDS TO DECIMAL ASCII ;001244' 001244' 001246' 001252' 001256' 001262' CALL BDACNV IN <HM.TSE,#HM.CNV> 010546 012745 016745 004767 012605 000776' 177516 OOOOOOG MOV ;+ ; INITIALIZE R2 TO POINT TO END OF HM.CNV TABLE + 3, R3 TO POINT SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1521 1522 1523 1524 1525 (4 ) (6) 1526 (4) 1527 (4 ) 1528 (4) 1529 1530 1531 1532 1533 1534 1535 (4) 1536 1537 1538 1539 1540 1541 (3) 1542 1543 (3) (3) (2) 1544 1545 MACY11 30A(1052) 20-SEP-78 18:36 PAGE 20-5 HOURS, MINUTES AND SECONDS CONVERSION ROUTINE SEQ 0984 ; TO HM.SEC. MOVE 2 ENTRIES IN HM.CNV TABLE INTO HM.SEC ; STORAGE IN HM-.CTT , '001264 1 001264 1 001270 1 001274 1 001274 1 001300 1 001300 1 001302 1 001302 1 LET R2 .- #HM.CNV + #3 012702 062702 000776 1 000003 012703 000765 1 LET R3 .- #HM.SEC LET (R3)+ :8= (R2)+ 112223 MOV ADD #HM.CNV,R2 #3,R2 MOV #HM.SEC,R3 MOVB (R2)+,(R3)+ MOVB (R.2)+,(R3)+ MOV #HIVl.crr,ADRCT(R5 J3R PC,RESREG RTS PC LET (R3)+ :8= (R2)+ 112223 ;-+; LOAD HM.CTT ADDRESS (CONVERTED TIME TABLE) ON R5 STACK FOR ; CALLER ;- 001304 1 001304 1 012765 LET ADRCT(R5) '- #HM.CTT 000760 1 000004 ;+ ; RESTORE REGISTERS AND RETURN TO CALLER , '- CALL RESREG 1 001312 001312 1 004767 ()01316 1 001316 1 001316 1 001316 1 000207 OOOOOOG ENDRTN 50000$: ~)0001 $: SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 MACY11 30A(1052) ~0-SEP-78 18:36 UPDTIM UPDATE MODULE PASS TIME PAGE 20-6 SEQ 0985 .SBTTL UPDTIM UPDATE MODULE PASS TIME .IDENT JVO.Oj ;++ MODULE NAME: UPDTIM FUNCTIONAL DESCRIPTION: THIS MODULE WILL ON~Y BE CALLED IF THERE IS A SYSTEM CLOCK AVAILABLE (KW11-L OR KW'1-P OPTION MODULE). UPON BEING CALLED IT WILL SEARCH THE MODULE LIST UNTIL THE MODULE IS FOUND THAT REQUIRES THE MODULE TIME TO BE UPDATED. THE UPDATE IS DONE BY MOVING THE TOTAL ELAPSED TIME AND EXTENDED T~ME INTO THE APPROPRIATE STORAGE LOCATIONS (CONTAINED IN SYSTEM CLOCK MODULE; KW11-L OR KW11-P) FOR THE MODULE BEING UPDATED. INPUTS: DTABLE ADDRESS MODULE BEGIN ADDRESS TO BE UPDATED IMPLICIT INPUTS: DT.MLST OFFSET TO MODULE LIST ADDR. IN DTABLE DT.SCT OFFSET TO SCTAB ADDR. IN DTABLE SC.CLO SC.CKL SC.CKP OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: SAVREG - SAVE REGISTERS RESREG - RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL UPDTIM IN <A,B> A - DTABlE ADDRESS B - MODU~E BEGIN ADDR. TO BE UPDATED VERSION: 0.0 EDIT ;-- DATE BY ~tEASON SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1600 1601 1602 1603 1604 1605 MACY11 30A(1052) 20-SEP-78 18:36 UPDTIM UPDATE MODULE PASS TIME PAGE 20-7 .SBTTL COMMON DEFINITIONS AND REFERENCES ;*************** i REFERENCED BY OTHER MODULES 1606 , 1607 .GLOBL UPDTIM ;MODULE ENTRY POINT 1608 1609 ;*************** 1610 1611 ; GLOBAL REFERENCES 1612 1613 .GLOBL .GLOBL SAVREG RESREG ;SAVE REGISTERS ;RESTORE REGISTERS SEQ 0986 SYSCLK SYSTEM CLOCK BINDER MCDULE SYSCLK.MAC 28-JUL-78 09:28 1615 1616 1617 1618 (2) 1619 1620 1321 1622 1623 1624 1625 1626 (3 ) 1627 (4) 1628 . (4) 1629 (4) 1630 1631 1632 1633 1634 1635 (6) (9) 1636 (4) 1637 (4) (3) 1638 (4) 1639 (4) 1640 1641 1642 1643 1644 1645 1646 (4) (6) 1647 (6) 1648 1649 1650 1651 1652 1653 (4) 1654 MACY11 30A(1052) 20-SEP-78 18:36 COMMON DEFIN!TIONS AND RE~ERENCES PAGE 20-8 SEQ 0987 .SBTTL UPDATE TIME ROUTINE ROUTINE UPDTIME <DTA,UPDMOO> 001320 1 001320' UPDTIME: ;+ ; SAVE REGISTERS, GET POINTERS TO MODULE LIST, R.T.E TIME AND ; MODULE TIME TABLE ;- 001320 1 001320 1 001324 1 001324 1 001330 1 001330 1 001334 1 001334 1 CALL SAVREG 004767 OOOOOOG JSR PC,SAVREG MOV DTA(RS) ,RO MGV DT.MLST(RO)~R1 MOV Dr • SCT ( RO ) , F~2 BIT BEQ #BITOO,SC.CLO(R2 50002$ MOV SC. CK L (R2) , f~2 BR 50003$ MOV SC.CKP(R2),1~2 MOV ADD R2,R3 #6,P.3 ADD #2,R2 IIf:OV UPDMOD(R5),RO LET RO .- DTA(R5) 016500 000000 LET R1 016001 .- DT.MLST(RO) 00003~ LET R2 .- DT.SCT(RO) 016002 000066 ;+ ; DETERMINE IF SYSTEM CLOCK IS KW11L OR KW11P AND ; GET ADDRESS WITHIN MODULE (CLOCK) ,'- 001340 1 001340 1 001346 1 001350 1 001350' 001354' 001354 1 001356 1 001356' 001356 1 001362 1 001362 1 IF #BITOO SETIN SC.CLO(R2) THEN 032762 001403 000001 016202 000002 000000 LET R2 := SC.CKL(R2) ELSE 000402 50002$~ LET R2 := SC.CKP(R2) 016202 000004 ENDIF 5,0003$ : ;+ ; GET R3 TO POINT TO MODULE TIME TABLE AND R2 ; TO POINT TO R.T.E. ELAPSED TIME ;- LET R3 '- R2 + #6 1 001362 001362 1 010203 001364' 062703 001370 1 001370 1 062702 000006 LET R2 .- R2 + #2 000002 ;+ ; GET ADDRESS OF MODULE TO BE UPDATED FROM RS STACK 001374' 001374 1 016500 LET RO := UPDMOD(R5) 000002 SYSCLK SYSTEM CLOCK BINDER MODULE 28-JUL-78 09:28 SYSCLK.MAC 1655 1656 1657 1658 1659 1660 (4) (6) (9 ) 1661 (6) 1662 (6) 1663 ( 4) (3) 1664 1665 1666 1667 1668 1669 1670 (4) 1671 (4 ) 1672 1673 1674 1675 1676 1677 (3) 1678 1679 (3) (3) (2) 1680 1681 2C-SEP-78 MACY1' 30A(1052) UPDATE TIME ROUTINE 18:36 PAGE 20-9 SEQ 0988 i+ ; SEARCH MODULE LIST UNTIL MODULE LIST POINTER POINTS TO A.DDRESS ; IN RO , 001400' 001400' 001400' 001402' 001404' 001404' 001410' 001410' 001414' 001414' 001416' WHILE ( R1) NE RO DO 021100 001405 062701 000002 062703 000004 LET R1 . - Rl + #2 LET R3 . - R3 + #4 5,0004$ : ENDDO 000771 CMP SEQ (R1),R:0 50005$ ADD #2,Rl ADD #4,R3 BR 50004$ MOV (R2),(R3) MOV 2(R2) ,.2(R3) JSR PC,RESREG RTS PC !:iOOOSSi : j+ ; HAVE FOUND MODULE UPDATE MODULE TIME TO REFLECT ; R.T.E ELAPSED TIME ;- 001416' 001416' 011213 001420' 001420' 016263 000002 LET (R3) .- (R2) LET 2(R3) ::: 2(R2) 000002 ;+ ; RESTORE STACK AND RETURN , 001426' 001426' 004767 001432' 001432' 001432' 001432' 000207 CALL RESREG OOOOOOG ENDRTN ~;OOOO$ : ~)0001$: SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 ·MACY1, 30A(1052) 20-SEP-78 18:36 PAGE 20-10 CLRTIM CLEAR TIME FROM SYSTEM CLOCK TIME TABLES 1683 1684 1685 .SBTTL CLRTIM CLEAR TIME FROM SYSTEM CLOCK TIME TABLES .IDENT JVO.Oj 1686 1687 ;++ 11388 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 SEQ 0989 MODULE NAME: CLRTIM FUNCTIONAL DESCRIPTION: THIS MODULE WILL CALL THE APPROPRIATE ROUTINE CONTAINED IN THE SYSTEM CLOCK MODULE (KW11L OR KWi1P OPTION MODULE) WHICH WILL CLEAR OUT THE R.T.E AND EXTENDED ELAPSED TIME WORDS AND ALSO THE MODULE TIME TABLE. INPUTS: DTAEILE ADDRESS IMPLICIT INPUTS: DT.SCT - SYSTEM CLOCK TABLE ADDRESS SC.CLO Sc. ALC SC.APC OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL CLRTIM IN <A> A - DTABLE ADDRESS VERSION: 0.0 EDIT DATE BY I~EASOI\j SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1729 1730 1731 1732 1733 1734 1735 1736 1737 MACY11 30A(1052) 20-SEP-78 18:36 PAGE 20-11 CLRTIM CLEAR TIME FROM SYSTEM CLOCK TIME TABLES .SBTTL COMMON DEFINITIONS AND REFERENCES ;**************** ; REFERENCED BY OTHER MODULES , .GLOBL CLRTIM ;MODULE ENTRY POINT SEQ 0990 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1739 1740 1741 1742 (2 ) 1743 1744 1745 1746 1747 1748 (2) 1749 (4) 1750 (4) , 751 1752 1753 1754 1755 1756 1757 (6) (9) 1758 1759 (3 ) 1760 1761 (4) (3 ) 1762 1763 1764 1765 176t; 1767 (3) 1768 1769 (4) 1770 1771 1772 1773 1774 1775 (2 ) 1776 1777 (3) (3) (2) 1778 1779 MACY11 30A (1052) 20"SEP-78 18: 36 COMMON DEFINITIONS AND REFERENCES PAGE 20-12 SEQ 0991 .SBTTL CLEAR TIME ROUTINE ROUTINE CLRTIM <DTA> 001434 ' 001434' CLRTIM: ;+ ; SAVE REGISTER, GET ADDRESS OF SCTAB ;- 001434 ' 001434' 010046 001436' 001436' 016500 PUSH RO 000000 RO,-(SP) MOV DTA(R5) ,RO MOV DT.SCT(RO),RO BIT BEQ #BITOO,SC.CLO(RO 50002$ JSR PC,@SC.ALC(RO) BR 50003$ JSR PC,@SC:.APC(RO) MOV (SP)+,RO RTS PC LET RO '- DT.SCT(RO) 001442' 001442' 016000 MOV LET RO .- DTA(R5) 000066 ;+ ; DETERMINE IF KW11L IS SYSTEM CLOCK, IF IT IS ; GO CLEAR KW11L CLOCK TIME TABLES. ;- IF NBITOO SETIN SC.CLO(RO) THEN 001446' 001446' 032760 001454' 001403 000001 001456' 001456 1 004770 000014 000000 CALL. @SC.ALC(RO) ELSE 001462' 001462' 000402 001464' ?0002$: ;+ ; MUST BE KW11P. GO CLEAR KW11P TIME TABLES ;- 001464 ' 001464 1 004770 001470' 001470' CALL @SC.APC(RO) 000016 ENDIF 5~0003$ : ;+ ; RESTORE REGISTER AND RETURN 001470' 001470' 012600 POP RO 001472 f 001472' 001472' 001472' 000207 ENDRTN =;0000$ : =.0001$: SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 11781 11782 1783 1~84 1785 1786 1987 ~&~~ 1~90 1 r?91 1f92 11793 11794 1/795 11796 11797 1:798 11799 1j800 1'801 1802 1803 1804 1805 1806 1,807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 MACY11 30A(1052) 20-SEP-78 18:36 PAGE 20-13 CKHUNG CHECK FOR HUNG OPTION MODULES SEQ 09~2 .SBTTL CKHUNG CHECK FOR HUNG OPTION MODULES .IDENT IVO.Oj ;++ MODULE NAME: CKHUNG FUNCTIONAL DESCRIPTION: THIS MODULE WILL CHECK TO SEE IF ANY IOMOD, IOMODP, IOMODR OR IOMODX HAVE NOT COMPLETED AN END OF PASS IN A SPECIFIED PERIOD OF TIME. THE CRITERIA WILL BE CHECKED BY COMPARING THE TIME OF THE MODULES LAST END OF PASS AGAINST THE CURRENT ELAPSED TIME OF THE SYSTEM RUN. THE MODULE TIME IS CONTAINED IN A TABLE WHICH CONTAINS TWO ENTRIES PER MODULE (TIME AND EXTENDED TIME WORDS), THIS TABLE IS LOCATED IN EITHER THE KW11-L OR KW11-P OPTION MODULE DEPENDING ON WHICH IS THE SYSTEM CLOCK. IF A MODULE IS DETERMINED TO BE HU~G THEN THE MODULE IS DROPPED WITH AN APPROPRIATE MESSAGE OUTPUTTED. INPUTS: NONE: IMPLICIT INPUTS: DT.IVITIME OUTPUTS: NONE: IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: DTABLE SUBORDINATE ROUTINES CALLED: SAVREG SAVE REGISTERS ENOTQ ENQUEUE TYPE QUEUE ROUTINE RESREG RESTORE REGISTERS DUNCHK CHECK TO SEE IF ALL MODULES DROPPED FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL CKHUNG VERSION: 0.0 , '-- EDIT DATE BY F~EASON SYSCLK SY~TEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 MACY11 30A(1052) 20-SEP-78 18:36 PAGE 20-14 CKHUNG CHECK FOR HUNG OPTION MODULES 1~32 1833 1S34 1a35 1836 1637 1638 1is39 1840 1is41 1~42 .SBTTL COMMON DEFINITIONS AND REFERENCES ;**************** ; REFERENCED BY OTHER MODULES , .GLOBL ;**************** ; .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL jl]~ I ;MODULE ENTRY POINT ; GLOBAL REFERENCES 1~43 , 49 1, 50 1 rs'851 1 52 1853 CKHUNG SAVREG ENOTO RESREG DUNCHK DTABLE ;SAVE REGISTERS ;ENQUEUE TYPE OUEUE ROUTINE ;RESTORE REGISTERS ;CHECK TO SEE IF ALL MODULES ARE DROPPED ;ADDRESS OF DATA TABLE ;**************** ; LOCAL STORAGE , 001474 1 000000 CK.TEMP: .WORD 0 ;TEMP STORAGE FOR TIME COMPARSIONS 5E00993 SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1855 1856 1857 1858 1859 (2) 1860 '861 1862 1.863 1.864 1 1.865 1!866 j( 3) 11867 I( 4) 1!868 ! (4) 1i869 11870 1i871 1i872 1;873 11874 11875 11876 ! (6) i (9) CKHUNG: ;+ ; SAVE REGISTERS, GET ADDRESSO OF DTABLE AND 001476' 001476' 004767 001502' 001502' 012700 001506' 001506' 016001 889 . (4) SCTAB CALL SAVREG OOOOOOG JSR PC,SAVREG MOV #DTABLE,RO MOV DT .SCT(RO) ,H1 BIT BEQ #BITOO,SC.ClO(R1 50002$ MOV SC.CI\L(R1) ,R1 BR 50003$ MOV SC.CKP(R1) ,R1 LET RO "- #OTABLE OOOOOOG LET R1 := Dl.SCT(RO) 000066 ;+ ; DETERMINE IF KW11L IS SYSTEM CLOCK ;001512' 001512' 032761 001520' 001403 IF #BITOO SETIN SC.CLO(R1) THEN 000001 000000 ;+ ; SET R1 EQUAL TO KW11L LABEL IN OPTION MODULE 001522' 001522' 016101 LET R1 0- SC.CKL(R1) 000002 ;+ ; SET R1 EQUAL TO KW11P LABEL IN OPTION MODULE 1~~~ (4) (3) SEQ 0994 ROUTINE CKHUNG 001476' 001476' 1883 1884 1887 888 PAGE 20-15 .SBTTL CHECK MODULE HUNG ROUTINE 1:877 1878 1879 1880 1;881 1882 !(4) MACY11 30A(1052) 20-SEP-78 18:36 COMMON DEFINITIONS AND REFERENCES j- 001526' 001526' 000402 OOl530' 001530' 001530' 016101 ELSE ~50002$ : LET R1 "- SC.CKP(R1) 000004 1890 1891 . (4) 1892 1893 1894 1895 1896 1897 1898 1899 001534' 001534' ENDIF 50003$: ;+ ; POINT R3 TO FIRST ENTRY IN MODULE LIST, ; R2 POINTS TO FIRST ENTRY IN MOD TIME, AND R1 TO R.T.E TIME WORe. SYSCLK SYSTEM CLOCK BINDER MODULE SYSCLK.MAC 28-JUL-78 09:28 1900 (4) 1901 (4) (6 ) 1902 (6) 1'903 1904 1905 f906 1907 1908 (4 ) (6) (9) 001534' 001534' 001540' 001540' 001542' 001546' 001546' (9) (6 ) (9 ) (6 ) (9) 1923 1924 1925 1926 1927 1928 (4) 010102 062702 000006 062701 000002 001552' 001552' 001552' 021327 001556' 001500 001560' ( 6) 000032 (6 ) (9) (6) (9 ) 1931 1932 1933 1934 MOV DT.MLST(RO).R3 MOV ADD R1,R2 #6,R2 ADD #2,R1 CMP SEQ (R3),HENDLST 50005$ MOV (R3),R~4 MOV SIC ST.Il.T(H4),R4 #STATElIT, R4 CIViP SEQ CMP I3EQ CIVIP BEQ #BI-<:MOD, R4 50006$ #NBKMOD,R4 50006$ #SBKMOD,R4 50006$ MOV (R 3) , f~4 LET R1 • - R1 + #2 WHILE R3 IS NOT AT END OF MODULE LIST WHILE (R3) NE #ENDLST DO 50004$: 000000 ;+ ; IF MODULE NOT BKMOD,NGKMOD OR SBKMOD THEN ; DETERMINE IF MODULE IS ACTIVE AND NOT DROPPED ;LET R4 . - (R3) 011304 ;+ ; MASK OUT UNWANTED BITS ;- 001562' 001562' 001566' 001572' 001572' 001576' 001600' 001604' 001606' 001612' LET R4 ,- STAT(R4) CLR.BY #STATBIT 016404 042704 000026 064757 022704 001463 022704 001460 022704 001455 000020 IF #BKMOD NE R4 AND #NSKMOD NE R4 AND #SBKMOO NE R4 THEN 001000 000000 ;+ ; GET MODULE HEADER ADDRESS ;- LET R4 .- (R3) 001614' 001614' 011304 1929 1930 SEQ 0995 LET R2 .- R1 + #6 i 001560' 1922 PAGE 20-16 LET R3 .- DT.MLST(RO) 016003 ,' - (4) (6 ) 18:36 ;+ 1909 1910 1911 1912 1913 1'914 1915 , 916 1917 191 B 1919 1920 1921 (4) MACY11 30A(1052) 20-SEP-78 CHECK MODULE HUNG ROUTINE 001616' 001616' 001624' 001626' 001634' IF #ACTBIT 032764 001450 032764 001044 004000 000026 020000 000026 SETIN STAT(R4) AND #8IT13 NOTSETIN STAT(R4) BIT BEQ BIT BNE ;+ ; DETERMINE WHETHER THE DIFFERENCE OF MODULE TIME AND RTE. TIME THEN #ACTBIT,STAT(R4) 50007$ #BIT13,STAT(R4) 50007$ SYSCLK SYSTEM CLOCK BINDER MODULE 28-JUL-78 09:28 SYSCLK.MAC 1935 1936 1937 (4) (6) 1938 (6 ) (9) 1939 1,940 r (8 ) (7 ) (6 ) (5) (4) (3 ) (3 ) 1946 1947 1948 1949 1950 1951 1952 (6) 1953 (6 ) 1954 1955 1956 1957 1958 1959 (6 ) 1960 1961 1962 1963 1964 1965 1966 (3 ) (5 ) (4) (3 ) (3) 1967 (4) 1968 (4) 18:36 PAGE 20-17 SEQ 0996 ; IS GREATER THAN THE MAXIMUM ALLOWABLE TIME BETWEEN PASSES ,' 001636' 001636' 011167 001642' 161267 001646' 001646' 026760 001654' 101434 LET CK.TEMP := (R1) .- (R2) 177632 177626 177622 001656' 001656' 001660' 001664' 001666' 001672' 001676' 001702' 001706' MOV SUB (R1 ),CK.TEMP CMP SLOS CK.TEMP,DT.MTIME 50010$. (R2),CK.TEMP IF CK.TEMP HI DT.MTIME(RO) THEN 000110 ;+ ; THEN LOAD MESSAGE WITH MODULE HUNG AND OUTPUT MESSAGE AND DROP ; MODULE ;CALL ENOTO IN <#DTABLE,#MSGHNG,#0,R4,#0> MOV R5,-(SP) MOV #0 I - ( ::;:5) MOV R4,-(St5) MO V # 0 , - ( f;: 5 ) MOV #MSGHNG,-(R5) MOV #DTABLE,-(R5) JSR PC,ENQTO MOV (SP)+,R5 41 1942 1943 11944 1945 (3 ) MACY11 30A(1052) 20-SEP-78 CHECK MODULE HUNG ROUTINE 010546 012745 000000 010445 ' 012745 000000 012745 OOOO~2 012745 OOOOOOG 004767 OOOOOOG 012605 ;+ ; CLEAR THE ACTIVE BIT AND SET THE DROPPED BIT IN THE MODULES STATUS WORD ;- 001710' 001710' 052764 001716' 001716' 042764 020000 000026 004000 000026 LET STAT(R4) "- STAT{R4) SET.BY #BIT13 SIS #BIT13,STAT(R4) LET STAT(R4) .- STAT(R4) CLR.3Y NACTBIT #ACTBIT,STAT(R4) BIC ;+ ; NOW SET BIT TO TELL MONITOR THAT A MODULE HAS BEEN DROPPED 001724' 001724' 052760 LET DT.ST1(RO) 100000 := DT.ST1(RO) SET.BY #CKTIM 000012 BIS #CKTIM,DT.ST1(RO MOV MOV MOV JSR MOV R5,,-(SP) R4,,-(f<5) RO,-(H5) PC,DUNCHK (SP)+,R5 ;+ ; NOW GO SEE IF ANY MODULES ARE STILL RUNNING IF NOT DUNCHK ; WILL DROP THE EXERCISOR. 001732' 001732' 001734' 001736' 001740' 001744' 001746' 001746' 001746' 001746' CALL DUNCHK IN <RO,R4> 010546 010445 010045 004767 012605 OOOOOOG ENDIF !50010$: ENDIF !50007$ : SYSCLK SYSTEM CLOCK BINDER MODULE 28-JUL-78 09:28 SYSCLK.MAC 1969 (4 ) 1970 1971 1972 1973 1974 1975 (6) 1976 (6) 1977 (4) (3 ) 1978 1979 1980 1981 1982 1983 (3 ) 1984 1985 ( 3) (3 ) (2 ) 19-86 1987 20-SEP-78 MACY 11 30A(1052) CHECK MODULE HUNG ROUTINE 18:36 PAGE 20-18 SEQ 0997 ENDIF 001746 1 001746 1 50006$: ;+ ; UPDATE MODULE LI ST POINTER AND MODULE TIME POINTER , 001746' 001746 1 062703 001752 1 001752 1 062702 001756' 001756' 000675 001760 1 LET R3 . - R3 + #2 LET R2 '- 000002 ADD #2,R3 ADD #4,R2 BR 50004$ JSR PC,RESREG RTS PC R2 + #4 000004 ENDDO 50005$: ;+ ; RESTORE REGISTERS AND RETURN , 001760 1 001760' 004767 001764' 001764' 001764' 001764' 000207 000001 CALL RES REG OOOOOOG ENDRTN =;0000$ : !:;0001 $: . END SYSCLK SYSTEM CLOCK BINDER MODULE 28-JUL-78 09:28 SYSCLK.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000000 ADRCT "= 000004 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 MvAS 000110 BDACNV= ****** G BGNADR= 000002 BITO 000001 BITOO 000001 BIT01 000002 BIT02 000004 8IT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BITu7 000200 BIT08 = 000400 BIT09 001000 BIT1 000002 BIT10 002000 BIl"11 004000 8IT12 010000 81T13 020000 BIT14 040000 100000 BIT15 B1T2 000004 BIT3 000010 000020 BIT4 BIT5 000040 BIT6 000100 BI17 000200 BIT8 000400 001000 B119 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CC.CM1 OOOOOOR CDERCT= 000146 CDWDCT= 000144 CKHUNG 001476RG CKTIM = 100000 CK.TEM 001474R MACY11 30.1\( 1 052) SYMBOL TABLE CLKCHK 000034RG CLKOFF 000304RG 000370RG CLKON CLKPRE= 000001 CLRTIM 001434RG CONFIG= 000056 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 000000 DTA DTABLE= ****** G DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 PT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF: 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 Dr. SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 20-SEP-:-78 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000051 DT.WLL= 000052 DUNCHK= ****** G DVID1 = 000014 ECCMEM= 000"100 ECCSTA= 000010 EN8EOP= 010000 EN8NUL= 000001 ENDLST= 000000 ENQTQ = ****** G EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HMS 001004RG HM.CNV 000776R HM.CTE 000770R HM.CTT 000760R HM.HRS 000760R HM.MIN 000763R HM.SEC 000765R HM.THR 000770R HM.TMI 000772R HM.TSE· 000774R HRDADR= ****** G HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 1NHEPR= 020000 1NHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 100000 IOMOD IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 18:36 PAGE 21 SEQ 0998 KIPAR3:: K I PAR4:: KIPAR5': K I PAR6:: KIPAR7:: KIPDRO:: KIPDR1== KIPDR2:: KI PDR3::: KI PDR4:= KIPDR5::: K I PDR6::: 10 PDR7:: KTERRO:= KTPRES:;: KTSTAT::: ~TXTND= l..DTIME LF lPSTAT= "MAPSTA= MED MEMPAS= MCDEXH= MODHOL= 1\1ODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPOP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSIVI8= MSGSMH= MSGSMS,= ;y1SGS TO= IMSGSYS= "fVlSGVEC= : NBKMOD= NCPUOP= NOAPTY::: NULL OWEN 172346 172350 172352 172354 172356 172300 172302 172304 17~306 172310 172312 172314 17:~3i6 000040 000400 000020 040000 00O::,34R 0000.2 000001 000200 076600 040000 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 " 000022 000007 000021 177775 000002 1 '7"7776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 PAERR = PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRHMS PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRPSCN PRO 000010 002000 000100 000034 020000 004000 010000 000414RG 000000 000040 000200 000240 000300 000340' 000604RG 000000 000200 000240 000300 000340 17777E; 17777Ei 000054 000130 00012Ei 000 13~~ 000124 0001011 PR4 PH5 PR6 PR7 PS PSW Ri\NNUM= RBUFEA= RBUFPA= RGUFSZ= RBUFVA= RDSERV= RDWHMI= 00002~~ RELERR= 000020 RE LMOD= 020000 REL TIM:: 0i000() RESREG= ****** G RESULT= 000004 00005() RES1 000060 RES2 RICHAR= 0310GO RPTDAT= 002000 RSTRT = 00011:2 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 00"1740 07~3464 SAM Sr... VREG= ****** G SBADR = 00010:2 SBKMOD= 000000 SBKSE L= 010000 SC.ADR= 0000015 SC.ALC= 000014 SC.APC= 0000116 SC.CKL= 000002 SC.CKP= 000004 SC. CLO=: 000000 SYSCLK SYSTEM CLOCK BINDER MODULE 28-JUL-78 09:28 SYSCLK.MAC TMPIO :: 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 UPDMOD= 000002 UPDTIM 001320RG WASADR= 000104 WBSTAT= 000040 WBUF EA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 SRO 177572 SR1 177574 SR2 177576 SR3 172516 STAT 000026 STATBI= 064757 STATl = 000027 SUSPND= 000001 SVRO 000062 SVR1 000064 SVR2 000066 SVR3 000070 000072 SVR4 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TIME 000000 ABS. 000000 001766 MACY 11 30A(1052) SYMBOL TABLE 000 001 a ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:SYSCLK,DSKZ:SYSCLK=SPMAC/ML,EQUATE,SYSCLK RUN-TIME: 34 25 .4 SECONDS RUN-TIME RATIO: 181/61=2.9 CORE USED: 14K (27 PAGES) 20-SEP-76 000116 WOFR 000114 WOTO WTINRE= 000352 WTWHMI= 000222 XFLAG 000005 XOFF 000023 :::: 000021 XON XTIME 000002 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 18:36 PAGE 21-1 SEQ 0999 $F$SEL:: $F$THE:: $F$TRU:: $F$UNT:: $ F$~IjH I:: $F$YES:: $IFLEV:: $ISKO .$ISK1 -$ISK2 -$ LOCT A:: $LSTIN:: $LSTTA:: $NESTL:: $NSKO $NSK1 $NSK2 $NSK3 .$NSK4 .$SAVLE= $SSKO .$TAGLE= $TAGNU= $TEMP $TSKO $TSK1 000140 000330 000404 000130 000120 000402 177777 000001 000001 000001 177777 000001 000001 177777 000300 000120 000110 000110 000110 17'7777 050005 177777 050011 000300 050004 050005 $TSK2 = 050006 $TSK3 = 05000'7 $TSK4 = 050010 $$ARGC= 000000 $$BYTE= 000403 $$C.l\SE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 001654R $$LOCN= 000000 $$REG = 177777 $5RETU= 000000 $$RTN1= 050000 $'5RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 0'000001 000000 $$TO $$$TAG= 050000 00176€iR .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13~SEP-78 16:13 3 536 539 575 617 634 686 757 808 18:39 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS & REFERENCES 000000 I • PRINT TOINI (FUNCTIONAL DESCRIPTION) TQINI (CODE) ENQTQ (FUNCTIONAL DESCRIPTION) ENQTQ (CODE) DEQTQ (MODULE FUNCTIONAL DESCRIPTION) DEQTQ (CODE) i SPMAC: VERSION 1.1 SEQ 1000 TYPQUE (TYPE QUEUE MODULES) TYPQUE.MAC 28-JUL-78 09:28 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 MACY11 30A(1052) 20-SEP-78 18:39 COMMON EQUATE MODULE PAGE 19 SEQ 1001 .TITLE TYPQUE (TYPE QUEUE MODULES) .IDENT IVO.OI ;++ MODULE PACKAGE NAME! TYPQUE FUNCTIONAL DESCRIPTION: THIS MODULE PACKAGE CONTAINS THREE ROUTINES. THE FIRST ONE INITIALIZES THE TYPE QUEUE AND THE OTHER TWO ACTUALLY DO THE ENQUEING AND DEQUEING OF ITEMS FROM THE TYPE QUEUE. THE DESCRIPTION IS GIVEN UNDER THE RESPECTIVE MODULES. THESE MODULES ARE: 1. TQINI - INITIALIZES THE TYPE QUEUE 2. ENQTQ - ENQUES ITEMS ON THE TYPE QUEUE 3. DEQTQ - DEQUES ITEMS FROM THE TYPE QUEUE. THE QUEUE POINTERS ARE CONTAINED IN THIS MODULE FOR USE 8Y THE ABOVE NAMED MODULES LOCALLY. VERSION: 0.0 EDIT ;-- DATE BY REASON TYPQUE (TYPE QUEUE MODULES) TYPQUE.MAC 28-JUL-78 09:28 536 537 538 539 (1) 540 541 :542 543 MACY11 30A(1052) 20-SEP-78 18:39 PAGE 19-1 COMMON DEFINITIONS & REFERENCES .SBTTL COMMON DEFINITIONS & REFERENCES 000000 1 000000 1 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG~1 ;**************** , .544 '545 ; REFERENCED BY OTHER MODULES: , ;546 552 .GLOBL TQ.Cr .GLOBL TQ.INP .GLOBL TQ.Orp .GLOBL TQIN! .GLOBL ENQTQ .GLOBL DEQTQ 553 ;**************** 547 548 549 550 ;551 , 555 556 .GLOBL GETPSW .GLOBL OV.TQ .GLOBL OV.HITQ .GLOBL OV.TQSIZ 557 558 ,559 560 ~561 ;**************** 563 , ·562 565 ,566 '567 568 569 570 ; 571 572 573 ;TO OUT PTR ;ROUTINE TO IN IT TYPE QUEUE ;ROUTINE TO PUT ITEMS ON TO ;ROUTINE TO DEQUE ITEMS. ; GLOBAL REFERENCES 554 564 ;TQ COUNT ;TQ IN PTR 000000 1 000002 1 000004 1 000006 1 000010 1 000012 1 000014 1 000016 1 000000 000000 OOOOOOG OOOOOOG 000000 OOOOOOG OOOOOOG OOOOOOG j LOCAL STOI~AGE TO·VEC: TQ.PSW: TO·INP: TQ.OTP: TO.CT: TQ. HI: TO·MAX: TQ.ITQ: o o #OV.TQ #OV.TQ o #OV.HITQ #OV.TQSIZ #OV.TQ ;GET CALLER'S PSW ROUTINE ;TYPE QUEUE BUFFER ;SAVE LOC.4 jLOC. TO SAVE CALLER'S PS WORD ;[NQUE POINTER ;DEQUE POINTER ;CURRENT ENTRY COUNT ;QUEUE'S HIGH ADDRESS ;MAX NO. OF ENTRIES ALLOWED SEQ 1002 TYPOUE (TYPE QUEUE MODULES) TYPOUE.MAC 28-JUL-78 09:28 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 60:t: 603 604 605 606 607 608 609 610 611 612 61.3 614 615 MACY11 30A(1052) 20-SEP-78 18:39 PAGE 19-2 TOIN! (FUNCTIONAL DESCRIPTION) SEQ 1003 .S8TTL TOIN! (FUNCTIONAL DESCRIPTION) ;++ MODULE NAME: TOINI FUNCTIONAL DESCRIPTION: THIS MODULE INITIALIZES THE TYPE QUEUE. IT RESETS THE ENQUE AND DEOUE POINTERS TO THE START OF THE QUEUE, AND SETS THE COUNT TO ZERO INPUTS: NONE IMP L1 CIT J NPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL TOINI VERSION: 0.0 ,"-- EDIT DATE BY REASON TYPQUE (TYPE QUEUE MODULES) TYPQUE.MAC 28-JUL-78 09:28 617 618 619 620 (2 ) 621 622 623 624 625 626 627 628 (4) 629 ,( 4) ;630 (4) 631 (3) : (3) (2 ) .632 MACY11 30A(1052) 20-SEP-78 TQINI (CODE) 18:39 PAGE 19-3 SEQ 1004 .SBTTL TOINI (CODE) ROUTINE TOINI 000020' 000020' TOINI: ;+ ; INITIALIZE IN AND OUT POINTERS AND COUNT 000020' 000020' 000026' 000026' 000034' 000034' 000040' 000040' 000040' 000040' .- TO. I TQ LET TO.OTP .- TQ.ITQ LET TO.INP 016767 177772 177756 016767 177764 177752 MOV TQ. ITGI~ TQ. INP MOV TQ. IT~I, TQ.OTP CLR TQ.CT RTS PC LET TQ.CT ::: #0 005067 177750 ENDRTN !:iOOOO$ : 50001$: 000207 TYPQUE (TYPE QUEUE MODULES) TYP~UE.MAC 28-JUL-78 09:28 634 635 636 637 638 639 640 641 642 643 MACY11 30A(1052) 20-SEP-78 18:39 PAGE 19-4 ENOTQ (FUNCTIONAL DESCRIPTION) .SBTTL ENQTQ (FUNCTIONAL DESCRIPTION) ;++ MODULE NAME: ENQTQ FUNCTIONAL DESCRIPTION: THIS MODULE HANDLES QUEUEING OF ITEMS ONTO THE TYPE QUEUE. 648 649 INPUTS: 1. DATA TABLE ADDRESS 2. MESSAGE TYPE CODE 3. MESSAGE ADDRESS 4. MODULE'S HEADER ADDRESS 5. RETURN ADDRESS 650 651 652 IMPLICIT INPUTS: DT.ERR 644 645 646 647 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 OUTPUTS: NONE IMPLICIT OUTPUTS: ERROR WORD (DT.ERR) PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE ROUTINES CALLED: 1. GETPSW CALLING SEQUENCE: CALL ENQTQ IN <DTADR,TYPCOD,MSGADR,HDRADR,RETADR> WHERE DTADR = DATA TABLE ADDRESS TYPCOD TYPE CODE MSGADR MESSAGE ADDRESS HDRADR HEADER ADDRESS RETADR = RETURN ADDRESS 674 675 676 677 VERSION: 0.0 680 681 682 683 684 ;GET CALLER'S PS WORD FUNCTIONAL SIDE EFFECTS: ENQUEING IS DONE AT PRIORITY LEVEL 7 WHICH SERVES AS A LOCKING MECHANISM. 673 678 679 SEQ 1005 EDIT ;-- DATE BY REASON TYPQUE (TYPE QUEUE MODULES) TYPQUE.MAC 28-JUL-78 09:28 686 687 688 (2) 689 690 691 692 693 694 (2) 695 696 697 698 699 700 701 702 703 704 (6) (9) 705 (4) 706 (6) 707 (2 ) 708 (2 ) (4) 709 (4) 710 711 712 713 71.4 715 716 (4) (3 ) (4 ) 717 (2 ) 71£' (2 ) 719 (2 ) 720 721 722 723 724 725 MACYll 30A(1052) 20-SEP-78 ENQTQ (CODE) 18:39 PAGE 19-5 SEQ 1006 .SBTTL ENQTQ(CODE) ROUTINE ENQTQ <DT,CODE,MSG,HDR,RET> 000042 1 000042' ENQTQ: ;+ ; SAVE REGISTER , '- PUSH RO 000042' 000042' 010046 MOV RO,-(SP) CMP BLT TQ.CT,TQ.MAX 50002$ MOV OT ( RS) , RO BIS #TQOVF!FATERR,OT MOV (SP)+,RO SEC BR 50001$ ;+ IF THE COUNT IS EQUAL TO MAX. COUNT, THE QUEUE IS FULL AND WE CANNOT MAKE ; FURTHER ENTRIES INTO THE QUEUE. SAVE DTABLE ADDR AND SET ; ERROR FLAG IN THE STATUS INDICATOR ; AND RETURN WITH ERROR. 000044' 000044' 000052' 000054' 000054' 000060' 000060' 000066' 000066' 000070' 000070' 000072' 000074' 000074' IF TQ.CT GE TQ.MAX THEN 026767 002410 177740 016500 000000 052760 100002 177742 LET RO := DT(R5) LET DT.ERR(RO) "- DT.ERR(RO) SET.BY #TQOVF!FATERR 000020 POP RO 012600 RETURN ERROR 000261 000447 ENDIF :>0002$ : i+ ; SAVE CALLER'S PRIORITY AND ; CHANGE PRIORITY LEVEL TO 7 000074 1 000074' 000100' 000104' 000110' 000110' 000114' 000114' 000120' 000120' CALL GETPSW OUT <TQ.PSW> 162705 004767 012567 000002 OOOOOOG 177672 012746 000340 012746 # 1 2 , F~5 MOV #PF<7,'-(SP) MOV #19>,-i[SP) PUSH #PR7 PUSH #1$ 000122' INLINE <RTI> RTI 000002 :+ IF QUEUE'S ENQUE POINTER IS EQUAL TO QUEUE'S HIGH ADDRESS, REINITIALIZE THE POINTER TO THE START ADDRESS OF THE QUEUE. * SUB JSR MOV PC,GElrPSW (R~»+.,TQ.PSW TYPQUE (TYPE QUEUE MODULES) 28-JUL-78 09:28 TYPQUE.MAC 726 727 728 (2 ) 729 (6) (9 ) 730 (4) 731 (4) 732 733 734 735 736 737 738 (4) 739 (4) 740 (4) 741 (4) 742 (4) 743 (4) 744 (6 ) 745 746 747 '748 749 750 (2 ) 751 (2 ) 752 (2 ) 753 (2 ) 754 (2 ) 755 (3) (2 ) (3) (2) 18:39 20-SEP-78 MACY11 30A(1052) ENQTQ (CODE) PAGE 19-6 SEO 1007 j- 000122' 000122' 000122' 000122' 026767 000130' 001003 000132' 000132' 012767 000140' 000140' INLINE <1$:> 1 $: IF TQ.INP EO TO·HI THEN 177656 177662 LET TO. INP := #OV.TO OOOOOOG 177644 CMP BNE TQ.INP,TQ.HI 50003$ MOV #OV.TQ,TQ.INP MOV TQ.INP,RO MOV CODE(R5) t (RO)+ MOV MSG(R::,), (RO)+ MOV HDR(R!:i), (RO)+ MOV RE1'(R::i),(RO)+ MOV RO,TQ.INP INC TO.CT MOV TQ.PSvJ,-(SP) MOV #2$,-(SP) ENDIF 50003$: i+ ; NOW ENQUE THE ENTRIES. 'r - 000140 1 000140 1 000144' 000144' 000150' 000150' 000154' 000154' 000160' 000160' 000164' 000164' 000170' 000170' .- T~'. INP LET (RO)+ · -, CODE(R5) LET (RO)+ · ., MSG(R5) LET RO 016700 177640 016520 000002 016520 000004 016520 000006 016520 000010 010067 177614 005267 177614 LET (RO)+ · .' HDR(R5) LET (RO)+ ·.. RET(R5) LET TQ.INP := RO LET TQ.CT ::: TO. CT + #1 ;+ j RESTORE j- 000174 1 ')00174' 000200 1 000200' 000204' 000204' 000206' 000206' 000206 1 000206' 000210' 000210' 000210' 000212' 000212' CJ~LLER' S PS WORD AND RETURN PUSH TQ.P5W 016746 177602 012746 000206' PUSH #2$ INLINE <RTI> 000002 RTI INLINE <2$:>- 2$: POP RO MOV 01260{) (SP)+"RO ENDRTN ~50000$ : 000241 000207 CLC ~30001$: RTS PC TYPQUE (TYPE QUEUE MODULES) TYPQUE.MAC 28-JUL-78 09:28 MACY11 30A(1052) 20-SEP-78 1B:39 PAGE 19-7 DEQTQ (MODULE FUNCTIONAL DESCRIPTION) .SBTTL DEQTQ (MODULE FUNCTIONAL DESCRIPTION) 757 758 759 760 ;++ MODULE NAME: DEQTQ 761 762 763 764 FUNCTIONAL DESCRIPTION: THIS MODULE HANDLES DEQUEUEING OF ITEMS FROM THE TYPE QUEUE. 765 766 767 INPUTS: NONE 768 769 770 IMPLICIT INPUTS: NONE 771 772 773 OUTPUTS: 1. MESSAGE TYPE CODE 2. MESSAGE ADDRESS 3. MODULE'S HEADER ADDRESS 4. RETURN ADDRESS 774 775 776 777 778 779 IMPLICIT OUTPUTS: NONE 780 781 782 PATHOLOGICAL CONNECTIONS: NONE 783 784 785 SUBORDINATE ROUTINES CALLED: GETPSW ;GET CALLER'S PS WORD 786 787 788 789 FUNCTIONAL SIDE EFFECTS: DEQUEING IS DONE AT PRIORITY LEVEL 7 WHICH SERVES AS A LOCKING MECHANISM. 790 791 792 793 794 CALLING SEQUENCE: CALL DEQTQ OUT <CODE,MSGADR,HDRADR,RETADR> 795 796 797 WHERE CODE = TYPE CODE MSGADR MESSAGE ADDRESS HDRADR HEADER ADDRESS RETADR RETURN ADDRESS 798 799 800 801 802 803 B04 B05 B06 SEQ 100B , 000214 1 VERSION: 0.0 EDIT ;-- DATE BY j:~EASON TYPQUE (TYPE QUEUE MODULES) 28-JUL-78 09:28 TYPQUE.MAC 808 809 810 (2) 811 812 813 814 815 816 817 (6) (9 ) 818 ( 2) (4) 819 (4) 820 .821 822 823 .824 825 826 (4) (3 ) (4) 827 (2 ) 828 (2 ) 829 (2 ) 830 831 832 833 834 835 836 837 (2 ) 838 (6) (9 ) 839 (4) 840 (4) 841 842 843 844 845 846 MACY 11 30A(1052) 20-SEP-78 DEQTQ (CODE) 18:39 PAGE 19-8 SEQ 1009 .SBTTL DEQTQ (CODE) ROUTINE DEQTQ <CODE,MSG,HDR,RET> 000214 1 000214 1 ;+ ; IF THE COUNT IS EQUAL TO ZERO, ; IS EMPTY. RETURN WITH ERROR. ;- 000214 1 000214 1 000220 1 000222 1 000222 1 000224 1 000226 1 000226 1 DEQTQ: QUEUE IF TO.CT LE #0 THEN 005767 003002 177570 RETURN. ERROR 000261 000450 ENDIF TST BGT TQ.CT 50002$ SEC BR 50001$ SUB JSR MOV #1*2,F!5 PC,GETPSW (R!5)+"TQ.PSW MOV #PH7,'-(SP) MOV #3$,-(SP) 5,0002$ : ;+ ; SAVE CALLER1S PRIORITY AND : CHANGE PRIORITY TO 7 ; -- 000226 1 000226 1 162705 000232 1 004767 000236 1 012567 000242 1 000242 1 012746 000246 1 000246 1 012746 000252 1 000252 1 000002 CALL GETPSW OUT <TQ.PSW> 000002 OOOOOOG 177540 PUSH #PR7 000340 PUSH #3$ 000254 1 INLINE <RTI> RTI ;+ IF THE DEQUE POINTER IS AT HIGH RE-INITIALIZE IT TO THE ; START ADDRESS OF THE QUEUE. i ; ADDRESS, ;- 000254 1 000254 1 000254 1 000254 1 026767 000262 1 001003 000264 1 000264 1 012767 000272 1 000272 1 INLINE <3$:> 3$: IF TQ.OTP EQ TO.HI THEN 177526 177530 CMP BNE TQ.OTP,TQ.HI 50003$ MOV NOV.TQ,TQ.OTP LET TO.OTP := #OV.TQ OOOOOOG 177514 ENDIF !50003$ : ;+ ; NOW DEQUE THE ENTRIES. ;- ;+ TYPQUE (TYPE QUEUE MODULES) 28-JUL-78 09::28 TYPQUE.MAC 847 848 849 850 (:2) , 851 (4) 852 (4) 853 (4 ) 854 (4) 855 (4 ) 856 (4) 857 85H 859 860 861 862 (6) 863 864 865 866 867 868 (2 ) 869 (2 ) 870 (2 ) 871 ,( 2) 872 (2 ) 873 (3 ) (2 ) (3) (2) 874 20-SEP-78 MACY11 30A(1052) DEQTQ (CODE) 18:39 PAGE 19-9 SEQ '010 ; SAVE REGISTERS ;- 000272 1 000272 1 010046 000274 1 000274 1 016700 000300 1 000300 1 012065 000304 1 000304 1 012065 000310 1 000310 1 012065 000314 1 000314 1 012065 000320 1 000320 1 010067 PUSH RO LET RO . - TQ.OTP 177506 LET CODE(R5) 000000 .- (RO)+ ·- (RO)+ LET HDR(R5) · - (RO)+ LET MSG(R5) 000002 000004 LET RET(R5) 000006 · - (RO)+ LET TQ.OTP := RO 177462 MOV RO,-(SP) MOV TQ.OTP,RO MOV (RO)+,CODE(R5) MOV (RO)+,MSG(R5) MOV (RO)+,HDR(R5) MOV (RO)+,RET(R5) MOV RO,TQ.OTP DEC TQ.CT MOV TQ. PSv.I,-(SP) MOV #4$,-(SP) ;+ ; DECREMENT COUNT , 000324' 000324 1 005367 LET TQ.CT := TQ.CT - #1 177460 ;+ i , 000330 1 000330 1 016746 000334 1 000334 1 012746 000340 1 000340 1 000002 000342 1 000342 1 000342 1 0003421 012600 000344 1 000344 1 000344 1 000241 000346 1 000346 1 000207 000001 RESTORE CALLER1S PS WORD AND RETURN PUSH TQ.PSW 177446 000342 1 PUSH #4$ INLI NE <RTI> RTI INLINE <4$:> 411'· "". POP RO MOV (SP)+,RO ENDRTN SOOOO$: CLC :;0001 $: RTS . END PC TYPQUE (TYPE QUEUE MODULES) TYPQUE.MAC 28-JUL-78 09:28 000102 ACSR ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ASS 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 SITO 000001 BITOO 000001 BIT01 000002 BIT02 000004 BIT03 000010 B1T04 000020 BIT05 000040 BIT06 000100 BIT07 000200 000400 BIT08 BIT09 001000 BIT1 000002 8IT10 002000 BIT11 004000 BIT12 010000 BIT13 020000 B1T14 040000 B1T15 100000 BIT2 000004 000010 BIT3 BIT4 000020 BITS 000040 BIT6 000100 BIT7 000200 BIT8 000400 B1T9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 ClKPRE= 000001 000000 CODE CONFlG= 000056 CQOVF 000001 CR 000015 000100 CSRA 20-SEP-78 MACY11 30A(1052) SYMBOL TABLE 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 000214RG DEQTQ DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 000000 DT DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 D1.CF1= 000016 DT.ERR= 000020 D1.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFl= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 D1.SSI= 000046 D1.STO= 000010 DT.ST1= 000012 DT.SWR== 000056 DT.SYP= 000072 DT.WBU= 000050 DT. ~oJHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 18:39 ENBNUL= 000001 ENDLST= 000000 ENQTQ 000042RG EOPSlT= 000e01 ERRTYP= 00C106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 GET PS~v= ****** G HDR 000004 HRDCNT= 000044 HRDPAS= 000050 ICONT == 000036 1COUNT= 000040 IDNUM = 000122 IE 000100 INDPAR= 000040 lNHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 100000 IOMOD IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 K1PAR7= 1 '/2356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6== 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 PAGE 20 SEQ '011 MAPST A:= 000200 076600 MED MEMPAS:= 040000 MODEXH:: 004000 MODHOl:: 002000 MODSEl:: 001000 000002 MSG MSGCKD:::' 000010 MSGCKS:: 000011 MSGDER:: 000005 MSGDRP:: 000017 MSGECH= 177777 MSGEOP:: 000013 MSGHDR:: 00OC04 MSGHNG= 000022 MSGHRO:::: 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL OV.H1T= ****** G OV.TQ = ****** G OV.TQS= ******. G 024020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 010000 PDP70 PRIO 000000 000040 PRl1 000200 PRI4 000240 PRI5 000:300 PRI6 PRI7 000340 PRO 000000 000200 PR4 000240 PR5 000300 PR6 000340 P:R7 177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 R8UFVA= 000124 ROSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOD== 020000 REL TIM= 010000 RES1 = 000056 RES2 000060 000006 Rt:T RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 00017? RLlNMOD= 100000 R5VALU= 001740 0754Gt~ SAM SBADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= OOOOOEi SC.ALC= 000014 SC.APC= 00001E> sc. CK L= 000 OO~~ SC.CKP= 000004 SC.CLO= 000000 SC.HlD= 000010 SC.SCA= 00001:~ SENDLS= 177777 SOFCNT= 00004~~ SOFPA5= 00004G SPACE = 00004() SPOINT= 000032 SPVALU= 002200 177572 SRO SRi 177574 SR2 = 17757G 17251E3 SR3 STAT 00002G STATBI= 064757 STAT1 = 000027 SUSPND= 00000"1 SVRO 06006:2 000064 SVR1 00006B SVR2 SVR3 000070 20-SEP-78 MACY11 30A(1052) SYMBOL TABLE TYPQUE (TYPE QUEUE MODULES) 28-JUL-78 09:28 TYPQUE.MAC UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= VERSIO WASADR= WBSTAT= WBUFEA= WBUFPA= WBUFRQ= t'v'BUF S2= WDFR WDTO WTINRE= SVR4 000072 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO 000002 000020RG TQINI TQOVF = 000002 000010RG TQ.CT TQ.HI 000012R TQ.IN? 00OO04RG TQ.ITQ 000016R TQ.MAX 0OO014R TQ.OTP 00OO06RG TQ.PSW 000002R TQ.VEC OOOOOOR UIPARO= 177640 UIPAR1:: 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 ABS. 000000 000350 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000214R 0-00104 000040 000136 000134 000140 000142 000116 000114 000352 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSK2:TYPQUE,DSK2:TYPQUE=SPMAC/ML,EQUATE,TYPQUE RUN-TIME: 15 5 .3 SECONDS RUN-TIME RATIO: 52/20=2.5 CORE USED: 14K (27 PAGES) 18:39 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO == 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 PAGE 20-1 SEQ 1012 $F$RTN:~ $ F$SE L=: $F$THE:= $F$TRU:: $F$UNT:: $F$\t>JHI:: $F$YES= $1 FLEV:: $ISKO .. $LOCTf..= $LSTIN:: $LSTTA:: $NESTL:: $NSKO $NSKl $SA \I LE:: $TAGLE::: $T AGNU::: $TEMP -$TSKO -$$ARGC::: -~ 000300 000140 000330 000404 000130 000120 000402 177777 000001 177777 000001 000001 177777 000300 000110 177777 17'7777 050004 000300 050003 000010 $$BYTE= 00040:3 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000001 $$LOC = 00Q262R $$LOCN= 000000 $$REG :: 177777 $$RETU= 000001 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= OOOOO() $$TGS1= 000000 $$TGS2== 000000 $$TO 000000 $$$TAG= 050000 000350R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 554 556 583 18:40 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT UNIMAP ROUTINE jSPMAC: VERSION 1.1 SEQ 1013 UNIMAP - LOAD UNIBUS MAP UNIMAP.MAC 15-AUG-78 15:01 SOB 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 MACY1t 30A(1052) 20-SEP-78 18:40 COMMON EQUATE MODULE ;++ MODULE NAME: UNIMAP FUNCTIONAL DESC~IPTION: LOADS THE UNIBUS MAP SO THAT THE WRITE BUFFER CAN BE ADDRESSED BY UNIBUS DEVICES WHEN 22-BIT ADDRESSING SPACE IS IN USE. INPUTS: DATA. TABLE IMPLICIT INPUTS: DT . 'ilILLMT 525 526 527 OUTPUTS: NONE 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 SEO 1014 .TITLE UNIMAP - LOAD UNIBUS MAP .lDENT JVO.Oj 524 528 PAGE 19 IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: BL.BTMBNK BL.TOPBNK ;CURRENT 124K BANK OF BOTTOM OF EXERCISER ;CURRENT 124K BANK OF TOP OF EXERCISER SUBORDINATE MODULES CALLED: SAVnEG RESHEG ;SAVE REGISTERS ;RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL UNIMAP IN <A> A=ADDRESS OF DATA TABLE VERSION: 0.0 EDIT ;-- BY DATE f~EASON UNIMAP - LOAD UNIBUS MAP UNIMAP.MAC 15-AUG-78 15:01 554 555 556 (1) 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 000000' 000000' 000001 000001 MACY1' 30A(1052) 20-SEP-78 18:40 PAGE 19-1 COMMON DEFINITIONS AND REFERENCES SEQ 1015 .SBTTL COMMON DEFINITIONS AND REFERENCES .MCALL STRUGT STRUCT .PRINT jSPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG:a1 ; ;**************** ; ; REFERENCED BY OTHER MODULES ; .GLOBL UNIMAP ;MODULE ENTRY POINT ; ;**************** ; ; GLOBAL REFERENCES i .GLOBL .GLOBL .GLOBL .GLOBL SAVFlEG RESF1EG BL. EHMBNK BL.TOPBNK i SAVE REGISTEf~S ;RESTORE REGISTERS ;CURRENT 124K BANK OF BOTTOM OF RTE ;CURRENT 124K BANK OF TOP OF RTE i ;**************** ; ; lOCAL EQUATES ; 170200 MAPREG=1702()0 ; LOWEST ADDRESS OF UNIBUS MAP UNIMAP - LOAD UNIBUS MAP UNIMAP.MAC 15-AUG-78 15:01 583 584 585 (2) 586 587 588 589 MACYt1 30A(10S2) 20-SEP-78 UNIMAP ROUTINE ROUTINE UNIMAP <TABl> 000000' 000000' ; SAVE REGISTERS 000000' 000000' 004767 CALL SAVREG OOOOOOG (9) (6 ) (9) 611 (2 ) 612 (4) 613 (4 ) 614 (4) 615 616 (4 ) (3 ) 617 618 619 620 621 622 623 PC,SAVREG MOV TABL(R5),RO ; SET RO TO THE START OF ThE DATA TABLE ;- LET RO := TABL(RS) 000004' 000004' 016500 000000 ;+ IF THE WRITE BUFFER LOW LIMIT IS 4K, IMPLYING THE CURRENT BANK IS THE lOWEST l24K BANK OF MEMORY, THEN START MAPPING FROM ADDRESS O. HOWEVER, IF THIS IS A 128K SYSTEM AND IF THE EXERCISER IS CROSSING THE l24K BOUNDARY, BEGIN MAPPING FROM THE LOW BUFFER LIMIT. ;- 607 608 (6 ) JSR ;+ 605 606 (9) 610 UNIMAP: ;- 602 603 604 (6 ) SEQ 1016 ;+ 600 601 609 PAGE 19-2 .SBTTlUNIMAP ROUTINE 590 591 (3) 592 593 594 595 596 597 598 (4) 599 1S:40 000010' 000010' 000016' 000020' 000020' 000026' 000030' 000036' 000040' 000040' 000042' 000042' 000042' 000042' 000044' 000044' IF DT.WLLMT(RO) EQ #200 THEN 026027 001014 000052 000200 026027 001005 026767 001401 000046 010000 IF DT.SSIZ(RO) EQ #10000 AND BL.TOPSNK NE BL.BTMBNK THEN OOOOOOG OOOOOOG INLINE <BR 1$> 000403 ENDIF LET R2 :. #0 ELSE ~i0002$ ;+ DT.WLLMT(RO),#20 CMP SNE CMP SEQ DT.SSIZ(RO),#100 50003$ Bl.TOPBNK,BL.BTM 50003$ :;0003$: 005002 000046' 000046' 000417 000050' 50002$ SR 1$ LET Rt := #0 005001 CMP BNE CLR Ri CLR R2 BR 50004$ : ELSE CONVERT THE WRITE SUFFER LOW LIMIT TO 22 BITS. (THE LOW 16 SITS WILL BE IN Rl, AND THE HIGH 6 BITS WILL BE IN R2.) GET THE UPPER SIX BITS INTO THE UPPER SIX BITS OF Rt THEN SWAP THEM INTO THE ~OWER BYTE OF R2 UNIMAP - LOAD UNIBUS MAP 15-AUG-78 15:01 UNIMAP.MAC 624 625 626 627 (2 ) 628 (4) (7 ) (7 ) (7 ) (7 ) (7 ) { 7} 629 (6) (6 ) 630 (7 ) (7 ) 631 (6) 632 (4) 633 634 635 636 637 638 639 640 (4) 641 (4) 642 643 644 645 646 647 (4) (6 ) (9 ) 648 (6) 656 (6) 18:40 PAGE 19-3 SEQ 1017 ; THEN LINE THEM UP IN BITS o THRU 5 AND MASK OUT UPPER 10 BITS ;- 000050' 000050' 000050' 000050' 000054' 000056' 000060' 000062' 000064' 000066' 000070' 000070' 000074' 000076' 000076' 000100' 000102' 000102' 000106' 000106' INLINE <1$:> LET 016001 006301 006301 006301 006301 006301 006301 000052 016002 000302 000052 1~1 LET R2 LET R2 006202 006202 LET R2 042702 1 $: ·- DT.WLLMT(RO) SHIFT #+6 · - SWAP DT.WLLMT(RO) · - R2 SHIFT #-2 : = R2 CLR.BY #177400 177400 MOV ASL ASL ASL ASL ASL ASL DT ,~vLLMT(RO) ,R1 R1 R1 R1 R1 R1 R1 MOV SVIiAB DT ,INLLMT(RO) ,R2 R2 ASR ASR R2 R2 BIC #177400,R2 MOV #MAPREG,R3 MOV #"'0·31 ,R4 TST SEQ R4 50006$ MOV R1,(R3)+ MOV R2, (R:-3)+ ADD #20000,R1 ADC R2 ENDIF 510004$: ;+ ; NOW MAP, BY SETTIN R3 TO LOWEST MAP REGISTER AND R4 TO MAXIMUM ; NUMBER OF REGISTER, 't - 000106' 000106' 012703 000112' 000112' 012704 LET R3 .- #MAPREG LET R4 ' 170200 - # . . 031 000037 ;+ ; WHILE REGISTERS REMAIN CONTINUE TO MAP , WHILE R4 NE #0 DO 000116' 000116' 000116' 005704 000120' 001407 50005$: + 6'~9 650 651 652 653 (4) 654 (4) 655 20'-SEP-78 MACY11 30A(1052) UNIMAP ROUTINE LOAD REGISTERS AND THEN UPDATE POINTERS 000122' 000122' 000124' 000124' 000126' 000126' 000132' 00013.2' LET (R3)+ .- R1 010123 LET (R3)+ ' - R2 010223 062701 005502 LET R1 '- R1 + #20000 LET R2 '- R.2 + CARRY 020000 UNIMAP - LOAD UNIBUS MAP 15-AUG-78 15:01 UNIMAP.MAC 657 (6) 658 (4 ) (3) 659 660 661 662 663 664 665 (3) 666 667 (3) (3 ) (2) 668 669 MACY11 30A(1052) 2()-SEP-78 UNIMAP ROUTINE 18:40 PAGE 19-4 SEQ 1018 LET R4 := R4 - #1 000134' 000134' 005304 000136\ 000136' 000767 000140' ENDDO DEC R4 BR 50005$ JSR PC,RESREG RTS PC :;0006$ : ;+ ; RESTORE REGISTERS , 0- 000140' 000140' 004767 000144' 000144' 000144' 000144' 000207 000001 CALL RESREG OOOOOOG ENDRTN ~;OOOO$ : ~;0001$: .END UNIMAP - LOAD UNIBUS MAP 15-AUG-78 15:01 UNIMAP.MAC ACSR 000102 ACTBIT= 004000 . ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 000106 ASB ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BITO 000001 BITOO 000001 BIT01 = 000002 000004 BIT02 BIT03 000010 BIT04 000020 000040 BIT05 BIT06 000100 BIT07 000200 BITOB 000400 BIT09 ::: 001000 000002 BIT1 BIT10 002000 BIT11 004000 010000 BIT12 BIT13 020000 BIT14 040000 BIT15 100000 BIT2 000004 BIT3 000010 BIT4 000020 BIT5 000040 000100 BIT6 BIT7 000200 BITS 000400 001000 BIT9 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 BL.BTN!= ****** G BL.TOP= ****** G CAPRES::: 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 000001 CQOVF 000015 CR 20-SEP-7B MACY11 30A(1052) SYMBOL TABLE: CSRA = 000100 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD: 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR:: 000020 DT.ESI= 000044 OT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 I)T.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 18:40 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD=: 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR=. 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT INTR 000120 lOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3::: 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 1723~4 KIPDR7= 172316 KTERRO= OC0040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPREG= 170200 MAPSTA= 000200 076600 MED MEMPAS= 040000 PAGE 20 SEQ 1019 MODEXH:: MODHOL:= MODSEL:= MSGCKD:= MSGCKS:: MSGDER= MSGDHP= MSGECH:: MSGEOP:= MSGHDR:= MSGHNG:= MSGHRD:= MSGMAP= MSGNUL:= MSGPOP:= MSGPRM= MSGRES= MSGSFT: MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOAPTY= NULL :: OWEN PA.ERR PARPRE= PARSTA= PASCNT= PDPLSI= PDPGO PDP70 PRIO PR 11 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS PSW RANNUM= RBUFEA= RBUFPA= 004000 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 00'0101 RDWHMl= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 RESREG= ****** G 00005G RES1 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 00011:2: RUBOUT= 000177 RUNMOD= 1000001 R5VALU= 0017401 gAM 075464 SAVREG= *'***** G SBADR = 000102 SBKMOD·= 000000 SBKSEL= 01000() SC.ADR= 000006 SC.ALC= 000014 SC.APC= OOOOH. SC.CKL= 000002 SC.CKP= 000004 SC.CLO= OOOOO~I SC.HLD= 000010 SC.SCI\::: 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 00004E. SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 17757Ei SR2 17~151E; SR3 STAT 000026 STATBI= 064757 STAT1 = 000027 SUSPND= 000001 000062 SVRO SVR1 00006 LI SVR2 000066 000070 SVR3 SVR4 000072 000074 SVR5 000076 SVR6 SYSCNT::: 000052 SYSERR= 00010Cl TABL 000000 - 20-SEP-78 MACY11 30A(1052) SYMBOL TABLE UNIMAP LOAD UNIBUS MAP 15-AUG-78 15:01 UNIMAP.MAC WASADR= 000104 WBSTAT= '000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ~ 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTD WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 17777'7 $ERFLG= 000400 $'F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 UNIMAP OOOOOORG ASS. 000000 000146 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:UNIMAP,DSKZ:UNIMAP=SPMAC/ML,EQUATE,UNIMAP RUN-TIME: 13 3 .3 SECONDS RUN-TIME RATIO: 32/17=1.8 CORE USED: 14K (27 PAGES) 18:40 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO:.:. 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN:: 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 PAGE 20-1 SEQ 1020 $ISKO .$ISK1 _. $ LOCT A=: $LSTIN:: $LSTTA:: $NESTL:: $NSKO -$NSK1 _. $NSK2 .$SAVLE= $SSKO .. $TAGLE:: $TAGNU= $TEMP $TSKO .$TSK1 .$$ARGC::: $$BYT'E:= $$CASE:= 000001 000001 177777 000001 000001 177777 000300 000120 000110 11'1777 050006 177777 050007 000300 050005 050006 000002 000403 000000 $$DST = 000000 $$ELOC= 000402 $$EI~F L= 000000 $$F LAG= 000340 $$FROM= 000000 $$LOC = 000120R $$LOCN= 000001) $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1:: 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000146,R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 553 555 583 18:40 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINTIONS AND REFERENCES 000000' .PRINT UNIPA ROUTINE ;SPMAC: VERSION 1.1 SEQ 1021 UNIPA - GET PHYSICAL ADDRESS FORM UNIBUS MAP MACV11 30A(1052) UNIPA.MAC 28-JUL-78 09:28 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 531 538 539 540 541 542 543 544 545 546 547 18:40 PAGE 19 SEQ 1.022 .TITLE UNIPA - GET PHYSICAL ADDRESS FORM UNIBUS MAP .IDENY iVO.O/ ;++ MODULE NAME: UNIPA FUNCTIONAL DESCRIPTION: DETERMINES 22-8IT PHYSICAL ADDRESS FROM ADDRESS AND PROPER UNIBUS MAP REGISTER. ~8-BIT VIRTUAL INPUTS: ADDRESS OF I/O TABLE - CONTAINS 16 BIT PA AND :2 EA BITS IMPLICIT J[NPUTS: PA EA OUTPUTS: NONE IMPLICIT OUTPUTS: 16 BITS AND EA BITS PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: SAVI~EG RESf~EG ;SAVE REGISTERS ;RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL UNIPA IN <A> A=ADDRESS OF I/O TABLE VERSION: 0.0 548 EDIT 549 550 551 20-SEP-78 ;-- BY DATE REASON UNIPA - GET PHYSICAL ADDRESS FORM UNIBUS MAP MACY11 30A(1052) 20-SEF-78 UNIPA.MAC 28-JUL-78 09:28 COMMON DEFINTIONS AND REFERENCES 553 554 555 (1) 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 000000 1 000000 1 000001 000001 18:40 PAGE 19-1 SEQ 1023 .SBTTL COMMON DEFINTIONS AND REFERENCES .MCALL STRUCT STRUCT .PRINT jSPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 ;**************** , ; REFERENCED BY OTHER MODULES ; .GLOBL UNIPA , ;MODULE ENTRY POINT ;**************** , ; GLOBAL REFERENCES , .GL08L .GLOBL SAVREG RESREG ;**************** , ; LOCAL EQUATES 170200 MAPREG=1702QO i ;**************** ;SAVE REGISTERS ;RESTORE REGISTERS UNIPA - GET PHYSICAL ADDRESS FORM UNIBUS MAP MACY11 30A(1052) UNIPA.MAC 28-JUl-78 09:28 UNIFA ROUTINE 583 584 585 586 (2) 587 588 589 590 591 592 593 (3) 594 595 596 597 598 599 600 (4) 20-SEP-78 18:40 PAGE 19-2 SEQ 1024 .SBTTL UNIPA ROUTINE ROUTINE UNIPA <ADDR> 000000 1 000000 1 UNIPA: ;+ ; SAVE REGISTERS j- 000000 1 000000 1 004767 CALL SAVREG OOOOOOG J5R PC,SAVREG MOV ADDR ( F!5) , RO ;+ ; GET THE ADDRESS OF THE 1/0 TABLE ', - LET RO := ADDR(R5) 1 000004 000004 1 016500 000000 601 602 603 604 605 60S 607 608 (4 ) 609 (4) 610 611 612 613 614 615 616 617 (6) (6) 618 (7 ) (7 ) (7) 619 (6) 620 (4 ) ( 7) 621 (6) 622 623 624 ;+ ; GET THE 18-BIT ADDRESS TO BE CONVERTED. THE LOW 16 BITS WILL ; BE IN R1 AND THE HIGH 2 BITS WILL BE IN R2 (POSITIONS 4 AND 5). ,' 000010 1 000010 1 012001 000012 1 000012 1 012002 ( IW)+ LET R1 '- LET R2 · - (I~O) + MOV (RO)+"R1 MOV (RO)+"R2 MOV SWAB R1 "R3 R3 ASR ASR ASR R3 R3 R3 BIC #1?7743,R3 MOV ASL R2,R4 R4 ADD R3,R4 ;+ ; GET THE HIGH 5 BITS OF THIS ADDRESS TO DETERMINE THE PROPER ; UNIBUS MAP REGISTER. ,' - 000014 1 000014 1 000016 1 000020 1 000020' 000022' 000024' 000026 1 000026' 000032' 000032' 000034' 000036' 000036' LET R3 010103 000303 LET R3 006203 006203 006203 ·- S\IJAP R1 · - R:3 SHIFT #-3 · - R3 CLR.BY #177743 LET R4 · - R2 SHIFT #+1 LET R3 042703 010204 006304 177743 LET R4 060304 ;'+ ·- R4 + R3 UNIPA - GET PHYSICAL ADDRESS FORM UNIBUS MAP MACY11 30A(1052) UNIPA.MAC 28-JUL-78 09:28 UNIPA ROUTINE 625 626 627 628 629 (6) 630 (4) 631 (4) 632 633 634 635 636 637 638 639 640 (6) 641 (6) 642 (6) 643 644 645 646 647 648 649 650 (4) 651 (4) 652 653 654 655 656 657 658 (3) 659 660 66; 662 663 664 665 (3) (3) (2) 666 667 20~SEP-78 18:40 PAGE 19-3 SEQ 1025 ; GET THE CONTENTS OF THE PROPER MAP REGISTER. THE LOW ; 16 BITS WILL BE IN R2 AND THE HIGH 6 BITS WILL BE IN R3. 000040' 000040' 062704 000044 1 000044' 012402 000046 1 000046 1 011403 LET R4 "- R4 + #MAPREG 170200 LET R2 '- (R4)+ LET R3 .- (R4) ADD #MAPREG,R4 MOV (R4)+,R2 MOV (R4),R3 BIC #160000,R1 ADD R1 ,R2 ADC R3 MOV R2, (RCI)+ MOV R3,(RO) JSR PC,RESREG RTS PC ;+ ; ADD THE LOW 12 BITS OF THE 18-BIT VIRTUAL ADDRESS TO THE ; VALUE JUST OBTAINED FROM THE MAP REGISTER. THE RESULT ; IS THE 22-BIT PHYSICAL ADDRESS. ' f 000050' 000050 1 042701 0000541 b00054 1 060102 000056' 000056' 005503 LET R1 160000 . - R1 CLR. BY #160000 LET R2 '- R2 + R1 LET R3 .- R3 + CARRY ;+ ; STORE THE 22-BIT PHYSICAL ADDRESS IN THE I/O TABLE. ; 16 BITS GO IN FIRST, THEN THE HIGH 6. THE LOW ;- LET (RO) + . _. R2 000060' 000060' 010220 000062' 00006~' 010310 LET (RO) . - R3 ;+ ; RESTORE REGISTERS ,' 000064' 000064' 004767 CALL RESREG OOOOOOG ;-r ; COME AGAIN, SOON. ;- 000070' 000070' 000070' 000070' 000207 000001 ENDRTN 50000$: :50001$: .END MACY 11 30A(1052} UNIPA - GET PHYSICAL ADDRESS FORM UNIBUS MAP SYMBOL TABLE: 28-JUL-78 09:28 UNIPA.MAC ACSR 000102 ACTBIT= 004000 ADDR 000000 ADDR22= 001000 ADR = 000006 APTFER= 000004 APTPRE= 000200 ASB = 000106 ASSEM8= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 000001 BITO BITOO 000001 BITOl 000002 BIT02 000004 B1T03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 BIT09 001000 BIT1 000002 OIT10 002000 BIT11 004000 B1T12 010000 BIT13 020000 040000 BIT14 BIT 15 100000 000004 B1T2 BIT3 000010 000020 BIT4 000040 BITS 000100 BIT6 000200 BIT7 BIT8 000400 001000 B1T9 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BK5LSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONF1G= 000056 000001 CQCVF 000015 CR CSRA 000100 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ES1= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 0000~7 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT. PT A= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.5P = 000006 DT.5S1= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SvJR= 000056 DT.SYP= 000072 DT. WBU= 000050 DT. WH L= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 EN8EOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT:::: 000001 ERRTYP= 000106 EVNT BE= 000200 EVNTHD= 000200 EVNTKT.= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= ·000044 HRDPAS= 000050 ICONT :::: 000036 1COUNT= 000040 1DNUM = 000122 000100 IE 1NDPAR= 000040 1NHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 IOMOD :::: 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 1 10000 JACK 035060 KIPARO= 172340 K1PAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 K1PDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPREG= 170200 MAPSTA= 000200 MED 076600 MEMPAS= 040000 MODEXH= 004000 20-SEP-78 18:40 PAGE 20 SEQ 1026 MODHOL:: 002000 MODSEL:: 001000 MSGCKD:: 000010 MSGCKS:: 00001 1 MSGDER:: 000005 MSGDRP:: 000017 MSGECH::: 177777 MSGEOp:: 000013 MSGHDR:: 000004 MSGHNG::: ~OJ022 MSGHRD::: 000C07 MSGMAp::: 000021 MSGNU L:= 177775 MSGPnp= 000002 MSGPRM::: 177776 MSGRES:: 000001 MSGSFT:: 000006 MSGSKE:: 000003 IVlSGSMB= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL 024020 OIfJEN PAERR 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 02;)000 004000 PDP60 PDP70 = 010000 000000 PRIO 000040 PRI1 000200 PRI4 000240 PRI5 PRI6 ::: 000300 000340 PRI7 000000 PRO 000200 PR4 000240 PR5 PR6 000300 000340 PR7 PS 177776 177776 PSW RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 00012'1 RDSERV= 000101 RDWHMI::: 000022 RELERR= 000020 RELMOD= 020000 RELTIM= 010000 RESREG= ****** G 000056. RES1 RC:S2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RU~~MOD= 100000 RSVALU= 001740 SAM 075464 SAVREG= ****** G SBADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 Sc. ALC= 000014 SC.APC= 000018 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA::. 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 000046 SPACE = OOOO·'H) SPOINT= 000032 SPVALU= 002200 177572 SRO SR1 177574 17757E> SR2 172516 SR3 000026 STAT STATBl::: 064757 STAT1 = 000027 SUSPND= 000001i SVRO 000062 SVR1 000064 OOOOS£) SVR2 000070 SVR3 SVR4 000072 000074 SVR5 SVR6 00OO7E3 SYSCNT= 000052 SYSE.RR= 000100 000002 TMPIO TQOVF = 000002 UNIPA - GET PHYSICAL ADDRESS FORM UNIBUS MAP MACY11 30A(1052) UNIPA.MAC 28-JUL-78 09:28 SYMBOL TABLE UIPARO= UIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= UNIPA 177640 177642 177644 177646 177650 177652 177654· 177656· 177600 177602 177604 177606 177610 177612 177614 177616 OOOOOORG ASS. 000000 000072 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 060140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$SAD= 000401 000 001 ERRORS DETECTED: 0 DEFAULT GLOSALS .GENERATED: 0 DSKZ:UNIPA,DSKZ:UNIPA=SPMAC/ML,EQUATE,UNIPA RUN-TIME: 12 2 .3 SECONDS RUN-TIME RATIO: 29/15=1.9 CORE USED: 14K (27 PAGES) $F$BLA= 000170 $F$CAS:;: 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000~10 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 20-SEP-78 18:40 PAGE 20-1 $ F$UNT== $F$WHI:: $F$YES:: $IFLEV:: $ LOCT A:: $LSTIN:: $LSTTA:: $NESTL:: $NSKO .$SAVLE=: $TAGLE::: $T AGNU::: $TEMP .$$ARGC::: $$BYTE:: $$CASE:: $$DST .- 000130 000120 000402 177777 177777 000001 000001 177777 000300 17'1777 177777 050002 000300 000002 000000 000000 000000 SEQ 1027 $$ElOC= 000000 $$ERFL= 000000 $$FLAG:: 000000 $$FROM= 000000 $$LOC :: 000000 $$LOCN= 000000 177777 $$REG $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000072R = .MAIN. MACV11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 558 560 596 18:41 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 I • PR I NT WBFLIM ROUTINE i SPMAC: VERS ION 1.1 SEQ 1028 WBFLIM - DETERMINE WRITE BUFFER LIMITS WBFLIM.MAC 14-AUG-78 14:36 508 509 510 511 51-2 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 .537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 MACY11 30A(1052) 20-SEP-78 COMMON EQUATE MODULE 18:41 PAGE 19 SEQ 1029 .TITLE WBFLIM - DETERMINE WRITE BUFFER LIMITS .IDENT /VO.O/ ;++ MODULE NAME: WBFL.IM FUNCTIONAL DESCRIPTION: CALCULATES LOW AND HIGH WRITE BUFFER LIMITS AND INITIALIZES THE WRITE BUFFER ADDRESS POINTER INPUTS: DATA TABLE IMPLICIT INPUTS: DT.ADDR DT.ESIZ DT.SSIZ DT.STO OUTPUTS: NONE: IMPLICIT OUTPUTS: DT.WLLMT DT . vJHLMT DT . vmUF DT.OFFSET PATHOLOGICAL CONNECTIONS NONE SUBORDINATE MODULES CALLED: SAVHEG RESHEG ;SAVE REGISTEI~S ;RESTORE REGISTERS FUNCTIONAL SIDE EFFECTS: NONE CALLiNG SEQUENCE: CALL WBFLIM IN <A> A=ADDRESS OF DATA TABLE VERSION: 0.0 EDI'r BY DATE HEASON WBFLIM - DETERMINE WRITE BUFFER LIMITS WBFLIM.MAC 14-AUG-78 14:36 558 559 560 ( 1) 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 000000 000000' 1 000001 000001 MACY11 30A(1052) 20-SEP-78 18:41 COMMON DEFINITIONS AND REFERENCES PAGE 19-1 .SBTTL COMMON DEFINITIONS AND REFERENCES .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN=1 $LSTTAG=1 ;**************** . ; REFERENCED BY OTHER MODULES .GLOBL .GLOGL .GLOGL ;MODULE ENTRY POINT ~JB F LIM BL.8,TMBNK BL.TOPBNK ;**************** .GLOBL .GLOBL ; SAVE. REGISTERS ;RESTORE REGISTERS SAVREG RESREG ;**************** ; LOCAL EQUATES , 020000 000200 007600 ;4K OF MEMORY ;4K OF MEMORY IN PAR FORMAT ;PAR FORMAT FOR 124K BANK FOURK=20000 PAR4K=200 BANK=7600 ;**************** , ; LOCAL STOHAGE a 000000' 000000 BL. TOPBNK: .WORD 000002 1 000000 BL.BTMBNK: .WORD 0 ;**************** ;CURRENT 124K BANK OF TOP OF MOVABLE PORTION OF EXERCISER ;CURRENT 124K BANK OF BOTTOM OF MOVABLE PORTION OF EXERCISER SEQ 1030 WBFLIM - DETERMINE WRITE BUFFER LIMITS WBFLIM.MAC 14-AUG-78 14:36 596 597 598 (2) 599 600 601 G02 603 604 605 (3) 606 607 608 609 610 611 612 (4) 613 614 615 616 617 618 619 620 621 (4) (6) 622 (7 ) (7 ) (7 ) ('7 ) ( 7) (7 ) 623 (6) 624 (6) 625 626 627 628 629 (6 ) 630 631 632 633 634 635 636 (4) MACY11 30A(1052) WBFLIM ROUTINE 20-SEP-78 18:41 PAGE 19-2 SEQ 1031 .SBTTL WBFLIM ROUTINE ROUTINE WBFLIM <TABL> 000004' 000004' WBFLIM: ;+ ; SAVE REGISTERS ;- 000004 1 000004' 004767 CALL SAVREG OOOOOOG JSR PC,SAVREG MOV TABL(R5),RO ;+ ; SET RO TO THE START OF THE DATA TABLE ;- 000010' 000010' 016500 LET RO := TABL(RS) 000000 ;+ ; FIND THE TOP ADDRESS OF THE MOVABLE PORTION OF THE EXERCISER. ; TO DO THIS, FIND THE SIZE OF THE MOVABLE PORTION BY SUBTRACTING 4K FROM ; EXERCISER SIZE, CONVERT IT TO PAR FORMAT 000014 1 000014 1 000020' 000024 1 000024 1 000026' 000030' 000032' 000034 1 000036' 000040 1 000040' 000044 1 000044 1 016001 162701 006201 006201 006201 006201 006201 006201 042701 LET R1 .- DT.ESIZ(RO) - #FOURK LET R1 .- R1 SHIFT #-6 000044 020000 MOV SUB DT.ESIZ(RO),R1 #FOURK,R1 ASR ASn ASR R1 R1 R1 R1 R1 ASR R1 BIC #176000,R1 INC R1 ADD DT.ADDR(RO),R1 CLR DT.OFFSET(RO) ASR ASR LET R1 .- R11 CLR.BY #176000 176000 LET R1 • - R1 + # 1 005201 ;+ ; NOW ADD IT TO THE BASE ADDRESS OF THE MOVABLE PORTION 'f - 000046 1 000046 1 066001 LET R1 . - R"I + DT. ADDR (RO) 000042 ;+ ; INITIALIZE THE OFFSET VALUE TO ZERO. 000052 1 000052 1 005060 LET DT .OFFSI:'T(RO) := #0 000070 WBFLIM - DETERMINE WRITE BUFFER LIMITS WBFLIM.MAC 14-AUG-78 14:36 638 639 640 641 642 643 (6) (9) 644 645 646 647 648 649 650 651 652 653 654 655 656 657 (4) 658 (4) 659 (4) (6) (9) 660 (6) 661 (6) 662 (4) (3) 663 664 (4) 665 (4) 666 (4) (6) (9) 667 (6) 668 (6) 669 (4) (3) MACY11 30A(1052) WBFLIM ROUTINE 2Q-SEP-78 18:41 PAGE 19-3 SEQ 1032 ;+ ; SEE IF MEMORY MANAGEMENT IS TURNED ON. ,' 000056' 000056 1 032760 000064' 001566 IF #KTSTAT SETIN DT.STO(RO) THEN 000020 000010 BIT BEQ #KTSTAT,DT.STO(R 50002$ CLR R2 MOV #-1,BL.TOPBNK CYlP BHIS R2,R1 50004$ ADD #BANK" R2 INC BL.TOPBNK BR 50003$ CLR R2 MOV #-1,BL.BTMBNK eMP BHIS R2,DT .. ADDR(RO) 50006$ ADD #BANK,R2 INC BL., BTMBNK BR 50005$ ;+ ; MEMORY MANAGEMENT IS ON. ', - j+ ; SEE IF THE MOVABLE PORTION OF THE EXERCISER LIES ACROSS A 124K ; BOUNDARY. TO DO THIS, DETERMINE THE RESPECTIVE BANKS OF THE ; TOP AND BOTTOM OF THE MOVABLE PORTION OF THE EXERCISER. ;- 000066' 000066' 000070' 000070' 000076' 000076' 000076' (100100' 000102' 000102' 000106' 000106' 000112' 000112' 000114' 000114' 000114' 000116' 000116' 000124' 000124' 000124' 000130' 000132' 000132' 000136 1 000136 1 000142' 000142 1 000144 1 LET R2 := #0 005002 012767 LET BL.TOPBNK :=#-1 177777 177702 WHILE R2 LO R1 DO 020201 103005 ~;00035; : LET R2 := R2 + #BANK 062702 007600 005267 177666 LET BL.TOPBNK := BL.TOPBNK + #1 ENDDO 000771 50004$: LET R2 := #0 005002 LET BL.BTMBNK := #-1 012767 177777 020260 103005 000042 062702 007600 005267 177640 000770 177656 WHILE R2 LO DT.ADDR(RO) DO ~)0005$ : LET R2 := R2 + #BANK LET BL.BTMBNK := BL.BTMBNK + #1 ENDDO !50006$ : WBFLIM - DETERMINE WRITE BUFFER LIMITS WBFLIM.MAC 14-AUG-78 14:36 671 672 673 674 675 (6) (9) 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 (4) 691 (4) (6) 692 (6) (9) 693 (4) 694 (4) (6) 695 (6) (9) 696 (4) 697 (4) 698 (4) 699 700 701 702 703 704 705 (4) 706 707 708 (4) (3) MACY11 30A(1052) WBFLIM ROUTINE 20-SEP-78 18:41 PAGE 19-4 SEQ 1033 ;+ ; IF THE BANKS ARE NOT THE SAME, THEN THE EXERCISER IS CROSSING A BOUNDARY. ; -' 000144' 000144' 026767 000152' 001441 IF BL.TOPBNK NE BL.BTMBNK THEN 177630 CMP BEQ 177630 BL.TOPBNK,BL.BTM 500.07$ ;+ THE EXERCISER LIES ACROSS A 124K BANK BOUNDARY. IN THIS CASE, THE LOW BUFFER LIMIT IS THE BOTTOM OF THE MOVABLE PORTION OF THE EXERCISER, AND THE HIGH BUFFER LIMIT IS EITHER 124K ABOVE THAT OR THE TOP OF MEMORY, WHICHEVER IS LOWER. IF, HOWEVER, WE LET THE HIGH LIMIT EQUAL THE TOP OF MEMORY, WE RE-DEFINE THE LOW LIMIT TO EITHER 124K BELOW THE HIGH LIMIT, OR TO 4K, WHICHEVER IS HIGIIER. THIS ASSURES US THAT THERE WILL BE A WRITE BUFFER AREA OF 124K AND THAT THE BOTTOM 4K OF THE EXERCISER WILL BE PROTECTED. 000154' 000154' 000162' 000162' 000170' 000176' 000176' 000204' 000206' 000206' 000214' 000214' 000222' 000230' 000230' 000236' 000240' 000240' 000246' 000246' 000246' 000246' 016060 000042 000052 016060 062760 000042 007600 000054 000054 026060 101420 000054 000046 016060 000046 000054 LET DT.WLLMT(RO) '- DT.ADDR(fW) LET DT.WHLMT(RO) '- DT.ADDR(HO) + #BANK MOV DT.ADDR(RO),DT.W MOV ADD DT.ADDR(RO),DT.W #BANK,DT.WHLMT(R CMP BLOS DT.WHLMT(RO),DT. 50010$ MQV DT.SSIZ(RO),DT.W MOV SUB DT.SSIZ(RO),DT.W #7600,DT.WLLMT(R CMP BHIS DT.WLLMT(RO),#20 50011$ MOV #200,DT.WLLMT(RO MOV DT.WLLMT(RO),DT. ER 50012$ IF DT.WHLMT(RO) HI DT.SSIZ(RO) THEN 016060 162760 000046 007600 000052 000052 026027 103003 000052 000200 012760 000200 000052 LET DT.vJHLMT(RO) .- DT.SSIZ(RO) LET DT.WLLMT(RO) .- DT.SSIZ(RO) - #7600 IF DT.WLLMT(RO) LO #200 THEN LET DT.WLLMT(RO) .- #200 ENDIF 50011$: ENDIF ~i0010$: ;+ ; ALSO, THE OFFSET FROM THE ACTUAL 124K BANK BASE ADDRESS MUST : BE STORED . IT EQUALS, HI THIS CASE, THE LOW BUFfER LIMIT. ;- 000246' 000246' 016060 000254' 000254' 000471 000256' LET 0 T . 0 F FSET ( R0 ) : = DT . WLLM T ( R0 ) 000052 000070 ELSE ~)0007$ : WBFLIM - DETERMINE WRITE BUFFER LIMITS WBFLIM.MAC 14-AUG-78 14:36 710 711 712 713 714 715 716 717 718 719 720 (6) (9) 721 (4 ) 722 (4) (3) 7~~ (4 ) 724 (4 ) 725 '( 4) (6 ) (9) 726 (6 ) 727 (6) 728 (4) (3) 729 730 (4) 731 732 733 734 735 736 737 738 739 (4) 740 (4) 741 (4) (6) (9) 742 (6) 743 (6) MACY11 30A(1052) WBFLIM ROUTINE 20-SEP-78 18:41 PAGE 19-5 SEQ 1034 ;+ ; OTHERWISE, THE MOVABLE PORTION OF "THE EXERCISER IS WITHIN ONE BANK. ;- ;+ ; ; ; , 000256' 000256' 000262' 000264' 000264' 000272' 000272' 000274' 000274' 000274' 000276' 000276' 000302' 000302' 000302' 000306' 000310' 000310' 000316' 000316' 000320' 000320' 000322' IF THE CURRENT BANK IS THE LOWEST ONE, THEN THE LOW BUFFER LIMIT OTHERWISE, THE LOW IS THE TOP OF THE BOTTOM 4K OF THE EXERCISER. BUFFER LIMIT IS THE BOTTOM OF THE CURRENT BANK. IF BL.BTMBNK EO #0 THEN 005767 001004 177520 012760 000200 BNE BL.BTMBNK 50013$ MOV #PAR4K, DT . WI.LMT ( BR 50014$ CLR R2 CLR DT.WLL.MT(RO) TST LET DT.WLLMT(RO) '- #PAR4K 000052 ELSE 000413 50013$: LET R2 := #0 005002 LET DT.WLL.MT(RO) 005060 := #0 000052 WHILE R2 LO BL.BTMBNK DO 5,0015$: 020267 103005 177474 062760 007600 LET DT.WLLMT(RO) 000052 CMP R2,BL.BTMBNK BHIS S0016$. := DT.WL.LMT(RO) + #BANI< ADD #BANK,DT.WLLMT(R LET R2 := R2 + #1 005202 INC R2 BR 50015$ ENDDO 000770 ENDIF 000322' 000322' ~)0014$: ;+ ; IF THE CURRENT BANK IS THE HIGHEST ONE, THEN THE HIGH BUFFER LIMIT OTHERWISE, THE HIGH BUFFER LIMIT IS THE TOP OF ; IS THE TOP OF MEMORY. ; THE CURRENT BANK. ; -~ 000322' 000322' 000324' 000324' 000330' 000330' 000330' 000334' 000336' 000336' 000342' 000342' LET R2 . - #0 LET R3 .- #-1 005002 012703 177777 020260 103004 000046 062702 007600 CLR R2 MOV #-1 ,R~3 CMP BHIS R2 t DT . SSIZ(RO) 50020$ ADD #8t~NK 0' R2 INC R3 WHILE R2 LO DT.SSIZ(RO) DO ~)0017$: 005203 LET R2 .- R2 + #BANK LET R3 . - R3 + #1 WBFLIM - DETERMINE WRITE BUFFER LIMITS 14-AUG-78 14:36 WBFUM.MAC 744 (4) (3 ) 745 746 (6) (9) 747 (4) 748 (4) (3 ) 749 (6) (9) 750 (4 ) 751 (4) (3 ) 752 (4) (6) 753 (4) 754 (4) 2Q-SEP-78 18:41 PAGE 19-6- SEQ 1035 ENDDO 000344' 000344' 000771 000346' 000346' 000346' 000352' 000354' 000354' 000362' 000362' 000364' 000364' 000364' 000370' 000372 1 000372 1 000400' 000400' 000402' 000402' 000402' 000410' 000416' 000416 1 000416' 000416 1 MACY11 30A(1052) ~1}8FLIM ROUTINE 8~ 50017$ CMP BNE BL.TOPBNK,R3 50021$ MOV DT.SSIZ(RO)t DT • W BR 50022$ TST BNE BL.BTMBNK 50023$ MOV #BANK, DT . WHL.MT (R 50020$: IF BL.TOPBNK EQ R3 THEN 026703 001004 177426 016060 000046 LET DT.WHLMT(RO) . - en .SSIZ(RO) 000054 ELSE 000415 50021$: IF 8L.8TMSNK EQ #0 THEN 005767 001004 177412 012760 007600 LET DT.WHLMT(RO) .- #BANK 000054 ELSE 000406 LET OT.WHLMT(RO) 016060 062760 000052 007600 000054 000054 .- 50024$ BR 50023$: DT.WLUJlT(RO) + #BANK OT . WLLMT ( RO) ,DT . MOV #BANK,DT.WHLMT(R ADD ENDIF 50024$: ENDIF 50022$: WBFLIM - DETERMINE WRITE BUFFER LIMITS WBFLIM.MAC 14-AUG-78 14:36 756 757 758 759 760 (4) (6) (9) 761 (6) 762 (6) 763 (4) (3) 764 765 766 (4) 767 768 769 (4) (3) 770 771 772 773 774 775 776 777 778 779 (4) 780 781 782 783 784 785 786 787 (6) (9) 788 (4) 789 (4) (3) 790 (4) 791 (4) 792 793 MACY11 30A(1052) WBFLIM ROUTINE + 000416' 000416' 000416' 000422' 000424' 000424' 000432' 000432' 000436' 000436' 000440' 20-SEP-78 18:41 ?AGE 19-7 SEQ 1036 DETERMINE THE OFFSET FORM THE BASE OF THE CURRENT 124K BANK. WHILE BL.BTMBMK GT #0 DO 500255: 005767 003406 177360 062760 007600 005367 177344 LET DT. OF FSET (RO) 000070 TST BlE . - DT. OFFSET (RO) + #7600 ADD #7600,DT.OFFSET( DEC BL.BTMBNK BR 50025$ BR 50027$ LET BL.BTMBNK := Bl.BTMBNK - #1 ENDDO 000767 BL.BTMBMK 50026$ 50026$: ENDIF 000440' 000440' 50012$: ELSE 000440' 000440' 000415 000442' ;+ ; MEMORY MANAGEMENT IS TURNED OFF ;- ;+ ; IN THIS CASE, THE LOW BUFFER LIMIT IS THE TOP OF THE EXERCISER. ;- 000442' 000442' 010160 LET DT.WLLMT(RO) .- R1 MQV 000052 R1,DT"WlLMT(RO) ;+ ; IF TOTAL MEMORY IS GREATER THAN 28K, THEN THE HIGH BUFFER LIMIT ; IS 28K. OTHERWISE, TH~ HIGH BUFFER lIMIT IS THE TOP OF MEMORY. 't - 000446' 000446' 000454' 000456' 000456' 000464' 000464' 000466' 000466' 000466' 000474 1 000474' 000474' IF DT.SSIZ(RO) HIS #1600 THEN 026027 103404 000046 001600 012760 001600 000054 LET DT.WHLMT(RO) DT"SSIZ(RO),#160 50030$ MOV #1600,DT.WHLMT(R BR 50031$ MOV DT . SSIZ(RO) ,DT.W := #1600 ELSI:' 000403 !50030:S: LET DT.WHLMT(RO) 016060 CMP BlO 000046 000054 .- DT.SSIZ(RO) ENDIF !30031$: ENDIF WBFLIM - DETERMINE WRITE BUFFER LIMITS WBFLIM.MAC 14-AUG-78 14:36 (4) 794 795 796 797 798 799 800 801 802 803 804 805 (4) (6) 806 (6) (9) (6) (9) 807 (4) 808 (4) (3) 809 (4) 810 (4) 811 812 813 814 815 816 817 (3) 818 819 (3) (3) (2) 820 821 MACY11 30A(1052) WBFLIM ROUTINE 20-SEP-78 18:41 PAGE 19-8 !:;'0027$ : 000474' 000474' 000474' 000500' 000504' 000504' 000506' 000510' 000516' 000520' 000520' 000526' 000526' 000530' 000530' 000530' 000534' 000534' SEQ 1037 LET R2 .- DT.SSIZ(RO) - #20 016002 162702 000046 000020 MOV S'JB DT.SSIZ(RO),R2 #20,R2 CMP BLO CMP BLOS R1,R2 50032$ DT.ADDR(RO),#PAR 50032$ MOV DT.WLLMT(RO),DT. BR 50033$ MOV R1,DT.WBUF(RO) JSR PC,RESREG RTS PC IF Rt HIS R2 AND DT.ADDR(RO) HI #PAR4K THEN 020102 103410 026027 101404 000042 000200 016060 000052 000050 LET DT.WBUF(RO) := DT.WLLMT(RO) ELSE 000402 LET DT.WBUF(RO) '- R1 010160 000050 ENDIF ;+ ; RESTORE REGISTERS AND RETURN 000534' 000534' 004767 000540' 000540' 000540' 000540' 000207 000001 CALL RESREG OOOOOOG ENDRTN .END 5,0000$ : 5,0001 $: - WBFLIM DETERMINE WRITE BUFFER LIMITS 14-AUG-78 14:36 WBFLIM.MAC 000102 ACSR ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 000106 ASB ASSEMB= 000010 ASTAT = 000104 ·000010 AUTO AUTOST= 020000 AWAS 000110 BANK 007600 BITO 000001 BITOO 000001 BIT01 000002 BIT02 000004 B1T03 000010 81T04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 BIT09 001000 000002 BIT1 BIT10 002000 BIT 1 1 004000 BIT12 010000 020000 BIT13 BIT14 040000 B1T15 100000 BIT:2 000004 000010 BIT3 000020 BIT4 BITS 000040 BIT6 000100 BIT7 000200 BIT8 000400 001000 BIT9 000002 BKDEF BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 8L.BTM 000002RG BL.TOP OOOOOORG CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF = 000001 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTi-.J= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ES1= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT. SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 MACY11 30A(1052) SYMBOL TABLE 20-SEP-78 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= . 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 FOURK = 020000 HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 112000 10MODX= 110000 035060 JACK KIPARO= 172340 I<IPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPOR3= 172306 KIPDR4= 172310 KIPDR5= 1723~2 KIPOR6:: 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 MED = 076600 18:41 PAGE 20 SEQ 1038 MEMPAS:: 040000 MODEXH:: 004000 MODHOL:: 002000 MODSEL:: 001000 MSGCKD:: 000010 ivlSGCKS:: 000011 MSGDER::: 000005 MSGDRP:::. 000017 MSGECH::: 177777 MSGEOP:: 000013 MSGHDR:: 000004 MSGHNG::: 000022 MSGHRD:: 000007 MSGMAP::: 000021 MSGNUL:: 177775 MSGPOP::: 000002 MSGPRM:= 177776 MSGRES::: 000001 MSGSFT:= 000006 MSGSKE= 000003 MSGSMB= 000015 MSCSMH= 000014 MSGSMS= 000016 MSGSTD:= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL 024020 OWEN 000010 PAERR PARPRE= 002000 PARSTA= 000100 PAR4K = 000200 PASCNT= 000034 PDPLSI= 020000 004000 PDP60 010000 PDP70 000000 PRIO P R 11 000040 PRI4 000200 000240 PRI5 000300 PRI6 000340 PRI7 000000 PRO PR4 000200 000240 PR5 000300 PR6 000340 PR7 177776 PS PSW 177776 RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 ROSERV= 000101 RDIJJHM I = 000022 RELERR= 000020 RELMOD= 020000 Rt::L TIM= 010000 RESf.tEG:. ****** G 000056 RES1 RES2 000060 RICHAFl= 031060 RPTOAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNMOD= 100000 R5VALU= 001740' 075464 SAM Sl~\VREG= ****** G S8AOR = 000102 Sl1KMOD= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= OOOOO.!~ sc. CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 SOFCNT= 000042 SOFPAS= 00004£) SPACE = 000040 SPOINT= 000032 SPVALU= 002200 177572 SRO 177574 SR1 17757Ei SR2 1725Hi SR3 STAT 00002Ei STATBI= 06475'/ ST AT1 = 000027 SUSPND= 0000011 000062 SVRO 000064 SVR1 SVR2 000066 SVR3 000070 000072 SVR4 SVR5 000074 0OO07E> SVR6 SYSCNT= 000052 WBFLIM - DETERMINE WRITE BUFFER LIMI TS 14-AUG-78 14:36 WBFLIM.MAC SYSERR= TABL TMPIO = TQOVF = UIPARO= UIPAR1= UIPAR2= UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1== UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= 000100 000000 000002 000002 177640 177642 177644 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 1 77614 177616 000104 ABS. 000000 000542 MACY11 30A(1052) SYMBOL TABLE WBFLIM 000004RG WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDrR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:WBFLIM,DSKZ:WBFLIM=SPMAC/ML,EQUATE,WBFLIM RUN-TIME: 20 10 .3 SECONDS RUN-TIME RATIO: 48/31=1.5 CORE USED: 14K (27 PAGES) 20-SEP-']8 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO == 000403 $F$OR == 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT== 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV== 177777 $ISKO 000001 $ISK1 000001 $ISK2 000001 000001 $ISK3 18:41 PAGE 20-1 $ LOCT A=: 177777 000001 $LSTTA:: 000001 $NESTL:: 177777 000300 $NSKO 000110 $NSK1 $NSK2 :: 000110 $NSK3 :: 000120 $NSK4 -- 000110 $SAVLE:: 177777 $SSKO -. 050026 $T AGLE:: 177777 $TAGNU:: 050034 $TEMP 000300 050033 $TSKO $TSK1 050031 $TSK2 050025 050026 $TSK3 050016 $TSK4 $$ARGC:: 000002 $$BYTE;: 000403 $LSTIN~: SEQ 1039 $$CASE= 000000 $:£05T == 000000 $'£ELOC= 000402 $$ERFL== 000000 $$FLAG== 000001 $$F;:{OM== 000000 $$LOC = 000516R $$LOCN= 000000 $$REG :: 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= OuOOOO $$TGS1= 000000 $$TGS2= 000000 00000;) $$TO $$$TAG= 050000 000542R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 557 560 631 782 ~37 S68 909 18:42 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT ;SPIVIAC: VERSION 1.1 WSTBUS ROUTINE ROUTINE TO CONTROL THE GENERATION OF TWO 16-81T PATTERN WORDS. ROUTINE TO PRODUCE A ROTATING PATTERN ALTERNATING WITH A CONSTANT. ROUTINE TO PRODUCE A BLOCK OF TWO ALTERNATING CONSTANT VALUES. ROUTINE TO REPORT MEMORY WRITE ERRORS. SEQ 1040 WSTBUS - LOAD WORST-CASE UNIBUS PATTERN MACY11 30A(1052) 20-SEP-7G WSTBUS.MAC 28-JUL-78 09:29 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 ~20 521 522 523 524 525 526 527' 528 529 530 531 532 633 534 535 536 537 538 539 540 541 542 543 544 545 546 547 '548 549 :553 554 :555 PAGE 19 SEQ 1041 .TITLE wSTBUS - LOAD WORST-CASE UNIBUS PATTERN .IDENT JVO.Oj ;++ MODULE NAME: WSTBUS FUNCTIONAL DESCRIPTION: ASSUMES EXERCISER IS IN LOWEST MEMORY AND LOADS ALL OF FREE MEMORY WITH WORST-CASE UNIBUS PATTERNS. INPUTS: DATA TABLE ADDRESS IMPLICIT INPUTS: DT.STO,DT.SSIZ,DT.EXS OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE. SUBORDINATE MODULES CALLED: SAVR:EG RESR:EG BADMEM GPA ;SAVE REGISTERS ;RESTORE REGISTERS ;OUTPUT BAD MEMORY MESSAGE ;GET PHYSICAL ADDRESSES FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL WSTBUS IN <A> A=ADDRESS OF DATA TABLE VERSION: 0.0 550 551 552 18:42 .-- EDIT BY DATE REASON WSTBUS - LOAD WORST-CASE UNIBUS PATTERN MACY11 30A(1052) 20-SEP-78 18:42 WSTBUS.MAC 28-JUL-78 09:29 COMMON DEFINITIONS AND REFERENCES ( 1) SEQ 1042 .S8TTL COMMON DEFINITIONS AND REFERENCES 557 .558 559 560 PAGE 19-1 000000' 000000' 561 000001 000001 :562 '563 '564 565 566 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $lSTIN=1 $lSTTAG=1 ;**************** , ; REFERENCED BY OTHER MODULES 567 .568 .GlOBL 569 WSTI3US ;MODULE ENTRY POINT 570 ;**************** , 571 572 ; GLOBAL REFERENCES 573 :574 .GLOBl .GlOBl .GlGBl .GLGBl 575 576 577 '578 SAVf~EG RESf~EG BADMEM GPA 579 ; '580 ;**************** , i581 ; lOCAL 582 585 586 .587 .588 '589 590 :591 '592 STOI~AGE , '583 584 000000' 000002' 000004 1 000006 1 000010 1 000012 1 000014 1 000016 I 000020 I 000000 000000 000000 000400 000000 000000 000003 177777 177776 . ItJORD 0 WB.SAV: WB.DONE: .WORD 0 . ~4JORD 0 WB.CNT: .WORD ~D256 WB.MAX: WB.ROTCNT: .WORD a WB.1MP: .WOIW a WB. TBl: . WOIW 3 WB. SD1: . \!.JOIW 177777 WB.SD2: .WOIW 177776 593 594 ,595 596 597 ; SAVE REGISTEF<S ;RESTORE REGISTERS ;OUTPUT BAD MEMORY MESSAGE ;GET PHYSICAL ADDRESS , ;**************** ;lOCAL STORAGE WORD ;CURRENT PATTERN COMPLETE FLAG ;CURRENT PATTERN WORD COUNT ;PATTERN BLOCK S1ZE ;WORD ROTATION COUNTER FOR ROUTINE PAT2 ;TEMPORARY STORAGE ON ERROR ;TABlE FOR GPA ROUTINE ;PATTERN SEEDS SELECTED BY THE INITALIZATION ROUTINES. THESE SEEDS CAN BE CHANGED IF IT IS DESIRED TO CHANGE THE PATTERNS THAT ARE PRODUCED" 598 599 600 601 602 602 604 605 606 607 608 609 610 611 THE MODULE IS SET UP TO PRODUCE THE FOLLOWING PATTERNS: 1. BUBBLE ALTERNATING WITH ALL 1 IS . . . " ,177777,177776,177777 , 177775,177777, ... 2. BUBBLE ALTERNATING WITH ALL 0 1 5. ... ,000000,177776,000000,177775,000000, ... 3. TWO ALTERNATING CONSTANTS. ONE CONSTANT IS ALL 1 IS, AND ONE CONSTANT HAS A BUBBLE WHICH SHIFTS AFTER EACH BLOCK. WST8US - LOAD WORST-CASE UNIBUS PATTERN MACY11 30A(1052) 20-SEP-78 18:42 WSTBUS.MAC 28-JUL-78 09:29 COMMON DEFINITIONS AND REFERENCES PAGE 19-2 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 528 629 177777,177776,177777,177776, .. . 177777,177775,177777,177775, .. . 4. TWO ALTERNATING CONSTANTS. ONE CONSTANT IS ALL 0 1 5, AND ONE CONSTANT HAS A BUBBLE WHICH SHIFTS AFTER EACH BLOCK. 000000,177776,000000,177776, .. . 000000,177775,000000,177775, .. . SEQ 1043 WSTBUS - LOAD WORST-CASE UNIBUS PATTERN MACY11 30A(1052) WSTBUS.MAC 28-JUL-78 09:29 WSTBUS ROUTINE 631 632 633 (:2 ) 634 635 636 637 638 :639 (3) 640 ;641 :642 ;643 644 645 646 (4) 647 648 649 650 651 652 653 654 (4 ) 655 (4) 656 (4) 657 658 659 660 661 662 663 (6) (9) 664 665 66e 667 668 669 670 671 672 (2 ) 673 (4) (7 ) (7) (7) 20-SEP-78 18:42 PAGE 19-3 SEQ 1044 .SBTTL WSTBUS ROUTINE ROUTINE WSTBUS <TABl> 000022' 000022' WSTBUS: ;+ ; SAVE REGISTERS ;- 000022' 000022' 004767 CALL SAVREG OOOOOOG uSR PC,SAVREG MOV TABL(Rt5),RO MOV # 1 ,we., DONE CLR WB.CN'- CLR WB.ROTCNT BIT SEQ #KTSTiH ,DT .STO(R 50002$ MOV @#I<I PAR6, - (SP) MOV ASR ASR ASR DT.ESIZ(RO),R~ ;+ ; SET RO TO THE START OF THE DATA TABLE ,' - 000026' 000026' 016500 LET RO := TABl(R5) 000000 ;+ ; INITIALIZE THE DONE FLAG, THE PATTERN WORD COUNT, AND ; THE ROTATION COUNTER. , '- 000032' 000032' 012767 000040' 000040 ' 005067 000044 ' 000044' 005067 LET we. DONE '- #1 000001 177742 LET WB.CNT .- #0 177740 lET we.ROTCNT '- #0 177740 ;+ ; 'SEE IF MEMORY MANAGEMENT IS IN OPERATION. 000050 ' 000050 ' 032760 000056 ' 001452 IF #KTSTAT SETIN DT.STO(RO) THEN 000020 000010 ;+ ; SAVE THE CONTENTS OF KIPAR6 AND THEN SET IT UP FOR USE AS THE ; MEMORY lOCATION POINTER BY POINTING IT TO THE 4K BANK THAT ; CONTAINS THE TOP OF THE EXERCISER. oe0060 ' 000060 ' 000064 ' 000064' 000070' 000072 ' 000074 ' PUSH @#KIPAR6 013746 172354 016001 006201 006201 006201 000044 lET Ri := DT.ESJ:Z(RO) SHIFT #-6 R"I R1 R1 20-SEP-78 WSTBUS - LOAD WORST-CASE UNIBUS PATTERN MACY11 30A(1052) WSTBUS ROUTINE 28-JUL-78 09:29 WSTBUS.MAC (7) (7 ) (7 ) 674 (4 ) (6) $75 $76 677 678 679 000076 1 006201 000100 1 006201 000102 1 006201 000104' 000104 1 010137 000110' 042737 682 [4 ) (6) 000116 1 000116 1 016001 000122 1 042701 000126' 000126' 052701 000132' 000132 1 062701 g80 81 ~83 (6) 684 ;( 6) 685 686 p87 p88 p89 690 691 [( 4) :( 6) '( 9) 692 693 694 695 696 697 :698 J( 4) :( 6) :( 9) 1699 :( 3) .700 (4) :( 3) 701 (4) 702 (6 ) 703 704 (4) (3) 705 706 707 LET @#KIPAR6 172354 176177 18:42 PAGE 19-4. SEQ 1045 ASR ASR ASR R1 R1 R1 MOV BIC R1, @#IO PAR6 #17617'7,@#KIPAR6 MOV BIC DT.ESIZ(RO),R1 #160000,R1 BIS #140000,R1 ADD #2,R1 C'V1P BHIS @#KIPAR6,DT.SSIZ 50004$ R1 CLR.BY #176177 0_ 172354 ;+ ; SET R1 TO SELECT KIPAR6 AND POINT TO THE FIRST WORD ABOVE ; THE TOP OF THE EXERCISER. . LET R1 0_ DT.ESIZ(RO) CLR.BY #16000.0 000044 160000 R; SET.BY #140000 LET R1 o- LET R1 := Ri + #2 140000 000002 ;+ ; WHILE NOT AT THE TOP OF MEMORY ... , 000136' 000136 1 000136 1 023760 000144 1 103014 WHILE @1#KIPAR6 LO DT.SSIZ(RO) DO 50003$: 172354 000046 ;+ ; GENERATE PATTERN WORDS, TWO AT A TIME, AND WRITE THEM INTO MEMORY, ; ADJUSTING THE PAR- AND REGISTER- CONTENTS AS NECESSARY. ;-' 000146 1 000146' 000146' 020127 0001521 103003 000154 1 000154' 004767 000160' 000160' 000772 000162' 000162' 000162 1 012701 000166' 000166' 062737 WHILE R1 LO #157776 DO 5,0005$ : 157776 CMP BHIS R1,#15,7776 50006$ JSR PC,GENPAT BR 50005$. MOV #140000,R1 ADD #200,@)#KI PARe BR 50003$ CALL GENPAT 000142 ENODO LET R1 140000 000200 . - #140000 !50006$ : LET @#KIPAR6 := @#KIPAR6 + #:200 172354 ENODO 000174' 000174' 000760 000176' !:;0004J; : ;+ WSTBUS - LOAD WORST-CASE UNIBUS PATTERN MACY11 30A(i052) WSTBUS.MAC 29-JUL-78 09:29 WSTBUS ROUTXNE 708 709 710 711 (2) 712 713 714 715 716 717 7'18 (4 ) (3) 719 720 721 : (6) ; (9) 728 (4) 729 (4) (3) 730 (4 ) ( 7) (7 ) (7 ) ( 7) (7 ) ( 7) 731 (4) 732 733 734 735 736 737 738 739 (6) 740 741 742 743 744 745 (4) 18:42 PAGE 19-5 SEQ 1046 ; RESTORE KIPAR6 TO ITS ORIGINAL VALUE. ,' - 000176 ' 000176' 012637 POP @#KIPAR6 172354 MOV (SP)+ ,.@#KIPAR6 BR 50007$ CMP BLO DT.SSIZ(RO),#160 50010$ MOV #160000,WB.SAV BR 50011$ MOV ASL ASL ASL ASL ASL ASL DT.SSIZ(RO),WB.S WB.SA'Il WB.SAV WB.SA\! WB.SAV WB.SAV we.SAV SUB #2,IJ.IB.S.AV MOV DT.ESIZ(RO),R1 ;+ ; ELSE MEMORY MANAGEMENT IS OFF. ;- ELSE 000202 ' 000202 ' 000444 000204 ' :;0002$ : ;+ ; USE WB.SAV AS THE HIGH MEMORY LIMIT. BECAUSE OF ; ADDRESSING LIMITATIONS WITHOUT KT, IF TOTAL MEMORY ; IS GREATER THAN OR EQUAL TO 28K THEN THE HIGH LIMIT IS ; 28K. OTHERWISE, THE HIGH LIMIT IS THE TOP OF MEMORY. 7~2 723 724 725 726 727 20-SEP-76 ;- 000204 ' 000204 ' 000-2 1 2 1 000214 ' 000214 ' 000222 1 000222 ' 000224 1 000224' 000224' 000232' 000236' 000242' 000246 ' 000252' 000256 ' 000262' 000262 ' IF DT.SSIZ(RO) HIS #1600 THEN 026027 1 0 3404 000046 012767 160000 001600 LET WB.SAV := #160000 177556 ELSE 000417 LET WB.SAV := DT.5SIZ(RO) SHIFT #+6 016067 000046 006367 177542 006367 177536 006367 177532 006367 177526 006367 . 177522 006367 177516 177546 ENDIF :;0011$: ;+ ; SUBTRACT 2 FROM THE HIGH LIMIT, 50 WE CAN WRITE TWO WORDS AT ; A TIME INTO MEMORY WITHOUT TRAPPING OUT AT THE TOP OF CORE. ;- 000262' 000262' 162767 LET WB.SAV .- W8.SAV - #2 000002 177510 ;+ ; SET UP R1 AS THE MEMORY ADDRESS POINTER 000270 ' 000270' 016001 LET R1 000044 := DT.ESIZ(RO) + #2 - WSTBUS LOAD WORST-CASt; UNIBUS PATTERN MACY11 30A(1052) WSTBUS ROUTINE 28-JUL-78 09:29 WSTBUS.MAC (6 ) 746 747 748 749 750 000274' 062701 20-SEP-78 18:42 PAGE 19-Ei SEQ 1047 000002 ADD #2,R1 CMP BHIS R1,WB.SAV 50013$ JSR PC,GENPAT BR 50012$ JSR PC,RESREG RTS PC ;+ ; "JHI LE NOT AT TOP OF MEMORY ... ,'- r,51 ~52 i( 4) [( 6) (9) 000300' 000300' 000300' 020167 000304' 103003 WHILE R1 LO WB.SAV DO 50012$: 177474 753 ~54 755 ,756 b57 i758 1759 !< 3) 1760 !761 i762 i( 4) !( 3) i763 !( 4) :764 1765 :766 :767 :768 !769 ,770 i (3} :771 i772 :773 i (3) : (3) i (2 ) [774 !775 ;+ ; CALL THE PATTERN GENERATION ROUTINE. ;- 000306' 000306' 004767 CALL GENPAT 000010 ENDDO 000312' 000312' 000772 000314' 000314' 000314' =,0013$: ENDIF 50007$: ;+ ; RESTORE REGISTERS AND RETURN. ;- 000314' 000314' 004767 000320' 000320' 000320' 000320' 000207 CALL RESREG OOOOOOG ENDRTN :;0000$ : 50001$: WSTSUS - LOAD WORST-CASE UNIBUS PATTERN MACV11 30A(1052) WSTBUS.MAC 2B-JUL-7S 09:29 WSTBUS ROUTINE .SBTTL ROUTINE TO CONTROL THE GENERATION OF TWO i6-BIT PATTERN WORDS. ROUTINE GENPAT 000322' 000322 1 (9) '794 '( 4) !795 :( 6) !( 9) [796 : (4) 1797 ; (4) (3) 798 (4 ) 799 (4 ) 800 801 (6) 802 (4) S03 (4 ) 804 805 (4) 806 S07 808 ,809 810 811 812 813 (3 ) 814 8i5 816 GENPAT: ;+ ; IF WE HAVE COMPLETED ONE PATTERN, CLEAR THE DONE FLAG AND SET UP ; TO GET THE NEXT PATTERN ROUTINE. THEN RE-INITIALIZE THE PATTERN WORDS ; (R3 AND R4) BY COMPLEMENTING ONE SEED AND LEAVING THE OTHER CONSTANT. ~91 ~( 6 ) SEQ 1048 ;- ,785 ~86 rT87 788 1789 790 '792 ;793 PAGE 19-7 ; *** SUBROUTINES *** ~82 :(2) 18:42 ;+ 777 778 779 1780 781 783 784 20-SEP-78 'f - 000322' 000322' 026727 000330' 001020 000332' . 000332' 005067 000336 1 000336' 020227 000342' 001003 000344' 000344' 012702 000350' 000350' 000402 000352' 000352' 000352' 012702 000356 1 000356' 000356' 000356' 005167 000362' 000362' 016703 000366' 000366' 016704 000372' 000372' IF WB.DONE EO #1 THEN 177454 000001 LET WB.DONE 177444 . - #0 CMP BNE WB.DONlE,#1 50002$ CLR WB.DONE CMP BNE R2,#PAT1 50003$ MOV #PAT2,R2 BR 50004$ IF R2 EO #PAT1 THEN 000432' LET R2 000502' . - #PAT2 E LSE~ LET R2 . - #PAT1 :)0003$ : MOV 000432' ENOIF 50004$: LET WB.SO; := COMP WB.SD1 177434 COM WB.5D11 MOV we. 50'1, R3 MOV WB.5D2,R4 JSR PC" (R!2) LET R3 '- WB.SD; 177430 LET R4 '- WB.SD2 177426 ENDIF ~50002$: ; .~ ; CALL THE PROPER PATTERN ROUTINE. PAT1 OR PAT2 ; R2 ', - 000372' 000372' 004712 CALL (R2) ;+ 20-SEP-78 18:42 PAGE 19-8 WSTBUS - LOAD WORST-CASE UNIBUS PATTERN MACY'1 30A(1052) ROUTINE TO CONTROL THE GENERATION OF TWO i6-BIT PATTERN WORDS. 28-JUL-78 09:29 WSTBUS.MAC 817 818 819 820 a21 '( 4) 922 (6) (9) 923 :< 4) 824 (3 ) 825 (4 ) 826 (4) 927 (6 ) :( 9) 928 :( 4) 829 :( 3) 830 (4 ) 831 SEQ 1049 ; MOVE THE TWO PATTERN WORDS INTO MEMORY. AFTER EACH MOVE, CHECK FOR A IF AN ERROR IS FOUND, GO REPORT IT. ; WRITE ERROR. 000374' 000374' 000376' 000376' 000400 1 000402 1 000402 1 000406 1 000406 1 000412 1 000412 1 000412' 000412 1 000414 1 000414 1 000416 1 000420 1 000420 1 000424 1 000424' 000430' 000430 1 LET ( R1 ) 010311 . - R3 IF (R 1 ) + NE R3 THEN 022103 001404 LET WB. TMP 010367 .- R3 177404 MOV R3 , ( R1 ) CMP SEQ (R1 )+,R3 50005$ MOV R3,WB.TMP JSR PC,ERROR MOV R4, (R 1 ) CMP SEQ (R1)+,R4 50006$ MOV R4,WB.TMP JSR PC,ERROR RTS PC CALL ERROR 004767 000160 ENDIF LET ( R1 ) 010411 IF ( R1 ) + NE R4 THEN 022104 001404 LET WB.TMP 010467 50005$: . - R4 .- R4 177366 CALL ERROR 004767 000142 ENDIF 50006$: 832 833 (3) i( 3) :( 2) 834 000430 1 000430 1 000430 1 000430 1 000207 ENDRTN 50000$: 50001$: WSTSUS - LOAD WORST-CASE UNIBUS PATTERN MACY11 30A(1052) 20-SEP-78 18:42 PAGE 19-9 WSTSUS.MAC 28-JUL-78 09:29 ROUTINE TO CONTROL THE GENERATION OF TWO 16-BIT PATTERN WORDS. 836 837 838 839 (2) 840 841 842 843 B44 845 846 1847 ~( 6 ) '( 9) B48 ( 2) '849 (4 ) ;( 3) !850 (2) i851 '( 4) ! '852 . ( 7) .SBTTL ROUTINE TO PRODUCE A ROTATING PATTERN ALTERNATING WITH A CONSTANT. ROUTINE PAT1 0004J2' 000432' 000432' 000432' 000436' 000440' 000440' 000442' 000442' 000444' 000444' 000444' 000446' 000446' 000446' 000446' 860 (6) (9) 861 (4) i862 .(4) 863 (4) 864 865 (3) (3) (2) 866 (THE FIRST PATTERN WORD IS IF #8IT15 SETIN R4 THEN 032704 001402 BIT BEQ 100000 INLINE <SEC> #BIT15,R4 50002$ SEC' . 000261 ELSE BR 000401 50003$ ~W002$ : INLlNE <CLC> CLC 000241 ENDIF :)0003$ : lET R4 .- R4 ROTATE #+1 ROL 006104 R4 ;+ ; ADD TWO TO THE PATTERN COUNT AND SEE IF WE HAVE REACHED THE MAXIMUM. ; IF YES, THEN CLEAR THE COUNT AND SET THE DONE FLAG. 855 (6 ) PAT1 : ;+ ; CALCULATE A NEW SECOND PATTERN WORD. ; CONSTANT.) '853 854 856 857 858 859 SEQ 1050 ,' - 000450' 000450' 000456' 000456' 000464' 000466' 000466' 000472' 000472' 000500' 000500' LET WB.CNT := WB.CNT + #2 062767 000002 026767 002405 177322 005067 177312 012767 00000' 000500' 000500' 000500' 000500' 000207 177326 ADD #2 I \\JB., CNT CMP BlT WB.CNT,WB"MAX 50004$ CLR WB.CNT MOV #1,WB"DONE RTS PC IF WB.CNT GE WB.MAX THEN 177322 LET ~~ 8 . CNT: = #0 LET WB.DONE := #1 177302 ENDIF ENDRTN ~50004$: ~jOOOO$ : ~50001$: WSTBUS - LOAD WORST-CASE UNIBUS PATTERN MACY11 30A(1052) 20-SEP-78 18:42 PAGE 19-:10 WSTBUS.MAC 28-JUL-78 09:29 ROUTINE TO PRODUCE A BLOCK OF TWO ALTERNATING CONSTANT VALUES. SEQ 1051 .SBTTL ROUTINE TO PRODUCE A BLOCK OF TWO ALTERNATING CONSTANT VALUES. 868 869 870 871 872 873 874 875 876 877 ;+ AFTER A BLOCK IS COMPLETE, ONE OF THE WORDS IS CHANGED (THE OTHER ALWAYS REMAINS CONSTANT) AND ANOTHER BLOCK IS PRODUCED. A ; ROTATING PATTERN IS USED IN THE VJQRD THAT IS CHANGED. THE PATTERN IS ; COMPLETE WHEN THE CHANGING WORD HAS ROTATED ALL THE WAY AROUND ; TO THE STARTING POINT. B78 a79 i( 2) ROUTINE PAT:2 000502 1 000502' , PAT2: 880 881 882 ;+ :a83 884 i885 ADD TWO TO THE PATTERN WORD COUNT. ; IF THE PATTERN WORD COUNT HAS REACHED THE MAXIMUM, THEN ROTATE THE ; CHANGING WORD. IF THE WORD HAS ROTATED COMPLETELY, THEN ; SET THE DONE FLAG. :886 iSS7 iS8a i889 (6) ;890 {6 } (9 ) 891 (4) ;892 (6) ; (9) 893 {2 } i894 ,( 4) : (3) !895 : (:2) 896 (4) .897 , ( 7) 898 ,( 6) 899 ; {6} (9 ) '900 (4) 901 (4) 902 (4) 903 (4) 000502' 000502' 000510' 000510' 000516' 000520' 000520' 000524' 000524' 000530' 000532' 000532' 000534' 000534' 000536' 000535' 000536' 000540' 000540' 000540' 000540' 000542' 000542' 000546' 000546' 000554' 000556' 000556' 000562' 000562' 000570' 000570' 000570' 000570' LET WB.eNT := WB.CNT + #2 062767 000002 177274 ADD #2,WB.CNT CMP BlT WB • Cr'H t WB • MA X 50002$ CLR WB.CNT BIT SEQ #BIT1!:i,R4 50003$ IF WB.CNT GE wB.MAX THEN 026767 002424 177270 005067 177260 177270 LET WB.CNT := #0 IF #BIT15 SETIN R4 THEN 032704 001402 100000 INLINE <SEC> S:::C 000261 ELSE BR 000401 50004$ :;0003$ : INLINE <CLC> CLC 000241 ENDJ:F :;0004$ : LET R4 := R4 ROTATE #+1 006104 ROl R4 INC WB.ROTCNT CMP BNE WB.ROTCNT,H"'D16 50005$ CLR WB.ROTCNT MOV #1 ,WB" DONE LET WB.ROTCNT := WB.ROTCNT + #1 005267 177242 026727 001005 177236 005067 177226 01276'1 000001 IF WB.ROTCNT EO #~D16 THEN 000020 LET W6.ROTCNT := #0 LET WB.DONE := #1 177212 ENDIF £50005$ : ENDIF ~50002$ : WSTBUS - LOAD WORST-CASE UNICUS PATTERN MACY11 30A(1052) 20-SEP-78 18:42 PAGE 19-11 WSTBUS.MAC 28-JUL-78 09:29 ROUTINE TO PRODUCE A BLOCK OF iWO ALTERNATING CONSTANT VALUES. 904 (3) (3) (2 ) 905 906- 000570' 000570' 000570' 000570' 000207 SEQ 1052 ENDRiN 50000$: 50001$: RTS PC WSTBUS - lOAD WORST-CASE UNIBUS PATTERN MACY11 30A(1052) 20-SEP-78 18:42 PAGE 19-12 ROUTINE TO PRODUCE A BLOCK QF TWO ALTERNATING CONSTANT VALUES, 28-JUl-7B 09:29 WSTBUS.MAC 908 909 910 911 912 913 914 915 916 917 918 919 920 (2 ) 921 922 (2 ) 923 (4) 924 (3) (5) (4) (3) (3) 925 (3 ) (7 ) (6) (5 ) (4) (3) (3) 926 (2) 927 (3) (3) (2 ) 926 929 930 SEQ 1053 .SBTTl ROUTINE TO REPORT MEMORY WRITE ERRORS. ;+ ; ; ; ; ', - ROUTINE ERROR 000572' 000572' 000572' 000572' 000574' 000574' 000600' 000600' 000602' 000606' 000610' 000614' 000616' 000616' 000620' 000622' 000626' 000632' 000634' 000640' 000642' 000642' 000644' 000644 ' 000644' 000644' THIS ROUTINE PROCESSES BAD MEMORY TRANSFERS. IT POINTS TO THE BAD ADDRESS, PUTS THAT ADDRESS IN A TABLE, AND CALLS GPA TO CONVERT THAT ADDRESS FROM VIRTUAL TO PHYSICAL. THEN BADMEM IS CALLED TO OUTPUT A MESSAGE. FINALLY, THE ADDRESS POINTER IS RESTORED TO THE NEXT MEMORY LOCATION. ERROR: INLINE <TST -(R1» 005741 LET WB.TBl := R1 010167 177214 TST - (R 1 ) MOV R1,WB.TBL CALL GPA IN <RO,#WB.TBL> 010546 012745 010045 004767 012605 010546 011145 016745 012745 010045 004767 012605 MOV MOV MOV JSR MOV 000014' OOOOOOG CALL BADMEM IN <RO,#WB.TBL+2,WB.TMP,(R1» 177164 000016' OOOOOOG INLINE <TST ENDRTN 000207 000001 .END RO,-(R5) PC,GPA (SP)+,R5 MOV MOV MOV MOV MOV dSR MOV R5,-(SP) (R1) ,-(R5) WB.TMP,-(R5) #WB.TBL+2,-(RS) RO, - (R:5) PC,BADMEM (SP)+,R5 TST (R1 ) + RTS PC (R1)+> 005721 R5,-(SP) #\l.JB. TBL,-(R5) :iOOOO$ : !::iQ001$: - LOAD WORST-CASE UNIBUS PATTERN MACY11 30A(1052) vJSTBUS SYMBOL TABLE 28-JUL-78 09:29 WSTBUS.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASS 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BADMEM= *****'" G 000001 BITO BITOO 000001 BIT01 000002 BIT02 000004 BIT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BITOB 000400 BIT09 001000 000002 BI T1 BIT10 002000 B1 T 11 004000 BIT12 010000 BIT13 020000 BIT14 040000 BIT15 100000 BIT2 000004 BIT3 000010 BIT4 000020 BITS 000040 BIT6 000100 BIT7 000200 BIT8 000400 BIT9 ' 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF = 000001 CR 000015 CSRA 000100 000102 CSRC CTRLC = 000003 000017 CTRLO 000025 CTRLU OCEVNT= 000011 OEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DT.ADD= 000042 D1. AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 OT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= '000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.seT= 000066 DT.SMX= 000106 DT.SP - 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT . vJBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 20-SEP-78 EOPBIT= 000001 000572R ERROR ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 GENPAT 000322R GPA ****** G HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 IE 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 1NHRRE= 0004{)O INIT 000030 INTR 000120 lOMOD 100000 lOMODP= 102000 lOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 00000" MAPSTA= 000200 MED 0766('0 18:42 PAGE 20 SEQ 1054 MEMPAS:: 040000 MODEXH," 004000 MODHOL:~ 002000 MOOSE L:= 001000 MSGCKD:: 000010 MSGCKS::: 000011 MSGDER:: 000005 MSGDRp:: 000017 MSGECH:: 177777 MSGEOp:= 000013 MSGHDR:::: 000004 MSGHNG:= 000022 MSGHRO= 000007 MSGMAP:= 000021 MSGNUL= 1777}5 MSGPOP= 000002 MSGPRM= 17"1776 NlSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSfVlB= 000015 MSGSMH= 000014MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPlY= 000002 000000 NULL 024020 OWEN 000010 PAERR PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 000432R PAT1 000502R PAT2 PDPLSI= 020000 004000 POP60 010000 PDP70 000000 PRIO 000040 PRI1 000200 PRI4 PRI5 000240 000:300 PRI6 000340 PRI7 000000 PRO 000200 PR4 PR5 000240 000300 PR6 000340 PR7 177776 PS 177776 PS~~ RANNUM= 000054 RBiJFEA= 000130 RBUFPA= 00012G RBUFSZ= 000132 RBUFVA= 000124' RPSERV= 000101 Rm\lHMI= 000022 RELERR= 000020 RELMOD= 020000 RELTIM= 010000 RESREG= ****** G RES1 000056 RES2 0000601 RLCHAR= 031060 RPTOAT= 002000 RSTRT = 000112! RUBOUT= 00017'7' RUNMOD= 100000 R5VALU= 001740 075,464 SAM SAVREG= ****** G SBADR = 000 1 O~! SBKfvlOD= OOClOOO SBKSE L= 010000 SC.AOR= OOOOOE; SC.ALC= 000014 SC.APC= 00001E> Sc. CKL= 000 OO~~ SC.CKP= 000004 SC.CLO= 000000 SC.HLD:: 000010 SC.SCA= 00OO1~~ SENOLS= 177777 SOFCNT= 00004:2 SOFPAS= 00004€5 SPACE = 00004() SPOINT= 000032 SPVALU= 002200 SRO 177572 177574 SRi 17757G SR2 1725113 SR3 000026 STAT SH,TBI= 064757 STAT1 = 000027 SUSPND= 00()00'1 SVRO 00006:2 SVR1 000064 000066 SVR2 000070 SVR3 SVR4 00007:2 SVR5 000074 00007!5 SVR6 WSTBUS - LOAD WORST-CASE UNIBUS PATTERN MACY11 30A(1052) SYMBOL TABLE 28-JUL-78 09:29 WSTBUS.MAC WBSTAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= WB.CNT WB.DON WB.MAX WB.ROT ~IIB. SAV WB.SD1 WB.SD2 vJB.TBL WB.TMP WDFR WDTO WSTBUS WTINRE= WTWHMI= XFLAG XOFF XON SYSCNT= ·000052 SYSERR= 000100 TABL 000000 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 U!PDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 ASS. 000000 000646 000040 000136 000134 000140 000142 000004R 000002R 000006R 000010R OOOOOOR 000016R 000020R 0OO014R 000012R 000116 000114 000022RG 000352 000222 000005 000023 000021 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:WSiBUS,DSKZ:WSTBUS=SPMAC/ML,EQUATE,WSTBUS RUN-TIME: 20 10 .4 SECONDS RUN-TIME RATIO: 48/31=1.5 CORE USED: 14K (27 PAGES) 20-SEP-78 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR - 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL::: 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 18:42 PAGE 20-<1 SEQ 1055 $F$WHI:: $F$YES:: $1 FLEV:: $ISKO .$ISK1 .$ LOCT A:= $LSTIN:: $LSTTA:: $NESTL:: $NSKO $NSK1 ,$NSK2 ,$NSK3 :: $SAV LE:: $SSKO ,$T AGLE:= $TAGNU:= $TEMP $TSKO $TSK1 $TSK2 $TSK3 000120 000402 177777 000001 000001 177777 000001 000001 177777 000300 000110 000110 000120 177777 050013 177777 050002 000:300 050002 050005 050013 050005 $TSK4 = 05000l? $$ARGC= 000000 $$BYTE= 000403 $$CASE= 000000 $$CST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000554R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO OOOOOLIf $$$TAG= 050000 00064EiR .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 521 526 581 623 662 710 18:43 TABLE OF CONTENTS COMMON EQUATE MODULE KBDRV - COMMON DEFINITIONS AND REFERENCES 000000' .PRINT jSPMAC: VERSION 1.1 KBINI - KEYBOARD I/O INITIATOR ROUTINE KBINI - KBINI ROUTINE KBINT - KEYBOARD INTERRUPT SERVICE ROUTINE KBINT - ROUTINE KBINT SEQ 1056 KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 18:43 KBDRV.MAC 22-AUG-78 08:11 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 .TITLE .IDENT KBDRV - KEYBOARD DRIVER ROUTINE /VO"O/ ;++ MODULE PACKAGE NAME: KBDHV FUNCTIONAL DECSRIPTION: THIS MODULE CONTAI~S THE TWO ROUTINES: KBINI AND KBINT, WHICH TOGETHER MAKE UP THE KEYBOARD DRIVER. 517 518 519 PAGE 19 ;-- SEQ 1057 KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 18:43 PAGE 20 KBDRV.MAC 22-AUG-78 08:11 KBDRV - COMMON DEFINITIONS AND REFERENCES 521 522 523 524 525 526 (1) 000000' 000000' 527 528 .SBTTL KBDRV - COMMON DEFINITIONS AND REFERENCES .PRINT .MCALL STRUCT STRllCT ;SPMAC: VERSION 1.1 $LSrIN = 1 $LSTTAG = 1 000001 000001 529 530 531 , ;**************** 532 533 , 534 ; REFERENCED BY OTHER MODULES 535 , 536 .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL 537 538 539 540 541 542 KB.INP KB.HBP KB. F~BF KB.XFLAG KBINT KBrNI 543 ;**************** , 544 545 546 547 ; GLOBAL REFERENCES .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL 548 549 550 551 552 553 554 555 556 557 , 558 559 560 561 DX.~(FL DX.H5 DX.SP MD.BSY ;MONITOR R5 ;MONITOR R6 ;MESSAGE BUSY FLAG ; DL11 DEVICE REGISTER DEFINITIONS .GLOBL .GLOBL .GLOBL RBUF , 563 564 565 566 567 RCSf~ XCSf~ ;RECEIVER CONTROL AND STATUS HEGISTER ;RECEIVER DATA BUFFER REGISTEH ;TRANSMITTER CONTROL AND STATUS REGISTER ;*~************** , 568 569 570 572 573 574 575 ,DTABLE ADDRESS ;ENABLE/DISABLE TERMIN~L OUTPUT FLAG ;KEYBOARD BUFFER OVERLAY ;KEYBOARD BUFFER SIZE ;HIGH BUFFER ADDRESS ;PROCESS A CTRLC ;**************** 562 571 DTABLE CTRLOF OV.KBBUF OV. ~(8SIZ OV.HIKB PCTHLC ; LOCAL STORAGE - PROGRAM IMPURE STORAGE 000000' 000002 1 000004' 000006 1 000010' 000000 000000 000000 000000 000000 KB.XFLAG: .WORD 0 KB.CNT: .WORD 0 KB.INP: .WORD 0 0 KB.RSP: .WORD KB.RBF: .WORD 0 ;XOFF FLAG WORD INDICATOR ;COUNT OF PREVIOUSLY RUBBED OUT CHARACTERS ;POINTER TO KEYBOARD INPUT BUFFER ;POINTER TO NEXT CHAR TO BE RUBBED OUT ;NUMBER OF RUBOUTS RECEIVED SEQ 1058 KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 18:43 PAGE 20-1 KBDRV.MAC 22-AUG-78 08:11 K8DRV - COMMON DEFINITIONS AND ~EFERENCES 576 577 578 579 000012' OOOOOOG 000014' OOOOOOG 000016' OOOOOOG KB.KBSIZ: .WORD OV.KBSIZ KB.HIKB: .WORD OV.HIKB KB.KBBUF: .WORD OV.KBBUF KEYBOARD BUFFER SIZE KEYBOARD BUFFER HIGH LIMIT KEYBOARD BUFFER ADDRESS SEQ 1059 KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 18:43 PAGE 21 KBDRV.MAC 22-AUG-780B:11 KBINI - KEYBOARD I/O INITIATOR ROUTINE 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 .SBTTL KBINI - KEYBOARD I/O INITIATOR ROUTINE i++ ROUTINE NAME: KBINI FUNCTIONAL DESCRIPTION: THE I/O INITIArOR ROUTINE PERFORMS THE NECESSARY SET-UP FUNCTIONS, SUCH AS CLEARING THE KEYBOARD BUFFER AND RESETTING THE APPROPRIATE POINTERS TO ALLOW THE NEXT KEYBOARD COMMAND TO BE ENTERED. A RETURN TO THE CALLING ROUTINE IS THEN EXECUTED. INPUTS: 1. ADDRESS OF DATA TABLE IMPLICIT INPUTS: 1. ADDRESS OF NEXT CHAR TO BE ECHOED (DATA TABLE + DT.KBECH) OUTPUTS: NONE IMPLICIT OUTPUTS: NONE: PATHOLOGICAL CONNECTIONS: KEY EIOARD CSR 608 SUBORDINATE MODULES CALLED: NONE 609 610 611 FUNCTIONAL SIDE EFFECTS: NONE 612 613 614 615 616 CALLING SEQUENCE: CALL KBINI IN <DTABLE> VERSION: o.() 617 618 61.9 620 621 SEQ 1060 EDIT ;-- BY DATE FIEASON KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 18:43 KBDRV.MAC 22-AUG-78 08:11 KBINI - KBINI ROUTINE . 623 624 625 626 (2 ) 627 628 629 630 631 632 633 (2) (3 ) 634 (4) 635 636 631 638 639 640 (4) 641 (4) 642 (4) 643 (4) 644 (4) 645 646 647 648 (4 ) 649 (4) (6) (9) 650 (4 ) 651 (6 ) 652 (4) (3) 653 654 655 656 657 658 (2) (3) 659 .SBTTL PAGE 22 SEQ 1061 KBINI - KBINI ROUTINE ROUTINE KBINI <DTA> 000020' 000020' KlaINI: ;+ ; DO THE N~CESSARY SETUP STUFF, WHICH CONSISTS OF GETTING THE: DATA TABLE ; ADDRESS , 000020' 000020' 010046 000022' 010146 000024' 000024' 016501 RO,R1 PUSH LET R1 MOV MOV RO,-(SP) R1,'-(SP) MOV DTA(R5),R1 MOV KB.KBBUF,RO MOV RO,KB.INP MOV RO,DT.KBECH(R1) CLR KB. RSP CLR KB.RBF Mev KB.KBSIZ,R1 TST BlE R1 50003$ CLRS (RO)+ DEC R1 SR 50002$ MOV MOV (SP)+,R1 (SP)+,RO := DTA(R5) 000000 ;+ ; INITIALIZE THE INPUT, ECHO, AND RUBOUT POINTERS, ; WELL AS THE RUBOUT FLAG AS , 000030' 000030' 000034' 000034' 000040' 000040' 000044' 000044' 000050' 000050' LET RO := KB.KBBUF 016700 177762 010067 177744 LET KB.INP := RO LET DT.KBECH(Rl) 010061 005067 005067 000024 LET KB.RBP .- #0 LET KB.RBF ,- .- RO 177736 #0 177734 + ZERO THE KEYBOARD INPUT 8UFFER 0000541 000054' 016701 000060 1 000060' 000060' 005701 0000621 003403 000064 1 000064' 105020 000066 1 000066' 005301 000070' 000070' 000773 000072' LET R1 := KB.KBSIZ 177732 WHILE R1 GT #0 DO 50002$: lET (RO)+ :B= #0 LET R1 '- R1 - #1 ENDDO 5·0003$ : i+ RESTORE THE REGISTERS, ENABLE INTERRUPTS ; AND RETURN TO CALLER ;_. POP R1,RO i 000072' 000072' 012601 000074' 012600 000076' LET @RCSR := #<IE> KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 1B:43 KBDRV.MAC 22-AUG-78 08:11 KBINI - KBIN! ROUTINE (4) 660 (3) (3) (2) 000076 1 012777 000104 1 000104' 000104 1 000104' 000207 000100 PAGE 22-1 SEQ 1062 OOOOOOG MOV #<IE>,@lRCSR RTS PC ENDRTN 50000$: 50001$: KBDRV - KEYBOARD DRIVER ROUTINE MACY11 3o.A(1o.52) 2o.-SEP-78 18:43 PAGE 23 KBDRV.MAC 22-AUG-78 0.8:11 KBINT - KEYBOARD INTERRUPT SERVICE ROUTINE 662 .SBTTL 663 664 665 666 667 ;++ 668 669 670. 671 672 673 674 675 676 677 678 679 680. 681 682 683 684 685 SEQ 10.63 KBINT - KEYBOARD INTERRUPT SERVICE ROUTINE ROUTINE NAME: KBINT FUNCTIONAL DESCRIPTION: THE INTERRUPT SERVICE ROUTINE IS ENTERED DIRECTLY VIA THE HARDWARE INTERRUPT VECTOR AND PERFORMS THE NECESSARY FUNCTIONS TO HANDLE THE INTERRUPT. UPON RECEIVING A LINE TERMINATOR EVENT, CONTROL IS PASSED TO THE APPROPRIATE SERVICE ROUTINE, OR THE EVENT-PENDING FLAG IS SET. ALSO, ALL LOWER CASE INPUT IS CONVERTED TO UPPER CASE INPUTS: NONE IMPLICIT INPUTS: NONE. OUTPUTS: EVENT CODE IMPLICIT OUTPUTS: NONE 686 687 688 689 690 691 592 693 694 695 696 697 PATHOLOGICAL CONNECTIONS: 1. CTRLOF 2. DX.KFL 3. Ell ABLE ; CONTROL-'O FLAG SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: IF XOFF (AS) IS GENERATED BY KEYBOARD, THE RESULT WILL BE TO DISABLE TTDRV UNTIL XON (AQ) IS GENERATED. 698 6~9 70.0. 70.1 70.2 703 704 705 70.6 70.7 70.8 CALLING SEQUENCE: ENTERED DIRECTLY VIA THE HARDWARE INTERRUPT MECHANISM VERSION: 0..0 EDIT BY DATE F~EASON KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 18:43 KBDRV.MAC 22-AUG-7B 08:11 KBINT - ROUTINE KBINT 710 711 712 713 714 715 716 717 718 (:2 ) 719 (6) 720 (4) 721 (6) 722 723 724 725 726 727 (6) (9) (6) (9) 728 (6) 729 (4) 730 731 732 733 734 735 (6) (9) 736 (4) 737 ('2 ) 738 (4) 739 740 741 742 743 744 745 (6) (9) 746 (4) 747 .SBTTL PAGE 24 SEQ 1064 KBINT - ROUTINE K8INT ;+ ; DISABLE INTERRUPTS, GET THE CHARACTER ONTO THE STACK ; AND STRIP-OFF THE ASCII PARITY BIT , '- 000106 1 000106 1 000106 1 000106 1 042777 000114 1 000114 1 117746 000120 1 000120 1 042716 IROUTINE KBINT KBINT: LET @RCSR := @RCSR CLR.BY #<IE> 000100 OOOOOOG LET -(SP) :13= @RBUF LET (SP) .- (SP) CLR.BY #177600 OOOOOOG 177600 BIC #<IE>,@RCSR MOVB @RBUF,-(SP) BIC #177600,(SP) CMPB BLT CMPB BGT (SP),fl!141 50002$ (SF'),#172 50002$ BICB #BITO~;, (SP) CMPB BNE (SP),1I<XOFF> 50003$ MOV #1,KB . XFLAG ;-+; CONVERT LOWER CASE TO UPPER CASE 000124 1 000124 1 000130 1 000132 1 000136 1 000140 1 000140 1 000144 1 000144 1 IFB (SP) GE #141 ANDB (SP) LE #172 THEN 000141 121627 002405 121627 003002 000172 142716 000040 LET (SP) :B= (SP) CLR.BY #BIT05 ENDIF ~)0002$ : ;+ ; IF XOFF(AS) THEN SET XFLAG ;- 000144 1 000144 1 000150 000152 1 000152 1 000160 1 000160 1 000164 1 000164 1 1 IFB (SP) EQ #<XOFF> THEN 121627 001005 000023 012767 000001 000167 000426 LET KB.XFLAG '- #1 177620 INUNE <JMP 2$> JMP 2$ ENDIF ~50003$ : ;+ ; IF XON(AQ) THEN CLEAR XFLAG AD IF MESSAGE IN ; SET TTRANSMITTER INTERRUPT ENABLE P~OGRESS ;- 000164 1 000164 1 121627 000170 1 001012 000172 1 000172 1 005067 000176 1 IFB (SP) EQ #<XON> THEN 000021 SNE (SP),#<XON> 50004$ CLR KB.XFLAG CMPB LET KB.XFLAG '- #0 177602 IF MD.BSY NE #0 THEN KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 18:43 KBDRV.MAC 22-AUG-78 08:11 K8INT - ROUTINE KBINT (6) (9) 748 (6) 749 (4) 750 (2) 751 (4) 752 753 754 755 756 757 758 (6) (9) 759 (2) 760 (2 ) 761 (2 ) 762 (2 ) 763 (4 ) 764 (4) 765 (3) (4 ) '( 3) (3) 766 (4) 767 768 769 770 771 (6 ) (8) (6) (9) (6) 772 773 774 775 776 777 (6 ) (9) 000176' 000202' 000204' 000204' 000212' 000212' 000212' 000212' 000216' 000216' 000216' 000216' 000222' 000224' 000224' 000230' 000230' 000234' 000234' 000236' 000236' 000236' 000236' 000242' 000242' 000246' 000246' 000250' 000254' 000260' 000262' 000262' 000262' 000262' 000266' 000270' 000274' 000276' 005767 001403 OOOOOOG 052777 000100 PAGE 24-1 SEQ 1065 LET @XCSR .- @XCSR SET.BY #<IE> OOOOOOG TST BEQ MD.BSY 50005$ 8IS #<IE>,@XCSR ENDIF 50005$: INLINE <JMP 2$> 000167 JMP 2$ 000374 ENDIF 50004$: ;+ ; IF THE CHARACTER JUST ENTERED IS A CONTROL-C, THEN RAISE THE ; PRIORITY TO 7, SWITCH TO MONITOR STACKS AND DISPATCH ; CONTROL TO PROCESS ~CONTROL C~ ROUTINE. ;IFB (SP) EO #<CTRLC> THEN 121627 001017 000003 012746 000340 012746 000236' PUSH #PRI7 CMPB BNE (SP)t#<CTRLC> 50006$ MOV #PRI7,-(SP) MOV #1$,-(SP) PUSH #1$ INLINE <RTI> RTI 000002 INLINE <1$:> 1 $: LET R5 .- DX.R5 016705 OOOOOOG MOV DX.RS,R5 MOV DX.SP,SP MOV MOV JSR MOV R5,-(SP) #DTABLE,-(R5) PC,PCTRLC (SP)+,R5 LET SP "- DX.SP 016706 OOOOOOG 010546 012745 004767 012605 OOOOOOG OOOOOOG CALL PCTRLC IN <NOTABLE> ENDIF 121627 001403 121627 001006 000015 000012 ;+ ; IF THE CHARACTER JUST ENTERED IS A CARRIAGE RETURN OR A LINE FEED, THEN ;IFB (SP) EQ #<CR> ORB (SP) EQ #<IF> THEN CMPB (SP),#<C~> BEQ 50007$ CMPS (SP),#<LF> BNE 5001"0$ ei0007$ : j+ ; IF THERE HAVE BEEN RUBOUTS, THEN LOAD THE BUFFER WITH RUBOUT CHARACTER ; AND UPDATE INPUT BUFFER POINTER 000276' 000276' 005767 000302' 001402 IF KB.RBF NE #0 THEN 177506 TST SEQ KB.RBF 50011$ KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 18:43 KBDRV.MAC 22-AUG-78 08:11 KBINT - ROUTINE KBINT 778 (2 ) 779 (4) 780 781 782 783 7B4 785 ( 2) 786 (4) 787 788 789 790 791 792 793 (6) (9) 794 (6 ) (9) 795 ,( 2) 796 (4 ) 797 798 ;799 '800 801 802 (2 ) 803 804 805 806 807 808 (2 ) 809 (4) 810 811 812 813 814 815 (6) (9) 816 , (6) (9) 000304' , 000304 ' 004767 000310' 000310 ' PAGE 24-2 SEO 1066 IN LINE <JSR PC,22222$> JSR PC,22222$ 000432 ENDIF 5,0011$: ;+ ; GO LOAD BUFFER , 0- INLlNE <BR 000310' 000310' 000546 000312 ' 000312 ' 1 11 1 1 $> ENOl F B~ 11111$ CMP8 BNE (SP),#<CTRLU> 50012$ TST BEQ KB.RBF 50013$ :;0010$: ;+ ; IF THE CHARACTER IS A CONTROL-U t THEN SAVE IT IN THE ; INPUT BUFFER, DEFER SERVICING AND THEN SET THE KEYBOARD FLAG. 000312 ' 000312' 000316 ' 000320 1 000320 ' 000324 ' 000326' 000326 ' 000332 1 000332 ' IFB (SP) EO #<CTRLU> THEN 121627 001010 000025 005767 001402 177464 004767 000410 IF KB.RBF NE #0 THEN INLINE <JSR PC,22222$> JSR PC,22222$ ENDIF ~;0013S : ;+ ; GO LOAD UP INPUT CHARACTER INTO BUFFER ;- 000332' 000332 ' 004767 INLINE <JSR PC,33333$> JSR PC,33333$ 000430 ;+ ; NOW LOAD UP <CR~ AND <LF> AND LEAVE ;- INLINE <BR 11111$> 000336' 000336 ' 000533 000340 ' 000340 ' BR 11 111 $ ENDIF , ~50012$: ;+ ; IF THE CHARACTER IS A CONTROL-O THEN SIMPLY TOGGLE THE ; ENABLE/DISABLE rLAG AND UPDATE THE STACK , 0- 000340 1 000340 ' 000344 ' 000346' 000346 i 000352 ' IFB (SP) EO #<CTRLO> THEN 121627 001011 000017 005767 001403 OOOOOOG BNE (SP) ,#<CTRLO> 50()14$ TST SEQ CTHLOF 50015$ CMPB IF CTRLOF NE #0 THEN KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 18:43 KBDRV.MAC 22-AUG-78 08:11 KBINT - ROUTINE KBINT 817 (4) 818 (4 ) (3) 819 (6) 820 (4) 821 (4 ) (3) 822 823 824 825 826 (6) (9) 827 828 829 830 831 832 (6) (9) 833 (6) (8) (6) ( 9) (6) 834 835 836 837 (6) (9) 838 839 840 841 842 843 844 (6 ) 845 (2 ) 846 (4 ) (6) 847 (4) 848 849 000354 1 000354 1 000360 1 000360 1 000362 1 000362 1 000362 1 000366' 000366' 000366' 000366' 000370' PAGE 24-3 SEQ 1067 LET CTRlOF := #0 005067 OOOOOOG CLR CTRlOF BR 50016$ INC CTRlOF BR 50017$ CMPB BNE (SP),#<RUBOUT> 50020$ CMP K B • IN P , K B • K BBU F ELSE 000402 50015$: LET CTRlOF '- CTRlOF + #1 005267 OOOOOOG ENDIF 50016$: ELSE 000511 50014$: ;+ ; IF THE CHARACTER IS A RUBOUT, DO THE NECESSARY ;- 000370' 000370' 121627 000374' 001075 STUFF IFB (SP) EO #<RUBOUT> THEN 000177 ;+ ; MAKE SURE THERE ARE CHARACTERS TO RUBOUTI 1 I!! 11 I! ;- 000376' 000376' 000404' 000406' 000406' 000412' 000414' 000422' 000424' IF KB.INP GT KB.KBBUF THEN 026767 003465 177402 005767 001404 026767 002456 177376 177366 177412 BLE IF KB.RBF EO #0 OR Ka.RBP GE KB.KBBUFF THEN TST CMP BlT KB.RBF 50022$ KB.RBP,KB.KBBUFF 50023$ TST BNE KB.RBF 50024$ BEQ 177374 50021$ :i0022$ : ;+ ; IS IT THE FIRST RUBOUT? ,' 000424' 000424' 005767 000430' 001012 IF KB.RBF EO #0 THEN 177360 ;+ ; FOR THE FIRST RUBOUT, SET UP THE RUBOUT FLAG ; AND RUBOUT POINTER, AND STORE THE RUBOUT CHAR ; IN THE INPUT BUFFER ,' - 000432' 000432' 000436' 000436' 000442' 000442' 000450' 000456' 000456 1 005267 177352 004767 000324 016767 162767 177336 000002 LET KB.RBF := KB.RBF + #1 KB.RBF INC INLINE <JSR PC,33333$> d SR PC, 333~l3$ lET KB.RBP := KB.INP - #2 MOV KB.INP,KB.RBP SUB #2,KB.RBP 177336 177330 ENDIF ~50024$ : ;+ KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 18:43 KBDRV.MAC 22-AUG-78 08:11 KBINT - ROUTINE KBINT 850 851 852 853 854 .(4) 855 (6 ) (9) 856 (6) 857 (4) 858 (6) 859 860 (6 ) (9) 861 (4) 862 (3) 863 (6) 864 (6) 865 (3 ) . (6) 866 (3) 867 (6) 868 (6) 869 (3 ) (6) 870 (4 ) 871 872 (2 ) 873 874 (4) 875 (4) 876 877 878 879 (2) BBO (2) PAGE 24-4 SEQ 1068 ; DELETE THE EXISTING CHARACTER, BACK UP THE RUBOUT POINTER, AND IF ; THERE ARE ANY PREVIOUSLy RUBBED OUT CHARACTERS IN THE BUFFER, ; MOVE THE RUBOUT POINTER PAST THEM. 000456' 000456' 000464' 000464' 000472' 000474' 000474' 000500' 000500' 000500' 000500' 000504' 000504' 000512 1 000514' 000514' 000520' 000520 1 000520' 000520' 000524' 000524' 000530 1 000530 1 000536' 000540 1 000540 1 000540 1 000540 1 000544 1 000544 1 000550' 000550 1 000554' 000556 1 000556' LET @KB.INP :B= @KB.RBP 117777 177324 177320 026767 002002 177314 177322 005267 177304 MOVB @KB.RBP,@KB.INP CMP BGE LET K8.INP '- KB.INP + #1 KB.INP,KB.HIKB 50025$ IF KB.INP LT KB.HIKB THEN HJC KB. IN P DEC KB. RBP CMPB BNE @KB.RBP,NRUBOUT 50026$ CLR KB.CN!' ENDIF 50025$: LET KB.RBP := KB.RBP - #1 005367 177302 127727 001021 177276 005067 177262 IFB @KB.RBP LET KB.CNT := #0 005367 177262 005267 177252 127727 001370 177252 005367 177242 005367 177232 005767 001371 177226 REPEAT ~i0027$ : LET KB.RBP '- KB.RBP - #1 DEC KB.RBP LET KB.CNT := KB.CNT + #1 INC KB.CNl UNTILB @K8.RBP EO #RUBOUT CMPB @KB.RBP,#RUBOUT BNE 50027$ REPEAT ~;0030~; : LET KB.RBP .- KB.RBP - #1 DEC KB.RBP LET KB.CNT .- KB.eNT - #1 DEC KB.CN" UNTIL KB.eNT EQ #0 TST KB.CNT BNE 50030$ 000177 ENDIF !S0026$ : 1 NLINE <BR 2$> 000556 1 000556' 000415 BR 2$ ENDIF 000560' 000560' 000560 1 000560' S0023$: ENDIF ~50021$: + 000560' 000560 1 004767 000564' 000564' 000420 EO #RUBOUT THEN 000177 000202 THERE AREN'T ANY CHARACTERS TO RUBOUT, STORE A RUBOUT AND LOAD CRLF NOTE: THE LAST ENTRY IN KEYBOARD BUFFER IS OVERWRITTEN BY A <CR> IN LINE <JSR PC,33333$> JSR PC,33333$ INLINE <8R 11111$> 8R 11111$ KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 18:43 KBDRV.MAC 22-AUG-78 08:11 KBINT - ROUTINE KBINT 881 882 (4 ) (3 ) 883 884 885 886 887 888 889 (6 ) (9 ) 890 (4) 891 (2) 892 (4) 893 894 895 896 897 898 899 900 (2 ) 901 (4) 902 (4 ) 903 904 905 906 907 (2) 908 (6) 909 (4) 910 (3) (3) (2) 911 912 913 914 915 916 917 918 919 (2) PAGE 24-5 SEQ 1069 ELSe: 000566' 000566' 000411 000570' SR 50031$ Ei0020$ : ;+ ; IF IT IS NOT THE FIRST RUBOUT CHARACTER THEN CLEAR THE RUBOUT FLAG ; AND LOAD RUBOUT CHARACTER INTO BUFFER 000570' 000570' 000574' 000576' 000576' 000602' 000602' 000606' 000606' IF KB.RBF NE #0 THEN 005767 001404 177214 005067 177206 004767 000134 TST BEQ KB.RBF 50032$ CLR KB.RBF LET KB.RBF := #0 INLINE <JSR PC,22222$> J5R PC,:22222$ ENDIF 5i0032$ : ;+ ; IT IS NOT THE FIRST NONRUBOUT CHAR, SO SIMPLY ; STORE THE CHAR IN THE INFUT BUFFER, UPDATE THE ; POINTER AND DO A NICE CLEAN RETURN ;- 000606' 000606' 004767 000612' 000612' 000612' 000612' IN LINE <JSR PC,33333$> JSR PC,:33333$ 000154 ENDIF Ei003l$ : ENDIF Ei0017$ : ;+ ; ENABLE INTERRUPTS AND RETURN 000612' 000612' 000612' 000612' 062706 000616' 000616' 012777 000624' 000624' 000624' 000624' 000002 INLINE <2$:> 2$: LET SP .- 5P + #2 000002 000100 ADD #2,SP MOV #<IE>,@RCSR LET @RCSR '- #<IE> OOOOOOG ENDRTI EiOOOOli: 5i0001$: RTI ;-tt LINE TERMINATOR EXIT ; EITHER A <CR> OR <LF> TERMINATOR, OR A CONTROL-U HAS BEEN RECEIVED; SET THE Fl.AG ; AND LOAD <CR> AND < LF> HITO BU F FER, ALONG 11,11 TH UPDA TING STACK 000626' 000626' INLINE <11111$:> 11111$: 20-SEP-78 1B:43 KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) KBINT - ROUTINE KBINT 22-AUG-78 08:11 KBDRV.MAC 920 (4) 921 (2) (3 ) 922 (6) .( 9) 923 (4) 924 (4) 925 (4 ) (3) 926 (4) 927 ( 4) 928 (4) 929 (4 ) 930 (6 ) (9) 931 (6) 932 (4 ) 933 (4 ) 934 (6) (9 ) 935 (6 ) '936 (4) 937 938 939 940 941 942 (2 ) (3) 943 (2) 944 (2 ) 945 946 947 948 949 000626' 000626' 000634' 000634' 000636' 000640' 000640' 000646' 000650' 000650' 000654' 000654' 000660' 000660' 000662' 000662' 000662' 000666' 000666' 000672' 000672' 000672' 000672' 000676' 000676' 000704' 000706' 000706' 000712' 000712' 000712' 000712' 000716' 000716' 000724' 000726' 000726' 000732' 000732' SEQ 1070 LET DX.KFL : = #1 012767 000001 OOOOOOG PUSH RO,R1 010046 010146 IF 4(SP) EO #<LF> THEN 026627 001005 000004 012700 000012 01 2701 000012 LET RO · - li<LF> LET R1 · - #<CR> 000015 ELSE 000404 MOV #1,DX.KFL MOV MOV RO,-(SP) R1,-(SP) CMP BNE 4(SP),#<LF> 50033$ MOV #<LF>.RO MOV #<CR>,R1 BR 50034$ MOV #<CR>,RO MOV #<LF>,R1 MOVB RO,@lKB.INP CMP BGE KB.INP,KB.HIKB 50035$ INC KB. IN P MOVB R1,@KEI.INP CMP BGE KB.INP,KB.HU(B 50036$ INC KB.INP 50033$: 012700 000015 012701 000012 LEI RO · - #<CR> LET R1 .- #<LF> ENDIF 50034$: LET @lKB.INP :B= RO 110077 177106 026767 002002 177102 005267 177072 IF KB. INP LT KB.HIKB THEN 177110 LET KB. INP := KB.INP + 111 ENDIF !:;i0035$ : LET @KB.INP : B= R1 110177 177066 026767 002002 177062 005267 177052 IF KB.INP LT KB.HIKB THEN 177070 LET KB.INP := KB.INP + #1 ENDIF + 000732' 000732' 000734' 000736' 000736' 000740' 000740' PAGE 24-6 NOW CLEAN UP STACK, RESTORING REGISTERS AND REMOVING INPUT CHARACTER. POP R1 t RO 012601 012600 INLXNE <TST (SP)+> 005726 ~)0036$ : INLINE <RTI> 000002 + LOAD RUBOUT INTO BUFFER AND UPDATE POINTER MOV MOV (SP)+,.R1 (SP)+"RO TST (SP)+ RTI KBDRV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-S!:P-78 18:43 KBINT - ROUTINE KBINT 22-AUG-78 08:11 KBDRV.MAC 950 951 (2 ) 952 (4) 953 (6) (9) 954 {6 ) 955 (4) 956 (2) 957 958 959 960 961 962 (2 ) 963 (4) 964 (6) (9) 965 (6 ) 966 (4 ) 967 (2) 968 000742 1 000742 1 000742 1 000742 1 000750 1 000750 1 000756 1 000760 1 000760 1 000764 1 000764 1 000764 1 000764 1 PAGE 24-7 SEQ 1071 INLINE <22222$:> 22222$: LET @KB.INP :6= #<RUBOUT> 11 2777 000177 026767 002002 177030 005267 177020 177034 MOVB #<RUBOUT>,@lKB.IN CMP BGE KB.INP,K8.HIK6 50037$ INC KB.INP IF KB.INP LT KB.HIKB THEN 177036 LET KB.INP := KB.INP + #1 ENDIF 500375): INLlNE <RTS PC> RTS PC 000207 + LOAD CHARACTER INTO BUFFER 000766 1 000766 1 000766 1 000766 1 000774 1 000774 1 001002 1 001004 1 001004 1 001010' 001010' 001010' 001010 1 INLI NE <33333$:> 33333$: LET @lKB.INP :B= 2(SP) 116677 000002 177010 026767 002002 177004 177012 005267 176774 IF K.6. INP LT KB.HIKB THEN MOV6 2(SP) .@lKB. INP CMP BGE KB.INP,KB.HIKB 50040$ INC KB. INP LET KB. INP := KB.INP + #1 ENDIF 50040$: INLINE <RTS PC> 000207 000001 RTS PC .END - 20-SEP-78 KEYBOARD DRIVER ROUTINE MACY11 30A(1052) KBDRV SYMBOL TABLE 22-AUG-7S 08:11 KBDRV.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO· 000010 AUTOST= 020000 000110 AWAS BITO ,000001 000001 BITOO BIT01 = 000002 BIT02 000004 BIT03 ::::: 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 ::: 000200 BITOS 000400 BIT09 001000 BIT1 000002 0'02000 BIT1C BI T11 004000 BIT12 010000 BIT13 020000 BIT14 040000 BIT15 100000 BIT2 000004 BIT3 000010 BIT4 000020 BIT5 000040 BIT6000100 BIT7 000200 BITS 000400 BIT9 . 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 CR 000015 CSRA 000100 CSRC 000102 000003 CTRLC 000017 CTRLO CTRLOF= ****** G CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 000000 DTA DTABLE= ***'*** G DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 DX.KFL= ****** G DX.R5 ****** G DX.SP ::: ****** G 18:43 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE::::: 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDP'AS= 000050 ICONT = 000036 ICOUNT=-= 000040 IDNUM = 000122 000100 IE INDPAR:= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 ,00000 IOMOD IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 KBINI 000020RG KBINT 000106RG KB.CNT 000002R KB.HIK 000014R KB.INP 000004F:G KB.KBB 0000 16F~ KB.KBS 0OO012F< KB.RBF 000010RG KB.RBP 000006RG KB.XFL OOOOOORG KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO:.: 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 PAGE 25 SEQ 1072 KI PDR4~: 172310 KI PDR5:: 172312 KI PDR6:: 172314 KIPDR7:;; 172316 KTERRO:: 000040 KTPRES::: 000400 KTSTAT:: 000020 KTXTND:: 040000 000012 LF LPSTAT::: 000001 MAPST A::: 000200 M.D. BSY:= ***'1'** G MED 076600 MEMPAS= 040000 MODEXH:= 004000 MODi10L= 002000 MODSEL= 001000 MSGCKD= 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= 000014 MSGSMS::: 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL OV.HIK= ****** G OV.KBS= ****** G OV.KBS= ****** G 024020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA.= 000100 PASCNT= 000034 PCTRLC= ****** G PDPLSI= 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 ::: 000340 17777Ei 177776 PS~~ RANNUM= 000054 RBUF ****** G .RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RCSR * * * *.* *' G RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 000055 RES1 000060 RES2 RICHAR= 031060 RPTDAT= 002000 f~STRT = 00011~~ fWBOUT= 000177 RUNMOD= 100000 R5VALU= 00174() 075464 SAM S8ADR = 00010~~ SBKMOD= 000000 SBKSEL= 010000 SC.ADR= OOOOOG SC.ALC= 000014 SC.APC= 00001(3 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 17777'7 SOFCNT= 000042 SOFPAS= 00OO4l3 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 PDP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 , PRI7 PRO PR4 PR5 PR6 PR7 PS KBORV - KEYBOARD DRIVER ROUTINE MACY11 30A(1052) 20-SEP-78 KBORV.MAC 22-AUG-78 08:11 SYMBOL TABLE UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UI.POR2= 177604 UIPOR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPOR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR WOTO = 000114 WTINRE= 000352 WTWHMI= 000222 XCSR ****** G XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 SRO 177572 177574 SR1 SR2 177576 SR3 172516 STAT 000026 STATBI= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 SVR1 000064 SVR2 000066 SVR3 000070 SVR4 000072 SVRS 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO;" 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 ASS. 000000 001012 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 OSKZ:KBORV.OSKZ:KBDRV=SPMAC!ML,EQUATE,KBDRV RUN-TIME: 24 15 .4 SECONDS RUN-TIME RATIO: 60/39=1.5 14K (27 PAGES) CORE USED: 18:43 $ERFLG= 000400 $F$AND= 000310 $F$BAO= Q00401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 .$F$5EL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES= 000402 $IFLEV= 177777 $ISKO :: 000001 PAGE 25-1 SEQ 1073 000001 $ISK1 000001 $ISK2 000001 $ISK3 000001 $ISK4 $LOCTA= 177777 $LSTIN= 000001 $LSTTA= 000001 $NESTL= 177777 $NSKO 000110 $NSK1 000110 000110 $NSK2 000110 $NSK3 000110 $NSK4 000110 $N5K5 000130 $N5K6 $SAVLE= 177777 $SSKO = 050003 $TAGLE= 177777 $TAGNU= 050041 050040 $TEMP 050040 $TSKO 050031 $TSK1 050032 $TSK2 050023 $TSK3 050026 $TSK4 $TSK5 = 050030 $$ARGC= 000000 $$BYTE= 000403 $$CASE= 000000 $$D5T = 000000 $$ELOC:: 000402 $SERFL= 000000 $$FLAG= 000001 $$FROM::: OOQOOO $$LOC ::: 00 1 0021~ $$LOCN::: 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000001 $$$TAG= 050000 001012R .MAIN. MACV11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP~78 16:13 3 509 535 540 542 582 636 668 716 18:44 TABLE OF CONTENTS COMMON EQUATE MODULE LPDRV STRUCTURED HEADER COVER SHEET MACRO-SPMAC ROUTINE (INTERRUPT SERVICE ROUTINE) COMMON DEFINITIONS AND REFERENCES 000000· .PRINT jSPMAC: VERSION 1.1 LPINI (LINE PRINTER INITIATOR MODULE) LPINI (CODE) LPINT (LINE PRINTER INTERRUPT HANDLER) LPINT (CODE) SEQ 1074 LPDRV (LINE PRINTER OUTPUT DRIVER MODULE) MACY11 30A(1052) 20-SEP-78 LPDRV.MAC 28-JUL-78 09:29 LPDRV STRUCTURED HEADER COVER SHEET 18:44 PAGE 19 SEQ 1075 511 512 ?13 .TITLE LPDRV (LINE PRINTER OUTPUT DRIVER MODULE) .IDENT JVO.Oj 514 ;++ 515 516 $17 MODULE NAME: LP 518 1519 520 521 522 523 524 525 FUNCTIONAL DESCRIPTION: THIS MODULE CONTAI~S TWO MODULES - LPINl AND LPINT. THE LPINI IS THE INITIALIZATION ROUTINE FOR THE OUTPUT INTERRUPT HANDLING ROUTINE - LPINT. LPINT ACTUALLY PROCESSES ALL MESSAGES TO THE DEVICE. 526 VERSION: A DESCRIPTION IS GIVEN IN EACH MODULE. 527 528 '529 0.0 EDIT i530 '531 532 533 ;-- DATE BY REASON LPDRV (LINE PRINTER OUTPUT DRIVER MODULE) MACY11 30A(1052) 20-SEP-78 LPDRV.MAC 28-JUL-78 09:29 COMMON DEFINITIONS AND REFERENCES 542 000000 1 546 547 548 549 550' 551 552 553 554 ,555 p56 000045 557 000134 558 559 ~60 561 662 563 1564 :565 !S66 567 568 :569 ;570 i571 ;572 !57'3 '574 :575 :576 577 578 000000 1 000002 1 000004 1 000006' 000010 1 000012 1 000014 1 000016' 000016 1 000017 1 000020 1 000021' 000022 1 000023 1 000024 1 000025' 000000 000000 000000 000000 000000 000000 000000 000 000 015 012 001 136 125 001 .PRINT 18:44 PAGE 20 ;SPMAC: VERSION 1.1 ;**************** *~**************************** ;**************** ****************************** ;**************** ****************************** LP.PCNT = LP.BKSLSH ;CHARACTER ;CHARACTER - ; .GLOBL LPCSR .GLOBL LPBUF .GLOBL CTRLOF , .GLOBL LPINT .GLOBL LPINI GLOBAL REFERENCES ;DEVICE REGISTER CONTROL & STATUS ;DEVICE REGISTER DATA BUFFER ;FLAG - OUTPUT SUPPRESS REFERENCED BY OTHER MODULES ;MODULE ENTRY POINT - LP HANDLER ;MODULE ENTRY POINT - LP INITIATOR LOCAL EQUATES 45 134 ;**************** , LP.FCH: LP.PFC: LP.FCF: LP.EXT: LP.PTR: LP .rp: LP.COD: LP.FLG: LP.PCF: LP.CUF: LP.PCB: LOCAL STORAGE 0 0 0 0 0 0 0 .BYTE .BYTE .BYTE .BYTE .BYTE LP.CUB: .BYTE .ByrE LP.BEN: .BYTe:: • EVEN 0 0 15 12 1 136 125 1 1%1 PERCENT 1\' BACKS LASH ****************************** ;CHARACTER ;COUNT :COUNT, FLAG ;POINTER ;POINTER ;POINTER ;CODE :FLAGS ;FLAG ;FLAG ;+BUFFER ;+BUFFER ;+BUFFER ;#BUFFER ;/IBUFFER ;#BUFFER ;FLAG - FILL FILL, PERMANENT FILL (FLAG SET NE 0) LOCATION TO JUMP OUT INDIRECTL.Y ME.SSAGE TEMPORARY BUFFER MESSAGE PERCENT AND CONTROL-U PERCENT CorHROL-Li PERCENT 1%1 <CR>+ <LF>+ ECHO <+1>+ TERM HIA TCl!( <A># CONTROL-LJ <U># ECHO <+1># TERMINATOR (LP.BEN) END SPECIAL BUFFEf;t SEQ 1076 LPDRV (LINE PRINTER OUTPUT DRIVER MODULE) MACY11 30A(1052) 20-SEP-78 18:44 LPDRV.MAC 28-JUL-78 09:29 LPINI (LINE PRINTER INITIATOR MODULE) PAGE 21 584 585 586 587 588 589 590 591 :592 i593 :594 1595 1596 i597 598 :599 i600 [601 :602 ,603 ;604 1605 !606 :607 ,608 '609 610 :611 :612 ;613 614 ;615 616 617 618 619 :620 ,621 1622 :623 ;++ MODULE NAME: LPINl FUNCTIONAL DESCRIPTION: THE DEVICE OUTPUT STARTER MODULE (LPINI) SETS UP FOR THE DEVICE OUTPUT INTERRUPT HANDLING MODULE (LPINT). INPUTS: 1. DATA TABLE ADDRESS 2. MESSAGE ADDRESS 3. MESSAGE TYPE CODE 4. RETURN ADDRESS (DRIVER WILL JUMP TO AT END OF MESSAGE). IMPLICIT INPUTS: 1. FILL CHARACTER 2. FILL COUNT OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL LPINI IN <DTADDR,TYPCOD,MSGADR,RETADR> ADDRESS OF DATA TABLE WHERE DTADDR TYPE CODE TYPCOD ADDRESS OF MESSAGE MSGADR RETADR ::: RETURN ADDRESS THE DRIVER WILL JUMP TO AT THE COMPLETION OF THE MESSAGE. ;624 625 ;626 :627 VERSION: 0.0 628 629 630 631 '632 EDIT , '-- DATE BY REASON SEQ 1077 LPDRV (LINE PRINTER OUTPUT DRIVER MODULE) MACY11 30A(1052) LPDRV.MAC 28-JUL-78 09:29 LPINI (CODE) 638 639 640 641 642 643 644 645 646 (2 ) 647 (2 ) 648 (4) 649 ,(4) 650 (4) 651 :( 4) 652 :( 4) 653 ,( 4) 654 (2 ) 655 656 18:44 PAGE 22 SEQ 1078 ;+ INITIALIZE MESSAGE TYPE, MESSAGE ; ADDRESS, FILL COUNT, AND FILL CHARACTER. ; STUFF RETURN ADDRESS AT LP.EXT, ; ENABLE INTERRUPTS AND RETURN. ;000026 1 000026 1 000026 1 000026 1 000030 1 000030 1 000034 1 000034 1 000042 1 000042' 000050 1 000050' 000056 1 000056' 000064' 000064' 000072 1 000072' ROUTINE LPINI <DTBL,MSGCOD,MSGADR,RETADR> LPINI: PUSH RO 010046 LET RO := DTBL(R5) 016500 000000 116067 000037 116067 000036 177736 LET LP.PFC :B= DT.FCN(RO) 016567 000002 016567 000004 177732 000006 RO,-(SP) MOV DTBL(R5),RO MOVB DT.FCH(RO),LP.FC MOVB DT.FCN(RO),I.P,PF MOV MSGCOD(R5),LP.CO MOV MSGADR(R5),LP.PT MOV RETADR(R5),LP.EX MOV (SP)+,RO BIC #IE,@L.PCSR BIS #IE,@lL.PCSR RTS PC MSGCOD(R5) LET LP.COD != LET LP.PTR .- MSGADR(R5) 177736 177724 LET LP.EXT 016567 MOV LET LP.FCH :8= DT.FCH(RO) 9_ RETADR(R5) 177714 POP RO 012600 ;+ ; NOW FIRST CLEAR INTERRUPTS IN CASE THEY WERE STILL ENABLED (BY ; THE LINE PRINTER OPTION MODULE OR SOME OTHER THING p57 658 659 :660 :661 ·662 (6) ;663 :( 6) ;664 '( 3) !(3) :( 2) 20-SEP-78 ,' - 000074' 000074' 042777 000102 1 000102 1 052777 000110' 000110' 000110 1 000110' 000207 ·- @LPCSR CLR.ElY #IE LET @LPCSR ·- @lLPCSR SET.BY #IE LET @LPCSR 000100 OOOOOOG 000100 OOOOOOG ENDRTN !::tOOOO$ : :;0001$: LPDkv (LINE PRINTER OUTPUT DRIVER MODULE) MACY11 30A(1052) 20-SEP-78 18:44 LPDkv.MAC 28-JUL-78 09:29 LPINT (LINE PRINTER INTERRUPT HANDLER) PAGE 23 E>70 671 672 ~73 674 ~75 076 ;++ MODULE NAME: LPINT FUNCTIONAL DESCRIPTION: THIS MODULE HANDLES ALL OUTPUT MESSAGES TO THE DEVICE. 677 THERE ARE TWO KINDS OF MESSAGES : (1) STANDARD (ERROR MSG, PROMPT MSG, ETC.) (2) NON-STANDARD (ECHOING OF INPUT STRINGS, ETC.) ~78 679 ~80 681 ,683 INPUTS: NONE p86 IMPLICIT INPUTS: NONE 682 84 ~ 85 687 688 ~~~ OUTPUTS: NONE. IMPLICIT OUTPUTS: NONE 694 PATHOLOGICAL CONNECTIONS: CONTROL-O FLAG ~89 I 692 ~93 1695 1696 :S97 698 i 169 9 !700 701 j702 1 SUBORDINATE ROUTINES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: 703 i ,704 j705 7C6 i707 :708 :709 THE ROUTINE IS ENTERED VIA HARDWARE INTERRUPT VERSION: 1 0.0 EDIT ;710 :711 :712 ;-- DATE BY REASON SEQ 1079 LPDAv (LINE PRINTER OUTPUT DRIVER MODULE) MACY11 30A(1052) LPDRV,MAC 28-JUL-78 09:29 LPINT (CODE) 718 (2 ) I( 6) ;DISABLE INTERRUPTS, , '- 000112 1 000112 1 042777 LET @LPCSR := @LPCSR CLR.BY HIE 000100 OOOOOOG ~24 ~28 ~29 ~31 I( 4) ~32 !( 6) !733 !( 4) !( 3) 1734 1735 !736 1737 1738 i739 1740 ,( 9) 6) I( I(9) 1741 I (4) 1742 1(4 ) 743 1 : (4) 1744 1745 1746 1747 748 1749 1750 1(6 'J i , 1751 (6) I (9) 1 1752 ! (2) ;753 TST BEQ LP.FCF 50002$ MOVO #NULL,@LPBUF DEC LP.FCF BR 50003$ TST SEQ CMPB BNE LP.FLG 50004$ @LP.PTR,LP.BEN 50004$ CLR LP.FLG MOV LP.TP,LP.PTR CMPB BNE @LP.PTR,#NULL 50005SS CMP 8NE LP.COD,#MSGPOP 50006$ IS FILL COUNT-FLAG NOT EQUAL TO ZERO? TRUE OUTPUT THE FILLER-CHARACTER DECREMENT FILL COUNT-FLAG SET INTERRUPTS, RETURN FALSE CONTINUE. IF LP.FCF NE #0 THEN 005767 001406 177660 112777 000000 LET @LPSUF :S~ #NULL OOOOOOG LET LP.FCF .- LP.FCF - #1 005367 177644 ELSE 000524 5,0002$ : i+ IS OUTPUT OF <AU> OR <%> BUFF~R COMPLETED ? ; TRUE RESET <AU> AND <%> FLAGS , RESTORE MESSAGE POINTER ; FALSE NO ACTION , 000142 1 000142 1 000146 1 000150 1 000156 1 000160 1 000160 1 000164 1 000164 1 000172 1 000172 1 iF LP.FLG NE #0 ANDB@lP.PTR EQ LP.BEN THEN 005767 001411 127767 001005 005067 177650 177634 177647 LET LP.FLG '- #0 177632 LET LP.PTR '- LP.TP 016767 177622 177616 ENDJ:F 50004$: ;+ ; IS INPUT CHARACTER A-NULL? ; TRUE THIS IS THE END OF THE MESSAGE , RETURN BY IJMP @LP.EXTI. ; FALSE NO ACTION ;IFB @LP.PTR EQ HNULL THEN 1 I (9) #IE,@LPCSR '- 000120 1 0001.20' 000124' 000126' 000126' 000134' 000134 1 000140 1 000140 1 000142 1 1 I( 6) BIC ;+ t725 &26 727 I( 9) SEQ 1080 LPINT: &23 730 Ie 6) PAGE 24 ;+ 719 72'0 721 ~22 18:44 LPINT IROUTINE 000112 1 000112 1 20-SEP-78 000172 1 000172 1 000200 1 000202 1 000202 1 000210' 000212 1 000212 1 000214 1 127727 001007 177612 000000 026727 001001 177606 000002 IF LP.COD EQ #MSGPOP THEN INLINE <CMP (SP)+,(SP)+> CMP (SP)+, (SP)+ 022626 ENDIF LPD~V (LINE PRINTER OUTPUT DRIVER MODULE) MACY11 30A(1052) LPDRV.MAC 28-JUL-78 09:29 LPINT (CODE) (4) 754 (2 ) 755 (4) 756 757 758 '759 760 t 6) (9) 761 762 763 1764 ~65 766 ~67 &68 I( 6) K9) t769 i( 4) 770 I( 4) 1< 6) 771 i< 4) 772 !( 4) 773 774 775 776 ~77 778 i( 6) !( 9) 779 i(4) 780 !( 4) !( 3) 781 (4 ) 782 (4) 783 :784 785 '786 787 :( 4) (3) 788 000214' 000214' 000214' 000177 000220' 000220' 20-SEP-78 18:44 PAGE 24-1 SEQ 1081 50006$~ INLINE <JMP @LP.EXT;LEAVE,FINISHED MESSAGE> JMP @LP.EXT;LEAVE,FINISH 177566 ENDIF 50005$: ;+ ; NON-STANDARD MESSAGE CODE HANDLING SPECIAL CONDITIONS- CONTROL U,RUBOUT , 000220' 000220' 005767 000224' 002033 IF LP.COD LT #0 THEN 177570 TST BGE LP.COD 50007$ CMPB BNE @LP.PTR,#CTRLU 50010$ Move #1,LP.CUF MOV INC LP.PTR,LP.TP LP.TP MOV #LP.CUB,LP.PTR CMPB BNE @LP.PTR,#RUBOUT 50011$ MOVB #LP.BKSLSH,@LPBU BR 50012$ MOVB @LP.PTR,@LPBUF 8R 50013$ ;+ IS INPUT CHARACTER IS A <AU> CONTROL U ? TRUE SET ~U-FLAG SAVE REST OF MESSAGE POINTER POINT TO AU-BUFFER FALSE NO ACTION 000226' 000226' 000234' 000236' 000236' 000244' 000244' 000252' 000256' 000256' 000264' 000264' ;IFB @LP.PTR EO #CTRLU THEN 127727 001013 177556 000025 112767 000001 177553 016767 005267 177540 177534 177540 012767 000023 ' 177524 LET LP.CUF :B= #1 000264' 000264' 127727 000272' 001004 000274' 000274 1 112777 000302 1 000302 1 000403 000304 1 0003041 000304 1 117777 000312 ' 000312 1 LET LP.TP '- LP.PTR + #1 LET LP.PTR := #LP.CUB ENDIF 50010$: ;+ ; IS INPUT CHARACTER IS A RUBOUT ? ; TRUE OUTPUT BACKS LASH ; FALSE OUTPUT CHARACTER ;IFB @LP.PTR EO #RUBOUT THEN 177520 000177 000134 OOOOOOG LET @LPBUF :B= #LP.BKSLSH ELSE 50011$: LET @LPBUF :B= @LP.PTR 177500 OOOOOOG ENDIF 50012$: ;+ ; STANDARD MESSAGE CODE HANDLING SPECIAL CONDITIONS- PERCENT,SURPRESS 000312 1 000312 1 000426 000314' , ELSE ;+ LPD~V (LINE PRINTER OUTPUT DRIVER MODULE) MACY11 30A(1052) LPDRV.MAC 2S-JUL-78 09:29 LPINT (CODE) 789 790 791 792 793 794 1795 ;( 6) :( 9) 1796 1< 4) 797 I( 4) !( 6) 79S !( 4) ~99 :( 4) 800 000314 1 000314 1 127727 000322' 001013 000324 1 000324 1 112767 000332 1 000332 1 016767 000340 1 005267 000344 1 000344 1 012767 0003521 000352' ', - I( 9) :S06 i( 4) :807 ;( 4) :SOS :(4) iS09 i810 IS11 iB12 813 i814 ! (6) : (9) i815 i (4) [816 i (4) i817 1818 :819 :820 :(6) :821 '(4) 822 823 824 825 826 1 PAGE 24-2 SEQ 1082 IS INPUT CHARACTER IS A <%> PERCENT ? SET %-FLAG TRUE SAVE REST OF MESSAGE POINTER POINT TO %--BLJ F FER NO ACTION FALSE - IFB @LP.PTR EQ #LP.PCNT THEN 177470 000045 000001 177464 177452 177446 177452 LET LP.PCF : B= #1 000020 1 177436 LET LP.TP . - LP.PTR + #1 LET LP.PTR .- HLP. PCB ENDIF CMPB BNE @lLP.PTR,#LP . PCNT 50014$ MOVB H1,LP.PCF MOV INC LP.PTR,LP.TP LP.TP MOV #LP.PCB,LP.PTR CMP SEQ CTRLOF,#1 50015$ MOVB @LP.PTR,@LPBUF CMPB BNE @lLP.PTR,LP.FCH 50016$ MOV LP.PFC,LP.FCF INC LP . PTf~ 50014$: ;+ ; IS MESSAGE SUR PRESS FLAG NDT SET ? OUTPUT CHARACTER ; TRUE NO ACTION ; FALSE ;IF CTRLOF NE H1 THEN 801 ~805 18:44 - - :S02 :S03 :804 !( 6) 20-SEP-78 000352' 000352 1 026727 000360 1 001403 000362' 000362 1 117777 000370' 000370' 000370 1 000370 1 OOOOOOG 000001 LET @lLPBUF :B= @LP.PTR 177422 OOOOOOG ENDIF 000406 1 000406 1 005267 000412 1 000412 1 - - IFB @LP.oTR EQ lP.FCH THEN 177414 177402 177376 177376 LET LP.FCF 000400' 000400' 016767 000406' 000406' :iOO13$: ;+ ; I c· INPUT CHARACTER THE "FILL-CHARACTER!! ? PRESET FILL COUNT-FLAG ; THUE t-!O ACTION ; FALSE ;,) 000370 1 000370' 127767 000376 1 001003 !:i0015$: ENDIF . - LP.PFC ENDIF E50 016$: ;+ ; INCREMENT MESSAGE CHARACTER POINTER ;LP.PTR + #1 LET LP.PTR .- 177376 ENDIF ;+ ;ENABLE I NTI~RRUPTS. BUT FIRST RAISE PRIORITY TO 4 ;- 000412' PuSH HPRI4 ~50003$ : LPDRV (LINE PRINTER OUTPUT DRIVER MODULE) MACY11 30A(1052) LPDRV.MAC 28-JUL-78 09:29 LPINT (CODE) 20-SE?-78 18:44 PAGE 24-3 SEQ 1083 ; i( 2) ~27 :( 2) a28 [( 2) B29 !( 2) B30 !( 6) 831 i( 3) i( 3) !( 2) 832 1 000412 1 000416 1 000416 1 000422 1 000422 1 000424 1 000424 1 000424 1 000424 1 000432 1 000432 1 000432 1 000432 1 012746 000200 012746 000424 1 PUSH #1000$ INLINE <RTD 000002 052777 000002 000001 000100 MOV #1000$,-(SP) 1000$: . - @lLPCSR SET.BY #IE BIS OOOOOOG ENDRTI #PRI4,-(SP) RTI INLINE <1000$:> LET @lLPCSR MOV 500005: 50001$: RTI .END #IE,@LPCSR MACY11 30A(1052) LPDRV ( LINE PRINTER OUTPUT DRIVER MODULE) SYMBOL TABLE 28-JUL-78 09:29 LPDfW.MAC ACS~ 000102 004000 001000 000006 000004 000200 000106 ASS~MB= 000010 ASTAT = 000104 000010 AUTD AUTbsT= 020000 000110 AWAS BITO 000001 BITK>O 000001 BIT01 000002 000004 BITP2 000010 B I Tl03 000020 BI T'04 000040 BI Ti05 000100 BI Ti06 BI T!07 000200 000400 BI Tl08 001000 BI T!09 000002 BI Ti1 BI Ti1 0 002000 BI Ti11 004000 010000 BIt12 BIf;13 020000 Blt14 040000 BIT15 100000 000004 BI~2 000010 BIT3 000020 BIT4 000040 BIr:5 000100 BI ~6· 000200 BI117 000400 BI~8 001000 BI~9 . BKOEF 000002 BKMOD 000020 BKMODE= 040000 BK~LSH= 000134 CAPRES= 000004 CASTAT= 000004 CDaRCT= 000146 CDIIJDCT= 000144 CKtIM = 100000 C U~PRE= 000001 CO~FIG= 000056 CQOVF 000001 000015 CRr 000100 CS~A 000102 CS~C ACTBIT= ADDR22:;:: ADRI APTfER= APTPRE= ASS! CTRLC ::: 000003 CTRLO = 000017 CTRLOF= ****** G CTRLU :::; 000025 DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 000000 DTBL DT.ADD= 000042 DT.AP = 000100 DT.APK:: 000076 DT.BlS= 000034 DT.CFO= 000014 DT.CF1='OOO016 DT.ERR= 000020 D1.ESI= 000044 DT.EVN:: 000000 DT.EXS= oe0060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 D1.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 D1. PT A= 000064 DT.Res= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 D1.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 20-SEP-78 ENDLST::: 000000 EOPBIT= 000001 ERRTYP::: 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT:: 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT = 000030 000120 INTR IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPBUF ****** G LPCSR = ****** G 000026RG LPINI 000112RG LPINT LPSTAT= 000001 18:44 PAGE 25 SEO 1084 LP.BEN 000025R LP.BKS:: 000134 LP.COD 000014R LP.CUB 000023R LP.CUF 000017R LP.EXT 000006R LP.FCF 00OO04R LP.FCH OOOOOOR LP.FlG 000016R LP.PCB 000020R LP.PCF . 000016R LP. PCN::: 000045 LP.PFC 000002R LP.PTR 0OO010R 0OO012R LP.TP MAPSTA:= 000200 076600 MED MEMPAS= 040000 MODEXH= 004000 MODI-iOL:= 002000 MODSEl= 001000 MSGADR= 000004 MSGCKD= 000010 MSGCKS= 000011 MSGCOD= 000002 MSGDER= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 MSGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUl= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES::: 000001 MSGSFT.= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP:: 000020 NOAPTY= 000002 000000 NULL 024020 OWEN 000010 PAERR PARPRE= 002000 PARSTA.= 000100 PASCNT= 000034 PiJPlSI= 020000 004000 PDP60 PDP70 = 010000 000000 PRIO 000040 PRI1 000200 PRI4 000240 PRI5 000300 PRI6 000340 PRI7 000000 PRO 000200 PR4 000240 PR5 000300 PR6 000340 PR7 177776. PS 177776 PSw RANNUM= 000054 RBUFEA= 0001301 RSUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 000056 RES1 OOOOGO RES2 RETADR= OOOQOE, RICHAR= 031060 RPTDAT:: 00200() RSTRT = 00011~! RUBOUT= 000177 RUNMOD= 100000 R5VAlU= 001740 on;464 SAM SBADR :: 000102 S8KMOD= 000000 SBKSE L= 010000 SC.ADR= OOOOOE) SC.ALC= 000014 SC.APC= 00OO1E) SC.CKL= 00000:2 SC.CKP= 000004 SC.CLO= OOOOOD SC.HlD= 000010 SC.SCA= 00001:2 SENDlS= 17777'7 SOFCNT= 000042 SOFPAS= 0000413 SPACE = 000040 SPOINT= 00003:2 LPDRV (LINE PRINTER OUTPUT DRIVER MODULE) MACY11 3uA(1052) LPDRV.MAC 28-JUL-78 09:29 SYMBOL TABLE UIPAR3= UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= WBUFEA= WBUFPA=, WBUFRQ= WBUFSZ= WDFR WDTO WTINRE= WTWHMI= SPVALU= 002200 SRO 177572 177574 SRi SR2 177576 SR3 = 172516 000026 STAT STATBI= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 000064 SVR1 000066 SVR~ 000070 SVR~ SVR4 000072 000074 SVR$ 000076 S VR 9 SYSCNT= 000052 SYS~RR·= 000100 TMP~O = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIP~R2= 177644 Abs. I 000000 000434 177646 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 000352 000222 000 001 i ! 0 ERRORS DETECTED: DEfAULT GLOBALS GENERATED: 0 DSKZ:LPDRV,DSKZ:LPDRV=SPMAC/ML,EQUATE,LPDRV RuN-TIME: 16 7 .4 SECONDS RUN-TIME RATIO: 40/24=1.6 14K (27 PAGES) COiRE USED: XFLAG = 000005 XOFF ::: 000023 XON = 000021 $8GNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 20-SEP-78 18:44 PAGE 25-1 $F$TRU= $F$UNT= $F$WHI= $F$YES= $IFLEV= $ISKO -, $ISK1 -, $ISK2 -, $ LOCT A=: $LSTIN=: $LSTTA= $NESTL:: $NSKO ,$NSK 1 .. $NSK2 .. $NSK3 :: $SAV LE=: $TAGLE:; $T AGNU:: $TEMP $TSKO $TSK1 $TSK2 000404 000130 000120 000402 177777 000001 000001 000001 177777 000001 000001 177777 000350 000110 000110 000110 177777 177777 050017 000350 050003 050016 050015 SEO 1085 $$ARGC= 000000 $$8YT£= 000402 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $SERFL= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000376R $$LOCN= 000000 177777 $$REG $$RETU= 000000 $$RTN1= 050000 $$fHN2= 050001 000000 $$SRC $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000434R = = .MAlN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 509 535 540 542 583 637 661 712 18:44 TABLE OF CONTENTS COMMON EQUATE MODULE TTDRV STRUCTURED HEADER COVER SHEET MACRO-SPMAC ROUTINE (INTERRUPT SERVICE ROUTINE) COMMON DEFINITIONS AND REFERENCES 000000' .PRINT jSPMAC: VERSION 1.1 TTINI (TERMINAL INITIATOR MODULE) TTINI (CODE) TTINT (TERMINAL INTERRUPT HANDLER) TTINT (CODE) SEQ 1086 TTDRV (TERMINAL DRIVER MODULE) TTDRV.MAC 22-AUG-78 08:18 511 512 513 514 515 :516 517 518 519 '520 '521 :522 MACY11 30A(1052) 20-SEP-78 18:44 PAGE 19 TTDRV STRUCTURED HEADER CaVER SHEET .TITLE TTDRV (TERMINAL .IDENT IVO.OI SEQ 1087 DRIVER MODULE) ;++ MODULE NAME: TTDRV FUNCTIONAL DESCRIPTION: THIS MODULE CONTAINS TWO MODULES - TTINI AND TTINT. THE TTINI IS THE INITIALIZATION ROUTINE FOR THE TERMINAL INTERRUPT HANDLING ROUTINE - TTINT. TTINT ACTUALLY PROCESSES ALL MESSAGES TO THE DEVICE. :523 A DESCRIPTION IS GIVEN IN EACH MODULE. 524 525 526 VERSION: ;527 0.0 :528 ;529 EDIT '530 531 :532 533 ... , - DATE BY REASON TTDRV (TERMINAL DRIVER MODULE) TTDRV.MAC 22-AUG-78 08:18 542 546 547 548 549 550 551 552 MACY11 30A(1052) 20-SEP-78 18:44 COMMON DEFINITIONS AND REFERENCES .PRINT 000000 1 PAGE 20 SEQ 10B8 jSPMAC: VERSION 1.1 ;**************** ****************************** ;**************** ****************************** , GLOBAL REFERENCES CONTROL & STATUS ;DEVICE REGISTER .GLOBL XCSR DATA BUFFER ;DEVICE REGISTER .GLOBL XBUF ;XOFF FLAG WORD .GLOBL KB.XFLAG ;FLAG - OUTPUt SUPPRESS .GLOBL CTRLOF 553 REFERENCED BY OTHER MODULES ;MODULE ENTRY POINT - TT HANDLER ;MODULE ENTRY POINT - TT INITIATOR 555 .GLOBL TTINT .GLOBL TTINI 556 ;**************** ****************************** TT.PCNT = TT.BKSLSH ;CHARACTER ;CHARACTER - 554 557 658 559 660 561 662 ~63 564 ~65 i566 :567 !568 '569 !570 :571 ;572 :573 i574 :575 576 577 000045 000134 000000 1 000000 000002 1 000000 0000041 000000 000006 1 000000 000010 1 000000 000012 1 000000 000014 1 000000 000016 1 000016 1 000 000017' 000 000020' 015 000021 ' 012 000022 1 001 000023' 136 000024 1 125 000025 1 001 '%' PERCENT '\' BACKSLASH ;**************** LOCAL STORAGE , ****************~************* TT.FCH: TT.PFC: TT.FCF: TT. EXT: TT.PTR: TT. TP: TT.COD: TT.FLG: TT.PCF: TT. CUF: TT.PCB: ;CHARACTER ;COUNT ;COUNT. FLAG ;POINTER ;POINTER ;POINTER ;CODE ;FLAGS ;FLAG ;FLAG ;+BUFFER ;+BUFFER ;+BUFFER ;#BUFFER ;#BUFFER ;#BUFFER ;FLAG - 0 0 0 0 0 0 0 .BYTE .BYTE .BYTE .BYTE .BYTE TT.CUB: .BYTE .BYTE TT,BEN: .BYTE ,578 :579 LOCAL EQUATES 45 134 .EVEN o o 15 12 1 136 125 1 FILL FILL, PERMANENT FILL (FLAG SET NE 0) LOCATION TO JUMP OUT INDIRECTL.Y MESSAGE TEMPORARY BUFFER MESSAGE PERCENT AND CONTROL~U PERCENT CONTROL-U <CR>+ PERCENT 1 %' <LF>+ ECHO <+1>+ TERMINATOR <~># CONTROL-Li <U># ECHO <+1># TERMINATOR ( TT . BSN) END ~;PECIAL BUFFER~ TTDRV (iERMINAL DRIVER MODULE) TTDRV.MAC 22-AUG-78 08:18 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 62£5 629 630 631 632 633 MACY11 30A(1052) 20-SEP-78 18:44 TTINI (TERMINAL INITIATOR MODULE) PAGE 21 ;++ MODULE NAME: TTINI FUNCTIONAL DESCRIPTION: THE DEVICE OUTPUT STARTER MODULE (llIN!) SETS UP FOR THE DEVICE OUTPUT INTERRUPT HANDLING MODULE (TTINT). INPUTS: 1. DATA TABLE ADDRESS 2. MESSAGE ADDRESS 3. MESSAGE TYPE CODE 4. RETURN ADDRESS (DRIVER WILL JUMP TO AT END OF MESSAGE). IMPLICIT INPUTS: 1. FILL CHARACTER 2. FILL COUNT OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: NONE SUBORDINATE MODULES CALLED: NONE FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL TTINI IN <DTADDR,TYPCOD,MSGADR,RETADR> vlHERE DT ADOR TYPCOD MSGAOR RETADR = ADDRESS OF DATA TABLE DATE BY TYPE CODE ADDRESS OF MESSAGE RETURN ADDRESS THE DRIVER WILL JUMP TO AT THE COMPLETION OF THE MESSAGE. VERSION: 0.0 EDIT ;-- REASON SEQ 1089 MACY 11 30A(1052) TTINI (CODE) TTDRV (TERMINAL DRIVER MODULE) 22-AUG-78 08:18 TTDRV.MAC 639 640 641 642 643 644 645 646 647 (2 ) 648 (2 ) 649 (4) 650 (4 ) 651 (4) 652 (4 ) 653 (4) ·654 (4) 655 (2 ) 656 (6) 657 (3) (3) (2) ;+ ; ; ; ; , 000026 1 000026 1 000026 1 000026 1 000030 1 000030 1 000034 1 000034 1 000042 1 000042 1 000050 1 000050 1 000056 1 000056 1 000064 1 000064 1 000072 1 000072 1 000074 1 000074 1 000102 1 000102 1 000102 1 000102 1 20-SEP-78 18:44 PAGE 22 SEQ 1090 INITIALIZE MESSAGE TYPE, MESSAGE ADDRESS, FILL COUNT, AND FILL CHARACTER. STUFF RETURN ADDRESS AT TT.EXT, ENABLE INTERRUPTS AND RETURN. ROUTINE TTINI <DTBLtMSGCOD,MSGADR,RETADR> TTINI:: PUSH RO 010046 LET RO 016500 000000 116067 000037 177736 116067 000036 177732 . - DTBl(R5} MOV RO,-(SP) MOV DTBL(F~5),RO MOVB DT.FCH(RO),TT.FC MOVB DT.FCN(RO),TT.PF MOV MSGCOD(R5),TT.CO MOV MSGADF? (R5) , TT . PT MOV RETADR(R5),TT.EX MJV (SP)+"RO BIS # IE:,@XCSR RTS PC LET TT.FCH :B= DT.FCH(RO) lET TT.PFC :B= DT.FCN(RO) .- MSGCOD(R5) lET TT.PTR . - MSGADR(R5) lET TT.EXT . - RETADR(R5) LET rT.COD 016567 000002 177736 016567 000004 177724 016567 000006 177714 POP RO 012600 052777 lET @lXCSR 000100 '- @lXCSR SET.BY #IE OOOOOOG ENDRTN ~)OOOO$ : ~)0001$: 000207 TTDRV (TERMINAL DRIVER MODULE) TTDRV.MAC 22-AUG-78 08:18 663 664 665 666 667 668 669 MACY11 30A(1052) 20-SEP-78 18:44 TTINT (TERMINAL INTERRUPT HANDLER) ;++ MODULE NAME: TT II\IT FUNCTIONAL DESCRIPTION: THIS MODULE HANDLES ALL OUTPUT MESSAGES TO THE DEVICE. 670 THERE ARE TWO KINDS OF MESSAGES : (1) STANDARD (ERROR MSG, PROMPT MSG, ETC.) (2) NON-STANDARD (ECHOING OF INPUT STRINGS, ETC.) ,671 672 673 674 675 676 ,677 678 679 680 681 682 683 684 685 686 ,687 :688 689 690 691 ,692 PAGE 23 INPUTS: NONE IMPLICIT INPUTS: NONE OUTPUTS: NONE IMPLICIT OUTPUTS: NONE PATHOLOGICAL CONNECTIONS: CONTROL-O FLAG XOFF 'FLAG WORD SUBORDINATE ROUTINES CALLED: NONE 696 FUNCTIONAL SIDE EFFECTS: IF XOFF FLAG IS DETECTED CONTROL IS RETU~NED TO THE INTERRUPTED CODE IMMEDIATELY WITHOUT RE-ENABLING INTERRUPTS. THIS WILL BE DONE BY THE KBDRV MODULE WHEN A XON IS DETECTED. 697 698 CALLING SEQUENCE: 693 694 695 699 700 '701 702 703 THE ROUTINS IS ENTERED VIA HARDWARE INTERRUPT VERSION: 0.0 704 '705 706 707 :708 EDIT ;-- DATE BY REASON SEQ 1091 MACY11 30A(1052) TTINT (CODE) TTDRV (TERMINAL DRIVER MODULE) TTDRV.MAC 22-AUG-78 08:18 714 (:2 ) 715 716 717 718 , 000104' (6) 000104' 719 720 721 ,22 723 724 725 ~26 000112' :( 6) 000112' :( 9) 000116' 727 000120' (2) 000120' ;728 000122' (4) 000122' 18:44 PAGE 24 SEQ 1092 TTINT IROUTINE 000104' '000104' 20-SEP-78 TTINT: ;+ ;DISABLE INTERRUPTS. , 0- LET @XCSR := @XCSR CLR.BY #IE 042777 000100 OOOOOOG BIC #IE,@XCSR TST BEQ KB.XFLAG 50002$. ;+ ; IF XOFF FLAG SET RTI ; TRUE CONTINUE ; ELSE IF KB.XFLAG NE #0 THEN 005767 001401 OOOOOOG INUNE <RT!> RTI 000002 ENDIF ,729 ;+ '730 IS FILL COUNT-FLAG NOT EQUAL TO ZERO? TRUE OUTPUT THE FILLER-CHARACTER DECREMENT FILL COUNT-FLAG SET INTERRUPTS, RETURN FALSE CONTINUE. '731 '732 :733 734 '735 '736 737 :( 6} '( 9) 738 '( 4) 739 (6) ,740 : (4) ; (3) ;- 000122' 000122' 000126' 000130' 000130' 000136' 000136' 000142' 000142' 000144' IF TT.FCF NE #0 THEN 005767 001406 177656 112777 000000 005367 177642 ELSE 000524 (6) (9) 748 (4) 749 (4 ) 750 (4) #NULL,@XBUF DEC TT.Fcr BR 50004$ TST BEQ CMPB BNE TT.FLG 50005$ @TT.PTR,TT.BEN 50005$ CLR TT.FLG MOV TT ., TP" TT . PT R :;0003$ : ;+ ; IS OUTPUT OF <AU> OR <%> BUFFER COMPLETED ? ; TRUE RESET <AU> AND <%> FLAGS RESTORE MESSAGE POINTER ; FALSE NO ACTION 743 744 :745 746 (9 ) MOVB LET TT.FCF .- TT.FCF - #1 742 (6) TT.FCF 50003$ LET @XBUF :B= #NULL OOOOOOG 1741 747 , TST BEQ i- 000144' 000144' 000150' 000152' 000160' 000162' 000162' 000166' 000166' 000174' 000174' IF IT.FLG NE #0 ANDB @TT.PTR EQ TT.BEN THEN 005767 001411 127767 001005 177646 005067 177630 016767 177620 177632 177645 LET TT.FLG '- #0 LET TT.PTR '- TT.TP 177614 ENDIF ~50005$ ~ MACY11 30A(1052) TTINT (CODE) TTDRV (TERMINAL DRIVER MODULE) TTDRV.MAC 22-AUG-78 08:18 751 752 753 754 755 756 757 (6) (9 ) 758 (6) (9) 759 (2) 760 (4 ) 761 (2 ) 762 (4 ) 763 764 765 766 767 (6) (9 ) 768 769 770 771 772 773 774 775 (6) (9) 776 (4) 777 (4) (6) 778 (4 ) 779 (4) 780 781 782 783 784 785 (6) (9) 786 (4) 20-SEP-78 18:44 PAGE 24-~ SEQ 1093 ;+ ; IS INPUT CHARACTER A NULL? ; TRUE THIS IS THE END OF THE MESSAGE ; RETURN BY 'JMP @TT.EXT'. ; FALSE NO ACTION , 000174' 000174' 000202' 000204' 000204' 000212' 000214' 000214' 000216' 000216' 000216' 000216' 000222' 000222' IFB @TT.PTR EO #NULL THEN 127727 001007 177610 000000 026727 001001 177604 000002 CMPB BNE @TT.PTR,#NULL 50006$ CMP BNE TT.COD,#MSGPOP 50007$ IF TT.COD EQ #MSGPOP THEN INLINE <CMP (SP)+,(SP)+> CMP (SP)+, (SP)+ 022626 ENDIF ~:;0007$ INLINE <JMP 000177 @TT.EXT;LEAV~,FINISHED : MESSAGE> JMP @TT.EXT;LEAVE,FINIS~ 177564 ENDIF ~i0006$ : 000222 1 000222 1 005767 000226' 002033 ;+ ; NON-STANDARD MESSAGE CODE HANDLING SPECIAL CONDITIONS- CONTROL U,RUBOUT ;IF TT.COD LT #0 THEN 177566 TST BGE TT.COD 50010$ CMPB BNE @TT.PTR,#CTRLU 50011$ MOVB #1,TT.CUF MOV INC TT.PTR,TT.TP TT,.TP MOV #TT.CUB,TT~PTR CMPB BNE @TT.PTR,#RUBOUT 50012$ MOVB #TT.BKSLSH,@XBUF ;+ IS INPUT CHARACTER IS A <AU> CONTROL U ? TRUE ~ SET AU-FLAG SAVE REST OF MESSAGE POINTER POINT TO -U-BUFFER FALSE NO ACTION 000230' 000230' 000236' 000240' 000240' 000246' 000246' 000254' 000260' 000260' 000266' 000266' IFB @TT.PTR EO #CTRLU THEN 127727 001013 177554 000025 112767 000001 177551 016767 005267 177536 177532 012767 000023' 177522 L~T 000266' 000266' 127727 000274' 001004 000276' 0002.76' 112.777 TT.CUF :B= #1 LET TT.TP '- TT.PTR + #1 177536 LET TT.PTR := #TT.CUB ENDIF !50011$: ;+ ; IS INPUT CHARACTER IS A RUBOUT ? ; TRUE OUTPUT BACKS LASH ; FALSE OUTPUT CHARACTER ;IFB @TT.PTR EO #RUBOUT THEN 177516 000177 000134 OOOOOOG LET @XBUF :B= #TT.BKSLSH 787 (4) (3 ) 788 (4) 789 (4) 790 791 792 793 794 (4) ( 3) 795 796 797 798 799 800 801 802 (6) (9) 803 (4) 804 (4) (6) 805 (4) 806 (4) 807 808 B09 810 811 812 (6) (9) 813 (4) 814 (4 ) 815 (4 ) 816 817 818 819 820 821 (6) (9) 822 000304 1 000304 1 000403 000306 1 000306 1 000306 1 11 7777 000314 1 0003141 20-SEP-78 rv1ACY 11 30A(1052) TTINT (CODE) TTDRV (TERMINAL DRIVER MODULE) 22-AUG-78 08:18 TTDRV.MAC 18:44 PAGE 24-2 SEQ 1094 ELSE BR 50013$ MOVB @TT.PTR,@XBUF BR 50014$ CMPB BNE @lTT.PTR,#TT.PCNT 50015$ MOVB # 1 , TT . PCF MOV INC TT. pn!, TT. TP TT.TP MOV #TT.PCB,TT.PTR CMP SEQ CTHLOF,#1 50016$ MOVB @lTT.PTR,@XBUF CMP8 BNE @TT.PTR,TT.FCH 50017$ 50012$: LET @lX8UF : B= @lTT. PTf~ 177476 OOOOOOG ENDIF 50013$: ;+ ; STANDARD MESSAGE CODE HANDLING , 000314 1 000314' 000426 000316 1 SPECIAL CONDITIONS- PERCENT,SURPRESS ELSE 5iOO 10$: ;+ IS INPUT CHARACTER IS A <%> PEF~CENT ? SET %-FLAG TRUE SAVE REST OF MESSAGE POINTER P01NT TO %-BUFFER NO ACTION FALSE - 000316 1 000316 1 127727 000324 1 001013 000326 1 000326 1 112767 000334 1 000334 1 016767 000342 1 005267 000346 1 000346 1 012767 000354 1 000354 1 000354 1 000354 1 026727 000362 1 001403 000364 1 000364 1 117777 000372 1 000372 1 000372' 000372 1 000372' 0003721 127767 000400 1 001003 000402 1 ;- IFB @lTT.PTR EQ #TT.PCNT THEN 177466 000045 000001 177462 177450 177444 177450 LET TT.PCF :8= #1 LET TT.TP := TT.PTR + #1 LET TT.PTR := #TT.PCB 000020' 177434 ENDIF ~)0015$: ;+ ; IS MESSAGE SURPRESS FLAG NOT SET ? OUTPUT CHARACTER ; TRUE NO ACTION i FALSE - , IF CTRLOF NE #1 THEN OOOOOOG 000001 'LET @XBUF :B= @TT.PTR 177420 OOOOOOG ENDIF !30016$: ENDIF !30014$: ;+ ; IS INPUT CHARACTER THE "FILL-CHARACTER" ? PRESET FILL COUNT-FLAG ; TRUE NO ACTION ; FALSE ;IFB @TT.PTR EO TT.FCH THEN 177412 177400 LET TT.FCF := TT.PFC TTDRV MACY11 30A(1052) TTINT (CODE) (TERMINAL DRIVER MODULE) 22-AUG-78 08:18 TTD~V.MAC (4) 823 (4) 824 825 826 82.7 (6) 828 (4) 829 830 831 832 833 (2 ) 834 (2 ) 835 (2 ) 836 (2 ) 837 (6) 838 ( 3) (3) (2) 839 000402' 016767 000410' 000410' 177374 20-SEP-78 18:44 PAGE 24-~~ SEQ 1095 177374 MOV TT.PFC,TT.FCF INC TT.PTR MOV #PRI4,-(SP) MOV #1000$,-(SP) ENDIF 50017$: i+ ; INCREMENT MESSAGE CHARACTER POINTEH , 000410' 000410' 005267 000414' 000414' LET TT.PTR := TT.PTR + #1 177374 ENDIF 50004$: ;+ ;ENABLE INTERRUPTS. BUT FIRST RAISE PRIORITY TO 4 ;- 000414' 000414' 000420' 000420 1 000424 1 000424' 000426' 000426 1 000426' 000426' 000434' 000434' 000434' 000434' PUSH #PRI4 012746 000200 PUSH #1000$ 012746 000426 1 INLINE <RTI> RTI 000002 INUNE <1000$:> LET @lXCSR 052777 000100 1000$ : : = @lXCSR SET.BY #IE BIS OOOOOOG ENDRTI 5,0000$ : 5,0001$: 000002 000001 RTI .END #1 E,@lX.CSR TTDRV (TERMINAL DRIVER MODULE) 22-AUG-78 08: 18 TTDRV.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 000010 AUTO AUTOST= 020000 000110 AWAS BITO 000001 BITCO 000001 000002 BIT01 B1T.02 000004 BIT03 000010 BIT04 000020 BIT05 000040 000100 BIT06 BIT07 000200 BIT08 000400 BIT09 001000 BI T,1 000002 BIno 002000 004000 B1 T1 1 Bln2 010000 020000 B1T13 BIT14 040000 100000 BIn5 BI12 000004 BIT3 000010 BIT4 = 000020 BIT5 000040 8IT.6 000100 Bll7 000200 BIT8 000400 BIl9 001000 BKDEF 000002 BKMOD 000020 BKMODE= 040000 BK5LSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 ClKPRE= 000001 CONFIG= 000056 000001 CQOVF CR 000015 000100 CSRA CSRC = 000102 Mft,CY11 30A(1052) SYMBOL TABLE CTRLC = 000003 CTRlO = 000017 CTRLOF= ****** G CTRLU = 000025 DCEVNT= 000011 DEFRTN= 000400 D1AGMC= 000000 DROPMO= 100000 DSEVNT= 000014 000000 DTBl DT.ADD= 000042 DT. AP = 000100 DT.APK= 000076 DT.BlS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT. ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN:: 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS:: 000074 DT.PC = 000002 OT.PFl= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT. SP = 000006 DT.SS1= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU:: 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 20-SEP-7S ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDCNT= 000044 HRDPAS= 000050 ICONT :z: 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE 1 ND·PAR:: 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 000120 INTR. IOMOD 100000 IOMODP= 10.2000 IOMODR= 1 12000 10MODX= 110000 035060 JACK KB.XFL= ****** G KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDr~4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT= 000001 MAPSTA= 000200 MED 076600 MEMPAS= 040000 18:44 PAGE 25 MOOEXH:: MODHOL:: MOOSE L:: MSGADR=: MSGCKD:: MSGCKS:: MSGCOD:: MSGDER:: MSGDRP= MSGECH:: MSGEOP:: MSGHDR:: MSGHNG:: MSGHRD:: MSGMAp:: MSGNU L:= MSGPOP;:: MSGPRM:: MSGR ES;: MSGSFT:= MSGSKE::: MSGSMB:: MSGSMH;:: MSGSMS::: MSGSTD::: MSGSYS:: MSGVEC::: NBKMOD= NCPUOP= NOAPTY::: NULL O\I}EN PAERR PARPRE= PARSTA::: PASCNT:: PDPLSI= PDP60 PDP70 PRIO P R Ii PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS 004000 002000 001000 000004 000010 000011 000002 000005 000017 177777 000013 000004 000022 000007 000021 177775 000002 177776 000001 00aa06 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 psw. 177776 RANNUM= 000054 SEQ 1096 RSUFEA= 000130 Ri3UFPA= 000126 R8UFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI = 000022 RELERR= 000020 RELMOD= 020000 REL TIM= 010000 00005(1 RES1 000060 RES2 RETADR= 000006 RICHAR= 031060 RPTDAT= 002000 RSTRT :: 000112 RUBOUT= 0001'71 RUNMOD= 100000 R5VALU= 001740 075464 SAM SBADR = 000102 SBKMOD= 000000 S BI,SE L= 010000 SC.ADR= 000006 SC.AlC:: 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLO::: 000010 SC.SCA= 00001 ;;:~ SENDLS= 177777 SOFCNT= 000042 S:]FPAS= 00004E; SPACE = 000040 SPOINT= 000032 SPVALU= 002200 SRO = 177572 177574 SR1 177576 SR2 17251Ei SR~ 0OO02Ei STAT STATBl= 064757 STAT1 = 000027 SUSPND= 000001i 000062 SVRO SVR1 000064 000066 SVR2 00007() SVR3 SVR4 000072 000074 SVR5 SVR6 00007E:> SYSCNT= 00005:2 SYSERR= 000100 MACY'1 30A(1052) SYMBOL TABLE TTDRV (TERMINAL DRIVER MODULE) TTDRV.MAC 22-AUG-78 08:18 UIPAR4= UIPAR5= UIPAR6= UIPAR7= UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ=' WDFR WDTO WTINRE= WTWHMI= XBUF TMPIO 000002 TQOVF = 000002 TTINI 000026RG 000104RG TTINT TT.BEN 000025R TT. BKS= 000134 TT.COD 000014R TT.CUB 000023R TT.CUF 000017R TT. ~XT 00OOO6R TT.fCr 0OOO04R TT.FCH OOOOOOR TT.'FLG 000016R TT.PCB 000020R TT . 'PCF 000016R TT.PCN= 000045 TT . :PFC 000002R TT.PTR 000010R 000012R Tf .JP UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 ABS. 000000 000436 177650 177652 177654 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 000352 000222 ****** G 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:TTDRV.DSKZ:TTDRV=SPMAC/Ml,EQUATE,TTDRV RUN-TIME: 17 7 .3 SECONDS RUN-TIME RATIO: 40/24=1 .6 CO'RE USED: 14K (27 PAGES) 20-SEP-7B XCSR ****** G 000005 XFLAG XOFF = 000023 XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO == 000340 $F$FAl== 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 18:44 PAGE 25-1 $F$THE:: $F$TRU:: $F$UNT:: $F$WHI:: $F$YES:: $IFLEV:: $ISKO -$ISK1 -$ISK2 -$LOCTA::: $LSTIN::: $LSTTA::: $NESTL= $NSKO $NSK1 .$NSK2 .$NSK3 .$SAVLE::: $lAGlE:: $ T AGNU::: $TEMP $TSKO $TSK1 SEQ 1097 000330 000404 000130 000120 000402 177777 000001 000001 000001 177777 000001 000001 177777 000350 000'j10 000110 000110 177777 177777 050020 000350 050004 050017 '$TSK2 = 050016 $$ARGC== 000000 $$BYTE== 000402 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$EqFl= 000000 $$FLAG= 000001 $$FROM= 000000 $$LOC = 000400R $$LOCN= 000000 $$REG = 177777 $$RETU= oooooa $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000436R = .MAlN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 560 563 605 670 719 18:45 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT KERNEL - DETERMINE MEMORY SIZE KERNEL - WRITE GOOD PARITY KERNEL - SORT MODULE LIST ;SPMAC: VERSION 1.1 SEO 1098 SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS SIZPLA.MAC 12-JUN-78 13:01 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550. 551 552 553 554 555 556 557 MACY11 30A(1052) 20-SEP-78 18:45 PAGE 19 .TITLE SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS .IDENT JVO.Oj ;++ MODULE NAME: SIZPLA FUNCTIONAL DESCRIPTION: THIS MODULE WILL SIZE MEMORY TO 28K AND WRITE GOOD PARITY IN THAT AREA. THIS ROUTINE WILL NOT CHECK FOR ANY CPU OPTIONS AND WILL INDICATE THERE Af~E NONE. THE II MODQ" LIST WIll. BE SORTED TO DEVE~OP A BACKGROUND MODULE LIST (QUEUE). INPUTS: DTABLE ADDRESS IMPLICIT INPUTS: CONFIGURATION WORD 0 EXERCISER SIZE SYSTEM SIZE MODULE LIST BACKGROUND LIST OUTPUTS: NONE IMPLICIT OUTPUTS: SYSTEM Q,lZE EXERCIS!f'SIZE CONFIGU~ATION WORD 0 PATHOLOGICAL tONNECTIONS: SUBORDINATE ROUTINES CALLED: SAVREG - SAVE REGISTERS RESREG - 'RESTORE REGISTERS HRDADRCHK - ILLEGAL ADDRESS CHECK FUNCTIONAL SrDE EFFECTS: NONE CALLING SEQUENCE: CALL SIZPOL IN <A> A - DTABLE ADDRESS VERSION: 0.0 ._, EDIr DATE BY REASON SEQ 1099 SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS SIZPLA.MAC 1:2-JUN-78 13:01 COMMON EQUATE MODULE 559 560 561 562 563 (1) 564 565 566 567 568 569 MACY11 30A(1052) 20-SEP-78 18:45 PAGE 20 .. S8TTL COMMON DEFINITIONS AND REFERENCES 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $L5TIN = 1 $LSTTAG = 1 ;**************** ; GLOBAL REFERENCES , 5io .GLOBL .GLOBL .GLOBL 571 572 .573 SAVREG RE5R:EG HRDADRCHK ;SARE REGISTERS ;RESTORE REGISTERS ;ILLEGAL ADDRESS CHECK 574 575 576 ;**************** ; LOCAL EQU,o,TES 577 578 579 580 581 582 583 584 585 586 , 004000 000034 160000 55.0KC SS.28 SS.RFS 4000 = "D28 = 160000 ;**************** ; REFERENCED BY OTHER MODULES , .GLOBL SIZPOL 587 588 589 590 591 ; +++++++++++++++++++++++++-:-++++ 592 OVERLAY REGION GLOBALS 593 ;+++++++++++++++++++++++++T++++ 594 595 596 597 598 599 600 601 602 ;ONE K CHUNK ;28 DECIMAL ;RESERVED FOR DIAGNOSTIC USE IN I/O PAGE .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL OV.KBBUF OV.HIKB OV.KBSIZ OV.CQ OV.HICQ OV.CQ5IZ OV.TQ OV.HITQ OV.TQSIZ ;MODULE ENTRY POINT SEQ 1100 SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS 12-JUN-78 13:01 COMMON DEFINITIONS AND SIZPLA.MAC 604 605 606 607 608 (2 ) 609 61!) 611 612 613 614 (3) 615 (4) 616 (4 ) 617 618 619 620 621 622 623 624 (4 ) 625 626 627 628 629 630 631 632 (4) 633 (4) 634 635 636 637 638 639 (3 ) 640 (6) 641 (6 ) 642 (3) (4) (3) (3) 643 (6) 644 .SBTTL KERNEL - MACY11 30A(1052) 20-SEP-78 18:45 PAGE 21 SEO 1101 REFERENC~S DETERMINE MEMORY SIZE ROUTINE SIZPOL <DTABLE> 000000' 000000' S I ZPOL: ;+ ; SAVE REGISTERS, GET DTABLE ADDRESS FROM R5 STACK AND CLEAR ; R1 , 000000' 000000' 004767 000004' 000004' 016502 000010' 000010' 005001 CALL SAVREG 00000013 LET R2 := DTABLE(R5) 000000 LET R1 ·- #0 JSR PC,SAVREG MOV DTA8LE(R5),R2 CLR R1 MOV 0,DT.ESIZ(R2) CLR RO CLR R3 INC RO ADD #SS.OKC,R3 ;+ ; NOW TAKE THE CONTENTS OF LOC. 0 (EXERCISER SIZE) ; AND LOAD IT INTO EXERCISER SIZE WORD ;- 000012' 000012' 016762 LET DT.ESIZ(R2) 000000 .- 0 000044 ;+ ; DETERMINE SYSTEM SIZE, WHICH CAN NOT BE GREATER ~ THAN 28K. ; SET UP COUNTER OF 1K CHUNKS AND 1K BLOCK POINTER 'r - · - #0 LET R3 · - #0 LET RO 000020' 000020' 005000 000022' 000022' 005003 ;+ ; REPEAT UNTIL NON-EXISTENT MEMORY OR 28K IS FOUND ;000024' 000024' 000024' 000024' 000026' 000026' 000032' 000032 1 000034' 000036 1 000042' 000044 1 000044' 000046' REPEAT 005200 062703 010546 010345 004767 012605 004000 LET RO . - RO + #1 LET R3 .- R3 + #SS.OKC CALL. HRDADRCHK IN <R3> OOOOOOG IF.ERROR THEN 103001 50002$: IN!..INE <BR 1$> MOV R5,-(SP) MOV R3,-(f~5) JSR MOV PC,HRDADRCHK (SP)+,R5 Bce 50003$ SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS M~CY11 30A(1052) SIZPLA.MAC 12-JUN-78 13:01 KERNEL - DETERMINE MEMORY SIZE (2 ) 645 (4 ) 646 (3 ) '( 6) 647 648 649 650 651 652 (2) 653 (6) (9) 654 (3) (4 ) (3) (3 ) 655 (6) 656 (6) 657 (4) 658 (4) 659 660 000046 1 000403 000050 1 000050 1 000050 1 000050 1 020027 000054 1 001363 (4 ) ( 7) (7 ) (7 ) (7) (7 ) (7 ) 668 18:45 PAGE 21-1 SEQ 1102 BR 1 $ ENDIF 50003$: UNTIL RO EQ #SS.28 CMP BNE 000034 RO,#SS.28 50002$ ;+ ; DETERMINE IF SYSTEM HAS 30K BY LOOKING AT FIRST ADDRESS IN I/O PAGE 'f 000056 1 000056 1 000056 1 000056 1 020027 000062 1 001011 000064 1 0000641 010546 000066 1 012745 000072 1 004767 000076 1 012605 000100 1 000100 1 103402 0001'02 1 000102 1 062703 000106 1 000106' 000106' 000106' INUNE <1$:> 1 $: IF RO EQ #S5.28 THEN BNE RO,#SS.28 50004$ MOV MOV JSR MOV R5,-(SP) #SS.RFS,-(R!5) PC,HRDADRCHK (SP)+,R5 BCS 50005$ ADD H10000,R3 CMP 000034 CALL HRDADRCHK IN <#SS.RFS> 160000 OOOOOOG IF.NO.ERROR THEN LET R3 '- R3 + #10000 010000 ENDIF :;0005$ : ENDIF :i0004$ : ;+ ; NOW GET MEMORY SIZE IN "PAR II FOHrv:AT BY SHIFTING R3, S TIMES ; TO THE RIGHT, ONCE THIS IS DONE LOAD INTO SYSTEM ; SIZE WORD,. 661 662 663 664 665 666 (4) 667 20-SEP-78 000106 1 000106' 000241 000110 1 000110 1 010362 000114' 006062 000120' 006062 000124' 006062 000130' 006062 000134 1 006062 000140' 006062 LET CARRY ::: #0 CLC LET DT.SSIZ(R2) 000046 000046 000046 000046 000046 000046 000046 != R3 ROTATE -6 MOV ROR ROR RDR ROR ROR ROR R3,DT"SSIZ(R2) DT . SSIZ(R2) DT.SSIZ(R2) DT . SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) DT"SSIZ(R2) SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS MACY11 30A(1052) SIZPLA.MAC 12-JUN-78 13:01 KERNEL - WRITE GOOD PARITY 670 671 672 673 674 675 (4) 676 (2) 677 (4) 678 679 680 681 682 683 (2) 684 (4) 685 (2) 686 687 688 689 690 691 692 693 (2) 694 (2) 695 (2) 696 697 698 699 700 701 (6) 702 703 704 705 706 711 18:45 PAGE 21-2 SEQ 1103 .S8TTL KERNEL - WRITE GOOD PARITY ;+ ; SET UP POINTER TO POINT TO LaC. 0 AND SAVE BUSERR VECTOR ,' 000144 1 000144' 005000 000146 1 000146' 013746 000152' 000152' 012737 LET RO . - #0 CLR RO MoV @#4,-(SP) MOV #2$,@#4 PUSH @#4 000004 LET @#4 '- #2$ 000164' 000004 i+ ; NOW WRITE GOOD PARITY , INLINE<3$:> 000160' 000160 1 000160' 000160' 011020 000162 1 000162 1 000776 3$: LET (RO)+ '-, (RO) MOV ( R 0) , ( R0) + INLINE <BR ::1$> BR 3$ ;+ ; WILL TRAP HERE WHEN TOP OF MEMORY IS FOUND ; CLEAN UP STACK AND RESTOf~E BUSERR , '- 000164 1 000164 1 000164 1 000164 1 022626 000166' 000166 1 012637 INLINE <2$:> 2$: INLINE <CMP (SP)+,(SP)+> CMP (SP)+,(SP)+ POP @#4 000004 ;+ ; LOAD NCPUGP BIT INTO R1 000172 I 000172 1 052701 LET R1 . - R'I SET. BY #NCPUOP BIS 000020 i+ i IF AUTOMATIC MODE(ACT ,SLIDE,XXDP, ETC.), #NCPUOP,R1 SET AUTO BIT IN CONFIGURATION WQFW () j- 707 708 (6) (9) 709 (6) 710 (4) 20~·SEP-78 000176 1 000176 1 005737 000202 1 001402 000204 1 000204 1 052701 000210 1 000210' IF @#42 NE #0 THEN 000042 TST SEQ @#42 50006$ 3IS #AUTO,R1 LET R1 := R1 SET.BY #AUTo 000010 ENDIF !50006.$ : SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS MACV11 30A(1052) SIZPLA.MAC 12-JUN-78 13:01 KERNEL - WRITE GOOD PARITY 712 713 714 715 716 (6) 717 20-SEP-78 18:45 PAGE 21-3 SEQ 1104 i+ ; LOAD UP CONFIGURATION WORD 0 ;000210' 000210' LET DT.CFO(R2) := DT.CFO(R2) SET.8Y R1 050162 000014 BIS R1,DT.CFO(R2) SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS MACY11 30A(1052) SIZPLA.MAC '12-JUN-7813:01 KERNEL - SORT MODULE LIST 719 720 721 722 723 724 725 726 (4) 727 (4) 728 (4) (6) (9) 729 (6) 730 (6) 731 (4) (3 ) 732 733 734 735 736 737 738 (4) 739 740 741 742 743 744 (4 ) (6) (9) 745 (3) 746 747 748 749 750 751 (4 ) 752 (6) (9) 753 754 755 756 757 20-SEP-78 18:45 PAGE 22 SEQ 1105 .SBTTL KERNEL - SORT MODULE LIST + COUNT THE MODULES 000214 1 000214 1 000216' 000216' 000222 1 000222' 000222' 000226' 000230' 000230' 000232' 000232 1 000236 1 000236 1 000240' . - #0 LET R1 . - DT.MlST(R2) LET RO 005000 016201 000032 021127 001404 000000 WHILE ( R1) NE #ENDLST DO LET RO .- RO + #1 LET Rl .- Rl + #2 005200 062701 CLR RO MOV DT .MLST(R2) .R1 CMP BEQ (R1),#HJDLST 50010$ INC RO ADD #2, R1 BR 50007$ 50007$: 000002 ENDDO 000771 50010$: ;+ ; START THE SORT OPERATION, AND SORT ; DEVELOPING A II BKMOD QUEUE II • ;- 000240 1 000240' 016201 LET R1 II BKMODS'" TO BOTTOM OF MODQ LIST := DT.MLST{R2) 000032 MOV DT .MlST(R2) ,Rl TST BlE RO 50012$ MOV (Rl),F~4 BIT BEQ #BKMOD,STAT(R4) 50014$ ;+ WORK THRU THE LIST UNTIL THE END IS REACHED i ;- WHILE RO GT #0 DO 000244' 000244' 000244' 005700 000246' 003432 000250 1 000250 1 ~iOO11$: REPEAT :;0013$: ;+ ; IS THE CURRENT ENTRY A BKMOD MODULE? 'r - 000250' 000250' 011104 000252' 000252' 032764 000260 1 001414 LET R4 . - ( R1 ) IF lIBKMOD SETIN STAT(R4) THEN 000020 000026 + THE CURRENT ENTRY IS A BKMOD, WHAT ABOUT THE NEXT ENTRY? SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS MACY11 30A(1052) SIZPLA.MAC 12-JUN-78 13:01 KERNEL - SORT MODULE LIST 758 (4 ) 759 760 761 762 763 764 (6) (9) 765 766 767 768 769 770 (6) (9) 771 (4) 772 (4) 773 (4) 774 (4) 775 (4) 776 777 778 779 780 781 (6) 782 (3) (6) 783 784 785 786 787 788 (6) 789 (4) 790 (4) (3) 791 792 793 794 795 796 000262 1 000262 1 016103 LET R3 PAGE 22-1 SEQ 11 06 2(R1) MOV 2(R1),R3 CMP BEQ R3,#ENDLST 50015$ MAKE SURE ITS NOT THE END OF THE LIST }F R3 NE #ENDLST THEN 000000 + 000274 1 000274 1 000302 1 000304 1 000304 1 000310 1 000310 1 000312 1 000312 1 000312 1 000312 1 000312 1 000312 1 != 18:45 000002 + 000266 1 000266 1 020327 000272 1 001407 20-SEP-78 032763 001003 000020 011161 000002 IF ITS NOT A BKMOD, SWAP THEM IF #BKMOD NOTSETIN STAT(R3) THEN BIT #BKMOD,STAT(R3) BNE 50016$ LET 2(R1) := (R1) MOV ( R 1 ) , 2 ( R1 ) LET (Ri) := R3 MOV R3, (R 1 ) ENDIF 5,0016$: 000026 010311 ENDIF 5,0015$ : ENDIF ;+ ; UPDATE THE POINTER AND CONTINUE SEARCHING THRU THE LIST ;- 000312 1 000312 1 062701 000316 1 000316 1 021127 000322 1 001352 LET R1 000002 : = Ri + #2 ADD #2 1 R1 CMP BNE (R1),NENDLST 50013$ UNTIL (Rl) EQ #ENDLST 000000 ;+ ; THE END OF THE LIST HAS BEEN REACHED, SO UPDATE THE MAIN POINTER & CONTINUE , "·000324 I. 000324 1 005300 000326 1 000326 1 016201 000332 1 000332 1 000744 000334' LET RO .- RO - #1 LET R1 DEC RO MOV DT.MLST(R2),R1 BR 50011$ .- DT.MLST(R2) 000032 ENDDO ~)0012$ : ;+ ; NOW THAT THE BACKGROUND MODULES HAVE BEEN GROUPED TOGETHER AT THE END ; OF THE MODULE LIST , PUT THE ADDRESS OF THIS BACKGROUND LIST (IF THERE IS ; A BACKGROUND ~IST) INTO THE DATA TABLE ;- SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS MACY'1 30A(1052) SIZPLA.MAC 12-JUN-78 13:01 KERNEL - SORT MODULE LIST 797 798 (4) 799 800 801 802 803 804(4) 805 (4) 806 (4) (6) (9) (6 ) (9) 807 (4 ) 808 (6) (9) 809 810 811 812 813 814 (4) 815 (4) 816 (4) 817 (4 ) (3 ) 818 819 820 821 822 823 (6 ) 824 (4) 825 (4) (3 ) 826 827 828 829 830 831 (3) 000334' 000334' 016201 LET R1 PAGE 22-2 := DT.MLST(R2) MOV 000034 012703 177777 021127 001420 005703 001416 000000 SEQ 1107 DT.MLST(R2),R1 WORK THRU THE MODULE LIST UNTIL THE FIRST BACKGROUND MODULE IS FOUND LET DT.BLST(R2) := #0 005062 LET R3 := #-1 CLR DT.BLST(R2) MOV #-1,R3 CMP BEQ TST BEQ (Rl) ,#ENDLST 50020$ R3 50020$ MOV (R1),R4 BIT BEQ #BKMOD,STAT(R4) 50021$ WHILE (R1) NE #ENDLST AND R3 NE #0 DO 50017$: LET R4 . - (R 1 ) 011104 032764 001406 IF #BKMOD SETIN STAT(R4) THEN 000020 000026 + 000374' 000374' 000400' 000400' 000404' 000404' 000406' 000406' 000410' 18:45 000032 + 000340' 000340' 000344' 000344' 000350' 000350' 000350' 000354' (;00356' 000360' 000362' 000362' 000364' 000364' 000372' 20-SEP-78 A BACKGROUND MODULE HAS BEEN FOUND - SO THIS IS THE START OF THE BACKGROUND LIST LET 010162 000034 012701 000000 DT.BLST(R2) := R"I LET R1 MOV R1,DT.BLST(R2) MOV #ENDLST,R1 CLR R3 BR 50022$ ADD #2,R1 SR 50017$ JSR PC,RESREG . - #ENDLST LET R3 '- #0 005003 ELSE 000402 5·0021$: i+ i UPDATE THE POINTER AND CONTINUE TO SEARCH THRU THE MODULE LIST ;- 000410' 000410' 062701 000414' 000414' 000414' 000414' 000755 000416' L.ET R1 . - R1 + #2 000002 ENDIF :i0022$ : ENDDO ei0020$ : + NOW RETURN TO THE CALLER 000416' 000416' 004767 CALL RESREG OOOOOOG SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS MACY11 30A(1052) SIZPLA.MAC 12-JUN-78 13:01 KERNEL - SORT MODULE LIST 832 (3) (3 ) (2 ) 833 834 835 836 837 838 839 840 841 842 843 (2 ) 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 ENDHTN 000422 1 000422 1 000422 1 000422 1 000207 20-SEP-78 18:45 PAGE 22-3 ~;OOOO$ SEQ 1108 : ~>0001$: RTS PC ;+ ; LABEL TYPE QUEUE HIGH LIMI T ;- ;+ ; AllOW STOHAGE FOR TQ ;- 000424 1 000120 000544 1 000544 1 AD<BO> .BlKS INLINE <OV.TQEND:> OV.TQEND: ;************************************** ; NOTE: THESE OVERLAY EQUATES MUST BE lEFT IN THIS POSITION (THAT IS, AFTER SIZPOL AND TQ.END lABELS) ;++++++++++++++++++++++++++++++++++++++ OVERLAY REGIONS EQUATES ;++++++++++++++++++++++++++++++++++++++ 000000 1 000122 1 000244 1 000120 1 000122 000242 1 000024 000300 000000 000544 1 000030 000001 ;KEYBOARD BUFFER STARTING ADDRESS OV.KBSUF = SIZPOL ;CONTROL QUEUE STARTING ADDRESS OV.CQ= OV.KBBUF + ftD<82> ;TYPE QUEUE STARTING ADDRESS OV.TQ = OV.CQ + ftD<82> ;KEYBOARD BUFFER HIGH LIMIT OV.HIKB = O\/.CQ - 2 ;KEYBOARD BUFFER· SIZE OV.KBSIZ = OV.CQ - OV.KBBUF ;CONTROl QUEUE HIGH lIMIT OV.HICQ = OV.TQ - 2 ;CONTROL QUEUE SIZE OV.CQSIZ = <Ov.TQ - OV.CQ>/4 ;GET THE TQ SIZE OV.A = OV.TQEND - OV.TQ ;GET ANY REMAINDER OV.REM = OV.A - «OV.A/10>*10> ;TYPE QUEUE HIGH LIMIT OV.HITQ = OV.TQEND - OV.REM ;TYPE QUEUE SIZE OV.TQSIZ = <OV.TQEND - OV.TQ - OV.REM> /10 .END SIZPLA - SIZE AND POLL SYSTEM - NO SUPPORT OF ANY CPU OPTIONS SYMBOL TABLE 12-JUN-78 13;01 SIZPLA.MAC ACSR 000102 ACTBlT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BITO = 000001 BITOO 000001 000002 BIT01 BIT02 000004 8IT03 000010 BIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BIT08 000400 BIT09 001000 000002 BIT1 BIT10 002000 BIT11 004000 BIT12 010000 BIT13 020000 BIT 14 040000 BIT15 = 100000 BIT2 000004 Bl T3· = 000010 BIT4 = 000020 000040 BIT5 BIT6 = 000100 BIT7 = 000200 B118 = 000400 BIT9 = 001000 BKDEF = 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CDERCT= 000146 COWOCT= 000144 CKTlM = 100000 CLKPRE= 000001 CONFIG= 000056 CQOVF 000001 000015 CR CSRA 000100 CSRC = 000102 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROrMO= 100000 DSEVNT= 000014 DTA8LE= 000000 DT.ADD= 000042 01. AP = 000100 DT.APK= 000076 DT.8LS= 000034 D1.CFO:: 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT . EVN=. 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000a36 DT.HMX= 000104 01. KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.ML.S= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 D1.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 D1.ST1= 000012 OT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 OVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 MACY11 30A(1052) EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDADR= ****** G HRDCNT= 000044 HRDPAS= 000050 ICONT = 000036 ICOUNT:: 000040 IDNUM = 000122 IE 000100 INDP,i\R= 000040 INHD~P= 040COO INHEPR= 021)000 INHREL= 001000 INHRRE= 000400 000030 INIT INTR 000120 IoMoD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 03501;30 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172:306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPOR7:-:: 172316 KTERRO= 000040 KTPRE5= 000400 KTSTAT= 000020 KTXTND= 040000 000012 LF LPSTAT::: 000001 MAPSTA= 000200 076600 MEO MEMPAS= 040000 MODEXH:.:: 004000 20-SEP-78 MODHOL= MODSEL= MSGCKD= MSGCKS= MSGDER= MSGDRP= MSGECH= MSGEOP= MSGHDR= MSGHNG= MSGHRD= MSGMAP= MSGNUL= MSGPQP= MSGPRM= MSGRES= MSGSFT= MSGSKE= MSGSMB= MSGSMH= MSGSMS= MSGSTD= MSGSYS= MSGVEC= NBKMOD= NCPUOP= NOARlY: NlJLL OV.A OV·.CQ DV.CQS= OV.HIC= OV.HIK= OV. HIT:: OV . KBB=: OV . KBS=: OV. REM:: OV. TQ :: OV.TQE OV. TQS:: OWEN PAERR _. PARPRE=: PARSTA::: PA5CNT=: PDPLSI:: POP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 18 :4~) PAGE 23 SEQ 1109 002000 001000 000010 000011 000005 000017 177777 000013 000004 000022 aOOO07 000021 177775 000002 177776 000001 000006 000003 000015 000014 000016 000000 000012 000020 001000 000020 000002 000000 000300 000122RG 000024 G 000242RG 000120RG 0OO544RG OOOOOORG 000122 G· 000000 000244RG 000544R 000030 G 024020 000010 002000 000100 000034 020000 004000 010000 000000 000040 000200 000240 000300 000340 PRI7 PRO 000000 PR4 000200 000240 PR5 000300 PR6 PR7 000340 177776 PS 177776 PSW RANNUM= 000054 RBUFEA= 000 '130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000'101 RDWHM1= 000022· REL.ERR= 000020 REL.MOD= 020000 RELTIM= 010000 RESREG= ****** G 000056 RES1 RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RuaOUT= 000177 RUNMOD= 100000 R5VALU= 001740 SAM 075464 SAVREG= ****** G SB/"DR = 000102 S6Ki110D= 000000 SBKSEL= 010000 SC.ADR= 000006 SC.ALC= 000014 SC . .A.PC= 000016 SC.C~<L= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 S I ZPO L OOOOOORG SOFCNT= 000042 SOFPAS= 000046 SPACE = 000040 SPOINT= 000032 SPVALU= 002200 ;77572 SRO SRi 177574 177576 SR2 172516 SR3 S5.RF5= 160000 55.0KC= 004000 SIZPLA - SIZE AND POLL SYSTEM 12-JUN-78 13:01 SIZPLA.MAC UIPAR7=> UIPDRO= UIPDR1= UIPDR2= UIPDR3= UIPDR4= UIPDR5= UIPDR6= UIPDR7= WASADR= WBSTAT= WBUFEA= WBUFPA= WBUFRQ= WBUFSZ= WDFR WDTO WTINRE= WTWHMI= XFLAG = XOFF XON $BGNLE= SS.28 :: 000034 STAT 000026 STATBI= 064757 ST AT1 = 000027 SUSPND= 000001 SVRO 000062 SVR1 000064 000066 SVR2 SVR3 000070 SVR4 000072 000074 SVR5 000076 SVR6 SYSCNT= 000052 SYSERR= 000100 TMPIO :: 000002 TQOVF :: 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 A8S. 000000 000544 NO SUPPORT OF ANY CPU OPTIONS SYMBOL TABLE. 177656 177600 177602 177604 177606 177610 177612 177614 177616 000104 000040 000136 000134 000140 000142 000116 000114 000352 000222 000005 000023 000021 177777 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:SIZPLA,DSKZ:SIZPLA:::SPMAC/ML,EQUATE,SIZPLA RUN-TIME: 18 8 .4 SECONDS RUN-TIME RATIO: 47/27=1.7 CORE USED: 14K (27 PAGES) MACY11 30A(1052) $ERFLG:: 000400 $F$AND= 000310 $F$BAD= 000401 $.F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF :: 000110 $F$INC:: 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO :: 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$vJHI = 000120 $F$YES= 000402 20--SEP-78 $IFLEV:: 177777 $ISKO .- 000C01 . $ 15K 1 .- 000001 $ISK2 .- 000001 $ LOCT A:: 17'77'77 $LSTIN:= 000001 $LSTTA:: 000001 $NESTL:: 17'7777 $NSKO 000300 $NSK1 000120 000110 $NSK2 000110 $NSK3 000110 $NSK4 000110 $NSK5 $SAVLE= 177'777 $SSKO = 050020 $TAGlE::: 177777 $TAGNU= 050023 000300 $TEMP 050017 $TSKO 050020 $TSK1 050022 $TSK2 050014 $TSK3 18:45 PAGE 23-1 SEQ 1110 050015 $TSK4 050016 $TSK5 $$ARGC:: 000002 $$BYTE= 000403 $$CASE= 000000 $$D5T = 000000 $$E LOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $$FROM= 000001) $$LOC = 00037:2'R $$LOCN= 000000 $$REG = 177777' $$RETU= 000000 $$RTN1= 050000 $$RfN2:: 050001 $$SRC = oooooel $$TGSV= oooooel $$TGS1= OOCOOO $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000544R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 561 564 611 68d 700 744 797 868 18:46 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT ;SPMAC: VERSION 1.1 KERNEL - DETERMINE PROCESSOR TYPE KERNEL - DETERMINE IF CACHE OPTION AVAILABLE KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT KERNEL - DETERMINE SYSTEM SIZE KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT KERNEL - SORT MODULE LIST SEQ 1111 SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) SIZPLB.MAC 02-AUG-7811:44 COMMON EQUATE MODULE 20-SEP-78 18:46 PAGE 19 508 509 510 .TITLE SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES .IDENT /VO.O/ 511 512 513 514 515 ;++ 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 ,538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 MODULE NAIVIE: SIZF'LB FUNCTIONAL DESCRIPTION: THIS MODULE WILL SIZE THE SYSTEM AND DETERMINE IF PARITY OR ECC IS PRESENT AND ALSO SORT THE MODQ LIST TO GENERATE A BACKGROUND LIST(QUEUE). INPUTS: DTABLE ADDRESS IMPLICIT INPUTS: CONFIGURATION WORD 0 EXERCISER SIZE SYSTEM SIZE PARITY TABLE ADDRESS MODULE LIST BACKGROUND LI ST OUTPUTS: NONE IMPLICIT OUTPUTS:' PARITY TABLE ADDRESS SYSTEM SIZE EXEHCISE SIZE CONFIGURATION WORD 0 PATHOLOGICAL CONNECTIONS: SUBORDINATE ROUTINES CALLED: SAVREG - SAVE REGISTERS RESREG - RESTORE REGISTERS HRDADRCHK - ILLEGAL ADDRESS CHECK FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL SIZPOL IN <A> A - DTABLE ADDRESS VERSION: 0.0 EDIT ;-- DATE BY F~EASON SEQ 1112 SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) SIZPLB.MAC 02-AUG-7811:44 COMMON EQUATE MODULE 560 !:?63 ( 1.) 565 566 567 18:46 PAGE 20 .SBTTL COMMON DEFINITIONS AND REFERENCES 561 562 564 20-SEP-78 000000' 000000' 000001 000001 .MCALL STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG = 1 568~ ;**************** 569 ; GLOBAL REFERENCES 570 571 ; 572 .GLOBL .GLOBL .GL08L .GL08L .GLOBL .GLOBL .GLOBL 573 574 575 576 577 578 SAVREG RESREG HTPAER HRDADRCHK CPUCPE CCNTRL KONTRL iSARE REGISTERS ;RESTORE REGISTERS ;PARITY VECTOR ;ILLEGAL ADDRESS CHECK ;CPU ERROR REGISTER ;CACHE CONTROL REGISTER ;TEMPORARY STORAGE FOR CACHE CONTROL REGISTER 579 ;**************** 580 i 581 582 583 584 585 586 587 588 589 590 591 592 593 172100 172136 004000 000034 177600 160000 LOCAL EQUATES SS.PCSR SS.PCLS SS.OKC 172100 112136 4000 SS.28 ~D28 5S. lOP SS.RFS 177600 160000 ;**************** ; REFERENCED BY OTHER MODULES I .GLOBL SIZPOL 594 595 596 597 598 599 600 601 602 603 604605 606 607 608 609 ;START OF PARITY CSRS ;L.AST PARITY CSR ;ONE K CHUNK :28 DECIMAL ; I/O PAGE ; RESERVED FOI=( DI AGNOS'rI C USE I N I/O PAGE ;++++++++++++++++++++++++++++++ OVERLAY REGION GLOBALS ;++++++++++++++++++++++++++++++ .GLOBL .GLOBL .GL08L .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL OV.KBBUF OV.HIKB OV.KBSIZ OV.CQ OV.HICQ OV.COSIZ OV.TO OV.HITQ OV.TQSIZ ;MODULE ENTRY POINT SEQ 1113 SIZPlB SIZE AND POll SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) 20-SEP-78 SIZPlB.MAC 02-AUG-7811:44 KERNEL - DETERMINE PROCESSOR TYPE 611 612 613 614 615 (2) 616 617 618 619 620 621 622 623 624 (4 ) 625 (4) 626 (3) 627 (4) 628 (4) 629 630 631 632 633 634 635 (3) (4) (3) (3 ) 636 637 (6 ) 63.8 639 640 641 642 643 (2 ) 644 (4) 645 (2 ) 646 (2 ) 647 (6) 648 (2) 649 18:46 PAGE 21 SEQ 1114 .SBTTl KERNEL - DETERMINE PROCESSOR TYPE 000000 1 000000 I ROUTINE SIZPOl <DTABLE> SIZPOL: ;+ ; STUFF PARITY VECTOR ; SAVE REGISTERS, GET DTABLE ADDRESS FROM R5 STACK AND CLEAR ; R1 ,' - 000000 1 000000 1 012737 000006' 000006' 012737 000014 1 000014' 004767 000020 1 000020 1 016502 000024 1 000024 1 005001 lET @l#114 OOOOOOG 000114 lET 000340 (§l# 116 . - IIHTPAER . -, #PRI7 000116 CALL SAVREG OOOOOOG lET R2 . - DlABlE(R5) LET R1 . - #0 000000 MOV #HTPAER,@#114 MOV #PRI7,@#116 JSR PC,SAVREG MOV DTABLE(R5),R2 CLR R1 ;+ ; DETERMINE PROCESSOR TYPE; 11/70, 11/60 OR LSI-l1, FIRST CHECK FOR ; CPU ERROR REGISTER , '- 000026' 000026 1 010546 000030' 016745 0000341 004767 000040 1 012605 CALL HRDADRCHK IN <CPUCPE> OOOOOOG OOOOOOG 000042 1 000042' 103422 MOV MOV JSR MOV R5,-(SP) CPUCPE,-(R5) PC,HRDADRCHK (SP}+,R5 BCS 50002$ MGV @#10,-(SP) MOV #1$,@l#10 IF.NO.ERROR THEN j+ ; SET UP ILLEGAL ; 11/60 INSTRUCTIO~ TRAP TO FIELD TRAP IF NOT ,' 000044 1 000044' 013746 000050 1 000050' 012737 000056 1 000056 1 076600 000060' 000060 1 000101 000062 1 0000621 052701 000066 1 000066 1 000405 PUSH @#10 000010 000070 1 000010 lET @1I10 := #1$ INUNE <MED> MED IN U NE <RDSERV> RDSERV LET R1 : = R1 SET. BY #PDP60 8IS 004000 INLINE <BR 3$> BR 3$ #PDP60,R1 SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) 20-SEP-78 SIZPLB.MAC 02-AUG-7811:44 KERNEL - DETERMINE PROCESSOR TYPE 650 (2) 651 652 653 654 655 656 (4 ) 657 (2 ) 658 659 660 661 662 663 (2 ) 664 (6) 665 666 667 668 669 670 (2 ) 671 (2 ) 672 (4 ) (3 ) 673 674 675 676 677 678 (3) (4 ) (3) (3 ) 679 (6) 680 (6) 681 682 (4) 683 (4 ) 684 18:~6 PAGE 21-1 INLINE <1$:> 000070' 000070 1 SEQ 1115 1 $: ;+ ; SET RETURN TO 2$ TO RESTORE PSW ;- 000070 1 000070 1 012716 000074 1 000074 1 000002 LET (SP) := #2$ MOV 000076 1 #2$,(SP) INLlNE <RTI> RTI ;+ ; MUST BE AN 11/70, BECAUSE OF TRAP 000076 1 000076 1 000076 1 000076 1 052701 INLINE <2$:> LET R1 2$: :::: R1 SET.BY #PDP70 SIS 010000 #PDP7C1,R1 ;+ ; RESTORE RESERVED INSTRUCTION TRAP 000102 1 000102 1 000102 1 000102 1 012637 000106 1 000106 1 000411 000110 1 INLINE <3$:> 3$: POP @#10 000010 ELSE MOV (SP)+,@#10 BR 50003$ MOV 1VI0V MOV R5,-(SP) #PSW,···(R5) PC t HRDADRCHI-< (SP)+,R5 Bce 50004$ SIS #PDPLSI,R1 :;i0002$ : ;+ ; CHECK TO SEE IF LSI11 ;- 000110 1 000110 1 000112 1 000116 1 000122 1 000124 1 000124 1 000126 1 000126 1 000132 1 000132 1 000132 1 000132 1 CALL HRDADRCHK IN <#PSW> 010546 012745 004767 012605 177776 OOOOOOG dSR IF.ERROR THEN 103002 052701 LET R1 "- R~ SET.BY #PDPLSI 020000 ENDIF 5i0004$ : ENDIF 5i0003$ : SIZPLS SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) 20-SEP-78 18:46 SIZPLS.MAC 02-AUG-78 11 :44 KERNEL - DETER~,nNEIF CACHE OPTION AVAILABLE 686 687 688 689 690 691 692 693 (3) (4) (3 ) (3) 694 (6) 695 (6) 696 (4) 697 PAGE 21-2 SEQ 1116 .SBTTL KERNEL - DETERMINE IF CACHE OPTION AVAILABLE ;+ ; DETERMINE IF CACHE MEMORY IS PRESENT BY CHECKING CACHE ; CONTROL REGISTER 000132 1 000132 1 000134 1 000140 1 000144 1 000146 1 000146 1 000150 1 000150 1 000154 1 000154 1 CALL HRDADRCHK IN <CCNTRl> 010546 016745 004767 012605 MOV OOOOOOG OOOOOOG MOV R5 , -(SP) CCNTRL , -(R5) PC,HRDADRCHK (SP)+,R5 8CS 50005$ SIS #CAPRE.S Ri MOV JSR IF.NO.ERROR THEN 103402 lET R1 052701 : = R1 SET. BY #CAPRES 000004 ENDIF 50005$: I SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) 20-SEP-78 10:46 SIZPLB.MAC 02-AUG-7811:44 KERNEL - DETERMINE IF CACHE OPTION AVAILA8LE 699 700 701 702 703 704 705 706 707 708 (4) 709 710 (4) 711 (4) (6) (9) 712 (3) (4) (3) (3) 713 (6) 714 (4) 715 716 717 718 719 720 721 (6) 722 (6) (9) 723 (6) 724 (4) (3) 725 (6) 726 (4) 727 (4) 728 (4) 729 730 731 732 733 PAGE :21-3 SEQ 1117 .SBTTL KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT ;+ ; GET STARTING ADDRESS OF PARITY TABLE, THEN DETERMINE IF ; PARITY CSR REGISTERS ARE AVAILABLE IF SO PLACE CSR ADDRESS ; IN PARITY TABLE. ;- 000154' 000154' 016200 000160' 000160' 000164' 000164' 000164' 000170' 000172' 000172' 000174' 000176' 000202' 000204' 000204' 000206' 000206' LET RO '- DT.PTA(R2) 000064 MOV DT.PTA(R2),RO MOV #SS.PCSR,R3 CMP BGT R3,#SS.PCLS 50007$ MOV MOV JSR MOV R5,-(SP) R3,-(R5) PC,HRDADRCHK (SP)+,R5 SCS 50010$ MOV R3, (RO)+ SIS #8IT01, (R3) BIT 8EQ #8IT01, (R3) 50011$ 8IS #ECCMEM,R1 SR 50012$ 815 #PA.RPR~ES, R1 CLR (R3) LET R3 '- #SS.PCSR 012703 172100 WHILE R3 LE #SS.PCLS DO 50006$: 020327 003035 010546 010345 004767 012605 172136 CALL HRDADRCHK IN <R3> OOOOOOG IF.NO.ERROR THEN 103414 LET (RO)+ .- R3 010320 000210' 000210' 052713 000214' 000214 1 032713 000220' 001403 000222 1 000222 1 052701 000226 1 000226 1 000402 000230 ' 000230 1 000230' 052701 000234 1 000234' 000234 1 000234' 005013 000236' 000236 1 ;+ ; DETERMINE IF ECC MEMORY, IF IT IS SET Ece MEMORY BIT IN ; CONFIGURATION WORD 0 ELSE SET PARITY PRESENT BIT IN ; CONFIGURATION WORD O. CLEAR THE PARITY CSR1S ;LET (R3) .- (R3) SELBY #BIT01 000002 IF #BIT01 SETIN (R3) THEN 000002 LET R1 000100 . - R1 SET. 8Y #ECCMEM ELSE =,0011$: LET R1 002000 . - R1 SET. BY #PARPRES ENDIF !;:i0012$: LET (R3) .- #0 ENDIF !5001 0$: ;+ IF 11/70 PROCESSOR THEN SET PARITY PRESENT IN CONFIGURATION ; WORD 0 AND POINT TO PARITY CSR + 4, ELSE POINT TO i PARITY CSH + 2 SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) 20-SEP-78 18:46 SIZPLB.MAC 02-AUG-7811:44 KERNEL - DETERMINE IF PARIIY OR ECC MEMORY PHESENT 734 735 (6) (9) 736 (6) 737 (6) 738 (4) (3) 739 (6) 740 (4) 741 (4) (3) 7~2 PAGE 21-4 SEQ 1118 ;- 000236 1 000236 1 000242 1 000244 1 000244 1 000250 1 000250 1 000254 1 000254 1 000256 1 000256 1 000256 1 000262 1 000262 1 000262 I 000262 1 000264 1 IF #PDP70 SETIN R1 THEN 032701 001405 010000 052701 002000 062703 000004 LET R1 BIT BEQ tlPDP70,R1 50013$ SIS #PARPRES,R1 ADD #4,R3 BR 50014$ ADD #2,R3 BR 50006$ . - R1 SET. BY #PARPRES LET R3 '- R3 + #4 ELSE 000402 50013$: LET R3 .- R3 + #2 062703 000002 ENDIF 50014$: ENDDO 000740 50007$: SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) SIZPLB.MAC 02-AUG-78 11:44 KERNEL - DETERMINE SYSTEM SIZE 744 745 746 747 748 749 750 751 (4) 752 753 754 755 756 757 758 759 (4) 760 (4) 761 762 763 764 765 766 (3) 767 (6) 768 (6) 769 (3) (4) (3) (3) 770 (6) 771 (2) 772 (4) 773 (3) (6) 774 775 776 777 778 779 (2) 780 (6) (9) 781 20-SEP-78 18:46 PAGE 21-5 SEQ 1119 .SBTTL KERNEL - DETERMINE SYSTEM SIZE ;+ ; NOW TAKE THE CONTENTS OF LOC. 0 (EXERCISER SIZE) ; AND LOAD IT INTO EXERCISER SIZE WORD ,' 000264 1 000264 1 016762 LET DT.ESIZ(R2) 000000 != 0 000044 MOV 0,DT.ESIZ(R2) CLR RO CLR R3 INC RO ADD #SS . OK:C ,R3 MOV MOV JSR MOV R5,-(SP) BCC 50016$ ;+ ; DETERMINE SYSTEM SIZE, WHICH CAN NOT BE GREATER ; THAN 28K. ; SET UP COUNTER OF 1K CHUNKS AND 1K BLOCK POINTER , '- LET RO '- #0 1 000272 000212 1 005000 000274 1 000274 1 005003 LET R3 '- #0 ;+ ; REPEAT UNTIL NON-EXISTENT MEMORY OR 28K OF MEMORY IS FOUND ;- 000276 1 000276 1 000276 1 000276 1 000300 1 000300 1 000304 1 000304 1 000306 1 000310 1 000314 1 000316 1 000316 1 000320 1 000320 1 000322 1 000322 1 000322 1 000322 1 000326 1 REPEAT 5,0015$: LET RO '- RO + #1 005200 LET R3 .- R3 + #SS.OKC 062703 004000 CALL HRDADRCHK IN <R3> 010546 010345 004767 012605 OOOOOOG R3,-(~~5) PC, HfWADRCHK (SP)+,R5 IF.ERROR THEN 103001 INLINE <BR 4$> SR 4$ 000403 ENDJ:F ~S0016$: UNTIL RO EQ #SS.28 020027 001363 CMP BNE 000034 RO,#SS.28 50015$ ;+ ; DETERMINE IF SYSTEM HAS 30K BY LOOKING AT FIRST ADDRESS IN I/O PAGE 000330 1 000330 1 000330' 000330 1 020027 000334 1 001011 000336 1 INLINE <4$:> 4$: IF RO EO #55.28 THEN 000034 CMP oNE CALL HRDADRCHK IN <#SS.RFS> RO.#SS.28 50017$ MACY11 30A(1052) SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES KERNEL - DETERMINE S~STEM SIZE 02-AUG-7811:44 SIZPLB.MAC (3 ) (4) (3) (3) 782 (6) 783 (6) 784 (4) 785 (4) 786 787 788 789 790 791 792 793 (4 ) 794 (4) (7 ) ( 7) (7 ) (7 ) (7 ) (7) 795 000336 1 010546 000340 1 012745 000344 1 004767 000350 1 012605 000352 1 0003521 103402 000354 1 000354 1 062703 000360' 000360' 000360' 000360' 20-SEP-78 18:46 PAGE 21-6 SEQ 1120 MOV R5,-(SP) #SS.RFS,-(R5) PC,HRDADRCHK (SP)+,R5 BCS 50020$ ADD H10000,R3 MOV MOV 160000 OOOOOOG JSR IF.NO.ERROR THEN LET R3 : = R3 + #10000 010000 ENDIF 5·0020$ : ENDIF 5,0017$: ; -t' ; NOW GET MEMORY SIZE IN "PAR" FORMAT BY SHIFTING R3, 6 TIMES ; TO THE RIGHT, ONCE THIS IS DONE LOAD INTO SYSTEM ; SIZE WORD. '- , 000360' 000360' 000241 000362' 000362' 010362 000366 1 006062 000372 1 006062 000376 1 006062 000402' 006062 000406' 006062 000412 1 006062 LET CARRY . _. #0 LET DT.SSIZ(R2) 000046 000046 000046 000046 000046 000046 000046 .- R3 ROTATE -6 ClC MOV ROR ROR ROR ROR ROR ROR R3,DT.SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) 20-SEP-78 18:46 PAGE 21-7 SIZPLB.MAC 02-AUG-7811:44 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 797 798 799 800 801 802 803 (6) (8) (6) (9) (6) 804 805 806 807 808 809 810 (6) (9) 811 (4) 812 (4) 813 (4) 814 815 816 817 818 819 820 821 822 823 824 825 826 827 (4 ) 828 (2 ) 829 (4) 830 831 832 833 834 835 (2 ) 836 . (4) 837 SEQ 1121 .SBTTL KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT ;+ ; DETERMINE IF PARITY OR ECC MEMORY IS PRESENT. 000416' 000416' 000422' 000424' 000430' 000432' IF #PARPRES SETIN R1 OR #ECCMEM SETIN R1 THEN 032701 001003 032701 001424 002000 000100 BIT BNE BIT BEQ #PARPRES,R1 50021$ #ECCMEM,R1 50022$ BIT BEQ IICAPRES,R1 50023$ MOV #3,KONTRL MOV KONTRL,@CCNTRL CLR RO MOV @#4,-(SP) MOV #6$,@#4 50021$: ;+ ; IF CACHE PRESENT, SET BIT 0 AND 1 IN CACHE CONTROL REGISTER ; THIS WILL TURN CACHE OFF ;- 000432' 000432' 000436' 000440' 000440' 000446' 000446' 000454' 000454' IF #CAPRES SETIN R1 THEN 032701 001406 000004 012767 000003 LET KONTRL := 113 OOOOOOG LET @CCNTRL := KONTRL 016777 OOOOOOG OOOOOOG ENDIF 50023$: ;+ , SINCE PARITY OR ECC IS PRESENT AND TURNED OFF ; WILL NOW SET UP TO WRITE GOOD PARITY INTO ALL ; OF MEMORY ,' - ;+ ; SET UP POINTER AND SAVE BUSERR VECTOR ;- 000454' 000454' 005000 000456' 000456' 013746 000462' 000462 1 012737 LET RO '- 110 PUSH @1I4 000004 LET @tl4 ' - #6$ 000474' 000004 ;+ ; NOW WRITE GOOD PARITY 'f 000470' 000470' 000470' 000470' 011020 000472' INLINE<S$:> 5$: LET (RO)+ '- (RO) MOV INUNE <SR 5$> (-RO), (RO)+ SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) 20-SEP-7818:46 PAGE 21-8 SIZPLB.MAC 02-AUG-7811:44 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT (2) 838 839 840 841 842 843 844 (2) 845 (2) 846 (2) 847 848 849 (4) 850 851 852 853 854 855 (6) (9) 856 (6) 857 (4) 858 859 860 861 862 863 864 (6) 865 (6) 866 SEQ 1122 BR 5$ 000472' 000776 ;+ ; WILL TRAP HERE WHEN THROUGH, CLEAN UP STACK AND RESTORE BUSERR ;- 000474 1 000474 1 000474 1 000474 1 022626 000476 1 000476 1 012637 INLINE <6$:> 6$: INLINE <CMP (SP)+,(SP)+> CMF (SP)+, (SP)+ POP @H4 MOV 000004 000502 1 000502 1 (SP)+,@#4 ENDIF 50022$: ;+ ; IF AUTOMATIC MODE(ACT,SLIDE,XXDP,ETC.), SET AUTO BIT IN CONFIGURATION WORDO ;- 000502' 000502' 005737 000506' 001402 000510 1 000510' 052701 000514' 000514' IF @#42 NE #0 THEN 000042 LET R1 TST SEQ @l#42 50024$ SIS #AUTO,R1 BIC #SAM,F/1 SIS Ri ,DT .CFO(R2) := R1 SET.BY #AUTO 000010 ENDIF :;i0024$ : :+ ; CLEAN UP R1 BEFORE LOADING CONFIGURATION WORD 0 ; LOAD UP CONFIGURATION WORD 0 0005141 000514' 042701 000520' 000520' 050162 LET R1 •- R1 CLR. SY #5AM 075464 LET DT.CFO(R2) := 000014 DT.CFO(~~) SET.BY R1 SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES SIZPLB.MAC 02-AUG-7811:44 KERNEL - SORT 868 869 870 871 872 873 874 875 (4) 876 (4) 877 (4) (6) (9) 878 (6) 879 (6) 880 (4) (3) 881 882 8B3 884 885 886 887 (4) 888 889 890 891 892 893 (4) (6) (9) 894 (3) 895 896 897 898 899 900 (4) 901 (6) (9) 902 903 904 905 906 MACY11 30A(1052) LIST 20-SEP-78 18:46 PAGE 22 SEO 11~3 M~DULE .SBTTL KERNEL - SORT MODULE LIST ;+ ; COUNT THE MODULES ;- 000524 1 000524 1 000526 1 000526 1 000532 1 000532 1 000532 1 000536 1 000540 1 000540 1 000542 1 000542' 000546 1 000546 1 000550 1 LET RO '- #0 005000 LET R1 016201 000032 021127 001404 000000 CLR RO MOV DT.MLST(R2),R1 CMP BEQ (R1 ) ,#ENDLSr 50026$ INC RO ADD #'l,R1 BR 50025$ MOV DT .MLST(R2) ,R1 TST BLE RO 50030$ ,- DT.MlST(R2) WHILE (R1) NE #ENDLST DO 50025$: LET RO '- RO + #1 005200 LET R1 062701 := R1 + #2 000002 ENDDO 000771 50026$: ;+ • START THE SORT OPERATION, AND SORT "BKMODSII TO BOTTOM OF ; MODQ LIST, DEVELOPING A "BKIViOD QUEUE", . '- 000550 1 000550 1 016201 LET R1 := DT.MLST(R2) 000032 ;+ ; WORK THRU THE LIST UNTIL THE END IS PEACHED o- r WHILE RO GT #0 DO 1 000554 000554 1 000554 1 005700 000556 1 003432 000560' 000560 1 50027%: REPEAT ~i0031$: ;+ ; IS THE CURRENT ENTRY A BKMOD MODULE? ;- 000560 I 000560 1 011104 000562 1 000562 1 032764 000570 1 001414 LET R4 . - (R1) MOV IF #BKMOD SETIN STAT(R4) THEN 000020 BIT BEQ 000026 + THE CURRENT ENT~Y IS A B~MOD. WHAT ABOUT THE NEXT ENTRY? #BKMOD,STAT(R4) 50032$ SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) SIZPLB.MAC 02-AUG-78 11 :44 KERNEL - SORT MODULE LIST 907 (4) 908 909 910 911 912 913 (6) (9) 914 915 916 917 918 919 (6) (9 ) 920 (4) 921 (4) 922 (4 ) 923 (4) 924 (4) 925 926 927 928 929 930 (6) 931 ( 3) (G) 932 933 934 935 936 937 (6) 938 (4 ) 939 (4 ) (3) 940 941 942 943 944 945 000572' 000572' 016103 PAGE 22-1 SEQ 1124 LET R3 := 2(Rl) MOV 2(R1) ,R3 CMP BEQ R3,#ENDLST 50033$ MAKE SURE ITS NOT THE END OF THE LIST IF R3 NE #ENDLST THEN 000000 + 000604' 000604' 000612 1 000614 1 000614 1 000620' 000620' 000622 1 000622' 000622' 000622' 00062.2 ' 000622' 18:46 000002 + 000576' 000576' 020327 000602' 001407 20-SEP-78 032763 001003 000020 011161 000002 IF ITS NOT A BKMOD, SWAP THEM IF #BKMOD NOTSETIN STAT(R3) THEN BIT #BKMOO,STAT{R3) BNE 50034$ LET 2(R1) := (R1) MOV (R1) ,2(Rl) LET (R1) := R3 MOV R3, (R1 ) ENDIF 50034$: 000026 010311 ENDIF 50033;Ji: ENDIF 50032$: .... UPDATE THE POINTER AND CONTINUE SEARCHING THRU THE LIST 000622' 000622' 062701 000626 1 000626' 021127 000632 1 001352 LET R1 . - Rl + #2 000002 ADD #2,R1 CMP BNE (R1 ), II'ENDLST 50031$ UNTIL ( R1) EO #ENDLST 000000 ;+ ; THE END OF THE LIST HAS BEEN REACHED, SO UPDATE THE MAIN POINTER & COI'IJT I NUE . 0- 000634' 000634' 005300 000636' 000636' 016201 000642' 000642 1 000744 000644' LET RO .- RO - #1 LET R1 . - DT.MLST(R2) 000032 DEC RO MOV DT.MLST(R2),Rl BR 50027$. ENDDO 50030$: ;+ ; NOW THAT THE BACKGROUND MODULES HAVE BEEN GROUPED TOGETHER AT THE END ; OF THE MODULE LIST, PUT THE ADDRESS OF THIS BACKGROUND LIST (IF THERE IS ; A BACKGROUND LIST) INTO THE DATA TABLE ; -. SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACV11 30A(1052) SIZPLB.MAC 02-AUG-7811:44 KERNEL - SORT MODULE LIST 946 947 (4) 948 949 950 951 952 953 (4) 954 (41 955 (4) (6) (9) (6) (9) 956 (4) 957 (6) (9) 958 959 960 961 962 963 (4) 964 (4) 965 (4) 966 (4} (3) 967 968 969 970 971 972 (6) 973 (4) 974 (4) (3) 975 976 977 978 979 980 (3) 000644' 000644' 016201 LET R1 18:46 PAGE 22-2 := DT.MLST(R2) 000034 012703 177777 021127 001420 005703 001416 000000 DT.MLST(R2),R1 WORK THRU THE MODULE LIST UNTIL THE FIRST BACKGROUND MODULE IS FOUND LET DT.BLST(R2) := #0 005062 SEQ 1125 MOV 000032 + 000650' 000650' 000654' 000654' 000660' 000660 ' 000660' 000664' 000666' 000670' 000672' 000672' 000674' 000674' 000702' 20-SEP-78 LET R3 : = #-1 CLR DT.BLST(R2) MOV #-1,R3 CMP BEQ TST BEQ (R1),ltENDLSl' 50036$ R3 50036$ MOV (R1),R4 BIT SEQ #SKMOD,STAT(R4) 50037$ WHILE (R1) NE #ENDLST AND R3 NE #0 DO 50035$: LET R4 . - (R 1 ) 011104 032764 001406 IF #BKMOD SETIN STAT(R4) THEN 000020 000026 ;+ ; A BACKGROUND MODULE HAS BEEN FOUND - SO THIS IS THE START OF THE BACKGROUND LIST ;- 000704' 000704' 000710' 000710' 000714 1 000714 1 000716' 000716' 000720' LET DT.BLST(R2) .- R"I 010162 000034 012701 000000 LET R1 LET R3 .- #0 005003 ELSE 000402 MOV #ENDLST,R1 CLR R3 SR 50040$ ADD #2,R'1 BR 50035$ JSR PC,RESREG UPDATE THE POINTER AND CONTINUE TO SEARCH THRU THE MODULE LIST LET R1 000002 . - Ri + #2 ENDIF 50040$: ENDDO 50036$: + 000726' 000726' 004767 R1,DT.BLST(R2) 50037$: + 000720' 000720' 062701 000724 1 000724' 000724' 000724' 000755 000726' MOV . - #ENDLST NOW RETURN TO THE CALLER CALL RESREG OOOOOOG SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES MACY11 30A(1052) SIZPLB.MAC 0.2-AUG-78 11:44 KERNEL - SORT MODULE LIST 981 (3 ) (3 ) (.2 ) 982 983 984 985 986 987 (2 ) 988 989 990 991 992 993 994 995 996' 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 000732 1 000732 1 0007321 000732' 000207 20-SEP-78 18:46 PAGE 22-3 SEQ 1126 ENDRTN 50000$: 50001$: RTS PC ;+ ; LABEL TYPE QUEUE HIGH LIMIT INLINE <OV.TQEND:> 000734' 000734 1 OV.TQENO: ;************************************** ; NOTE: THESE OVERLAY EQUATES MUST BE LEFT IN THIS POSITION (THAT IS, AFTER SIZPOL AND TQ.END LABELS) ;++++++++++++++++++++++++++++++++++++++ OVERLAY REGIONS EQUATES 000000 1 0001221 000314 1 000120 1 000122 000312 1 000036 000420 000000 000734 1 000042 000001 ;++++++++++++++++++++++++++++++++++++++ OV.KBBUF = S!ZPOL ;KEYBOARD BUFFER STARTING ADDRESS OV.CQ= OV.KBBUF + AD<82> ;CONTROL QUEUE STARTING ADDRESS Ov.TQ = OV.CQ + AD<122> ;TYPE QUEUE STARTING ADDRESS ;KEYBOARD BUFFER HIGH LIMIT OV.HIKB = OV.CQ - 2 ;KEYBOARD BUFFER SIZE OV.KBSIZ = OV.CQ - OV.KBBUF OV.HICQ = OV.TQ - 2 ;CONTROL QUEUE HIGH LIMIT ;CONTROL QUEUE SIZE OV.CQSIZ = <OV.TQ - OV.CQ>/4 OV.A = OV.TQEND - OV.TQ ;GET THE TO SIZE ;GET ANY REMAINDER OV.REM = OV.A - «OV.A/10>*10> OV.HITQ = OV.TQEND - OV.REM ; TYPE QUEUE HIGH, LIMIT OV.TQSIZ = <OV.TQEND - OV.TQ - OV.REM> /10 ;TYPE QUEUE SIZE .END SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES SYMBOL TABLE SIZPLB.MAC 02-AUG-78 11 : 44 ACSR 000102 ACTBIT= 004000 ADDR22= 001000 000006 ADR APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEM8= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BITO 000001 BITOO 000001 BITOl 000002 BIT02 000004 BIT03 000010 BIT04 000020 BIT05 : 000040 BIT06 000100 BIT07 000200 BIT08 000400 BIT09 001000 BIT1 000002 BIT10 002000 BI T1 "/ 004000 BIT12 010000 BIT13 020000 BIT14 040000 BIT15 100000 BIT2 000004 BIT3 000010 BIT4 000020 BITS 000040 BIT6 000100 BIT7 000200 BITB 000400 BIT9 001000 BKDEF 000002 BKMOD 000020 BV,MODE= 04000'0 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CCNTRL= ****** G CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CPUCPE= ****** G CQOVF 000001 000015 CR CSRA :::: 000100 CSRC = 00010.2 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR: 000020 DT.EST= 000044 Dl.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBF.= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 00CC66 DT.SMX= 000106 DT.SP :: 000006 DT.SSI= 000046 DT.STO::: 00001C DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 MACY11 30A(1052} 20-SEP-78 18:46. PAGE :23 SEQ 1127 ENBNUL= 000001 ENDLST·= . 000000 EOPBlt:::: 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDADR= ****** G HRDCNT= 00004Q HRDPAS= 000050 HTPAER= ****** G ICONT :: 000036 ICOUNT= 000040 00012.2 IDNUM IE - 000100 INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 INIT 000030 INTR 000120 lOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 JACK 035060 KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4:: 172350 KIPAR5= 172352 f<I PAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 f< I PDR6:: 172314 KIPDR7= 172316 KONTRL= ****** G KTERRO= 000040 KTPRES= 000400 KTSTAT= 000020 KTXTND:: 040000 000012 LF LPSTAT= 000001 = MAPST A=: MED MEMPAS=: MODEXH=: MODHOL=: MODSEL= MSGCKD:: MSGCKS::: MSGDER=: MSGDRp:: MSGEC;,:: MSGEOp:: MSGHDR:: MSGHNG:: MSGHRD:: MSGMAp:: MSGNU L:: MSGPOP:: MSGPRM:: MSGRES:~ MSGSFT:: MSGSKE'= MSGSMB:: MSGSMH::: MSGSMS= MSGSTD:: MSGSYS:: MSGVEC::: NBKMOD= NCPUOp:: NOAPTY:= NULL OV.A OV.CO OV.CQS= OV.HIC= OV.HIK= OV.HIT= OV.KBB= OV.KBS= OV.REM= OV.TQ = OV.TOE OV.TOS= Ol}lEN PAERR == PARPRE= PARSTA= PASCNT= PDPLSI= PDP60 PDP70 PRIO 000200 075600 040000 004000 00:2000 001000 000010 000011 000005 000017 177777 000013 000004 00OO2~ 000007 000021 177775 000002 177776 000001 008006 000003 000015 000014 000016 000000 00a012 000020 001000 000020 000002 000000 000420 000122RG 000036 G 000312RG 000120RG 000734RG OOOOOORG 000122 G 000000 000314RG 000734R 000042 G 024020 000010 002000 000100 000034 020000 004000 010000 000000 PRI1 PRI4 PRI5 = 000040 000200 000240 . PR 16 000300 000340 PRI7 000000 PRO Pl~4 000200 PR5 000240 000300 PR6 000340 PR7 177776 PS PSW 177775 RANNUM= 000054 RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI= 000022 RELER~:: 000020 RELMOD= 020000 RELTIM= 010000 RESREG= ****** G RES! 000056 RES2 000060 RICHAR::: 031060 RPTDAT::: 002000 RSTRT = 000112 RUBOUT= 000177 RUNfViOD= 100000 R5V~,LU= 0017401 SlI,M 075464 SAVREG= ****** G SBADR ::: 000102 S8Kf';10D= 000000 SBKSEL= 010000 SC.ADR= oaOOOE; SC.ALC= 000014 SC.APC= 00001E; SC.CKL= 000002 sc. CKP= 000004 sc. CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 S I ZPO L OOOOOORG SOFCNT= 000042 SOFPAS= 00004G SPACE = 000040 SPOINT= OOOC3:~ SPVALU= 002200 SRO 17757~2 177574 SR1 SIZPLB SIZE AND POLL SYSTEM - FOR NON-KT MACHINES SYMBOL TABLE SIZPLB.MAC 02-AUG-78 11 : 44 UIPAR2= 177644 UIPAR3= 177646 U!PAR4= 177650 U!PAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 U!PDRO= 177600 U!PDR1= 177602 U!PDR2= 177604 UIPDR3= 17'7606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 WTWHMI= 000222 XFLAG = 000005 SR2 177576 5R3 172516 S5.l0P= 177600 S5.PCl= 172136 5S.PCS= 172100 SS.RFS= 160000 55.0Ke= 004000 5S.28 = 000034 STAT 000026 5'rATBI= 064757 STAT1 = 000027 SU5,PND= 000001 SVRO 000062 SVR1 000064 000066 5VR2 SVR3 000070 SVR4 000072 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 ASS. 000000 000734 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:SIZPLB,DSKZ:SIZPLB=SPMAC/ML,EQUATE,SIZPLB RUN-TIME: 23 14 .4 SECONDS RUN-TIME RATIO: 59/38=1.5 CORE USED: 14K (27 PAGES) MACY11 30A(1052) 20-5EP-78 18:46 PAGE 23-1 SEQ 1128 Oa002.3 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110, $F$INC= 000210 $F$LOO= 000200 $F$NAM= OOO~60 $F$NO = 000,103 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$lHE= 000330 $F$TRU= 000404 $F$UNT= 000130 $F$WHI= 000120 $F$YES:' $IFLEV=: $ISKO -. $ISK1 _. $ISK2 :: $ LOCT A:= $LSTIN:: $LSTTA:: $NEST L:= $NSKO $NSK1 $NSK2 $NSK3 $NSK4 $NSI<5 $SAVLE= $SSKO ,$TAGLE= $TAGNU= $TEMP $TSKO $TSK1 $ TSI{2 $TSK3 $TSK4 000402 177777 000001 000001 000001 177777 000001 000001 177777 000300 000120 000110 000110 000110 000 110 177777 050036 177777 050041 000300 0::;0035 050036 050040 050032 050033 $T5K5 = 050034 $$ARGC= 000002 $$SYTE= 000403 $$CASE= 000000 $$D5T = 000000 $$ELOC= 000402 $$ERFL= 000000 $$F LAG= 000001 $$FROM= 000000 $$ LOC = 00Q702R $$LOCN= 000000 $$REG = 177777 $$RETU= OOOOOi) $$RTN1= 050000 $$RTN2= 050001 $$SRC = oooooel $$TG5V= 000000 $$TGS1= 000 OOCI $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 000734R .MAIN. MACY1130A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 564 567 618 695 726 771 862 987 18:47 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000' .PRINT ;SPMJ~C: VERSION 1.1 KERNEL - DETERMINE PROCESSOR TYPE KERNEL - DETERMINE CPU OPTIONS KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT KERNEL - DETERMINE SySTEM SIZE KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT KERNEL - SORT MODULE LIST SEQ 1129 SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(1052) SIZPLC.MAC 08-SEP-78 09:35 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 55= 556 557 558 559 560 561 20-SEP-78 18:47 PAGE 19 SEQ 1130 .TITLE SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS .IDENT jVO:Oj ;++ MODULE NAME: SIZPLC FUNCTIONAL DESCRIPTION: THIS MODULE WILL SIZE THE SYSTEM FOR CPU TYPE AND PROCESSOR OPTIONS. IT ltJILL ALSO SIZE MEMORY AND IF "PARITY" OR "ECC MEMOHY WILL WRITE GOOD PARiTY. THE "MODQ" LIST WILL BE SORTED TO DEVELOP A BACKGROUND MODULE LIST (QUEUE) NOTE: IT WILL NOT SIZE FOR 22-BIT ADDRESSING II INPUTS: DTABLE ADDRESS IMPLICIT IN.PUTS: CONFIGURATION WORD 0 EXEHCISER SIZE SYSTEM SIZE PARITY TABLE ADDRESS MODULE LIST BAC~;GROUND LI S T OUTPUTS: NONE IMPLICIT OUTPUTS: PARITY TABLE ADDRESS SYSTEM SIZE EXEF1CISE SIZE CONFIGURATION WORD 0 PATHOLOGICAL CONNECTIONS: SUBORDINATE ROUTINES CALLED: SAVREG - SAVE REGISTERS RESREG - RESTORE REGISTERS KTSET - SET UP KT REGISTERS HRDADRCHK - ILLEGAL ADDRESS CHECK FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL SIZPOL IN <A> A - DTABLE ADDRESS VEKSION: 0.0 , '-- EDIT DATE BY REASON SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(1052) SIZPLC.MAC 08-SEP-78 09:35 COMMON EQUATE MODULE 563 564 565 566 567 (1) 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 ,603 604 605 606 607 608 609 610 611 612 613 614 615 616 20-SEP-78 18:47 PAGE 20 .SBTTL COMMON DEFINITIONS AND REFERENCES 000000 1 000000' 000001 000001 .MCAll STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $ LST IN = 1 $LSTTAG = 1 ;**************** ; GLOBAL REFERENCES , .GlO!3L .GlOBL .GlOBl .GLOBL .GLOBl .GLOBL .GlOBl .GlOBl .GlOBl HTPA.ER HTKT SAVf;:EG RESREG KTSET HRDt.DRCHK CPUCPE CCNTRL KONTRL ; PArH TY VECTOR ;KT VECTOR ;SARE REGISTERS ;RESTORE REGISTERS ;SET UP KT ;IllEGAL ADDRESS CHECK ;11/70 CPU ERROR REGISTER ;CACHE CONTROL REGISTER ;TEMPORARY STORAGE FOR CACHE CONTROL REGISTER ;**************** ; LOCAL EQUt.TES , 172100 172136 004000 000034 000040 120000 177600 160000 5S.PCSR S5.PClS S5.0KC 55.28 5S.1 KP :; 5S.120K S5.l0P S5.RFS 172100 172136 4000 ~D28 40 ,20000 177600 1 EiOOOO ;START OF PARITY CSRS ;LAST PARITY eSR ;ONE K CHUNK ;28 DECIMAL ;1K IN PAR FORMAT ;FIRST ADDRESS IN PAR5 MAP ; I/O PAGE iRESERVED FOR DIAGNOSTIC USE IN I/O PAGI~ ;**************** ; REFERENCED BY OTHER MODULES , .GlOBl SIZPOL ;++++++++++++++++++++++++++++++ OVERLAY REGION GLOBALS ;++++++++++++++++++++++++++++++ .GLOBl .GlOBL .GLOBl .GLOBL .GLOBl .Gl08l .GlOBL .GLG8L .GlOBL OV.KBBUF OV.HII<B OV.KB5IZ OV.CQ OV.HICQ OV.CQSIZ OV.TQ OV.HITQ OV.TQSIZ ;MODULE ENTRY POINT SEQ 1131 SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(10S2) 20-SEP-78 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - DETERMINE PROCESSOR TYPE 618 619 620 621 622 (2) 623 624 625 (4) 626 (4) 627 628 (4) 629 (4) 630 631 632 633 634 635 636 637 (3) 638 (4) 639 (4) 640 641 642 643 644 645 (3) (4) (3) (3) 646 647 (6) 648 649 650 651 652 653 (2) 654 (4) 655 (2) 656 (2) 18:47 PAGE 21 SEQ 1132 .SBTTL KERNEL - DETERMINE PROCESSOR TyPE 000000 1 000000 1 ROUTINE SIZPOL <DTABLE> 000000 1 000000 1 012737 000006 1 000006 1 012737 000014 1 000014 1 012737 000022 1 000022' 012737 SIZPOL.: LET @#114 := #HTPAER OOOQOOG 000114 000340 LET @l#116 ._. #PRI7 000116 LET @#250 := #HTKT OOOOOOG 000250 LET @l#252 .- NPRI7 000340 000252 MOV #HTPAER,@l#114 MOV #PRI7,@#116 MOV #HTKT,@l#250 MOV ;+ ; STUFF PARITY AND KT VECTORS ; SAVE REGISTERS, GET DTABLE ADDRESS FROM R5 STACK AND CLEAR ; R1 000030' 000030' 004767 000034' 000034 1 016502 000040 1 000040 1 0050C 1 CALL SAVREG OOOOOOG JSR PC,SA\lREG MOV DTABLE(R5),R2 CLR R1 MOV MOV JSR MOV R5,-(SP) CPUCPE,-(R5) PC,HRDADRCHK (SP)+"R5 BCS 50002$ MOV @l#10,-(SP) MOV #1$,@l#10 LET R2 '- DTABLE(RS) 000000 LET R1 .- #0 ;+ ; DETERMINE PROCESSOR TYPE; 11/70, 11/60 OR LSI11 000042 1 000042 1 000044 1 000050' 000054' CALL HRDADRCHK IN <CPUCPE> 010546 016745 004767 012605 OOOOOOG OOOOOOG IF.NO.ERROR THEN 000056 1 000056 1 103422 ;+ ; SET UP ILLEGAL INSTRUCTION TRAP TO FIELD TRAP IF NOT ; 11/60 ; .- 000060 1 000060 1 000064 1 000064' 000072 1 000072 1 000074 1 000074' PUSH @l#10 013746 000010 012737 000104' 000010 076600 000101 LET @l#10 := #1$ INLINE <MED> MED INLINE <RDSERV> RDSERV MACY'I1 30A(1052) 20-SEP-78 SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS KERNEL - DETERMINE PROCESSOR TYPE 08-SEP-78 09:35 SIZPLC.MAC 657 (6) 658 (2 ) 659 660 (2 ) 661 662 663 664 665 666 (4) 667 (2) 668 669 670 671 672 673 (2 ) 674 (6) 675 676 677 678 679 680 (2) 681 (2 ) 682 (4) (3 ) 683 684 685 686 687 688 (3 ) (4) (3) (3) 689 (6) 690 (6) 691 692 (4) 693 (4) 000076 ' 000076 ' 052701 000102 ' 000102 ' 000405 LET I~ 1 18:47 PAGE 21-1 SEQ 1133 : = R1 SET.BY #PDP60 BIS 004000 INLINE <BR 3$> BR 3$ INLINE <1$:> 000104 ' 000104 ' HPDP60,R1 1$: ;+ ; SET RETURN TO 2$ TO RESTORE PSW , 000104 ' 000104 ' 012716 000110 ' 000110 ' 000002 LET (SP) 000112 ' := #2$ MOV INLINE <RTI> H2$,(SP) RTI ;+ ; MUST BE AN 11/70, BECAUSE OF TRAP , 000112 ' 000112 ' 000112 ' 000112 ' 052701 INLINE <2$:> LET R1 2$: . - R1 SET.BY #PDP70 BIS 010000 HPDP70,R1 ;+ ; RESTORE RESERVED INSTRUCTION TRAP , 000116 ' 000116 ' 000116 1 000116 1 012637 000122 ' 000122 ' 000411 000124 1 INLINE <3$:> 3$: POP @#10 000010 ELSE MOV (SP)+,@l#10 BR 50003$ MOV MOV JSR MOV R5,-O:;P) #PSW,-'(R5) PC,HRDADRCHK (SP)+,R5 BCC 50004$ BIS #PDPLSI,R1 50002$: + CHECK TO SEE IF LSI11 000124 ' 000124 1 000126 1 000132 1 000136 ' 000140 1 000140 ' 000142 ' 000142 1 000146 1 000146 1 000146 1 000146 ' CALL HRDADRCHK IN <HPSW> 010546 012745 004767 012605 177776 OOOOOOG IF.ERROR THEN 103002 052701 LET R1 . - R1 SET.BY #PDPLSI 020000 ENDIF ENDIF ~30004$ : 50003$: SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACYi1 30A(1052) 20-SEP-78 SIZPLC.MAC OB-SEP-78 09:35 KERNEL - DETERMINE CPU OPTIONS 695 696 697 69B 699 700 701 702 (3 ) (4) (3) (3) 703 (6) 704 (6) 705 (3) (4) (3) (3) 706 (6) 707 (6) 708 709 (4 ) 710 (4) 711 712 713 714 715 716 717 718 719 720 (3 ) (4) (3) (3) 721 (5) 722 (6) 722 (4) 724 18:47 PAGE 21-2 SEQ 1134 .SBTTL KERNEL - DETERMINE CPU OPTIONS ;+ ; DETERMINE IF "KTII IS PRESENT AND IF IT IS CHECK TO ; SEE IF EXTENDED KT" IS PRESENT , 000146 1 000146' 000150' 000154' 000160 1 000162 1 000162' 000164' 000164' 000170 1 000170' 000172' 000176' 000202 1 000204' 000204 1 000206' 000206 1 CALL HRDADRCHK IN <#SRO> 010546 012745 004767 012605 IF.NO.ERROR THEN LET R1 000400 010546 012745 004767 012605 172516 OOOOOOG . - R1 SET.BY #KTPRES CALL HRDADRCHK IN <#SR3> IF.NO.ERROR THEN 103402 052701 LET R1 . - R1 SET.BY #KTXTND 040000 ENDrF 000212 1 000212 1 000212 1 000212 1 BCS 50005$ BIS #KTPRES,R1 MOV MOV JSR MOV R5,-(SP) #SFi:3,--(R5) PC,HRDADRCHK (SP)+,R5 BCS 50006$ BIS #KTXTND,R1 MOV MOV MOV R5,. '"'(SP) CCNTRL,-(H5) PC,HRDADRCHK (SP)+.,R5 BCS 50007$ BIS #CAPRES,R1 JSR 103413 052701 MOV R5,-(SP) #SRO,-'(R5) PC,HRDADRCHK (SP)+,R5 M:JV MOV 17757'2 OOOOOOG :50006$ : ENDIF ~;0005$ : ;+ ; NOW DETERMINE IF CACHE MEMORY IS PRESENT BY CHECKING ; CACHE CONTROL REGISTER ;- 000212' 000212 1 000214' 000220 1 000224 1 000226' 000226 1 000230 1 000230 1 000234 1 000234' CALL HRDADRCHK IN <CCNTRL> 010546 016745 004767 012605 OOOOOOG OOOOOOG JSR IF.NO.ERROR THEN 103402 LET R1 032701 := R1 SET.BY #CAPRES 000004 ENDIF !50007$ : SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(1052) 20-SEP-78 18:47 PAGE 21-3 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT 726 727 728 729 730 731 732 733 734 (4) 735 736 (4) 737 (4) (6) (9) 736 (3) (4) (3L (3) 739 (6) 740 (4) 741 742 743 744 745 743 747 (6) 748 (6) (9) 749 (6) 750 (4) (3) 751 (6) 752 (4) 753 (4) 754 (4) 755 756 757 758 759 760 SEQ 1135 .SBTTL KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT ;+ ; GET STARTING ADDRESS OF PARITY TABLE. THEN DETERMINE IF ; PARITY CSR REGISTERS ARE AVAILABLE IF SO PLACE CSR ADDRESS ; IN PARITY TABLE. ,' 000234' 000234' 016200 000240' 000240' 000244' 000244' 000244' 000250' 000252' 000252' 000254' 000256' 000262' 000264' 000264' 000266' 000266' LET RO '- DT.PTA(R2) 000064 MOV DT . PT A ( R2) , I~O MOV #SS.PCSR,R3 CMP BGT R3,#SS.PCLS 50011 $, MOV MOV MOV R5,-(SP) R3,-(R:5) PC,HRDADRCHK (SP)+,R5 BCS 50012$ MOV R3 t (R())+ BIS #B1T01i, (R3) EET SEQ 50.0 13$ BIS #ECCMEM,R1 BR 50014$ BIS #PARPHES,H1 CLR (R3) LET R3 '- #SS.PCSR 012703 172100 WHILE R3 LE #SS.PClS DO 020327 003035 010546 010345 004767 012605 172136 CALL HRDADRCHK IN <R3> JSR OOOOOOG IF.NO.ERROR THEN 103414 LET (RO)+ .- R3 010320 ;-i- 000270' 000270' 000274' 000274' 000300' 000302' 000302 1 000306' 000306' 000310' 000310' 000310' 000314' 000314' 000314' 000314 1 000316 1 00031E' ; DETERMINE IF ECC MEMORY, IF IT IS SET ECC MEMORY BIT IN ; CONFIGURATION WORD 0 ELSE SET PARITY PRESENT BIT IN ; CONFIGURATIONWORD,O. CLEAR THE PARITY CSR'S ;LET (R3) .- (R3) SELBY #BIT01 052713 000002 IF #BIT01 SETIN (R3) THEN 032713 001403 000002 052701 000100 LET R1 #BIT011, (R3) .- R1 SET.BY #ECCMEM ELSE 000402 ~)0013$: LET R1 052701 .- R1 SET. BY #PARPRES 002000 ENDIF !50014$: LET (R3) ..- #0 005013 ENDIF !30012$: ;+ ; IF 11/70 PROCESSOR THEN SET PARITY PRESENT IN CONFIGURATION ; WORD 0 AND POINT TO PARITY CSR + 4, ELSE POINT fO ; PARITY CSR + 2 ,' - SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(1052) 20-SEP-78 18:47 PAGE 21-4 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - DETERMINE IF PARiTY OR ECC MEMORY PHESENT 761 (6) (9 ) 762 (6) 763 (6) 764 ( 4') (3) 765 (6) 766 (4) 767 (4 ) (3) 768 769 000316' 000316' 000322' 000324' 000324' 000330' 000330' 000334' 000334' 000336' 000336' 000336' 000342' 000342' 000342 1 000342 1 000344 1 SEQ 1136 IF #PDP70 SETIN R1 THEN 032701 001405 010000 052701 002000 062703 LET R1 : = R1 SET.BY #PARPRES LET R3 . - r<3 + #4 000004 BIT BEQ #PDP70,R1 50015$ SIS #PARPRES,R1 ADD #4,R3 SR 50016$ ADD #2,R3 BR 50010$ ELSE. 000402 LET R3 062703 000002 .- R3 + #2 50015$: ENDIF 50016$: ENDDO 000740 6,0011$: SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(1052) ~O-SEP-78 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - DETERMINE SYSTEM SIZE 771 772 773 774 775 776 777 778 (4 ) 779 780 781 782 783 784 785 786 (6) (9) 787 788 789 790 791 792 (4) 793 (4) 794 795 796 797 798 799 (3l 800 (6) 801 (6 ) 802 (3 ) (4) (3) (3 ) 803 (6 ) 804 (2 ) B05 (4) 806 (3) (6) B07 B08 B09 18:47 PAGE 21-5 SEQ 1137 .SBTTL KERNEL - DETERMINE SYSTEM SIZE :+ ; NOW TAKE THE CONTENTS OF LOC. 0 (EXERCISER SIZE) ; AND LOAD IT INTO EXERCISER SIZE WORD 000344 1 000344 1 016762 LET DT.ESIZ(R2) "- 0 000000 000044 MOV 0, DT . ES I Z (R.2) BIT BNE #KTPRES,R1 50017$ CLR RO CLR R3 INC RO ADD #SS . O~~C , R3 MOV MOV JSR MOV R5,-(SP) R3,-(H5) PC,HRDADRCHK (SP)+,R5 BCC 50021$ j+ ; IF NO ~KT" DETERMINE SYSTEM SIZE, WHICH CAN NOT BE GREATER ; THAN 28K. ;- 000352 1 000352 1 032701 000356 1 001053 IF #KTPRES NOTSETIN R1 THEN 000400 ;+ ; SET UP COUNTER OF 1K CHUNKS AND 1K BLOCK POINTER LET RO '- #0 000360 1 000360 1 005000 000362 1 000362 1 005003 LET R3 .- #0 ;+ ; REPEAT UNTIL NON-EXISTENT MEMORY OR 28K 000364 1 000364 1 000364 1 000364 1 000366 1 000366 1 000372 1 000372 1 000374 1 000376 1 000402 1 000404 1 000404 1 000406 1 000406 1 000410 1 000410 1 000410 1 000410 1 000414' REPEAT ~;0020$ : LET RO '- kO + #1 005200 062703 010546 010345 004767 012605 LET R3 '- R3 + #5S.0KC 004000 CALL HRDADRCHK IN <R3> OOOOOOG IF.ERROR THEN 103001 INLINE <BR 4$> BR 4$ 000403 ENDIF UNTXL RO EQ #5S.28 020027 001363 000034 CMP BNE ;+ ; DETERMINE IF SYSTEM HAS 30K BY LOOKING AT FIRST ADDRESS IN I/O PAGE RO,#SS.28 50020$ SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACV11 30A(1052) 20-SEP-78 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - DETERMINE SYSTEM SIZE 810 811 812 (2) 813 (6) (9) 814 (3 ) (4) (3) (3) 815 (6) 816 (6) 817 (4 ) 818 (4) 819 820 821 822 823 824 825 826 (4) 827 (4) (7 ) (7 ) (7 ) (7 ) (7 ) (7 ) 828 (4 ) (3 ) 829 830 831 832 833 (3 ) (4) (3) (3 ) 834 835 836 837 838 839 840 18:47 PAGE 21-6 SEQ '138 , 000416 1 000416 1 000416 1 000416 1 020027 0004221 001011 000424 1 000424 1 010546 000426 1 012745 000432 1 004767 000436 1 012605 000440' 000440 1 103402 000442 1 000442 1 062703 000446 1 000446 1 000446 1 000446' INLINE <4$:> 4$: IF IW EQ #SS.28 THEN 000034 CALL HRDADRCHK IN <#SS.RFS> 160000 OOOOOOG CMP BNE RO,#SS.28 500 22~ii MOV MOV JSR MOV R5,-(SP) #SS.RFS,-(R5) PC,HRDADRCHK (SP)+"R5 BCS 50023$ ADD #10000,R3 IF.NO.ERROR THEN LET R3 . - R3 + #10000 010000 ENDIF ~)0023$ : ENDIF ~50022$ : ;+ ; NOW GET MEMORY SIZE IN "PAR" FOI~MAT BY SHIFTING R3, 6 TIMES ; TO THE RIGHT, ONCE THIS IS DONE LOAD INTO SYSTEM ; SIZE WORD. ;- 000446 1 000446 1 000241 000450 1 000450' 010362 000454' 006062 000460' 006062 000464 1 006062 000470' 006062 000474' 006062 000500' 006062 000504' 000504' 000435 000506 1 LET CARRY := #0 LET DT.SSIZ(R2) .' CLC - R3 ROTATE -6 000046 000046 000046 000046 000046 000046 000046 ELSE MOV ROR ROR ROR ROR ROR RJR R3,DT . SSIZ(R2) DT"SSlZ(R2) DT"SSIZ(R2) DT"SSIZ(R2) DT,SSIZ(R2) DT.SSIZ(R2) DT"SSIZ(R2) BR 50024$ MOV MOV JSR MOV R5,,-(SP) !50017$: ;+ ; KT IS PRESENT, ;- 000506 1 000506 1 010546 000510 1 010245 000512 1 004767 000516 1 012605 FIRST GO MAP APRS' CALL KTSET IN <R2> OOOOOOG ;+ WILL USE KIPAR5 TO SIZE MEMORY. TURN ON KT AND THEN SIZE UNTIL NON-EXISTENT MEMORY IS FOUND OR THE I/O PAGE IS FOUND. SIZING WILL 8E DONE IN 1K STEPS R2.-(f~5) PC,KTSET (SP)+,R5 SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(1052) 20-SEP-78 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - DETERMINE SYSTEM SIZE 841 (4) 842 843 (6) 844 845 (3) 846 (6) 847 (3) (4) (3) (3) 848 (6) 849 (2) 850 (4) 851 (3) (6) 852 853 854 855 856 857 (2) 858 (4) 859 (4) 860 000520' 000520' 012737 000040 172352 000526' 000526' 052737 000001 177572 000534' 000534' 000534' 000534' 000542' 000542' 000544' 000550' 000554' 000556' 000556' 000560' 000560' 000562' 000562' 000562' 000562' 000570' 18:47 PAGE 21-7 SEQ 1139 LET @#KIPAR5 := #SS.1KP LET @#SRO '- @#SRO SET.BY HSITOO MOV #S5. 1 K,P,@#K!PAR5 BIS #SITOO,@#SRO ADD #55. 11A:P,@HKI PAR5 MOV MDV JSR MOV R5,-(SP) #SS.120K,-(R5) PC,HRDADRCHK (SP)+,R5 Bec 50026$ REPEAT LET @#KIPAR5 := @#KIPAR5 + #SS.1KP 062737 000040 010546 012745 004767 012605 120000 OOOOOOG 172352 CALL HRDADRCHK IN <#SS.120K> IF. ERROR THEN 103001 INLINE <BR 5$> BR 5$ 000404 ENDIF :;0026$ : UNTXL @#KIPAR5 EO #SS.IOP 023727 001361 172352 + 000572 1 000572 1 000572' 000572 1 013762 000600' 000600 1 CMP BNE 177600 LOAD SYSTEM SIZE WORD WITH CONTENTS OF KIPAR5 INLINE <5$:> 5$: LET DT.SSIZ(R2) '- @#KIPAR5 172352 @#KIPAR5,#SS.IOP 50025$ MOV 000046 ENDIF ~50024$ : @#~(lPAR5,DT .SSIZ SIZPLC SIZE AND POLL SYSTEM - KT OPTICNS MACY11 30A(1052) 20-SEP-78 18=47 PAGE 21-8 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 862 863 864 865 866 867 868 (6) (8) (6) (9) (6) 869 870 871 872 873 874 875 (6) (9) 876 (4) 877 (4 ) 878 (4) 879 880 881 882 883 884 885 886 887 (6 ) (9) 888 (3) 889 890 891 892 893 894 895 (4) 896 (4) 897 898 899 900 901 902 SEQ 1140 .S8TTL KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT ;+ ; DETERMINE IF PARITY OR ECC MEMORY IS PRESENT. ;- 000600 1 000600 1 032701 000604 1 001003 000606 1 032701 000612 1 001500 000614 1 IF #PARPRES SETIN R1 OR #ECCMEM SETIN R1 THEN 002000 000100 BIT BNE BIT BEQ #PARPRES,R1 50027$ #ECCMEM,R1 50030$ 8IT 8EQ #CAPRES,R1 50031$ MOV #3,KONTRL MOV KONTRl.,@CCNTRL BIT 8EQ #KTPRES,R1 50032$ JSR PC"KTSET CLR @#f<l PDR6 CLR @#f<l PAR5 5,0027$: ;+ ; IF CACHE PRESENT, SET 8IT 0,1 ; THIS WILL TURN CACHE OFF IN CACHE CONTROL REGISTER .r 000614 1 000614 1 032701 000620 1 001406 000622 1 0006221 012767 000630 1 0006'30 I 016777 000636 1 000636 1 IF #CAPRES SETIN R1 THEN 000004 LET KONTRL := #3 000003 OOOOOOG LET @CCNTRL := KONTRL OOOOOOG OOOOOOG ENDJ:F !S0031 $: ;+ SINCE PARXTY OR ECC IS PP.ESENT AND TURNED OFF ; WILL NOW SET UP TO WRITE GOOD PARITY INTO ALL ; OF MEMORY, FIRST DETERMINE If KT IS PRESENT THEN SET ; UP KT REGISTERS. ;000636 1 000636 1 032701 000642 1 001426 000644 1 090644 1 004767 IF #KTPRES SETIN R1 THEN 000400 CALL KTSET OOOOOOG ;+ ; SET UP KIPDR6 TO TRAP WHEN ENTERING PAGE. AND ; SET UP KIPAR5 TO MAP TO 0 ;- 000650 1 000650' 005037 000654 1 000654 1 005037 LET @#KJPDR6 := #0 172314 LET @#KIPAR5 := #0 172352 ;+ ; SAVE KT ERROR VECTOR AND SET UP KT ERROR VECTOR TO ; GO TO 7$. THEN TURN ON KT AND SET UP BUSERR VECTOR AT 8$ ; SET UP RO TO USE PAR5 ;- MACY11 30A(1052) 20-SE?-78 18:47 PAGE 21-9 SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 08-SEP-78 09:35 SIZPLC.MAC 903 904 (2) 905 (4) 906 (2) 907 (4 ) 908 (6) 909 (4) 910 (4) (3) 911 912 913 914 915 916 (4) 917 (2) 918 (4) 919 (4) 920 921 922 923 924 (2) 925 (4) 926 (2) 927 928 929 930 931 932 933 934 (2 ) 935 (6) 936 (4) 937 (4) 938 (2) 000660 1 000660 1 000664' 000664 1 000672 1 000672 1 000676 1 000676 1 000704' 000704' 000712 1 000712' 000716' 000716 1 000720 1 SEQ 1141 PUSH @#4 013746 000004 012737 000760 1 000004 013746 000250 012737 000740 1 000250 052737 000001 012700 120000 MOV @#4,-(SP) MOV #8$,@#4 LET @#4 : = #8$ PUSH @#250 . - #7$ MOV @#250,-(SP) LET @#250 . - @#SRO SET.8Y #BXTOO MOV #7$,@#250 LET @#SRO SIS #BITOO,@#SRO MOV #SS.120K,RO BR 50033$ CLR RO MOV @#4,-(SP) MOV #10$ ,@1#4 177572 LET RO : = #SS.120K ELSE 000406 50032$: ;+ ; IF KT NOT PRESENT THEN SET UP POINTER AND SAVE BUSERR VECTOR ;- 000720 1 000720 1 005000 000722 1 000722 1 013746 000726 1 000726 1 012737 000734 1 000734' LET RO "- #0 PUSH @#4 000004 LET @#4 001006 1 000004 != '#10$ ENDIF 5,0033$ : i+ ; NOW WRITE GOOD PARITY 'f INLINE<6$:> 000734 1 000734 1 000734 1 000734 1 011020 000736 1 000736 1 000776 6$: LET (RO)+ := (RO) MOV (RO),(RO)+ INUNE <BR 6$> BR 6$ ;+ ; COME HERE BY WAY OF KT TRAP. ; UPDATE PAH5 TO NEXT 4K BLOCK AND RESET RO TO START ; OF BLOCK. LOAD RETURN PC WITH 6$ AND RTI of 000740 1 000740 1 000740' 000740 1 000746 1 000746' 000752' 000752' 000756' 000756' INLINE <7$:> 7$: LET @#KIPARS := @#KIPAR5 + #200 062737 000200 012700 120000 012716 000734' 000002 172352 LET RO := #SS.120K ADD #200,@#KIPAR5 MOV #SS.120K,RO MOV #6$,(SP) LET (SP) := #6$ INUNE <RTI> RTI SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(1052) 20-SEP-78 18:47 PAGE 21-10 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 939 940 941 942 943 944 945 946 (2) 947 (6) 948 949 (4) 950 (2 ) 951 952 (2) 953 (2 ) 954 (2 ) 955 (2 ) 956 957 958 959 960 961 962 (2) 963 (2 ) 964 (2 ) 965 966 (4) 967 968 969 970 971 972 973 (2 ) 974 (6) (9) 975 (6) 976 (4) 977 SEO 1142 ;+ ; COME HERE BY WAY OF ILLEGAL ADDRESS TRAP. ; TOP OF MEMORY WAS FOUND, TURN OFF MEMORY MANAGEMENT, ; REMOVE TRAP PC AND PSW FROM STACK AND RESTORE BUSERR AND MEMGMT VECTORS ;- 000760' 000760' 000760' 000760' 042737 000766' 000766' 012716 000772' 000772' 000002 000774' 000774' 000774' 000774' 012637 001000' 001000' 012637 001004' 001004' 000403 INLINE <8$:> 8$: LET @#SRO := @#SRO CLR.BY #BITOO 000001 177572 LET (SP) ; = #9$ 000774' BIC #BITOO,@#SRO MOV #9$,(SP) INLINE <RTI> RTI INLINE <9$:> 9$: POP @#250 000250 MOV (SP)+,@#250 MOV (SP)+,@#4 POP @#4 000004 INLINE <BR 11$> BR 11 $ ;+ ; WILL TRAP HERE IF NO MEMORY MANAGEMENT, CLEAN UP ; STACK AND RESTORE BUSERR ;- 001006' 001006' 001006' 001006' 022626 001010' 001010' 012637 INLINE <10$:> 10$: INLINE <CMP (SP)+,(SP)+> eMP (SP)+, (SP)+ POP @#4 MOV 000004 ENDIF 001014' 001014' (SP)+,@#4 50030$: ;+ ; IF AUTOMATIC MODE(ACT,SLIDE,XXDP,ETC.), SET AUTO BIT IN CONFIGURATION WORDO ;- 001014' 001014' 001014' 001014' 005737 001020' 001402 001022' 001022' 052701 001026' 001026' INLINE <11$::> 11 $: IF @H42 NE #0 THEN 000042 LET R1 @#42 50034$ E:lS #AUTO"R1 := R1 SET.BY #AUTO 000010 ENDIF TST BEQ 50034$: SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(1052) 20-SEP-78 18:47 PAGE 21-11 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 978 979 980 981 982 983 (6) 984 (6) 985 SEQ 1143 ;+ ; CLEAN UP R1 BEFORE LOADING CONFIGURATION WORD 0 ; LOAD UP CONFIGURATION WORD 0 ;- 001026' 001026' 042701 001032' 001032' 050162 LET R1 .- R1 CLR.BY #JACK 035060 LET DT.CFO(R2) := 000014 BIC #JACK,R1 SIS R1,DT.CFO(R2) DT.CFO(R2) SET.BY R1 SIZPlC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(1052) 20-SEP-78 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - SORT MODULE LIST 987 988 989 990 991 992 993 994 (4) 995 (4) 996 (4) (6 ) (9) 997 (6) 998 (6) 999 (4) (3) 1000 1001 1002 1003 1004 1005 1006 (4) 1007 1008 1009 1010 1011 1012 (4 ) (6) (9) 1013 (3) 1014 1015 1016 1017 1018 1019 (4) 1020 (6) (9) 1021 1022 1023 1024 1025 18:47 PAGE 22 SEQ 1144 .SBTTL KERNEL - SORT MODULE LIST + COUNT THE MODULES 001036' 001036' 001040' 001040' 001044' 001044' 001044' 001050' 001052' 001052' 001054' 001054' 001060' 001060' 001062' . - #0 LET R1 . - DT.MLST(R2) LET RO 005000 016201 000032 021127 001404 000000 CLR RO MOV DT .MLST(R2) ,R1 CIVIP SEQ (R1) ,#ENDLsr 50036$ INC RO ADD #2,R1 BR 50035$ MOV DT.MLST(R2),R1 TST BlE RO 50040$ MOV (R" ) ,1~4 BIT SEQ #BKMOD,STAT(R4) 50042$ WHIl.E (R 1 ) NE #ENDLST DO 5,0035$ : 005200 062701 LET RO .- RO + #1 LET R1 .- R1 + #2 000002 ENDDO 000771 !S0036$ : ;+ ; START THE SORT OPERATION, AND SORT IIBKMODSII TO BOTTOM OF MODQ ; LIST, DEVELOPING A IIBKMOD QUEUE II . , 0- 001062' 001062' 016201 LET R1 := DT.MLST{R2) 000032 ;+ ; WORK THRU THE LIST UNTIL THE END IS REACHED ;- WHILE RO GT #0 DO 001066' 001066' 001066' 005700 001070' 003432 001072' 001072' ~)0037$ : REPEAT ~50041$: ;+ ; IS THE CURRENT ENTRY A BKMOD MODULE? 'f - 001072' 001072' 011104 001074' 001074' 032764 001102' 001414 LET R4 . - ( R1) IF #BKMOD SETIN STAT(R4) THEN 000020 000026 ;+ ; THE CURRENT ENTRY IS A BKMOD, 'f - WHAT ABOUT THE NEXT ENTRY? SIZPLC SIZE AND POLL SYSTtM - KT OPTIONS MACY11 30A(1052) 20-SEP-78 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - SORT MODULE LIST 1026 (4 ) 1027 1028 1029 1030 1031 1032 (6 ) (9) 1033 1034 1035 1036 1037 1038 (6) (9 ) 1039 (4) 1040 (4) 1041 (4) 1042 (4 ) 1043 (4 ) 1044 1045 1046 1047 1048 1049 (6) 1050 (3 ) (6) 1051 1052 1053 1054 1055 1056 (6) 1057 (4) 1058 (4) (3) 1059 1060 1061 1062 1063 "\064 001104 1 001104 1 016103 18:47 PAGE 22-1 SEQ 1145 LET R3 := 2(R1) 000002 MOV .2(I~·I) ,ii3 CMP SEQ R3,NENDLST 50043$ + MAKE SURE ITS NOT THE END OF THE LIST 001110 1 001110 1 020327 001114 1 001407 IF R3 NE #ENDLST THEN 000000 + IF ITS NOT A BKMOD, SWAP THEM 001116 1 001116 1 001124 1 001126 1 001126 1 001132' 001132 1 001134 1 001134' 001134' 001134 1 001134 1 001134 1 032763 001003 000020 011161 000002 IF #BKMOO NOTSETIN STAT(R3) THEN BIT #SKMOD,STAT(R3) BNE 50044$ LET 2(R1) := (R1) MOV ( R1 ) 1.2 ( R1 ) LET (R1) := R3 MOV R3, (R1 ) ENDIF 50044$: 000026 010311 ENDIF 50043$: ENDIF 50042$: ;+ ; UPDATE THE POINTER AND CONTINUE SEARCHING THRU THE LIST ;- 001134 1 001134 1 062701 001140 1 001140 1 021127 001144 1 001352 LET R1 : = R1 + #2 000002 ADD #2,R1 CMP BNE (R1 ) ,#ENDLST 50041$ UNTIL (R1) EO #ENDLST 000000 ;+ ; THE END OF THE LIST HAS aEEN REACHED, SO UPDATE THE MAIN POINTER & CONTINUE j- 001146 1 001146 1 005300 001150 1 001150 1 016201 001154 1 001154 1 000744 001156 1 LET RO '- 20 LET R1 #1 DEC RO MOV DT.MLST(R2),R1 BR 50037$ '- DT.MLST(R2) 00003.2 ENDDO !:i0040$ : ;+ ; NOW THAT THE BACKGROUND MODULES HAVE BEEN GROUPED TOGETHER AT THE END ; OF THE MODULE LIST, PUT THE ADDRESS OF THIS BACKGROUND LIST (IF ThERE IS ; A BACKGROUND LIST) INTO THE DATA TABLE i- SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(1052) 20-SEP-78 SIZPLC.MAC 08-SEP-78 09:35 KERNEL - SORT MODULE LIST 1065 1066 (4) 1067 1068 1069 , 070 1071 1072 (4 ) 1073 (4) 1074 (4) (6) (9) (6) (9 ) 1075 (4 ) 1076 (6 ) (9) 1077 1078 1079 1080 1081 1082 (4) 1083 (4) 1084 (4) 1085 (4) (3) 1086 1087 1088 1089 1090 1091 (6) 1092 (4) 1093 (4 ) (3 ) 1094 1'095 1096 1097 1098 1099 (3) 001156' 001156' 016201 LET R1 SEQ 1146 := DT.MLST(R2) MOV DT.MLST(R2)tR1 WORK THRU THE MODULE LIST UNTIL THE FIRST BACKGROUND MODULE IS FOUND LET DT.BLST(R2) := #0 005062 000034 012703 177777 021127 001420 005703 001416 000000 CLR DT.BLST(R2) MOV #-1,R3 CMP BEQ TST BEQ (R1),lfENDLST 50046$ R3 50046$ MOV (R1),R4 BIT BEQ #BKMOD,STAT(R4) 50047$ LET R3 := #-1 WHILE (R1) NE #ENDLST AND R3 NE #0 DO 50045$: LET R4 '- (R1) 011104 032764 001406 IF #BKMOD SETIN STAT(R4) THEN 000020 000026 + 001216' 001216' 001222' 001222' 001226' 001226' 001230' 001230' 001232 1 PAGE 22-2 000032 + 001162' 001162' 001166' 001166' 001172' 001172' 001172' 001176' 001200' 001202' 001204' 001204' 001206' 001206' 001214' 18:47 A BACKGROUND MODULE HAS BEEN FOUND - SO THIS IS THE START OF THE BACKGROUND LIST LET DT.BLST(R2) 010162 000034 012701 000000 LET R1 '- R1 MOV Ri ,DT.BLST(R2) MOV #ENDLST,R1 CLR R3 BR 50050$ ADD #2,R1 SR 50045SS JSR PC,RESREG . - #ENDLST LET R3 .- #0 005003 ELSE 000402 :;0047$ : + 001232 1 001232' 062701 001236' 001236 1 001236 1 001236' 000755 001240' UPDATE THE POINTER AND CONTINUE TO SEARCH THRU THE MODULE LIST LET R1 . - R1 + #2 000002 ENDIF I !:50050$ : ENDDO ~50046$ : + NOW RETURN TO THE CALLER 001240 1 001240 1 004767 CALL RESREG OOOOOOG SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS MACY11 30A(1052) 20-SEP-78 SIZPLC.MAC OB-SEP-78 09:35 KERNEL - SORT MODULE LIST 1100 (3 ) (3) (2 ) 1101 1102 1103 1104 1105 1106 (2 ) 18:47 ENDRTN 001244' 001244' 001244' 001244' 000207 PAGE 22-3 SEQ 1147 50000$: 500015: RTS PC ;+ ; LABEL TYPE QUEUE HIGH LIMIT ,' - INLINE <OV.TQEND:> 001246' 001246' 0'./ • TO END: 1 107 1108 1109 1110 1111 1112 1113 , , 14 1115 1116 1117 111 B 1119 1120 1121 1122 1'''123 1124 1125 i 126 1127 1128 1129 ;*****************************~***.**** ; NOTE: THESE OVERLAY EQUATES MUST BE LEFT IN THIS POSITION (THAT IS, AFTER SIZPOL AND TQ.END LABELS) ;++++++++++++++++++++++++++++++++++++++ OVERLAY REGIONS EQUATES ;++++++++++++++++++++++++++++++++++++++ 000000 ' 0001221 000364 1 000120 1 000122 000362' 000050 000662 000002 001244' 000066 1130 1131 000001 ;KEYBOARD BUFFER STARTING ADDRESS OV.KBBUF = SIZPOL ;CONTROL QUEUE STARTING AJDRESS OV.CO= OV.KBBUF + AD<82> ;TYPE QUEUE STARTING ADDRESS Ov.TQ = OV.CQ + AD<162> ;KEYBOARD BUFFER HIGH LIMIT OV.HIKB = OV.CQ - 2 ;KEYBOARO BUF~ER SIZE OV.KBSIZ = OV.CQ - OV.KBBUF ;CONTROL QUEU~ HIGH LIMIT OV.HICQ = OV.TQ - 2 ;CONTROL QUEUE SIZE OV.CQSIZ = <OV.TQ - OV.CQ>/4 ;GET THE TO SIZE OV.A = OV.TQEND - OV.TQ ;GET ANY RE;v.AIj~D[H OV.REM = OV.A - «OV.A/10>~10> ; TYPE QUtUE Hr GH' LIM!T OV.HITQ = OV.TOEND - OV.REM ;TYPE ~UEUE SIZE OV.TQSIZ = <OV.TOEND - OV.1Q - OV.REM> /10 .END MACY11 30A(1052) SIZPLC SIZE AND POLL SYSTEM - KT OPTIONS SYMBOL TABLE 08-SEP-78 09:35 SIZPLC.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS' = 000110 BITO 000001 000001 BITOO BIT01 000002 BIT02 000004 BIT03 000010 000020 BIT04 000040 BIT05 000100 BIT06 BIT07 000200 000400 BIT08 001000 BIT09 000002 9IT1 002000 BIT10 004000 81T11 010000 B1T12 B1T13 020000 040000 BIT14 BIT15 100000 BIT2 000004 '000010 BIT3 BIT4 = 000020 000040 BITS BIT6 000100 000200 BIT7 BIT8 000400 001000 BIT9 BKDE'F 000002 BKMOD 000020 BKMDDE= 040000 BKSl.SH= 000134 CAPRES= 000004 CASTAT= 000004 CCNTRL= ****** G CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CPUCP!:= ****** G 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = OOOiOO DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT. ERR=' 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 00010:2 DT.REL= 000040 DT.SCT= 000066 DT. SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVIDl = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 20-SEP-78 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDADR= ****** G HRDCNT= 000044 HRDPAS= 000050 HTKT ****** G HTPAER= ****** G ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040: INHDRP= 040000 INHEPR= 020000 INHREL= 00100D INHRRE= 000400 000030 INIT INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 f< I PDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KONTRL= ****** G KTERRO= 0001)40 KTPRES= 000400 KTSET = ****** G KTSTAT= 000020 KTXTND= 040000 18:47 PAGE 23 LF 000012 LPSTAT:= 000001 MAPST A:= 000200 ,- 076600 MED MEMPAS,= 040000 MODEXH::: 004000 MODHOL= 002000 MODSEL= 001000 MSGCKD= ' 000010 MSGCKS= 000011 MSGDER= 000005 MSGDRP= 000017 MSGECH= 177777 MSGEOP= 000013 MSGHDR= 000004 Iv1SGHNG= 000022 MSGHRD= 000007 MSGMAP= 000021 MSGNUL= 177775 MSGPOP= 000002 MSGPRM= 177776 MSGRES= 000001 MSGSFT= 000006 MSGSKE= 000003 MSGSM9= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD::: 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL 000662 OV.A 000122RG OV.CQ OV.CQS= 000050 G OV.HIC= 000362RG OV.HIK= 000120RG OV.HIT= 001244RG OV.KBB= OOOOOORG OV.KBS= 000122 G OV.REM= 000002 OV.TQ = 000364RG OV.TQE 001246R OV. TQS:: 000066 G 024020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 PDP60 = OC4000 SEQ 1148 010000 PDP70 000000 PRIO 000040 PRl1 PRI4 = 000200 PRI5 000240 000300 PRI6 PRI7 = 000340 000000 PRO PR4 000200 PR5 = 000240 000300 PR6 000340 PR7 177776 PS 177776 PSW RANNUM= 00005L~ RBUFEA= 000130 RBUFPA= 000126 RBUFSZ= 000132 RBUFVA= 000124 RDSERV= 000101 RDWHMI= 00002~~ RELERR= 000020 RELMOD= 020000 REL TIM= 010000 RESREG= ****** G 0OO05E; RESl RES2 000060 RICHAR= 031060 f~PTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 HUNMOD= 100000 R5VALU= 001740 075464 SAM SAVREG::: ****** G SBADR = 000102 S8K:V~OD= 000000 SBKSEL= 010000 SC.ADR= 00000E5 SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 000010 SC.SCA= 000012 SENDLS= 177777 S r ZPO L OOOOOORG ,SOFCNT= 00004~? SOFPAS= 00004G SPACE = 00004() SPOINT= 00OO3~~ SPVALU= 00220() MACY 11 30A(1052) SIZPLC SIZE AND PO LL SYSTEM - KT OPTIONS SYMBOL TABLE 08-SEP-78 09:35 SIZPLC.MAC TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR5= 177654 UlPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO WTINRE= 000352 SRO 177572 SR1 177574 SR2 177576 SR3 172516 S5.l0P= 177600 55.PCl= 172136 55.PCS= 172100 S5.RFS= 160000 5S.0KC= 004000 S5.1KP= 000040 5S.120= 120000 SS.28 = 000034 STAT 0'00026 STATBI= 064757 5TAT1 = 000027 5U5PND= 000001 SVRO 000062 SVR1 000064 SVR2 000066 SVR3 000070 SVR4 000072 SVRS 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO = 000002 A8S. 000000 001246 000 001 ERRORS DETECTED: 0 DEFAULT GLOBALS GENERATED: 0 DSKZ:SIZPLC,DSKZ:SIZPLC=SPMAC/ML,EQUATE,SIZPLC RUN-TIME: 28 19 .4 SECONDS RUN-TIME RATIO: 118/48=2.4 CORE USED: 14K (27 PAGES) WTWHMI= 000222 XFLAG = 000005 000023 XOFF 000021 XON $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 000405 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000210 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEl= 000140 $F$THE= 000330 $F$TRU= 000404 $F$UNT= 000130 20-SEP-78 18:47 PAGE 23-1 SEQ 1149 $F$WHI :: $ F$YES:: $IFLEV:: $ISKO :: $I5K1 -$ISK2 :: $LOCTA:: $L5TIN:= $L5TTA:: $NESTL:: $NSKO $NSK1 $NSK2 $NSK3 $N51{4 $NSK5 $5AV LE:: $SSKO :~ $T AG LE:: $TAGNU:= $TEMP $TSKO $TSK1 $TSK2 $TSK3 $TSK4 000120 000402 177777 000001 000001 000001 177777 000001 300001 177777 000300 000120 000110 000110 000110 000110 177777 050046 177777 050051 000300 050045 050046 050050 050042 050043 050044 $T5K5 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$D5T = 000000 $$ELOC= 000402 $$ERFL= 000000 $$F LAG= 000001 $$FROM= 000000 $$LOC = 001214R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS 1 = 000000 $$TGS2= 000000 $$TO 000000 $$$TAG= 050000 001246R .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 564 567 618 696 727 772 863 987 18:43 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT ;SPMAC: VERSION 1.1 KERNEL - DETERMINE PROCESSOR TYPE KERNEL - DETERMINE CPU OPTIONS KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT KERNEL - DETERMINE SYSTEM SIZE KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT KERNEL - SORT MODULE LIST SEQ 1150 SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT SIZPlD.MAC 08-SEP-78 09:35 COMMON EQUATE MODULE SOB 509 510 511 512 513 514 515 516 517 51 B. 519 520 521 522 523 524 525 526 527 52B 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 -553 554 555 556 557 558 20-SEP-78 18:49 PAGE 19 .TITLE SIZPLD SIZE AND POll SYSTEM - KT OPTIONS AND 11/60 SUPPORT .IDENT IVO.OI ;++ MODULE NAME: SIZPLD FUNCTIONAL DESCRIPTION: THIS MODULE WIll SIZE THE SYSTEM FOR CPU TYPE AND PROCESSOR OPTIONS. IT WILL ,'\LSO SIZE MEMORY AND IF "PARITY" OR "ECC" MEMOHY WILL WRITE GOOD PARITY. THE "MODQ" LIST WILL BE SORTED TO DEVELDP A BACKGROUND MODULE LIST (QUEUE) NOTE: IT WILL NOT SIZE FOR 22-BIT ADDRESSING BUT WILL SIZ~ FOR 11/60 CPU INPUTS: DTABLE ADDRESS IMPLICIT INPUTS: CONFIGURATION WORD 0 EXEHCISER SIZE SYSTEM SIZE PARITY TABLE ADDRESS MODULE LIST BACKGROUND LI ST OUTPUTS: NONE IMPLICIT OUTPUTS: PARITY TABLE ADDRESS SYSTEM SIZE EXEHCISE SIZE CONFIGURATION WORP 0 PATHOLOGICAL CONNECTIONS: SUBORDINATE ROUTINES CALLED: SAVREG - SAVE REGISTERS RESREG - RESTORE REGISTERS KTSEr - SET UP KT REGISTERS HRDADRCHK - ILLEGAL ADDRESS CHECK FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL SIZPOL IN <A> A - DTABLE ADDRESS VERSION: 0.0 559 560 561 MACY11 30A(1052) ,'-- EDIT DATE BY I~EASON SEQ 1151 SIZPLb SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT 08-SEP-78 09:35 COMMON EQUATE MODULE SIZPLD.MAC 563 564 565 566 567 (1) 568 569 570 571 572 573 574 575 576 577 578 579 .SBTTL COMMON DEFINITIONS AND 000000· 000000· 000001 000001 589 590 591 592 593 594 595 596 597 598 599 600 601 602 608 609 610 611 612 613 614 615 616 18:49 PAGE 20 RE~ERENCE5 .MCALL STRUCT STRllCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN = 1 $LSTTAG = 1 GLOBAL REFERENCES .;.GLOBL HTKT .GLOBL .GLOBL .GLOBL .GLOSL .GLOBL .GLOBL .GLOBL .GLOBL HTPt\ER SAVHEG RESHEG KTSET HRDADRCHK CPUCPE CCNTRL KONTRL ; SARE REGISTEF~S ;RESTORE REGISTERS ;5ET UP KT ;ILLEGAL ADDRESS CHECK ;11/70 CPU ERROR REGISTER ;CACHE CONTROL REGISTER ;TEMPORARY STORAGE FOR CACHE CONTROL REGIsrER ;**************** . ; LOCAL EQUATES 172100 172136 004000 000034 000040 120000 177600 160000 SS.PCSR S5.PCLS 55.0KC 55.28 S5.1 KP SS.120K SS. lOP SS.RFS 172100 172136 4()00 "[)28 40 120000 177600 160000 ;5TART OF PARITY CSRS ;LAST PARITY CSR ;ONE K CHUNK ;28 DECIMAL ;1K IN PAR FORMAT ;FIRST ADDRESS IN PARS MAP ;1/0 PAGE ;REVERSED FOR DIAGNOSTIC USE IN I/O PAGE ;**************** ; REFERENCED BY OTHER MODULES .GLOBL SIZPOL 603 604 605 606 607 20-SEP-78 ;**************** 580 581 582 583 584 585 586 587 588 MACY1' 30A(1052) ;++++++++++++++++++++++++++++++ OVERLAY REGION GLOBALS ;++++++++++++++++++++++++++++++ .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL .GLOBL. .GLOI3L .GLOBL OV.KBBUF OV.HIKB OV.KB5IZ OV.CQ OV.HICQ OV.CQSIZ OV.TQ OV.HITQ OV.TQSIZ ;MODULE ENTRY POINT SEQ 1152 SIZPlD SIZE AND POll SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) SlZPLO.MAC08-SEP-78 09:35 KERNEL - DETERMINE PROCESSOR TYPE 618 619 620 621 622 (2 ) 623 624 625 62'6 627 628 629 630 631 (4 ) 632 (4) 633 634 (4) 635 (4) 636 637 (3) 638 (4 ) 639 (4) 640 641 642 643 644 645 (3) (4) (3) (3) 646 647 (6) 64B 649 650 651 652 653 (2 ) 654 (4) 655 (2) 656 (2) 20-SEP-78 18:49 PAGE 21 SEQ .SBTTL KERNEL - DETERMINE PROCESSOR TYPE ROUTINE SIZPOL <DTABLE> 000000 1 000000 1 SIZPOL: ;+ ; STUFF PARITY AND KT VECTORS ; SAVE REGISTERS, GET DTABlE ADDRESS FROM R5 STACK AND CLEAR ; Rl ;- 000000' 000000' 012737 000006' 000006' 012737 000014' 000014 1 012737 000022 1 000022 1 016737 000030' 000030 1 004767 000034 1 000034 1 016502 000040 1 000040 1 005001 LET @#114 ·- #HTPAER LET @#116 · - #PRI7 lET @#250 ·- #HTKT lET @#252 · - PRI7 OOOOOOG 000114 000340 000116 OOOOOOG 000250 000340 000252 r,1QV #HTPAER,@#114 MOV #PRI7,@l#116 MOV #HTKT,@1I250 MOV PRI7,@'#252 JSR PC,SAVREG MOV DTABLE(R5) ,n2 CLR R1 MOV MOV JSR MOV RS,-(SP) CPUCPE,-(R5) PC,HRDADRCHK (SP)+,R5 BCS 50002$ MOV @#10,--(SP) MOV #1$,@#10 CALL SAVREG OOOOOOG LET R2 '- LET R1 . - #0 000000 DTABLE(R5) ; {. ; DETERMINE PROCESSOR TYPE; '- 11/70, 11/60 OR LSI11 f 000042 1 000042 1 000044 1 000050 1 000054' CALL HRDADRCHK IN <CPUCPE> 010546 016745 004767 012605 OOOOOOG OOOOOOG IF.NO.ERROR THEN 000056 1 000056 1 103422 ;+ ; SET UP ILLEGAL INSTRUCTION TRAP TO FIELD TRAP IF NOT ; 11/60 'f - 000060' 000060' 000064' 000064' 000072' 000072' 000074' 000074' PUSH @#10 013746 000010 012737 000104 1 000010 076600 00010i LET @1I10 . - #1$ INLINE <MED> IVIED INLINE <RDSERV> RDSERV "j 153 SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) SIZPLD.MAC 08-SEP-78 09:35 KERNEL - DETERMINE PROCESSOR TYPE 657 (6) 658 (2) 659 660 (2 ) 661 662 663 664 665 666 (4 ) 667 (2) 668 669 670 671 672 673 (2 ) 674 (6 ) 675 676 677 678 679 680 (2 ) 681 (2 ) 682 (4 ) (3) 683 684 685 686 687 688 (3) (4) (3) (3) 689 (6 ) 690 (6) 691 692 (4 ) 693 (4 ) 000076' 000076' 052701 000102' 000102' 000405 LET R1 004000 20-SEP-78 18:49 PAGE 21-1 : = R1 SET. BY 1/ PDP6Cl BIS SEQ 1154 #PDP60,R1 IN LINE <BR 3$> BR 3$ INLINE <1$:> 000104' 000104' 1 $: ;+ ; SET RETURN TO 2$ TO RESTORE PSW j- 000104' 000104' 0~2716 000110' 000110' 000002 := #2$ LET (SP) MOV 000112' #2$,(SP) INLXNE <RTI> RTI ;+ ; MUST BE AN 11/70 000112' 00"0112' 000112' 000112' 052701 INLINE <2$:> 2$: LET R1 0 .. R1 SET.BY #PDP70 BIS 010000 #PDP70,R1 ;+ ; RESTORE RESERVED INSTRUCTION TRAP 000116' 000116' 000116' 000116' 012637 000122' 000122' 000411 000124' INLINE <3$:> 3$: POP @#10 000010 ELSE MOV (SP)+.,@#10 BR 50003$ MOV MOV JSR MOV R5,-(SP) #PSW,·-(R5) PC"HRDADRCHK (SP)+,R5 Bce 50004$ SIS #PDPLSI,R1 ~)0002:6 : j+ ; CHECK TO SEE IF LSI11 ;- 000124' 000124' 000126' 000132' 000136' 000140' 000140' 00()142' 000142 1 000146' 000146' 000146' 000146' CALL HRDADRCHK IN <#PSW> 010546 012745 004767 012605 177776 OOOOOOG IF ° E.RROR THEN 10300:2 052701 LET R1 . - R1 SET. BY #PDPLSI 020000 ENDIF !50004;S: ENDIF !50003$ : SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) SIZPLD.MAC 08-SEP-78 09:35 KERNEL - DETERMINE PROCESSOR TYPE 694 20··SEP-78 18:49 PhGE 21-2 SEQ 1155 SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) SIZPLD.MAC OB-SEP-78 09:35 KERNEL - DETERMINE CPU OPTIONS 696 697 69B 699 700 701 702 703 (3 ) (4) (3) (3) 704 (6) 705 (6) 706 (3 ) (4) (3) (3) 707 (6) 70B (6) 709 710 (4 ) 711 (4 )' 712 713 714 715 716 717 718 719 720 721 (3) (4 ) (3) (3) 722 (6) 723 (6) 724 (4) 725 20-SEP-78 18:49 PAGE ,21-3 SEQ 1156 .SBTTL KERNEL - DETERMINE CPU OPTIONS ;+ ; DETERMINE IF "KT" IS PRESENT AND IF IT IS CHECK TO ; SEE IF EXTENDED KT" IS PRESENT ;- 000146' 000146 1 000150 1 000154 1 000160' 000162 1 000162 1 000164 1 000164' 000170 1 000170' 000172 1 000176 1 000202 1 000204 1 000204 1 000206 1 000206' CALL HRDADRCHK IN <#SRO> 010546 012745 004767 012605 177572 OOOOOOG MOV MOV uSR MOV RS,-(SP) #SRO,-'(R5) PC,HRDADRCHK (SP)+,R5 BCS 5000S$ BIS #KTPRE:S,R1 MOV MOV uSR MOV R5,-(SP) #SR3,-'(R5) PC,HRDADRCHK (SP)+,R5 BCS SOO06$ BIS #KTXTND,R1 MOV MOV R5,-(SP) CCNTRL,-(RS) PC,HRDADRCHK (SP)+,R5 BCS S0007$ BIS #CAPRES,R1 IF.NO.ERROR THEN 103413 OS2701 LET R1 : = R1 SET. BY #KTPRES 000400 CALL HRDADRCHK IN <#SR3> 010546 012745 004767 01260S 172516 OOOOOOG IF.NO.ERROR THEN 103402 052701 LET R1 := R1 SET.BY #KTXTND 040000 ENDIF 000212 1 000212' 000212 1 000212 1 ~j0006$ : ENDIF :;OOOS$ : ;+ ; NOW DETERMINE IF CACHE MEMORY IS PRESENT BY CHECKING ; CACHE CONTROL REGISTER 000212 1 000212 1 000214 1 000220 1 000224' 000226 1 000226' 000230' 000230' 000234' 000234' CALL HRDADRCHK IN <CCNTRl> 010546 01674S 004767 012605 MOV OOOOOOG OOOOOOG uSR IF.NO.ERROR THEN 103402 052701 LET R1 : = Ri SET. BY #CAPRES 000004 ENDIF !50007$ : SIZPLD SIZE AND POll SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(105~) 20-·SEP-78 SIZPLD.MAC 08-SEP-78 09:35 KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT 727 728 729 730 731 732 733 734 735 (4) 736 737 (4) 738 (4) (6) (9) 739 (3) (4) (3) PAGE 21-4 , SEQ 1157 .SBTTL KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT ;+ ; GET STARTING ADDRESS OF PARITY TABLE, THEN DETERMINE IF ; PARITY CSR REGISTERS ARE AVAILABLE IF SO PLACE CSR ADDRESS ; IN PARITY TABLE. ;- 000234' 000234' 016200 000240' 000240' 000244' 000244' 000244' 000250' 000252' 000252' 000254' 000256' LET RO .- DT.PTA(R2) 000064 MOV D1 , PT A. (R2) , I~O MOV #SS,PC:SR,R3 CMP BST R3,#SS.PCLS 50011$ MOV MOV JSR MOV R5,-(SP) R3,-(R:5) PC,HRDADRCHK (SP)+,R5 BCS 50012$ MOV R3,(RCI)+ BIS #BIT01,(R3) BIT BEQ #81T01, (R3) 50013$ SIS #ECCMEM,R1 BR 50014$ BIS #PARPF~ES, R1 CLR (R3) lET R3 '- #SS,PCSR 012703 172100 WHILE R3 LE #SS.PClS DO 020327 003035 010546 010345 004767 (3) 000262' 740 (6) 741 (4) 742 743 744 745 746 747 748 (6) 749 (6) (9) 750 (6) 751 (4) (3) 752 000264' 000264' 103414 000266' 000266' 010320 (6) 052701 753 (4) 754 (4) 755 (4) 756 757 758 759 760 761 18:49 5,0010$ : 172136 CALL HRDADRCHK IN <R3> OOOOOOG 012605 IF.NO.ERROR THEN LET (RO)+ .- R3 ;+ ; DETERMINE IF ECC MEMORY, IF IT IS SET ECC MEMORY BIT IN ; CONFIGURATION WORD 0 ELSE SET PARITY PRESENT BIT IN ; CONFIGURATION WORD O. CLEAR THE PARITY CSR'S ', - 000270' 000270' 000274' 000274' 000300' 000302' 000302' 000306' 000306' 000310' 000310' 000310' 000314' 000314' 000314' 000314' 000316' 000316' LET (R3) 052713 000002 032713 001403 000002 052701 000100 .- (R3) SELBY #BIT01 IF #BIT01 SETIN (R3) THEN LET R1 . - R1 SET. BY #ECCMEM ELSE 000402 ~)0013$: LET R1 . - R1 SET. BY #PARPRES 002000 ENDIF ~)0014$: LET (R3) 005013 ,'- #0 ENDIF ~)0012$ : ;+ ; IF 11/70 PROCESSOR THEN SET PARiTY PRESE,NT IN CONFIGURJnION ; WORD 0 AND POINT TO PARITY CSR + 4, ELSE POINT TO ; PARITY CSR + 2 ', - , SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) 20--SEP-78 SIZPLD.MAC 08-SEP-78 09:35 KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT 762 (6) (9 ) 763 (6 ) 764 (6) 765 (4 ) (3) 766 (6) 767 (4) 768 (4) (3) 769 770 000316' 000316' 000322' 000324' 000324' 000330' 000330' 000334' 000334' 000336' 000336' 000336' 000342 1 000342' 000342 1 000342' 000344 1 18:49 PAGE 21-5 SEQ 1158 IF HPDP70 SETIN R1 THEN 032701 001405 010000 052701 002000 062703 BIT LET R1 := R1 SET.BY #PARPRES LET R3 .- R3 + #4 000004 SEQ #PDP70,R1 50015$ SIS HPARPHES,R1 ADD #4,R3 SR 50016$ ADD #2,R3 BR 50010$ ELSE 000402 LET R3 062703 .- R3 + #2 !:i0015$: 000002 ENDIF 50016$: ENODO 000740 :>0011$: SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) SIZPLD.MAC 08-SEP-78 09:35 KERNEL - DETERMINE SYSTEM SIZE 772 773 774 775 776 777 778 779 (4) 780 781 782 783 784 785 786 787 (6) (9) 788 789 790 '791 792 793 (4) 794 (4) 795 796 797 798 799 800 (3) 801 (6) 802 (6) 803 (3) (4) (3) (~) 804 (6) 805 (2) 806 (4) 807 (3) (6) 808 809 810 20-SEP-7R. 18:49 PAGE 21-6 SEQ 1159 .SSTTL KERNEL - DETERMINE SYSTEM SIZE ;+ ; NOW TAKE THE CONTENTS OF LOC. 0 (EXERCISER SIZE) ; AND LOAD IT INTO EXERCISER SIZE WORD 0003441 000344 1 016762 LET OT.ESIZ(R2) := 0 000000 000044 MUV 0,DT.ESIZ(R2) BIT BNE #KTPRES,R1 50017$. CLR RO CLR R3 INC RO ADD #SS. O~;C, R3 MOV R5,-(SP) ;+ ; IF NO "KT" DETERMINE SYSTEM SIZE, WHICH CAN NOT BE GREATER ; THAN 28K. ;- 000352 1 000352' 032701 000356 1 001053 IF #KTPRES NOTSETIN R1 .THEN 000400 ;+ ; SET UP COUNTER OF 1K CHUNKS AND 1K BLOCK POINTER ;- 000360 1 000360' 005000 000362' 000362 1 005003 LET RO '- #0 LET R3 "- #0 + 000364' 0003641 000364 1 000364 1 005200 000366' 000366 1 062703 000372' 000372 1 010546 000374' 010345 000376 1 004767 00Q402' 012605 000404' 000404' 103001 000406' 000406 1 000403 000410' 000410' 000410 1 000410' 020027 000414' 001363 REPEAT UNTIL NON-EXISTENT MEMORY OR 28K REPEAT LET RO '- RO + #1 LET R3 .- R3 + #SS.OKC 004000 CALL HROADRCHK IN <R3> OOOOOOG IF.ERROR THEN rllov R3,-(~15) JSR MOV PC,HRDADRCHK (SP)+,R5 Bec 50021$ INLINE <BR 4$> SR 4$ ENDIF UNTIL RO EQ #55.28 CMP BNE 000034 ;+ ; DETERMINE IF SYSTEM HAS 30K BY LOOKING AT FIRST ADDRESS IN 1/0 PAGE RO,#SS.28 50020$ SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) SIZPLD.MAC 08-SEP-78 09:35 KERNEL - DETERMINE SYSTEM SIZE 811 812 813 (2 ) 814 (6) (9) 815 (3) (4) (3) (3 ) 816 (6) 817 (6 ) 818 (4) 819 (4 ) 820 821 822 823 824 825 826 827 (4 ) 828 (4) (7 ) (7 ) ( 7) (7 ) (7 ) (7 ) 829 (4 ) (3 ) 830 831 832 833 834 (3) (4) (3) (3 ) 83S 836 837 831:! 839 840 841 20-SEP-78 18:49 PAGE 21-7 SEQ 1160 ;_. 000416' 000416' 000416' 000416' 000422' 000424' 000424' 000426' 000432' 000436\ 000440' 000440' 000442' 000442' 000446' 000446' 000446' 000446' INLlNE <4$:>- 4$: IF RO EQ #55.28 THEN 020027 001011 010546 012745 004767 012605 BNE RO,#SSi.28 50022$ M'JV MOV JSR MOV R5,-(SP) #SS.RFS,-(R!5) PC, HRDADRCH!{ (SP)+,R5 BCS 50023$ ADD #10000,R3 CALL HRDADRCHK IN <#SS.RFS> 160000 OOOOOOG IF.NO.ERROR THEN 103402 062703 CMP 000034 LET R3 . - R3 + #10000 010000 ENDIF 5·0023$ : ENDIF 5·0022$ : ;+ ; NOW GET MEMORY SIZE IN "PARII FORMAT BY SHIFTING R3, 6 TIMES ; TO THE R I GiHT , ONCE THIS IS DONE LOAD INTO SYSTEM ; SIZE WORD. ', - 000446' 000446' 000450' 000450' 000454' 000460' 000464 1 000470' 000474' 000500' 000504 1 000504' 000506' LET CARRY := #0 000241 LET DT.SSIZ(R2) 010362 006062 006062 006062 006062 006062 006062 CLC . - R3 ROTATE -6 ROR ROR ROR ROR R3,DT.SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) BR 50024$ MOV MOV JSR MOV R5,-(SP) R2,-(R5) PC,KTSET (SP)+,R5 MOV ROR 000046 000046 000046 000046 000046 000046 000046 ROR EL.SE 000435 50017$: ;+ ; KT IS PRESENT, ,'- 000506' 000506' 000510' 000512' 000516' FIRST GO MAP PARIS AND PDR'S CALL KTSET IN <R2> 010546 010245 004767 012605 OOOOOOG ;+ WILL USE KIPAR5 TO SIZE MEMORY. TURN ON KT AND THEN SIZE UNTIL NON-EXISTENT MEMORY IS FOUND OR THE I/O PAGE IS FOUND. SIZING WILL BE DONE IN 1K STEPS SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY'1 30A(1052) SIZPLD.MAC 08-SEP-78 09:35 KERNEL - DETERMINE SYSTEM SIZi 842 (4) 843 844 (6) 845 846 (3) 847 (6) 848 (3) (4) (3) (3) 849 (6) 850 (2) 851 (4) 852 (3) (6) 853 854 855 856 857 858 (:2) 859 (4) 860 (4) 861 000520' 000520' 012737 000040 172352 000526' 000526' 052737 000001 177572 000534' 000534' 000534 1 000534' 000542' 000542' 000544' 000550' 000554' 000556' 000556 ' 000560' 000560' 000562' 000562 ' 000562' 000562 1 000570' 20-SEP-78 18:49 PAGE 21-8 LET @#KIPAR5 := HSS.1KP LET @#SRO :; @#SRO SET.BY #8ITOO REPEAT 000040 010546 012745 004767 012605 120000 OOOOOOG 172352 IF.ERROR THEN IN LINE <BR 5$> BIS #BITOO,@l#SRO ADD #SS .11A:P ,@l#KIPARS MGV MOV JSR MOV R5,-(SP) #SS.120K,-(R5) PC,HRDADRCHK (SP)+,R5 BCC 50026$ 8R 5$ 000404 ENDI F UNTIL @#KIPAR5 17:2352 #SS.1KP,@#KIPARS CALL HRDADRCHK IN <#SS.120K> 103001 0:237:27 001361 MOV :i0025$ : LET @#KIPAR5 := @#KIPAR5 + #SS.1KP 062737 SEQ 1161 =i00:26$ : EO #SS.IOP 177600 CMP BNE @#KIPAR5,#SS.IOP 50025$ + LOAD SYSTEM SIZE WORD WITH CONTENTS OF KIPAR5 000572' 000572' 00057:2' 000572 1 013762 000600' 000600' INLINE <5$:> 5$: LET DT.SSIZ(R2) '- @#KIPAR5 17235:2 MOV 000046 ENDIF @#KIPAR5,DT.SSIZ SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY1' 30A(1052) 20-SEP-78 SIZPLO.MAC 08-SEP-78 09:35 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT (6 ) (9) (6) ', - 000600 1 000600 1 032701 000604 1 001003 000606 1 032701 0006121 001500 000614 1 IF #PARPRES SETIN R1. DR #ECCMEM SET IN R1 THEN 002000 ·81T BNE BIT 000100 Bt::Q 877 (4) 878 (4) B79 (4) #PARPRES,R1 50027$ #ECCMEM,R1 50030$ 50027$: ;+ 871 (6) (9) SEQ 1162 ;+ ; DETERMINE IF PARITY OP ECC MEMORY IS PRESENT. 870 872 873 874 875 876 PAGE 21-9 .SBTTL KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 863 864 865 866 867 868 869 (6) (8) 18:49 ; IF CACHE PRESENT, SET BIT 0,' IN CACHE CONTROL REGISTER ; THIS WILL TURN CACHE OFF 0006141 000614 1 032701 000620 1 001406 0006221 0006221 012767 000630 1 000630 1 016777 000636 1 000636 1 IF #CAPRES SETIN R1 THEN 000004 BEQ #CA.PRES, R1 50031$ MOV #3, KOr-ITRL MOV KONTRl.,@CCNTRL BIT BEQ #KTPRES,R1 50032$ JSR PC,KTSET CLR @ftKIPDR6 CLR @#KIPAR5 BIT LET KONTRL .- #3 000003 OOOOOOG LET @CCNTRL := KONTRL OOOOOOG OOOOOOG ENDIF ~;0031$: 8BO 881 882 i+ SINCE PARITY OR ECC IS PRESENT AND TURNED OFF ; WILL NOW SET UP TO WRIlE GOOD PARITY INTO ALL ; OF MEMORY 1 FIRST KT PRESENT THEN SET ; UP KT REGISTERS. 883 884 885 886 887 888 (6) (9) 889 (3) 890 891 892 8"93 894 895 896 (4) 897 {4} 898 899 900 901 902 903 ;- 000636 1 000636 1 032701 000642 1 001426 000644 1 0006441 004767 IF #KTPRES SETIN R1 THEN 000400 CALL KTSET OOOOOOG ;+ ; SET UP KIPDR6 TO TRAP WHEN ENTERING PAGE. AND ; SET UP KIPAR5 TO MAP TO 0 j- 000650 1 000650 1 005037 000654: 000654 1 005037 LET @#KIPDRG '- #0 172314 LET @#KIPAR5 '- #0 172352 ;+ ; SAVE KT ERROR VECTOR AND SET UP KT ERROR VECTOR TO ; GO TO 7$. THEN TURN ON KT AND SET UP BUSERR VECTOR AT 8$ ; SET UP RO TO USE PAR5 SIZPLD SIZE AND POLL SYSTEM - KT OOTIONS AND 11/60 SUPPORT MACY11 30A(1052) 20--ScP-78 SIZPLD.MAC 08-SEP-78 09:35 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 904 905 (2 ) 906 (4 ) 907 (2 ) 90B (4) 909 (6) 910 (4) 911 (4) (3) 912 913 914 915 916 917 (4) 91B (2 ) 919 (4 ) 920 921 (4) 922 923 924 925 926 (2 ) 927 (4) ~2B (2 ) 929 930 931 932 933 934 935 (2) 936 (6) 937 (4) 93B (4) 939 (2) 000660' 000660' 000664' 000664' 000672' 000672' 000676' 000676' 000704' 000704' 000712' 000712' 000716' 000716' 000720' 18:49 PAGE 21-10 PUSH @#4 013746 000004 012737 000760' 000004 013746 000250 012737 000740' 000250 052737 000001 012700 120000 MOV @#4,-(SP) LET @#4 '- #8$ MOV PUSH @#250 MOV @#250,-(SP) MOV #7$,@l#250 SIS #BITOO,@#SRO MOV #SS.120K,RO BR 50033$ CLR RO MOV @#4,-(SP) LET @#250 .- #7$ LET @#SRO .- @#SRO SET.BY #BITOO 177572 LET RO '- #SS.120K ELSE 000406 + 000720' 000720' 005000 000722' 000722' 013746 000726' 000726' 012737 SEQ 1163 IF NOT KT THEN SET UP POINTER AND SAVE BUSERR VECTOR LET RO .- #0 PUSH @#4 000004 LET @#4 '- #10$ MOV 001006' 000004 ENDIF 000734' 000734' ei0033$ : ;+ ; NOW WRITE GOOD PARITY j- INLlNE<6$: > 000734' 000734' 000734' 000734' 011020 000736' 000736' 000776 6$: LET (RO)+ '- (RO) MOV INUNE <SR 6$> (RO), (RO)+ BR 6$ j+ ; UPDATE PAR5 TO NEXT 4K BLOCK AND RESET RO TO START ; OF BLOCK. LOAD RETURN PC WiTH 6$ AND RTI 000740' 000740' 000740' 000740' 000746' 000746' 000752' 000752' 000756' 000756' INLlNE <7$:> 7$: LET @#KIPARS := @#KIPAR5 + #200 062737 000200 172352 LET RO := #SS.120K 012700 120000 012716 000734' 000002 LET (SP) := #6$ INLINE <RTI> ADD #200,@#KIPAR5 MOV #SS. 1 :20K I RO MOV RTI SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) 20-SEP-78 SIZPLD.MAC 08-SEP-78 d9:35 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 940 941 942 943 944 945 946 (2) 947 (6) 948 949 (4) 950 (2 ) 951 952 (2 ) 953 (2 ) 954 ('2 ) 955 (2 ) 956 957 958 959 960 961 962 (2) 963 (2 ) 964 (2 ) 965 966 (4) 967 968 969 970 PAGE 21-11 SEQ 1164 ;+ ; TOP OF MEMORY WAS FOUND, TURN OFF MEMORY MANAGEMENT, ; REMOVE TRJI.P PC AND PSW FROM STACK AND RESTORE BUS ERR AND MEIVIGMT VECTOHS , *- 000760' 000760' 000760' 000760' 042737 000766' 000766' 012716 000772' 000772' 000002 000774' 000774' 000774' 000774' 012637 001000' 001000' 012637 001004' 001Q04' 000403 INLINE <8$:> 8$: LET @#SRO 000001 '- @IISRO CLR.BY IIBITOO 177572 LET (SP) BIC #BITOO,@#SRO MOV #9$,(SP) := #9$ 000774' INLlNE <RTI> RTI INLINE <9$::::- 9$: POP @#250 000250 POP @#4 000004 MOV (SP)+,.@#250 MOV (SP)+,,@#4 INLXNE <BR 11 $> BR 11 $ ;+ ; WILL TRAP HERE IF NO MEMORY MANAGEMENT, CLEAN UP ; STACK AND RESTORE BUSERR , 001006' 001006' 001006' 001006' 022626 001010' 001010' 012637 INLINE <10$:> 10$: INLINE <CMP (SP)+,{SP)+> CMP (SP)+, (SP)+ POP @#4 MOV 000004 (SP)+,@#4 ENDIF 001014' 001014' !50030$ : ;+ ; IF SCRIPTING, SET AUTO BIT IN CONFIGURATION WORDO ,' - .97~ 9'72 973 (2 ) 974 (6) (9) 975 (6) 976 (4) 977 978 18:49 001014' 001014' 001014' 001014' 005737 001020' 001402 001022' 001022' 052701 001026' 001026' INLINE <11$:> 11 $: IF @#42 NE #0 THEN 000042 LET R1 *- R1 SEi- * BY # AUTO 000010 ENDIF ;+ 50034$: TST SEQ @#42 50034$ BIS HAUTO,R1 SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) 20-SEP-78 SIZPLD.MAC 08-SEP-78 09:35 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 979 980 981 982 983 (6) 984 (6) 985 18:49 PAGE 21-12 SEQ 1165 ; CLEAN UP R1 BEFORE LOADING CONFIGURATION WORD 0 ; LOAD UP CONFIGURATION WORD 0 ;- 001026' 001026' 042701 001032' 001032' 050162 LET R1 '- R1 CLR.BY #RICHARD 031060 BIC #RICHARD,R1 BIS R1,DT.CFO(R2) LET DT.CFO(R2) := DT.CFO(R2) SET.BY R1 000014 SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND "/60 SUPPORT MACY11 30A(1052) SIZPLD.MAC 08-SEP-78 09:35 KERNEL - SORT MODULE LIST 987 988 989 990 991 992 993 994 (4) 995 (4) 996 (4 ) (6) (9) 997 (6 ) 998 (6) 999 (4) (3) 1000 1001 1002 1003 1004 1005 (4) 1006 1007 1008 1009 1010 1011 (4) (6 ) (9) 1012 (3 ) 1013 1014 1015 10·16 1017 1018 (4) 1019 (6) (9) 1020 1021 1022 1023 1024 1025 20-SEP-78 18:49 PAGE 22 SEQ 1166 .SBTTL KERNEL - SORT MODULE LIST + 001036' 001036' 001040' 001040' 001044' 001044' 001044' 001050' 001052' 001052' 001054' 001054' 001060' 001060' 001062' COUNT THE MODULES LET RO '- #0 005000 LET R1 016201 CLR RO MOV OT.MLST(R2),R1 CMP SEQ (R1) ,#ENDLS"r 50036$ INC RO ADD #2,R1 SR 50035$ MOV DT.MLST(R2),R1 TST BLE RO MOV (Rn, H4 := DT.MLST(R2) 000032 WHILE (R1) NE #ENDLST DO 5,0035$ : 021127 001404 000000 LET RO := RO + #1 005200 062701 LET R 1 • - R 1 + # 2 000002 ENDDO 000771 =i0036$ : ;+ ; START THE SORT OPERATION. r' - 001062' 001062' 016201 LET R1 := DT.MLST(R2) 000032 ;+ ; WORK THRU THE LIST UNTIL THE END IS REACHED ;- WHILE RO GT #0 DO 001066' 001066' 001066' 005700 001070' 003432 001072' 001072' ~)0037$ : 50040$ REPEAi ~;0041$: ;+ ; IS THE CURRENT ENTRY A BKMOD MODULE? ;- 001072' 001072' 011104 001074' 001074' 032764 001102' 001414 LET R4 . - IF #BKMOD SETIN STAT(R4) THEN 000020 000026 + 001104' (R 1 ) THE CURRENT ENTRY IS A BKMOD, WHAT ABOUT THE NEXT ENTRY? LET R3 := 2(R1) BIT #B~(MO[),STAT(R4) BEQ 50042$ SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) SIZPLO.MAC OB-SEP-78 09:35 KERNEL - SORT MODULE LIST' (4) 1026 1027 1028 1029 1030 1031 (6) (9 ) 1032 1033 1034 1035 1036 1037 (6) (9 ) 1038 (4) 1039 (4 ) 1040 (4) 'j 041 (4 ) 1042 (4 ) 1043 1044 1045 1046 1047 1048 (6) 1049 (3 ) (6 ) 1050 1051 1052 1053 1054 1055 (6) 1056 (4) 1057 (4) (3 ) 1058 1059 1060 1061 1062 1063 1064 001104' 016103 PAGE 22-1 SEQ 1167 MOV 2(R1),R3 CMP SEQ R3,#ENDLST 50043$ MAKE SURE ITS NOT THE END OF THE LIST IF R3 NE #ENDLST tHEN 000000 + 001116' 001116' 001124' 001126' 001126' 001132' 001132' 001134' 001134' 001134' 001134' 001134' 001134' 18:49 000002 + 001110' 001110' 020327 001114' 001407 20-SEP-78 032763 001003 000020 011161 000002 I FITS NOT A BKMOD, SWAP' THEM IF #BKMOD NOTSETIN STAT(R3) THEN BIT #BKMOD,STAT(R3) BNE 50044$ LET 2(R1) := (Rl) MOV (R 1 ) ,2 ( R 1 ) LET (R1) := R3 MOV R3, (R i ) ENDIF 50044$: 000026 010311 ENDIF 50043$: ENDIF 5,0042$ : ;.- UPDATE THE POINTER AND CONTINUE SEARCHING THRU THE LIST 001134' 001134' 062701 001140' 001140' 021127 001144' 001352 lET R1 000002 . - R1 + #2 000000 ;+ ; THE END OF THE LIST HAS BEEN REACHED, ;- 001146' 001146' 005300 001150' 001150' 016201 001154' 001154' 000744 001156' ADD #2,R1 CIVIP BNE (R1),#ENDLST 50041$ UNTIL ( R1 ) EO #ENDLST LET RO LET R1 SO UPDATE THE MAIN POINTER & C,ONTINUE . - RO - #1 .- DT.MLST(R2) 000032 DEC RO MOV OT .MLST(R2) ,R1 SR 5003'7$ ENDDO ~)0040$ : ;+ ; NOW THAT THE BACKGROUND ~ODULES HAVE BEEN GROUPED TOGETHER AT THE END ; OF THE MODULE LIST, PUT THE ADDRESS OF THIS BACKGROUND LIST (IF THERE IS ; A BACKGROUND LIST) INTO THE DATA TABLE SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) SIZPLD.MAC 08-SEP-78 09:35 KERNEL - SORT MODULE LIST 1065 (4) 1066 1067 1068 1069 1070 1071 (4) 1072 (4 ) 1073 (4) (6) (9) (6) (9 ) 1074 (4) 1075 (6) (9) 1076 1077 1078 1079 1080 1081 (4 ) 1082 (4) 1083 (4) 1084 (4) (3 ) 1085 1086 1087 1088 1089 1090 (6 ) 109. (4) 1092 (4) (3 ) 1093 1094 1095 1096 1097 1098 (3) 1099 001156' 001156' 016201 LET R1 20-SEP-78 1S:49 PAGE 22-2 SEQ '168 := DT.MLST(R2) MOV 000032 DT.MLST(R2),R1 ;+ ; WORK THRU THE MODULE LIST UNTIL THE FIRST BACKGROUND MODULE IS FOUND , '- 001162' 001162' 00'166' 001166' 001172' 001172' 001172' 001176' 001200' 001202' 001204' 001204' 001206' 001206' 001214' LET DT.BLST(R2) := #0 005062 000034 012703 177777 021127 001420 005703 001416 000000 CLR DT.SLST(R2) MOV #-1,R3 CMP SEQ TST SEQ (R1),#ENDLST 50046$ R3 50046$ MOV ( R1 ) , 11~4 SIT SEQ #BKMOD,STAT(R4) 50047$ LET R3 : = #-1 WHILE (R1) NE #ENDLST AND R3 NE #0 DO 50045$: LET R4 := (R1) 011104 032764 001406 IF #SKMOD SETIN STAT(R4) THEN 000020 000026 ;+ ; A BACKGROUND MODULE HAS BEEN FOUND - SO THIS IS THE START OF THE BACKGROUND LIST ;- 001216' 001216' 001222' 001222' 001226' 001226' 001230' 001230' 001232' LET DT.BLST(R2) 010162 000034 012701 000000 LET R1 '- R1 MOV Ri,DT.BLST(R2) MOV #ENDLST,R1 CLR R3 SR 50050$ SR 50045$ JSR PC,RESREG . - #ENDLST LET R3 .- #0 005003 ELSE 000402 + UPDATE THE POINTER AND CONTINUE TO SEARCH THRU THE MODULE LIST LET R1 00~232' 001232' 062701 001236' 001236' 001236' 001236' 000755 001240' . - Ri + #2 000002 ENDIF ~50050$ : ENDDO !50046:S: + NOW RETURN TO THE CALLER 001240' 001240' 004767 001244' CALL RESREG OOOOOOG ENDRTN SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT MACY11 30A(1052) SIZPLD.MAC 08-SEP-78 09:35 KERNEL - SORT MOPULE LIST (3) (3) (.2 ) 1100 .20-SEP-78 18:49 PAGE 22-3 SEQ 1169 50000$: 50001$: 001244 001244 1 001244 1 000207 1 RTS PC ;+ ; LABEL TYPE QUEUE HIGH LIMIT 1 1 01 11 02 , '- 1103 1104 1105 (2 ) 1106 INLINE <OV.TQEND:> 001246 1 001246 1 OV.TQENc): '107 11 OB 1109 1110 1111 , 11.2 , 113 1114 ;************************************** ; NOTE: THESE OVERLAY EQUATES MUST BE LEFT IN THIS POSITION (THAT IS, AFTER SIZPOL AND TQ.END LABELS) , 115 ;++++++++++++++++++++++++++++++++++++++ 11 16 111 7 ;++++++++++++++++++++++++++++++++++++++ 111B 1119 1120 1121 1122 OVERLAY REGIONS EQUATES 000000' 000122' 000364' 000120' 000122 1123 000~62' 1124 1125 000050 000662 000002 1126 1127 1128 1129 1130 001244' 000066 000001 OV.KBBUF = SIZPOL ;KEYBOARD BUFFER STARTING ADDRESS OV.CQ= OV.KBBUF + AD<82> ;CONTROL QUEUE STARTING ADDRESS OV.TQ = OV.CQ + ~D<162> ;TYPE QUEUE STARTING ADDRESS OV.HIKB = OV.CQ - .2 ;KEYBOARD BUFFER HIGH LIMIT OV.KBSIZ = OV.CQ - OV.KBBUF ;KEYBOARD BUFFER SIZE OV.HICQ = OV.TQ - .2 ;CONTROL QUEUE HIGH LIMIT OV.CQSIZ = <OV.TQ - OV.CQ>/4 ;CONTROL QUEUE SIZE OV.A = OV.TQEND - OV.TQ ;GET ~HE TQ SiZE OV.REM = OV.A - «OV.A/10>*10> ;GET ANY REMAINDER OV.HITQ = OV.TQEND - OV.REM ;TYPE QUEUE HIGH LIMIT OV.TQSIZ = <OV.TQEND - OV.TQ - OV.REM> /10 ;TYPE QUEUE SIZE .END SIZPLD SIZE AND POLL SYSTEM - KT OPTIONS AND 11/60 SUPPORT SYMBOL TABLE 08-SEP-7B 09:35 SIZPLD.MAC ACSR 000102 ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEM8= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 AWAS 000110 BITO 000001 BITOO 000001 BIT01 000002 000004 BIT02 BIT03 000010 OIT04 000020 BIT05 000040 BIT06 000100 BIT07 000200 BITOB 000400 BIT09 001000 BIT1 000002 002000 BIT1 0 BIT11 004000 010000 BIT12 BIT13 020000 BIT14 040000 BIT15 100000 BIT2 000004 000010 BIT3 000020 BIT4 BIT5 000040 BIT6 000100 BIT7 000200 BITB 000400 001000 BIT9 BI\DEF 000002 BKMOD 000020 BKMODE= 040000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CCNTRL= ****** G CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CPUCPE= ****** G CQOVF = 000001 000015 CR 000100 CSRA CSRC = 000102 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DIAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.SLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 D1. KBE= 000024 DT.KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTI= 00011'0 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT:: 000066 Dr. SMX= 000106 DT. SP = 000006 DT.SS1= 000046 DT.STO= 00001'0 DT.ST1= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 DT.WHL= 000054 DT.WLL= 000052 DVIC1 = 000014 ECCMEM= 000100 EceSTA= 000010 ENBEOP= 010000 MACY 11 30A(1052) ENBNUL= 000001 E~mLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= OQ0203 EVNTPE= 000202 EVNTRE= 000201. FATERR= 100000 HRDADR= ****** G HRDCNT= 000044 HRDPAS= 000050 HTKT ****** G HTPAER= ****** G ICONT = 000036 ICOUNT= 000040 IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT INTR 000120 IOMOD 100000 IOMODP= 102000 IOMODR= 1120CO IOMODX= 110000 JACK 035060 KIPARO::: 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 1 72:~50 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KONTRL= ****** G KTERRO::: 000040 KTPRES= 000400 KTSET = ****** G KTSTAT= 000020 KTXTND= 040000 20-·SEP-78 18:49 000012 000001 000200 076600 040000 004000 002000 001000 000010 000011 000005 MSGDRP:~ 000017 MSGECH:= 177777 MSGEOP::: 000013 MSGHDR::: 000004 MSGHNG:: 000022 MSGHRD::: 000007 MSGMAP::: 000021 MSGNU L:= 177775 MSGPOP:= 000002 MSGPRM= 177776 MSGRES:: 000001 MSGSFT:= 000006 MSGSKE= 000003 MSGSMB= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP::: 000020 NOAPTY:: 000002 000000 NULL OV.A 000662 000122RG OV.CQ OV.CQS= 00'J050 G OV.HIC= 000362RG OV.HIK= 000120RG OV.HIT= 001244RG OV.KBB= OOOOOORG OV.KBS= 000122 G OV.REM= 000002 OV.TQ = 000364RG OV.TQE 001246R OV.TQS= 000066 G 024020 OWEN PAERR :: 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI:: 020000 PDP60 = 004000 LF LPSTAT:: MAPSTA-= MED MEMPAS:: MODEXH:: MODHOL:: MOOSE L:= MSGCKD:: MSGCKS:: MSGDER:: PAGE 23 SEQ 1170 P[)P70 PRIO :: PRI1 PRI4 PRI5 PRI6 PRI7 PRO PR4 PR5 PR6 PR7 PS P3W RANNUM= RBUFEA= RBUFPA= RBUFSZ= RBUFVA= RDSERV= RDWHMI= RELERR= 010000 000000 000040 000200 000240 000300 000340 000000 000200' 000240 000300 000340 1777'76 177776 000054 000130 000126 000132 000124 000101 000022 0000201 F~ELMOD= 020000 REL TIM= 010000 RESREG= *****-l<: G 000056 RES1 RES2 000060 RICHAR= 03106CI RPTDAT= 002.000 RSnH = 000112 RUBOUT=: 000177 RUNrJiOD= 100000 R5VALU= 001740 07~i464 SAM SAVREG= ****** G SBADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC.ADR= OOOOOE> SC.ALC= 000014 SC.APC= 000016 SC.CKL= 000002 SC.CKP= 000004 SC.CLO= OOOoon SC.HLD= 000010 SC.SCA:: 000012 SENDLS= 177777 S I ZPO L OOOOOORG SOFCNT== 000042 SOFPAS= 00004G SPACE = 000040 SPOINT= 000032 SPVALU= 002200 SIZPLD SIZE AND POLL SYSTEM.- KT OPTIONS AND '1/60 SUPPORT SYMBOL TABLE OB-SEP-78 09:35 SIZPLD.MAC TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR5= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 U!PDR2= 177604 UIPDR3= 1'17606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA== 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WDTO VJTINRE== 000352 SRO 177572 5R1 177574 5R2 177576 SR3 172516 55.l0P= 177600 SS.PCl= 172136 55.PCS= 172100 55.RFS= 160000 5S.0KC= 004000 SS.1KP= 000040 5S.1:20= 120000 5S.28 = 000034 STAT 000026 STATBI= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 000064 SVR1 SVR2 000066 5VR3 000070 SVR4 000072 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 TMPIO == 000002 ABS. 000000 001246 MACY 11 30A(1052) WTWHMI= 000222 XFLAG = 000005 XOFF 000023 XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAl= 000405 $F$GOO= 000400 $F$IF == 000110 $F$INC= 000210 $F$lOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEl= 000140 $F$THE= 000330 $F$TRU= 000404. $F$UNT= 000130 20··SEP-78 $F$WHI=: $F$YE5=: $ IF lEV::: $ISKO .. $I5K1 .. $ISK2 .$ LOCT A=: $l5TIN:: $l5TTA:: $NESTL:: $NSKO $NSK1 $NSK2 $NSK3 $NSK4 $NSK5 $SAVLE::: $5SKO $T AGLE::: $ TAGNU:: $TEMP $T5KO $TSK 1 $TSK2 $TSK3 $TSK4 o. 000120 000402 177777 000001 000001 000001 177777 000001 000001 177777. 000300 000120 000110 000110 000110 000110 177777 050046 177777 050051 000300 050045 050046 050050 050042 050043 18:49 PAGE:23-1 SEQ 1171 050044 $TSK5 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$DST = 000000 $$ELOC= 000402 $$ERFL= 000000 $$FLAG= 000001 $'$FROM= 000000 $$LOC = 001214R $$LOCN= 000000 $$REG = 177777 $$RETU= 000000 $$RTN1= 050000 $$RTN2= 050001 $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 $$10 000000 $$$TAG= 050000 001246R 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:SIZPLD,DSKZ:SIZPlD=SPMAC/ML,EQUATE,SIZPlD RUN-TIME: 29 19 .4 SECONDS RUN-TIME RATIO: 281/49=5.6 CORE USED: 14K (27 PAGES) -,". .MAIN. MACY11 30A(1052) 20-SEP-78 EQUATE.MAC 13-SEP-78 16:13 3 565 568 620 698 738 791 883 1016 18:54 TABLE OF CONTENTS COMMON EQUATE MODULE COMMON DEFINITIONS AND REFERENCES 000000 1 .PRINT jSPMAC: VERSION 1.1 KERNEL - DETERMINE PROCESSOR TYPE KERNEL - DETERMINE CPU OPTIONS KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT KERNEL - DETERMINE SySTEM SIZE KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT KERNEL - SORT MODULE LIST SEQ 1172 SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-81T ADDRESSING SIZPLE.MAC 08-SEP-78 09:33 COMMON EQUATE MODULE 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 MODULE NAME: SIZPLE FUNCTIONAL DESCRIPTION: THIS MODULE WILL SIZE THE SYSTEM FOR CPU TYPE AND PROCESSOR OPTIONS. IT WILL ALSO SIZE MEMORY AND IF "PARITY" OR "ECC MEMO~IY WILL WRITE GOOD PARITY. THE IIMODQ" LIST ItJILL BE SORTED TO DEVELOP A BACKGROUND MODULE LIST (QUEUE) NOTE: SUPPORT 11/70 AND 22-8IT ADDRESSING II INPUTS: DTABLE ADDRESS 532 533 534 OUTPUTS: NONE 527 528 529 530 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 IMPLICIT OUTPUTS: PARITY TABLE ADDRESS SYSTEM SIZE EXERCISE SIZE CONFIGURATION WORD 0 PATHOLOGICAL CONNECTIONS: SUBORQINATE ROUTINES CALLED: SAVREG - SAVE REGISTERS RESREG - RESTORE REGISTERS KTSEr - SET UP KT REGISTERS HRDADRCHK - ILLEGAL ADDRESS CHECK ICSRSZ - INDIRECT ECC CSR SIZING FUNCTIONAL SIDE EFFECTS: NONE CALLING SEQUENCE: CALL SIZPOL IN <A> A - DTABLE ADDRESS VERSION: 0.0 559 560 561 562 18:54 ;++ 531 526 20-SEP-78 PAGE 19 .TITLE SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING .IDENT /VO.O/ IMPLICIT INPUTS: CONFIGURAT!ON WORD 0 EXERCISER SIZE SYSTEM SIZE PARITY TABLE ADDRESS MODULE LIST BACKGROUND LIST 525 MACY11 30A(1052) EDIT ;-- DATE BY REASON SEQ 1173 MACY11 30A(1052) SIZPlE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING 08-SEP-78 .09:33 COMMON EQUATE MODULE SIZPLE.MAC 564 565 566 567 568 (1) 569 57.0 571 572 .0.0.0.0.0.0' 0.0.000.0' 0.000.01 0.0.00.01 .GLOBL .GlOBl .GLOBL .GLOBL .GlOBL .GLOBl .GLOBl .GLOBL .GlOBl .GLOBl 576 577 578 579 58.0 581 582 583 584 585 586 596 597 598 599 6.00 6.01 602 6.03 6.04 6C'S 6.06 6.07 6.08 6.09 61.0 611 612 613 614 615 616 617 618 HTPAER HTKT SAVREG RESREG KTSET HRDADRCHK ICSRSZ CPUCPE CCNTRl KONTRl ;SARE REGISTERS ;RESTORE REGISTERS ;SET UP KT ;IlLEGAL ADDRESS CHECK ;INDIRECT ECC CSR SIZING ;11/7.0 CPU ERROR REGISTER ;CACHE CONTROL REGISTER ;TEMPORARY STORAGE FOR CACHE CONTROL REGISTER ;**************** 587 588 589 594 595 .MCAll STRUCT STRUCT .PRINT ;SPMAC: VERSION 1.1 $LSTIN = 1 $lSTTAG = 1 ; GLOBAL REFERENCES 575 592 593 PAGE 20 ;**************** 574 591 18:54 .SBTTl COMMON DEFINITIONS AND REFERENCES 573 59.0 20-SEP-78 ; lOCAL EQUATES I 1721.0.0 172136 0.04.0.0.0 .00.0.034 0.0.0.04.0 12.0.0.0.0 1776.0.0 16.0.0.00 S5.PCSR 55.PCLS SS.DKC 5S.28 SS.1KP SS.12.oK 5S. lOP S5.RFS 1721.0.0 172136 40.0.0 A[)28 40 12.00.0.0 1'?76C.o 1 E,D.o.o.o ;START OF PARITY CSRS ;LAST PARITY CSR ;ONE K CHUNK ;28 DECIMAL ;1K IN PAR FORMAT ;FIRST ADDRESS IN PAR5 MAP ; I/O PAGE ;RESERVED FOR DIAGNOSTIC USE IN I/O PAGE ;**************** ; REFERENCED BY OTHER MODULES , .GlOBl SIZPOl ; +++++-+-++++++++++++++++++++++++ OVERLAY REGION GLOBAlS ;++++++++++++++++++++++++++++++ .GLOBL OV.KBBUF .GLOBL OV.HIKB .GLGBl OV.KBSIZ .GLGBL OV.CQ .GLOBL OV.HICQ .GlOBl OV.CQSIZ .GlOBL OV.TQ .GlOBl OV.HITQ .GlOBl OV.TQSIZ iMODULE ENTRY POINT SEQ 1174 SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-81T ADDRESSING 08-SEP-78 09:33 KERNEL - DETERMINE PROCESSOR TYPE SIZPLE.MAC 620 621 622 623 624 (2 ) 625 626 627 629 629 630 631 632 633 (4) 634 (4) 635 636 (4) 637 (4) 638 639 (3 ) 640 (4 ) 641 (4) 642 643 644 645 646 647 (3 ) (4 ) (3) (3 ) 648 649 (6) 650 651 (2) 20-SEP-78 18:54 PAGE 21 SEQ 1175 .SBTTL KERNEL - DETERMINE PROCESSOR TYPE ROUTINE SIZPOL <DTABLE> 000000' 000000' SIZPOL: ;+ ; STUFF PARITY AND KT VECTORS ; SAVE REGISTERS, GET DTABLE ADDRESS FROM R5 STACK AND CLEAR ; R1 ;- 000000' 000000' 012737 000006' 000006' 012737 000014' 000014' 012737 000022' 000022' 012737 000030' 000030' 004767 000034' 000034' 016502 000040' 000040' 005001 LET @#114 · .. #HTPAER LET @#116 ·.. #PRI7 LET @#250 · .. #HTKT LET @l#252 ·.. #PRI7 OOOOOOG 000114 000340 000116 OOOOOOG 000250 000340 000252 CALL SAVREG OOOOOOG . - DTABLE(R5) LET R1 . - #0 LET R2 000000 MOV #HTPAER,@#114 MOV #PRI7.,@#116 MOV #HTKT,@#250 MOV #PRI7,@#252 dSR PC.SAVREG MOV DTABLE(R5),R2 CLR R1 MOV MOV JSR MOV R5., - (SP) CPUCPE,-(R5) PC,HROADRCHK (SP)+,R5 BCS 50002$ MOV @#10,-(SP) MOV #1$t@l#10 ;+ ; DETERMINE PROCESSOR TYPE; 11/70, 11/60 OR LS 111 ,' 000042' 000042' 000044' 000050 1 000054 1 CALL HRDADRCHK IN <CPUCPE> 010546 016745 0047137 012605 OOOOOOG OOOOOOG IF.NO.ERROR THEN 000056' . 000056' 103422 ;+ ; SET UP ILLEGAL INSTRUCTION TRAP TO FIELD TRAP IF NOT ; 11/60 ;- 65~ 653 654 655 (2 ) 656 (4 ) 657 (2 ) 659 MACY11 30A(1052) 000060' 000060' 000064' 000064' 000072' 000072' 000074' 000074' PUSH @#10 013746 000010 012737 000104' 000010 076600 000101 LET @#10 .- #1$ INLINE <MED> INLlNE <RDSERV> MED RDSERV SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING KERNEL - DETERMINE PROCESSOR TYPE 08-SEP-78 09:33 SIZPLE.MAC 659 (6 ) 660 (2 ) 661 662 (2 ) 663 664 665 666 667 668 (4) 669 (2 ) 670 671 672 673 674 675 (2 ) 676 (6 ) 677 678 679 680 681 682 (2 ) 683 (2 ) 684 (4 ) (3) 685 686 687 688 689 '690 (3 ) (4) (3 ) (3) 691 (6) 692 (6 ) 693 694 (4) 695 (4) 000076' 000076' 052701 000102' 000102' 000405 LET R1 MACY11 30A(1052} 20-SEP-78 := R1 SET.BY #PDP60 SIS 004000 INLlNE <BR 3$> PAGE 21 '-1 SEQ 1176 #PDP60,R1 BR 3$ INLINE <1$:> 000104' 000104' 18:54 1 $: ;+ ; SET RETURN TO 2$ TO RESTORE PSW ;- 000104' 000104' 012716 000110' 000110' 000002 LET (SP) := #2$ M:JV 000112' 112$,(SP) INUNE <RTI> RTI ;+ ; MUST BE AN 11/70, BECAUSE OF TRAP , 000112' 000112' 000112' 000112' 052701 INLINE <2$ :~. LET R1 010000 2$: . - R1 SET.BY #PDP70 BIS #PDP70,R1 ;+ ; RESTORE RESERVED INSTRUCTICN TRAP ;- 000116' 000116' 000116' 000116' 012637 000122' 000122' 000411 000124' INLINE <3$:> 3$: POP @#10 000010 ELSE MOV {SP)+I,@l#10 BR 50003$ MOV MOV MOV R5,-(SP) #PSW,·-(R5) PC,HRDADRCHK (SP)+"R5 Bce 50004$ 8IS #PDPLSI,R' :,0002$ : + CHECK TO SEE IF LSI11 000124' 000124' 000126' 000132' 000136' 000140' 000140' 000142' 000142' 000146' 000146' 000146' 000146' CALI. HRDADRCHK IN <#PSW> 010546 012745 004767 012605 177776 OOOOOOG JSR IF. ERROR THEN 103002 052701 LET R1 '- R1 SET.BY #PDPLSI 020000 ENDIF ENDIF ~50004$ : ~50003$ : SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-8IT ADDRESSING SIZPLE.MAC 08-SEP-78 09:33 KERNEL - DETERMINE PROCESSOR TYPE 696 MACY11 30A(1052) 20-SEP-78 18:54 PAGE 21-~ SEQ 1177 SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING SIZPLE.MAC 08-SEP-78 09:33 KERNEL - DETERMINE CPU OPTIONS 698 699 700 701 702 703 704 705 (3 ) (4) (3) (3) 706 (6) 707 (6) 708 (3) (4) (3 ) (3 ) 709 (6) 710 (6) 711 712 713 714 715 716 717 (4 ) 718 (6 ) (9) 719 (6) 720 (4 ) 721 (4 ) 722 (4 ) 723 724 725 726 727 728 729 730 731 732 (3) (4 ) MACY11 30A(1052) 20-SEP-78 18:54 PA.GE 21-3 SEQ 1178 .SBTTL KERNEL - DETERMINE CPU OPTIONS ;+ ; DETERMINE IF "KT" IS PRESENT AND IF IT IS CHECK TO ; SEE IF EXTENDED KT" IS PRESENT ; _. 000146' 000146' 000150' 000154' 000160' 000162' 000162' 000164' 000164' 000170' 000170' 000172' 000176' 000202' 000204' 000204' 000206' 000206' CALL HRDADRCHK IN <#SRO> 010546 012745 004767 012605 177572 OOOOOOG MOV MOV JSR MOV R5,-(SP) #SRO,···(R5) PC,HRDADRCHK (SP)+,R5 BCS 5000S1; BIS #KTPRES,R1 Mav MJV JSR MOV R5,-(SP) #SR3,-'(RS) PC,HRDADRCHK (SP)+,R5 BCS 50006$ BIS #KTXTND,R1 MOV #100000,@#KIPAR5 CMP SNE @#\o<,IP,o,R5, #1 00000 50007$ SIS #ADDR22,R1 MOV MOV R5,-(SP) CCNTRL.,-(R5) IF.NO.ERROR THEN 103424 LET R1 052701 000400 010546 012745 004767 012605 172516 OOOOOOG . - R1 SET.BY #KTPf'lES CALL HRDADRCHK IN <#SR3> IF.NO.ERROR THEN 103413 LET R1 052701 : = R1 SET.BY #KTXTNO 040000 ;+ ; DETERMINE IF 22-ADDRESSING 8Y LOADING PARS WITH 16 BIT .,i _. WORD AND FtEAD PARS TO SEE IF wORD READ IS SAME AS WRITTEN (100212' 000212' 000220' 000220' 000226 1 000230 1 000230' 000234' 000234' LET @#KIPAR5 := #100000 012737 100000 172352 023727 001002 172352 100000 052701 001000 IF @#KIPAR5 EQ 11100000 THEN LET R1 . - R1 SET.BY #ADDR22 ENDIF ~S0007$ : ENDIF 000234~ ei0006$ : 000234' 000234' 000234' ENDIF ei0005$ : ;+ ; NOW DETERMINE IF CACHE MEMORY IS PRESENT BY CHECKING ; CACHE CONTROL REGISTER ; -- 000234' 000234 1 010546 000236' 016745 CALL HRDADRCHK IN <CCNTRL> OOOOOOG SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-8IT ADDRlSSING SIZPLE.MAC 08-SEP-78 09:33 KERNEL - DETERMINE CPU OPTIONS (3) (3) 733 (6) 734 (6) 735 (4) 736 000242 1 000246 1 000250 1 000250 1 000252 1 000252 1 000256 1 000256 1 004767 012605 MACY~ 1 30A( 1052) 20--SEP-78 OOOOOOG 18: 54 PAGE 21--1.\ SEQ 1179 JSR MOV PC,HRDADRCHK (SP)+,R5 BCS 50010$ SIS #CAPRES,R1 IF.NO.ERROR THEN 103402 LET R1 052701 '- R1 SET.BY #CAPRES 000004 ENDIF 50010$: SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING MACY11 30A(1052} SIZPLE.MAC 08-SEP-78 09:33 KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT 738 739 740 741 742 743 744 745 746 (4) 747 748 (4) 749 (4) (6) (9) 750 (3) (4) (3) (3) 751 (6) 752 (4) 753 754 755 756 757 758 759 (6) 760 (6) (9) 761 (6) 762 (4) (3) 763 (6) 764 (4) 765 (4) 766 (4) 767 768 769 770 771 772 20-SEP-78 18:54 PAGE 2) ~ SEQ 1180 .SBTTL KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT ;+ ; GET STARTING ADDRESS OF PARITY TABLE, THEN DETERMINE IF ; PARITY CSR REGISTERS ARE AVAILABLE IF SO PLACE CSR ADDRESS ; IN PARITY TABLE. ;- 000256' 000256' 016200 000262 1 000262 1 012703 000266' 000266 1 000266 1 020327 000272' 003035 000274 1 000274 1 0105'16 000276' 010345 000300' 004767 000304 1 012605 000306 1 000306' 103414 000310 1 000310' 010320 LET RO '- DT.PTA(R2) 000064 LET R3 '- #SS.PCSR 172100 MOV DT.PTA(R2),f~0 MOV #SS.PCSR,R3 CMP BGT R3,#SS.PCLS 50012$ MOV MOV MOV R5,-(SP) R3,-(I=1:5) PC,HRDADRCHK (SP)+,R5 BCS 50013$ MOV R3,(RO)+ SIS #BIT01:,(R3) BIT BEQ #B1T011, (R3) 50014$ BIS #ECCMEM,R1 BR 5Q.o 15$ SIS #PARPf~ES, R1 CLR ( R~3 ) WHILE R3 LE #SS.PCLS DO 50011$: 172136 CALL HRDADRCHK IN <R3> JSR OOOOOOG IF.NO.ERROR THEN LET (RO)+ '- R3 ;+ ; DETERMINE IF ECC MEMORY, IF IT IS SET ECC MEMORY BIT IN ; CONFIGURATION WORD 0 ELSE SET PARITY PRESENT BIT IN ; CONFIGURATION WORD o. eLEAR THE PARITY CSR1S , '- 000312' 000312 1 052713 000316' 000316 1 032713 000322 I 001403 000324 1 000324 1 052701 000330 1 000330 1 000402 000332 1 000332 1 000332 1 052701 000336' 000336 1 000336 1 000336 1 005013 000340' 000340 1 LET (R3) .- (R3) SET.BY #BIT01 000002 IF #BIT01 SETIN (R3) THEN 000002 LET R1 000100 . - R1 SET. BY #ECCMEM ELSE ~50014$: LET R1 . - R1 SET. BY #PARPRES 002000 ENDIF !30015$: LET (R3) .- #0 ENDrF 50013$: ;+ ; IF 11/70 PROCESSOR THEN SET PARITY PRESENT IN CONFIGURATION ; WORD 0 AND POINT TO PARITY CSR + 4, ELSE POINT TO ; PAR I TY CS'R + 2 ;- MACY11 30A(1052) SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING KERNEL - DETERMINE IF PARITY OR ECC MEMORY PRESENT 08-SEP-78 09:33 SIZPLE.MAC 773 (6) (9) 774 (6) 775 (6) 776 (4 ) (3) 777 (6) 778 (4) 779 (4) (3 ) 780 781 782 783 784 785 (6) (9) (6) (9 ) 786 (3) (4) (3) ( 3) 787 (4 ) 788 789 000340' 000340' 000344' 000346' 000346' 000352' 000352' 000356' 000356' 000360' 000360' 000360' 000364' 000364' 000364' 000364' 000366' 20-SEP-78 010000 052701 002000 062703 lET R1 · - R1 SET.BY #PARPRES lET R3 · - R3 + #4 000004 BIT SEQ #PDP70,R1 50016$ SIS #PARPRES,R1 ADD #4,R3 SR 50017$ ADD #2,R3 SR 50011$ BIT SEQ TST SNE #PDP70,R1 50020$ @DT.PTA(R2) 50020$ MOV R5,-(SP) R2,-(FI:5) PC, I CS.RSZ (SP)+,R5 ELSE 000402 LET R3 062703 · - R3 + #2 PAGE 2"\ 50016$: 000002 ENDIF 50017$: ENDDO 000740 50012$: ;+ ; DETERMINE IF WE SHOULD CHECK FOR INDIRECT CSRS ON THE 11/70 ;- 000366' 000366' 000372' 000374' 000400' 000402' 000402' 000404' 000406' 000412' 000414" 000414' IF #PDP70 SETIN R1 AND @DT.PTA(R2) EO #0 THEN 032701 001410 005772 001005 010000 000064 CALL ICSRSZ IN <R2> 010546 010245 004767 012605 MOV JSR MOV OOOOOOG ENDIF ,) SEQ 1181 IF #PDP70 SETIN Ri THEN 032701 001405 18:54 !:i0020$,: SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDR~SSING SIZPLE.MAC 08-SEP-78 09:33 KERNEL - DETERMINE SYSTEM SIZE 791 792 793 794 795 796 797 798 (4) 799 800 801 802 803 804 805 (6) (9) 806 807 808 B09 810 B11 (4 ) B12 (4) B13 814 B15 816 B17 81B (3) 819 (6) 820 (6) 821 (3 ) (4) ( 3·) (3) 822 (6) 823 (:2 ) 824 (4 ) 825 (3 ) (6 ) 826 827 828 829 MACY"11 30A ( 1 052) 20-SEP-78 18: 54 PAGE 2, , SEQ 1182 .SBTTL KERNEL - DETERMINE SYSTEM SIZE ;+ ; NOW TAKE THE CONTENTS OF LOC. 0 (EXERCISER SIZE) ; AND LOAD IT INTO EXERCISER SIZE WORD ;- 000414' 000414' 016762 LET DT.ESIZ(R2) '- 0 000000 000044 MOV 0.DT.ESIZ(R2) BIT BNE #KTPRES,R1 50021$ CLR RO CLR R3 INC RO ADD #SS . O~<C R3 MOV MOV JSR MOV R5 1 -(SP) R3,-:(H5) PC,HRDADRCHK (SP)+,R5 Bce 50023$ ;+ ; IF NO "KT" DETERMINE SYSTEM SIZE, WHICH CAN NOT BE GREATER .._ ; THAN 28K. . 000422' 000422' 032701 000426' 001053 IF NKTPRES NOTSETIN R1 THEN 000400 ;+ ; SET UP COUNTER OF 1K CHUNKS AND 1K BLOCK POINTER ,' - LET RO '- #0 000430' 000430' 005000 000432' 000432' 005003 LET R3 '- #0 ;+ ; REPEAT UNTIL NON-EXISTENT MEMORY OR 28K ,' - 000434' 000434' 000434' 000434' 000436' 000436' 000442' 000442' 000444' 000446' 000452' 000454' 000454' 000456' 000456' 000460' 000460' 000460' 000460' 000464' REPEAT :50022$ : LET RO .- RO + #1 005200 062703 010546 010345 004767 012605 LET R3 '- R3 + #SS.OKC 004000 CALL HRDADRCHK IN <R3> OOOOOOG IF.ERROR THEN 103001 t INLINE <BR 4$> BR 4$ 000403 ENDIF !50023$ : UNTIL RO EO #S5.28 020027 001363 CMP 000034 BNE .+ DETERMINE IF SYSTEM HAS 30K BY LOOKING AT FIRST ADDRESS IN I/O PAGE RO,#SS.28 50022$ SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-B1T ADD~ESSING SIZPLE.MAC 08-SEP-78 09:33 KERNEL - DETERMINE SYSTEM SIZE 830 831 (2 ) 832 (6) (9) 833 (3) (4) (3) (3 ) 834 (6) 835 (6 ) 836 (4) 837 (4) 838 839 840 841 842 843 844 845 (4 ) 846 (4) ( 7) (7) (7) (7 ) (7) (7 ) 847 (4) (3) 848 849 850 851 852 (3 ) (4) (3 ) (3 ) 853 854 855 856 857 858 859 860 000466 1 000466' 000466 1 000466' 000472' 000474' 000474 1 000476 1 000502 1 000506' 000510 1 000510 1 000512 1 000512' 000516 1 000516 1 000516 1 000516 1 MACY11 30A(1052) 20-SEP-78 INLlNE <4$:> 010546 012745 004767 012605 CMP 000034 BNi:. RO,#SS.28 50024$ CALL HRDADRCHK IN <#SS.RFS> I'v1:JV MOV JSR MOV 160000 OOOQOOG R5,-(SP) #SS.RFS,-(R~;) PC,HRDADRCHK (SP)+.R5 IF.NO.ERROf\ THEN 103402 LET R3 062703 PAGE 21-8 SEQ 1193 4('t· ::l). IF RO EQ #5S.28 THEN 020027 001011 18:54 . - R3 + #10000 010000 BCS 50025$ ADD #10000,R3 ENDIF 50025$: ENDIF 5,0024$ : ;+ ; NOW GET MEMORY SIZE IN "PARI! FORMAT BY SHIFTING R3, 6 TIMES ; TO THE RIGHT, ONCE THIS IS DONE LOAD INTO SYSTEM ; SIZE WORD. , '- 000516 1 000516 1 000520 1 000520 1 000524 1 000530 1 000534' 000540 1 000544 1 000550' 000554 1 000554 1 000556 1 000556 1 000556' 000560 1 000562 1 000566 1 LET CARRY := #0 000241 LET DT.SSIZ(R2) 010362 006062 006062 006062 006062 006062 006062 000046 000046 000046 000046 000046 000046 000046 MOV ROR ROR ROR ROR ROR ROR R3,DT.SSIZ(R2) DT.SSIZ(R2) DT.SSl.Z(R2) DT.SSl.Z(R2) DT.SSIZ(R2) DT.SSIZ(R2) DT.SSIZ(R2) BR 50026$ MOV MOV JSR MOV R5,-(SP) R2,.-(F<5) PC,KTSET (SP)+"R5 ELSE 000443 ~)0021$: ;+ ; KT IS PRESENT, FIRST GO MAP APRS ;CALL KTSET IN <R2> 010546 010245 004767 012605 OOOOOOG ;+ WILL USE KIPAR5 TO SIZE MEMORY. TURN ON KT AND THEN SIZE UNTIL NON-EXISTENT MEMORY IS FOUND'OR THE I/O PAGE IS FOUND. SIZING WILL BE DONE IN 1K STEPS 000570 1 CLC .- R3 ROTATE -6 LET @#KIPAR5 .- #SS. n<p SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING SIZPLE.MAC 08-SEP-78 09:33 KERNEL - DETERMINE SYSTEM SIZE (4) 861 (6) 862 (6) (9) 863 (6) 864 (4) 865 866 (3 ) 867 (6) 868 (3) (4) (3) (3 ) 869 (6) 870 (2) 871 (4) 872 (3 ) (6) 873 874 875 876 877 878 (2 ) 879 (4) 880 (4 ) 881 000570 1 012737 000576' 000576' 052737 000604' 0006041 032701 000610' 001403 000612 1 000612' 052737 000620 1 000620 1 000620' 000620' 000620' 000620' 062737 000626' 000626 1 010546 000630 1 012745 000634' 004767 000640 1 012605 000642' 000642 1 103001 000644 1 000644' 000404 000646 1 000646' 000646 1 000646' 023727 000654' 001361 000040 172352 000001 177572 20-SEP-78 IF #ADDR22 SETIN R1 THEN 001000 LET @#SR3 := @#SR3 SET.BY #BIT04 000020 172516 ENDIF #SS.1KP,@#KIPAR5 SIS #BITOO ,@#SRO· BIT SEQ #ADDR22,R1 50027$ SIS #BIT04,@#SR3 ADD #SS.1KP,@#KIPAR5 :;0030$ : LET @#KIPAR5 := @#KIPAR5 + #SS.1KP 172352 CALL HRDADRCHK IN <#SS.120K> 120000 OOOOOOG IF.ERROR THEN INLINE <BR 5$> ENDIF R5,-(SP) #SS.1~!OK,-(R5) SCC 50031$ PC,HRDADRCHK (SP)+,. R5 ~)0031$: CMP BNE 177600 @#KIPAR5,#SS.IOP 50030$ LOAD SYSTEM SIZE WORD WITH CONTENTS OF KIPAR5 INLINE <5$:> 5$: LET DT.SSIZ(R2) '- @#KIPAR5 172352 MOV MOV J5R MOV SR 5$ UNTIL @#KIPAR5 EO #SS.IOP 172352 PAGE 21-9 SEQ 1184 Ei0027$ : REPEAT 000040 18:54 MOV LET @#SRO :,,: @#SRO SET. SY # BI TOO + 000656' 000656' 000656' 000656' 013762 000664' 000664' MACY11 30A(1052) MOV 000046 ENDIF !50026$ : @#KIPAR5,DT.SSIZ SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-8IT ADDR~~SING MACY11 30A(1052) SIZPLE.MAC 08-SEP-78 09:33 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 883 8B4 885 886 887 888 889 (6) (8 ) (6) (9) (6) 890 891 892 893 894 895 896 (6) (9 ) 897 (4 ) 898 (4) 899 (4 ) ; DETERMINE IF PARITY OR ECC MEMORY IS PRESENT. 000664 1 000664' 032701 000670' 001003 000672 1 032701 000676 1 001506 000700 1 IF #PARPRES SETIN R1 OR #ECCMEM SETIN R1 THEN 002000 000100 000700 1 000700' 032701 000704' 001406 000706' 000706' 012767 000714 1 000714' 016777 000722' 000722 1 MOV #3,KONTRL MOV KONTRL.,@CCNTRL BIT BEQ #KTPRES,R1 50035$ JSR PC,KTSET CLR @#f<IPDR6 CLR @l#KIPAR5 IF #CAPRES SETIN R1 THEN 000004 LET KONTRL:= #3 000003 COOOOOG LET @CCNTR·L != KONTRL OOOOOOG OOOOOOG ENDIF 5,0034$ : ;+ SINCE PARITY OR ECC IS PRESENT AND TURNED OFF ; WILL NOW SET UP TO WRITE GOOD PARITY INTO ALL ; OF MEMORY, FIRST DETERMINE IF KT IS PRESENT THEN SET ; UP KT REGISTERS. ', - 000722' 000722' 032701 000726' 001434 000730' 000730' 004767 IF #KTPRES SETIN R1 THEN 000400 CALL KTSET OOOOOOG i+ ; SET UP KIPDR6 TO TRAP WHEN ENTERING PAGE. AND ; SET UP KIPAR5 TO MAP TO 0 ;- 915 923 #CAPRES,R1 50034$ ;- 912 913 914 921 BIT SEQ ;+ 910 911 922 #Pf\RPRES, R1 50032$ #ECCMEM,R1 50033$ ; IF CACHE PRESENT, SET SIT 0,1 IN CACHE CONTROL REGISTER ; THIS WILL TURN CACHE OFF 906 920 BIT Bf--JE BIT BEQ 50032$: 907 918 919 10 SEQ '185 :- 905 917 (4) PAGE 2, ;+ 904 916 (4) 18:54 .SBTTL KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 900 901 902 903 908 (6) (9) 909 (3) 20-SEP-78 000734' 000734 1 005037 000740' 000740' 005037 LET @#KIPDR6 ,- #0 172314 LET @#KIPAR5 .- #0 172352 ;+ ; SAVE KT ERROR VECTOR AND SET UP KT ERROR VECTOR TO ; GO TO 7$. THEN TURN ON KT AND SET UP BUSERR VECTOR AT 8$ ; SET UP RO TO USE PAR5 :- SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING MACY11 30A(1052) SIZPLE.MAC 08-SEP-78 09:33 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 924 925 (2 ) 926 (4) 927 (2 ) 928 (4) 929 (6 ) 930 (6) (9) 931 932 933 934 935 (6) 936 (4) 937 (4) 938 (4) (3) 939 940 941 942 943 944 (4) 945 (2) 946 (4) 947 948 (All' 949 950 951 952 953 (2 ) 954 (4 ) 955 (2 ) 956 957 958 959 960 000744' 000744' 000750' 000750' 000756' 000756' 000762' 000762' 000770' 000770' 000776' 000776' 001002' 20-SEP-78 PUSH @#4 013746 000004 012737 001060' 000004 013746 000250 012737 001040' 000250 052737 000001 032701 001403 001000 001004' 001004' 052737 001012' 001012' 001012' 001012' 012700 001016' 001016' 000406 001020' PAGE 21-11 SEQ 1186 MOV @#4,-(SP) MOV #8$,@#4 MOV @#250,-(SP) MOV #7$,@#250 BIS #BITOO,@#SRO BIT SEQ #ADDR2.2,R1 50036$ BIS #BIT04,@#SR3 MOV #SS.120K,RO BR 50037$ CLR RO MOV @#4,-(SP) LET @#4 '- #8$ PUSH @#250 LET @l#250 '- #7$ LET @#SRO '- @#SRO SET.BY #BITOO 177572 IF #ADDR22 SETIN R1 THEN LET @l#SR3 '- @#SR3 SET.BY #BIT04 000020 172516 ENDIF !:i0036$ : LET RO '- HSS.120K' 120000 ELSE !S0035$ : + 001020' 001020' 005000 001022' 001022' 013746 001026' 001026' 012737 18:54 IF KT NOT PRESENT THEN SET UP POINTER AND SAVE BUSERR VECTOR LET RO '- #0 PUSH @#4 000004 LET @#4 '- #10$ MOV 001106' 000004 ENDIF 001034' 001034' ~50037$ : ;+ ; NOW WRITE GOOD PARITY ; -- 001034' 001034' 001034' 001034' 011020 001036' 001036' 000776 INLINE<6$:> 6$: LET (RO)+ '- (RO) MOV INLINE <BR 6$> BR 6$ ;+ COME HERE BY WAY OF KT TRAP ; UPDATE PAR5 TO NEXT 4K BLOCK AND RESET RO TO START ; OF BLOCK. LOAD RETURN PC WITH 6$ AND RTI (FW), (RO)+ SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING MACY11 30A(1052) SIZPLE.MAC 08-SEP-78 09:33 KERNEL - WRITE GOOD PARITY IF ECC OR PARITY PRESENT 961 962 963 (2 ) 964 (6) 965 (4) 966 (4) 967 (:2 ) 968 969 970 971 972 973 974 975 (2 ) 976 (6) 977 9?8 (4 ) 979 (2 ) 980 981 (2 ) 982 (2 ) 983 (2 ) 984 (2 ) 001040' 001040' 001040' 001040' 001046' 001046' 001052' 001052' 001056' 001056' INLINE <7$ D· 992 (2 ) 993 (2) 994 995 (4) 996 997 998 999 PAGE 21-12 SEQ 1187 7$: LET @#KIPAR5 := @JKIPAR5 + #200 062737 000200 012700 120000 012716 001034' 172352 LET RO := #SS.120K LET (SP) := #6$ INLINE <RTI> ADD #200,@#KIPAR5 MOV #SS.120K,RO MOV #6$,(SP) RTI 000002 :+ ; COME HERE BY WAY OF ILLEGAL ADDRESS TRAP ; TOP OF MEMORY WAS FOUND, TURN OFF MEMORY MANAGEMENT, ; REMOVE TRAP PC AND PSW FROM STACK AND RESTORE BUSERR AND MEMGMT VECTORS 001060 1 001060' 001060' 001060' 042737 001066 1 001066' 012716 001072 1 001072' 000002 001074 1 001074 1 001074 1 001074' 012637 001100' 001100' 012637 001104' 001104' 000403 INLINE <8$:> 8$: LET @#SRO := @#SRO CLR.BY #BITOO 000001 177572 LET (SP) := #9$ 001074' BIC #BITOO,@#SRO MOV #9$,(SP) INUNE <RTI> RTI INLINE <9$:> 9$: POP @#250 000250 POP @#4 MOV 000004 INUNE <BR 11 $> (SP)+v@#4 SR 11 $ ;+ ; WILL TRAP HERE IF NO MEMORY MANAGEMENT, CLEAN UP ; STACK AND RESTORE BUSERR 98'1 (2 ) 18:54 ;- 985 986 "988 989 990 991 20-SEP-78 001106 1 001106' 001106 1 001106 1 022626 001110' 001110' 012637 001114' 001114' INLINE <10$:> 10$: INLINE <CMP (SP)+,(SP)+> CMP (SP)+, (SP)+ POP @#4 MOV 000004 ENDIF (SP)+!@#4 ~50033$ : ;+ ; IF AUTOMATIC MODE(ACT,SLIDE,XXDP,ETC.), SET AUTO BIT IN CONFIGURATION WORDO MACY'! 1 30A(1052) SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-8IT ADDR~SSING KERNEL - WRITE GOOD PARITy IF ECC OR PARITY PRESENT 08-SEP-78 09:33 SIZPLE.MAC 1000 1001 1002 (2 ) 1003 (6 ) (9 ) 1004 (6 ) 1005 (4 ) 1006 1007 1008 1009 1010 1011 1012 (6) 1013 (~ ) 1014 20-SEP-78 18 ::54 PAGE 21-13 SEQ 1188 , 001114' 001114' 001114' 001114' 005737 001120' 001402 001122' 001122' 052701 001126' 001126' INLINE <11$:> 11 $ ~ IF @#42 NE 110 THEN 000042 LET R1 TST SEQ (c,}J#42 SIS #AUTO,R1 BIC #OWEN,R1 BIS R1,DT.CFO(R2) 50040$ := R1 SELBY #AUTO 000010 ENDIF 5,0040$ : ;+ ; LOAD UP CONFIGURATION WORD 0 ; CLEAN UP ~t1 BEFORE LOADING DT.CFO j- 001126' 001126' 042701 001132' 001132' 050162 LET R1 . - R1 CLR.BY #OWE.N 024020 LET DT .CFO(F12) 000014 := DT.CFO(R2) SET.BY R1 MACY11 30A(1052) SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING SIZPLE.MAC 08-SEP-78 09:33 KERNEL - SORT MODULE LIST 1016 1017 1018 1019 1020 1021 1022 1023 (4) 1024 (4) 1025 (4) (6) (9) 1026 (6) 1027 (6) 1028 ( 4) ( 3) 1029 1030 1031 1032 1033 1034 1035 (4) 1036 1037 1038 1039 1040 1041 (4) (6) (9 ) 1042 (3) 1043 1044 1045 1046 104'7 1048 (4 ) 1049 (6) (9) 1050 1051 1052 1053 1054 20-SEP-78 18:54 PAGE 22 SEQ 1189 .SBTTL KERNEL - SORT MODULE LIST + COUNT THE MODULES 001136' 001136' 001140' 001140' 001144' 001144\ 001144' 001150' 001152' 001152' 001154' 001154' 001160' 001160' 001162' LET RO .- #0 005000 LET R1 016201 000032 021127 001404 000000 CLR RO MOV DT.MLST(R2),R1 CMP BEQ (Rl ), #ENDLST 50042$ INC RO ADD #2,R1 BR 50041$ .- DT.MLST(R2) WHILE (R1) NE #ENDLST DO 50041$: LET RO .- RO + #1 005200 062701 lET R 1 • - R 1 + # 2 000002 ENDDO 000771 50042$: ;+ ; START THE SORT OPERATION, AND SORT IIBKMODII TO BOTTOM OF MODQ LIST, ; DEVELOPING A "BKMOD QUEUE" 001162' 001162' 016201 LET R1 := DT.MLST(R2) 000032 MOV DT.MLST(R2),R1 TST BlE RO 50044$ MOV ( R 1 ) t ~t4 BIT #BKMOD,STAT(R4) 50046$ ;+ ; WORK THRU THE LIST UNTIL THE END IS REACHED ;- WHILE RO GT #0 DO 001166' 001166' 001166' 005700 001170' 003432 001172' 0011'72' 5,0043$ : REPEAT 50045$: ;+ ; 15 THE CURRENT ENTRY A BKMOD MODULE? 001172' 001172' 011104 001174' 001174' 032764 001202' 001414 LET R4 . - (R 1 ) IF #BKMOD SETIN STAT(R4) THEN 000020 000026 BEQ + THE CURRENT ENTRY IS A BKMOD, WHAT ABOUT THE NEXT ENTRY? MACY11 30A(1052) SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING SIZPLE.MAC 08-SEP-78 09:33 KERNEL - SORT MODULE LIST 1055 (4 ) 1056 1057 1058 1059 1060 1061 (6) (9) 1062 1063 1064 1065 1066 1067 (6) (9 ) 1068 (4) 1069 001204 1 001204 1 016103 001210 1 001210 1 020327 001214 1 001407 001216 1 001216' 032763 001224' (4) (3) 1088 1089 1090 1091 1092 1093 MOV 2(R1),R3 CMP BEQ R3,#ENDLST 50047$ IF R3 NE #ENDLST THEN 000000 000020 IF ITS NOT A BKMOD, SWAP THEM IF #BKMOD NOTSETIN STAT(R3) THEN BIT #BKMOD,STAT(R3) BNE 50050$. LET 2(R1) := (R1) MOV ( R1 ) ,~~ ( R1 ) LET (H1) := R::I MOV R3,(R1) ENDIF 0.00026 001003 001226' 001226 1 011161 001232 1 001232' (3 ) LET R3 := 2(H1) 000002 + 001234' 001234 1 001234 1 001234 1 001234 1 001234 1 (6) 1080 1081 1082 1083 1084 1085 (6) 1086 (4) 1087 PAGE 22-1 SEQ 1190 MAKE SURE ITS NOT THE END OF THE LIST (4 ) (4) 18:54 + 1070 (4) 1071 (4) 1072 1073 1074 1075 1076 1077 1078 (6) 1079 20-SEP-78 000002 010311 ENDIF :;0047$: ENDIF :;0046$: ;+ ; UPDATE THE POINTER AND CONTINUE SEARCHING THRU THE LIST j- 001234 1 001234 1 062701 001240' 001240 1 021127 001244' 001352 LET Ri : = R1 + #2 000002 ADD #2,R1 CMP BNE (R1),#ENDLST 50045$ UNTIL (R1) EO #ENDLST 000000 ;+ ; THE END OF THE LIST HAS BEEN REACHED, SO UPDATE THE MAIN POINTER & CONTINUE ;-<. . . . . 001246 1 001246' 005300 001250' 001250' 016201 001254 1 001254' 000744 001256 1 LET RO '- RO - #1 LET R1 DEC RO MOV DT.MLST(R2),R1 BR 50043$ '- DT.MLST(R2) 000032 ENDDO !50044$ : ;+ ; NOW THAT THE BACKGROUND MODULES HAVE BEEN GROUPED TOGETHER AT THE END ; OF THE MODULE LIST, PUT THE ADDRESS OF THIS BACKGROUND LIST (IF THERE IS ; A BACKGROUND LIST) INTO THE DATA TABLE ,' - SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-RIT ADDRESSING SIZPLE.MAC 08-SEP-78 09:33 KERNEL - SORT MODULE LIST 1094 1095 (4) 1096 1097 1098 1099 1100 1101 (4) 1102 (4) 1103 (4) (6 ) (9) (6) (9) 1104 (4 ) 1105 (6) (9) 1106 1107 1108 1109 1110 1111 (4) 1112 (4) 1113 (4) 1114 (4) (3 ) 1115 1116 1117 1118 1119 1120 (6) 1121 (4) 1122 (4) (3) 1123 11211 1125 1126 1127 1128 (3 ) 001256 1 001256' 016201 LET Ri := DT.MLST(R2) MOV LET DT.BLST(R2} 005062 000034 012703 177777 021127 001420 005703 001416 000000 18:54 PAGE 22-2 SEQ 1191 DT .MLST(R2) ,Rl WORK THRU THE MODULE LIST UNTI L THE FIRST BACKGROUND MODULE IS FOUND := #0 CLR DT.BLST(R2) 1\10 V #-1, R3 eMF' TST BEQ (R1 ) I ilENDLST 50052$ R3 50052$ MOV (R1),R4 BIT BEQ #BKMOCl,STAT(R4) 50053$ LET R3 := #-1 WHIL.E ( R1 ) NE #ENDLST AND R3 NE #0 00 5005"15: B~Q LET R4 01 1104 032764 001406 . - (R 1 ) IF #BKMOD SETIN STAT(R4) THEN 000020 000026 + 001316' 001316 1 001322' 001322 1 001326 1 001326 1 001330 1 001330 1 001332' 20-SEP-78 000032 + 001262 1 001262 1 001266' 001266 1 001272 1 001272 1 001272 1 001276 1 001300 1 001302' 001304' 001304 1 001306' 001306' 001314 1 MACY11 30A(1052) A BACKGROUND MODULE HAS BEEN FOUND - SO THIS IS THE START OF THE BACKGROUND LIST LET DT.BLST(R2) 010162 000034 012701 000000 . - R1 ·- #ENDLST LET R3 ·- #0 MOV R1,DT.BLST(R2) MOV #ENDLST,Rl CLR R3 BR 50054$ ADD #2.R1 BR 50051$ JSR PC 'f RESREG LET Rl 005003 ELSE 000402 :;0053$ : + 001332 1 001332 1 062701 001336 1 001336 1 001336' 001336' 000755 001340' UPDATE THE POINTER AND CONTINUE TO SEARCH THRU THE MODULE LIST LET R1 000002 ·- R1 + #2 ENDIF ~50054$ : ENDDO b0052$: + NOW RETURN TO THE CALLER 001340' 001340' 004767 CALL RESREG OOOOOOG SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-BIT ADDRESSING SIZPLE.MAC 08-SEP-78 09:33 KERNEL - SORT MODULE LIST 1129 (3) (3) (2 ) 1130 18:54 50000$: 50001$: RTS 1131 ;+ ; LABEL TYPE QUEUE HIGH LIMIT 1135 (2 ) 1136 20-SEP-78 ENDRTN 001344 1 001344 1 001344 1 0013441 000207 1132 1133 1134 MACY11 30A(1052) PC 'f - 001346 1 001346' INLINE <OV.TQEND:> OV.TQEN[): 1137 1138 '1139 1140 1141 ;************************************** ; NOTE: THESE OVERLAY EQUATES MUST BE LEFT IN THIS POSITION (THAT IS, AFTER SIZPOL AND TO. END LABELS) 1142 1143 1144 ;++++++++++++++++++++++++++++++++++++++ 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 '159 1160 OVERLAY REGIONS EQUATES 000000 1 0001221 000364 1 000120 1 000122 000362 1 000050 000762 000002 001344 1 000076 000001 ;++++++++++++++++++++++++++++++++++++++ OV.KBBUF = SIZPOL ;KEYBOARD BUFFER STARTING ADDRESS OV.CO= OV.KBBUF + AD<82> ;CONTROL QUEUE STARTING ADDRESS OV.TO = OV.CO + AD<162> ;TYPE QUEUE STARTING ADDRESS OV.HIKB = OV.CO - :2 ;KEYBOARD BUFFER HIGH LIMIT OV.KBSIZ = OV.CQ - OV.KBBUF ;KEYBOARD BUFFER SIZE OV.HICQ = OV.TO - :2 ;CONTROL QUEUE HIGH LIMIT OV.CQSIZ = <OV.TO - OV.CQ>/4 ;CONTROL QUEUE SIZE OV.A = OV.TQEND - Ov.TQ ;GET THE TO SIZE OV.REM = OV.A - «OV.A/10>*10> ;GET ANY REMAINDER OV.HITO = OV.TQEND - OV.REM ;TYPE QUEUE HIGH LIMIT Ov.TOSIZ = <OV.TQEND - OV.TQ - OV.REM> /10 ;TYP~ QUEUE SIZE .END PAGE 22-3 SEO 1192 SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-81T ADDRESSING SIZPLE.MAC OS-SEP-7S 09:33 SYMBOL TABLE 000102 ACSR ACTBIT= 004000 ADDR22= 001000 ADR 000006 APTFER= 000004 APTPRE= 000200 ASB 000106 ASSEMB= 000010 ASTAT = 000104 AUTO 000010 AUTOST= 020000 000110 AWAS BITO 000001 000001 BITOO [31T01 000002 8IT02 000004 000010 BIT03 BIT04 000020 BITOS 000040 BIT06 000100 BIT07 000200 BIT08 000400 001000 BIT09 BIT1 000002 BIT10 002000 BIT11 004000 010000 BI112 020000 81113 BIT14 040000 8IT15 100000 8IT2 000004 BIT3 000010 000020 BIT4 000040 BITS BIT6 000100 BIT7 = 000200 BITS 000400 001000 B1T9 BKDEF 000002 BKMOD 000020 BKMODE::: 0.40000 BKSLSH= 000134 CAPRES= 000004 CASTAT= 000004 CCNTRL= "'***** G CDERCT= 000146 CDWDCT= 000144 CKTIM = 100000 CLKPRE= 000001 CONFIG= 000056 CPUCPE= "'***** G 000001 CQOVF 000015 CR 000100 CSRA 000102 CSRC 000003 CTRLC 000017 CTRLO 000025 CTRLU DCEVNT= 000011 DEFRTN= 000400 DlAGMC= 000000 DROPMO= 100000 DSEVNT= 000014 DTABLE= 000000 DT.ADD= 000042 DT.AP = 000100 DT.APK= 000076 DT.BLS= 000034 DT.CFO= 000014 DT.CF1= 000016 DT.ERR= 000020 DT.ESI= 000044 DT.EVN= 000000 DT.EXS= 000060 DT.FCH= 000037 DT.FCN= 000036 DT.HMX= 000104 DT.KBE= 000024 01. KBP= 000026 DT.KBR= 000022 DT.KBU= 000030 DT.MLS= 000032 DT.MTl= 000110 DT.OFF= 000070 DT.PAS= 000074 DT.PC = 000002 DT.PFL= 000062 DT.PSW= 000004 DT.PTA= 000064 DT.RCS= 000102 DT.REL= 000040 DT.SCT= 000066 DT.SMX= 000106 DT.SP = 000006 DT.SSI= 000046 DT.STO= 000010 DT.S11= 000012 DT.SWR= 000056 DT.SYP= 000072 DT.WBU= 000050 01. WHL= 000054 DT.WLL= 000052 DVID1 = 000014 ECCMEM= 000100 ECCSTA= 000010 ENBEOP= 010000 ENBNUL= 000001 ENDLST= 000000 EOPBIT= 000001 ERRTYP= 000106 EVNTBE= 000200 EVNTHD= 000200 EVNTKT= 000203 EVNTPE= 000202 EVNTRE= 000201 FATERR= 100000 HRDADR= ****** HRDCNT= 000044 HRDPAS= 000050 HTKT ****** HTPAER= ****** ICONT = 000036 ICOUNT= 000040 ICSRSZ= ****"'* IDNUM = 000122 000100 IE INDPAR= 000040 INHDRP= 040000 INHEPR= 020000 INHREL= 001000 INHRRE= 000400 000030 INIT INTR 000120 100000 IOMOD IOMODP= 102000 IOMODR= 112000 IOMODX= 110000 035060 JACK KIPARO= 172340 KIPAR1= 172342 KIPAR2= 172344 KIPAR3= 172346 KIPAR4= 172350 KIPAR5= 172352 KIPAR6= 172354 KIPAR7= 172356 KIPDRO= 172300 KIPDR1= 172302 KIPDR2= 172304 KIPDR3= 172306 KIPDR4= 172310 KIPDR5= 172312 KIPDR6= 172314 KIPDR7= 172316 KONTRL= *"'*"''''''' KTERRO= 000040 KTPRES= 000400 KTSET ::: "''''**'''''' KTSTAT= 000020 G G G G G G MACY11 30A(1052) 20-SEP-78 18:54 PAGE 23 SEQ 1193 KTXTND:: 040000 000012 LF LPSTAT:: 000001 M}\PST A:: 000200 076600 MED MEMPAS:: 040000 MODEXH:: 004000 MODHOL:: 002000 MODSEL:: 001000 MSGCKD:: 000010 MSGCKS:: 000011 MSGDER:: 000005 MSGDRP.:: 000017 MSGECH:: 177777 MSGEOP:= 000013 MSGHDR:= 000004 MSGHNG::: 000022 MSGHRD:= 000007 MSGMAP:= 000021 MSGNUL:= 177775 MSGPOp::: 000002 MSGPRM::: 177776 MSGRES::: 000001 MSGSFT::: 000006 MSGSKI;:= 000003 MSGSIV18:= 000015 MSGSMH= 000014 MSGSMS= 000016 MSGSTD= 000000 MSGSYS= 000012 MSGVEC= 000020 NBKMOD= 001000 NCPUOP= 000020 NOAPTY= 000002 000000 NULL 000762 OV.A 000122RG OV.CQ OV.CQS= 000050 G OV.HIC= 000362RG OV.HIK= 000120RG OV.HIT= 001344RG OV.KBB= OOOOOORG OV.KBS= 000122 G OV.REM= 000002 OV.TQ = 000364RG OV.TQE 001346R OV.TQS= 000076 G 024020 OWEN PAERR = 000010 PARPRE= 002000 PARSTA= 000100 PASCNT= 000034 PDPLSI= 020000 PDP60 PDP70 PRIO PRI1 PRI4 PRI5 PRI6 PRI7 PRO 004000 010000 000000 000040 000200 000240 000300 000340 000000 000200 000240 000300 000340 177776 177776 000054 000130 000126 000132 000124 000101 000022 00002·0 020000 010000 PR4 PR5 PR6 PR7 PS PSW RANNUM= RBUFEA= RBUFPA= RBUFSZ= RBUFVA= RDSERV= RDWHMI= RELERR= RELMOD= REL TIM= RESREG= ****** G RES1 00005E, RES2 000060 RICHAR= 031060 RPTDAT= 002000 RSTRT = 000112 RUBOUT= 000177 RUNrv'lOD= 100000 R5VALU= 001740 SAM 07!:,464 SAVREG= ****** G SBADR = 000102 SBKMOD= 000000 SBKSEL= 010000 SC. ADR=Oo.qOOE, SC.ALC= 000014 SC.APC= OOOOH; SC.CKL= 000002 SC.CKP= 000004 SC.CLO= 000000 SC.HLD= 00001C> SC. SCA= 0000 1 ~~ SENDLS= 177777 SIZPOL OOOOOORG SOFCNT= 000042 SOFPAS= 00004E> SPACE = 00004() SPOINT= 000032 SIZPLE SIZE AND POLL SYSTEM - 11/70 SUPPORT ALONG WITH 22-8IT ADDRESSING SYMBOL TABLE 08-SEP-78 09:33 SIZPLE.MAC TMPIO = 000002 TQOVF = 000002 UIPARO= 177640 UIPAR1= 177642 UIPAR2= 177644 UIPAR3= 177646 UIPAR4= 177650 UIPAR3= 177652 UIPAR6= 177654 UIPAR7= 177656 UIPDRO= 177600 UIPDR1= 177602 UIPDR2= 177604 UIPDR3= 177606 UIPDR4= 177610 UIPDR5= 177612 UIPDR6= 177614 UIPDR7= 177616 WASADR= 000104 WBSTAT= 000040 WBUFEA= 000136 WBUFPA= 000134 WBUFRQ= 000140 WBUFSZ= 000142 000116 WDFR 000114 WOTO SPVALU= 002200 SRO 177572 SR1 177574 SR2 177576 SR3 172516 SS. IOP= 177600 SS.PCL= 172136 SS.PCS= 172100 SS.RFS= 160000 5S.0KC= 004000 SS.1KP= 000040 SS.120= 120000 SS.28 = 000034 STAT 000026 STATBI= 064757 STAT1 = 000027 SUSPND= 000001 SVRO 000062 SVR1 000064 SVR2 000066 000070 SVR3 SVR4 000072 SVR5 000074 SVR6 000076 SYSCNT= 000052 SYSERR= 000100 ABS. 000000 001346 000 001 0 ERRORS DETECTED: DEFAULT GLOBALS GENERATED: 0 DSKZ:SIZPLE,DSKZ:SIZPLE=SPMAC/ML,EQUATE,SIZPLE RUN-TIME: 30 21 .4 SECONDS RUN-TIME RATIO: 257/53=4.8 CORE USED: 14K (27 PAGES) WTINRE= 000352 WTWHMI=. 000222 XFLAG '" 000005 XOFF - 000023 XON 000021 $BGNLE= 177777 $ERFLG= 000400 $F$AND= 000310 $F$BAD= 000401 $F$BLA= 000170 $F$CAS= 000150 $F$DEC= 000220 $F$DO = 000340 $F$FAL= 0004:)5 $F$GOO= 000400 $F$IF = 000110 $F$INC= 000:d10 $F$LOO= 000200 $F$NAM= 000160 $F$NO = 000403 $F$OR = 000320 $F$RTI= 000350 $F$RTN= 000300 $F$SEL= 000140 $F$THE= 000330 $F$TRU= 000404 MACY~1 $F$UNT:: $F$WHI:: $F$Yf:S::' $IFLEV:: $ISKO -$ISK1 -$ISK2 $LOCTA= $LSTIN:= $LSTTA:= $NESTL:= $NSKO $NSK-I $NSK2 $NSK3 $NSK4 $I'JSK5 $SAVLE:= $SSKO .$TAGLE= $TAGNU= $TEMP $TSKO $TSK1 $TSK2 $TSK3 30A(1052) 000130 000120 000402 177777 000G01 000001 000001 177777 000001 000001 177777 OOOJOO 000120 000110 00O~10 000110 000 \1 0 17'1777 050052 177777 050055 000300 050051 050052 050054 050046 20-SEp':'-78 18:54 P,~GE $TSK4 = 050047 $TSK5 = 050050 $$ARGC= 000002 $$BYTE= 000403 $$CASE= 000000 $$05T = 000000 $$ELOC= 000402 $$ERFL= 000000 $$F LAG= 000001 $$FROM= 000000 $$LOC = 001314R $'~LOCN= 000000 $$REG = 177777 $$F.:ETU= 000000 $'!'iRTN1= 050000 $$RTN2= 05000\ $$SRC = 000000 $$TGSV= 000000 $$TGS1= 000000 $$TGS2= 000000 000000 $$TO $$$TAG= 05000Ci 001346R 23-'1 SEQ 1194 **END** User CARPENTER,SA [400,4372] Job XMONAO Seq. 4205 Cate 25-Sep-78 12:28:45 Monitor IPC-F 603 [687] **END** **END** User CARPENTER,SA [400,4372] Job XMONAO Seq. 4205 Date **END** User CARPENTER,SA [400,4372J Job XMONAO Seq. 4205 Date 25-Sep-78 12:28:45 Monitor IPC-F 603 [687] **END** * * * X E R S P L 12:27:16 LPDAT 12~27:16 LPDAT 12:27:17 LPMSG 12:28:44 LPMSG 12:28:45· LPSUM Run Log * * ~5-Sep-78 12:28:45 Monitor IPC-F 603 [6B7] **END** * [XERLSJ XERSPL version 102(2263)/3(61) running on MTA061, 25-Sep-78 12:27:16] [XERSJS Starting Job XMONAO, Seq #4205, request created at 25-Sep-78 11:13:24] [XERSTF Starting Fi le DSKZ:XMONAO.SEQ<057>[400,3341]] [XERFPF Finished Printing File DSKZ:XMONAO.SEQ<057>[400,3341]] Spooler runtime 39 Seconds~ 437 KCS, 4010 disk reads, 1194 pages printed /TO:ML21-4:CARPEN -- Distribution to ML21-4, slot 133 **END** User CARPENTER,SA [400,43721 Job XMONAO Seq. 4205 Date 25-Sep-78 12:28:45 Monitor IPC-F S03 [6B7] **END** /TO:ML21-4:CARPEN -- Distribution to ML21-4, slot 133 **END** User CARPENTER,SA [400,43721 Job XMONAO Seq. 4205 Date i5-Sep-78 12:28:45 Monitor IPC~F 603 [SB7] **END** /TO:ML21-4:CARPEN -- Distribution to ML21-4, slot **END** User CARPENTER,SA [400,4372] JOb 1~33 XMONAO Seq. 4205 Date ~5-Sep-78 12:28:45 Monitor IPC-F S03 [6B7] **END** /TO:ML21-4:CARPEN -- Distribution to ML21-4, slot 133 **END** User CARPENTER,SA [400,43721 Job XMONAO Seq. 4205 Date 25-Sep-78 12:28:45 Monitor IPC-F 603 [6B7J **END** /TD:ML21-4:CARPEN -- Distribution to ML21-4, slot 133 **END** User CARPENTER,SA [400,43721 Job XMONAO Seq. 4205 Date 25-Sep-78 12:28:45 Monitor IPC-F 603 [687] **END**
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies