2026-02-24

vak: (Знайка)
Народ, нужна помощь. Не удаётся понять, в чем дело. Почему-то Волков Командер запускается с 17 строчками на экране. Нижние 8 строчек не использует. Хотя другие программы типа того же scandisk отлично работают. В чём тут может быть дело? Не получается докопаться. С этого же диска под QEMU правильно выходит, 25 строчек. Понятно, что дело в моём биосе, но как, Ватсон?

vak: (Default)
Заработал наконец Волков Командер в полную высоту. Спасибо всем за советы. Дело было в вызове Int10 AX=1130h. Вот его описание:
INT 10h Video
...
AH=11h Character generator (EGA/MCGA/VGA)
...
AL=30h Return font info (EGA/MCGA/VGA)
Entry: BH=00h return INT 1Fh pointer
01h return INT 43h pointer
02h return ROM 8x14 font pointer
03h return ROM 8x8 double-dot font pointer (0-127)
04h return ROM 8x8 double-dot font pointer (128-255)
05h return ROM 9x14 alternate text pointer (EGA/VGA)
06h return ROM 8x16 font pointer (MCGA/VGA)
07h return ROM 9x16 alternate text pointer (VGA)
Exit: ES:BP=requested pointer
CX=scan lines per character
DL=rows (EGA) or rows-1 (MCGA/VGA)
В регистре DL следует вернуть 24 - количество строк на экране минус один. А возвращалось 16, как бы высота символа в шрифте. После правки всё заработало как положено. Симулятор начинает обретать законченные очертания.