Jo22 wrote on 2023-05-19, 05:05:Hi there, I assume the issue is because these Protected Mode extenders (DOS4GW etc) do use an API (or ABI) to communicate with […]
Show full quote
Hi there, I assume the issue is because these Protected Mode extenders (DOS4GW etc) do use an API (or ABI) to communicate with v86 memory managers.
Since both use Protected Mode/V86, they need to do that. Himem.sys, ny contrast, is a 286 friendly memory manager and doesn't use V86 as such.
And perhaps that's were problem is rooted.
EMM386 and QEMM were very popular, so DOS4GW and other DOS Extender had specific support built-in and/or were tested with both of them.
386Max wasn't bad, but perhaps the revisions of the Extenders used had no complete support for it yet.
Yes, There is DPMI and/or VCPI.
The memory manager (emm386, 386max, qemm etc etc) include DPMI, VCPI or both.
VCPI was first but did not get traction because Microsoft released the DPMI specs and it's what caught on because it's what Windows use.
When you start a game that need a dos extender, the dos extender will first look for a DPMI host (the memory manager) and if found, will send request to it for the memory management stuff and protected mode switch.
If there is no DPMI/VCPI host on the system (let say you just boot with himem), then the DOS expander will launch it's very own DPMI host and use that one for the memory management.
At the end, the memory manager do most the work but if there is no memory manager, the extender do all the work. Because you can't have two competing memory manager doing there things in the same time.