Basically, I have a small ARM processor that is accessing a PS/2 keyboard. I'm about 99% sure my driver for it is fully working and bug free. Now, I've experienced a very weird issue.
I copied my scancode-ASCII translation table from one of my old PC OS projects. This project assumed a scancode set of 1.
Modern keyboards appear to startup in scancode set 2 however. So, I did what I thought was reasonable and set my initialization code to set the scancode set to 1. It appears though that scancode set 1 only sorta works and is really buggy on every keyboard I've found so far. Basically, I'll mash keys and every so often my driver will actually receive a (correct) scancode. Typomatic repeat works flawlessly however.
Has anyone experienced this problem with PS/2 keyboards? I know that the PC keyboard controller by default does translation from scancode set 2 to 1, though the wikipedia page for scancodes appears to indicate that all keyboards should support sets 1 and 2.
Basically, before I go through the hassle of changing my translation table, has anyone else experienced this problem or have any ideas what could cause this?
My initialization code is very simple:
Code: Select all
char txdat[6] = "\xFF\xF5\xF0\x01\xF4";