Видеосистема персональных компьютеров - основное средство отображения информации, обладают широкими возможностями программирования и наиболее привлекательные для программистов. Управление видеосистемой (формирование текстовых и графических изображений ) возможно путем использования широкого спектра графических пакетов и текстовых редакторов, встроенных графических библиотек, которые имеются практически во всех языках программирования, с использованием функций прерываний BIOS (10h прерывание) и путем непосредственного программирования видеоадаптеров на уровне портов и и непосредственного обращения к видеобуферу.
В IBM PC подобных компьютерах видеосистема состоит из следующих основных модулей: дисплей, видеоадаптер (программирование всей видеосистемы заключается в программировании видеоадаптера); видеопамять (видеобуфер) - оперативная память, физически расположена на плате видеоадаптера и предназначена для хранения выводимой информации текста или графического изображения на экран монитора. Видеопамять представляет собой двухвходовую ОЗУ, т.е. с одной стороны она находится в адресном пространстве процессора и допускает чтение/запись данных от процессора, а с другой стороны схемы видеоадаптера считывают из нее информацию в процессе формирования изображения; внутреннее ПЗУ (ROM BIOS) видеоадаптера, которое физически расположено на плате адаптера и содержит программы поддержки расширенных функций 10h прерывания BIOS системной платы.
Во всех видеомониторах персональных компьютеров используется растровый принцип формирования изображения, при которых текст или графическое изображение формируются на экране электронным лучом, который периодически сканирует экран монитора слева направо и сверху вниз с образованием на нем линий развертки, которые последовательно (сверху вниз) заполняют весь экран. В цветных видеомониторах луч состоит из трех лучей, которые с помощью специальных масок формируют три основных цвета: синий (Blue), зеленый (Green) и красный (Red). Изменяя интенсивность каждой составляющей, получают все разнообразие цветовой гаммы. При формировании растра выводимое из видеобуфера изображение занимает не весь растр, а его центральную часть, окруженную горизонтальным (а) и вертикальным (б) окаймлением (бордюром). Для формирования указанного изображения применяются сигналы: горизонтальное гашение (HBI); горизонтальная синхронизация (HSYNC); вертикальное гашение (VBI); вертикальная синхронизация (VSYNC);
В текстовых режимах устанавливается следующее соответствие между памятью видеоконтроллера и изображением на экране: в начале памяти записываются данные о символе, находящемся на первой строке в левом углу, затем данные об остальных символах первой строки, затем данные о символах второй строки начиная слева и т. д. При выводе текста различные видеосистемы работают одинаково. Для экрана отводится 4000 байт, так что на каждую из 2000 позиций экрана (25 строк x 80 символов) приходится 2 байта . Первый байт содержит код ASCII символа. Аппаратура дисплея преобразует номер кода ASCII в связанный с ним символ и посылает его изображение на экран. Второй байт (байт атрибутов) содержит информацию о том, как должен быть выведен данный символ.
В графическом режиме цветовое значение каждого пикселя хранится как один или несколько бит в видеобуфере и считывается (переносится) на экран, возможно, с дополнительным табличным преобразованием. Так как каждый пиксель на экране можно адресовать через видеобуфер, графический режим часто называется режимом с адресацией всех точек (All Points Addressable - АРА). Если в видеобуфере пиксель кодируется n битами, одновременно на экране можно наблюдать цветов. С помощью специальных схем n-битный код расширяется до m бит, причем m>n.
Поскольку все видеосистемы, кроме монохромного дисплея, имеют достаточно памяти для нескольких видеобуферов, одновременно могут быть сконструированы несколько экранов, каждый из которых может быть выведен в нужный момент. Вместо того чтобы передвигать данные в видеопамяти, монитор посылает данные из другой области видеопамяти. Число доступных страниц может меняться в зависимости от видеосистемы и режима дисплея. В режимах 0-3 и 7 имеется 8 страниц. BIOS хранит в своей области данных однобайтовую переменную ACT_PAGE, указывающую, какая из страниц выводится в данный момент. Диапазон значений этой переменной от 0 до 7. Она расположена по адресу 0040:0062h. Дисплейные страницы выбираются за счет изменения точки видеопамяти, начиная с которой монитор принимает данные. Эта точка памяти устанавливается регистрами 0Ch (старший байт) и 0Dh (младший байт), которые называются регистрами стартового адреса. Для программирования регистров стартового адреса необходимо записать номер регистра в адресный регистр блока (послать номер в порт 3D4,после чего записать данные в порт 3D5).