PRAM Used By ROM
The 68k Mac system ROM uses some values in PRAM, this attempts to document the ones I find.
Address (hex) | Length | Description |
04 | 3 | First 3 bytes of ROM password |
0B | 1 | bitfield:
|
0E | 1 | ROM password checksum |
0F | 1 | ROM password flags |
10 | 1 | 0xA8 (pram validity flag) |
14 | 2 | Modem serial port settings (speed?) |
16 | 2 | Printer serial port settings (speed?) |
18 | 4 | Alarm time in seconds since mac epoch |
1C | 2 | Default font |
1E | 1 | Top nibble = key repeat threshold, bottom nibble = key repeat rate |
20 | 32 | 40th byte of .netBOOT storage |
40 | 6 | Used by A/UX |
46 | 30 | Slot Manager (6 slots * 8bytes/slot). Note that portables overload this space |
70 | 1 | Sleep timeout. 0 = nosleep. Overlaps with Slot Manager. |
71 | 1 | Disk Sleep timeout. 0 = nosleep. Overlaps with Slot Manager. |
72 | 1 | Low Battery warning. Overlaps with Slot Manager. |
73 | 1 | Dead Battery warning. Overlaps with Slot Manager. |
74 | 1 | High Temp warning. Overlaps with Slot Manager. |
75 | 1 | PCMCIA card. Overlaps with Slot Manager. |
76 | 1 | Used by Start Manager to validate PRAM contents |
77 | 1 | Set/GetOSDefault |
78 | 4 | Set/GetDefaultStartup. 1byte drive ID, 1 byte partition, 2 bytes driver reference number. |
7C | 2 | 'snd ' resource ID for default alert sound |
7E | 1 | Delay for hierarchical menus |
7F | 1 | Delay for dragging? |
80 | 2 | Default video device |
82 | 6 | Default highlight color |
8B | 32 | .netBOOT server name |
AB | 3 | First 3 bytes of .netBOOT storage (machineID, protocol, errors). |
AB | 3 | Last 4 bytes of ROM password. Overlaps with .netBOOT |
AF | 1 | .EDisk RAM disk size |
BC | 1 | 4th byte of .netBOOT storage (flags) |
BD | 21 | AppleTalk Zone |
DE | 2 | Last AppleTalk network number |
E0 | 4 | Default AppleTalk device |
FC | 4 | Initialize display without monitor (for machines with onboard video) |
ROM in RAM
Byte 11, bit 1. If set, the ROM will copy its self into RAM and run from there. Seems to be AV ROMs and higher.
NetBOOT Driver Controls
The netboot driver stores quite a bit of information stored across several different PRAM locations. This is the general structure:struct netboot { char machineID; /* this is used as part of the boot protocol */ char protocol; char errors; char flags; /* Used to enable netbooting, and allow guest netbooting */ char intervalCount; /* high nibble is the retry count, low nibble is the interval between retries */ char timeout; unsigned long signature[4]; char userName[31]; char password[8]; short serverID; /* the value here will be translated to ascii encoded hex and used as the server name to boot from. */ char unused[7]; };Which is stored broken up over the following locations:
Location | Length |
4 | 4 |
0xAB | 3 |
0xBC | 1 |
0x20 | 32 |
0x8B | 32 |