Hello Eric,

Given that CWSDPMI uses a different API, that DPMI16BI with RTM are
16 bit, that DPMIONE provides mainly bare DPMI, that there are other
extenders I do not know about, I would indeed be curious what the
landscape of DOS extenders is now and has been in the 1990s :-)

Actually it is best to consider DOS extenders and DPMI servers as
separate things.  The expectation is that a DOS extender will sit "on
top" of a DPMI server (well, OK, it can also sit on top of some other
thing; see http://www.delorie.com/djgpp/doc/dpmi/ch4.html).

DOS/16M, DOS/4G, DOS/32A, and PMODE/W are DOS extenders, while CWSDPMI
and DPMIONE are DPMI servers.  This means that we can expect, for
example, PMODE/W to run on top of CWSDPMI.

My guess is that each DOS extender will document the "extended" DOS or
BIOS functions it supports, and how exactly to call them from protected
mode.  E.g. I see that DOS/32A's documentation talks about supporting
(some) int 0x21 functions, some int 0x10 functions, and some int 0x33
functions, while PMODE/W apparently does not do int 0x10.

(Incidentally, any DPMI server, with or without a DOS extender, will at
least provide bare minimum interrupt reflection facilities ("The
contents of the general registers and flags are passed to the real mode
[interrupt] handler [...] Segment registers and the stack pointer are
not passed between modes").  This means an application running under
DPMI can simply call, say, int 0x21, ah = 0x02, and it will just work.)

Thank you!

--
https://gitlab.com/tkchia :: https://github.com/tkchia


_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to