*DECK /SETUP
.PROC,SETUP,U=$...$,CY=$01$,BIN=$...$,DEBUG=$B=LGO$/$E$,EL=$T$,ET=$W$,
      PC=$1$. 
* 
* PARAMETERS- 
*     <#U> = 3-LETTER USER INITIALS 
*     <#CY>= 2-DIGIT CYCLE NUMBER OF PL (DEFAULT 01)
*     <#BIN> = #BIN NUMBER
*     #DEBUG FOR #DEBUG SYMPL 
*     <#EL> = SYMPL ERROR LEVEL 
*     <#ET> = SYMPL ERROR TERMINATION 
*     <#PC> = COMPASS ASSEMBLY OPTIONS
*             (SEE ST5TEXT) 
* 
* GIVEN-
*   LISTCOM = DIRECT ACCESS PERM FILE 
* 
* GENERATES LOCAL FILE- 
*   IF <#BIN> IS SPECIFIED, 
*     CREATES AND PRINTS *OUTPUT*.
* 
* GENERATES 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. 
SETTL,377B. 
RETURN(SL_U)
RETURN(NIL,LIST,DAY)
RETURN(RL_U,S_U,M_U,P_U)
IFE,$BIN$.NE.$...$.AND.OT=TXO,L1. 
BANNER,LIST.   #BIN    BIN          SETUP  RUNW/ PL_U_CY
SKIP,L1.
EXIT. 
ENDIF,L1. 
* 
* ATTACH PROGRAM LIBRARY TO UPDATE
RETURN,OLDPL. 
ATTACH,OLDPL=PL_U_CY. 
* 
* GET COMPILE FILE
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * GETTING COMPILE FILE % 
ENDIF,SKIPMSG.
UPDATE(F,I=NIL,O=LIST)
* 
* LIST COMDECKS 
IFE,$BIN$.NE.$...$,L1.
ATTACH,LISTCOM/UN=SRT0134.
LISTCOM(LIST) 
RETURN(LISTCOM) 
ENDIF,L1. 
* 
* CREATE TXT5_U FOR BUILDING
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING TXT5_U %
ENDIF,SKIPMSG.
PURGE(TXT5_U/NA)
RETURN,TXT5_U.
DEFINE(TXT5_U)
COMPASS(A,#I,B=TXT5_U,L=LIST,#PC=PC)
RETURN(NIL) 
* 
* CREATE SKELGEN=SGEN_U 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING SKELGEN=SGEN_U %
ENDIF,SKIPMSG.
PURGE(SGEN_U/NA)
RETURN(SKELGEN) 
DEFINE(SKELGEN=SGEN_U)
COMPASS(A,#I,B=SKELBIN,S=SYSTEXT,S=CPUTEXT,L=LIST)
LDSET(MAP=SBEX/LIST)
LOAD(SKELBIN) 
NOGO(SKELGEN) 
RETURN(SKELBIN,SKELGEN) 
* 
* CREATE SORT5 (0,0) RELOCATABLE
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING SORT5 (0,0) RELOCATABLE % 
ENDIF,SKIPMSG.
RETURN(LGO) 
SYMPL(I=COMPILE,LR=LIST,#EL=EL,#ET=ET,DEBUG)
* 
* CREATE MERGE (0,0) RELOCATABLE
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING MERGE (0,0) RELOCATABLE % 
ENDIF,SKIPMSG.
SYMPL(I=COMPILE,LR=LIST,#EL=EL,#ET=ET,DEBUG)
* 
RETURN,SM5SORT,SM5MERG. 
* CREATE SM5SORT RELOCATABLE
* WITH LDSET,LIB=SRT5LIB
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING SM5SORT RELOCATABLE % 
ENDIF,SKIPMSG.
* 
SYMPL(I=COMPILE,LR=LIST,#EL=EL,#ET=ET,S=SRT5LIB,B=SM5SORT.
* 
* CREATE SM5MERG RELOCATABLE
* WITH LDSET,LIB=SRT5LIB
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING SM5MERG RELOCATABLE % 
ENDIF,SKIPMSG.
* 
SYMPL(I=COMPILE,LR=LIST,#EL=EL,#ET=ET,S=SRT5LIB,B=SM5MERG.
* 
REPLACE,SM5SORT,SM5MERG.
RETURN,SM5SORT,SM5MERG. 
* 
* SYMPL PROCEDURES
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * COMPILING SYMPL PROCEDURES % 
ENDIF,SKIPMSG.
SYMPL(I=COMPILE,LR=LIST,#EL=EL,#ET=ET,DEBUG)
* 
* COMPASS ROUTINES
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * ASSEMBLING COMPASS ROUTINES %
ENDIF,SKIPMSG.
COMPASS(I,S=SYSTEXT,S=IOTEXT,S=PSSTEXT,G=TXT5_U,L=LIST) 
RETURN(TXT5_U)
* 
* CREATE RL_U 
PURGE(RL_U/NA)
RETURN(RL_U)
DEFINE(RL_U)
REWIND(LGO) 
COPY(LGO,RL_U)
* 
* 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,LGO,BASE,,RE) 
RETURN(SKEL,LGO,SKELGEN)
REWIND(BASE)
COPYBF(BASE,SRT5LB) 
BKSP(SRT5LB)
* 
* CREATE THE SORT5 (0,0) OVERLAY
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING SORT5 ABSOLUTE %
ENDIF,SKIPMSG.
PURGE(S_U/NA) 
RETURN(S_U,IDPLIB)
DEFINE(S_U/CT=PU) 
ATTACH(IDPLIB/UN=SRT0134) 
LDSET(MAP=SBEX/LIST)
LDSET(PRESET=#DEBUG)
LDSET(LIB=IDPLIB) 
LOAD(BASE/NR) 
NOGO(S_U) 
RETURN(S_U) 
* 
* CREATE THE MERGE (0,0) OVERLAY
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * CREATING MERGE ABSOLUTE %
ENDIF,SKIPMSG.
PURGE(M_U/NA) 
RETURN(M_U) 
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)
* 
* 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) 
RETURN(SRT5LB,ABSCAPS,SRT5LIB,BASE) 
* 
* SKIP PROCFIL
SKIPR(COMPILE)
* 
* LIST THE TOOL DECKS 
IFE,OT=TXO,SKIPMSG. 
NOTE,OUTPUT,NR.% * LISTING THE TOOL DECKS % 
ENDIF,SKIPMSG.
SET,R3=TRUE.
WHILE,R3,LOOP.
COPYSBF,COMPILE,LIST. 
SET,R3=.NOT.FILE(COMPILE,EOI).
ENDW,LOOP.
RETURN(COMPILE) 
* 
DAYFILE(L=DAY,OP=I) 
REWIND(DAY) 
COPYBF(DAY,LIST)
RETURN(DAY) 
IFE,$BIN$.NE.$...$,L1.
IFE,OT=TXO,L2.
ROUTE,LIST,DC=PR,ID=6.
ELSE,L2.
REWIND(LIST)
COPY(LIST,OUTPUT) 
ENDIF,L2. 
ENDIF,L1. 
RETURN(LIST)
REVERT.    SETUP RUN W/ PL_U_CY 
EXIT(S) 
* 
DAYFILE(L=DAY,OP=I) 
REWIND(DAY) 
COPYBF(DAY,LIST)
IFE,$BIN$.NE.$...$,L1.
IFE,OT=TXO,L2.
ROUTE(LIST,DC=PR,ID)
ELSE,L2.
REWIND(LIST)
COPY(LIST,OUTPUT) 
ENDIF,L2. 
ENDIF,L1. 
RETURN(DAY,LIST)
RETURN(LGO,MERGEB,SORTB)
RETURN(TXT5_U,COMPILE,ZZZZZRL)
RETURN(RL_U)
REVERT,ABORT. 
*WEOR 
