Specifications

4 - 9
As in all AT compatible computers, several distinctions exist between the features of DMA
Channels 0-3 and Channels 5-7:
n Channels 0-3 -- these four channels are similar to those of a PC, and are used for 8-bit
transfers, between 8-bit I/O adapters and both 8-bit and 16-bit system memory. For these
channels, addresses A0-A15 are generated directly by the 8237A compatible DMA
controller logic, while addresses A16-A23 are generated by AT compatible DMA page
registers. These channels can transfer data throughout the AT's 16 megabyte address space,
with a maximum block transfer size of 64K bytes.
n Channels 5-7 -- these three channels support 16-bit transfers, between 16-bit I/O adapters
and 16-bit system memory. For these channels, A1-A16 are generated by the 8237A
compatible DMA controller logic, and A17-A23 are generated by page registers. These
channels can transfer data throughout the AT's 16 megabyte address space, with a
maximum block transfer size of 128K bytes. It is important to note, that channels 5-7
cannot transfer data on odd byte boundaries, because the address bit A0 is not supported.
The following two restrictions apply to the use of the board's AT-compatible DMA channels:
Note 1
One restriction of the AT architecture is that addresses during
a DMA block transfer cannot automatically cross page
boundaries (i.e. 64K boundaries for Channels 0-3, or 128K
boundaries for Channels 5-7). However, the board's ROM-
BIOS disk services handle boundary crossing automatically
Note 2
The DMA controller cannot perform 16-bit to 8-bit transfers,
such as between the 16-bit SCSI interface and 8-bit memory on
a bus connected device (e.g. video or I/O controllers, etc.). In
such cases, the software must transfer the data in two steps: (1)
It must perform a 16-bit DMA transfer between the 16-bit I/O
port and 16-bit system memory; and (2) it must perform a
CPU-controlled block move between 16-bit system memory
and the 8-bit bus connected memory. In particular, it should
be noted that the board's ROM-BIOS has no knowledge of
what type of memory (8-bit or 16-bit) is involved when BIOS
functions transfer data between the board's 16-bit SCSI port
and memory. Consequently, programs which require BIOS
functions to transfer data between a SCSI-connected hard disk
and 8-bit RAM on the AT bus (including video controller
display RAM) may require modification.