Получение системной информации


Функция 30h возвращает в регистре AX номер версии DOS. Например, для версии MS-DOS 5.00 содержимое регистра AH равно 00, регистра AL - 05.

Дополнительно через регистр BH функция возвращает программе серийный номер фирмы-производителя ОЕМ (IBM - 00, DEC - 16h, 0FFh - Microsoft и т.п.), а в регистрах BL:CX после вызова функции находится серийный номер пользователя.

Эта информация может применяться для анализа возможности использования таких средств операционной системы, которые поддерживаются не всеми версиями DOS, или для настройки программы на конкретный серийный номер пользователя.

Функции 2Ah и 2Ch позволяют программе узнать системную дату и время.

Есть функции, возвращающие текущий диск и текущий каталог. Номера этих функций - 19h и 47h.

Функция 2Fh позволяет программе узнать адрес текущей области DTA (Disk Transfer Area). Эта область используется, например, при поиске файлов в каталоге.

Важная информация находится в блоке PSP (Programm Segment Prefix). Этот блок располагается в памяти непосредственно перед выполняющейся программой. В нем находятся, в частности, параметры, передаваемые программе при запуске. Функция 62h возвращает адрес текущего блока PSP.

Кратко перечислим некоторые другие функции для получения системной информации:

35hполучить значение вектора прерывания с заданным номером;
4Dhузнать код завершения процесса;
59hполучить расширенный код ошибки;
54hузнать, используется ли проверка при записи на диск;
33hузнать, используется ли проверка на CTRL-BREAK.



Содержание раздела