X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: "Rod Pemberton" Newsgroups: comp.os.msdos.djgpp Subject: Re: 32-bit version has problems: memory leak, etc. was, gcc as a linker.... Date: Tue, 15 Jan 2008 08:51:37 -0500 Organization: Aioe.org NNTP Server Lines: 29 Message-ID: References: <478b3603$0$36444$4fafbaef AT reader5 DOT news DOT tin DOT it> NNTP-Posting-Host: IVw7K97ih4IohxRqyKkqFw.user.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse AT aioe DOT org X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 X-Newsreader: Microsoft Outlook Express 6.00.2800.1437 X-Priority: 3 X-MSMail-Priority: Normal To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "Rod Pemberton" wrote in message news:fmfik2$fvr$1 AT aioe DOT org... > The proper method is much longer in > assembly. I was hoping to find a shorter method. This would be useful to > me, so I may get back to you on the 32-bit version. I've worked on a 32-bit version. If you understood the 16-bit version, you wouldn't understand this... I wrote it in assembly the way I would've for DJGPP C and DPMI. It worked with Windows 98SE's DPMI host but didn't work for DOS, i.e., a coding error. I tracked one problem to the use of temporary memory DJGPP can use, called a transfer buffer, which I was using. I couldn't tell at first whether the problem was due to the use of the transfer buffer or from directly calling int 0x31,ah=300h (DPMI). DJGPP wraps the int 0x31,ah=300h function in code which works differently depending on whether the DPMI host is busy. The DOS version for the CWSDPMI DPMI host would work twice and fail the third time... This was due to the transfer buffer being modified, used, or corrupted by DOS. I'll rewrite it to allocate memory from DOS properly and see if that works. However, another issue remains. Another DOS DPMI host, PMODEDJ, fails with "No memory to gather arguments" after a few runs. This is an error internal to DJGPP (c1xmalloc() in c1args.c) indicating some sort of memory leak. Since I haven't allocated anything and both Windows 98SE's and CWSDPMI DPMI hosts work, it's probably not an error on my part... i.e., PMODEDJ's, or less likely DJGPP's. Rod Pemberton