vak: (Default)
[personal profile] vak
Заработал наконец Волков Командер в полную высоту. Спасибо всем за советы. Дело было в вызове 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, как бы высота символа в шрифте. После правки всё заработало как положено. Симулятор начинает обретать законченные очертания.

Date: 2026-02-24 22:38 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
О, классно.
Меня раз заказчик донимал, чтобы у меня библиотека использовала все 25 строк (да, 25). Но при этом использовалась японская локализация, а в ней нижняя строка использовалась в технических целях (для показа ввода). И вот мы собачились с израильтянином...
Но закончилось хорошо.