HPlogo MPE/iX Intrinsics Reference Manual > Chapter 10 Command Definitions (QUIT-ZSIZE)

SEARCH

MPE documents

Complete PDF
Table of Contents
Index

Edition 7 E0701 ♥
Edition 7 E0300
Edition 6 E0195

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
Manuals




RESETDUMP


SENDMAIL