Инициализация канала 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.
Сразу после разрешения канал начинает передачу данных. После окончания передачи данных устройство обычно вырабатывает прерывание, которое служит признаком окончания передачи данных.
Содержание раздела