Sad Mac Error Codes

The Sad Mac is a startup-diagnostic icon displayed by Vintage Macintosh computers (every Old World ROM model from the Macintosh 128K through the NuBus Power Macintosh line) when a power-on self-test fails and the machine cannot reach the Happy Mac / boot stage. Below the icon the ROM prints one or two lines of hexadecimal which identify the failing subsystem and, where possible, the failing chip, byte lane, address line, or CPU exception. Together with the Chimes of Death, these codes are by far the most useful starting point for diagnosing a non-booting compact or Mac II-family machine.

Sad Mac with Error Code

This page documents the Sad Mac format used by every Old World 68k Macintosh and by the early NuBus Power Macintosh models that still displayed a Sad Mac before the chime was replaced with a beep code in 1998. It also describes the Chimes of Death heard on every Mac from the Macintosh II through the last pre-Open Firmware machines, the SE/30 Simasimac failure mode, and the serial-port Test Manager interface that lets you drive individual diagnostics over a null-modem cable.

Try the Sad Mac Decoder

edit

For an interactive lookup of any code on this page, including a visual RAM-chip locator and audio playback of every Chime of Death, see the Sad Mac Decoder gadget (enable it in your user preferences) or the standalone page at Sad Mac Decoder.

The decoder accepts both the short (compact-Mac) and expanded (Mac II / SE/30 / Portable) formats, lets you pick the machine model so it can disambiguate identical codes that mean different things on different Macs, and highlights the failing RAM position on a Macintosh Plus / 512K board diagram for class-02 through class-05 errors.

Understanding Sad Mac Error Codes

edit

A Sad Mac is the visual half of a ROM-level startup test failure. On every machine it has the same structural meaning: the boot code in ROM runs a fixed sequence of tests on the CPU, RAM, support chips, and (on later models) the Power Manager and VRAM. If any test fails, or if an unexpected 68000-family exception occurs before the operating system has loaded enough to display a bomb dialog, the ROM jumps to a small routine that draws the Sad Mac and prints the contents of CPU registers D6 (minor / specifics) and D7 (major / which test, plus flags).

Two formats exist:

  • Short format — used on the 128K, 512K, 512Ke and Plus. A single six-digit line, YYXXXX, where YY is the two-digit class code and XXXX is the four-digit subcode.
  • Expanded format — used from the SE onwards (SE, SE/30, Classic, Classic II, Color Classic, LC family, Performa, Mac II family, Centris, Quadra, and the NuBus Power Macs). Two lines of eight hex digits each, displayed as:
 : Line 1 (D7) — FFFFTTEE where FFFF = test-manager flags, TT = test number, EE = exception number (ORed in if an unexpected exception interrupted a test).
 : Line 2 (D6) — minor error / additional information (failing bit mask, address-line XOR, stack pointer, etc.).

When an exception occurs during a test the exception number is logically ORed into the lower word of the major code. So if an address error (0200) hits during the RAM Bank A test (test 03), the major code reads 0203, not 0200 or 0003 alone — you read it as "address error while running test 3". This OR-encoding is the single most important thing to know about decoding expanded codes; without it most published code tables look contradictory.

Test Manager flags (upper word of D7)

edit

On expanded-format machines the upper four hex digits of line 1 are not random — they are the live state of the Test Manager. Each bit has a meaning:

Test Manager flag bits (D7 bits 16–31)
Bit Flag Meaning when set
16 Message queued A diagnostic message is pending in the serial output queue
17 SCC INITed The SCC serial controller has been initialised
18 No-sleep Auto-sleep is inhibited (Portable / PowerBook)
19 Star received A * command character has been received over the serial diagnostic port — Test Manager is active
20 ASCII input Test Manager expects ASCII command input (clear = hexadecimal)
21 Echo Echo received characters back over the serial port
22 Timer Timer-based testing enabled
23 Newline Emit CR/LF after every Test Manager response
24 Unexpected exception An unexpected exception was caught — exception code is ORed into the test number
25 Programmer's key The Programmer's Switch (NMI button) was pressed
26 VIA Test A VIA test is currently asserting itself on the bus
27 Bus errors OK Bus errors are expected (used during chip-probe tests)
28 Stop on error Halt on the first error rather than continuing
29 Loop on error Loop the failing test indefinitely (for scope/logic-analyser work)
30 Store in PRAM Persist test results to PRAM
31 Boot after test Continue booting after diagnostics complete

