Жанр: Учеба

Программно-аппаратная организация компьютера IBM PC

сторінка №15

и только в некоторых случаях возникает нечто
вроде быстро исчезающей помехи, как если бы курсор попытались быстро
переместить через весь экран дисплея. Такой эффект возникает как результат
попыток одновременного доступа к памяти со стороны компьютера и со стороны
дисплея. Опасного в этом ничего нет, любопытен лишь сам эффект и не более.
Взяв за основу дисплей, хранящий копию изображения в памяти, закрепив за
дисплеем свою собственную область памяти и обеспечив двусторонний вход в
память фирма, IBM решила задачу визуализации информации наилучшим образом.
Можно было бы, правда, обеспечить и более высокую разрешающую способность
дисплея в текстовом режиме, а также реализовать пиктографический режим,
хотя бы в том объеме как это было впервые сделано для рабочей станции
"Стар" (STAR) фирмы "Ксерокс" или для компьютера "Лиза" ( Lisa) фирмы
"Apple".
В базовом варианте распределения памяти для IBM/PC под память дисплея
отводилось 128Кбайт. Это верный признак того, что фирма IBM намеривалась
реализовать все эти возможности.
Это все, что следует знать читателю, прежде чем приступать к более
глубокому изучению вопросов отображения информации на экране дисплея. В
следующем параграфе мы изложим наши взгляды на принципы построения
графических систем, а затем рассмотрим детали построения хранимого образа
экрана и обсудим такие понятия как "страницы" и "атрибуты".
Память дисплея физически размещается вместе с другими схемами дисплея
на плате адаптера. Однако логически (для центрального процессора) она
является частью основного адресного пространства компьютера. Для дисплея
отводится 128Кбайт памяти в блоках А и В с адресами А0000(16) - BFFFF(16),
однако оба стандартно поставляемых дисплейных адаптера используют лишь два
небольших фрагмента этой области памяти. Одноцветный адаптер использует 4К
дисплейной памяти, начиная с адреса B800. Оставшаяся память, в частности,
64-килобайтный блок от A000 до B000 отводится для развития возможностей
дисплея, например, для использования дисплейного графического адаптера.
Одноцветный и цветной графические адаптеры используют для вывода
информации на экран дисплея так называемый битовый образ изображения
(экрана) хранящегося в описанной выше памяти. Каждая ячейка области памяти
соответствует определенной позиции экрана, между ними установлено взаимно
однозначное соответствие.
Схемы дисплея периодически считывают информацию из памяти и выводят
ее на экран. Программа может непосредственно изменять содержимое памяти,
тем самым изменяя содержимое экрана. Контроллер экрана служит для связи
памяти дисплея с монитором, преобразуя поток получаемых из памяти битов в
электронные пучки, направляемые в определенные точки экрана. Точки экрана
называть пикселями, пэлами или элементами изображения. Они образуются при
столкновении потока электронов с люминофором поверхности
электронно-лучевой трубки. Поток электронов испускается электронной пушкой
и построчно перемещается сверху вниз. По мере его движения контроллер
электронно-лучевой трубки модулирует его интенсивность в зависимости от
комбинации битов, полученных из памяти дисплея.
Видеосхема обновляет экран 60 раз в секунду, делая меняющееся
изображение отчетливым и ясным. В конце каждого цикла обновления экрана
электронный пучек должен переместиться из нижнего правого угла экрана в
его верхний левый угол. Это перемещение называют вертикальным обратным
ходом. Во время обратного хода луча его подача на поверхность экрана
блокируется.
Время обратного вертикального хода луча составляет 1,25мсек и может
учитываться программистом.

8.3. Структура копии изображения экрана

