WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Launching WinBatch and Other Apps
plus

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Running WB on a DEC ALPHA

Keywords: 	 DEC ALPHA

Question:

I want to compile a WB script for an Alpha machine but I do not have an Alpha machine to run the Alpha Compiler on. How can I compile for the Alpha on an Intel machine?

Answer:

These days most people are running Intel binaries on the Alpha systems by way of some free software called FX!32, which is downloadable from the Compaq/Digital web site.

Compile your script as usual for use on an Intel platform and then make sure that FX!32 is installed on the target Alpha system.

FX!32 allows NT on an Alpha to run Win32 Intel binaries by a combination of emulation and dynamic code generation. As any particular .EXE or .DLL is run in emulation mode, the FX!32 software develops a "profile" of that code and keeps track of what native Alpha CPU instructions are executed. When a particular piece of code has been successfully emulated the associated series of native Alpha CPU instructions are recorded in a "shadow" copy of the .EXE or .DLL. During future executions of the Intel binary code the native instructions will be used in place of emulation for all code that has been sucessfully handled in this manner. The result is that the FX!32 software retains some knowledge of the native instructions executed during emulation. This in turn allows the emulation to be eliminated and replaced with native instructions. With repeated execution of a particular .EXE or .DLL and with all the various "code paths" and functions being exercised over time it becomes possible for FX!32 to more or less translate most of the Intel binary code into native Alpha binary code.

Performance of emulated Intel binaries is slower during the emulation phase where FX!32 is learning the native Alpha binary code that should be used for any particular Intel binary. Performance increases as the use of emulation is reduced and native Alpha binary code is used in its place. This information is saved on disk and can be propagated to other systems to save time when porting an Intel binary from one Alpha system to another.

The one key point to remember about all of this is that the Intel binaries will only run at about 70% of the performance level of natively compiled Alpha code written to do the same job. For example, given the same Visual C/C++ code and both the Intel and Alpha versions of the MS VC++ development tools, you could compile the same source code modules into binaries for the two respective platforms. If you measured the performance of the native compiled Alpha code and then used FX!32 to emulate/translate the Intel code on the Alpha, the results would be that the Intel code runs at about 70% of the speed of the native compiled Alpha code.

A more detailed description of how FX!32 works can be obtained here:


http://www.partner.digital.com/www-swdev/pages/Home/TECH/FX32/fx32.html
A more recent white paper description is here:

http://www.digital.com/amt/fx32/fx-white.html
FX!32 can be downloaded here:

http://www.digital.com/amt/fx32/fx-download.html

Running DEC Alpha version of Winbatch

Question:

The DEC Alpha version can ONLY be installed on a DEC Alpha machine, right?

I'd like to install the DEC Alpha compiler on my 95 machine and compile EXEs for the DEC from there, but that won't work, correctement?

Answer:

Correct. The DEC Alpha version will only run on a DEC.

Note as above: Someplace on the Dec Alpha website is a FREE (as I understand it) download of an emulator that allows the Dec alpha to run Windows 95 programs. Apparently this emulator is *real good*, and if installed on the Dec Alpha, it allows the DEC to run the Intel version of Winbatch.


Article ID:   W14374
Filename:   Running WB on a DEC ALPHA.txt
File Created: 2001:01:26:14:45:36
Last Updated: 2001:01:26:14:45:36