Jump to content

Sad Mac Decoder

From RetroTechCollection

The Sad Mac Decoder is an interactive tool for decoding Sad Mac Error Codes across every 68k Macintosh model. Enter the hex codes shown on a non-booting Mac, pick the machine model, and the decoder will tell you which test failed, identify the specific failing RAM chip (where applicable), and play back the corresponding Chime of Death.

For the underlying reference tables, worked examples, and background on how the codes are generated, see the full article at Sad Mac Error Codes.

Decoder

[edit | edit source]
Loading decoder… If this message persists, the Sad Mac Decoder gadget is not enabled. Enable it in your preferences (Gadgets tab), then reload this page.

How to use

[edit | edit source]
  1. Pick your machine from the Machine dropdown. The format of the codes (short vs. expanded two-line) is set automatically.
  2. Enter the hex code shown below the Sad Mac icon. Compact Macs (128K, 512K, Plus) display a single six-digit code; everything from the SE onwards uses two lines of eight hex digits.
  3. Click Decode. For RAM-fault classes you'll also see a board diagram with the failing chip(s) highlighted in red.
  4. Click ▶ Play this machine's Chime of Death to hear the audio that machine produces alongside the Sad Mac. Compact Macs (128K through Plus) are silent on failure and will show a notice instead.

What the codes mean

[edit | edit source]

A Sad Mac code is a dump of the CPU's D6 and D7 registers at the moment the diagnostic routine gave up. The lower word of D7 identifies which test was running (or which exception fired), and D6 holds the specifics — a bitmask of failing data lines, an address-line XOR, the stack pointer, etc. If an unexpected 68000-family exception interrupted a test, the exception number is logically ORed into the test number, so a code like 00000304 means "illegal instruction (03) fired during RAM Bank A test (04)".

For the full breakdown, including the Test Manager flag bits, every per-model test table, and the Macintosh Portable's separate code set, see the main reference page.

See also

[edit | edit source]