Выше уже говорилось о том, что дисплеи компьютера IBM/PC относятся к
классу дисплеев, хранящих битовый образ экрана в памяти (карту) памяти. В
связи с этим обстоятельством имеет смысл рассмотреть принципы построения
этого образа.
Описываемый здесь образ экрана в памяти применим как к монохромному,
так и к цветному графическому адаптерам, работающим в текстовом режиме.
Графические режимы будут рассмотрены в следующей главе с учетом
особенностей хранения изображений в памяти (Более подробные сведения о
различных режимах работы цветного графического адаптера и некоторые
интересные возможности описаны в разделе 8.11.).
Поскольку дисплейные адаптеры используют специальную двухвходовую
память, не следует удивляться тому, что она размещается особым образом.
Физически память дисплея размещается на схемной плате и плате расширения
адаптера. Схемная плата содержит также микросхему контроллера дисплея и
все вспомогательные электронные схемы. Эта плата, подобно другим платам
для IBM/PC, вставляется в один из дополнительных разъемов, предназначенных
для подключения вспомогательного оборудования.
Несмотря на то, что память дисплея физически размещается на плате
контроллера дисплея, логически она ничем не отличается от обычной памяти в
том смысле, что допускает считывание и запись информации путем обращения
по адресу. Дисплеям двух различных типов отводятся различные участки
памяти (об этом уже говорилось при обсуждении основ использования памяти
персонального компьютера в главе 3), поэтому они могут быть одновременно
подключены к одному компьютеру. Монохромному дисплею отводится область
памяти, начиная с шестнадцатеричного адреса B000, а цветному графическому
- с адреса B800.

Читателю, знакомому с Бейсиком, напомним, что доступ к памяти
осуществляется с помощью операторов PEEK и POKE после того, как установлен
нужный указатель сегмента

10 DEF SEG = &HB000 (память монохромного дисплея)
20 DEF SEG = &HB800 (память цветного графического дисплея)

