Intel 386 User Manual

Page 395

Advertising
background image

Intel386™ EX EMBEDDED MICROPROCESSOR USER’S MANUAL

12-60

_SetEXRegByte(DMABSR, 0x51); /*DMABSR[7]=0: reserved*/

/*DMABSR[6]=1: sets req.’s bus size to 8-bit*/

/*DMABSR[5]=0: reserved*/

/*DMABSR[4]=1: sets tar.’s bus size to 8-bit*/

/*DMABSR[3:2]=0: reserved*/

/*DMABSR[0]=1: selections for bits 7-2*/

/* affect channel 1*/

_SetEXRegByte(DMACHR, 0x1); /*DMACHR[7:3]=0: reserved*/

/*DMACHR[2]=0: disable chaining buffer-xfer*/

/* mode*/

/*DMACHR[1]=0: reserved*/

/*DMACHR[0]=1: selections for bits 7-2 affect*/

/* channel 1*/

regDMAIE = _GetEXRegByte(DMAIEN) & 0x1;

_SetEXRegByte(DMAIEN, regDMAIE); /*DMAIE[7:2]=untouched: reserved*/

/*DMAIE[1]=0: masks channel 1’s transfer*/

/* complete signal from interrupt*/

/* controller*/

/*DMAIE[0]=untouched: channel 0 setting*/

regDMAOvfE = _GetEXRegByte(DMAOVFE) | 0xC;

_SetEXRegByte(DMAOVFE, regDMAOvfE); /*DMAOVFE[7:4]=untouched: reserved*/

/*DMAOVFE[3]=1: all bits of channel 1

/* req. address are inc/dec*/

/* (see DMAMOD[4])*/

/*DMAOVFE[2]=1: all bits of channel 1*/

/* target addr. are inc/dec*/

/*DMAOVFE[1:0]=untouched: channel 0*/

/* settings*/

SetDMAReqIOAddr(DMA_Channel1, TBR0); /*Sets Req. I/O address to Serial*/

/*Receiver*/

}

/*****************************************************************************

DMAInterrupt:

Description:

This function is called by the DMA unit when it either completes a

transfer or (in chaining xfer mode) when a new requester, target, and

byte count should be written to the device.

Parameters:

None

Returns:

None

Assumptions:

Advertising