Assembler для начинающих



         

Области данных драйвера BIOS дискеты - часть 2


      Операция рекалибровки играет важную роль и при обычной работе
    для устранения условий появления ошибки. После любой ошибки
    рекомендуется сбросить контроллер. Этим обеспечивается сброс
    условия появления ошибки в контроллере. Байт SEEK_STATUS при этом
    устанавливается равным нулю. Поэтому перед тем, как прикладная
    программа повторит операцию (неудачную операцию нужно повторять по
    крайней мере три раза, так как большинство таких ошибок устранимы и
    не повторяются), выполнится рекалибровка механизма. Это
    автоматически устраняет ошибку, вызванную неправильной установкой,
    когда головка не попала на нужную дорожку. В обычных случаях
    рекалибровка и повторная установка на эту же дорожку устраняет
    ошибку.
 
      Байты MOTOR_STATUS и MOTOR_COUNT управляют двигателем
    дисковода. Адаптер дисковода имеет управляющий регистр, который
    позволяет выбрать двигатель дисковода, который включается в двнное
    время. В этот управляющий регистр можно только записывать данные,
    читать из него нельзя, и байт MOTOR_STATUS является его образом в
    памяти. Перед тем, как выполнить операцию записи-чтения на дискете,
    вы должны дать возможность двигателю разогнаться до необходимой
    скорости, подождав некоторое время - около половины секунды. Если
    двигатель уже работает, ждать не нужно. Чтение конкретного бита в
    этом байте состояния позволяет определить, нужно ли ожидание.
 
      Далее после выполнения операции важно оставить двигатель
    включенным. Есть вероятность, что доступ к дискете вскоре
    повторится; однако здесь нужно выбирать между износом дискеты и
    увеличением времени доступа. BIOS не допускает непрерывного
    вращения двигателей дисководов, для этого в ячейке MOTOR_COUNT
    находится уменьшающийся счетчик. При каждом прерывании от таймера
    этот счетчик уменьшается, и когда счетчик достигает нуля, все
    двигатели выключаются. Обычно временные параметры установлены так,
    что двигатель работет примерно две секунды после завершения



Содержание  Назад  Вперед