VRBBAT1 
.PROC,VRBBAT1*I,\ 
VN      ' 3 CHARACTER VARIANT NAME             '=(*N=,,*A3),
*CALL COMCCPV 
BL      ' 3 CHARACTER BASE LEVEL               '=(*N=,,*A3),
CL      ' 3 CHARACTER CODE LEVEL               '=(*N=,,*A3),
CRL     ' 3 CHARACTER CROSS LEVEL              '=(*N=,,*A3),
FSL     ' 3 CHAR FIRMWARE AND SAM LEVEL        '=(*N=,,*A3),
XREF    ' SELECT CROSS REFERENCE     (NO/YES)  '=(*N=NO,NO,YES,*K=YES), 
UNP     ' USER NAME/PACK NAME FOR CCP FILES    '=(*N=,,*A), 
UNC     ' USER NAME/PACK NAME FOR CROSS FILES  '=(*N=,,*A), 
*IF,DEF,63CSET
CSET    ' CHARACTER SET                        '=(*N=63), 
*ELSE 
CSET    ' CHARACTER SET                        '=(*N=64), 
*ENDIF
*CALL COMPROC 
. 
*CALL     PSRLEV
  
.****   VRBBAT1 
.*
.*      PROCEDURE TO GENERATE A CCP VARIANT LOAD MODULE.
.*      DEPENDS ON USER SUPPLIED VARIANT NAME - VN PARAMETER. 
.*
  
