Node:More than 64MB,
Previous:Config,
Up:Requirements
Q: How do I set my system so that DJGPP programs could use all of my
256MB of installed physical RAM?
Q: I have 128MB of memory installed, but go32-v2
only reports
32MB, how can I get more?
Q: You say that CWSDPMI supports up to 512MB of total virtual
memory, but I cannot get more than 128MB!
A: You can have as much as 256MB of physical memory in DJGPP programs, provided that you have at least that much installed, and that you observe the following guidelines:
HIMEM
: most of
the others will limit the amount of accessible memory to 64MB
(EMM386
usually limits it to 32MB unless you turn off the VCPI
support using the NOVCPI NOEMS
parameters on the EMM386
command line). Using HIMEM
from MS-DOS 7 does allow access to
more than 64MB. Note that you must install HIMEM
, since
without it, BIOS is the only way to find out how much memory is
installed, and the standard system BIOS only supports up to 64MB of
memory.
QEMM
(version 8.0 or later), you must include
the USERAM=
parameter (e.g., USERAM=128M
for 128MB) on
its command line in your CONFIG.SYS
and specify the exact amount
of memory installed on your machine, otherwise QEMM
won't support
more than 64MB.
Another possibility is to run your program from the Windows 9X DOS box,
after changing the EMM386
line in your CONFIG.SYS
like
this:
DEVICE=C:\WINDOWS\EMM386.EXE NOEMS L=131072
I'm told that this line (here for 128MB of installed memory) together with an "Auto" setting of the DPMI memory for the DOS box allows DJGPP programs to use up to 117MB of memory when running from the DOS box under Windows 9X.
If you need to use more than 256MB of physical memory, upgrade to CWSDPMI r5 or later. Another possibility is to run under OS/2 which features a built-in DPMI 1.0 support which can be configured to support as much as 512MB of DPMI memory (the user who reported this didn't know how much of this can be physical RAM).