Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
98
Добавлен:
20.06.2014
Размер:
4.63 Mб
Скачать

14. Видеосистемы пк типа ibm pc. Устройство и характеристики мониторов.

ВИДЕОСИСТЕМЫ РС

Видеосистемы предназначены для отображения текстовой или графической информации на экране монитора. Видеосистема включает в себя дисплей (видеомонитор) и схему управления (так называемый "видеоадаптер"), работающую под управлением драйвера (управляющей программы). Мониторы выпускаются размером от 12 до 21 дюйма по диагонали. Наиболее распространены 14' кинескопы. Экран 4:3. ЭЛТ выпускаются двух типов:

- с теневой маской из инвара (без выпучивания)

- с апертурной решеткой в виде проволочек (не выпучиваются, но вибрируют)

Первые монохромные мониторы (1981г) MDA (Monochrome Display Adapter - монохромный адаптер) имели развертку из 350 строк с разрешающей способностью 720 точек. Именно это и определило стандарт текстового экрана: каждый символ состоит из 9*14 точек(пикселов). Тогда 350/14=25 строк и 720/9=80 символов в строке.

Первые цветные мониторы (1982г) CGA (Color Graphics Adapter - цветной графический адаптер) имели разрешающую способность 200*640 в тестовом режиме и 200*320 в графическом режиме. Одновременно выводилось 4 цвета.

Следующий тип цветных мониторов (1984г)EGA (Enchaced Graphics Adapter - расширенный граф. адаптер) имел разрешающую способность 350*640 пикселов в тестовом и графическом режиме и позволял выводить одновременно 16 цветов из палитры в 64 цвета. Дальнейшее развитие цветных мониторов (1987г) VGA (Video Gate Array - видеографическая матрица) обеспечивает разрешающую способность 480*640 пикселов в тестовом и графическом режиме и позволяет выводить одновременно 256 цветов. Это последний официальный стандарт на видеоадаптеры.

Все, что лучше чем VGA носит название SVGA (Super VGA - Супер видеографическая матрица) Все видеоадаптеры SVGA совместимы (т.е. могут работать) в режиме VGA. Максимально достигнутая разрешающая способность 800*1024 пикселов. Количество цветов до 64 тысяч. Все видеосистемы периодически (60-70 раз/с) сканируют определенную область памяти (видеобуфер) и выводят ее на экран. Достаточно записать в одну из ячеек видеобуфера код символа, как он тут же появится на экране. Под видеобуфер во всех IBM PC отводится область памяти в адресах A0000...BFFFF. Конкретный размер буфера зависит от используемого адаптера и режима его работы. Вот почему основная память PC имеет размер только 640 Kb. Память за адресом A0000 недоступна для размещения обычных программ. Однако, если буфер занят не полностью, там могут быть размещены резидентные программы.

Текстовый режим адаптера

В текстовом режиме на экран из видеобуфера выводится записанная там информация в виде 25 строк текста по 80 символов в каждой строке: 25*80 = 2000 символов Каждый символ в памяти видеобуфера занимает 1 байт и еще один - его атрибуты (цвет символа и фона и яркость). Таким образом, для отображения одного экрана требуется 4000 байт памяти ОЗУ. Адаптеры обычно требуют хранения нескольких экранов (страниц) для их быстрой смены. Адаптер CGA использует для хранения четырех страниц (4-х экранов) текста в видеобуфере 4К*4 = 16 Кбайт памяти. Адаптеры EGA и VGA позволяют хранить 8 страниц текста в видеобуфере. В текстовом режиме все адаптеры используют область памяти видеобуфера с адреса B800:0000.

Для всех видеоадаптеров - первый символ первой строки отображается всегда в верхней левой части экрана. Поскольку нумерация как строк, так и символов начинается с нуля, то в правой нижней части экрана будет 79-ый символ 24-ой строки.

Для каждого отображаемого символа в видеобуфере отводится 2 байта:

ASCII - код Байт атрибутов

┌─┬─┬─┬─┬─┬─┬─┬─┐┌─┬─┬─┬─┬─┬─┬─┬─┐

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

└─┴─┴─┴─┴─┴─┴─┴─┘└┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┘

мигание символа ─┘ │ │ │ │ └─┴─┴─

цвет фона ───┴─┴─┘

3 - яркость символа

2-0 - цвет символа

┌─┬─┬─┐

2 1 0 Биты цветов:

└┬┴┬┴┬┘

│ │ └─── синий

│ └───── зеленый

└─────── красный

Управление выводом на экран

Управление выводом на экран в текстовом режиме осуществляется с помощью прерываний:

INT 10h (AH=01) - установка формы курсора

CH=начальная строка курсора (0..7)

