Revision/Update Information: This manual supersedes Migrating an Application from OpenVMS VAX to OpenVMS Alpha, Version 7.0.
Software Version: OpenVMS Alpha Version 7.1 OpenVMS VAX Version 7.1
Digital Equipment Corporation Maynard, Massachusetts
Digital Equipment Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description.
Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from Digital or an authorized sublicensor.
Digital conducts its business in a manner that conserves the environment and protects the safety and health of its employees, customers, and the community.
© Digital Equipment Corporation 1996. All rights reserved.
The following are trademarks of Digital Equipment Corporation: ALL-IN-1, Bookreader, CI, DDIF, DEC, DEC Ada, DEC Fortran, DECdirect, DECforms, DECmigrate, DECnet, DECset, DECterm, DECthreads, DECwindows, Digital, Digital UNIX, OpenVMS, PATHWORKS, PDP-11, SPM, TURBOchannel, VAX, VAX 6000, VAX Ada, VAX C, VAX COBOL, VAX DOCUMENT, VAX FORTRAN, VAX MACRO, VAX Pascal, VAX SCAN, VAXft, VAXstation, VMS, XMI, XUI, and the DIGITAL logo.
The following are third-party trademarks:
Futurebus/Plus is a registered trademark of Force Computers GMBH, Fed. Rep. of Germany.
IEEE is a registered trademark of the Institute of Electrical and Electronics Engineers, Inc.
INGRES is a registered trademark of Ingres Corporation.
Motif is a registered trademark of Open Software Foundation, Incorporated.
Oracle Rdb, Oracle CODASYL DBMS are registered trademarks of Oracle Corporation.
UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Ltd.
Windows NT is a trademark of Microsoft Corporation.
X/Open is a trademark of X/Open Company Limited.
All other trademarks and registered trademarks are the property of their respective holders.
ZK6459
The OpenVMS documentation set is available on CD-ROM.
Migrating an Application from OpenVMS VAX to OpenVMS Alpha is designed to assist developers in moving OpenVMS VAX applications to an OpenVMS Alpha system or a mixed-architecture> cluster.
This manual is intended for experienced software engineers responsible for migrating application code written in high- or mid-level programming languages.
This manual is part of a set of manuals that describes various aspects of migrating from OpenVMS VAX to OpenVMS Alpha systems. The other manuals in this set are as follows:
In addition, the DECmigrate for OpenVMS AXP Systems Translating Images manual describes the VAX Environment Software Translator (VEST) utility. This manual is distributed with the optional layered product, DECmigrate for OpenVMS Alpha, which supports the migration of OpenVMS VAX applications to OpenVMS Alpha systems. The manual describes how to use VEST to convert most user-mode VAX images to translated images that can run on Alpha systems; how to improve the run-time performance of translated images; how to use VEST to trace Alpha incompatibilities in a VAX image back to the original source files; and how to use VEST to support compatibility among native and translated run-time libraries. The manual also includes complete VEST command reference information.
In addition, the following general programming manuals contain current information on issues discussed here:
For additional information on the Open Systems Software Group (OSSG) products and services, access the Digital OpenVMS World Wide Web site. Use the following URL:
http://www.openvms.digital.com
Digital welcomes your comments on this manual.
Print or edit the online form SYS$HELP:OPENVMSDOC_COMMENTS.TXT and send us your comments by:
Internet | openvmsdoc@zko.mts.dec.com |
Fax | 603 881-0120, Attention: OSSG Documentation, ZK03-4/U08 |
OSSG Documentation Group, ZKO3-4/U08
110 Spit Brook Rd. Nashua, NH 03062-2698 |
Use the following table to order additional documentation or information. If you need help deciding which documentation best meets your needs, call 800-DIGITAL (800-344-4825).
The name of the OpenVMS AXP operating system has been changed to the OpenVMS Alpha operating system. Any references to OpenVMS AXP or AXP are synonymous with OpenVMS Alpha or Alpha.
VMScluster systems are now referred to as OpenVMS Cluster systems. Unless otherwise specified, references to OpenVMS Clusters or clusters in this document are synonymous with VMSclusters.
In this manual, every use of DECwindows and DECwindows Motif refers to DECwindows Motif for OpenVMS software.
The following conventions are also used in this manual:
Ctrl/ x | A sequence such as Ctrl/ x indicates that you must hold down the key labeled Ctrl while you press another key or a pointing device button. |
[Return] | In examples, a key name enclosed in a box indicates that you press a key on the keyboard. (In text, a key name is not enclosed in a box.) |
... |
Horizontal ellipsis points in examples indicate one of the following
possibilities:
|
.
. . |
Vertical ellipsis points indicate the omission of items from a code example or command format; the items are omitted because they are not important to the topic being discussed. |
( ) | In command format descriptions, parentheses indicate that, if you choose more than one option, you must enclose the choices in parentheses. |
[ ] | In command format descriptions, brackets indicate optional elements. You can choose one, none, or all of the options. (Brackets are not optional, however, in the syntax of a directory name in an OpenVMS file specification or in the syntax of a substring specification in an assignment statement.) |
{ } | In command format descriptions, braces indicate a required choice of options; you must choose one of the options listed. |
text style |
This text style represents the introduction of a new term or the name
of an argument, an attribute, or a reason.
This style is also used to show user input in Bookreader versions of the book. |
italic text | Italic text emphasizes important information, complete titles of manuals, or variables. Variables include information that varies in system output (Internal error number), in command lines (/PRODUCER= name), and in command parameters in text (where device-name contains up to five alphanumeric characters). |
UPPERCASE TEXT | Uppercase text indicates a command, the name of a routine, the name of a file, or the abbreviation for a system privilege. |
Monospace type |
Monospace type indicates code examples and interactive screen displays.
In the C programming language, monospace type in text identifies the following elements: keywords, the names of independently compiled external functions and files, syntax summaries, and references to variables or identifiers introduced in an example. |
- | A hyphen at the end of a command format description, command line, or code line indicates that the command or statement continues on the following line. |
numbers | All numbers in text are assumed to be decimal unless otherwise noted. Nondecimal radixes---binary, octal, or hexadecimal---are explicitly indicated. |
For many applications, migrating from OpenVMS VAX to OpenVMS Alpha is
straightforward.
If your application runs only in user mode and is written in a standard
high-level language, you most likely can recompile it with a native
Alpha compiler and relink it to produce a version that runs
successfully on an Alpha system. This book is intended to help you
evaluate your application and to handle the relatively few cases that
are more complicated.
1.1 Compatibility of VAX and Alpha Systems
The OpenVMS Alpha operating system is designed to preserve as much compatibility with the OpenVMS VAX user, system management, and programming environments as possible. For general users and system managers, OpenVMS Alpha has the same interfaces as OpenVMS VAX. For programmers, the goal is to come as close as possible to a "recompile, relink, and run" model for migration.
Many aspects of an application running on an OpenVMS VAX system remain unchanged on an Alpha system:
User Interface
Programming Interface
Routine Name | Restriction |
---|---|
LIB$DECODE_FAULT | Decodes VAX instructions. |
LIB$DEC_OVER | Applies to VAX Processor Status Longword (PSL) only. |
LIB$ESTABLISH | Similar functionality supported by compilers on Alpha systems. |
LIB$FIXUP_FLT | Applies to VAX PSL only. |
LIB$FLT_UNDER | Applies to VAX PSL only. |
LIB$INT_OVER | Applies to VAX PSL only. |
LIB$REVERT | Supported by compilers on Alpha systems. |
LIB$SIM_TRAP | Applies to VAX code. |
LIB$TPARSE | Requires action routine interface changes. Replaced by LIB$TABLE_PARSE. |
Data
The VAX architecture is a robust, flexible, complex instruction set computer (CISC) architecture used across the entire family of VAX systems. The use of a single, integrated VAX architecture with the OpenVMS operating system permits an application to be developed on a VAXstation, prototyped on a small VAX system, and put into production on a large VAX processor or run on a fault-tolerant VAXft processor. The advantage of the VAX system approach is that it enables individual solutions to be tailored and fitted easily into a larger, enterprisewide solution. The hardware design of VAX processors is particularly suitable for high-availability applications, such as dependable applications for mission-critical business operations and server applications for a wide variety of distributed client/server environments.
The Alpha architecture implemented by Digital is a high-performance reduced instruction set computing (RISC) architecture that can provide 64-bit processing on a single chip. It processes 64-bit virtual and physical addresses and 64-bit integers and floating-point numbers. The 64-bit capability is especially useful for applications that require high-performance and very large addressing capacity. For example, Alpha processors are especially appropriate for graphics or numeric-intensive software applications such as econometric or weather forecasting that involve imaging, multimedia, visualization, simulation, and modeling.
The Alpha architecture is designed to be scalable and open. It can be implemented on a single chip in a palmtop system or with thousands of chips in a massively parallel supercomputer. The architecture is designed to support multiple operating systems, including OpenVMS Alpha.
Table 1-1 summarizes some major differences between the Alpha and VAX architectures.
Some features of the Alpha architecture are typical of newer RISC architectures in general. The following features are especially important:
Alpha Specific Characteristics
Besides these generic RISC characteristics, the Alpha architecture offers features that promote running migrated VAX applications on an Alpha system. These features include:
Formal support for user-written device drivers and a new interface known as the Step 2 driver interface were introduced in OpenVMS Alpha Version 6.1. The Step 2 driver interface supports user-written device drivers in the C programming language (as well as MACRO and BLISS). It replaced the temporary Step 1 driver interface that was provided in OpenVMS Alpha Versions 1.0 and 1.5. If you have an existing OpenVMS VAX device driver that you want to run on an Alpha system, and you have not made the changes required for OpenVMS Alpha Version 6.1, see Creating an OpenVMS Alpha Device Driver from an OpenVMS VAX Device Driver.
6459P.HTM OSSG Documentation 22-NOV-1996 13:07:01.12
Copyright © Digital Equipment Corporation 1996. All Rights Reserved.