Программирование видеоадаптеров CGA,EGA и VGA



   forex review        

Программирование видеоадаптеров CGA,EGA и VGA

Подробно описана архитектура этих видеоадаптеров, их регистры. Для каждого регистра воспроизводится его формат и описывается назначение. В наиболее интересных случаях представлены программы, использующие непосредственный доступ к регистрам. Благодаря этому читатель сможет получить на экране своего компьютера видеоэффекты, недоступные при использовании только функций BIOS или функций библиотек трансляторов языков высокого уровня.
Читателю предоставляется возможность подробно рассмотреть стандартные режимы работы видеоадаптеров, структуру видеопамяти в этих режимах. Знание структуры видеопамяти позволяет создавать программы, отображающие информацию на экране путем непосредственного доступа к видеопамяти. А это, в свою очередь, важно при создании быстрых видеопрограмм, в частности, динамических игр и графических редакторов.
В качестве примера рассмотрены два не стандартных режима видеоадаптера VGA. Эти режимы не поддерживаются функциями BIOS и позволяют в режиме с 256 цветами иметь большую разрешающую способность.
Далее в книге излагаются традиционные методы управления видеоадаптерами. Приведен обзор всех прерываний и функций BIOS, предназначенных для работы с видеоадаптерами. Описываются также наиболее важные функции cтандартных библиотек трансляторов Microsoft Quick C 2.5 и C 6.0. Применение каждой группы функций иллюстрируется примерами программ.
Большое количество программ, составленных с использованием таких распространенных языков программирования, как Си и ассемблер, значительно облегчают понимание материала, изложенного в книге.
Книга предназначена для специалистов по вычислительной технике, системных и прикладных программистов, студентов вузов, специализирующихся на вычислительной технике.

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

Типы дисплеев
Режимы работы видеоадаптеров
Системы с двумя видеоадаптерами
Архитектура видеоадаптера CGA
Архитектура видеоадаптеров EGA и VGA
Регистры видеоадаптера CGA
Регистры видеоадаптеров EGA и VGA
Основные средства BIOS для видеоадаптеров
Дополнительные средства BIOS для EGA и VGA
Область данных видеофункций BIOS

Типы дисплеев
Композитный дисплей. Имеет одну аналоговую входную линию. Дисплей может быть как цветным, так и монохромным. Видеосигнал поступает в дисплей в стандарте NTSC (National Television System Committee). Данный стандарт используется также в телевидении. Композитный дисплей применяется совместно с видеоадаптером CGA. Цифровой дисплей. Имеет от одной до шести входных линий. На цифровом дисплее может отображаться до 2n различных цветов, где n равно количеству входных линий. Данный тип дисплеев может использоваться вместе с EGA и CGA. Аналоговый RGB дисплей.

Монохромный дисплей
Цветной дисплей
Улучшенный цветной дисплей
Многочастотный цветной дисплей

Режимы работы видеоадаптеров
Существуют несколько стандартных режимов работы видеоадаптеров, определенных фирмой IBM. Список стандартных режимов работы видеоадаптеров представлен в таблице 3.1. Стандартные раежимы работы не включают все режимы, в которых могут работать видеоадаптеры. Многие фирмы - производители видеоадаптеров выпускают адаптеры, поддерживающие нестандартные режимы, имеющие улучшенные характеристики.

Режимы 0 и 1
Страничная организация видеопамяти.
Режимы 0*, 1*
Режимы 0+, 1+
Режимы 2 и 3
Режимы 2*, 3*
Режимы 2+, 3+
Режимы 4 и 5
Режим 6
Режим 7

Системы с двумя видеоадаптерами
В некоторых случаях желательно или необходимо, чтобы компьютер имел два дисплея. Например, для отладки приложений, созданных с использованием SDK Windows можно применять отладчики CodeView и Symdeb. Данные отладчики при отладке приложений Windows нуждаются в компьютере, имеющем два дисплея. На одном дисплее отображается исходный текст отлаживаемого приложения и информация отладчика, а другой используется самим приложением.

Системы с двумя дисплеями.
Смена первичного дисплея.

