Jump to content

Macintosh Old World ROM: Difference between revisions

From RetroTechCollection
No edit summary
No edit summary
Line 39: Line 39:
** '''Block pattern tests:''' Large sequential fills verify stability across DRAM banks.
** '''Block pattern tests:''' Large sequential fills verify stability across DRAM banks.
* On early 68k Macs, failing DRAM produces Sad Mac codes and a hex error on-screen.
* On early 68k Macs, failing DRAM produces Sad Mac codes and a hex error on-screen.
* On PCI-based Power Macs, DRAM failures trigger the [[Chimes of Death]].
* On PCI-based Power Macs, DRAM failures trigger the [[Sad Mac Error Codes|Chimes of Death]].


=== Stage 3: Video and Display Init ===
=== Stage 3: Video and Display Init ===
Line 52: Line 52:
** External SCSI devices.
** External SCSI devices.
** Expansion ROMs (NuBus/PCI option cards with boot code).
** Expansion ROMs (NuBus/PCI option cards with boot code).
* Startup disk preference is read from [[parameter RAM]] (PRAM); if not set, the default hierarchy applies.
* Startup disk preference is read from parameter RAM (PRAM); if not set, the default hierarchy applies.


=== Stage 5: System Folder Verification ===
=== Stage 5: System Folder Verification ===

Revision as of 01:32, 29 August 2025

Showing all three icons of the OldWorld ROM (from left to right: Missing OS, Happy Mac (Found OS), and Sad Mac (Macintosh 128k/Plus) logos)

Old World ROM refers to Macintosh systems that rely on a physical ROM chip containing the Macintosh Toolbox firmware—either socketed or soldered to the motherboard. This includes early Motorola 68k-based Macs, NuBus Power Macs, and PCI-based "Beige" and Platinum Power Mac G3 machines. All such models utilize a unified boot sequence grounded in Toolbox logic. Later New World ROM systems (iMac, iBook, Blue & White Power Mac G3, PowerBook G3 Lombard, and onward) replaced this approach with disk-loaded Toolbox via flash and enhanced Open Firmware 3.x.

Architecture and Boot Process

Physical Toolbox ROM

  • Stores the Macintosh Toolbox routines: QuickDraw, Menu Manager, Event Manager, Window Manager, and other low-level system functions.
  • Includes boot code and hardware initialization logic.
  • On PowerPC systems, incorporates a 68k nanokernel emulator that allows 68k Toolbox code and legacy applications to run transparently.

PowerPC and 68k Emulation

  • PowerPC-based Old World systems begin execution in the nanokernel.
  • The nanokernel emulates a Motorola 68LC040 CPU, running Toolbox firmware until Mac OS initializes native PowerPC services.
  • This dual-architecture environment allows seamless use of both 68k and PPC applications.

Role of Open Firmware

  • Present in PCI-based Old World Macs (e.g. Power Macintosh 7200, 7500, 9500).
  • Early Open Firmware revisions were limited: primarily enumerating PCI devices and invoking Toolbox.
  • Lacked robust filesystem support (e.g. HFS boot), requiring bootloaders or nvramrc patches for alternative OS installs.
  • Invoked by holding ⌘ Cmd+⌥ Option+O+F at startup, although functionality is more restricted compared to New World systems.

Detailed Boot Sequence

The boot process of an Old World ROM Macintosh is rigid and heavily defined by the Toolbox. It consists of a predictable sequence of diagnostic and initialization steps:

Stage 1: Power-On and Low-Level Tests

  • Upon power application or reset, the system begins execution at a fixed ROM vector.
  • A minimal POST (Power-On Self-Test) is executed:
    • CPU self-test: The CPU runs a checksum of its microcode and performs instruction validation loops.
    • ROM checksum: The system verifies the integrity of the ROM contents.
    • Memory controller test: Ensures DRAM controller and refresh logic are functional.
    • SMU/PMU init (later Macs): Initializes power management circuitry.
  • Failure at this stage results in no video output or a dead system.

Stage 2: Memory Tests

  • ROM-based memory tests probe system RAM line by line:
    • Data bus test: Writes alternating patterns (0x55, 0xAA) to detect stuck bits.
    • Address line test: Walking-ones and walking-zeros patterns to check address decoding.
    • Block pattern tests: Large sequential fills verify stability across DRAM banks.
  • On early 68k Macs, failing DRAM produces Sad Mac codes and a hex error on-screen.
  • On PCI-based Power Macs, DRAM failures trigger the Chimes of Death.

Stage 3: Video and Display Init

  • If onboard video is present, the ROM initializes the video frame buffer, sets a default resolution, and clears the screen to gray.
  • If no onboard video exists, the Toolbox scans NuBus or PCI slots for a card containing a valid Option ROM with Apple video driver code.
  • Successful video init allows icons (Happy Mac, Sad Mac, question mark) to be displayed.

Stage 4: Device Enumeration

  • Toolbox scans for bootable devices in a fixed order:
    • Internal floppy drive (if present).
    • Internal SCSI devices, lowest ID first (typically ID 0).
    • External SCSI devices.
    • Expansion ROMs (NuBus/PCI option cards with boot code).
  • Startup disk preference is read from parameter RAM (PRAM); if not set, the default hierarchy applies.

Stage 5: System Folder Verification

  • If a floppy or SCSI disk is found, the ROM checks the disk for:
    • A valid HFS or MFS filesystem.
    • A blessed System Folder (a folder marked as bootable by Mac OS).
  • If valid, the Happy Mac icon is displayed, and control is handed to the System file.
  • If no valid boot disk is found, the blinking disk/question mark icon is shown.

Stage 6: Error Handling

  • Sad Mac displayed for hardware-level or early boot failures, accompanied by a hex error code.
  • Chimes of Death sound emitted on later Power Macs for fatal errors that prevent Toolbox from running.
  • Certain codes indicate ROM checksum failure, CPU test failure, or RAM controller issues.

Developer Tools and ROM Manipulation

  • Some development models used rewritable ROM SIMMs with VPP and write-enable lines for Apple-internal debugging.
  • Engineers could flash new Toolbox builds directly into system ROMs.
  • Public Macs were not designed for user-level ROM modification, though third-party ROM SIMMs later enabled custom firmware.

Alternative Boot Methods

  • Because Toolbox is always executed first, alternative OS installs required workarounds:
    • BootX – Loads Linux kernels from within Mac OS.
    • Quik / iQuik – Forth-based bootloaders that run under Open Firmware, bypassing Toolbox.
    • Special floppy images – Used to deceive Toolbox into launching non-Mac OS kernels (common in Linux PPC distributions).
  • 68k-based Macs and NuBus Power Macs require Mac OS to be present to boot any secondary operating system, including Apple’s own A/UX.

Transition and Identification

  • Old World ROM machines can be identified by the absence of built-in USB ports. Only New World models introduced USB as factory standard.
  • Mac OS X Support: Officially supported only on the Beige Power Mac G3 and PowerBook G3 Series (Wallstreet). Later systems required New World ROM.
  • Transition to New World ROM marked a fundamental architectural shift: Toolbox code was loaded from disk by Open Firmware rather than residing in physical ROM.

See also