On Wed, Mar 10, 2010 at 01:24:27PM +0800, Roy Tam wrote:
2010/3/10 Kevin O'Connor kevin@koconnor.net:
I don't see an "Illegal Instruction" message. Instead, I see the keyboard just not working. What qemu version and what command line did you use?
latest git today. when you type fast.
Bleh. That image defines an int15 wrapper which corrupts %edi. SeaBIOS calls int154f from the keyboard irq, and it is not prepared to handle a corrupted edi. In contrast, Bochs BIOS doesn't care if the registers change.
What the fdos0138.img image is doing is broken - once it reads the key from the ps2 port, nothing stops a new key from being read the next time something reads from the port. Indeed, although the keyboard works in qemu-0.11 for fdos0138.img, if one types fast they'll see duplicate and lost keys.
But it is how programs(Chinese/Japanese/Korean Display Systems, GW-BASIC, etc.) in the past get input from keyboard.
Can you point me to documentation on this usage?
"Consider" legacy as "broken" is wrong IMHO.
It's broken because it causes key presses to be lost and corrupted. The ps2 port hardware just doesn't work the way that software is trying to use it.
-Kevin