FCABAT1 
.PROC,FCABAT1*I,\ 
*CALL COMCCPL 
BL      ' 3 CHARACTER BASE LEVEL               '=(*N=,,*A3),
CL      ' 3 CHARACTER CODE LEVEL               '=(*N=,,*A3),
CRL     ' 3 CHARACTER CROSS LEVEL              '=(*N=,,*A3),
OBJLST  ' OBJECT LIST FROM PASCAL COMPILER     '=(*N=,,$,O$,*K=$,O$), 
XREF    ' SELECT CROSS REFERENCE     (NO/YES)  '=(*N=NO,NO,YES,*K=YES), 
ECS     ' EXTENDED MEMORY                      '=(*N=0,ECS=1,NOECS=0, 
                                                  *K=1),
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
  
.****   FCABAT1 
.*
.*      PROCEDURE TO GENERATE A COMBINED CCP BINARY LIBRARY 
.*            - FULL CCP COMPILE AND ASSEMBLY - 
.*
  
BEGIN(SETAJTL,INSTALL)
BEGIN(CCPGNPL,INSTALL,#BL=BL,#CL=CL,
#UNP=$UNP$) 
NOTE(FCAUDIR,NR)/*ID FCA
.*
.*  GET EXPAND TEXT 
.*
NOTE(FCADIR1)/*ID FCAEXPTXT/*C EXPTEXT
UPDATE(Q,P=NEWPL,I=FCADIR1,K=EXPTEXT,L=1,D,8) 
RETURN(FCADIR1) 
BEGIN(GETULIB,INSTALL,BAMLIB) 
ATTACH(EXPAND=AEXP_BL_UNP)
GET(USERBPS)
NOTE(SYSDEF)/SYS. 
.*
.*  CONVERT SYSTEM DEFINITION TO UPDATE DIRECTIVES
.*
NOTE(SYSRPT,NR)/1 
EXPAND(SYSDEF,USERBPS,EXPTEXT,OUTPUT,FCAUDIR,SYSRPT)
RETURN(EXPAND,SYSDEF,USERBPS,EXPTEXT) 
REWIND(SYSRPT)
COPYEI(SYSRPT)
IFE($CCPLIST$.NE.$PF$,YESPF)
IFE($CCPLIST$.EQ.$BOTH$,NOTPF)
ENDIF(YESPF)
PURGE(LFCA_CL/NA) 
DEFINE(LISTING=LFCA_CL) 
ELSE(NOTPF) 
IFE($CCPLIST$.EQ.$NO$,YESLIST)
ASSIGN(NE,LISTING)
ENDIF(YESLIST)
ENDIF(NOTPF)
REWIND(SYSRPT)
COPYEI(SYSRPT,LISTING)
RETURN(SYSRPT)
NOTE(FCAUDIR,NR)/*C ASMDECKS,ASMUSER,WEOR,PGMDECKS
PACK(FCAUDIR) 
UPDATE(Q,P=NEWPL,I=FCAUDIR,K,L=1) 
RETURN(FCAUDIR) 
ATTACH(ASSEM=AASM_CRL_UNC)
ATTACH(MACRO=AMAC_CRL_UNC)
PURGE(BCMB_CL/NA) 
DEFINE(LGO=BCMB_CL) 
RFL(77000)
ASSEM(I=COMPILE,G=MACRO,L=LISTING,X=1,PB) 
RFL(0)
WRITEF(LISTING) 
RETURN(ASSEM,MACRO) 
BKSP(LGO) 
ATTACH(PASCAL=APAS_CRL_UNC) 
IFE(ECS,NOECS)
NOEXIT. 
RFL(EC=71)
ONEXIT. 
ENDIF(NOECS)
RFL(77000)
IFE($XREF$.EQ.$YES$,NOXREF) 
PASCAL(P=COMPILE,L=PASLIST,X=1_OBJLST,#CSET=CSET) 
ELSE(NOXREF)
PASCAL(P=COMPILE,L=LISTING,X=1_OBJLST,#CSET=CSET) 
ENDIF(NOXREF) 
RFL(0,0)
RETURN(PASCAL,COMPILE,CODFLE,SYMFLE)
ATTACH(FORMAT=AFMT_CRL_UNC) 
FORMAT(,,PB)
RFL(0)
RETURN(FORMAT,PASCLGO,LGO)
IFE($XREF$.EQ.$YES$,NOXREF) 
BEGIN(XRFBAT1,INSTALL,#CRL=CRL,#UNC=$UNC$)
ENDIF(NOXREF) 
WRITEF(LISTING) 
IFE($CCPLIST$.NE.$YES$,YESLIST) 
IFE($CCPLIST$.EQ.$BOTH$,NOLIST) 
ENDIF(YESLIST)
REWIND(LISTING) 
COPYEI(LISTING) 
ENDIF(NOLIST) 
RETURN(LISTING) 
REVERT.  FCABAT1. 
.*
EXIT. 
RFL(0,0)
IFE(FILE(PASLIST,AS),NOCOPY)
IFE(.NOT.FILE(LISTING,DT(NE)),NOCOPY) 
REWIND(PASLIST) 
COPYEI(PASLIST,LISTING) 
ENDIF(NOCOPY) 
IFE(.NOT.$BL$,NOLIST) 
IFE($CCPLIST$.NE.$YES$,LISTAV)
IFE($CCPLIST$.EQ.$BOTH$,NOLIST) 
ENDIF(LISTAV) 
REWIND(LISTING) 
COPYEI(LISTING) 
ELSE(NOLIST)
IFE($CCPLIST$.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)  FCABAT1. 
*WEOR 
