Эта система скрыта от прикладных программ - программы не могут обращаться непосредственно к драйверам устройств ввода/вывода. Программа вызывает DOS, а DOS обращается при необходимости к драйверам.
Возможно, что запрет на непосредственный вызов драйверов введен для обеспечения совместимости с будущими версиями операционной системы, в которых механизм вызова драйверов может измениться. Однако, используя сведения, приведенные в этой книге, вы сможете обойти этот запрет и обратиться непосредственно к драйверу. При этом вам придется использовать некоторые недокументированные прерывания DOS, что само по себе нежелательно из-за возможной потери совместимости с другими версиями операционной системы.
Для управления состоянием устройства ввода/вывода или состоянием драйвера используется специальная функция 44h прерывания DOS 21h. Эта функция предназначена для обмена управляющей информацией между прикладной программой и драйвером.
Система обработки ошибок.
Система обработки ошибок DOS проста и удобна. Для кодирования ошибок как правило используется флаг переноса (CARRY, CF). Если после обращения к прерыванию DOS флаг переноса установлен в 1, произошла ошибка. Для того чтобы проанализировать ошибку и предпринять какие-то действия, можно вызвать соответствующую функцию DOS, которая вернет уточняющую информацию об ошибке и предоставит соответствующие рекомендации (разумеется, лишь в виде кодов, находящихся в регистрах процессора).
Если произошла критическая ошибка ввода/вывода (например, прочитать дискету невозможно), вызывается стандартная процедура DOS, выводящая на экран запрос о дальнейших действиях. Пользовательская программа может подключить вместо системной свою программу обработки критических ошибок. Подробнее об обработке ошибок будет сказано в разделе 1.6.