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:
  1. ROM in RAM
  2. unknown
  3. menu blink bit 1
  4. menu blink bit 2
  5. startup disk
  6. cache active
  7. mouse scaling
  8. 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

Init Display w/o Monitor

Normally, if no monitor is attached to the builtin video card, the video is disabled. However, if you set this PRAM value, some builtin cards will enable video even if no monitor is connected. Location 0xFC set to 4 byte value 0x524E494E or the four-character constant 'RNIN'. On some machines this will initialize as if a 12" Apple monitor were attached (512x384), and on others, as if a 13" Apple monitor were attached (640x480).

Updated November 11 2012

AltStyle によって変換されたページ (->オリジナル) /