\documentstyle[a4,12pt]{article} \begin{document} \author{APM Manual pages} \title{APM Command Interpreters} \maketitle \parskip .1 in \setcounter{secnumdepth}{10} \parindent 0in \section{Preamble} This file describes the facilities of the standard CLI and then the additional facilities of the RDW's alternative CLI. To use the RDW CLI reboot (use $\hat{ }${}T R) off filestore b:: (15) with file RDW:sys.mob This CLI is a variant of the standard CLI but with some additional features. No support is guaranteed for it but RDW, RMM et al will be interested to hear views. **** STOP PRESS **** Now runs on wyses and VT100's \hspace{ 0.2 in} boot to rdw:wsys.mob \section{The Standard CLI} The Command Line Interpreter processes the character stream coming from either the terminal or from a .com file and then acts upon it. \hspace{ 0.2 in} It reads from the IMP stream zero and thus a program may, by opening an input file to stream zero, cause that file to be 'obeyed' when the program stops. Similarily if a program wishes to abort a .com file from which it has been called it may close the input stream zero. \subsection{Symbol Assignment} This takes the form \} Symbol'='String with no space between the last character of the symbol and the = sign. Subsequent use of the symbol as a command verb will cause its translation into its string equivalent. Note that supression of Symbol translation is available. \subsection{Translation Supression} If a verb is typed in and immediately followed by a '\_' character, the verb will not be translated. \hspace{ 0.3 in} Typically this would occur when a user wishes to run a program called, say a.mob. Typing of just 'A' would cause the analyse program to be run. Typing of 'A\_' would cause his program user:a.mob to be run. \subsection{Verify} If the symbol verify is present and equal to an \%odd number then each translated command line is typed out to the terminal before it is 'obeyed'. \subsection{Leading \{} Any command line may be preceded by a \{ symbol. This is for historic reasons. It is ignored. \subsection{Comments} If a line starts with a single exclamation mark (!) then the line is treated as a comment and ignored. \subsection{Typing to a terminal} If a line starts with two exclamation marks (!!) then the line is ignored but it is typed out (without the !!) to the terminal. The newline at the end may be supressed by making the last non space character of the line a ':'. \subsection{Line Continuation} If the last character of a line is a '-' then this is ignored as is the line break. This has the characteristic of allowing line continuation. \hspace{ 0.3 in} Note that the line is limited to 255 characters. \subsection{Command file} Calling of command files is of the form \} @file [p1 [p2.... \hspace{ 0.3 in} p8]] This causes the command file to be 'obeyed'. If the parameters are present then they are stored for access as detailed below. \%NOTE that if another file is obeyed (either directly using the @ or as a result of a program) at the end of \%that file control is passed back to the \%terminal. \subsection{Parameter acquisition} Parameters are accessed in the form \%$<$number$>$. Only the first eight parameters are processed. Parameter substitution is just string substitution. Note that this facility operates at terminal level (with null parameters). Thus typing \%1 will cause a null string to be substituted. If the string \%1 is required then \%\%11 will have to be typed. \section{RDW Stack based CLI} This is based upon the standard cli in such a manner that a naive user need not be aware of its presence. It has however some additions. Notably the current line is readily edited, a stack-based history is maintained and there is a macro substitution facility. The CLI is at present tied to the Visual 200 terminal but a version for the Wyse will be released as soon as these terminals come into common use. \subsection{Editing.} In addition to the standard control characters (BS $\hat{ }${}U and $\hat{ }${}X) the command line may, at any time be edited using the DEL button and the $<$- and -$>$ cursor keys. All other keys (except where detailed below) behave as in the original CLI. Pressing return causes the \%whole line to be processed (cf the Apollo). \subsection{History} This is of the form of a list of the last 15 commands. If a command is duplicated then the original command is deleted and reappears at the head of the stack. The complete list may be viewed by pressing the HOME button. Individual commands may be selecetd by using the up and down cursor keys. When the required command is reached it may be edited or just submitted by using the carriage return key. \subsubsection{Deleting the history} This may be acieved by pressing the CL button (CONVERT + HOME). \subsubsection{Affecting the rememberance of history} Normally all commands entered interactively (ie from the keyboard) are remembered and those from files not. This may be affected by use of the \{ and [ characters. If a line \%starts with a \{ it is \%always remembered. If a line \%starts with a [ it is \%never remembered. \subsection{Macros} All the function keys and all the keypad keys are available for macro definition. Macros are translated by looking up an associated symbol. These are: \hspace*{ 0.3 in} F0 .. F13 for the function keys. \\ \hspace*{ 0.3 in} KENTER, KMINUS, KSTOP, KCOMMA and K0 .. K9 for the keypad keys. \\ \hspace*{ 0.3 in} SKMINUS, SCOMMA and SK0 .. SK9 for the shifted (CV +) keypad keys. In order to avoid the difficulty of remembering these names, the keys default to their associated symbol. Thus to define a key to a macro all that needs to be done is to press the requisite key then '=' and then the equivalence string. \%Note symbol assignments, if made within a login session, are lost at the end of that session. \subsubsection{Forcing a carriage return} If a macro equivalence ends with a $\hat{ }${} character; when the requisite key is depressed the $\hat{ }${} is stripped off and the command line is interpreted immediately. Thus if we type \}F0=[gmc:z$\hat{ }${} subsequent depressions of F0 will cause the screen to be cleared immediately with no addition to the history. \subsection{Prompt} If the symbol PROMPT is in existance then its translation is used as the CLI prompt. The default prompt is '\} '. \subsection{\%} If the input is from the keyboard then the \% charcter is passed straight through to the interpreter. \subsection{Drawbacks, support and access} \subsubsection{Drawbacks} There is, to my knowledge only one drawback. This occurs when programs (notably the 'l' program) read terminal io and then 'stuff it back up the buffer'. This will cause the line to be echoed twice. \subsubsection{Support} Bugs to RDW. PLEASE NOTE that what the cli does stops the minute you depress carriage return. Hanging and so forth from then on is the fault of THE PROGRAM YOU ARE RUNNING. \subsubsection{Access} At present reboot to machine b:: (15) and to file RDW:SYS.MOB \vspace{.75in} view:Cli printed on 09/02/89 at 16.54 \newpage \tableofcontents \end{document}