После приведенных кратких сведений о принципах работы дисплея с
хранимым образом экрана в памяти имеет смысл еще раз обратиться к
диаграмме на рис. 8.1.
Процесс отображения содержимого экрана в память начинается с
определения позиций отдельных символов экрана. Каждой позиции экрана
соответствует два байта памяти. Совместно эти два байта задают собственно
объект подлежащий, отображению на экране и то, как его следует отобразить.
Первый из двух байтов (имеющий четный адрес) специфицирует собственно
объект (т.е. "что" отображается на экране). Это шестнадцатеричный код
символа ASCII. Второй байт (имеющий нечетный адрес) специфицирует режим
отображения первого байта (т.е. "как" символ отображается на экране). Это
так называемый байт-атрибутов. В случае цветного графического адаптера
байт-атрибутов управляет цветом. В случае монохромного адаптера
байт-атрибутов управляет яркостью и подчеркиванием символа; это своего
рода монохромные эквиваленты цвета. Кроме того байт-атрибутов
устанавливает режим мерцания символа (для адаптеров обоих типов).
Детальное описание байта-атрибутов приводится в разделах 8.5 и 8.6.
Первой позиции экрана (верхний левый угол соответствует таким образом
два байта в памяти дисплея со смещением 0. Следующей позиции (смещенной на
одно знакоместо вправо) соответствуют два байта памяти со смещением 2, Так
продолжается до конца первой строки экрана дисплея. Для монохромного
дисплея, а также для цветного графического дисплея, работающего в 80-ти
позиционном режиме последнему символу строки соответствует пара байтов со
смещением 158 (т.е. 79х2). Для цветного графического дисплея, работающего
в 40-позиционном режиме, последней позиции первой строки соответствует
пара байтов памяти со смещением 78 (т.е. 39х2).
При переходе к новой строке позиции экрана продолжают отображаться
парой смежных байтов таким образом, что первой позиции следующей строки
соответствует пара байтов, расположенных непосредственно вслед за байтами
последней позиции предыдущей строки. Область памяти используется без
промежутков, т.е. какие-либо пробелы между концом одной строки и началом
другой строки - отсутствуют. Разумеется, речь идет о физических
промежутках, поскольку в логическом плане вполне естественно говорить о
вычислении местоположения границы между строками.
Все сказанное выше распространяется как на 80-ти позиционный, так и
на 40-позиционнный режимы. Поэтому при переходе из одного режима в другой
должна измениться структура расположения в памяти позиций и строк.
Монохромный и цветной графический дисплеи в 80-ти позиционном режиме
требуют 4000 байтов: 80 позиций х 2 байта х 25 строк. Цветной графический
адаптер в 40-позиционном режиме требует вдвое меньшей памяти, т.е. порядка
2000 байт.
Следствием такой схемы хранения образа экрана в памяти является то,
что отображаемые символы могут располагаться в любом другом месте памяти.
А это, в свою очередь, создает неудобства при перемещении сообщений в
память дисплея. Сообщения или любые другие строки отображаемых данных не
могут быть перемещены по месту назначения за один шаг, если форма их
хранения в программах не предполагает наличия байтов-атрибутов. Сообщение,
таким образом, должно быть представлено в виде чередующейся
последовательности содержательных и атрибутивных байтов. Поскольку большая
часть данных выводятся на экран в виде строк символов с одними и теми же
атрибутами, то возникает потребность в специальных программах перемещения
данных в нужную область памяти, которые бы попутно дополняли их нужными
атрибутами. Листинг 8.2 содержит тексты некоторых служебных программ на
Паскале, реализующих эти функции; в параграфе 8.7. этот вопрос рассмотрен
более детально.
Поскольку в памяти, отведенной дисплею, отсутствуют физические
границы между строками, то могут быть автоматически перенесены в следующие
строки, путем простого использования очередных адресов. Это довольно
эффективный способ решения проблемы переноса сообщений с минимальными
затратами. В тех случаях, когда важно фиксировать факт достижения
сообщением конца строки, следует предусматривать в программах проверку и
обработку этого условия. Для использования монохромного адаптера требуется
4000 байт памяти. Это приблизительно соответствует 4К (4096). Лишние 96
байтов не используются и остаются свободными. Цветной графический адаптер
требует значительно большего объема памяти, а именно, 16К. Это объясняется
большими потребностями памяти.
Объем памяти, используемой цветным графическим адаптером, составляет
16К байт. Такой значительный объем памяти определяется потребностями
графических режимов, детально описываемых в следующей главе. Персональный
компьютер использует излишки памяти (когда эта память реально не
используется в графических режимах) путем организации (в текстовом режиме)
набора копий кадров экрана. Эти копии принято называть страницами. В
следующем параграфе мы рассмотрим принципы организации и функционирования
страничного механизма.


8.4. Страничный механизм цветного графического дисплея

Материалы настоящего параграфа в первую очередь относятся к
компьютерам IBM/PC, снабженным цветным графическим адаптером. Однако, по
мере изложения станет ясно, что эта концепция может быть распространена и
на систему с монохромным адаптером. Поэтому, если читателя интересуют
только системы второго класса (либо универсальные системы) данный
параграф, несомненно, представляет интерес.
В отличие от монохромного адаптера, объем памяти которого в точности
соответствует размеру заполненного кадра дисплея, цветной графический
адаптер располагает памятью гораздо большего объема, чем это требуется для
работы в текстовом режиме. Это объясняется тем, что для работы в
графическом режиме требуются значительные ресурсы памяти. Фирма IBM пошла
по пути реализации страничного механизма работы с кадрами изображения.
Страница представляет собой образ (копию) содержимого экрана дисплея
в памяти компьютера. В 80-ти позиционном текстовом режиме цветной
графический адаптер требует памяти в 4 раза (а в 40 - позиционном
текстовом режиме в 8 раз ) меньше фактически имеющейся. Поэтому память
этого адаптера может хранить либо 4, либо 8 страниц.
Любая страница изображения представляет собой полную копию
содержимого экрана дисплея, включающую байты данных, байты-атрибутов и
построчно-логическое разбиение символов. Работая в 80-ти позиционном
режиме, цветной графический адаптер может хранить четыре полных копии
одного кадра экрана монохромного адаптера. При работе в 40 - позиционном
режиме число таких кадров увеличивается до 8; при этом каждый кадр
обладает вдвое меньшей информационной емкостью.
Информация, хранящаяся в каждой из четырех или восьми страниц, может
в любой момент времени быть отображена на экране. Остальные страницы в это
время, подобно актерам, ожидающим выхода на сцену, ждут своей очереди.
Получив команду, дисплейный адаптер переключается с одной страницы на
другую, таким образом мгновенно обновляя содержимое экрана.
Пользовательская программа может формировать данные, подлежащие
отображению на дисплее, путем обычной записи по соответствующему адресу,
либо путем использования функций обслуживания BIOS, позволяющих
оперировать с нужной страницей. После того, как актуализация данных
закончена, сформированный в памяти образ экрана может быть мгновенно
отображен на дисплее путем переключения адаптером активной страницы. Такой
подход делает программу более оперативной, поскольку пользователь не
ощущает трудоемкого процесса формирования образа экрана - он видит лишь
быстрое появление результата.
Возможности программ в части использования страничной техники
представляют довольно интересное явление. Если программа использует
несколько стандартных форматов для представления информации, то она может
сформировать каждый формат только один раз и сохранить его в страничной
памяти дисплея. В случае возникновения потребности перехода от одного
формата к другому программа может, сохранив текущую страницу на экране,
форматировать данные другой страницы и завершив этот процесс, переключить
адаптер дисплея на новую страницу. Такого рода техника работы с памятью
дисплея создает впечатление, что программа обладает более высокой
производительностью, поскольку изображение появляется мгновенно. В
выигрыше оказывается и пользователь программы, получая более стабильное
изображение на экране дисплея. Поскольку мелкие изменения не допускаются,
то надежность человеко-машинного интерфейса повышается - в этом случае нет
необходимости каждый раз отыскивать на экране места возможных изменений и
проверять все ли на месте.
Еще одна потенциальная сфера использования страничной техники при
работе с дисплеем состоит в более совершенной передаче динамических
изображений. Если же изменения производятся "за кадром" и представляются
пользователю в виде цельного изображения путем замены активной страницы,
то динамический характер изображения передается более плавно.
Дисплейные страницы пронумерованы от 0 до 3, либо от 0 до 7 в случае
более мелких 40 позиционных страниц. Нулевая страница, как это можно
предположить, располагается в начале области памяти дисплея; вслед за ней
располагаются остальные страницы. Началу каждой страницы соответствует
адрес кратный 1К. Поясним это на примере. Дисплей, работающий в 80-ти
позиционном режиме, требует для каждой страницы 4000 байт памяти (25 строк
х 80 позиций х 2 байта на позицию). Первая страница, то есть страница,
имеющая 0 номер, располагается в памяти цветного графического адаптера с 0
смещением ( это соответствует параграфу с адресом B800). Вторая страница,
то есть страница, имеющая номер 1-й, размещается не вплотную за первой
страницей (с относительного адреса 4000), а с ближайшего адреса кратного
одному килобайту ( относительный адрес 4К или 4096 байт). В 80-ти
позиционном режиме работы дисплея страницы размещаются с интервалом в 4К
байтов, а в 40-позиционном - с интервалом в 2К байта. На рисунке 8.2.

показано размещение страниц в памяти дисплея.
Управление страничным механизмом дисплея можно осуществлять в рамках
Бейсика. Пользователь, работающий на Паскале такой возможности лишен, если
он не выходит за рамки этого языкового процессора; если же связь с
BIOS-ПЗУ осуществляется через программу, написанную на ассемблере, то эта
задача вполне разрешима. В параграфе 8.11 мы покажем как это делается
(готовая программа записана на дискету, прилагаемую к настоящей книге).
Монохромный дисплей не обладает описанными функциональными
возможностями, однако эта концепция может быть реализована (имитирована) в
обычной памяти. Пользовательские программы могут использовать эту память
для хранения полного образа экрана, своего рода эквивалента дисплейных
страниц. Эти пассивные экранные образы можно переместить в память дисплея
используя средства строковой пересылки микропроцессора 8086/8088.
Пользователям, работающим на Паскале, предоставляется встроенная
процедура MOVESL. Я использовал эту процедуру в ряде своих программ и могу
засвидетельствовать, что загрузка экрана происходит совершенно незаметно
для человеческого глаза - смена изображения производится мгновенно, как и
в случае смены страницы в цветном графическом адаптере. Описанный метод
весьма эффективен - настоятельно рекомендую его применять во всех
программах, не предъявляющих особых требований к объему используемой
памяти.
Причина, по которой лишь немногие программы используют страничный
механизм цветного графического адаптера очевидна: большинство программ для
IBM/PC должны работать одинаково хорошо как в случае цветного, так и в
случае монохромного монитора.
Эффективное использование страничного механизма может быть достигнуто
только в том случае, если программа специально написана для применения в
составе системы обработки графических образов, либо когда программа
настолько важна, что можно ожидать подстройку аппаратуры под нужды этой
программы. К числу известных примеров относится программа Context MBA.
Следует также иметь в виду, что имитация описанного выше страничного
дисплейного механизма всегда осуществима для любого компьютера IBM/PC,
имеющего достаточный объем памяти.

8.5. Атрибуты изображений

Следом за байтом символа, расположенного в памяти дисплея по четному
адресу расположен байт атрибутов, описывающий особенности отображения на
экране дисплея этого символа. В данном параграфе мы рассмотрим структуру
байта атрибутов и назначение всех его компонентов.
Программа, написанная на Бейсике, приведенная в приложении (листинг
8.1) демонстрирует все возможные комбинации битов байта атрибутов как для
монохромных, так и для цветных графических дисплеев. В процессе выполнения
этой программы у пользователя формируется представление о функциональных
возможностях и особенностях работы с атрибутами изображения.
Байт атрибутов управляет мерцанием символа и его цветом (или
монохромным аналогом цвета). Этот байт состоит из восьми разрядов, причем
каждому разряду отводится своя роль в процессе построения изображения. На
рисунке 8.3 приведена схема, иллюстрирующая назначение каждого разряда.
Существует множество различных способов идентификации отдельных разрядов
байта. Здесь мы будем придерживаться схемы нумерации этих разрядов
слева-направо (см.рис. 8.3).
Все восемь разрядов байта разбиты на четыре класса и рассматриваются
в контексте этого разбиения. Все, что выводится на экран - в конкретную
его позицию - состоит из двух компонентов: собственно символа (очертания)
и его окружения или фона. Поскольку цветной дисплей имеет три основных
цвета (красный, зеленый и синий), то очертанию и фону соответствуют по три
разряда байта-атрибутов, описывающие их цвета (или монохромные аналоги
цвета). Таким образом: разряды с 6-го по 8-й управляют цветом символа, а
разряды с 2-го по 4-й управляют цветом фона. Они и образуют два класса
признаков (из четырех) байта атрибутов.
Оставшиеся два класса признаков фиксируют интенсивность и мерцание
изображения. Под эти признаки отводится по одному разряду. Первый разряд
каждого байта атрибутов описывает мерцание фоновой составляющей позиции
экрана ( если бит установлен в 1, то имеет место мерцание ). Заметим
здесь, что мерцание распространяется только на фоновую составляющую и не
затрагивает собственно очертания символа.
Последний класс признаков (5-й разряд) байта атрибутов предназначен
для управления интенсивностью фона. Если 5-й разряд установлен в 1, то в
случае монохромного дисплея яркость символа будет повышена; в случае
цветного дисплея будет иметь место более яркий и светлый тон. Некоторые
цветные мониторы не используют бит интенсивности цвета; для этих мониторов
яркие фоновые цвета совпадают с обычными.
Для получения разнообразных цветов соответственно устанавливаются или
сбрасываются разряды тех или иных цветов. Так, для получения красного фона
следует устанавливать в"1" разряд красного цвета (6-й разряд), а два
остальных разряда обнулить. Комбинация двух основных цветов дисплея
позволяет синтезировать дополнительные цвета. Смесь зеленого и синего
цветов дает сине-зеленый цвет, так называемый циан. Если все три разряда
находятся в нулевом состоянии, то в результате будет получен черный цвет.

Смесь всех трех основных цветов дает на выходе белый цвет. При
внимательном рассмотрении символов белого цвета на цветном экране можно
различить все три основных цвета.

____________________________________________________________
Порядковый Значение * Функция
номер разряда
____________________________________________________________

1-й 128 Мерцание
2-й 64 Красная ! Фоновый
составляющая ! цвет
3-й 32 Зеленая !
составляющая !
4-й 16 Синяя !
составляющая !

5-й 8 Интенсивность! Фоновый
цвет

6-й 4 Красный ! Цвет
7-й 2 Зеленый ! очертания
8-й 1 Синий ! (символа)
____________________________________________________________

*) Численное значение позиции разряда. Используется в случае задания
атрибута в виде числа. Например: Мерцание (128) зеленого символа (2) на
красном (64) фоне - 128 + 2 + 64 = 194

