Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программирование EGA и VGA


------------------------------------------------------------------------
                                                       13. Д И С П Л Е И
------------------------------------------------------------------------

     Работа со всеми графическими системами, имеющимися в продаже,
возможна на нескольких типах дисплеев. При выборе монитора может
возникнуть желание оценить и другие возможности кроме совместимос-
ти его с EGA. Знание устройства монитора поможет сделать правильный
выбор и, кроме того, улучшит понимание работы адаптера. Качество
дисплея определяется несколькими факторами: тип интерфейса (компо-
зитный, цифровой или аналоговый), скорость развертки и размер то-
чек. Некоторые из этих факторов взаимосвязаны. Описание начинается
с обсуждения интерфейса и маршрута движения луча.
     CGA поддерживает как композитный, так и RGB мониторы. Композитный
монитор получает аналоговый сигнал (такой же, как и в телевизорах).
Композитный сигнал формируется путем смешения сигналов красного, си-
него и зеленого цветов (совместно с информацией о синхронизации) в
адаптере,после чего в мониторе сигналы опять разделяются.Преимуще-
ство наличия одного сигнала заключается в том, что для его передачи
требуется всего один кабель. Такая схема хороша для реализации те-
левизионной трансляции, но проблемы, связанные с качественным раз-
делением цветов ограничивают возможное разрешение. EGA не может не-
посредственно поддерживать композитные мониторы.
     RGB мониторы получают сигналы красного, синего и зеленого цвета
по разным каналам. Цветной дисплей и ECD являются цифровыми RGB мо-
ниторами и воспринимают сигнал просто в виде наличия либо отсутст-
вия сигнала на каждом из контактов разъема. В цветном дисплее фирмы
IBM используются три контакта разъема для передачи цветов и четвер-
тый для определения яркости. В ECD применяются 6 контактов ( по 2
для каждого цвета). Один контакт - для передачи цвета с низкой яр-
костью луча, а второй контакт определяет среднее значение яркости.
Оба сигнала вместе могут определить 4 степени яркости (от наивыс-
шей до полного отсутствия сигнала) для каждого цвета. Три цвета,
каждый из которых имеет по 4 яркости, в результате могут составить
64 оттенка(4х4х4).
     Следует заметить, что монохромный монитор фирмы IBM построен по
такой же схеме, что и RGB мониторы, но имеет только один контакт
для цвета и один для яркости. При использовании цифровых мониторов
увеличение числа доступных цветов требует увеличения количества
контактов разъема.
     C выходом серии новых персональных компьютеров PS/2 фирма IBM
представила новые аналоговые RGB мониторы. Так же, как и в цифровых
RGB мониторах, сигналы красного, синего и зеленого цветов переда-
ются в него по трем различным каналам, но при этом яркость сигналов
определяется уровнем напряжения по каждому из каналов. Вследствие
этого требуется всего три линии для передачи цветов. Таким образом,
даже при передаче большого количества цветов схема соединения анало-
гового RGB монитора гораздо проще, чем у цифрового монитора. Возмож-
ное количество воспроизводимых цветов в аналоговом дисплее в прин-
ципе безгранично и лимитируется только возможностью адаптера форми-
ровать различные уровни напряжения и возможностями человеческого
глаза воспринимать различие оттенков.
     Название Композитный и RGB характеризуют только вид интерфейса
для дисплея и адаптера. Но кроме интерфейса существуют и различные
методы формирования изображения. Во всех стандартных мониторах для
персональных компьютеров применяется метод растровой развертки эк-
рана для вывода изображения. В дисплеях с растровой разверткой три
электронных луча (или один - в монохромном дисплее) последовательно
перемещаются (сканируют) по поверхности ЭЛТ. Поверхность трубки
покрыта слоем люминофора, который начинает светиться при попадании
на него электронов (и некоторое время после этого). Каждый луч мож-
но включить или выключить в требуемой точке, вызывая тем самым све-
чение люминофора или его затемнение.
     В цветных дисплеях слой люминофора может быть нанесен двумя спо-
