Инициализация канала DMA
Для инициализации канала программа должна выполнить следующие шаги:
- сбросить триггер байтов командой записи в регистр 0Ch;
- задать режим работы канала, выполнив запись по адресу 0Bh в регистр режима MR;
- записать младшие 16 бит 20-битового адреса области памяти, которая будет использована для передачи данных, в регистр базового адреса. Адрес порта зависит от номера канала: канал 0 использует адрес 00h, канал 1 - 02h, канал 2 - 04h, канал 3 - 06h;
- записать номер страницы (старшие 4 бита 20-битового адреса) в регистр страниц 81h;
- загрузить регистр циклов прямого доступа к памяти CWR значением, на 1 меньшим требуемого количества передаваемых байт. Адреса соответствующих портов для каналов 0-3, равны, соответственно, 01h, 03h, 05h и 07h;
- разрешить работу канала, выполнив запись в регистр маски каналов по адресу 0Ah.
Сразу после разрешения канал начинает передачу данных. После окончания передачи устройство обычно вырабатывает прерывание, которое служит признаком окончания операции ввода или вывода данных.