MYCOMMAND [ MPE/iX Intrinsics Reference Manual ] MPE/iX 5.0 Documentation
MPE/iX Intrinsics Reference Manual
MYCOMMAND
NM and CM callable (difference noted below).
Parses (delineates and defines) parameters for a user-defined command
image.
Syntax
___________________________________________________
| |
| I16 CA CA |
| entrynum:=MYCOMMAND(cmdimage,delimiters, |
| I16V I16 I32A|
| maxparms,numparms,params,|
| CA @* |
| dictionar,definition); |
___________________________________________________
Functional Return
entrynum 16-bit signed integer (assigned functional return)
Returns the command entry number. If the
dictionary parameter is not specified, 0 is
returned.
Parameters
cmdimage character array (required)
A cmdimage must begin with an alphabetic character.
The first non-alphanumeric character (or space)
encountered terminates the command name. Whatever
follows is interpreted as an element of the
parameter list.
Passes one of two things:
* Command name (if the dictionary parameter is
specified), then parameters and a
carriage-return character (%15). The
command name is delimited by the first
nonalphanumeric character and cannot be
preceded by any leading blanks. One or more
blanks is expected after the command name,
preceding the parameter list. The
parameters are formatted and referenced in
the params array and cmdimage is converted
to uppercase, and the character array
specified by dictionary is searched for a
name matching the command.
* Command parameters (if the dictionary
parameter is not specified), then a
carriage-return character (%15). These
parameters are formatted. Leading and
trailing blanks are ignored. Lowercase is
upshifted.
delimiters character array (optional)
Passes a string of up to 32 legal delimiters, each
of which is an ASCII special character. The last
character must be a carriage return. Each
delimiter is identified later by its position in
this string.
Default: The delimiter array ",=; (carriage
return)".
maxparms 16-bit signed integer by value (required)
Passes the maximum number of parameters expected in
cmdimage. Accepts values from 0 to 8192.
numparms 16-bit signed integer by reference (required)
Returns the number of parameters found in cmdimage.
params 32-bit signed integer array (required)
Returns an array of maxparms entries. Numparms
entries are returned that delineate the parameters.
Each entry consists of two 32-bit words. When the
intrinsic is executed, the first numparms entries
are returned to your process in this array, with
the first entry corresponding to the first
parameter, the second entry corresponding to the
second parameter, and so forth. The parameter
fields of cmdimage are delimited by the delimiters
specified in delimiters. The pointer in the first
word of each entry points to the parameter in
cmdimage. The string in cmdimage is upshifted.
The second word of params contains the delimiter
number and parameter information. Each word in the
array named by params contains the following
information:
* Word 1: The pointer to the first character
of the parameter. If the parameter is empty
or all blanks, the pointer indicates the
location of the delimiter.
* Word 2: Bits that describe the parameter:
Bits Value/Meaning
27:5 The zero-relative position of the delimiter in
delimiters. For example, if you use the default
delimiters array and the current parameter is
delimited by a semicolon, this field contains 2.
26:1 Special characters indicator bit (set by MYCOMMAND):
0 The parameter contains no special characters.
1 The parameter contains special characters other
than those listed in delimiters.
Table 4-25. (cont.)
Bits Value/Meaning
25:1 Numeric character indicator:
0 The parameter does not contain numeric
characters.
1 The parameter contains numeric characters.
24:1 Alphabetic characters indicator:
0 The parameter does not contain alphabetic
characters.
1 The parameter contains alphabetic characters.
16:8 The length of the parameter in bytes. This value is
zero if you omit the parameter.
0:16 Always zero.
dictionary character array (optional)
Passes the character array that is to be searched
for the command name in cmdimage. The format must
be identical to that of the dictionary parameter in
the SEARCH intrinsic. The command, delimited by a
blank, is extracted from cmdimage, and the SEARCH
intrinsic is called with the command name used as
the buffer parameter of SEARCH. If the command name
is found in dictionary, the functional return is
its entry number. If the command is not found, or
if the dictionary parameter is not specified, the
functional return is zero. If dictionary is
specified, but the command name is not found in
dictionary, the parameters specified in cmdimage
are not formatted.
If this parameter is omitted, the functional return
is 0.
definition (NM) 32-bit address (optional)
(CM) 16-bit address (optional)
Returns a pointer to the byte following the command
in dictionary. This should be the definition, but
may be invalid if definition is not used for a
command. Check the return status before the
pointer is used.
Operation Notes
The MYCOMMAND intrinsic analyzes the command string, identifying the
location and characteristics of each parameter. If the dictionary is
specified, the first parameter is considered a command name. The array
specified in dictionary is searched for the command name. This
dictionary is specially formatted as a SEARCH intrinsic array. (Refer to
the SEARCH intrinsic for the format of the array.) The entry number for
the match is returned in entrynum. If a definition exists for the
matching entry, its address is returned in definition.
All remaining entries in the command string are analyzed as parameters.
(If dictionary is not entered, all input is considered parameter data.)
A parameter consists of all characters from the current pointer position
to the next delimiter. A pointer to first character is determined.
Valid delimiters are defined in delimiters or by the default delimiter
",=;(carriage return)". The delimiter type is identified by its position
in the defined delimiter list, for example, a comma is identified as 1,
and a semicolon as 3. The contents of the parameter are identified as
special characters, numeric, or alphanumeric characters.
Results of the analysis are returned in the array params. Two words of
information are specified for each parameter. The location pointer is
entered in word 1, and the delimiter and character information are
entered in word 2 for each parameter. A maximum of maxparms parameters
are analyzed. The actual number of parameters found are returned to
numparms. The params array can then be referred to in subsequent
commands to access the parameter data.
If the number of characters in cmdimage exceeds 255 characters and no
delimiter is present, the calling process is aborted and the following
error message is printed:
PARSED PARAM OF COMIMAGE > 255 CHARACTERS
Condition Codes
CCE (2) Request granted. The parameters were formatted,
without exception. If dictionary was specified,
the functional return is the command entry number.
CCG (0) Request granted. More parameters were found in
cmdimage than were allowed by maxparms. Only the
first maxparms of these parameters were formatted
in params and returned.
CCL (1) Request denied. The dictionary parameter was
specified, but the command name was not located in
the array dictionary. The parameters in cmdimage
were not formatted.
Related Information
Intrinsics SEARCH
Commands None
Manuals None
MPE/iX 5.0 Documentation