Macintosh Old World ROM: Difference between revisions
No edit summary |
No edit summary |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
[[File:Oldworldromsym.png|thumb|350px|Showing all three diagnostic icons of Old World ROM: Missing OS (flashing question mark), Happy Mac (successful POST), and Sad Mac (hardware failure detected during POST)]] | [[File:Oldworldromsym.png|thumb|350px|Showing all three diagnostic icons of Old World ROM: Missing OS (flashing question mark), Happy Mac (successful POST), and Sad Mac (hardware failure detected during POST)]] | ||
'''Old World ROM''' refers to Apple Macintosh computer systems that store the [[Macintosh Toolbox]] firmware and boot code in physical ROM chips—either socketed or soldered to the motherboard. | '''Old World ROM''' refers to Apple Macintosh computer systems that store the [[Macintosh Toolbox]] firmware and boot code in physical ROM chips—either socketed or soldered to the motherboard. This architecture encompasses all Motorola 68000-based Macintosh computers, NuBus-based Power Macintosh models, and first-generation PCI Power Macintosh systems including the "Beige" Power Macintosh G3. These machines utilize a unified, ROM-based boot sequence controlled entirely by Toolbox logic, in contrast to later [[New World ROM]] systems (beginning with the iMac and Blue & White Power Mac G3) which load the Toolbox from disk via [[Open Firmware]] 3.0. | ||
== Architecture Overview == | == Architecture Overview == | ||
=== ROM Organization and Contents === | === ROM Organization and Contents === | ||
The Old World ROM contains several critical components that define the Macintosh computing experience | The Old World ROM contains several critical components that define the Macintosh computing experience: | ||
'''Core Components:''' | '''Core Components:''' | ||
| Line 12: | Line 12: | ||
* '''POST diagnostics''': Power-On Self-Test routines for memory, ROM checksum, and basic hardware verification | * '''POST diagnostics''': Power-On Self-Test routines for memory, ROM checksum, and basic hardware verification | ||
* '''Boot loader code''': Device enumeration and System Folder location routines | * '''Boot loader code''': Device enumeration and System Folder location routines | ||
* '''68LC040 emulator''' (PowerPC models): Nanokernel providing transparent 68k compatibility | * '''68LC040 emulator''' (PowerPC models): Nanokernel providing transparent 68k compatibility | ||
The ROM size evolved significantly across generations: | The ROM size evolved significantly across generations: | ||
| Line 23: | Line 23: | ||
=== PowerPC Architecture and 68k Emulation === | === PowerPC Architecture and 68k Emulation === | ||
PowerPC-based Old World ROM systems implement a sophisticated dual-architecture environment: | PowerPC-based Old World ROM systems implement a sophisticated dual-architecture environment: | ||
# '''Nanokernel initialization''': The PowerPC processor begins execution in the Mac OS nanokernel stored in ROM | # '''Nanokernel initialization''': The PowerPC processor begins execution in the Mac OS nanokernel stored in ROM | ||
| Line 34: | Line 34: | ||
=== Open Firmware Implementation === | === Open Firmware Implementation === | ||
PCI-based Old World ROM systems include a limited Open Firmware implementation: | PCI-based Old World ROM systems include a limited Open Firmware implementation: | ||
'''Characteristics:''' | '''Characteristics:''' | ||
| Line 50: | Line 50: | ||
== Detailed Boot Sequence == | == Detailed Boot Sequence == | ||
The Old World ROM boot process follows a deterministic sequence of hardware initialization, diagnostics, and system loading phases: | The Old World ROM boot process follows a deterministic sequence of hardware initialization, diagnostics, and system loading phases: | ||
=== Phase 1: Power-On and Initial Hardware State === | === Phase 1: Power-On and Initial Hardware State === | ||
When power is applied or the reset button is pressed: | When power is applied or the reset button is pressed: | ||
# '''Reset vector execution''': The CPU begins execution at the reset vector stored in ROM (address $000000 for 68k, specific to model for PPC) | # '''Reset vector execution''': The CPU begins execution at the reset vector stored in ROM (address $000000 for 68k, specific to model for PPC) | ||
| Line 61: | Line 61: | ||
=== Phase 2: Power-On Self-Test (POST) === | === Phase 2: Power-On Self-Test (POST) === | ||
The POST performs comprehensive hardware validation before attempting to boot: | The POST performs comprehensive hardware validation before attempting to boot: | ||
==== ROM Checksum Test ==== | ==== ROM Checksum Test ==== | ||
The first diagnostic verifies ROM integrity: | The first diagnostic verifies ROM integrity: | ||
* '''Algorithm''': 32-bit checksum stored in first 4 bytes of ROM | * '''Algorithm''': 32-bit checksum stored in first 4 bytes of ROM | ||
* '''Calculation''': XOR or CRC of entire ROM contents | * '''Calculation''': XOR or CRC of entire ROM contents | ||
| Line 78: | Line 78: | ||
==== Memory Test Sequence ==== | ==== Memory Test Sequence ==== | ||
The ROM performs extensive RAM testing using multiple algorithms: | The ROM performs extensive RAM testing using multiple algorithms: | ||
'''Test Patterns:''' | '''Test Patterns:''' | ||
| Line 99: | Line 99: | ||
==== Video Initialization ==== | ==== Video Initialization ==== | ||
The ROM attempts to initialize video output: | The ROM attempts to initialize video output: | ||
# '''Onboard video check''': If present, initialize built-in video controller | # '''Onboard video check''': If present, initialize built-in video controller | ||
| Line 110: | Line 110: | ||
=== Phase 3: Device Enumeration and Boot Device Selection === | === Phase 3: Device Enumeration and Boot Device Selection === | ||
After successful POST, the ROM searches for bootable devices: | After successful POST, the ROM searches for bootable devices: | ||
'''Search Order:''' | '''Search Order:''' | ||
| Line 128: | Line 128: | ||
Based on the boot device search results: | Based on the boot device search results: | ||
'''Happy Mac Icon:''' | '''Happy Mac Icon:''' | ||
* Displayed when valid System Folder found | * Displayed when valid System Folder found | ||
* Indicates successful hardware initialization | * Indicates successful hardware initialization | ||
| Line 134: | Line 134: | ||
'''Sad Mac Icon:''' | '''Sad Mac Icon:''' | ||
{{Main|Sad Mac}} | {{Main|Sad Mac Error Codes}} | ||
* Displayed when hardware failure detected | * Displayed when hardware failure detected | ||
* Accompanied by error code (one or two lines of hexadecimal) | * Accompanied by error code (one or two lines of hexadecimal) | ||
| Line 147: | Line 147: | ||
=== Phase 5: System Loading === | === Phase 5: System Loading === | ||
Once a valid boot device is found: | Once a valid boot device is found: | ||
# '''Boot blocks execution''': First 1024 bytes of boot device contain boot code | # '''Boot blocks execution''': First 1024 bytes of boot device contain boot code | ||
| Line 160: | Line 160: | ||
=== POST Failure Symptoms === | === POST Failure Symptoms === | ||
Different failure modes produce distinct symptoms that aid in diagnosis: | Different failure modes produce distinct symptoms that aid in diagnosis: | ||
{| class="wikitable" style="width:100%" | {| class="wikitable" style="width:100%" | ||
| Line 183: | Line 183: | ||
=== Chimes of Death === | === Chimes of Death === | ||
Old World ROM Power Macintosh models use distinctive error sounds: | Old World ROM Power Macintosh models use distinctive error sounds: | ||
'''Sound Patterns:''' | '''Sound Patterns:''' | ||
| Line 197: | Line 197: | ||
=== Memory Test Optimizations === | === Memory Test Optimizations === | ||
Due to the lengthy memory test times with large RAM configurations: | Due to the lengthy memory test times with large RAM configurations: | ||
'''Bypass Methods:''' | '''Bypass Methods:''' | ||
| Line 207: | Line 207: | ||
=== Boot Method Limitations === | === Boot Method Limitations === | ||
The ROM-centric boot process creates challenges for alternative operating systems: | The ROM-centric boot process creates challenges for alternative operating systems: | ||
'''68k and NuBus Power Macs:''' | '''68k and NuBus Power Macs:''' | ||
| Line 238: | Line 238: | ||
=== Distinguishing Features === | === Distinguishing Features === | ||
Key characteristics that identify Old World ROM systems: | Key characteristics that identify Old World ROM systems: | ||
'''Physical Indicators:''' | '''Physical Indicators:''' | ||
| Line 341: | Line 341: | ||
== See Also == | == See Also == | ||
* [[Macintosh Toolbox]] | * [[Macintosh Toolbox]] | ||
* [[Sad Mac Error Codes|Sad Mac]] | |||
* [[Sad Mac | |||
== External Links == | == External Links == | ||