COMPSDN 
COMMON
          CTEXT  COMPSDN - SEARCH FOR DEVICE NUMBER.
          IF     -DEF,QUAL$,1 
          QUAL   COMPSDN
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SDN      SPACE  4
***       SDN - SEARCH FOR DEVICE NUMBER. 
*         J. L. WARDELL.     72/08/30.
*         P. D. HAAS.        74/10/16.
          SPACE  4
***              SDN SETS EST ORDINAL FOR DEVICE NUMBER SPECIFIED.
* 
*         ENTRY  (A) = EST ORDINAL OF FAMILY. 
*                (CM) = DEVICE NUMBER.
* 
*         EXIT   (A) = MST/10 ADDRESS OF DEVICE FOUND.
*                (A) = -1 IF DEVICE NOT FOUND.
*                (A) = -2 IF DEVICE ACCESS DENIED BY *SETMS*. 
*                (T5) = EST ORDINAL OF DEVICE.
* 
*         USES   T0 - T7, CM - CM+6.
* 
*         MACROS SETMS, SFA.
  
  
*         PROCESS DEVICE NOT FOUND. 
  
 SDN6     LCN    1           SET EXIT CONDITION 
  
 SDN      SUBR               ENTRY/EXIT 
          SFA    EST         READ EST ENTRY 
          ADK    EQDE 
          CRD    T0 
          LDD    T0+4        GET FAMILY NAME
          SHN    3
          ADN    PFGL 
          CRM    SDNA,ON
          LDM    SDNA+3      SET PROPER DEVICE NUMBER FOR SEARCH
          SCN    77 
          LMD    CM 
          STM    SDNA+3 
          LDN    ESTP        GET EST POINTERS 
          CRD    T0 
          LDN    NOPE-1      INITIALIZE EST ORDINAL FOR SEARCH
          STD    T5 
          LDD    T0+3        SET LAST MASS STORAGE ORDINAL + 1
          STD    T6 
  
*         SEARCH FOR DEVICE.
  
 SDN1     AOD    T5          ADVANCE EST ORDINAL
          LMD    T6 
          ZJN    SDN6        IF END OF MASS STORAGE EST 
          SFA    EST,T5      READ EST ENTRY 
          ADK    EQDE 
          CRD    T0 
          LDD    T0          CHECK DEVICE STATUS
          SHN    -6 
          LPN    41 
          LMN    40 
          NJN    SDN1        IF NOT AVAILABLE OR NON MS DEVICE
  
*         DETERMINE IF DEVICE IS ACTIVE, AVAILABLE PF DEVICE. 
  
          LDD    T0+4        READ *STLL* WORD OF MST
          SHN    3
          ADN    STLL 
          CRD    CM 
          SBN    STLL-MDGL
          CRD    CM+1 
          SBN    MDGL-PFGL   GET PF DESCRIPTOR WORD 
          CRD    CM+2 
          LDD    CM 
          LPC    MLFPR+MLIAL+MLIHD+MLIFD+MLIPF+MLUNL+MLDUL
 SDN2     NJN    SDN1        IF UNAVAILABLE OR INITIALIZE PENDING 
          LDD    CM+1 
          SHN    21-12
          MJN    SDN1        IF AUXILIARY DEVICE
  
*         COMPARE FAMILY NAME AND DEVICE NUMBER WITH THAT REQUESTED.
  
          LDN    CM+2 
          STD    T7 
 SDN3     LDM    SDNA-CM-2,T7 
          LMI    T7 
          NJN    SDN2        IF NAMES DONT MATCH
          AOD    T7          ADVANCE POINTER
          LMN    CM+6 
          NJN    SDN3        LOOP FOR FOUR BYTES
  
*         DETERMINE IF DEVICE CAN BE ACCESSED.
  
          SETMS  STATUS 
          LDM    MSD
          SHN    21-6 
          MJN    SDN5        IF DEVICE NOT TO BE ACCESSED 
          LDD    T0+4 
 SDN4     LJM    SDNX        RETURN 
  
 SDN5     LCN    2
          UJN    SDN4        RETURN 
  
  
 SDNA     BSSZ   5           FAMILY NAME
          SPACE  4
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 SDN      EQU    /COMPSDN/SDN 
 QUAL$    ENDIF 
          ENDX
