*COMDECK  IOATT 
          TITLE  IOATT - ATTACH FILE
**        IOATT  -  ATTACH FILE 
* 
*         ENTRY  THE FDB IN CCLCOM2 CONTAINS LFN AND PFN
* 
*         EXIT  ATTEMPT TO ATTACH FILE IF PF DOES NOT EXIST THEN THE
*               JOB IS ABORTED BY SYSTEM PF MANAGER 
* 
  
 IOATT    SUBR   =
  
 OSSC2BE  IFNE   HOST,NOS 
          ATTACH FDB
 OSSC2BE  ELSE
  
*         EXECUTE GET FUNCTION ON NOS 
  
          SX5    ATTA        SET NULL USERNAME
  
 ATT0     BSS    0
          SX2    FDB         LFN ADDRESS
          SX3    FDB-4       START OF PERMANENT FILE NAME 
  
          GET    X2,X3,X5    TRY TO GET THE FILE
  
          SA1    FDB+W.FEAT 
          EX0    X1,FEAT     CHECK ABNORMAL TERMINATION CODE
          ZR     X0,ATT1     FILE IS INDIRECT 
  
          MX7    N.FEAT      CLEAR CODE IN FET
          LX7    S.FEAT+1 
          BX6    -X7*X1 
          SA6    FDB+W.FEAT 
          SX2    FDB         LFN ADDRESS
          SX3    FDB-4       START OF DIRECT FILE NAME
  
          ATTACH X2,X3,X5,,R,,,,NF     ATTACH PROC FILE 
          SA1    FDB+W.FEAT 
          EX0    X1,FEAT     CHECK FOR ABNORMAL TERMINATION CODE
          SX6    X0-1        CHECK FOR FILE BUSY
          NZ     X6,ATT10    TRY ATTACH AGAIN 
  
          SX3    MSG232      FILE IS BUSY 
          JP     BRWERR      SEND MSG AND ABORT CALL
  
 ATT10    BSS    0
  
          SA1    FDB+W.FEAT 
          EX0    X1,FEAT     CHECK ABNORMAL TERMINATION CODE
          ZR     X0,ATT1     FILE IS DIRECT ACCESS
  
          MX7    0           CLEAR CODE IN FET
          OX6    X1,X7,FEAT 
          SA6    FDB+W.FEAT 
          SA1    ATTB        INCREMENT LOOP COUNTER 
          SX6    X1+B1
          NZ     X1,ATT20    IF NOT FIRST TIME THROUGH LOOP 
  
          SX7    1R0         DISABLE POSSIBLE PACKNAME
          LX7    54 
          SA6    A1 
          SA7    FDB+14B     PACKNAME IN FET
          SX5    ATTC        SET ADDRESS OF LIBRARY USERNAME
          EQ     ATT0        TRY TO GET/ATTACH FROM USERNAME LIBRARY
  
 ATT20    BSS    0
          SX3    MSG230      PROC FILE NOT FOUND
          JP     BRWERR      ERR MSG AND ABORT CALL 
  
 ATT1     BSS    0
 OSSC2BE  ENDIF 
  
          SA4    FDB
          BX6    X4 
          SA6    PFATT       SAVE LFN FOR RETURN AT EXIT
          JP     IOATT       EXIT 
  
 ATTA     BSSZ   1           NULL USERNAME FOR FIRST GET/ATTACH 
 ATTB     BSSZ   1           LOOP COUNTER FOR MULTIPLE USERNAME SEARCH
 ATTC     DATA   7LLIBRARY   USERNAME FOR *UN=LIBRARY* SEARCH 
  
