HP 3000 Manuals

PSP/3000 Available in Native Mode [ COMMUNICATOR 3000/XL: XL REL. 2.2 (A.41.00) ] MPE/iX Communicators


COMMUNICATOR 3000/XL: XL REL. 2.2 (A.41.00)

PSP/3000 Available in Native Mode 

by Mike Paivinen--Commercial Systems Division 

The HP 3000 Printer Support Package is now supported in native mode (NM)
through the use of switch stubs.  These switch stubs allow NM programs
written in COBOL/XL, Pascal/XL, FORTRAN 77/XL, or C/XL to access the PSP
intrinsics.  There are very few differences between using PSP/3000 in
compatibility mode and in NM.

LANGUAGE-SPECIFIC CONSIDERATIONS 

Most NM PSP intrinsics function identically to their compatibility mode
counterparts.  There are some exceptions that may require changing your
source code, but these changes will not affect your program's operation
in compatibility mode.

COBOL 

The PSP switch stubs assume that the calling program has passed
parameters that are exactly in accordance with the documentation.  For
example, the documentation states that a form name is sixteen characters
long.  If you have defined a form name variable that is fewer than
sixteen characters long, a data memory protection trap can occur.  (Note
that the name of the form need not be sixteen characters long, but the
variable that holds it must be.)  The same is true of real numbers passed
in as ASCII characters (e.g., in PPRINTRASTERA).

PASCAL/XL, FORTRAN 77/XL, and C/XL 

All of the PSP intrinsics that return real numbers return them in IEEE
format rather than HP 3000 format.  In addition, all intrinsics that
accept real parameters expect them in IEEE format.  This is in accordance
with NM conventions but may require that you convert HP3000-format
floating point numbers to IEEE format with the HPFPCONVERT intrinsic.

All Languages 

In most cases, if those compatibility mode intrinsics that return values
to the caller cannot execute because of an error, the buffers supplied by
the application program remain unchanged.  However, if a NM call to a PSP
intrinsic results in an error, the values of any variables that would be
used to return a value are undefined.

ADDITIONAL STATUS RETURNS 

The NM PSP intrinsics can return two status codes that are never returned
by the compatibility mode intrinsics.  A return value of 9000 indicates
that the switch to compatibility mode failed.  The value of the third and
fourth words of the PSP comarea are set to the status value returned by
the HPSWITCHTOCM intrinsic.

In addition, a status of 9001 may be returned and indicates that the
HPFPCONVERT intrinsic failed.  The third and fourth words of the PSP
comarea are set to the status value returned by the HPFPCONVERT
intrinsic.

In either case, the PERRMSG intrinsic will return the appropriate
HPSWITCHTOCM or HPFPCONVERT error message.

PERFORMANCE 

For most applications, the NM PSP intrinsics will neither improve nor
degrade the performance of the application program.  However, they will
allow the remainder of the application to run in native mode, generally
improving overall performance.  There are a few exceptions to this:

 *  If the program consists primarily of simple I/O and calls to the PSP
    intrinsics, there may be some performance degradation.  Such programs
    should be left in compatibility mode unless NM is required to take
    advantage of other MPE XL services.

 *  If the program uses a very large PSP comarea (larger than ~5,000
    words), there may be some performance degradation.



MPE/iX Communicators