.TITLE THCOM - TASK HEADER COMMON DATA .IDENT /V01.00/ ; ; COPYRIGHT (C) 1979, 1980 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ; TRANSFERRED. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ; CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; MODULE DESCRIPTION: ; ; COMMON DATA FOR TASK HEADER DISPLAY ; ; ; ; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING ; ; IDENT HISTORY: ; ; 1.00 11-MAR-80 ; .SBTTL GLOBAL MACROS .MCALL UCBDF$,DCBDF$ UCBDF$ ; DEFINE UCB OFFSETS AND SYMBOLS DCBDF$ ; DEFINE DCB OFFSETS AND SYMBOLS .SBTTL COMMON DATA .PSECT COMMON,OVR,I,LCL ; ; THSE FOUR WORDS ARE DEFINED IN GBCOM ; NFLDS: .WORD 84. ; 84. FIELDS ON THIS PAGE TMG: .WORD 1 ; REFRESH ONCE EVERY SECOND TUN: .WORD 2 ; ... CMDAV: .WORD 1 ; NON-ZERO MEANS COMMANDS AVAILABLE ; ; GLOBALS USED BY TASK HEADER DISPLAY ; $THUNT::.BLKW 1 ; DEVICE UNIT NUMBER $THDNM::.BLKW 1 ; DEVICE NAME (ASCII) $THTHA::.BLKW 1 ; ADDRESS OF TASK HEADER $THTLN::.BLKW 1 ; CURRENT LUN NUMBER .EVEN .SBTTL $FMTDV - FORMAT DEVICE NAME ;+ ; *** - $FMTDV - PUT DEVICE NAME AND UNIT BUFFER ; ; INPUT: ; ; R0 - ADDRESS OF BYTE IN BUFFER ; R3 - ADDRESS OF UCB ; ; OUTPUT: R0 - UPDATED ; R1 - UNIT NUMBER ; R2 - DEVICE NAME ; ;- $FMTDV::MOV U.DCB(R3),R2 ; GET DCB ADDRESS MOV D.NAM(R2),-(SP) ; SAVE DEVICE NAME MOVB D.NAM(R2),(R0)+ ; PUT IN DEVICE MOVB D.NAM+1(R2),(R0)+ ; MNEMONIC MOV R0,-(SP) ; SAVE BUFFER POINTER MOV R3,R0 ; GET UCB ADDRESS SUB D.UCB(R2),R0 ; COMPUTE RELATIVE UCB ADDRESS MOV D.UCBL(R2),R1 ; GET UCB LENGTH CALL $DIV ; COMPUTE RELATIVE UNIT NUMBER ADD D.UNIT(R2),R0 ; COMPUTE ABSOLUTE UNIT NUMBER BIC #177400,R0 ; CLEAR HIGH BYTE MOV R0,R1 ; COPY IT MOV (SP)+,R0 ; RESTORE BUFFER POINTER MOV R1,-(SP) ; SAVE UNIT NUMBER CLR R2 ; SET TO SUPPRESS LEADING ZEROES CALL $CBOMG ; CONVERT TO OCTAL MOVB #':,(R0)+ ; PUT IN COLON (DEVICE TERMINATOR) MOV (SP)+,R1 ; RETURN UNIT NUMBER IN R1 MOV (SP)+,R2 ; RETURN DEVICE NAME IN R2 RETURN ; RETURN .END