Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Видеорежимы и их краткая характеристика



Кафедра вычислительной техники

 

Методический материал

К выполнению лабораторных работ по дисциплине

«Вычислительные машины, системы и сети»

Составил: асс. каф. ВТ Кочетков А.В.

 

Санкт-Петербург, 2005 год

Лабораторная работа №1 ИССЛЕДОВАНИЕ ВИДЕОСИСТЕМЫ (ТЕКСТОВЫЙ РЕЖИМ)

Цель работы: изучение работы с видеосистемой в текстовом режиме, освоение приемов использования цветовой палитры: измене­ние цвета символов и фона на всем экране и в отдельном окне.

Общие положения

Аппаратные средства для вывода информации на экран вклю­чают специальную электронную плату (видеоадаптер, либо адап­тер дисплея, либо просто адаптер) и телевизионный монитор (или просто экран). Конструктивно видеоадаптеры - это весь­ма сложные устройства, управляемые собственным микропроцес­сором, сравнимым по мощности с центральным процессором компьютера. Несмотря на огромное разнообразие фирм-произво­дителей видеоадаптеров, имеется несколько стандартов, кото­рым все эти продукты удовлетворяют.

Для персональных компьютеров типа IBM PC доступны три основных типа мониторов: монохроматический, цвет­ной и усовершенствованный цветной (Enhanced Color Display -ECD). Существует несколько вариантов ECD: с низким и вы­соким разрешением, с фиксированной частотой синхрониза­ции и мультичастотный. Если компьютер оснащен адаптером, генерирующим цветной сигнал, и монохроматическим экра­ном, цвета передаются на экране различными оттенками се­рого (как цветная телепередача по черно-белому телевизору).

В самом общем виде видеоадаптер состоит из двух основ­ных частей: контроллера электронно-лучевой трубки, или CRT-контроллера (CRT - Cathode Rate Tube), и видеопамя­ти (видеобуфера). Помимо этих обязательных узлов, наибо­лее совершенные видеоадаптеры имеют в своем составе ряд дополнительных узлов, например специализированные конт­роллеры быстрой манипуляции содержимым видеобуфера (так называемые контроллеры графики). Основное назначение ви­деобуфера - хранение образа информации экрана. Видеоадап­тер 25-30 раз в секунду "освежает" (заново рисует) изображе­ние на экране. Так как человеческий глаз не способен уловить такое быстрое мелькание кадров, создается иллюзия не­подвижного изображения на экране монитора. Изображение на экране строится из небольших телевизионных точек - так называемых пикселов (pixel - Picture ELement). Пикселы объ­единяются в телевизионные строки. Число пикселов в теле­визионной строке и число самих строк различно для разных типов видеоадаптеров.

Память, необходимая для хранения полного образа экра­на, называется видеостраницей. Часто общий объем видеопа­мяти намного превышает объем единственной страницы. В этом случае появляется возможность хранить в видеобуфере не од­ну, а несколько страниц. Та видеостраница, которая постоян­но "освежается" в данный момент, называется текущей. Ви­деоадаптер способен выполнять переключение текущей видео­страницы. Объем видеопамяти, а, следовательно, и число возможных страниц, зависит от конкретного адаптера.

Для компьютеров IBM PC и совместимых с ними имеется несколько стандартов видеоадаптеров. Самые первые компь­ютеры IBM PC снабжались простейшим из адаптеров - монохро­матическим адаптером дисплея, или MDA (Monochrome Display Adapter). Очень скоро появились цветные графические адапте­ры, или CGA (Color Graphics Adapter), затем усовершенствован­ные графические адаптеры EGA (Enhanced Graphics Adapter). В наиболее совершенных персональных компьютерах PS/2 (Personal System 2) фирма IBM ввела два новых стандарта графи­ки, реализуемых новыми типами адаптеров. В компьютерах PS/2 Model 30 - это адаптер MCGA (Mufti Color Graphics Array - мно­гоцветный графический массив). Во всех остальных моделях PS/2 установлен видеоадаптер VGA (Video Graphics Array - гра­фический видеомассив). Еще один распространенный тип видео­адаптеров - это монохроматический адаптер Hercules, или HGС (Hercules Graphics Card).

Управление параметрами видеосистемы может выполняться на двух уровнях:

1) на уровне портов видеоадаптера;

2) обращением к функциям BIOS.

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

Видеорежимы и их краткая характеристика

