Intel 80C188EC User Manual page 324

Hide thumbs Also See for 80C188EC:
Table of Contents

Advertisement

XOR
AX, AX
MOV
DX, D2DSTH
OUT
DX, AX
; THE POINTER ADDRESSES HAVE BEEN SET UP. NOW WE SET UP THE TRANSFER COUNT.
MOV
AX, 25
MOV
DX, D2TC
OUT
DX, AX
; SELECT THE SERIAL PORTS AS THE SOURCE OF INTERNAL DMA REQUESTS
; AND SELECT MODULE B AS THE HIGHEST PRIORITY MODULE.
MOV
DX, DMAPRI
MOV
AX, 0404H
OUT
DX, AX
; NOW WE NEED TO SET THE PARAMETERS FOR THE CHANNEL AS FOLLOWS:
;
;
DESTINATION
;
-----------
;
I/O SPACE
;
CONSTANT PTR
;
; TERMINATE ON TC, INTERRUPT, SOURCE-SYNCHRONIZED, LOW PRIORITY RELATIVE
; TO CHANNEL 1, BYTE XFERS. INTERNAL DRQ. ARM CHANNEL.
MOV
AX, 0001011101010110B
MOV
DX, D0CON
OUT
DX, AX
; THE TRANSMIT CHANNEL IS NOW ARMED. IT WILL NOT BEGIN TRANSFERS UNTIL
; IT IS "PRIMED" BY SENDING THE FIRST BYTE MANUALLY.
; NOW SET UP CHANNEL 4 TO HANDLE RECEIVE REQUESTS FROM SERIAL CHANNEL 1.
MOV
AX, SEG RECV_BUFF
ROL
AX, 4
MOV
BX, AX
AND
AX, 0FFF0H
ADD
AX, OFFSET RECV_BUFF
; NOW LOW BYTES OF POINTER ARE IN AX.
ADC
BX, 0
AND
BX, 000FH
MOV
DX, D3DSTL
OUT
DX, AX
MOV
DX, D3DSTH
MOV
AX, BX
OUT
DX, AX
; DESTINATION POINTER DONE. SOURCE IS IN PCB.
MOV
DX, D3SRCL
MOV
AX, S1RBUF
OUT
DX, AX
Example 10-2. DMA-Driven Serial Transfers (Continued)
; HIGH ADDRESS=0
; THE MESSAGE IS 25 BYTES LONG.
; XFER COUNT REG
; IDRQB=1, DMAPB=1
SOURCE
------
MEMORY SPACE
INCREMENT PTR
; GET HIGH 4 BITS
; SAVE ROTATED VALUE
; GET SHIFTED LOW 4 NIBBLES
; ADD IN THE CARRY
; TO THE HIGH NIBBLE
; GET JUST THE HIGH NIBBLE
; AX=LOW 4 BYTES
; GET HIGH NIBBLE
; RECEIVE BUFFER FOR
; CHANNEL 1 IS DEST
DIRECT MEMORY ACCESS UNIT
10-35

Advertisement

Table of Contents
loading

This manual is also suitable for:

80c186ec

Table of Contents