HP 3000 Manuals

SEARCH [ MPE/iX Intrinsics Reference Manual ] MPE/iX 5.0 Documentation


MPE/iX Intrinsics Reference Manual

SEARCH 

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 

Intrinsics            MYCOMMAND

Commands              None

Manuals               None



MPE/iX 5.0 Documentation