Приложение Б Функции DOS (INT 21h)
DOS, функция 00h
Завершить программу
Вход:
AH=00h
CS – сегмент PSP завершающегося процесса
Описание. Передает управление на вектор завершения в PSP (выходит в родительский процесс). Идентична функции INT 20h (Terminate). Регистр CS должен указывать на PSP. Восстанавливает векторы прерываний DOS 22h-24h (Завершение, Ctrl-Break и Критическая ошибка), устанавливая значения, сохраненные в родительском PSP. Выполняет сброс файловых буферов. Файлы должны быть предварительно закрыты, если их длина изменилась.
Примечание.
Данная функция не рекомендуется к использованию. Для выхода из программы лучше использовать функцию DOS 4Ch.
Вход:
AH=01hВыход: AL – символ, полученный из стандартного ввода
Описание. Считывает (ожидает) символ со стандартного входного устройства. Отображает этот символ на стандартное выходное устройство (эхо). При обнаружении Ctrl-Break выполняется INT 23h.
Примечание.
Ввод расширенных клавиш ASCII (F1-F12, PgUp, курсор и другие) требует двух обращений к этой функции. Первый вызов возвращает AL=0. Второй вызов возвращает в AL расширенный код ASCII.
Вход:
AH=02h
DL – символ, выводимый в стандартный выводОписание.
Посылает символ из DL в стандартное устройство вывода. Обрабатывает символ Backspace (ASCII 8), перемещая курсор влево на одну позицию и оставляя его в новой позиции. При обнаружении Ctrl-Break выполняется INT 23h.
Вход:
AH=03hВыход: AL – символ, введенный со стандартного вспомогательного устройства
Описание. Считывает (ожидает) символ со стандартного вспомогательного устройства, COM1 или AUX и возвращает этот символ в AL.
Примечание.
Ввод не буферизуется и должен опрашиваться (не управляется прерываниями). При запуске DOS порт AUX (COM1) инициализируется так: 2400 бод, без проверки на четность, 1 стоп-бит, 8-битные слова. Команда DOS MODE используется для установки иных характеристик.
Вход:
AH=04h
DL – символ, выводимый в стандартное вспомогательное устройствоОписание.
Посылает символ, находящийся в регистре DL, на стандартное вспомогательное устройство, COM1 или AUX.
Вход:
AH=05h
DL – символ, записываемый на стандартный принтерОписание.
Посылает символ в DL на стандартное устройство печати, обычно LPT1.
Вход:
AH=06h
DL=00h-FEh – символ, посылаемый на стандартный вывод
DL=FFh – запрос ввода со стандартного вводаВыход:
ZF=0, если осуществлялся ввод символа и символ готов при запросе ввода
AL – считанный символ
ZF=1, если осуществлялся ввод символа и символа в консоли нет