Japheth wrote:
>> 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".
sorry for jumping in. I did not look at the Qemu/Bochs BIOS Int 15h 
code. But if an interrupt handler is called via an int instruction the 
IF flag is cleared on entry. So the handler can expect that the 
interrupts are disabled.

Regards, Bernd Mueller.

-------------------------------------------------------------------------
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