Google
 

Trailing-Edge - PDP-10 Archives - ap-c800d-sb - cobol.ctm
There are 6 other files named cobol.ctm in the archive. Click here to see a list.
!COBOL.CTL	COBOL-68 & COBOL-74 V12A
!
!USED TO MAKE ANY FLAVOUR OF COBOL-68 OR COBOL-74 FROM COBOL SOURCE FILES
!THIS FILE RUNS ON EITHER TOPS-20 OR TOPS-10 ON ALL SUPPORTED MONITORS
!SUBMIT WITH COMMAND	SUBMIT COBOL/TIME:1:0:0
!
!THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
!  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
!
!COPYRIGHT (C) 1979 BY DIGITAL EQUIPMENT CORPORATION
!
!IF ANY NON-STANDARD ASSEMBLY SWITCHES ARE DESIRED THEY SHOULD BE
!	INSERTED IN COBASM.MAC
!
!INSTALLATION SPECIFIC ASSIGNMENTS SHOULD BE PUT IN THE FOLLOWING FILE:
! ON TOPS-20 IN A TAKE FILE COBOL.CMD
! ON TOPS-10 IN A MIC  FILE COBOL.MIC
!	  OR IN A TECO FILE COBOL.TEC
!IF THIS FILE IS ABSENT THEN ALL REQUIRED FILES ARE ASSUMED TO EXIST  ON DSK:
!
!IF LISTINGS ARE DESIRED, THE EMPTY FILE
!LISTEM.MAC SHOULD BE IN DSK:
!
!FOR COBOL-68 SET ANS68==1 AND ANS74==0 IN COBASM.MAC
!FOR COBOL-74 SET ANS68==0 AND ANS74==1 IN COBASM.MAC
!
!IF A DEBUG VERSION IS REQUIRED
!DEBUG==1 MUST BE IN COBASM.MAC
!
!IF A DBMS VERSION IS REQUIRED
!DBMS==1 MUST BE IN COBASM.MAC
!
!TEST FOR WHICH SYSTEM
@GOTO TOPS20	!TOPS20 VERSION
.GOTO TOPS10	!TOPS10 VERSION
TOPS20::
!REQUIRED FILES:
!<FIELD-IMAGE>	MACRO.EXE
!		LINK.EXE
!		CREF.EXE
!		HELPER.REL
!		PA1050.EXE
!		MONSYM.UNV
!		UUOSYM.UNV
!
!<UNSUPPORTED>	GLOB.EXE
!
!<SELF>	COBOL.CTL	COBOL.DOC	COBOL.HLP
!
!	ASCSIX.MAC
!	ASCEBC.MAC	BTREE.MAC	BISGEN.MAC	CHREQV.MAC
!	COBASM.MAC	CLEANC.MAC	CLEAND.MAC	CLEANT.MAC
!	CLRNAM.MAC	CMNGEN.MAC	COBCOM.MAC	COBOLA.MAC
!	COBOLB.MAC	COBOLC.MAC	COBOLD.MAC	COBOLE.MAC
!	COBOLF.MAC	COBOLG.MAC	COBOLK.MAC	COMUNI.MAC
!	CTREE.MAC	DIAGS.MAC	DTREE.MAC	EBCASC.MAC
!	EXPGEN.MAC	FNDPOP.MAC	GETASY.MAC	GETCPY.MAC
!	GETERA.MAC	GETGEN.MAC	GETITM.MAC	GETTAG.MAC
!	IFGEN.MAC	IMPURE.MAC	INTERM.MAC	IOGEN.MAC
!	IPCGEN.MAC	LBLPRM.MAC	MATGEN.MAC	MESGEN.MAC
!	MOVGEN.MAC	MSCGEN.MAC	P.MAC		PMATCH.MAC
!	PSCAN.MAC	PURE..MAC	PUTAS1.MAC	PUTAS2.MAC
!	PUTAS3.MAC	PUTBIN.MAC	PUTCPY.MAC	PUTERA.MAC
!	PUTGEN.MAC	PUTLST.MAC	RPWGEN.MAC	SQUIRL.MAC
!	SRTCRF.MAC	SRTGEN.MAC	SRTTAB.MAC	STINFL.MAC
!	STRGEN.MAC	SUGENS.MAC	SYMBOL.MAC	TABLES.MAC
!	TRYNAM.MAC	XFRGEN.MAC	XPAND.MAC!	XPNPPL.MAC
!	OPCTAB.MAC	COBOLO.MAC
!
!IF A DEBUGING VERSION IS TO BE BUILT, THE FOLLOWING ARE ALSO REQUIRED
!
!	HANDAN.MAC	TRACER.MAC
!
!ALSO, IF MAKING A DBMS COBOL, THE FOLLOWING ARE REQUIRED:
!
!	CMLSYM.MAC	DBDML.MAC	DBGETF.MAC	DMLVOK.MAC
!	DMLERR.MAC	DMLIO.MAC	DBSDCL.MAC	GENDCL.MAC
!	STRUNV.MAC	STRDCL.MAC
!	SCHIO2.REL	STRHI.REL
!
!TO LOAD COBOL ONE OF THE FOLOWING SETS OF CMD FILES ARE REQUIRED:
!
!NOT DEBUG, NOT DBMS
!
!	ALL.CMD
!
!DEBUG, NOT DBMS
!
!	ALLD.CMD
!
!NOT DEBUG, DBMS
!
!	ALLB.CMD
!
!DEBUG, DBMS
!
!	ALLDB.CMD
!
!TO TEST THE FEATURES TEST SWITCH SETTINGS THE FOLLOWING IS REQUIRED:
!
!	COBTST.MAC
!
!
!
!OUTPUT:
!	-68	COBOL.EXE, COBOL.MAP, COBOL.GLB
!	-74	CBL74.EXE, CBL74.MAP, CBL74.GLB
!
!
!OUTPUT LISTINGS:
!		COBOL.LOG, COBOL.DOC
!
!
!MAKE A RECORD OF WHAT IS BEING USED
@CHKPNT CK2A
CK2A::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
!MAKE A RECORD OF WHAT IS BEING USED.
@GET SYS:PA1050.EXE
@INFO VERSION
@GET SYS:MACRO
@INFO VERSION
@GET SYS:LINK
@INFO VERSION
@GET SYS:CREF
@INFO VERSION
@GET SYS:GLOB
@IF (ERROR) @!GLOB IS NOT SUPPORTED
@INFO VERSION
!
@VD SYS:PA1050.EXE,SYS:MACRO.EXE,SYS:LINK.EXE,SYS:CREF.EXE,SYS:GLOB.EXE,SYS:HELPER.REL,SYS:MONSYM.UNV,SYS:UUOSYM.UNV,
@CHECK SEQ
@
!
@VD COBASM.MAC,INTERM.MAC,LBLPRM.MAC,COMUNI.MAC,P.MAC,CHREQV.MAC,TABLES.MAC,ASCEBC.MAC,ASCSIX.MAC,BISGEN.MAC,BTREE.MAC,CLEANC.MAC,CLEAND.MAC,CLEANT.MAC,CLRNAM.MAC,CMNGEN.MAC,COBCOM.MAC,COBOLA.MAC,COBOLB.MAC,
@CHECK SEQ
@
@VDIR COBOLC.MAC,COBOLD.MAC,COBOLE.MAC,COBOLF.MAC,COBOLG.MAC,COBOLK.MAC,COBOLO.MAC,CTREE.MAC,DIAGS.MAC,DTREE.MAC,EBCASC.MAC,EXPGEN.MAC,FNDPOP.MAC,GETASY.MAC,GETCPY.MAC,GETERA.MAC,GETGEN.MAC,GETITM.MAC,GETTAG.MAC,
@CHECK SEQ
@
@VD IFGEN.MAC,IMPURE.MAC,IOGEN.MAC,IPCGEN.MAC,MATGEN.MAC,MESGEN.MAC,MOVGEN.MAC,MSCGEN.MAC,PMATCH.MAC,OPCTAB.MAC,PSCAN.MAC,PURE.MAC,PUTAS1.MAC,PUTAS2.MAC,PUTAS3.MAC,PUTBIN.MAC,PUTCPY.MAC,PUTERA.MAC,PUTGEN.MAC,PUTLST.MAC,
@CHECK SEQ
@
@VD RPWGEN.MAC,SQUIRL.MAC,SRTCRF.MAC,SRTGEN.MAC,SRTTAB.MAC,STINFL.MAC,STRGEN.MAC,SUGENS.MAC,SYMBOL.MAC,TRYNAM.MAC,XFRGEN.MAC,XPAND.MAC,XPNPPL.MAC,
@CHECK SEQ
@
@VD CMLSYM.MAC,DBSDCL.MAC,GENDCL.MAC,STRUNV.MAC,STRDCL.MAC,DBDML.MAC,DBGETF.MAC,DMLVOK.MAC,DMLERR.MAC,DMLIO.MAC,SCHIO2.REL,STRHI.REL,
@CHECK SEQ
@
@VD COBOL.CTL,ALL.CMD,ALLB.CMD,ALLD.CMD,ALLDB.CMD,
@CHECK SEQ
@
!
!
@ !
!ASSEMBLE SOURCES
!
!ASSEMBLE THE UNIVERSALS FIRST.
@ERROR %
@TYPE LISTEM.MAC
@IF (ERROR) @GOTO NOLIS1
@ERROR 
!
!HERE IF CREF LISTING WANTED
!
@MACRO
*COBASM,COBASM/C=COBASM
*FTDEFS,FTDEFS/C=FTDEFS
*INTERM,INTERM/C=INTERM
*LBLPRM,LBLPRM/C=LBLPRM
*COMUNI,COMUNI/C=COMUNI
*P,P/C=P
*CHREQV,CHREQV/C=CHREQV
*TABLES,TABLES/C=TABLES
*OPCTAB,OPCTAB/C=OPCTAB
*COBTST=COBTST
!
! LOAD THE FEATURE TEST SWITCH TESTER
!
@LINK
*COBTST/GO
@SAVE COBTST
@IF (ERROR) @GOTO TRUBLE
!
!
!!NOW WE CAN ASSEMBLE THE REST OF THE SOURCES
@CHKPNT CK2B
CK2B::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*ASCEBC,ASCEBC/C=ASCEBC
*ASCSIX,ASCSIX/C=ASCSIX
*BISGEN,BISGEN/C=BISGEN
*BTREE,BTREE/C=BTREE
*CLEANC,CLEANC/C=CLEANC
*CLEAND,CLEAND/C=CLEAND
*CLEANT,CLEANT/C=CLEANT
*CLRNAM,CLRNAM/C=CLRNAM
*CMNGEN,CMNGEN/C=CMNGEN
*COBCOM,COBCOM/C=COBCOM
*COBOLA,COBOLA/C=COBOLA
*COBOLB,COBOLB/C=COBOLB
*COBOLC,COBOLC/C=COBOLC
*COBOLD,COBOLD/C=COBOLD
*COBOLE,COBOLE/C=COBOLE
*COBOLF,COBOLF/C=COBOLF
*COBOLG,COBOLG/C=COBOLG
*COBOLK,COBOLK/C=COBOLK
*COBOLO,COBOLO/C=COBOLO
@IF (ERROR) @GOTO TRUBLE
!
@CHKPNT CK2C
CK2C::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*CTREE,CTREE/C=CTREE
*DIAGS,DIAGS/C=DIAGS
*DTREE,DTREE/C=DTREE
*EBCASC,EBCASC/C=EBCASC
*EXPGEN,EXPGEN/C=EXPGEN
*FNDPOP,FNDPOP/C=FNDPOP
*GETASY,GETASY/C=GETASY
*GETCPY,GETCPY/C=GETCPY
*GETERA,GETERA/C=GETERA
*GETGEN,GETGEN/C=GETGEN
*GETITM,GETITM/C=GETITM
*GETTAG,GETTAG/C=GETTAG
*IFGEN,IFGEN/C=IFGEN
*IMPURE,IMPURE/C=IMPURE
*IOGEN,IOGEN/C=IOGEN
*IPCGEN,IPCGEN/C=IPCGEN
*MATGEN,MATGEN/C=MATGEN
*MESGEN,MESGEN/C=MESGEN
*MOVGEN,MOVGEN/C=MOVGEN
*MSCGEN,MSCGEN/C=MSCGEN
*PMATCH,PMATCH/C=PMATCH
*PSCAN,PSCAN/C=PSCAN
*PURE,PURE/C=PURE
*PUTAS1,PUTAS1/C=PUTAS1
*PUTAS2,PUTAS2/C=PUTAS2
*PUTAS3,PUTAS3/C=PUTAS3
@IF (ERROR) @GOTO TRUBLE
!
@CHKPNT CK2D
CK2D::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*PUTBIN,PUTBIN/C=PUTBIN
*PUTCPY,PUTCPY/C=PUTCPY
*PUTERA,PUTERA/C=PUTERA
*PUTGEN,PUTGEN/C=PUTGEN
*PUTLST,PUTLST/C=PUTLST
*RPWGEN,RPWGEN/C=RPWGEN
*SQUIRL,SQUIRL/C=SQUIRL
*SRTCRF,SRTCRF/C=SRTCRF
*SRTGEN,SRTGEN/C=SRTGEN
*SRTTAB,SRTTAB/C=SRTTAB
*STINFL,STINFL/C=STINFL
*STRGEN,STRGEN/C=STRGEN
*SUGENS,SUGENS/C=SUGENS
*SYMBOL,SYMBOL/C=SYMBOL
*TRYNAM,TRYNAM/C=TRYNAM
*XFRGEN,XFRGEN/C=XFRGEN
*XPAND,XPAND/C=XPAND
*XPNPPL,XPNPPL/C=XPNPPL
@IF (ERROR) @GOTO TRUBLE
!
!NOW ASSEMBLE THE DEBUG MODULES
!
@RUN COBTST
*DEBUG
@IF (ERROR) @GOTO NODEB
@MACRO
*HANDAN,HANDAN/C=HANDAN
*TRACER,TRACER/C=TRACER
@IF (ERROR) @GOTO TRUBLE
!
NODEB::
!NOW ASSEMBLE THE DBMS MODULES
!
@RUN COBTST
*DBMS
@IF (ERROR) @GOTO LZT !NOT DBMS
!ASSEMBLE THE UNIVERSALS FIRST
@MACRO
*CMLSYM,CMLSYM/C=CMLSYM
*GENDCL,GENDCL/C=GENDCL
*DBSDCL,DBSDCL/C=DBSDCL
*STRUNV,STRUNV/C=STRUNV
*STRDCL,STRDCL/C=STRDCL
!
!NOW ASSEMBLE THE REST OF THE MODULES
@MACRO
*DBDML,DBDML/C=DBDML
*DBGETF,DBGETF/C=DBGETF
*CMLVOK,CMLVOK/C=DMLVOK
*CMLERR,CMLERR/C=DMLERR
*CMLIO,CMLIO/C=DMLIO
@IF (ERROR) @GOTO TRUBLE
!
!NOW MAKE THE .LZT FILES
LZT::
@CHKPNT CK2E
CK2E::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@CREF
*DSK:COBASM.LZT=COBASM
*DSK:FTDEFS.LZT=FTDEFS
*DSK:INTERM.LZT=INTERM
*DSK:LBLPRM.LZT=LBLPRM
*DSK:COMUNI.LZT=COMUNI
*DSK:P.LZT=P
*DSK:CHREQV.LZT=CHREQV
*DSK:TABLES.LZT=TABLES
*DSK:OPCTAB.LZT=OPCTAB
*DSK:ASCEBC.LZT=ASCEBC
*DSK:ASCSIX.LZT=ASCSIX
*DSK:BISGEN.LZT=BISGEN
*DSK:BTREE.LZT=BTREE
*DSK:CLEANC.LZT=CLEANC
*DSK:CLEAND.LZT=CLEAND
*DSK:CLEANT.LZT=CLEANT
*DSK:CLRNAM.LZT=CLRNAM
*DSK:CMNGEN.LZT=CMNGEN
*DSK:COBCOM.LZT=COBCOM
*DSK:COBOLA.LZT=COBOLA
*DSK:COBOLB.LZT=COBOLB
*DSK:COBOLC.LZT=COBOLC
*DSK:COBOLD.LZT=COBOLD
*DSK:COBOLE.LZT=COBOLE
*DSK:COBOLF.LZT=COBOLF
*DSK:COBOLG.LZT=COBOLG
*DSK:COBOLK.LZT=COBOLK
*DSK:COBOLO.LZT=COBOLO
*DSK:CTREE.LZT=CTREE
*DSK:DIAGS.LZT=DIAGS
*DSK:DTREE.LZT=DTREE
*DSK:EBCASC.LZT=EBCASC
*DSK:EXPGEN.LZT=EXPGEN
*DSK:FNDPOP.LZT=FNDPOP
*DSK:GETASY.LZT=GETASY
*DSK:GETCPY.LZT=GETCPY
*DSK:GETERA.LZT=GETERA
*DSK:GETGEN.LZT=GETGEN
*DSK:GETITM.LZT=GETITM
*DSK:GETTAG.LZT=GETTAG
*DSK:IFGEN.LZT=IFGEN
*DSK:IMPURE.LZT=IMPURE
*DSK:IOGEN.LZT=IOGEN
*DSK:IPCGEN.LZT=IPCGEN
*DSK:MATGEN.LZT=MATGEN
*DSK:MESGEN.LZT=MESGEN
*DSK:MOVGEN.LZT=MOVGEN
*DSK:MSCGEN.LZT=MSCGEN
*DSK:PMATCH.LZT=PMATCH
*DSK:PSCAN.LZT=PSCAN
*DSK:PURE.LZT=PURE
*DSK:PUTAS1.LZT=PUTAS1
*DSK:PUTAS2.LZT=PUTAS2
*DSK:PUTAS3.LZT=PUTAS3
*DSK:PUTBIN.LZT=PUTBIN
*DSK:PUTCPY.LZT=PUTCPY
*DSK:PUTERA.LZT=PUTERA
*DSK:PUTGEN.LZT=PUTGEN
*DSK:PUTLST.LZT=PUTLST
*DSK:RPWGEN.LZT=RPWGEN
*DSK:SQUIRL.LZT=SQUIRL
*DSK:SRTCRF.LZT=SRTCRF
*DSK:SRTGEN.LZT=SRTGEN
*DSK:SRTTAB.LZT=SRTTAB
*DSK:STINFL.LZT=STINFL
*DSK:STRGEN.LZT=STRGEN
*DSK:SUGENS.LZT=SUGENS
*DSK:SYMBOL.LZT=SYMBOL
*DSK:TRYNAM.LZT=TRYNAM
*DSK:XFRGEN.LZT=XFRGEN
*DSK:XPAND.LZT=XPAND
*DSK:XPNPPL.LZT=XPNPPL
@IF (ERROR) !TROUBLE MAKING .LZT FILES
!
!NOW ASSEMBLE THE DEBUG MODULES
!
@RUN COBTST
*DEBUG
@IF (ERROR) @GOTO NODEB
@MACRO
*DSK:HANDAN.LZT=HANDAN
*DSK:TRACER.LZT=TRACER
@IF (ERROR) !TROUBLE MAKING .LZT FILES
!
NODEB::
@RUN COBTST
*DBMS
@IF (ERROR) @GOTO DONCRF !NOT DBMS
@CREF
*DSK:CMLSYM.LZT=CMLSYM
*DSK:GENDCL.LZT=GENDCL
*DSK:DBSDCL.LZT=DBSDCL
*DSK:STRDCL.LZT=STRDCL
*DSK:DBDML.LZT=DBDML
*DSK:DBGETF.LZT=DBGETF
*DSK:CMLVOK.LZT=CMLVOK
*DSK:CMLERR.LZT=CMLERR
*DSK:CMLIO.LZT=CMLIO
@IF (ERROR) !TROUBLE MAKING .LZT FILES
@GOTO DONCRF
NOLIS1::
!HERE IF CREF LISTINGS NOT WANTED
@ERROR
@MACRO
*COBASM=COBASM
*FTDEFS=FTDEFS
*INTERM=INTERM
*LBLPRM=LBLPRM
*COMUNI=COMUNI
*P=P
*CHREQV=CHREQV
*TABLES=TABLES
*OPCTAB=OPCTAB
*COBTST=COBTST
!
!HERE TO LOAD THE FEATURE TEST SWITCH TESTER
!
@LINK
*COBTST/GO
@SAVE COBTST
@IF (ERROR) @GOTO TRUBLE
!
!NOW WE CAN ASSEMBLE THE REST OF THE MODULES.
@CHKPNT CK2F
CK2F::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*ASCEBC=ASCEBC
*ASCSIX=ASCSIX
*BISGEN=BISGEN
*BTREE=BTREE
*CLEANC=CLEANC
*CLEAND=CLEAND
*CLEANT=CLEANT
*CLRNAM=CLRNAM
*CMNGEN=CMNGEN
*COBCOM=COBCOM
*COBOLA=COBOLA
*COBOLB=COBOLB
*COBOLC=COBOLC
*COBOLD=COBOLD
*COBOLE=COBOLE
*COBOLF=COBOLF
*COBOLG=COBOLG
*COBOLK=COBOLK
*COBOLO=COBOLO
@IF (ERROR) @GOTO TRUBLE
!
@CHKPNT CK2G
CK2G::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*CTREE=CTREE
*DIAGS=DIAGS
*DTREE=DTREE
*EBCASC=EBCASC
*EXPGEN=EXPGEN
*FNDPOP=FNDPOP
*GETASY=GETASY
*GETCPY=GETCPY
*GETERA=GETERA
*GETGEN=GETGEN
*GETITM=GETITM
*GETTAG=GETTAG
*IFGEN=IFGEN
*IMPURE=IMPURE
*IOGEN=IOGEN
*IPCGEN=IPCGEN
*MATGEN=MATGEN
*MESGEN=MESGEN
*MOVGEN=MOVGEN
*MSCGEN=MSCGEN
*PMATCH=PMATCH
*PSCAN=PSCAN
*PURE=PURE
*PUTAS1=PUTAS1
*PUTAS2=PUTAS2
*PUTAS3=PUTAS3
@IF (ERROR) @GOTO TRUBLE
!
@CHKPNT CK2H
CK2H::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*PUTBIN=PUTBIN
*PUTCPY=PUTCPY
*PUTERA=PUTERA
*PUTGEN=PUTGEN
*PUTLST=PUTLST
*RPWGEN=RPWGEN
*SQUIRL=SQUIRL
*SRTCRF=SRTCRF
*SRTGEN=SRTGEN
*SRTTAB=SRTTAB
*STINFL=STINFL
*STRGEN=STRGEN
*SUGENS=SUGENS
*SYMBOL=SYMBOL
*TRYNAM=TRYNAM
*XFRGEN=XFRGEN
*XPAND=XPAND
*XPNPPL=XPNPPL
@IF (ERROR) @GOTO TRUBLE
!
!NOW ASSEMBLE THE DEBUG MODULES
!
@RUN COBTST
*DEBUG
@IF (ERROR) @GOTO NODEB
@MACRO
*HANDAN=HANDAN
*TRACER=TRACER
@IF (ERROR) @GOTO TRUBLE
!
NODEB::
!ASSEMBLE THE DBMS MODULES.
!
@RUN COBTST
*DBMS
@IF (ERROR) @GOTO DONCRF
!
!ASSEMBLE THE UNIVERSALS FIRST.
@MACRO
*CMLSYM=CMLSYM
*GENDCL=GENDCL
*DBSDCL=DBSDCL
*STRUNV=STRUNV
*STRDCL=STRDCL
!
!NOW ASSEMBLE THE REST OF THE MODULES.
@MACRO
*DBDML=DBDML
*DBGETF=DBGETF
*CMLVOK=DMLVOK
*CMLERR=DMLERR
*CMLIO=DMLIO
@IF (ERROR) @GOTO TRUBLE
@GOTO DONCRF
DONCRF:: !NOW START TO LOAD
!
@CHKPNT CH2J
CK2J::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
!
!SEE WHICH COMPILER (68 OR 74) TO LOAD
!
@RUN COBTST
*ANS68
@IF (ERROR) @GOTO PT40	!COBOL-74
!
PT20::!HERE FOR COBOL-68 COMPILER
!SEE WHAT FLAVOUR OF COMPILER TO LOAD
!
@RUN COBTST
*DEBUG
@IF (ERROR) @GOTO PT21	!NOT DEBUG
@RUN COBTST
*DBMS
@IF (ERROR) @GOTO PT32	!DEBUG, NOT DBMS
@GOTO PT31		!DEBUG, DBMS
!
PT21::
@RUN COBTST
*DBMS
@IF (ERROR) @GOTO PT34	!NOT DEBUG, NOT DBMS
@GOTO PT33		!NOT DEBUG, DBMS
!
!
PT31::			!DEBUG, DBMS
!
@LINK
*COBOL/MAP=
*@ALLDB
@IF (ERROR) @GOTO TRUBLE
@SAVE COBOL 0 677
@IF (ERROR) @GOTO TRUBLE
@GOTO LODON
!
!
PT32::			!DEBUG, NOT DBMS
!
@LINK
*COBOL/MAP=
*@ALLD
@IF (ERROR) @GOTO TRUBLE
@SAVE COBOL 0 677
@IF (ERROR) @GOTO TRUBLE
@GOTO LODON
!
!
PT33::			!NOT DEBUG, DBMS
!
@LINK
*COBOL/MAP=
*@ALLB
@IF (ERROR) @GOTO TRUBLE
@SAVE COBOL 0 677
@IF (ERROR) @GOTO TRUBLE
@GOTO LODON
!
!
PT34::			!NOT DEBUG, NOT DBMS
!
@LINK
*COBOL/MAP=
*@ALL
@IF (ERROR) @GOTO TRUBLE
@SAVE COBOL 0 677
@IF (ERROR) @GOTO TRUBLE
@GOTO LODON
PT40::
!HERE FOR COBOL-74 COMPILER
!SEE WHAT FLAVOUR OF COMPILER TO LOAD
!
@RUN COBTST
*DEBUG
@IF (ERROR) @GOTO PT41	!NOT DEBUG
@RUN COBTST
*DBMS
@IF (ERROR) @GOTO PT52	!DEBUG, NOT DBMS
@GOTO PT51		!DEBUG, DBMS
!
PT41::
@RUN COBTST
*DBMS
@IF (ERROR) @GOTO PT54	!NOT DEBUG, NOT DBMS
@GOTO PT53		!NOT DEBUG, DBMS
!
!
PT51::			!DEBUG, DBMS
!
@LINK
*CBL74/MAP=
*@ALLDB
@IF (ERROR) @GOTO TRUBLE
@SAVE CBL74 0 677
@IF (ERROR) @GOTO TRUBLE
@GOTO LODON
!
!
PT52::			!DEBUG, NOT DBMS
!
@LINK
*CBL74/MAP=
*@ALLD
@IF (ERROR) @GOTO TRUBLE
@SAVE CBL74 0 677
@IF (ERROR) @GOTO TRUBLE
@GOTO LODON
!
!
PT53::			!NOT DEBUG, DBMS
!
@LINK
*CBL74/MAP=
*@ALLB
@IF (ERROR) @GOTO TRUBLE
@SAVE CBL74 0 677
@IF (ERROR) @GOTO TRUBLE
@GOTO LODON
!
!
PT54::			!NOT DEBUG, NOT DBMS
!
@LINK
*CBL74/MAP=
*@ALL
@IF (ERROR) @GOTO TRUBLE
@SAVE CBL74 0 677
@IF (ERROR) @GOTO TRUBLE
@GOTO LODON
LODON::!LOADING IS DONE
!
!TEST FOR COMPLETION SINCE LINK DOES NOT KNOW ITS UNDER BATCH
!
@START
*/U
@IF (NOERROR) @GOTO TRUBLE !WE SAVED LINK NOT COBOL
!
@CHKPNT CK2K
CK2K::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
!
!GENERATE GLOB LISTING
!
@COPY PURE.REL FOO.REL
!
!SEE IF GLOB COMMAND GIVES US AN ERROR
!
@GLOB
@IF (ERROR) @GOTO NOGLOB
!
!WE COULD HAVE ONE GLOB COMMAND FOR EACH CONFIGURATION
!BUT IT IS SIMPLER TO PUT THE OPTIONAL FILES IN ONE PLACE
!
@RUN COBTST
*DEBUG
@IF (ERROR) @GOTO NEXT
@APPEND HANDAN.REL,TRACER.REL FOO.REL
NEXT::
@RUN COBTST
*DBMS
@IF (ERROR) @GOTO NEXT
@APPEND SCHIO2.REL,STRHI.REL,CMLERR.REL,CMLIO.REL,CMLSYM.REL,CMLVOK.REL,DBDML.REL,DBGETF.REL FOO.REL
NEXT::
@RUN COBTST
*ANS68
@IF (ERROR) @GOTO V74	!COBOL-74
!
@GLOB
*CHREQV.REL,COBASM.REL,COMUNI.REL,INTERM.REL,LBLPRM.REL,P.REL,TABLES.REL
*ASCEBC.REL,ASCSIX.REL,IMPURE.REL,FOO.REL,SQUIRL.REL,BTREE.REL
*XPNPPL.REL,XPAND.REL,GETITM.REL,STINFL.REL,CLRNAM.REL
*TRYNAM.REL,PUTGEN.REL,PUTCPY.REL,PUTERA.REL,COBCOM.REL
*PUTLST.REL,COBOLB.REL,COBOLA.REL,CLEANC.REL,CTREE.REL
*FNDPOP.REL,GETTAG.REL,PSCAN.REL,PUTAS1.REL,PUTAS2.REL
*COBOLC.REL,CLEAND.REL,CLEANT.REL,DTREE.REL,COBOLD.REL
*BISGEN.REL,CMNGEN.REL,EXPGEN.REL,GETGEN.REL,IFGEN.REL
*IOGEN.REL,IPCGEN.REL,MATGEN.REL,MESGEN.REL,MOVGEN.REL
*MSCGEN.REL,PUTAS3.REL,RPWGEN.REL,SRTGEN.REL,STRGEN.REL
*SUGENS.REL,XFRGEN.REL,COBOLE.REL,DIAGS.REL,GETASY.REL
*GETCPY.REL,GETERA.REL,PUTBIN.REL,SRTCRF.REL,SRTTAB.REL
*SYMBOL.REL,COBOLG.REL,COBOLF.REL,EBCASC.REL,COBOLK.REL
*OPCTAB.REL,COBOLO.REL,PMATCH.REL
*COBOL.GLB=
@GOTO NOGLOB
!
V74::!COBOL-74
@GLOB
*CHREQV.REL,COBASM.REL,COMUNI.REL,INTERM.REL,LBLPRM.REL,P.REL,TABLES.REL
*ASCEBC.REL,ASCSIX.REL,IMPURE.REL,FOO.REL,SQUIRL.REL,BTREE.REL
*XPNPPL.REL,XPAND.REL,GETITM.REL,STINFL.REL,CLRNAM.REL
*TRYNAM.REL,PUTGEN.REL,PUTCPY.REL,PUTERA.REL,COBCOM.REL
*PUTLST.REL,COBOLB.REL,COBOLA.REL,CLEANC.REL,CTREE.REL
*FNDPOP.REL,GETTAG.REL,PSCAN.REL,PUTAS1.REL,PUTAS2.REL
*COBOLC.REL,CLEAND.REL,CLEANT.REL,DTREE.REL,COBOLD.REL
*BISGEN.REL,CMNGEN.REL,EXPGEN.REL,GETGEN.REL,IFGEN.REL
*IOGEN.REL,IPCGEN.REL,MATGEN.REL,MESGEN.REL,MOVGEN.REL
*MSCGEN.REL,PUTAS3.REL,RPWGEN.REL,SRTGEN.REL,STRGEN.REL
*SUGENS.REL,XFRGEN.REL,COBOLE.REL,DIAGS.REL,GETASY.REL
*GETCPY.REL,GETERA.REL,PUTBIN.REL,SRTCRF.REL,SRTTAB.REL
*SYMBOL.REL,COBOLG.REL,COBOLF.REL,EBCASC.REL,COBOLK.REL
*OPCTAB.REL,COBOLO.REL,PMATCH.REL
*CBL74.GLB=
!
NOGLOB::
@RUN COBTST
*ANS68
@IF (ERROR) @GOTO V74	!COBOL-74
@VD COBOL.EXE,COBOL.MAP,COBOL.GLB,
@CHECK SEQ
@
@GOTO CLNUP
!
V74::
@VD CBL74.EXE,CBL74.MAP,CBL74.GLB,
@CHECK SEQ
@
!
CLNUP::
! CLEAN UP AFTER BUILD
!
@DELETE FOO.REL
@VDIR COBASM.UNV,FTDEFS.UNV,INTERM.UNV,LBLPRM.UNV,COMUNI.UNV,P.UNV,CHREQV.UNV,TABLES.UNV,
@CHECK SEQ
@
@VDIR DMLSYM.UNV,GENDCL.UNV,DBSDCL.UNV,STRING.UNV,STRDCL.UNV,
@CHECK SEQ
@
@VDIR ASCEBC.REL,CHREQV.REL,COBASM.REL,COMUNI.REL,INTERM.REL,LBLPRM.REL,P.REL,TABLES.REL,
@CHECK SEQ
@
@VDIR ASCSIX.REL,IMPURE.REL,PURE.REL,SQUIRL.REL,BTREE.REL,XPNPPL.REL,XPAND.REL,GETITM.REL,STINFL.REL,CLRNAM.REL,
@CHECK SEQ
@
@VDIR TRYNAM.REL,PUTGEN.REL,PUTCPY.REL,PUTERA.REL,COBCOM.REL,PUTLST.REL,COBOLB.REL,COBOLA.REL,CLEANC.REL,CTREE.REL,
@CHECK SEQ
@
@VDIR FNDPOP.REL,GETTAG.REL,PSCAN.REL,PUTAS1.REL,PUTAS2.REL,COBOLC.REL,CLEAND.REL,CLEANT.REL,DTREE.REL,COBOLD.REL,
@CHECK SEQ
@
@VDIR BISGEN.REL,CMNGEN.REL,EXPGEN.REL,GETGEN.REL,IFGEN.REL,IOGEN.REL,IPCGEN.REL,MATGEN.REL,MESGEN.REL,MOVGEN.REL,
@CHECK SEQ
@
@VDIR MSCGEN.REL,PUTAS3.REL,RPWGEN.REL,SRTGEN.REL,STRGEN.REL,SUGENS.REL,XFRGEN.REL,COBOLE.REL,DIAGS.REL,GETASY.REL,
@CHECK SEQ
@
@VDIR GETCPY.REL,GETERA.REL,PUTBIN.REL,SRTCRF.REL,SRTTAB.REL,SYMBOL.REL,COBOLG.REL,COBOLF.REL,EBCASC.REL,COBOLK.REL,
@CHECK SEQ
@
@VDIR OPCTAB.REL,COBOLO.REL,PMATCH.REL,HANDAN.REL,TRACER.REL,
@CHECK SEQ
@
@VDIR CMLERR.REL,CMLIO.REL,CMLSYM.REL,CMLVOK.REL,DBDML.REL,DBGETF.REL,DBSDCL.REL,GENDCL.REL,STRDCL.REL,STRUNV.REL,
@CHECK SEQ
@
!
@DELETE CHREQV.REL,COBASM.REL,COMUNI.REL,FTDEFS.REL,INTERM.REL,LBLPRM.REL,P.REL,TABLES.REL,OPCTAB.REL
!
!IF DEBUG LEAVE REST OF REL FILES AROUND
!
@RUN COBTST
*DEBUG
@IF (NOERROR) @GOTO DONE	!DEBUG
@GOTO DONE	!TEMP FOR IN-HOUSE USE
!
@DELETE ASCEBC.REL,ASCSIX.REL,IMPURE.REL,PURE.REL,SQUIRL.REL,BTREE.REL
@DELETE XPNPPL.REL,XPAND.REL,GETITM.REL,STINFL.REL,CLRNAM.REL
@DELETE TRYNAM.REL,PUTGEN.REL,PUTCPY.REL,PUTERA.REL,COBCOM.REL
@DELETE PUTLST.REL,COBOLB.REL,COBOLA.REL,CLEANC.REL,CTREE.REL
@DELETE FNDPOP.REL,GETTAG.REL,PSCAN.REL,PUTAS1.REL,PUTAS2.REL
@DELETE COBOLC.REL,CLEAND.REL,CLEANT.REL,DTREE.REL,COBOLD.REL
@DELETE BISGEN.REL,CMNGEN.REL,EXPGEN.REL,GETGEN.REL,IFGEN.REL
@DELETE IOGEN.REL,IPCGEN.REL,MATGEN.REL,MESGEN.REL,MOVGEN.REL
@DELETE MSCGEN.REL,PUTAS3.REL,RPWGEN.REL,SRTGEN.REL,STRGEN.REL
@DELETE SUGENS.REL,XFRGEN.REL,COBOLE.REL,DIAGS.REL,GETASY.REL
@DELETE GETCPY.REL,GETERA.REL,PUTBIN.REL,SRTCRF.REL,SRTTAB.REL
@DELETE SYMBOL.REL,COBOLG.REL,COBOLF.REL,EBCASC.REL,COBOLK.REL
@DELETE COBOLO.REL,PMATCH.REL,COBTST.REL
@DELETE GENDCL.REL,DBSDCL.REL,STRUNV.REL,STRDCL.REL,CMLERR.REL,CMLIO.REL,CMLSYM.REL,CMLVOK.REL,DBDML.REL,DBGETF.REL
@IF (ERROR) @!NOT DBMS MOST LIKELY
!
DONE::	!ALL DONE
!
@PLEASE COBOL BUILD COMPLETE!
@EXP
@MODIFY BATCH */DEPEND:-1
@GOTO OK
%ERR::
TRUBLE::
@PLEASE -- COBOL CREATION NOT SUCCESSFUL!!!
@GOTO OK
TOPS10::
!
!REQUIRED FILES:
!DEC:		PIP.EXE		 (LATEST RELEASED VERSIONS)
!		MACRO.EXE
!		DIRECT.EXE
!		LINK.EXE+LNK???.EXE
!		CREF.EXE
!		COMPIL.EXE
!		GLOB.EXE
!		HELPER.REL
!		DDT.REL
!
!UNV:		UUOSYM.UNV
!
![SELF]	COBOL.CTL	COBOL.DOC	COBOL.HLP	COBASM.MAC
!
!SRC:	ASCSIX.MAC	ASCEBC.MAC	BTREE.MAC	BISGEN.MAC
!	CHREQV.MAC	CLEANC.MAC	CLEAND.MAC	CLEANT.MAC
!	CLRNAM.MAC	CMNGEN.MAC	COBCOM.MAC	COBOLA.MAC
!	COBOLB.MAC	COBOLC.MAC	COBOLD.MAC	COBOLE.MAC
!	COBOLF.MAC	COBOLG.MAC	COBOLK.MAC	COBOLO.MAC
!	COMUNI.MAC	CTREE.MAC	DIAGS.MAC	DTREE.MAC
!	EBCASC.MAC	EXPGEN.MAC	FNDPOP.MAC	GETASY.MAC
!	GETCPY.MAC	GETERA.MAC	GETGEN.MAC	GETITM.MAC
!	GETTAG.MAC	IFGEN.MAC	IMPURE.MAC
!	INTERM.MAC	IOGEN.MAC	IPCGEN.MAC	MATGEN.MAC
!	MESGEN.MAC	MOVGEN.MAC	MSCGEN.MAC	OPCTAB.MAC
!	P.MAC		PMATCH.MAC	PSCAN.MAC	PURE.MAC
!	PUTAS1.MAC	PUTAS2.MAC	PUTAS3.MAC	PUTBIN.MAC
!	PUTCPY.MAC	PUTGEN.MAC	PUTLST.MAC	RPWGEN.MAC
!	SQUIRL.MAC	SRTCRF.MAC	SRTGEN.MAC	SRTTAB.MAC
!	STINFL.MAC	STRGEN.MAC	SUGENS.MAC	SYMBOL.MAC
!	TABLES.MAC	TRYNAM.MAC	XFRGEN.MAC
!	XPAND.MAC	XPNPPL.MAC
!
!IF MAKING A DEBUG VERSION, THE FOLLOWING ARE ALSO REQUIRED
!
!	HANDAN.MAC	TRACER.MAC
!
!IF MAKING A MULTI-SEGMENT VERSION, THE FOLLOWING ARE ALSO REQUIRED
!
!	PURAB.MAC	PUREC.MAC	PURED.MAC	PUREE.MAC
!	PUREO.MAC	PURFG.MAC
!
!IF MAKING A DBMS COBOL, THE FOLLOWING ARE ALSO REQUIRED:
!
!	CMLSYM.MAC	DBDML.MAC	DBGETF.MAC	DBSDCL.MAC
!	DMLERR.MAC	DMLIO.MAC	DMLVOK.MAC	GENDCL.MAC
!	STRUNV.MAC	STRDCL.MAC
!	SCHIO1.REL	STRHI.REL
!
!TO LOAD COBOL ONE OF THE FOLOWING SETS OF CMD FILES ARE REQUIRED:
!
!MULTI-SEG, NOT DEBUG, NOT DBMS
!
!	PAB.CMD		PC.CMD		PD.CMD		PE.CMD
!	PO.CMD		PFG.CMD		PK.CMD
!
!MULTI-SEG, DEBUG, NOT DBMS
!
!	PABD.CMD	PCD.CMD		PDD.CMD		PED.CMD
!	POD.CMD		PFGD.CMD	PKD.CMD
!
!MULTI-SEGMENT, NOT DEBUG, DBMS
!
!	PABB.CMD	PCB.CMD		PDB.CMD		PE.CMD
!	PO.CMD		PFG.CMD		PK.CMD
!
!MULTI-SEG, DEBUG, DBMS
!
!	PABDB.CMD	PCDB.CMD	PDDBD.CMD	PED.CMD
!	POD.CMD		PFGD.CMD	PKD.CMD
!
!ONE SEGMENT, NOT DEBUG, NOT DBMS
!
!	ALL.CMD
!
!ONE SEGMENT, DEBUG, NOT DBMS
!
!	ALLD.CMD
!
!ONE SEGMENT, NOT DEBUG, DBMS
!
!	ALLB.CMD
!
!ONE SEGMENT, DEBUG, DBMS
!
!	ALLDB.CMD
!
!TO TEST THE FEATURES TEST SWITCH SETTINGS THE FOLLOWING IS REQUIRED:
!
!	COBTST.MAC
!
!
!OUTPUT:	MULTI-SEGMENT			ONE SEGMENT
!	COBOL.EXE	COBOL.MAP		COBOL.EXE
!	COBOLC.EXE	COBOLC.MAP		COBOL.MAP
!	COBOLD.EXE	COBOLD.MAP
!	COBOLE.EXE	COBOLE.MAP
!	COBOLO.EXE	COBOLO.MAP
!	COBOLF.EXE	COBOLF.MAP
!	COBOLK.EXE	COBOLK.MAP
!
! 				COBOL.LOG
!				COBOL.GLB
!
!
!
.CHKPNT CK1A
CK1A::
!
.ERROR
.SET WATCH VERSION
!SET UP THE DEFAULT LOGICAL NAMES
.ASSIGN DEC: UNV:
.ASSIGN DSK: SRC:
.ASSIGN DSK: C68:
.ASSIGN DSK: C74:
!
!CHANGE THEM IF USER SO DESIRES
.RUN DEC:SETSRC
*LIB:[10,131001]
.ASS LIB: SRC:
.
.IF (ERROR) !IGNORE IT
!
!SEE WHAT WE ARE USING
.RUN DEC:DIRECT
*TTY:=/CHECKSUM/WIDTH:90 DEC:PIP.EXE,MACRO.EXE,LINK.EXE,LNK???.EXE,DIRECT.EXE,COMPIL.EXE,CREF.EXE,GLOB.EXE,HELPER.REL,DDT.REL
.IF (ERROR) . !IGNORE ANY ERRORS.
.RUN DEC:DIRECT
*TTY:=/CHECKSUM/WIDTH:90 DSK:COBASM.MAC,SRC:CHREQV.MAC,COMUNI.MAC,FTDEFS.MAC,INTERM.MAC,LBLPRM.MAC,P.MAC,TABLES.MAC,OPCTAB.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:ASCEBC.MAC,ASCSIX.MAC,IMPURE.MAC,SQUIRL.MAC,BTREE.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:XPNPPL.MAC,XPAND.MAC,GETITM.MAC,STINFL.MAC,CLRNAM.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:TRYNAM.MAC,PUTGEN.MAC,PUTCPY.MAC,PUTERA.MAC,COBCOM.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:PUTLST.MAC,COBOLB.MAC,COBOLA.MAC,CLEANC.MAC,CTREE.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:FNDPOP.MAC,GETTAG.MAC,PSCAN.MAC,PUTAS1.MAC,PUTAS2.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:COBOLC.MAC,CLEAND.MAC,CLEANT.MAC,DTREE.MAC,COBOLD.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:BISGEN.MAC,CMNGEN.MAC,EXPGEN.MAC,GETGEN.MAC,IFGEN.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:IOGEN.MAC,IPCGEN.MAC,MATGEN.MAC,MESGEN.MAC,MOVGEN.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:MSCGEN.MAC,PUTAS3.MAC,RPWGEN.MAC,SRTGEN.MAC,STRGEN.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:SUGENS.MAC,XFRGEN.MAC,COBOLE.MAC,DIAGS.MAC,GETASY.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:GETCPY.MAC,GETERA.MAC,PUTBIN.MAC,SRTCRF.MAC,SRTTAB.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:SYMBOL.MAC,COBOLG.MAC,COBOLF.MAC,EBCASC.MAC,COBOLK.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:COBOLO.MAC,PMATCH.MAC,HANDAN.MAC,TRACER.MAC,COBTST.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:GENDCL.MAC,DBSDCL.MAC,STRUNV.MAC,STRDCL.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:DMLERR.MAC,DMLIO.MAC,CMLSYM.MAC,DMLVOK.MAC,DBDML.MAC,DBGETF.MAC,SCHIO1.REL,STRHI.REL
*TTY:=/CHECKSUM/WIDTH:90 SRC:PURE.MAC,PURAB.MAC,PUREC.MAC,PURED.MAC,PUREE.MAC,PUREO.MAC,PURFG.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:PAB.CMD,PC.CMD,PD.CMD,PE.CMD,PO.CMD,PFG.CMD,PK.CMD
*TTY:=/CHECKSUM/WIDTH:90 SRC:PABD.CMD,PCD.CMD,PDD.CMD,PED.CMD,POD.CMD,PFGD.CMD,PKD.CMD
*TTY:=/CHECKSUM/WIDTH:90 SRC:PABB.CMD,PCB.CMD,PDB.CMD,PABDB.CMD,PCDB.CMD,PDDBD.CMD
*TTY:=/CHECKSUM/WIDTH:90 SRC:COBOL.CTL,ALL.CMD,ALLB.CMD,ALLD.CMD,ALLDB.CMD
.IF (ERROR) . !IGNORE ANY ERRORS.
!
!ASSEMBLE SOURCES
!
!ASSEMBLE THE UNIVERSALS FIRST.
.TYPE LISTEM.MAC
.IF (ERROR) .GOTO NOLIS1
!
!HERE IF CREF LISTING WANTED
!
.RUN DEC:MACRO
*COBASM,COBASM/C=COBASM
*FTDEFS,FTDEFS/C=FTDEFS
*INTERM,INTERM/C=INTERM
*LBLPRM,LBLPRM/C=LBLPRM
*COMUNI,COMUNI/C=COMUNI
*P,P/C=P
*CHREQV,CHREQV/C=CHREQV
*TABLES,TABLES/C=TABLES
*OPCTAB,OPCTAB/C=OPCTAB
*COBTST=COBTST
.RUN DEC:LINK
*COBTST/GO
.SAVE COBTST
.IF (ERROR) .GOTO TRUBLE
!
!
!!NOW WE CAN ASSEMBLE THE REST OF THE SOURCES
.CHKPNT CK1B
CK1B::
.ERROR
.SET WATCH VERSION
!SET UP THE DEFAULT LOGICAL NAMES
.ASSIGN DEC: UNV:
.ASSIGN DSK: SRC:
.ASSIGN DSK: C68:
.ASSIGN DSK: C74:
!
!CHANGE THEM IF USER SO DESIRES
.RUN DEC:SETSRC
*LIB:[10,131001]
.ASS LIB: SRC:
.
.IF (ERROR) !IGNORE IT
.RUN DEC:MACRO
*ASCEBC,ASCEBC/C=ASCEBC
*ASCSIX,ASCSIX/C=ASCSIX
*BISGEN,BISGEN/C=BISGEN
*BTREE,BTREE/C=BTREE
*CLEANC,CLEANC/C=CLEANC
*CLEAND,CLEAND/C=CLEAND
*CLEANT,CLEANT/C=CLEANT
*CLRNAM,CLRNAM/C=CLRNAM
*CMNGEN,CMNGEN/C=CMNGEN
*COBCOM,COBCOM/C=COBCOM
*COBOLA,COBOLA/C=COBOLA
*COBOLB,COBOLB/C=COBOLB
*COBOLC,COBOLC/C=COBOLC
*COBOLD,COBOLD/C=COBOLD
*COBOLE,COBOLE/C=COBOLE
*COBOLF,COBOLF/C=COBOLF
*COBOLG,COBOLG/C=COBOLG
*COBOLK,COBOLK/C=COBOLK
*COBOLO,COBOLO/C=COBOLO
.IF (ERROR) .GOTO TRUBLE
!
.CHKPNT CK1C
CK1C::
.ERROR
.SET WATCH VERSION
!SET UP THE DEFAULT LOGICAL NAMES
.ASSIGN DEC: UNV:
.ASSIGN DSK: SRC:
.ASSIGN DSK: C68:
.ASSIGN DSK: C74:
!
!CHANGE THEM IF USER SO DESIRES
.RUN DEC:SETSRC
*LIB:[10,131001]
.ASS LIB: SRC:
.
.IF (ERROR) !IGNORE IT
.RUN DEC:MACRO
*CTREE,CTREE/C=CTREE
*DIAGS,DIAGS/C=DIAGS
*DTREE,DTREE/C=DTREE
*EBCASC,EBCASC/C=EBCASC
*EXPGEN,EXPGEN/C=EXPGEN
*FNDPOP,FNDPOP/C=FNDPOP
*GETASY,GETASY/C=GETASY
*GETCPY,GETCPY/C=GETCPY
*GETERA,GETERA/C=GETERA
*GETGEN,GETGEN/C=GETGEN
*GETITM,GETITM/C=GETITM
*GETTAG,GETTAG/C=GETTAG
*IFGEN,IFGEN/C=IFGEN
*IMPURE,IMPURE/C=IMPURE
*IOGEN,IOGEN/C=IOGEN
*IPCGEN,IPCGEN/C=IPCGEN
*MATGEN,MATGEN/C=MATGEN
*MESGEN,MESGEN/C=MESGEN
*MOVGEN,MOVGEN/C=MOVGEN
*MSCGEN,MSCGEN/C=MSCGEN
*PMATCH,PMATCH/C=PMATCH
*PSCAN,PSCAN/C=PSCAN
.RUN COBTST
*ONESEG
.IF (ERROR) .GOTO MSEG
.RUN DEC:MACRO
*PURE,PURE/C=PURE
.GOTO NEXT
MSEG::
.RUN DEC:MACRO
*PURAB,PURAB/C=PURAB,PURE
*PUREC,PUREC/C=PUREC,PURE
*PURED,PURED/C=PURED,PURE
*PUREE,PUREE/C=PUREE,PURE
*PUREO,PUREO/C=PUREO,PURE
*PURFG,PURFG/C=PURFG,PURE
NEXT::.IF (ERROR) .GOTO TRUBLE
!
.CHKPNT CK1D
CK1D::
.ERROR
.SET WATCH VERSION
!SET UP THE DEFAULT LOGICAL NAMES
.ASSIGN DEC: UNV:
.ASSIGN DSK: SRC:
.ASSIGN DSK: C68:
.ASSIGN DSK: C74:
!
!CHANGE THEM IF USER SO DESIRES
.RUN DEC:SETSRC
*LIB:[10,131001]
.ASS LIB: SRC:
.
.IF (ERROR) !IGNORE IT
.RUN DEC:MACRO
*PUTAS1,PUTAS1/C=PUTAS1
*PUTAS2,PUTAS2/C=PUTAS2
*PUTAS3,PUTAS3/C=PUTAS3
*PUTBIN,PUTBIN/C=PUTBIN
*PUTCPY,PUTCPY/C=PUTCPY
*PUTERA,PUTERA/C=PUTERA
*PUTGEN,PUTGEN/C=PUTGEN
*PUTLST,PUTLST/C=PUTLST
*RPWGEN,RPWGEN/C=RPWGEN
*SQUIRL,SQUIRL/C=SQUIRL
*SRTCRF,SRTCRF/C=SRTCRF
*SRTGEN,SRTGEN/C=SRTGEN
*SRTTAB,SRTTAB/C=SRTTAB
*STINFL,STINFL/C=STINFL
*STRGEN,STRGEN/C=STRGEN
*SUGENS,SUGENS/C=SUGENS
*SYMBOL,SYMBOL/C=SYMBOL
*TRYNAM,TRYNAM/C=TRYNAM
*XFRGEN,XFRGEN/C=XFRGEN
*XPAND,XPAND/C=XPAND
*XPNPPL,XPNPPL/C=XPNPPL
.IF (ERROR) .GOTO TRUBLE
!
!NOW ASSEMBLE THE DEBUG MODULES
!
.RUN COBTST
*DEBUG
.IF (ERROR) .GOTO NODEB
.RUN DEC:MACRO
*HANDAN,HANDAN/C=HANDAN
*TRACER,TRACER/C=TRACER
.IF (ERROR) .GOTO TRUBLE
!
NODEB::
!NOW ASSEMBLE THE DBMS MODULES
!
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO LZT !NOT DBMS
!ASSEMBLE THE UNIVERSALS FIRST
.RUN DEC:MACRO
*CMLSYM,CMLSYM/C=CMLSYM
*GENDCL,GENDCL/C=GENDCL
*DBSDCL,DBSDCL/C=DBSDCL
*STRUNV,STRUNV/C=STRUNV
*STRDCL,STRDCL/C=STRDCL
!
!NOW ASSEMBLE THE REST OF THE MODULES
.RUN DEC:MACRO
*DBDML,DBDML/C=DBDML
*DBGETF,DBGETF/C=DBGETF
*CMLVOK,CMLVOK/C=DMLVOK
*CMLERR,CMLERR/C=DMLERR
*CMLIO,CMLIO/C=DMLIO
.IF (ERROR) .GOTO TRUBLE
!
!NOW MAKE THE .LZT FILES
LZT::
.CHKPNT CK1E
CK1E::
.ERROR
.SET WATCH VERSION
!SET UP THE DEFAULT LOGICAL NAMES
.ASSIGN DEC: UNV:
.ASSIGN DSK: SRC:
.ASSIGN DSK: C68:
.ASSIGN DSK: C74:
!
!CHANGE THEM IF USER SO DESIRES
.RUN DEC:SETSRC
*LIB:[10,131001]
.ASS LIB: SRC:
.
.IF (ERROR) !IGNORE IT
.RUN DEC:CREF
*DSK:COBASM.LZT=COBASM
*DSK:FTDEFS.LZT=FTDEFS
*DSK:INTERM.LZT=INTERM
*DSK:LBLPRM.LZT=LBLPRM
*DSK:COMUNI.LZT=COMUNI
*DSK:P.LZT=P
*DSK:CHREQV.LZT=CHREQV
*DSK:TABLES.LZT=TABLES
*DSK:OPCTAB.LZT=OPCTAB
*DSK:ASCEBC.LZT=ASCEBC
*DSK:ASCSIX.LZT=ASCSIX
*DSK:BISGEN.LZT=BISGEN
*DSK:BTREE.LZT=BTREE
*DSK:CLEANC.LZT=CLEANC
*DSK:CLEAND.LZT=CLEAND
*DSK:CLEANT.LZT=CLEANT
*DSK:CLRNAM.LZT=CLRNAM
*DSK:CMNGEN.LZT=CMNGEN
*DSK:COBCOM.LZT=COBCOM
*DSK:COBOLA.LZT=COBOLA
*DSK:COBOLB.LZT=COBOLB
*DSK:COBOLC.LZT=COBOLC
*DSK:COBOLD.LZT=COBOLD
*DSK:COBOLE.LZT=COBOLE
*DSK:COBOLF.LZT=COBOLF
*DSK:COBOLG.LZT=COBOLG
*DSK:COBOLK.LZT=COBOLK
*DSK:COBOLO.LZT=COBOLO
*DSK:CTREE.LZT=CTREE
*DSK:DIAGS.LZT=DIAGS
*DSK:DTREE.LZT=DTREE
*DSK:EBCASC.LZT=EBCASC
*DSK:EXPGEN.LZT=EXPGEN
*DSK:FNDPOP.LZT=FNDPOP
*DSK:GETASY.LZT=GETASY
*DSK:GETCPY.LZT=GETCPY
*DSK:GETERA.LZT=GETERA
*DSK:GETGEN.LZT=GETGEN
*DSK:GETITM.LZT=GETITM
*DSK:GETTAG.LZT=GETTAG
*DSK:IFGEN.LZT=IFGEN
*DSK:IMPURE.LZT=IMPURE
*DSK:IOGEN.LZT=IOGEN
*DSK:IPCGEN.LZT=IPCGEN
*DSK:MATGEN.LZT=MATGEN
*DSK:MESGEN.LZT=MESGEN
*DSK:MOVGEN.LZT=MOVGEN
*DSK:MSCGEN.LZT=MSCGEN
*DSK:PMATCH.LZT=PMATCH
*DSK:PSCAN.LZT=PSCAN
*DSK:PURE.LZT=PURE
*DSK:PUTAS1.LZT=PUTAS1
*DSK:PUTAS2.LZT=PUTAS2
*DSK:PUTAS3.LZT=PUTAS3
*DSK:PUTBIN.LZT=PUTBIN
*DSK:PUTCPY.LZT=PUTCPY
*DSK:PUTERA.LZT=PUTERA
*DSK:PUTGEN.LZT=PUTGEN
*DSK:PUTLST.LZT=PUTLST
*DSK:RPWGEN.LZT=RPWGEN
*DSK:SQUIRL.LZT=SQUIRL
*DSK:SRTCRF.LZT=SRTCRF
*DSK:SRTGEN.LZT=SRTGEN
*DSK:SRTTAB.LZT=SRTTAB
*DSK:STINFL.LZT=STINFL
*DSK:STRGEN.LZT=STRGEN
*DSK:SUGENS.LZT=SUGENS
*DSK:SYMBOL.LZT=SYMBOL
*DSK:TRYNAM.LZT=TRYNAM
*DSK:XFRGEN.LZT=XFRGEN
*DSK:XPAND.LZT=XPAND
*DSK:XPNPPL.LZT=XPNPPL
.IF (ERROR) .!TROUBLE MAKING .LZT FILES
!
!NOW ASSEMBLE THE DEBUG MODULES
!
.RUN COBTST
*DEBUG
.IF (ERROR) .GOTO NODEB
.RUN DEC:MACRO
*DSK:HANDAN.LZT=HANDAN
*DSK:TRACER.LZT=TRACER
.IF (ERROR) !TROUBLE MAKING .LZT FILES
!
NODEB::
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO DONCRF !NOT DBMS
.RUN DEC:CREF
*DSK:CMLSYM.LZT=CMLSYM
*DSK:GENDCL.LZT=GENDCL
*DSK:DBSDCL.LZT=DBSDCL
*DSK:STRDCL.LZT=STRDCL
*DSK:DBDML.LZT=DBDML
*DSK:DBGETF.LZT=DBGETF
*DSK:CMLVOK.LZT=CMLVOK
*DSK:CMLERR.LZT=CMLERR
*DSK:CMLIO.LZT=CMLIO
.IF (ERROR) .!TROUBLE MAKING .LZT FILES
.GOTO DONCRF
NOLIS1::
!HERE IF CREF LISTINGS NOT WANTED
.ERROR
.SET WATCH VERSION
!SET UP THE DEFAULT LOGICAL NAMES
.ASSIGN DEC: UNV:
.ASSIGN DSK: SRC:
.ASSIGN DSK: C68:
.ASSIGN DSK: C74:
!
!CHANGE THEM IF USER SO DESIRES
.RUN DEC:SETSRC
*LIB:[10,131001]
.ASS LIB: SRC:
.
.IF (ERROR) !IGNORE IT
.RUN DEC:MACRO
*COBASM=COBASM
*FTDEFS=FTDEFS
*INTERM=INTERM
*LBLPRM=LBLPRM
*COMUNI=COMUNI
*P=P
*CHREQV=CHREQV
*TABLES=TABLES
*OPCTAB=OPCTAB
*COBTST=COBTST
.RUN DEC:LINK
*COBTST/GO
.SAVE COBTST
.IF (ERROR) .GOTO TRUBLE
!
!
!NOW WE CAN ASSEMBLE THE REST OF THE MODULES.
.CHKPNT CK1F
CK1F::
.ERROR
.SET WATCH VERSION
!SET UP THE DEFAULT LOGICAL NAMES
.ASSIGN DEC: UNV:
.ASSIGN DSK: SRC:
.ASSIGN DSK: C68:
.ASSIGN DSK: C74:
!
!CHANGE THEM IF USER SO DESIRES
.RUN DEC:SETSRC
*LIB:[10,131001]
.ASS LIB: SRC:
.
.IF (ERROR) !IGNORE IT
.RUN DEC:MACRO
*ASCEBC=ASCEBC
*ASCSIX=ASCSIX
*BISGEN=BISGEN
*BTREE=BTREE
*CLEANC=CLEANC
*CLEAND=CLEAND
*CLEANT=CLEANT
*CLRNAM=CLRNAM
*CMNGEN=CMNGEN
*COBCOM=COBCOM
*COBOLA=COBOLA
*COBOLB=COBOLB
*COBOLC=COBOLC
*COBOLD=COBOLD
*COBOLE=COBOLE
*COBOLF=COBOLF
*COBOLG=COBOLG
*COBOLK=COBOLK
*COBOLO=COBOLO
.IF (ERROR) .GOTO TRUBLE
!
.CHKPNT CK1G
CK1G::
.ERROR
.SET WATCH VERSION
!SET UP THE DEFAULT LOGICAL NAMES
.ASSIGN DEC: UNV:
.ASSIGN DSK: SRC:
.ASSIGN DSK: C68:
.ASSIGN DSK: C74:
!
!CHANGE THEM IF USER SO DESIRES
.RUN DEC:SETSRC
*LIB:[10,131001]
.ASS LIB: SRC:
.
.IF (ERROR) !IGNORE IT
.RUN DEC:MACRO
*CTREE=CTREE
*DIAGS=DIAGS
*DTREE=DTREE
*EBCASC=EBCASC
*EXPGEN=EXPGEN
*FNDPOP=FNDPOP
*GETASY=GETASY
*GETCPY=GETCPY
*GETERA=GETERA
*GETGEN=GETGEN
*GETITM=GETITM
*GETTAG=GETTAG
*IFGEN=IFGEN
*IMPURE=IMPURE
*IOGEN=IOGEN
*IPCGEN=IPCGEN
*MATGEN=MATGEN
*MESGEN=MESGEN
*MOVGEN=MOVGEN
*MSCGEN=MSCGEN
*PMATCH=PMATCH
*PSCAN=PSCAN
.RUN COBTST
*ONESEG
.IF (ERROR) .GOTO NODEB
.RUN DEC:MACRO
*PURE,PURE/C=PURE
.GOTO NEXT
NODEB::
.RUN DEC:MACRO
*PURAB=PURAB,PURE
*PUREC=PUREC,PURE
*PURED=PURED,PURE
*PUREE=PUREE,PURE
*PUREO=PUREO,PURE
*PURFG=PURFG,PURE
NEXT::.IF (ERROR) .GOTO TRUBLE
!
.CHKPNT CK1H
CK1H::
.ERROR
.SET WATCH VERSION
!SET UP THE DEFAULT LOGICAL NAMES
.ASSIGN DEC: UNV:
.ASSIGN DSK: SRC:
.ASSIGN DSK: C68:
.ASSIGN DSK: C74:
!
!CHANGE THEM IF USER SO DESIRES
.RUN DEC:SETSRC
*LIB:[10,131001]
.ASS LIB: SRC:
.
.IF (ERROR) !IGNORE IT
.RUN DEC:MACRO
*PUTAS1=PUTAS1
*PUTAS2=PUTAS2
*PUTAS3=PUTAS3
*PUTBIN=PUTBIN
*PUTCPY=PUTCPY
*PUTERA=PUTERA
*PUTGEN=PUTGEN
*PUTLST=PUTLST
*RPWGEN=RPWGEN
*SQUIRL=SQUIRL
*SRTCRF=SRTCRF
*SRTGEN=SRTGEN
*SRTTAB=SRTTAB
*STINFL=STINFL
*STRGEN=STRGEN
*SUGENS=SUGENS
*SYMBOL=SYMBOL
*TRYNAM=TRYNAM
*XFRGEN=XFRGEN
*XPAND=XPAND
*XPNPPL=XPNPPL
!
!NOW ASSEMBLE THE DEBUG MODULES
!
.RUN COBTST
*DEBUG
.IF (ERROR) .GOTO NODEB
.RUN DEC:MACRO
*HANDAN=HANDAN
*TRACER=TRACER
.IF (ERROR) .GOTO TRUBLE
!
NODEB::
!ASSEMBLE THE DBMS MODULES.
!
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO DONCRF
!
!ASSEMBLE THE UNIVERSALS FIRST.
.RUN DEC:MACRO
*CMLSYM=CMLSYM
*GENDCL=GENDCL
*DBSDCL=DBSDCL
*STRUNV=STRUNV
*STRDCL=STRDCL
!
!NOW ASSEMBLE THE REST OF THE MODULES.
.RUN DEC:MACRO
*DBDML=DBDML
*DBGETF=DBGETF
*CMLVOK=DMLVOK
*CMLERR=DMLERR
*CMLIO=DMLIO
.IF (ERROR) .GOTO TRUBLE
.GOTO DONCRF
DONCRF::
!
.CHKPNT CK1J
CK1J::
.ERROR
.SET WATCH VERSION
!SET UP THE DEFAULT LOGICAL NAMES
.ASSIGN DEC: UNV:
.ASSIGN DSK: SRC:
.ASSIGN DSK: C68:
.ASSIGN DSK: C74:
!
!CHANGE THEM IF USER SO DESIRES
.RUN DEC:SETSRC
*LIB:[10,131001]
.ASS LIB: SRC:
.
.IF (ERROR) !IGNORE IT
!
!SEE WHICH COMPILER TO LOAD (68 OR 74)
!
.RUN COBTST
*ANS68
.IF (ERROR) .GOTO PV20	!COBOL-74
!
PT20::
!SEE WHAT FLAVOUR OF COMPILER TO LOAD
!
.RUN COBTST
*ONESEG
.IF (ERROR) .GOTO PT24	!MULTI-SEG
.RUN COBTST
*DEBUG
.IF (ERROR) .GOTO PT21	!ONESEG, NOT DEBUG
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO PT32	!ONESEG, DEBUG, NOT DBMS
.GOTO PT31		!ONESEG, DEBUG, DBMS
!
PT21::
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO PT34	!ONESEG, NOT DEBUG, NOT DBMS
.GOTO PT33		!ONESEG, NOT DEBUG, DBMS
!
PT24::
.RUN COBTST
*DEBUG
.IF (ERROR) .GOTO PT25	!MULTI-SEG, NOT DEBUG
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO PT36	!MULTI-SEG, DEBUG, NOT DBMS
.GOTO PT35		!MULTI-SEG, DEBUG, DBMS
!
PT25::
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO PT38	!MULTI-SEG, NOT DEBUG, NOT DBMS
.GOTO PT37		!MULTI-SEG, NOT DEBUG, DBMS
!
!
PT31::			!ONESEG, DEBUG, DBMS
!
.RUN DEC:LINK
*COBOL/MAP=
*@ALLDB
.IF (ERROR) .GOTO TRUBLE
.SSAVE COBOL
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PT32::			!ONESEG, DEBUG, NOT DBMS
!
.RUN DEC:LINK
*COBOL/MAP=
*@ALLD
.IF (ERROR) .GOTO TRUBLE
.SSAVE COBOL
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PT33::			!ONESEG, NOT DEBUG, DBMS
!
.RUN DEC:LINK
*COBOL/MAP=
*@ALLB
.IF (ERROR) .GOTO TRUBLE
.SSAVE COBOL
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PT34::			!ONESEG, NOT DEBUG, NOT DBMS
!
.RUN DEC:LINK
*COBOL/MAP=
*@ALL
.IF (ERROR) .GOTO TRUBLE
.SSAVE COBOL
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PT35::			!MULTI-SEG, DEBUG, DBMS
!
.RUN DEC:LINK
*COBOL/MAP=
*@PABDB
.IF (ERROR) .GOTO TRUBLE
.SSAVE COBOL
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLC/MAP=
*@PCDB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLC
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLD/MAP=
*@PDDB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLD
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLE/MAP=
*@PED
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLE
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLO/MAP=
*@POD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLO
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLF/MAP=
*@PFGD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLF
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLK/MAP=
*@PKD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLK
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PT36::			!MULTI-SEG, DEBUG, NOT DBMS
!
.RUN DEC:LINK
*COBOL/MAP=
*@PABD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOL
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLC/MAP=
*@PCD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLC
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLD/MAP=
*@PDD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLD
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLE/MAP=
*@PED
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLE
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLO/MAP=
*@POD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLO
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLF/MAP=
*@PFGD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLF
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLK/MAP=
*@PKD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLK
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PT37::		!MULTI-SEGMENT, NOT DEBUG, DBMS
!
.RUN DEC:LINK
*COBOL/MAP=
*@PABB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOL
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLC/MAP=
*@PCB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLC
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLD/MAP=
*@PDB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLD
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLE/MAP=
*@PE
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLE
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLO/MAP=
*@PO
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLO
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLF/MAP=
*@PFG
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLF
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*COBOLK/MAP=
*@PK
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLK
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PT38::		!MULTI-SEG, NOT DEBUG, NOT DBMS
!
.RUN DEC:LINK
*COBOL/MAP=
*@PAB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOL
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLC/MAP=
*@PC
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLC
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLD/MAP=
*@PD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLD
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLE/MAP=
*@PE
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLE
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLO/MAP=
*@PO
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLO
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLF/MAP=
*@PFG
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLF
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*COBOLK/MAP=
*@PK
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:COBOLK
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
PV20::	!COBOL-74
!SEE WHAT FLAVOUR OF COMPILER TO LOAD
!
.RUN COBTST
*ONESEG
.IF (ERROR) .GOTO PV24	!MULTI-SEG
.RUN COBTST
*DEBUG
.IF (ERROR) .GOTO PV21	!ONESEG, NOT DEBUG
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO PV32	!ONESEG, DEBUG, NOT DBMS
.GOTO PV31		!ONESEG, DEBUG, DBMS
!
PV21::
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO PV34	!ONESEG, NOT DEBUG, NOT DBMS
.GOTO PV33		!ONESEG, NOT DEBUG, DBMS
!
PV24::
.RUN COBTST
*DEBUG
.IF (ERROR) .GOTO PV25	!MULTI-SEG, NOT DEBUG
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO PV36	!MULTI-SEG, DEBUG, NOT DBMS
.GOTO PV35		!MULTI-SEG, DEBUG, DBMS
!
PV25::
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO PV38	!MULTI-SEG, NOT DEBUG, NOT DBMS
.GOTO PV37		!MULTI-SEG, NOT DEBUG, DBMS
!
!
PV31::			!ONESEG, DEBUG, DBMS
!
.RUN DEC:LINK
*CBL74/MAP=
*@ALLDB
.IF (ERROR) .GOTO TRUBLE
.SSAVE CBL74
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PV32::			!ONESEG, DEBUG, NOT DBMS
!
.RUN DEC:LINK
*CBL74/MAP=
*@ALLD
.IF (ERROR) .GOTO TRUBLE
.SSAVE CBL74
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PV33::			!ONESEG, NOT DEBUG, DBMS
!
.RUN DEC:LINK
*CBL74/MAP=
*@ALLB
.IF (ERROR) .GOTO TRUBLE
.SSAVE CBL74
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PV34::			!ONESEG, NOT DEBUG, NOT DBMS
!
.RUN DEC:LINK
*CBL74/MAP=
*@ALL
.IF (ERROR) .GOTO TRUBLE
.SSAVE CBL74
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PV35::			!MULTI-SEG, DEBUG, DBMS
!
.RUN DEC:LINK
*CBL74/MAP=
*@PABDB
.IF (ERROR) .GOTO TRUBLE
.SSAVE CBL74
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74C/MAP=
*@PCDB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74C
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74D/MAP=
*@PDDB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74D
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74E/MAP=
*@PED
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74E
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74O/MAP=
*@POD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74O
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74F/MAP=
*@PFGD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74F
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74K/MAP=
*@PKD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74K
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PV36::			!MULTI-SEG, DEBUG, NOT DBMS
!
.RUN DEC:LINK
*CBL74/MAP=
*@PABD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74C/MAP=
*@PCD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74C
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74D/MAP=
*@PDD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74D
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74E/MAP=
*@PED
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74E
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74O/MAP=
*@POD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74O
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74F/MAP=
*@PFGD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74F
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74K/MAP=
*@PKD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74K
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PV37::		!MULTI-SEGMENT, NOT DEBUG, DBMS
!
.RUN DEC:LINK
*CBL74/MAP=
*@PABB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74C/MAP=
*@PCB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74C
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74D/MAP=
*@PDB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74D
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74E/MAP=
*@PE
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74E
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74O/MAP=
*@PO
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74O
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74F/MAP=
*@PFG
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74F
.IF (ERROR) .GOTO TRUBLE
!
.RUN DEC:LINK
*CBL74K/MAP=
*@PK
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74K
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
!
!
PV38::		!MULTI-SEG, NOT DEBUG, NOT DBMS
!
.RUN DEC:LINK
*CBL74/MAP=
*@PAB
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74C/MAP=
*@PC
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74C
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74D/MAP=
*@PD
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74D
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74E/MAP=
*@PE
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74E
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74O/MAP=
*@PO
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74O
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74F/MAP=
*@PFG
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74F
.IF (ERROR) .GOTO TRUBLE
.RUN DEC:LINK
*CBL74K/MAP=
*@PK
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:CBL74K
.IF (ERROR) .GOTO TRUBLE
.GOTO LODON
LODON::!LOADING DONE
!
.CHKPNT CK1K
CK1K::
.ERROR
.SET WATCH VERSION
!SET UP THE DEFAULT LOGICAL NAMES
.ASSIGN DEC: UNV:
.ASSIGN DSK: SRC:
.ASSIGN DSK: C68:
.ASSIGN DSK: C74:
!
!CHANGE THEM IF USER SO DESIRES
.RUN DEC:SETSRC
*LIB:[10,131001]
.ASS LIB: SRC:
.
.IF (ERROR) !IGNORE IT
!
!GENERATE GLOB LISTING
!WE COULD HAVE ONE GLOB COMMAND FOR EACH CONFIGURATION
!BUT IT IS SIMPLER TO PUT THE OPTIONAL FILES IN ONE PLACE
!
.RUN COBTST
*ONESEG
.IF (NOERROR) .GOTO ONE
.RUN DEC:PIP
*FOO.REL/B=PURAB.REL,PUREC.REL,PURED.REL,PUREE.REL,PURFG.REL,PUREO.REL
.GOTO NEXT
ONE::
.RUN DEC:PIP
*FOO.REL/B=PURE.REL
NEXT::
.RUN COBTST
*DEBUG
.IF (ERROR) .GOTO NEXT
.RUN DEC:PIP
*FOO.REL/B=FOO.REL,HANDAN.REL,TRACER.REL
NEXT::
.RUN COBTST
*DBMS
.IF (ERROR) .GOTO NEXT
.RUN DEC:PIP
!THIS DOES NOT WORK WITH CURRENT PIP, SO DO IT SLOWLY
!*FOO.REL/B=FOO.REL,LIB:SCHIO1.REL,STRHI.REL,DSK:CMLERR.REL,CMLIO.REL,CMLSYM.REL,CMLVOK.REL,DBDML.REL,DBGETF.REL
*FOO1.REL=LIB:SCHIO1.REL
*FOO2.REL=LIB:STRHI.REL
*FOO.REL/B=FOO.REL,FOO1.REL,FOO2.REL,CMLERR.REL,CMLIO.REL,CMLSYM.REL,CMLVOK.REL,DBDML.REL,DBGETF.REL
.DELETE FOO1.REL,FOO2.REL
NEXT::
!
.RUN COBTST
*ANS68
.IF (ERROR) .GOTO V74	!COBOL-74
!
.RUN DEC:GLOB
*CHREQV.REL,COBASM.REL,COMUNI.REL,INTERM.REL,LBLPRM.REL,P.REL,TABLES.REL
*ASCEBC.REL,ASCSIX.REL,IMPURE.REL,FOO.REL,SQUIRL.REL,BTREE.REL
*XPNPPL.REL,XPAND.REL,GETITM.REL,STINFL.REL,CLRNAM.REL
*TRYNAM.REL,PUTGEN.REL,PUTCPY.REL,PUTERA.REL,COBCOM.REL
*PUTLST.REL,COBOLB.REL,COBOLA.REL,CLEANC.REL,CTREE.REL
*FNDPOP.REL,GETTAG.REL,PSCAN.REL,PUTAS1.REL,PUTAS2.REL
*COBOLC.REL,CLEAND.REL,CLEANT.REL,DTREE.REL,COBOLD.REL
*BISGEN.REL,CMNGEN.REL,EXPGEN.REL,GETGEN.REL,IFGEN.REL
*IOGEN.REL,IPCGEN.REL,MATGEN.REL,MESGEN.REL,MOVGEN.REL
*MSCGEN.REL,PUTAS3.REL,RPWGEN.REL,SRTGEN.REL,STRGEN.REL
*SUGENS.REL,XFRGEN.REL,COBOLE.REL,DIAGS.REL,GETASY.REL
*GETCPY.REL,GETERA.REL,PUTBIN.REL,SRTCRF.REL,SRTTAB.REL
*SYMBOL.REL,COBOLG.REL,COBOLF.REL,EBCASC.REL,COBOLK.REL
*OPCTAB.REL,COBOLO.REL,PMATCH.REL
*COBOL.GLB=
!
!SEE WHAT WE GOT:
.RUN DEC:DIRECT
*TTY:=/CHECKSUM/WIDTH:90 COBOL?.EXE,COBOL?.MAP,COBOL.GLB
.IF (ERROR) . !IGNORE ANY ERRORS.
!
.GOTO CLNUP
!
V74::!COBOL-74
.RUN DEC:GLOB
*CHREQV.REL,COBASM.REL,COMUNI.REL,INTERM.REL,LBLPRM.REL,P.REL,TABLES.REL
*ASCEBC.REL,ASCSIX.REL,IMPURE.REL,FOO.REL,SQUIRL.REL,BTREE.REL
*XPNPPL.REL,XPAND.REL,GETITM.REL,STINFL.REL,CLRNAM.REL
*TRYNAM.REL,PUTGEN.REL,PUTCPY.REL,PUTERA.REL,COBCOM.REL
*PUTLST.REL,COBOLB.REL,COBOLA.REL,CLEANC.REL,CTREE.REL
*FNDPOP.REL,GETTAG.REL,PSCAN.REL,PUTAS1.REL,PUTAS2.REL
*COBOLC.REL,CLEAND.REL,CLEANT.REL,DTREE.REL,COBOLD.REL
*BISGEN.REL,CMNGEN.REL,EXPGEN.REL,GETGEN.REL,IFGEN.REL
*IOGEN.REL,IPCGEN.REL,MATGEN.REL,MESGEN.REL,MOVGEN.REL
*MSCGEN.REL,PUTAS3.REL,RPWGEN.REL,SRTGEN.REL,STRGEN.REL
*SUGENS.REL,XFRGEN.REL,COBOLE.REL,DIAGS.REL,GETASY.REL
*GETCPY.REL,GETERA.REL,PUTBIN.REL,SRTCRF.REL,SRTTAB.REL
*SYMBOL.REL,COBOLG.REL,COBOLF.REL,EBCASC.REL,COBOLK.REL
*OPCTAB.REL,COBOLO.REL,PMATCH.REL
*CBL74.GLB=
!
!SEE WHAT WE GOT:
.RUN DEC:DIRECT
*TTY:=/CHECKSUM/WIDTH:90 CBL74?.EXE,CBL74?.MAP,CBL74.GLB
.IF (ERROR) . !IGNORE ANY ERRORS.
.GOTO CLNUP
!
CLNUP::
! CLEAN UP AFTER BUILD
!
.DELETE FOO.REL
.RUN DEC:DIRECT
*TTY:=/CHECKSUM/WIDTH:90 COBASM.UNV,FTDEFS.UNV,INTERM.UNV,LBLPRM.UNV,COMUNI.UNV,P.UNV,CHREQV.UNV,TABLES.UNV
*TTY:=/CHECKSUM/WIDTH:90 DMLSYM.UNV,GENDCL.UNV,DBSDCL.UNV,STRING.UNV,STRDCL.UNV
*TTY:=/CHECKSUM/WIDTH:90 ASCEBC.REL,CHREQV.REL,COBASM.REL,COMUNI.REL,INTERM.REL,LBLPRM.REL,P.REL,TABLES.REL
*TTY:=/CHECKSUM/WIDTH:90 ASCSIX.REL,IMPURE.REL,PURE.REL,SQUIRL.REL,BTREE.REL,XPNPPL.REL,XPAND.REL,GETITM.REL,STINFL.REL,CLRNAM.REL
*TTY:=/CHECKSUM/WIDTH:90 TRYNAM.REL,PUTGEN.REL,PUTCPY.REL,PUTERA.REL,COBCOM.REL,PUTLST.REL,COBOLB.REL,COBOLA.REL,CLEANC.REL,CTREE.REL
*TTY:=/CHECKSUM/WIDTH:90 FNDPOP.REL,GETTAG.REL,PSCAN.REL,PUTAS1.REL,PUTAS2.REL,COBOLC.REL,CLEAND.REL,CLEANT.REL,DTREE.REL,COBOLD.REL
*TTY:=/CHECKSUM/WIDTH:90 BISGEN.REL,CMNGEN.REL,EXPGEN.REL,GETGEN.REL,IFGEN.REL,IOGEN.REL,IPCGEN.REL,MATGEN.REL,MESGEN.REL,MOVGEN.REL
*TTY:=/CHECKSUM/WIDTH:90 MSCGEN.REL,PUTAS3.REL,RPWGEN.REL,SRTGEN.REL,STRGEN.REL,SUGENS.REL,XFRGEN.REL,COBOLE.REL,DIAGS.REL,GETASY.REL
*TTY:=/CHECKSUM/WIDTH:90 GETCPY.REL,GETERA.REL,PUTBIN.REL,SRTCRF.REL,SRTTAB.REL,SYMBOL.REL,COBOLG.REL,COBOLF.REL,EBCASC.REL,COBOLK.REL
*TTY:=/CHECKSUM/WIDTH:90 OPCTAB.REL,COBOLO.REL,PMATCH.REL,HANDAN.REL,TRACER.REL
*TTY:=/CHECKSUM/WIDTH:90 CMLERR.REL,CMLIO.REL,CMLSYM.REL,CMLVOK.REL,DBDML.REL,DBGETF.REL
!
.DELETE CHREQV.REL,COBASM.REL,COMUNI.REL,FTDEFS.REL,INTERM.REL,LBLPRM.REL,P.REL,TABLES.REL,OPCTAB.REL
.DELETE ASCEBC.REL,ASCSIX.REL,IMPURE.REL,PURE.REL,SQUIRL.REL,BTREE.REL
.DELETE XPNPPL.REL,XPAND.REL,GETITM.REL,STINFL.REL,CLRNAM.REL
.DELETE TRYNAM.REL,PUTGEN.REL,PUTCPY.REL,PUTERA.REL,COBCOM.REL
.DELETE PUTLST.REL,COBOLB.REL,COBOLA.REL,CLEANC.REL,CTREE.REL
.DELETE FNDPOP.REL,GETTAG.REL,PSCAN.REL,PUTAS1.REL,PUTAS2.REL
.DELETE COBOLC.REL,CLEAND.REL,CLEANT.REL,DTREE.REL,COBOLD.REL
.DELETE BISGEN.REL,CMNGEN.REL,EXPGEN.REL,GETGEN.REL,IFGEN.REL
.DELETE IOGEN.REL,IPCGEN.REL,MATGEN.REL,MESGEN.REL,MOVGEN.REL
.DELETE MSCGEN.REL,PUTAS3.REL,RPWGEN.REL,SRTGEN.REL,STRGEN.REL
.DELETE SUGENS.REL,XFRGEN.REL,COBOLE.REL,DIAGS.REL,GETASY.REL
.DELETE GETCPY.REL,GETERA.REL,PUTBIN.REL,SRTCRF.REL,SRTTAB.REL
.DELETE SYMBOL.REL,COBOLG.REL,COBOLF.REL,EBCASC.REL,COBOLK.REL
.DELETE COBOLO.REL,PMATCH.REL,HANDAN.REL,TRACER.REL,COBTST.REL
.DELETE GENDCL.REL,DBSDCL.REL,STRUNV.REL,STRDCL.REL
.DELETE CMLERR.REL,CMLIO.REL,CMLSYM.REL,CMLVOK.REL,DBDML.REL,DBGETF.REL
.DELETE PURAB.REL,PUREC.REL,PURED.REL,PUREE.REL,PUREO.REL,PURFG.REL
.IF (ERROR) .!NOT DBMS MOST LIKELY
!
!
!
!TELL OPERATOR HOW WE DID
.PLEASE -- COBOL CREATION SUCCESSFUL
.SUB INP:*=/MODIFY/DEPEND:-1
.GOTO OK
%ERR::
TRUBLE::
.PLEASE -- COBOL CREATION NOT SUCCESSFUL!!!
OK::!END OF COBOL.CTL