Переключение в текстовые режимы высокого разрешения на ПК

Я хотел бы написать текстовый редактор, работающий на текстовом экране. В современном ПК экран 1280x1024 (160x64 char) подойдет для плоской панели. В целях безопасности я работаю на материнской плате P4 на базе i865. VESA bios устанавливает разрешение, но в графическом режиме; Кроме того, регистры VGA показывают исходные значения экрана DOS. Мне нужна помощь, как запрограммировать i865 в текстовый режим.

1 ответ

Решение

1280x1024 не является разрешением VGA. Вам нужно будет использовать VESA/VBE, если вы хотите использовать эти режимы с высоким разрешением. И, за одним исключением (которое не соответствует вашим требованиям), не существует стандартных режимов, определенных VESA. Вам нужно опросить видеокарту и выбрать один из поддерживаемых режимов. Используйте функцию VhE 00h, чтобы получить полный список поддерживаемых режимов, и функцию 01h, чтобы проверить атрибуты для каждого из этих поддерживаемых режимов, чтобы убедиться, что они соответствуют вашим требованиям.

Как только вы нашли нужный режим, функция 02h установит этот режим, и тогда вы в основном закончите. Ну, за исключением сложной части написания кода, который выводит текст на экран!

Это все задокументировано в стандарте. Пример кода на C доступен на OSDev Wiki.

Другие вопросы по тегам