Jump to content

Sad Mac Error Codes

From RetroTechCollection
Sad Mac with Error Code

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 for Macintosh Plus, SE, and SE/30

The Macintosh SE and SE/30 feature a built-in diagnostic console accessible via a serial connection, which can be used for detailed hardware troubleshooting. Originally designed for use with specialized Apple diagnostic tools, this diagnostic mode can also be accessed via a standard serial connection using software such as PuTTY or similar serial terminal programs.

Connecting to the Diagnostic Console

Connect your Macintosh to another computer using a serial cable:

  • Set your serial terminal (such as PuTTY) to the following:
    • Baud Rate: 9600
    • Data bits: 8
    • Stop bits: 1
    • Parity: None
  • Once connected, restart your Macintosh while holding the interrupt switch or issuing an interrupt command to enter diagnostic mode.

Commands & Tests

Below are detailed descriptions and commands for running specific diagnostic tests:

Preprogrammed Diagnostic Test Commands
Command Test Description
*T Runs preprogrammed diagnostic tests. Use with specific codes to run targeted tests.
*T0000 No operation (null test)
*T0001 ROM Checksum โ€“ Verifies ROM integrity. Errors indicate corrupted or damaged ROM.
*T0002 Small RAM Chunk Test โ€“ Checks initial RAM area for immediate failures.
*T0003 Full RAM Test (Bank B) โ€“ Tests full Bank B RAM after small chunk passes.
*T0004 Full RAM Test (Bank A) โ€“ Checks the second RAM bank thoroughly.
*T0005 Address Line Test โ€“ Verifies RAM addressing and unique addressing capability.
*T0006 VIA1 Access Test โ€“ Checks the proper operation of VIA1 chip.
*T0007 VIA2 Access Test (Mac II only) โ€“ Checks VIA2 chip operation.
*T0008 Front Desk Bus Test โ€“ Verifies access to Front Desk Bus components.
*T0008 MMU Access Test โ€“ Tests access to the Memory Management Unit.
*T0009 NuBus Access Test โ€“ Ensures NuBus communication is functional.
*T000A SCSI Chip Test โ€“ Confirms proper operation of SCSI controller.
*T000B IWM Chip Test โ€“ Verifies floppy drive controller functionality.
*T000C SCC Chip Test โ€“ Tests Serial Communications Controller for proper operation.
*T000D Data Bus Test โ€“ Validates data bus functionality, identifying bit faults.

Custom Non-Critical Tests

Non-critical tests use a different format:

Format: *TXXY

  • XX = Hexadecimal test number
  • Y = Number of repetitions

Example: *T841 runs test 0x84 once.

Custom Non-Critical Diagnostic Tests
Hex Code Test Description
80 Video RAM Test โ€“ Tests VRAM operation (Macintosh II).
81 Video Interface Test โ€“ Checks functionality of video hardware interface.
82 VIA Test โ€“ Comprehensive VIA chips test.
83 SCSI General Test โ€“ Tests general SCSI functionality.
84-86 SCC (Serial Communications Controller) Tests โ€“ Checks serial communications.
87 SCSI General Test โ€“ General SCSI device communication test.
88 Sound Test โ€“ Verifies audio hardware function.

Interpreting Response Codes

The console returns hexadecimal response codes:

Typical Response Codes
Response Code Meaning
020004030000 Test-specific failure indication (consult specific test for details).
020004030000 Data Bus Error accessing RAM.
0F000D NMI button pressed during boot (normal indication).

RAM Chip Identification (Subcode Explanation)

For memory tests, subcodes identify specific faulty chips:

RAM Chip Location & Subcode Identification
Data Bit Chip Location Subcode Bits (Hexadecimal)
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

Important Notes

  • Not all diagnostic tests work on every model; compatibility varies with ROM version.
  • SE/30 and other 256k ROM Macs do not support certain diagnostic commands listed here.

SE/30 Specific Issues: Simasimac

A common SE/30 issue is known as "Simasimac," where vertical stripes appear at startup, Itโ€™s often due to leaking capacitors on the logic board causing circuit corrosion. The fix is to thoroughly clean the board, repair any corroded traces (especially around the ROM SIMM and GLU chips), and recap the board. No chime with vertical lines basically means the CPU never even verified the ROM โ€“ so likely the ROM isnโ€™t being read properly (dirty ROM SIMM contacts or damaged traces to it are common causes).

"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.