Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#15| Dragon God
Demon's Souls |#14| Flamelurker
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Питер Нортон Весь текст 546.61 Kb

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

Предыдущая страница Следующая страница
1 ... 33 34 35 36 37 38 39  40 41 42 43 44 45 46 47
отсутствует).
     Таким образом, графический режим среднего разрешения  предусматривает
наличие 320 точек по горизонтали экрана и 200 точек  по  вертикали,  в  то
время как графический режим высокого разрешения - 640 точек по горизонтали
и 200 точек по  вертикали.  Понятно,  что  изображение,  представленное  в
режиме высокого разрешения, способно воспроизводить  более  мелкие  детали
только на горизонтали. Для  большинства  приложений  качество  изображения
практически осталось бы неизменным,  если  бы  режим  высокого  разрешения
выражался параметрами 320Х400.
     Каждый пиксель на экране дисплея может  находиться  либо  в  активном
(светимость), либо в пассивном состоянии;  в  режиме  среднего  разрешения
может быть воспроизведен и цвет. В  режиме  высокого  разрешения  цвет  не
воспроизводится, отчасти из-за особенностей генерации изображения, отчасти
из-за отсутствия дополнительной памяти,  необходимой  для  воспроизведения
цвета.
     Рассмотрим требования к  памяти,  предъявляемые  графическим  режимом
высокого  разрешения.  Если  к  числу  сведений,  сообщаемых  о   пикселе,
относится только признак активного или пассивного состояния  (наличие  или
отсутствие светимости пикселя) - а именно это и сообщается о пикселе -, то
для управления пикселем достаточно одного бита,  принимающего  значение  0
или 1. В режиме высокого разрешения имеется 640Х200 (или 128000) пикселей.
Для управления ими требуется 128000 бит, а с учетом того, что байт состоит
из восьми битов, - 16000  байт.  Именно  такая  память  выделена  цветному
графическому адаптеру (округлена до 16К).
     Режим среднего разрешения требует вдвое меньшего числа пикселей. Имея
те же 16К байт памяти мы можем выделить для каждого пикселя  два  бита.  С
помощью двух битов могут быть представлены четыре различные  величины  (0,
1, 2, 3); но это позволит лишь частично  решить  проблему  воспроизведения
цвета.
     Прежде, чем   познакомиться   с  окончательным  разрешением  проблемы
воспроизведения цвета в  графическом  режиме,  обратим  внимание  на  одно
отличие в специфике использования памяти дисплея в графическом и текстовом
режимах. Из предыдущей главы нам известно о наличии двух текстовых режимов
-  80-ти позиционного и 40-позиционного.  Графика представлена также двумя
режимами:  режимом среднего разрешения и режимом  высокого  разрешения.  В
обоих  случаях  число отображаемых элементов одного режима вдвое превышает
число отображаемых элементов другого режима.  Соответственно изменяются  и
требования,   предъявляемые   к   памяти.  На  этом  сходство  между  ними
заканчивается.  Если в текстовом режиме дополнительная память используется
для  увеличения  числа  страниц,  то  в  графическом режиме дополнительная
память  используется  для  удвоения  объема  памяти,  отводимой  под  один
пиксель.
     В связи со спецификой управления цветом в компьютере IBM/PC возникает
вопрос о количестве одновременно используемых цветов. Цветной  графический
адаптер и экран видеомонитора способны воспроизвести любой из  шестнадцати
возможных цветов для каждого пикселя. Здесь нет никаких проблем.  Проблемы
возникают при спецификации цвета.
     Фирма  IBM  могла  пойти  по  пути  создания  цветного   графического
адаптера, имеющего достаточно  памяти  для  представления  всех  возможных
цветов каждого пикселя, однако она этого не сделала.  Как  уже  говорилось
выше, в режиме высокого разрешения каждому пикселю отводится  только  один
бит, поэтому в принципе в этом режиме невозможно воспроизвести более  двух
цветов - белого и черного. В режиме среднего  разрешения  каждому  пикселю
отводится два бита, поэтому возможно воспроизведение четырех цветов.
     Проблема выбора того или иного набора, состоящего из четырех  цветов,
