.TITLE QATAB DATA BASE FOR DEVICE QA .IDENT /01/ ; ; AUTHOR: N. N. RODEWALD ; ; ; CHANGES: ; ; ; MODULE FUNCTION: Implement the QA dr-11W driver for the ACROAMATICS ; dr-11w interface. Supports dma interface under /01/ using ; read logical, write logical, set characterisics, sense ; characteristics, with read/write subfunctions io.reset, and ; set function to do reset or set function bits in csr. ; .PAGE ; BREAK PAGE FOR PREFACE .SBTTL SYMBOL, MACRO, DATA DEFINITIONS .LIST TTM ; TERMINAL LISTING MODE .NLIST BEX ; SUPPRESS BIN EXTENSION ; ; LOCAL SYMBOL DEFINITIONS: ; QAUCBL = QAND-QAST ; DEFINE UCB LENGTH ; $QATBL=0 ;LOADABLE DRIVER ; MACRO CALLS .MCALL DEVDF$,HWDDF$,scbdf$,ucbdf$ SCBDF$ UCBDF$ DEVDF$ HWDDF$ ; ; LOCAL MACROS: ; ; ; LOCAL DATA BLOCKS: ; ; .PAGE .SBTTL QADCB DEVICE CONTROL BLOCK $QADAT:: ; GLOBAL LABEL FOR START OF ; DATA BASE AND DCB; USED BY LOAD ; DATA BASES OF USER DRIVERS $QADCB:: ; START OF DCB FOR QA ; REQUIRED BY LOAD .WORD 0 ; LINK TO NEXT DCB .WORD .QA0 ; LINK TO FIRST UCB .ASCII /QA/ ; DEVICE NAME .BYTE 0,0 ; LOWEST, HIGHEST UNIT # .WORD QAUCBL ; LENGTH OF UCB .WORD $QATBL ; ADDR OF DDT .WORD 170377 ; LEGAL F M BITS 0-15 .WORD 000171 ; CONTROL F M BITS 0-15 .WORD 170000 ; NO-OP F M BITS 0-15 .WORD 0 ; ACP F M BITS 0-15 .WORD 0 ; LEGAL F M BITS 16-31 .WORD 0 ; CONTROL F M BITS 16-31 .WORD 0 ; NO-OP F M BITS 16-31 .WORD 0 ; ACP F M BITS 16-31 .WORD 0 ; ADDR OF PCB ; END OF DEVICE CONTROL BLOCK .PAGE .SBTTL QAUCB UNIT CONTROL BLOCK DEFINITION QAST=. ; START OF UCB ENTRIES ; FOR LENGTH CALCULATION .IF DF M$$MUP ; FOR MULTIUSER PROTECTION .WORD 0 ; OWNING TT UCB ADDRESS .ENDC .QA0:: ; START (OFFSET 0) OF UCB .WORD $QADCB ; BACK PTR TO DCB .WORD .-2 ; REDIRECT UCB PTR ; POINTS TO SELF INITIALLY .if ne okdma .BYTE UC.ALG!UC.NPR!1 ;WORD ALIGNED, WORD COUNT TRANSFERS .iff .BYTE UC.ALG!1 ;WORD ALIGNED, WORD COUNT TRANSFERS .endc ; DEFINE CONTROL FLAGS .BYTE 0 ; DEFINE UNIT STATUS .BYTE 0 ; PHYSICAL UNIT # .BYTE US.OFL!US.RED ; DEFINE MORE UNIT STATUS .WORD DV.REC!dv.sqd ; U.CW1 RECORD STRUCTURED DEVICE ; DEFINE CHARACTERISTICS .WORD 0 ; U.CW2 .WORD 0 ; U.CW3 .WORD 64. ; U.CW4 .WORD $QAscb ; PTR TO SCB .WORD 0 ; TCB ADDR OF TASK .WORD 0 ; U.BUF .WORD 0 ; U.BUF+2 .WORD 0 ; U.CNT .word 0 ; u.ext not used .WORD 0 ; interrupt expected .WORD 0 ; csr save .WORD 0 ; QAbar .WORD 0 ; error code .if ne okdma .WORD 0 ; SCRATCH QAwcr .iff .WORD 0 ; QAidr/odr .endc QAND = . ; END OF UCB .PAGE .SBTTL QAKRB CONTROLLER REQUEST BLOCK .BYTE pr5 ; QA RUNS AT PRIORITY 5 .BYTE 124/4 ; VECTOR / 4 .BYTE 0*2 ; CONTROLLER INDEX .BYTE 0 ; CONTROLLER I/O COUNT .WORD 0!KS.OFL ; CONTROLLER STATUS $QAKRB:: ; START OF KRB .WORD 172414 ; CSR ADDRESS SET FOR 172410 .WORD QAA-$QAKRB ; OFFSET TO START OF UMR WORK AREA .BYTE 0 ; HIGHEST PHY UNIT # .BYTE 0 ; UNUSED .WORD .QA0 ; PTR TO OWNER UCB ; ; CONTIGUOUS S C B HERE FOR DEVICE QA ; $QASCB: ; START OF SCB HERE .WORD 0,.-2 ; HEAD OF I/O QUEUE, FIRST ; WORD 0, SECOND POINTS TO ; FIRST .IF DF M$$PRO ; MULTIPROCESSOR .WORD 0 ; FORK UNIBUS RUN MASK .ENDC .WORD 0 ; FORK LINK WORD .WORD 0 ; FORK PC .WORD 0 ; FORK R5 .WORD 0 ; FORK R4 ; END OF FORK BLOCK .WORD 0 ; KISAR5 .WORD 0 ; I/O PACKET ADDRESS .BYTE 0 ; CURRENT TIME-OUT COUNT .BYTE 5 ; INITIAL TIME-OUT COUNT .BYTE 0 ; CONTROLLER STATUS .BYTE 0 ; STATUS EXTENSION 3 .WORD S2.CON ; STATUS EXTENSION 2 ; CONTIGUOUS ALLOCATION ; OF SCB/KRB IS USED .WORD $QAKRB ; KRB ADDRESS .BYTE 4 ; # OF REGISTERS TO PASS .BYTE 374 ; OFFSET FROM CSR TO FIRST REGISTER .WORD 0 ; NOT USED .IF DF M$$EXT ; FOR EXTENDED MEMORY SUPPORT .BLKW 6 ; MAPPING ASSIGNMENT BLOCK .ENDC QAA: ; END OF MAPPING ASSIGNMENT BLOCK .PAGE .SBTTL QACTB CONTROLLER TABLE DEFINITION .WORD 0 ; LINK TO FIRST ICB CTB ; MACRO FOR SYSTEM CTB LINK ; REQUIRED FOR RESIDENT ; DATA BASES OF USER DRIVERS .WORD 0 ; ZERO FOR LAST CTB IN LIST .ASCII /QA/ ; DEFINE UNIQUE CONTROLLER .WORD $QADCB ; ADDRESS OF DCB FOR QA .BYTE 1 ; 1 CONTROLLER (1 KRB) .BYTE 0 ; STATUS IS ZERO $QACTB:: ; GLOBAL LABEL FOR LOAD AND ; INTSV$ MACRO .WORD $QAKRB ; LINK TO KRB ; END OF CTB DEFINITION $QAEND:: ; GLOBAL LABEL TO MARK END OF ; DATA BASE FOR LOAD .END