Mail Archives: djgpp/2001/06/01/07:51:24
In article <3b16bbea DOT sandmann AT clio DOT rice DOT edu>,
Charles Sandmann <sandmann AT clio DOT rice DOT edu> 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
- Raw text -