Интегральной характеристикой особенностей работы адап­тера является совокупность поддерживаемых им режимов. По­ведение адаптера в том или ином режиме является фактиче­ским стандартом и полностью характеризует все особенности адаптера, доступные для программиста средства управления адаптером и т.п. Режимы принято нумеровать, начиная с ну­ля. Чем совершеннее видеоадаптер, тем больше режимов он поддерживает. Как правило, более совершенные адаптеры пол­ностью совместимы со своими "младшими братьями": если адаптер включен в режиме "младшего брата", он ведет себя, с точ­ки зрения прикладной программы, точно так же, как и "млад­ший брат". Среди перечисленных видеоадаптеров MDA - са­мый младший. Его преемником является CGA. "Старшим бра­том" CGA стал EGA. Преемником адаптера EGA является ви­деоадаптер VGA. Режимы работы видеоадаптеров описаны в табл. 1.1.

Видеоадаптеры MDA поддерживали только режимы 0 и 1. CGA-адаптеры могли уже работать в режимах 0-6. Далее эти режимы часто будем называть CGA-режимами. Как следует из таблицы, в CGA-режимах способны работать и другие адап­теры: EGA и VGA. При этом они могут полностью "притво­риться" CGA-адаптером, и тогда просто невозможно будет от­личить по картинке на экране, установлен ли ССА-адаптер либо это "притворяется" EGA- или VGA-адаптер. Но старший адаптер в CGA-режиме может остаться и "самим собой", пре­доставляя пользователю дополнительные возможности. Например, EGA способен выдавать на экран 350 телевизионных строк, а не 200, как это может делать CGA. Поэтому для отображе­ния текста в режиме "80 столбцов х 25 строк" можно потратить на каждую текстовую строку не 8 телевизионных строк, а уже 14. Следовательно, при тех же самых размерах каждый символ будет изображаться матрицей из 14 строк точек по 8 точек в каждой строке. Как результат, изображение каждой буквы на экране будет более четким. Но если EGA-адаптер заставить использовать для отображения символов матрицу 8x8 и при этом сохранить максимальное число телевизионных строк, появляется возможность разместить на экране уже 43 строки текста. Естественно, в этом случае сами символы на экране будут почти в 2 раза меньше.

Режимы с номерами ODh - 10h впервые появились в EGA-адаптере, и далее мы будем называть их EGA-режимами. Этот адаптер, обладая всеми возможностями своих предшествен­ников, имеет и ряд новых. Прежде всего, он способен выда­вать на экран информацию для 200 и 350 телевизионных ли­ний по 640 пикселов в каждой строке. Это позволяет при ра­боте в текстовых режимах увеличить либо четкость изобра­жения символов, либо число строк текста на экране (см. при­мер ранее). При работе в графических режимах EGA-адаптер способен отображать пикселы большим количеством цветов. И, наконец, режимы с номерами llh и старше - это режимы наиболее совершенных адаптеров - MCGA, VGA и специали­зированных графических адаптеров. Далее эти режимы будем называть VGA-режимами. Особенностями новых графических стандартов являются увеличенные максимальное число теле­визионных строк (до 480) и максимальное число пикселов в каждой телевизионной строке (до 720). Адаптер способен вы­давать 200, 350, 400 или 480 строк в зависимости от выбран­ных режима и инициализации адаптера. При работе в VGA-режимах еще более увеличилось число возможных цветов для пикселов.

 

 

Табл. 1.1. Режимы работы видеоадаптеров

