Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site telesoft.UUCP
Path: utzoo!linus!philabs!prls!amdimage!amdcad!amd!pesnta!hplabs!sdcrdcf!sdcsvax!telesoft!garym
From: garym@telesoft.UUCP (Gary Morris @shine)
Newsgroups: net.micro.mac
Subject: Re: Dead Mac error codes ( query )
Message-ID: <198@telesoft.UUCP>
Date: Fri, 20-Sep-85 00:54:29 EDT
Article-I.D.: telesoft.198
Posted: Fri Sep 20 00:54:29 1985
Date-Received: Wed, 25-Sep-85 10:19:24 EDT
References: <227@encore.UUCP>
Reply-To: garym@telesoft.UUCP (Gary Morris @shine)
Organization: TeleSoft, SanDiego CA
Lines: 96
Keywords: error codes diagnostics
Summary: ROM diagnostic codes

[this line provided at no extra charge for line eaters everywhere]

In article <227@encore.UUCP> lawrence@encore.UUCP (Scott Lawrence) writes:
>I got up and turned on my Mac and got a "dead mac"
>icon with a number under it.  ...
>I would like to know ( this time it's 041000 ).

Scott, 
   You have a bad memory chip at position G9 on the main logic board.  If 
you're handy with and have a high quality soldering iron you could replace
the chip yourself for under $5.  If you take it a dealer they will replace
the main logic board for $137.28 (that's what it cost me).  That happened to 
me before I knew what the error codes meant.  If I had known then, I would 
have replaced the chip.

Dr. Dobbs Journal, January, 1985 had an article "Fatten Your Mac" on pg. 18
that gave complete instructions for performing a 512k upgrade yourself, it
also gave a good description of the power on diagnostics performed by the ROM
which I will summarize here. 

  -- GaryM

[General disclaimer:  This posting is in no way related to my employer.]

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

  Before starting diagnostics, you must have the programmers switch installed 
on the left side of the Mac.  Hold down the Interrupt button (rear button)
and then press Reset button or power on Mac.
  
  A sad Mac icon appears with a numeric code under it.  If all is OK then the
code is 0F 000D, and some bits will cycle under the code to indicate that the
memory test program is running.  The numeric code has two parts; for example
0F is the class code and 000D is the sub code (see tables).  The class code
tells what part of the diagnostic program found the error and the sub code 
tells what the error was.  Each of the sixteen bits in the sub code identifies
one of the sixteen memory chips (class codes 2-5 only). 

  If the diagnostics find more than one bad chip, the sub code displays
multiple bits.  For example if bit 3 is bad, the diagnostics display sub code
0008.  If both bit 3 and bit 10 are bad, the sub code would be 0408.  If
the diagnostics find a bad chip you'll have to replace it or find the problem
on the board.

	Diagnostic Codes (Table I)
Class Code			Sub Code
----------			--------
1 = ROM test failed		Meaningless
2 = Memory test - bus subtest	Identifies bad chips (see Table II)
3 = Memory test - byte write	Identifies bad chips	    "   
4 = Memory test - Mod3 test	Identifies bad chips	    "
5 = Mem test - addr uniqueness  Identifies bad chips	    "
F = Exception 			Identifies exception cause (see Table III)

	Chip Identification (Table II)
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

Exception Sub Codes (Table III)
Code	Reason
----	-------------
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	Normal Indication

-- 
GARY A. MORRIS -- TeleSoft, San Diego, CA   (619) 457-2700
		  (UUCP) ...{decvax,ucbvax}!sdcsvax!telesoft!garym
"Always listen to experts.  They'll tell you what can't be done 
 and why.  Then do it."  	--  Lazarus Long