mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-01 09:21:15 +00:00
3534 lines
95 KiB
Groff
3534 lines
95 KiB
Groff
|
||
|
||
|
||
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
|
||
|