Skip to content

Machines PReP reference systems

pappadf edited this page Sep 14, 2026 · 1 revision

PReP reference systems

This page owns: the machines NT PowerPC actually shipped for — useful because their HALs are the only working examples in existence.

Windows NT 4.0's PowerPC edition was not written for Apple hardware. It was written for PReP machines, and understanding what those were explains most of the assumptions NT brings with it.


What PReP is

The PowerPC Reference Platform, from IBM and Motorola: a specification for what a PowerPC computer should look like to an operating system.

From NT's point of view a PReP machine is, deliberately, quite PC-like — an ISA bus alongside PCI, an interrupt controller in a familiar arrangement, a real-time clock where one is expected, and ARC firmware.

That last is the important one. ARC gave NT a configuration tree, a callable firmware interface and boot settings in NVRAM. NT's non-x86 ports were written against it and have no fallback. → ARC

Apple's machines are not PReP. CHRP, the later standard that used Open Firmware, arrived too late for NT 4.0. That gap is the whole subject of this wiki.


The machines NT 4.0 supported

From TXTSETUP.SIF's [Computer] section on the installation CD — which is also the menu Setup offers when it cannot identify a machine:

Entry Machine
sandal_up IBM Power Series 6015
wood_up IBM Power Series 6020, 6040, 6042
carolina_up IBM Power Series 6050/6070, RS/6000 Model 7248
victory_up / victory_mp IBM RS/6000 Model E20/E30/F30, 7042/7043
powerstack_up MOTOROLA PowerStack
powerstack2_up MOTOROLA PowerStack2
bigbend_up MOTOROLA Big Bend
powerized_up / _mp Powerized ES, MX, LX, TX

Eight families, a handful of HALs between them — HALEAGLE.DLL serves both Big Bend and PowerStack, which is why this project originally impersonated it. → How Setup chooses a HAL


Why you should read their HALs

They are on your CD, and they are the only working examples of an NT PowerPC HAL that ship as binaries. When the DDK is silent — which is most of the time — a shipped HAL is evidence.

python3 tools/pe-exports.py HALEAGLE.DLL

That gives you the exact set of 69 names an NT 4.0 PowerPC HAL must export, which is how this project's hal.exports was established. Disassembly gives more.

None of them can be used here: a PReP HAL programs an interrupt controller this machine does not have, at addresses it does not decode. But as documentation they are excellent. → Reading NT binaries

The other reference is entii-for-workcubes, which has something the CD's HALs do not: source. → Provenance and credits


Where PReP assumptions leak into NT

Worth knowing, because each is a place where something has to be worked around on a Power Mac:

Assumption What it costs here
ARC firmware with NVRAM boot settings have nowhere to live; they are injected from outside
A firmware tool that prepares the disk ARCINST does not exist here; disks are partitioned by a host tool
The machine identifies itself recognisably device-tree matches nothing, so Setup must be told
Legacy VGA at 0xA0000 is a device, not RAM the video resource conflict — still worked around, ledger row 6
An ISA bus exists drivers probe ports that do not exist, and the HAL must refuse safely

The last row is not theoretical: a PCMCIA driver probing an ISA port at 0x3E0 killed the machine outright until the HAL learned to decline addresses the bridge does not decode.


Next

Clone this wiki locally