I disabled the initialize_kbd code in keyboard.c. It was making my
keyboard go *NUTS*. I was getting all kinds of odd keyboard
interrupts when this happened. So, I tried disabling this code and I
can now hit return to continue (kinda) the boot process (it dies when
trying to read the floppy for reasons unknown).
Once I disabled that code, the keyboard started interrupting normally
again. I added debugs to print the raw keycodes as they were coming
out of they interrupt driver...
When I press Return, I get a scancode of 5a back from the keyboard.
When it is released, I get a f0 followed by a 5a from the keyboard,
but it looks like the driver is expecting ca only and isn't quite sure
what to do with the f0 5a. Call me crazy, but this doesn't sound
quite right for keyscans. A quick peek at my BSD keymap (which is
slightly hacked, but not seriously) shows that 5a (which is 90
decimal) should be rctrl. The <- key is 0x66 (98) which should be
fkey55 per the map. Odd. Very odd. Why do I get this oddness, I
wonder? The same keyboard works great on my FreeBSD box.
The keyboard has a A X switch on it, which is in the A position.
Anyway, sounds like I have some hacking to do to the keyboard driver.
Looks like it is almost, but not quite, what is expected. I can come
up with tables and new code, but I really want to understand this off
the wall behavior.