Рассмотрим тестирование НГМД в режиме MS-DOS с использованием 13h прерывания BIOS.
Прерывание 13hBIOS.
13h прерывание BIOS предназначено для обслуживания НГМД и НЖМД. В своем составе 13h имеет порядка 20-ти функций, для тестирования используются следующие из них:
10h – готовность дисковода;
08h – позволяет определить характеристики накопителя (основные из них: количество головок, цилиндров и секторов на дорожке);
04h – выполняет верификацию сектора;
02h – переписывает содержимое сектора в буфер;
03h – переписывает содержимое буфера в сектор;
Буфер задается в виде адреса сегмент : смещение.
Кроме того 13h прерывание имеет встроенные функции тестирования:
12h – проверка памяти контроллера;
13h – проверка дисковода;
14h – проверка контроллера;
Как любое программное обеспечение 13h прерывание имеет средства контроля выполнения каждой функции. Большинство функций возвращает флаги переноса CF признак обнаруженной ошибки:
0 – нет ошибки;
1 – ошибка, в регистр АH – заносится код ошибки.
Определяется около 20-ти кодов ошибок.
Для работы с 13h прерыванием необходимо открыть запись (DOS record) - <имя> : registers. Это позволяет обращаться к регистрам МП, что необходимо для вызова 13h.