From: "A.Appleyard" To: DJGPP AT SUN DOT SOE DOT CLARKSON DOT EDU Date: Fri, 24 Mar 1995 08:37:51 GMT Subject: conventional memory HANDLING CONVENTIONAL MEMORY (THE FIRST 640K) int _go32_dpmi_allocate_dos_memory(_go32_dpmi_seginfo *INFO); Allocates part of the conventional memory area. int _go32_dpmi_resize_dos_memory(_go32_dpmi_seginfo *INFO); Change the size of the allocated conventional memory. int _go32_dpmi_free_dos_memory(_go32_dpmi_seginfo *INFO); Frees memory allocated by `_go32_dpmi_allocate_real_mode_memory'. INFO->size == how many paragraphs requested (= (size in bytes + 15)/16). INFO->rm_segment := the segment of the allocated memory. Re these dpmi functions:- (1) "If there isn't enough memory in the system, INFO->size := the largest available size, and an error is returned.": What is the most conventional memory store that I am likely to be allowed? What is the most that I can ask for without seriously impeding djgpp's and dpmi's working? (2) If I use _go32_dpmi_resize_dos_memory to change my conventional memory allocation from x bytes to y bytes, can I trust the bottom min(x,y) bytes of my conventional memory allocation to keep the same values? (3) What happens if I call _go32_dpmi_allocate_dos_memory twice without calling _go32_dpmi_free_dos_memory between? Do I get two separate allocations?