Migration Issues [ Migration Process Guide ] MPE/iX 5.0 Documentation
Migration Process Guide
Migration Issues
The following headings discuss VPLUS migration issues.
Terminal Configuration
All terminals must be configured for XON/XOFF handshaking.
Supported Terminals
The following terminals are supported:
* HP 2392A
* HP 2394A
* HP 150
* HP 2393A
* HP 2397A
* HP 2625A
* HP 2628A
* HP 7009X
The following terminals are supported if the firmware revision conditions
in parentheses are met:
* HP 2622A (rev D 1818-3199)
* HP 2623A (rev B 1818-3223)
* HP 2624B (rev B 1818-3139)
* HP 2627A (rev B 1818-3487)
Unsupported Terminals
The following terminals are not supported:
* HP 2382A
* HP 2621A
* HP 2621B
* HP 2621P
* HP 2626A
* HP 2626W
* HP 264x
* HP 3075
* HP 3076
* HP 3081A
Pascal Integers
In HP Pascal/iX, all references to integers in the COMAREA must be of
type SHORTINT (a new 2-byte compiler-defined type for the HP Pascal/XL
compiler) as opposed to type INTEGER (-32768...32767) which is
interpreted as 4 bytes.
Data Alignment
VPLUS intrinsics continue to expect data that is aligned on 16-bit
boundaries. For example, in a Pascal program, the record structures
declared for the VPLUS INFO intrinsics may need to be packed to ensure
16-bit data alignment.
Real Data Types
Real data type conversions continue to assume Hewlett-Packard real format
for VGETREAL, VGETLONG, VPUTREAL, and VPUTLONG. New IEEE conversion
intrinsics (VGETIEEEREAL, VGETIEEELONG, VPUTIEEEREAL, and VPUTIEEELONG)
are available.
NM Stubs
Programs with incorrect parameter values which run successfully in CM may
not run in NM. Many of these incorrect parameters will be detected by the
native mode stubs which have an additional level of parameter checking
not present in the VPLUS intrinsics.
Terminal Refresh
After a powerfail or hard reset, refresh works differently on an
MPE/iX-based system than it does on an MPE V/E-based system. On MPE/iX,
the terminal falls into character mode while the driver still expects
block mode transmissions. A singular pressing of a terminal function key
will not be "heard". The user must additionally terminate the read by
pressing Shift CTRL 6, the record separator control character.
Vectra With Type Ahead Enabled
Verify your Vectra's terminal configuration before using it to run block
mode applications. Ensure that the "Type Ahead" field on the Terminal
Configuration Screen is set to NO. To verify the current value for "Type
Ahead", return to Advancelink Main. Press the F6 key (the function )
Again press key labeled "Terminal"). Again press the F6 key (now labeled
the "Config Keys"). Press the F5 key to get to the Terminal
Configuration Screen. If the "Type Ahead" field contains YES, change the
value to NO. Save the new value by pressing the F1 key.
If a block mode application is run on a Vectra while the "Type Ahead"
value is set to YES, a form will be painted. However, the keyboard will
remain in a locked state. To clear this terminal hang, press CTRL F10 to
flush the type ahead buffer. Next, press the F8 key to exit the
application. Follow the directions above to reconfigure the "Type Ahead"
field on the Terminal Configuration Screen.
Call Intrinsic
In general, the NM COBOL II/XL compiler requires that intrinsics be
called with the Call Intrinsic mechanism. The only exceptions to this
are the VPLUS and IMAGE intrinsic calls. For compatibility reasons the
COBOL II/XL compiler will recognize these calls and assume Call
Intrinsic. A warning will be issued when using Call Intrinsic on MPE
V/E. While Customers preparing for migration of COBOL applications are
not required to use the Call Intrinsic mechanism for VPLUS and IMAGE
intrinsics, they must still plan to use the Call Intrinsic mechanism for
other intrinsics.
NOTE On MPE V, the Call Intrinsic mechanism examines the SPLINTR file
and determines the type of addressing that the intrinsic expects.
VPLUS examines the language ID and, if it is 0 (that is, COBOL),
VPLUS assumes all the addresses are word addresses. If the Call
Intrinsic mechanism is used, this is an invalid assumption and
erroneous results are likely. Therefore, the programmer should
"fool" VPLUS by using a language ID of 5 (Pascal).
On MPE/iX, the COBOL II/XL compiler generates byte addresses and
the VPLUS stub will prevent VPLUS from doubling the address (in an
attempt to convert from word addresses to byte addresses).
Non-VPLUS I/O
Often, application designers resort to using FREAD, FWRITE, and
input/output verbs of a programming language to display and retrieve
information from the terminal within the VPLUS context. The situation
becomes more complex when the application also controls the terminal
settings as well as the driver settings. A likely end result is an
application which runs in a restricted environment, such as on an ATP,
and on one kind of terminal only. The same application may not run in a
different environment such as over X.25 or on a different kind of
terminal. Two new VPLUS procedures are provided to assist the
application designer in producing more portable and more easily
maintainable applications. These two procedures are:
* VTURNOFF
* VTURNON
VOPENTERM configures the driver and the terminal for block mode access.
VCLOSETERM configures the terminal and driver for character mode access.
These procedures initialize the terminal in many ways including clearing
the screen image. VTURNON and VTURNOFF reconfigure the terminal and
driver but leave the terminal screen image intact. The procedure
VTURNOFF allows the application to momentarily switch to character mode
from block mode without disturbing the screen. A call to VTURNON will
reconfigure the terminal back to block mode.
For example, a program which accesses a printer slaved off a terminal
while that terminal is using VPLUS should use VTURNON and VTURNOFF.
VTURNOFF would be called, followed by the FWRITEs to the printer. Then
VTURNON should be called.
Refer to the VTURNON and VTURNOFF intrinsics descriptions later in this
appendix for further discussion.
MPE/iX 5.0 Documentation