Page 1 of 1

Keyboard: missing scancode

Posted: Sat Apr 09, 2011 10:14 am
by summersong
PS/2 keyboard driver in long mode. Keyboard is in XT mode.

+ press
- unpress

In Bochs 2.4.6:
+LShift (2A)
-LShift (AA)
+RShift (36)
-RShift (B6)
+LShift (2A)
+RShift (36)
-LShift (no interrupt)
-RShift (B6)
+LShift (no interrupt)
-LShift (AA)

In QEmu 0.14.0:
+LShift (2A)
-LShift (AA)
+RShift (36)
-RShift (B6)
+LShift (2A)
+RShift (no interrupt)
-LShift (no interrupt)
-RShift (B6)
+LShift (2A)
-LShift (AA)

Why?

Re: Keyboard: missing scancode

Posted: Sun Apr 10, 2011 3:11 am
by Candy
What Host OS are you using? This looks like the same bug being displayed in two different forms.

Bochs recognises that it's missed a break code for the left shift (because the OS didn't send it due to the right one still being pressed), so it doesn't send the next make either. Qemu (probably) reports what the OS reports, which is skipping the overlapping shifts. Qemu's behaviour is worse imo; it doesn't give you breaks for every make.