old (but not vintage) mac woes

My 8 year old Mac G4 crashed last night and refused to reboot. Took all normally recovery measures (resetting PRAM, etc) and still no go. Took every removable component off and still no go. Power supply measured correct voltages. Was suspicious of motherboard/CPU. re-seated everything else that I could get at (including CPU daughter card). Still no go.

At this point, I was considering next steps – what computer to replace it with and how to move contents of hard drives forward, when I discovered an obscure way to reset open-firmware (which handles booting the machine) on Apples web site. It did the trick and I’m back in business. I’m a bit surprised that I didn’t break anything, giving all the fiddling that I did.

Now to figure out what I was doing, when it crashed…

Rod Holt’s Apple II fix

There are stories floating around, about how early prototypes of the Apple II were not very reliable and Rod Holt made some fixes to make the design more reliable. A recent example is this Mike Scott interview.

Just what exactly was wrong and how it was fixed is not mentioned in any of these stories. I’ve always had my suspicions about what one of the problems was. However, without confirmation, I’ve been reluctant to speculate publicly in my blog or elsewhere. Last spring at VCF east, I had a chance to chat with Dan Kottke. Dan was very involved at the technical level with both the Apple 1 and Apple II. More importantly, he seems to have retained in his memory a great many details about those early days at Apple. Dan confirmed my suspicions about what one the of problems was.

Since I first heard the story of the flakey Apple II prototypes, I was very suspicious of the two SIP resistor modules shoehorned at the end of two of the three rows of ram. Here is an crop of an image of Geoff Harrision’s rev 0 board, #97 showing two blue SIP packages.

SIP Modules Shoehorned in between chips

SIP Modules Shoehorned in between chips


(thanks to Geoff for permission to use this image)

These resistors are used to terminate the DRAM address bus. Termination is often added to a bus to improve signal quality in cases where noise and ringing cause performance issues. That was the first clue, but there are others. Nowhere else on the board are parts jammed so close together with so little spacing between traces. Also note the silk screen set at an angle – no other parts on the Apple II are labelled that way.

This image of the copper layer on my rev 0 replica shows how tight this area of the layout is.

Copper layer around SIPs

Copper layer around SIPs

Dan confirmed for me that these SIP packages were added after prototypes exhibited problems with a DRAM address bus that was, in Dan’s words, “all over the place”.

Satisfied that I have found and had confirmed at least one of the problems with the preproduction Apple IIs, I still have two questions left to answer.

  • Just how bad is “all over the place? Just how well will a system without these resistors run?”
  • Are any preproduction Apple IIs without these SIP packages in existance?
  • Well, I think I have the means to get some idea of the answer to the first question. I will be doing some experiments in the future and reporting results in this blog.

    The answer to the second question will only be answered if someone comes forth with a pre-production Apple II, without the termination resistors. Knowing how engineers save prototype hardware, I’m thinking that some early Apple employee will come up with one, at some point in time. Who knows, maybe Rod still has the one in which he grafted the resistors onto, in order to test his fix.

    More SUPERPROTO ideas

    Prototypers looking to save money – check out the how I changed the 1101 SRAM tester into a permanent solution, without dedicating a SUPERPROTO board.

    http://willegal.net/superproto/index.php?title=Extending_to_Bread_Board_for_rapid_prototyping

    I also added jumper selection of SUPERPROTO superpages to my SUPERPROTO experimenters board. I’m able to change personalities of my SUPERPROTO now, simply by changing out the breadboard and by changing jumpers.