*DECK /UPDATE 
.PROC,UPDATE,U=$...$,CY=$01$,BIN=$...$,I=$...$,DEBUG=$B=LGO$/$E$, 
      EL=$T$,PC=$1$.
* 
* PARAMETERS- 
*     <#U> = 3-LETTER USER INITIALS 
*     <#CY> = 2-DIGIT CYCLE NUMBER TO 
*                                 UPDATE
*     <#BIN> = #BIN NUMBER
*     <#I> = NAME OF INPUT FILE TO UPDATE 
*            (DEFAULT IS PF <#U>M<#CY>) 
*     #DEBUG FOR #DEBUG SYMPL 
*     <#EL> = SYMPL ERROR LEVEL 
*     <#PC> = COMPASS ASSEMBLY OPTIONS
*             (SEE ST5TEXT) 
* 
* GIVEN-
*   SETUPD = DIRECT ACCESS PERM FILE
*   CHECK = DIRECT ACCESS PERM FILE 
*   (FILES MENTIONED BELOW) 
* 
* DOES- 
*   IF <#BIN> IS SPECIFIED, 
*     CREATES AND PRINTS *OUTPUT*.
* 
* UPDATES PERMANENT FILES-
*   SGEN<#U> = PROGRAM TO BUILD SKELETON
*   TXT5<#U>= TEXT FOR BUILDING SORT
*   SL<#U> = SORT LIBRARY, WITH 
*                      RELS AND CAPSULES
*   RL<#U> = ALL RELOCATABLES 
*   S<#U> = SORT5 (0,0) OVERLAY 
*   M<#U> = MERGE (0,0) OVERLAY 
* 
DAYFILE(L=NIL)   PREPARE FOR OP=#I
RETURN(NIL) 
IFE,$U$=$...$,L1. 
REVERT,ABORT.    NEED #U PARAMETER
ENDIF,L1. 
RETURN(LIST,NIL)
IFE,$BIN$.NE.$...$.AND.OT=TXO,L1. 
BANNER,LIST.   #BIN    BIN          UPDATE RUNW/ PL_U_CY
SKIP,L1.
EXIT. 
ENDIF,L1. 
* 
* GET COMPILE FILE
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * GETTING COMPILE FILE % 
ENDIF,SKIPMSG.
RETURN(ZZZZTMP,ZZZZINP,OLDPL,SETUPD)
ATTACH(OLDPL=PL_U_CY) 
ATTACH,SETUPD/UN=GSP1351. 
IFE,$I$=$...$,HAVEI.
IFE,.NOT.FILE(U_M_CY,AS),HAVEF. 
GET,U_M_CY. 
ELSE,HAVEF. 
REWIND(U_M_CY)
ENDIF,HAVEF.
COPYBR(U_M_CY,ZZZZTMP)
ELSE,HAVEI. 
REWIND,I. 
COPYBR,I,ZZZZTMP. 
ENDIF,HAVEI.
SETUPD. 
RETURN(SETUPD)
OFFSW,2.
UPDATE(#I=ZZZZINP,O=LIST) 
RETURN(ZZZZINP,OLDPL) 
* 
* REBUILD TXT5_U
RETURN(CHECK) 
ATTACH(CHECK/UN=SRT0134)
CHECK(COMPILE)
IFE,SW2=0,L1. 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING TXT5_U FOR BUILDING % 
ENDIF,SKIPMSG.
PURGE(TXT5_U/NA)
RETURN(TXT5_U)
DEFINE(TXT5_U)
COMPASS(A,#I,B=TXT5_U,L=LIST,#PC=PC)
RETURN(TXT5_U)
ENDIF,L1. 
* 
* REBUILD SKELGEN (SGEN_U)
CHECK(COMPILE)
IFE,SW2=0,L1. 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING SKELGEN=SGEN_U %
ENDIF,SKIPMSG.
PURGE(SGEN_U) 
DEFINE(SKELGEN=SGEN_U)
COMPASS(A,#I,B=SKELBIN,S=SYSTEXT,S=CPUTEXT,L=LIST)
LDSET(MAP=SBEX/LIST)
LOAD(SKELBIN) 
NOGO(SKELGEN) 
RETURN(SKELGEN,SKELBIN) 
ENDIF,L1. 
* 
* CREATE SORT5 (0,0) RELOCATABLE
RETURN,LGO. 
SET,R2=0. 
CHECK(COMPILE)
IFE,SW2=0,L1. 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING SORT5 (0,0) RELOCATABLE % 
ENDIF,SKIPMSG.
SET,R2=1. 
SYMPL(#I=COMPILE,LR=LIST,#EL=EL,ET=F,DEBUG) 
ENDIF,L1. 
* 
* CREATE MERGE (0,0) RELOCATABLE
SET,R3=0. 
CHECK(COMPILE)
IFE,SW2=0,L1. 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING MERGE (0,0) RELOCATABLE % 
ENDIF,SKIPMSG.
SET,R3=1. 
SYMPL(#I=COMPILE,LR=LIST,#EL=EL,ET=F,DEBUG) 
ENDIF,L1. 
* CREATE AND REPLACE SM5SORT RELOCATABLE
CHECK(COMPILE)
IFE,SW2=0,L1. 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING SM5SORT RELOCATABLE % 
ENDIF,SKIPMSG.
RETURN,SM5SORT. 
SYMPL(#I=COMPILE,LR=LIST,#EL=EL,ET=F,S=SRT5LIB,B=SM5SORT) 
REPLACE,SM5SORT.
RETURN,SM5SORT. 
ENDIF,L1. 
* 
* CREATE AND REPLACE SM5MERG RELOCATABLE
CHECK(COMPILE)
IFE,SW2=0,L1. 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING SM5MERG RELOCATABLE % 
ENDIF,SKIPMSG.
RETURN,SM5MERG. 
SYMPL(#I=COMPILE,LR=LIST,#EL=EL,ET=F,S=SRT5LIB,B=SM5MERG) 
REPLACE,SM5MERG.
RETURN,SM5MERG. 
ENDIF,L1. 
* 
* SYMPL PROCEDURES
CHECK(COMPILE)
IFE,SW2=0,L1. 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * COMPILING SYMPL PROCEDURES % 
ENDIF,SKIPMSG.
SYMPL(#I=COMPILE,LR=LIST,#EL=EL,ET=F,DEBUG) 
ENDIF,L1. 
* 
* COMPASS ROUTINES
CHECK(COMPILE)
IFE,SW2=0,L1. 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * ASSEMBLING COMPASS ROUTINES %
ENDIF,SKIPMSG.
ATTACH(TXT5_U)
COMPASS(A,#I,S=SYSTEXT,S=IOTEXT,S=PSSTEXT,G=TXT5_U,L=LIST)
RETURN(TXT5_U)
ENDIF,L1. 
* 
* SKIP PROCFIL
CHECK(COMPILE)
RETURN(COMPILE) 
* 
* UPDATE RL_U 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * COPYL IN PROGRESS %
ENDIF,SKIPMSG.
RETURN(OLD) 
ATTACH(RL_U)
COPY(RL_U,OLD)
PURGE(RL_U) 
RETURN(RL_U)
DEFINE(RL_U)
COPYL(OLD,LGO,RL_U,,RA) 
RETURN(OLD,LGO) 
* 
* PREPARE TO LOAD 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * SKELGEN AND COPYLM IN PROGRESS % 
ENDIF,SKIPMSG.
RETURN(SKELGEN,SKEL,BASE,SRT5LB)
ATTACH(SKELGEN=SGEN_U)
SKELGEN(SKEL) 
COPYLM(SKEL,RL_U,BASE,,RE)
RETURN(SKEL,RL_U,SKELGEN) 
REWIND(BASE)
COPYBF(BASE,SRT5LB) 
BKSP(SRT5LB)
* 
* CREATE THE SORT5 (0,0) OVERLAY
IFE,R2=1,L1.
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING SORT5 ABSOLUTE %
ENDIF,SKIPMSG.
RETURN(S_U,IDPLIB)
ATTACH(IDPLIB/UN=SRT0134) 
PURGE(S_U/NA) 
DEFINE(S_U/CT=PU) 
LDSET(MAP=SBEX/LIST)
LDSET(PRESET=#DEBUG)
LDSET(LIB=IDPLIB) 
LOAD(BASE/NR) 
NOGO(S_U) 
RETURN(S_U,IDPLIB)
ELSE,L1.
COPYBF(BASE,NIL)
ENDIF,L1. 
* 
* CREATE THE MERGE (0,0) OVERLAY
IFE,R3=1,L1.
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING MERGE ABSOLUTE %
ENDIF,SKIPMSG.
RETURN(M_U,IDPLIB)
ATTACH(IDPLIB/UN=SRT0134) 
PURGE(M_U/NA) 
DEFINE(M_U/CT=PU) 
LDSET(MAP=SBEX/LIST)
LDSET(PRESET=#DEBUG)
LDSET(LIB=IDPLIB) 
LOAD(BASE/NR) 
NOGO(M_U) 
RETURN(M_U,IDPLIB)
ELSE,L1.
COPYBF(BASE,NIL)
ENDIF,L1. 
* 
* LOAD CAPSULES 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * LOADING CAPSULES % 
ENDIF,SKIPMSG.
COMMENT.* NO LIBRARIES FOR CAPSULES 
LIBRARY.
LDSET(MAP=SBEX/LIST)
LDSET(PRESET=#DEBUG)
GROUP(SORT5)
CAPSULE($S$$ERMSG$) 
CAPSULE($S$$ERR$) 
CAPSULE($S$$GINPR$) 
CAPSULE($S$$GNIMG$) 
CAPSULE($S$$GNINI$) 
CAPSULE($S$$GNFMG$) 
CAPSULE($S$$GNGRU$) 
CAPSULE($S$$GNLNG$) 
CAPSULE($S$$GNOPM$) 
CAPSULE($S$$GNPRU$) 
CAPSULE($S$$GNSHT$) 
CAPSULE($S$$GNSRT$) 
CAPSULE($S$$GTCSP$) 
CAPSULE($S$$GTSPC$) 
CAPSULE($S$$MAIN$)
CAPSULE($S$$MGDSN$) 
CAPSULE($S$$MRGPH$) 
CAPSULE($S$$LNGSM$) 
CAPSULE($S$$SRTPH$) 
CAPSULE($S$$STREC$) 
CAPSULE($S$$VDATA$) 
LDSET(OMIT=$SYMSC$$$/$SYMSM$$$) 
LOAD(BASE/NR) 
NOGO(ABSCAPS) 
REWIND(ABSCAPS) 
COPYBF(ABSCAPS,SRT5LB)
PURGE(SL_U/NA)
RETURN(SRT5LIB) 
DEFINE(SRT5LIB=SL_U/CT=PU)
LIBGEN(F=SRT5LB,P=SRT5LIB,NX=1) 
CATALOG,SRT5LIB,#U,R,L=LIST.
RETURN(ABSCAPS,SRT5LIB,BASE)
* 
* WRAP UP LISTING 
IFE,$BIN$.NE.$...$,L1.
DAYFILE(L=DAY,OP=#I)
REWIND(DAY) 
COPYBF(DAY,LIST)
RETURN(DAY) 
IFE,OT=TXO,L2.
ROUTE(LIST,DC=PR,ID)
ELSE,L2.
REWIND(LIST)
COPY(LIST,OUTPUT) 
ENDIF,L2. 
ENDIF,L1. 
RETURN(LIST)
REVERT.   UPDATE RUN W/ PL_U_CY AND U_M_CY
EXIT(S) 
IFE,OT=TXO,KEEPLST. 
SES.BELL 5
REVERT.  PROCEDURE ABORT...LOOK AT FILE ---> LIST 
ENDIF,KEEPLST.
* 
* WRAP UP LISTING 
IFE,$BIN$.NE.$...$,L1.
RETURN(DAY) 
DAYFILE(L=DAY,OP=#I)
REWIND(DAY) 
COPYBF(DAY,LIST)
IFE,OT=TXO,L2.
ROUTE(LIST,DC=PR,ID)
ELSE,L2.
REWIND(LIST)
COPY(LIST,OUTPUT) 
ENDIF,L2. 
ENDIF,L1. 
RETURN(DAY,LIST)
REVERT,ABORT. 
*WEOR,0 
*WEOR,17
