| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
Приложение Б DOS, функция OOh. Завершить программу Вход: AH=OOh Описание. Передает управление на вектор завершения в PSP (выходит в родительский процесс). Идентична функции INT 20h (Terminate). Регистр CS должен указывать на PSP. Восстанавливает векторы прерываний DOS 22h-24h (Завершение, Ctrl-Break и Критическая ошибка), устанавливая значения, сохраненные в родительском PSP. Выполняет сброс файловых буферов. Файлы должны быть предварительно закрыты, если их длина изменилась. Примечание. Данная функция не рекомендуется к использованию. Для выхода из программы лучше использовать функцию DOS 4Ch. DOS, функция 01h. Считать со стандартного устройства ввода Вход: AH=01h Выход: AL - символ, полученный из стандартного ввода Описание. Считывает (ожидает) символ со стандартного входного устройства. Отображает этот символ на стандартное выходное устройство (эхо). При обнаружении Ctrl-Break выполняется INT 23h. Примечание. Ввод расширенных клавиш ASCII (F1-F12, PgUp, курсор и другие) требует двух обращений к этой функции. Первый вызов возвращает AL=0. Второй вызов возвращает в AL расширенный код ASCII. DOS, функция 02h. Записать в стандартное устройство вывода Вход: AH=02h Описание. Посылает символ из DL в стандартное устройство вывода. Обрабатывает символ Backspace (ASCII 8), перемещая курсор влево на одну позицию и оставляя его в новой позиции. При обнаружении Ctrl-Break выполняется INT 23h. DOS, функция 03h. Считать символ со стандартного вспомогательного устройства Вход: AH=03h Выход: AL - символ, введенный со стандартного вспомогательного устройства Описание. Считывает (ожидает) символ со стандартного вспомогательного устрой- ства, СОМ1 или AUX и возвращает этот символ в AL. Примечание. Ввод не буферизуется и должен опрашиваться (не управляется прерываниями). При запуске DOS порт AUX (COM1) инициализируется так: 2400 бод, без проверки на четность, 1 стоп-бит, 8-битные слова. Команда DOS MODE используется для установки иных характеристик. DOS, функция 04h. Записать символ в стандартное вспомогательное устройство Вход: AH=04h DL - символ, выводимый в стандартное вспомогательное устройство Описание. Посылает символ, находящийся в регистре DL, на стандартное вспомогательное устройство, COM1 или AUX. DOS, функция 05h. Вывести на принтер Вход: АН=О5h DL - символ, записываемый на стандартный принтер Описание. Посылает символ в DL на стандартное устройство печати, обычно LPT1. DOS, функция 06h. Консольный ввод-вывод Вход: AH=06h DL=OOh-FEh - символ, посылаемый на стандартный вывод DL=FFh - запрос ввода со стандартного ввода Выход: ZF=0, если осуществлялся ввод символа и символ готов при запросе ввода AL - считанный символ ZF=1, если осуществлялся ввод символа и символа в консоли нет Описание. При DL=OFFh выполняет ввод с консоли "Без ожидания", возвращая включенный флаг нуля ZF, если на консоли нет готового символа. Если символ готов, сбрасывает флаг ZF и возвращает считанный символ в AL. Если DL не равен OFFh, то DL направляется на стандартный вывод. DOS, функция 07h. Нефильтрующий консольный ввод без эха Вход: AH=07h Выход: AL - символ, полученный через стандартный ввод Описание. Считывает (ожидает) символ со стандартного входного устройства и возвращает этот символ в AL. Не проверяет на Ctrl-Break, Backspace и другие. Примечание. Для ввода расширенного символа ASCII должна быть вызвана дважды. Для проверки статуса используется функция DOS OBh (чтобы не ожи- дать нажатия клавиши). DOS, функция 08h. Консольный ввод без эха Вход: AH=08h Выход: AL - символ, полученный через стандартный ввод Описание. Считывает (ожидает) символ со стандартного входного устройства и возвращает этот символ в AL. При обнаружении Ctrl-Break выполняется прерывание INT 23h. Примечание. Для ввода расширенного символа ASCII должна быть вызвана дважды. DOS, функция 09h. Запись строки на стандартный вывод Вход: АН=09Н DS:DX - адрес строки, заканчивающейся символом "$" (ASCII 24h) Описание. Строка, исключая завершающий ее символ "$", посылается на стандартный вывод. Символы Backspace обрабатываются как в функции 02h (вывод на дисплей). Чтобы перейти на новую строку, обычно включают в текст пару CR/LF (ASCII ODh и ASCII OAh). Строки, содержащие "$", можно передать на стандартное устройство вывода с помощью функции 40h (ВХ-0). DOS, функция OAh. Ввод строки в буфер Вход: AH=OAh DS:DX - адрес входного буфера (Таблица Б-1) Выход: Буфер содержит введенные данные, в конце - символ CR (ASCII ODh) DOS, функция OBh. Проверка статуса ввода Вход: AH=OBh Выход: AL=FFh, если символ доступен со стандартного ввода AL=OOh, если нет доступного символа Описание. Проверяет состояние стандартного ввода. При распознавании Ctrl-Break выполняется INT 23h. Примечания. Используется перед функциями Olh, 07h и 08h, чтобы избежать ожидания нажатия клавиши. Эта функция дает простой неразрушающий способ проверки Ctrl-Break в процессе длинных вычислений или другой обработки, обычно не требующей ввода. Это позволяет снимать счет по нажатию Ctrl-Break. DOS, функция OCh. Ввод с очисткой Вход: АН=ОСh AL - номер функции ввода DOS: AL=01h - ввод с клавиатуры AL=06h - ввод с консоли AL=07h - нефильтрующий без эха AL=08h - ввод без эха AL=OAh - буферизованный ввод Описание. Очищает буфер опережающего ввода стандартного ввода, а затем вызывает функцию ввода, указанную в AL. Это заставляет систему ожидать ввод очередного символа. DOS, функция ODh. Сброс диска Вход: AH=ODh Описание. Сбрасывает диск (записывает на диск все файловые буферы). Файл, размер которого изменился, должен быть предварительно закрыт (при помощи функций 10h или 3Eh). DOS, функция OEh. Установить текущий диск DOS Вход: АН=ОЕh DL - номер диска (0 - А, 1 - В и так далее), который становится текущим Выход: AL - общее число дисководов в системе Описание. Диск, указанный в DL, становится текущим. Проверка: используется функция 19h (дать текущий диск). В регистре AL возвращается число дисководов всех типов, включая жесткие диски и "логические" диски (как диск В: системе с одним гибким диском). Примечание. AL имеет то же значение, что и LASTDRIVE, указанное в файле CONFIG.SYS, и по умолчанию равно 5. DOS, функция OFh. Открыть файл через FCB Вход: AH=OFh DS:DX - адрес неоткрытого FCB (Таблица Б-2) Выход: AL=OOh, если функция выполнена успешно (FCB заполнен) AL=FFh, если файл не найден или доступ к файлу не разрешен Описание. Файл, описываемый неоткрытым FCB, должен существовать в текущем оглавлении на диске, специфицированном в FCB (0 - текущий, 1 - А, 2 - В и так далее). Если файл не существует, возвращается AL=OFFh. Файл открывается в режиме совместимости. Если поле "Номер диска" в FCB равно нулю в момент вызова, то оно заполняется номером текущего дисковода (1 -А,2-Ви так далее). Поле FCB "Номер текущего блока" устанавливается в ноль. Поле FCB "Размер логической записи" устанавливается в 80h. Поля даты и размера файла в FCB устанавливаются из оглавления. DOS, функция 10h. Закрыть файл через FCB Вход: AH=10h DS:DX - адрес открытого FCB (Таблица Б-2) Таблица Б-2. Формат FCB.
Выход: AL=OOh, если функция выполнена успешно AL=FFh, если файл не найден там, где он находился при открытии с помощью функции OFh Описание. Закрывает файл, открытый функцией OFh. Файл должен находиться на своем первоначальном месте в текущем оглавлении диска, на котором он был открыт. Если файл найден, оглавление обновляется, файловые буфера сбрасываются и возвращается AL=OOh. Если файл не найден, оглавление не обновляется и возвращается AL=FFh. DOS, функция 11h. Найти первый совпадающий файл через FCB Вход: AH=llh DS:DX - адрес неоткрытого FCB (Таблица Б-2) Выход: AL=OOh, если подходящее имя найдено DTA заполнен AL=FFh, если подходящего имени нет Описание. В текущем оглавлении DOS происходит поиск файлов с именем, соответствующим заданному шаблону. При неудаче возвращается AL=OFFh. Если имя найдено, AL очищается, в первый байт DTA помещается номер дисковода (А - 1, В - 2 и так далее), а в следующие 32 байта помещается элемент оглавления для найденного файла. Можно использовать при вызове расширенный FCB, чтобы выбирать файлы с указанными атрибутами. В этом случае в DTA помещаются: байт FFh, 7 байт нулей, номер диска и элемент оглавления. DOS, функция 12h. Найти следующий совпадающий файл через FCB Ввод: АН=12h DS:DX - адрес неоткрытого FCB (Таблица Б-2) Выход: AL=OOh, если подходящее имя найдено DTA заполнен AL=FFh, если подходящего имени нет Описание. Используется после вызова функции llh (Найти первый совпадающий файл через FCB) с обобщенным именем файла. Каждый последующий вызов заполняет DTA очередным подходящим элементом оглавления и возвращает AL=OOh. Если подходящих имен больше нет, возвращается AL=FFh. Резервируемая область в FCB сохраняет информацию, необходимую для продолжения поиска. Поэтому не стоит открывать и изменять FCB между вызовами. DOS, функция 13h. Удалить файл через FCB Вход: AH=13h DS:DX - адрес неоткрытого FCB (Таблица Б-2) Выход: AL=OOh, если функция выполнена успешно AL=FFh, если файл не найден или доступ к файлу не разрешен Описание. Эта функция удаляет все подходящие файлы в текущем оглавлении указанного диска согласно спецификации в FCB. Если подходящие файлы не найдены или если доступ отвергнут (как при попытке удалить файл с атрибутом Read-Only), функция возвращает в регистре AL значение FFh. DOS, функция 14h. Последовательное чтение из файла через FCB Вход: AH=14h DS:DX - адрес открытого FCB (Таблица Б-2) Выход: AL=OOh, если чтение было успешным и DTA содержит данные AL=01h, если достигнут конец файла (EOF) и данные не считаны AL=02h, если произошел выход за сегмент (чтения не было) AL=03h, если EOF и считана усеченная запись (дополнена нулями) Описание. Функция читает файл, специфицированный в FCB. Затем соответственно увеличивает значения полей в FCB. Перед началом последовательной обработки файла нужно сбрасывать CurRec в ноль, так как функция OFh не инициализирует это поле. DOS, функция 15h. Последовательная запись в файл через FCB Вход: AH=15h DS:DX - адрес открытого FCB (Таблица Б-2) Выход: AL=OOh, если запись была успешной AL=01h, если ошибка переполнения диска (данные не записаны) AL=02h, если произошел выход за сегмент (записи не было) Описание. Функция записывает файл, специфицированный в FCB. Затем соответственно увеличивает значения полей в FCB. Перед началом последовательной обработки файла нужно сбрасывать "Номер текщей записи" в ноль, так как функция OFh не инициализирует это поле. Примечание. DOS буферизует данные, записывая полный сектор за один раз. DOS, функция 16h. Создание файла через FCB Вход: АН=16h DS:DX - адрес неоткрытого FCB (Таблица Б-2) Выход: AL=OOh, если функция выполнена успешно FCB заполнен AL=FFh, если при выполнении функции возникли ошибки Описание. Файл, специфицированный неоткрытым FCB, создается на диске, указанном в FCB (0 - текущий, 1 - А и так далее). Он открывается в текущем оглавлении этого диска. FCB заполняется аналогично функции OFh. Если файл существует в момент вызова, его элемент оглавления перекрывается новым файлом, а длина файла сбрасывается в ноль. Примечание. Handle-ориентированные функции DOS 2.0+ гораздо удобнее в работе. DOS, функция 17h. Переименовать файл через FCB Вход: AH=17h DS:DX - адрес измененного FCB (Таблица Б-2) Выход: AL=OOh, если функция выполнена успешно AL=FFh, если при выполнении функции возникли ошибки Описание. Переименовывает файл в текущем оглавлении. DOS, функция 19h. Получить текущий диск DOS Вход: AH=19h Выход: AL - номер текущего диска (0 - А, 1 - В, и так далее) Описание. Возвращает номер дисковода текущего диска DOS. DOS, функция 1Ah. Установить адрес DTA Вход: AH=1Ah DS:DX - адрес DTA Описание. Устанавливает адрес DTA. Все FCB-ориентированные операции работают с DTA. DOS не позволяет операциям ввода/вывода пересекать границу сегмента. Функции поиска llh, 12h, 4Eh и 4Fh помещают данные в DTA. DTA глобальна, поэтому надо проявлять осторожность при назначении ее в рекурсивной процедуре. При запуске программы ее DTA устанавливается по смещению 80h относительно PSP. DOS, функция 1Bh. Получить информацию FAT для текущего диска Вход: AH=1Bh
DS:BX - адрес байта FAT ID,
отражающего тип диска (Таблица Б-3)
DX - всего кластеров (единиц распределения) на
диске
AL - секторов на кластер
СХ - байт на сектор Таблица Б-3. Значения ID.
Описание. Возвращает информацию о
размере и типе текущего диска. Размер диска (в байтах) равен DX*AL*CX. Свободную память можно
найти функциями 36h или 32h. Версии: DOS l.x держит FAT в памяти и
возвращает DS:BX => FAT.
DOS 2.0+ может держать в памяти лишь часть всей FAT.
Примечание.
Эта функция изменяет содержимое регистра DS. DOS, функция 1Ch. Получить информацию FAT для указанного диска
Вход: АН=1Ch
DL - номер диска (0 - текущий, 1 - А и так далее) Выход: DS:BX - адрес байта FAT ID,
отражающего тип диска (приведен в опи-
сании функции IBh) DX - всего кластеров (единиц
распределения)
AL - секторов на кластер
СХ - байт на сектор Описание. Аналогична функции IBh с той
разницей, что регистр DL указывает диск, для которого нужно
получить информацию. DOS, функция 21h. Считать произвольную запись файла Вход: AH=21h
DS:DX - адрес открытого FCB (Таблица Б-2) Выход: AL=OOh, если чтение было
успешным и DTA заполнена данными
AL=01h, если достигнут конец файла (EOF) и чтения не
было
AL=02h, если произошел выход за сегмент (чтения нет)
AL=03h, если встречен EOF и усеченная запись
дополнена нулями Описание. Данная функция читает из
файла с текущей позиции как с указанной в полях FCB "Запись с
текущей позиции" и "Номер записи при непосредственном доступе к файлу". DOS, функция 22h. Писать произвольную запись файла Вход: AH=22h
DS:DX - адрес открытого FCB (Таблица Б-2) Выход: AL=OOh, если запись была
успешной AL=01h, при переполнении
диска AL=02h, если DTA+FCB выходит за
сегмент (нет записи) Описание. Данная функция записывает
в файл с текущей позиции как с указанной
в полях FCB "Запись с текущей позиции" и "Номер
записи при непосредственном доступе к файлу". DOS, функция 23h. Получить размер файла через FCB Вход: АН=2Зh
DS:DX - адрес неоткрытого FCB (Таблица Б-2) Выход: AL=OOh, если функция
выполнена успешно
AL=FFh, если при выполнении функции возникли ошибки
Описание. Проще определить размер
файла при помощи функции 3Dh с последующим выполнением 42h (при AL=2). DOS, функция 24h. Установить адрес произвольной записи в файле
Вход: AH=24h
DS:DX - адрес открытого FCB (Таблица Б-2) Описание. Устанавливает поле "Номер
записи при непосредственном доступе
к файлу" в FCB на файловый адрес, соответствующий
значениям полей
"Текущий блок" и "Запись с текущей позиции". DOS, функция 25h. Установить вектор прерывания Вход: AH=25h AL - номер прерывания DS:DX - вектор прерывания -
адрес программы обработки прерывания Описание. Устанавливает значение
элемента таблицы векторов прерываний для
прерывания с номером AL, равным DS:DX. Это
равносильно записи
4-байтового адреса в 0000:(AL*4), но, в отличие от
прямой записи, DOS
знает, что происходит, и гарантирует, что в момент
записи прерывания
будут заблокированы. Примечание.
Восстановить DS (если необходимо) после этого
вызова. DOS, функция 26h. Создать новый PSP Вход: AH=26h DX - адрес сегмента
(параграфа) для нового PSP CS - сегмент PSP, используемый
как шаблон для нового PSP (Таблица Б-4) Описание. Устанавливает PSP для
порождаемого процесса по адресу DX:0000.
Текущий PSP (lOOh байт, начиная с CS:0) копируется в
DX:OOOOh, поле
МетТор соответственно корректируется, векторы
Terminate, Ctrl-Break
и Critical Error копируются в PSP из векторов прерываний
INT 22h,
INT 23h и INT 24h. После этого можно загрузить программу
с диска
и передать ей управление посредством FAR JMP. Примечание. Если перехватывается INT 21h,
нужно позаботиться о помещении в стек корректного CS:IP. Еще лучше
использовать функцию 4Ch. Таблица Б-4. Формат PSP. DOS, функция 27h. Читать произвольный блок файла Вход: AH=27h DS:DX - адрес открытого FCB
(Таблица Б-2) СХ - число считываемых
записей Выход: AL=OOh, если чтение успешно и
DTA заполнена данными
AL=01h если достигнут конец файла (EOF) и данные не
считаны
AL=02h, если при чтении произошел выход за границу
сегмента
AL=03h, если EOF и считана усеченная порция (дополнена
нулями)
СХ - действительное число считанных записей Описание. Читает несколько записей
из файла, начиная с файлового адреса, указанного полем "Номер записи при
непосредственном доступе к файлу"
в FCB. Помещает данные в память, начиная с адреса DTA.
Соответствующие поля FCB корректируются, чтобы указывать на
следующую запись (первую за прочитанными). DOS, функция 28h. Писать произвольный блок файла Вход: АН=28Н DS:DX - адрес открытого FCB
(Таблица Б-2)
СХ - число записываемых блоков (если СХ равен
нулю, то размер файла усекается до указанного в поле FCB "Номер
записи при непосредстванном доступе к файлу") Выход: AL=OOh, если запись успешна
"1!
AL=01h, при переполнении диска AL=02h, если при записи
произошел выход за границу сегмента
СХ - действительное число сделанных записей Описание. Записывает несколько
блоков в файл, начиная с файлового адреса, указанного полем "Номер записи при
непосредственном доступе к файлу"
в FCB. Читает данные из памяти, начиная с адреса DTA.
Соответствующие поля FCB корректируются, чтобы указывать на
следующую запись (первую за прочитанными). DOS, функция 29h. Разобрать имя файла Вход: AH=29h DS:SI - адрес исходной
текстовой строки для разбора ES:DI - адрес буфера для
результирующего неоткрытого FCB (Таблица Б-2) AL - битовые флаги,
указывающие опции разбора (Таблица Б-5). Выход: AL=OOh, если результирующий FCB
не содержит обобщенных символов
AL=01h, если результирующий FCB содержит обобщенные
символы
AL=FFh, если неверно обозначение диска в имени
файла
DS:SI - изменен - указывает на символ сразу вслед за
именем файла
ES:DI - не изменен - указывает на неоткрытый FCB Описание. Создает неоткрытый FCB из
строки текста или параметра команды.
Текст, начиная с DS:SI, анализируется как имя файла
в формате
D.-FILENAME.EXT, и буфер по адресу ES:DI заполняется как
соответственно форматированный FCB. Таблица Б-5. Битовые
флаги. DOS, функция 2Ah. Получить системную дату Вход: АН=2АН Выход: AL - день недели (0 -
воскресенье, 1 - понедельник, ... 6 - суббота),
DOS 3.0+ СХ - год (от 1980 до 2099)
DH - месяц (1 до 12)
DL - день (1 до 31) Описание.
Возвращает текущую дату, которая известна
системе. Версии. DOS 2.x не гарантирует
возврата в AL значения дня.
DOS 1.0+ возвращает правильный день недели.
Версии до 2.1 имеют проблемы с переходом через
дату. DOS, функция 2Bh. Установить системную дату Вход: AH=2Bh СХ - год (от 1980 до 2099) Выход: AL=OOh, если дата корректна, Описание.
Устанавливает системную дату DOS. DOS, функция 2Ch. Получить время DOS Вход: AH=2Ch Выход: СН - часы (от 0 до 23) Описание.
Возвращает текущее время, которое известно
системе. Примечание. Поскольку системные часы
имеют частоту 18.2 Гц (интервал 55мс), DL имеет точность примерно
0.04 сек. DOS, функция 2Dh. Установить время DOS Вход: AH=2Dh СН - часы (от 0 до 23) CL - минуты (от 0 до 59) DH - секунды (от 0 до 59) DL - сотые доли секунды (от 0
до 99) Выход: AL=OOh, если время корректно
AL=FFh, если время некорректно и не изменено Описание.
Устанавливает системное время DOS. DOS, функция 2Eh. Установить/сбросить переключатель верификации
Вход: AH=2Eh AL=OOh - отключить
верификацию AL=01h - включить верификацию
Описание. Задает, должна ли DOS
верифицировать (считывать обратно) каждый
сектор, записываемый на диск. Это замедляет
операции записи на диск,
но гарантирует максимальную надежность записи.
DOS, функция 2Fh. Получить адрес текущей DTA Вход: AH=2Fh Выход: ES:BX - адрес начала текущей
DTA Описание. Возвращает адрес начала
области ввода-вывода (DTA). Поскольку DTA
глобальна для всех процессов, в рекурсивной
процедуре (например, при
проходе по дереву оглавления) может
потребоваться сохранить адрес
DTA, а впоследствии восстановить его посредством
функции lAh. Примечание.
Эта функция изменяет сегментный регистр ES. Версии: DOS 2.00 и выше DOS, функция 3Оh. Получить номер версии DOS Вход: AH=30h Выход: AL - старший номер версии
АН - младший номер версии BL:CX - 24-битный серийный
номер (большинство версий не поддерживают этот параметр) Описание. Возвращает в АХ значение
текущего номера версии DOS. Например,
для DOS 3.20 в AL возвращается 03h, в АН - 14h. Примечание. Если в AL возвращается OOh,
можно предполагать, что работает DOS более ранней версии, чем DOS
2.0. Версии: DOS 2.00 и выше. DOS, функция 31h. Завершиться и остаться резидентным Вход: AH=31h AL - код выхода DX - объем памяти,
оставляемой резидентной (в параграфах) Описание. Выходит в родительский
процесс, сохраняя код выхода в AL. Код выхода можно получить через функцию 4Dh. DOS
устанавливает начальное
распределение памяти, как специфицировано в DX, и
возвращает управление родительскому процессу, оставляя
указанную память резидентной
(число байт равно DX*16). Эта функция перекрывает
функцию
INT 27h, которая не возвращает код выхода и не
способна установить
резидентную программу, размер которой превышает
64Кбайт. Версии: DOS 2.00 и выше. DOS, функция 32h. Получить информацию DOS о диске (Официально не
документирована) Вход: AH=32h
DL - номер диска (0 - текущий, 1 - А и так далее) Выход: AL=OOh, если в DL был задан
корректный диск DS:BX - адрес блока
информации о диске для запрошенного устройства (Таблица Б-6) AL=FFh, если в DL был задан
некорректный диск Описание. Возвращает блок
информации, представляющей интерес для приложений и утилит, которые выполняют доступ к дискам,
поддерживаемым
драйверами устройств, на уровне секторов. Некоторые дисководы
(особенно незагружаемые) функционируют только
через свои драйвера устройств. Такие диски могут
содержать неверную
информацию в корневой записи и таблице разделов,
что делает очень трудным определение,
например, размера корневого оглавления, числа
таблиц FAT и прочего. Блок информации диска
содержит такие данные
в хорошо форматированной структуре. Версии: DOS 2.00 и выше. Таблица Б-6. Формат блока
информации о диске. Таблица Б-6. Формат блока
информации о диске. {Окончание) DOS, функция 33h. Установить/опросить статус Ctrl-Break Вход: AH=33h AL=OOh - опросить текущий
статус контроля Ctrl-Break Выход: DL - текущий статус (0 -
выключен, 1 - включен) Описание. Если AL=OOh, в DL возвращается
текущий статус контроля Ctrl-Break. Если AL=01h, в DL возвращается
новый текущий статус. Когда статус "включен", DOS
при выполнении большинства функций
(исключая 06h и 07h) проверяет, нажаты ли клавиши
Ctrl-Break. Если
это обнаружено, выполняется прерывание INT 23h (если
оно не перехватывается, то процесс снимается). При статусе "выключен" DOS
проверяет на нажатие Ctrl-Break лишь
при выполнении операций стандартного
ввода/вывода, стандартной печати и стандартного AUX. Версии: DOS 2.00 и выше. DOS, функция 34h. Получить адрес флага активности DOS (Официально не
документирована) Вход: AH=34h Выход: ES:BX - адрес флага
активности DOS Описание. Функция возвращает флаг
активности DOS, который показывает, можно ли на данный момент вызывать функции DOS. Эту
функцию использует, например, функция фоновой печати PRINT.
Если ES:[BX] не нулевой,
фоновая программа (TSR либо popup)
не должна использовать никаких функций DOS. Версии: DOS 2.00 и выше. DOS, функция 35h. Получить вектор прерывания Вход: AH=35h
AL - номер прерывания (OOh до FFh) Выход: ES:BX - адрес обработчика
прерывания Описание. Возвращает значение
вектора прерывания для INT (AL), то есть загружает в ВХ 0000:[AL*4],
а в ES - 0000:[(AL*4)+2]. Примечание.
Эта функция изменяет сегментный регистр ES. Версии: DOS 2.00 и выше. DOS, функция 36h. Получить свободную память диска Вход: АН=З6h
DL - номер диска (0 - текущий, 1 - А и так далее) Выход: AX=FFFFh, если AL содержал
неверный номер диска
Если функция выполнена успешно: AX - число секторов на
кластер Описание. Возвращает данные,
полезные для подсчета общей и доступной дисковой памяти. Если в АХ
возвращено FFFFh, значит задан
неверный
диск. Иначе свободная память (в байтах)
составляет (АХ*ВХ*СХ), всего памяти (AX*CX*DX) байт. Версии: DOS 2.00 и выше. DOS, функция 37h. Установить/опросить символ-переключатель
(Официально не
документирована) Вход: AH=37h AL=OOh - опросить текущий
переключатель Выход: AL=OOh, если функция
выполнена успешно DL - текущий
символ-переключатель DOS (если при вызове AL=OOh) Описание. Устанавливает или
опрашивает "Глобальный переключатель" DOS. Переключатель (SWITCHAR) - это
символ, используемый в
командной
строке как признак опции. По умолчанию
принимается "/" (например,
DIR /w/p), но его можно изменить на "-" (DIR -w-p), если
нужно, чтобы система была больше похожа на UNIX. Общепринято
опрашивать
значение SWITCHAR перед разбором области
неформатированных параметров в PSP для выделения опций команды. Примечание. Эта недокументированная
команда может измениться в будущих версиях DOS. He рекомендуется изменять SWITCHAR. Версии: DOS 2.00 и выше. DOS, функция 38h. Получить/установить информацию о стране Вход: AH=38h
Получить информацию: AL=OOh - получить данные для
текущей страны DS:DX - адрес локального
буфера для чтения блока данных страны (Таблица Б-7)
Установить информацию: AL=01h-FEh - установить данные
для указанной страны < 255 AL=FFh - установить данные для
кода страны > 255 ВХ - 16-битный код страны
(Таблица Б-8) DX=FFFFh Выход: CF=0, если функция выполнена
успешно ВХ - код страны
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Если DX=FFFFh, то текущий код
страны устанавливается равным AL
(если AL=FFh, то код страны устанавливается равным
ВХ). Обычно код
страны устанавливается в файле CONFIG.SYS. Если
DX<FFFFh,
то DS:DX адресует буфер пользователя, в который
помещается 20Ь-байтный блок данных для указанной страны. Версии: DOS 2.00 и выше. DOS, функция 39h. Создать новое оглавление Вход: АН=З9h
DS:DX - адрес строки ASCIZ с именем оглавления Таблица 6-7. Формат блока
данных страны. Выход: CF=0, если функция выполнена
успешно АХ не сохранен
CF=1, если при выполнении функции возникли ошибки
АХ - код ошибки Описание. Если диск и/или корневой
путь не указаны, то новое оглавление создается в текущей директории. Поддиректория
создается и связывается Таблица Б-8. Коды
некоторых стран. с существующим деревом.
Если флаг CF установлен при возврате,
то АХ содержит код ошибки, и оглавление не
создается. Версии: DOS 2.00 и выше. DOS, функция 3Ah. Удалить оглавление Вход: АН=ЗАh
DS:DX - адрес строки ASCIZ с именем оглавления Выход: CF=0, если функция выполнена
успешно АХ не сохранен
CF=1, если при выполнении функции возникли ошибки
АХ - код ошибки Описание. Если диск и/или корневой
путь не указаны, принимаются значения по
умолчанию. Поддиректория удаляется из структуры
оглавлений. Если
флаг CF установлен при возврате, то АХ содержит
код ошибки, и оглавление не удаляется. Примечание. Оглавление не должно
содержать файлов и поддиректорий, оно не должно
попадать под влияние возможных ограничений DOS
(например, не должно быть задействовано в активных командах JOIN или
SUBST). Версии: DOS 2.00 и выше. DOS, функция 3Bh. Установить текущую директорию Вход: АН=ЗВh
DS:DX - адрес строки ASCIZ с именем оглавления Выход: CF=0, если функция выполнена
успешно АХ не сохранен
CF=1, если при выполнении функции возникли ошибки
АХ - код ошибки Описание. Если диск и/или корневой
путь не указаны, принимаются значения по
умолчанию. Указанная поддиректория становится
текущим оглавлением DOS для этого (или текущего) диска. Если флаг CF
установлен при
возврате, то АХ содержит код ошибки, и текущее
оглавление для выбранного диска не изменяется. Версии: DOS 2.00 и выше. DOS, функция 3Ch. Создать файл через описатель Вход: АН=3Сh DS:DX - адрес строки ASCIZ с
именем файла СХ - атрибут файла
(атрибуты приведены в описании функции DOS 43h) Выход: CF=0, если функция выполнена
успешно АХ - описатель файла
CF=1, если при выполнении функции возникли ошибки
АХ - код ошибки Описание.
Если диск и/или путь не указаны, принимаются
значения по умолчанию. Версии: DOS 2.00 и выше. DOS, функция 3Dh. Открыть описатель файла Вход: AH=3Dh DS:DX - адрес строки ASCIZ с
именем файла AL - режим открытия: AL=OOh, чтобы открыть для
чтения Выход: CF=0, если функция выполнена
успешно AX - описатель файла
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Файл открывается в
выбранном режиме доступа (режиме открытия).
Если диск и/или путь не указаны, принимаются
указанные по умолчанию. Файл должен существовать. Указатель
чтения/записи устанавливается в ноль. Версии: DOS 2.00 и выше. DOS, функция 3Eh. Закрыть описатель файла Вход: АН=ЗЕh
ВХ - описатель файла Выход: CF=0, если функция
выполнилась успешно АХ не сохранен
CF=1, если при выполнении функции возникли ошибки
АХ - код ошибки Описание. ВХ содержит описатель
файла (handle), возвращенный при открытии.
Файл, представленный этим описателем,
закрывается, его буферы сбрасываются и оглавление обновляется корректными
размером, временем
и датой. Из-за недостатка описателей файлов
(максимум 20, по умолчанию установлено 8), возможно, придется закрыть
часть текущих описателей, как, например, описатель 3 (стандартный AUX).
Версии: DOS 2.00 и выше. DOS, функция 3Fh. Читать файл через описатель Вход: AH=3Fh ВХ - описатель файла DS:DX - адрес буфера для
чтения данных СХ - число считываемых байт
Выход: CF=0, если функция выполнена
успешно AX - число действительно
прочитанных байт
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. СХ байт данных считываются
из файла или устройства с описателем,
указанным в ВХ. Данные читаются с текущей позиции
указателя чтения/записи файла и помещаются в буфер вызывающей
программы, адресуемый через DS:DX. Если необходимо установить
позицию чтения/
записи, можно использовать функцию 42h. Эта
функция обновляет указатель чтения/записи файла, чтобы подготовиться
к последующим операциям чтения или записи. Версии: DOS 2.00 и выше. DOS, функция 40h. Писать в файл через описатель Вход: AH=40h ВХ - описатель файла DS:DX - адрес буфера,
содержащего записываемые данные СХ - число записываемых
байт Выход: CF=0, если функция выполнена
успешно AX - число действительно
записанных байт
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. СХ байт данных
записываются в файл или на устройство с
описателем,
заданным в ВХ. Данные берутся из буфера,
адресуемого через DS:DX,
и записываются, начиная с текущей позиции
указателя чтения/записи
файла. Чтобы установить указатель файла, если
необходимо, можно использовать функцию 42h. Обновляет указатель
чтения/записи файла,
чтобы подготовиться к последующим операциям
чтения или записи. Версии: DOS 2.00 и выше. DOS, функция 41h. Удалить файл Вход: AH=41h
DS:DX - адрес строки ASCIZ с именем файла Выход: CF=0, если функция выполнена
успешно АХ не сохранен
CF=1, если при выполнении функции возникли ошибки
АХ - код ошибки Описание. Файл удаляется из
оглавления заданного диска. Если диск и/или путь
не указаны, принимаются значения по умолчанию.
Имя файла не может
содержать обобщенные символы ("?" и "*"). Если файл
имеет атрибут
"только чтение", то перед удалением необходимо
изменить этот атрибут
через функцию 43h. Версии: DOS 2.00 и выше. DOS, функция 42h. Переместить указатель файла Вход: AH=42h ВХ - описатель файла Выход: CF=0, если функция выполнена
успешно DX:AX новая позиция
указателя файла (если нет ошибки)
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Перемещает логический
указатель чтения/записи к нужной позиции. Очередная операция чтения
или записи начнется с этого адреса. Примечание. Вызов с AL=2, CX=0, DX=0
возвращает длину файла в DX:AX. Действительная длина
файла равна (DX*65536)+AX. Версии: DOS 2.00 и выше. DOS, функция 43h. Установить/опросить атрибуты файла Вход: AH=43h DS:DX - адрес строки ASCIZ с
именем файла AL=OOh - извлечь текущий
атрибут файла AL=01h - установить атрибут
файла СХ - новый атрибут файла
(для подфункции 01Ь)(Таблица Б-9) Выход: CF=0, если функция выполнена
успешно СХ - текущий атрибут файла
(для подфункции ООЬ)(Таблица Б-9) АХ не сохранен
CF=1, если при выполнении функции возникли ошибки
АХ - код ошибки Таблица Б-9. Атрибуты файла.
Описание. Атрибут файла читается или
устанавливается, согласно коду в AL. Если диск и/или путь не
указаны, принимаются значения по умолчанию. Примечание. Чтобы скрыть оглавление,
нужно использовать CX=02h (а не 12h, как можно было ожидать). Версии: DOS 2.00 и выше. DOS, функция 44h. Управление устройством ввода/вывода Вход: AH=44h
AL - код подфункции: AL=OOh - получить информацию
об устройстве Версии: DOS 2.00 и выше. DOS, функция 45h. Дублировать описатель файла Вход: AH=45h
ВХ - существующий описатель файла Выход: CF=0, если функция выполнена
успешно AX - новый описатель файла,
дублирующий оригинал
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Создает дополнительный
описатель файла, ссылающийся на тот же поток ввода/вывода, что и существующий описатель.
Любое продвижение
указателя чтения/записи одного описателя
(включая любые операции
чтения, записи или перемещения указателя
посредством функции 42h)
действует на его дубликат. Версии: DOS 2.00 и выше. DOS, функция 46h. Переназначить описатель Вход: АН=46h ВХ - целевой описатель
файла (должен уже существовать) СХ - исходный описатель
файла (должен уже существовать) Выход: CF=0, если функция выполнена
успешно
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Заставляет описатель
файла (handle) ссылаться на другой файл или устройство. Если описатель в СХ (источник) открыт,
он закрывается, а затем становится
дубликатом описателя в ВХ (назначения). Иными
словами, описатели в СХ и ВХ будут ссылаться на
один и тот же физический файл или устройство. Версии: DOS 2.00 и выше. DOS, функция 47h. Получить текущее оглавление DOS Вход: AH=47h DS:SI - адрес локального
буфера для результирующего пути - 64 байта DL - номер диска (0 - текущий, 1
- А и так далее) Выход: CF=0, если функция выполнена
успешно АХ не сохранен
CF=1, если при выполнении функции возникли ошибки
АХ - код ошибки Описание. В буфер по адресу DS:SI
помещается в форме ASCIZ путь текущего оглавления для диска, указанного в DL. Путь
возвращается в формате: "путь\оглавление",0.
Впереди не подставляется буква диска, а сзади не
подставляется символ "\". Например, если текущим
является корневое
оглавление, эта функция вернет пустую строку
(DS:[SI]=0). Версии: DOS 2.00 и выше. DOS, функция 48h. Выделить память Вход: AH=48h
ВХ - запрошенное количество памяти в 16-байтных
параграфах Выход: CF=0, если функция выполнена
успешно АХ - сегментный адрес
распределенного блока
CF"!, если при выполнении функции возникли
ошибки АХ - код ошибки ВХ - размер максимального
доступного блока памяти (в параграфах) Описание. Распределяет блок памяти
длиной ВХ параграфов, возвращая сегментный адрес этого блока в АХ (блок начинается с
АХЮООО). Если распределение неудачно, устанавливается флаг CF, в АХ
возвращается код
ошибки, а ВХ содержит максимальный размер
доступной для распределения памяти (в параграфах). Чтобы определить
наибольший доступный блок, общепринято устанавливать BX=FFFFh перед
вызовом.
Распределение завершится с ошибкой, возвратив
размер максимального блока памяти в ВХ. Версии: DOS 2.00 и выше. DOS, функция 49h. Освободить блок памяти Вход: AH=49h
ES - сегментный адрес освобождаемого блока памяти
Выход: CF=0, если функция выполнена
успешно
CF=1, если при выполнении функции возникли ошибки
АХ - код ошибки Описание. Освобождает блок памяти,
начинающийся с адреса ES:0000. Этот блок
становится доступным для других запросов
системы. Вообще говоря,
нужно освобождать лишь те блоки памяти, которые
получены через
функцию 48h (распределить память). Родитель
отвечает за освобождение памяти порожденных процессов. Тем не менее,
ничто не препятствует освобождать память чужих процессов. Версии: DOS 2.00 и выше. DOS, функция 4Ah. Изменить размер блока памяти Вход: АН=4Аh ES - сегмент
распределенного блока памяти ВХ - нужный размер блока в
16-байтных параграфах Выход: CF=0, если функция выполнена
успешно CF=1, если при выполнении
функции возникли ошибки
AX - код ошибки
ВХ - размер максимального доступного блока
памяти (в параграфах) Описание. Изменяет размер
существующего блока памяти. Когда программа
получает управление, функция 4Bh уже распределила блок
памяти, начиная
с PSP, который содержит всю доступную память. Чтобы
освободить память для запуска порождаемых процессов, блок
памяти, начинающийся
с PSP, необходимо сначала сжать. Примечание.
Функция 31h и INT 27h (TSR) сжимают блок по адресу PSP. Версии: DOS 2.00 и выше. DOS, функция 4Bh. Выполнить или загрузить программу Вход: AH=4Bh DS:DX - адрес строки ASCIZ с
именем файла, содержащего программу ES:BX - адрес ЕРВ (блока
параметров ЕХЕС) AL=°OOh - загрузить и
выполнить AL=01h - загрузить, но не
выполнять AL=03h - загрузить
программный оверлей Выход: CF=0, если функция выполнена
успешно ВХ, DX не сохранены
СЕ=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Данная функция загружает в
память и запускает программу, имя которой указано в регистрах DS:DX. Запущенная программа
после завершения работы возвратит управление запускаемой.
Если диск или путь
не указаны, принимаются значения по умолчанию.
ES:BX указывает
на блок памяти, подготовленный как ЕРВ, формат
которого зависит
от запрошенной подфункции в AL. Версии: DOS 2.00 и выше. DOS, функция 4Ch. Завершить программу Вход: AH=4Ch
AL - код выхода Описание. Возвращает управление от
порожденного процесса его родителю, устанавливая код выхода (его можно опросить функцией
4Dh). Управление
передается по адресу завершения в PSP
завершающейся программы.
Векторы Ctrl-Break и Critical Error восстанавливаются к
старым адресам, сохраненным в родительском PSP. Примечание. Значение ERRORLEVEL
(используемое в пакетных файлах DOS)
можно использовать для проверки кода выхода
самой последней программы. Версии: DOS 2.00 и выше. DOS, функция 4Dh. Получить код выхода программы Вход: AH=4Dh Выход: АН - код выхода последнего
завершившегося процесса AH=OOh - нормальное
завершение AH=01h - завершение через
Ctrl-Break INT 23h AH=02h - завершение по
критической ошибке устройства INT 24h AH=03h - завершение через
функцию 31h AL - код выхода Описание. Возвращает код выхода
последнего из завершившихся процессов. Эта
функция возвращает правильную информации/только
однажды для
каждого завершившегося процесса. Версии: DOS 2.00 и выше. DOS, функция 4Eh. Найти первый совпадающий файл Вход: АН=4Еh DS:DX - адрес строки ASCIZ с
именем файла (допускается использо-
вать символы "?" и "*")
СХ - атрибут файла для сравнения Выход: CF^^O, если функция выполнена
успешно DTA заполнена данными
(Таблица Б-10)
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Если диск и/или путь не
указаны, принимаются значения по умолчанию. Обобщенные символы "*" и "?" допускается
использовать в имени файла и расширении. Версии: DOS 2.00 и выше. DOS, функция 4Fh. Найти следующий совпадающий файл Вход: AH=4Fh DS:DX - адрес данных,
возвращенных предыдущей 4Eh (Найти пер-
вый файл) Выход: CF=0, если функция выполнена
успешно DTA заполнена данными
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Эту функцию можно
использовать после вызова 4Eh. Следующее имя файла, совпадающее по обобщенному имени и атрибуту
файла, копируется
в буфер по адресу DS:DX вместе с другой информацией
(Таблица Б-10). Примечание.
Параметр DS:DX добавлен в DOS 3.0. Версии: DOS 2.00 и выше. DOS, функция 52h. Получить адрес векторной таблицы связи (Официально не
документирована) Вход: АН=52h Выход: ES:BX - адрес векторной
таблицы связи (Таблица Б-11) Описание.
Данная функция возвращает адрес векторной
таблицы связи. Версии: DOS 2.00 и выше. Таблица Б-11. Формат векторной
таблицы связи. DOS, функция 54h. Получить переключатель верификации DOS Вход: AH=54h Выход: AL=OOh, если верификация
выключена (OFF)
AL=01h, если верификация включена (ON) Описание. Возвращает текущий статус
верификации записи DOS. Если в AL возвращается 1, то DOS считывает обратно каждый
сектор, записываемый
на диск, чтобы проверить правильность записи.
Функция DOS 2Eh позволяет установить/изменить режим верификации.
Версии: DOS 2.00 и выше. DOS, функция 56h. Переименовать/переместить файл Вход: AH=56h DS:DX - адрес старого ASCIZ
имени (путь/имя существующего файла) ES.-DI - адрес нового ASCIZ имени
(новые путь/имя) Выход: CF^O, если функция выполнена
успешно
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Старое имя DS:DX должно
существовать и не может содержать обобщенных символов. Диск и путь необязательны (если
они не указаны,
принимаются значения по умолчанию). Новое имя ES:DI
должно описывать несуществующий файл. Если указан диск, он
должен быть тем
же, что и в старом имени. Если диск или путь не
указаны, принимаются текущие. Если старое и новое имя содержат
разные пути (явные или
принятые по умолчанию), то элемент оглавления для
файла перемещается в оглавление, указанное в новом имени. Версии: DOS 2.00 и выше. DOS, функция 57h. Установить/опросить дату/время файла Вход: АН=57h AL=OOh - получить дату/время
файла AL=01h - установить дату/время
файла ВХ - описатель файла (handle)
СХ (если AL=1) - новая отметка
времени в формате время файла DX (если AL=1) - новая отметка
даты в формате дата файла Выход: CF=0, если функция выполнена
успешно СХ - (если при вызове AL=0)
отметка времени файла в формате
время/дата файла (Таблица Б-12) DX - (если при вызове AL=0)
отметка даты файла в формате время/дата файла (Таблица Б-13) CF=1, если при выполнении
функции возникли ошибки
AX - код ошибки Описание. ВХ должен содержать
описатель открытого файла (см. 3Ch или 3Dh).
DX и СХ задаются в формате памяти (например,
младшие 8 бит даты
находятся в DH). Версии: DOS 2.00 и выше. DOS, функция 59h. Получить расширенную информацию об ошибке
Вход: AH=59h
BX-OOOOh (номер версии: ООООЬ для DOS 3.0, 3.1 и 3.2) Таблица Б-12. Формат времени
файла. Таблица Б-13. Формат даты файла. Выход: AX - расширенный код ошибки
(0, если ошибки не было) ВН - класс ошибки BL - предлагаемое действие
СН - сфера (где произошла
ошибка) Описание. Эту функцию можно
использовать, чтобы уточнить, что предпринять
после сбоя функции DOS по ошибке (только DOS 3.0+). Ее
можно вызывать: в обработчике критических ошибок INT 24h,
после любой функции INT 21h, возвратившей флаг переноса после
вызова FCB-функции, возвратившей AL=FFh. Версии: DOS 3.00 и выше. DOS, функция 5Ah. Создать уникальный временный файл Вход: AH=5Ah DS:DX - адрес строки ASCIZ с
диском и путем (заканчивается симво-
лом "\")
СХ - атрибут файла Выход: CF=0, если функция выполнена
успешно AX - описатель файла DS:DX - (не изменяется) полное
ASCIZ-имя нового файла
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Открывает (создает) файл с
уникальным именем в каталоге, заданном
строкой ASCIZ, на которую указывает DS:DX. COMMAND.COM вызывает эту функцию,
когда создает временные
"канальные" файлы, используемые при переназначении ввода-вывода.
Описание пути должно
быть готово к добавлению в его конец имени файла.
Необходимо обеспечить минимум 12 байт в конце строки. Сама строка
должна быть заполнена в одной из форм: "d:\nyrb\",0 (указан диск и
путь), "d>,0 (текущее оглавление диска) или "d:\",0 (корневое
оглавление диска). Версии: DOS 3.00 и выше. DOS, функция 5Bh. Создать новый файл Вход: AH=5Bh DS:DX - адрес строки ASCIZ с
именем файла СХ - атрибут файла Выход: CF=0, если функция выполнена
успешно AX - описатель файла
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Файл открывается для
чтения/записи в совместимом режиме доступа.
Если диск и/или путь не указаны, принимаются
значения по умолчанию. Этот вызов идентичен функции DOS 3Ch с тем
исключением, что
он вернет ошибку, если файл с заданным именем уже
существует. Версии: DOS 3.00 и выше. DOS, функция 5Ch. Блокировать/разблокировать доступ к файлу
Вход: AH=5Ch AL - подфункция: AL=OOh - заблокировать
область файла AL=01h - разблокировать ранее
заблокированную область ВХ - описатель файла CX-.DX - смещение ((CX*65536)+DX) от
начала файла SLDI - длина блокируемой
области ((SI*65536)+DI) байт Выход: CF=0, если функция выполнена
успешно
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Блокирует или освобождает
доступ к участку файла, указанного в ВХ. Область файла с логическим
смещением CX:DX и длиной SLDI блокируется
(захватывается) или разблокируется
(освобождается). Смещение и длина обязательно должны быть указаны.
Разделение файлов
должно быть активизировано (командой SHARE), иначе
функция вернет
код ошибки "Неверный номер функции". Версии: DOS 3.00 и выше (при
обязательной загрузке SHARE). DOS, функция 62h. Получить адрес PSP Вход: AH=62h Выход: ВХ - сегментный адрес PSP
выполняющейся программы Описание. Эта функция возвращает в
ВХ адрес PSP текущей программы. Используется, для получения адреса параметров
командной строки, адреса окружения DOS и другой полезной информации,
содержащейся в PSP. Версии: DOS 3.00 и выше. DOS, функция 65h. Получить расширенную информацию страны Вход: AH=65h
DOS 3.3
AL - подфункция: AL=01h - дать расширенную
информацию страны DOS 3.3 DX - код страны ВХ - кодовая страница (FFFFh -
консоль)
СХ - размер буфера возврата (должен быть минимум 5
байт)
ES:DI - адрес буфера возврата Выход: CF=0, если функция выполнена
успешно ES:DI - адрес возвращенной
информации
CF=1, если при выполнении функции возникли ошибки:
AX - код ошибки Описание. Эта функция возвращает
различную национальную информацию.
Используется для получения формата даты, символа
валюты и других
данных, необходимых для вывода и сортировки
информации (во всех
странах, кроме США). Версии: DOS 3.30 и выше. DOS, функция 66h. Получить/установить глобальную кодовую страницу
Вход: AH=66h AL - подфункция: AL=01h - запросить текущую
глобальную кодовую страницу AL=02h - установить активную
кодовую страницу ВХ - (при AL=02h) кодовая
страница (Таблица Б-14) DX - (при AL=02h) системная
кодовая страница (устанавливаемая при загрузке) Выход: CF=0, если функция выполнена
успешно ВХ - (если при вызове AL=01h)
текущая активная кодовая страница
DX - (если при вызове AL=01h) системная кодовая
страница (устанавливаемая при загрузке) CF=1, если при выполнении
функции возникли ошибки
AX - код ошибки Описание. Эта функция выбирает новую
кодовую страницу или получает значение
текущей активной кодовой страницы (страниц).
Программа DOS
NLSFUNC должна быть загружена до этого вызова.
Функция используется в сочетании с 65h или 38h. Примечание. Устанавливая новую
активную кодовую страницу, DOS читает данные из файла COUNTRY.SYS. Версии: DOS 3.30 и выше. Таблица Б-14. Значения
кодовых страниц. DOS, функция 67h. Установить число описателей файлов Вход: AH=67h
ВХ - максимальное число описателей (до FFFFh) Выход: CF=0, если функция выполнена
успешно
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Эта функция устанавливает
максимальное число описателей файлов,
которые могут быть открыты одновременно. Если
значение ВХ меньше
20, то принимается 20. Если значение ВХ меньше
текущего максимума
(нужно сократить число описателей), и в данный
момент открыто более
чем ВХ файлов, то изменение будет иметь место,
когда число открытых
файлов не будет превышать устанавливаемый
максимум. Если ВХ больше текущего максимума (нужно увеличить число
описателей), то DOS
должна иметь доступную память, чтобы
распределить ее под новые описатели. Функция 4Ah позволяет освободить память,
чтобы она стала
доступной DOS. Версии: DOS 3.30 и выше. DOS, функция 68h. Завершить файл Вход: AH=68h
ВХ - описатель завершаемого файла Выход: CF=0, если функция выполнена
успешно
CF=1, если при выполнении функции возникли ошибки
AX - код ошибки Описание. Эта функция заставляет DOS
сбросить (записать на диск) буфера основной памяти для указанного описателя файла. DOS
обычно избегает
обмена с дисками, записывая данные в буфера в
основной памяти до
заполнения сектора или закрытия файла. Эта
функция заставляет DOS
немедленно записать данные на диск. Это ускоряет
операции с базами
данных, позволяя приложению избежать
неэффективного закрытия
и повторного открытия файлов. Версии: DOS 3.3 и выше. В
версиях DOS от 2.0 до 3.2 можно использовать функцию DOS 45h, чтобы создать и затем закрыть
дубликат. [Назад][Содержание][Вперед] |
|
| ||||||||||||||||
|