Intel 386 Manual do Utilizador Página 390

  • Descarregar
  • Adicionar aos meus manuais
  • Imprimir
  • Página
    / 691
  • Índice
  • MARCADORES
  • Avaliado. / 5. Com base em avaliações de clientes
Vista de página 389
12-55
DMA CONTROLLER
Description:
Sets the target memory address for the DMA channel specified
by nChannel.
Parameters:
nChannel --channel for which to set target address
ptMemory --pointer to target memory location
Returns:
None
Assumptions:
Processor is in real mode.
Syntax:
static char lpsz[]=”Hello World”;
SetDMATargMemAddr(DMA_Channel1, lpsz);
Real/Protected Mode:
The address calculation from ptMemory assumes the processor is in real
mode.
*****************************************************************************/
int SetDMATargMemAddr(int nChannel, void *ptMemory)
{
WORD addrDMATar0_1;
WORD addrDMATar2;
WORD addrDMATar3;
WORD wSegment;
WORD wOffset;
DWORD lAddress;
/*Check input*/
if ( (nChannel != DMA_Channel0) && (nChannel != DMA_Channel1) )
return ERR_BADINPUT;
/*Set registers to correct channel*/
addrDMATar0_1 = ( nChannel == DMA_Channel0 ? DMA0TAR0_1 : DMA1TAR0_1);
addrDMATar2 = ( nChannel == DMA_Channel0 ? DMA0TAR2 : DMA1TAR2);
addrDMATar3 = ( nChannel == DMA_Channel0 ? DMA0TAR3 : DMA1TAR3);
/*If in tiny, small, or medium model,*/
#if defined(M_I86TM) || defined(M_I86SM) || defined(M_I86MM)
_asm
{ /*...then grab our segment from DS*/
mov ax, ds
mov wSegment, ds
}
wOffset = (WORD) ptMemory; /*...and our offset from the pointer*/
Vista de página 389
1 2 ... 385 386 387 388 389 390 391 392 393 394 395 ... 690 691

Comentários a estes Manuais

Sem comentários