*DECK,FINDPF
          IDENT  FINDPF 
          TITLE  FINDPF - FIND PERMANENT FILE.
          COMMENT FIND PERMANENT FILE.
          ENTRY  FINDPF 
          LIST   F
          SYSCOM B1 
*CALL COMCMAC 
          SPACE  4,10 
**        FINDPF - FIND PERMANENT FILE. 
* 
*         FINDPF IS CALLED TO FIND A PERMANENT FILE.
*         THE FOLLOWING ORDER IS USED TO SEARCH FOR THE FILE: 
* 
*         NOS:  
*                1. INDIRECT PERMANENT FILE,
*                2. DIRECT PERMANENT FILE,
*                3. INDIRECT PERMANENT FILE, UN=SYSTEMX,
*                4. DIRECT PERMANENT FILE, UN=SYSTEMX.
* 
*         NOS/BE: 
*                1. PERMANENT FILE, ID=RHF. 
* 
*         STATUS = FINDPF (FILNAME) 
* 
*         ENTRY  (FILNAME) = FILE NAME, 1 - 7 CHARACTERS. 
* 
*         EXIT   (STATUS) = 0, IF FILE FOUND. 
          SPACE  4,10 
 NOS      IFEQ   OS$NOS 
  
 LFN      FILEB  0,101B,(FET=13B),EPR 
  
 ERRM     BSS    3           ERROR MESSAGE
 JOBUN    CON    0           USE JOB USER NAME
 PF       CON    0           PERMANENT FILE NAME
 SYSUN    CON    0LSYSTEMX   ALTERNATE USER NAME
  
 NOS      ELSE
  
 LFN      FDB    LFN,PFN,ID=RHF,MR=1
 PF       EQU    LFN-4
  
 NOS      ENDIF 
          SPACE  4,10 
 FINDPF   SUBR
          SB1    1
          SA1    X1          (X1) = FILE NAME 
          MX0    7*6
          BX6    X0*X1
          SX2    B1 
          SA6    PF          SET PERMANENT FILE NAME
          BX6    X6+X2
          SA6    LFN         SET LOCAL FILE NAME
  
 NOS      IFEQ   OS$NOS 
          SETFET LFN,(ERA=ERRM) 
          GET    LFN,PF,JOBUN 
          SA1    X2 
          MX0    -8 
          LX1    0-10 
          BX6    -X0*X1 
          ZR     X6,FINDPFX  IF FILE FOUND
          ATTACH X2,PF,JOBUN,,R 
          SA1    X2 
          MX0    -8 
          LX1    0-10 
          BX6    -X0*X1 
          ZR     X6,FINDPFX  IF FILE FOUND
          GET    X2,PF,SYSUN
          SA1    X2 
          MX0    -8 
          LX1    0-10 
          BX6    -X0*X1 
          ZR     X6,FINDPFX  IF FILE FOUND
          ATTACH X2,PF,SYSUN,,R 
          SA1    X2 
          MX0    -8 
          LX1    0-10 
          BX6    -X0*X1 
 NOS      ELSE
          ATTACH LFN,RT 
          SA1    LFN
          MX0    -9 
          LX1    0-9
          BX6    -X0*X1      (X6) = 0, IF FUNCTION SUCCEEDED
 NOS      ENDIF 
  
          EQ     FINDPFX     RETURN 
  
          END 
