Работа с дискамиРефераты >> Кибернетика >> Работа с дисками
Эта функция позволяет прочитать один или несколько секторов диска в буфер, находящийся в оперативной памяти. Для НМД номер дорожки и номер сектора задаются следующим образом: биты 5 .0 регистра CX задают номер сектора, а биты 15 .6 - номер дорожки. Перед чтением необходимо подготовить таблицу параметров НГМД или НМД.
5.4 Запись сектора.
На входе: |
AH |
03h |
AL |
Количество секторов, которые нужно прочитать | |
CH |
Номер дорожки | |
CL |
Номер сектора | |
DH |
Номер головки | |
DL |
Адрес устройства НГМД или НМД (0, 1, ., 80h, 81h, .) | |
ES:BX |
Адрес буфера для данных | |
На выходе: |
AH |
Состояние устройства после завершения последней операции |
CF |
1, если произошла ошибка, 0, если ошибки нет | |
Примечание: |
PC, XT, AT, PS/2 |
Функция записи секторов аналогична предыдущей, за исключением направления перемещения данных - данные записываются из буфера в один или несколько секторов диска. Необходимо отметить, что при работе с НГМД не для всякой BIOS будет выполняться ожидание перед выполнением операции записи, пока двигатель раскрутится до рабочей скорости. В результате программа может получить признак ошибки. Прежде чем делать вывод о причинах ошибки, следует сбросить контроллер НГМД функцией 00H и повторить операцию записи три раза.
5.5 Проверка сектора.
На входе: |
AH |
04h |
AL |
Количество секторов, которые нужно проверить | |
CH |
Номер дорожки | |
CL |
Номер сектора | |
DH |
Номер головки | |
DL |
Адрес устройства НГМД или НМД (0, 1, ., 80h, 81h, .) | |
На выходе: |
AH |
Состояние устройства после завершения последней операции |
AL |
Количество проверенных секторов | |
CF |
1, если произошла ошибка,0, если ошибки нет | |
Примечание: |
PC, XT, AT, PS/2 |
С помощью этой функции программа может убедиться, что указанные секторы существуют и их можно прочесть. Данные проверяются по методу циклического избыточного контроля (CRC). Адрес буфера не нужен, так как при проверке секторов чтение данных в оперативную память не выполняется.
5.6 Форматирование дорожки.
На входе: |
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 номером.
Для функции форматирования необходимо задать два параметра, на которых мы остановимся подробнее - фактор чередования и адрес буфера формата.
Что такое фактор чередования? Этот фактор определяет последовательность расположения секторов на дорожке. Секторы могут располагаться в порядке своих номеров, через один, через два и т. д. Способ размещения секторов определяется значением фактора чередования.