Архитектура видеоадаптера CGA
Видеоадаптер CGA построен на основе мкросхемы Motorolla 6845 или ее аналога. Эта микросхема содержит контроллер электронно-лучевой трубки (ЭЛТ). Контроллер ЭЛТ Motorolla 6845 устанавливает формат экрана, управляет курсором и световым пером, а также управляет цветовыми характеристиками изображения.

Текстовые режимы CGA
Байт атрибутов символа.
Знакогенератор
Видеопамять в графических режимах CGA
Режимы 4 и 5
Структура видеопамяти для режимов 4 и 5.
Режим 6
Структура видеопамяти в режиме 6.
Организация видеопамяти адаптера Hercules
Структура памяти видеоадаптера Hercules

Архитектура видеоадаптеров EGA и VGA
Видеопамять. В видеопамяти размещаются данные, отображаемые адаптером на экране дисплея. Для видеоадаптеров EGA и VGA видеопамять, как правило, имеет объем 256К байт. На некоторых моделях Super VGA и XGA объем видеопамяти может быть увеличен до 1М байт. Видеопамять находится в адресном пространстве процессора и программы могут непосредственно производить с ней обмен данными. Физически видеопамять разделена на четыре банка или цветовых слоя, разделяющих единое адресное пространство. Графический контроллер. Посредством его происходит обмен данными между центральным процессором компьютера и видеопамятью. Аппаратура графического контроллера позволяет производить над данными, поступающими в видеопамять, и над данными, расположенными в регистрах-защелках (регистры-защелки описаны ниже) простейшие логические опрерации (И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ, циклический сдвиг).

Блок схема видеоадаптеров EGA/VGA
Электронно-лучевая трубка
Экран электронно-лучевой трубки.
Видеопамять
Текстовый режим
Структура видеопамяти в текстовых режимах.
Преобразование кода ASCII в символ на экране.
Отображение цветовых слоев.
Знакогенератор
Активные таблицы знакогенераторов.

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

Краткий обзор
Регистры контроллера ЭЛТ
Общая длина линии горизонтальной развертки
Длина отображаемой части горизонтальной
Положение горизонтальной синхронизации
Ширина горизонтального синхросигнала
Число горизонтальных линий растра
Выравнивание растра
Длина отображаемой части развертки
Положение вертикальной синхронизации

Регистры видеоадаптеров EGA и VGA
В этой главе мы опишем все основные регистры видеоадаптеров EGA и VGA, которые могут быть полезны при написании программ. Необходимо указать, что хотя программирование видеоадаптеров на уровне регистров позволяет увеличить скорость работы программ и решить некоторые задачи, которые нельзя решить при помоши функций BIOS, это может вызвать ряд проблем при переносе ваших программ на другие машины. Дело в том, что не все адаптеры совместимы на уровне регистров. Например, оригинальный видеоадаптер CGA создан на основе микросхемы Motorola 6845, а видеоадаптеры EGA и VGA используют более совершенный аналог этой микросхемы.

Краткий обзор
Внешние регистры
Регистр определения различных режимов работы
Регистр управления дополнительным устройством
Регистр состояния 0
Регистр состояния 1
Регистр разрешения работы системы VGA
Регистр сброса триггера-защелки светового пера
Установки триггера-защелки светового пера
Регистры контроллера ЭЛТ

Основные средства BIOS для работы с видеоадаптерами
Подробно описаны все основные функции BIOS, предназначенные для работы с видеоадаптерами. Основные функции BIOS реализуются на всех компьютерах серии IBM PC/XT/AT, PS/2. На каждую группу функций данная глава содержит примеры программ.

Выбор режима работы - функция 00h
Изменение формы курсора - функция 01h
Изменение положения курсора
Изменение положения курсора - функция 02h
Определение положения и формы курсора
Использование светового пера - функция 04h
Изменение активной страницы видеопамяти
Свертка текстового окна вверх - функция 06h
Свертка текстового окна вниз - функция 07h
Чтение символа и его атрибутов - функция 08h

