Работа с диском на физическом уровне 67

$04

Проверить сектор

о

$05

Форматировать дорожку

"

$С6

форматировать дорожку ЖД

PC. XT

$07

форматировать ЖД

"

$08

Получить параметры диска

PC,XT,AT,PS/2

$09

Инициировать контроллер диска на основе дисковых таблиц

«

$ОА

Читать сектор с кодом коррекции

"

$ОВ

Записать сектор с кодом коррекции

"

$ОС

Позиционировать головки на нужный цилиндр

n

$OD

Сбросить контроллер диска

11

$ОЕ

Читать буфер сектора

PC, XT

$OF

Записать буфер сектора

"

$10

Получить состояние дисковода ЖД

PC,XT,AT,PS/2

$11

Осуществить рекалибровку дисковода ЖД

"

$12

Проверить память контроллера ЖД

PC, XT

$13

Проверить дисковод ЖД

11

$14

Проверить контроллер ЖД

PC,XT,AT,PS/2

$15

Получить тип и размер диска

AT,PS/2

$16

Проверить флаг дискеты

"

$17

Установить тип дискеты

и

$18

Установить среду для форматирования дискеты

"

$19

Парковать головки ЖД

"

$1А

форматировать ЖД с контроллером типа ESDI

"


Номер диска при обращении к прерыванию $13'указывается как целое число: если это число меньше $80, номер относится к приводу гибкого диска (0 означает первый привод ГД), если $80 или больше, к жесткому диску ($80 означает первый ЖД). Минимальный номер цилиндра и головки равен 0, а минимальный номер сектора равен 1.

Старший байт Пладший байт

h00671.jpg

Рис. 3.4. Структура номеров цилиндра и сектора для прерывания $13

Номер цилиндра/сектора передается через регистр СХ в упакованном виде (см. рис.3.4): номер сектора занимает младшие 6 бит регистра CL, в то время как биты 6 и 7 этого регистра рассматриваются как старшие биты номера цилиндра; младшие биты номера цилиндра задаются значением регистра СН.

Большинство функций прерывания $13 возвращает в флаге переноса CF признак обнаруженной ошибки (0 — нет ошибки, 1 — обнаружена ошиб — ка), а в регистре АН — код ошибки. Если это не оговаривается особо, код ошибки трактуется следующим образом (табл. 3.5):

Т а б л.и п. а 3.5 Значения кода ошибки для прерывания $13

Код

Значение