Режим Тип Максимальное число цветов Размер шрифта Макси- мальное число страниц Разрешение Начало видео- буфера Тип Видеоадаптера
графика текст
0,1 Текст 8x8 _ 40x25 B8000h CGA, EGA, VGA,AT&T MCGA
Текст 16/64 8x14 _ 40x25 B8000h EGA,VGA
Текст 16/64 8x16 - 40x25 B8000h MCGA
Текст 16/64 9x16 _ 40x25 B8000h VGA
2,3   Текст 8x8 - 80x25 B8000h CGA
Текст 16/64 8x8 - 80x25 B8000h EGA,VGA
Текст 16/64 8x8 _ 80x43 B8000h EGA
Текст 16/64 8x8 _ 80x50 B8000h VGA
Текст 16/64 8x14 - 80x25 B8000h EGA,VGA
Текст 16/64 8x16   80x25 B8000h MCGA
Текст 16/64 9x16 - 80x25 B8000h VGA
4,5 Граф. 8x8 320x200 40x25 B8000h CGA,EGA, VGA,AT&T MCGA
Граф. 8x8 640x200 80x25 B8000h CGA,EGA, VGA,АT&T
Текст Моно 9x14 - 80x25 b000h HERCULES
Граф. Моно 9x14 720x350 80x25 b000h HERCULES
Текст Моно 8x14 1,4 _ 80x25 B0000h EGA,VGA
Dh Граф. 16/64 8x8 320x200 40x25 A0000h EGA,VGA
Eh Граф. 16/64 8x8 640x200 80x25 a0000h EGA,VGA
Fh Граф. Моно 8x14 640x350 80x25 a0000h EGA,VGA
10h Граф. 16/64 8x14 640x350 80x25 a0000h EGA,VGA
llh Граф. 8x16 640x480 80x30 a0000h MCGA, VGA
12h Граф. 8x16 640x480 80x30 a0000h VGA
13h Граф. 8x8 320x200 40x25 a0000h МСGА,VGA
  >13h Старшие режимы специализированных адаптеров - VGA, IBM8514, Commodor и др.
                     

 

При всем многообразии режимов работы видеоадаптеров их можно объединить в две группы: текстовые и графиче­ские. Переключение из текстового режима в графический и наоборот означает полное изменение логики работы видеоа­даптера с видеобуфером.

Если видеоадаптер включен в текстовый режим, он "рас­сматривает" экран как совокупность так называемых текселов (texel - Text Element) (рис. 1.1).

Каждому знакоместу экрана (текселу) в текстовом режиме соответствуют два байта памяти видеобуфера. Байт по четному адресу хранит ASCII-код символа, а следующий за ним байт по нечетному адресу кодирует особенности отображения симво­ла на экране: цвет пикселов, из которых формируется очерта­ние символа (Foreground Color), цвет всех остальных пиксе­лов знакоместа или цвет фона символа (Background Color),мерцание символа и необходимость повышения яркости симво­ла при отображении. Этот байт называется байтом атрибута. Закрепление битов байта атрибута приведено на рис. 1.2

Рис. 1.1. Представление экрана в текстовых режимах "25 строк х 80 столбцов"

R, G, В -соответственно красный (Red), зеленый (Green), синий (Blue) цвета

(1 - цвет включен; 0 - цвет выключен)

Рис. 1.2. Использование битов байта атрибута

 

Придавая различные числовые значения байту атрибута и помещая их в видеобуфер, можно управлять цветом символов и их фона. Например, если байт атрибута равен 128 + 64 + 32 + + 16 = 240, то выводится мерцающий символ черного цвета на сером фоне. Действительно, биты RGB цвета символа для атрибута 240 равны нулю. Биты цвета фона равны 1, и на мониторе для точек фона будут смешиваться в одинаковых пропорциях красный, синий и зеленый цвета. Для цветного видеоадаптера - это серый цвет. Повышение интенсивности цвета субъективно порождает ощущение "осветления" того или иного цвета. Поэтому можно добиться получения на экране светло-красного, светло-синего, светло-зеленого символа или светлых оттенков смешений красного, синего и зеленого цве­тов. Светло-серый цвет - это белый цвет, поэтому на экране цветного монитора при работе видеоадаптера в текстовом ре­жиме могут быть белые буквы, но не может быть белый фон. Например, символы, атрибут которых в видеопамяти равен 8 + 4 + 2 + 1 = 15, будут отображаться белыми пикселами на черном фоне. В принципе, если задать цвета фона и символа одинаковыми, символы будут невидимыми, например крас­ный символ на красном фоне (атрибут 0x44).

Видеоадаптеры типов EGA и VGA имеют некоторые осо­бенности использования бита интенсивности, которые будут рассмотрены несколько позже.

