Windows NT PPC on Macs

Rairii

Member
For NT on Alpha there was a dynamic recompilation thing from x86 - no idea how well it worked though or whether it made it to the PPC build.
In the NT4 times there was wx86 for Alpha, MIPS and PowerPC.

For PowerPC specifically, there's a version of wx86 that has the emulator replaced with a port of Insignia SoftWindows: https://archive.org/details/softwindows-32-powerpc-v1.01

I've had that running fine under my dingus tree but haven't checked it on real hardware yet.
 

Rairii

Member
I’d love to see this evolve further with custom drivers, stability improvements, more supported models, etc. Most of these projects don’t go beyond proof of concept though, just gotta hope this goes further.
I plan to. I have an iBook G3 sitting next to me that runs NT in the wrong endianness (it boots, plenty of weird issues that would be HELL to debug), but thanks to the port to Gossamer-derivatives I learned what MSR_LE actually does, so eventually I'll do a bare metal ARC firmware little endian port to them (yes, I poked around uni-north registers hoping there was a PCI endianness switch register bit like on Bandit, but no luck).

The main things that need to be dealt with for a decent set of drivers are HAL related. There's no DMA support at all yet, mainly because even though the thing's documented due to its usage in Hydra, I have no idea how Apple's overblown DMA works. Also I'm not even sure if PCI interrupts work properly yet, most of the existing implementations just assume firmware sets up the PCI config registers appropriately, and the interrupts are completely different here (for example, I'm not sure how exactly the PCI interrupts would work for devices behind a bridge).

But given that I started porting NT to Wii to learn more about NT internals that I didn't know much about, and then later to Uni-North because I ran into hardware issues and an iBook G3 was cheaper than a USB Gecko, and then later to Gossamer-derivatives because the MPC106 actually has a little endian mode and there were systems that officially ran PowerPC NT that used it, I guess "learning things" is the entire point.

Although bring-up has been getting quicker I guess. I only bought my Lombard two months ago!
 

MOS8_030

Well-known member
There is an old Vogons thread talking about PPC NT stuff but sadly the archive.org link doesn’t seem to work anymore:

Way back around 1997-8 in the the heady days of the Apple Clone Wars when I was at Motorola we had one of those PowerStack systems running NT in our office. Our admin had it set up as a server since everyone else in the office was still using Macs.
I don't know what became of that PowerStack system. There weren't many of them made to begin with and Microsoft dropped all their work on PPC NT immediately.
I got one of only a couple StarMax systems that made it in to our group before Apple killed licensing.
I ran NT for a while on my 200mhz Starmax via Virtual PC. It was slow but it worked.
 

Daniël

Well-known member
But the GitHub readme says it’s only for tray loaders.

On top of that, there's no possibility of adding ADB to a Slotloader. The Trayloaders have a bunch of left over functional legacy connectors on the logic board, including ADB, making it possible to actually use NT4 at this point, given the current lack of (working) USB HID drivers.
 

croissantking

Well-known member
On top of that, there's no possibility of adding ADB to a Slotloader. The Trayloaders have a bunch of left over functional legacy connectors on the logic board, including ADB, making it possible to actually use NT4 at this point, given the current lack of (working) USB HID drivers
Ummm. No USB? They say the G4 Yikes is compatible.
 

Daniël

Well-known member
Ummm. No USB? They say the G4 Yikes is compatible.

It's a Gossamer Mac, so yes, it theoretically is compatible, but there's no functional input on that Mac either for now, unless you solder the ADB connector and supporting components back, like on the Trayloader.
 

croissantking

Well-known member
It's a Gossamer Mac, so yes, it theoretically is compatible, but there's no functional input on that Mac either for now, unless you solder the ADB connector and supporting components back, like on the Trayloader.
I mean, that’s a great idea, assuming I can work out what supporting components it needs.

It’s kind of a catch 22 - machine must be new world but USB is broken. The Lombard is the only machine that works without any hardware modification, since its keyboard and trackpad are connected by ADB.

Edit: Oh, and the G3 Yosemite, of course!
 

Daniël

Well-known member
I mean, that’s a great idea, assuming I can work out what supporting components it needs.

There's an article that describes it here: https://ameblo.jp/keroxiee1016/entry-12663017372.html

For the Trayloader, it's just the inductors (or resistors as used for the larger inductors in this article), and the fuse, those capacitors aren't used on the board. That said, the location of the MiniDIN-4 connector on the Trayloader board is right behind a screw post for the side panel, making it unusable in that position.

It very much seems like it was there for testing purposes during the prototype phase, that wasn't removed before production. But that just adds to my theory that the Trayloader was rushed, and the Slotloader being the iMac G3 Apple would have shipped right out of the gate if they had the means and time to do so.
 

joevt

Well-known member
I learned what MSR_LE actually does
Does the NT on PowerPC stay in little endian mode all the time, or does it switch to big endian sometimes? In either case, I am wondering if the LE check in dingusppc could be done outside the CPU instruction execution loop so that when it happens, the emulator just goes into a different CPU instruction execution loop.
 

wottle

Well-known member
This makes me want to run it on my Black G3 All-In-One that I upgraded with a Yikes CPU. I'm assuming that won't work until they get it working with the Beige G3 (same logic board as the AIO). Would be fun to see NT running on a G4 AIO...
 

Rairii

Member
Does the NT on PowerPC stay in little endian mode all the time, or does it switch to big endian sometimes? In either case, I am wondering if the LE check in dingusppc could be done outside the CPU instruction execution loop so that when it happens, the emulator just goes into a different CPU instruction execution loop.
It stays in little endian mode all the time.
 

Snial

Well-known member
OK, so based on the current conversation, NT for PPC could run on a 603e-based Mac as it too supports Little-endian mode, if it also supported built-in USB?

1721045450950.png
 

finkmac

NORTHERN TELECOM
to my knowledge, all powerpc cpus do little endian. the usb support for this isn't work yet either. neither of those are requirements for ntppc.


virtualpc even uses undocumented nanokernel calls to switch the cpu into little endian
 
Top