MS-DOS для программиста

Использование команд контроллера НГМД


Выполнив сброс контроллера, вам надо его проинициализировать, указав все рабочие параметры. Затем можно выдавать контроллеру команды, каждый раз проверяя регистр основного состояния ST и анализируя байты результата ST0...ST3. Можно предложить следующую последовательность действий:

  • сброс контроллера выдачей в порт 3F2h байта с битом 2, установленным в 0;
  • разрешение работы контроллера выдачей в этот же порт байта с битом 2, установленным в 1;
  • выдача контроллеру команды "Инициализация";
  • выдача контроллеру команды "Определить параметры";
  • включение двигателя и ожидание в течение примерно 0,5 с (время разгона двигателя);
  • установка головки в нужное положение командой "Поиск";
  • проверка результатов установки командой "Чтение состояния прерывания";
  • для IBM PC/AT установка нужной скорости передачи данных выдачей в порт 3F7h байт с соответствующим значением: 0 для дискет с высокой плотностью записи (HD), 1 для двойной плотности (DD) и 2 для одинарной (SD);
  • если установка головок выполнена правильно, можно выдавать команды чтения или записи данных (перед этим надо правильно запрограммировать контроллер прямого доступа к памяти, если вы собираетесь использовать режим ПДП ).


  • Содержание раздела