дисковод C, DOS знает, что
дисковод C, DOS знает, что нужно вызвать драйвер третьего блочно-
ориентированного устройства.
Связанный список двух заголовков драйвера содержит смещение
двух компонентов самого драйвера устройства: подпрограмму функции
и подпрограмму обработки прерывания.
Когда DOS определяет, что требуется вызвать данный драйвер
устройства, она вызывает драйвер дважды. При первом вызове драй-
вера DOS общается с подпрограммой функции и передает ей указатель
на буфер в памяти, который называется заголовком запроса. Этот
заголовок запроса содержит информацию о том, какие функции требу-
ет выполнить DOS от драйвера устройства. Подпрограмма функции
просто просто сохраняет данный указатель для последующего исполь-
зования. При втором вызове драйвера устройства DOS вызывает подп-
рограмму обработки прерывания, которая выполняет реальные функ-
ции, заданные DOS в заголовке запроса, например, пересылку
символов с диска.
В заголовке запроса с помощью байта, который называется ко-
дом команды, определяется, что должен делать драйвер устройства.
Код команды определяет одну из предопределенных операций из набо-
ра операций, которые должны выполнять все драйверы устройств. На-
бор кодов команд (операций) для драйверов символьно-ориентирован-
ных и блочно-ориентированных устройств различен.
Проблема при отладке драйверов устройств состоит в том, что
файл .EXE отсутствует, так как для выполнения соответствующих
функций драйвер должен быть загружен во время загрузки системы с
помощью команды DEVICE = DRIVER.EXT, где EXT - это расширение
.SYS, .COM или .BIN. Это означает, что отлаживаемый драйвер уст-
ройства уже резидентен в памяти до начала отладки. Следовательно,
функции по выполнению загрузки и перемещения таблицы идентифика-