решена необычно и остроумно. В любой момент времени активны только  четыре
цвета, но пользователю предоставляется  возможность  установить  любой  из
четырех цветов по  своему  усмотрению.  Остальные  три  устанавливаются  в
рамках  так  называемой  палитры.  В  качестве  компенсации   фирма    IBM
предоставляет на выбор две возможные палитры - первая состоит из зеленого,
красного  и  коричневого  (на  большинстве  дисплеев  воспроизводится  как
желтый), а вторая - из циана, малинового и белого.
     Если все это звучит недостаточно убедительно, давайте рассмотрим этот
вопрос с другой  стороны.  При  задании  цвета  любого  пикселя  в  режиме
среднего разрешения мы используем один из четырех кодов 0, 1,  2,  3.  Что
стоит  за  этими  числами?  Ничего  жестко  фиксированного.    Их    смысл
определяется  в  процессе  спецификации  используемого  цвета.  Мы   можем
закрепить за кодом 0 один из 16 цветов. Для кодов 1-3 фирма IBM предлагает
две стандартные возможности (две палитры), и пользователь должен  выбрать,
какую палитру он будет использовать. Заметим здесь,  что  пользователь  не
может влиять на составление палитры.
     Давайте еще  раз  осмыслим  происходящее.  Если  бы  объем памяти был
достаточно велик,  то мы могли бы для каждого пикселя использовать  полную
гамму  цветов  (16).  В действительности объем памяти таков,  что в режиме
высокого разрешения цветовая гамма каждого пикселя состоит только из  двух
цветов,  а в режиме среднего разрешения - только из четырех.  Пользователю
могли бы быть предоставлены  более  широкие  возможности  в  части  выбора
цвета,  однако  по  этому  пути  разработчики  персонального компьютера не
пошли.
     В режиме высокого разрешения пользователь лишен возможности  выбирать
конкретные цвета (два цвета) по своему  усмотрению;  этими  цветами  могут
быть только черный и белый.  В  режиме  среднего  разрешения  пользователь
имеет некоторую свободу выбора цветовой гаммы. Из четырех цветов один цвет
устанавливается  пользователем   произвольно.    Остальные    три    цвета
устанавливаются в рамках одной из двух строго фиксированных палитр.
     Таким образом,  любой  цветной дисплей в графическом режиме позволяет
использовать четыре цвета,  причем  три  цвета  выбираются  из  палитры  1
(зеленый,  красный,  коричневый),  либо  из  палитры  2 (циан,  малиновый,
белый).
     Если цветной дисплей находится в графическом режиме, то  цвет  любого
пикселя (из  состава  имеющихся  четырех  цветов)  можно  применить  путем
изменения содержимого двух битов, описывающих этот пиксель.  Существует  и
возможность изменить сразу цвета всего  изображения;  для  этого  следует:
либо изменить палитру, либо изменить цвет 0, либо изменить и то и  другое.
В этих случаях собственно изображение (картинка) не  меняется,  изменяется
лишь ее цвет(а). (Для графического режима низкого разрешения предусмотрено
достаточно битов, чтобы каждый  пиксель  мог  воспроизвести  любой  из  16
возможных цветов. Режим низкого разрешения может быть вполне реализован на
Вашем компьютере; аппаратная поддержка этого режима реализована полностью.
Однако программная поддержка на  уровне  BIOS-ПЗУ  полностью  отсутствует.
Если функции программ BIOS возьмет  на  себя  программа  пользователя,  то
графический режим низкого разрешения будет функционировать).


     9.3. Отображение пикселей на экране

     Графический  режим  работы  компьютера  представляет  собой  наиболее
сложный режим. Если использовать процедуры  BIOS-ПЗУ,  ориентированные  на
обслуживание  графического  режима  (описаны  в   параграфе    8.9),    то
декодирование образа экрана выполняется автоматически. Это одна из  причин
их широкого использования. В тех случаях,  когда  необходимо  использовать
режим прямого  управления,  следует  детально  ознакомиться  с  материалом
настоящего параграфа.
     Подобно обычному телевизору, видеомонитор генерирует  изображение  за
два прохода. На первом проходе  электронный  луч  перемещается  только  по
четным строкам развертки; после этого (на обратном ходе луча)  сканируются
все нечетные строки.
     При  работе  в  текстовом  режиме  это  обстоятельство  в  расчет  не
