Friday, June 26, 2026

Full keyboard using 23 keys

The 74C923 key encoder chip is a remarkable IC.
First of all, it supports key debouncing so there's no need to filter out the noise in software.
And it triggers an interrupt (I use the /NMI) once a key is pressed.
Actually, it provides a high-active data available output (DA) which is fed to the /NMI by an inverter.
Unfortunately it can only detect 20 key. That’s enough for a hexadecimal keyboard 0 - F and four special keys: ENTER, BACK, ESC and SHIFT.
The solution is to add three ALT keys: red ALT 1, green ALT 2 and blue ALT 3.
So that I can map all the alphanumeric characters and 28 punctuation symbols to the 16 hexadecimal keys.
Additionally you can check the NMI service routine and the char encoding (key codes) on GitHub.