Of all the Microsoft Windows NT versions, the few of the rare ones include:
- The i860 version, the original N-Ten that put the NT in NT.
- The DEC 5000/MIPS version
- The Clipper version
- The SPARC/LE version
- The HP9000/HPPA version
- The AXP64/ALPHA64 port, the first 64bit version of 2000
Sadly, I don’t have any leads on any of the above. But while I was looking for the first public Win64 compiler that I could remember, it was just the frontend to the Itanium compiler, not letting you actually compile anything. Anyways I was able to find these two downloads:
- Microsoft Platform SDK for Windows 2000 – RC2
- MSDN Development Platform (Disc 6)(October 1999)(X05 05207)(1999)
And both of them have the same Win64 SDK, which includes this quick note in the readme:
Platform SDK support for Win64(tm)
This release of the Platform SDK will allow you to test-compile your1999 Platform SDK
code for Win64. It supports the new 64-bit data types and pre-beta
releases of an IA64 compiler and an ALPHA64 compiler and linker.
It’s the same thing on both discs from what I remember.
Installing the SDK is certainly a product of it’s time, with a seemingly incredible amount of products to support.
I haven’t tested yet, but I have to wonder how integrated all the tools are into Visual C++. Stay tuned?!
Also there was still POSIX support. Windows 2000 was the last to support all the subsystems.
And of course, the star of the attraction, the 64 bit Test Compiler. There is an incredible amount of products and options to select, It must have been absolute chaos at Microsoft in the late 90s!
If you are on an intel based system, the 64bit compiler will be the top half of the Itanium compiler. It lacks the C2.DLL so it will not emit any assembly or object files. There is no linker libraries either, so for all intents and purposes it’s useless.
However, if you were to install this super preliminary SDK on a Dec Alpha you would instead discover a version 13 build of Microsoft C/C++
Microsoft (R) & Digital (TM) Alpha C/C++ Optimizing Compiler Version 13.00.8499 Copyright (C) Microsoft Corp 1984-1999. Copyright (C) Digital Equipment Corporation 1992-1999. Copyright (C) Compaq Computer Corporation 1998-1999. All rights reserved.
The Visual C++ 6.0 on the Dec Alpha however is a version 12 compiler. So this is a big surprise for AlphaNT users!
And added to version 13 are these flags:
/Ap32 enable P32 model /Ap64 enable P64 model (default)
That’s right! It turns out that the AXP64 compiler set has been hiding in plain sight for DECADES. I know that it’s so unlikely that we’d ever see any public release of a 64bit version of Windows for the Alpha, but oddly enough the compiler, headers and libraries are all there. YES You can make full EXE’s for AXP64/Alpha64. Of course with no OS, so it’s not like you can run them.
The compilers have been tested on NT 4.0 Terminal Server & 2000 RC2.
For anyone wondering here is how I ran it to compile then link a 64bit exe:
C:\proj>cl /c /Ap64 mt.c /Fomt64.obj Microsoft (R) & Digital (TM) Alpha C/C++ Optimizing Compiler Version 13.00.8499 Copyright (C) Microsoft Corp 1984-1999. Copyright (C) Digital Equipment Corporation 1992-1999. Copyright (C) Compaq Computer Corporation 1998-1999. All rights reserved. mt.c C:\proj>link mt64.obj /MACHINE:ALPHA64 Microsoft (R) Incremental Linker Version 6.20.8528 Copyright (C) Microsoft Corp 1992-1999. All rights reserved
There is no point sharing the EXE as I mentioned above, there is nothing to run it on. But for the heck of it, here is uuencode compiled into assembly in both 32bit & 64bit mode.
I can’t imagine why, but for people who want to take them apart you can download the tools here.
Sadly as of today, there is no way to test. There is one surviving machine with Windows 2003 AXP64, outlined in an article by Raymond Chen. Its a great read about how Alpha64 NT port came to be. The machine is still sitting in Microsoft Archives. Hopefully one day someone can dig it out.
That said there is also version 13 compilers for both Itanium & AMD64. Although we can do stuff with the AMD64 port which I will try to write into something a bit more.. sane.
I found this a few weeks ago, and thanks to @tenox for giving me Alpha access to play a little with this hidden gem. It’s still crazy we’ve all had Alpha64 tool access the entire time.