|
|
|
|
Проверка версии используемой DOS
Перед выполнением каких-либо действий многие подпрограммы TSR рассчитывают на конкретную версию, недокументированные возможности DOS и определенный
порядок проверки версии текущей системы. Если версия некорректна, то TSR должна осуществить выход с выдачей соответствующего сообщения об ошибке.
DOS записывает номер версии своей системы в глобальной переменной и делает доступным это значение через запрос к BIOS с функцией 30h. При
выполнении этого запроса диспетчер int 21h не выполняет переключение стеков или изменение любых глобальных переменных. Хотя этот запрос всегда
безопасен, правила хорошего тона при программировании требуют, чтобы этот запрос выдавался бы среди кодов, выполняющих в программе инициализацию. Пример
определения номера версии используемой операционной системы показан ниже в листинге 4-18.
Листинг 4-18. Проверка версии DOS
----------------------------------------------------------------
VersionID EQU 0a03h ; DOS 3.10 (заметим, что млад-
; шая часть номера в MCB)
mov ah,30h ; ah <== функция для проверки
; версии DOS
int 21h ; выдача запроса
cmp ax,VersionID ; версия возвращается в ax
jnz WrongVersion ; версия ошибочна
----------------------------------------------------------------
|
|
|