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:
- ROM in RAM
- unknown
- menu blink bit 1
- menu blink bit 2
- startup disk
- cache active
- mouse scaling
- color desktop pattern
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