So I'm working on a 1976 Keytronic capacitive discharge keyboard, actually the first ones they made. This is for an Apple-1 that will be shown in a museum in Europe. They want a period correct keyboard that works.
So I bought a keyboard from a collector and it was dead, wasn't cheap because 1976 keyboards are getting scarce. No schematics, no encoder chip, all done with transistors, opamps and TTL chips. So it took me a while to figure out how to get this keyboard fully working since some of the keys detected a press and some didn't and it was't making much sense. I replaced all the foam/Mylar pads before I started. After some hours with a logic analyzer, scope and a desoldering gun I found a couple of bad chips and a bad transistor. Sucks everything was soldered in.
Then came the fun part now that the keyboard worked. Using the logic analyzer I figured out the Pinout for the edge connector and wired up an Apple-1 cable.
Turned it on and the machine cleared screen perfect but did not reset right. The scope didn't show anything weird as far as I could tell with the power or with the reset line. Even tried powering the keyboard with my bench supply and nothing.
Made a throwaway cable of just power, clear screen, ground and reset, yet still the problem persisted. Started probing the 6502 with a scope. Nothing cried out.
Well then I remembered Mike Wilegal's ps2 adapter. He put a diode on clear screen. So I grabbed the schematics for the Apple-1 and disconnected the clear screen from the keyboard and manually did it with a jumper wire. Yep. So I put in a diode and all is great now.
So what was going on? Typically a keyboard switch used for clear screen is only connected when pushed. Since this was capacitive discharge keyboard there is no real switch just output from TTL chips. So it was pulling the line low all the time and interfering with getting a clean system reset.
Just goes to show you, failure to reset the system correctly may not be something so obvious like a bad chip or CPU.
[edited because I made one technical error in the end description (reset vs clear screen switch) and fixed some typos]