Таблица 2



Таблица 2

1Неправильный код функции
2Файл не найден
3Путь не найден
4Слишком много открытых файлов
5Доступ запрещен
6Неправильный идентификатор файла
7Разрушен блок управления памятью
8Недостаточно памяти
9Неправильный адрес блока памяти
10Неправильная среда
11Неправильный формат
12Неправильный код доступа
13Неправильные данные
14Зарезервировано
15Ошибка при указании дисковода
16Невозможно удалить текущий каталог
17Другое устройство
18Больше нет подходящих файлов

Для DOS версии 3.0 и более поздних версий обработка ошибок значительно расширена. Введена функция 59h прерывания INT21h, предназначенная для получения дополнительной информации об ошибках.

При вызове этой функции регистр BX должен содержать индикатор уровня анализа ошибок, который должен быть равен 0. Кроме расширенного кода ошибки, возвращаемого в регистре AX, программа может получить класс ошибки (регистр BH), код предполагаемых действий (регистр BL), локализацию ошибки, т.е. место, где произошла ошибка (регистр CH).

К сожалению, эта функция разрушает содержимое регистров CL, DX, SI, DI, BP, DS, ES. Программа, использующая функцию 59h, должна позаботиться о сохранении содержимого этих регистров.

Расширенный код ошибки, возвращаемый в регистре AX, может принимать значения, указанные в приводимой ниже таблице. Коды от 1 до 18 эквивалентны представленным выше и второй раз не приводятся.

Расширенные коды ошибок:



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