I don't code but like learning about capacitive switches. Anything interesting in the code?
Depends on your definition of 'interesting'. It reads the keys in groups of 8, storing their up/down status in a byte. Then it compares that byte to what it was last time the row was scanned, and if there are differences it gets on to sending scancodes. (It rereads the key group twice, presumably for purposes of debouncing, but I'm not exactly sure what it's up to there). Its buffer appears to be able to hold three scancodes at most, so if you pressed four keys in the same group simultaneously [eg: ZSAW] I think it might miss one.
Another thing, which may or may not be interesting, is that the key matrix has 128 positions, and the keyboard has 127 keys. The extra key position is (roughly) where Right-Windows ought to be -- you can see a sort of vestigial connection on the PCB there. Part of the self-test is to read that key, and if it registers as 'down' report an error.
Anyone studying the code would probably find it helpful to read it in conjunction with the
KBDBabel schematic of the 84-key AT keyboard, which appears to have an identical controller. It does make me wonder what would happen if you did a controller swap.
One thing I forgot to mention when talking of patching the controller ROM: You have to make sure the 8-bit checksum is 0, because the self-test checks that. I think the byte at 0100h is used for this purpose.