Этот порт используется при записи в качестве управляющего регистра и при чтении как регистр состояния.
Формат управляющего регистра:
Поле |
Описание |
0 |
1 - использование режима память-память; 0 - обычный режим работы |
1 |
Если используется режим память-память, то 1 в этом разряде разрешает захват канала, 0 – запрещает. В обычном режиме работы состояние этого бита безразлично |
2 |
1 - запрет работы DMA; 0 - разрешение работы DMA |
3 |
1 - использование сжатия во времени, если установлен бит обычного режима работы; 0 - обычный режим работы |
4 |
1 – циклическое изменение приоритетов; 0 - фиксированные приоритеты |
5 |
1 - удлиненный цикл записи; 0 - нормальный цикл записи |
6 |
1 - для сигнала запроса на DMA используется низкий уровень DREQ; 0 – для этого сигнала используется высокий уровень |
7 |
1 - для сигнала подтверждения DMA DACK используется высокий уровень; 0 - для этого сигнала используется низкий уровень |
Обычно управляющий регистр инициализируется BIOS в процессе тестирования системы. Впоследствии изменять режим работы контроллера DMA не требуется. Ошибки при инициализации этого порта могут привести к нарушению нормальной работы операционной системы.
При чтении из порта 08h программа получает слово состояния контроллера DMA:
Поле |
Описание |
0-3 |
Биты 0-3 устанавливаются при достижении счетчиками каналов 0-3 конечных значений; |
4-7 |
Биты 4-7 установлены, если имеется разрешение на DMA, соответственно, каналов 0-3 |