> environment.  Even better would be a good explanation for why the problem 
> only manifests itself with that specific environment and application.

I've looked into the Qemu BIOS code for int 15h, ah=C2. Usually the code found 
in "real" BIOSes is programmed very "defensively", that is, if a piece of code 
is executed inside an interrupt handler which shouldn't be interrupted, the IF 
is explicitely cleared, no assumptions are made about the current state of IF. 
And, after done with the critical code, the IF usually is set again as soon as 
possible. This is not true for the Qemu/Bochs BIOS, at least not for Int 15h, 
ah=C2. It expects IF to be cleared, doesn't change it and starts to poll the 
PS/2 device. Now if IF is set on entry to Int 15h for whatever reason, and IRQ 
12 is not masked, it may then poll "forever".







-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to