Sad Mac Error Codes
The "Sad Mac" icon indicates a hardware issue encountered by your Macintosh during startup. Below is a comprehensive guide to understanding and diagnosing Sad Mac error codes.
Original ROMs (Macintosh 128K, 512K, 512Ke, Plus)
When you press the interrupt button on your Macintosh during startup, a Sad Mac icon with code 0F000D appears, indicating a memory test.
Sad Mac codes are structured in two parts:
- The first two characters are the Class Code – identifying the type of diagnostic.
- The last four characters are the Sub Code – specifying the exact error or bad memory chips.
Class Codes
| Code | Description |
|---|---|
| 1 | ROM Test Failure (Sub-code meaningless) |
| 2 | Memory Test – Bus Subtest (Identifies bad chips) |
| 3 | Memory Test – Byte Write (Identifies bad chips) |
| 4 | Memory Test – Mod3 Test (Identifies bad chips) |
| 5 | Memory Test – Address Uniqueness (Identifies bad chips) |
Single Chip Identification
| Data Bit | Location | Sub Code Bits |
|---|---|---|
| 0 | F5 | 0001 |
| 1 | F6 | 0002 |
| 2 | F7 | 0004 |
| 3 | F8 | 0008 |
| 4 | F9 | 0010 |
| 5 | F10 | 0020 |
| 6 | F11 | 0040 |
| 7 | F12 | 0080 |
| 8 | G5 | 0100 |
| 9 | G6 | 0200 |
| 10 | G7 | 0400 |
| 11 | G8 | 0800 |
| 12 | G9 | 1000 |
| 13 | G10 | 2000 |
| 14 | G11 | 4000 |
| 15 | G12 | 8000 |
Exception Codes
| Class Code | Sub Code | Meaning |
|---|---|---|
| F (Exception) | 0001 | Bus Error |
| 0002 | Address Error | |
| 0003 | Illegal Instruction | |
| 0004 | Zero Divide | |
| 0005 | Check Instruction | |
| 0006 | Trap Instruction | |
| 0007 | Privilege Violation | |
| 0008 | Trace | |
| 0009 | Line 1010 | |
| 000A | Line 1111 | |
| 000B | Other Exception | |
| 000C | Nothing | |
| 000D | NMI (Normal indication) | |
| 0064 | Couldn't read System File into memory |
---
Macintosh SE and Macintosh II ROMs
Sad Mac codes were updated in the Macintosh SE and II to incorporate additional testing and 32-bit support. Error codes display in a different format:
| Traditional Mac | Macintosh SE/II Display |
|---|---|
| 0F0003 | 0000000F 00000003 |
Power-On Error Code Format
Power-on errors have the format:
XXXXYYYY ZZZZZZZZ
- XXXX: Internal state (ignore).
- YYYY: Indicates exception or power-on test failure.
- ZZZZZZZZ: Additional fault information.
YYYY Error Codes
| Code | Meaning |
|---|---|
| 0001 | ROM checksum test failed |
| 0002 | Small RAM chunk failed in Bank B (bit masks: AA BB CC DD) |
| 0003 | RAM test failure in Bank B after chunk tested by 0002 |
| 0004 | RAM test failure in Bank A |
| 0005 | RAM external addressing test failed |
| 0006 | VIA1 chip addressing failure |
| 0007 | VIA2 chip addressing failure (Macintosh II only) |
| 0008 | Front Desk Bus access failure |
| 0009 | MMU access failure |
| 000A | NuBus access failure |
| 000B | SCSI Chip access failure |
| 000C | IWM chip access failure |
| 000D | SCC Chip access failure |
| 000E | Data Bus test failed (bad SIMM or bus issue) |
| 000F | Reserved (Macintosh compatibility) |
| FFxx | 680xx exception occurred (xx specifies exception type) |
FFxx Exception Codes
| Exception | Description |
|---|---|
| 01 | Bus Error |
| 02 | Address Error |
| 03 | Illegal Instruction |
| 04 | Zero Divide |
| 05 | Check Instruction |
| 06 | Trap CC, Trap V |
| 07 | Privilege violation |
| 08 | Trace |
| 09 | Line A |
| 0A | Line F |
| 0B | Unassigned |
| 0C | CP protocol violation |
| 0D | Format exception |
| 0E | Spurious interrupt |
| 0F | Trap 015 exception |
| 10-16 | Interrupt Levels 1-7 |
| 17-1D | FPCP exceptions (floating-point coprocessor) |
| 1E | PMMU configuration |
| 1F | PMMU illegal operation |
| 20 | PMMU access level violation |
Troubleshooting Tips
- Memory Errors: Replace identified SIMMs or RAM chips.
- ROM Errors: Verify ROM seating or replace ROM chips.
- Bus or Address Errors: Check logic board and ICs.