QaPREF MACRO V05.05 Friday 23-Sep-88 10:54 Page 3 1 .TITLE qaPREF 2 ; 3 ; prefix file for qa driver to implement dr-11w driver 4 ; 5 ; 6 .mcall ucbdf$ 7 ; EQUATED SYMBOLS 8 ; 9 ;deb=0 ; conditional for debugging 10 000001 okdma=1 ; dma transfer conditional 11 000001 q$$a11=1 ; one device 12 000000 LD$qa=0 ; DEFINE LOADABLE DRIVER 13 000001 CNTBL=1 ; SINGLE UNIT CONTROLLER 14 177774 DRWCR=-4 ; CSR BASE. WORD COUNT REGISTER 15 177776 DRBAR=-2 ; BUS ADDRESS REGISTER 16 000000 DRCSR=0 ; CSR/ERROR REGISTER 17 000002 DRIDR=2 ; INPUT/OUTPUT REGISTER 18 ; 19 ; csr bit definitions 20 ; 21 000001 qaGO=000001 ; GO BIT 22 000002 FUNCT1=000002 ; FUNCTION 1 23 000004 FUNCT2=000004 ; FUNCTION 2 24 000010 FUNCT3=000010 ; FUNCTION 3 25 000060 qaBA=60 ; EXTENDED ADDRESS BITS 26 000100 qaIE=000100 ; INTERRUPT ENABLE 27 000200 READY=000200 ; READY BIT 28 000400 qacycl=000400 ; cycle bit 29 001000 qasta1=001000 ; status bit 1 30 002000 qasta2=002000 ; status bit 2 31 004000 qasta3=004000 ; status bit 3 32 010000 qamain=010000 ; maintenance bit 33 020000 qaATTN=020000 ; ATTENTION BIT 34 040000 qaNEX=040000 ; non existent memory 35 100000 qaERR=100000 ; error bit set to read eir 36 000016 qafnt=16 ; function bit mask; 37 ; 38 ; unit control block extension 39 ; 40 000000 ucbdf$ 41 ; 42 000034 u.exp=u.cnt+4 ; interrupt expected storage 43 000036 u.csr=u.cnt+6 ; csr storage 44 000040 u.bar=u.cnt+10 ; bar register 45 000042 u.Eir=U.cnt+12 ; error register storage 46 .if ne okdma 47 000044 u.wcr=u.cnt+14 ; ucb extension for word count reg 48 .iff 49 u.idr=u.cnt+14 ; i/o register 50 .endc 51 ; 52 000001 qaexp=000001 ;interrupt expected bit 53 ;used to flag extra interrupt 54 ; local macros 55 ; 56 .macro dsabl ,pr 57 mfps -(sp) ;save old value QaPREF MACRO V05.05 Friday 23-Sep-88 10:54 Page 3-1 58 mtps #pr ;set pr level 59 .endm 60 ; 61 .macro enabl 62 mtps (sp)+ 63 .endm 64 ; 65 .macro delay ,n ,?l 66 mov r0,-(sp) ;save r0 67 mov #n,r0 ;get delay count 68 l: dec r0 ;decrement 69 bgt l ;loop until done 70 mov (sp)+,r0 ;restore r0 71 .endm 72 73 ; 74 .macro reset 75 ; enter with csr base in r2 76 dsabl pr5 ;disable interrupts 77 movb #,drcsr+1(r2) ;set maintenance bit 78 clrb drcsr+1(r2) ;clear maintenance bit 79 delay 11 ;approx 10 microsecond delay 80 mov #qaie,drcsr(r2) ;set interrupt enable 81 enabl ;enable interrupt 82 .endm 83 ; 84 ; DRIVER SUBFUNCTIONS 85 ; 86 000004 IO.RES=4 ;io reset subfunction 87 000002 IO.SFT=2 ;io set function code 88 000010 IO.STO=10 ;io set time out 89 QADRV DR-11W DEVICE DRIVER MACRO V05.05 Friday 23-Sep-88 10:54 Page 4 1 .TITLE QADRV DR-11W DEVICE DRIVER 2 .IDENT /02/ 3 4 ; 5 ; change to version 2, add set time out subfunction code 6 ; 7 ; 8 ; 9 ; MACRO LIBRARY CALLS 10 ; 11 12 .MCALL HWDDF$,PKTDF$,SCBDF$,UCBDF$,DEVDF$ 13 000000 HWDDF$ ;DEFINE HARDWARE REGISTERS 14 000000 PKTDF$ ;DEFINE I/O PACKET OFFSETS 15 000000 SCBDF$ ;DEFINE SCB OFFSETS 16 000000 UCBDF$ 17 000000 DEVDF$ 18 ; 19 ; 20 ; 21 ; 22 ; DRIVER DISPATCH TABLE 23 ; GENERATES THE DRIVER DISPATCH TABLE FOR A M-PLUS SYSTEM. 24 ; INCLUDES POWER FAIL, CONTROLLER ONLINE AND UNIT ONLINE 25 ; ENTRY POINTS. 26 ; 27 .list meb 28 000000 DDT$ QA,Q$$A11,,,,NEW=y ;GENERATE DISPATCH TABLE 000000 000200' $QATBL::.WORD QAINI 000002 000706' .WORD QACAN 000004 001060' .WORD QAOUT 000006 000706' .WORD QAPWF 000010 000026' .WORD QAKRB 000012 000044' .WORD QAUCB 000014 121 101 .ASCII /QA/ 000016 000710' .WORD $QAINT 000020 000000 .WORD 0 000022 000000 QACTB: .WORD 0 000024 000000 $QATBE::.WORD 0 29 ; 30 31 .even 32 .ENABL LSB 33 000026 QAKRB:: ;CONTROLLER ENTRY POINT 34 ; Entry will be for controller online/offline transitions 35 ; execute return on controller on line 36 ; clear unit on offline 37 ; c=1 online to offline transition 38 ; c=0 offline to online transition 39 ; r3=ctb address 40 ; r2=krb address 41 ; 42 000026 103401 bcs qaaofl ;if c set take controller offline 43 000030 000207 return 44 000032 016200 000000 qaaofl: mov k.csr(r2),r0 ;get csr 45 000036 005060 000000 clr drcsr(r0) ;clear csr 46 000042 000207 return QADRV DR-11W DEVICE DRIVER MACRO V05.05 Friday 23-Sep-88 10:54 Page 4-1 47 ; 48 ; 49 000044 QAucb: 50 ; unit status change 51 ; similar to device controller 52 ; for online, reset 53 ; for offline, clear csr 54 ; r5=ucb address 55 ; r4=scb address 56 ; r3=controller index 57 ; c=1 online to offline 58 ; c=0 offline to online 59 ; 60 000044 103433 bcs QAofl ;if c set, take device offline 61 000046 142765 000001 000007 bicb #us.ofl,u.st2(r5) ;set device online 62 000054 016402 177770 mov s.csr(r4),r2 ;get csr base 63 000060 reset ;reset dr11-w 000060 113746 177776 MOVB @#PS,-(sp) 000064 112737 000240 177776 MOVB #pr5,@#PS 000072 112762 000020 000001 movb #,drcsr+1(r2) ;set maintenance bit 000100 105062 000001 clrb drcsr+1(r2) ;clear maintenance bit 000104 010046 mov r0,-(sp) ;save r0 000106 012700 000011 mov #11,r0 ;get delay count 000112 005300 30000$: dec r0 ;decrement 000114 003376 bgt 30000$ ;loop until done 000116 012600 mov (sp)+,r0 ;restore r0 000120 012762 000100 000000 mov #qaie,drcsr(r2) ;set interrupt enable 000126 112637 177776 MOVB (sp)+,@#PS 64 000132 000207 return 65 ; 66 000134 016402 177770 QAofl: mov s.csr(r4),r2 ;get csr 67 000140 dsabl pr5 ;;;disable interrupt 000140 113746 177776 MOVB @#PS,-(sp) 000144 112737 000240 177776 MOVB #pr5,@#PS 68 000152 005062 000000 clr drcsr(r2) ;;;clear csr 69 000156 delay 5 ;;;let settle 000156 010046 mov r0,-(sp) ;save r0 000160 012700 000005 mov #5,r0 ;get delay count 000164 005300 30001$: dec r0 ;decrement 000166 003376 bgt 30001$ ;loop until done 000170 012600 mov (sp)+,r0 ;restore r0 70 000172 enabl ;enable interrupt 000172 112637 177776 MOVB (sp)+,@#PS 71 000176 000207 return 72 ; 73 ; i/o initiation point 74 ; 75 000200 QAINI: 76 ; 77 ; INPUTS: 78 ; 79 ; R5=ADDRESS OF THE UCB OF THE CONTROLLER TO BE INITIATED. 80 ; 81 ; OUTPUTS: 82 ; 83 ; IF THE SPECIFIED CONTROLLER IS NOT BUSY AND AN I/O REQUEST IS WAIT- 84 ; ING TO BE PROCESSED, THEN THE REQUEST IS DEQUEUED AND THE I/O OPER- QADRV DR-11W DEVICE DRIVER MACRO V05.05 Friday 23-Sep-88 10:54 Page 4-2 85 ; ATION IS INITIATED. 86 ; 87 ; THE FOLLOWING ARGUMENTS ARE RETURNED BY $GTPKT: 88 ; R1=ADDRESS OF THE I/O REQUEST PACKET. 89 ; R2=PHYSICAL UNIT NUMBER OF THE REQUEST UCB. 90 ; R3=CONTROLLER INDEX. 91 ; R4=ADDRESS OF THE STATUS CONTROL BLOCK 92 ; R5=ADDRESS OF THE UCB OF THE CONTROLLER TO BE INITIATED. 93 ; 94 ; DR11-W I/O PACKET STRUCTURE 95 ; 96 ; WD. 00 -- I/O QUEUE THREAD WORD. 97 ; WD. 01 -- REQUEST PRIORITY, EVENT FLAG NUMBER. 98 ; WD. 02 -- ADDRESS OF THE TCB OF THE REQUESTOR TASK. 99 ; WD. 03 -- POINTER TO SECOND LUN WORD IN REQUESTOR TASK HEADER. 100 ; WD. 04 -- CONTENTS OF THE FIRST LUN WORD IN REQUESTOR TASK HEADER (UCB). 101 ; WD. 05 -- I/O FUNCTION CODE (IO.RLB, IO.WLB, IO.STC, OR IO.SEC) 102 ; WD. 06 -- VIRTUAL ADDRESS OF I/O STATUS BLOCK. 103 ; WD. 07 -- RELOCATION BIAS OF I/O STATUS BLOCK. 104 ; WD. 10 -- I/O STATUS BLOCK ADDRESS (DISPLACEMENT + 140000). 105 ; WD. 11 -- VIRTUAL ADDRESS OF AST SERVICE ROUTINE. 106 ; Start of parameter 6 word block 107 ; WD. 12 -- MEMORY EXTENSION BITS (BITS 4 AND 5) OF I/O TRANSFER. 108 ; WD. 13 -- BUFFER ADDRESS OF I/O TRANSFER 109 ; WD. 14 -- NUMBER OF BYTES TO BE TRANSFERED. 110 ; WD. 15 -- if io.sft subfunction, function bits 111 ; WD. 16 -- if io.sto subfunction, time out in seconds 112 ; WD. 17 -- 113 ; WD. 20 -- Attachment descriptors, used by system for io 114 ; WD. 21 -- locking 115 ; 116 ; DETERMINE FUNCTION 117 ; 118 000200 GTPKT$ QA,Q$$A11,,,SUC ;GET NEXT PACKET 000200 004767 000000G JSR PC,$GTPKT 000204 103001 BCC 65535$ 000206 000207 RETURN 119 000210 122761 000005 000013 cmpb #5,i.fcn+1(r1) ;we doing set or sense 120 000216 001402 beq 5$ 121 000220 000167 000132 jmp 25$ ;must be someting else 122 000224 022761 000000G 000012 5$: cmp #io.stc,i.fcn(r1) ;set or sense characterisitcs 123 000232 001412 beq 8$ ;set characteristics 124 000234 022761 000000G 000012 cmp #io.sec,i.fcn(r1) ;sense characteristics 125 000242 001433 beq 12$ 126 000244 012700 000000G 6$: mov #ie.bad,r0 ;flag bad parameter 127 000250 call $iodon ;tell him about it 000250 004767 000000G JSR PC,$iodon 128 000254 000167 177720 jmp qaini ;go do some work 129 ;++ 130 ; set characteristics function 131 ; 132 ;-- 133 000260 016402 177770 8$: mov s.csr(r4),r2 ;get csr address 134 000264 016100 000024 mov i.prm(r1),r0 ;get bits 135 000270 042700 177770 bic #177770,r0 ;clear trash 136 000274 006300 asl r0 ;shift left 137 000276 dsabl pr5 ;don't bother me QADRV DR-11W DEVICE DRIVER MACRO V05.05 Friday 23-Sep-88 10:54 Page 4-3 000276 113746 177776 MOVB @#PS,-(sp) 000302 112737 000240 177776 MOVB #pr5,@#PS 138 000310 016201 000000 mov drcsr(r2),r1 ;;;get csr into r1 139 000314 042701 100017 bic #qaerr!qafnt!qago,r1 ;;;clear function and go bits 140 000320 050001 bis r0,r1 ;;;set function bits 141 000322 010162 000000 mov r1,drcsr(r2) ;;;reset reg 142 000326 enabl ;back 000326 112637 177776 MOVB (sp)+,@#PS 143 ;++ 144 ; sense characteristics function 145 ;-- 146 000332 016402 177770 12$: mov s.csr(r4),r2 ;get csr address 147 000336 016201 000000 mov drcsr(r2),r1 ;put csr in r1 148 000342 012700 000000C mov #is.suc&377,r0 ;flag we got the data 149 000346 call $iodon ;finish i/o 000346 004767 000000G JSR PC,$iodon 150 000352 000167 177622 jmp QAini ;go see if more to do 151 152 ;++ 153 ; 154 ; read or write logical function at this point 155 ; must be a data transfer 156 ; 157 ; get here with 158 ; r1=iopkt 159 ; r5=scb 160 ; r4=ucb 161 ; 162 ;-- 163 000356 122761 000000C 000013 25$: cmpb #,i.fcn+1(r1) ;read ? 164 000364 001406 beq 27$ 165 000366 122761 000000C 000013 cmpb #,i.fcn+1(r1) ;write 166 000374 001402 beq 27$ 167 000376 000167 177642 jmp 6$ ;bad params 168 000402 032765 000001 000030 27$: bit #1,u.cnt(r5) ;test for odd word count 169 000410 001402 beq 28$ ;eq 0, must be even 170 000412 000167 177626 jmp 6$ 171 172 000416 032761 000004 000012 28$: bit #io.res,i.fcn(r1) ;reset needed 173 000424 001427 beq 30$ ;eq 0, no 174 000426 016402 177770 mov s.csr(r4),r2 ; get csr base , r2 had unit # 175 000432 reset ;reset dr11-w 000432 113746 177776 MOVB @#PS,-(sp) 000436 112737 000240 177776 MOVB #pr5,@#PS 000444 112762 000020 000001 movb #,drcsr+1(r2) ;set maintenance bit 000452 105062 000001 clrb drcsr+1(r2) ;clear maintenance bit 000456 010046 mov r0,-(sp) ;save r0 000460 012700 000011 mov #11,r0 ;get delay count 000464 005300 30002$: dec r0 ;decrement 000466 003376 bgt 30002$ ;loop until done 000470 012600 mov (sp)+,r0 ;restore r0 000472 012762 000100 000000 mov #qaie,drcsr(r2) ;set interrupt enable 000500 112637 177776 MOVB (sp)+,@#PS 176 ; 177 ; we set up to do transfer 178 ; 179 000504 30$: CALL $STMAP ;GET UNIBUS MAPPING SET UP QADRV DR-11W DEVICE DRIVER MACRO V05.05 Friday 23-Sep-88 10:54 Page 4-4 000504 004767 000000G JSR PC,$STMAP 180 000510 CALL $MPUBM ;MAP UNIBUS TO MEM 000510 004767 000000G JSR PC,$MPUBM 181 ;R3 PRESERVED ACCROSS CALL 182 000514 016401 000000G MOV s.pkt(r4),R1 ;RESTORE PACKET 183 000520 016402 177770 MOV s.csr(R4),R2 ;POINT R2 TO CSR actually base 184 ;READ/WRITE DMA FUNCTION 185 ; convert byte to word count and load wcr 186 000524 016503 000030 MOV U.CNT(R5),R3 ;POINT R3 TO BYTE COUNT 187 000530 000241 CLC ;CLEAR CARRY 188 000532 006003 ROR R3 ;BYTE*2=WORD CNT 189 000534 005403 NEG R3 ;- WORD COUNT 190 000536 dsabl pr5 ;don't bother me 000536 113746 177776 MOVB @#PS,-(sp) 000542 112737 000240 177776 MOVB #pr5,@#PS 191 000550 010362 177774 mov r3,drwcr(r2) ;;;load wcr for dma operation 192 ; ;may differ for word mode 193 ; 194 ; 195 ; first we must set up csr image in r0 196 000554 016200 000000 mov drcsr(r2),r0 ;;;get csr 197 000560 042700 177761 bic #^c,r0 ;;;clear all but function bits 198 000564 032761 000002 000012 bit #io.sft,i.fcn(r1) ;;;set function ? 199 000572 001410 beq 50$ ;;;eq 0, no 200 000574 042700 000016 bic #QAfnt,r0 ;;;clear old bits 201 000600 016103 000032 mov i.prm+6(r1),r3 ;;;get new function bits ? 202 000604 042703 177770 bic #177770,r3 ;;;clear all but lower three 203 000610 006303 asl r3 ;;;shift to control position 204 000612 050300 bis r3,r0 ;;;set into csr image 205 000614 016562 000026 177776 50$: mov u.buf+2(r5),drbar(r2) ;;;set buffer address reg 206 000622 056500 000024 bis u.buf(r5),r0 ;;;set address exentsion bits 207 ; 208 ; r0 now has interrupt enable, function bits, address extension bits 209 ; attention bits all set 210 000626 052700 000100 bis #qaie,r0 ;;;interrupt enable 211 000632 010062 000000 mov r0,drcsr(r2) ;;;set bits, let settle 212 000636 052700 000001 bis #QAgo,r0 ;;;set go and interrupt bits, 213 000642 132761 000010 000012 bitb #io.sto,i.fcn(r1) ;;;new time out ? /02/ 214 000650 001004 bne 55$ ;;; ne yes /02/ 215 000652 116464 000000G 000000G movb s.itm(r4),s.ctm(r4) ;;;set timeout to initial value 216 000660 000403 br 60$ ;;;go on 217 000662 116164 000034 000000G 55$: movb i.prm+10(r1),s.ctm(r4) ;;; set time out /02/ 218 000670 012765 000001 000034 60$: mov #qaexp,u.exp(r5) ;;;flag interrupt expected 219 000676 010062 000000 mov r0,drcsr(r2) ;;;set bits + go bit 220 000702 enabl 000702 112637 177776 MOVB (sp)+,@#PS 221 ; 222 000706 QACAN: ;CANCEL ENTRY 223 ; 224 000706 QAPWF: ;POWER FAIL IS RETURN 225 000706 000207 QARET: RETURN ;go back to caller 226 ; 227 ; INTERRUPT ENTRY POINT 228 000710 $QAINT:: 229 000710 intsv$ QA,pr5,Q$$A11,, ;;;load r5 with ucb address 000710 016705 177106 MOV QACTB,R5 ;;;GET ADDRESS OF KRB TABLE IN CTB 000714 060405 ADD R4,R5 ;;;ADD CONTROLLER INDEX QADRV DR-11W DEVICE DRIVER MACRO V05.05 Friday 23-Sep-88 10:54 Page 4-5 000716 011505 MOV (R5),R5 ;;;GET KRB ADDRESS FROM CTB 000720 016505 000006 MOV K.OWN(R5),R5 ;;;RETRIEVE OWNERS UCB ADDRESS 230 000724 010446 mov r4,-(sp) ;;;save r4 231 000726 016504 000020 mov u.scb(r5),r4 ;;;get scb 232 000732 016404 177770 mov s.csr(r4),r4 ;;;get register base for csr 233 ;;; we now get all register into ucb before clean up 234 .if ne okdma 235 000736 016465 177774 000044 mov drwcr(r4),u.wcr(r5) ;;;save wcr 236 .iif df deb,mov drbar(r4),u.bar(r5) ;;;save bar 237 .iff 238 mov dridr(r4),u.idr(r5) ;;;idr 239 .endc 240 000744 005764 000000 tst drcsr(r4) ;;;error bit set 241 000750 100404 bmi errqa ;;;minus yes 242 000752 016465 000000 000036 mov drcsr(r4),u.csr(r5) ;;;save csr 243 000760 000411 br qafork ;;;don't need eir 244 000762 016465 000000 000042 errqa:: mov drcsr(r4),u.eir(r5) ;;;save eir 245 000770 042764 100000 000000 bic #qaerr,drcsr(r4) ;;;clear error bit 246 000776 016465 000000 000036 mov drcsr(r4),u.csr(r5) ;;;save csr 247 001004 012604 qafork: mov (sp)+,r4 ;;;restore r4 248 001006 005765 000034 tst u.exp(r5) ;;;interrupt expected? 249 001012 001001 bne qaok ;;;if ne, yes 250 001014 000207 return 251 001016 005065 000034 qaok: clr u.exp(r5) ;;;clear expected interrupt 252 001022 call $fork ;lower priority 001022 004767 000000G JSR PC,$fork 253 001026 016501 000030 mov u.cnt(r5),r1 ;get byte count 254 001032 000241 clc ;set up for word count 255 001034 006001 ror r1 ;word count in r1 256 001036 066501 000044 add u.wcr(r5),r1 ;compute actuall transfer 257 ;count 258 001042 006301 asl r1 ;back to byte count 259 001044 012700 000000C mov #is.suc&377,r0 ;indicate success 260 261 001050 QAdone: 262 001050 call $iodon ;indicate completion 001050 004767 000000G JSR PC,$iodon 263 001054 000167 177120 JMP QAINI ;get next operation 264 265 ; miscellaneous entry points 266 ; 267 001060 QAout: ;timeout entry 268 001060 016402 177770 mov s.csr(r4),r2 ;;; 269 001064 016265 000000 000036 mov drcsr(r2),u.csr(r5) ;;;get csr 270 001072 005062 000000 clr drcsr(r2) ;;;clear csr 271 001076 005065 000034 clr u.exp(r5) ;;;clear interrupt expected 272 001102 mtps #0 ;enable intterupts 001102 105037 177776 CLRB @#PS 273 001106 012700 000000G QAdnr: mov #ie.tmo,r0 ;set not ready code 274 001112 016501 000036 mov u.csr(r5),r1 ;csr as iosb+2 275 001116 000754 br QAdone ;go back to caller 276 000001 .end QADRV DR-11W DEVICE DRIVER MACRO V05.05 Friday 23-Sep-88 10:54 Page 4-6 Symbol table AB.CTC= 000004 A.OUTP 000010 C$$ORE= 001000 D.MSK 000014 F2.LIB= 000002 AB.NPV= 000001 A.PLEN= 000016 C$$PCR= 000000 D.NAM 000004 F2.MP = 000004 AB.TYP= 000002 A.PLGH= 000070 C$$RSH= 177564 D.PCB 000034 F2.POL= 000100 AF.AST= 000010 A.POWE 000004 C$$RUN= 000000 D.UCB 000002 F2.RAS= 004000 AF.ESQ= 000020 A.PRM 000012 C.CBLK 000015 D.UCBL 000010 F2.RBN= 020000 AF.LCK= 000040 A.PROC 000020 C.CCT 000006 D.UNIT 000006 F2.SDW= 000040 AF.MDE= 000200 A.RECE 000016 C.CLK 000000 D.VCAN= 000002 F2.STP= 100000 AF.NOT= 000002 A.REL 000000 C.CMCD 000012 D.VCHK= 177774 F2.SWP= 040000 AF.OOB= 000004 A.RES = 000032 C.CSO 000012 D.VDEB= 177776 F2.WND= 000200 AF.QUE= 000100 A.SBUF 000022 C.CSTS 000010 D.VINI= 000000 F3.AST= 000200 AF.XCC= 000001 A.SLEN 000024 C.CTCB 000002 D.VKRB= 000010 F3.CLI= 001000 AK.BUF= 000200 A.SMAP 000020 C.CTR 000014 D.VNXC= 177774 F3.CRA= 000001 AK.DIO= 000204 A.STA 000015 C.CTXT 000016 D.VOUT= 000004 F3.EIS= 000004 AK.GBI= 000202 A.TRAN 000022 C.CUCB 000004 D.VPWF= 000006 F3.PMN= 004000 AK.GGF= 000205 CC.CLI= 000020 C.PCPL 000011 D.VTIN= 177772 F3.PRO= 000040 AK.OCB= 000201 CC.CTC= 000200 C.PDPL 000010 D.VTOU= 177770 F3.RLK= 020000 AK.TBT= 000203 CC.EXT= 000004 C.PNAM 000002 D.VUCB= 000012 F3.SHF= 040000 AS.CAA= 000007 CC.KIL= 000010 C.PRMT 000012 ERRQA 000762RG F3.STM= 000010 AS.DIS= 000002 CC.MCR= 000001 C.PSTS 000006 E$$DVC= 000000 F3.TCM= 002000 AS.DLT= 000001 CC.MSG= 000040 C.PTCB 000000 E$$ICM= 000000 F3.UDS= 000020 AS.FPA= 000001 CC.PRM= 000002 DRBAR = 177776 E$$LOG= 000000 F3.WAT= 010000 AS.PEA= 000004 CC.TTD= 000100 DRCSR = 000000 E$$MOU= 000000 F3.XCR= 000002 AS.PFA= 000006 CI.CSR= 177772 DRIDR = 000002 E$$NSI= 000000 F3.XHR= 000100 AS.RCA= 000002 CI.DCB= 000002 DRWCR = 177774 E$$PER= 000000 F3.11S= 000400 AS.REA= 000005 CI.INT= 000000 DU$C0 = 000004 E$$SEF= 000000 F4.ACD= 020000 AS.RRA= 000003 CI.KRB= 177774 DU$R0 = 000004 E$$XPR= 000000 F4.CHE= 000200 A$$CHK= 000000 CI.PWF= 177776 DV.CCL= 000002 FE.CAL= 000040 F4.CXD= 000001 A$$CLI= 000020 CMODE = 140000 DV.COM= 020000 FE.CEX= 020000 F4.DCL= 004000 A$$CNT= 000000 CM.CDS= 000004 DV.DIR= 000010 FE.DRV= 000010 F4.DDS= 010000 A$$CPS= 000000 CM.CEN= 000003 DV.EXT= 000400 FE.DYM= 010000 F4.DVN= 000020 A$$NSI= 000000 CM.ELM= 000005 DV.F11= 040000 FE.EXP= 000200 F4.ERL= 000004 A$$PRI= 000000 CM.EXT= 000006 DV.ISP= 002000 FE.EXT= 000001 F4.FMP= 002000 A$$TRP= 000000 CM.IND= 000002 DV.MBC= 000400 FE.EXV= 000004 F4.LCD= 000040 A.ACC 000014 CM.INE= 000001 DV.MNT= 100000 FE.FDT= 002000 F4.LOG= 000400 A.ACCE 000000 CM.LKT= 000007 DV.MSD= 000100 FE.LSI= 000400 F4.LSD= 100000 A.AST 000006 CM.MSG= 000011 DV.OSP= 004000 FE.MUP= 000002 F4.NAM= 001000 A.BYT 000004 CM.RMT= 000010 DV.PSE= 010000 FE.MXT= 040000 F4.NCT= 040000 A.CALL 000024 CNTBL = 000001 DV.REC= 000001 FE.NLG= 100000 F4.NIM= 000100 A.CBL 000002 CPUERR= 177766 DV.SDI= 000020 FE.OFF= 001000 F4.PTY= 000010 A.CONN 000012 CP.CTC= 002000 DV.SQD= 000040 FE.PKT= 000100 F4.XT = 000002 A.DEQU 000002 CP.DSB= 000010 DV.SWL= 001000 FE.PLA= 000020 F5.DFB= 000002 A.DIS 000002 CP.EXT= 000400 DV.TTY= 000004 FE.X25= 004000 F5.LDR= 002000 A.DISC 000014 CP.LGO= 000004 DV.UMD= 000200 FUNCT1= 000002 F5.NCO= 000100 A.DLGH= 000012 CP.MSG= 000002 D$$CHE= 000000 FUNCT2= 000004 F5.NSY= 000040 A.DQSR 177776 CP.NIO= 000100 D$$IAG= 000000 FUNCT3= 000010 F5.ODB= 000010 A.DUCB= 000010 CP.NUL= 000001 D$$ISK= 000000 F$$DVN= 000000 F5.PRO= 000001 A.FLEN 000011 CP.POL= 001000 D$$LMD= 000000 F$$LPP= 000000 F5.RDR= 000400 A.IBUF 000014 CP.PRV= 000020 D$$L11= 000002 F$$LVL= 000001 F5.RLG= 001000 A.ILEN 000016 CP.RST= 000200 D$$PAR= 000000 F$$MAP= 000000 F5.RTB= 000004 A.IMAP 000012 CP.SGL= 000040 D$$SHF= 000000 F$$NIM= 000000 F5.RTK= 000200 A.INPU 000006 CSMODE= 040000 D$$WCK= 000000 F2.ACN= 000020 F5.VTL= 004000 A.IOS 000026 C$$CDA= 000012 D$$YNC= 000000 F2.AHR= 010000 F5.XDJ= 000020 A.KSR5 177774 C$$CKP= 000000 D$$YNM= 000000 F2.DAS= 000001 GS.DEL= 000001 A.LIN 000012 C$$CTC= 000000 D$$ZMD= 000000 F2.DPR= 000400 G$$DVI= 000003 A.MAS 000004 C$$DFB= 000000 D$$Z11= 000001 F2.EVT= 000010 G$$GEF= 000000 A.NPR 000010 C$$INT= 000000 D.DSP 000012 F2.GGF= 002000 G$$TPP= 000000 A.NUM 000010 C$$ODB= 000000 D.LNK 000000 F2.IRR= 001000 G$$TSS= 000000 QADRV DR-11W DEVICE DRIVER MACRO V05.05 Friday 23-Sep-88 10:54 Page 4-7 Symbol table G$$TTK= 000000 I.XDBF 000040 K1.MAS 000000 M$$MUP= 000000 P$$GMX= 000000 G.CNT 000004 I.XDBL 000044 K1.OWN 000002 M$$NET= 002627 P$$HIL= 003100 G.EFLG 000006 I.XIOP 000002 K1.STS 177776 M$$OVR= 000000 P$$LAS= 000000 G.GRP 000002 I.XLEN= 000046 K1.UCB 000010 M$$XLN= 000400 P$$LOL= 001130 G.LGTH= 000012 I.XLNK 000000 LD$CO = 000000 M.BFVH 000011 P$$MAX= 000400 G.LNK 000000 I.XMOD 000006 LD$DL = 000000 M.BFVL 000012 P$$MON= 000000 G.STAT 000003 I.XPBF 000022 LD$DU = 000000 M.LGTH= 000014 P$$OFF= 000000 HF.CIS= 000200 I.XPBL 000026 LD$DY = 000000 M.LNK 000000 P$$OOL= 000000 HF.DSP= 000010 I.XPBV 000030 LD$LP = 000000 M.UMRA 000002 P$$P45= 000000 HF.EIS= 000002 I.XRBF 000012 LD$MS = 000000 M.UMRN 000004 P$$RFL= 000000 HF.FPP= 100000 I.XRBL 000016 LD$NL = 000000 M.UMVH 000010 P$$RTY= 000000 HF.KXJ= 000040 I.XTCB 000004 LD$QA = 000000 M.UMVL 000006 P$$SRF= 000000 HF.QB = 000004 I.XTMO 000020 LD$RD = 000000 N$$DIR= 000000 P$$WND= 000000 HF.RMT= 000100 I.XTTB 000032 LD$TT = 000000 N$$LDV= 000001 QAAOFL 000032R HF.SWR= 000020 I.XTTL 000036 LD$VT = 000000 N$$MOV= 000041 QAATTN= 020000 HF.UBM= 000001 KE.RHB 177776 LK.SPN= 000002 N$$UMR= 000024 QABA = 000060 H$$FME= 000020 KE.UCB 000000 LK.WAT= 000010 N.DAY = 173114 QACAN 000706R H$$FMS= 000004 KE.UMC 177760 LS.CBL= 000004 N.DWA = 173104 QACTB 000022R H$$FMX= 000002 KE.UMH 177754 LS.CIN= 000010 N.DZA = 173074 QACYCL= 000400 H$$RTZ= 000074 KP.OFL= 000001 LS.CLK= 000001 N.KEY = 173054 QADNR 001106R H2.BRG= 100000 KS.DIP= 000200 LS.MDC= 000002 N.MON = 173116 QADONE 001050R H2.CLK= 000004 KS.EXT= 001000 LS.NET= 000020 N.UPT = 173064 QAERR = 100000 H2.INV= 000002 KS.MBC= 000010 L$$ASG= 000000 N.YEA = 173120 QAEXP = 000001 H2.ITF= 000010 KS.MOF= 000002 L$$DRV= 000000 OKDMA = 000001 QAFNT = 000016 H2.NVR= 000001 KS.OFL= 000001 L$$GCL= 000000 O$$LAP= 000000 QAFORK 001004R H2.PRO= 000020 KS.PDF= 000400 L$$LDR= 000000 O.AST 000006 QAGO = 000001 IE.BAD= ****** GX KS.POE= 000040 L$$NAM= 000000 O.EFN 000010 QAIE = 000100 IE.TMO= ****** GX KS.SDX= 000020 L$$PTO= 000000 O.ESB 000012 QAINI 000200R IO.RES= 000004 KS.SLO= 002000 L$$P11= 000001 O.LGTH= 000034 QAKRB 000026RG IO.RLB= ****** GX KS.UCB= 000100 L.ASG 000010 O.LNK 000000 QAMAIN= 010000 IO.SEC= ****** GX KS.UOP= 000004 L.CLK 177756 O.MCRL 000002 QANEX = 040000 IO.SFT= 000002 KXCSRA= 177520 L.DCB 000004 O.PTCB 000004 QAOFL 000134R IO.STC= ****** GX KXCSRD= 177530 L.ICB 177776 O.STAT 000014 QAOK 001016R IO.STO= 000010 KXCSRF= 177534 L.KRB 000010 PC.ALF= 000004 QAOUT 001060R IO.WLB= ****** GX KXCSRH= 177536 L.LGTH= 000012 PC.ALM= 001000 QAPWF 000706R IP.ABO= 000040 KXJQIR= 177532 L.LNK 000000 PC.HIH= 000001 QARET 000706R IP.FAK= 000020 K$$CNT= 177546 L.NAM 000002 PC.LOW= 000002 QASTA1= 001000 IP.PND= 000100 K$$CSR= 177546 L.NUM 000006 PC.NRM= 000400 QASTA2= 002000 IP.UMR= 000200 K$$DAS= 000000 L.STS 000007 PC.XIT= 000200 QASTA3= 004000 IS.SUC= ****** GX K$$IEN= 000115 L.TYPE 000005 PF.ALL= 177777 QAUCB 000044R I$$CSZ= 000200 K$$LDC= 000001 L.UCB 000006 PF.INS= 000040 Q$$A11= 000001 I$$RAR= 000000 K$$TPS= 000074 L.UNIT 000004 PF.LOG= 000100 Q$$MGR= 000000 I$$RDN= 000000 K.CON 177774 MEMCTL= 177746 PF.REQ= 000200 Q$$OPT= 000005 I.AADA 000044 K.CRQ 000010 MEMERR= 177744 PIRQ = 177772 READY = 000200 I.AST 000022 K.CSR 000000 MPAR = 172100 PMODE = 030000 R$$CON= 000000 I.ATRL= 000060 K.FRK 000016 MPCSR = 177746 PR0 = 000000 R$$DSP= 000000 I.ATTL= 000044 K.HPU 000004 MP.CRH= 100000 PR1 = 000040 R$$EIS= 000000 I.EFN 000003 K.IOC 177775 MP.INT= 007777 PR4 = 000200 R$$EXV= 000000 I.FCN 000012 K.OFF 000002 MP.NOP= 010000 PR5 = 000240 R$$FEA= 000000 I.IOSB 000014 K.OWN 000006 MP.PWF= 040000 PR6 = 000300 R$$GIN= 000000 I.LGTH= 000050 K.PRI 177772 MP.RSM= 020000 PR7 = 000340 R$$HDV= 000000 I.LNK 000000 K.PRM 177770 MP.STP= 000004 PS = 177776 R$$H11= 000004 I.LN2 000006 K.STS 177776 M$$CRB= 000124 PSMODE= 010000 R$$IIC= 000000 I.PRI 000002 K.URM 000014 M$$CRX= 000000 P$$BPR= 000063 R$$LKL= 000001 I.PRM 000024 K.VCT 177773 M$$EXT= 000000 P$$CTL= 000000 R$$L11= 000001 I.TCB 000004 K1.CON 177774 M$$FCS= 000000 P$$D70= 000000 R$$MPL= 000000 I.UCB 000010 K1.CRQ 000004 M$$MGE= 000000 P$$FRS= 000310 R$$NDC= 000006 QADRV DR-11W DEVICE DRIVER MACRO V05.05 Friday 23-Sep-88 10:54 Page 4-8 Symbol table R$$NDH= 000226 S3.SPU= 000140 UM.KIL= 010000 U.CTL 000004 U3.FDX= 000001 R$$NDL= 000001 TPS = 177564 UM.NBR= 000400 U.CW1 000010 U3.OPA= 100000 R$$SND= 000000 T$$ACD= 000000 UM.OVR= 000001 U.CW2 000012 U3.PAR= 040000 R$$TPR= 032064 T$$BTW= 000000 UM.SER= 004000 U.CW3 000014 U3.RPR= 000004 R$$UDA= 000001 T$$CCA= 000000 US.ABO= 000001 U.CW4 000016 U3.UPC= 020000 R$$X21= 000001 T$$COM= 000000 US.BSY= 000200 U.DCB 000000 U4.CR = 000100 R$$11M= 000000 T$$CON= 000000 US.CRW= 000004 U.EIR = 000042 V$$CTR= 001000 SF.IN = 040000 T$$CTR= 000000 US.DSB= 000002 U.EXP = 000034 V$$TLD= 000170 SF.PGN= 000002 T$$CUP= 000000 US.FOR= 000040 U.FCDE= 000042 V$$TLM= 000270 SF.PRV= 100000 T$$EIO= 000000 US.FRK= 000002 U.IAST 000030 V$$TRM= 000000 SF.STD= 000001 T$$ESC= 000000 US.LAB= 000004 U.ICSR= 000046 XC.ACT= 000100 SR0 = 177572 T$$GMC= 000000 US.MDE= 000002 U.KRB1= 000044 XC.DAT= 000004 SR3 = 172516 T$$GTS= 000000 US.MDM= 000020 U.LUIC 177774 XC.DFR= 000040 SWR = 177570 T$$KMG= 000000 US.MNT= 000100 U.MEDI= 000050 XC.DIR= 000020 S$$ECC= 000000 T$$LTH= 000000 US.MUN= 000040 U.MUP 177772 XC.ENA= 000200 S$$EXC= 000000 T$$LWC= 000000 US.OFL= 000001 U.OAST 000032 XC.LOG= 000002 S$$HDW= 000000 T$$OVL= 000000 US.OIU= 000001 U.OCNT 000006 XC.OVR= 000010 S$$HFC= 000036 T$$RED= 000000 US.PDF= 000020 U.OWN 177776 XC.RDA= 000001 S$$LIB= 000000 T$$RNE= 000000 US.PUB= 000004 U.PRM = 000042 XX.DAT= 000005 S$$MAP= 000000 T$$RPR= 000000 US.PWF= 000010 U.PTCB 000040 XX.DIR= 000001 S$$NM1= 051522 T$$RST= 000000 US.RED= 000002 U.RED 000002 XX.LOG= 000001 S$$NM2= 046530 T$$RUB= 000000 US.SHR= 000001 U.RED2 000034 XX.MAX= 000177 S$$NM3= 046120 T$$SMC= 000000 US.SIO= 000200 U.RPKT 000024 XX.OVR= 000004 S$$OPT= 000000 T$$S11= 000001 US.SPU= 000002 U.SCB 000020 XX.RDA= 000005 S$$WPC= 000036 T$$TSA= 000000 US.TRN= 000100 U.SLT = 000050 X$$HDR= 000000 S$$WPR= 000005 T$$USP= 000000 US.UMD= 000010 U.SNUM= 000040 X$$SEC= 000000 S$$WRG= 000000 T$$UTO= 000036 US.VV = 000001 U.SPRM= 000052 X.CCED 000062 S$$WST= 000000 UA.ACC= 000001 US.WCK= 000010 U.STS 000005 X.CCYL 000046 S$$YSZ= 020000 UA.ALL= 000400 UU.ABO= 000400 U.ST2 000007 X.CPCB 000056 S.CON 177764 UA.CAL= 000100 UU.ATN= 000100 U.UCBX= 000032 X.CSBA 000060 S.CSR 177770 UA.COM= 000200 UU.AVN= 000004 U.UC2X= 000054 X.CSTS 000055 S.CTM = ****** GX UA.ECH= 000004 UU.BLK= 004000 U.UMB = 000040 X.CST2 000073 S.ITM = ****** GX UA.PRO= 000002 UU.GUS= 000010 U.UNIT 000006 X.CYL 000034 S.OWN 177776 UA.PUT= 000040 UU.IOS= 002000 U.UTIL= 000046 X.CYLC 000042 S.PKT = ****** GX UA.SPE= 000020 UU.ONL= 000020 U.VCB = 000036 X.DFFL= 000012 S.PRI 177762 UA.TRA= 002000 UU.RCT= 000002 U.WCR = 000044 X.DFHL= 000005 S.VCT 177763 UA.TRN= 001000 UU.RDY= 000200 U.WPKT 000026 X.DFSL= 000010 S2.ACT= 002000 UA.TYP= 000010 UU.SER= 000001 U2.AT.= 000020 X.DNAM 000052 S2.CON= 000200 UBMPR = 170200 UU.SIO= 001000 U2.CRT= 002000 X.DSKD 000051 S2.EIP= 000001 UC.ALG= 000200 UU.SPC= 000040 U2.DH1= 100000 X.DUSZ= 000054 S2.ENB= 000002 UC.ATT= 000010 U$$DAS= 000000 U2.DJ1= 040000 X.ERHC 000035 S2.KRQ= 010000 UC.KIL= 000004 U$$MHI= 000000 U2.DZ1= 000100 X.ERHL 000033 S2.LDS= 000040 UC.LGH= 000003 U$$MLO= 120000 U2.ESC= 001000 X.ERSC 000034 S2.LOG= 000004 UC.NPR= 000100 U$$MRN= 170224 U2.HFF= 010000 X.ERSL 000032 S2.MAD= 000010 UC.PWF= 000020 U$$UMD= 000000 U2.HLD= 000040 X.FCUR 000050 S2.OPT= 000100 UC.QUE= 000040 U$$UMR= 000000 U2.LOG= 000400 X.FLIM 000051 S2.OP1= 000400 UD.UNS= 000000 U.AAST 000034 U2.LWC= 000001 X.GRP 000032 S2.OP2= 001000 UD.160= 000004 U.ACP = 000034 U2.L3S= 000004 X.IOC 000026 S2.XHR= 004000 UD.200= 000001 U.ATT 000022 U2.L8S= 010000 X.LGTH= 000074 S3.ATN= 000010 UD.556= 000002 U.BAR = 000040 U2.NEC= 004000 X.MEDI 000020 S3.DRL= 000001 UD.625= 000005 U.BPKT= 000050 U2.PRV= 000010 X.MLUN 000000 S3.NRL= 000002 UD.8K = 000006 U.BUF 000024 U2.RMT= 020000 X.NAME 000022 S3.OPT= 000200 UD.800= 000003 U.CBF = 000032 U2.R04= 100000 X.RBNS 000042 S3.SIP= 000004 UM.CLI= 000036 U.CNT 000030 U2.SLV= 000200 X.RCTC 000043 S3.SLV= 000020 UM.CMD= 002000 U.COTQ 000030 U2.VT5= 000002 X.RCTS 000040 S3.SPA= 000040 UM.CNT= 001000 U.CSR = 000036 U2.7CH= 010000 X.SHST 000026 S3.SPB= 000100 UM.DSB= 000200 U.CTCB 000026 U3.DBF= 000002 X.SHUN 000024 QADRV DR-11W DEVICE DRIVER MACRO V05.05 Friday 23-Sep-88 10:54 Page 4-9 Symbol table X.TRCK 000030 X.UNTI 000010 X.XDIR 000070 $FORK = ****** GX $QATBE 000024RG X.UHVR 000037 X.USVR 000036 X.XLOG 000071 $GTPKT= ****** GX $QATBL 000000RG X.UNFL 000002 X.VSER 000050 X.XOVR 000072 $IODON= ****** GX $STMAP= ****** GX X.UNIT 000054 X.WCNT 000036 X.XRDA 000067 $MPUBM= ****** GX $$$ = 000000 X.UNSZ 000044 X.XDAT 000066 X2.DEA= 000001 $QAINT 000710RG . ABS. 177776 000 (RW,I,GBL,ABS,OVR) 001120 001 (RW,I,LCL,REL,CON) Errors detected: 0 *** Assembler statistics Work file reads: 0 Work file writes: 0 Size of work file: 15241 Words ( 60 Pages) Size of core pool: 16642 Words ( 64 Pages) Operating system: RSX-11M/M-PLUS Elapsed time: 00:00:35.54 QADRV,QADRV=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,[QADRV]QAPRE,QADRV