Skip to end of metadata
Go to start of metadata

Everything PRAM, put it here!

Generally speaking, PRAM for 68k Macs is 256 bytes.  The original pre-SCSI machines (128/512k/512ke) came with a 20 byte PRAM with slightly different locations for values.  These are listed as "OldOffset" in the table below.  Generally the mapping is 0x00-0x0F of the old PRAM maps to 0x10-0x1F of the 256 byte PRAM, and 0x10-0x13 of old PRAM maps to 0x08-0x0B of the 256 byte PRAM.

OffsetOldOffsetLength

Description

0x02 2

These are used by the original SCSI Manager.

The lower 3 bits of each byte are the SCSI ID. The rest of the byte are flags defaulting to 0x48 in both bytes.

0x02: The CPU's SCSI ID. Defaults to 7

0x03: The SCSI ID of the internal HD. Defaults to 0

0x080x101

Bits 0-2: Speaker volume 0 = silent, 7 = loud

Bits 3-6: Mouse tracking

Bit 7: alarm enabled

0x090x111

Bits 0-3: The caret-blink time specified in 4x tick increments.

Bits 4-7: The double-click threshold time specified in 4x tick increments.

0x0A0x121Size of disk cache in 32KB blocks. Defaults to 1. "Reserved" on 64k ROMs
0x0B0x131

Bits 0: ROM is copied into RAM on boot

Bits 1: unknown

Bits 2-3: How many times (0-3) a menu item should blink when selected

Bits 4: Startup disk is internal (0) or external (1). 64k ROMs only?

Bits 5: Cache is enabled

Bits 6: Mouse scaling is active

Bits 7: Color desktop pattern

0x0C 4

Plus & SE: 'BUGS' 0x42756773

Macintosh II and later: 'NuMc' 0x4E754D63

0x100x001Validity: 0xA8
0x110x011AppleTalk node ID hint for modem port. Documented in Inside Macintosh Volume II, although is likely not used by newer AppleTalk.
0x120x021AppleTalk node ID hint for printer port.
0x140x042

Serial Port A (modem port) configuration. Default = 0xCC0A

This is a literal 1 word mask of the serial driver config parameters.

Bits 0-9: baud

Bits 10-11: parity

Bits 12-13: data bits

Bits 14-15: stop bits

Example using Serial.h constants for the default config:

baud9600 = 0x000A

noParity = 0x0000

data8 = 0x0C00

stop20 = 0xC000

0x160x062Serial port B (printer port) config. As above.
0x180x084Alarm time in seconds since 00:00:00 January 1, 1904
0x1C0x0C2Default Font. This is the font number -1. Documented in Inside Mcintosh Volume II
0x1E0x0E1

Bits 0-3: The rate at which characters are repeated when a key is held down on the keyboard, specified in 2x tick count.

Bits 4-7: The duration a key must be depressed before it starts autorepeating. Specified in 4x ticks

0x1F0x0F1Bit 0: indicates which serial port the printer is connected to. 0 = printer port, 1 = modem port
0x46 48Slot storage. 8 bytes per slot * 6 slots. This space is overloaded, machines that don't have slots (or all slots) can reuse portions of this space. Notably, laptops reuse some of this space.
0x70 1

Portables: system sleep timeout in 15 second intervals. 0 = no sleep

The delay is used in Ticks (1/60ths of a second), and this value is converted to ticks by multiplying by (60*15).

0x71 1Portables: disk sleep timeout in 15 second intervals. 0 = no sleep
0x78 4

Default startup device selection. The bits have different meanings for SCSI vs. Slot startup device selection:

For Slots:

0x78: Ext Device ID

0x79: Partition

0x7A: Slot ID

0x7B: Slot Resource ID

For SCSI:

0x78 & 0x79: 0xFF (reserved) in earlier ROMs. In later ROMs 0x79 is the partition.

0x7A & 0x7B: (2 byte word) Driver reference number. This can be converted to a SCSI ID by a binary NOT, and subtracting 0x20.

The original SCSI Manager will use the SCSI ID derived from the driver reference number for the default boot device. SCSIMgr4.3 behaves differently to support multiple busses and LUNs.

If this location contains the value 'SCBI', the ROM will check the SCSI port for MSG asserted, and CD and IO signals deasserted. If this condition is met, it will boot into a diagnostic mode.

0x8A 1

Memory Manager Flags

Bit 0: Whether the system started in 24 or 32bit mode. 0 = 24bit / 1 = 32bit. Defaults to 0

Bit 1: Ostensibly mixed-mode support. This is mainly for 68k/PPC support and is not used on 0x676 versioned ROMs. Even on 0x77D versioned ROMs, it appears to only be set and never read. Defaults to 0.

Bit 2: System heap is 24 or 32bit mode. 0 = 24bit / 1 = 32bit. Defaults to 0, this should be set consistently with bit 0.

Bit 3: Read-Only Zone is 24 or 32bit. The ROZ is typically the ROM's resource map, which is presented as a memory manager Zone, and of course is read-only. Whether it is 24 or 32bit depends on how it is stored in the ROM, and this value really shouldn't be toggled in PRAM.

Bit 4: Whether the System Heap should be loaded high. This is a debugging feature and should be 0 by default. By creating an invalid region of memory lower in the address map, and relocating the System Heap, this can help expose bugs.

0xAF 1Size of RAM Disk (.EDisk driver) in 1/256ths size of system RAM.
0xF8 4

If this location contains the value 'SCBI', the ROM will check the SCSI port for MSG asserted, and CD and IO signals deasserted. If this condition is met, it will boot into a diagnostic mode.

0xFC  If these bits are the 4char constant 'RNIN', some builtin video will initialize as though a monitor were detected. It will either be as though an Apple 12" (512x384) or Apple 13" (640x480) were attached, depending on the builtin video.
Labels
  • None