About Clay

I'm a Data Center Operations Engineer in beautiful Charleston, SC. I'm happily married to my wonderful wife Nan and we have an teenage daughter Lela. I'm a total geek. I got into electronics when I was around 9 or 10 and got hooked on computers shortly thereafter. I also love Sci-Fi, (not fantasy) particularly Star Trek. My favorite outdoor activities include rollerblading, biking and hiking. I'm also a bit of a car guy and amateur racing driver.

Trash to treasure

After repairing my 486SLC-33 motherboard, I’d been thinking about fully re-creating my first 486 machine (mostly) as it was when new. I still have the case and most of the original hardware, but I wanted another ISA VGA card so I wouldn’t have to give up the one I use for testing on other projects. Due to a mistake on my part while price shopping, I ended up ordering a somewhat rare and desirable one, but which was listed as scrap. Had I noticed that, I would have ordered one of the others with a slightly higher price. All I saw was that it was a Tseng ET4000AX powered Diamond Speedstar Plus and I was sold. This was one of the better ISA cards of the era and I wanted it in my restoration build.

Damaged ET4000AX chip

When the card arrived, I unwrapped it and it looked ok at first. Then I noticed something odd with the main chip and looked closer… something had impacted one of the rows of pins (likely the edge of another card) and crushed them in against one another. Maybe they aren’t touching I thought. I popped it into my 486 board and powered it up, but to my dismay, the card didn’t work right. After realizing my mistake, I decided I was going to try and fix the card. I got to work with some small

needles and thin-bladed tools and gently started working my way in-between the crushed pins. I was able to separate them all from each other, but ended up ripping two of them off the pads in the process. The first was an easy fix with the soldering iron… the second one, not so much. The second one to rip off the pads was badly bent and fearing that it would break if I handled it too much, I just bent it up and over the chip package.

I wondered if maybe this pin wasn’t used because it didn’t seem to connect to anything. (little did I know it actually bent backwards and linked up to a trace underneath the chip) I plugged the card in, only to find that while it did show video now, it was flashing and glitching. This was going to be more challenging than I thought.

Thankfully I’d experimented previously with bodge wires to fix broken traces that had either been damaged or corroded away. There was just enough of a trace visible at the edge of the chip that I might be able to solder something to it with a fine point tip. I exposed the copper edge of the trace and prepared a bodge wire with some solder. After a few tries I managed to connect the wire to the trace and then soldered the other end onto the pin that had been bent up and over the body of the chip. After protecting it with some Kapton tape, I plugged it into the board, and still nothing. Bummer, I thought… this thing is toast.

Never one to give up, I came back and looked up any information available on the card. I’d been playing with it and had noticed that it would work when I was in the BIOS, but if I tried to let it boot, it would lock up the machine. I noticed that the default setting enabled a “Turbo” mode. Maybe this was too advanced for my my machine? I flipped the appropriate DIP switches,

My repaired Diamond Speedstar Plus, ISA VGA card

and what do you know… it worked like a champ! I’ve since put a few hours of run time on it and it’s been rock solid. It may not look as good as new, but it works and will do the job I intended it to.

Homebrew floppy controller repair – part 2

After my previous efforts to clean up the board were successful and the floppy controller started working again, I thought I’d solved the problem. What a simple fix I thought. (it wasn’t a simple fix) A week later, I sat down to test out my new gen 2 GoTek floppy emulator and was having all sorts of trouble in the form of hangs and parity errors. I hadn’t seen this before, so at first I assumed I had a broken or misconfigured GoTek. I did some detailed troubleshooting and couldn’t find anything that helped, so I took out the GoTek and put a real 1.44M drive in its place. To my surprise, I was getting the same behavior. Great, the controller went bad again.

I re-checked everything on the controller, from the individual traces, to inspecting each chip and socket and making sure everything was making good contact. Stumped, I started looking around for anything that didn’t seem quite right and noticed the Ti logo on the 2 74LS138 encoder/decoder ICs didn’t look quite right. It was also super obvious because there was a legit Ti chip right next to them with a logo that wasn’t warped. Great, these must be counterfeit chips I thought. Off to ebay I went and ordered some vintage Motorola chips for a few bucks. What I really should have done was just test the chips.

