Jump to content

Sad Mac Error Codes: Difference between revisions

From RetroTechCollection
Created page with "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'''..."
ย 
No edit summary
Line 1: Line 1:
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.
The "Sad Mac" is a visual indicator displayed by vintage Macintosh computers (128K, 512K, Plus, SE, and SE/30) when a hardware failure prevents successful startup. Sad Mac error codes are valuable diagnostic tools that pinpoint specific hardware issues.


== Original ROMs (Macintosh 128K, 512K, 512Ke, Plus) ==
== Understanding Sad Mac Error Codes ==
When you encounter a Sad Mac, it will show an error code in hexadecimal format. This code typically consists of two parts:


When you press the interrupt button on your Macintosh during startup, a Sad Mac icon with code '''0F000D''' appears, indicating a memory test.
* '''Class Code (First two digits):''' Identifies the diagnostic test or CPU exception that failed.
* '''Subcode (Last four digits):''' Gives specific details about the error, such as identifying a faulty RAM chip.


Sad Mac codes are structured in two parts:
== Macintosh 128K, 512K, 512Ke, and Plus ==
* The first two characters are the '''Class Code''' โ€“ identifying the type of diagnostic.
The original ROM-based Macintosh computers (128K, 512K, 512Ke, Plus) use the following Sad Mac format:
* The last four characters are the '''Sub Code''' โ€“ specifying the exact error or bad memory chips.


=== Class Codes ===
{| class="wikitable" style="text-align:center; width:100%;"
{| class="wikitable"
|+ '''Original ROM (Mac 128K, 512K, 512Ke, Plus) Sad Mac Codes'''
! Code !! Description
|-
|-
| '''1''' || ROM Test Failure (Sub-code meaningless)
! Class Code
! Meaning
! Subcode
! Description
|-
|-
| '''2''' || Memory Test โ€“ Bus Subtest (Identifies bad chips)
| 01
| ROM Test Failed
| Meaningless
|-
|-
| '''3''' || Memory Test โ€“ Byte Write (Identifies bad chips)
| 02
| Memory Test โ€“ Bus Subtest
| Identifies specific bad RAM chip
|-
|-
| '''4''' || Memory Test โ€“ Mod3 Test (Identifies bad chips)
| 03
| Memory Test โ€“ Byte Write
| Identifies specific bad RAM chips
|-
|-
| '''5''' || Memory Test โ€“ Address Uniqueness (Identifies bad chips)
| 04
| Memory testโ€“Mod3 test
| Identifies specific bad RAM chips
|-
| 05
| Memory testโ€“Address uniqueness
| Identifies specific bad RAM chips
|-
| 0F
| Exception (CPU Error)
| Identifies specific exception (e.g., illegal instruction, zero divide)
|}
|}


=== Single Chip Identification ===
=== Single RAM Chip Identification ===
{| class="wikitable"
RAM errors provide a bitmask to identify the faulty chip:
! Data Bit !! Location !! Sub Code Bits
ย 
{| class="wikitable" style="text-align:center; width:100%;"
|+ '''Single Chip Identification'''
|-
! Data Bit
! Location
! Subcode Bits
|-
|-
| 0 || F5 || 0001
| 0 || F5 || 0001
Line 33: Line 58:
|-
|-
| 2 || F7 || 0004
| 2 || F7 || 0004
|-
| 3 || F8 || 0008
|-
|-
| 3 || F8 || 0008
| 3 || F8 || 0008
Line 54: Line 81:
| 12 || G9 || 1000
| 12 || G9 || 1000
|-
|-
| 13 || G10 || 2000
| 12 || G10 || 2000
|-
|-
| 14 || G11 || 4000
| 13 || G11 || 4000
|-
|-
| 15 || G12 || 8000
| 14 || G12 || 8000
|}
|}


=== Exception Codes ===
== Common Exception Codes (Class 0F) ==
{| class="wikitable"
{| class="wikitable" style="width:100%; text-align:center;"
! Class Code !! Sub Code !! Meaning
|+ '''Common Exception Codes'''
|-
|-
| rowspan="15" | '''F (Exception)''' || 0001 || Bus Error
! Subcode
! Meaning
|-
| 0001 || Bus Error
|-
|-
| 0002 || Address Error
| 0002 || Address Error
Line 75: Line 105:
| 0005 || Check Instruction
| 0005 || Check Instruction
|-
|-
| 0006 || Trap Instruction
| 0006 || Traps Instruction
|-
|-
| 0007 || Privilege Violation
| 0007 || Privilege Violation
Line 81: Line 111:
| 0008 || Trace
| 0008 || Trace
|-
|-
| 0009 || Line 1010
| 0009 || Line 1010 Exception
|-
|-
| 000A || Line 1111
| 000A || Line 1111 Exception
|-
|-
| 000B || Other Exception
| 000B || Other Exception
|-
|-
| 000C || Nothing
| 000C || Nothing (reserved)
|-
|-
| 000D || NMI (Normal indication)
| 000D || NMI (Normal indication)
Line 94: Line 124:
|}
|}


