Mail Archives: djgpp/1997/02/05/08:36:08
On Tue, 4 Feb 1997, Salvador Eduardo Tropea (SET) wrote:
> What I make?:
> I touch the DMA registers to make a DMA transfer to the SB 16 from my DJGPP
> program.
>
> What happend?:
> Windows says that I violated the OS integrity.
Can you post a code fragment that triggers this?
> So now the question is: Why in the hell I can do it from real mode and I
> can't from PMode.
I guess DJGPP programs interact with Windows through an extra layer of
the Windows built-in DOS extender and DPMI host, which real-mode 16-bit
programs avoid. The extender and the DPMI host might have their own
ideas about what they do and don't allow.
Did you try to use the VDS (Virtual DMA Services) to achieve what you
need? AFAIK, that is the proper way well-behaved extended DOS programs
should use DMA services. It doesn't work on vanilla DOS (no memory
manager + CWSDPMI as DPMI host), but you can easily detect you run on
Windows and use it only then (if it works).
- Raw text -