Sunday, July 24, 2022

Fix it 'til it's broke - The Third

After dealing with a broken Agnus 8375, it was time to turn my attention back to the A500+ board that was still not working.

A500+ Board from HELL

Initially, I had some very odd symptoms. The board would almost appear to boot (with a floppy drive connected). It would run through the sequence of black screen, grey screen, white screen but then no initial Kickstart screen. With a floppy drive connected the drive would show activity as if it was loading data but the screen would stay white. So something weird was going on..

First thing, I tried swapping the main custom chips, just in case one had gone faulty or was starting to fail. This made no difference. In fact, all of the custom chips worked perfectly in the Rev 6 A500 board I have (except Agnus - Rev 6 and Rev 8 Agnii are NOT pin compatible). But then I realised that the A500+ board was no longer getting to the white screen. Now, it would start at black, then dark grey then it would stop. Hmmm.

Given that this is an A500+, the board has had some previous repair, including sockets for U12 and U13. I tried swapping those chips with known working spares. No difference. In fact, things got even worse. Now the board was stuck on a black screen. Doh.

This was beginning to get a bit annoying. I had DiagROM, so hooked up the serial output to see what was happening. The initial test the DiagROM performs is very limited due to only a tiny amount of RAM being available for actual use, but it was showing errors right from the start. 


Well, that doesn't look good.

Then, in a potential case of the Baader-Meinhof phenomenon, Adrian from Adrians's Digital Basement uploaded a video where he had an A500 board (Rev 6) with a potential RAM error and he was using DiagROM to try and solve the issue. As it turned out, his video showed that he did have some dodgy RAM chips but, in my experience, Amiga RAM is pretty hardy and in all the A500+ boards I had previously repaired, I have NEVER had a RAM fault. 

In any case, I went ahead and de-soldered the RAM from my board for two reasons. Firstly, it meant I could put it in a socket, and second, it meant I could test the chips in a handy RAM expansion board that uses four of the same RAM chips with the Rev 6 board along with the excellent Amiga Test Kit from Kier Fraser. Several people on Twitter were convinced that my issues was almost certainly a similar issue to Adrian's i.e. dodgy RAM chips. 

Removing the RAM proved to be a right pain in the behind. Although the battery damage to the RAM was very limited, the solder on many of the legs had reacted with the battery chemicals meaning the solder was dull and would not flow. I managed to damage several traces due to my growing frustration and impatience. Fortunately, the repairs were fairly straightforward and more an annoyance than a major problem.


Spot the damaged traces...doh.

Repairs following my impatience.

Once the sockets were installed and the testing was complete, I was able to see that all of the RAM chips were completely fine. The issues were NOT caused by the RAM. Gah.


Sockets galore

Handy test unit. :)

By this point, several days had gone by and the board was taking up a lot of time. I was convinced that there must be a dodgy trace somewhere so I had generated a multi-tab spreadsheet (everyone loves a spreadsheet) with pin to pin connection details, listing each pin of the major chips and what they were connected to. The 84 pins of Agnus were 'Not Fun'(R). But this also showed no issues with the traces other than previous minor repairs.

One of the comments I had on Twitter came from the most excellent Jan Beta who noted that old and crusty sockets were a major source of problems on previous Amiga boards he had worked on. I took notice of this and decided to solder several chips directly to the board. The chips that received this treatment were:

  • U12
  • U13
  • Gary
  • CPU
  • Even CIA
  • U36 
  • U37 
  • U15 
  • U42
Some of these would normally be soldered to the board anyway but had had sockets fitted as part of previous repairs.

Sadly, this made virtually no difference. What I did notice was that the intermittent RAM fault had disappeared. Interesting... But DiagROM would still get through the memory test and then crash.

Argh! Crashu!

Back to the broken trace theory.

No broken traces.

At some point during all the pulling, pushing, removing, installing two things happened. One, I managed to put it a RAM chip upside down. I have to tell you now that they get bloody hot when that happens. It took me several minutes to realise where the HOT smell was coming from. But the RAM chip in question survived - told you the Amiga RAM was pretty hardy.

RAM the correct way round now..

Two, it broke my 2.04 ROM. By this point I had reached the stage where the 2.04 ROM would show a black screen but the 1.3 ROM would show an immediate green screen. The reason for the black screen on the 2.04 ROM was because it was dead. Completely. Dangnabit.

But the green screen was another clue that this was down to RAM not working properly. Perhaps the Agnus chip wasn't sitting right in the socket. After a careful removal I could see that several of the spring pins in the 'economy' socket I had were bent right into the socket. Perhaps this was the issue. So I fitted another brand new socket.

Damaged socket pins?


Third time's a charm.. no wait..
Third time's a pain in the 

Annnd after all that. No difference. Green screen on the 1.3 ROM and an inevitable crash of DiagROM.

I had had enough at this point. I think I had spent the best part of 20 or 30 hours trying to make the damn thing work. Even DiagROM had stopped working properly and would only display a line of garbage at startup now.

One last ditch effort. I removed the gaggle of chips in the 'data path' i.e. U10, U11, U12 and U13 and fitted brand new sockets. Sadly, I had no 20 pin sockets, but I did have plenty of 24 pin sockets. So, given that this board is staying with me, I decided to just remove the four pins from the end of the socket and solder them on to the board. Providing the chips are inserted fully to the right there is no issue. Of course, if I accidentally put a chip in to the left I will almost certainly kill it but at least they are fairly standard logic chips, if a bit harder to come by these days due to the apocalyptic state of the world...

Shiny sockets

Following this I tried booting it up to see if I could get DiagROM back to where it was with the serial output. 

I nearly fell off my chair. The machine booted flawlessly into DiagROM. 

What. The. Heck.

I was so stunned I forgot to take a picture of DiagROM working. But it worked. I put the ROM back to a normal kickstart, attached a floppy drive with an ATK disk and tried it again.

Standby for action!

Memory! All alone in the moonlight...

So it works. Here's my theory on what was wrong. I think the original problem was that the sockets on the board had corroded/oxidised over the time it's been sat in the box. When I took the sockets off and soldered chips directly to the board (specifically around U10 - U13) I suspect I bridged one or more pins or tracks without realising. Once I took them back off the board and put the sockets on this was cured. And the brand new sockets cured the original issue.

My gut told me it wasn't a RAM fault. I should've listened harder to Jan Beta. :)