Fixing a keyboard problem on a Kaypro II
There are three things I like all my vintage computers to have. All parts working, original manuals and a library of programs that were popular with that particular machine.
I was in the middle of building up a library of the latter for my Kaypro II when the RFI capacitors in the power supply blew. Having fixed those I thought I could continue on and finish the job of restoring the Kaypro's bundled software library. Err...no. The machine had other ideas. Another problem developed and this one was far trickier!
The issue manifested itself after I'd run a RAM diagnostic test. The machine had been ticking away just fine during this process. It ended showing no errors. Excellent! Then I rebooted...
Huh? The machine booted as normal to the A> prompt but the keyboard had stopped working?? Typing on it produced the usual beep, but no character on the screen? Yet, the screen looked ready for input. It wasn't frozen. It sat there with the cursor blinking... just waiting.
(i) Keyboard cord?
Hmm. Ok, time to check the obvious. Was there full continuity between the main board and the keyboard's board? Answer, yes. I checked not only the cord, but a point from the first IC it was connected in both those parts of the computer. Conclusion. The problem was with the main board, or the keyboard's circuitry.
(ii) Studying the mainboard schematic
Through the wonders of the Net I had a schematic of the mainboard.
Fig 1. Part of Kaypro II mainboard schematic showing keyboard I/O
Studying this showed the signal came to the Z80's SIO pin 28 through a couple of hex inverters in a 74S04 chip. A signal also exited the SIO on pin 26 back to the keyboard through another pair of inverters on the same 74S04. The schematic had the word "beep" written next to this output on the keyboard pin assignment diagram.
(iii) Measuring the I/O signals
I checked the input signal through the inverters all the way to the SIO. On holding a key down there was a definite drop in voltage from 5v to about 2.5v. This indicated a signal was getting through. The inverters on the 74S04 checked out ok, with each gate doing what it should.
On the other hand the output from the SIO through the inverters remained a steady 5V. There was no fluctuation at all, even when a key was held down. This seemed suspicious to me.
(iv) Getting help
By this time I had posted the problem on the Vintage Computer Forums and some of the hardware gurus there had weighed into help. The process became a team effort. The feeling was that input was taking place ok, but it was not being processed as it should. Swapping out the 74S04 was suggested and this was tried. No change.
(v) What's with the beep?
One confusing factor was the word "beep" written next to the keyboard output on the mainboard schematic. How could the keyboard beep, when no signal was being returned? No one really knew but eventually we figured that the keyboard must have it's own beep circuitry causing this to happen.
(vi) The SIO?
Having cleared the hex inverters as being ok, and the general consensus being that the keyboard beep was a red herring, focus went to the Z80 SIO. These big chips don't fall over often but it's not unheard of. Nothing seemed that unusual on the other SIO pins, although without knowing the exact mode of operation it was hard to tell. The feeling was an IC replacement would be a good next step.
Figure 2. Main board showing Z80 SIO IC and keyboard hex inverters
I didn't have a spare SIO, but Philip Avery did. Philip lives about an hour away and had helped me with this machine in the past. He was now a member of the diagnostic team (-:
The new Z80 SIO from Philip was substituted. No change. Hmmm...back to the drawing board.
Things were starting to get complicated now. There was some discussion of trying to measure possible pulses on the CE pin and data lines using two scope probes, just to see if any signal was being processed. In desperation I took a break from the scope and reseated all ICs but the problem was still there.
(vii) Ah ha! The baud generator circuitry!
Then ..a breakthrough. Through deduction, two of my diagnostic buddies almost simultaneously pointed me towards the smoking gun. Philip Avery (via a phone call) and Dave_m (through a post) both wondered if the symptom was caused by a missing or incorrect baud rate clock signal to the SIO. The 8116 IC at U78 was a baud generator which fed that signal to the SIO. As the keyboard communicated with the computer using simple TTL serial signals at 300 baud, the absence of a baud clock signal would explain why input was happening, but no output.
Figure 3. Part of the Kaypro II mainboard schematic showing the 8116 baud generator and its relation to the SIO
I measure the RxTxCB pin (27) on the SIO. Absolutely nothing. Zero volts. There SHOULD have been a square wave there. Now we're getting somewhere!
(viii) Tracking down the faulty component
The baud signal on the RxTxCB pin of the SIO should have been generated by an 8116 IC in association with a 5.068 crystal. The 8116 should have been activated by a kind of "wake up" pulse from the CPU through the 74SL14 IC on boot. So, either this pulse wasn't arriving, the 8116 IC simply wasn't working or the crystal was faulty.
I checked the two upstream ICs between the CPU and the 8116. These seemed ok. With a (newly purchased) logic probe I then checked for a pulse coming through to pin 12 of the 8116 on boot. Yes, a pulse was duly arriving. Consequently, the problem had to lie with the crystal or the 8116. One of these two prevented the baud signal being generated. But which one?
Figure 4. Full Kaypro II main board showing location of baud crystal and baud generator IC (8116)
One way to check was to replace the crystal. Even if it was the incorrect frequency, the thinking was that it should at least produce a signal, albeit the incorrect one. I soldered in a replacement. Nothing. No signal either on the crystal pins, or on pin 17 of the 8116 which lead to the SIO.
Although this result was not absolutely conclusive (some crystals just might be too incompatible) it was a strong indicator that the 8116 was the culprit. I bit the bullet and ordered a replacement from Arcadecomponents.com, a shop run by another forum member (Channelmaniac) specialising in vintage ICs.
A few days after I'd ordered the IC, Philip Avery scored himself a Kaypro off our local auction site, Trade Me. Although Philip's machine was not without issues of its own there was a good chance his 8116 IC worked. He came over one weekend and we replaced my chip with his.
Success! The kaypro was back to full functionality. Now I just had to wait for my replacement to arrive in the mail and I knew I'd have my machine back to normal!
It duly arrived, I fitted it, it worked and now my Kaypro II has been restored to a fully working state.
Figure 5. My Kaypro II with a now-working keyboard!
This was a real team effort. My thanks to Philip Avery, and VCF members dave_m, MikeS, cosam, lynchaj, Dwight Elvey and Gadfran for their valuable assistance. A good deductive effort from first principles. I learnt more about what an SIO does, how a keyboard such as the Kaypro II's works, what baud generators are, more about what crystals do and I finally got myself a logic probe!
25th February, 2010