Видеопамять адаптера при работе в текстовых режи­мах доступна для непосредственного доступа из программы. Это значит, что любая ячейка видеобуфера может быть про­читана программой так же, как и обычная ячейка оператив­ной памяти. И как в обычную ячейку памяти, в видеобуфер возможна запись значений из программы. Адреса ячеек видео­памяти начинаются для разных типов адаптеров с разных гра­ниц, приведенных в табл. 1.1 в девятом столбце. Если адаптер работает в текстовых режимах "40 столбцов х 25 строк", то для хранения полного образа экрана (видеостраницы) требу­ется 25 х 40 х 2 = 2000 байт видеопамяти. В режимах "80 столбцов х 25 строк" видеостраница занимает уже 25 х 80 х 2 = 4000 байт. Минимальная конфигурация видеоадаптера CGA имеет обычно 16К байт видеопамяти, что позволяет хранить 8 страниц текста в режимах 0 или 1 и 4 страницы в режимах 2 или 3. "Освежение" видеобуфера происходит, начиная с неко­торого начального адреса, называемого смещением до видео­страницы. Страница 0 имеет нулевое смещение. Страница 1 в режиме "80 строк х 25 столбцов" начинается со смещения 4096 (lOOOh) относительно начального адреса видеопамяти, страница 2 - со смещения 8192 (2000h) и т.д. Если изменить смещение, с которого видеоадаптер производит "освежение" экрана, произойдет переключение страницы, т.е. на экране возникнет образ другой страницы видеопамяти. При этом об­разы других страниц останутся в видеобуфере целыми и не­вредимыми. Иногда переключение видеостраниц в текстовом режиме используется для реализации "живых" изображений.

Видеоадаптер в текстовом режиме 25-30 раз в секунду счи­тывает содержимое видеобуфера и по коду символа и байту атрибута "рисует" пикселы, формирующие в совокупности очер­тание символа и его фон. При этом байт символа служит ин­дексом для входа в специальную таблицу - так называемую таблицу знакогенератора. Она задает карту, по которой ви­деоадаптер "расставляет" пикселы для изображения того или иного символа. Число строк и столбцов пикселов в этой карте различно для различных типов видеоадаптеров. В табл. 1.1 это значение, записанное в четвертом столбце в формате "стол­бцы х строки". Чем больше строк использовано для символа, тем более качественно он изображается на экране.

Число знакомест в одной текстовой строке зависит от режима работы видеоадаптера и приведено в табл. 1.1 в седь­мом столбце. Число текстовых строк для текстовых режимов зависит от типа адаптера и его инициализации. Для CGA-адаптера число строк текста в текстовых режимах всегда равно 25. EGA-адаптер в текстовых режимах способен отображать или 25 строк или 43 строки текста. Такой адаптер выдает на эк­ран 25 строк текста, во-первых, если он полностью эмулирует CGA-адаптер и, во-вторых, если установлена таблица знако­генератора 8 х 14 и сохранено максимальное число (350) телевизионных линий. Если для EGA-адаптера выбрана таблица знакогенератора 8 х 8 и сохранено 350 телевизионных линий на экран выводится 43 строки текста по 80 символов каждой. VGA-адаптер способен выводить на экран 25, 28, 43 или 50 строк текста, работая в текстовом режиме. На экране 25 строк текста будет в том случае, когда: 1) VGA-адаптер полностью эмулирует CGA-адаптер; 2) VGA-адаптер эмули­рует EGA-адаптер, отображающий 25 строк текста; 3) уста­новлены таблица знакогенератора 9 х 16 и число телевизион­ных линий, равное 400. На экране 50 строк текста отобража­ются тогда, когда установлена таблица знакогенератора 8x8 и сохранено число телевизионных строк, равное 400. Если в VGA-адаптере сохранено 400 телевизионных строк и установ­лена таблица знакогенератора 8 х 14, на экране отображается 28 строк текста.

Переключение адаптера в один из графических режимов полностью изменяет логику работы аппаратуры видеосисте­мы. При работе в графическом режиме появляется возмож­ность управлять цветом любой телевизионной точки экрана или пиксела. Число строк пикселов и число пикселов в каж­дой телевизионной строке зависит от режима работы видео­адаптера и приведено в табл. 1.1 в шестом столбце в формате "столбцы х строки". Таким образом, экран в графическом ре­жиме представляет собой матрицу пикселов (рис. 1.3).

 

Рис. 1.3. Представление экрана в графических режимах 4,5 (320 столбцов х 200 строк)

 

Функции консольного вывода

Функции консольного ввода-вывода Turbo С, прототипы которых помещены в файле <conio.h>, предназначены для облегчения работы по созданию простейшего оконного интерфейса. Эти функции используют понятие активного окна экрана. Активное окно это прямоугольная область экрана, в границах которой в данный момент работают функции. Описание активного окна (или, как часто говорят, фрейм) хранится во внутренней структурной переменной Turbo С. Установку параметров активного текстового окна выполняет функция window( ).

 

#include <conio.h>



Просмотров 1567

Эта страница нарушает авторские права




allrefrs.su - 2025 год. Все права принадлежат их авторам!