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. INSCCLCLI.CMD will install CCL as a CLI on a V4.0 system. 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 (note the command set specifies a required prompt is parameters are missing, but no prompt is present) $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. I don't have time to fix this bug for this release, but I would welcome any help that any users would like to give. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Included on this UIC is a working task image of CCL built without FCSRES and with TABLE.KMS. It may be used either as a CLI or as ...CA. on a V4.0 system (maybe even on a V3.2 system, try it). 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