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


Форматирование дорожки


На входе: AH 05h
AL Количество секторов, которые нужно создать на дорожке, или фактор чередования для НМД IBM PC/XT
CH Номер дорожки
CL Номер сектора
DH Номер головки
DL Адрес устройства НГМД или НМД (0, 1, ..., 80h, 81h, ...)
ES:BX Адрес буфера формата, используется для НГМД и НМД, установленных в IBM PC/XT
На выходе: AH Состояние устройства после завершения последней операции
CF 1, если произошла ошибка,

0, если ошибки нет

Примечание: PC, XT, AT, PS/2

Функция форматирования предназначена для начального формирования структуры дорожки диска. Эта функция разрушает все данные, записанные на дорожке. С помощью функции 05h вы можете за один раз отформатировать только одну дорожку с указанным в регистре CH номером.

Для функции форматирования необходимо задать два параметра, на которых мы остановимся подробнее - фактор чередования и адрес буфера формата.

Что такое фактор чередования ?

Этот фактор определяет последовательность расположения секторов на дорожке. Секторы могут располагаться в порядке своих номеров, через один, через два и т. д. Способ размещения секторов определяется значением фактора чередования .

Фактор 1 предполагает последовательное расположение секторов на дорожке в порядке их номеров, т. е. чередование отсутствует. Фактор 2 задает расположение секторов через один, 3 - через два и т. д. На рис. 1.3 показано использование фактора чередования при форматировании дорожки.

IMG00003.GIF (3043 bytes)

Рис. 1.3. Использование фактора чередования

Некоторые программы, предназначенные для подготовки НМД к работе, требуют указания величины фактора чередования при выполнении низкоуровневого форматирования.

Для чего может понадобиться несмежное расположение секторов с последовательными номерами на дорожке диска?

При последовательном расположении секторов может получиться так, что процессор не будет успевать обрабатывать смежные секторы за один проход дорожки.

Например, программа считывает последовательно второй и третий сектор. В момент времени, когда второй сектор уже считан, при быстром вращении диска к моменту начала чтения третьего сектора головки могут оказаться в середине третьего сектора. В результате диск совершит еще один оборот, прежде чем головки окажутся в начале третьего сектора. Поэтому если программа последовательно обращается к смежным секторам, может получиться так, что для чтения каждого сектора потребуется один оборот.




- Начало -  - Назад -  - Вперед -