In practice, when looking at a Sad Mac code in the wild, the upper word usually reads 0000 (no flags set, normal boot), 0001 (a serial message had been queued before the failure), or a value with bit 24 (0x0100) and/or bit 25 (0x0200) set if the failure was exception-driven or operator-induced.

Macintosh 128K, 512K, 512Ke, and Plus (Short Format)

edit

These original Old World ROM machines display a six-digit short code below the Sad Mac. The class code is two digits, the subcode is four digits:

Class codes — Macintosh 128K, 512K, 512Ke, Plus
Class Test Subcode meaning
01 ROM checksum Subcode is meaningless; replace the ROMs on the logic board
02 RAM — bus subtest Faulty RAM chip identified by bitmask (see chip table)
03 RAM — byte-write subtest Faulty RAM chip identified by bitmask
04 RAM — modulo-3 pattern Faulty RAM chip identified by bitmask
05 RAM — address uniqueness Faulty RAM chip identified by bitmask
0F Exception before OS loaded Subcode names the 68000 exception

If the Programmer's Switch (NMI button) is pressed at boot the machine will display 0F000D — a Sad Mac with a "normal" NMI subcode — which is sometimes used to deliberately trigger a Sad Mac for testing the display path.

RAM chip identification (16-bit single-SIMM bitmask)

edit

For class codes 02–05 the subcode is a bitmask of the failing data lines. Each bit corresponds to one physical RAM chip in the 128K/512K/512Ke/Plus's 16-chip RAM bank. A single failing chip lights a single bit; multiple bits set means multiple chips, an entire byte lane (e.g. 0x00FF or 0xFF00) usually means a failed buffer or address-line problem rather than 8 separate dead chips.

Single-chip identification — original-ROM compact Macs
Data bit Board position Subcode bit
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

Note: prior revisions of this page contained two transcription errors in this table — F8 was duplicated as Data Bit 3, and Data Bit 12 was listed twice (against both G9 and G10). The corrected mapping above gives one chip per data line for all 16 bits.

Worked example

edit

A Macintosh Plus displays:

 020080
  • Class 02 — RAM bus subtest failed.
  • Subcode 0080 — bit 7 (data line D7) is bad.
  • From the table, D7 lives at position F12 on the logic board.

Replace or reseat the chip (or, on a Plus, the whole SIMM containing that data line — the Plus uses 30-pin SIMMs rather than soldered chips, so the F5–G12 lettering corresponds to the chip locations on the SIMM itself).

Common Exception Codes (Class 0F)

edit

When the major class is 0F on a compact Mac, or when the exception byte is ORed into the major code on an expanded-format machine, the subcode tells you which 68000-family exception fired:

