"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
