Главная » Ассемблер, Железо » Основные типы графических режимов

0

Современные видеоконтроллеры поддерживают разнообразные текстовые и графические режимы, различающиеся разрешением, палитрой используемых цветов, частотой кадровой развертки и т. д. Текстовые режимы различают по разрешению (числу отображаемых символов по горизонтали и вертикали) и цветовой палитре (возможен монохромный или 16-цветный режим).

Для графических режимов основным признаком классификации является количество одновременно отображаемых цветов и, соответственно, количество двоичных разрядов, необходимых для хранения одной точки изображения. Различают следующие типы графических режимов:

•     монохромный (1 -битное кодирование цвета точки);

•     4-цветный CGA (2-битное кодирование);

•      16-цветный EGA/VGA (4-битное кодирование);

•     256-цветный SVGA (8-битное кодирование);

•     HiColor (16-битное кодирование);

•     TrueColor (24-битное или 32-битное кодирование).

При этом принципы работы с видеопамятью для каждого из основных типов видеорежимов настолько отличаются друг от друга, что в современных видеоконтроллерах используется для каждого из этих типов отдельный аппаратный блок. В настоящее время старые режимы (начиная от монохромных и кончая 16-цветными) вышли из употребления: вывод информации в этих режимах осуществляется очень медленно (вследствие неудачной реализации механизма работы с памятью). Поэтому ниже будут рассматриваться только текстовый 16-цветный режим и современные графические режимы.

Прежде чем можно будет начать работу в каком-либо режиме, необходимо вначале перевести систему в этот режим. Однако сделать это не так-то просто. Категорически не рекомендуется начинающим программистам ставить эксперименты по прямому управлению режимами работы видеоконтроллера через его регистры: некорректная установка параметров может вывести из строя монитор. Особенно велик риск для распространенных в нашей стране удешевленных моделей мониторов: снижение цены достигается за счет упрощения конструкции, в частности — ослабления защиты.

Для видеоконтроллеров разделение операций на аппаратные и программные является абсолютно жестким: любые переключения режимов должны выполняться при помощи функций BIOS видеоконтроллера или фирменных драйверов, а выводить информацию нужно напрямую в видеопамять. Переключать видеорежимы только с помощью «родного» программного обеспечения самого контроллера приходится по причине слабой стандартизированности устройств этого типа: с тех пор, как фирма IBM потеряла контроль над рынком персональных компьютеров, разработчики периферийного оборудования в буквальном смысле творят, что хотят. Даже внутри одной фирмы могут существовать несколько разных групп

устройств (линий), в каждой из которых применяется собственная внутренняя архитектура. С большим трудом ассоциация VESA сумела стандартизировать функции управления режимами работы видеоконтроллеров.

Устанавливать необходимый видеорежим следует один раз при запуске прикладной программы на весь период ее выполнения. Переключать режимы в процессе работы крайне нежелательно: при этом наблюдаются разнообразные видеоэффекты, которые могут сильно раздражать пользователя (сбой синхронизации, «снег», мерцание и т. д.). Даже такая безобидная операция, как полное гашение экрана монитора на время переключения видеорежима, может быть неприятной для оператора: в течение нескольких секунд он будет не в состоянии контролировать работу системы.

Следовательно, видеорежим должен позволять выполнять все требуемые в программе операции — если требуется вывод и текстовой, и графической информации, то нужно сразу установить графический режим. Существует два основных способа программной установки видео ре жима, которые мы рассмотрим ниже: с помощью функций VGA BIOS и с помощью функций VESA BIOS.

Источник: Кулаков В. К90 Программирование на аппаратном уровне: специальный справочник (+дискета). 2-е издание. — СПб.: Питер, 2003. — 847 е.: ил.

По теме:

  • Комментарии