CCL - Console Command Language Version V8.0 CCL V8.0 may either be used as a Catchall task for MCR, or it may be installed and used as an Alternate CLI. If it is installed as the Catchall task (...CA.), and MCR does not accept the command line input an an internal MCR command or as an external MCR command, the entire MCR command buffer is passed on to a catchall task ...CA. CCL then scans the command to see if it corresponds to any internal CCL commands. If the command is found it is interpreted and sent to MCR. If the command is not found, an attempt is made to decode the command using either a command definition file on the user's LOGIN UIC (SY:USERCCL.CCL) or a system command definition file (LB1:[1,5]SYSCCL.CCL). Further HELP using CCL may be obtained using the following keywords. CLI Installing and Using CCL as an Alternate CLI COMMANDS COMMANDS BUILT_IN Internal CCL commands you may use. COMMAND FILE Creating a USERCCL.CCL command file. COMMAND FILE SYNTAX Required structure for the command file. COMMAND FILE EXAMPLE Detailed examples of CCL commands. INTRODUCTION Introduction to how CCL works. IDENT Getting current version # for CCL 2 INTRODUCTION The normal user interface to an RSX11M operating system is via MCR (Monitor Console Routine). If terminal input is not specifically requested by a task, all data, or commands typed in at a user's terminal are sent by the terminal driver to MCR for decoding. The MCR task (and its child ...SYS) decode user com- mands(ACT, ABORT, RUN, DEV, etc.). Tasks installed with special names of the form ...XYZ are treated as a external MCR command. Hence if a user types XYZ commandline the 'commandline' in its entirity(or at least up to 79 characters is sent as input to the task ...xyz. this is the conventional way of supplying most system commands and controling the opera- tion of the RSX11M utility programs. The limitations of this method are that each task must be installed to be treated as an external MCR command, and each extra installed task, uses valu- able pool space. Moreover, because installed tasks use a criti- cal system resource(pool), only privleged users are allowed to install and remove tasks from the system. The normal user is restricted to starting tasks via the RUN command or using those tasks already installed. ~ To alleviate this problem a user tailorable Console Command Language (CCL) has been implemented which allows each user to have a private task control language which will pass command lines to tasks which are not installed in the system as external MCR commands. When a user types in a command line, MCR is given first crack at decoding it. If MCR does not recognize the com- mand(first 3 letters) as either an internal( like SET /UIC) or external command, then the command line in its entirity is sent to CCL which is installed as ...CA., the the catchall task. CCL in turn checks to see if it can find the command(the command stops at the first space, comma, =, <, or carriage return encoun- tered). First it looks in its internal command tables to see if the command matches. If the command does not match it then scans a user file USERCCL.CCL to see if the command is present. If it isn't,it checks in file LB1:[1,5]SYSCCL.CCL to see if the command is a system CCL command. If the command is not found anywhere, a warning message is printed. Each user may have an individual CCL (USERCCL.CCL) file. Instructions on how to structure a CCL file may be found by typ- ing HELP CCL COMMAND SYNTAX and some worked examples may be seen by typing HELP CCL COMMAND EXAMPLE. 2 CLI CCL may be installed as an Alternate CLI to MCR. In this case a terminal which sets its CLI to be CCL (SET /CLI=TI:CCL) will have all its commands sent to CCL for decoding prior to CCL decoding the commands and sending them back to MCR. The command lookup sequence is slightly different if CCL is used as an Alternate CLI. The order is: 1) Check internal tables 2) Check SY:[UIC]USERCLI.CCL 3) Check LB1:[1,5]SYSCLI.CCL If the command is not found it is sent to MCR unmodified. A user may return to MCR at any time by typing SET /MCR=TI: Further HELP may be obtained with HELP CCL CLI INSTALL 3 INSTALL If CCL is to be used as an alternate CLI it should be installed twice as in the following example INS $CCL/TASK=...CA./PRI=60. INS $CCL/CLI=YES/TASK=...CCL/PRI=70. CLI /INIT=CCL/CPR="<15><12>/CCL>/"/DPR="<15><12>/>/" CLI /ENABLE=CCL The same task image will either work as an alternate CLI or as the Catchall task ...CA. CCL can not be used as the second Catchall task ...CA2 or any other name. It uses its installed name to decide whether or not it is a CLI on a system supporting Multiple CLI's. 2 COMMANDS A wealth of CCL commands exist to simplify the amount of type in a user has to do, and to allow the user access to the wide variety of RSX utility programs which are not perminently installed in the system. In addition a number of commonly used commands are built into CCL. The commands SORT, DELETE, DIRECTORY, LIST, PURGE, SPOOL, TRUNCATE, FREE, UIC, POOL, ATS, DLG, SHW, SHQ and HEY are internally decoded by CCL . Many of these commands are executed as PIP file commands and their syntax is COMMAND [filespec] [,filespec] ... The commands DIR and SORT do not require a filespecifier. Some commands will prompt for input(COPY, PURGE, DELETE, LIST, TRUNCATE, and SPOOL) if the file specifier is omitted. For HELP with the BUILT_IN commands, type HELP CCL COMMANDS BUILT_IN. For information on the system CCL commands available to the user, type HELP CCL COMMANDS SYSTEM. 3 BUILT_IN A large number of internal commands also exist to decrease the ammount of type in necessary at one's terminal. These commands are(only the first 3 letters are required) ATS [TTn:] Display active tasks [for specified terminal]. BELL Rings terminal bell. DELETE filspec Delete files. DLG Display logged in terminals. DLY NNNU Delay NNN U units of time DIRECTORY [filspec] Provide a directory listing. FREE [DDn:] Provide a free block display of the disk HEY tsknam Connect to a task and notify user on exit. IDENT Display the current version of CCL LIST [filspec] List a file at terminal.(uses ...LIS if installed). NOSCROLL Sets VT100 to fast scroll. PAGE Erases screen of VT100 or TEK 4014 terminal. POOL Display free pool. PURGE [filspec] Purge files. SCROLL Sets VT100 to slow scroll. ~ SHQ Show print queue(QUE /LI) SORT [filspec] Provide a rapid, sorted directory listing SYS Display system UIC. TRUNCATE [filspec] Truncate files TYPE filespec Lists a file at terminal (uses PIP) UIC Display terminal's UIC(SET /UIC). UIC grm mem SET /UIC = [grm,mem] UIC [grp,mem] " " " " 3 SYSTEM Note: Command lines for utilities started by CCL are limited to 40-50 characters. ACCLOG RUN $ACCLOG ACNT RUN $ACNT BASIC RUN $BASIC/INC=4092/TASK=...BAS BUF [nn] SET /BUF = TI:[nn] BCK RUN $RMSBCK CHKSUM filespec PAT NL:=filespec/CS,filespec CDA dev:=MM0:/SW CDA dev:=MM0:/SW,LB:[1,54]RSX11M.STB/STB CMP command line Identical to CMP syntax CVL command line Identical to CVL syntax DATEL RUN $DATEL DIOP RUN $DIOP DMP command line Identical to DMP syntax DSP RUN $RMSDSP FLX command line Identical to FLX syntax FTB commandline Identical to FTB syntax LBR commandline Identical to LBR syntax PAT commandline Identical to PAT syntax RNO commandline Identical to RNO format. ~ RST RUN $RMSRST SHOW #LB:[1,2]SHOW.PRC SLP @commandfile.slp Identical to SLP syntax SUB GRP/MEM/PSWRD CMD Identical to SUBMIT syntax VFY commandline Identical to VFY syntax VMR Identical to VMR syntax ZAP Identical to ZAP syntax PRIVLEGED SYSTEM COMMANDS ACS DEV:/BLKS=N Identical to MCR ERF Identical to MCR ERRORS @LB:[1,6]ERROR INCBKP @[1,7]INCBKP LOA(D) DEV: LOA DEV:/PAR=DRVPAR PSE Identical to MCR SHUTUP @LB:[1,2]SHUTDOWN SYE Identical to MCR UFD dev:[UIC] Identical to MCR UNL(OAD) DEV: Identical to MCR 3 FILE When ...CA. is activated from MCR... the programs obtain the command line from MCR and divides it into units. The first unit is the KEYWORD which is used to select the command from the definition(.CCL) files. The other units become parameters 1 thu 9 and A thru C. The alphabetic characters represent major sub- sections of the command line. A includes the entire command line minus the keyword. B includes all input up to the first space or carriage return minus the keyword and any leading switches (see parameter 0). C includes everything from the first space to the end of the command line (minus the space delimeter). Parameter 0 includes any leading switches appended to the keyword, continuing to the first space (e.g. BRU/REW, parameter 0 = /REW). Parameters 1-9 are then assigned, in order, to each unit in the command line (minus delimeters) that are separated by spaces, commas, '=' or '<. symbols. Given this command breakdown: the MCR line includes the KEYWORD and parameter A; parameter A includes parameters 0,B, and C; and parameters B and C include parameters 1-9. The keywords are matched up to 8 characters. CCL has the option top prompt for missing parameters and will exit if the required input is termin- ated with ^Z. A user command definition file(SY:USERCCL.CCL) is searched for. If present it is opened and scanned for a keyword match. If it is not present, the system command definition file (LB1:[1,5]SYSCCL.CCL) is opened and scanned. If the user file is scanned and the command is not found, then it is closed and the system file is scanned in turn. If the command is not found after the scan of the system file completes and the keyword is terminated by a '?' character, the files are rescanned for a com- mand '?' which is called with its first parameter as the origioal keyword(less the '?'). This was added as an additional form of help command. The system CCL command file interprets the '?' command as 'HELP'. Hence, PIP? is the same as HELP PIP. ~ The command definition files have three main types of lines, 1) beginning '$' - keyword lines (identification line) 2) beginning '?' - keyword lines (input querry line) 3) beginning '*','+', or '-' lines (action lines). The command file consists of a keyword identification line followed by optional input querry lines and finally by one or more action lines. The match procedure consists of comparing the keyword from the command line with the keyword in the command file. If the minnumum length of match is satisfied and the char- acters up to the end of the command line keyword match characters in the keyword line, the match is successful. Otherwise failure is signaled and another '$' keyword line is searched for. When no more keyword lines are found in the file, the file is closed and the search has failed in finding that command line. 4 SYNTAX The keyword line is as follows, $KEYWORD First line of a command set. There may be many keyword lines for the same action line. Minimum number of characters to match. Maximum number of characters to match. (If 0, no check for user KEYWORD > file KEYWORD is made). Minimum number of parameters required. If this number of parameters is not present then parameters will be prompted for. Maximum number of parameters to question for if less than parameters are input. In the case where prompting this number is the highest prompt to be requested. KEYWORD is the command keyword. ~ The keyword consists of a character string to be matched identically by the CCL processor. If the 'm2' parameter is 0, no checking for maximum keyword length will be performed. For example, given two keyword lines $3400DUMP and $3000DUMP, a user command of 'DUMPIT', will fail to match the first keyword line (DUMPIT exceeds maximum of 4 characters), but will match the second keyword line (maximum keyword length checking disabled). Keywords may extend beyond the 9 character limit imposed by the single digit parameters m1 and m2 by adding 60(octal) to the desired number and entering the corresponding ASCII character, e.g. to specify m2 = 11 (dec.) use ASCII character ';'. Terminators for the keyword typed by the user are space, '/', and carriage return. ?QUESTION-TEXT Where is the parameter number (they should be in order) (1-9, A-C). If the correct number of parameters are supplied no questions are asked, otherwise questions are asked and the associated parameters are filled in. If parameters are skipped then they will only have values if they were given on the original command line. < >KEYWORD command-line<+> where < > is one of '-', '+', or '*' where <+> is null or '+'. ~ Action lines come in two varieties. '-' lines are lines which instruct the program to wait for a given task. The task name is an absolute name and does not take on a terminal quali- fied name (V3.2 does not have executive task dispatching). CCL will issue a connect directive to the specified task and if the task is found and is active, it will stop itself until the task exits. The format for the wait line is -<6-char-taskname> The '*' and '+' command lines differ only in that the '+' line signals that further command lines follow in the file. A '*' signals that the command is the last or only command line. The text in the action line is copied except that any parameters present are substituted into the text line. The action lines consist of valid MCR commands which must not involve further calls to CCL. Any action line which is too long to be placed on a single line may be continued to the next line by placing a '+' as the last character in the action line. Note: the '+' must not be in the middle of a parameter substitution string, rather it must stand alone as if it were to be placed firectly into the command line. However, the total output line length to MCR is limited to 79 characters. ~ Three special fields in the action line suspend direct transfer of characters from the action line to the new command line: 1) Parameter substitution fields, 2) Parameter test and substitute fields, and 3) Special parameter substitution fields. A '%' denotes a substitution argument, and is normally associated with a parameter number or a special symbol. Parameters are defined by the presence of delimiters in the original MCR command line or by response to an input query line. The comma seperating the group and member numbers in a UIC field ([g,m]) is treated as a special case, and not considered a delimiter, thereby placing the entire UIC within one parameter. Parameter substitution fields allow insertion of the parameters 0-9, A-C into the new command line by using the format: %