CL=конечная строка курсора (0..7)

INT 10h (AH=02) - установка места курсора

BH=номер страницы (0..7)

DH=номр строки (0..24)

DL=номер символа в строке (0..79)

INT 10h (AH=05) - вывод новой страницы на экран

AL = номер страницы

INT 10h (AH=06) - сдвиг части экрана вверх

INT 10h (AH=07) - сдвиг части экрана вниз

AL = число строк сдвига

CH:CL = строка и столбец левого верхнего угла

DH:DL = строка и столбец правого нижнего угла

INT 10h (AH=09) - вывод символа с атрибутами

AL=код символа

BH=номер страницы (0..8)

BL=атрибуты

CX=количество выводимых символов

Примечание: все символы отображаются, включая CR,LF, и ВS

INT 10 (AH = 0Ah) - ВЫВОД СИМВОЛА без АТРИБУТОВ В ПОЗИЦИИ КУРСОРА

AL = символ

BH = номер страницы

CX = число повторений в записи символа

Примечание: все символы отображаются, включая CR,LF, и ВS

INT 10 (AH = 0Eh) - ВЫВОД СИМВОЛА С ПРОДВИЖЕНИЕМ КУРСОРА

AL = символ

BH = номер страницы

BL = цвет символа (только в графическом режиме)

Примечание: символы 07h (BEL), 08h (BS), 0Ah (LF), и 0Dh (CR)

не отображаются, но исполняются.

INT 10 (AH = 13h) - ЗАПИСЬ СТРОКИ С ПОЗИЦИИ КУРСОРА

Примечание: исполняются символы CR, LF, BS, и bell.

INT 21h (AH=02) - вывод символа без атрибутов

DL = код символа

INT 21h (AH=09) - вывод строки символов без атрибутов

DS:DX = адрес начала строки

Строка должна заканчиваться символом '$'.

INT 21h (AH=40h) - вывод строки символов без атрибутов

BX = 1

CX = число выводимых символов

DS:DX = адрес начала строки

Графический режим адаптера

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

INT 10h (AH=00)

AL = номер режима (установка режима приводит к очистке экрана).

Видеобуфер для текстовых режимов начинается с адр. B800:

Видеобуфер для графических режимов CGA нач. с адр. B800, для графических режимов EGA, VGA с адр. A000:

Адаптер CGAF в графическом режиме выводит на экран 200 строк по 320 пикселов в каждой строке. При этом поддерживается только 4 цвета. Это связано с размерами видеобуфера. Ведь точек на экране: 320*200 = 64000, а видеобуфер всего 16 килобайт!

Поэтому в каждом байте хранятся цвета для четырех пикселей. Т.е. по 2 бита на пиксел.

Двумя разрядами можно поддерживать только 4 цвета. Это мало, поэтому заранее устанавливают одну из двух палитр – одинаковую для всех пикселов. Цвет фона и палитры устанавливаются заранее перед выводом.

──────────────────────

Код цв.│ Палитра 0 │ Палитра 1

──────────────────────

0 = 00 Цвет фона Цвет фона

1 = 01 Зеленый Голубой

2 = 10 Красный Сиреневый

3 = 11 Коричневый Белый

Адаптер EGA использует для пикселей 16 цветов (в режиме "10" - 64 цвета). Один байт видеобуфера хранит цвета 2 пикселов. Размер видеобуфера

- в режиме 0Dh 320*200=64000 пикселов (т.е. 32К памяти)

- в режиме 0Eh 640*200=128000 пикселов (т.е. 64К памяти) связано с графическим режимом его работы.

Адаптер VGA использует для пикселей 64 цвета. Размер памяти для видеобуфера 256 Кбайт. 64 цвета устанавливаются за счет варьирования яркостью цветов красного, зеленого и синего.

Управление выводом на экран

Управление выводом на экран в графическом режиме осуществляется с помощью прерываний:

INT 10h (AH=0Bh) - установка цвета фона

BH = 0 - признак установки цвета фона, BL = код цвета фона (в граф. режиме любой из 16 цветов)

С адаптером CGA эта же функция устанавливает и вид палитры:

INT 10h (AH=0Bh)

BH = 1 - признак установки вида палитры, BL = вид палитры (0..1)

INT 10h (AH=0Ch) - вывод пиксела (стр 238)

DX = номер строки (0..199 или 0..349 или 0..479)

CX = номер точки в строке (0..319 или 0..539)

AL = цвет пиксела (0..3 с адаптером CGA, или 0..15 с адаптером EGA, или 0..63 с адаптером VGA)

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

INT 10h (AH=0Fh) - чтение текущего режима

Результат:

AL = номер текущего режима

BH = номер текущей страницы

AH = число столбцов