Операционная система MS DOS (том 2)


Характеристики дисководов - часть 8


/p>

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

Для удобства работы с таблицей параметров дискеты файл sysp.h содержит определение типа DPT:

#pragma pack(1)

typedef struct _DPT_ { unsigned char srt_hut; unsigned char dma_hlt; unsigned char motor_w; unsigned char sec_size; unsigned char eot; unsigned char gap_rw; unsigned char dtl; unsigned char gap_f; unsigned char fill_char; unsigned char hst; unsigned char mot_start; } DPT;

#pragma pack()

Адреса таблиц параметров жестких дисков HDPT

расположены по адресам, соответствующим векторам прерываний INT 41h (для первого физического диска) и INT 46h (для второго физического диска). Эти таблицы имеют следующий формат:

(0) 2 max_cyl Максимальное количество цилиндров на диске.
(+2) 1 max_head Максимальное количество магнитных головок.
(+3) 2 srwcc Начальный цилиндр для предварительной записи (Starting reduced-write current cylinder).
(+5) 2 swpc Начальный цилиндр для предварительной компенсации при записи (Starting write precompensation cylinder).
(+7) 1 max_ecc Максимальная длина блока коррекции ошибок ECC (Maximum ECC data burst length).
(+8) 1 dstopt Опции устройства:

бит 7 - запрет восстановления;

бит 6 - запрет восстановления по блоку коррекции ошибок ECC (Error Correction Code);

биты 2-0 - опции устройства.

(+9) 1 st_del Стандартная величина задержки.
(+10) 1 fm_del Величина задержки для форматирования диска.
(+11) 1 chk_del Величина задержки для проверки диска.
(+12) 4 reserve Зарезервировано.

Файл sysp.h содержит соответствующее определение типа HDPT:

#pragma pack(1)

typedef struct _HDPT_ { unsigned max_cyl; unsigned char max_head; unsigned srwcc; unsigned swpc; unsigned char max_ecc; unsigned char dstopt; unsigned char st_del; unsigned char fm_del; unsigned char chk_del; char reserve[4]; } HDPT;

#pragma pack()

Наиболее полезная информация, которую можно извлечь из таблицы параметров дискеты - это код размера сектора. Если вам когда-либо понадобится работать с нестандартным размером сектора (512 байтов), вам не обойтись без этой таблицы.




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



Книжный магазин