SKELETON DRIVER HEADER MACRO M1113 17-APR-80 09:44 TABLE OF CONTENTS 3- 499 SYMBOL DEFINITIONS AND ASSEMBLY OPTIONS 3- 553 6- 631 LOCAL DATA, DISPATCH TABLE 7- 659 INTERRUPT SERVICE 8- 710 CONTROLLER INITIATOR 10- 795 POWERFAIL RECOVERY 11- 841 TIMEOUT PROCESSING 12- 884 I/O CANCEL SKELETON DRIVER HEADER MACRO M1113 17-APR-80 09:44 PAGE 3 498 .TITLE SKELETON DRIVER HEADER 499 .SBTTL SYMBOL DEFINITIONS AND ASSEMBLY OPTIONS 500 501 ; XXDF.MAC 502 ; 503 ; SYMBOL DEFINITIONS FOR SKELETON DEVICE DRIVER 504 505 .MCALL HWDDF$,UCBDF$ 506 000000 HWDDF$ 507 000000 UCBDF$ 508 509 510 511 000000 LD$XX = 0 ; THIS DRIVER IS LOADABLE 512 000001 X$$X11 = 1 ; THERE IS ONE CONTROLLER 513 000002 MAXUNIT = 2. ; NO. OF UNITS ON CONTROLLER 514 000240 XXPRI = PR5 ; PRIORITY 515 164660 XX0CSR = 164660 ; CSR ADDRESS - CONTROLLER 0 516 000340 XX0VEC = 340 ; INTERRUPT VECTOR - CONTROLLER 0 517 518 519 000001 XXDEBUG = 1 ; DEBUG FLAG (GETS BPT'S INSERTED AT STRATEGIC PLACES) 520 ; VALUE IS DEBUGGING LEVEL: 521 ; 1 = INCLUDE ALL BREAKPOINTS 522 ; 2 = BREAKPOINT ONLY AT POWER FAIL ENTRY 523 ; IF COMMENTED OUT, NO BREAKPOINTS ARE SET. 524 525 ; CSR OFFSETS, BIT DEFINITIONS, AND BIT GROUP MASKS 526 527 000000 SCR = 0 ; SYSTEM CONTROL REGISTER 528 000100 IE = 100 ; INTERRUPT ENABLE 529 000200 DONE = 200 ; I/O DONE 530 100000 ERR = 100000 ; ERROR 531 532 000002 CSR2 = 2 ; 2ND CSR 533 534 000004 CAR = 4 ; CURRENT ADDRESS REGISTER 535 536 000006 BCR = 6 ; BYTE COUNT REGISTER 537 538 539 ; OFFSETS TO DEFINE ADDITIONAL WORDS IN UCB 540 541 542 ; MACRO TO INSERT 'BPT' INSTRUCTION FOR AUTOMATIC BREAKPOINTS 543 544 .MACRO DEBUG,A1 545 .IFDF XXDEBUG 546 .IF GE 547 BPT 548 .ENDC 549 .ENDC 550 .ENDM 551 552 553 .SBTTL 554 SKELETON DRIVER HEADER MACRO M1113 17-APR-80 09:44 PAGE 3-1 555 XXDRV MACRO M1113 17-APR-80 09:44 PAGE 4 557 .TITLE XXDRV 558 .IDENT /00/ 559 560 ;+ 561 ; XXDRV.SMC 562 ; 563 ; 564 ; 565 ; ** SKELETON RSX-11M I/O DRIVER ** 566 ; ** SUPERMAC VERSION ** 567 ; 568 ; INSTRUCTIONS FOR USE: 569 ; 570 ; THIS IS A SKELETON I/O DRIVER FOR RSX-11M. IT 571 ; CONTAINS ALL THE NECESSARY BOILERPLATE THAT IS 572 ; REQUIRED TO BE IN EVERY RSX-11M I/O DRIVER. 573 ; 574 ; THE USER MUST INSERT ALL THE DEVICE-SPECIFIC 575 ; PROCESSING FOR THE INTENDED DEVICE. REFER TO 576 ; THE "GUIDE TO WRITING AN I/O DRIVER" MANUAL 577 ; FOR INTIMATE DETAILS. 578 ; 579 ; OTHER FILES FOR SKELETON DEVICE DRIVER: 580 ; 581 ; XXDF.MAC SYMBOL DEFINITIONS, MACROS 582 ; XXTAB.MAC SKELETON DATA BASE 583 ; XXMAKE.CMD COMMAND FILE FOR ASSEMBLING/TASK-BUILDING 584 ; 585 ; 586 ; 587 ; 588 ; REMEMBER TO CHANGE ALL REFERENCES TO X$$X11 TO THE 589 ; PARTICULAR LABEL USED TO DEFINE THE 590 ; NUMBER OF DEVICE CONTROLLERS FOR THE ACTUAL DEVICE 591 ; YOU'RE CONFIGURING INTO THE SYSTEM. 592 ; 593 ; 594 ; ;;; COMMENTS INDICATE CODE EXECUTED WITH 595 ; PROCESSOR INTERRUPTS DISABLED. 596 ; 597 ; 598 ; 599 ; *** REQURES SUPERMAC VERSION 46 OR LATER *** 600 ; 601 ; 602 ; 603 ; SEE ALSO OTHER INSTRUCTIONS IN XXTAB.MAC 604 ; 605 ; COMMAND LINE FOR ASSEMBLY: 606 ; PIP>XXDRV.SRC/NV=LB:[11,10]RSXMC,SY:[]XXDF,XXDRV 607 ; MAC>XXDRV,XXDRV=LB:[1,1]EXEMC/ML,SUPERMAC/ML,SY:[]XXDRV.SRC 608 ; PIP>XXDRV.SRC;*/DE 609 ; 610 ; 611 ; J. MCGLINCHEY VERSION 00 15-APR-80 612 ;- XXDRV MACRO M1113 17-APR-80 09:44 PAGE 5 614 ; 615 ; MACRO LIBRARY CALLS (DELETE THE ONES NOT USED) 616 ; 617 618 .MCALL ABODF$,HWDDF$,PKTDF$ 619 .MCALL SCBDF$,UCBDF$,DCBDF$ 620 000000 ABODF$ ;DEFINE TASK ABORT CODES 621 000000 HWDDF$ ;DEFINE HARDWARE REGISTERS 622 000000 PKTDF$ ;DEFINE I/O PACKET OFFSETS 623 000000 SCBDF$ ;DEFINE SCB OFFSETS 624 000000 UCBDF$ ;DEFINE UCB OFFSETS 625 000000 DCBDF$ ;DEFINE DCB OFFSETS 626 627 .MCALL SMACIT ;INVOKE SUPERMAC 628 000000 SMACIT 629 XXDRV MACRO M1113 17-APR-80 09:44 PAGE 6 LOCAL DATA, DISPATCH TABLE 631 .SBTTL LOCAL DATA, DISPATCH TABLE 632 633 ; 634 ; LOCAL DATA 635 ; 636 ; CONTROLLER IMPURE DATA TABLES (INDEXED BY CONTROLLER NUMBER) 637 ; 638 639 000000 CNTBL: .BLKW X$$X11 ;ADDRESS OF UNIT CONTROL BLOCK 640 641 642 .IF GT X$$X11-1 643 644 TEMP: .BLKW 1 ;TEMPORARY STORAGE FOR CONTROLLER NUMBER 645 646 .ENDC 647 648 649 ; 650 ; DRIVER DISPATCH TABLE 651 ; 652 653 000002 000136' $XXTBL::.WORD XXINI ;DEVICE INITIATOR ENTRY POINT 654 000004 000264' .WORD XXCAN ;CANCEL I/O OPERATION ENTRY POINT 655 000006 000220' .WORD XXOUT ;DEVICE TIMEOUT ENTRY POINT 656 000010 000176' .WORD XXPWF ;POWERFAIL ENTRY POINT 657 XXDRV MACRO M1113 17-APR-80 09:44 PAGE 7 INTERRUPT SERVICE 659 .SBTTL INTERRUPT SERVICE 660 661 ; $XXINT CONTROLLER INTERRUPT SERVICE ROUTINE 662 663 000012 PROCEDURE $XXINT,GLOBAL 664 000012 BEGIN INTERRUPT 665 000012 DEBUG 1 ;;; DEBUGGING BREAKPOINT 666 000014 INTSV$ XX,XXPRI,X$$X11 ;;; GENERATE INTERRUPT SAVE CODE 667 000020 DEBUG 1 ;;; DEBUGGING BREAKPOINT 668 000022 PUSH R0,R1,R2,R3 ;;; SAVE REGS (R4, R5 ALREADY SAVED) 669 000032 LET R4 := U.SCB(R5) ;;; GET ADDRESS OF STATUS CONTROL BLOCK 670 000036 LET @S.CSR(R4) := @S.CSR(R4) OFF.BY #IE ;;; DISABLE DEVICE INTERRUPTS 671 672 ; . 673 ; . *** DEVICE-SPECIFIC INTERRUPT SERVICE CODE *** 674 ; . 675 676 000044 POP R3,R2,R1,R0 ;;; RESTORE REGISTERS 677 000054 END INTERRUPT ;;; 678 679 000054 $CALL $FORK ;;; CREATE A SYSTEM PROCESS 680 681 000060 BEGIN FORKPROCESS ; 682 000060 IF #ERR SET.IN @S.CSR(R4) ; WAS THERE AN ERROR? 683 000074 DEBUG 1 ; DEBUGGING BREAKPOINT 684 ; 685 ; DEVICE SPECIFIC FORK LEVEL CODE 686 ; GOES HERE 687 ; 688 ; POSSIBLE THINGS TO DO: 689 ; DECODE ERRORS 690 ; CALCULATE RETURN BYTE COUNT 691 ; LOG ERRORS 692 ; RETRY OPERATION 693 000076 ELSE 694 000102 LET R1 := S.PKT(R4) ; FIND THE I/O PACKET 695 000106 LET R1 := I.PRM+4(R1) ; SET RETURN BYTE COUNT 696 000112 LET R0 := #IS.SUC ; SET RETURN STATUS 697 000116 LET R2 := #0 ; SET RETRY COUNT 698 000120 PUSH R4 699 000122 $CALL $IODON ; AND TERMINATE I/O OPERATION 700 000126 POP R4 701 000130 END 702 000130 LET @S.CSR(R4) := @S.CSR(R4) SET.BY #IE ; ENABLE DEVICE INTERRUPTS 703 000136 END FORKPROCESS 704 705 706 707 708 ; *** NOTE: FALLS THROUGH INTO INITIALIZATION CODE *** XXDRV MACRO M1113 17-APR-80 09:44 PAGE 8 CONTROLLER INITIATOR 710 .SBTTL CONTROLLER INITIATOR 711 ;+ 712 ; XXINI CONTROLLER INITIATOR 713 ; 714 ; THIS ROUTINE IS ENTERED FROM THE QUEUE I/O DIRECTIVE WHEN AN I/O REQUEST 715 ; IS QUEUED AND AT THE END OF A PREVIOUS I/O OPERATION TO PROPAGATE THE EXECU- 716 ; TION OF THE DRIVER. 717 ; 718 ; IF (SPECIFIED CONTROLLER IS NOT BUSY) 719 ; THEN (TRY TO DEQUEUE NEXT I/O REQUEST) 720 ; IF (DEQUEUE SUCCESSFUL) 721 ; THEN (INITIATE NEXT I/O OPERATION) 722 ; RETURN TO CALLER. 723 ; 724 ; INPUTS: 725 ; 726 ; R5=ADDRESS OF THE UCB OF THE CONTROLLER TO BE INITIATED. 727 ; 728 ; OUTPUTS: 729 ; 730 ; IF (SPECIFIED CONTROLLER NOT BUSY) 731 ; THEN IF (I/O REQUEST WAITING) 732 ; THEN (DEQUEUE REQUEST; 733 ; INITIATE I/O OPERATION) 734 ; 735 ; THE FOLLOWING ARGUMENTS ARE RETURNED BY $GTPKT: 736 ; 737 ; R1=ADDRESS OF THE I/O REQUEST PACKET. 738 ; R2=PHYSICAL UNIT NUMBER OF THE REQUEST UCB. 739 ; R3=CONTROLLER INDEX. 740 ; R4=ADDRESS OF THE STATUS CONTROL BLOCK. 741 ; R5=ADDRESS OF THE UCB OF THE CONTROLLER TO BE INITIATED. 742 ; 743 ; I/O REQUEST PACKET FORMAT: 744 ; 745 ; I.LNK WD. 00 -- I/O QUEUE THREAD WORD. 746 ; I.PRI,I.EFN WD. 01 -- REQUEST PRIORITY, EVENT FLAG NUMBER. 747 ; I.TCB WD. 02 -- ADDRESS OF THE TCB OF THE REQUESTER TASK. 748 ; I.LN2 WD. 03 -- POINTER TO SECOND LUN WORD IN REQUESTER TASK HEADER. 749 ; I.UCB WD. 04 -- CONTENTS OF THE FIRST LUN WORD IN REQUESTER TASK HEADER (UCB). 750 ; I.FCN WD. 05 -- I/O FUNCTION CODE 751 ; I.IOSB WD. 06 -- VIRTUAL ADDRESS OF I/O STATUS BLOCK. 752 ; WD. 07 -- RELOCATION BIAS OF I/O STATUS BLOCK. 753 ; WD. 10 -- I/O STATUS BLOCK ADDRESS (REAL OR DISPLACEMENT + 140000). 754 ; I.AST WD. 11 -- VIRTUAL ADDRESS OF AST SERVICE ROUTINE. 755 ; I.PRM WD. 12 -- RELOCATION BIAS OF I/O BUFFER. 756 ; WD. 13 -- BUFFER ADDRESS OF I/O TRANSFER. 757 ; WD. 14 -- NUMBER OF BYTES TO BE TRANSFERRED. 758 ; WD. 15 -- NOT USED. 759 ; WD. 16 -- NOT USED. 760 ; WD. 17 -- NOT USED. 761 ; WD. 20 -- NOT USED. 762 ;- XXDRV MACRO M1113 17-APR-80 09:44 PAGE 9 CONTROLLER INITIATOR 764 765 ; 766 ; AT THIS POINT: 767 ; IF UC.QUE=1 768 ; R5 - UCB ADDRESS 769 ; R4 - SCB ADDRESS 770 ; R1 - ADDR OF I/O PACKET 771 ; IF UC.QUE=0 772 ; R5 - UCB ADDRESS 773 ; 774 000136 PROCEDURE XXINI,GLOBAL 775 000136 BEGIN INITIATE 776 000136 DEBUG 1 ; DEBUGGING BREAKPOINT 777 000140 $CALL $GTPKT ; GET AN I/O PACKET 778 000144 ON.ERROR LEAVE INITIATE ; NONE LEFT. 779 000152 LET CNTBL(R3) := R5 ; SAVE UCB ADDR 780 781 ; . 782 ; . 783 ; 784 ; DEVICE-SPECIFIC INITIATION CODE GOES HERE 785 ; 786 ; . 787 ; . 788 789 000156 LET S.CTM(R4) :B= S.ITM(R4) ; SET TIMEOUT 790 000164 LET @S.CSR(R4) := @S.CSR(R4) SET.BY #IE ; ENABLE CONTROLLER INTERRUPT 791 000172 DEBUG 1 ; DEBUGGING BREAKPOINT 792 000174 END INITIATE 793 000174 $RETURN XXDRV MACRO M1113 17-APR-80 09:44 PAGE 10 POWERFAIL RECOVERY 795 .SBTTL POWERFAIL RECOVERY 796 797 ;+ 798 ; 799 ; POWERFAIL IS HANDLED VIA THE DEVICE TIMEOUT FACILITY AND 800 ; THEREFORE CAUSES NO IMMEDIATE ACTION ON THE DEVICE. 801 ; A RACE CONDITION IS THUS AVOIDED THAT COULD EXIST IN 802 ; RESTARTING THE OPERATION. 803 ; 804 ; POWER FAIL CAN BE USED TO INITIALIZE THE CONTROLLER 805 ; AND DRIVER WHEN THE DRIVER IS LOADED. 806 ; THIS IS ENABLED BY SETTING BIT UC.PWF IN BYTE U.CTL OF THE UCB. 807 808 ; AT THIS POINT: 809 ; R5 - UCB ADDRESS 810 ; R4 - SCB ADDRESS 811 ; R3 - CONTROLLER INDEX 812 ; 813 ;- 814 815 000176 PROCEDURE XXPWF,GLOBAL 816 000176 BEGIN POWERFAIL 817 000176 DEBUG 2 ; DEBUGGING BREAKPOINT 818 000200 IF S.PKT(R4) EQ #0 ; 1ST TIME CALLED? 819 820 ; . 821 ; . 822 ; FIRST-TIME CODE GOES HERE 823 ; MAY WANT TO INITIALIZE DRIVER AND/OR 824 ; CONTROLLER HERE 825 ; . 826 ; . 827 828 000212 ELSE 829 830 ; . 831 ; . 832 ; POWERFAIL RECOVERY CODE, IF ANY 833 ; . 834 ; . 835 836 000216 END 837 000216 END POWERFAIL 838 000216 $RETURN 839 XXDRV MACRO M1113 17-APR-80 09:44 PAGE 11 TIMEOUT PROCESSING 841 .SBTTL TIMEOUT PROCESSING 842 ;+ 843 ; DEVICE TIMEOUT 844 ; 845 ; THIS SKELETON JUST CALLS $IODON TO TERMINATE THE I/O OPERATION 846 ; AND RETURN 'DEVICE NOT READY' STATUS. 847 ; 848 ; AT THIS POINT: 849 ; R5 - UCB ADDRESS 850 ; R4 - SCB ADDRESS 851 ; R3 - CONTROLLER INDEX 852 ; R2 - ADDRESS OF DEVICE CSR 853 ; R0 - I/O STATUS CODE IE.DNR 854 ; 855 ;- 856 857 000220 PROCEDURE XXOUT,GLOBAL 858 000220 BEGIN TIMEOUT 859 000220 DEBUG 1 ;;; DEBUGGING BREAKPOINT 860 000222 LET @S.CSR(R4) := @S.CSR(R4) OFF.BY #IE ;;; DISABLE CONTROLLER INTERRUPT 861 000230 MTPS #0 ;;; ALLOW PROCESSOR INTERRUPTS 862 863 ; . 864 ; . 865 ; DEVICE-SPECIFIC TIMEOUT CODE GOES HERE 866 ; MIGHT WANT TO RETRY OPERATION OR JUST 867 ; CALL $IODON TO TERMINATE THIS OPERATION, AS 868 ; BELOW: 869 ; 870 ; . 871 ; . 872 ; . 873 874 000234 LET R1 := S.PKT(R4) 875 000240 LET R1 := I.PRM+4(R1) + BCR(R2) ; COMPUTE RETURN BYTE COUNT 876 000250 LET R2 := #0 ; RETRY COUNT 877 000252 PUSH R4 878 000254 $CALL $IODON 879 000260 POP R4 880 000262 END TIMEOUT 881 000262 $RETURN 882 XXDRV MACRO M1113 17-APR-80 09:44 PAGE 12 I/O CANCEL 884 .SBTTL I/O CANCEL 885 ;+ 886 ; CANCEL I/O OPERATION-FORCE I/O TO COMPLETE IF DEVICE IS NOT READY 887 ; 888 ; AT THIS POINT: 889 ; R5 - UCB ADDRESS 890 ; R4 - SCB ADDRESS 891 ; R3 - CONTROLLER INDEX 892 ; R1 - TCB ADDRESS OF CURRENT TASK 893 ; R0 - ADDRESS OF ACTIVE I/O PACKET (ALL OTHERS HAVE BEEN PURGED) 894 ; 895 ;- 896 897 000264 PROCEDURE XXCAN,GLOBAL 898 000264 BEGIN CANCEL 899 000264 DEBUG 1 ;;; DEBUGGING BREAKPOINT 900 000266 IF R1 EQ I.TCB(R0) ;;; THIS TASK? 901 902 ; . ;;; YES. 903 ; . 904 ; . 905 906 000300 ELSE 907 908 ; . ;;; NO. 909 ; . 910 ; . 911 912 000304 END 913 000304 END CANCEL 914 000304 $RETURN ;;; 915 000001 .END XXDRV MACRO M1113 17-APR-80 09:44 PAGE 12-1 SYMBOL TABLE AS.FPA= 000001 D$$ISK= 000000 G.GRP 000002 L5 000304R SCR = 000000 AS.PFA= 000004 D$$L11= 000002 G.LNK 000000 MAXUNI= 000002 SISDR0= 172200 AS.RCA= 000002 D$$SHF= 000000 G.STAT 000003 MPAR = 172100 SPARE = 000010 AS.RRA= 000003 D$$WCH= 000000 H$$RTZ= 000074 MPCSR = 177746 SP.EIP= 000001 A$$CHK= 000000 D$$YNC= 000000 IE = 000100 M$$CLI= 000000 SP.ENB= 000002 A$$CPS= 000000 D$$YNM= 000000 IIII = 177777 M$$CRB= 000124 SP.LOG= 000004 A$$NSI= 000000 D$$ZMD= 000000 INITIA= 000002 M$$CRX= 000000 SR0 = 177572 A$$PRI= 000000 D$$Z11= 000002 INTERR= 000000 M$$FCS= 000000 SR3 = 172516 A$$TRP= 000000 D.DSP 000012 IS.SUC= ****** GX M$$MGE= 000000 SWR = 177570 A.AST 000006 D.LNK 000000 I$$RAR= 000000 M$$MUP= 000000 S$$TOP= 000000 A.BYT 000004 D.MSK 000014 I$$RDN= 000000 M$$NET= 000000 S$$WPC= 000036 A.CBL 000002 D.NAM 000004 I.AST 000022 M$$OVR= 000000 S$$WPR= 000005 A.DQSR 177776 D.PCB 000034 I.ATTL= 000044 M.BFVH 000011 S$$YSZ= 007600 A.KSR5 177774 D.UCB 000002 I.EFN 000003 M.BFVL 000012 S.BMSK 177776 A.NPR 000010 D.UCBL 000010 I.FCN 000012 M.LGTH= 000014 S.BMSV 177774 A.PRM 000012 D.UNIT 000006 I.IOSB 000014 M.LNK 000000 S.CABO= 000024 BCR = 000006 D.VCAN= 000002 I.LGTH= 000044 M.UMRA 000002 S.CAST= 000022 B0 000012R D.VDEB= 177776 I.LNK 000000 M.UMRN 000004 S.CBPT= 000004 B1 000060R D.VINI= 000000 I.LN2 000006 M.UMVH 000010 S.CCRF= 000030 B2 000136R D.VOUT= 000004 I.PRI 000002 M.UMVL 000006 S.CEMT= 000012 B3 000176R D.VPWF= 000006 I.PRM 000024 N$$LDV= 000001 S.CFLT= 000016 B4 000220R ERR = 100000 I.TCB 000004 N$$MOV= 000041 S.CILI= 000010 B5 000264R E$$DVC= 000000 I.UCB 000010 O.AST 000006 S.CINS= 000040 CANCEL= 000005 E$$NSI= 000000 KDSAR0= 172360 O.EFN 000010 S.CIOT= 000006 CAR = 000004 E$$PER= 000000 KDSDR0= 172320 O.ESB 000012 S.CLRF= 000026 CMODE = 140000 E$$XPR= 000000 KINAR5= 172352 O.LGTH= 000034 S.COAD= 000000 CNTBL 000000R E0 000054R KISAR0= 172340 O.LNK 000000 S.CON 000010 CSR2 = 000002 E1 000136R KISAR5= 172352 O.MCRL 000002 S.CPMD= 000036 C$$CDA= 000002 E2 000174R KISAR6= 172354 O.PTCB 000004 S.CSGF= 000002 C$$CKP= 000000 E3 000216R KISAR7= 172356 O.STAT 000014 S.CSR 000012 C$$CSR= 177404 E4 000262R KISDR0= 172300 PIRQ = 177772 S.CSST= 000020 C$$INT= 000000 E5 000304R KISDR6= 172314 PMODE = 030000 S.CTM 000006 C$$ONS= 000001 FE.CAL= 000040 KISDR7= 172316 POWERF= 000003 S.CTRP= 000014 C$$ORE= 002000 FE.CEX= 020000 K$$CNT= 177546 PR0 = 000000 S.FRK 000016 C$$OTM= 000000 FE.DRV= 000010 K$$CSR= 177546 PR1 = 000040 S.IOMG= 000032 C$$RSH= 177564 FE.DYM= 010000 K$$IEN= 000115 PR4 = 000200 S.ITM 000007 C$$RUN= 000000 FE.EXP= 000200 K$$LDC= 000001 PR5 = 000240 S.LHD 000000 C$$SMT= 000000 FE.EXT= 000001 K$$TPS= 000074 PR6 = 000300 S.PKT 000014 C$$TTY= 177564 FE.EXV= 000004 LBLS0 = 000005 PR7 = 000340 S.PRI 000004 DONE = 000200 FE.FDT= 002000 LBLS1 = 000005 PS = 177776 S.PRTY= 000034 DV.CCL= 000002 FE.LSI= 000400 LD$CO = 000000 P$$D70= 000000 S.RCNT 177772 DV.COM= 020000 FE.MUP= 000002 LD$DK = 000000 P$$GMX= 000000 S.ROFF 177773 DV.DIR= 000010 FE.MXT= 040000 LD$DL = 000000 P$$LAS= 000000 S.STS 000011 DV.F11= 040000 FE.NLG= 100000 LD$DX = 000000 P$$OFF= 000000 S.VCT 000005 DV.ISP= 002000 FE.OFF= 001000 LD$LP = 000000 P$$RTY= 000000 S1.BEL= 000400 DV.MBC= 000400 FE.PKT= 000100 LD$MM = 000000 P$$SRF= 000000 S1.CTO= 000040 DV.MNT= 100000 FE.PLA= 000020 LD$TT = 000000 P$$WRD= 000000 S1.CTS= 010000 DV.MXD= 000100 FORKPR= 000001 LD$XX = 000000 Q$$OPT= 000017 S1.DEC= 002000 DV.OSP= 004000 F$$LPP= 000000 L$$ASG= 000000 R$$EXV= 000000 S1.DPR= 001000 DV.PSE= 010000 F$$LVL= 000001 L$$DRV= 000000 R$$K11= 000001 S1.DSI= 004000 DV.REC= 000001 GS.DEL= 000001 L$$LDR= 000000 R$$L11= 000001 S1.ESC= 000004 DV.SDI= 000020 G$$TPP= 000000 L$$P11= 000002 R$$NDC= 000006 S1.IBF= 100000 DV.SQD= 000040 G$$TSS= 000000 L0 000102R R$$NDH= 000144 S1.IBY= 000200 DV.SWL= 001000 G$$TTK= 000000 L1 000130R R$$NDL= 000001 S1.OBY= 000100 DV.TTY= 000004 G$$WRD= 000000 L2 000216R R$$SND= 000000 S1.RAL= 000010 DV.UMD= 000200 G.CNT 000004 L3 000216R R$$X11= 000001 S1.RNE= 000020 D$$IAG= 000000 G.EFLG 000006 L4 000304R R$$11M= 000000 S1.RST= 000001 XXDRV MACRO M1113 17-APR-80 09:44 PAGE 12-2 SYMBOL TABLE S1.RUB= 000002 T$$HLD= 000000 UDSDR0= 177620 U.CW2 000012 U2.NEC= 004000 S1.USI= 020000 T$$J16= 000001 UISAR0= 177640 U.CW3 000014 U2.PRV= 000010 S2.ACR= 000001 T$$KMG= 000000 UISAR4= 177650 U.CW4 000016 U2.RMT= 020000 S2.BRQ= 000020 T$$LWC= 000000 UISAR5= 177652 U.DCB 000000 U2.R04= 100000 S2.CR = 000010 T$$RED= 000000 UISAR6= 177654 U.FCDE= 000040 U2.SCS= 000004 S2.FDX= 100000 T$$RNE= 000000 UISAR7= 177656 U.FNUM= 000036 U2.SLV= 000200 S2.FLF= 040000 T$$RPR= 000000 UISDR0= 177600 U.FPS = 000044 U2.VT5= 000002 S2.HFF= 020000 T$$RST= 000000 UISDR4= 177610 U.KCSR= 000032 U2.7CH= 010000 S2.HFL= 003400 T$$RUB= 000000 UISDR5= 177612 U.KCS6= 000034 V$$CTR= 000654 S2.HHT= 010000 T$$SMC= 000000 UISDR6= 177614 U.LUIC 177774 V$$RSN= 000032 S2.IRQ= 000200 T$$SYN= 000000 UISDR7= 177616 U.OWN 177776 XXCAN 000264RG S2.ORQ= 000100 T$$TRW= 000000 US.ABO= 000001 U.RED 000002 XXDEBU= 000001 S2.SRQ= 000040 T$$UTB= 000000 US.BSP= 000002 U.RPS = 000042 XXINI 000136RG S2.VFL= 004000 T$$UTO= 000170 US.BSY= 000200 U.SCB 000020 XXOUT 000220RG S2.WRA= 000006 T$$VBF= 000000 US.CRW= 000004 U.STS 000005 XXPRI = 000240 S2.WRB= 000002 T$$ZAN= 012430 US.DSB= 000002 U.ST2 000007 XXPWF 000176RG S3.BCC= 020000 T$$30P= 000000 US.FOR= 000040 U.TCHP 000042 XX0CSR= 164660 S3.DAO= 040000 T.NCFI= 000020 US.FRK= 000002 U.TCVP 000043 XX0VEC= 000340 S3.PCU= 100000 T.NCRE= 000006 US.KPF= 000001 U.TFLK 000040 X$$X11= 000001 S3.RAL= 000010 T.NCWF= 000004 US.LAB= 000004 U.TFRQ 000037 $DIDDO= 000000 S3.RCU= 000400 T.NDMO= 000010 US.MDE= 000002 U.TLPP 000036 $EF$ = 000000 S3.TAB= 000100 T.NDNR= 000000 US.MDM= 000020 U.TMTI 000047 $E$ = 000001 S3.VER= 010000 T.NDSE= 000002 US.MNT= 000100 U.TSTA 000026 $FORK = ****** GX S3.WAL= 004000 T.NKLF= 000026 US.OFL= 000001 U.TTAB 000034 $GTPKT= ****** GX S3.WES= 000040 T.NLDN= 000014 US.OIU= 000001 U.TTYP 000046 $IODON= ****** GX S3.8BC= 000200 T.NLUP= 000016 US.PUB= 000004 U.TUX 000024 $I$ = 000001 TIMEOU= 000004 T.NMPE= 000024 US.PWF= 000010 U.UIC 000044 $K$ = 000002 TPS = 177564 T.NUDE= 000022 US.RED= 000002 U.UNIT 000006 $L = 000006 TYPS0 = 000003 T.NUER= 000012 US.SHR= 000001 U.VCB = 000034 $L$ = 000000 TYPS1 = 000000 T0 000074R US.SPU= 000002 U2.AT.= 000020 $O$ = 000000 T$$ACR= 000000 T1 000152R US.UMD= 000010 U2.CRT= 002000 $R = 177777 T$$BTW= 000000 T2 000212R US.VV = 000001 U2.DH1= 100000 $SUPMC= 000051 T$$BUF= 000000 T3 000300R US.WCK= 000010 U2.DJ1= 040000 $T = 000006 T$$CCA= 000000 UBMPR = 170200 U.ACP = 000032 U2.DZ1= 000100 $T1 = 000003 T$$CCO= 000000 UC.ALG= 000200 U.ATT 000022 U2.ESC= 001000 $T2 = 000005 T$$CPW= 000000 UC.ATT= 000010 U.BUF 000024 U2.HFF= 010000 $XXINT 000012RG T$$CTR= 000000 UC.KIL= 000004 U.CBF = 000032 U2.HLD= 000040 $XXTBL 000002RG T$$CUP= 000000 UC.LGH= 000003 U.CLI 177772 U2.LOG= 000400 $Y$ = 000007 T$$ESC= 000000 UC.NPR= 000100 U.CNT 000030 U2.LWC= 000001 $Z$ = 000000 T$$GMC= 000000 UC.PWF= 000020 U.CTL 000004 U2.L3S= 000004 $$TT = 000002 T$$GTS= 000000 UC.QUE= 000040 U.CTYP 000050 U2.L8S= 010000 $.$.$.= 000004 T$$HFF= 000000 UDSAR0= 177660 U.CW1 000010 . ABS. 177776 000 000306 001 ERRORS DETECTED: 0 VIRTUAL MEMORY USED: 18376 WORDS ( 72 PAGES) DYNAMIC MEMORY: 19558 WORDS ( 75 PAGES) ELAPSED TIME: 00:01:55 XXDRV,XXDRV=LB:[1,1]EXEMC/ML,SUPERMAC/ML,SY:[20,23]XXDRV.SRC