Long story short, the replacement 74LS138 chips didn’t solve the issue either. Strange I thought, what else connects to the ISA bus that could be causing this?

Then it finally hit me… This controller also has a serial UART with an external connection. It also has a multiple driver/receiver IC that sits inline. I don’t really use the serial port right now, so I just pulled those 2 chips and amazingly everything worked perfectly.

SK Floppy/Serial board running without the UART
Original Exar ST16c550

I’m guessing that the UART went bad, or there’s an internal fault in the driver IC. (which my tester doesn’t support of course) I’m just glad that it works, because now I can get back to playing with the XT clone board I’ve been restoring! (**update: it was the 16550 UART that was to blame. Ordered a replacement chip from TI that will hopefully be more reliable.)

Extension of an XT clone board

After some extensive repairs and restoration of my old DTK 286, I wanted to revive the motherboard of my first home computer, a Taiwanese PC XT clone: the VIP TXM-8. This board is essentially a reverse engineered copy of the IBM PC XT (5160), but with additional ROM sockets like the earlier IBM PC (5150). Thankfully the original PC and PC-XT did not have an onboard clock requiring a battery, (and thus no board damaging leakage!) but were instead configured entirely with DIP switches. Any additional/advanced features often required an expansion ROM to add that functionality.

The TXM-8 came with only a single 8k BIOS ROM leaving the other 5 sockets unpopulated. While watching one of Adrian Black’s videos about a similar board, I noticed he had populated most of the rest of his ROM sockets which allowed him to have ROM basic as startup option. I’d never seen this in my childhood as most of the IBMs (including the clone I built from spare parts) were business machines and had no use for basic. This led me to search for the source of these ROMs which you can find on github and are part of a distribution that includes a more or less universal PC XT BIOS.

I ordered up some old 8k and 16k EPROMs, of which I used only the 8k for this project. I removed the old labels and dropped a handful of the chips into my UV eraser and then built the binaries for the Super PC/Turbo XT BIOS and the accompanying basic ROM images while I waited. (if you haven’t worked with EPROMs before, they take some time to be completely wiped by the UV light)

TXM-8 with custom ROMs

I burned all of the images, labeled the chips and amazingly it worked perfectly. (well, once I referenced Adrian’s video to figure out the correct order in which to install them anyway! close-up shot at 1:31 in the video) So now I had a PC XT with a full 640k of RAM that booted directly into ROM basic. Cool, but utterly ridiculous.

I’d also been working in parallel on a separate issue with a DiY floppy controller I’d built and wanted to have the option of either booting into ROM basic, or into DOS with the new BIOS. Unfortunately, I ran into a problem. While the PC XT could now talk to the repaired controller card, the XT only ever supported low density 360k 5.25″ floppy disks. The DiY controller card has an open source BIOS extension that provides support for other types of disks, but I couldn’t get it to work with the universal BIOS I’d installed. I tested the controller at various memory addresses and even removed the 4 ROM basic chips in case there wasn’t enough space, but that didn’t solve the issue. I could only ever get the BIOS extension to work with the OEM Phoenix BIOS chip that came with the board.

I searched around and eventually found a forum post on Vogons that linked to a ROM image from an old generic controller card that supported high density drives. This turned out to be the solution as not only did it support high density floppies, it was an 8k image I could install in the last remaining socket on the board. I configured the DiY controller to disable the onboard BIOS extension ROM, burned this new image to another 8k EPROM and installed it in the board. To my amazement, not only did it work, but it automatically detected the drive type that was connected. (this is pretty great because it means I can use EPROMs since I don’t need to store the configuration anywhere)

Booting from DOS 6.2 from a 1.44MB floppy natively on a PC XT!

I like this new configuration for several reasons. 1) This is something that would have been entirely possible in that time period (albeit with pirated ROMs at that time) with a generic floppy controller capable of working with HD media. 2) Having the ability to boot from floppy or ROM basic gives me more interesting options to play with and potentially use in testing. 3) The more advanced BIOS is also more useful and capable than the old Phoenix code and should help with testing.