Управление программами
В версии 5.0 MS-DOS появились некоторые новые функции, имеющие отношение к управлению программами. Например, функция 4B05h прерывания INT 21h предназначена для подготовки программы к выполнению. Эта функция может использоваться программами, перехватывающими функцию 4B00h (обычный запуск программы), например, для установки версии MS-DOS.
Регистры на входе:
Регистр | Содержимое |
AX | 4B05h |
DS:DX | Адрес управляющей структуры (см. ниже) |
Регистры на выходе:
Регистр | Содержимое |
AX | 00h, если сброшен флаг CF и, соответственно, функция выполнилась без ошибок; код ошибки, если установлен флаг CF. |
Перед вызовом функции необходимо подготовить управляющую структуру:
(00h) 2 | Зарезервировано и равно 00h. | |
(02h) 2 | Флаги типа программы:
Бит 0 - программа типа .EXE; Бит 1 - оверлей. | |
(04h) 4 | Указатель на ASCII-имя файла с программой. | |
(08h) 2 | PSP сегмента новой программы. | |
(0Ah) 4 | Стартовый адрес CS:IP новой программы. | |
(0Eh) 4 | Размер программы с учетом PSP. |
После возврата из этой функции до завершения запущенной программы нельзя вызывать прерывания DOS, BIOS или другие программные прерывания. Если MS-DOS работает в верхней области памяти HMA, после возврата из этой функции адресная линия A20
выключается .
Некоторые недокументированные функции управления программами были включены в документацию MS-DOS версии 5.0:
Функция | Назначение |
50h | Установить PSP для текущей программы. |
51h | Получить PSP текущей программы. |