Skip to content
HN On Hacker News ↗

Testing MacOS on the Apple Network Server 2.0 ROMs

▲ 92 points 18 comments by zdw 3w ago HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully human-written

4 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 8 of 8
SEGMENTS · AI 0 of 8
WORD COUNT 1,459
PEAK AI % 10% · §5
Analyzed
May 5
backend: pangram/v3.3
Segments scanned
8 windows
avg 182 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 1,459 words · 8 segments analyzed

Human AI-generated
§1 Human · 3%

It's time for another save point in the continuing saga of the various ROMs for the Apple Network Server, Apple's first through-and-through Unix server (previously, previously). The Apple Network Server was only ever officially able to boot AIX, IBM's proprietary Power ISA-specific Unix, though it was originally intended to run Novell NetWare and was demonstrated booting Mac OS with early pre-production ROMs. However, much to industry surprise, late in its life cycle then-CTO Ellen Hancock announced that the ANS would be able to boot Mac OS and even Windows NT as well using ROM upgrades. Neither ROM was officially released before Steve Jobs convinced Gil Amelio to cancel the line, and for many years they were believed to be vapourware.

But they've started to surface, first with an ex-Apple employee who had both the preproduction ROM and the Mac OS ROM on a flash ROM SIMM, and later another employee turned up with the NT ROM, though sadly more is needed to make it actually run NT. It turned out that I also had the preproduction ROM in a box gathering dust, and a couple months ago we put both the preproduction ROMs and NT ROMs through their paces.

Well, thanks to Jeff Walther who generously built a few replica ROM SIMMs for me to test, we can now try the "2.0" MacOS ROMs on holmstock, our hard-working Apple Network Server 700 test rig (stockholm, my original ANS 500, is still officially a production unit). And there are some interesting things to report, especially when we pit the preproduction ROMs and this set head-to-head in MacBench, and even try booting Rhapsody on it.

When we last left the 700, it still had the preproduction 1.1.20.1 ROM installed, which can be used to boot either MacOS or AIX and makes it look to MacOS like a Power Macintosh 9500, the ANS's closest relative. However, the ANS has unique hardware: two Symbios Logic 53C825A SCSI-2 Fast and Wide controllers (20MB/s) for the internal SCSI bays and on-board Cirrus Logic 54M30 graphics used in no other Apple product.

§2 Human · 8%

