Sad Mac error codes for
Macintosh. From the Apple Technical Information
Library.
Macintosh
Portable Error codes
Macintosh Portable ROMs:
The bootup code in the Macintosh Portable contains
a series of startup tests that are run to ensure
that the fundamental operations of the machine
are working properly. If any of those tests fail,
a Sad Mac icon appears on the screen with a code
below that describes what failure occurred. Here
is a typical example of a Sad Mac display with
an error code below it:
The two codes are actually the contents of
the two CPU data registers D6 and D7. The upper
word (upper 4 hex digits, in this case 0546)
of D7 contains miscellaneous flags that are used
by the start-up test routines and are unimportant
to just about everybody except a few test engineers
within Apple. The lower word of D7 is the major
error code. The major error code identifies the
general area the test routines were in when a
failure occurred. D6 is the minor error and usually
contains additional information about the failure,
something like a failed bit mask.
The major error is further broken into the
upper byte that contains the number of any 68000
exception that occurred ($00 meaning that no
exception occurred), and the lower byte that
usually contains the test that was being run
at the time of failure. If an unexpected exception
occurred during a particular test, then the exception
number is logically ORed into the major error
code. This way both the exception that occurred
as well as the test that was running can be decoded
from the major error code:
In this example, the code says that an address
error exception ($0200) occurred during the RAM
test for Bank A ($03); $0200 ORed with $03 =
$0203.
The table below explains the
codes.
Major Error Codes...
Below is a brief description of the various
test codes that might appear in the major error
code:
Warning: Some of these codes may mean slightly
different things in Macintosh models other than
the Macintosh Portable. These descriptions describe
specifically how they are used in the Macintosh
Portable.
| $01 |
- ROM test failed. Minor
error code is $FFFF, means nothing. |
| $02 |
- RAM test failed. Minor error code
indicates which RAM bits failed. |
| $05 |
- RAM external addressing test failed.
Minor error code indicates a |
|
failed address line. |
| $06 |
- Unable to properly access the VIA
1 chip during VIA initialization. |
|
Minor error code not applicable. |
| $08 |
- Data bus test at location eight
bytes off of top of memory failed. |
|
Minor error code indicates the bad
bits as a 16-bit mask for bits 15-00. |
|
This may indicate either a bad RAM
chip or data bus failure. |
| $0B |
- Unable to properly access the SCSI
chip. Minor error code not |
|
applicable. |
| $0C |
- Unable to properly access the IWM
(or SWIM) chip. Minor error code |
|
not applicable. |
| $0D |
- Not applicable to Macintosh Portable.
Unable to properly access the |
|
SCC chip. Minor error code not applicable. |
| $0E |
- Data bus test at location $0 failed.
Minor error code indicates the |
|
bad bits as a 16-bit mask for bits
15-00. This may indicate either a |
|
bad RAM chip or data bus failure. |
| $10 |
- Video RAM test failed. Minor error
code indicates which RAM bits |
|
failed. |
| $11 |
- Video RAM addressing test failed.
Minor error code contains the |
|
following: upper word = failed address
(16-bit) msb of lower word |
|
= data written lsb of lower word
= data read Data value written also |
|
indicates which address line is being
actively tested. |
| $12 |
- Deleted |
| $13 |
- Deleted |
| $14 |
- Power Manager processor was unable
to turn on all the power to |
|
the board. This may have been due
to a communication problem with |
|
the Power Manager. If so, the minor
error code contains a Power Manager |
|
error code, explained in the next
section. |
| $15 |
- Power Manager failed its self-test.
Minor error code contains the |
|
following: |
|
msw = error status of transmission
to power manager |
|
lsw = Power Manager self-test results
(0 means it passed, non-zero |
|
means it failed) |
| $16 |
- A failure occurred while trying
to size and configure the RAM. |
|
Minor error code not applicable. |
Minor error codes-Power Manager
processor failures
If a communication problem occurs
during communication with the Power Manager,
the following error codes will appear somewhere
in the minor error code (usually in the lower
half of the code, but not always):
| $CD38 |
Power Manager was never
ready to start handshake. |
| $CD37 |
Timed out waiting for reply to initial
handshake. |
| $CD36 |
During a send, Power Manager did
not start a handshake |
| $CD35 |
During a send, Power Manager did
not finish a handshake. |
| $CD34 |
During a receive, Power Manager did
not start a handshake. |
| $CD33 |
During a receive, Power Manager did
not finish a handshake. |
Diagnostic
Code Summary
Below is a summarized version
of the Sad Mac error codes:
Test Codes
| $01 |
ROM checksum test. |
| $02 |
RAM test. |
| $05 |
RAM addressing test. |
| $06 |
VIA 1 chip access. |
| $08 |
Data bus test at top of memory. |
| $0B |
SCSI chip access. |
| $0C |
IWM (or SWIM) chip access. |
| $0D |
Not applicable to Macintosh Portable.
SCC chip access. |
| $0E |
Data bus test at location $0. |
| $10 |
Video RAM test. |
| $11 |
Video RAM addressing test. |
| $14 |
Power Manager board power on. |
| $15 |
Power Manager self-test. |
| $16 |
RAM sizing. |
Power Manager communication error codes
| $CD38 |
Initial handshake. |
| $CD37 |
No reply to initial handshake. |
| $CD36 |
During send, no start of a handshake. |
| $CD35 |
During a send, no finish of a handshake. |
| $CD34 |
During a receive, no start of a handshake. |
| $CD33 |
During a receive, no finish of a
handshake. |
CPU exception codes (as used by the startup
tests)
| $0100 |
Bus error exception code |
| $0200 |
Address error exception code |
| $0300 |
Illegal error exception code |
| $0400 |
Zero divide error exception code |
| $0500 |
Check inst error exception code |
| $0600 |
cpTrapcc,Trapcc,TrapV exception code |
| $0700 |
Privilege violation exception code |
| $0800 |
Trace exception code |
| $0900 |
Line A exception code |
| $0A00 |
Line F exception code |
| $0B00 |
Unassigned exception code |
| $0C00 |
CP protocol violation |
| $0D00 |
Format exception |
| $0E00 |
Spurious interrupt exception code |
| $0F00 |
Trap inst exception code |
| $1000 |
Interrupt level 1 |
| $1100 |
Interrupt level 2 |
| $1200 |
Interrupt level 3 |
| $1300 |
Interrupt level 4 |
| $1400 |
Interrupt level 5 |
| $1500 |
Interrupt level 6 |
| $1600 |
Interrupt level 7 |
|