собами линейно или триадой. Триада состоит из красной,синей и зеле-
ной точек люминофора (и трех электронных пушек) ,которые
расположены в виде треугольника. В системах с линейным нанесением
люминофора используется вертикальное расположение красного, зелено-
го и синего люминофоров (три электронные пушки, расположенные гори-
зонтально). Наиболее частым способом нанесения люминофора является
триада . Приведение в соответствие точек люминофора и электронных
пушек позволяет, при тщательной ориентировке пушек, каждым лучом
высвечивать на люминофоре только один цвет.
     Электронный луч сканирует поверхность экрана, покрытого люминофо-
ром, в направлении слева направо и сверху вниз. Период возвращения
луча на левую сторону экрана называется обратным сканированием по
горизонтали. В в большинстве случаев при обратном сканировании эле-
ктронные пушки должны быть выключены для предотвращения вывода на
активную область экрана (это область, в которую уже выведено какое-
либо изображение). Эта операция называется затемнением по горизон-
тали. Область, непосредственно окружающая область вывода информа-
ции, в которой пушки могут быть включены в процессе обратного ска-
нирования, называется рамкой. Собственно активная область вывода
является частью экрана, в которую выводятся графическое изображение
или символы.
     Частота, с которой луч может включаться и выключаться в процессе
вывода одной строки (частота генератора точек), определяет разреша-
ющую способность адаптера по горизонтали.
     Разрешение по горизонтали довольно просто увеличить. Для этого
достаточно повысить частоту генератора точек. Некоторые совместимые
с EGA схемы реализуют с помощью этого метода 132-столбцовые режимы.
Конечно, точки люминофора должны быть при этом достаточно малы,
чтобы можно было различить отдельные пиксели. Размер триады, т.е.
размер промежутков в маске экрана, называется шагом точек. Обычно,
чем меньше шаг точек, тем выше качество дисплея. Следует заметить,
что размер точек люминофора не определяет однозначно размер пиксе-
ля, так что пиксель может состоять из нескольких триад. Часто пик-
сель или символ белого цвета может быть окружен красноватым, зеле-
новатым или голубоватым свечением в связи с тем, что освещена лишь
часть триады.
     После окончания строчной развертки реализуется обратное сканиро-
вание луча по горизонтали для перехода на следующую строку (это
относится только к не черезстрочным мониторам; телевизоры и некото-
рые другие мониторы являются черезстрочными, так что выводится на
экран только каждая вторая строка и для получения полного изобра-
жения требуется два прохода луча по кадру). Эта последовательность
действий продолжается до окончания последней строки экрана, после
чего начинается обратный ход луча по кадру. Осуществление обратного
хода луча по кадру аналогично обратному горизонтальному сканирова-
нию: электронные пушки могут быть включены только в небольшой об-
ласти рамки и должны быть выключены (затемнение по экрану) при про-
должении движения луча к верхнему левому углу экрана. Разрешающая
способность по вертикали зависит от двух причин: частота строк и
частота кадров. Повышение частоты строк позволяет повысить количес-
тво строк, выводимых в одном кадре. Количество выводимых строк мож-
но повысить также за счет увеличения времени вывода одного кадра на
экран (уменьшение частоты кадров). Однако при значительном уменьше-
нии частоты кадров может начаться мерцание изображения. Большинство
людей начинает замечать мерцание при частоте кадров ниже 60 Гц,
поэтому во многих мониторах применяется частота, близкая к 60 Гц
(в монохромном дисплее - 50 Гц, в ECD - 60 Гц, а в дисплее PS/2 час-
тота кадров варьируется от 60 до 70 Гц).
     Конструкцией большинства дисплеев допускается небольшое варьиро-
