From: clc5q AT cobra DOT cs DOT Virginia DOT EDU (Clark L. Coleman) Newsgroups: comp.os.msdos.djgpp Subject: Re: No DPMI Memory (inconsistent) Date: 1 Jun 2001 11:05:03 GMT Organization: University of Virginia Lines: 41 Message-ID: <9f7ssv$jlc$1@murdoch.acc.Virginia.EDU> References: <9f30m9$qho$1 AT murdoch DOT acc DOT Virginia DOT EDU> <3b16bbea DOT sandmann AT clio DOT rice DOT edu> NNTP-Posting-Host: cobra.cs.virginia.edu X-Trace: murdoch.acc.Virginia.EDU 991393503 20140 128.143.137.16 (1 Jun 2001 11:05:03 GMT) X-Complaints-To: abuse AT virginia DOT edu NNTP-Posting-Date: 1 Jun 2001 11:05:03 GMT To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com In article <3b16bbea DOT sandmann AT clio DOT rice DOT edu>, Charles Sandmann wrote: >> I have a bootable system floppy with DR-DOS 7.03 files on it. I put my >> executable file and CWSDPR0.EXE (which my executable is stubedited to >> use) on the floppy. I booted a Pentium-MMX 166 MHz with 48 MB RAM at >> home using this floppy and ran the program without trouble. Then, I >> took the program to the office and got on an old 133 MHz Pentium (no >> MMX) with 32 MB RAM. The floppy booted, but when I ran my program, I >> got the error message: >> >> Load error: no DPMI memory >> >> The CWSDPR0.EXE file is still on the floppy, in the root directory >> where my program also resides. I am invoking the program from that >> directory by typing its name, as at home. The same thing happens if I >> boot up Windows 95 and run it from a DOS box. Any ideas? > >Let's suppose your executable requires 33 Mb of memory to run. When the >stub tries to allocate that much memory on the 48Mb system, it works. When >it tries on the 32Mb system, it fails in the initial block allocation in >the stub and prints that error message. Since W95 DOS boxes also may >limit the DPMI memory, you can get the same failure message. > >How much memory does the image require? Does go32-v2 run ok on those systems? >You could pre-load cwsdpr0 before running go32-v2 to see how much memory >you have ... Duh. Why didn't I think of this before? I suspected that the memory size difference between the machines was the key, but never stopped to think about my memory usage. My program has a single data array that is 32MB in size. For testing purposes, I can chop this down to 16MB on the floppy diskette/DOS version of the executable. (I have -DDOSFLOPPY in the compilation already to control certain things, and I can use that to change the #define ARRAY_ROWS constant in order to chop the array.) Thanks to all who helped. Clark Coleman