Cтраница 3
В графических режимах символ записывается в прямоугольную область видеобуфера по размеру символьной матрицы. [31]
Ранее подчеркивалось, что в адаптере EGA с видеобуфером емкостью 64К байт байты пикселов отображаются иначе, чем с видеобуфером большей емкости. Банки памяти 0 - 1 и 2 - 3 сцепляются и образуют две плоскости. Следовательно, процедура считывания значения пиксела должна определять используемые банки по адресу байта. [32]
В естественных режимах адаптера EGA не применяется чересстрочная организация видеобуфера, принятая в адаптере CGA. Вместо этого строки пикселов отображаются линейно аналогично линейному отображению текстовых строк в текстовых режимах. [33]
В графических режимах каждый символ записывается в прямоугольную область видеобуфера по размеру символьной матрицы. Значение в регистре BL определяет цвет пикселов переднего плана. В 256-цветном режиме 320x200 содержимое регистра ВН задает значение фона, а во всех остальных режимах регистр ВН указывает страницу видеобуфера, поэтому здесь принимается нулевое значение фона. [34]
![]() |
Две палитры 4-цветного режима 320x200. [35] |
Отметим, что функция OBh не воздействует на содержимое видеобуфера, а влияет на способ интерпретации его содержимого контроллером CRTC. [36]
При задании пиксела в 350-строчных режимах адаптера EGA, имеющего видеобуфер 64К байт, необходимо учитывать сцепление банков памяти с двоичными плоскостями. В этой ситуации значение пиксела кодируется только в битах с нечетными номерами регистра AL. Поэтому допустимые значения пикселов 0, 1, 2 и 3 кодируются как ООООЬ. [37]
Чтобы избежать появления снега, процессор должен обращаться к видеобуферу в те интервалы времени, когда схемы регенерации не производят считывания данных. Это означает, что программа должна передавать данные б видеобуфер или из него только тогда, когда электронный луч движется по окаймлению или по траектории обратного хода. Такая синхронизация достигается несколькими способами, но все они связаны с аппаратными особенностями адаптера и несколько уменьшают скорость работы с экраном. [38]
Удобство функции 08h определяется тем фактом, что в видеобуфере содержится вся информация, наблюдаемая на экране, поэтому ее не требуется хранить в программе. [39]
Следовательно, программист может производить переключение режимов без потери содержимого видеобуфера. Конечно, этим приемом нужно пользоваться осторожно, так как в разных режимах форматы видеобуфера различаются. Эти же адаптеры не рассчитаны на подключение композитных мониторов, поэтому для них парные режимы 0 и 1, 2 ц 3, 4 и 5 функционально одинаковы. [40]
Напомним, что в этом адаптере ЗУПВ знакогенератора имеет в видеобуфере, линейное отображение. Следовательно, для замены определений символов необходимо просто записать в таблицы двоичные наборы в соответствующем формате. [41]
Чем больше пикселов на экране и чем больше бит в видеобуфере отведено на каждый пиксел, тем более сложные и качественные изображения получаются на экране. Конечно, при этом увеличивается емкость видеобуфера, а в адаптере требуются более сложные и быстродействующие схемы. Формат видеобуфера в графическом режиме совершенно отличается от формата текстового режима. По существу содержимое видеобуфера с некоторым упрощением следует считать последовательностью n - битных полей, определяющих цвета последовательных пикселов на растре. [42]
Загрузка регистров начального адреса осуществляется гораздо быстрее пересылок символов в видеобуфере, что требуется для перехода к другой выводимой области с сохранением начального адреса. [43]
В графических режимах 4, 5 и б адаптера CGA весь видеобуфер хранит только одно изображение, поэтому организация страниц здесь невозможна и вызов функции 05h игнорируется. В адаптерах EGA, MCGA и VGA страницы доступны в текстовых и графических режимах. Однако процедура BIOS не контролирует, достаточно ли видеобуфера для запрошенной страницы. Если запрошенная страница находится за границей видеобуфера, на экране получается бессмысленное изображение. [44]
В текстовых режимах всех адаптеров, за исключением MDA, емкость видеобуфера оказывается больше, чем требуется для заполнения всего экрана текстовыми данными. Например, в текстовых режимах с форматом 80x25 для заполнения экрана требуется 4000 байт, а в адаптере CGA емкость видеобуфера составляет 16К байт и в нем можно хранить четыре отдельных экрана ( страницы) данных. В связи с этим предусмотрена возможность программирования контроллера CRTC для вывода на экран любых 4000 смежных байт из видеобуфера. Для текстовых режимов с форматом 40x25 на экран выводятся 2000 байт видеобуфера и в нем можно организовать восемь независимых страниц. [45]