neco
@neco
инженерммм

Как это работает?

суть в следующем: я, да именно я. написал этот код примерно 20 лет назад. на борланд паскале 7.0.
смысл этого кода как и следует из названия процедуры определить установлена ли windows 95 и\или выше..
вопрос: как и почему это работало тогда, а вот в досбоксе неработает?
код:

Function DetectWindows : Boolean;
var
r : registers;

begin
R.AX:=$1600;
Intr($2F,r);
if R.AL=0 then DetectWindows:=False
 else DetectWindows:=True;
end;
  • Вопрос задан
  • 129 просмотров
Решения вопроса 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
как и почему это работало тогда, а вот в досбоксе неработает?


int 2f -- это multiplex interrupt, портал к дополнениям выполняющимся вокруг DOS. Функция 0x1600 -- это конкретно тест "имеются ли в наличии сервисы windows", см. Почему это должно работать в досбоксе, там же нет виндовых сервисов?
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Windows 95 была надстройкой над DOS.
Int 2F/AX=1600h - это функция DOS, которая показывает, работает ли сейчас Windows 2.0, 3.0 или 95.
www.oldlinux.org/Linux.old/docs/interrupts/int-htm...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы