Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Принципы работы PPU




 

Видеопроцессор (PPU) Денди может отображать 64 цвета (каждому номеру строго определенный цвет – рисунок 2). Соответствие цветов формату RGB см. приложение 2.

 


Рисунок 2.

 

PPU содержит регистры палитр (адресуются через адресное пространство PPU). Существует 2 палитры – палитра фона ($3F00-$3F0F) и палитра спрайтов ($3F10-$3F1F). При помощи палитры происходит выбор любых 16-ти цветов из 64-х возможных для текущего отображения на экране (в ячейку палитры заносится номер цвета ($00-$3F) – см. рисунок 2).

PPU, работающий в системе PAL, формирует картинку с разрешением 256x240. PPU формирует изображение из четырех слоев:

· Задний план – холст, окрашенный цветом с индексом 0 из палитры фона.

· Слой спрайтов с битом приоритета = 0 (подробнее см. в главе «Спрайты. Контроллер DMA.»)

· Фоновый рисунок – картинка, составленная из иконок знакогенератора (как из мазайки 32x30). Фоновый рисунок хранится в экранной странице (VRAM). В области символов - 960 байт (32x30) должны быть записаны номера иконок знакогенератора фона (см. регистр $2000 - бит 4). На экране отображается содержимое активной экранной страницы (см. регистр $2000 - бит 1,0). Экранная страница содержит только информацию о фоновом рисунке. Знакогенератор содержит иконки с двумя младшими битами цвета для каждого пикселя иконки. Два старших бита цвета – общие для всей иконки, берутся из области атрибутов экранной страницы. Полученное четырехбитное число определяет номер цвета в палитре фона. Таким образом, каждая иконка (без смены палитры) может иметь до четырех вариантов раскраски. Т.е. при помощи двух бит из области атрибутов экранной страницы – палитра фактически разбивается на 4 части (по 4 цвета в каждой), номер части определяется битами области атрибутов, номер цвета (внутри части) – битами пикселя в знакогенераторе.

· Слой спрайтов с битом приоритета = 1 (подробнее см. в главе «Спрайты. Контроллер DMA.»)

Рассмотрим на примере двоичные форматы рассмотренных структур:

 

· Знакогенератор.

В знакогенераторе отводится по 16 байт на каждую иконку (16x256=4096). Первые 8 байт определяют построчно младший бит цвета иконки. Следующие 8 бит – старший (см. рисунок). Пиксель иконки, со значением обеих бит равными нулю – считается прозрачным (вне зависимости от старших бит из области атрибутов).

 

Символ в Результат

знакогенераторе расшифровки

--------------- --------

%00010000 = $10 --...1..... – 00 (прозрачный)

%00000000 = $00 ¦..2.2... 1 - 01

%01000100 = $44 ¦.3...3.. 2 - 10

%00000000 = $00 +-- Бит 0 2.....2. 3 - 11

%11111110 = $FE ¦ 1111111.

%00000000 = $00 ¦ 2.....2.

%10000010 = $82 ¦ 3.....3.

%00000000 = $00 ---........

 

%00000000 = $00 --

%00101000 = $28 ¦

%01000100 = $44 ¦

%10000010 = $82 +-- Бит 1

%00000000 = $00 ¦

%10000010 = $82 ¦

%10000010 = $82 ¦

%00000000 = $00 ---

 

· Область символов экранной страницы.

Последовательно хранятся номера иконок из знакогенератора фона (величина смещения иконки от начала знакогенератора деленная на 16). Экран заполняется иконками построчно (32x30=960 иконок на экране).

 

· Область атрибутов экранной страницы.

Для каждой иконки в фоновой картинке существует свой атрибут (два старшие бита цвета, выбираемого из палитры).

 

$2000 $2001 $2002 $2003
$2020 $2021 $2022 $2023
$2040 $2041 $2042 $2043
$2060 $2061 $2062 $2063

Фрагмент VRAM – область символов (страница 1 – левый верхний угол экрана) – изображены ячейки с адресами – начала первых четырех строк экрана. Цветом показаны группы, имеющие одинаковый атрибут (два старших байта номера цвета в палитре).

 

               

Байт области атрибутов по адресу $23C0. Содержит атрибуты четырех смежных групп. Цветом указано соответствие атрибутов группам.

 

Весь экран построчно разбивается на группы (8 строк и 8 столбцов) – последняя строка неполная. Соответственно за каждую группу отвечает один байт атрибутов.

 

· Палитры.

На самом деле не из 16-ти цветов палитры происходит выбор цвета. Происходит это потому, что и здесь имеет место явление «отражение» (mirroring) – на этот раз применительно к цветам палитры. Происходит это так. Как отмечалось выше, пиксель иконки знакогенератора, оба бита которого нулевые, вне зависимости от атрибута, считается прозрачным. Из этого следует, что в палитре фона есть 3 ячейки, содержимое которых нас не интересует (цвет то прозрачный). Это ячейки с адресами $3F04, $3F08 и $3F0C. В ячейке $3F00 (как упоминалось выше) хранится номер цвета холста, и именно он виден сквозь «прозрачные» пиксели. Так вот – архитектура PPU Денди предусматривает отражение «лишних» ячеек палитры ($3F04, $3F08 и $3F0C) в ячейку цвета холста ($3F00).

С палитрой спрайтов таже история – у спрайтов (подробнее о спрайтах в следующей главе) нет своего «холста», и поэтому ячейки палитры спрайтов, на которые приходятся прозрачные цвета ($3F10, $3F14, $3F18 и $3F1C), также отражаются на ячейку $3F00.

 




Поделиться с друзьями:


Дата добавления: 2014-11-16; Просмотров: 578; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.