вание частоты строк и кадров. Некоторые изготовители выпускают в
продажу мультичастотные мониторы, способные автоматически подстраи-
ваться в широкой полосе частот. Это обстоятельство позволяет быть
уверенным, что данный монитор будет иметь возможность работать с
будущими адаптерами, в которых реализуется более высокая частота.
Конечно, полной гарантии нет, ведь монитор, разработанный для циф-
рового интерфейса, не может быть достаточно хорошо адаптирован для
аналогово применения, так как он не способен сгенерировать весь на-
бор цветов (без аппаратной модификации интерфейса). Преобразовать
цифровой сигнал в аналоговый эквивалент достаточно просто, поэтому
в настоящее время наиболее гибкими в применении являются мультичас-
тотные аналоговые дисплеи. В хороших дисплеях должна обеспечиваться
скорость развертки, необходимая для исключения возможности
мерцания. При увеличении скорости развертки большое количество пик-
селей может быть высвечено в течение данного интервала времени,
увеличивая тем самым разрешающую способность. В ECD поддерживаются
две скорости развертки: 15.75 кГц (такая же, как и в стандартном
цветном дисплее) и 21.8 кГц. В некоторых мультичастотных мониторах
обеспечивается подстройка их скорости развертки к скорости разверт-
ки адаптера. В большинстве таких дисплеев максимальная скорость
развертки достигает 30 кГц и при этом поддерживается разрешение до
900х550 точек. В некоторых случаях используется замедление скорости
развертки в связи с применением долгосветящегося люминофора. Долго-
светящийся люминофор остается возбужденным более продолжительное
время после облучения электронным лучом, и поэтому не возникает
мерцание экрана, но имеются трудности при чтении экрана во время
прокрутки. Монохромный дисплей является примером дисплея с долго-
светящимся люминофором, хотя часть компаний применяют долгосветя-
щийся люминофор и для цветных дисплеев.
     Обычно доступ к памяти дисплея открыт для ЦП в течении периодов
обратного сканирования по строке и по кадру, а для ЭЛТ - в течении
фактического сканирования. Если ЦП производит запись в память в то
время, когда ЭЛТ читает, то на экране появляется "снег". Регистры
EGA Указатель Последовательности могут управлять доступом ЦП и ЭЛТ
к памяти таким образом, чтобы исключить возможность различных кон-
фликтных ситуаций. В действительности регистр Указатель Последова-
тельности может разрешить ЦП доступ к памяти в процессе сканирова-
ния, но только в том случае, если ЭЛТ в этот момент к ней не обра-
щается. В процессе сканирования в режиме наивысшего разрешения для
ЭЛТ открыт доступ к памяти во время четырех тактов из пяти, а для
ЦП - в оставшийся один такт. Такая схема, конечно, не позволяет ис-
пользовать наивысшую скорость записи ЦП, но в то же время гораздо
эффективнее, чем ожидание обратного сканирования.
     При выборе цветного монитора прежде всего следует определиться,
какой дисплей необходим: аналоговый или цифровой. Затем следует
сделать выбор между мультичастотным монитором и монитором с фикси-
рованной скоростью развертки. После выбора типа монитора следует
убедиться в его качестве, особенно если его предполагается исполь-
зовать достаточно долго. Необходимо проверить, четко ли видны сим-
волы с обычного рабочего расстояния(и достаточного ли они размера).
Проверить наличие бликов на экране от дневного и искусственного
освещения (для предотвращения появления бликов применяется травле-
ние экрана); проверить, правильно ли воспроизводятся цвета. Цвета -
это самый тонкий вопрос, так как их восприятие очень индивидуаль-
но.Следует провести эксперимент с различными настройками регистров.
Кроме того,можно воспользоваться имеющимся программным обеспечением
для проверки цветов в алфавитно-цифровом и в графическом режимах,
так как они иногда отличаются (особенно, если программы используют
смену палитры).

------------------------------------------------------------------------
                                                       14. П Р И М Е Р Ы
                       П Р О Г Р А М М И Р О В А Н И Я  И  Л О В У Ш К И
------------------------------------------------------------------------



МОДИФИКАЦИЯ ПРЕРЫВАНИЙ EGA BIOS



     В некоторых блоках BIOS EGA используются рекурсивные вызовы.
