This poor System 80 has been subject to cruel and unusual punishment at the hands of previous owners.
I’ve got the Ready prompt (the equivalent of the TRS-80 Memory Size) but it’s been hard work. All of the 2102 video RAMs needed replacing, as well as several LS157 muxes. I managed to link A4 and A5 when replacing a mux – that cost me a few days.
Pressing Enter gives a screen of full graphics blocks – I think the video RAM read is not working fully. But to debug that, I need to understand what is left of a lower case support mod and (I think) software switch for 32 col mode
The Model 1 is reporting 48k memory without a DRAM in sight. Only two solder wires required, plus adjustments to the two sets of jumper pads which I have replaced with DIP switches for ease of testing.
I’m still working on the solder-less 16k upgrade. May not be possible. Will look at this tomorrow (maybe).
Two minor issues with the board. Seems I can demux 14 bit DRAM addresses but have forgotten how NOR gates work.
Also had to rewire the keyboard cable as the janky job performed by the previous owner died when I opened the case.
I’ve also 3D printed some replacements for the rubber-ish board standoffs that crumbled to dust when I flattened the boards. If anyone wants the files, let me know.
One suggestion stood out – not only because of it’s simplicity but because I have used it many times myself over the years. This procedure requires a very special tool, one that is nearly obsolete in this day and age. I wasn’t sure I had such a rare device.
I did find one, eventually, in the back of a drawer
The mighty pencil eraser, handily attached to it’s applicator wand.
A few quick pokes on the offending contacts, and the resistance dropped to below 1k in most cases. In an hour so, all of the key switches had been reassembled and resoldered.
I did look at the contacts under the microscope but didn’t see anything significant. Perhaps the gold looked a little brighter, but that’s hard to tell on an $80 microscope with 1080p screen that is three inches across 🙂
We’ll see how long the fix lasts, but for now, I am declaring victory.
A pair of vintage TRS-80 computers recently arrived in my office, thanks to a good friend in the US who has been storing them for me and a generous checked baggage allowance on my recent business trip.
Getting one of them working involved learning more about vintage Alps key switches than I expected.
With replacement of the RIFA caps in the power supply, and removal of a jumper, the Model 4 is running natively on 240V. All keys switches are present and working, but there was case damage during transit. I’ll be repairing that later.
The Model 3 is in good physical condition, except for two missing key caps with matching broken key stems, but needed a memory transplant to get to the Cass? prompt. It also got replacement RIFA caps but it’s older power supplies means it will always need a step-down transformer to run on Australian voltages.
Then I discovered that half the keyboard wasn’t working…
After some thought, I decided to find the difference between working keys and not-working keys. This meant measuring the resistance of the keyswitches and comparing them.
Trying to measure the resistance with a multi-meter while balancing the keyboard on it’s edge was an exercise in frustration. And I wasn’t going to solder flying leads everywhere. If only there was a way to somehow connect all the keyswitches in parallel and measure them one at a time….of course!
The Model 3 keyboard connector has all of the keyswitch rows on the last 8 pins (2 rows of 4) and the columns on the next 8 pins (2 rows of 4) . By joining all of the rows together, and all of the columns together, every keyswitch is connected in parallel. Connect the two leads to a multi-meter – bingo! Press any key and get the resistance.
It was immediately apparent that reliably working keyswitches have a resistance of less than 2.5k. Anything up to 10k might work. Anything higher, nope. Non-working keyswitches were sometimes as high as 800k
So what was causing the difference in resistance? Time to pull some hardware and see.
I pulled a dozen high resistance keyswitches and disassembled them to see how they worked.
Each Alps keyswitch has a small conductive plate inside the grey rubber plunger that is pushed onto a pair of gold contacts deep inside the body of the switch. This makes the circuit, and the combination of the spring and rubber provide the key tension.
I industriously swabbed the conductive plate and the inside contactors of each key switch with isopropyl alcohol. A quick resistance test of the first few switches revealed they were now well under the 2.5k limit, so I went ahead and did the rest.
I was tempted to solder them straight back into the keyboard plate. I’d done a random sample and all was good right?
Wrong. About half of the keyswitches were still high resistance. An additional cleaning pass didn’t really do much to help.
So what was going on? Time to dig deeper.
Eventually, I decided to compare a low resistance and high resistance keyswitch under a microscope. The conductor plates showed no difference, but the gold contacts were a different matter.
This is a good switch. There is a lot of gold still on the contacts.
This is a bad switch. The right contact is obviously missing most of the gold.
Well, that explains the high resistance.
So, I’ll need to measure the resistance of every keyswitch as I clean, and/or do a microscopic examination. And when I’m finished, I’ll need to get new keyswitches to replace those that don’t work.
Or maybe I’ll take up Ian Mavric’s offer of a replacement keyboard.
The problem with PIPBUG has been found, and the problem was nothing to do with PIPBUG!
The first 18up5 board that I built has always worked without issues, but the second “pretty” board did not. It took an embarrassingly long time to notice that the second board was missing the interrupt jumpers JP2 and JP3, and that these were also missing from the instructions.
Once these were installed, everything workied again!
If you are having problems with the G command not working, then make sure you have these jumpers installed. These prevent the CPU from getting an immediate (and unhandled) interrupt whenever a user program is executed.