Если мы говорим о "текстовом" режиме, то программе плевать на размер графического экрана, главное что бы текстовый был нужного для него размера. У Профи на экране 64х30 символов. Можно сделать 80 символов в строке, если ужать ширину букв менее 8 пикселей, но за это отвечает отдельный драйвер и в данном случае не актуально.
У стандартного экрана текстовое разрешение 64х24 строки. На первых порах можно не использовать дополнительные строки. Потом за их использование должны отвечать GUI, а не драйвер. Как вариант, при старте определяем размер экрана (скорее всего через запрос к загруженному драйверу), настраиваем некие переменные, которые отвечают за визуализацию (например, число строк в панели), а в основной программе используем значения этих переменных.
Тут больше вопрос к организации GUI, какой набор минимальных ESC команд её нужно. Определяемся, рассматриваем как его можно уменьшить (передав задачи на уровень GUI или библиотек), после чего реализуем определенные команды ESC. Если ESC команды не использоваться в GUI, то значит определяемся с иным механизмом взаимодействия драйвер<>GUI, а дальше по той же схеме.
То есть к драйверу предъявляются требования: ограничения по максимальному размеру, фиксированное его место положение или нет, какие задача/команды он должен решать/выполнять, механизм взаимодействия с GUI, иные ограничения в его работе. Так сказать ТЗ![]()
Например, драйвер инструкцию от которого привел выше, занимает 2.8 кб. Так же нужно не забыть про шрифт, размер которого увеличится. Теоретически шрифт можно вынести в страницы, это усложнит драйвер, но не критично. Если не жадничать, то выделяем страницу (16кб) под шрифты, умещается ~6 шт., и разрабатываем механизм переключения между ними. А в шрифтах не обязательно хранить буквы. Вот пример интерфейса системы Profi Vision, полностью построенной на текстовой основе (это 1994 г, на ПС только вин311). Вообще PV вещь весьма интересная, нём реализовано много вкусного, но я ни как не могу сесть и разбератьсяНапример, есть вывод в буфер, то есть мы выводим информация не на экран, а в буфер, и только по команде его содержимое кидаем на экран, при чём буфером может быть несколько. А консоль можно ужать до размера окна, или иметь две консоли на экране в разных окнах. Так же есть механизм кучи, для динамического выделения места под задачи. И т.п. включая многозадачность внутри одного приложения. Читая инструкцию, было крайне обидно, что это прошло мимо в 90х.
Кстати вы ПЗУ используете? Можно его подменить на 0 страницу?



Например, есть вывод в буфер, то есть мы выводим информация не на экран, а в буфер, и только по команде его содержимое кидаем на экран, при чём буфером может быть несколько. А консоль можно ужать до размера окна, или иметь две консоли на экране в разных окнах. Так же есть механизм кучи, для динамического выделения места под задачи. И т.п. включая многозадачность внутри одного приложения. Читая инструкцию, было крайне обидно, что это прошло мимо в 90х.
Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi