.TITLE GETDEV - GET UNIT NUMBER OF A DEVICE .IDENT /01JUN7/ ;11:00:00, LV ; .ENTRY GETDEV - GET UNIT NUMBER OF A DEVICE ;+ ; G E T D E V ; ; PURPOSE: THIS SUBROUTINE SCANS THE PUDS AND RETURNS TO ; THE USER THE HIGHEST UNIT NUMBER OF A SPECIFIED ; DEVICE. ; ; INTERFACE: CALLING SEQUENCE: (FORTRAN-CALLABLE SUBROUTINE) ; CALL GETDEV (DEVICE, UNIT) ; ; INPUT: DEVICE=2 ASCII CHARACTERS (MT,DT,DK,---) ; ; OUTPUT: UNIT SET TO -1 IF DEVICE NOT DEFINED ; OTHERWISE TO THE HIGHEST UNIT NUMBER FOUND ; IN THE PUDS ; ; ALL REGISTERS ARE PRESERVED. ; ; LANGUAGE: MACRO-11 ; ; RESTRICTIONS: THIS SUBROUTINE CAN ONLY BE USED BY PRIVILEGED ; TASKS. IT IS NOT USABLE UNDER RSX-11M. ;- ; REVISIONS: ; 03-MAY-76 MK SHORTEN CODE BY ELIMINATING ARGUMENT ; CHECKING. ; 01-JUN-77 LV UPDATED TO BCONFORM TO STANDARDS ; .MCALL PUSH,POP GETDEV:: PUSH MOV #-1,R1 ;PRESET UNIT ARG TO 'NOT FOUND' MOV .PUDBA,R0 1$: CMP U.DN(R0),@2(R5) ;CHECK FOR DEVICE BNE 2$ ;NOT THIS ENTRY CMPB U.UN(R0),R1 ;HIGHER THAN HIGHEST SO FAR? BLE 2$ ;NO MOVB U.UN(R0),R1 ;YES 2$: ADD #U.SZ,R0 ;GO TO NEXT ENTRY CMP R0,.PUDEA ;ANY MORE? BLO 1$ ;YES MOV R1,@4(R5) ;STORE UNIT POP RETURN .END