I have been looking for info about ASCII keyboards and I tried to understand how they works.
At the keyboard connector you can find lines PA0 to PA6 (7 bits to encode ASCII code). When you push a key, an encoder circuit put ASCII code in paralel way through these lines, working at high level. I imagine PA6 is the bit at the left side of ascii byte.
That's what I understood... Is it right? I have a ZX Spectrum +2 matrix black keyboard, and it seems very nice and "retro" to use with replica, and I imagine it would be easy to program a PLD to encode characters from the matrix.
I suppose ASCII signal is 5V, so why keyboard connector has another -12 volts input?
-12V was there because some of the encoders used were -12V. It was common to see -12V in larger IC's back then. If I remember, the 8080 CPU had a -12V input. You don't need -12V for an ASCII keyboard. The way ASCII keyboards work is the 7 or 8 bits is sent to the data lines and then followed with a pulse on the strobe line for about 30ms but this value can varry as well as the polarity of the pulse. On the apple 1 or the replica 1 the 6520/6821 watches for a pulse on the strobe line, when it detects a 5V pulse, it reads the 7 bits of data and it has it's keyboard data. Hope this helps.
thank you! now I understand how it works.
I though about programming a PLD with an output signal that always acts when a key is pressed, to that 'strobe' line, and delay it maybe with not-gates in line. hummm what if I keep strobe line 'on' for more time that 30 ms? hope it is not important.
thanks again that's perfect! not let's buy a replica