Порт 08h
Этот порт используется при записи в качестве управляющего регистра и при чтении как регистр состояния.
Формат управляющего регистра:
Поле | Описание | ||
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 |