'QEMU full-system emulation does not emulate certain keyboard commands?

I'm taking an advanced operating systems course. We're using full hardware emulation from qemu to develop our own basic operating system. What we're programming this week is the keyboard. Interacting with the keyboard controller over ports 0x60 and 0x64 in the appropriate way to decode scancodes works. Using our previously written CGA driver we can now type things and have them displayed on screen in qemu. One thing that doesn't work in qemu, but does work on hardware provided by the professor specifically for the course, is setting the speed and delay parameters of the keyboard. These determine how long you need to push a key until make-codes are sent repeatedly and with what frequency make-codes are sent once you pushed the key long enough. This changes how fast a character is printed repeatedly on screen when holding. We are all wondering what exactly is happening in qemu that prevents this from working in qemu. The easy answer: qemu doesn't emulate the set_speed (0xf3) command. The more interesting question: From where in the source code could one tell this is not going to work? Are there other commands not emulated by qemu? Why is set_speed not emulated by qemu?

Many thanks in advance



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source