From: Ralf Q. <fre...@gm...> - 2024-08-21 20:52:28
|
On 8/21/2024 1:32 PM, Eric Auer via Freedos-devel wrote: > > Hi Ralf and Steve, > > Our EMM386 has been supporting VCPI for quite a while ;-) better would be "some" VCPI suuport... > > In ancient times, free EMM386 versions without VCPI existed. > Those were not even compatible with DOS extenders or DPMI > hosts (CWSDPMI, DPMIONE etc.) which was quite a limitation. That's why VCPI came into play... > GEMMIS is a different story. It tells Windows that internal > state of EMM386 is structured exactly as Windows expects, so > it can import the state and replace the entire EMM386 in RAM > by something built into Windows itself, on the fly, which it > has to do in 386enh mode. WfW is no fun without 386enh mode, > Win3 was acceptable, Win9x is not even possible without it. > > The easiest and most obvious solution to that problem is to > use the EMM386 for DOS which comes with Windows itself :-) > > But only Windows cares about GEMMIS, no other apps do. That is NOT correct. GEMMIS was the interface to allow two (any two) memory managers to work together, nicely. We had the GEMMIS specs back in those days due to the CAD software that we developed having its own memory manager and running in protected mode (first 80286, then 386), well before "memory managers" and "DOS Extenders" became a thing. And our problem was that clients always ran into problems when they already had a (standard for their version of DOS) memory manager installed. That's why for some time, we worked rather closely with Compaq (one of our reseller in Switzerland at that time was also one of the largest Compaq retailers in Europe) as well as Quarterdeck and Qualitas. GEMMIS was the specs that defined how two memory managers could work along side each other, Windows was the initial case for Microsoft to come up with that specification, in order to have Windows in enhanced mode play along nicely. But there were other applications as well, not only our CAD system. And the issue is not only for Windows, for example, to take over the memory management FROM EMM386 (or CEMM, QEMM, 386Max, ...) but when exiting, giving that memory management task and CPU state) BACK to DOS... Ralf |