delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2004/03/22/12:33:57

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Message-ID: <0e6401c41033$bf95f970$0600000a@broadpark.no>
From: "Gisle Vanem" <giva AT bgnett DOT no>
To: "djgpp" <djgpp AT delorie DOT com>
Subject: DOS memory allocation
Date: Mon, 22 Mar 2004 18:33:11 +0100
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1158
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Reply-To: djgpp AT delorie DOT com

Does DOS function 58h have any effect on DPMI function 100h
on how it allocates memory? AFAICS it always does low-memory 
with first fit.

When shelling out of a djgpp program that allocates DOS-mem, I
sometime see that there is a big hole where the block was freed.
From mapmem under Windows-XP:

0741  5  24,624 4DOS       -wdebug             D9 DA E4
0752  1  34,720 DOSX                           1B D9 DA E4 FE
28A7  2  20,288 LYNX       -wdebug
      1  57,600  --free--    << block that was freed in Lynx
2DB9  2   4,352 4dos         << resident portion of 4DOS

But mostly there's no hole in the memory range.
Lynx calls _go32_dpmi_allocate_dos_memory with the same size
every time and _go32_dpmi_free_dos_memory before shelling out 
with system().

Anybody know why NTVDM does this? And if DOS fn 58h can fix this?

--gv


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019