Mail Archives: djgpp/1998/10/18/07:43:28
On Sat, 17 Oct 1998, Gero Timann wrote:
> 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.
Unless the buffers you need to move are very small, your conclusions
are wrong: dosmemget/put is *faster* than _farptr functions, because
it uses REP MOVSD after some initial setup.
Section 18.4 of the DJGPP FAQ list includes a detailed description of
the different methods to move data to and from conventional memory,
and discusses the relative merits of each method; I suggest you read
it.
> 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:<a>?
No. If anything, it should be DS, not CS. But the only way to get
the physical address is via the VDS API, or by using a buffer in
conventional memory where all addresses are mapped 1:1, and so
physical and virtual addresses are the same.
> 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.
A better way is to search the FAQ. It has DMA in the index.
- Raw text -