ACCDIRF 
.PROC,ACCDIRF*I"ACCESS LIBEDIT DIRECTIVE FILE", 
M       ' ACCESS MODE     (R,W,CREATE,RETURN)  '=(R,W,CREATE,RETURN), 
DIRFILE ' DIRECTIVE FILE                       '=(*N=DIRFILE,*F), 
DIRFTMP ' TEMPORARY DIRECTIVE FILE             '=(*N=DIRFTMP,*F), 
DIRFLOC ' LOCK OUT FILE                        '=(*N=DIRFLOC,*F), 
DIRFOLD ' BACKUP FILE                          '=(*N=DIRFOLD,*F), 
. 
*IF,DEF,PDOC
.HELP 
  
THIS PROCEDURE IS USED TO ACCESS THE FILE DIRFILE.  THE PERMANENT 
FILE NAME TO ATTACH IS PASSED IN FROM THE CALLING PROCEDURE *ACCESS*. 
THE LOCAL FILE NAME IS ALWAYS DIRFILE.
  
.HELP,M 
*R* ATTACHES DIRFILE IN READ MODE.
*W* ATTACHES DIRFILE IN WRITE MODE. 
*CREATE* PURGE FILE THEN DEFINE IT. 
*RETURN*
.ENDHELP
*ENDIF
  
*************** A C C D I R F ********************
.IF, ($M$ .EQ. $R$ ) ,ACCDIRF10.
  
  ATTACH(#DIRFILE=DIRFILE)
  
.ELSE(ACCDIRF10)
  
.IF, ( $M$ .EQ. $CREATE$ ) ,ACCDIRF10.
  
  RETURN(#DIRFLOC,#DIRFILE) 
  PURGE(DIRFLOC/NA) 
  DEFINE(#DIRFLOC=DIRFLOC)
  PURGE(DIRFILE/NA) 
  DEFINE(#DIRFILE=DIRFILE/#M=R) 
  
.ELSE(ACCDIRF10)
.IF, ( $M$ .EQ. $W$ ) ,ACCDIRF10. 
  
  ATTACH(#DIRFLOC=DIRFLOC/#M=W,WB)
  PURGE(DIRFTMP/NA) 
  RETURN(#DIRFTMP)
  DEFINE(#DIRFTMP=DIRFTMP/#M=R) 
  ATTACH(#DIRFOLD=DIRFILE)
  
.ELSE(ACCDIRF10)
  
  .* #M=RETURN
  PURGE(DIRFOLD/NA) 
  RETURN(#DIRFTMP,#DIRFOLD) 
  CHANGE(DIRFOLD=DIRFILE,DIRFILE=DIRFTMP) 
  PURGE(DIRFOLD/NA) 
  RETURN(#DIRFLOC)
  
.ENDIF(ACCDIRF10) 
  
RETURN(CONVERT) 
  
REVERT. ACCDIRF **********************************
EXIT. ACCDIRF 
REVERT(ABORT) ACCDIRF ****************************
*WEOR 
