From: "Peter Remmers" Newsgroups: comp.os.msdos.djgpp Subject: Re: Using Vitual DMA Services...help ! Date: Mon, 1 Feb 1999 19:54:14 +0100 Organization: TFH-Berlin (Berlin, Germany) Lines: 37 Message-ID: <794tbi$a0d$1@idy05.tfh-berlin.de> References: <01be4dfb$0d10fde0$f2cfea81 AT secom144 DOT dur DOT ac DOT uk> NNTP-Posting-Host: ip099167.tfh-berlin.de X-Newsreader: Microsoft Outlook Express 4.72.3110.1 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com James Deuchar schrieb in Nachricht <01be4dfb$0d10fde0$f2cfea81 AT secom144 DOT dur DOT ac DOT uk>... >Help.....! I'm still trying to get my DMA to work so I need to get the >actual phy mem address. The VDS method is preferable to copying data into a >buffer below the 1M mark and dmaing that because speed is a factor. What's >wrong with my code (or right with it)........I always get some sort of >error code back...often in reserved registers...please help! I had the same problem. I couldn't get VDS to return the physical address of a malloc'd buffer (not coninuous or so), allocating one with VDS didn't work either, I needed a buffer of about 2MB which was too big for VDS. Then the problem was that it worked under plain DOS but not in a W95 DOS box. Then someone told me I should use XMS, which solved my problems. Allocate your buffer with XMS use the XMS lock handle function to get the physical address. Then you can either build a selector for that physical address or use the XMS moving functions to access that buffer. > //check for VDS at bit 5 of mem 0x0040:007b ---- HOW CAN I CHECK THIS >BIT???? That would be something like _farpeekb(__dos_ds, 0x4007) & 0x20 good luck! Peter Remmers