Google
 

Trailing-Edge - PDP-10 Archives - ap-c800d-sb - libol.ctm
There are 5 other files named libol.ctm in the archive. Click here to see a list.
!LIBOL.CTL	COBOL-68 & COBOL-74 V12A
!
!USED TO MAKE LIBOL OR C74OTS FROM LIBOL'S SOURCE FILES.
!THIS FILE RUNS ON EITHER TOPS-20 OR TOPS-10 ON ALL SUPPORTED MONITORS
!SUBMIT WITH COMMAND	SUBMIT LIBOL/TIME:30: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:
!
!IF YOU ALREADY HAVE A SORT FROM A PREVIOUS BUILD AND WISH TO INCLUDE 
!IT IN THE OTS WITHOUT HAVING TO RUN SORT.CTL AGAIN
!THEN PUT IT IN DSK WITH THE NAME SRTCBL.REL
!
!FOR COBOL-68 SET ANS68==1 AND ANS74==0 IN COBASM.MAC
!FOR COBOL-74 SET ANS68==0 AND ANS74==1 IN COBASM.MAC
!
!
!TEST FOR WHICH SYSTEM
@GOTO TOPS20	!TOPS20 VERSION
.GOTO TOPS10	!TOPS10 VERSION
TOPS20::
!REQUIRED FILES:
!<FIELD-IMAGE>	MACRO.EXE
!		MAKLIB.EXE
!		LINK.EXE
!		CREF.EXE
!		PA1050.EXE
!		MACSYM.UNV
!		MONSYM.UNV
!		UUOSYM.UNV
!
!<RELEASE 4>	MACREL.REL
!
!<UNSUPPORTED>	GLOB.EXE
!
!<SELF>	LIBOL.CTL	
!	ACCEPT.MAC	ALBSTB.MAC	ALF.MAC		ARGS.MAC
!	CANCEL.MAC	CBLIO.MAC	CDD.MAC		CHREQV.MAC
!	CMP.MAC		CMPX.MAC	COBASM.MAC	COBFUN.MAC
!	COBST.MAC	COMPD.MAC	COMUNI.MAC	COVRLY.MAC
!	DSORT.MAC	DEBSTB.MAC	DIV11.MAC	DPADD.MAC
!	DPDIV.MAC	DPMUL.MAC	DPSUB.MAC	DSPFP.MAC
!	EASTBL.MAC	EDIT.MAC	EDITB.MAC	EXAM.MAC
!	EXPON.MAC	FIX.MAC		FLGDF.MAC	FLOAT.MAC
!	FTDEFS.MAC	GC.MAC		GD.MAC
!	INSPEC.MAC	INTERM.MAC	KEY.MAC		KPROG.MAC	
!	LBLPRM.MAC	LCM20.MAC	LIBREL.MAC	LIBSHR.MAC
!	LILOWS.MAC	LINE.MAC	LSU.MAC		MAGNEG.MAC
!	METIO.MAC	METUNV.MAC	MOVE.MAC	NTBSTB.MAC
!	NUBSTB.MAC	NUM.MAC		NUMEQV.MAC	PC.MAC
!	PD.MAC		PERF.MAC	PNZ.MAC		PUTRES.MAC
!	REMOVL.MAC	RESOLV.MAC	SETRET.MAC	SIZ23.MAC
!	SIZE1.MAC	SPAC.MAC	STRNGL.MAC	SUBSCR.MAC
!	TODAY.MAC	TRACED.MAC	USRDSP.MAC	ZERC.MAC
!
!	TCSINT.UNV	TCSSYM.UNV
!
!TO TEST THE FEATURES TEST SWITCH SETTINGS THE FOLLOWING IS REQUIRED:
!
!			COBTST.MAC
!
!OUTPUT:		LIBOL.LOG
!	-68		LIBOL.REL	LIBO12.EXE	LIBOL.GLB
!	-74		C74LIB.REL	C74O12.EXE	C74OTS.GLB
!
@CHKPNT CK2A
CK2A::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
!MAKE A RECORD OF WHAT IS BEING USED.
@GET SYS:PA1050
@INFO VERSION
@GET SYS:MACRO
@INFO VERSION
@GET SYS:MAKLIB
@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:MACRO.EXE,SYS:MAKLIB.EXE,SYS:LINK.EXE,SYS:CREF.EXE,SYS:GLOB.EXE,SYS:MACSYM.UNV,SYS:MONSYM.UNV,SYS:UUOSYM.UNV,SYS:PA1050.EXE,DSK:MACREL.REL,
@CHECK SEQ
@
!
@VD COBASM.MAC,INTERM.MAC,LBLPRM.MAC,COMUNI.MAC,CHREQV.MAC,NUMEQV.MAC,FTDEFS.MAC,FLGDF.MAC,METUNV.MAC,ACCEPT.MAC,ALBSTB.MAC,ALF.MAC,ARGS.MAC,
@CHECK SEQ
@
@VD CANCEL.MAC,CBLIO.MAC,CDD.MAC,CMP.MAC,CMPX.MAC,COBFUN.MAC,COBST.MAC,COMPD.MAC,COVRLY.MAC,DSORT.MAC,DEBSTB.MAC,DIV11.MAC,
@CHECK SEQ
@
@VD DPADD.MAC,DPDIV.MAC,DPMUL.MAC,DPSUB.MAC,DSPFP.MAC,EASTBL.MAC,EDIT.MAC,EDITB.MAC,EXAM.MAC,EXPON.MAC,FIX.MAC,FLOAT.MAC,
@CHECK SEQ
@
@VD GC.MAC,GD.MAC,INSPEC.MAC,KEY.MAC,KPROG.MAC,LCM20.MAC,LIBREL.MAC,LIBSHR.MAC,LILOWS.MAC,LINE.MAC,LSU.MAC,MAGNEG.MAC,METIO.MAC,MOVE.MAC,
@CHECK SEQ
@
@VD NUM.MAC,NTBSTB.MAC,NUBSTB.MAC,PC.MAC,PD.MAC,PERF.MAC,PNZ.MAC,PUTRES.MAC,REMOVL.MAC,RESOLV.MAC,SETRET.MAC,SIZ23.MAC,SIZE1.MAC,
@CHECK SEQ
@
@VD SPAC.MAC,STRNGL.MAC,SUBSCR.MAC,TODAY.MAC,TRACED.MAC,USRDSP.MAC,ZERC.MAC,TCSINT.UNV,TCSSYM.UNV,
@CHECK SEQ
@
@VD LIBOL.CTL,SRTCBL.REL,
@CHECK SEQ
@
!
!ASSEMBLE SOURCES:
!
!ASSEMBLE THE UNIVERSALS FIRST.
@ERROR %
@TYPE LISTEM.MAC
@IF (ERROR) @GOTO NOLIS1
@ERROR
!
!HERE FOR CREF LISTINGS
!
@MACRO
*COBASM,COBASM/C=COBASM
*FTDEFS,FTDEFS/C=FTDEFS
*INTERM,INTERM/C=INTERM
*LBLPRM,LBLPRM/C=LBLPRM
*COMUNI,COMUNI/C=COMUNI
*CHREQV,CHREQV/C=CHREQV
*NUMEQV,NUMEQV/C=NUMEQV
*FLGDF,FLGDF/C=FLGDF
*METUNV,METUNV/C=METUNV
!GET MACRO AGAIN OR TOO MANY UNIVERSALS MESSAGE
@MACRO
*COBTST=COBTST
!
! LOAD THE FEATURE TEST SWITCH TESTER
!
@LINK
*COBTST/GO
@SAVE COBTST
@IF (ERROR) @GOTO TRUBLE
!
!
!NOW WE CAN ASSEMBLE THE SOURCES.
@CHKPNT CK2B
CK2B::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*ACCEPT,ACCEPT/C=ACCEPT
*ALBSTB,ALBSTB/C=ALBSTB
*ALF,ALF/C=ALF
*ARGS,ARGS/C=ARGS
*CANCEL,CANCEL/C=CANCEL
*CBLIO,CBLIO/C=CBLIO
@IF (ERROR) @GOTO TRUBLE
!
@CHKPNT CK2C
CK2C::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*CDD,CDD/C=CDD
*CMP,CMP/C=CMP
*CMPX,CMPX/C=CMPX
*COBFUN,COBFUN/C=COBFUN
*COBST,COBST/C=COBST
*COMPD,COMPD/C=COMPD
*COVRLY,COVRLY/C=COVRLY
*DSORT,DSORT/C=DSORT
*DEBSTB,DEBSTB/C=DEBSTB
*DIV11,DIV11/C=DIV11
*DPADD,DPADD/C=DPADD
*DPDIV,DPDIV/C=DPDIV
*DPMUL,DPMUL/C=DPMUL
*DPSUB,DPSUB/C=DPSUB
*DSPFP,DSPFP/C=DSPFP
*EASTBL,EASTBL/C=EASTBL
*EDIT,EDIT/C=EDIT
*EDITB,EDITB/C=EDITB
*EXAM,EXAM/C=EXAM
*EXPON,EXPON/C=EXPON
*FIX,FIX/C=FIX
*FLOAT,FLOAT/C=FLOAT
*GC,GC/C=GC
*GD,GD/C=GD
*INSPEC,INSPEC/C=INSPEC
*KEY,KEY/C=KEY
*KPROG,KPROG/C=KPROG
@MACRO !TOO MANY UNIVERSALS OTHERWISE
*LCM20,LCM20/C=LCM20
*LIBREL,LIBREL/C=LIBREL
@RUN COBTST
*ANS68
@IF (ERROR) @GOTO L74	!COBOL-74
@MACRO
*LIBSHR,LIBSHR/C=LIBSHR
@GOTO NEXT
L74::
@MACRO
*C74SHR,LIBSHR/C=LIBSHR
NEXT::
@IF (ERROR) @GOTO TRUBLE
@MACRO
!
!
@CHKPNT CK2D
CK2D::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*LILOWS,LILOWS/C=LILOWS
*LINE,LINE/C=LINE
*LSU,LSU/C=LSU
*MAGNEG,MAGNEG/C=MAGNEG
*METIO,METIO/C=METIO
*MOVE,MOVE/C=MOVE
*NUM,NUM/C=NUM
*NTBSTB,NTBSTB/C=NTBSTB
*NUBSTB,NUBSTB/C=NUBSTB
*PC,PC/C=PC
*PD,PD/C=PD
*PERF,PERF/C=PERF
*PNZ,PNZ/C=PNZ
*PUTRES,PUTRES/C=PUTRES
*REMOVL,REMOVL/C=REMOVL
*RESOLV,RESOLV/C=RESOLV
*SETRET,SETRET/C=SETRET
*SIZ23,SIZ23/C=SIZ23
*SIZE1,SIZE1/C=SIZE1
*SPAC,SPAC/C=SPAC
*STRNGL,STRNGL/C=STRNGL
*SUBSCR,SUBSCR/C=SUBSCR
*TODAY,TODAY/C=TODAY
*TRACED,TRACED/C=TRACED
*USRDSH,USRDSH/C=TTY:,DSK:USRDSP
*SHR==1
=
=
*USRDSL,USRDSL/C=USRDSP
*ZERC,ZERC/C=ZERC
@IF (ERROR) @GOTO TRUBLE
!
!CREF THE SOURCES
@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:CHREQV.LZT=CHREQV
*DSK:NUMEQV.LZT=NUMEQV
*DSK:FLGDF.LZT=FLGDF
*DSK:METUNV.LZT=METUNV
*DSK:ACCEPT.LZT=ACCEPT
*DSK:ALBSTB.LZT=ALBSTB
*DSK:ALF.LZT=ALF
*DSK:ARGS.LZT=ARGS
*DSK:CANCEL.LZT=CANCEL
*DSK:CBLIO.LZT=CBLIO
*DSK:CDD.LZT=CDD
*DSK:CMP.LZT=CMP
*DSK:CMPX.LZT=CMPX
*DSK:COBFUN.LZT=COBFUN
*DSK:COBST.LZT=COBST
*DSK:COMPD.LZT=COMPD
*DSK:COVRLY.LZT=COVRLY
*DSK:DSORT.LZT=DSORT
*DSK:DEBSTB.LZT=DEBSTB
*DSK:DIV11.LZT=DIV11
*DSK:DPADD.LZT=DPADD
*DSK:DPDIV.LZT=DPDIV
*DSK:DPMUL.LZT=DPMUL
*DSK:DPSUB.LZT=DPSUB
*DSK:DSPFP.LZT=DSPFP
*DSK:EASTBL.LZT=EASTBL
*DSK:EDIT.LZT=EDIT
*DSK:EDITB.LZT=EDITB
*DSK:EXAM.LZT=EXAM
*DSK:EXPON.LZT=EXPON
*DSK:FIX.LZT=FIX
*DSK:FLOAT.LZT=FLOAT
*DSK:GC.LZT=GC
*DSK:GD.LZT=GD
*DSK:INSPEC.LZT=INSPEC
*DSK:KEY.LZT=KEY
*DSK:KPROG.LZT=KPROG
*DSK:LCM20.LZT=LCM20
*DSK:LIBREL.LZT=LIBREL
*DSK:LIBSHR.LZT=LIBSHR
*DSK:LILOWS.LZT=LILOWS
*DSK:LINE.LZT=LINE
*DSK:LSU.LZT=LSU
*DSK:MAGNEG.LZT=MAGNEG
*DSK:METIO.LZT=METIO
*DSK:MOVE.LZT=MOVE
*DSK:NUM.LZT=NUM
*DSK:NTBSTB.LZT=NTBSTB
*DSK:NUBSTB.LZT=NUBSTB
*DSK:PC.LZT=PC
*DSK:PD.LZT=PD
*DSK:PERF.LZT=PERF
*DSK:PNZ.LZT=PNZ
*DSK:PUTRES.LZT=PUTRES
*DSK:REMOVL.LZT=REMOVL
*DSK:RESOLV.LZT=RESOLV
*DSK:SETRET.LZT=SETRET
*DSK:SIZ23.LZT=SIZ23
*DSK:SIZE1.LZT=SIZE1
*DSK:SPAC.LZT=SPAC
*DSK:STRNGL.LZT=STRNGL
*DSK:SUBSCR.LZT=SUBSCR
*DSK:TODAY.LZT=TODAY
*DSK:TRACED.LZT=TRACED
*DSK:USRDSH.LZT=USRDSH
*DSK:USRDSL.LZT=USRDSL
*DSK:ZERC.LZT=ZERC
@IF (ERROR) !TROUBLE CREATING .LZT FILES
@GOTO DONCRF
NOLIS1::
!HERE FOR NO CREF LISTINGS
@ERROR
@MACRO
*COBASM=COBASM
*FTDEFS=FTDEFS
*INTERM=INTERM
*LBLPRM=LBLPRM
*COMUNI=COMUNI
*CHREQV=CHREQV
*NUMEQV=NUMEQV
*FLGDF=FLGDF
*METUNV=METUNV
!GET MACRO AGAIN OR TOO MANY UNIVERSALS MESSAGE
@MACRO
*COBTST=COBTST
!
! LOAD THE FEATURE TEST SWITCH TESTER
!
@LINK
*COBTST/GO
@SAVE COBTST
@IF (ERROR) @GOTO TRUBLE
@CHKPNT CK2F
CK2F::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*ACCEPT=ACCEPT
*ALBSTB=ALBSTB
*ALF=ALF
*ARGS=ARGS
*CANCEL=CANCEL
*CBLIO=CBLIO
@IF (ERROR) @GOTO TRUBLE
!
@CHKPNT CK2G
CK2G::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*CDD=CDD
*CMP=CMP
*CMPX=CMPX
*COBFUN=COBFUN
*COBST=COBST
*COMPD=COMPD
*COVRLY=COVRLY
*DSORT=DSORT
*DEBSTB=DEBSTB
*DIV11=DIV11
*DPADD=DPADD
*DPDIV=DPDIV
*DPMUL=DPMUL
*DPSUB=DPSUB
*DSPFP=DSPFP
*EASTBL=EASTBL
*EDIT=EDIT
*EDITB=EDITB
*EXAM=EXAM
*EXPON=EXPON
*FIX=FIX
*FLOAT=FLOAT
*GC=GC
*GD=GD
*INSPEC=INSPEC
*KEY=KEY
*KPROG=KPROG
@MACRO !TOO MANY UNIVERSALS OTHERWISE
*LCM20=LCM20
*LIBREL=LIBREL
@RUN COBTST
*ANS68
@IF (ERROR) @GOTO L74	!COBOL-74
@MACRO
*LIBSHR=LIBSHR
@GOTO NEXT
L74::
@MACRO
*C74SHR=LIBSHR
NEXT::
@IF (ERROR) @GOTO TRUBLE
!
@CHKPNT CK2H
CK2H::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
@MACRO
*LILOWS=LILOWS
*LINE=LINE
*LSU=LSU
*MAGNEG=MAGNEG
*METIO=METIO
*MOVE=MOVE
*NUM=NUM
*NTBSTB=NTBSTB
*NUBSTB=NUBSTB
*PC=PC
*PD=PD
*PERF=PERF
*PNZ=PNZ
*PUTRES=PUTRES
*REMOVL=REMOVL
*RESOLV=RESOLV
*SETRET=SETRET
*SIZ23=SIZ23
*SIZE1=SIZE1
*SPAC=SPAC
*STRNGL=STRNGL
*SUBSCR=SUBSCR
*TODAY=TODAY
*TRACED=TRACED
*USRDSH=TTY:,DSK:USRDSP
*SHR==1
=
=
*USRDSL=USRDSP
*ZERC=ZERC
@IF (ERROR) @GOTO TRUBLE
@GOTO DONCRF
DONCRF::
@CHKPNT CK2J
CK2J::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
!
!CHECKSUM ALL LIBOL REL FILES
!
@VDIR COBST.REL,CBLIO.REL,LIBREL.REL,REMOVL.REL,TRACED.REL,LINE.REL,STRNGL.REL,LSU.REL,
@CHECK SEQ
@
@VDIR ACCEPT.REL,ARGS.REL,PUTRES.REL,CANCEL.REL,GD.REL,GC.REL,PD.REL,PC.REL,FLOAT.REL,
@CHECK SEQ
@
@VDIR FIX.REL,CDD.REL,METIO.REL,MOVE.REL,EXPON.REL,COMPD.REL,CMPX.REL,
@CHECK SEQ
@
@VDIR CMP.REL,SPAC.REL,ZERC.REL,ALF.REL,PNZ.REL,NUM.REL,DSPFP.REL,DIV11.REL,
@CHECK SEQ
@
@VDIR DPDIV.REL,DPADD.REL,DPSUB.REL,DPMUL.REL,MAGNEG.REL,SUBSCR.REL,TODAY.REL,
@CHECK SEQ
@
@VDIR SIZE1.REL,SIZ23.REL,EXAM.REL,INSPEC.REL,EDIT.REL,PERF.REL,COVRLY.REL,
@CHECK SEQ
@
@VDIR KEY.REL,KPROG.REL,DSORT.REL,SETRET.REL,COBFUN.REL,EASTBL.REL,ALBSTB.REL,DEBSTB.REL,
@CHECK SEQ
@
@VDIR EDITB.REL,NUBSTB.REL,NTBSTB.REL,LCM20.REL,USRDSL.REL,USRDSH.REL,
@CHECK SEQ
@
@VDIR COBASM.REL,COMUNI.REL,INTERM.REL,LBLPRM.REL,CHREQV.REL,NUMEQV.REL,FTDEFS.REL,FLGDF.REL,METUNV.REL,RESOLV.REL,
@CHECK SEQ
@
!
!CHECKSUM ALL LIBOL UNIVERSAL FILES
!
@VDIR COBASM.UNV,COMUNI.UNV,INTERM.UNV,LBLPRM.UNV,CHREQV.UNV,NUMEQV.UNV,FTDEFS.UNV,FLGDF.UNV,METUNV.UNV,
@CHECK SEQ
@
!
!SEE IF COBOL-68 OR COBOL-74
!
@RUN COBTST
*ANS68
@IF (ERROR) @GOTO L74	!COBOL-74
!
!CREATE LIBOL.REL
!
@COPY LILOWS.REL LIBOL.REL
@APPEND COBST.REL,CBLIO.REL,LIBREL.REL,REMOVL.REL,TRACED.REL,LINE.REL,STRNGL.REL,LSU.REL LIBOL.REL
@APPEND ACCEPT.REL,ARGS.REL,PUTRES.REL,CANCEL.REL,GD.REL,GC.REL,PD.REL,PC.REL,FLOAT.REL LIBOL.REL
@APPEND FIX.REL,CDD.REL,MOVE.REL,EXPON.REL,COMPD.REL,CMPX.REL LIBOL.REL
@APPEND CMP.REL,SPAC.REL,ZERC.REL,ALF.REL,PNZ.REL,NUM.REL,DSPFP.REL,DIV11.REL LIBOL.REL
@APPEND DPDIV.REL,DPADD.REL,DPSUB.REL,DPMUL.REL,MAGNEG.REL,SUBSCR.REL,TODAY.REL LIBOL.REL
@APPEND SIZE1.REL,SIZ23.REL,EXAM.REL,INSPEC.REL,EDIT.REL,PERF.REL,COVRLY.REL,METIO.REL LIBOL.REL
@APPEND KEY.REL,KPROG.REL,DSORT.REL,SETRET.REL,COBFUN.REL,EASTBL.REL,ALBSTB.REL,DEBSTB.REL LIBOL.REL
@APPEND EDITB.REL,NUBSTB.REL,NTBSTB.REL,LCM20.REL,USRDSL.REL,USRDSH.REL,RESOLV.REL LIBOL.REL
@APPEND MACREL.REL LIBOL.REL
!
!
!SEE IF WE NEED TO INCLUDE REAL SORT
@ERROR %
@VDIR SRTCBL.REL
@IF (ERROR) @GOTO NOSORT
@ERROR
@MAKLIB
*LIBOL.REL=LIBOL.REL/MAST:SORT,SRTCBL.REL/REP:SORT
@IF (ERROR) @GOTO TRUBLE
!
NOSORT::
@ERROR
!
!INDEX LIBOL.REL
!
@MAKLIB
*LIBOL.REL=LIBOL.REL/INDEX
@IF (ERROR) @GOTO TRUBLE
!
!
!CREATE LIBO12.EXE
!
@LINK
*LIBOL.MAP/MAP=/NOLOCAL LIBSHR,DSK:MACREL/SEG:HIGH,LIBOL/SEARCH,/SYMSEG:HIGH/GO
@IF (ERROR) @GOTO TRUBLE
@INFO MEM
@EXAMINE 600000
@IF (ERROR) @GOTO TRUBLE !WRONG VERSION OF PA1050 USED
!
!NOW SAVE IT. NOTE WE MUST GET RID OF PAGE 400 (A LINK BUG)
!BUT SAVE PAGE 0 AS IT MAKES IT EASIER TO PATCH
!
@SAVE DSK:LIBO12 0 1,600 675
@IF (ERROR) @GOTO TRUBLE
!
@GLOB
@IF (ERROR) @GOTO NEXT !GLOB IS NOT SUPPORTED
*LIBSHR,LIBOL
*LIBOL.GLB=
NEXT::
!
!SEE WHAT WE GOT:
@VD DSK:LIBO*.*,LIBSHR.REL,
@CHECK SEQ
@
@IF (ERROR) @ !IGNORE ANY ERRORS.
!
@GOTO DONE
L74::	!COBOL-74 BUILD
!CREATE C74LIB.REL
!
@COPY LILOWS.REL C74LIB.REL
@APPEND COBST.REL,CBLIO.REL,LIBREL.REL,REMOVL.REL,TRACED.REL,LINE.REL,STRNGL.REL,LSU.REL C74LIB.REL
@APPEND ACCEPT.REL,ARGS.REL,PUTRES.REL,CANCEL.REL,GD.REL,GC.REL,PD.REL,PC.REL,FLOAT.REL C74LIB.REL
@APPEND FIX.REL,CDD.REL,MOVE.REL,EXPON.REL,COMPD.REL,CMPX.REL C74LIB.REL
@APPEND CMP.REL,SPAC.REL,ZERC.REL,ALF.REL,PNZ.REL,NUM.REL,DSPFP.REL,DIV11.REL C74LIB.REL
@APPEND DPDIV.REL,DPADD.REL,DPSUB.REL,DPMUL.REL,MAGNEG.REL,SUBSCR.REL,TODAY.REL C74LIB.REL
@APPEND SIZE1.REL,SIZ23.REL,EXAM.REL,INSPEC.REL,EDIT.REL,PERF.REL,COVRLY.REL,METIO.REL C74LIB.REL
@APPEND KEY.REL,KPROG.REL,DSORT.REL,SETRET.REL,COBFUN.REL,EASTBL.REL,ALBSTB.REL,DEBSTB.REL C74LIB.REL
@APPEND EDITB.REL,NUBSTB.REL,NTBSTB.REL,LCM20.REL,USRDSL.REL,USRDSH.REL,RESOLV.REL C74LIB.REL
@APPEND MACREL.REL C74LIB.REL
IF (ERROR) @GOTO TRUBLE
!
!SEE IF WE NEED TO INCLUDE REAL SORT
@ERROR %
@VDIR SRTCBL.REL
@IF (ERROR) @GOTO NOSORT
@ERROR
@MAKLIB
*C74LIB.REL=C74LIB.REL/MAST:SORT,SRTCBL.REL/REP:SORT
@IF (ERROR) @GOTO TRUBLE
!
NOSORT::
@ERROR
!
!INDEX C74LIB.REL
!
@MAKLIB
*C74LIB.REL=C74LIB.REL/INDEX
@IF (ERROR) @GOTO TRUBLE!
!
!CREATE C74O12.EXE
!
@LINK
*C74OTS.MAP/MAP=/NOLOCAL C74SHR,DSK:MACREL/SEG:HIGH,C74LIB/SEARCH,/SYMSEG:HIGH/GO
@IF (ERROR) @GOTO TRUBLE
@INFO MEM
@EXAMINE 600000
@IF (ERROR) @GOTO TRUBLE !WRONG VERSION OF PA1050 USED
!
!NOW SAVE IT. NOTE WE MUST GET RID OF PAGE 400 (A LINK BUG)
!BUT SAVE PAGE 0 AS IT MAKES IT EASIER TO PATCH
!
!@SAVE DSK:C74O12 0 1,532 677
@SAVE DSK:C74O12 0 1,600 675
@IF (ERROR) @GOTO TRUBLE
!
@GLOB
@IF (ERROR) @GOTO NEXT !GLOB IS NOT SUPPORTED
*C74SHR,C74LIB
*C74OTS.GLB=
!
!SEE WHAT WE GOT:
@VD DSK:C74*.*,
@CHECK SEQ
@
@IF (ERROR) @ !IGNORE ANY ERRORS.
@GOTO DONE
DONE::	!ALL DONE
@CHKPNT CK2K
CK2K::
@ERROR
@TAKE COBOL.CMD
@IF (ERROR) !IGNORE IT
!
!
!DELETE UNNEEDED FILES
!
@DELETE CHREQV.REL,COBASM.REL,COMUNI.REL,FLGDF.REL,FTDEFS.REL,INTERM.REL,LBLPRM.REL,NUMEQV.REL,METUNV.REL
@DELETE COBST.REL,CBLIO.REL,LIBREL.REL,REMOVL.REL,TRACED.REL,LINE.REL,STRNGL.REL,LSU.REL,LILOWS.REL
@DELETE ACCEPT.REL,ARGS.REL,PUTRES.REL,CANCEL.REL,GD.REL,GC.REL,PD.REL,PC.REL,FLOAT.REL
@DELETE FIX.REL,CDD.REL,MOVE.REL,EXPON.REL,COMPD.REL,CMPX.REL
@DELETE CMP.REL,SPAC.REL,ZERC.REL,ALF.REL,PNZ.REL,NUM.REL,DSPFP.REL,DIV11.REL
@DELETE DPDIV.REL,DPADD.REL,DPSUB.REL,DPMUL.REL,MAGNEG.REL,SUBSCR.REL,TODAY.REL
@DELETE SIZE1.REL,SIZ23.REL,EXAM.REL,INSPEC.REL,EDIT.REL,PERF.REL,COVRLY.REL,METIO.REL
@DELETE KEY.REL,KPROG.REL,DSORT.REL,SETRET.REL,COBFUN.REL,EASTBL.REL,ALBSTB.REL,DEBSTB.REL
@DELETE EDITB.REL,NUBSTB.REL,NTBSTB.REL,LCM20.REL,USRDSL.REL,USRDSH.REL,RESOLV.REL
@IF (ERROR)	!ERRORS DELETING LIBOL FILES.
!
!TELL THE OPERATOR HOW WE DID.
!
@PLEASE -- LIBOL CREATION SUCCESSFUL
@EXP
@MODIFY BATCH */DEPEND:-1
@GOTO OK
%ERR::
TRUBLE:: @PLEASE -- LIBOL CREATION UNSUCCESSFUL!!!!!!!
@GOTO OK
TOPS10::
!
!REQUIRED FILES:
!DEC:		(LATEST RELEASED VERSIONS)
!		PIP.EXE
!		MACRO.EXE
!		MAKLIB.EXE
!		DIRECT.EXE
!		CREF.EXE
!		GLOB.EXE
!		LINK.EXE+LNK???.EXE
!		UUOSYM.UNV
!		MACTEN.UNV
!
![SELF]	LIBOL.CTL	COBASM.MAC
!
!SRC:	ACCEPT.MAC	ALBSTB.MAC	ALF.MAC		ARGS.MAC
!	CANCEL.MAC	CBLIO.MAC	CDD.MAC		CHREQV.MAC
!	CMP.MAC		CMPX.MAC	COBFUN.MAC
!	COBST.MAC	COMPD.MAC	COMUNI.MAC	COVRLY.MAC
!	DSORT.MAC	DEBSTB.MAC	DIV11.MAC	DPADD.MAC
!	DPDIV.MAC	DPMUL.MAC	DPSUB.MAC	DSPFP.MAC
!	EASTBL.MAC	EDIT.MAC	EDITB.MAC	EXAM.MAC
!	EXPON.MAC	FIX.MAC		FLGDF.MAC	FLOAT.MAC
!	FTDEFS.MAC	GC.MAC		GD.MAC
!	INSPEC.MAC	INTERM.MAC	KEY.MAC		KPROG.MAC	
!	LBLPRM.MAC	LCM10.MAC	LCMIPC.MAC
!	LIBREL.MAC	LIBSHR.MAC	LILOWS.MAC	LINE.MAC
!	LSU.MAC		MAGNEG.MAC	METIO.MAC	METUNV.MAC
!	MOVE.MAC	NTBSTB.MAC
!	NUBSTB.MAC	NUM.MAC		NUMEQV.MAC	PC.MAC
!	PD.MAC		PERF.MAC	PNZ.MAC		PUTRES.MAC
!	REMOVL.MAC	RESOLV.MAC	SETRET.MAC	SIZ23.MAC
!	SIZE1.MAC	SPAC.MAC	STRNGL.MAC	SUBSCR.MAC
!	TODAY.MAC	TRACED.MAC	USRDSP.MAC	ZERC.MAC!
!
!TO TEST THE FEATURES TEST SWITCH SETTINGS THE FOLLOWING IS REQUIRED:
!
!			COBTST.MAC
!
!OUTPUT:		LIBOL.LOG
!	-68		LIBOL.REL	LIBO12.EXE	LIBOL.GLB
!	-74		C74LIB.REL	C74O12.EXE	C74OTS.GLB
!
!MAKE A RECORD OF WHAT IS BEING USED.
.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,DIRECT.EXE,COMPIL.EXE,CREF.EXE,GLOB.EXE,MAKLIB.EXE,UUOSYM.UNV,MACTEN.UNV
.IF (ERROR) . !IGNORE ANY ERRORS.
.RUN DEC:DIRECT
*TTY:=/CHECKSUM/WIDTH:90 DSK:COBASM.MAC,SRC:INTERM.MAC,LBLPRM.MAC,COMUNI.MAC,CHREQV.MAC,NUMEQV.MAC,FTDEFS.MAC,FLGDF.MAC,METUNV.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:LILOWS.MAC,COBST.MAC,CBLIO.MAC,LIBREL.MAC,REMOVL.MAC,TRACED.MAC,LINE.MAC,STRNGL.MAC,LSU.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:ACCEPT.MAC,ARGS.MAC,PUTRES.MAC,CANCEL.MAC,GD.MAC,GC.MAC,PD.MAC,PC.MAC,FLOAT.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:FIX.MAC,CDD.MAC,MOVE.MAC,EXPON.MAC,COMPD.MAC,CMPX.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:CMP.MAC,SPAC.MAC,ZERC.MAC,ALF.MAC,PNZ.MAC,NUM.MAC,DSPFP.MAC,DIV11.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:DPDIV.MAC,DPADD.MAC,DPSUB.MAC,DPMUL.MAC,MAGNEG.MAC,SUBSCR.MAC,TODAY.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:SIZE1.MAC,SIZ23.MAC,EXAM.MAC,INSPEC.MAC,EDIT.MAC,PERF.MAC,COVRLY.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:KEY.MAC,KPROG.MAC,DSORT.MAC,SETRET.MAC,COBFUN.MAC,EASTBL.MAC,ALBSTB.MAC,DEBSTB.MAC
*TTY:=/CHECKSUM/WIDTH:90 SRC:EDITB.MAC,NUBSTB.MAC,NTBSTB.MAC,LCM10.MAC,LCMIPC.MAC,METIO.MAC,USRDSP.MAC,RESOLV.MAC
*TTY:=/CHECKSUM/WIDTH:90 LIBOL.CTL,SRTCBL.REL
.IF (ERROR) . !IGNORE ANY ERRORS.
!ASSEMBLE SOURCES:
!
!ASSEMBLE THE UNIVERSALS FIRST.
.TYPE LISTEM.MAC
.IF (ERROR) .GOTO NOLIS1
!
!HERE FOR CREF LISTINGS
!
.RUN DEC:MACRO
*COBASM,COBASM/C=COBASM
*FTDEFS,FTDEFS/C=FTDEFS
*INTERM,INTERM/C=INTERM
*LBLPRM,LBLPRM/C=LBLPRM
*COMUNI,COMUNI/C=COMUNI
*CHREQV,CHREQV/C=CHREQV
*NUMEQV,NUMEQV/C=NUMEQV
*FLGDF,FLGDF/C=FLGDF
*METUNV,METUNV/C=METUNV
!GET MACRO AGAIN OR TOO MANY UNIVERSALS MESSAGE
.RUN DEC:MACRO
*COBTST=COBTST
!
! LOAD THE FEATURE TEST SWITCH TESTER
!
.RUN DEC:LINK
*COBTST/GO
.SAVE COBTST
.IF (ERROR) .GOTO TRUBLE
!
!
!NOW WE CAN ASSEMBLE 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
*ACCEPT,ACCEPT/C=ACCEPT
*ALBSTB,ALBSTB/C=ALBSTB
*ALF,ALF/C=ALF
*ARGS,ARGS/C=ARGS
*CANCEL,CANCEL/C=CANCEL
*CBLIO,CBLIO/C=CBLIO
.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
*CDD,CDD/C=CDD
*CMP,CMP/C=CMP
*CMPX,CMPX/C=CMPX
*COBFUN,COBFUN/C=COBFUN
*COBST,COBST/C=COBST
*COMPD,COMPD/C=COMPD
*COVRLY,COVRLY/C=COVRLY
*DSORT,DSORT/C=DSORT
*DEBSTB,DEBSTB/C=DEBSTB
*DIV11,DIV11/C=DIV11
*DPADD,DPADD/C=DPADD
*DPDIV,DPDIV/C=DPDIV
*DPMUL,DPMUL/C=DPMUL
*DPSUB,DPSUB/C=DPSUB
*DSPFP,DSPFP/C=DSPFP
*EASTBL,EASTBL/C=EASTBL
*EDIT,EDIT/C=EDIT
*EDITB,EDITB/C=EDITB
*EXAM,EXAM/C=EXAM
*EXPON,EXPON/C=EXPON
*FIX,FIX/C=FIX
*FLOAT,FLOAT/C=FLOAT
*GC,GC/C=GC
*GD,GD/C=GD
*INSPEC,INSPEC/C=INSPEC
*KEY,KEY/C=KEY
*KPROG,KPROG/C=KPROG
.RUN DEC:MACRO !TOO MANY UNIVERSALS OTHERWISE
*LCM10,LCM10/C=LCM10
*LCMIPC,LCMIPC/C=LCMIPC
*LIBREL,LIBREL/C=LIBREL
.RUN COBTST
*ANS68
.IF (ERROR) .GOTO L74	!COBOL-74
.RUN DEC:MACRO
*LIBSHR,LIBSHR/C=LIBSHR
.GOTO NEXT
L74::
.RUN DEC:MACRO
*C74SHR,LIBSHR/C=LIBSHR
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
*LILOWS,LILOWS/C=LILOWS
*LINE,LINE/C=LINE
*LSU,LSU/C=LSU
*MAGNEG,MAGNEG/C=MAGNEG
*METIO,METIO/C=METIO
*MOVE,MOVE/C=MOVE
*NUM,NUM/C=NUM
*NTBSTB,NTBSTB/C=NTBSTB
*NUBSTB,NUBSTB/C=NUBSTB
*PC,PC/C=PC
*PERF,PERF/C=PERF
*PNZ,PNZ/C=PNZ
*PUTRES,PUTRES/C=PUTRES
*REMOVL,REMOVL/C=REMOVL
*RESOLV,RESOLV/C=RESOLV
*SETRET,SETRET/C=SETRET
*SIZ23,SIZ23/C=SIZ23
*SIZE1,SIZE1/C=SIZE1
*SPAC,SPAC/C=SPAC
*STRNGL,STRNGL/C=STRNGL
*SUBSCR,SUBSCR/C=SUBSCR
*TODAY,TODAY/C=TODAY
*TRACED,TRACED/C=TRACED
*USRDSH,USRDSH/C=TTY:,DSK:USRDSP
*SHR==1
=
=
*USRDSL,USRDSL/C=USRDSP
*ZERC,ZERC/C=ZERC
.IF (ERROR) .GOTO TRUBLE
!
!CREF THE SOURCES
.CHKPNT CK1E
CK1E::
.SET WATCH VERSION
.RUN DEC:CREF
*DSK:COBASM.LZT=COBASM
*DSK:FTDEFS.LZT=FTDEFS
*DSK:INTERM.LZT=INTERM
*DSK:LBLPRM.LZT=LBLPRM
*DSK:COMUNI.LZT=COMUNI
*DSK:CHREQV.LZT=CHREQV
*DSK:NUMEQV.LZT=NUMEQV
*DSK:FLGDF.LZT=FLGDF
*DSK:METUNV.LZT=METUNV
*DSK:ACCEPT.LZT=ACCEPT
*DSK:ALBSTB.LZT=ALBSTB
*DSK:ALF.LZT=ALF
*DSK:ARGS.LZT=ARGS
*DSK:CANCEL.LZT=CANCEL
*DSK:CBLIO.LZT=CBLIO
*DSK:CDD.LZT=CDD
*DSK:CMP.LZT=CMP
*DSK:CMPX.LZT=CMPX
*DSK:COBFUN.LZT=COBFUN
*DSK:COBST.LZT=COBST
*DSK:COMPD.LZT=COMPD
*DSK:COVRLY.LZT=COVRLY
*DSK:DSORT.LZT=DSORT
*DSK:DEBSTB.LZT=DEBSTB
*DSK:DIV11.LZT=DIV11
*DSK:DPADD.LZT=DPADD
*DSK:DPDIV.LZT=DPDIV
*DSK:DPMUL.LZT=DPMUL
*DSK:DPSUB.LZT=DPSUB
*DSK:DSPFP.LZT=DSPFP
*DSK:EASTBL.LZT=EASTBL
*DSK:EDIT.LZT=EDIT
*DSK:EDITB.LZT=EDITB
*DSK:EXAM.LZT=EXAM
*DSK:EXPON.LZT=EXPON
*DSK:FIX.LZT=FIX
*DSK:FLOAT.LZT=FLOAT
*DSK:GC.LZT=GC
*DSK:GD.LZT=GD
*DSK:INSPEC.LZT=INSPEC
*DSK:KEY.LZT=KEY
*DSK:KPROG.LZT=KPROG
*DSK:LCM10.LZT=LCM10
*DSK:LCMIPC.LZT=LCMIPC
*DSK:LIBREL.LZT=LIBREL
*DSK:LIBSHR.LZT=LIBSHR
*DSK:LILOWS.LZT=LILOWS
*DSK:LINE.LZT=LINE
*DSK:LSU.LZT=LSU
*DSK:MAGNEG.LZT=MAGNEG
*DSK:METIO.LZT=METIO
*DSK:MOVE.LZT=MOVE
*DSK:NUM.LZT=NUM
*DSK:NTBSTB.LZT=NTBSTB
*DSK:NUBSTB.LZT=NUBSTB
*DSK:PC.LZT=PC
*DSK:PD.LZT=PD
*DSK:PERF.LZT=PERF
*DSK:PNZ.LZT=PNZ
*DSK:PUTRES.LZT=PUTRES
*DSK:REMOVL.LZT=REMOVL
*DSK:RESOLV.LZT=RESOLV
*DSK:SETRET.LZT=SETRET
*DSK:SIZ23.LZT=SIZ23
*DSK:SIZE1.LZT=SIZE1
*DSK:SPAC.LZT=SPAC
*DSK:STRNGL.LZT=STRNGL
*DSK:SUBSCR.LZT=SUBSCR
*DSK:TODAY=TODAY
*DSK:TRACED.LZT=TRACED
*DSK:USRDSH.LZT=USRDSH
*DSK:USRDSL.LZT=USRDSL
*DSK:ZERC.LZT=ZERC
.IF (ERROR) .!TROUBLE CREATING .LZT FILES
.GOTO DONCRF
NOLIS1::
!HERE FOR NO CREF LISTINGS
.RUN DEC:MACRO
*COBASM=COBASM
*FTDEFS=FTDEFS
*INTERM=INTERM
*LBLPRM=LBLPRM
*COMUNI=COMUNI
*CHREQV=CHREQV
*NUMEQV=NUMEQV
*FLGDF=FLGDF
*METUNV=METUNV
!GET MACRO AGAIN OR TOO MANY UNIVERSALS MESSAGE
.RUN DEC:MACRO
*COBTST=COBTST
!
! LOAD THE FEATURE TEST SWITCH TESTER
!
.RUN DEC:LINK
*COBTST/GO
.SAVE COBTST
.IF (ERROR) .GOTO TRUBLE
.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
*ACCEPT=ACCEPT
*ALBSTB=ALBSTB
*ALF=ALF
*ARGS=ARGS
*CANCEL=CANCEL
*CBLIO=CBLIO
.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
*CDD=CDD
*CMP=CMP
*CMPX=CMPX
*COBFUN=COBFUN
*COBST=COBST
*COMPD=COMPD
*COVRLY=COVRLY
*DSORT=DSORT
*DEBSTB=DEBSTB
*DIV11=DIV11
*DPADD=DPADD
*DPDIV=DPDIV
*DPMUL=DPMUL
*DPSUB=DPSUB
*DSPFP=DSPFP
*EASTBL=EASTBL
*EDIT=EDIT
*EDITB=EDITB
*EXAM=EXAM
*EXPON=EXPON
*FIX=FIX
*FLOAT=FLOAT
*GC=GC
*GD=GD
*INSPEC=INSPEC
*KEY=KEY
*KPROG=KPROG
.RUN DEC:MACRO !TOO MANY UNIVERSALS OTHERWISE
*LCM10=LCM10
*LCMIPC=LCMIPC
*LIBREL=LIBREL
.RUN COBTST
*ANS68
.IF (ERROR) .GOTO L74	!COBOL-74
.RUN DEC:MACRO
*LIBSHR,LIBSHR/C=LIBSHR
.GOTO NEXT
L74::
.RUN DEC:MACRO
*C74SHR,LIBSHR/C=LIBSHR
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
*LILOWS=LILOWS
*LINE=LINE
*LSU=LSU
*MAGNEG=MAGNEG
*METIO=METIO
*MOVE=MOVE
*NUM=NUM
*NTBSTB=NTBSTB
*NUBSTB=NUBSTB
*PC=PC
*PD=PD
*PERF=PERF
*PNZ=PNZ
*PUTRES=PUTRES
*REMOVL=REMOVL
*RESOLV=RESOLV
*SETRET=SETRET
*SIZ23=SIZ23
*SIZE1=SIZE1
*SPAC=SPAC
*STRNGL=STRNGL
*SUBSCR=SUBSCR
*TODAY=TODAY
*TRACED=TRACED
*USRDSH=TTY:,DSK:USRDSP
*SHR==1
=
=
*USRDSL=USRDSP
*ZERC=ZERC
.IF (ERROR) .GOTO TRUBLE
.GOTO DONCRF
DONCRF::
.CHKPNT CK1J
CK1J::
.ERROR
.SET WATCH VERSION
!
!SEE IF COBOL-68 OR COBOL-74
!
.RUN COBTST
*ANS68
.IF (ERROR) .GOTO L74	!COBOL-74
!
!CREATE LIBOL.REL
!
.RUN DEC:PIP
*LIBOL.REL/B=LILOWS.REL,COBST.REL,CBLIO.REL,LIBREL.REL,REMOVL.REL,TRACED.REL,LINE.REL,STRNGL.REL,LSU.REL
*LIBOL.REL/B=LIBOL.REL,ACCEPT.REL,ARGS.REL,PUTRES.REL,CANCEL.REL,GD.REL,GC.REL,PD.REL,PC.REL,FLOAT.REL
*LIBOL.REL/B=LIBOL.REL,FIX.REL,CDD.REL,MOVE.REL,EXPON.REL,COMPD.REL,CMPX.REL
*LIBOL.REL/B=LIBOL.REL,CMP.REL,SPAC.REL,ZERC.REL,ALF.REL,PNZ.REL,NUM.REL,DSPFP.REL,DIV11.REL
*LIBOL.REL/B=LIBOL.REL,DPDIV.REL,DPADD.REL,DPSUB.REL,DPMUL.REL,MAGNEG.REL,SUBSCR.REL,TODAY.REL
*LIBOL.REL/B=LIBOL.REL,SIZE1.REL,SIZ23.REL,EXAM.REL,INSPEC.REL,EDIT.REL,PERF.REL,COVRLY.REL,METIO.REL
*LIBOL.REL/B=LIBOL.REL,KEY.REL,KPROG.REL,DSORT.REL,SETRET.REL,COBFUN.REL,EASTBL.REL,ALBSTB.REL,DEBSTB.REL
*LIBOL.REL/B=LIBOL.REL,EDITB.REL,NUBSTB.REL,NTBSTB.REL,LCM10.REL,LCMIPC.REL,USRDSL.REL,USRDSH.REL,RESOLV.REL
.IF (ERROR) .GOTO TRUBLE
!
!SEE IF WE NEED TO INCLUDE REAL SORT
.ERROR %
.DIR SRTCBL.REL
.IF (ERROR) .GOTO NOSORT
.ERROR
.RUN DEC:MAKLIB
*LIBOL.REL=LIBOL.REL/MAST:SORT,SRTCBL.REL/REP:SORT
.IF (ERROR) .GOTO TRUBLE
!
NOSORT::
.ERROR
!
!INDEX LIBOL.REL
!
.RUN DEC:MAKLIB
*LIBOL.REL=LIBOL.REL/INDEX
.IF (ERROR) .GOTO TRUBLE
!
!
!CREATE LIBO12.EXE
!
.RUN DEC:LINK
*LIBO12.MAP/MAP=LIBSHR,LIBOL/SEARCH/GO
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:LIBO12
.IF (ERROR) .GOTO TRUBLE
!
!CREATE LIBOL.GLB
!
.RUN DEC:GLOB
*LIBOL.GLB=LIBSHR.REL,LIBOL.REL
.IF (ERROR) .GOTO TRUBLE
!SEE WHAT WE GOT:
.RUN DEC:DIRECT
*TTY:=/CHECKSUM/WIDTH:90 LIB???.*,*.UNV
.IF (ERROR) . !IGNORE ANY ERRORS.
!
.GOTO DONE
L74::	!COBOL-74 BUILD
!CREATE C74LIB.REL & C74OTS
!
.RUN DEC:PIP
*C74LIB.REL/B=LILOWS.REL,COBST.REL,CBLIO.REL,LIBREL.REL,REMOVL.REL,TRACED.REL,LINE.REL,STRNGL.REL,LSU.REL
*C74LIB.REL/B=C74LIB.REL,ACCEPT.REL,ARGS.REL,PUTRES.REL,CANCEL.REL,GD.REL,GC.REL,PD.REL,PC.REL,FLOAT.REL
*C74LIB.REL/B=C74LIB.REL,FIX.REL,CDD.REL,MOVE.REL,EXPON.REL,COMPD.REL,CMPX.REL
*C74LIB.REL/B=C74LIB.REL,CMP.REL,SPAC.REL,ZERC.REL,ALF.REL,PNZ.REL,NUM.REL,DSPFP.REL,DIV11.REL
*C74LIB.REL/B=C74LIB.REL,DPDIV.REL,DPADD.REL,DPSUB.REL,DPMUL.REL,MAGNEG.REL,SUBSCR.REL,TODAY.REL
*C74LIB.REL/B=C74LIB.REL,SIZE1.REL,SIZ23.REL,EXAM.REL,INSPEC.REL,EDIT.REL,PERF.REL,COVRLY.REL,METIO.REL
*C74LIB.REL/B=C74LIB.REL,KEY.REL,KPROG.REL,DSORT.REL,SETRET.REL,COBFUN.REL,EASTBL.REL,ALBSTB.REL,DEBSTB.REL
*C74LIB.REL/B=C74LIB.REL,EDITB.REL,NUBSTB.REL,NTBSTB.REL,LCM10.REL,LCMIPC.REL,USRDSL.REL,USRDSH.REL,RESOLV.REL
.IF (ERROR) .GOTO TRUBLE
!
!SEE IF WE NEED TO INCLUDE REAL SORT
.ERROR %
.DIR SRTCBL.REL
.IF (ERROR) .GOTO NOSORT
.ERROR
.RUN DEC:MAKLIB
*C74LIB.REL=C74LIB.REL/MAST:SORT,SRTCBL.REL/REP:SORT
.IF (ERROR) .GOTO TRUBLE
!
NOSORT::
.ERROR
!
!INDEX C74LIB.REL
!
.RUN DEC:MAKLIB
*C74LIB.REL=C74LIB.REL/INDEX
.IF (ERROR) .GOTO TRUBLE
!
!
!CREATE C74O12.EXE
!
.RUN DEC:LINK
*C74OTS.MAP/MAP=C74SHR,C74LIB/SEARCH/GO
.IF (ERROR) .GOTO TRUBLE
.SSAVE DSK:C74O12
.IF (ERROR) .GOTO TRUBLE
!
!CREATE C74OTS.GLB
!
.RUN DEC:GLOB
*C74OTS.GLB=C74SHR.REL,C74LIB.REL
.IF (ERROR) .GOTO TRUBLE
!SEE WHAT WE GOT:
.RUN DEC:DIRECT
*TTY:=/CHECKSUM/WIDTH:90 C74???.*,*.UNV
.IF (ERROR) . !IGNORE ANY ERRORS.
!
.GOTO DONE
DONE::	!ALL 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
!
!DELETE LIBOL REL FILES NO LONGER NEEDED
!
.RUN DEC:PIP
*DSK:/D=COBASM.REL,COMUNI.REL,INTERM.REL,LBLPRM.REL,CHREQV.REL,NUMEQV.REL,FTDEFS.REL,FLGDF.REL,METUNV.REL
*DSK:/D=LILOWS.REL,COBST.REL,CBLIO.REL,LIBREL.REL,REMOVL.REL,TRACED.REL,LINE.REL,STRNGL.REL,LSU.REL
*DSK:/D=ACCEPT.REL,ARGS.REL,PUTRES.REL,CANCEL.REL,GD.REL,GC.REL,PD.REL,PC.REL,FLOAT.REL
*DSK:/D=FIX.REL,CDD.REL,MOVE.REL,EXPON.REL,COMPD.REL,CMPX.REL
*DSK:/D=CMP.REL,SPAC.REL,ZERC.REL,ALF.REL,PNZ.REL,NUM.REL,DSPFP.REL,DIV11.REL
*DSK:/D=DPDIV.REL,DPADD.REL,DPSUB.REL,DPMUL.REL,MAGNEG.REL,SUBSCR.REL,TODAY.REL
*DSK:/D=SIZE1.REL,SIZ23.REL,EXAM.REL,INSPEC.REL,EDIT.REL,PERF.REL,COVRLY.REL,METIO.REL
*DSK:/D=KEY.REL,KPROG.REL,DSORT.REL,SETRET.REL,COBFUN.REL,EASTBL.REL,ALBSTB.REL,DEBSTB.REL
*DSK:/D=EDITB.REL,NUBSTB.REL,NTBSTB.REL,LCM10.REL,LCMIPC.REL,USRDSL.REL,USRDSH.REL,RESOLV.REL
.IF (ERROR)	. !TOO BAD
!
!
!TELL THE OPERATOR HOW WE DID.
!
.PLEASE -- LIBOL CREATION SUCCESSFUL
.SUB INP:*=/MODIFY/DEPEND:-1
.GOTO OK
%ERR::
TRUBLE:: .PLEASE -- LIBOL CREATION UNSUCCESSFUL!!!!!!!
OK::!END OF LIBOL.CTL