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