Однако эти рекурсии встречаются довольно редко. Одним из примеров
является программа загрузки альтернативного шрифта. После загрузки
альтернативного шрифта переустановка режима осуществляется через
вызов INT 10h. Выдержать именно такую последовательность действий
может оказаться необходимым при написании программ, дополняющих
существующие некоторыми новыми функциями (например, если программа
пользователя должна запускаться только после фактического ее вызо-
ва или для фиксации ошибок в ПЗУ). Один из методов для обеспечения
такой работы заключается в следующем: создать в памяти  переменную
с нулевым начальным значением, увеличивать значение перед вызовом
программы из ПЗУ и уменьшать каждый раз при выходе из программы.
Созданная же пользователем программа должна вызываться только при
нулевом значении переменной (если есть необходимость постоянно вы-
зывать программу, следует создать внутренний стек).

     add       recur,1
     pushf
     call      old_int10
     sub       recur,1
     cmp       recur,0
     jne       skip_new
     call      new_routine
     skip_new: iret


ПРИМЕНЕНИЕ РЕЖИМОВ ЗАПИСИ 0 И 2


     При создании графических программ с прямым доступом к памяти
часто более эффективным является применение режима 2, который не под-
держивается BIOS (см. описание регистра Режим). Однако не менее важно
осуществить возврат к режиму 0 после окончания работы графической про-
граммы, так как в режимах 1 и 2 BIOS не в состоянии осуществить кор-
ректный вывод на экран. Кроме того, следует восстановить значения всех
регистров EGA, которые могли быть изменены (так же, как регистр Бито-
вая Маска).
     Отладка графических программ в режиме 1 и 2 может оказаться очень
сложной. Поэтому более правильным будет разработать программное обес-
печение в режиме 0, а затем, после того, как большинство программ бу-
дет отлажено, модифицировать его для работы в режиме 2. Также полезно
оформить программы рисования и установки режимов в виде макро или под-
программ в доступном всем коде для обеспечения возможности более пол-
ной их модификации.



ЗАПОМИНАНИЕ И ВОССТАНОВЛЕНИЕ МОДИФИЦИРОВАННЫХ СОСТОЯНИЙ



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



ВОССТАНОВЛЕНИЕ РЕЖИМОВ: УБЕДИТЕСЬ, ЧТО СТАРШИЙ БИТ ОБНУЛЕН


     В дополнение к запоминанию и восстановлению  положения курсора и
подчеркивания следует также сохранить и восстановить режим вывода на
экран. Это важно, если в программе используется установка режима(пра-
вило очень хорошо для практики, так как иногда встречаются программы,
в которых при запуске предполагается, что дисплей находится в тексто-
вом режиме и на экран начинает выводится "мусор", если ранее дисплей
был установлен в графический режим). Основное, на что следует обратить
внимание - это старший бит номера режима.
     При установке режима в EGA некоторые программы устанавливают бит
7,чтобы не изменять состояние памяти дисплея (например, резидентные
программы могут оставлять графическую память без изменений при переклю-
чении в текстовый  режим или изменять набор символов без перезаписи
экрана). Если программа пользователя производит запоминание текущего
режима, и старший бит при этом установлен, то при восстановлении режи-
ма могут происходить весьма странные вещи (иногда экран может быть
полностью погашен, а иногда может появиться всякий "мусор"). В связи
с этим следует перед восстановлением режима очистить старший бит (с
помощью команды AND mode,7fh).
     Сохранение состояния EGA при переключении режимов может быть за-
труднено по двум причинам. Во-первых, при каждом включении алфавитно-
цифрового режима происходит загрузка таблиц шрифта в битовую матрицу
3, а при обратном переключении в графический режим эта матрица оказы-
вается заполнена случайными значениями (которые обычно изображаются
красными точками на черном фоне). Этого  можно избежать при помощи
неиспользуемой видеостраницы или путем запоминания содержимого битовой
матрицы 3 (что более медленно и занимает больше памяти). Во-вторых, те-
ряется содержимое регистров-защелок. Это обстоятельство играет важную
роль, когда одна программа может вызывать прерывание другой программы.
Содержимое регистров-защелок должно быть сохранено в неиспользуемой
области памяти сразу за последним возможным адресом вывода на экран
(это может быть сделано с помощью режима записи 1; см. описание регис-
тра Режим Графического Контроллера).

[ Назад ] [ Оглавление ] [ Далее ]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог