-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Running Windows NT 4.0 on a Power Macintosh — how it works, and how to do it yourself.
This wiki is about a machine Microsoft never shipped for and Apple never supported: the Apple Network Server 500/700, a Power Macintosh 9500 logic board with server changes. NT 4.0 had a PowerPC edition, but only for IBM and Motorola machines built to a standard Apple did not follow. Closing that gap needs three things — firmware that looks like what NT expects, a HAL written for this hardware, and drivers — and this project is where that is being worked out in the open.
The code lives at pappadf/powermac-nt-hal. This wiki is the explanation around it.
Honest summary, updated as things move. The detail is on Status and roadmap.
| Text-mode Setup | Runs end to end on the emulated Network Server — sixty-one screens, hardware detection through to "This portion of Setup has completed successfully", with no bugcheck in the run |
| The installed system |
Boots. Firmware → veneer → OSLOADER.EXE → the registry → boot drivers → NTOSKRNL.EXE and a HAL built from this source. It completes NT's I/O initialisation: both SCSI controllers with adapters, interrupt vectors and real interrupts; the partition table read through our own code |
| Graphics-mode Setup |
Runs. The NT Setup wizard draws at 640x480 on the machine's Cirrus and copies files from the CD to the installed volume — win32k.sys, the Cirrus miniport and its display driver all live. It depends on one workaround: the video resource bypass, ledger row 6 |
| Real hardware | Never tried. Everything here is an emulator. See What is known and unknown |
Two caveats that matter, stated up front rather than buried: a small number of firmware patches and one indefensible bypass are still in the loop — graphics-mode Setup depends on that bypass — all of them enumerated in the ledger of workarounds; and the project is developed against an emulator branch that is not yet merged upstream.
| If you want to… | Start here |
|---|---|
| Understand how any of this works | Why NT on a Power Mac is hard, then Open Firmware → ARC → The veneer → The NT boot chain |
| Run it yourself | Getting Granny Smith → Media you must supply → Building the HAL → Running text-mode Setup |
| Write a HAL, for this or another machine | The HAL contract and — read this one before you write a line — The NT PowerPC ABI |
| Debug something that has gone wrong | Debugging recipes, and When your instrumentation lies |
| Port this to a desktop Power Mac | The PowerMac TNT family and Desktop 7500/8500/9500 |
| Know what is borrowed, and from whom | Provenance and credits |
New to the vocabulary? The glossary defines every acronym on this wiki, and is designed to be read straight through in five minutes.
- Theory — the durable explanations. What Open Firmware is, what ARC is, what NT's loader and kernel demand. These change slowly and are worth reading even if you never run anything.
- Machines — the hardware, described for someone writing low-level code for it.
- Emulator — the practical guides. Everything you need to reproduce the results.
- Real hardware — currently a list of unknowns, kept honest.
- Debugging — the techniques, and the traps.
- Reference — tables you will come back to.
- Project — status, credits, contributing, and the narrative of how it was built.
The wiki deliberately does not duplicate the repository. Anything version-locked — the code, the wall-by-wall story, the provenance log — lives there and is linked from here.
Nothing copyrighted is distributed by this project, and that is not negotiable. To follow the practical guides you will need to provide, from your own legally obtained copies:
- an Apple Network Server ROM,
- a Windows NT 4.0 PowerPC CD image,
- and disk images, which the tools will create for you.
Media you must supply explains what each is for and how to check you have the right one.
This is not a polished product, and it is not a tutorial with a guaranteed ending. It is a research project that is being written down as it goes — including the dead ends, which are recorded alongside the results because several of the theories here were wrong within hours of being written. If a page says "status: open", that is the current truth and not an oversight.
The companion to this wiki is
STORY.md in the
repository: every wall this project hit, in the order it hit them, with what each one turned out
to be. If you like reading how something was actually figured out rather than how it is
supposed to work, start there instead.
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
- Making an OEM CD
- Preparing disks
- Running text-mode Setup
- Capturing the installed image
- Booting the installed system
- Iterating on the HAL
- Checkpoints and deltas
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