.TITLE FMTDEV .IDENT /V7.00/ ;+ ; ; *** FM.DEV FORMAT DEVICE NAME FROM UCB ADDRESS. ; ; INPUT: ; ; R0 BUFFER POINTER ; R3 UCB ADDRESS OF DEVICE ; ; OUTPUT: ; R0 UPDATED ; R1,R2,R3 ARE CHANGED. ; ;- FM.DEV::MOV U.DCB(R3),R2 ; GET DCB ADDRESS MOVB D.NAM(R2),(R0)+ ; PUT IN DEVICE NAME MOVB D.NAM+1(R2),(R0)+ ; MOV R0,-(SP) ; SAVE BUFFER POINTER MOV R3,R0 ; COPY UCB ADDRESS SUB D.UCB(R2),R0 ; CALCULATE RELATIVE UCB ADDRESS MOV D.UCBL(R2),R1 ; GET UCB LENGTH CALL $DIV ; CALCULATE RELATIVE UNIT NUMBER ADD D.UNIT(R2),R0 ; CALCULATE ABSOLUTE UNIT NUMBER MOV R0,R1 ; COPY IT TO R1 BIC #177400,R1 ; ZAP THE RUBBISH IN THE HIGH BYTE MOV (SP)+,R0 ; RESTORE BUFFER POINTER CALL OC.TAL ; CONVERT TO OCTAL MOVB #':,(R0)+ ; END WITH A COLON RETURN ; RETURN .END