Apple Network Server MacOS based ROMs found

joevt

Tinkerer
Mar 5, 2023
225
91
28
OK, I've finally posted my detailed work log on the 1.1.20.1 and 2.26NT ROMs with a lot of commentary.

The nvramrc script and nvram variables that get modified by classic Mac OS are stored in OFpt resources in the Startup Disk control panel.

Code:
'OFpt' (128, "PowerSurge")
'OFpt' (129, "PowerExpress")
'OFpt' (130, "Gossamer")
'OFpt' (131, "PowerMac G3")
'OFpt' (132, "Wallstreet")
'OFpt' (133, "Mainstreet")
'OFpt' (134, "Hooper")
'OFpt' (135, "Kanga")
'OFpt' (136, "Alchemy")

A similar set of resources exist in XPostFacto.

It looks like the control panel is choosing the PowerSurge script. That script is meant for Open Firmware 1.0.5. It is not suitable for the ANS versions of Open Firmware.

For example, the line 6ED '& execute executes fcode 0x6ED.
6ED is different for each version of Open Firmware:
  • 1.0.5: 6ED = restore-ttp800 (but the name for this fcode and most others is not stored in OF 1.0.5)
  • 1.1.20.1, 1.1.22: 6ED = key=locked?; 6E8 = restore-ttp800
  • 2.0: 6ED = do-map; 6DA = restore-ttp800
  • 2.26B6, 2.26NT: 6ED = status; 6F7 = restore-ttp800
The choice is made using the OFtc resource which maps a model identifier (such as AAPL,9500) to a OFpt resource ID. It should have been choosing by Open Firmware version or by the 64-bit checksum of the ROM (which covers the entire 4 MiB instead of just the first 3 MiB - Open Firmware is in the last 1 MiB).

Creating an nvramrc script for each ANS ROM requires the following:
  1. Decipher what is being patched for PowerSurge.
  2. Do the same for all the other OFpt resources in case they have relevant changes that don't exist for PowerSurge.
  3. Translate all the relevant patches for your version of Open Firmware.
This is optional since you have seen that the ANS is bootable without any patches.

I've documented most of the PowerSurge patches used by my version of XPostFacto.

Regarding the CLAIM failed error, I suppose a patch can be created to see what is attempting the CLAIM (by dumping the return stack) and what it is trying to CLAIM (a physical or virtual memory range)... I want to add this patch to my Open Firmware Extender to see why Open Firmware 2.4 won't boot Mac OS X 10.2 if auto-boot? is false. The Open Firmware Extender is mentioned at #5,071 . I want to port it to different versions of Open Firmware. Maybe it can inject the ndrv for ANS graphics and for the ANS SCSI controllers for versions of the ANS ROM that don't include those.
 

Attachments

  • joevt-XPostFacto nvram.zip
    29.7 KB · Views: 4