Mail Archives: djgpp/1997/02/05/14:15:05
Hi All:
> 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?
I'll prepare a little program for that.
> > 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.
Do you know if Windows uses all the 4 rings?, the only way that I imagine to
get this difference is if the DJGPP program runs in a different ring than the
real mode one. Do you know another case?
> 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).
I tried it some time ago without much success.
SET
--------------- 0 --------------------------------
Salvador Eduardo Tropea (SET).
Address: Curapaligue 2124, Caseros, 3 de Febrero
Buenos Aires, (1678), ARGENTINA
TE: +(541) 759 0013
- Raw text -