keyboard problem in details (Announce)
> I never had any keyboard trouble ;)
What do you want to tell us with this fact?
There IS a problem with Qemu's keyboard emulation, and the reason isn't unknown. As you surely know, the keyboard controller device regards a read of port 60h as "interrupt acknowledged", allowing it to continue to send data. However, "real" keyboard controllers will wait "some time" until they indeed continue to send. This behavior makes it safe for DOS TSR programs, which have hooked interrupt vector 9, to read port 60h and then call the old interrupt handler (which will repeat the port 60h read access and get the very same data).
Qemu's keyboard emulation, however, lacks this small delay. This causes troubles only if
1. more than 1 program hooked IRQ 1 and reads port 60h AND
2. the keyboard controller has more than 1 byte to send
The second condition is true for "enhanced" keys, which consists of 2 bytes (E0 xx or E1 xx).
The fix is to use a timer to emulate the delay. DosBox shows how it is to be done. However, since this is virtually a problem for DOS guests only, I doubt that we'll see a fix unless it is done by ...
---
MS-DOS forever!
Complete thread:
- Qemu 0.9.1 is out ... - Japheth, 08.01.2008, 08:53 (Announce)
- Qemu 0.9.1 is out ... :-( - DOS386, 09.01.2008, 01:12
- Qemu 0.9.1 is out ... :-( - sol, 09.01.2008, 01:30
- Qemu 0.9.1 is out ... :-( - DOS386, 09.01.2008, 01:51
- Qemu 0.9.1 is out ... :-( - sol, 09.01.2008, 02:55
- keyboard problem in details - Japheth, 09.01.2008, 09:38
- keyboard problem in details - jaybur, 09.01.2008, 13:13
- keyboard problem in details - Japheth, 09.01.2008, 20:29
- keyboard problem in details - sol, 09.01.2008, 17:15
- keyboard problem in details - jaybur, 09.01.2008, 13:13
- Qemu 0.9.1 is out ... :-( - DOS386, 09.01.2008, 01:51
- Qemu 0.9.1 is out ... :-( - sol, 09.01.2008, 01:30
- Qemu 0.9.1 (Win32 binary download) - Rugxulo, 15.01.2008, 23:29
- Qemu 0.9.1 is out ... - rr, 20.01.2008, 22:50
- Qemu 0.9.1 is out ... - Japheth, 21.01.2008, 02:29
- Qemu 0.9.1 is out ... :-( - DOS386, 09.01.2008, 01:12