Keyboard: missing scancode

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
User avatar
summersong
Member
Member
Posts: 32
Joined: Sat Mar 26, 2011 5:26 am
Location: Moscow

Keyboard: missing scancode

Post 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?
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re: Keyboard: missing scancode

Post 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.
Post Reply