Message-ID: <36287AC1.743A9501@mcis.de> Date: Sat, 17 Oct 1998 12:08:49 +0100 From: Gero Timann Organization: MediaCompany Goe X-Mailer: Mozilla 4.05 [de]C-NECCK (Win95; I) MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp To: djgpp AT delorie DOT com Subject: Re: UDMA <-> getting physical address of an array ? References: Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Reply-To: djgpp AT delorie DOT com Hi Toni ! Thanks for your reply. I try to write real-time-software for pentiums and above (clock greater 200MHz needed for active sound control) and therefore have no interrest in old machines (the software wouldn't run there anymore, not enough performance). Here i've only to distinguish between some cpu-support-chips, like VXpro, Intels HX,TX,BX, Intels 82378 compatible... . All these Chips allow DMA for the low 16MB, without 64k-boundaries. Take a look at INTELs peripherical guide. There is a standard, i think, upper page-regs at 0x487..... Therefore no interest in compatiblity to old 82C37s ! When needed, i can use the fcts from allegro-source (do you know the author ?). Another point is, that there is no time to use dosmemget. Takes about 100mikroseconds only for the skelett. This is already the time i can use between two samples ! No more operations possible ! Last night i've experimented with the farpoke-family (i've learned this from a DJGPP vbe-programing-example-program). These seams the real answer to my question. Measures with the time-stamp-counter shows, that they use only about 100 nano seconds for reading one value. Much, better. But if i know the real physical adress from an array, let a[], i can fill this direct by DMA. Looks much simpler. Is this cs:? Sorry about my silly questions. But, i'm a DJGPP- and DPMI-newbe. Therefore all these things looks not as simple for me as for you. Let me know better ways, please. Regards, Gero Toni Rasanen schrieb: > On Fri, 16 Oct 1998, Gero Timann wrote: > > > Modern DMA-Controllers allows now to write/read to/from 16MB (insteed of > > the old 1MB with only 64k-addressing). Great, no dosmemget and > > Whether the new DMAchips can cross boundary limits or not, it's > a simply stupid to presume that everyone has a new chip when you > create a program. So don't presume, check. And still make your > routines to support old DMA's, unless you really wish your program > to have some 90% less users... > > > from an array, where i want to store the data, under DJGPP ? > > As I am writing this at the unversity, I can't access my own > notes, but if I happen to remember corrent, you ought to use > __dpmi_allocate_dos_memory -function (or something like that). > Check the help files for more detail (rhide preferably :), it's > really rather simple. > > /// Toni Räsänen > /// torasane AT mail DOT student DOT oulu DOT fi -- ___________________________________________________________________ Dipl.Phys.Gero Timann Schülerstieg 20 37081 Göttingen Germany Tel./Fax: Germany-0551-96782 EMail: geti AT mcis DOT deREMOVE_THIS geti AT spock DOT physik3 DOT gwdg DOT deREMOVE_THIS geti AT online DOT deREMOVE_THIS ____________________________________________________________________