Mail Archives: djgpp/1998/03/25/07:28:09
Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> wrote:
> On Mon, 23 Mar 1998, Shawn Hargreaves wrote:
>
> > To initiate a bus master copy, I need to program the graphics
> > controller with the physical memory address of the source data,
> > but as far as I can see there is no way for me obtain this
> > information!
>
> Either use conventional memory (which is mapped 1:1 by every DPMI
> server I've heard of),
I doubt that's true under Windows because you can have tons of VMs with DOS. I
think Windows virtualize the DMA system and remaps the memory when you ask for
DMA in a DOS box.
> or use the VDS (Virtual DMA Services) API,
> available under most memory managers. The latter option will not work
> when the programs run without any memory manager or with HIMEM alone.
And I don't know if this service was designed for what Shawn wants, I think it
uses base memory. Shawn needs to make PCI DMA transfers, they can be done in
any place of the memory (not only base memory) and they can be huge (over
640Kb) so the base memory won't help.
> Probably your best bet would be to use VDS where it's available and
> conventional memory where it isn't, since in the latter case you can
> safely assume it's plain DOS.
>
> The Interrupt List documents the VDS API which are a bunch of
> functions of interrupt 4Bh/AH=81h.
>
> > I need some way to allocate a block of contiguous
> > physical memory locations, but unless I've missed something,
> > there are no DPMI functions to do this (using conventional
> > memory will break under Windows).
>
> Why do you think conventional memory won't work on Windows?
I think because he got to similar conclutions.
If I remmember well Windows have functions to do what Shawn is asking, but
they are available thru the Windows API. The solution is not easy and perhaps
the only way is to have different routines depending on the DPMI host
(Windows/CWSDPMI/other?) And that's a real pain in the as.
SET
------------------------------------ 0 --------------------------------
Visit my home page: http://set-soft.home.ml.org/
or
http://www.geocities.com/SiliconValley/Vista/6552/
Salvador Eduardo Tropea (SET). (Electronics Engineer)
Alternative e-mail: set-soft AT usa DOT net set AT computer DOT org
CQ: 2951574
Address: Curapaligue 2124, Caseros, 3 de Febrero
Buenos Aires, (1678), ARGENTINA
TE: +(541) 759 0013
- Raw text -