Рис.8.3. Управляющие атрибуты дисплея

Полный перечень всех возможных цветовых сочетаний будет приведен в
следующем параграфе . По мере рассмотрения различных аспектов, связанных с
использованием атрибутов изображения мы узнаем много нового, в частности,
специфику их работы как в случае цветного графического, так и в случае
монохромного адаптера.
Операционная система DOS обеспечивает нормальный режим работы с
белыми символами на черном фоне даже при наличии цветного экрана
видеомонитора. Большинство программ, работающих под управлением DOS,
генерируют выходные данные в черно-белом варианте. Однако при наличии
программы управления атрибутами изображения (например, программ Reverse и
Screen-Atribute из библиотеки "Нортон Ютилити") можно привести их к
цветному варианту. При работе с цветным монитором я нахожу, что
ярко-желтые символы на синем фоне гораздо меньше утомляют глаза, чем любое
другое сочетание цветов. Поэтому для себя устанавливаю следующую
комбинацию атрибутов: 00011110 (или 1Е в шестнадцатеричной системе
счисления). Воспользовавшись программой, написанной на языке Бейсик (см.
листинг 8.1), Вы имеете возможность сопоставить между собой все допустимые
сочетания цвета очертания символа и его фона и после этого остановить свой
выбор на одном из них.
Фирма IBM выработала оригинальный подход к решению проблемы
совместимости монохромного и цветного дисплеев. Первое, что было сделано -
осуществлен выбор основных технических решений, касающихся цветного
дисплея (наличие трех базовых составляющих цвета для очертания символа и
его фона, а также мерцание и высокая интенсивность); после этого
средствами монохромного дисплея удалось добиться весьма эффективной
интерпретации цветовых составляющих.
Атрибуты монохромного дисплея имеют ряд положительных качеств, им
присущи однако и недостатки, связанные с обеспечением целостности и
совместимости. Проиллюстрируем это положение сначала более простыми
примерами, а затем перейдем к более сложным случаям.
Разряд мерцания (разряд 1), как и разряд яркости, называемый также
разрядом повышенной интенсивности свечения (разряд 5), используется
одинаково как монохромным, так и цветным графическим дисплеем. Если разряд
мерцания установлен в единичное состояние, то отображаемый символ мерцает,
если в единичном состоянии находится разряд яркости, то отображаемый
символ выделяется повышенной яркостью.
Оставшиеся разряды байта атрибутов специфицируют цвета для очертания
и фона символа. Заметим здесь, что для монохромного дисплея понятие цвета
отсутствует. Последнее утверждение не следует понимать буквально,
поскольку, ст

Список сторінок

Поділитися у соцмережах

☏ Замовлення реклами: +3805044-68-872

© Асоціація електронних бібліотек України

☝ Усі матеріали сайту (зокрема статті, зображення, рекламні оголошення тощо) призначені лише для попереднього ознайомлення. Усі права на публікації, представлені на сайті, належать їхнім законним власникам. Просимо Вас не зберігати копії інформації.