Date: Sat, 10 Jun 2000 15:17:03 +0530 (IST) Message-Id: <200006100947.PAA15509@bgl2.vsnl.net.in> From: Prashant TR To: eliz AT is DOT elta DOT co DOT il CC: djgpp AT delorie DOT com In-reply-to: <200006100652.JAA14812@mailgw1.netvision.net.il> (eliz AT is DOT elta DOT co DOT il) Subject: Re: far pointers References: <39405DEE DOT 89226F7B AT ccs DOT iitb DOT ernet DOT in> <39415453 DOT 5E434718 AT is DOT elta DOT co DOT il> <394173D0 DOT 3EF74969 AT the_message_body DOT com> <200006100652 DOT JAA14812 AT mailgw1 DOT netvision DOT net DOT il> 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 > > > :) V86 mode was invented to provide compatibility with old 8086 stuff while > > > CPU is in PMode. DOS itself works normally in V86. > > > > That's right. Usually, even plain DOS runs in V86 mode because the > > EMM386 driver switches to V86 when it gets installed. > > V86 was invented because it allowed to use more than 640KB of memory, > by remapping some of the extended memory into the unused addresses > between 640K and 1MB. I don't understand what V86 has to do with remapping of memory. That's an entirely different task. It's related to the MMU and V86 has nothing to do with the MMU. Reasons for inventing V86 or at least using V86 are: 1> More protection and quicker. 2> Switching to real & PM would disable VM (actually disable the MMU) and protection which is not a very nice thing. 3> You could have many real mode programs running on different copies of the OS (like multiple DOS boxes). to mention a few... > Such remapping is impossible in real mode, > because the MMU is (effectively) inactive. So they needed to have > protected mode, but with the normal real-mode addressing still > working. > > However, this has nothing to do with PM programs and DOS coexisting > together. PM programs still cannot run in V86 mode without the kind > of trickery that DJGPP does when it calls DOS. What trickery is this? I thought the DPMI just needs to use the VCPI interface or use the existing DPMI (in case of an already existing DPMI). I accept that this is hard work, though.