From: "Michael Wahl, Picoquant" Newsgroups: comp.os.msdos.djgpp Subject: Re: XMS with HIMEM? (and DMA) Date: Fri, 30 Nov 2001 10:28:29 +0100 Organization: PicoQuant Lines: 32 Message-ID: <3C07513D.F386703@pq.fta-berlin_dot_de> References: <3C03AFFB DOT 543A5BDB AT pq DOT fta-berlin_dot_de> <3c039812 DOT sandmann AT clio DOT rice DOT edu> NNTP-Posting-Host: quantum.pq.fta-berlin.de Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: rhodos.FTA-Berlin.de 1007116237 29460 141.16.70.115 (30 Nov 2001 10:30:37 GMT) X-Complaints-To: usenet AT rhodos DOT fta-berlin DOT de NNTP-Posting-Date: 30 Nov 2001 10:30:37 GMT X-Mailer: Mozilla 4.77 [en] (Win98; U) X-Accept-Language: en To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Charles Sandmann wrote: > > > 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. Charles, Meanwhile I took a look at this example and tried it out. It really is what currently serves the most configurations. (plain cwsdpmi, himem with or without quemm/emm386) Excellent work. No surprise, cws having some insight to cwsdpmi :-) It pokes deeply into the inner works thouh. Might be dangerous to be left to 'users' to modify and compile themselves etc. Couldn't it become part of a (runtime) library or so, to be encapsulated and standardized? From the sources I saw that there is a case 'CWSDPMI PD in UMB not supported'. Under what circumstances will that strike? And finally: Where do you see problems when you say 'prototype'? Michael