Hi, replying to myself based on comments by Navis, with
some interesting points about using 2 GB to 4 GB of RAM
with DPMI based DOS extenders... :-)

> Hi! If I have to guess, the latter (a DPMI call, I think)
> deliberately returns at most 2 GB to avoid sign overflows
> with software which uses 32 bit signed computation of how
> much memory it has :-) Maybe DOS32A has an option to let

Of course YOUR software can be safe, but DOS32A is the same
for all users, so it probably just tries to avoid any risks.

http://www.delorie.com/djgpp/doc/dpmi/api/310500.html
tells me that "-1" (or 4 GB - 1 byte) is an placeholder
in size info: Some software might simply treat any value
which is negative as a placeholder, so DOS32A might not
want to show any values larger than 2 GB...

> you disable that limiting if you dare. Or try HDPMI32 or
> CWSDPMI in various version or other DPMI drivers? And, if

Instead of DOS32A, you can also use other "DPMI" software,
typically by loading it before starting your own program,
or by connecting it instead of DOS32A to your program. It
could be some tool with "stub" in the name which does it.

http://homer.rice.edu/~sandmann/cwsdpmi/index.html

http://web.archive.org/web/20140904175113/http://www.japheth.de/HX.html

(HX DOS extender: can run simple Windows software in DOS,
and comes with a tool called HDPMI which provides DPMI...)

http://www.sudleyplace.com/dpmione/



See also:

https://en.wikipedia.org/wiki/DOS32A

http://dos32a.narechk.net/manual/html/tech/8.htm

This says that DOS/32 can allocate *at most 2 GB of RAM*
by using XMS 3.0 compatible drivers to allocate memory,
but only 256 MB from VCPI (EMM386) so then it will try
to get the remaining memory from XMS 3.0 :-)

http://dos32a.narechk.net/content/technical.html

This says that via int 15h allocation, the limit still
is 2 GB, so at least with DOS32A, you only get 2 GB.



http://osdir.com/ml/emulators.freedos.general/2005-04/msg00086.html

Says that the CWSDPMI at the time also had a 2 GB limit,
but that DPMIONE can use more than 3 GB: However, this
only worked if no EMM386 was used at the same time :-)

You will still have to take care to not run out of any
other resources before you have 3 GB used, e.g. handles.



> I may be curious, what program are you writing which will
> enjoy having more than 2 GB of RAM in DOS?

You wrote: "Special very long chain data only", but what is it?

> PS: You probably have 4 GB, of which some is not useable
> because for example your graphics card reserves areas?

It can still be reserved as I/O space for disk controllers,
network, for ACPI or BIOS functions, and so on. You could
ask http://www.delorie.com/djgpp/doc/rbinter/id/50/17.html
(int 15.e820) to get a list of which area is for what :-)

Regards, Eric



------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to