MacOS never supported these and the preproduction ROM does not contain support for them, so to boot Mac OS you have to use the external 5MB/s CURIO SCSI (the ANS doesn't have the typical Power Macintosh MESH controller) and a Mac-compatible PCI video card. I selected a IMS TwinTurbo, the same card shipped with the Power Macintosh 9500, and booted it off an external BlueSCSI, both of which work well for this purpose. Once you get everything set up, versions up to at least Mac OS 9.1 are compatible, though with various annoying glitches you have to work around because it's not really a 9500.

The value proposition of the 2.0 ROM is that support for Cirrus video and 53C825A SCSI comes standard — the drivers are built-in to the firmware. You can then boot Mac OS from the internal CD and install it to an internal SCSI disk at full speed, and connect your monitor directly to the ANS's VGA port (one of the only Apple systems of this era to have a standard HDI-15 video connector instead of the usual Mac DA-15). To test this, we'll unplug the BlueSCSI, remove the TwinTurbo and also take out the ANS-specific 10Mbit Ethernet card I installed because the onboard MACE Ethernet wasn't working, just in case it makes a difference. (More on that in a bit.)

The ANS also has a front-mounted LCD which can be used for displaying system status or other notifications. AIX and NetBSD both directly support it. Ordinarily this would be full of diagnostics and POST messages while the system boots, but the LCD is completely blank with the 2.0 ROMs installed and never shows any activity. In fact, it's the same kind of blank you'd get if the processor board went wacky, which is a little unnerving to an old ANS hand like me.

For some reason, and it could be my system because I usually have the PRAM battery out to let the logic board more quickly reset between experiments, I always had to three-finger reset it with Control-Command-Reset to get it to bong.

§3 Human · 4%

The bong this ROM makes also seems a little truncated, and compared to regular ROMs with the extensive Long RAM test, these ROMs come up very quickly to the patterned Toolbox background. We have nothing installed it can boot from, so it almost immediately displays a gimme-disk animation, just like a regular Mac. But unlike most other Old World Macs (and the preproduction ROMs), the icon is in colour, because this is Open Firmware 2.0.

I reset it again and held down Command-Option-O-F to force Open Firmware to start. This also comes up immediately, and on the main screen as it would on a regular ANS.

This ROM is notable in that, besides the usual bye and boot words, there is an io word to redirect output for you. If you type ttya io at the console, it immediately switches to serial on rear port 2 at 38400bps by default. We want to see if it does anything interesting when we start it, so we'll setenv input-device ttya:57600, setenv output-device ttya:57600 and reset-all to default it to serial startup, but we still have to hold down Cmd-Opt-O-F or it snaps back into the Toolbox ROM. Let's dump the device tree. Open Firmware, 2.0 To continue booting the MacOS type: BYE<return> To continue booting from the default boot device type: BOOT<return> For Open Firmware serial I/O type: TTYA IO<return> ok 0 > printenv

VARIABLE CURRENT DEFAULT little-endian? false false real-mode? false false auto-boot? true true diag-switch? false false fcode-debug? false false oem-banner? false false oem-logo? false false use-nvramrc?

§4 Human · 4%

false false real-base -1 -1 real-size 100000 100000 virt-base -1 -1 virt-size 100000 100000 load-base 4000 4000 pci-probe-list -1 -1 screen-#columns 64 64 screen-#rows 28 28 selftest-#megs 0 0 boot-device /AAPL,ROM /AAPL,ROM boot-file diag-device fd:\diags fd:\diags diag-file input-device ttya:57600 kbd output-device ttya:57600 screen oem-banner oem-logo nvramrc boot-command boot boot ok 0 > dev / ok 0 > ls

Children of the node: FF82A4C8: / [AAPL,9500 MacRISC]

Node Adr Node Name Compatible

FF82B8B8: /cpus@0 FF82B9D0: /PowerPC,604@0 FF82BDE8: /l2-cache@0,0 FF82C528: /chosen@0 FF82C658: /memory@0 FF82C7A0: /openprom@0 FF82C860: /AAPL,ROM@FFC00000 FF82CA78: /options@0 FF82CF28: /aliases@0 FF82D168: /packages@0 FF82D1F0: /deblocker@0,0 FF82D9C8:

§5 Human · 10%

/disk-label@0,0 FF82E4B8: /obp-tftp@0,0 FF830710: /mac-files@0,0 FF832508: /mac-parts@0,0 FF8336F0: /aix-boot@0,0 FF833B40: /fat-files@0,0 FF835158: /iso-9660-files@0,0 FF835AC0: /xcoff-loader@0,0 FF836388: /terminal-emulator@0,0 FF836420: /bandit@F2000000 FF837848: /gc@10 FF837C80: /53c94@10000 FF839490: /sd@0,0 [sd] FF83A1E0: /st@0,0 [st] FF83AE80: /mace@11000 FF83BD10: /escc@13000 FF83BE68: /ch-a@13020 FF83C4C0: /ch-b@13000 FF83CB18: /awacs@14000 FF83CC00: /swim3@15000 FF83E050: /via-cuda@16000 FF83EF00: /adb@0,0 FF83EFF0: /keyboard@0,0

§6 Human · 10%

FF83F910: /mouse@1,0 FF83F9C0: /pram@0,0 FF83FA70: /rtc@0,0 FF83FF10: /power-mgt@0,0 FF83FFD0: /lcd@1C000 FF840908: /nvram@1D000 FF8426D0: /pci106b,1@B FF8428A8: /54m30@F [pci1013,a0] FF8445F8: /apple53C8xx@11 [53c825] FF8471E0: /sd@0,0 FF8480D8: /apple53C8xx@12 [53c825] FF84ACC0: /sd@0,0 FF840AA0: /bandit@F4000000 FF84BD60: /pci106b,1@B FF841F30: /hammerhead@F8000000

This is a little different from the device trees on our other ROMs, and not everything seems to work or was updated, suggesting this was unfinished at the time the product was cancelled. For example, if we look at the list of device aliases ... ok 0 > devalias vci0 /chaos@F0000000 pci1 /bandit@F2000000 pci2 /bandit@F4000000 fd /bandit/gc/swim3 kbd /bandit/gc/via-cuda/adb/keyboard ttya

§7 Human · 3%

/bandit/gc/escc/ch-a ttyb /bandit/gc/escc/ch-b enet /bandit/gc/mace scsi /bandit/gc/53c94 scsi-int /bandit/gc/mesh screen /bandit@F2000000/54m30@F

... the definition for the internal SCSI doesn't actually exist. You'd think that scsi-int would point to the internal SCSI, and a path like /bandit/gc/mesh (GC in this case is Grand Central) would do so on a regular Power Mac, but the ANS doesn't have a MESH. That means trying to list the contents of a CD-ROM in the internal optical drive, ordinarily SCSI 0 on an ANS ... ok 0 > dir scsi-int/sd@0,0:,\ unable to open the DIR device

... doesn't work. You have to do it in long-hand: ok 0 > dir /bandit/apple53C8xx@11/sd@0,0:,\ . 00000010 000023 000002048 000 000 .. 00000010 000023 000002048 000 000 DIAGS. 00000000 000024 000189345 000 000 NWSTART. 00000000 000117 003603460 000 000 OFWBOOT.

§8 Human · 1%

00000000 001877 000349998 000 000 TRANS.TBL 00000000 002048 000000655 000 000

Also, even though there is an AIX loader package in the 2.0 ROMs, it doesn't work either (using a bootable 4.1.5 CD): ok 0 > boot /bandit/apple53C8xx@11/sd@0,0:aix loader: unrecognized client program format state not valid

In fact, if you have a bootable AIX drive plugged in, the system will crash. I found that out when the ANS was freezing up shortly after POST and I eventually tracked down the culprit.

By comparison, the 1.1.20 preproduction ROMs show a much more sensible list of device aliases. disk2:aix Device isn't there! can't OPEN: /bandit/53c825@11/sd@2,0:aixOpenFirmware1.1.20 To continue booting the MacOS type: BYE<return> To continue booting from the default boot device type: BOOT<return> ok 0 > devalias vci0 /chaos@F0000000 pci1 /bandit@F2000000 pci2 /bandit@F4000000 fd /bandit/gc/swim3 kbd /bandit/gc/via-cuda/adb/keyboard ttya /bandit/gc/escc/ch-a ttyb /bandit/gc/escc/ch-b enet /bandit/gc/mace scsi /bandit/gc/53c94 scsi-int