Дополнительные средства BIOS для управления EGA и VGA
В этой главе описаны остальные функции BIOS, которые реализованы только на видеоадаптерах EGA и VGA. Так же, как и в предыдущей главе, использование каждой группы функций иллюстрируется соответствующими примерами программ.

Управление регистрами палитры - функция 10h
Установка одного регистра палитры
Установка цвета рамки - подфункция 01h
Установка всех регистров палитры
Управление атрибутом мигания - подфункция 03h
Чтение регистра палитры - подфункция 07h
Чтение регистра цвета рамки - подфункция 08h
Чтение всех регистров палитры - подфункция 09h
Установка одного регистра таблицы цветов
Установка нескольких регистров таблицы цветов

Область данных видеофункций BIOS
Глава описывает переменные BIOS, размещенные в младших адресах памяти (в так называемой системной области) и используемые видеофункциями BIOS. Знание адресов этих переменных позволяет программе определить количество и тип видеоадаптеров, подключенных к компьютеру, объем видеопамяти, текущий режим работы адаптера.

Переменные в младших адресах памяти
Таблица окружения
Таблица параметров
Область сохранения
Таблица символов текстового режима
Таблица символов для графического режима

Использование функций MS-DOS для управления видеоадаптерами
MS-DOS предоставляет программистам несколько функций для работы с дисплеем

Вывод символов - функция 02h
Вывод строки на экран дисплея - функция 09h

Стандартные функции вывода языка Си
В главе рассмотрены основные стандартные функции вывода текстовых данных на экран (через стандартный выходной поток и через консоль). К ним относятся функции putc, putchar, putch, puts, cputs, printf и cprintf.

Функции putchar() и putc()
Функция puts()
Функция printf()
Функция putch()
Функция cputs()
Функция cprintf()

Функции управления видеоадаптером
Глава знакомит читателей с основными функциями стандартной библиотеки трансляторов Microsoft Quick C 2.5 и C 6.0, предназначенными для управления экраном дисплея в текстовом режиме. Глава содержит описание функций, управляющих формой и координатами курсора, текущим режимом работы видеоадаптера и переключением страниц видеопамяти, отображением текста и изменением цвета символов и цвета фона.

Функция _displaycursor()
Функция _gettextcursor()
Функция _settextcursor()
Функция _gettextposition()
Функция _settextposition()
Функция _getbkcolor()
Функция _setbkcolor()
Функция _gettextcolor()
Функция _settextcolor()
Функция _outtext()

Основные графические функции
Глава знакомит читателей с основными функциями стандартной графической библиотеки трансляторов Microsoft Quick C 2.5 и C 6.0. Функции, описанные в этой главе, предоставляют программисту разнообразные возможности управления графическим экраном дисплея.

Функция _setpixel()
Функция _lineto()
Функция _moveto()
Функция _rectangle()
Функция _ellipse()
Построение эллипса функцией _ellipse().
Функция _arc()
Построение дуги эллипса функцией _arc().
Функция _pie()
Построение сектора эллипса _pie().

Приложение
В приложения к книге вынесены наиболее полезные таблицы: таблица ASCII-кодов символов; карта памяти, используемой видеоадаптерами CGA/EGA/VGA; значения регистров, устанавливаемые BIOS по умолчанию, список стандартных режимов видеоадаптеров с их основными параметрами. Приложение содержит также словарь терминов (глоссарий).

Таблицы ASCII-кодов символов
Руссификация видеоадаптеров
Установка переключателей на плате EGA.
Режимы работы видеоадаптеров.
Карта памяти CGA/EGA/VGA
Карты портов ввода/вывода видеоадаптера CGA
Регистры контроллера ЭЛТ Motorola 6845.
Карты портов ввода/вывода EGA и VGA
Регистры контроллера ЭЛТ EGA/VGA8
Регистры синхронизатора EGA/VGA8

Программирование видеоадаптеров CGA, EGA и VGA (2)

