Экран дисплея, сформированный видеоподсистемами фирмы IBM, можно описать как дисплей с I тображением из памяти, поскольку каждый адрес дисплейной памяти соответствует определенному фрагменту экрана (рис. 4.1). Микросхема дисплея постоянно считывает информацию из памяти и размещает ее на экране.
Информация может быть изменена настолько быстро, насколько компьютер может записать в память новые данные из вашей программы. Микросхема дисплея преобразует поток битов, принимаемых из памяти, во вспышки света в различных точках экрана.
Эти точки света, называемые пикселами (сокращенно от picture element — элемент рисунка), нормируются электронным лучом, падающим на фосфоресцентную поверхность электронно-лучевой трубки. Электронный луч генерируется электронной пушкой, которая построчно сканирует экран. По мере перемещения пушки вдоль и поперек экрана по фиксированному пути, называемому растро-тм сканированием, видеоподсистема генерирует управляющие сигналы, которые включают и выключают луч в соответствии со значениями битов в памяти.
Микросхема видеоподсистемы обновляет изображение экрана от 50 до 70 раз в секунду (в зависимости от видеорежима), в результате чего формируется устойчивое и отчетливое изображение. В конце каждого цикла обновления экрана электронный луч должен переместиться из нижнего правого угла экрана в верхний левый. Это перемещение называется вертикальным обратным ходом. Во время обратного хода луч не несет никакой информации, и поэтому пикселы на экране не перезаписываются.
Период вертикального обратного хода (равный примерно 1,25 мс) весьма важен для программистов по одной основной причине, которая требует некоторых разъяснений. Специальная двухпортовая схема памяти видеосистемы обеспечивает равный доступ к дисплейной памяти как CPU, так и микросхеме обновления экрана дисплея. Поэтому CPU и микросхема дисплея имеют возможность одновременно обращаться к памяти видеосистемы.
Это создает некоторую проблему при использовании цветного графического адаптера (CGA). Если CPU станет считывать или записывать данные в видеобуфер в тот момент, когда микросхема дисплея копирует на экран данные из буфера, то на краткий период времени может возникнуть эффект "снежка". Однако если заставить CPU обращаться к памяти только во время вертикального обратного хода, когда микросхема дисплея не работает с видеобуфером, то этого эффекта можно избежать. Программа, работающая с CGA, может проверить значение бита 3 порта ввода/вывода адаптера с адресом 3DAH. В момент начала вертикального обратного хода этот бит устанавливается в 1, а при его завершении — сбрасывается. В течение паузы в 1,25 мс ваша программа может занести максимальное число данных в память видеосистемы. После завершения обратного хода микросхема дисплея сможет записать эти данные на экран без появления "снежка".
Данный прием полезен для любой прикладной программы, которая впрямую обращается к данным, расположенным в видеобуфере, в текстовом режиме при работе с CGA. К счастью, аппаратная конструкция всех других видеоподсистем фирмы IBM позволяет избежать подобного конфликта доступа и устраняет необходимость в применении такого специального приема программирования.
Вы заняты поиском квартиры или машины? Или сами хотите что-то продать? Тогда объявления в Кузнецке на сайте "Из рук руки" - это то, что Вам нужно. У нас Вы непременно найдете то, что нужно именно Вам.
|