Функция 25h: Установить вектор прерывания
Вход AH = 25h
AL = номер прерывания
DS:DX = вектор прерывания: адрес программы обработки прерывания
Описание: Устанавливает значение элемента таблицы векторов прерываний для прерывания с номером AL равным DS:DX. Это равносильно записи 4-байтового адреса в 0000:(AL*4), но, в отличие от прямой записи, DOS здесь знает, что вы делаете, и гарантирует, что в момент записи прерывания будут заблокированы.
Внимание: Не забудьте восстановить DS (если необходимо) после этого вызова.
Функция 26h: Построить PSP
Вход AH = 26h
DX = адрес сегмента (параграфа) для нового PSP
CS = сегмент PSP, используемого как шаблон для нового PSP
Описание: Устанавливает PSP для порождаемого процесса по адресу DX:0000. Текущий PSP (100h байт, начиная с CS:0), копируется в DX:0. Соответственно корректируется поле MemTop. Векторы Terminate, Ctrl-Break и Critical Error копируются в PSP из векторов прерываний int 22h, int 23h и int 24h.
Функция 2ah: Дать системную дату
Вход AH = 2ah
Выход AL = день недели (0 = воскресенье, 1 = Понедельник,...)
CX = год (от 1980 до 2099)
DH = месяц (от 1 до 12)
DL = день (от 1 до 31)
Описание: Возвращает текущую системную дату.
Функция 2bh: Установить системную дату
Вход AH = 2bh
CX = год (от 1980 до 2099)
DH = месяц (от 1 до 12)
DL = день (от 1 до 31)
Выход AL = 0, если дата корректна
AL = 0ffh если дата некорректна
Описание: Устанавливает системную дату DOS.
Функция 2ch: Дать системное время
Вход AH = 2ch
Выход CH = часы (от 0 до 23)
CL = минуты (от 0 до 59)
DH = секунды (от 0 до 59)
DL = сотые доли секунды (от 0 до 99)
Описание: Возвращает текущее системное время.
Замечание: Поскольку системные часы имеют частоту 18.2 тиков в секунду (интервал 55мс), DL имеет точность 0.04 сек.
Функция 2dh: Установить системное время
Вход AH = 2dh
CH = часы (от 0 до 23)
CL = минуты (от 0 до 59)
DH = секунды (от 0 до 59)
DL = сотые доли секунды (от 0 до 99)
Выход AL = 0, если время корректно
AL = 0ffh если время некорректно
Описание: Устанавливает системное время.
Функция 2eh: Установить/сбросить переключатель верификации
Вход AH = 2eh
AL = 0 отключить верификацию
AL = 1 включить верификацию
Описание: Устанавливает, должна ли DOS проверять каждый сектор, записываемый на диск. Это замедляет операции записи на диск, но дает некоторую гарантию при записи. Функция 56h Get Verify возвращает текущий статус верификации DOS.
Функция 2fh: Дать адрес текущей DTA
Вход AH = 2fh
Выход ES:BX = адрес начала текущей DTA
Описание: Возвращает адрес начала области передачи данных (DTA). Поскольку DTA глобальна для всех процессов, в рекурсивной процедуре (например, при проходе по дереву оглавления) может потребоваться сохранить адрес DTA, а впоследствии восстановить его посредством функции 1ah "Установить DTA".
Замечание: Эта функция изменяет сегментный регистр ES.
Функция 30h: Дать номер версии DOS
Вход AH = 30h
Выход AL = часть номера версии до точки
AH = часть номера версии после точки
BX,CX = 0000h DOS 3.0+
Описание: Возвращает в AX значение текущего номера версии DOS. Например, для DOS 3.2, в AL возвращается 3, в Ah - 2.
Замечание: Если в AL возвращается 0, можно предполагать, что работает DOS более ранней версии, чем DOS 2.0.
Функция 31h: Завершиться и остаться резидентным (KEEP)
Вход AH = 31h
AL = код возврата
DX = объем оставляемой резидентной части в параграфах
Описание: Выходит в родительский процесс, сохраняя код возврата в AL. Код возврата можно получить через функцию 4dh Wait. DOS устанавливает начальное распределение памяти, как специфицировано в DX, и возвращает управление родительскому процессу, оставляя указанную часть резидентной (число байтов = DX*16). Эта функция перекрывает функцию int 27h, которая не возвращает код возврата и неспособна установить резидентную программу больше сегмента.
Функция 33h: Установить/опросить статус Ctrl-Break
Вход AH = 33h
AL = 0 чтобы опросить текущий статус контроля Ctrl-Break
AL = 1 чтобы установить статус контроля Ctrl-Break
DL = требуемый статус (0=OFF, 1=ON) (только при AL=1)
Выход DL = текущий статус (0 = OFF, 1 = ON)
Описание: Если AL=0, в DL возвращается текущий статус контроля Ctrl-Break. Если AL=1, в DL возвращается новый текущий статус. Когда статус ON, DOS проверяет на Ctrl-Break с консоли для большинства функций (исключая 06h и 07h). При обнаружении, выполняется int 23h (если оно не перехватывается, то это снимает процесс). Когда статус OFF, DOS проверяет на Ctrl-Break лишь при операциях стандартного в/в, стандартной печати и стандартных операциях AUX.
Функция 35h: Дать вектор прерывания
Вход AH = 35h
AL = номер прерывания (от 00h до 0ffh)
Выход ES:BX = адрес обработчика прерывания
Описание: Возвращает значение вектора прерывания для int (AL); то есть, загружает в BX 0000:[AL*4], а в ES - 0000:[(AL*4)+2].
Внимание: Эта функция изменяет сегментный регистр ES.
Функция 36h: Дать свободную память диска
Вход AH = 36h
DL = номер диска (0=текущий, 1=A, и т.д.)
Выход AX = 0ffffh, если AL содержал неверный номер диска
АХ = число секторов на кластер, если нет ошибок
BX = доступных кластеров
CX = байт на сектор
DX = всего кластеров на диске
Описание: Возвращает данные для подсчета общей и доступной дисковой памяти. Если в AX возвращено 0ffffh, значит, вы задали неверный диск. Иначе, свободная память в байтах = (AX * BX * CX) всего памяти в байтах = (AX * CX * DX).
Функция 39h: Создать новый каталог (MKDIR)
Вход AH = 39h
DS:DX = адрес строки ASCIIZ с именем оглавления
Выход AX = код ошибки если CF установлен
Описание: DS:DX указывает на строку ASCIIZ в формате: "d:\путь\имя_каталога",0. Если диск и/или путь опущены, то берется каталог, принятый по умолчанию. Подкаталог создается и связывается с существующим деревом. Если при возврате, установлен флаг CF, то AX содержит код ошибки, и каталог не создается.
Функция 3ah: Удалить каталог (RMDIR)
Вход AH = 3ah
DS:DX = адрес строки ASCIIZ с именем оглавления
Выход AX = код ошибки, если установлен CF
Описание: DS:DX указывает на строку ASCIIZ в формате: "d:\путь\имя_каталога",0. Если диск и/или путь опущены, то берется каталог, принятый по умолчанию. Подкаталог удаляется из указанного каталога. Если при возврате, установлен флаг CF, то AX содержит код ошибки, и каталог не удаляется.
Замечание: Каталог не должен содержать файлов и подкаталогов, а также и не должен быть связан с возможными ограничениями DOS (например, каталог не должен быть задействован в активных командах JOIN или SUBST).
Функция 3bh: Установить текущий каталог DOS (CHDIR)
Вход AH = 3bh
DS:DX = адрес строки ASCIIZ с именем каталога
Выход AX = код ошибки, если установлен CF
Описание: DS:DX указывает на строку ASCIIZ в формате: "d:\путь\имя_каталога",0. Если диск и/или путь опущены, то берется каталог, принятый по умолчанию. Указанный подкаталог для указанного диска становится текущим каталогом DOS для этого (или текущего) диска. Если при возврате установлен флаг CF, то AX содержит код ошибки, и текущий каталог для выбранного диска не изменяется.
Функция 3ch: Создать файл через дескриптор
Вход AH = 3ch
DS:DX = адрес строки ASCIIZ с именем файла
CX = атрибут файла
Выход AX = код ошибки, если CF установлен
АХ = дескриптор файла, если ошибки нет
Описание: DS:DX указывает на строку ASCIIZ в формате: "d:\путь\имяфайла",0. Если диск и/или путь опущены, они принимаются по умолчанию. файл создается в указанном (или текущем) каталоге файл открывается в режиме доступа чтение/запись вы должны сохранить дескриптор (handle) для последующих операций, если файл уже существует:
· при открытии файл усекается до нулевой длины
· если атрибут файла - только чтение, открытие отвергается (атрибут можно изменить функцией 43h Изменить Атрибут)