From: "Campbell, Rolf [SKY:1U32:EXCH]" Newsgroups: comp.os.msdos.djgpp Subject: Re: Accessing memory above an adress of 1MB (read this and check my reasoning) Date: Mon, 09 Aug 1999 12:41:24 -0400 Organization: Nortel Networks Lines: 25 Message-ID: <37AF04B3.489EAB39@americasm01.nt.com> References: <37aeb1ba DOT 11535499 AT NotesXNT> <37AEBCD0 DOT 52AE AT surfsouth DOT com> <37AEBB80 DOT 602B AT mitre DOT org> NNTP-Posting-Host: bmerhc00.ca.nortel.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.7 [en] (X11; I; HP-UX B.10.20 9000/712) 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 Neil Goldberg wrote: > > > Therefore I wrote a function that returns the (absolute) adress that > > > has to be accessed. Usually it is around 0xFFFFF000 . > > > I used __djgpp_map_physical_memory (mappedBAR, NoBytes, BaseAdr) for > > > mapping the device to a created memory block named 'mappedBAR'; the > > > number of bytes to map (NoBytes) is a multiple of a mem-page found > > > with __dpmi_get_page_size(&NoBytes) (4096 bytes) and the base adress > > > (BaseAdr) is equal the absolute address of the BAR. > > Wow... FFFFF000 is pretty near the 4 gig limit. Unless you have > > 4 gig of ram, I think the PCI controller is lying to you. > Note that __djgpp_map_physical_memory requires a DPMI 1.0 server, and > only of the two commonly used ones (windows, cwsdpmi) is 1.0, while the > other is .9. I can't remember which is which, but to check, try running > the program in the OTHER environment to see if that works. Neither one is fully DPMI 1.0 complient. CWSDPMI is partially 1.0, but I don't think even that has implimented the __djgpp_map_physical_memory function. [I may be wrong, this is just from memory]. -- -Rolf Campbell (39)3-6318