Posted on July 31, 2023
AXP64 Windows
Something interesting about Windows on the Alpha is that it was always a 32bit OS in the public releases, despite the Alpha being a fully fledged 64bit chip. On the 23rd of August 1999, Compaq announced they were discontinuing their participation in the development of Windows NT for the DEC Alpha (AXP) platform. Microsoft announced shortly afterwards that they would also discontinue support for the platform and the nearly complete Alpha port of 32bit Windows 2000 never materialised. A final release candidate build did make it out into the wild, but until recently, no 64bit Alpha build had been discovered outside of Microsoft.
Despite the public announcements about Windows on Alpha being discontinued, development of a 64bit build of Windows for Alpha continued within Microsoft as a proof of concept platform since Intel’s Itanium IA64 architecture did not yet exist in physical form and AMD64/x86-64 wasn’t even a thing yet. There is a blog from Raymond Chen that gives a bit more background about this version of Windows – Raymond Chen discusses running Windows Server 64-bit on Alpha AXP | Microsoft Learn
Back in May, I saw the post on Virtually Fun were neozeed had discovered an AXP64 compiler that was publicly available – Hiding in plain sight: The 64bit Dec Alpha C compiler | Virtually Fun
Shortly after this, an actual running AXP64 build was discovered! Eventually an installation cd image was produced from the recovered disk image, which was a very impressive feat by those involved. There is a very interesting blog on the details – AXP64 2210 Installation Media Reconstruction | Virtually Fun
I had often wondered if an AXP64 build would ever leak in a form where it would be possible to run and play around with it, but didn’t expect it to happen given the amount of time since these builds were in use. I’m glad I was proven wrong, and was very excited to get it up and running on one of my machines.
There is a modified TXTSETUP.SIF that enables support for other machines which should get it going on my AlphaServer 1000a and AlphaPC 164SX, but I decided to use my PWS 433au for now since it is supported by the reconstructed install media as standard. After an install that took what felt like an eternity, I was finally up and running!
The build is a checked build, so unfortunately runs much slower than a normal build. I set the OS Options in the AlphaBIOS OS selection menu settings to /NODEBUG which sped things up a bit, but it was still slow compared to how a standard build would have been. It doesn’t look too different from Windows 2000, but notice the watermark in the bottom right of the desktop. Although it is still mostly Windows 2000 branded, it is actually a build of Whistler, which was the codename for Windows XP.
Initially I installed to an NTFS formatted partition, but the next morning after I’d had everything up and running, it kept blue screening. Usually these would mention KMODE_EXCEPTION_NOT_HANDLED or INACCESSIBLE BOOT DEVICE. I tried a few things to revive it, but didn’t have any luck. Eventually I resorted to just reinstalling it and reformatting the partition to FAT32 this time. Since then, I’ve had no such issues and it’s been as reliable as you’d expect an extremely early OS build to be.
Now that I had it working, what was I going to do with it? There isn’t exactly much in the way of native software, with AXP32 binaries unsupported and Dependency Walker being the only official release for it, despite no public builds for anyone to actually use the provided AXP64 exe. Turns out there was a solution.
Neozeed ran a “Porting Party” on the Virtually Fun discord server on Sunday the 23rd of July. This involved him running his Alpha (a frankensteined together PWS with 500MHz CPU and over 1GB of RAM) which was running NT 4 Terminal Server edition for Alpha with the AXP64 compiler setup and remote access enabled. The AXP64 build cannot compile executables for itself, so another Alpha is required to actually run the compiled binaries without resorting to rebooting into another partition. He setup a remote Linux box with SAMBA shares mountable from the Alpha systems so we could exchange copies of the binaries. I ended up doing some of the testing on the Sunday evening, and although most things we tried didn’t work, there was one major success.
CaptainWillStarblazer on the discord had supplied a binary of Starblazer II, which after he sent a copy of the rest of the files that went with it, worked first try on my machine. We didn’t expect speed given the checked build of the OS, but it was indeed playable! We likely made history with the first indie game running on AXP64 π
That’s about all I’ve done with the AXP64 build so far, but I look forward to seeing whatever else the community can get running on it in the future!
ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ!
ΠΡ ΠΈΠ·Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΄ΠΈΠΏΠ»ΠΎΠΌΡ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΈ ΠΏΠΎ Π²ΡΠ³ΠΎΠ΄Π½ΡΠΌ ΡΠ°ΡΠΈΡΠ°ΠΌ.
ΠΡ Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΠ£ΠΠΎΠ², ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΡΠΈΠΈ Π²ΡΠ΅ΠΉ Π ΠΎΡΡΠΈΠΈ. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΡΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄ΠΈΠΏΠ»ΠΎΠΌ ΠΎΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΠ΅Π±Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΡ, Π·Π° Π»ΡΠ±ΠΎΠΉ Π³ΠΎΠ΄, ΡΠΊΠ°Π·Π°Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΈ Ρ ΠΎΡΠΎΡΠΈΠ΅ ΠΎΡΠ΅Π½ΠΊΠΈ Π·Π° Π²ΡΠ΅ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Ρ. ΠΠΈΠΏΠ»ΠΎΠΌΡ ΠΈ Π°ΡΡΠ΅ΡΡΠ°ΡΡ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡΡΡ Π½Π° “ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ” Π±ΡΠΌΠ°Π³Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠ΅ Π΄ΠΈΠΏΠ»ΠΎΠΌΡ, Π½Π΅ ΠΎΡΠ»ΠΈΡΠΈΠΌΡΠ΅ ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΠΎΠ². ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π±ΡΠ΄ΡΡ Π·Π°Π²Π΅ΡΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ°ΡΡΠΌΠΈ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌΠΈ.
ΠΠ°Π΅ΠΌ 100% Π³Π°ΡΠ°Π½ΡΠΈΡ, ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠΌΠΈ, Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π½ΠΈΠΉ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ.
ΠΠ΄Π΅ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΡΠΈ Π΄ΠΈΠΏΠ»ΠΎΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°?
k90280ul.beget.tech/2023/09/11/cifrovoy-sled-sozdanie-i-prodvizhenie-saytov-ostavlyayuschih-otpechatok.html
ΠΠΎΠ»Π½ΡΠΉ ΠΎΠ±Π·ΠΎΡ ΠΈΠ³ΡΠΎΠ²ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ² ΠΎΡ Pin-Up: ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΈΠ³Ρ, Π±ΠΎΠ½ΡΡΡ ΠΈ Π²ΡΡΠΎΠΊΠΈΠ΅ Π²ΡΠΏΠ»Π°ΡΡ ΠΏΡΠΈΠ²Π»Π΅ΠΊΡΡ Π²ΡΠ΅Ρ Π»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ Π°Π·Π°ΡΡΠ½ΡΡ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΉ.