О бедном Text Mode замолвите слово…

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Читая zx-pk.ru, я наткнулся на пару тем, где обсуждалась возможность создания видеокарты с полной реализацией текстовых режимов VGA. В одной из тем даже кипела бурная деятельность. Прототип был создан, в нескольких вариациях. Работал. Но...

В упомянутой выше теме, видеокарта реализовывала практически потолок для VGA в текстовом режиме. Даже придумывались различные способы применения в духе эмуляции CGA в VGA. Тестировался и FastDoom.

Все было бы хорошо если бы не одно но - и 10% возможностей было не раскрыто.

Текстовый режим для VGA подразумевает несколько особенностей

  1. Первое и главное: размер знакоместа. От 8x8 до 8x16. Да, некоторые режимы определяются как 9xN, но в 99.9% случаев режим 9xN дублирует 8 колонку в 9. Исключение: попытка реального отображения чего-то национального.

  2. Второе: количество страниц. От 2 до бесконечности. Определяется размером памяти, но напрямую от нее не зависит. 256kb позволяет выделить до 16 страниц.

  3. Третье: матрица знакомест. От 40x25 до 80x50. Фактически зависит от адаптера. Возможна адресация до 132x60 (даже 160x50, но это редкость).

  4. Четвертое: знакогенератор. VGA позволяет использовать отображать от 256 до 512 символов одновременно из набора "насколько хватит памяти". И... дополнение будет ниже.

  5. Пятое: цвета. По-умолчанию VGA использует для текстового режима "совместимую палитру". Это 16 цветов "каноничного" CGA. Вполне неплохая палитра кстати. Уж на фоне конкурентов так точно (посмотрите на "конючевших" о нехватке коричневого и целых четырех градаций серого в базовом). Есть нюанс. Можно сменить все цвета создав любую палитру из 16 цветов на свой выбор, но только при 256 знакоместах или 8 при 512. Но, хоть 16, хоть 8, они не будут фиксированными.

  6. Шестое: Перепрограммируемый "на лету" знакогенератор. Грубо говоря это способность превратить любой символ в любой в момент меньше чем способен оценить человеческий глаз. Графические "моменты" в Norton Utilies, FFORMAT, Impulse Tracker и прочих - это оно и есть. Но там было перепрограммирование всего и сразу для интерфейса + 4 знакомест в процессе для курсора.

Исходя из всего вышеперечисленного хочется заметить: Попытка создать эмулятор CGA в текстовом режиме VGA используя CP437 выглядит как минимум наивно.

Вы можете создать собственную таблицу. Вы можете создать много таблиц. Вы можете подменять таблицы в реальном времени. Вы даже способны соорудить нечто вроде спектрумовского GigaScreen, получая до 4 цветов на знакоместо (в реальности гораздо больше даже для 8088).

Благодарности

  1. zx-pk.ru:freddy

  2. zx-pk.ru:Tronix

P.S. В процессе написания своего движка для Text-Mode-Based игр я столкнулся с непониманием того, почему первый Tetris не использовал кастомный знакогенератор, поскольку первая (не первая конечно, но одна из первых) моя попытка что-то перенести на IBM с ZX (Kingdom of Grain) использовала именно его для отображения заставок. Возможно повлияло то, что мой первый xIBM-PC был "не совсем совместимый" и позволял делать то, что на оригинале было невозможно. Это был МК-88. Знакогенератор можно было менять сколько угодно, отжирая одну ячейку.

P.S.S. Если интересно, то во второй части я опишу проблему выбора фиксированного знакогенератора для интерпретации имеемого режима и проблем с перепрограммированием "на лету".

Источник: https://habr.com/ru/post/710878/


Интересные статьи

Интересные статьи

Статья направлена на решение проблемы "зависания" выгрузки результатов опросов при использовании модуля Vote 1С-Битрикс в случае, если в опросе много вопросов или ответов. Так-же в статье реализована ...
Подписывайтесь на каналы: @TeslaHackers — сообщество российских Tesla-хакеров, прокат и обучение дрифту на Tesla @AutomotiveRu — новости автоиндустрии, железо и психология вождения...
У некоторых бизнес-тренеров в области е-коммерса и консультантов по увеличению интернет-продаж на многие вопросы часто можно слышать универсальную отмазку — «надо тестировать» или другую (чтобы не...
Если честно, к Д7 у меня несколько неоднозначное отношение. В некоторых местах я попискиваю от восторга, а в некоторых хочется топать ногами и ругаться неприличными словами.
Несмотря на то, что “в коробке” с Битриксом уже идут модули как для SOAP (модуль “Веб сервисы” в редакции “Бизнес” и старше), так и для REST (модуль “Rest API” во всех редакциях, начиная с...