			CCL V8.0

   This version of CCL is a composit of the work of Angle Li at the
University of Miami, Paul Sorenson at Michigan State University, and Jim
Downward at KMS Fusion.  Angle Li edited the code to remove all the funny
F4P lables and to comment the code.  Paul Sorenson then provided a
substanitial rewrite to CCL to provide significantly more flexible command
string parsing.  

   V8.0 of CCL will use the RPOI$ directive to chain command lines to
tasks.  In doing so the OCB's will be relinked and CCL will exit at once
since it is not needed to hang around in core to pass back OCB information.
This makes it possible to have CCL commands within a command file started
by a CCL command.  Also CCL was upgraded so that it can be an Alternate
CLI for RSX11M V4.0.  If it is used as an alternate CLI, it will receive
the command line prior to MCR.  This means that any MCR command (even for
installed tasks) can be trapped and reparsed.  Moreover, even with an 
unmodified MCR, illegal characters can be used as commands.

   The same CCL task image can be installed both as the catchall task 
(...CA.) and as an alternate CLI.  If it is to work as a catchall task
it must be installed with the name ...CA.  User's desiring to use the
Alternate CLI features should create a LB1:[1,5]SYSCLI.CCL file 
to avoid nasty error messages.  Note that both the names for the system
and the user CCL files are modified for if CCL is a CLI.  The names
are LB1:[1,5]SYSCLI.CCL and SY:[UIC]USERCLI.CCL.

     To simplify use of CCL for user's (like myself) who often assign a local
LB:(to do a sysgen).  The location of SYSCCL.CCL has been moved to LB1:
(unless symbol $LB0 is defined in PRECCL.MAC). To use CCL, please do a global
assign of LB1: to a physical disk either in VMR or in STARTUP.CMD.

   As was previously mentioned, this version of CCL has been extensively 
rewritten to provide a more flexible command format. The major changes that
must be kept in mind for this newest version are, 

	1) All conditional assembly directives are now in PRECCL.MAC 
           for easier access (see comments for their affects).
	   They are $LB0,,$DCL, and $TABLE.

        2) An internal table lookup has been added to offer a compromise
	   between DCL and the .CCL files. (see comments in CCL.MAC)

	3) Several new parameters have been defined -- %A%, %B%, %C% and %0%
	   %A% is set the the entire character string past the command.
	   %B% is set to character string up to first space
	   %C% is defined as everything not in %B% (excluding delimiter) 
	   %0% is set to values of any leading switches 
	       (e.g. BRU/REW/VER, %0%=/REW/VER) 

	4) Two options have been added for command building. If a
	   parameter is null, it may be replaced by a string starting with 
	   the key character "\" and extending to the % delimiter, also, 
	   a parameter may be tested by %2?S1\S2% which will insert string 
	   "S1" if parameter 2 is defined, otherwise string "S2" will be 
	   inserted (either S1 or S2 may be null).

	5) A command line may extend to the next line by including the "+"
	   character as the last character in the line. 

	6) USERCCL.CCL is opened on the user's logon UIC rather than the 
	   current default UIC. 

	7) If CCL can not find a command, it will try sending off its
	   command to another catchall ...CA2.

	8) %R is a special character signifying that CCL is to ring the 
	   terminal BELL when it exits.  A previous version used %B for this.
	   Sorry for the incompatability.

	9) %D is added to aid in debugging CCL command lines.  When it is
	   encountered, the command up to that point is displayed in
 	   expanded format at the user's terminal rather than being sent
	   to MCR.

	9) %P is added to signify that an action line is to be printed out
	   on TI:.  This makes it very easy to create CCL commands which
	   send escape sequences to control terminal characteristics.

       10) %Q is added to signify that CCL should exit without sending on
	   the command to MCR if a required input field is defaulted with
	   a null (ie  %1\%) and the input parameter is also a null.
	   This prevents various PIP like commands from occuring with
	   no files specified which often results in defaulting to the
	   entire directory.

       11) Two possible TABLE macro files are offered.  TABLE.BIG has all
	   kinds of CCL commands and results in a significantly larger
	   CCL.  TABLE.KMS includes those commands which used to
	   be processed by the internal DCL code.  The size of CCL using
	   the internal table file is comprable to the previous versions
	   using hard coded command.  TABLEGEN.CMD allows the user to create
	   an internal CCL file.

      12)  CCLGEN allows the user to select amoung a variety of options.
	   If the user desires to use an internal table file, CCLGEN
	   will allow the user to  link to TABLEGEN.CMD to create an
	   internal table from a standard CCL file.  One can use either
	   USERCCL.CCL or SYSCCL.CCL, for example, as a source file.

      13)  CCL now checks to see if the keyword typed in is longer than
	   the maximum specified in the file (previously was ignored). This
	   means that commands FOO and FOOY can be different and distinct.

      14)  Documentation and HELP files have been updated to reflect 
	   the many, many new features.

      15)  CCL now uses RPOI$ to chain the command to MCR if either a %$
	   is found, or if the action line is the last or only action line.
	   The Command is chained off, and CCL immediately exits.  This is
	   only for the commands handled via the table file or the external
	   file.  The hardwired commands still use SPAWN.  If RPOI$ fails
	   CCL trys to use the SPAWN directive.  Note that this makes it
	   possible to have CCL commands within command files started by
	   CCL commands.  CCL is no mostly recursive although it is still
	   not possible to have a CCL command itself be a CCL command.

      16)  Support for Dan Steinberg's patch for DRSPW (passing/relinking
	   OCB's on special SPAWN directive) is withdrawn.  RPOI$ can be
	   used without patching the standard RSX11M system.

      17)  Support for CCL as an alternate CLI.



KNOWN BUGS and RESTRICTIONS

       1)  If you specify the following in a command definition file

		$4411XSET
		*command_text
	
	   CCL will come back and tell you that there is a read error on
	   LB1:[1,5]SYSCCL.CCL.  If you try

		$4411XSET
		?0Switches
		*set %0%%1%P%

	  you will also get a read error message on LB1:[1,5]SYSCCL.CCL
	  if you type  XSET /UIC=[xxx].  Values are stuffed into the %0
	  parameter until a space is found.  Hence the whole line goes
	  into %0.  Now this screws up the checking for whether or not
	  enough parameters were entered.  %0 is not at this time counted
	  as one of the characters, so CCL gets confused.  The %0 parameter
	  should be used with care until someone has a chance to come up with
	  a versitile fix which doesn't screw up something else.  II don't
	  have time to fix this bug for this release, but I would welcome
	  any help that any of you users would like to give.

 Active contributers to CCL now include

		Mr. Angel Li
		RSMAS/MPO
		University of Miami
		4600 Rickenbacker Cswy.
		Miami, Fl.   33149
		(305)-350-7491

		Paul Sorenson	
		Dept. of Physiology
		Mich. State Univ.
		E. Lansing, MI  48824
		(517)-355-5125

And myself,
		James G. Downward
		KMS Fusion, Inc
		PO Box 1567
		Ann Arbor, Mi 48106
		(313)-769-8500