68000 / 68020 / 68030 exception subcodes
Subcode Exception Common causes
0001 Bus Error Access to non-existent memory; failed RAM/ROM; bad address decoder. On a Plus or SE address references roll over rather than bus-error — seeing 0001 on those machines usually means a hardware fault rather than a software bug.
0002 Address Error Word or long-word access at an odd address. Common when a bad CPU emits a partly-corrupt instruction stream.
0003 Illegal Instruction CPU encountered an opcode it doesn't implement. Often a sign of corrupt ROM or RAM (especially in low memory where vectors live), or — on a 68000 — code intended for a 68020+.
0004 Zero Divide Integer division by zero. Sometimes left in as a deliberate "you should never get here" trap by Apple's engineers.
0005 Check Instruction CHK bounds check failed.
0006 TrapV / Overflow TRAPV fired (arithmetic overflow).
0007 Privilege Violation Supervisor-only instruction executed in user mode. The Macintosh runs in supervisor mode at startup, so seeing this very early is unusual.
0008 Trace CPU was placed in trace mode without a debugger installed.
0009 Line 1010 / A-line Trap-dispatch failure: the CPU saw a 1010-prefixed opcode (the A-trap mechanism Mac OS uses for ROM calls) but the dispatcher couldn't find it. Common when the OS image is corrupt or MacsBug / Easy Access traps are missing.
000A Line 1111 / F-line Unimplemented F-line opcode — typically an FPU instruction on a machine without one (or with a removed/dead 68881 / 68882 / 68040 FPU).
000B Other exception / unassigned vector
000C Unimplemented trap / reserved
000D NMI (programmer's switch) Normal indication. Generated when the user presses the Programmer's Switch before boot completes.
000E Spurious interrupt Interrupt asserted but no slot/handler claimed it. Often a NuBus card with a failed interrupt line.
000F Trap-instruction vector A TRAP #n fired without a handler.
0040 (and 0041–0047) Auto-vectors / interrupt-level traps Interrupt level n fired without a handler (on '020+ machines line 1700+ is also used for these).
0062 Old-ROM reading HFS disk A 64K-ROM machine (128K / 512K) attempting to mount an HFS-formatted volume. The fix is either to format the boot disk as MFS or to upgrade to a 128K ROM (the upgrade that turns a 512K into a 512Ke).
0064 Couldn't read System File ROM loaded enough of the boot blocks to start the OS but could not read the System file into RAM. Almost always a bad floppy or hard-disk error rather than a logic-board fault.
0065 Bad Finder System loaded but the Finder is missing or corrupt.

The original Apple Technical Information Library notes that on the Mac II and later, the 17001F00 block of exception codes is used for FPU/PMMU exceptions; see the Portable's expanded exception list below, which is the most complete published Apple-internal set of these.

Macintosh SE, SE/30, Classic, and Classic II (Expanded Format)

edit

The SE introduced the expanded two-line format. The same format is used by the SE/30, Classic, and Classic II, although the SE/30 inherits Mac II-family tests in addition.

The line-1 test number for these machines is drawn from this list (the lower byte of D7, i.e. the "TT" field of FFFFTTEE):

Test numbers — SE, SE/30, Classic, Classic II
Test (TT) Meaning
0001 ROM checksum failed — replace ROM (on the SE/30 this often means dirty ROM SIMM contacts; reseat first)
0002 Small RAM chunk failed (Bank B) — the very first patch of RAM the ROM touches is bad
0003 RAM Bank B failed
0004 RAM Bank A failed
0005 External addressing test failed — usually a faulty GLU / address-decoder chip or a broken trace
0006 Unable to address VIA1
0007 Unable to address VIA2 (SE/30 and later)
000B Unable to access SCSI chip (NCR 5380)
000C Unable to access IWM / SWIM (floppy controller)
000D Unable to access SCC serial controller
000E Data-bus test failure

On the SE/30 specifically, very common readings are:

  • 00000001 / 00000000 — ROM checksum. Often a dirty/oxidised ROM SIMM. Reseat before recapping.
  • 00000004 / xxxxxxxx — RAM Bank A failed. Minor code is the failing bit-mask across the 32-bit bus.
  • 00000005 / xxxxxxxx — Address-line failure. Recap the board (especially around the GLU and ROM area), inspect traces under the RAM SIMM sockets.

If the SE/30 displays no Sad Mac at all and instead shows the Simasimac vertical stripes, the ROM was never even checksummed — see that section below.

Macintosh II Family (II, IIx, IIcx, IIci, IIfx, IIsi, IIvi, IIvx)

edit

The Macintosh II family uses the expanded two-line format with a broader test set than the SE. The IIcx, IIci, and SE/30 actually share the same diagnostic ROM image, which is why a IIcx will boot happily with an SE/30 ROM SIMM swapped in (and vice versa).

In addition to all the SE-family tests above, the Mac II family adds:

Additional test numbers — Mac II family
Test (TT) Meaning
0008 Data bus test at end of RAM (last 8 bytes used for the stack post memory-sizing)
000E Data bus test at start of RAM
000F System error before the error-message table was loaded — see exception subcode in the minor field
0010 Power Manager self-test (Portable/PowerBook only; see Portable codes)
0011 Memory sizing test
0014 Power Manager communication failure (Portable/PowerBook)
0080 Mapper RAM data test (Portable, normally non-critical)
0081 Mapper RAM uniqueness test (Portable, normally non-critical)
0082 VRAM data test
0083 VRAM address test
0084 SCC register test
0085 SCC loopback test
0086 SCC timer test
0087 VIA full test
0088 SCSI full test
0089 ASC (Apple Sound Chip) test
008A PRAM test (always reports failure; not actually run)

ROM-chip identification on multi-ROM machines

edit

The II, IIx, IIcx, SE/30, and several other models carry their ROM as four physical chips (often labelled MH, ML, LH, LL for the two bytes of each of the upper and lower word) rather than one or two. When the ROM checksum test (test 01) fails on these machines the minor code identifies the failing ROM:

  • 0000FFFF (all bits set) — at least one ROM mismatched and the per-chip identity could not be narrowed down. Typically printed before per-chip diagnostics have run, e.g. on an initial boot before Test Manager is invoked.
  • 00000001 — first ROM chip
  • 00000002 — second ROM chip
  • 00000004 — third ROM chip
  • 00000008 — fourth ROM chip
  • Mixed values (e.g. 0009 = chips 1 + 4) indicate multiple failing chips, or — more commonly — an address-line problem upstream that's making all the chips look bad simultaneously.

To narrow down which ROM chip is bad on a IIcx/IIci/SE/30 board with soldered ROMs, see Test Manager below; the *T000400010000 command runs the per-chip ROM checksum directly and returns a result of 1/2/4/8.

Worked example: IIcx, slow Chimes of Death, code 0000FFFF 00000001

edit

A recapped Mac IIcx displays the Chimes of Death at half speed (the characteristic "24-bit ROM in trouble" cadence) and a serial console shows:

 Line 1: 0000FFFF
 Line 2: 00000001
  • Line 1 upper word 0000 — no Test Manager flags
  • Line 1 lower word FFFF — ROM checksum test failed, all-bits indicator
  • Line 2 00000001 — minor code "1" = first ROM chip / generic ROM mismatch

The slow chime cadence specifically points to a 24-bit-clean ROM (which is what the IIcx ships with) failing checksum; 32-bit-clean ROMs (IIci, SE/30 v.late) tend to fail at normal tempo. Connecting a null-modem cable to the modem port and entering Test Manager confirms which of the four soldered ROMs (UH7, UH9, UH11, UH13 on the IIcx — labels vary by board revision) is at fault. A common quick-test is to lift the on-board ROM jumper and drop an SE/30 ROM SIMM into the SIMM socket; if the machine then chimes happily, the diagnosis is confirmed and the fix is to replace or re-flash the failing chip.

Macintosh LC, Performa, Centris, Quadra (68030 / 68040)

edit

The LC, Performa, Centris, and Quadra lines use the same expanded format and (broadly) the same test set as the Mac II family, with a few additions for 68040-specific features (FPU subset detection, snooping/cache tests) and on AV machines for the DSP3210.

These machines are far less likely to actually display a Sad Mac in practice than the compact and II-family Macs, for two reasons. First, the ROMs are more permissive — a soft-fail on a non-critical test will let the machine continue to boot and surface the error as a bomb dialog later. Second, by the Quadra/Centris era, ASIC integration meant that a hardware fault was more likely to brick the machine outright (no screen, no chime, no Sad Mac) than to produce a clean diagnostic display.

When you do see one, treat the codes as a hybrid of the Mac II table above and the exception table; the encoding rules (OR-in exception byte, two-line layout, Test Manager flags in the upper word) are identical.

The Macintosh Quadra 605 and LC 475 (Quadra 605 with a different ROM) are noteworthy for a model-specific quirk: a Sad Mac displaying 00000005 / 0000FFFF is almost always the 68LC040 CPU itself, not a board fault. These machines were sold with the FPU-less 68LC040, and dropping in a full 68040 of the same speed grade resolves the symptom — see Macintosh Quadra 605 Troubleshooting.

Macintosh Portable Diagnostic Codes

edit

The Macintosh Portable (M5120 / M5126) inherits the expanded format but uses a notably different test numbering scheme and adds a full set of Power Manager handshake codes. It is also the only machine documented to have substantial errata in the Apple Developer Note: several published codes are flat-out wrong. The community-maintained reference at macintoshportable.info is the authoritative source.

Critical tests (will halt boot)

edit
Portable critical tests
Test (TT) Name Minor code
01 ROM checksum 0000FFFF if mismatched
03 RAM modulo-3 test Bitmask of failing data lines (16-bit bus on the Portable)
05 Address line test XOR of expected vs. actual at the failing boundary
06 VIA init (no test — only appears if an exception fires during init)
08 Data bus test at end of RAM Bitmask of failed bits
0B SCSI init (exception only)
0C SWIM init (exception only)
0E Data bus test at start of RAM Bitmask of failed bits
0F System error before error table loaded Minor = exception number
10 Power Manager self-test Minor is the PM communication code (see below)
11 Memory sizing Often pairs with a PM communication error
14 Power Manager communication Minor = PM handshake state (see below)
82 VRAM data test
83 VRAM address test

Power Manager handshake codes (CD33–CD38)

edit

The Portable, PowerBook 100, and later PowerBooks share a Power Manager IC that communicates with the main CPU over a custom serial-handshake protocol. Failures of this protocol surface as one of:

  • CD33 — During a receive, Power Manager did not finish a handshake
  • CD34 — During a receive, Power Manager did not start a handshake
  • CD35 — During a send, Power Manager did not finish a handshake
  • CD36 — During a send, Power Manager did not start a handshake
  • CD37 — Timed out waiting for reply to initial handshake
  • CD38 — Power Manager was never ready to start a handshake

CD38 in particular is the canonical "dead Power Manager" symptom — typically a Macintosh Portable with a failed PMGR PCB battery (the small PCB-mounted backup cell, not the main lead-acid pack) or PMGR firmware corruption.

Non-critical tests (logged but allow boot)

edit
  • 80 — Mapper RAM data test
  • 81 — Mapper RAM uniqueness test
  • 84 — SCC register test
  • 85 — SCC loopback test
  • 86 — SCC timer test
  • 87 — Full VIA test
  • 88 — Full SCSI test
  • 89 — Apple Sound Chip test
  • 8A — PRAM test (no-op — always logs failure but ignored)

Extended exception list (68020 / 68030 / FPU / PMMU)

edit

These exception codes are ORed into the lower byte of the major code on Mac II family and Portable machines (the same OR-encoding rule applies as for the compact-Mac codes):

  • 0100 — Bus error
  • 0200 — Address error
  • 0300 — Illegal instruction
  • 0400 — Divide by zero
  • 0500 — CHK / Check instruction
  • 0600 — TRAPV / overflow
  • 0700 — Privilege violation
  • 0800 — Trace
  • 0900 — Line A (A-trap dispatch)
  • 0A00 — Line F (F-line — usually FPU)
  • 0B00 — Unassigned exception
  • 0C00 — FPU protocol violation
  • 0D00 — Format exception
  • 0E00 — Spurious interrupt
  • 0F00 — Trap-instruction vectors
  • 1000–1600 — Interrupt level 1–7 with no handler
  • 1700 — FPU branch / set on unordered condition
  • 1800 — FPU inexact result
  • 1900 — FPU divide by zero
  • 1A00 — FPU underflow
  • 1B00 — FPU operand error
  • 1C00 — FPU overflow
  • 1D00 — FPU signaling NaN
  • 1E00 — PMMU configuration
  • 1F00 — PMMU illegal operation
  • 2000 — PMMU access-level violation

Test Manager (Serial Diagnostic Mode)

edit
Main article: Diagnostic Serial Console

Every Macintosh from the SE onwards exposes a hidden Test Manager over the modem-port SCC. Connect a null modem cable from the modem port to a host running a serial terminal at 9600 8N1, then send a * to interrupt whatever the machine is doing and enter Test Manager. The trap _TestManager (defined in the same ROMs) provides the same interface programmatically.

Once inside, single-character commands followed by hex arguments and a *R (return / run) drive any test in the table. The two most useful for board-level diagnosis are:

  • Per-test execution*T<TT>0001<minor> runs test TT once and returns its result on the next line. Example: *T000400010000 runs test 04 (RAM Bank A) once.
  • Per-ROM checksum*T000400010000 on a IIcx/IIci/SE/30 will (because test 04 also covers the four-chip ROM array on those machines) return R<class><result>0000 where the result narrows the failure to one of the four physical ROM chips (0001, 0002, 0004, 0008).

The same interface is used by Apple's internal MacTest / MacTest Pro / Apple Personal Diagnostics suites. Note that some test commands (notably the full SCSI test) will hang a machine that has a non-functional SCSI chip — be ready to power-cycle.

Chimes of Death

edit

Every Macintosh from the Mac II onward through the last NuBus Power Mac plays a model-specific audio sequence when a Sad Mac is shown. The earlier compact Macs (128K through Plus) are silent in this state — they simply display the Sad Mac with no sound at all. The Chimes are useful as a first-pass diagnostic because they can be heard from across the room and don't require you to read the screen (some machines fail before any video is generated, in which case the chime is the only indicator).

By family

edit
Chimes of Death by machine family
Family Chime Notes
128K, 512K, 512Ke, Plus (none) Silent Sad Mac; the original Andy Hertzfeld 600 Hz square-wave startup-beep generator is the only sound these machines emit, and it never plays on failure.
SE, SE/30 Synthesised guitar arpeggio, upward major First model family to play a death chime; produced by the Apple Sound Chip
Macintosh II Upward major arpeggio with a sharp attack Distinctive among the II family for its short, percussive opening
IIcx Same arpeggio with a "keyboard click" sample at the start The brief click is from the Apple Sound Chip's sample bank
IIci, IIfx Extended, slower variant of the II arpeggio The IIfx's chime is unusually long
LC, LC II, Color Classic, Classic II, Performa 200/400/450 "Ping-pong-pawn" plus four dissonant notes Major arpeggio followed by a falling cluster — the most recognisable death chime
Quadra, Centris (non-AV) Same as LC family Apple reused the LC chime across all non-AV Quadras and Centrises
Quadra/Centris 660AV, Quadra 840AV Roland D-50 "Digital Native Dance" sample loop + Roland U-20 effects Completely different sound — abstract and synth-pad-like
Power Macintosh 6100/7100/8100, Performa 6100, Workgroup Server 6150/8150/9150 Car-crash sound effect (Sound Ideas / Hanna-Barbera library samples) The infamous "your computer just died in a head-on collision" chime
Performa/Power Mac 6200, 6300 3-note brass fanfare with drums + cymbals (Roland U-20) Played before the screen lights up on these machines
PCI Power Macs (7500, 7600, 8500, 9500, beige G3, G3 AIO, PowerBook 2400/3400/G3) Popping and glass-shattering These machines do not display a Sad Mac icon — chime only
iMac (1998) and later (no chime — beep codes only) See Mac Beep Codes for the post-Sad-Mac diagnostic indicator scheme

Stephen Hackett's 512 Pixels page hosts high-quality recordings of each variant. The decoder gadget on this wiki can play each chime in your browser via the Web Audio API for direct A/B comparison without leaving the page.

Slow chimes (24-bit-ROM cadence)

edit

A specific symptom worth noting: on machines with 24-bit-clean ROMs (notably the IIcx and original II), a ROM-checksum failure plays the chime at roughly half its normal tempo. 32-bit-clean ROMs (IIci, SE/30 later revisions, IIfx) play the chime at normal tempo regardless of which test failed. If you hear a slow chime on a IIcx or II, jump straight to checking the ROM chips — see the IIcx worked example above.

SE/30 Specific Issues: Simasimac

edit
 
"Simasimac" vertical stripes

A common SE/30 failure mode is known as Simasimac (Japanese shima-shima "stripes" + Mac), in which the screen shows alternating vertical stripes at power-on with no chime and no Sad Mac. Because the CPU never reaches the point of checksumming ROM and drawing the failure screen, this is not technically a Sad Mac fault at all — it is a more upstream failure.

The cause is almost always corroded traces and via stitching from leaking surface-mount electrolytic capacitors on the logic board, particularly around the GLU ASIC and the ROM SIMM socket. Common diagnostic steps:

  1. Remove the logic board and inspect under good light — even small green/black halos around capacitor pads are evidence of leakage.
  2. Wash the board (deionised water + isopropanol, ultrasonic if available), let it dry thoroughly.
  3. Recap with quality polymer or tantalum replacements; the original wet-electrolytic capacitors are at end-of-life on every SE/30 still in existence.
  4. Reseat the ROM SIMM with contacts cleaned with isopropanol and a fibreglass pen.
  5. Check continuity from the 68030 data lines through the GLU to the ROM SIMM socket. Lifted vias here are common.

If the machine then chimes but produces a Sad Mac, treat it as a normal expanded-format diagnosis from that point.

For full procedure see Macintosh SE/30 Recap Guide and Macintosh SE/30 Troubleshooting.

Deliberately Triggering a Sad Mac

edit

A Sad Mac can be generated on purpose for testing the display path or capturing a screenshot:

  • Press the Programmer's Switch (NMI button) before the Happy Mac appears. This produces a Sad Mac with subcode 000D ("NMI — normal indication"). On machines without a fitted programmer's switch (most never had one installed by default), Cmd-Power shortly after the startup chime produces the same effect.
  • On the PowerBook 540c and several other PowerBooks, Cmd-Power pressed before the boot screen plays the Chimes of Death (sometimes at a strange speed) without drawing a Sad Mac.

These are not failure indications and should not be confused with a real diagnostic event.

Additional Notes

edit
  • Always cross-reference Sad Mac codes with physical inspection. On any compact Mac old enough to have wet-electrolytic SMD capacitors (SE/30, Classic II, Color Classic, LC family, Quadra 605, etc.), capacitor leakage is the single most common cause of any of the codes on this page and will produce false positives across multiple subsystems.
  • Use caution with bench diagnostics. Running the full SCSI test (*T008800010000) on a board with a damaged NCR 5380 can latch the bus and require a power cycle. Some tests can also write to PRAM — clear PRAM (Cmd-Opt-P-R) after extensive testing.
  • The codes are register dumps, not error names. If a published table contradicts what you're seeing, prefer first the value you can read off the machine, then the Test Manager output over serial, and only then any third-party table. Apple's own Developer Notes for the Portable are known to contain transcription errors that have propagated to most reference sites.
  • The format does not directly apply to New World ROM machines. The original iMac (1998) and later use audio beep codes (Mac Beep Codes) rather than Sad Mac. PCI Power Macs sit in an awkward middle ground — they play the "glass shattering" Chime of Death but draw no icon.

See also

edit

References

edit