Recently, hinted by people on Discord, Neozeed found a Win64 compiler for AXP64 / ALPHA64, that came in as part of Platform SDK from 1999. This was to let Windows developers test compile their programs to make sure they are “64bit ready”, before the hardware was even available. However, as this was a cross-compiler from IA32 to IA64 and AXP32 to AXP64, there was no actual way of running any of the binaries. Until Itanium finally came out, after long delays. Sadly, 64-bit Alpha AXP Windows was never released outside of Redmond.
[…]And that would be the end of the story… if not for one reader, who contacted Neozeed after his previous post, and shared a disk image… containing a 64bit version of Windows 2000 for Alpha AXP! The reader got it from a lot of random lot of hard disks bought from an e-waste, years ago, and completely forgot about it until they saw the blog post!
And you bet they got it up and running. This find is extraordinary.
since nobody reads, I zipped the exe/dll/sys and a few othe rthings. its not enough to boot but for those who want to dig around the bmp/gif/wav/mid are in there.
https://archive.org/download/splash_20230516
Thanks!
no problem!
Ummm… I fear there is a bit of a confusion in this post. AXP64 and ALPHA64 are quite different beasts. In April 2000, we bought a 666MHz Alpha machine based on the 21164 chip (IIRC, the Alpha family had three iterations — 21064, 21164 and 21264). It certainly supported running Digital Unix, Linux and Windows NT; when we bought the machine, it was configured in its Windows-compatible BIOS mode, and came with a freebie CorelDraw disk (and license). Of course, I didn’t have Windows handy to test it with, and ran it always with Linux.
64 bit support was far from a given back then: We had bought this machine to be a database server, but for each query, PostgreSQL generated three times “unaligned traps”. While they were caught and fixed by the Linux kernel, it meant a big hit on performance… And I ended up repurposing the beast as my desktop computer (and had a 200Mhz Pentium replace it on its duties).
What’s the difference? The rest of your post doesn’t refer to either.
Windows used to look so good back then, and run on 12mb ram and a 486 at 33mhz. NT4 and NT5 was the last masterpieces of microsoft that cemented their hold on the market. If they had presented what is now windows * to the public, is would have been shunned as unprofessional, wasteful and taking WAY too much resources…. same as today i guess, but perhaps more vehemiantly.
You must have missed the 3.1 betas and launch. It was considered abysmal. 3.5 was the first time requirements actually went down. You could boot it in 8MB of RAM! It was great!… 3.1 not so much.
Hey, my first experience of NT was NT 3.1 on 8Mb RAM! It booted…and took 40 seconds to log on…
Seriously though, I’d question whether NT ever ran well on a 33mhz 486 and 12Mb RAM. Throughout the mid 90s NT always needed premium hardware – the choice was between getting a Pentium with 16Mb RAM that had ample for applications running Windows 95, or 16Mb of RAM with nothing for applications running NT. NT didn’t become my go-to OS until 1999 or so when 64Mb RAM was feasible.
Note that resource requirements are distinct from the clarity and elegance of its UI. Agree that NT4/2000 had great UI.
It did not run well. Our windows pc lab was mostly on windows 95 with a few higher speced models on NT 3.51. The NT machines didn’t crash as often but they were slower despite 12 mb of ram to the win95 8 mb . I think these were all Pentiums of different speeds, maybe to 120 mhz. They were machines to use office, act as vax terminals for email, and Netscape 2./3 to look at your geocities page.
So good to leave win95 for NT4 in 1996 during university years. As soon as it was available were were on to it despite not having a copy of 3.1 or 3.51 previously. Despite the reduced software library we were running CAD software and eventually 3DS. The stability. Such a better experience. Win2000 even better usability but NT4 was no nonsense for work.
Also the driver model made it possible to get a lot more out of a voodoo2/3/4/5 (according to 3dfx and obsidian) than you could on 9x.
I guess 9x had some unsolvable graphics problems, since BeOS outperformed it as well with a wide margin on supported cards in games like Quake 3.
“a cross-compiler from IA32 to IA64 and AXP32 to AXP64”
Something wrong is here. Alpha was always 64-bit. It has never been 32-bit of AXP.
Alpha has always been 64bit, but NT wasn’t….
I worked for a company that used Alpha machines heavily to host something called a Raster Image Processor ( RIP) — basically a PostScript renderer. We ran Windows NT on these machines starting with Windows NT 3.1 and all the way through Windows NT 4.0.
NT 3.1 was very slow on these machines but NT 3.5 was better with NT 3.51 being the release of choice for a long time. Windows NT 4.0 was even better and brought the Windows 95 interface along with it. If I recall FX!32 ( that allowed Intel binaries to run ) appeared in the Windows NT 4.0 era. The Windows NT Resource Kit came with all kinds of interesting stuff on it include a version of GCC ( yes, Microsoft was distributing GPL software in the mid 90’s ).
I am not following what is meant by AXP32 though as, to my knowledge, the Alpha is always a 64 bit machine and the binaries are always 64 bit as well. You could write programs that only used 32 bit data types and pointers but these were still run as 64 bit programs. There is no “32 bit mode” or anything like that. Somebody please correct me if you disagree with this. I am sure you could use GCC to create full 64 bit binaries as well.
Even after Compaq decided to stop supporting Windows NT on Alpha, Microsoft used the Alpha machines to move Windows itself to full 64 bit because they needed that for Itanium. The Alpha was an existing 64 bit architecture that they had access to ( and a bunch of machines already laying around apparently ).
Windows NT on the DEC Alpha was still a 32-bit OS, limited to 32-bit data types and 32-bit pointers. Microsoft’s compiler produced code that used 32-bit pointers. Most applications were still limited to 4GB of virtual address space. It was possible to work around this and use the vastly larger address space available in Windows applications, but not through any mechanism Windows provided.
I’m guessing AXP32 vs AXP64 refers to whether or not the binaries use 32-bit pointers for previous Windows on Alpha systems, or 64-bit pointers needed for full support of IA64 (and later AMD6)
Thanks. That makes sense. You are saying that AXP32 is a compilation target that only uses 32 bit values. So, it defines the behaviour of the compiler more than the architecture.
I am pretty sure that you could run 64 bit binaries even on the 32 bit versions of Windows ( on Alpha ). As I said above, there really is no “32 bit mode” in Alpha. The question is just what compiler you are using to build with ( and what API you are calling into ).