.ENABLE SUBSTITUTION
;	      C C L G E N . C M D
;
; This command file will create a tailored CCL for your environment
; depending on the answers to your questions.  CCL requires parent/offspring
; support, the SPAWN directive and EXIT WITH STATUS.
;
.ASK ASM Assemble CCL
.SETS LIST ""
.SETS MAP ""
.SETF DCL
.SETF MP
.SETF KMSTBL
.SETF DFLTBL
.SETF BIGTBL
.SETF LST
.SETF PIP
.SETF CREATE
.IFT ASM .ASK LST Produce an assembly listing file (spooled)
.ASK BLD Build CCL
.IFF ASM .IFF BLD .EXIT
.IFT BLD .ASK MP Produce a taskbuild map (spooled)
.IFT BLD .ASK FCSRES Build CCL linked with a FCS resident library
.IFT MP .SETS MAP ",LP.LST/SH"
.IFT LST .SETS LIST ",LP.LST/SP"
.IFT ASM; CCL normally looks for SYSCCL.CCL on LB1: (globally assigned)
.IFT ASM .ASK LB0 Do you wish CCL to look for SYSCCL.CCL on LB0:
.IFT ASM ;
.IFT ASM ; Internal command lookup for DCL-like commands can be supported by:
.IFT ASM ;     1) including the DCL internal code section in CCL
.IFT ASM ;        and/or,
.IFT ASM ;     2) including an internal CCL file (table)
.IFT ASM ;
.SETF DCL
.;IFT ASM .ASK DCL Do you wish to include the internal DCL code in CCL (option 1)
.IFT DCL;
.IFT DCL; DCL code is subdivided into 2 subsections: 1) the PIP-like commands, and
.IFT DCL; 2) various other functions (SHQ, ATS, etc.). The latter commands are
.IFT DCL; being included by default.
.IFT DCL;
.IFT ASM .IFT DCL .ASK PIP Include internal code to support PIP-like DCL commands
.SETT TBL
.;ASK TBL Do you wish CCL to include command lookup from an internal CCL table
.IFF ASM .GOTO BLDCCL
.IFT TBL ;
.IFT TBL ; Three options are provided for supporting command lookup from
.IFT TBL ; an internal table:
.IFT TBL ;     1) User supplied table
.IFT TBL ;     2) Standard table (TABLE.KMS) supporting DCL PIP-like commands
.IFT TBL ;     3) A large table (TABLE.BIG) supporting wide range of commands
.IFT TBL ;
.IFT TBL .ASK CREATE Do you need to create an internal table (option 1)
.IFT CREATE ;
.IFT CREATE ; To create an internal table we will chain to TABLEGEN.CMD.
.IFT CREATE ; When it exits, you will have a TABLE.MAC file.
.IFT CREATE ;
.IFT CREATE @TABLEGEN
.IFT PIP .GOTO 10
.IFT TBL .ASK KMSTBL Use the standard table to support DCL PIP-like commands (option 2)
.10:.IFT TBL .IFF KMSTBL .ASK BIGTBL Use the big (but supplied) table file (option 3)
.IFT TBL .IFF KMSTBL .IFF BIGTBL .SETT DFLTBL
.IFT TBL ;
.IFT KMSTBL ; TABLE.KMS will be used for internal PIP-like commands
.IFT BIGTBL ; TABLE.BIG will be used for the internal CCL table
.IFT DFLTBL ; TABLE.MAC will be used for the internal CCL table
.IFT DFLTBL ;   You are responsible for creating this file!!
.IFT TBL ;
.IFT TBL ; 
.IFT TBL ; 
.IFT TBL ;
.OPEN PRECCLASM.MAC;1
.ENABLE DATA
;
;	DEFINE CONDITIONAL ASSEMBLY VARIABLES
;
.DISABLE DATA
.IFF LB0 .DATA ; $LB0=0		; Look on LB1: for SYSCCL.CCL
.IFT LB0 .DATA $LB0=0		; Look on LB0: for SYSCCL.CCL
.IFT DCL .DATA $DCL=0		; Include internal DCL support
.IFT DCL .IFT PIP .DATA $PIP=0		; Include PIP subsection of DCL cmds
.IFT DCL .IFF PIP .DATA ;$PIP=0		; Exclude PIP subsection of DCL cmds
.IFF DCL .DATA ; $DCL=0		; Do not include internal DCL support
.IFT TBL .DATA $DCLTB=0		; Try to lookup cmd from internal table
.IFF TBL .DATA ; $DCLTB=0		; Do not lookup with internal table
.IFT DCL .IFF KMSTBL .DATA $DCLX=0	; Include SHQ, ATS, etc cmds in DCL
.IFT KMSTBL .DATA ;$DCLX=0		; Exclude SHQ, ATS, etc cmds
.CLOSE
.OPEN CCLASM.ASM;1
.ENABLE DATA
CCL.OBJ;1'LIST'=PRECCLASM/PA:1,CCL
SPAWN.OBJ;1'LIST'=SPAWN
FIXUP.OBJ;1'LIST'=FIXUP
GETLIN.OBJ;1'LIST'=GETLIN
LOOKUP.OBJ;1'LIST'=LOOKUP
.DISABLE DATA
.IFT DFLTBL .DATA TABLE.OBJ;1'LIST'=TABLE
.IFT KMSTBL .DATA TABLE.OBJ;1'LIST'=TABLE.KMS
.IFT BIGTBL .DATA TABLE.OBJ;1'LIST'=TABLE.BIG
.CLOSE
MAC @CCLASM.ASM
PIP CCLASM.ASM;1/DE
.BLDCCL:.IFF BLD .GOTO ENDUP
.OPEN CCLBLD.BLD;1
.IFT TBL .DATA CCL.TSK/CP/PR:0=CCL,FIXUP,LOOKUP,SPAWN,GETLIN,TABLE
.IFF TBL .DATA CCL.TSK/CP/PR:0=CCL,FIXUP,LOOKUP,SPAWN,GETLIN
.DATA /
.IFT FCSRES .DATA LIBR=FCSRES:RO
.ENABLE DATA
TASK=...CA.
PRI=90
UNITS=2
ASG=TI:2,LB:1
STACK=64
//
.DISABLE DATA
.CLOSE
TKB @CCLBLD.BLD;1
PIP CCLBLD.BLD;1/DE
.ENDUP:; CCLGEN complete
