delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2012/05/06/17:15:18

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
From: Georg <dosusb AT googlemail DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: System()
Date: Sun, 6 May 2012 13:54:54 -0700 (PDT)
Organization: http://groups.google.com
Lines: 43
Message-ID: <fea067ab-ee56-4b9e-bb73-ed3365fb9d59@ee2g2000vbb.googlegroups.com>
References: <92c86f75-e970-4998-94c6-56d6fbf885fe AT e15g2000vba DOT googlegroups DOT com>
<1c38ca22-52f5-470e-813f-1af6ed5f21d4 AT m16g2000yqc DOT googlegroups DOT com>
NNTP-Posting-Host: 2.174.182.95
Mime-Version: 1.0
X-Trace: posting.google.com 1336337694 28925 127.0.0.1 (6 May 2012 20:54:54 GMT)
X-Complaints-To: groups-abuse AT google DOT com
NNTP-Posting-Date: Sun, 6 May 2012 20:54:54 +0000 (UTC)
Complaints-To: groups-abuse AT google DOT com
Injection-Info: ee2g2000vbb.googlegroups.com; posting-host=2.174.182.95; posting-account=v5xbdQoAAAAOGc9Ccc-kLZyobvPlN3Qr
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.4)
Gecko/20091016 Firefox/3.5.4,gzip(gfe)
Bytes: 2589
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

When I open a DOS window in Windows XP, mem.exe tells me that 590 kb
are available for a program.

Now I made the following program:

#include <stdio.h>
main(int argc,char **argv)
{
system("mem.exe /d >memn.tmp");
}

1. Windows XP:
When I run this on Windows XP it tells me that 572 kb are available
for a program.
There are two command.com programs loaded with 2976 bytes each, plus
the above program which I called testsys.exe which consumes 16.540
bytes and has 1936 bytes data.

2. Real mode DOS 7.0:
When I run this program in real mode with DOS 7.0 it tells me that 366
kb are available for a program.
There is one command.com with 6k and one command.com with 88k. 43k for
CWSDPMI. The above program still is 16k but has 162k(!) data this
time.

So a rough calculation: 572k minus 43k for CWSDPMI and minus 162k for
testsys.exe's data gives 367k remaining. That is what DOS tells to be
available for a program.

Question:
Maybe one can load high CWSDPMI. But why are there 162k for
testsys.exe's data while it is just 1936 bytes in Windows XP?

I use gcc 4.5.3.

Thank you for the links Rugxulo. I looked at ytree: it uses system()
to execute a program. Since ytree is mainly developed for Linux this
does not result in any memory problems.

As far as I could find, DOSZIP uses int21/ah=4Bh to execute a program.
I guess this the assembler equivalent for system().

Georg

- Raw text -


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