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

       

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

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

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

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

Режимы работы видеоадаптеров


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Программирование видеоадаптеров 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 могут не иметь дисков вообще).
Распределенные ОС - единый глобальный межпроцессный коммуникационный механизм, глобальная схема контроля доступа, одинаковое видение файловой системы. Вообще - иллюзия единой ЭВМ.

Продолжение