---
== Macintosh SE and SE/30 Expanded Codes ==
ย 
Mac SE and SE/30 use an enhanced two-line Sad Mac code format for more detailed diagnostics:
== 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:
ย 
{| class="wikitable"
! Traditional Mac !! Macintosh SE/II Display
|-
| 0F0003 || 0000000F<br>00000003
|}
ย 
=== Power-On Error Code Format ===
ย 
Power-on errors have the format:
ย 
<pre>XXXXYYYY
ZZZZZZZZ</pre>
ย 
* '''XXXX''': Internal state (ignore).
* '''YYYY''': Indicates exception or power-on test failure.
* '''ZZZZZZZZ''': Additional fault information.


=== YYYY Error Codes ===
{| class="wikitable" style="width:100%; text-align:center;"
{| class="wikitable"
|+ '''SE & SE/30 Extended Codes'''
! Code !! Meaning
|-
|-
| 0001 || ROM checksum test failed
! YYYY Code
! Meaning
|-
|-
| 0002 || Small RAM chunk failed in Bank B (bit masks: AA BB CC DD)
| 0001 || ROM checksum failed
|-
|-
| 0003 || RAM test failure in Bank B after chunk tested by 0002
| 0002 || Small RAM chunk failed (Bank B)
|-
|-
| 0004 || RAM test failure in Bank A
| 0003 || RAM Bank B failed
|-
|-
| 0005 || RAM external addressing test failed
| 0004 || RAM Bank A test failed
|-
|-
| 0006 || VIA1 chip addressing failure
| 0005 || External addressing test failed
|-
|-
| 0007 || VIA2 chip addressing failure (Macintosh II only)
| 0006 || Unable to address VIA1
|-
|-
| 0008 || Front Desk Bus access failure
| 000B || Unable to access SCSI chip
|-
|-
| 0009 || MMU access failure
| 000C || Unable to access IWM (floppy controller)
|-
|-
| 000A || NuBus access failure
| 000D || Unable to access SCC (serial ports)
|-
|-
| 000B || SCSI Chip access failure
| 000E || Data bus test 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 ===
== Diagnostic Serial Console (Mac SE/SE30) ==
{| class="wikitable"
The Macintosh SE and SE/30 support a diagnostic console over serial for advanced troubleshooting, accessed through the Modem port:
! Exception !! Description
ย 
|-
=== Accessing the Diagnostic Console ===
| 01 || Bus Error
:* Connect the Macintosh Modem port to your modern computer with a serial cable (RS-422 to RS-232).
|-
:* Use serial communication software like PuTTY (9600 baud, 8-N-1).
| 02 || Address Error
:* Hold the interrupt button at startup to enter diagnostic mode.
|-
ย 
| 03 || Illegal Instruction
=== Diagnostic Commands ===
{| class="wikitable" style="width:100%; text-align:center;"
|+ '''Common Diagnostic Commands'''
|-
|-
| 04 || Zero Divide
! Command
! Function
|-
|-
| 05 || Check Instruction
| T (1,2,3...) || Run test suite (RAM, SCSI, floppy)
|-
|-
| 06 || Trap CC, Trap V
| MW || Memory Write
|-
|-
| 07 || Privilege violation
| R || Register Dump
|-
|-
| 08 || Trace
| S || SCSI Test
|-
|-
| 09 || Line A
| F || Floppy Drive Test
|-
| 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 ==
== SE/30 Specific Issues: Simasimac ==
* '''Memory Errors''': Replace identified SIMMs or RAM chips.
A common SE/30 issue is known as "Simasimac," where vertical stripes appear at startup, caused by leaking capacitors or damaged ROM/RAM connections. Fixing involves recapping and repairing traces.
* '''ROM Errors''': Verify ROM seating or replace ROM chips.
ย 
* '''Bus or Address Errors''': Check logic board and ICs.
[[File:Simasimac_issue.jpg|thumb|300px|"Simasimac" vertical stripes]]
ย 
== Chimes of Death ==
Macintosh II and SE series play distinctive "Chimes of Death" indicating hardware issues at startup, in addition to the Sad Mac icon.


[[Category:Apple Vintage Computers]]
== Additional Notes ==
* Always cross-reference Sad Mac codes with physical inspection (capacitor leakage, corrosion, etc.).
* Use diagnostic tools cautiously; incorrect use may damage hardware further.

Revision as of 16:35, 12 March 2025

The "Sad Mac" is a visual indicator displayed by vintage Macintosh computers (128K, 512K, Plus, SE, and SE/30) when a hardware failure prevents successful startup. Sad Mac error codes are valuable diagnostic tools that pinpoint specific hardware issues.

Understanding Sad Mac Error Codes

When you encounter a Sad Mac, it will show an error code in hexadecimal format. This code typically consists of two parts:

  • Class Code (First two digits): Identifies the diagnostic test or CPU exception that failed.
  • Subcode (Last four digits): Gives specific details about the error, such as identifying a faulty RAM chip.

Macintosh 128K, 512K, 512Ke, and Plus

The original ROM-based Macintosh computers (128K, 512K, 512Ke, Plus) use the following Sad Mac format:

Original ROM (Mac 128K, 512K, 512Ke, Plus) Sad Mac Codes
Class Code Meaning Subcode Description
01 ROM Test Failed Meaningless
02 Memory Test โ€“ Bus Subtest Identifies specific bad RAM chip
03 Memory Test โ€“ Byte Write Identifies specific bad RAM chips
04 Memory testโ€“Mod3 test Identifies specific bad RAM chips
05 Memory testโ€“Address uniqueness Identifies specific bad RAM chips
0F Exception (CPU Error) Identifies specific exception (e.g., illegal instruction, zero divide)

Single RAM Chip Identification

RAM errors provide a bitmask to identify the faulty chip:

Single Chip Identification
Data Bit Location Subcode Bits
0 F5 0001
1 F6 0002
2 F7 0004
3 F8 0008
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
12 G10 2000
13 G11 4000
14 G12 8000

Common Exception Codes (Class 0F)

Common Exception Codes
Subcode Meaning
0001 Bus Error
0002 Address Error
0003 Illegal Instruction
0004 Zero Divide
0005 Check Instruction
0006 Traps Instruction
0007 Privilege Violation
0008 Trace
0009 Line 1010 Exception
000A Line 1111 Exception
000B Other Exception
000C Nothing (reserved)
000D NMI (Normal indication)
0064 Couldn't read System File into memory

Macintosh SE and SE/30 Expanded Codes

Mac SE and SE/30 use an enhanced two-line Sad Mac code format for more detailed diagnostics:

SE & SE/30 Extended Codes
YYYY Code Meaning
0001 ROM checksum failed
0002 Small RAM chunk failed (Bank B)
0003 RAM Bank B failed
0004 RAM Bank A test failed
0005 External addressing test failed
0006 Unable to address VIA1
000B Unable to access SCSI chip
000C Unable to access IWM (floppy controller)
000D Unable to access SCC (serial ports)
000E Data bus test failure

Diagnostic Serial Console (Mac SE/SE30)

The Macintosh SE and SE/30 support a diagnostic console over serial for advanced troubleshooting, accessed through the Modem port:

Accessing the Diagnostic Console

  • Connect the Macintosh Modem port to your modern computer with a serial cable (RS-422 to RS-232).
  • Use serial communication software like PuTTY (9600 baud, 8-N-1).
  • Hold the interrupt button at startup to enter diagnostic mode.

Diagnostic Commands

Common Diagnostic Commands
Command Function
T (1,2,3...) Run test suite (RAM, SCSI, floppy)
MW Memory Write
R Register Dump
S SCSI Test
F Floppy Drive Test

SE/30 Specific Issues: Simasimac

A common SE/30 issue is known as "Simasimac," where vertical stripes appear at startup, caused by leaking capacitors or damaged ROM/RAM connections. Fixing involves recapping and repairing traces.

"Simasimac" vertical stripes

Chimes of Death

Macintosh II and SE series play distinctive "Chimes of Death" indicating hardware issues at startup, in addition to the Sad Mac icon.

Additional Notes

  • Always cross-reference Sad Mac codes with physical inspection (capacitor leakage, corrosion, etc.).
  • Use diagnostic tools cautiously; incorrect use may damage hardware further.