Date: Tue, 6 May 1997 10:06:20 +0300 (IDT) From: Eli Zaretskii To: "Chirayu Krishnappa (chirayu AT poboxes DOT com)" cc: djgpp AT delorie DOT com Subject: Re: Extenders and switching modes In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Precedence: bulk On Tue, 6 May 1997, Chirayu Krishnappa (chirayu AT poboxes DOT com) wrote: > The book "Dos 5: A devolopers guide" gives source code for an extender > which does not switch CPU mode (between real and protected). If that extender indeed doesn't switch (which I doubt: it might use some undocumented instructions that make the switch behind the scenes), then you will miss some of the features that you have now. > Could DJGPP use something like this? It would be great if it could. No, DPMI doesn't permit that AFAIK. And I fail to see what great advantages would it let us have if it did. > Also, is the mode > switching part done by the DPMI provider only? If so, will running the > program under win95 eliminate the mode switches? If not, is win95 > "allowing" these mode switches? I'm confused. Help! When you run a DOS program under any memory manager, be it EMM386 or Windows DOS box, your program runs in V86 mode, not in real mode. V86 is a kind of protected mode (since some instructions cause an exception) which behaves as if it were real mode (addresses are 20-bit, you can load anything into a segment register, etc.). Switching from V86 to PM and back is still a mode switch, and it happens on Windows also. The difference between Windows and other DOS memory managers (such as EMM386 or QEMM386) is that the only way Windows will allow you to switch into protected mode is if you use the DPMI functions, whereas DOS memory managers support other methods (VCPI, Int 15h and a few others).