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.{{cite web |url=https://en.wikipedia.org/wiki/Old_World_ROM |title=Old World ROM |publisher=Wikipedia |access-date=2025-01-30}} 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.
'''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 {{cite web |url=https://en.wikipedia.org/wiki/Macintosh_Toolbox |title=Macintosh Toolbox |publisher=Wikipedia |access-date=2025-01-30}}:
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{{cite web |url=https://en.wikipedia.org/wiki/Old_World_ROM |title=Old World ROM |publisher=Wikipedia |access-date=2025-01-30}}
* '''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:{{cite web |url=http://www.hardwarebook.info/Old_World_ROM |title=Old World ROM |publisher=HardwareBook |access-date=2025-01-30}}
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:{{cite web |url=https://www.martinnobel.com/techresearch/the-open-firmware-wiki |title=The Open Firmware Wiki |author=Martin Nobel |date=2021-03-28 |access-date=2025-01-30}}
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:{{cite web |url=http://educ.jmu.edu/~jarvislb/utils/macintosh/boot2.htm |title=Macintosh Boot Sequence |access-date=2025-01-30}}
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:{{cite web |url=https://en.wikipedia.org/wiki/Power-on_self-test |title=Power-on self-test |publisher=Wikipedia |access-date=2025-01-30}}
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:{{cite web |url=https://docs.oracle.com/cd/E19464-01/820-6850-11/POST.html |title=BIOS Power-On Self-Test (POST) Codes |publisher=Oracle |access-date=2025-01-30}}
The POST performs comprehensive hardware validation before attempting to boot:


==== ROM Checksum Test ====
==== ROM Checksum Test ====
The first diagnostic verifies ROM integrity:{{cite web |url=http://www.synack.net/~bbraun/macromboot.html |title=68k Mac ROM Boot Disk |access-date=2025-01-30}}
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:{{cite web |url=https://eventhelix.com/fault-handling/hardware-diagnostics/ |title=Hardware Diagnostics and Power on Self Tests |publisher=EventHelix |access-date=2025-01-30}}
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:{{cite web |url=https://en.wikipedia.org/wiki/Macintosh_startup |title=Macintosh startup |publisher=Wikipedia |access-date=2025-01-30}}
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:{{cite web |url=http://www.hardwarebook.info/Old_World_ROM |title=Old World ROM |publisher=HardwareBook |access-date=2025-01-30}}
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:'''{{cite web |url=https://en.wikipedia.org/wiki/Macintosh_startup#Happy_Mac |title=Macintosh startup - Happy Mac |publisher=Wikipedia |access-date=2025-01-30}}
'''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:{{cite web |url=http://educ.jmu.edu/~jarvislb/utils/macintosh/boot2.htm |title=Macintosh Boot Sequence |access-date=2025-01-30}}
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:{{cite web |url=https://en.wikipedia.org/wiki/Macintosh_startup |title=Macintosh startup |publisher=Wikipedia |access-date=2025-01-30}}
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:{{cite web |url=https://en.wikipedia.org/wiki/Chimes_of_Death |title=Chimes of Death |publisher=Wikipedia |access-date=2025-01-30}}
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:{{cite web |url=http://www.synack.net/~bbraun/macromboot.html |title=68k Mac ROM Boot Disk |access-date=2025-01-30}}
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:{{cite web |url=https://happymacs.wordpress.com/2014/05/17/booting-a-linux-cd-on-your-old-world-powerpc-mac/ |title=Booting a Linux CD on Your Old World PowerPC Mac |date=2014-05-17 |access-date=2025-01-30}}
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:{{cite web |url=https://en.wikipedia.org/wiki/Old_World_ROM |title=Old World ROM |publisher=Wikipedia |access-date=2025-01-30}}
Key characteristics that identify Old World ROM systems:


'''Physical Indicators:'''
'''Physical Indicators:'''
Line 341: Line 341:
== See Also ==
== See Also ==
* [[Macintosh Toolbox]]
* [[Macintosh Toolbox]]
* [[New World ROM]]
* [[Sad Mac Error Codes|Sad Mac]]
* [[Sad Mac]]
* [[Open Firmware]]
* [[Mac OS nanokernel]]
* [[Macintosh startup]]
* [[Power-On Self-Test]]
* [[Chimes of Death]]
 
== References ==
<references />


== External Links ==
== External Links ==