CHA1
.PROC,CHA1*I,\
DEBUG   ' ENABLE DEBUG CODE          (NO/YES)  '=(*N=$$,NO=$$,YES=$,E$, 
                                                  *K=$,E$), 
NOTRACE ' DISABLE AIP TRACE CODE     (NO/YES)  '=(*N=D,NO=D,YES=,*K=),
ID      ' NETOU TEMPLATE ID                    '=(*N=A,*S1/AD), 
*CALL COMPC 
*CALL COMUSER 
*CALL COMLIST 
*CALL COMTOB
*CALL COMIA 
*CALL COMTOL
*CALL COMOUT
*CALL COMD2 
*CALL COMX2 
*CALL COMXOPL 
*CALL COMPROC 
. 
  
  
.*
.*  START CHA1 VIA SUBPROC. 
.*
BEGIN(SUBPROC,INSTALL,CHA1,,LIST,MAPTYPE,IA,TOBLD,TOLIST,USERF) 
REVERT.        CHA1.
EXIT. 
REVERT(ABORT)  CHA1.
  
  
.DATA,ZZZPROC 
.PROC,CHA1. 
* CHA1 - CDCNET HOST APPLICATION 1
*CALL PSRLEV
* 
BEGIN(PRDIN,INSTALL,PRDNAME=CHA1,#PN=PN,#PR=PR,DISK=0)
* 
BEGIN(PRDAUX,INSTALL,PRDNAME=OPL,#PNO=PN99,#PRO=PR99) 
RENAME(OPL=AUXPL) 
BEGIN(PRDAUX,INSTALL,PRDNAME=NAM5,#PNO=PN2,#PRO=PR2)
* 
BEGIN(UP,INSTALL,PCPL=CNSP,#PC=PC,#CC=CC,PCDECK=CHA,NUMAUX=1) 
BEGIN(GETULIB,INSTALL,NETIO_NOTRACE,SYMLIB,SYSLIB,FORTRAN,SRT5LIB)
BEGIN(GETULIB,INSTALL,SFLIB,MACLIB) 
.*
.*           BUILD ALL CDCNET APPLICATIONS
.*
.*
.*           BUILD CDCNET PRODUCTS
.*
RETURN(FAFMFIL) 
NOTE(FAFMFIL);*C ST$NFA.ND$NETFS
PACK(FAFMFIL) 
UPDATE(F,P=NEWER/AUXPL,I=FAFMFIL)         BUILD ALL PRODUCTS
RETURN(FAFMFIL) 
REWIND(COMPILE) 
.*
.*           BUILD  FILE ACCESS METHOD (NETFA)
.*
SYMPL(ET=T,I_DEBUG,B=TEXTNFA,L=LIST)        TEXT DECKS - TEXTNFA, RCTEXT
REWIND(NFMBIN)
SKIPR(NFMBIN,9999)
SYMPL(ET=T,I_DEBUG,Y=TEXTNFA,B=NFMBIN,L=LIST)          ACCESS METHOD
COMPASS(A,I,S=NOSTEXT,S=PSSTEXT,B=NFMBIN,L=LIST)     ACCESS METHOD
.*
.*           NETFM LIBRARY ROUTINES 
.*
SYMPL(ET=T,I_DEBUG,B=NFMDEF,L=LIST)                   NETFM DEFS
SYMPL(ET=T,I_DEBUG,Y=NFMDEF,B=TEXTNFM,L=LIST)         NETFM TEXTS 
SYMPL(ET=T,I_DEBUG,Y=TEXTNFM,Y=NFMDEF,B=NFMBIN,L=LIST)NETFM LIB ROUTINES
COMPASS(A,I,S=CPUTEXT,S=NOSTEXT,S=PSSTEXT,B=NFMBIN,L=LIST) LIB ROUTINES 
.*
.*           NETFM CONTROL CARD ROUTINES
.*
SYMPL(ET=T,I_DEBUG,Y=TEXTNFM,Y=NFMDEF,B=NFMCBIN,L=LIST) 
COMPASS(A,I,S=CPUTEXT,S=NOSTEXT,S=PSSTEXT,S=IOTEXT,B=NFMCBN2,L=LIST)
.*           NETFM SKELTON ROUNTINE FOR OVERLAYS
COMPASS(A,I,S=CPUTEXT,S=NOSTEXT,S=PSSTEXT,S=IOTEXT,B=NFMCBN2,L=LIST)
.*
.*           NETFM SORT ROUNTINES 
.*
SYMPL(ET=T,I_DEBUG,F,Y=TEXTNFM,Y=NFMDEF,B=NFMSBIN,L=LIST) 
.*
.*           CREATE CDCNET LIBRARY (NETFM PROGRAM INTERFACE)
.*
REWIND(NFMBIN)
LIBGEN(F=NFMBIN,P=NFMLIB,N=NFMLIB)
.*
.*            LOAD NETFM
.*
LDSET(ERR=ALL,PRESET=ZERO)
LDSET(LIB=MACLIB/NFMLIB)
LOAD(NFMCBIN) 
LOAD(NFMCBN2) 
LOAD(NFMSBIN) 
NOGO(NETFM) 
RETURN(NFMCBIN,NFMCBN2) 
.*
.*           BUILD NETFM UTILITY PROGRAMS 
.*
SYMPL(ET=T,I_DEBUG,Y=TEXTNFA,B=NETBDFB,L=LIST) DIRECTORY BUILD PGM
SYMPL(ET=T,I_DEBUG,Y=TEXTNFA,B=NETMDFB,L=LIST) DIRECTORY MERGE PGM
SYMPL(ET=T,I_DEBUG,Y=TEXTNFA,B=NETRDFB,L=LIST) DIRECTORY RESTRUCTURE PGM
.*
.*           BUILD ABSOLUTE BINARIES FOR CDCNET NETFM UTILITIES 
.*
LDSET(ERR=ALL,PRESET=ZERO)
LDSET(LIB=MACLIB/NFMLIB)
LOAD(NETBDFB) 
NOGO(NETBDF)                                   DIRECTORY BUILD ABSOLUTE 
.*
LDSET(ERR=ALL,PRESET=ZERO)
LDSET(LIB=MACLIB/NFMLIB)
LOAD(NETMDFB) 
NOGO(NETMDF)                                   DIRECTORY MERGE ABSOLUTE 
.*
LDSET(ERR=ALL,PRESET=ZERO)
LDSET(LIB=MACLIB/NFMLIB)
LOAD(NETRDFB) 
NOGO(NETRDF)                                   DIRECTORY RESTRUCTURE ABS
.*
.*    BUILD NETFS 
.*
SYMPL(ET=T,I_DEBUG,B=TEXTNFS,L=LIST)              NETFS SYMPL TEXT
SYMPL(ET=T,I_DEBUG,Y=TEXTNFS,B=NFSBIN,L=LIST)     NETFS SYMPL ROUTINES
.*
.*     NETFS COMPASS ROUTINES 
.*
COMPASS(A,I,S,S=PSSTEXT,S=NOSTEXT,S=NETTEXT,B=NFSBIN,L=LIST)
LIBGEN(F=NFSBIN,P=NFSLIB) 
COMPASS(A,I,S,S=PSSTEXT,S=NETTEXT,B=NFSLGO,L=LIST)NETFS MAIN PROGRAM
.*
.*           BUILD ABSOLUTE BINARIES FOR NETFS
.*
LDSET(ERR=ALL,PRESET=ZERO)
LDSET(LIB=NFSLIB/MACLIB/NFMLIB/NETIO_NOTRACE) 
LOAD(NFSLGO)
NOGO(NETFS,NETFS,$SSJ=$)
.*
.*           BUILD  NETPLM
.*
RETURN(PLMFIL,COMPILE)
NOTE(PLMFIL);*C ST$NETPLM.ND$NETPLM 
PACK(PMLFIL)
UPDATE(Q,P=NEWER/AUXPL,I=PLMFIL)         BUILD NETPLM 
RETURN(PLMFIL)
REWIND(COMPILE) 
RETURN(PLMBIN1,PLMBIN2) 
.*
.*     NETPLM MAIN PROGRAM
.*
SYMPL(ET=T,I_DEBUG,B=PLMBIN1,L=LIST)
SYMPL(ET=T,I_DEBUG,B=PLMBIN2,Y=PLMBIN1,L=LIST)
.*
.*     ASSEMBLY ROUTINES
.*
COMPASS(A,I,S=SYSTEXT,S=PSSTEXT,S=NOSTEXT,S=NETTEXT,B=PLMBIN3,L=LIST) 
.*
.*     LOAD NETPLM
.*
RETURN(COMPILE) 
LDSET(ERR=ALL,PRESET=ZERO)
LDSET(LIB=NFMLIB/MACLIB)
LOAD(PLMBIN2) 
LOAD(PLMBIN3) 
NOGO(NETPLM,NETPLM) 
RETURN(PLMBIN1,PLMBIN2,PLMBIN3) 
.*
.*           BUILD  NETOU 
.*
RETURN(OSFIL) 
NOTE(OSFIL);*C ST$NETOS.ND$NETOS
PACK(OSFIL) 
UPDATE(Q,P=NEWER/AUXPL,I=OSFIL) 
RETURN(OSFIL) 
SYMPL(ET=T,I_DEBUG,B=TEXTNOS,L=LIST)              NETOU SYMPL TEXT
SYMPL(ET=T,I_DEBUG,Y=TEXTNOS,B=NOSBIN,L=LIST)     NETOU SYMPL ROUTINES
COMPASS(A,I,S,S=PSSTEXT,S=NETTEXT,B=NOSBIN,L=LIST)NETOU COMPASS ROUTINES
LIBGEN(F=NOSBIN,P=NOSLIB) 
COMPASS(A,I,S,S=PSSTEXT,S=NETTEXT,B=NOSLGO,L=LIST)NETOU MAIN PROGRAM
RETURN(NETITFB,NETITF)
SKIPR(COMPILE)
SYMPL(ET=T,I_DEBUG,Y=TEXTNOS,B=NETITFB,L=LIST)    NETITF PROGRAM
.*
.*          BUILD ABSOLUTE BINARIES FOR NETOU 
.*
LDSET(ERR=ALL,PRESET=ZERO)
LDSET(LIB=NOSLIB/NFMLIB/MACLIB/NETIO_NOTRACE/SYSLIB/SYMLIB/FORTRAN) 
LOAD(NOSLGO)
NOGO(NETOU,NETOU,$SSJ=$)
LDSET(ERR=ALL,PRESET=ZERO)
LDSET(LIB=NOSLIB/NFMLIB/MACLIB/NETIO_NOTRACE) 
LOAD(NETITFB) 
NOGO(NETITF,NETITF) 
.*
.* BUILD NETOU TEMPLATE FILE, HTF_ID_PSROUT 
.*
RETURN(HOSTMPL,IN,PFGFILE)
RETURN(HTF_ID_PSROUT) 
PURGE(HTF_ID_PSROUT/NA) 
DEFINE(HOSTMPL=HTF_ID_PSROUT) 
BEGIN(PERMIT,INSTALL,REALFN=HTF_ID_PSROUT,SYMFN=HTF)
NOTE(IN);*C NOETEMP 
PACK(IN)
UPDATE(Q,P=NEWER,C=HOSTMPL,I=IN)
REWIND(HOSTMPL) 
COPYBF(PFGCHA1,PFGFILE) 
COPYBF(HOSTMPL,PFGFILE) 
RETURN(HOSTMPL,IN)
.*
.* BUILD RESPONSE FILE, HRF_ID_PSROUT 
.*
RETURN(HSTRESP) 
RETURN(HRF_ID_PSROUT) 
PURGE(HRF_ID_PSROUT/NA) 
DEFINE(HSTRESP=HRF_ID_PSROUT) 
BEGIN(PERMIT,INSTALL,REALFN=HRF_ID_PSROUT,SYMFN=HRF)
NOTE(IN);*C NOERESP 
PACK(IN)
UPDATE(Q,P=NEWER,C=HSTRESP,I=IN)
REWIND(HSTRESP) 
COPYBF(HSTRESP,PFGFILE) 
RETURN(HSTRESP,IN)
.*
.* BUILD LOG FILE, HLF_ID_PSROUT
.*
RETURN(HOSTLOG) 
RETURN(HLF_ID_PSROUT) 
PURGE(HLF_ID_PSROUT/NA) 
DEFINE(HOSTLOG=HLF_ID_PSROUT) 
BEGIN(PERMIT,INSTALL,REALFN=HLF_ID_PSROUT,SYMFN=HLF)
NOTE(IN);*C NOELOG
PACK(IN)
UPDATE(Q,P=NEWER,C=HOSTLOG,I=IN)
REWIND(HOSTLOG) 
COPYBF(HOSTLOG,PFGFILE) 
RETURN(HOSTLOG,IN)
.*
.*           BUILD  PANELS FOR NLTERM 
.*
.*           PDU PASS 1 
.*
RETURN(PANA)
NOTE(PANA);*C OPTSPAN 
PACK(PANA)
UPDATE(Q,P=NEWER,C=OPTSPAN,I=PANA)
RETURN(PANA)
REWIND(OPTSPAN) 
RFL(0)
BEGIN(ACCESS,INSTALL,GLOBLIB) 
GTR(GLOBLIB,PDU)PROC/PDU
RETURN(EI)
NOTE(EI)+RS:/$PANEL/,/PANEL/;*+RS:/$ULIB/,/ULIB/;*+END
EDIT(PDU,,EI,L=0) 
RETURN(EI)
PDU(I=OPTSPAN,L=LST)
.*
.*          PDU PASS 2
.*
RETURN(PANB)
NOTE(PANB);*C LISTPAN 
PACK(PANB)
UPDATE(Q,P=NEWER,C=LISTPAN,I=PANB)
RETURN(PANB)
REWIND(LISTPAN) 
PDU(I=LISTPAN,L=LST)
.*
.*          PDU PASS 3
.*
RETURN(PANC)
NOTE(PANC);*C COMPAN
PACK(PANC)
UPDATE(Q,P=NEWER,C=COMPAN,I=PANC) 
PACK(PANC)
REWIND(COMPAN)
PDU(I=COMPAN,L=LST) 
.*
.*          PDU PASS 4
.*
RETURN(PAND)
NOTE(PAND);*C BLNKPAN 
PACK(PAND)
UPDATE(Q,P=NEWER,C=BLNKPAN,I=PAND)
RETURN(PAND)
REWIND(BLNKPAN) 
PDU(I=BLNKPAN,L=LST)
.*
.*          PDU PASS 5
.*
RETURN(PANE)
NOTE(PANE);*C ERRPAN
PACK(PANE)
UPDATE(Q,P=NEWER,C=ERRPAN,I=PANE) 
RETURN(PANE)
REWIND(ERRPAN)
PDU(I=ERRPAN,L=LST) 
REWIND(ZZZZPAN,PANELIB) 
COPY(PANELIB,ZZZZPAN) 
RETURN(PANELIB) 
LIBEDIT(P=ZZZZPAN,N=PANELIB,I=0,B=0,U=PANELIB)
RETURN(ZZZZPAN) 
RETURN(PANCAPS) 
GTR(PANELIB,PANCAPS)CAP/* 
BEGIN(SAVELIB,INSTALL,PANCAPS,LIBNAME=PANELIB)
.*
.*           BUILD NLTERM 
.*
RETURN(NLFIL,COMPILE) 
NOTE(NLFIL);*C ST$NLTERM.ND$NLTERM
PACK(NLFIL) 
UPDATE(Q,P=NEWER/AUXPL,I=NLFIL) 
RETURN(NLFIL) 
SYMPL(ET=T,I_DEBUG,B=SYMTEXT,L=LIST)
SYMPL(ET=T,I_DEBUG,Y=SYMTEXT,B=NLBIN,L=LIST)
COMPASS(A,I,S=PSSTEXT,S=SYSTEXT,B=NLBIN,L=LIST) 
.*
LDSET(ERR=ALL,PRESET=ZERO)
LDSET(LIB=SFLIB/MACLIB/NETIO_NOTRACE/NFMLIB)
LDSET(LIB=PANELIB)
LOAD(NLBIN) 
NOGO(NLTERM,NLTERM,NLLIST,NLPURGE,$SSJ=$) 
.*
.*            BUILD  NETLS
.*
RETURN(LSFIL,COMPILE) 
NOTE(LSFIL);*C ST$NETLS.ND$NETLS
PACK(LSFIL) 
UPDATE(Q,P=NEWER/AUXPL,I=LSFIL) 
RETURN(LSFIL) 
SYMPL(ET=T,I_DEBUG,H,F,B=TEXTNLS,L=LIST)
SYMPL(ET=T,I_DEBUG,H,F,Y=TEXTNLS,B=NLSBIN,L=LIST) 
COMPASS(A,I,S=NOSTEXT,S=PSSTEXT,S=NETTEXT,B=NLSBIN,L=LIST)
LIBGEN(F=NLSBIN,P=NLSLIB) 
COMPASS(A,I,S,S=PSSTEXT,B=NLSLGO,L=LIST)
.*
LDSET(ERR=ALL,PRESET=ZERO)
LDSET(LIB=NLSLIB/MACLIB/NFMLIB) 
LDSET(LIB=NETIO_NOTRACE)
LOAD(NLSLGO)
NOGO(NETLS,NETLS,$SSJ=$)
.*
.*    BUILD PIM AND INITMDI 
.*
RETURN(PIMFIL,COMPILE)
NOTE(PIMFIL);*C ST$MDI.CWEOR810 
PACK(PIMFIL)
UPDATE(Q,P=NEWER/AUXPL,I=PIMFIL)
RETURN(PIMFIL)
.*
COMPASS(A,I,S=NOSTEXT,S=NETTEXT,B=INITBIN,L=LIST)   ASSEMBLE INITMDI
COMPASS(A,I,S=SYSTEXT,S=PPTEXT,B=PIM,L=LIST)        ASSEMBLE PIM
.*
RETURN(PIMFILA,COMPILE) 
NOTE(PIMFILA);*C INITICT.ND$MDI 
PACK(PIMFILA) 
UPDATE(Q,P=NEWER/AUXPL,I=PIMFILA) 
RETURN(PIMFILA) 
.*
SYMPL(ET=T,I_DEBUG,H,F,B=INITBIN,L=LIST)
.*
.*     BUILD ABSOLUTE BINARIES FOR INITMDI
.*
LDSET(ERR=ALL,PRESET=ZERO)
LDSET(LIB=MACLIB/NFMLIB/NETIO_NOTRACE)
LOAD(INITBIN) 
NOGO(INITMDI,INITMDI,$SSJ=$,$RFL=$) 
REWIND(INITMDI) 
.*
.*  RE-BUILD COLLECTOR SO IT CAN PICK UP DI DUMP FILES
.*
NOTE(UPDIN1,NR);*IDENT COLLJOB
NOTE(UPDIN1,NR);*DEFINE CDCNET
NOTE(UPDIN1,NR);*COMPILE ST$NAMI.ND$NAMI
PACK(UPDIN1)
REWIND(UPDIN1)
UPDATE(Q,P=AUXPL,I=UPDIN1)
COMPASS(A,I,S=IPTEXT,S=CPUTEXT,S=PSSTEXT,S=NOSTEXT,B=NAMIXXX,L=LIST)
SKIPR(COMPILE,2)  SKIP OVER NAMI DECKS
REWIND(NAMIXXX) 
LIBGEN(F=NAMIXXX,P=NAMILIB,N=NAMILIB) 
REWIND(NAMILIB) 
SYMPL(ET=T,I_DEBUG,B=COLLBIN,L=LIST)
COMPASS(A,I,S=PSSTEXT,S=NOSTEXT,B=COLLBIN,L=LIST) 
LDSET(ERR=ALL)
LDSET(PRESET=ZERO)
LDSET(LIB=NAMILIB/NFMLIB/MACLIB)
LOAD(COLLBIN) 
NOGO(NETCOLL,CLCDCNT) 
.*
.*         ADD JOB DECKS TO NAMSTART FILE 
.*
RETURN(COMPILE,IN,ZZZZDIR)
NOTE(IN);*C,ST$JOBFIL.ND$JOBFIL 
UPDATE(Q,P=NEWER,I=IN,#D,8) 
REWIND(COMPILE) 
COPYBF(COMPILE,PFGFILE) 
REWIND(COMPILE) 
NOTE(ZZZZDIR,NR)+JOB(JOBFS,SF,SY,NS)          NETFS NORMAL JOB. 
NOTE(ZZZZDIR,NR)+JOB(JOBLS,SL,SY,NS)          NETLS NORMAL JOB. 
NOTE(ZZZZDIR,NR)+JOB(JOBOU,UO,SY,NS)          NETOU NORMAL JOB. 
NOTE(ZZZZDIR,NR)+JOB(JOBINMD,IN,SY,NS)        INITMDI NORMAL JOB. 
NOTE(ZZZZDIR,NR)+JOB(JOBFSR,FS,DI,SY,NS)      NETFS RESTART JOB.
NOTE(ZZZZDIR,NR)+JOB(JOBLSR,LS,DI,SY,NS)      NETLS RESTART JOB.
NOTE(ZZZZDIR,NR)+JOB(JOBOUR,OU,DI,SY,NS)      NETOU RESTART JOB.
NOTE(ZZZZDIR,NR)+PARAM(CDCNET=YES)            PROCESS CDCNET DUMP FILES.
NOTE(ZZZZDIR,NR)+PARAM(ZZFC=500)              NETLS BUFFER FLUSH COUNT. 
NOTE(ZZZZDIR,NR)+PARAM(FSSTART=NO)            DO NOT AUTO-START NETFS.
NOTE(ZZZZDIR,NR)+PARAM(LSSTART=NO)            DO NOT AUTO-START NETLS.
NOTE(ZZZZDIR,NR)+PARAM(OUSTART=NO)            DO NOT AUTO-START NETOU.
BEGIN(ACCESS,INSTALL,PRODUCT,R) 
SYSGEN(UPSTRT,COMPILE,,ZZZZDIR) 
RETURN(PRODUCT) 
.*
BEGIN(PFGOUT,INSTALL,PRDNAME=CHA1,LFN=PFGFILE)
.*
.*       PUT ALL BINARIES AND LIBRARIES ONTO  LGO 
.*
RETURN(GLOBLGO) 
REWIND(NLTERM,NETOU,NETITF,NETFS,NETLS,NETPLM,NETFM)
REWIND(NETBDF,NETRDF,NETMDF,INITMDI,PIM,NETCOLL)
COPYEI(NLTERM,LGO)
COPYEI(NETOU,LGO) 
COPYEI(NETITF,LGO)
COPYEI(NETFS,LGO) 
COPYEI(NETLS,LGO) 
COPYEI(NETPLM,LGO)
COPYEI(NETFM,LGO) 
COPYEI(NETBDF,LGO)
COPYEI(NETRDF,LGO)
COPYEI(NETMDF,LGO)
COPYEI(INITMDI,LGO) 
COPYEI(PIM,LGO) 
COPYEI(NETCOLL,LGO) 
REWIND(NETITF,NETPLM,NETBDF,NETMDF,NETRDF,NETFM)
COPYEI(NETITF,GLOBLGO)
COPYEI(NETPLM,GLOBLGO)
COPYEI(NETBDF,GLOBLGO)
COPYEI(NETMDF,GLOBLGO)
COPYEI(NETRDF,GLOBLGO)
COPYEI(NETFM,GLOBLGO) 
  
.*
REWIND(NFMBIN)
BEGIN(SAVELIB,INSTALL,NFMBIN,LIBNAME=NFMLIB)
BEGIN(GENDIR,INSTALL,LIB=16)
BEGIN(SAVELGO,INSTALL,PRDNAME=CHA1) 
BEGIN(PRDOUT,INSTALL,PRDNAME=CHA1,#PNO=PNO,#PRO=PRO)
BEGIN(END,INSTALL,MFT=R1G+) 
REVERT.  CHA1.
EXIT. 
REVERT(ABORT)  CHA1.
#.DATA,PFGCHA1
.PROC,PFGCHA1.
$REWIND(PFGCHA1)
$SKIPF(PFGCHA1) 
$RETURN(HTF_ID_PSROUT,HRF_ID_PSROUT,HLF_ID_PSROUT)
$COPYBF(PFGCHA1,HTF_ID_PSROUT)
$COPYBF(PFGCHA1,HRF_ID_PSROUT)
$COPYBF(PFGCHA1,HLF_ID_PSROUT)
SYSGEN(RETAIN, HTF_ID_PSROUT, DA, PU, Y)
SYSGEN(RETAIN, HRF_ID_PSROUT, DA, PU, Y)
SYSGEN(RETAIN, HLF_ID_PSROUT, DA, PU, Y)
$RETURN(HTF_ID_PSROUT,HRF_ID_PSROUT,HLF_ID_PSROUT)
$REVERT. PFGCHA1 COMPLETE 
$EXIT.
$REVERT(ABORT) PFGCHA1 FAILED 
*WEOR 
