GENDST
.PROC,GENDST*I,\
SYSTEM  ' LOCAL FILE NAME OF BASE DST FILE     '=(*N,*F), 
NEW     ' LOCAL FILE NAME OF NEW  DST FILE     '=(*N,*F), 
LIST    ' LIST OUTPUT FILE                     '=(*N=OUTPUT,*F),
*CALL COMDEN
*CALL COMPROC 
. 
*CALL PSRLEV
  
.* GET FILE SYSTEM
  
.IF, FILE(SYSTEM, .NOT. AS) ,GENDST1. 
  UNLOAD(ZZZZODT) 
  RESOURC(D=1)
  REQUEST(ZZZZODT,F=I,LB=KU,PO=R,#D=D,VSN=ODT)OLD DEADSTART TAPE
  COPYEI(ZZZZODT,SYSTEM,VFYTAPE)
  UNLOAD(ZZZZODT) 
.ENDIF(GENDST1) 
.IF, FILE(SYSTEM, .NOT. MS) ,GENDST2. 
  RETURN(ZZZFILE) 
  COPYEI(SYSTEM,ZZZFILE,VFYTAPE)
  UNLOAD(SYSTEM)
  RENAME(SYSTEM=ZZZFILE)
.ENDIF(GENDST2) 
  
.* MERGE LIBEDIT DIRECTIVE FILES
  
RETURN(IN,ZZZZIAF,ZZZZRDF)
REWIND(USERD) 
*IF,DEF,SMD 
.IF, FILE(DIRFILE, .NOT. AS) .BEGIN(ACCESS,INSTALL,DIRFILE) 
  
.* CHECK FOR IAF AND RDF
GTR(DIRFILE,ZZZZIAF,,,,NA)IAF1
GTR(DIRFILE,ZZZZRDF,,,,NA)RDF1
MODIFY(P=0,F,C=IN,Z)/*CREATE,DIRFILE/*NOSEQ 
SKIPR(IN) 
*ENDIF
COPYBR(USERD,IN)
NOTE(IN,NR)+*BUILD,#SYSTEM
PACK(IN)
  
.* GET THE PRODUCT FILE 
  
.IF, FILE(PRODUCT, .NOT. AS) .BEGIN(ACCESS,INSTALL,PRODUCT) 
  
.* ENSURE THAT FILE *NEW* IS PRE-ASSIGNED OR WILL 
.* BE WRITTEN TO TAPE 
  
SET(R1=0) 
.IF, FILE(NEW, .NOT. AS) .SET(R1=1) 
  
.* MERGE ALL FILES
  
*IF,DEF,SMD 
LIBEDIT(P=SYSTEM,B=PRODUCT,I=IN,N=NEW,L=LIST,NI)
*ELSE 
LIBEDIT(P=SYSTEM,B=PRODUCT,I=IN,N=NEW,L=LIST) 
*ENDIF
  
IF, FILE(ZZZZIAF, AS) .AND. FILE(ZZZZRDF, AS) ,GENDST3. 
  .* THIS LIBEDIT WILL DELETE THE DUPLICATE OVERLAYS
  .* FROM IAF AND RDF (THIS TEST USED ONLY BY SMD)
  LIBEDIT(P=NEW,B=0,C,L=LIST,LO=EM,Z);*#D,OVL/IAFEX1-PP/4TM 
ENDIF(GENDST3)
  
.* ENSURE THAT *NEW* IS A TAPE FILE 
  
IF, (R1=1) ,GENDST4.
  UNLOAD(ZZZZNDT) 
  RESOURC(D=1)
  REQUEST(ZZZZNDT,F=I,LB=KU,#D=D,VSN=NDT)#NEW DEADSTART TAPE
  REWIND(ZZZZNDT,NEW) 
  COPYEI(NEW,ZZZZNDT,VFYTAPE) 
  UNLOAD(ZZZZNDT) 
ENDIF(GENDST4)
  
CATALOG(NEW,N,R,T,L=LIST) 
  
REVERT. GENDST
EXIT. GENDST
REVERT(ABORT)GENDST 
*WEOR 
