HP 3000 Manuals

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