BEGIN(SETAJTL,INSTALL)
BEGIN(CCPGNPL,INSTALL,#BL=BL,#CL=CL,
#UNP=$UNP$) 
.*
.*  GET EXPAND TEXT 
.*
NOTE(EXPUPDT)/*ID VRBEXPTXT/*C EXPTEXT
UPDATE(Q,P=NEWPL,I=EXPUPDT,K=EXPTEXT,D,8,L=1) 
RETURN(PCMB,EXPUPDT)
BEGIN(GETULIB,INSTALL,BAMLIB) 
ATTACH(EXPAND=AEXP_BL_UNP)
GET(USERBPS)
IFE($CL$,NOCL)
NOTE(VARDEF)/VRD=VN,LEV=CL. 
ELSE(NOCL)
NOTE(VARDEF)/VRD=VN.
ENDIF(NOCL) 
.*
.*  CONVERT CCP BUILD PARAMETERS TO UPDATE DIRECTIVES.
.*
NOTE(OUTPUT,NR)/1 
EXPAND(VARDEF,USERBPS,EXPTEXT,OUTPUT,VRBUDIR,BLDRPT)
RETURN(EXPAND,VARDEF,USERBPS,EXPTEXT) 
REWIND(VRBUDIR,BLDRPT)
COPYEI(BLDRPT)
.*
.*  GENERATE AUTO LINK INPUT DIRECTIVES 
.*
UPDATE(P=NEWPL,I=VRBUDIR,N=TEMPNPL,C=0,L=1) 
RETURN(VRBUDIR) 
NOTE(ALUPDT)/*ID VRBALKDIR/*C ALINPDIR
UPDATE(Q,P=TEMPNPL,I=ALUPDT,K=ALKDIR,L=1) 
RETURN(ALUPDT)
ATTACH(ALKOVL=AALK_BL_UNP)
IFE($BL$.EQ.$CL$,LOCAL) 
ATTACH(LGO=BCMB_BL_UNP) 
ELSE(LOCAL) 
ATTACH(LGO=BCMB_CL) 
ENDIF(LOCAL)
ALKOVL(ALKDIR,LGO,,LINKDIR,ALKFLST,ALKTEMP,FATAL) 
RETURN(ALKOVL,ALKDIR,ALKTEMP) 
IFE(.NOT.FILE(FATAL,AS),ALKFATL)
REWIND(LINKDIR) 
.*
.*  MPLINK STEP - INPUT DIRECTIVES ARE
.*  CREATED BY AUTOLINK PROGRAM.
.*
PURGE(S_VN_CL/NA) 
DEFINE(SYMTAB=S_VN_CL)
IFE($VARLIST$.NE.$PF$,YESPF)
IFE($VARLIST$.EQ.$BOTH$,NOTPF)
ENDIF(YESPF)
PURGE(L_VN_CL/NA) 
DEFINE(LISTING=L_VN_CL) 
ELSE(NOTPF) 
IFE($VARLIST$.EQ.$NO$,YESLIST)
ASSIGN(NE,LISTING)
ENDIF(YESLIST)
ENDIF(NOTPF)
REWIND(BLDRPT)
NOTE(LISTING,NR)/1
COPYEI(BLDRPT,LISTING)
REWIND(ALKFLST) 
COPYEI(ALKFLST,LISTING) 
RETURN(ALKFLST) 
RETURN(BLDRPT)
ATTACH(MPLINK=ALNK_CRL_UNC) 
RFL(110000) 
MPLINK(D=LINKDIR,R=LISTING,X=1,#CSET=CSET)
RFL(0)
RETURN(LINKDIR,LGO) 
WRITEF(LISTING) 
.*
.*  GENERATE MPEDIT INPUT DIRECTIVES
.*
NOTE(EDITDIR)/*ID VRBEDTDIR/*C ZD30 
UPDATE(Q,P=TEMPNPL,I=EDITDIR,K=EDITINP,L=1) 
RETURN(EDITDIR) 
PURGE(Z_VN_CL/NA) 
DEFINE(ZAPMP=Z_VN_CL) 
REWIND(ABSOLMP,SYMTAB)
ATTACH(MPEDIT=AEDT_CRL_UNC) 
RFL(77000)
IFE($XREF$.EQ.$YES$,NOXREF) 
MPEDIT(D=EDITINP,R=PASLIST,X=1,#CSET=CSET)
ELSE(NOXREF)
MPEDIT(D=EDITINP,R=LISTING,X=1,#CSET=CSET)
ENDIF(NOXREF) 
RFL(0)
WRITEF(ZAPMP) 
RETURN(EDITINP,ABSOLMP,ZAPMP) 
.*
.*  DO XREF IF REQUIRED 
.*
IFE($XREF$.EQ.$YES$,NOXREF) 
BEGIN(XRFBAT1,INSTALL,#CRL=CRL,TYPE=MPEDIT,#UNC=$UNC$)
ENDIF(NOXREF) 
WRITEF(LISTING) 
.*
.*  BUILD PICB
.*
NOTE(PICBDIR)/*ID VRBPICBDR/*C PICBSRC,WEOR,PICBLNK,WEOR1,PICBZAP 
UPDATE(Q,P=TEMPNPL,I=PICBDIR,K=PICBTXT,L=1) 
RETURN(PICBDIR,TEMPNPL) 
ATTACH(PASCAL=APAS_CRL_UNC) 
RFL(77000)
PASCAL(P=PICBTXT,L=LISTING,X=1,#CSET=CSET)
RFL(0)
RETURN(PASCAL,SYMFLE,CODFLE)
ATTACH(FORMAT=AFMT_CRL_UNC) 
FORMAT(,,PB)
RFL(0)
RETURN(FORMAT,PASCLGO)
RENAME(VRBSYM=SYMTAB) 
REWIND(LGO) 
RFL(110000) 
MPLINK(D=PICBTXT,R=LISTING,X=1,#CSET=CSET)
RFL(0)
RETURN(MPLINK,LGO)
SKIPEI(VRBSYM)
REWIND(SYMTAB)
COPYEI(SYMTAB,VRBSYM) 
RENAME(SYMTAB=VRBSYM) 
REWIND(SYMTAB)
COPYEI(SYMTAB,TEMPSYM)
WRITEF(SYMTAB)
RENAME(SYMTAB=TEMPSYM)
IFE($BL$.NE.$CL$,NOTLOCL) 
IFE($CL$.EQ.$FSL$,NOTLOCL)
ATTACH(MUXSYM=SMUX_FSL) 
ELSE(NOTLOCL) 
ATTACH(MUXSYM=SMUX_FSL_UNP) 
ENDIF(NOTLOCL)
COPYEI(MUXSYM,SYMTAB) 
RETURN(MUXSYM)
PURGE(I_VN_CL/NA) 
DEFINE(ZAPMP=I_VN_CL) 
REWIND(ABSOLMP,SYMTAB)
RFL(77000)
MPEDIT(D=PICBTXT,R=LISTING,X=1,#CSET=CSET)
RFL(0)
WRITEF(LISTING) 
WRITEF(ZAPMP) 
RETURN(MPEDIT,PICBTXT,ABSOLMP,SYMTAB,ZAPMP) 
IFE($VARLIST$.NE.$YES$,YESLIST) 
IFE($VARLIST$.EQ.$BOTH$,NOLIST) 
ENDIF(YESLIST)
REWIND(LISTING) 
COPYEI(LISTING) 
ENDIF(NOLIST) 
RENAME(LVRB=LISTING)
REVERT.  VRBBAT1.  NORMAL EXIT. 
.*
.*  ERROR PROCESSING
.*
ENDIF(ALKFATL)
REWIND(ALKFLST) 
COPYEI(ALKFLST) 
REVERT(ABORT)  VRBBAT1.  ABNORMAL EXIT (AUTOLINK).
.*
EXIT. 
RFL(0)
IFE(FILE(PASLIST,AS),NOCOPY)
IFE(.NOT.FILE(LISTING,DT(NE)),NOCOPY) 
REWIND(PASLIST) 
COPYEI(PASLIST,LISTING) 
ENDIF(NOCOPY) 
IFE($VARLIST$.NE.$YES$,LISTAV)
IFE($VARLIST$.EQ.$BOTH$,NOLIST) 
ENDIF(LISTAV) 
REWIND(LISTING) 
COPYEI(LISTING) 
ELSE(NOLIST)
IFE($VARLIST$.EQ.$NO$,LSTISPF)
NOTE(,NR)/ / **** BUILD STEP ABNORMAL TERMINATION 
NOTE(,NR)/ / **** CCP,CROSS LISTING FILE NOT CREATED, 
NOTE(,NR)/ / **** MAY BE NECESSARY TO RERUN THE BUILD STEP WITH 
NOTE(,NR)/ / **** #LIST PARAMETER SPECIFIED TO DETERMINE CAUSE
NOTE(,NR)/ / **** OF FAILURE. 
ENDIF(LSTISPF)
ENDIF(NOLIST) 
REVERT(ABORT)  VRBBAT1.  FATAL EXIT FROM VARIANT BUILD. 
*WEOR 
