Undetected Incompatibilities [ Migration Process Guide ] MPE/iX 5.0 Documentation
Migration Process Guide
Undetected Incompatibilities
Incompatibilities that cannot be detected by the Migration Toolset (MPT,
OCA, and RTM) are considered undetected incompatibilities. Undetected
incompatibilities fall into the following groups:
* Peripheral dependent incompatibilities
* Intrinsic incompatibilities
* Command Incompatibilities
* Subsystem and compiler incompatibilities
* System Logging Incompatibilities
Peripheral Dependent Incompatibilities
Peripherals that are supported on MPE V/E-based systems may not be
currently supported on MPE/iX. The HP 3000 Computer Systems System
Configuration Guide (5954-9354) provides a list of the peripherals
currently supported on MPE/iX. The following incompatibilities exist as
long as the associated peripherals are not supported:
* FREADBACKWARD will result in a run-time error, since no tape
drives with reverse read capability are supported on MPE/iX.
* FWRITE controlcodes %311, %312, %313, %314-317 are associated with
devices that are not currently supported on MPE/iX.
Intrinsic Incompatibilities
The following intrinsic incompatibilities are not detected by the
Migration Toolset:
* Applications that use undocumented intrinsics, execute in
Privileged Mode, call routines that require Privileged Mode, or
use privileged machine instructions may need to be modified when
moved to the 900 Series. Only a detailed study of the program
will determine this, as appropriate modifications must be made on
a case-by-case basis. The Migration Toolset cannot provide
sufficient details.
* Various MPE/iX subsystems require file numbers for their own use.
Therefore, you should make no assumptions about file numbers
returned to your program. All hardcoded file numbers should be
removed and replaced with appropriate variables that contain the
file number values returned by system intrinsics.
* Intrinsic parameter types and conventions have changed in NM. You
should use the intrinsic mechanism to ensure compatibility.
* FOPEN, on MPE/iX, specifying a maximum number of extents, other
than one, allows the file system to determine the number and size
of extents independently.
* FOPEN, specifying an foption of zero or an aoption of zero always
behaves as if the parameters were defaulted.
* FOPEN, if errors 90 and 91 are applicable at the same time for a
failed FOPEN call, error 90 is the only error returned via the
FCHECK intrinsic.
* FOPEN, the default for initial allocation is now zero extents
rather than one extent in MPE V/E.
* FOPEN, on MPE/iX, any parameter passed to FOPEN must be
initialized to a valid value, whether or not the intrinsic uses
that parameter.
NOTE For more information about intrinsic incompatibilities, refer to
Introduction to MPE XL for MPE V Programmers (30367-90005).
Command Incompatibilities
The Migration Toolset does not search for all command incompatibilities.
Refer to the MPE V to MPE XL: Getting Started Self-Paced Training
(30367-90002) and Introduction to MPE XL for MPE V System Administrators
(30367-90003) for descriptions of the command changes from MPE V to
MPE/iX. Note whether the iX command changes will affect current programs
or UDCs and make the necessary changes.
To specify a volume set name for private volumes on MPE/iX, the keyword
ONVS= is used, rather than the former VS= keyword in MPE V. Change the
VS= parameter keyword in current programs to ONVS=. This keyword is used
by the ALTACCT, ALTGROUP, NEWACCT, NEWGROUP, PURGEACCT, PURGEGROUP, and
REPORT commands. Refer to the MPE/iX Commands Reference Manual Volumes 1
and 2 (32650-90003 and 32650-90364) for syntax requirements for these
commands.
Subsystem and Compiler Incompatibilities
This section summarizes non-Operating System specific incompatibilities.
For more information, refer to the appropriate migration guide. Other
areas that have changed from MPE V/E to MPE/iX include:
* Applications which use SPL to assemble any of the following
nonprivileged machine code instructions must be removed before
moving to the 900 Series:
- RMSK
- RSW
- RCLK
* On the 900 Series, XON/XOFF control characters are not stripped
from the data stream while XON/XOFF is set OFF. Applications using
this feature must be modified.
* Applications that depend on specific DSERROR codes may have to be
modified, since the error codes on MPE/iX comply with the new
NS3000/XL error codes.
* Pascal applications written on MPE V/E-based systems which depend
on the specific data layout using the variant parts of records may
require modification before recompilation into NM. This is because
pointers are sized and aligned on 32-bit boundaries.
* Pascal applications which take advantage of undetected errors may
have to be modified. These undetected errors are listed in the
Pascal/3000 Reference Manual (32106-90001).
* HP FORTRAN 77 programs that use COMMON or EQUIVALENCE should be
modified so that 32-bit data types are aligned on 32-bit
boundaries and so that 64-bit data types are aligned on 64-bit
boundaries before being moved to NM, in order to ensure maximum
performance. For more information on data alignment, refer to
"Data Types Conversion" in Introduction to MPE XL for MPE V
Programmers (30367-90005).
* SPL is available in CM both for run-time support and for
development of SPL applications. Your SPL applications and SPL
procedures will run in CM. However, because of its close
relationship to the MPE V/E-based architecture, Hewlett-Packard
does not support a NM SPL compiler on the 900 Series. The OCT can
be used to increase the performance of MPE V/E object code.
* High-level language applications that will be migrated to NM and
that call user-supplied SPL procedures will require Switch stubs
to access these procedures. For more information on Switch stubs,
refer to the Switch Programming Guide (32650-90014).
* Procedures passed as parameters in HP FORTRAN 77 or Pascal require
16-bit parameters on MPE V/E and 32-bit parameters on MPE/iX.
* The passing of a field of a record, an element of an array, or an
equivalenced variable as a reference parameter and requesting that
more data be copied than is represented by the item size may
produce unexpected results on MPE/iX.
* The passing of a pointer as an SPL integer or by value to a CM SPL
routine.
* SPL procedures called with OPTION VARIABLE. Explicit parameter
masks are supported in CM only. NM code calling a user SPL
routine in CM must do so with a Switch stub. All NM calls to
intrinsics must go through the intrinsic mechanism. For more
information on Switch stubs, refer to the Switch Programming Guide
(32650-90014).
* Variables located in programs should be properly initialized.
Uninitialized variables that did not cause problems on MPE
V/E-based systems may cause programs to abort on MPE/iX-based
systems.
System Logging Incompatibilities
The formats and record types of system log files have been modified. If
a program processes records from a system log file, the program must be
changed to specify the appropriate iX record types. Refer to Getting
System Information Programmer's Guide (32650-90018) for a listing of the
new record types and formats for the iX system log files.
MPE/iX 5.0 Documentation