Дисковая система IBM PC. — страница 9

  • Просмотров 1453
  • Скачиваний 33
  • Размер файла 33
    Кб

рассматривает эту об- ласть как совокупность кластеров, каждый из которых содержит один или несколько секторов. Из-за того что первые два поля FAT заре- зервированы, первому кластеру в области данных присвоен номер 2. Все каталоги, кроме корневого, также раасматриваются MS-DOS как файлы особого вида, и поэтому помещаются в область данных. _@Работа BIOS с НГМД Програмное управление дискетой ( точнее говоря, адаптером НГМД) осуществляется

с помощью драйвера BIOS, вызов которого осущес- твляется через прерывание int 13. Методика вызова конкретных фун- кций стандартна, то есть номер функции загружается в ah, ос- тальные параметры в другие регистры общего назначения, для адре- совки буферов так же используется регистровая пара es:bx. Всего стандартный драйвер поддерживает 6 функций работы с НГМД с номерами от 0 до 5. Перечислим их в порядке возрастания : _ 0__ _ -__ _ Сброс системы

НГМД __ __ _ 3__ _ -__ _ Записать сектор _ 1__ _ -__ _ Прочитать состояние __ __ _ 4__ _ -__ _ Проверить сектор _ 2__ _ -__ _ Прочитать сектор __ __ _ 5__ _ -__ _ Разметка дорожки Все функции выполняются, согласовываясь с базовой дисковой таблицей, на которую указывает вектор 1e. Разумеется пользова- тель может модифицировать этот вектор и создать свою таблицу. При загрузке ОС BIOS инициализирует ее, а DOS модифицирует, чтобы улучшить производительность дискет.

Структура этой таблицы сле- дующая ( везде, где не сказано иное, время указывается в квантах системного таймера ). ┌────┬───────────────────────────────────────────────────────────┐ │Смещ│ Содержимое │ ├────┼───────────────────────────────────────────────────────────┤ │ 0 │ биты 4-7: время перехода с дорожки на дорожку ( в млс ) │ │ │ биты 0-3: время

под'ема головки после чтения/записи │ │ 1 │ бит 0: 1= исп.DMA , 0= DMA не используется │ │ │ биты 2-7: время опускания головок │ │ 2 │ время не остановки двигателя после окончания чтения/записи│ │ 3 │ размер сектора (0=128, 1=256, 2=512, 3=1024) │ │ 4 │ номер последнего сектора на дорожке │ │ 5 │ длина межсекторного промежутка для операций чтения/записи │ │ 6 │ Максимальная длина передаваемых данных │ │ 7 │ длина межсекторного промежутка для

операции форматирования│ │ 8 │ символ-заполнитель для форматирования ( обычно f6 ) │ │ 9 │ время позиционирования головок │ │ a │ время разгона мотора (в 1/8-секундных интервалах) │ └────┴───────────────────────────────────────────────────────────┘ Также в BIOS Data Segment содержатся следующие параметры НГМД: _ 0:043e__ требуется рекалибрация флоппи-дисковода _ __ (бит 0=A, бит 1=B, etc.) _ 0:043f__ мотор дискеты