www.digitalmars.com         C & C++   DMDScript  

c++.dos.32-bits - DMA, Hardware Interrupts

reply "Imran Haider" <absolute1008 hotmail.com> writes:
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I know that there are four ways to access hardware buffers:
    DMA,    Interrupts,    Memory Maps,    I/O ports

I do know that to acces the IO ports, you could use import() or =
outport() functions; you could also access memory maps through =
_386_map_physical_address() function. You could also access SOFTWARE =
interrupts through int386() function.

QUESTION: How do you access DMA and Hardware Interrupts of the system?
Oct 07 2001
next sibling parent "Walter" <walter digitalmars.com> writes:
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Check out \dm\include\int.h
    Imran Haider wrote in message <9ppmpv$15lp$1 digitaldaemon.com>...
    I know that there are four ways to access hardware buffers:
        DMA,    Interrupts,    Memory Maps,    I/O ports
   =20
    I do know that to acces the IO ports, you could use import() or =
outport() functions; you could also access memory maps through =
_386_map_physical_address() function. You could also access SOFTWARE =
interrupts through int386() function.
    =20
    QUESTION: How do you access DMA and Hardware Interrupts of the =
system?
Oct 07 2001
prev sibling parent Roland <rv ronetech.com> writes:
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit


Imran Haider a écrit :

 I know that there are four ways to access hardware buffers:    DMA,
 Interrupts,    Memory Maps,    I/O ports I do know that to acces the
 IO ports, you could use import() or outport() functions; you could
 also access memory maps through _386_map_physical_address() function.
 You could also access SOFTWARE interrupts through int386()
 function.QUESTION: How do you access DMA and Hardware Interrupts of
 the system?

- concerning io: use inp, outp instructions. carefull: since SC 7.02, DM has a BUG: inpw read 4 bytes instead of 2, outpw write 4 bytes instead of 2. generally it does not makes problem. - Concerning interrupts: use interrupt package that comes with DM C++: it works very well and is fast. - Concerning DMA: works through io port with DMA controller 8237. I've never worker with DMA, can't help. May be i will have to work with it in the comming 12 month. - Concerning memory acces, read a previous message i sent: "Accessing VRAM directly" Ciao Rolland
Oct 24 2001