HP 3000 Manuals

VPLUS Enhancements [ COMMUNICATOR 3000 MPE MPE/iX RELEASE 4.0 ] MPE/iX Communicators


COMMUNICATOR 3000 MPE MPE/iX RELEASE 4.0

VPLUS Enhancements 

by Cory Cooper 
Commercial Systems Division 

VPLUS includes the following three new enhancements:  native character
recognition for the MATCH statement, new state codes for the $STATE
table, and the VGETARBINFO intrinsic.

NATIVE CHARACTER PATTERN MATCHING 

VPLUS has been enhanced to allow native character pattern matching as an
option for VPLUS MATCH statements.  The VPLUS intrinsics and FORMSPEC
have been enhanced to allow the application writer the option of choosing
the Native Language Support (NLS) native character pattern matching
facility instead of th existing VPLUS (Native 3000 only) pattern matching
facility.

A new field has been added on the Terminal/Language Selection Menu to
enable native character recognition for the existing MATCH statement.
The field is named "Native character pattern matching," and allows Y of N
as input.  A Y or y value enables native pattern matching.  This field
defaults to N for new forms files and defaults to blank for existing
forms files.

NEW STATE CODES ADDED 

The following new valid postal abbreviations have been added to the
$STATE table for FORMSPEC edits:

       AP: Area Pacific
       AA: Area Americas
       AE: Area Europe
       FM: Federated States of Micronesia
       MH: Marshall Islands
       MP: Northern Mariana Islands
       PW: Palau

NEW VGETARBINFO INTRINSIC 

A new VPLUS intrinsic has been added to retrieve the VPLUS ARB field
mapping information.  The intrinsic is named VGETARBINFO and is callable
as follows:

     CALL "VGETARBINFO" USING VPLUS-COMAREA,
                              ARB-INFO-BUF,
                              INFO-BUF-LEN.

     Record VPLUS-COMAREA.  << use existing definitions >>

     Record ARB-INFO-BUF:
       Record ARB-INFO-HEADER:

         2 byte integer NUM-OF-ENTRIES;     << input only >>
         2 byte integer ENTRY-LEN;          << input only >>
         16 byte array FORM-NAME;           << input only >>
         16 byte array FILLER;              << reserved for future use >>
         2 byte integer NUM-ARB-FLDS.       << output only >>

       Table of record ARB-INFO-DETAIL:

         2 byte integer FIELD-NUM;          << input only >>
         10 byte array ARB-DATA-TYPE;       << output only >>
         2 byte integer ARB-DATA-LEN;       << output only >>
         2 byte integer ARB-BUF-OFFSET.     << output only >>

     2 byte integer INFO-BUF-LEN.   << total 2 byte word length of >>
                                    << ARB-INFO-BUF, minimum valid >>
                                    << length is 27.               >>

NUM-OF-ENTRIES indicates number of ARB-INFO-DETAIL table entries and must
be zero or greater; if number of entries is zero then the intrinsic
returns immediately to the application (in other words, does a no-op).

ENTRY-LEN indicates size of ARB-INFO-DETAIL table entries (in 2 byte
words), and must be equal to the value of 8.

FORM-NAME contains left justified, upshifted form name of 1 to 15
characters, blank terminated.

FILLER is reserved for future use and should be initialized to 16 blanks.

NUM-ARB-FLDS at output indicates the number of ARB fields defined for the
specified form.  Values for NUM-ARB-FLDS range from zero (no active ARB
fields in specified form ARB; all are filler), to 128 (maximum number of
fields in any one form).


NOTE If this intrinsic is called for a form with zero active fields in the form's ARB, the intrinsic continues to process all ARB-INFO-DETAIL entries, returning $NOTARBFLD for each entry.)
FIELD-NUM is ARB-INFO-DETAIL table key and contains field number assigned by FORMSPEC. ARB-DATA-TYPE at output contains field type conversion notation from FORMSPEC, for example, CHAR, DINT, SPACK2, or token $NOTARBFLD, which indicates that the requested field does not exist within the ARB. ARB-DATA-LEN at output contains ARB field length in bytes (not updated if field does not exist in ARB). ARB-BUF-OFFSET at output contains zero relative byte offset of the ARB field (not updated if field does not exist in ARB).


MPE/iX Communicators