Date: Sun, 11 Jun 2000 09:20:12 +0300 (IDT) From: Eli Zaretskii X-Sender: eliz AT is To: djgpp AT delorie DOT com Subject: Re: far pointers In-Reply-To: <39424E17.234D50BE@the_messasge_body.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Sat, 10 Jun 2000, Alexei A. Frounze wrote: > > AFAIK, this is not true. If you boot DOS without himem.sys or other > > memory manager, then run a DJGPP program using cwsdpmi, you can do > > disk I/O and everything else without ever entering V86 mode. You just > > go backa and forth between protected and real modes. > > You're wrong. > 1. HIMEM.SYS has nothing about V86. It just allows to access extended ram > (above 1MB mark). Exactly. And since DJGPP can run on top of HIMEM (or even without HIMEM at all), that's a proof that V86 is NOT required to run PM programs on top of DOS. > 2. CWSDPMI as a DOS extender (DPMI host or whatever you like to call it) > passes all the called DOS functions from PMode program to V86 task in order > to be handled by BIOS, IO.SYS, MSDOS.SYS, etc. None of good DOS extenders > switches back to real mode in order to service BIOS or DOS function. This is simply not true; please look at the sources of CWSDPMI if you don't believe me. The facts are that CWSDPMI *does* work without V86, and it *does* switch the CPU to plain real mode if V86 is not available. Also, the DOS/BIOS calls are *not* passed to V86 monitor, even if it is loaded. V86 is only used for the mode switch, but not for servicing the DOS/BIOS call; these are simply reissued after the mode switch, and serviced by DOS/BIOS itself.