|
|
NM and CM callable (differences noted below).
Searches a specially-formatted array for a specified entry or name.
Syntax
I16 CA I16V CA @*
entrynum := SEARCH (buffer, length, dictionary, definition);
Functional Return
- entrynum
16-bit signed integer (assigned functional return)
Returns the entry number of the name in dictionary that
matches buffer. If the name specified in
buffer is not found, a zero is returned.
Parameters
- buffer
character array (required)
Passes the name for which the search is to be performed.
- length
16-bit signed integer by value (required)
Passes the length, in characters, of the array
buffer.
- dictionary
character array (required)
Passes the name of the specially formatted array that is to be searched
for buffer.
- definition
(NM) 32-bit address (optional)
(CM) 16-bit address (optional)
Returns the address of the command entry definition in
dictionary.
Operation Notes
The SEARCH intrinsic requires a specially formatted array of
sequential entries. Each entry in the array is formatted in the following way:
- byte 1
An integer that specifies the length (in bytes) of the entire entry.
(The length includes this byte.)
- byte 2
An integer that specifies the length (in bytes) of the name.
- bytes 3 +
A string containing the name. (This name and the name length are
checked against the search string for a match.)
- bytes x +
An optional string containing a user-defined definition.
The last entry in the array is a zero, specifying the end of the array as an
entry of zero length. The following model creates an array to expand
abbreviated input (name) to its appropriate command (definition).
5,1,"I","IN",
6,1,"O","OUT",
7,1,"S","SKIP",
7,1,"E","EXIT",
0;
In this model, the first entry specifies that the entry's length is five bytes.
The name ("I") is one byte and its definition is "IN". A 1 is returned in the
entrynum signifying that the matching name was the first entry
in the array. (If no matching entry is found, a 0 is returned.) The address of
the definition, if specified, is returned in definition of the
SEARCH intrinsic call.
Because a search is linear, the most frequently used names should appear at the
beginning of the array to ensure efficient searching.
Related Information
|