| AL | подфункция |
| 0 | Проверит наличие Выход: AL == 00h => не установлен, можно устанавливать AL == 01h => не установлен, нельзя устанавливать AL == FFh => установлен Примечание: Novell DOS версии 7 обнуляет регистр AH |
| 1 | Добавить файл в очередь печати |
| 2 | Удалить файл из очереди печати Вход: DS:DX - адрес (смещение,сегмент) строки ASCIIZ, содержащей полный путь к файлу, направляемого в очередь печати Выход: Если установлен флаг CF, то произошла ошибка, и AX содержит код ошибки |
| 3 | Очистить очередь печати Выход: Если установлен флаг CF, то произошла ошибка, и AX содержит код ошибки |
| 4 | Приостановить печать и получить статус Выход: DX - количество возникших ошибок с последнего вызова этой функции DS:SI - очередь печати Если установлен флаг CF, то произошла ошибка, и AX содержит код ошибки Примечание: Очередь печати представляет из себя массив строк, каждая из которых имеет длинну 64 байта и содержит полный путь к печатаемому файлу Первая запись в масииве - файл, который печатается сейчас. Признаком конца массива является пустая запись. |
| 5 | Продолжить печать Выход: Если установлен флаг CF, то произошла ошибка, и AX содержит код ошибки Эта функция вызывается для возобновления печати после выполнения функции 4 |
| 6 | Узнать состояние принтераDOS 3.3+ Выход: Если флаг CF установлен: В очереди печати есть файлы AX - код ошибки DS:SI - указатель на заголовок драйвера устройства Если флаг CF установлен: Очередь печати пуста AX=0 |
| Код | Значение |
| 01 | Невеврный номер функции |
| 02 | Файл не найден |
| 03 | Путь не найден |
| 04 | Нет доступного HANDLE (слишком много открытых файлов |
| 05 | Ошибка доступа |
| 06 | Неверный HANDLE |
| 08 | Очередь переполнена |
| 09 | Программа печати занята |
| 0Ch | Полный путь к файлу слишком длинный |
| 0Fh | Неверный диск |
| AL | подфункция |
| 0 | Проверить наличие Выход: AL == 00h => не установлен, можно устанавливать AL == 01h => не установлен, нельзя устанавливать AL == FFh => установлен |
| 1 | Получить состояние |
| AL | подфункция |
| 0 | Проверить наличие Выход: AL == 00h => не установлен, можно устанавливать AL == 01h => не установлен, нельзя устанавливать AL == FFh => установлен |
| 1 | Добавить блочное устройство |
| 2 | Выполнить запрос к драйверу устройства |
| 3 | Получить таблицы параметров устройств DOS 4+ |
| Смещение | Размер | Описание |
| 00h | DWORD | Указатель на следующую таблицу (либо 0xFFFFh, если это последняя таблица) |
| 04h | BYTE | Номер устройства BIOS |
| 05h | BYTE | Номер устройства DOS (0 = A: ; 1 = B: ; ...) |
| 06h | 19*BYTE | BPB (cм. функцию 53h прерывания 21h) |
| 19h | BYTE | Флаги : Бит 6 - если установлен, то используется FAT16, иначе - FAT12 Остальные биты не определены |
| 1Ah | WORD | Счётчик ссылок на диск |
| 1Ch | 11*BYTE | Имя диска или "NO NAME ", если оно не заданно. Для несъёмных дисков всегда "NO NAME " |
| 27h | BYTE | Ноль |
| 28h | BYTE | Тип устройства (см. функцию 44h подфункцию 0Dh прерывания 21h) |
| 29h | WORD | Флаги: Бит 0 - если установлен, то это несъёмный диск Бит 1 - имеется сигнал смены носителя Бит 2 - текущий BPB залочен Бит 3 - все сектора на треке имеют одинаковый размер Бит 4 - Физучиское устройство имеет несколько логических устройств Бит 5 - current logical drive for shared physical drive (Что бы это означало?) Бит 6 - Обнаружена смена диска Бит 7 - Параметры устройства изменились (см. функцию 44h подфункцию 0Dh прерывания 21h) Бит 8 - Диск был отфрматирован (BPB изменилась) Бит 9 - флаг доступа (см. функцию 44h подфункцию 0Dh прерывания 21h) Остальные биты не определенны |
| 2Bh | WORD | Кол-во цилиндров |
| 2Dh | 19*BYTE | BPB для носителя с максимальной поддерживаемой ёмкостью |
| 40h | 3*BYTE | Неизвестно |
| 43h | 9*BYTE | Неизвестно (на MS-DOS 3.30 для несъёмных дисков записанно "NO NAME ", в остальных случаях - нули) |
| 4Ch | BYTE | Последний считанный байт??? |
| 4Dh | DWORD | Для дисков со съёмным носителем: Время последнего обращения к диску (0xFFFFFFFF если никогда) Для несъёмных дисков: Cлово по смещению 4Dh: - тип раздела (1 для расширенного и 0xFFFF для основного) Слово со смещению 4Fh: - номер цилинлра, на котором начинается раздел |
| Смещение | Размер | Описание |
| 00h | DWORD | Указатель на следующую таблицу (либо 0xFFFFh, если это последняя таблица) |
| 04h | BYTE | Номер устройства BIOS |
| 05h | BYTE | Номер устройства DOS (0 = A: ; 1 = B: ; ...) |
| 06h | 25*BYTE | BPB (cм. функцию 53h прерывания 21h) |
| 1Fh | BYTE | Флаги : Бит 6 - если установлен, то используется FAT16, иначе - FAT12 Бит 7 - неподдерживаемый диск (если установлен, то любая попытка дуступа приведёт к ошибке "Устройство не готово") Остальные биты не определены |
| 20h | WORD | Счётчик ссылок на диск |
| 22h | BYTE | Тип устройства (см. функцию 44h подфункцию 0Dh прерывания 21h) |
| 23h | WORD | Флаги: Бит 0 - если установлен, то это несъёмный диск Бит 1 - имеется сигнал смены носителя Бит 2 - текущий BPB залочен Бит 3 - все сектора на треке имеют одинаковый размер Бит 4 - Физучиское устройство имеет несколько логических устройств Бит 5 - current logical drive for shared physical drive (Что бы это означало?) Бит 6 - Обнаружена смена диска Бит 7 - Параметры устройства изменились (см. функцию 44h подфункцию 0Dh прерывания 21h) Бит 8 - Диск был отфрматирован (BPB изменилась) Бит 9 - флаг доступа (см. функцию 44h подфункцию 0Dh прерывания 21h) Остальные биты не определенны |
| 25h | WORD | Кол-во цилиндров |
| 27h | 25*BYTE | BPB для носителя с максимальной поддерживаемой ёмкостью |
| 40h | 6*BYTE | Резерв |
| 46h | BYTE | Номер последнего считанного трека |
| 47h | DWORD | Для дисков со съёмным носителем: Время последнего обращения к диску (0xFFFFFFFF если никогда) Для несъёмных дисков: Cлово по смещению 4Dh: - тип раздела (1 для расширенного и 0xFFFF для основного). Для DOS 5+ всегда 1. Слово со смещению 4Fh: - номер цилинлра, на котором начинается раздел (в DOS 4.0 для основного рзадела FFFFh) |
| 4Bh | 11*BYTE | Имя диска или "NO NAME ", если оно не заданно. |
| 56h | BYTE | Ноль |
| 57h | DWORD | Серийный номер |
| 5Bh | 8*BYTE | Файловая система, обычно "FAT16 " или "FAT12 " |
| 63h | BYTE | Ноль |
| Смещение | Размер | Описание |
| 00h | DWORD | Указатель на следующую таблицу (либо 0xFFFFh, если это последняя таблица) |
| 04h | BYTE | Номер устройства BIOS |
| 05h | BYTE | Номер устройства DOS (0 = A: ; 1 = B: ; ...) |
| 06h | 25*BYTE | BPB (cм. функцию 53h прерывания 21h) |
| 1Fh | 6*BYTE | Резерв |
| 25h | BYTE | Флаги : Бит 5 - предположительно, большой раздел Бит 6 - если установлен, то используется FAT16, иначе - FAT12 Остальные биты не определены |
| 26h | WORD | Предположительно, счётчик ссылок на диск |
| 28h | 11*BYTE | Имя диска или "NO NAME ", если оно не заданно. Для несъёмных дисков всегда "NO NAME " |
| 33h | BYTE | Ноль |
| 34h | BYTE | Тип устройства (см. функцию 44h подфункцию 0Dh прерывания 21h) |
| 35h | WORD | Флаги: Бит 0 - если установлен, то это несъёмный диск Бит 1 - имеется сигнал смены носителя Бит 2 - текущий BPB залочен Бит 3 - все сектора на треке имеют одинаковый размер Бит 4 - Физучиское устройство имеет несколько логических устройств Бит 5 - current logical drive for shared physical drive (Что бы это означало?) Бит 6 - Обнаружена смена диска Бит 7 - Параметры устройства изменились (см. функцию 44h подфункцию 0Dh прерывания 21h) Бит 8 - Диск был отфрматирован (BPB изменилась) Бит 9 - флаг доступа (см. функцию 44h подфункцию 0Dh прерывания 21h) Остальные биты не определенны |
| 37h | WORD | Кол-во цилиндров |
| 39h | 25*BYTE | BPB для носителя с максимальной поддерживаемой ёмкостью |
| 52h | 6*BYTE | Резерв |
| 58h | BYTE | Последний считанный байт??? |
| 59h | DWORD | Для дисков со съёмным носителем: Время последнего обращения к диску (0xFFFFFFFF если никогда) Для несъёмных дисков: Cлово по смещению 4Dh: - тип раздела (1 для расширенного и 0xFFFF для основного) Слово со смещению 4Fh: - номер цилинлра, на котором начинается раздел |