Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METODIchka4.DOC
Скачиваний:
5
Добавлен:
04.05.2019
Размер:
940.03 Кб
Скачать

Функция 00н

Сброс дисковой подсистемы.

*Вход:

АН = 00Н

DL - номер флоппи-диска ( 0 - А, 1 - В и т.д. )

*Выход:

Если функция завершилась успешно :

Флаг переноса ( CF ) сброшен

АН - 00Н

Если функция завершилась с ошибкой :

Флаг переноса установлен АН - код ошибки ( см. ниже )

*Примечание.

Эта функция используется после неудачной операции записи, чтения, проверки или формати­рования перед повтором этой операции.

Функция 01н

Возвращает код состояния дисковой подсистемы.

*Вход:

АН = 01Н DL - дисковод ( 0 - А и т.д. )

*Выход:

АН -00Н

AL - код ошибки

00Н - нет ошибки

01Н - неверная команда

02Н - не найден адресный маркер

03Н - диск защищен от записи

04Н - сектор не найден

06Н - дискета была сменена

08Н - ошибка ПДП

09Н - пересечена граница 64К при ПДП

0СН - неизвестный тип носителя

20Н - сбой контроллера

40Н - ошибка при поиске дорожки

*Примечание.

Возвращает код ошибки предыдущей операции с диском, см. Приложение А.

Функция 02н

Чтение сектора.

*Вход:

АН = 02Н

AL - число секторов

СН - цилиндр

CL - сектор

DH - сторона

DL - дисковод

ES:BX - сегмент :смещение буфера

*Выход:

Если функция завершилась успешно :

Флаг переноса сброшен

АН - 00Н

AL - число прочитанных секторов

Если функция завершилась с ошибкой :

Флаг переноса установлен АН - код ошибки ( см. выше )

* Примечание.

Ошибка может быть вызвана тем, что BIOS не ожидает разгона двигателя дисковода. Рекомендуется, в случае возникновения ошибки, повторять операцию трижды, рекалибруя перед этим дисковод ( функция 00Н).

Функция 03н

Запись сектора.

*Вход:

АН = 03Н

AL - число секторов

СН - цилиндр

CL - сектор

DH - сторона

DL - дисковод

ES:BX - сегмент: смещение буфера

*Выход:

Если функция завершилась успешно :

Флаг переноса сброшен

АН - 00Н

AL - число записанных секторов

Если функция завершилась с ошибкой :

Флаг переноса установлен АН - код ошибки ( см. выше )

*Примечание.

См. Примечание к функции 02Н

Функция 04н

Проверка сектора.

*Вход:

АН = 04Н

AL - число секторов

СН - цилиндр

CL - сектор

DH - сторона

DL - дисковод

ES:BX - сегмент: смещение буфера

*Выход:

Если функция завершилась успешно :

Флаг переноса сброшен

АН - 00Н

AL - число проверенных секторов

Если функция завершилась с ошибкой :

Флаг переноса установлен

АН - код ошибки ( см. выше )

* Примечание.

Для ранних версий BIOS буфер по адресу ES:BX обязателен.

Функция 05н

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

*Вход:

АН = 05Н

AL - число цилиндров

СН - цилиндр

DH - сторона

DL - дисковод

ES:BX - сегмент : смещение списка адресных полей

*Выход:

Если функция завершилась успешно :

Флаг переноса сброшен

АН - 00Н

Если функция завершилась с ошибкой :

Флаг переноса установлен АН - код ошибки ( см. выше )

*Примечание.

Список адресных полей состоит из набора 4-байто­вых записей, по одной на сектор :

Байт Содержимое

0 цилиндр

1 сторона

2 сектор

3 код величины сектора

00Н - 128 байт в секторе

01Н - 256 байт в секторе

02Н - 512 байт в секторе

0ЗН - 1024 байта в секторе

Например, для форматирования дорожки с де­вятью секторами по 512 байт, ES:BX должен ука­зывать на 36-байтовый массив

DB 0,0,1,2, 0,0,2,2, 0,0,3,2

DB 0,0,4,2, 0,0,5,2, 0,0,6,2

DB 0,0,7,2, 0,0,8,2, 0,0,9,2

Таблица параметров дискеты ( DPT ). При загрузке BIOS создает DPT ( Diskette Param­eter Table ), которая содержит характеристики необ­ходимые контролеру НГМД. Таблица состоит из 11 байт :

Байт

Содержание

для 360К

0

Задержка для переключения, разгрузки головки чтения/записи

df

1

Использование прямого доступа к памяти и время загрузки головок ч/з

02

2

Задержка перед выключением двигателя

25

3

Код размера сектора (0 - 128 байт, 1 - 256 байт, 2 - 512 байт, 3 - 1024 байта)

02

4

Номер последнего сектора на дорожке

09

5

Длина межсекторного промежутка для чтения/записи

02

6

max длина передаваемых данных, если не задана длина сектора

ff

7

Длина межсекторного промежутка для операции форматирования

50

8

Байт-заполнитель для форматирования ( обычно F6H )

f6

9

Время установки головки ч/з

0f

10

Время запуска двигателя в 1/8 С

08

Третья колонка - значения для 360К дисковода (в 16-й системе счисления). Наиболее полезная инфор­мация - размер сектора. Если нужно форматировать дорожку с нестандартным размером сектора (не 512 байт), необходимо перед форматированием изменить соответствующее значение в DPT. (После форматирова­ния — восстановить). Вектор 1ЕН содержит не адрес подпрограммы обработки этого прерывания, а адрес DPT.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]