delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/11/27/15:04:41

From: "Charles Sandmann" <sandmann AT clio DOT rice DOT edu>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: XMS with HIMEM? (and DMA)
Date: Tue, 27 Nov 2001 13:41:38
Organization: Aspen Technology, Inc.
Lines: 21
Message-ID: <3c039812.sandmann@clio.rice.edu>
References: <3C03AFFB DOT 543A5BDB AT pq DOT fta-berlin_dot_de>
NNTP-Posting-Host: dcloan.hou.aspentech.com
X-Trace: selma.aspentech.com 1006890852 27870 10.32.115.107 (27 Nov 2001 19:54:12 GMT)
X-Complaints-To: postmaster AT aspentech DOT com
NNTP-Posting-Date: 27 Nov 2001 19:54:12 GMT
X-NewsEditor: ED-1.5.8
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

> I am using XMS for DMA allocated via 0x0900.
> In the FAQ it says that this should work even with plain HIMEM.SYS which
> is one of the reasons why I decided for XMS.
> In practice I find it only works with QUEMM or EMM386 loaded.
> Otherwise I get Error 0xA0 (All available extended memory is allocated)
> even though MEM shows plenty of XMS.

I'll assume you are using CWSDPMI here.  In this case CWSDPMI with 
himem.sys alone consumes the biggest XMS block (which in your case is
the entire thing) to create DPMI memory.

http://clio.rice.edu/djgpp/cwsdma2.zip has an example of how to do the
buffer allocation and physical address mapping.  This is just example
prototype code - but it has been modified successfully by other people
to create large DMA buffers (8Mb or so).  My eventual plans were to
add this as examples on a simtel mirror when it was finished.

If you would like to contribute any of your code it would certainly
help people doing this in the future.  Right now I haven't seen a good
working example that handles mutliple DPMI environments (QDPMI, CWSDPMI,
Windows).

- Raw text -


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