| delorie.com/archives/browse.cgi | search | 
| X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f | 
| From: | RayeR <glaux AT centrum DOT cz> | 
| Newsgroups: | comp.os.msdos.djgpp | 
| Subject: | Re: DMA and paging | 
| Date: | Tue, 25 Sep 2007 12:22:27 -0700 | 
| Organization: | http://groups.google.com | 
| Lines: | 19 | 
| Message-ID: | <1190748147.225689.238520@19g2000hsx.googlegroups.com> | 
| References: | <46F7F665 DOT 1773 DOT 20651AE9 AT gerritvn DOT gpvno DOT co DOT za> | 
| NNTP-Posting-Host: | 89.176.103.156 | 
| Mime-Version: | 1.0 | 
| X-Trace: | posting.google.com 1190748147 19940 127.0.0.1 (25 Sep 2007 19:22:27 GMT) | 
| X-Complaints-To: | groups-abuse AT google DOT com | 
| NNTP-Posting-Date: | Tue, 25 Sep 2007 19:22:27 +0000 (UTC) | 
| In-Reply-To: | <46F7F665.1773.20651AE9@gerritvn.gpvno.co.za> | 
| User-Agent: | G2/1.0 | 
| X-HTTP-UserAgent: | Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4,gzip(gfe),gzip(gfe) | 
| Complaints-To: | groups-abuse AT google DOT com | 
| Injection-Info: | 19g2000hsx.googlegroups.com; posting-host=89.176.103.156; | 
| posting-account=ps2QrAMAAAA6_jCuRt2JEIpn5Otqf_w0 | |
| To: | djgpp AT delorie DOT com | 
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp | 
| Reply-To: | djgpp AT delorie DOT com | 
| Errors-To: | nobody AT delorie DOT com | 
| X-Mailing-List: | djgpp AT delorie DOT com | 
| X-Unsubscribes-To: | listserv AT delorie DOT com | 
I don't know where is your DMA buffer lying, I can help you only with
my example how to handle with VESA LFB which may be similar
// Allocate a descriptor in LDT and set it up to span the entire VRAM.
    vesa_lfb_selector=__dpmi_allocate_ldt_descriptors(1); // allocate
1 descriptor (desribing our new segment) in LDT and return it's
selector
 
__dpmi_set_segment_base_address(vesa_lfb_selector,meminfo.address); //
set segment base accorning to LFB physical address
    __dpmi_set_segment_limit(vesa_lfb_selector,meminfo.size-1); // set
segment limit accorning to LFB size
then you will use movedata function to transfer physical memory to
your variables in DS or where you want.
Afrer all done don't forget to free descriptor
__dpmi_free_ldt_descriptor(vesa_lfb_selector);
| webmaster | delorie software privacy | 
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |