[comp.sys.mac.misc] The Sad Mac Codes...

time@tbomb.ice.com (Tim Endres) (12/07/90)

This is only part of a very nicely formatted Word document.
I cut off the last part about the portable to save space.
If you want the Word doc or the portable docs email me.

----------------------------

On the original ROMs (128k, 512k, 512ke, Plus):

When you press the interrupt button on the side of your Macintosh when
booting, you should get a sad Mac icon with '0F000D' and some bits
cycling under the icon indicating it is performing a memory test.
 
This numeric code is in two parts:  the first two characters are the
class code and the second four are the sub code.  The class code tells
what part of the diagnostic program found the error and the sub class
code tells what the error was.  In the case of a bad RAM chip, the sub
class identifies the bad chip (this was very helpful to homegrown
upgraders).

=======================================================================

Class Code		Sub Code
	1 = ROM test failed		Meaningless
	2 = Memory test - bus subtest	identifies bad chips
	3 = Memory test - byte write	identifies bad chips
	4 = Memory test - Mod3 test	identifies bad chips
	5 = Memory test - address uniqueness	identifies bad chips
 
-----------------------------------------------------------------------
 
Single Chip Identification
 
	Data Bit          Location              Sub Code Bits
		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

-----------------------------------------------------------------------
 
Class Code	Sub Code
F = Exception	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
	000A Line 1111
	000B Other exception
	000C Nothing
	000D NMI (normal indication)
	0064 CouldnUt Read System File into Memory

Macintosh SE & Macintosh II ROMs:

The Sad Mac error codes have been changed to incorporate additional
power for testing and to support the 32-bit world. Generally, the same
codes are used for 68000 exceptions as the Macintosh, however they are
displayed differently.

The traditional Macintosh error codes are displayed like this:

      (imagine Sad Mac Icon here)
                    0F0003


Where RFS indicates an exception occurred, and R3S indicates an illegal
instruction occurred. On the Macintosh SE and II, the display would
appear:

      (imagine Sad Mac Icon here)
             0000000F
             00000003

Please note that 00000003 is a hex number.

The new powerPon error codes have the following format:
      (imagine Sad Mac Icon here)
             XXXXXXXX
             YYYYYYYY



Where XXXX is internal test manager state information (ignore this),
YYYY contains codes that indicate either an exception code, or the test
number for a power on test failure. The ZZZZZZZZ code contains
additional failure information to help track down the problem.

$YYYY Error Codes:

$0001	The ROM checksum test failed. Ignore the Z field.

$0002	The first small chunk of RAM to be tested failed.
      The Z field indicates which RAM Bit(s) failed.
      This small chunk of RAM is always in Bank B.

	Example:	$AABBCCDD
		AA=8 bit mask for bits 31-24
		BB=8 bit mask for bits 23-16
		CC=8 bit mask for bits 15-8
		DD=8 bit mask for bits 7-0

$0003	The RAM test failed while testing bank B, after passing the chunk
      tested for code $0002.
      The Z field indicates which bits failed as in code $0002.

$0004	The RAM test failed while testing bank A.
      The Z field indicates which bits failed as in code $0002.

$0005	The RAM External addressing test failed.
      The Z field indicates a failed address line.

$0006	Unable to properly address the VIA1 chip.
      The Z field is not applicable.

$0007	Unable to properly address the VIA2 chip (Macintosh II only).
      The Z field is not applicable.

$0008	Unable to properly access the Front Desk Bus.
      The Z field is not applicable.

$0009	Unable to properly access the MMU.
      The Z field is not applicable.

$000A	Unable to properly access NuBus.
      The Z field is not applicable.

$000B	Unable to properly access the SCSI Chip.
      The Z field is not applicable.

$000C	Unable to properly access the IWM chip.
      The Z field is not applicable.

$000D	Unable to properly access the SCC Chip.
      The Z field is not applicable.

$000E	Failed Data Bus test.
      The Z field indicated the bad bit(s) as a 32-bit mask for bits 0-31.
      This may indicate either a bad SIMM  or data bus failure.

$000F	Reserved for Macintosh compatibility.

$FFxx	A 680xx exception occurred during power on testing.
      The xx indicates the exception:

          $01 Q Bus Error
          $02 Q Address Error
          $03 Q Illegal Instruction Error
          $04 Q Zero Divide
          $05 Q Check Instruction
          $06 Q cpTrapCC, Trap CC, Trap V
          $07 Q Privilege violation
          $08 Q Trace
          $09 Q Line A
          $0A Q Line F
          $0B Q unassigned
          $0C Q CP protocol violation
          $0D Q Format exception
          $0E Q Spurious interrupt
          $0F Q Trap 0P15 exception
          $10 Q Interrupt Level 1
          $11 Q Interrupt Level 2
          $12 Q Interrupt Level 3 	$13 Q Interrupt Level 4
          $14 Q Interrupt Level 5
          $15 Q Interrupt Level 6
          $16 Q Interrupt Level 7
          $17 Q FPCP bra or set on unordered condition
          $18 Q FPCP inexact result
          $19 Q FPCP divide by zero
          $1A Q FPCP underflow
          $1B Q FPCP operand error
          $1C Q FPCP overflow
          $1D Q FPCP signalling NAN
          $1E Q PMMU configuration
          $1F Q PMMU illegal operation
          $20 Q PMMU access level violation



-------------------------------------------------------------
Tim Endres                |  time@ice.com
ICE Engineering           |  uupsi!ice.com!time
8840 Main Street          |
Whitmore Lake MI. 48189   |  (313) 449 8288