Intel 386 User Manual page 396

Embedded microprocessor
Table of Contents

Advertisement

None
Syntax:
regDMAIE = _GetEXRegByte(DMAIEN) | 0x2; //Enable tc interrupt for
_SetEXRegByte(DMAIEN, regDMAIE);
//Set interrupt routine
SetIRQVector(DMAInterrupt, 12, INTERRUPT_ISR);
Enable8259Interrupt(0, IR4);
NonSpecificEOI();
Real/Protected Mode:
No changes required
*****************************************************************************/
void interrupt far DMAInterrupt(void)
{
WORD regDMAIS;
regDMAIS = _GetEXRegByte(DMAIS); /*Get interrupt status register*/
if (regDMAIS & 0x10)
{
_SetEXRegByte(DMACLRTC, 0x00); /*Clear transfer complete signal*/
}
if (regDMAIS & 0x20)
{
_SetEXRegByte(DMACLRTC, 0x00); /*Clear transfer complete signal*/
}
if (regDMAIS & 0x1)
{
}
if (regDMAIS & 0x2)
{
}
NonSpecificEOI();
}
// channel 0
//Enable slave IR4, DMA interrupt
//Clear all interrupts
/*Transfer Complete, channel 0*/
/*Transfer Complete, channel 1*/
/*Chaining Interrupt, channel 0*/
/*Chaining Interrupt, channel 1*/
/*Send End-Of-Interrupt Signal to Master/Slave*/
DMA CONTROLLER
12-61

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

Intel386 exIntel386 extbIntel386 extc

Table of Contents