.TITLE NLDRIVER - NULL DEVICE DRIVER .IDENT /01/ ; ; COPYRIGHT (C) 1977 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A ; SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU- ; SION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY ; OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE ; AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM ; AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND ; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL ; EQUIPMENT CORPORATION. ; ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. ; ; D. N. CUTLER 8-AUG-77 ; ; NULL DEVICE DRIVER ; ; MACRO LIBRARY CALLS ; $IODEF ;DEFINE I/O FUNCTION CODES $SSDEF ;DEFINE SYSTEM STATUS VALUES ; ; LOCAL DATA ; ; DRIVER DISPATCH TABLE ; .PSECT WIONONPAGED NL$DDT:: ;ADDRESS OF DRIVER DISPATCH TABLE .LONG 0 ;START I/O OPERATION .LONG 0 ;UNSOLICITED INTERRUPT .LONG FUNCTABLE ;FUNCTION DECISION TABLE ADDRESS .LONG 0 ;CANCEL I/O ENTRY POINT .LONG 0 ;ADDRESS OF REGISTER DUMP ROUTINE .LONG 0 ;DIAGNOSTIC AND ERROR BUFFER SIZES .PAGE .SBTTL NULL DEVICE FUNCTION DECISION TABLE ;+ ; NULL DEVICE FUNCTION DECISION TABLE ;- FUNCTABLE: ;FUNCTION DECISION TABLE FUNCTAB ,- ;LEGAL FUNCTIONS ;WRITE VIRTUAL BLOCK FUNCTAB ,- ;BUFFERED I/O FUNCTIONS <> ;NO BUFFERED I/O FUNCTIONS FUNCTAB READ,- ;READ FUNCTIONS ;READ VIRTUAL BLOCK FUNCTAB WRITE,- ;WRITE FUNCTIONS ;WRITE VIRTUAL BLOCK .PAGE .SBTTL NULL DEVICE FUNCTION DECISION TABLE ROUTINES ;+ ; READ - READ FUNCTIONS ; WRITE - WRITE FUNCTIONS ; ; THE NULL DEVICE IS A SPECIAL DEVICE IN THAT ALL WRITES ARE DISCARDED AND ALL ; READS RETURN AN END OF FILE STATUS. THERE IS NO ACTUAL DRIVER, BUT RATHER ALL ; PROCESSING IS DONE BY FUNCTION DECISION TABLE ROUTINES. ; ; INPUTS: ; ; R0 = SCRATCH. ; R1 = SCRATCH. ; R2 = SCRATCH. ; R3 = ADDRESS OF I/O REQUEST PACKET. ; R4 = CURRENT PROCESS PCB ADDRESS. ; R5 = ASSIGNED DEVICE UCB ADDRESS. ; R6 = ADDRESS OF CCB. ; R7 = I/O FUNCTION CODE BIT NUMBER. ; R8 = FUNCTION DECISION TABLE DISPATCH ADDRESS. ; R9 = SCRATCH. ; R10 = SCRATCH. ; R11 = SCRATCH. ; AP = ADDRESS OF FIRST FUNCTION DEPENDENT PARAMETER. ; ; OUTPUTS: ; ; IF THE FUNCTION IS A READ, THEN SS$_ENDOFFILE IS RETURNED. ; ; IF THE FUNCTION IS A WRITE, THEN SS$_NORMAL IS RETURNED. ;- .ENABL LSB .PSECT Y$EXEPAGED READ: MOVZWL #SS$_ENDOFFILE,R0 ;SET END OF FILE STATUS BRB 10$ ; WRITE: MOVZWL #SS$_NORMAL,R0 ;SET NORMAL COMPLETION 10$: JMP EXE$FINISHIOC ;FINISH I/O OPERATION .DSABL LSB .END