News are slow lately and I’ve been told some people find old electronics interesting – so I’m going to present one of my latest “experiments”. It’s mostly to brag but but if you find it useful, all the better.
I’ve bought several 386 mobos, each cost me about 10 Euros (and a couple more for shipping) and all were described as dead, not booting. Nothing really surprising about it, pretty much all of these have old NiCd battery on them and those are notorious for spilling their guts and corroding the copper – sometimes to the point where the traces and vias are completly gone. If you ever get one of these, and the battery has not beeen removed or replaced, desolder it ASAP.
Here’s the seller’s photo, all in all the mobo looks in pretty good condition but you should be able to spot the greenish corrosion already:
The spill wasn’t that bad – water+brush, vinegar+brush, water+brush, and the PCB started looking way better. Actually there weren’t any broken connections but some solder joints and traces were corroded to the point where I decided to rework them. Better to spend 15-30 minutes now than hours later figuring out why things randomly don’t work.
If you paid attention you noticed one of the plastic support pegs was still in the board when it was sold. Turns out there is a reason for it, it’s a very tight fit and I had some serious trouble removing it. I’d just cut it off, if it wasn’t for the fact these old pegs come in handy if you want to put the mobo inside an AT case. But apparently I wasn’t the only one who tried to remove it and someone before me was not as careful with their tools. There were deep scratches on some of the traces near the hole, and I’ve decided to remove the solder mask there and tin those over to make sure there is proper electrical connection. Again, I’d do it even if the trace showed continuity, these are ISA bus signals and there has to be enough copper on each connection to allow proper currents. Otherwise the rise/fall times are going to be absymal and that’s just asking for trouble.
I mean, look how close those traces are to the hole – right on the edge. Who designed this thing?! I could fix it in 10min in the CAD by moving some of the bottom traces to the other side, and then repositioning the hole itself a bit. I think I could get 1mm clearances on both sides without actually re-routing anything. Still not a lot but at least something. Seriously, that’s a bad job.
Alas, that wasn’t all that was wrong with this motherboard. Notice that crystal in the bottom right coner? It’s not soldered in at an angle. It’s actually sheared off, stopped only by the capacitor that got a bit damaged in the process as well. That had to be replaced but it’s easy – if you have the parts. I didn’t so I’ve replaced it with 14.7456MHz and now it’s a bit overclocked mobo.
Does it work now? It does! That is, after I’ve put on some missing cache size jumpers.
That’s a seriously impressive BIOS for such a cheap mobo. Or so I thought. Well it turns out the BIOS has quite a few options that the motherboard / chipset doesn’t actually support. When I was trying to map the PGA132 socket connections I noticed that A20M# signal is indeed connected – but only to the keyboard controller. Not to the chipset. So how does a Cyrix CPU work with “Fast Gate A20” set to enabled? Maybe it doesn’t. Or maybe the “Fast Gate A20” option can’t be set at all, becasue it’s not supported, as I’ve learned few hours later.
It’s required to turn off the Turbo Switch function if you don’t have an actual switch connected – because it defaults to slow. A minor annoyance but took me 15 minuts to figure it out. I thought my test card was somehow slowing down ISA but to a crawl.
UPDATE: Forgot to mention this but the ISA clock setting of 14.3181/2 doesn’t work either. At least it’s easy to spot, the mobo will just freeze with speaker tone on, during boot. Only CLK2 dividers work and there’s not a lot of them so for 20MHz bus you will get a lousy 6.67MHz ISA clock.
You can set the Cyrix CPU to BARB or FLUSH but the FLUSH# input is not connected at all. So BARB it is. I’m still unsure if the mobo properly supports the hidden RAM refresh (forgot to check with the scope, will do it later) but at least there is a performance difference between L1 off and L1 on with BARB enabled. So it might just be working properly and not flushing the cache every 15us. But the whole purpose of this project is to experiment with the FLUSH# input anyway so it’s not a huge deal either way.
Well then, time for the mod:
The mobo does have an empty space for PGA132 socket but apparently it was supposed to have either the socket, or the PQFP CPU soldered in. Not both. So there is no jumper to disable the PQFP CPU and I had to solder a wire to FLT# input myself – though at least the empty space for the alternative clock generator and it’s two jumpers allowed me to easily add a jumper of my own. Then I’ve soldered in the socket and put in the Cyrix. And what do you know, it works well.
That was about 20 Euros in parts and a whole afternoon of work but now I can easily test PGA132 CPUs wihout having to mess with the FM Towns machines. I can do most testing and code dev on this PC. There is no 16MHz clock selection but there is (undocumented) 20MHz and it seems my 16MHz CPUs work at 20 as well. I could aways add a clock divider to the 33MHz setting but that would require more work and with high frequency signal (66MHz to be divided by 2) which is always tricky. Might not work with just wires and so I’d have to design some sort of add-on PCB to stack over the clock amp 74F gate – not that difficult but it’s more time and money spent. So I’d rather not.