Изначально персональные компьютеры серии IBM PC комплектовались видеоадаптером MDA (Monochrome Display Adapter) с монохромным дисплеем (MD). Этот адаптер имел небольшую разрешающую способность, не мог отображать графическую информацию и был, как это следует из названия, монохромным. Через некоторое время небольшая фирма Hercules Computer Technology, Inc. выпустила монохромный видеоадаптер Hercules, который уже имел возможность вывода графики и обеспечивал большую разрешающую способность.
CGA (Color Graphics Array) стал первым цветным видеоадаптером фирмы IBM. Он уже обеспечивал возможность отображать цветную графическую и текстовую информацию, но имел слишком маленькую, даже по сравнению со своими предшественниками - MDA и Hercules, разрешающую способность.
Затем фирма IBM выпустила два, наиболее распространенных в настоящее время, видеоадаптера - EGA (Enhanced Graphics Array) и VGA (Video Graphics Array). Они созданы на другой элементной базе и имеют лучшую, чем у CGA, разрешающую способность, при большем числе отображаемых цветов.

Соглашения, принятые при изложении материала
Регистр управления режимом (Mode Control Register - MCR) (индекс10h)
Карта памяти CGA/EGA/VGA

Межсетевой обмен с помощью TCP-IP

Чтобы понимать сетевой обмен и круг вопросов, рассматриваемых в книге, важно представлять, что сетевые исследования и разработки прошли через три стадии развития До 1960 года, основным вопросом был "Как передавать биты по среде коммуникации эффективно и надежно?". Результаты включают разработку теории информации, теоремы Котельникова и других идей, которые в совокупности называют обработкой сигналов. От начала и до середины 60-х внимание было сконцентрировано на пакетной коммутации и основным вопросом стал: "Как передавать пакеты по среде коммуникации эффективно и надежно?" . Результатами этого этапа стали разработка технологий пакетной коммутации, локальных вычислительных сетей и статистический анализ времени передачи пакетов по сети в зависимости от загрузки. Приблизительно с середины 70-х и до нынешнего времени самым главным направлением стали сетевые архитектуры и вопрос "Как обеспечить средства взаимодействия взаимосвязанных сетей?". Результатами последнего этапа стала разработка технологий межсетевого обмена, многоуровневых моделей протоколов, дейтаграммных и потоковых транспортных средств и парадигмы взаимодействия клиент-сервер.

Введение
Необходимость Интернета
Два подхода к сетевому взаимодействию
Взаимодействие на прикладном уровне
Универсальные идентификаторы
Проблема разрешения адресов
Протокол обратного разрешения адресов(RARP)
Виртуальная сеть
Маршрутизация в Интернете
Межсетевой протокол управляющих сообщений
Необходимость нескольких протоколов
Определение окончательного места назначения

Операционные системы распределенных вычислительных систем

Сетевые ОС - машины обладают высокой степенью автономности, общесистемных требований мало. Можно вести диалог с другой ЭВМ, вводить задания в ее очередь пакетных заданий, иметь доступ к удаленным файлам, хотя иерархия директорий может быть разной для разных клиентов. Пример - серверы файлов (многие WS могут не иметь дисков вообще).
Распределенные ОС - единый глобальный межпроцессный коммуникационный механизм, глобальная схема контроля доступа, одинаковое видение файловой системы. Вообще - иллюзия единой ЭВМ.

Продолжение


Информатика и технология программирования
MathCAD
Матричные вычисления в Mathcad
Энциклопедия 3ds max 6
3DS MAX 7
Принципы организации IP-телефонии на базе решений Cisco Systems
Иллюстрированный самоучитель по введению в экспертные системы
Основы работы с системой MathCAD 7.0
Матричные вычисления в Mathcad
Бытовая радиоаппаратура и ее ремонт
Противостояние форматов DVD-R-RW и DVD+RW
Векторная графика в программе FreeHand
Active Directory для Windows Server 2003
Маурин Евгений - Возлюбленная Фаворита
Меррит Абрахам Грайс - Гори Ведьма Гори
Аппаратное обеспечение IBM PC
SW-CMM (Модель зрелости процессов разработки ПО)
Компьютерные сети Принципы, технологии, протоколы
Методы и средства инженерии программного обеспечения
Мельников Руслан - Тайный Рыцарь