I currently have project trying to recover a 1980s homebuild CP/M computer.

Mostly everything is working, except the keyboard.

I have trouble identifying how it's working as there is neither an internal nor external clock applied.

Of the keyboard's many lines only +5v, GND, a3 (STROBE) and a22-25,c22-25 (Data) are connected to the terminal.

The individual keys simply pull down two lines each. (X0-11 + Y0-7)

here is the main circuit: main curcuit

and here the keys Keys_part1 keys_part2

As I read it the !OE of the 2716 must be low for the EEPROM to decode the input into a char code, but that line only traces to an unconnected pin (or inputs of other ICs)

Where does the clock come from?

Dito for the strobe line.

The circuit seems rather dead, wherever I put my probe at, even while typing.

Anyone able to help me debug this?

  • \$\begingroup\$ Your comment about the /OE seems at odds with the schematic you provide which shows it being driving by three-input AND gate. Loss of data in the EPROM is not out of the question. \$\endgroup\$ – Chris Stratton Sep 4 '19 at 15:00
  • \$\begingroup\$ @ChrisStratton well, yes, I omitted the obvious, :) but I traced all three inputs and they seemed not to go anywhere. \$\endgroup\$ – TobiM Sep 4 '19 at 15:05
  • \$\begingroup\$ The 3 input and gate might be a 74xx11 - look around and see if you find one. \$\endgroup\$ – Peter Smith Sep 4 '19 at 15:10
  • \$\begingroup\$ @PeterSmith: Its IC 108, that's a SN74LS10N according to the IC list on the right. \$\endgroup\$ – TobiM Sep 4 '19 at 15:16
  • \$\begingroup\$ You didn't trace very well, several of the paths feeding the AND gate go back to the /Q and/or Q outputs of the 74LS123 multivibrators. \$\endgroup\$ – Chris Stratton Sep 4 '19 at 15:17

The circuit doesn't need a clock, at least not for the key matrix.

ICs 115, 117 and 118 are priority encoders, probably 74LS148. They are strictly combinatorial circuits that generate a binary code that represents which input line is being pulled down.

The 'LS273 (124) latches the outputs of the encoders, and the comparators ('LS85, 119 and 120) above and below it are checking to see whether the current input of the latch is different from its output. This "key change" detection probably triggers the debounce logic across the bottom of the diagram, which I have not tried to analyze in detail.

The EPROM is only being used to translate from the 7-bit matrix position produced by the encoders into (probably) ASCII, based also on things like shift, ctrl, and capslock.

| improve this answer | |
  • \$\begingroup\$ yes, correct, 74LS148N - the IC list is on the right. So I should be able to see the signal on those ICs at least, right? \$\endgroup\$ – TobiM Sep 4 '19 at 15:08
  • \$\begingroup\$ Yes, pushing a key should pull down a pair of wires, one to the upper pair of encoders and one to the lower encoder. You should then see the outputs of the encoders change accordingly. If that much isn't happening, then there's something fundamental wrong with the key matrix itself. \$\endgroup\$ – Dave Tweed Sep 4 '19 at 15:13
  • \$\begingroup\$ I'm going to have to disagree. This is actually a synchronous computer, composed of the EPROM, register to its left, and not one but two ALU chips drawn above and below. I strongly suspect the key matrix is actively scanned, though it's not clear how that connects to the rest of the circuit. Presumably one or more of the 74LS123's generate the clock signals. \$\endgroup\$ – Chris Stratton Sep 4 '19 at 15:33
  • \$\begingroup\$ @ChrisStratton: ALU chips? 'LS240 and 'LS241 are simple octal buffers. Or are you referring to the comparators (119 and 120, 'LS85) that are above and below the register (124, 'LS273) that latches the outputs of the encoders? \$\endgroup\$ – Dave Tweed Sep 4 '19 at 15:36
  • \$\begingroup\$ 74LS85N's - note how they are connected around the register comparing the current state to the inputs. Granted, that is a primitive ALU but it is performing the key function of sequential computation. \$\endgroup\$ – Chris Stratton Sep 4 '19 at 15:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.