[an error occurred while processing this directive]

HP OpenVMS Systems

Ask the Wizard
» 

HP OpenVMS Systems

OpenVMS information

» What's new on our site
» Upcoming events
» Configuration and buying assistance
» Send us your comments

HP OpenVMS systems

» OpenVMS software
» Supported Servers
» OpenVMS virtualization
» OpenVMS solutions and partners
» OpenVMS success stories
» OpenVMS service and support
» OpenVMS resources and information
» OpenVMS documentation
» Education and training

Quick Links

» Non-javascript page
» Ask the Wizard
» OpenVMS FAQ

Test Drive OpenVMS

» OpenVMS I64 test drive
» Java test drive

Other information resources available to you include:

» OpenVMS freeware
» ECO kits, software and hardware support, prior version support
» Alpha SRM, ARC, and AlphaBIOS firmware updates
» ENCOMPASS - HP user group
» OpenVMS software downloads, OpenVMS freeware CD-ROM
» OpenVMS firmware locations
» DECconnect passive adaptor charts
» Cables reference guide
» MicroVAX console commands
» OpenVMS student research

Select a topic below to see Questions Frequently Asked by partners

» Using the online documentation library(installing BNU from the asap SDK)
» Global sections(how to create and use.)
» xx$CREATE_BUFOBJ system service(usage)
» Ethernet address(methods of determination)
» Shareable images(cookbook approach to creating one)
» Sharing data/code at absolute addresses(a guide with examples)
» Determining the Alpha microprocessor
» Using GETSYI to get hardware status

Evolving business value

» Business Systems Evolution
» AlphaServer systems transition planning
» Alpha RetainTrust program

Related links

» HP Integrity servers
» HP Alpha systems
» HP storage
» HP software
» HP products and services
» HP solutions
» HP support
disaster proof
HP Integrity server animation
HP Integrity server animation
Content starts here

Ask the Wizard Questions

Alpha Porting: MACRO 32 porting to Alpha

The Question is:

We have some hand written VAX assembly code that we
would like to migrate to our Alpha machines
running OpenVMS 6.2.  The code is a run-time
exectutive for a simulation.  (It performs
context switching, etc.)

Would it be possible to easily translate this
to work on an Alpha?  (Can "vesting" handle
something like this?)


The Answer is:

             -< Doesn't sound easy, but it might be - DECthreads? >-

>  The code is a run-time
>exectutive for a simulation.  (It performs
>context switching, etc.)

      Without further details of exactly what you're doing, it's difficult
    to comment. However, I'm guessing that you mean a "threading" package
    implemented by switching stacks. No doubt this code has intimate
    knowledge of call frames and works by "faking out" call frames,
    depositing values directly into the FP register and executing RET
    instructions against the last frame of the thread being activated
    in order to restore its context.

      If that's the case, this will almost certainly NOT work on Alpha.
    The Alpha calling standard is substantially different from the VAX
    calling standard in several fundamental ways. VESTing will not work
    either as it is only intended to work with programs which play by
    the rules (depositing into the FP is definitely NOT in the rules!).
    Unfortunately, this is a case of (extreme!) architecture dependence
    and therefore non-portable.

      All is not lost though! Depending on the architecture of your
    executive, it may be possible to reimplement the lower levels using
    DECthreads - with the added bonus that on V7.0 your code will
    automagically start using all the processors in an SMP system.
    With any luck, the API will remain unchanged, so there shouldn't
    be any trouble porting the applications.