Czerno
September 17th, 2005, 15:12
Hi Reversers...
from inside a (full screened) DOS virtual machine under Win 9x, I want my program to be able to lock the display, i.e. prevent user, or Windows itself, from switching to the desktop or another VM. I don't want to prevent normal interrupt processing of course, nor even other tasks from getting CPU time but I can't release the screen. The reason is my program manipulates the super VGA in an undocumented manner & Windows, although it traps the IO ports in V86 mode, is incapable of restituting my screen if allowed to preempt it :=(
There really should be an API for this, but MS of course can't seem to admit of a program having a good reason to interfere with their notion of good "user experience"... The 1st place to look was in PIFs, and there is no such setting
My 1st idea was to use int 2F/ 1681 (which under the hood increments the infamous INDOS flag, see R.Brown's list), this does prevent switching but is no use in my situation, because it also prevents further int 21's being issued.
Any idea how to achieve this either by an API or hacking ? Can the VMM or another system VxD help ?
On a more general note, I've been seeking docs about the inner workings of Winoldap/Winoa386 in vain...
Has anybody ever hacked a better "DOS box" than Micros*ft's own ?
Curious about what you have to say
--
Czerno
from inside a (full screened) DOS virtual machine under Win 9x, I want my program to be able to lock the display, i.e. prevent user, or Windows itself, from switching to the desktop or another VM. I don't want to prevent normal interrupt processing of course, nor even other tasks from getting CPU time but I can't release the screen. The reason is my program manipulates the super VGA in an undocumented manner & Windows, although it traps the IO ports in V86 mode, is incapable of restituting my screen if allowed to preempt it :=(
There really should be an API for this, but MS of course can't seem to admit of a program having a good reason to interfere with their notion of good "user experience"... The 1st place to look was in PIFs, and there is no such setting

My 1st idea was to use int 2F/ 1681 (which under the hood increments the infamous INDOS flag, see R.Brown's list), this does prevent switching but is no use in my situation, because it also prevents further int 21's being issued.
Any idea how to achieve this either by an API or hacking ? Can the VMM or another system VxD help ?
On a more general note, I've been seeking docs about the inner workings of Winoldap/Winoa386 in vain...
Has anybody ever hacked a better "DOS box" than Micros*ft's own ?
Curious about what you have to say
--
Czerno