-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
The questions people ask before reading anything else.
Not yet, and nobody has tried. Everything here runs under an emulator. Several parts of the current setup exist only because it is an emulator — boot settings injected from outside, firmware patched in memory, disks spliced into a copy-on-write layer.
That is not a polite way of saying "probably works". It means the honest answer is unknown, and the list of what would have to change is written down rather than guessed at. → What is known and unknown
You should look at it — maciNTosh runs NT on Old World and New World Power Macs, and this project would not exist without it.
The difference is the machine. maciNTosh targets Grackle/Gossamer-class hardware and brings its own ARC firmware; the Apple Network Server is TNT-class — Bandit, Grand Central, Hammerhead — and already has Microsoft's own ARC shim in the form of the veneer. Different chipset, different interrupt controller, different bridge, so a different HAL.
maciNTosh-bandit by MCJack123 is the fork that ported the Cuda code to this silicon, and it is
the reason a keyboard works here at all.
→ Provenance and credits
An ANS ROM, a Windows NT 4.0 PowerPC CD image, and disk images. Nothing copyrighted is distributed by this project and nothing ever will be. → Media you must supply
NT 4.0 is the last Windows NT with a PowerPC edition. There is no later option. This project uses the OEM 000-48303 (October 1996) Workstation release.
Note that the PowerPC build is a separate product from the x86 one — an x86 NT 4.0 CD is no use.
For the practical guides, yes — and specifically a branch of it, not mainline. Building
Granny Smith's main produces a machine that cannot run any of this and will not tell you why.
→ Getting Granny Smith
The theory pages are worth reading without any of that.
Text-mode Setup installs completely, the installed system boots, and graphics-mode Setup — the second half of an NT install — runs: the wizard draws at 640x480 on the machine's Cirrus and copies files to the installed volume. It has never run on real hardware. → Status and roadmap
Getting rid of the last indefensible workaround. cirrus.sys claims the legacy VGA aperture at
0xA0000, which is reasonable on a PC and meaningless here — the bridge does not forward CPU
accesses there and the address is ordinary RAM. NT correctly refuses the claim, so no display
device is created. Today that check is defeated rather than satisfied, and graphics-mode Setup
depends on the defeat. Two clean fixes have been ruled out by measurement; the remaining lever is
the veneer, declaring the aperture a firmware memory hole.
→ The NT video stack
Sixty-nine exported functions, of which perhaps a dozen must be genuinely right before anything boots at all — and the documentation names them without saying what order they are called in, who owns what, or which may be stubs.
The difficulty is not volume. It is that a wrong answer usually produces no diagnostic: the machine stops, or hangs, or crashes somewhere unrelated four subsystems away. → The HAL contract
Probably much of it, eventually. Most of the HAL is about the TNT chipset rather than the Network Server, and the machine-specific part is a short enumerated list.
The bigger obstacle is firmware: a desktop TNT has no ARC shim of its own, so it needs a loader as well as a HAL. → Desktop 7500/8500/9500
Because the shape of it was learned by reading GPL-2.0 source. No lines were copied, but the IRQL
model, the interrupt dispatch and the phase ordering all came from reading halartx, and that is
a derivation. Licensing accordingly is the least the project owes.
→ Provenance and credits
No. Those trees are not consulted and must not be. Everything here comes from the DDK-documented contract, the export and symbol tables of shipped binaries, observed behaviour under a debugger, and hardware documentation. → Contributing
The most useful things, roughly in order:
- Try it on real hardware if you have a Network Server and a serial cable. Nobody has.
- A video driver or miniport that does not claim the legacy VGA aperture.
- An ADB port driver of our own, so the project stops depending on a binary it may not redistribute.
- An ARC environment store backed by Open Firmware's nvram, so boot settings survive a reboot.
→ Status and roadmap, Contributing
If you want the explanation: Why NT on a Power Mac is hard.
If you want the story:
STORY.md — every wall, in the
order it bit, with what each turned out to be.
Corrections welcome — this wiki is edited directly, so nothing here has had a review. Repository · STORY.md · GPL-2.0-only
Start here
Theory
- Why NT on a Power Mac is hard
- Open Firmware
- ARC
- The veneer
- The NT boot chain
- The HAL contract
- The NT PowerPC ABI
- Little-endian PowerPC
- How Setup chooses a HAL
- The NT video stack
Machines
Emulator
- Getting Granny Smith
- Media you must supply
- Building the HAL
- The boot floppy
- Preparing disks
- Running text-mode Setup
- Capturing the installed image
- Booting the installed system
- Iterating on the HAL
- Checkpoints and deltas
- Making an OEM CD (retired)
Real hardware
Debugging
- The emulator shell
- Reading NT binaries
- Decoding a bugcheck
- When your instrumentation lies
- Debugging recipes
Reference
- HAL exports
- ARC environment variables
- The veneer's VrDebug bitmask
- Veneer patch catalogue
- Address and interrupt map
- Error codes seen
Project