принимается,  поскольку  функции  управления  формированием    изображения
полностью выполняет контроллер видеомонитора.  В  графическом  режиме  эти
особенности необходимо учитывать.
     Электронные схемы генерации изображения в графическом  режиме  должны
воспринимать поток битов, определяющих пиксели, причем воспринимать  их  в
том порядке, в котором сканирующий луч перемещается по экрану - сначала по
четным, а затем по нечетным строкам. По этой причине образ экрана хранится
не в том виде, который удобен человеку-оператору или программе;  структура
хранимого образа отвечает  потребностям  электронных  схем  генерации.  На
рис.9.1 воспроизводится эта структура.
     Для того, чтобы структура  хранимого  образа  экрана  соответствовала
механизму сканирования экрана, память дисплея  организована  в  виде  двух
блоков, смещенными друг относительно друга на  4К.  Первый  блок  содержит
информацию о пикселях четных строк,а второй блок  -  о  пикселях  нечетных
строк. Рассмотрим эти вопросы более подробно (используя в качестве примера
графику с высоким разрешением).
     В начале  области  (блока)  памяти  располагаются  биты,  управляющие
процессом отображения на экране  дисплея  первой  строки,  т.е.  строки  с
номером 0. Строка содержит  640  пикселей  (графический  режим  с  высоким
разрешением), а каждый пиксель требует для индикации  своего  состояния  1
бит. Таким образом, для управления первой строкой требуется 640 битов  или
80 байтов. Для управления следующей четной строкой (строкой с  номером  2)
также требуется 640 битов или 80 байтов и т.д. Самый первый бит  управляет
точкой  экрана  дисплея,  находящейся  на  пересечении  нулевой  строки  и
нулевого столбца (0,0),  следующий  бит  управляет  точкой  (0,1)  и  т.д.
Последней точкой первой строки является точка (0,639); следом за ней  идет
точка (2,0) и т.д. В конце концов блок  памяти,  хранящий  четные  строки,
оказывается исчерпанным, и с нового адреса, кратного 1К,  начинается  блок
памяти, хранящий нечетные строки.
     Для графического режима со средним  разрешением  память  организована
точно также, с той лишь разницей,  что  горизонтальная  координата  экрана
состоит из 320 пикселей, причем каждый пиксель представлен  двумя  битами,
позволяющими представить цветовые  комбинации.  Для  представления  строки
по-прежнему требуется 80 байтов; для представления используются два  блока
памяти: один - для четных, а другой - для нечетных строк.
     Заметим здесь, что конечный адрес памяти будет одним и тем же как для
режима среднего, так и для режима высокого разрешения. Но в  одном  случае
число  пикселей  вдвое  меньше  (при  вдвое  большем  количестве    битов,
отведенных для представления каждого пикселя), а  в  другом  случае  вдвое
больше (соответственно, количество  битов,  отведенных  для  представления
пикселя в два раза меньше). Такой подход  позволяет  сохранить  постоянную
длину строки для обоих режимов -  640  битов  или  80  байтов.  Программы,
приведенные в приложении (листинг 9.1),  дают  возможность  пользователям,
программирующим на  Паскале,  эффективно  управлять  любым  пикселем.  Эти
программы  осуществляют   необходимые    арифметические    преобразования,
связанные с пересчетом позиции пикселя на экране дисплея в  адрес  памяти,
хранящей кодированный образ  экрана,  избавляя  пользователя  от  рутинной
работы по вычислению смещений битов и байтов.
     Эффективность этих  процедур  становится  особенно  очевидной,  когда
требуется создавать  быстродействующие  программы  генерации  изображений.
Любая программа, относящаяся к указанному  классу,  должна  тем  или  иным
способом переводить пиксели из активного состояния (состояние  светимости)
в  пассивное  и  наоборот.  Сделать  это  можно  либо  используя   функции
обслуживания BIOS-ПЗУ, описанные в предыдущей и в последней  главах,  либо
упомянутые  Паскаль-процедуры  (листинг  9.1).   Высокое    быстродействие
программ генерации изображений предполагает, что  тот  или  иной  фрагмент
Предыдущая страница Следующая страница
1 ... 33 34 35 36 37 38 39  40 41 42 43 44 45 46 47
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама