Intel 386 Manual do Utilizador Página 396

  • Descarregar
  • Adicionar aos meus manuais
  • Imprimir
  • Página
    / 691
  • Índice
  • MARCADORES
  • Avaliado. / 5. Com base em avaliações de clientes
Vista de página 395
12-61
DMA CONTROLLER
None
Syntax:
regDMAIE = _GetEXRegByte(DMAIEN) | 0x2; //Enable tc interrupt for
// channel 0
_SetEXRegByte(DMAIEN, regDMAIE);
//Set interrupt routine
SetIRQVector(DMAInterrupt, 12, INTERRUPT_ISR);
Enable8259Interrupt(0, IR4); //Enable slave IR4, DMA interrupt
NonSpecificEOI(); //Clear all interrupts
Real/Protected Mode:
No changes required
*****************************************************************************/
void interrupt far DMAInterrupt(void)
{
WORD regDMAIS;
regDMAIS = _GetEXRegByte(DMAIS); /*Get interrupt status register*/
if (regDMAIS & 0x10)
{ /*Transfer Complete, channel 0*/
_SetEXRegByte(DMACLRTC, 0x00); /*Clear transfer complete signal*/
}
if (regDMAIS & 0x20)
{ /*Transfer Complete, channel 1*/
_SetEXRegByte(DMACLRTC, 0x00); /*Clear transfer complete signal*/
}
if (regDMAIS & 0x1)
{ /*Chaining Interrupt, channel 0*/
}
if (regDMAIS & 0x2)
{ /*Chaining Interrupt, channel 1*/
}
NonSpecificEOI(); /*Send End-Of-Interrupt Signal to Master/Slave*/
}
Vista de página 395
1 2 ... 391 392 393 394 395 396 397 398 399 400 401 ... 690 691

Comentários a estes Manuais

Sem comentários