.PAGE ; ; CALCULATE THE TTY UNIT NUMBER ; INPUTS R5 = TTY UCB ADDRESS ; OUTPUTS R5 = TTY UNIT NUMBER ; TTYCLC: MOV R4,-(SP) ;SAVE OTHER REGISTERS MOV R3,-(SP) ; MOV R2,-(SP) ; MOV R1,-(SP) ; MOV U.DCB(R5),R4 ;GET BACK TO THE DCB MOV D.UCBL(R4),R2 ;GET LENGTH OF A UCB MOVB D.UNIT(R4),R1 ;GET STARTING UNIT NUMBER MOV D.UCB(R4),R3 ;GET ADDRESS TO 1ST UCB SUB R3,R5 ;CALCULATE TTY UCB OFFSET CLR R4 ;INIT FOR DIVIDE DIV R2,R4 ;DIVIDE OFFSET BY SIZE OF A UCB MOV R1,R5 ;GET 1ST UNIT NUMBER ADD R4,R5 ;CALC OUR TTY UNIT NUMBER MOV (SP)+,R1 ;GET OUR REGS BACK MOV (SP)+,R2 ; MOV (SP)+,R3 ; MOV (SP)+,R4 ; RETURN ;AND RETURN .END START