delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/06/11/03:34:26

Date: Sun, 11 Jun 2000 09:20:12 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
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: <Pine.SUN.3.91.1000611091555.22597M-100000@is>
MIME-Version: 1.0
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

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.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019