КАТЕГОРИИ: Архитектура-(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) |
Отражение экранных страниц
Спрайты. Контроллер DMA.
Со спрайтами все очень просто. В качестве спрайтов выступают все теже иконки знакогенератора (определенного, «как знакогенератор спрайтов» - см. регистр $2000 - бит 3). Внутри PPU есть отдельно адресуемая (от основного адресного пространства PPU – 16k) память спрайтов, размером 256 байт. Эта память хранит «записи» о 64 спрайтах, размер каждой записи 4 байта. Располагаются записи последовательно от младших адресов. Формат записи следующий:
Таблица 4.
Спрайты нумеруются начиная с нуля. После вывода нулевого спрайта (а он может быть в любом месте экрана) устанавливается бит 6 регистра $2002 PPU. Запись/чтение в/из память/и спрайтов производится при помощи регистров $2003 (адрес) и $2004 (данные). При каждой операции адрес автоинкрементируется на 1. Существует более быстрый способ записи в память спрайтов – запись через контроллер DMA. Контроллер DMA занимает в адресном пространстве CPU один адрес - $4014. При записи в этот порт числа $HH, контроллер DMA отправляет в память спрайтов содержимое 256-ти ячеек памяти, начиная с адреса = $HH x $100. (Например: при записи в регистр контроллера DMA $02 – в память спрайтов отправится содержимое ячеек $0200-$02FF). В программах рекомендуется использовать именно этот способ записи – как наиболее быстрый (около 100мкс.)
Как уже упоминалось выше – в Денди установлено 2k VRAM (сразу еще раз ругнемся на разработчиков – пожалели еще одну микросхему ОЗУ). Да именно пожалели, если посмотреть на карту адресного пространства PPU (см. выше) – то можно видеть, что реально видеопроцессор может работать с четырьмя страницами VRAM. Оно так и бывает, если на картридже установлены недостающие 2k VRAM – уймись программист или раскошелься пользователь, если разработчик решил сэкономить! Но вернемся к архитектуре – какие возможности добавляют нам лишние 2k VRAM? Рассмотрим все по порядку … PPU Денди обеспечивает такой эффект, как «скроллинг» фонового рисунка (независимо от спрайтов) – причем, абсолютно аппаратно. Скроллинг может быть как горизонтальным, так и вертикальным или и тем и тем сразу (по диагонали). Экранные страницы имеют следующую пространственную модель:
В регистр $2005 последовательно записываются два значения - абсолютное вертикальное и горизонтальное смещение (соответственно) относительно текущей активной страницы. Например, активная страница 1 ($2000) – горизонтальное смещение ноль, а вертикальное $E0 (240) – как результат, на экране видно содержимое страницы 3. Варьируя значение вертикального смещения, можно получить фон, состоящий из части страниц 1 и 3 (их стыковку). Если «закрутить» эту операцию в цикл – то можно получить эффект «скроллинга» фоновой картинки. Аналогично происходит горизонтальный скроллинг (прокрутка). Но есть один нюанс – в Денди нет памяти подо все четыре страницы. Как и в прочих случаях, тут тоже имеет место «отражение» - и на этот раз экранных страниц (друг на друга). Вид отражения определяет архитектура используемого картриджа. Существует 2 вида отражения – горизонтальное (1=2 и 3=4) и вертикальное (1=3 и 2=4). То есть содержимое указанных страниц идентично.
Горизонтальное отражение
Вертикальное отражение
Если в картридже установлены недостающие 2k VRAM – то содержимое всех четырех страниц может быть различным.
Вне зависимости от способа отражения (или при наличии всех четырех страниц) – скроллинг возможен в любом направлении (в том числе и по диагонали). Программы, не использующие функцию скроллинга, должны записывать в регистр $2005 два нуля, иначе, изображение будет нестабильным.
Дата добавления: 2014-11-16; Просмотров: 563; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |