Trailing-Edge
-
PDP-10 Archives
-
BB-F494Z-DD_1986
-
10,7/micref.mem
There are 4 other files named micref.mem in the archive. Click here to see a list.
UNIVERSITY OF YORK
COMPUTING SERVICE
MIC
Macro Interpreted Commands
Reference Manual - Edition 8.3
April 1983
This guide reflects features of version 11C(1223) of MIC.
Edited and revised by J.D. Service, University of York.
MIC - Macro Interpreted Commands Page 1
University of York Computing Service
MIC was originally written at Hatfield Polytechnic Computer Centre.
Copying of this document is allowed.
Hatfield Polytechnic Computer Centre
The Hatfield Polytechnic
PO Box 109
Hatfield
Hertfordshire AL10 9AB
England
Telephone Hatfield 68100
Telex 262413
This edition was edited and enhanced at the University of York.
Department of Computer Science
University of York
Heslington
York
North Yorkshire YO1 5DD
England
Telephone York 59861
Telex 57933
MIC - Macro Interpreted Commands Page 2
University of York Computing Service
CONTENTS
1. Introduction
2. Introducing a MIC command
3. Constructing MIC macro command files
1. Special Characters
2. Labelled lines
3. Parameter substitution
4. Commands derived from DECsystem-10 multi-programming batch
1. GOTO/BACKTO command
2. ERROR/NOERROR command
3. IF command
4. OPERATOR/NOOPERATOR command
5. SILENCE/REVIVE command
6. PLEASE command
7. CHKPNT/REQUEUE command
8. Others
5. LET command
1. Byte subscripting for string expressions
2. Multiple LET statements
3. Parameters in outer processes
4. Octal expressions
6. Extensions to the IF command
1. Parameters in outer processes
2. Special Tests
MIC - Macro Interpreted Commands Page 3
University of York Computing Service
7. Simple interaction with MIC
1. OPERATOR/NOOPERATOR command
2. MIC RESPONSE command
3. MIC DISPLAY command
4. MIC TYPE command
5. MIC WHAT command
6. MIC SLEEP command
7. MIC INPUT command
8. MIC control commands
1. MIC ABORT command
2. MIC CANCEL command
3. MIC BREAK command
4. MIC PROCEED command
5. MIC EXIT command
6. MIC RETURN command
9. Special Parameters
1. System Parameters
1. Parameter substitution
2. GETTABS
3. Octal argument to GETTABS
2. Action parameters
3. Miscellaneous special parameters
1. PSHIFT
4. Substitution of parameters in outer processes
10. LET and IF extensions
MIC - Macro Interpreted Commands Page 4
University of York Computing Service
1. Use of system parameters
2. Use of system parameters in arithmetic assignments
3. Use of system parameters in IF commands
11. Non procedural calls to MIC (WHENEVER/ON command)
1. Multiple WHENEVER/ON commands
12. MIC SET command
1. COLUMN1
2. CONTROL
3. PARAMETERS
4. SPECIALS
5. FINMATCH
6. MSGLVL
7. LC
8. TRACE
9. SILENCE
10. CCTRAP
11. Multiple SET commands
13. CCL entry to MIC
14. Multiple statements on a line
15. Immediate mode execution of MIC commands
Appendix A - Examples of MIC commands
Appendix B - Command Summary
Appendix C - Syntax of integer and string expressions
Appendix D - Error messages
Index
MIC - Macro Interpreted Commands Page 5
INTRODUCTION
1.0 INTRODUCTION
Standard DECsystem 10 software provides a powerful but complex command
interface. Novice terminal users lose much time through an unforgiving
command decoder and the expert resents the verbosity of the average command
string. Although the concise command language (C.C.L) does allow many
simplifications to system commands, new commands may not readily be
defined.
With MIC a user may create a new command simply by writing any desired
sequence of monitor and user mode commands in a disk file. To cause the
command to be obeyed the user types to monitor the filename preceded by the
"DO" command.
E.g.
If the file DTASAV.MIC contains the text-
.R PIP
*DTAX:/X/B=FRED.TXT
*^C
.DIR DTAX:
the user could obey the command file thus-
.DO DTASAV
.R PIP
*DTAX:/X/B=FRED.TXT
*^C
.DIR DTAX:
In this sequence of commands only the first line of the "MIC command" was
typed by the user. If the user often required this sequence of commands
the command macro DTASAV.MIC would save a considerable amount of typing.
To allow more generalised commands to be constructed a MIC command may have
parameters:
The command macro DTASAV.MIC would be made more useful if the file
contained the text-
.R PIP
*DTA'A:/X/B='B
*^C
.DIR DTA'A:
MIC - Macro Interpreted Commands Page 6
INTRODUCTION
The rules for parameter substitution are simple. When 'A is encountered in
the command file the first parameter is substituted. The first parameter
in the macro DTASAV is the dectape number, the second parameter is the file
name to be transferred. Up to 26 user parameters are allowed ('A to 'Z).
To write the file PETE.MAC to DTA3 the command would be:-
.DO DTASAV 3,PETE.MAC
The parameters to a MIC command are separated by commas. (See also section
2.)
The command file may be of any size and is typed by MIC line by line
exactly as if the user had typed it. MIC will only type a line when the
job requires input. To stop MIC typein the user must type control C.
Using the above information a user can easily make his own commands.
Additional facilities in MIC are provided to allow:-
1. Parameters to be manipulated during the processing of a MIC command.
2. Conditional branching within the command macro.
3. Detecting and processing error conditions.
NOTE
MIC command files may themselves contain MIC
commands. In this case the "nested
processes" each have their own parameters but
inner processes may access the parameters in
an outer process. This is described later.
MIC - Macro Interpreted Commands Page 7
INTRODUCING A MIC COMMAND
2.0 INTRODUCING A MIC COMMAND
To cause a MIC macro command file to be obeyed a monitor command of the
following form is used:-
.DO <Standard device-file specification> <parameter list>
The first argument to the "DO" command specifies the command file to be
obeyed, in the form DEV:FILENAME.EXT[PPN] If the user does not specify
where the command file is held, his own area is searched first followed by
the ersatz device MIC (1). The default extension for the MACRO file is
"MIC". The full default filespec is DSK:MIC.MIC in the user's own area.
Sub-file directories are supported by MIC.
The parameter list follows after a separator character (space or tab).
Parameters are separated by commas. All brackets in the parameter list
must match. A comma between matched brackets does not separate parameters.
Outer matching < and > brackets are removed before the parameter is
substituted.
E.g.
.DO C[105,13] TWO
MIC macro file is C.MIC in area [105,13].
'A would substitute as TWO.
.DO C A[105,13],3
MIC macro file is "C.MIC" on the user's own area or "MIC".
'A would substitute as A[105,13].
'B would substitute as 3.
NOTE
The original versions of MIC used the "/"
command, not the "DO" command, and this is
still used on some sites, and may be referred
to in some documentation.
(1) The exact order of search can be varied by the system administrator but
by default is:-
DSK:FILE.MIC [PROJECT,PROGRAMMER]
DSK:FILE.MIC [PROJECT,PROGRAMMER,MIC]
DSK:FILE.MIC [PROJECT,1]
MIC:FILE.MIC
MIC - Macro Interpreted Commands Page 8
CONSTRUCTING MIC MACRO COMMAND FILES
3.0 CONSTRUCTING MIC MACRO COMMAND FILES
A MIC file may contain any ASCII text with or without line numbers. This
text is taken line-by-line and typed on the user's terminal as though he
had typed it. To allow the user to write macros which are easy to read,
leading spaces and tabs are ignored. Thus the two lines:-
*/X/B=*.SAV
and
*/X/B=*.SAV
are equivalent.
NOTE
1. Existing "MULTIPROGRAMMING BATCH" control
files may be used as MIC command files.
2. On labelled lines, any space after the
label terminator (the "::") are treated in
the same way.
3. The leading space feature is not
compatible with batch control files.
MIC - Macro Interpreted Commands Page 9
CONSTRUCTING MIC MACRO COMMAND FILES
3.1 Special Characters
As in batch control files some characters are treated specially as the file
is processed.
Character Position Meaning
. at start of line Remaining text on this line
may only be typed to monitor
* At start of line Remaining text on this line may
only be typed as program input.
= At start of line Suppress carriage return at the
end of this line. Useful for
command macros containing DDT
and TECO commands.
! or ; At start of line Treat line as a comment. Line is
displayed on the user Teletype
but not typed to the job.
^X Any Convert character "X" to control
X before it is typed.
'A Any Substitute parameter A.
If a special character is to be treated literally it must be repeated.
E.g.
''A will be typed as 'A and not cause the substitution of parameter A.
NOTE
1. "!" overrides the silence condition, but
the normal comment character ";" does not.
2. "^C" or "^A" do not have the same effect
when typed by MIC, as they would have if the
user had typed them, in that they do not
"CANCEL" or "ABORT" the macro.
3. Lower case letters are converted to upper
case in the "^X" and "'A" cases.
MIC - Macro Interpreted Commands Page 10
CONSTRUCTING MIC MACRO COMMAND FILES
3.2 Labelled Lines
Any line in a command file may be labelled. A label may be of any length,
but only the first six characters are significant. Labels may be
constructed of any alphanumeric characters terminated by a double colon.
Labels can only occur at the start of a line.
E.g.
FRED::.DIR
THISISALABEL:: .R PIP
ANOTHER1::*/X/B=JIM.ALG
NOTE
1. Labels which begin with a "%" character
have the same special meanings as in "Multi
Programming Batch", see 4.2.1 .
2. Labels must always be in upper case.
3.3 Parameter Substitution
The construction 'X where X is an alphabetic character, causes the contents
of the appropriate parameter to be substituted.
Nested parameter substitutions are allowed,
E.g.
'X may contain 'Y and so on to a maximum level of 8.
MIC - Macro Interpreted Commands Page 11
COMMANDS DERIVED FROM DECSYSTEM-10 MULTI-PROGRAM BATCH
4.0 COMMANDS DERIVED FROM DECSYSTEM-10 MULTI-PROGRAM BATCH
4.1 GOTO/BACKTO Command
As with batch control files a MIC command file may have some lines
labelled. Using the MIC monitor style commands GOTO and BACKTO the
sequential processing of the MIC command may be interrupted. The argument
to the GOTO/BACKTO command is an identifier of one to six alphanumeric
characters which is used to indicate the label in the MIC command file
where processing is to resume.
The appropriate labels in the command file are delimited by :: and must be
at the start of a line.
E.g.
FRED::.DIRECT
NOTE
1. That, if, when MIC is searching a command
file for the first occurrence of the required
label, it comes across a "%FIN" label, this
will satisfy the search and processing of the
command file will be resumed at that point.
2. As GOTO/BACKTO commands are interpreted
by the MIC program they do not destroy the
user's core image.
3. The formats
.GO TO <label>
and
.BACK TO <label>
may be used, but these do destroy a user's
core image.
MIC - Macro Interpreted Commands Page 12
COMMANDS DERIVED FROM DECSYSTEM-10 MULTI-PROGRAM BATCH
4.2 ERROR/NOERROR Command
As the MIC command file is processed an error may occur. Often a message
is displayed on the user Teletype preceded by a question mark (?)
character. By using the error command the user may specify which character
is to be treated as denoting an error condition when it is displayed at the
start of a line.
The argument to the error command is any single ASCII printing character.
E.g.
.ERROR %
.ERROR ?
If no argument is supplied to an ".ERROR" command a question mark (?) is
assumed.
The command NOERROR is used to turn off error checking.
4.2.1 Error Processing -
Error processing in MIC is similar to that of MULTIPROGRAMMING BATCH. If
an error is detected MIC will check if the next monitor command is an "IF
(ERROR)" or "IF (NOERROR)" command. If this is so, processing will
continue there, otherwise the command file is searched for a
%CERR or a %FIN if the error occurred in a system program,
or
%ERR or a %FIN if the error occurred in a user program, before typein is
resumed. If this fails MIC will display on the user's Teletype
[ABORT ON ERROR]
and stop processing the MIC command file.
NOTE
1. The WHENEVER/ON command may be used to
change this default processing (see section
11).
2. If a "%" label is detected when we are
not processing an error, then the commands
following that "%" label and up to the next
occurrence of a "%FIN" label will be ignored
(cf. BATCH).
MIC - Macro Interpreted Commands Page 13
COMMANDS DERIVED FROM DECSYSTEM-10 MULTI-PROGRAM BATCH
4.3 IF Command
The IF command is used to conditionally process a monitor command.
E.g.
.IF (ERROR) .GOTO EER5
.IF (NOERROR) .DO UPDATE 13
The monitor command is obeyed if the specified condition is true. The
alternatives MIC provides for the ERROR/NOERROR conditional are discussed
later.
A batch control file called JOB1.CTL could be executed at the user's
Teletype using the command:-
.DO JOB1.CTL
NOTE
1. Users who wish to use MIC in this way
should note that the default error status
when a MIC command is executed at the
teletype is "NOERROR".
2. The commands "IF (ERROR)" AND "IF
(NOERROR)" do not destroy the user's core
image.
3. "IF (ERROR)" "IF (NOERROR)" are
compatible with Multi Programming Batch.
4.4 OPERATOR/NOOPERATOR Command
The Batch command "OPERATOR" is also used in MIC. Its operation is
described in section 7.1.
MIC - Macro Interpreted Commands Page 14
COMMANDS DERIVED FROM DECSYSTEM-10 MULTI-PROGRAM BATCH
4.5 SILENCE/REVIVE Command
These commands are used to suppress typeout on the user teletype throughout
an uninteresting sequence of commands.
Another monitor level command may be placed on the same line as a SILENCE
or REVIVE command (see section 14).
E.g.
.REVIVE .DIR
This has the useful effect of reviving the tty output after the "DIR"
command has been typed. Thus the user sees only the output from the
command, not the command itself.
N.B. A whole command file may be automatically silenced if the file is
given the protection code <2??>. This may be overridden in the command
file by the ".REVIVE" command.
4.6 PLEASE Command
Unlike DECsystem-10 batch, this command is used to communicate with the
initiator of the MIC command. The argument is displayed on the user's
teletype regardless of the SILENCE/REVIVE switch.
If the PLEASE command is terminated by an altmode, MIC typein proceeds
normally, otherwise typein is suspended by a [BREAK] until the user types
^P or a MIC PROCEED command to proceed and [PROCEED] is displayed.
E.g.
.PLEASE LOAD DECTAPE 345
.PLEASE THANKS$
4.7 CHKPNT/REQUEUE Command
The batch pseudo commands CHKPNT and REQUEUE are supported by MIC in the
sense that they are interpreted and discarded. MIC regards them as being a
form of comment and discards the line, though it will be displayed if the
user is not silenced.
The user's core image is not affected.
MIC - Macro Interpreted Commands Page 15
COMMANDS DERIVED FROM DECSYSTEM-10 MULTI-PROGRAM BATCH
4.8 Others
In fact all batch pseudo-commands are legal monitor commands when obeyed
from a MIC command file. MIC extends the batch command format (see section
6) and provides several new commands. Users unfamiliar with DECsystem-10
batch facilities should read DECsystem-10 BEGINNERS GUIDE TO MULTI-PROGRAM
BATCH for a fuller description of the batch commands.
MIC - Macro Interpreted Commands Page 16
LET COMMAND
5.0 LET COMMAND
The general form of the MIC monitor command "LET" is-
.LET <parameter name>=<expression>
Decimal, Integer, Octal or string expressions may be used. Users
parameters to MIC command macro files are held within MIC as ASCII strings.
During the execution of a MIC command macro the LET monitor command may be
used to change any of the parameters (A thro' Z).
E.g.
.LET C="THIS IS THE NEW PARAMETER C"
After this command 'C in the MIC command file would cause the substitution
of the text-
THIS IS THE NEW PARAMETER C
In fact "THIS IS THE NEW PARAMETER C" is the simplest form of a string
expression. A more complicated command sequence could be-
.DO TEST FRED,BAK
.LET Z=$A+"."+$B+"[105,113]"
Dollar A ($A) is used as a reference to the string parameter A. Plus (+)
is a simple concatenation operator. After the LET command the parameter Z
would substitute as the text-
FRED.BAK[105,113]
NOTE
In LET statements which include a carriage
return/line feed within the string quotes MIC
will display a "--" at the start of the new
line.
Simple integer expressions are allowed in the LET command-
E.g.
.LET B=3+C*3^D-4/(A+B)
In this example A B and C are used as references to the value of the
parameters when read as integers. If any referenced parameter may not be
read as an integer an error will result. The operators + * / - ^ have the
usual meaning and precedence. Round brackets may be used to alter the
usual precedence.
MIC - Macro Interpreted Commands Page 17
LET COMMAND
5.1 Byte Subscripting For String Expressions
Often in the LET command it is required to construct new parameters. The
simple string expression has been extended to provide powerful character
subscripting facilities.
The format for a simple subscripted string expression is:-
$A.[<first subscript>,<second subscript>]
Here A may be A-Z. The first subscript is used to specify the first
parameter in character <A> to be used in the subscripted string. The
second subscript specifies the length of the constructed string. Consider
parameter <A> to be a string numbered as follows-
1 2 3 4
---------------------------------
| F | I | R | S | T
----------------------------------
-n -n+1 -n+2 ...
null
n-2 n-1 n char
---------------------------------
L | A | S | T | |
-------------------------------
-4 -3 -2 -1
Fig 1 Character string N bytes long
If the second subscript is omitted the length of the constructed string
defaults to one character.
MIC - Macro Interpreted Commands Page 18
LET COMMAND
E.g.
If the parameter A contained the text ABCDEF
Command Result after command
.LET B=$A.[1] A
.LET B=$A.[2] B
.LET B=$A.[-1] F
.LET B=$A.[99] <null>
If the first subscript is out of range a null string is constructed.
Extending the previous example for two subscripts
.LET B=$A.[1,2] AB
.LET B=$A.[3,2] CD
Subscripts themselves may be string expressions-
.LET B=$A.["AB","F"] CDE
This construction means copy the string in parameter A between the text AB
and F to parameter B.
Repeated subscripts are allowed-
.LET B="DSK:FILE.EXT[105,113]"
.LET B=$B.[":","."].[,"["] FILE
This construction means truncate the object string in parameter B after the
character ":" at the character "." or the character "[".
5.2 Multiple LET Statements
Several LET assignments may follow the one "LET" statement by terminating
every assignment except the last, by a comma.
E.g.
.LET A=1+2,C=$B.[1,2],D=C+"ABCDE"
MIC - Macro Interpreted Commands Page 19
LET COMMAND
5.3 Parameters In Outer Processes
Parameters in an outer MIC process may be referenced in the inner process
by following the parameter by a digit corresponding to the process level -
the current process is regarded as being level 0, the first surrounding
process is level 1 and so on.
Thus:-
.LET B=C1
sets B equal to the contents of the parameter C of the first enclosing
process
And similarly
.LET Q3=C2
sets parameter Q in the third outer process equal to parameter C in the
second outer process.
See also section 9.4.
5.4 Octal Expressions
The "LET" command may also be used to manipulate octal values. An octal
number is always preceded by a "%" sign.
E.g.
.LET A=%11
will assign the value 9 (decimal) to parameter A. Similarly,
.LET C=%13+%17
would store 26 (decimal) in parameter C. Also the format
.LET %A=12
will store 14 (octal) in parameter A and
.LET %A=%A+1
will then store 15 (octal) in parameter A.
MIC - Macro Interpreted Commands Page 20
LET COMMAND
NOTE
As MIC stores all variables as typeless
strings it is up to the user to ensure that
he puts "%" signs where appropriate.
Parameters may also be regarded as storing a number in octal by preceeding
the parameter name by a "%" sign.
E.g.
.LET A="12"
.LET B=%A
will store 10 (decimal) in parameter B.
Octal and Integer values may occur together in the same expression.
E.g.
.LET A=3+%11
would give the value 12 (decimal) in parameter A.
In order to make the manipulation of octal quantities more meaningful two
extra operators are available:-
"&" for AND
"!" for OR
which may be used with both octal and integer values
E.g.
.LET A=%3&%5 1
.LET A=3!5 7
.LET A=%11+7!%11 24 (DECIMAL)
Note that "&" and "!" have the same operator precedence as "*" and "/".
MIC - Macro Interpreted Commands Page 21
EXTENSIONS TO THE IF COMMAND
6.0 EXTENSIONS TO THE IF COMMAND
Using the LET command complicated MIC command parameters may be broken
down. The conditional expression in the MIC IF command may be used to make
more generalised comparisons. Using relational operators strings or
integers may be compared.
Relational Operator Meaning
> greater than
>= greater than or equal
= equal
# not equal
<= less than or equal
< less than
.AND. AND (result non-zero implies TRUE)
.OR. OR (result non-zero implies TRUE)
String comparison occurs from left to right. Corresponding characters are
extracted from the constructed strings and if they are not the same or
either string is exhausted, the result is false. The relational operator
is applied to the two characters using their ASCII value. String
expressions may not be compared with arithmetic, and the ".AND." and ".OR."
relational operators may not be used with strings.
A conditional expression containing a syntax error has the value false.
If the error trapping feature has been enabled using the ERROR command the
ERROR and NOERROR conditional can be used to alter command processing
appropriately.
If the conditional expression is true MIC will pass characters after the
first character "." on the right of the conditional to the monitor. If the
conditional is false, remaining commands on the IF line are ignored.
E.g.
.IF (A>B) .GOTO LABEL
.IF ($A="TRUE") .BACKTO TRUE
.IF (ERROR) .GOTO FIX
.IF (A.AND.%B) .GOTO FRED
N.B. In the first example parameters A and B must contain text which may
be read as an integer. $A is used to reference the contents of parameter A
as a string.
MIC - Macro Interpreted Commands Page 22
EXTENSIONS TO THE IF COMMAND
NOTE
By default lower case letters are not
considered to be the same as upper case
during string comparisons, though this may be
changed by use of the "MIC SET NO LC"
command. See section 12.7.
6.1 Parameters In Outer Processes
Parameters in outer processes may be referred to in "IF" statements by the
method described in section 5.3
N.B. Unlike the "IF (ERROR)" and "IF (NOERROR)" the "IF" extensions
actually run MIC and thus destroy the user's core image.
6.2 Special Tests
Some special tests are built into MIC:-
.IF (COJOB)
is true if this macro is running as a COJOB,
.IF (SUBJOB)
is true if this macro is running under OPSER,
.IF (BATCH)
is true is this macro is running under BATCH,
.IF (TERMINAL)
is true if this macro is running on a terminal.
MIC - Macro Interpreted Commands Page 23
SIMPLE INTERACTION WITH MIC
7.0 SIMPLE INTERACTION WITH MIC
A MIC command is obeyed as if the the user had typed the same text on the
teletype - "type ahead" is not allowed. Some characters have a special
meaning if typed by the user as the MIC command is obeyed.
As MIC commands may be nested, control A is used to abort the current MIC
process and return to the level above. Control C will cancel all MIC
processes the user has in progress. An appropriate message is displayed on
the teletype.
To allow limited user intervention control B will suspend MIC typein and
display [BREAK]. The MIC process may be continued by the user typing a
PROCEED command or a control P. The message [PROCEED] will then be
displayed.
Note that while a process is suspended a user may type MIC commands on the
teletype as well as any monitor commands. This implies that the MIC
control functions have their usual effect, and, for example, using a
control C to exit from "PIP" will cancel the suspended MIC process.
7.1 OPERATOR/NOOPERATOR Commands
Similar to the ERROR command the OPERATOR command takes as its argument one
ASCII printing character to be treated as introducing a line requiring user
attention. If the operator character is seen output in column 1, MIC will
suspend typein and display [BREAK]. The user may supply typein as required
and type control P (PROCEED) to continue processing the command file.
During a BREAK the operator character may be output again in column one to
PROCEED automatically, and [PROCEED] will be displayed.
E.g.
.OPERATOR N
.RUN TEST
NOW TYPE IN YOUR NAME = [BREAK]CYRIL
NICE ONE CYRIL
.[PROCEED]GOTO IT
The operator features are only available after an OPERATOR command. The
default character to the OPERATOR command is "?".
MIC - Macro Interpreted Commands Page 24
SIMPLE INTERACTION WITH MIC
7.2 MIC RESPONSE Command
Often it is required to inspect text displayed by a program particularly
when it denotes an error. The MIC RESPONSE command allows characters
displayed after an error character in column one to be placed in a named
parameter. The format for a MIC RESPONSE command is-
.MIC RESPONSE <parameter name>(<number of characters required>)
E.g.
MIC RESPONSE A(21)
If the error feature has been enabled up to 79 characters following the
error character will be placed in the named parameter. The command is used
to reserve space for the response and the parameter is filled with spaces.
When an error occurs the text on the error line is copied character by
character until a null character is encountered in the reserved space or in
the error text. Any remaining space is removed from the named parameter.
7.3 MIC DISPLAY Command
This command is used to output the contents of a user parameter or
parameters on the user's terminal.
E.g.
.LET A="HELLO FRED"
.MIC DISPLAY A
HELLO FRED
.
This output overrides any silence condition which has been set up, and is
equivalent to
!'A
with the notable difference that it destroys the user's core image.
MIC - Macro Interpreted Commands Page 25
SIMPLE INTERACTION WITH MIC
NOTE
1. This command is useful in immediate mode
- see section 15 - and when used in
WHENEVER/ON commands - see section 11. Note
that in this case they do not destroy the
user's core image.
2. Multiple parameters may be DISPLAYed by
separating each by a comma
E.g.
.LET A="FIRST"
.LET B="-AND-"
.LET C="SECOND"
.MIC DISPLAY A,B,C
FIRST-AND-SECOND
.
3. String constants may also be displayed by
enclosing them in (") quotes
.MIC DISPLAY "THIS IS A MESSAGE"
THIS IS A MESSAGE
4. System parameters may be displayed in a
similar fashion to user parameters
.MIC DISPLAY '<system-parameter> or
.MIC DISPLAY system-parameter
See section 9.2 for further details of system
parameters.
5. If an up-arrow "^" occurs when a string
parameter is being displayed the next
character in the string will be converted
into a control character in the usual way.
MIC - Macro Interpreted Commands Page 26
SIMPLE INTERACTION WITH MIC
7.4 MIC TYPE Command
The MIC TYPE command has a similar format to the MIC DISPLAY command and
types the contents of a user parameter as though the user had typed them.
E.g.
.LET A="DIR
--"
.MIC TYPE A
DIR
.
%DIRECTORY IS EMPTY
The comments made for the MIC DISPLAY command also apply to the MIC TYPE
command.
7.5 MIC WHAT Command
The MIC WHAT command is used to output a brief status report on the user's
currently active macro.
E.g.
.MIC WHAT
ACTIVE [100,100] 53 B2 A=FRED,B=6,C=JIM2
[MIC WHAT]
where:-
ACTIVE - is the current state of the macro
53 - is the user's line number
B2 - is the name of the user's macro
A= ETC. - are the contents of the user's parameters
[MIC WHAT] - is the last line typed by MIC on the user's
behalf.
7.6 MIC SLEEP Command
The MIC command is used to cause MIC to want a certain number of seconds
before typing the next command.
E.g.
.MIC SLEEP n
where n is the number of seconds to wait.
MIC - Macro Interpreted Commands Page 27
SIMPLE INTERACTION WITH MIC
7.7 MIC INPUT Command
This command is used to accept the input of a parameter value from the
user's terminal from within the processing of a MIC command file.
The format of the command is:-
.MIC INPUT p
or
.MIC INPUT p,"<prompt-message>"
where
p is the parameter, normally A to Z, for which the value is to be supplied.
However parameter values may also be input to parameters in outer nested
processes by specifying A1, G3, etc. - (see section 6.1 Parameters in
Outer Processes) and
<prompt-message> is the message output to the user to invite him to type in
the line of input. If the prompt-message is omitted then the input will be
prompted for the display of "Enter parameter p". The prompt message may be
either a string variable or a string constant and may include carriage
returns and linefeeds. If it contains double-quotes (") then they must be
doubled ("").
The execution of the MIC INPUT command allows the user to input a single
line of information from his terminal and have it included in parameter p.
The line should not be in double quotes, though it may include double
quotes and the input will end on any break character.
This command overrides any silence condition in order to display the prompt
message and accept the input. The job will, if appropriate, return to the
silenced condition after the input has been accepted.
The MIC INPUT command uses the BREAK and PROCEED facilities of MIC and when
MIC has displayed the prompt-message it enters the BREAK state until the
input has been read whereupon the process proceeds automatically. However
the normal [BREAK] and [PROCEED] messages are not displayed and any action
which the user has defined for [BREAK] or [PROCEED] (using WHENEVER/ON)
will be ignored.
MIC - Macro Interpreted Commands Page 28
SIMPLE INTERACTION WITH MIC
E.g.
.MIC INPUT A ;typed from MIC macro
Enter parameter A? 63 ;63 typed by user
.
or
.MIC INPUT C1, "What is your name?"
What is your name? IAN
.
or
.LET B=What is 2 multiplied by 2?"
.MIC INPUT X,$B
What is 2 multiplied by 2? 3
.
NOTE
1. This command destroys the user's core
image.
2. The prompt string may use string
concatenation and subscripting.
3. When displaying the prompt string the
sequence ^ch will cause the character
control-ch to be displayed, however the input
will store the two characters ^ and ch not
control-ch.
MIC - Macro Interpreted Commands Page 29
MIC CONTROL COMMANDS
8.0 MIC CONTROL COMMANDS
8.1 MIC ABORT Command
Format
.MIC ABORT
MIC aborts the current process as if the user had typed control A and the
message [ABORT] is displayed.
8.2 MIC CANCEL Command
Format
.MIC CANCEL
MIC cancels all pending MIC commands as if control C was typed and the
message [CANCEL] is displayed.
8.3 MIC BREAK Command
Format
.MIC BREAK
MIC suspends typein until -
-operator character displayed
-control P typed
-MIC PROCEED command
and the message [BREAK] is displayed.
This command has the same effect as the user typing control B.
8.4 MIC PROCEED Command
Format
.MIC PROCEED
MIC resumes typein if a process has been suspended by a [BREAK], and the
message [PROCEED] is displayed. The user typing control P has the same
effect.
MIC - Macro Interpreted Commands Page 30
MIC CONTROL COMMANDS
8.5 MIC EXIT Command
Format
.MIC EXIT
MIC cancels but no message is displayed.
NOTE
The MIC EXIT cancels all levels of a MIC
macro.
8.6 MIC RETURN Command
Format
.MIC RETURN
Acts as an "ABORT" command but no message is displayed. Thus the MIC
RETURN command is the preferred exit from a MACRO as outer levels of macros
are not affected.
The RETURN command may be used to provide a return to any label in an outer
label macro by using
.MIC RETURN .BACKTO FRED
or
.MIC RETURN .GOTO BILL
when "FRED" and "BILL" are labels in an outer level macro.
MIC - Macro Interpreted Commands Page 31
SPECIAL PARAMETERS
9.0 SPECIAL PARAMETERS
9.1 System Parameters
9.1.1 Parameter Substitution -
A construction of the form '<system parameter name> allows access to
various system parameters.
E.g.
'<JOB> is replaced by the user's job number.
The full set of system parameters is:-
System parameter name substitute as
PPN [project,programmer]
TTY line number
JOB job number
PROJECT project number
PROGRAMMER programmer number
DATE current date
TIME current daytime
GETTAB<table>,<index>,<radix>
Entry in GETTAB table in
the appropriate radix.
MICFILE The name of the user's MIC
macro in the form
"DEV:FILE.EXT [PATH]".
LENGTH(parameter) The number of characters in
the parameter.
PATH The user's PATH
PTHPPN The PPN of the user's PATH
ERRCHR Returns the current error character.
OPRCHR Returns the current operator character.
DAY The current day of the week as a text
string.
MIC - Macro Interpreted Commands Page 32
SPECIAL PARAMETERS
Thus the following:-
! MY PPN IS '<PPN>
! MY TTY IS TTY'<TTY>
! THIS JOB IS JOB NUMBER '<JOB>
Would result in:-
MY PPN IS [2250,7]
MY TTY IS TTY21
THIS JOB IS JOB NUMBER 10
9.1.2 GETTABS -
The three parameters of a GETTAB are:-
Table
The table number in decimal of the required GETTAB table. The default is
table 0.
Item
The index to the entry in the table. This index is in decimal, and the
default value is the user's job number. Note that as in the GETTAB UUO -1
may be used to imply the user's job number.
Radix
This is a type-out mode taken from the following set which is used to
decode the entry in the GETTAB table.
RADIX MEANING
1 BIN BINARY (default setting )
2 ASC ASCII
3 SIX SIXBIT
5 OCT OCTAL (including leading zeroes).
6 PPN PPN -gives "[project,programmer]"
7 MSEC time in HH:MM:SS
(GETTAB entry in milliseconds)
8 SEC time in HH:MM:SS
(GETTAB entry in seconds.)
9 OC2 OCTAL (with leading zeroes suppressed)
10 DAT Date in DD-MON-YR (entry in 18-bit)
As an example of the use of GETTABS
!'<GETTAB(25,-1,SIX)>'<GETTAB(26,-1,SIX)>
would cause the user's "USERNAME" to be output.
MIC - Macro Interpreted Commands Page 33
SPECIAL PARAMETERS
Note:-
Constructions of the form
!'<GETTAB(25,'<JOB>,ASC>
are acceptable. As is:-
!'<GETTAB(25,'A,ASC)>
where A is a parameter.
NOTE
In early versions of MIC the type-out mode
was specified by the numeric value given the
the above table (e.g. 4 for decimal). This
format will still work: '<GETTAB(25,'A,ASC)
and '<GETTAB(25,'A,2)> are equivalent.
9.1.3 Octal Arguments To GETTABS -
GETTAB arguments may be supplied in octal by preceding the argument by a
"%" sign,
E.g.
'<GETTAB(%11,-1,ASC)>
This format is useful as the GETTAB tables are specified in octal in the
Monitor Calls Manual.
MIC - Macro Interpreted Commands Page 34
SPECIAL PARAMETERS
9.2 Action Parameters
A special class of MIC parameter is the ACTION parameter. This type of
parameter performs a MIC action without destroying the user's core image.
E.g.
'<SILENCE>
will cause the macro to be silenced. This is similar in effect to the
.SILENCE
command except that the '<SILENCE> does not cause MIC to be run and does
not cause anything to appear in the user's terminal, not even the echo of
the command.
The full list of action parameters is:=
'<ABORT>
'<BREAK>
'<CANCEL>
'<ERROR(ch)>
'<NOERROR>
'<NOOPERATOR>
'<OPERATOR(ch)>
'<PROCEED>
'<RETURN>
'<REVIVE>
'<SILENCE>
'<SLEEP(n)>
and all of these have the same effect as the respective commands.
The effect of an action parameter is always from the start of the line in
which it occurs.
E.g.
'<SILENCE> ABCDEF
'ABC '<SILENCE> DEF
'ABCDEF '<SILENCE>
are all equivalent.
MIC - Macro Interpreted Commands Page 35
SPECIAL PARAMETERS
9.3 Miscellaneous Special Parameters
This is a group of parameters for specialised use.
9.3.1 '<PSHIFT> -
The PSHIFT or parameter shift command causes all parameters to be shifted
by one, that is
discard the contents of parameter A,
then
A:=B, B:=C, C:=D ... X:=Y, Y:=Z
and
Z:=null
This command may be used in a loop for processing a string of identical
parameters.
9.3.2 '<PROTATE> -
Like PSHIFT the PROTATE or parameter rotate command causes all parameters
to be shifted by one. The difference is that PROTATE sets Z equal to A
instead of discarding A. For example:
save the contents of parameter A,
then
A:=B, C:=D, ... X:=Y, Y:=Z
and
Z:= the saved contents of A
9.3.3 String Constants -
Several commonly used strings of constants are now available as MIC
parameters.
9.3.3.1 ALPHABET -
The $ALPHABET or '<ALPHABET> parameter returns a string of the characters A
through Z.
9.3.3.2 NUMERIC -
The $NUMERIC or '<NUMERIC> parameter returns a string of the 4567890.
MIC - Macro Interpreted Commands Page 36
SPECIAL PARAMETERS
9.3.3.3 ASCII -
The $ASCII or '<ASCII> returns the characters with values 1 through 127 in
ASCII character set.
Note
LET A=$ASCII.[50]
returns the character whose ASCII value is 50.
9.3.3.4 CR -
The $CR or '<CR> returns a single carriage return character.
9.3.3.5 CRLF -
The $CRLF or '<CRLF> returns a string of the two characters
<carriage-return> and <line-feed>.
9.4 Substitution Of Parameters In Outer Processes
It is often required to substitute the contents of a parameter in an outer
nested process in a similar way to the "'parameter-name" used for
parameters at the current level. As the syntax "'A1" cannot be used due to
possible confusion the syntax is '<parameter-name-level>.
E.g. to substitute parameter Q in the third outer process we use
'<Q3>
MIC - Macro Interpreted Commands Page 37
LET AND IF EXTENSIONS
10.0 LET AND IF EXTENSIONS
10.1 Use Of System Parameters
The LET command has been extended from that described earlier to allow the
user access to the system parameters described in section 9. By using the
LET statement with a system parameter on the right hand side a user may use
the byte subscripting features of MIC to abstract the portions of a system
parameter that he requires.
.LET B=$JOB
This statement will store the user's job number in parameter B.
Similarly,
.LET B=$PROJECT
will place the user's project number in parameter B.
Concatenation of system parameters is allowed,
E.g.
.LET B="["+$PROJECT+","+$PROGRAMMER+"]"
may be used to obtain the PPN of a MIC user.
Byte subscription of system parameters is allowed,
.LET B=$PROJECT.[-1]
would give the rightmost digit of a user's project number.
10.2 Use Of System Parameters In Arithmetic Assignments
System parameters may also be used on arithmetic assignments. However, as
all except "JOB" and "GETTAB" return only octal numbers it is not normally
a sensible operation, (except with "JOB" and "GETTAB"), unless they are
preceeded by a "%" to indicate that they are to be treated as being octal.
E.g.
.LET A=JOB+2
or
.LET A=GETTAB(1,2,DEC)+JOB-3
or
.LET A=%TTY
or
.LET A=%100&%GETTAB(%53,-1,OCT)
MIC - Macro Interpreted Commands Page 38
LET AND IF EXTENSIONS
10.3 Use Of System Parameters In IF Commands
In a similar fashion to 10.2, system parameters may be used in "IF"
commands, for example to ensure that a particular MIC macro is only run on
a specified terminal, the following check could be included in the macro:-
.IF ($TTY#"21") .MIC ABORT
or
.IF (%TTY#21) .MIC ABORT
The octal arithmetic facility may be combined with the GETTAB parameter to
enable bit testing of the system tables.
E.g.
.IF (%GETTAB(A,'C,OCT).AND. %004001) .LET A="YES"
MIC - Macro Interpreted Commands Page 39
NON PROCEDURAL CALLS TO MIC (WHENEVER/ON COMMAND)
11.0 NON PROCEDURAL CALLS TO MIC (WHENEVER/ON COMMAND)
Simple user interaction with MIC has been described in section 7, but often
the MIC action, on detecting an error condition or one of the special
control functions, is not the required action. A WHENEVER/ON command may
therefore be used to change the default action.
The format of this command is:-
.WHENEVER <EVENT>:<ACTION>
or
.ON <EVENT>:<ACTION>
(NOTE: ON and WHENEVER are synonymous)
The effect of this command is to specify that whenever the <EVENT> occurs,
the specified <ACTION> will be performed rather than the normal default
action.
E.g.
.WHENEVER BREAK:GOTO FRED
This sets up the user's MIC process so that whenever he types control B, or
a MIC BREAK occurs the process will not BREAK but rather will obey the GOTO
FRED command.
The valid events are:-
CANCEL or Control C typed by the user
ABORT or control A typed by the user
BREAK or control B typed by the user
PROCEED or control P typed by the user
and
ERROR
OPERATOR
MIC - Macro Interpreted Commands Page 40
NON PROCEDURAL CALLS TO MIC (WHENEVER/ON COMMAND)
and the valid actions are:-
ABORT
BACKTO <LABEL>
BREAK
CANCEL
DISPLAY <PARAMETER>
ERROR
EXIT
GOTO <LABEL>
OPERATOR
PROCEED
RETURN
TYPE <PARAMETER>
NOTE
1. If ERROR trapping is enabled
E.g.
.ON ERROR:ABORT
MIC does not check the next line for an "IF"
statement or a "%" label; the ABORT is
obeyed immediately.
2. If CANCEL trapping is enabled
E.g
.ON CANCEL:<action>
then the action is reset to the normal action
after every occurrence of the event. This
only applies to ON CANCEL, and is to prevent
users from accidentally creating macros which
cannot be terminated. This feature may be
changed by MIC SET CCTRAP, see next section.
11.1 Multiple WHENEVER/ON Commands
Several default actions may be changed in the same command by separating
the individual arguments by commas, thus:-
.ON ERROR:ABORT,CANCEL:BREAK
or
MIC - Macro Interpreted Commands Page 41
NON PROCEDURAL CALLS TO MIC (WHENEVER/ON COMMAND)
.WHENEVER CANCEL:GOTO FRED,ABORT:GOTO BILL
MIC - Macro Interpreted Commands Page 42
MIC SET COMMAND
12.0 MIC SET COMMAND
This family of commands is used to change the action "MIC" performs upon
certain conditions.
The format of the command is:-
.MIC SET <NO> <ACTION>
E.g.
.MIC SET NO PARAMETERS
This causes MIC to perform no parameter substitutions upon detecting a "'"
character in the input file.
i.e.
'A will "substitute" as 'A
To restore parameter substitution use:-
.MIC SET PARAMETERS
The MIC SET command currently available are:-
12.1 COLUMN1
.MIC SET NO COLUMN1
MIC regards no characters in column one of the user's command file as being
special characters (see section 3).
The default is:-
.MIC SET COLUMN1
12.2 Control Characters
.MIC SET NO CONTROL
MIC does not cause "^X" to substitute as control X.
Default is:-
.MIC SET CONTROL
MIC - Macro Interpreted Commands Page 43
MIC SET COMMAND
12.3 Parameters
.MIC SET NO PARAMETERS
MIC does not perform parameter substitution on detecting a "'" character.
Default is:-
.MIC SET PARAMETERS
12.4 Special Characters
.MIC SET NO SPECIALS
This performs the combined functions of the above three commands.
Default is:-
.MIC SET SPECIALS
12.5 FINMATCH
.MIC SET NO FINMATCH
If this command is obeyed MIC will not regard an occurrence of "%FIN" as
satisfying a search for a label (cf. section 4.1).
The default is:-
.MIC SET FINMATCH
12.6 MSGLVL
The "MIC SET NOT MSGLVL n" may be used to suppress the output of the
messages "[ABORT]", "[BREAK]", "[CANCEL]", and "[PROCEED]". The argument
"n" is a octal number which is used to specify which messages the user
wishes to suppress.
1 supresses [ABORT].
2 supresses [BREAK].
4 supresses [CANCEL].
10 supresses [PROCEED].
MIC - Macro Interpreted Commands Page 44
MIC SET COMMAND
12.7 LC
.MIC SET NO LC
This causes lower case and upper case characters to be treated as
equivalent in string comparisons.
The default is:-
.MIC SET LC
12.8 TRACE
This is a feature which a user may use when debugging a completed MIC
macro. If the command
.MIC SET TRACE
is executed, then MIC displays all labels that are processed during search
commands (GOTO/BACKTO or implied GOTOs due to errors).
The first six characters of every label are displayed in square brackets,
and a carriage return is not displayed until the last label is processed.
Also MIC will display [TRUE] or [FALSE] on the execution of every "IF"
conditional command.
12.9 SILENCE
This is another feature which is useful in debugging MIC macros. If the
command
.MIC SET NO SILENCE
is executed, then MIC will ignore all attempts to silence the current, and
any nested, MIC macros. The default is:-
.MIC SET SILENCE
12.10 CCTRAP
This command is used to enable multiple occurrences of ON CANCEL:<event>.
If the command
.MIC SET CCTRAP
is executed, then MIC will not unset the ON CANCEL:<event> every time it
occurs.
MIC - Macro Interpreted Commands Page 45
MIC SET COMMAND
12.11 Multiple SET Commands
Several SET functions may be performed in the same command by separating
each of the functions by a comma, thus:-
.MIC SET NO PARAMETERS,CONTROLS,NO FINMATCH
MIC - Macro Interpreted Commands Page 46
CCL ENTRY TO MIC
13.0 CCL ENTRY TO MIC
The CCL entry to MIC provides a user program interface to MIC. If MIC from
SYS is run with a runoffset of 1 (by a RUN UUO), MIC will attempt to read
command input from a TMPCOR file called "MIC", or if that is not available,
from a disk file "nnnMIC.TMP" (where nnn is the user's job number), rather
than from the terminal.
This file may contain a single line of input to MIC
E.g.
.TYPE TMP:MIC
DO DOIT A,36,C
.
would cause the MIC macro "DOIT" to be executed if MIC is run with a
runoffset of 1.
The file may contain any MIC command, e.g. LET, IF, GOTO, etc. though in
this case the user must be already running under MIC, otherwise he will get
an appropriate error message. This provides a means of manipulating MIC
parameters via a user program, the user program simply writes a TMPCOR file
and runs MIC as above, with and appropriate "LET" command in the TMPCOR
file.
NOTE
1. The CCL input file is deleted by MIC.
2. Use of TMPCOR is described in the Monitor
Calls Manual.
3. Use of the RUN UUO is described in the
Monitor Calls Manual.
4. Those CUSP's which are loaded with SCAN,
(e.g. LOGIN, QUEUE, DIRECT, etc.) have a
"/TMPFIL" switch, which has the form
/TMPFIL:<NAME>:"<TEXT>"
where:-
<name> is the three character name of a
TMPCOR file to be created
<text> is the contents of the TMPCOR file.
5. The TMPCOR file does NOT contain the
monitor dot or data asterisk.
This switch may be used to create a MIC TMPCOR file and the
MIC - Macro Interpreted Commands Page 47
CCL ENTRY TO MIC
"/RUN:MIC/RUNOFFSET:1" switches used to cause the file to be obeyed.
E.g.
Say a user wished to run a macro called "SETUP" everytime he logged in; he
may type:-
.LOGIN 110,1/RUN:MIC/RUNOFFSET:1/TMPFIL:MIC:"DO SETUP"
As this command is rather long the user would probably include all or part
of it in his "SWITCH.INI" files. (Consult the Operating Systems Commands
Manual for a description of "SWITCH.INI" and the above switches.)
MIC - Macro Interpreted Commands Page 48
MULTIPLE STATEMENTS ON A LINE
14.0 MULTIPLE STATEMENTS ON A LINE
More than one MIC command can be written on a single line by terminating
each command by a "\" character.
E.g.
.LET A=3,B=4 \ .GOTO JIM
This is especially useful in the case of "IF" statements.
E.g.
.IF ($A="DONE") .LET Z="FINISH" \ .GOTO DUNIT
NOTE
1. This only applies to MIC commands. It
does not include normal monitor commands,
except when the monitor command is the last
command on the line.
E.g.
.LET A=3,B=4 \ .ERROR ? \ .DIR ZXCV.ALG
2. All parameter substitution is performed
for the whole line before the first statement
is obeyed.
This means that (assuming parameter A
contains "DIR FRED") an input construction of
the form:-
.LET A=$A.[1,3]+" JIM" \.'A
would result in
.LET A=$A.[1,3]+" JIM" \.DIR FRED
being obeyed.
3. If a error occurs in a statement all
subsequent statements on that line will be
ignored.
4. The "\" may be omitted after several MIC
commands, for example the "REVIVE" command,
for compatability with older macro files.
5. In the case of syntax error in a MIC
command preceeding a "\", the rest of the
line will usually be ignored.
MIC - Macro Interpreted Commands Page 49
IMMEDIATE MODE EXECUTION OF MIC COMMANDS
15.0 IMMEDIATE MODE EXECUTION OF MIC COMMANDS
When a MIC macro is in [BREAK] mode the user may type (to monitor) any MIC
command in addition to any monitor command. This allows the user to
suspend his macro and examine and manipulate his parameters - useful when
debugging complex macros - or perform some action on behalf of the macro.
The GOTO and BACKTO commands when used in this manner do not take effect
immediately, but are effective as soon as the MACRO is proceeded.
N.B.
A special case of the MIC DISPLAY command may be used at any time, even
when the user is not running under MIC. This is the
MIC DISPLAY <system-parameter>
This can be very useful for obtaining information from GETTAB tables (see
sections 7.3 and 9.2) though the user should be aware that the use of this
command does destroy his core image.
APPENDIX A
EXAMPLES OF MIC COMMANDS
Asterisks indicate the scope of a macro command in these examples only.
.;EXAMPLE 1
.;A MIC DEMO - A SIMPLE MACRO COMMAND TO COMPILE POP2
.;LIBRARY FILES
.
.TYPE SYS:POP2.MIC
POP2
COMPILE(LIBRARY([LIB 'A]))
.; A TYPICAL CALL OF THE POP2 MIC MACRO COMMAND.
.DO POP2 KALAH
******
.POP2
CSL POP2 V.26
SETPOP
: COMPILE(LIBRARY([LIB KALAH]));
TO ENTER PROGRAM TYPE KALAH
: ^C
*****
.;AGAIN WITH A DIFFERENT PARAMETER.
.DO POP2 ABSYS
******
EXAMPLES OF MIC COMMANDS Page A-2
.PGOP2
CSL POP2 V.26
SETPOP
: COMPILE(LIBRARY([LIB ABSYS]));
: ^C
******
EXAMPLES OF MIC COMMANDS Page A-3
.;EXAMPLE 2
.;A MIC DEMO OF GOTO COMMANDS.
.;A MIC MACRO WHICH WILL OBEY ONLY SELECTED PARTS OF A FILE
.;(USEFUL IF DISK SPACE IS LIMITED.)
.;(SEVERAL COMMANDS COULD BE KEPT IN ONE FILE)
.;
.TYPE X.MIC
.GOTO 'A
COMP::
;A MACRO TO COMPILE FILES COULD BE HERE.
.GOTO END
DATA::
;A MIC MACRO TO SET UP DATA
.GOTO END
DEMO::
;PARAMETERS ARE
;A="'A"
;B="'B"
;C="'C"
END::
.;ALL COMMANDS FINISH HERE
.;
.;A TYPICAL CALL OF THE X MACRO COULD BE
.;
.DO X COMP
******
.
.GOTO COMP
.
.;A MACRO TO COMPILE FILES COULD BE HERE.
.GOTO END
.
.;ALL COMMANDS FINISH HERE
******
.
.;ANOTHER TYPICAL CALL
.DO X DEMO,FIRST PARAMETER,2ND,NO 3
******
.
.GOTO DEMO
.
.;PARAMETERS ARE
.;A="DEMO"
.;B="FIRST PARAMETER
.;C="2ND"
.
.;ALL COMMANDS FINISH HERE
******
EXAMPLES OF MIC COMMANDS Page A-4
.;EXAMPLE 3
.;A MIC DEMO OF ERROR COMMAND
.;A MACRO TO COMPARE TWO FILES AND DELETE DSK COPY IF THEY
.;ARE THE SAME
.
.TYPE CHECK.MIC
.ERROR ?
.R FILCOM
*TTY:/Q='A.'B
.DELETE 'A
.
.;A TYPICAL CALL - CHECK IF DSK:C.MIC IS A COPY OF SYS:C.MIC
.DO CHECK C.MIC,SYS:
******
.
.ERROR ?
.R FILCOM
*TTY:/Q=C.MIC,SYS:
NO DIFFERENCES ENCOUNTERED
*^C
.DELETE C.MIC
FILES DELETED
C.MIC
01 BLOCKS FREED
******
.;CREATE AN INCORRECT COPY OF C.MIC WITH PIP.
.R PIP
*C.MIC=TTY:
WRONG FILE
Z
*^C
.;AND USE C.MIC TO CHECK IT
EXAMPLES OF MIC COMMANDS Page A-5
.DO CHECK C.MIC,SYS:
******
.
.ERROR ?
.R FILCOM
*TTY:/Q=C.MIC,SYS:
FILE 1) DSK:C.MIC CREATED: 1349 21-JAN-1975
FILE 2) SYS:C.MIC CREATED: 1202 03-OCT-1974
?FILES ARE DIFFERENT
*[ABORT ON ERROR]
C
******
.;MIC ABORTS
EXAMPLES OF MIC COMMANDS Page A-6
.;EXAMPLE 4
.;A MIC DEMO OR IF ERROR
.;AN IMPROVEMENT ON EXAMPLE 3
.;COMPARE TWO FILES AND DELETE DSK COPY IF FILES ARE THE
.;SAME, OTHERWISE COPY AGAIN.
.
.TYPE CHECK.MIC
.ERROR
CHECK::.R FILCOM
*TTY:/Q='A,'B
.IF (NOERROR) .GOTO END
.R PIP
*'B/B/X='A
.BACKTO CHECK
END:: .;FILE 'A TRANSFERRED SUCCESSFULLY TO 'B
.;A TYPICAL CALL - CHECK FRED.SAV ON SYS: IS SAME AS
.;DSK VERSION
.
.DO CHECK FRED.SAV,SYS:
******
.ERROR
.R FILCOM
*TTY:/Q=FRED.SAV,SYS:
FILE 1) DSK:FRED.SAV CREATED: 1359 21-JAN-1975
FILE 2) SYS:FRED.SAV CREATED: 1910 21-JAN-1975
?FILES ARE DIFFERENT
*^C
.IF (NOERROR) .GOTO END
.R PIP
*SYS:/B/X=FRED.SAV
*^C
.BACKTO CHECK
.
.R FILCOM
*TTY:/Q=FRED.SAV,SYS:
NO DIFFERENCES ENCOUNTERED
*^C
.IF (NOERROR) .GOTO END
.
.;FILE FRED.SAV SUCCESSFULLY TRANSFERRED TO SYS:
******
EXAMPLES OF MIC COMMANDS Page A-7
.;EXAMPLE 5
.;A MIC DEMO OF THE LET COMMAND
.;ILLUSTRATED DISTINCTION BETWEEN $A AND A
.
.TYPE LET.MIC
.LET Z=A+B+C
;A+B+C='Z
.LET Z=$A+$B+$C
;CONCATENATED STRING PARAMETERS ARE 'Z
.LET X="'A"+"'B"+"'C"
;BUT CONCATENATION AFTER SUBSTITUTION HAS THE SAME EFFECT
;BUT (") QUOTES ARE REQUIRED FOR STRING LITERALS.
;'X
.
.;USING NUMBERS AS PARAMETERS.
.
.DO LET 4,5,6
******
.
.LET Z=A+B+C
.;A+B+C=15
.LET Z=$A+$B+$C
.;CONCATENATED STRING PARAMETERS ARE 456.
.LET X="4"+"5"+"6"
.;CONCATENATION AFTER SUBSTITUTION HAS THE SAME EFFECT
.;BUT (") QUOTES ARE REQUIRED FOR STRING LITERALS
.;456
.
******
.
.;ANOTHER EXAMPLE WITH NON-NUMERIC PARAMETERS.
.
.DO LET FIRST,<,,,>,THIRD
******
.LET Z=A+B+C
?PARAMETER A "FIRST" IS NOT A NUMBER
.;A+B+C=
.LET Z=$A+$B+$C
.;CONCATENATED STRING PARAMETERS ARE FIRST,,,THIRD
.LET Z="FIRST"+",,,"+"THIRD"
.;CONCATENATION AFTER SUBSTITUTION HAS THE SAME EFFECT.
.;BUT (") QUOTES ARE REQUIRED FOR STRING LITERALS.
.;FIRST,,,THIRD
.
******
EXAMPLES OF MIC COMMANDS Page A-8
.DO LET ,[1,2],5
******
.
.LET Z=A+B+C
?PARAMETER A IS NULL
.;A+B+C=
.LET Z=$A+$B+$C
.;CONCATENATED STRING PARAMETERS ARE [1,2]5
.LET X=""+"[1,2]"+"5"
.;CONCATENATION AFTER SUBSTITUTION HAS THE SAME EFFECT
.;BUT (") QUOTES ARE REQUIRED FOR STRING LITERALS
.;[1,2]5
.
.;NOTE SECOND PARAMETER CONTAINS A COMMA BETWEEN MATCHED BRACKETS
EXAMPLES OF MIC COMMANDS Page A-9
.;EXAMPLE 6
.;A COMPLICATED MIC MACRO COMMAND TO ASSEMBLE MACRO FILES
.TYPE C.MIC
.IF ($A.[1,"/H"]=$A).GOTO KNEW
.REVIVE
; COMPILES MACRO FILES
;
; USE THUS:-
;
; DO C <STANDARD DEVICE FILE-SPEC>/SWITCHES
;
; SWITCHES MAY BE
;
; /L TO DO A LOAD AS WELL
; /CN TO PRODUCE N COPIES
; /H TO TYPE THIS TEXT
;
;'A
KNEW::.ERROR
.LET B=$A.[1,"."].[1,"["].[1,"/"]
.LET C=$A.["/C","/"]
.LET D=$A.[1,"/"]
.IF ($B.[":"] "") .LET B=$B.[":",6]
.IF ($A.[1,"/L"] $A) .LET G="MIC ABORT"
.REVIVE .R MACRO
*'B,'B/C='D
.R CREF
*DSK:'B'B
.Q 'B.LST/COPIES:'C
.'G
.R LINK
*'B/GO
.
.;A TYPICAL CALL WOULD BE (ASSUMING FILE PROTECTION OF 255
.DO C FRED.MAC/C3
******
*FRED,FRED/C=FRED.MAC
NO ERRORS DETECTED
PROGRAM BREAK IS 000001
2K CORE USED
*^C
.R CREF
*DSK:FRED=FRED
[CRFEXC 1K CORE]
*^C
.Q FRED.LST/COPIES:3
TOTAL OF 3 BLOCKS IN LPT REQUEST
.MIC ABORT
.[ABORT]
.
.;NOTE USE OF AUTOMATIC SILENCE TO SUPPRESS UNINTERESTING
.;PARTS OF THE FILE
EXAMPLES OF MIC COMMANDS Page A-10
;EXAMPLE 7
;EXAMPLE OF THE USE OF SYSTEM PARAMETERS
This MIC macro uses the system parameter feature of MIC to
produce a short status report on any job on the system. It is
expected that this macro would run silenced using a "<2??>"
protection code, and the "!" in column 1 is used to output the
information.
If no job number is specified or the job number is negative,
the status of the user's own job is output.
.IF ($A="").LET A=$JOB ;IF NO JOB NO. USE THIS JOB.
.IF (A<=0).LET A=JOB ;IF JOB NO. IS NEGATIVE USE THIS JOB.
.LET B=$GETTAB(25,A,SIX)+$GETTAB(26,A,SIX)
;GET THE USERNAME FOR THIS JOB.
.LET C=$GETTAB(2,A,PPN) ;GET THE JOB'S PPN.
!USERNAME IS 'B LOGGED IN AS 'C
.LET B=$GETTAB(3,'A,SIX) ;GET THE JOB'S PROGRAM NAME.
!CURRENTLY RUNNING 'B
.LET B=$GETTAB(0,A,BIN) ;GET THE JOB'S STATUS WORD.
.LET C=$GETTAB(6,A,BIN) ;GET THE JOB'S PRIVILEGE WORD.
!PRIVILEGE WORD IS 'C
!STATUS WORD IS 'B
.
.; AN EXAMPLE OF A RUN OF THIS MACRO WOULD BE:-
.DO JBSTS
******
STATISTICS ON JOB 3
USERNAME IS BLOGGS FJ. LOGGED IN AS[100,100]
CURRENTLY RUNNING MIC
PRIVILEGE WORD IS 00000000000000000000000000000000000
STATUS WORD IS 00100000000001000001000000000000000
.
NOTE
This is not presented as being the most efficient way to access
this and similar information. It is however, a very easy and
quick way of writing occasional or "one-off" systems programs.
APPENDIX B
COMMAND SUMMARY
.DO FRED ABC,<DEF,I>,[105,113]
MIC will type on the user's behalf from the file
MIC:FRED.MIC (or DSK:FRED.MIC) substituting ABC for
'A,DEF,1 for 'B and [105,113] for 'C.
.LET X="DEF"
MIC will substitute further references in macro command
file to X('X) as DEF.
.IF (ERROR).GOTO LAB
If the previously typed command caused an error condition
MIC will continue processing the command file at LAB::.
.BACKTO LAB2
MIC will unconditionally continue processing after the
first occurrence in the command file of the label LAB2::.
.SILENCE
Suppress I/O to the teletype.
.REVIVE
Restore I/O to the teletype.
.ERROR ?
Treat ? in column 1 as indicating an error condition.
.NOERROR
Disable error checking.
.OPERATOR #
Treat # as indicating an OPERATOR condition.
.NOOPERATOR
Disable OPERATOR checking.
.MIC ABORT
Abort current process.
.MIC BREAK
Suspend current procees.
COMMAND SUMMARY Page B-2
.MIC CANCEL
Stop all processes.
.MIC RETURN
Abort current process but display no message.
.MIC EXIT
Stop running MIC.
.MIC SET NO PARAMETERS
Suppress parameter substitutions.
.ON ERROR:ABORT
Cause MIC to [ABORT] if an error is detected.
.MIC DISPLAY A
Output the contents of parameter A on the user's
terminal.
.MIC TYPE A
Types the contents of parameter A as though the user had
typed them.
.MIC WHAT
Outputs status information on the user's macro.
.MIC INPUT A, PROMPT
This command allows the user to accept the input of a
parameter value from within the processing of a MIC
command file.
APPENDIX C
SYNTAX OF INTEGER AND STRING EXPRESSIONS
C.1 INTEGER EXPRESSIONS
The operators +, * and - have the conventional meaning. The character / is
used for divide, ^ for exponentiation, & for logical AND, and ! for logical
OR. The evaluation of an expression is from left to right with precedence as
follows:-
^ first
*/!& second
+- third
Matching round brackets may be used to arrange the desired order of execution
of operations. The monadic operator - is allowed but the monadic + is not
allowed, since unsigned integers are assumed positive.
Examples:-
-2*(3+2-1)5*(6/2+2) is legal
+2 is not legal
2+(-3*(4*(6+1))) is legal
C.2 SYNTAX - INTEGER EXPRESSION
<DIGIT>::= 0/1/2/3/4/5/6/7/8/9
<INTEGER>::=<DIGIT>/<any-number-of-digits>
<PARAMETER>::=A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z
<NUMERIC-TERM>::=<PARAMETER>/<INTEGER>/<INTEGER-EXPRESSION>
/<SYSTEM-PARAMETER>
<INTEGER-EXPRESSION>::=-<NUMERIC-TERM>/<NUMERIC-TERM>
<NUMERIC-TERM>/<OPERATOR><NUMERIC-TERM>
<OPERATOR>::= +/-/*/"/"//!/&
SYNTAX OF INTEGER AND STRING EXPRESSIONS Page C-2
SYNTAX - INTEGER EXPRESSION
To allow references to be made to parameters in an outer process a qualifier
is allowed to the parameter name, e.g.
If a MIC command is nested three deep A3 would be the parameter A in the
outer process. This extension also applies to string parameters ($A3).
On the left hand side of LET assignment statements the qualifier may be used
to return parameters to an outer level MACRO command, e.g.
.LET A1="TEXT"
C.3 SYNTAX - STRING EXPRESSIONS
<string>::=<any-ASCII-text>
<string-expression>::="<string>"/$<subscripted-string>/
$<system-parameter>
<expression>::=<string-expression>/<integer-expression>
<subscripted-string>::=<string-expression>.[<expression>]/
<string-expression>.[<expression>,<expression>]
To allow the character quote (") to be used within a text string a single
quote (") will be substituted for any double quote ("") encountered within a
string expression.
APPENDIX D
ERROR MESSAGES
Error messages from MIC have the form:-
?MIC<code> <text> - in "<command-name>" COMMAND.
where:-
<code> is a three-character code unique to each error.
<text> is the description of the error as listed in this document.
<command-name> is the name of the MIC command currently being executed.
ERROR MESSAGES Page D-2
ERROR MESSAGES WHICH APPLY ONLY TO SPECIFIC COMMANDS.
D.1 ERROR MESSAGES WHICH APPLY ONLY TO SPECIFIC COMMANDS.
D.1.1 / Or DO Command.
?MICMNR MIC not running please try again
The operator has not started the MIC master program,
and he has a copy of this message displayed on his
console.
?MICDFS Error in device file specification
The specification of the MIC command file did not
follow the general form "dsk:file.ext[path]".
?MICCID Cannot INIT device
The device which the user specified for the command
file is not available.
?MICCOF Cannot OPEN file
The command file could not be found.
?MICPUF PATH.UUO failed
The path specified by the user caused an error when
MIC attempted to use it.
?MICTMC Too many characters in argument
The user's arguments are longer than approximately
500 characters.
?MICBMP Brackets mismatch in parameter
The user has specified a parameter with a
non-matching set of parentheses.
?MICTMP Too many parameters - maximum = 26
The user has attempted to specify more than 26
separate parameters.
?MICCNP Cannot nest processes this deep - maximum = n
The user has specified MIC macros calling MIC macros
to a depth greater than n, where n is an operator
settable parameter.
?MICNTF No TMP file for input
No temporary file was found after an offset one entry
to MIC.
D.1.2 ON Or WHENEVER Command
?MICNAE Not an event
Attempt to use an illegal <event>, see section 11 for
a full list of of events.
ERROR MESSAGES Page D-3
ERROR MESSAGES WHICH APPLY ONLY TO SPECIFIC COMMANDS.
?MICILF Illegal format
MIC cannot understand the arguments given. See
section 11.
?MICNOA No argument
A command of the form
.ON <EVENT>!
has been given.
?MICANA Argument is not an A-Z parameter
A command of the form
.ON <EVENT>:<ACTION> <PARAMETER>
has an invalid parameter.
D.1.3 SET Command
?MICUKA Unknown argument
An invalid MIC SET command has been given.
?MICNPV No privileges to do this
The user has attempted to use a privileged MIC SET
function.
D.1.4 GOTO Or BACKTO Command
?MICNAL No argument for label
The command did not specify a label.
?MICCFL Cannot find LABEL - <label>
The label <label> could not be found in the command
file. This error is always fatal.
D.1.5 LET Command
?MICILC Illegal character "ch" octal "n"
The character ch followed a LET command. Only a
space or a tab should follow a LET.
?MICPMB Parameter must be A-Z not "ch" octal "n"
The parameter on the left hand side of an assignment
was not valid.
ERROR MESSAGES Page D-4
ERROR MESSAGES WHICH APPLY ONLY TO SPECIFIC COMMANDS.
?MICASS Assignment symbol should be = or not "ch" octal "n"
Assignment must be of the general form
LET A = expression
or
LET A < expression
?MICPSE Parameter space exhausted
MIC has no room to store new argument. (Character
space is approximately 500 characters).
D.1.6 Response Command
?MICMRC Maximum RESPONSE is 79 characters
The user has attempted to use a value greater than 79
as his response limit.
?MICRCL RESPONSE command must specify response length
A MIC RESPONSE command did not specify a response
limit.
D.1.7 IF Command
?MICNCD No conditional
The contents of brackets in an IF clause was not a
legal conditional expression.
?MICUCO Unknown conditional operator
The relation operator in a conditional clause was
unknown.
?MICMOT Mismatch of types
An attempt was made to compare an integer expression
with a string expression.
?MICCDN Conditional "cc" not defined
The conditional cc is not known to MIC.
D.1.8 SLEEP Command
?MICIAS Illegal argument
The time specified in a MIC SLEEP command was
invalid.
ERROR MESSAGES Page D-5
ERROR MESSAGES WHICH APPLY ONLY TO SPECIFIC COMMANDS.
D.1.9 DISPLAY/TYPE Command
?MICICA Invalid character follows caret ("^")
The user had attempted to MIC TYPE or MIC DISPLAY on
a character of the form "^5" which is an illegal
control specification.
D.1.10 INPUT Command
?MICIPS Prompt not string
The prompt message argument to the MIC INPUT command
was not a string constant or a string variable or
null.
?MICEIP INPUT has excess arguments
The prompt message argument to the MIC INPUT command
is not terminated by a break character.
D.2 GENERAL SYNTAX ERRORS
The following errors may occur in several MIC commands. Which command the
error actually occurred in is specified by the in "<command-name>" command
section of the error message.
D.2.1 String Expressions
?MICSIC String subscript illegal character "ch" octal "n"
The character "ch" is not valid in string subscript.
D.2.2 Arithmetic Expressions
?MICILC Illegal character "ch" octal "n"
The character ch is not allowed in an arithmetic
expression.
?MICOBN Operator missing between ) and number
Illegal construction of the form )345 in an
arithmetic expression.
?MICONB Operator missing between number and (
Illegal construction of the form 345(.
?MICNMB Number missing between brackets
Illegal construction of the form () in an arithmetic
expression.
ERROR MESSAGES Page D-6
GENERAL SYNTAX ERRORS
?MICNMO Number missing between two operators
Illegal construction in arithmetic expression.
?MICBRM Brackets mismatch
Arithmetic expression is incorrectly bracketed.
?MICPPN Parameter "pp" is not a number
An attempt to include a string in an arithmetic
expression.
?MICPPN Parameter "pp" is null
An attempt to perform arithmetic on an empty
parameter.
?MICGTR GETTAB result "rr" is not a number
An attempt to perform arithmetic on a GETTAB result
which has not been obtained using the correct type
out mode.
?MICGTR GETTAB result is null
An attempt to perform arithmetic on a GETTAB result
which has returned a null.
D.2.3 System Parameters
?MICIAP Illegal action parameter
The user has attempted to use one of the action
parameters in an expression. Action parameters may
only be used via parameter substitution.
?MICMLN "'<LENGTH>" parameter does not work, use $LENGTH only.
?MICLLP "LENGTH requires left parentheses
?MICLRP "LENGTH requires right parentheses
The length function was improperly specified.
?MICPPF PATH function - PATH.UUO failed
System error, please report this error.
?MICEFC Error in system parameter call
Some unspecified error has occurred, usually invalid
syntax.
?MICERT Error return taken by GETTAB UUO
The GETTAB arguments specified by the user are
invalid.
?MICUFN Unknown function
?MICUKF Unknown system parameter
Attempt to use an invalid system parameter.
ERROR MESSAGES Page D-7
GENERAL SYNTAX ERRORS
?MICIAF Illegal argument format for system parameter
An argument is in error, for example an invalid radix
in a GETTAB.
D.2.4 Other
?MICNRM Not running MIC
An attempt to use a MIC command when not inside a MIC
macro.
?MICPNP Attempted reference to parameter in non-existent outer process
The user has attempted to use a parameter of the form
"A1" when there is no outer macro process.
D.3 ERROR MESSAGES WHICH OCCUR DURING THE PROCESSING OF A MACRO
Error messages in this category always terminate the execution of the macro
and the text of the error message does not include the in "<command-name>"
command text.
?MICICF Illegal character follows apostrophe
MIC has attempted to substitute text which is not a
valid parameter.
?MICCFL Cannot find LABEL - <label>
MIC could not find the label specified by a GOTO or
BACKTO command.
?MICCNI Cannot INIT device
The device which held the user's macro file has
become inaccessible during the running of the macro.
?MICMFN Macro file not found
The MIC macro command file has been deleted during
the running of the macro.
?MICCPC Cannot nest parameter calls this deep
An actual parameter contains parameter calls nested
to a depth of greater than 8 levels.
?MICNGN Nested GETTABs are not allowed
?MICNST Nested SLEEPs are illegal
?MICLER Nested LENGTHs are illegal
The above parameters may not be nested in any
combination.
Page Index-1
INDEX
!(exclamation) . . . . . 9
% labels . . . . . . . . 10
%cerr . . . . . . . . . 12
%err . . . . . . . . . . 12
%fin . . . . . . . . . . 11 to 12
*(asterisk) . . . . . . 9
.(dot) . . . . . . . . . 9
:: (double colon) . . . 10 to 11
;(semi-colon) . . . . . 9
=(equals) . . . . . . . 9
? . . . . . . . . . . . 12, 23
Abort . . . . . . . . . 29, 34
Abort command . . . . . 29
Actions . . . . . . . . 40
Alphabet . . . . . . . . 35
Ascii . . . . . . . . . 36
Backto command . . . . . 11
Batch commands . . . . . 11
Break . . . . . . . . . 34
Break command . . . . . 29
Byte subscripting . . . 17
Cancel . . . . . . . . 34
Cancel command . . . . . 29
Ccl entry to mic . . . . 46
Cctrap . . . . . . . . . 40, 44
Chkpnt . . . . . . . . . 14
Column one. . . . . . . 42
Column1. . . . . . . . . 42
Command file . . . . . . 7 to 8
Comments . . . . . . . . 9
Concatenation . . . . . 16
Control . . . . . . . . 42
Control a . . . . . . . 23, 29
Control b . . . . . . . 29
Control c . . . . . . . 29
Control characters . . . 9, 42
Control commands . . . . 29
Control p . . . . . . . 14, 23, 29
Cr . . . . . . . . . . . 36
Crlf . . . . . . . . . . 36
Date . . . . . . . . . . 31
Errchr . . . . . . . . . 31
Error . . . . . . . . . 12, 34
Error processing . . . . 12
Events . . . . . . . . . 39
Exit command . . . . . . 30
Expression-string . . . 16
Expressions-integer . . 16
Finmatch . . . . . . . . 43
Gettab . . . . . . . . . 31
Gettab radix . . . . . . 32
Goto command . . . . . . 11
If . . . . . . . . . . . 13, 21
If command . . . . . . . 13, 21
If extensions . . . . . 21
Interactions . . . . . . 23
Job . . . . . . . . . . 31
Labelled lines . . . . . 10
Labels . . . . . . . . . 10 to 11
Lc . . . . . . . . . . . 44
Length . . . . . . . . . 31
Let command . . . . . . 16, 36
Let extensions . . . . . 36
Line numbers . . . . . . 8
Mic abort . . . . . . . 29
Mic cancel . . . . . . . 29
Mic display command . . 24
Mic input . . . . . . . 27
Mic response . . . . . . 24
Mic return . . . . . . . 30
Mic set . . . . . . . . 42
Mic sleep . . . . . . . 26
Mic type . . . . . . . 26
Mic what . . . . . . . 26
Micana . . . . . . . . . D-3
Micass . . . . . . . . . D-4
Micbmp . . . . . . . . . D-2
Micbrm . . . . . . . . . D-6
Miccdn . . . . . . . . . D-4
Miccfl . . . . . . . . . D-3, D-7
Miccid . . . . . . . . . D-2
Miccni . . . . . . . . . D-7
Miccnp . . . . . . . . . D-2
Miccof . . . . . . . . . D-2
Miccpc . . . . . . . . . D-7
Micdfs . . . . . . . . . D-2
Micefc . . . . . . . . . D-6
Miceip . . . . . . . . . D-5
Micert . . . . . . . . . D-6
Micgtr . . . . . . . . . D-6
Miciaf . . . . . . . . . D-7
Miciap . . . . . . . . . D-6
Micias . . . . . . . . . D-4
Micica . . . . . . . . . D-5
Micicf . . . . . . . . . D-7
Micilc . . . . . . . . . D-3, D-5
Micilf . . . . . . . . . D-3
INDEX Page Index-3
Micips . . . . . . . . . D-5
Micler . . . . . . . . . D-7
Micllp . . . . . . . . . D-6
Miclrp . . . . . . . . . D-6
Micmfn . . . . . . . . . D-7
Micmln . . . . . . . . . D-6
Micmnr . . . . . . . . D-2
Micmot . . . . . . . . . D-4
Micmrc . . . . . . . . . D-4
Micnae . . . . . . . . . D-2
Micnal . . . . . . . . . D-3
Micncd . . . . . . . . . D-4
Micngn . . . . . . . . . D-7
Micnmb . . . . . . . . . D-5
Micnmo . . . . . . . . . D-6
Micnoa . . . . . . . . . D-3
Micnpv . . . . . . . . . D-3
Micnrm . . . . . . . . . D-7
Micnsi . . . . . . . . . D-7
Micntf . . . . . . . . . D-2
Micobn . . . . . . . . . D-5
Miconb . . . . . . . . . D-5
Micpmb . . . . . . . . . D-3
Micpnp . . . . . . . . . D-7
Micppf . . . . . . . . . D-6
Micppn . . . . . . . . . D-6
Micpse . . . . . . . . . D-4
Micpuf . . . . . . . . . D-2
Micrcl . . . . . . . . . D-4
Micsic . . . . . . . . . D-5
Mictmc . . . . . . . . . D-2
Mictmp . . . . . . . . . D-2
Micuco . . . . . . . . . D-4
Micufn . . . . . . . . . D-6
Micuka . . . . . . . . . D-3
Micukf . . . . . . . . . D-6
Miscellaneous special parameters 35
Msglvl . . . . . . . . . 43
Multiple let statements 18
Multiple on commands. . 40
Multiple set commands . 45
Multiple statements on a line 48
Multiple whenever commands. 40
Noerror . . . . . . . . 12, 34
Non procedural calls . . 39
Nooperator . . . . . . . 23, 34
Numeric . . . . . . . . 35
Octal arguments to gettabs 33
Octal expressions . . . 19
On command . . . . . . . 39
Operator . . . . . . . . 34
Operator . . . . . . 23
Operator character . . . 23, 29
Operator command . . . . 13
Oprchr . . . . . . . . . 31
Outer processes . . . . 19
INDEX Page Index-4
Parameter substitution . 9, 31, 43
Parameters . . . . . . . 43
Parameters in outer processes 19, 22
Path . . . . . . . . . . 31
Please command . . . . . 14
Ppn . . . . . . . . . . 31
Proceed . . . . . . . . 34
Proceed command . . . . 14, 29
Programmer . . . . . . . 31
Project . . . . . . . . 31
Protate . . . . . . . . 35
Protection codes . . . . 14
Pshift . . . . . . . . . 35
Pthppn . . . . . . . . . 31
Requeue . . . . . . . . 14
Response . . . . . . . . 24
Return . . . . . . . . . 34
Return command . . . . . 30
Revive . . . . . . . . . 34
Revive command . . . . . 14
Silence . . . . . . . . 9, 34, 44
Silence (protection code) 14
Silence command . . . . 14
Sleep . . . . . . . . . 34
Sleep command . . . . . 26
Special characters . . . 9, 43
Special parameters . . . 31
Special tests . . . . . A-1
Specials . . . . . . . . 43
String constants . . . . 35
String-comparisons . . . 21
Substitution of parameters in outer processes A-6
System parameters . . . 31
Time . . . . . . . . . . 31
Tmpcor . . . . . . . . . 46
Tmpfil . . . . . . . . . 46
Trace . . . . . . . . . 44
Tty . . . . . . . . . . 31
Whenever command . . . . 39
[abort on error] . . . . 12
[abort] . . . . . . . . 29
[break] . . . . . . . . 14, 23, 29
[cancel] . . . . . . . . 29
[proceed] . . . . . . . 14, 23, 29
\ (backslash) . . . . . 48
^a . . . . . . . . . . . 23, 29
^b . . . . . . . . . . . 29
^c . . . . . . . . . . . 23, 29
^p . . . . . . . . . . . 14, 23, 29