"Vlad Romascanu (LMC)" wrote:
> it seems that in p-mode, if cpl > iopl, popf instructions are not trapped.
No, if cpl > iopl, they *are* trapped, and otherwise they are executed.

> under window$ nt this freezes the dos session (virtual interrupts are never
> reenabled because popf is not trapped).
This can be only if IOPL=3 (because CPL==3 in VM86 always), which is
impossible in a multitasking OS like WindowsNT or Linux.
If this problem really exist under WinNT, then it is nothing more than a bug
in it's VM monitor. I don't know about NT, but older Linux kernels really have
this bug.

> my question is: how does dosemu work around this limitation?
There is no limitation. Actually, linux kernel deals with this instructions, not
dosemu itself, see vm86.c from kernel sources.
The problem is that there was a bug in the kernel which sometimes prevented
dosemu from reacting to such instructions and syncing its internal flags with
virtual IF, but I have fixed this somewhere around 2.4.7, so, if you have
this problem - upgrade your kernel and popf will be trapped properly.
Anyway, I am curious about how you have triggered this problem with doom,
since this game always works perfectly under dosemu.
And I am even more curious if there is the same bug also in NT. If it is, then
someone in Microsoft simply steals code from Linux kernel:)
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to