Порты контроллера НГМД

Порты контроллера НГМД. Программа обращается к контроллеру для выполнения различных операций с помощью команд ввода/вывода.

Для IBM PC и IBM PC/XT используются три порта с адресами 3F2h, 3F4h и 3F5h. В компьютерах IBM PC/AT дополнительно используются два порта с адресами 3F6h и 3F7h. Порт 3F2h работает только на запись, это порт вывода.

С его помощью можно выбирать для работы один из НГМД (одновременно можно работать только с одним НГМД), сбрасывать контроллер в исходное состояние, разрешать или запрещать прерывания от контроллера и работу схем прямого доступа к памяти, включать или выключать двигатели НГМД. Приведем назначение отдельных бит этого порта: Биты Назначение 0-1 Выбор НГМД. Компьютеры IBM PC/AT не используют бит 1, так как в них установлены только два НГМД 2 0 - сброс контроллера; 1 - разрешение работы контроллера 3 1 - разрешение прерываний и прямого доступа к памяти 4-7 Значение 1 в каждом разряде вызывает включение соответствующего двигателя НГМД. Для компьютеров IBM PC/AT биты 6-7 не используются Порт 3F4h предназначен только для чтения.

С его помощью можно получить байт основного состояния контроллера.

Назначение отдельных бит приведено ниже: Биты Назначение 0-3 Значение 1 говорит о том, что соответствующий НГМД занят, он выполняет операцию поиска. Для IBM PC/AT биты 2-3 не используются 4 Контроллер занят выполнением команды чтения или записи 5 0 - используется режим прямого доступа к памяти; 1 - режим прямого доступа к памяти не используется 6 Направление передачи данных: 0 - от процессора к контроллеру; 1 - от контроллера к процессору 7 Запрос на передачу данных - контроллер готов к записи или чтению данных Порт 3F5h предназначен для записи или чтения данных. Он используется для всех операций.

Выполнение любой операции начинается с того, что программа посылает в этот порт байт кода операции, за которым следует один или несколько байт параметров.

Количество байт параметров и их назначение зависит от кода операции (т. е. от первого байта). После выполнения операции программа считывает несколько байт результата для анализа результата выполнения операции.

Порт 3F7h работает на запись и чтение, он используется только в IBM PC/AT. При записи в этот порт биты 0-1 определяют скорость передачи данных: Биты Скорость передачи данных, Кбайт/с 00 500 (высокая плотность HD) 01 300 (двойная плотность DD) 10 250 (одинарная плотность SD) 11 Зарезервировано Приведем назначение отдельных бит порта 3F7h при чтении из него: Биты Назначение 0 1 - выбран НГМД 0 1 1 - выбран НГМД 1 2-5 Выбраны головки : бит 2 соответствует головке 0, бит 3 - головке 1 и т. д. 6 Переключатель записи 7 1 - признак замены дискеты 4.2