Дао конфы
Тайлово-спрайтовая конфигурация (TSconf). Вступление
По моему мнению, TSconf является очень современной надстройкой над любимым ZX Spectrum, которая вносит давно ожидаемые и необходимые элементы в виде цвет на точку, аппаратные спрайты и прочее. Об этом и пойдёт речь в этой статье.
Тайлово-спрайтовую конфигурацию (TSconf) можно разделить на следующие логические группы:
1. Графический акселератор
— Использование тайлов
— Вывод и управление спрайтами
2. Менеджер памяти
3. Блок прямого доступа к памяти (DMA)
4. Система прерываний
5. Кеш
6. Порты управления
Давайте постепенно рассмотрим все эти пункты по порядку.
Графическая подсистема
Дао говорит: Видимый нами экран представляет собою окно вывода заданного в системе разрешения, которое отображает блок страниц видеопамяти размером 512х512 точек в указанном режиме по заданным координатам вывода. TSU является устройством, собирающим данные из видео-, тайловой- и спрайтовой памяти, которое обрабатывает и представляет их в текущей позиции отрисовки строки в заданном разрешении / нужном режиме.
Данный блок является расширением (надстройкой) над стандартным спектрумовским экраном 6912. Точнее сказать, режим 6912 входит в состав целой семьи разрешений системы:
- 256x192
- 320x200
- 320x240
- 360x288
- ZX
- 16c
- 256c
- Text
Полную палитру стоит разделить на группы последовательно расположенных 16 цветов (32 байта) для режима 16с, что даёт нам 16 палитр по 16 цветов.
Первая палитра — под номером 0.
При включении системы в общую палитру загружается набор из 16 цветов для режима ZX, который расположен в последней, 15-й палитре.
Каждый режим задаёт свои особенности отображения цветовой информации на экране:
ZX ограничивает вывод 16 цветами стандартной палитры ZX Spectrum;
16с — в таком режиме используется только 16 цветов — одна из 16 доступных палитр;
256с — предоставляет возможность выводить все загруженные в палитру цвета
Text — текстовый режим, позволяет выводить текст в цвете.
В данном случае шла речь о горизонтальной мобильности. Давайте поговорим о вертикальной:
Кроме перечисленных режимов, система позволяет использовать послойное отображение графической информации. Стандартный спектрумовский экран является базовым экраном, но не является самым нижним.
Итак, расположение слоёв, которые формируют экран:
1. Бордюр. Представляет собой однотонный полноэкранный слой. Задаётся цветом бордюра.
2. Базовый (основной) экран. Может быть включен в любое разрешение / режим из вышеперечисленных выше.
3. Слои графического акселератора отображаются в заданном для базового экрана разрешении, в режиме 16 цветов:
— спрайтовый слой 0
— тайловый слой 0
— спрайтовый слой 1
— тайловый слой 1
— спрайтовый слой 2
Таким образом, мы получаем 7 слоёв, составлюящих единый, видимый для пользователя, экран.
Все перечисленные слои используют цвета, заданные в общей палитре из 256 цветов.
Тайловые и спрайтовые слои акселератора работают только в режиме 16с, используя 0й цвет заданной для них палитры как прозрачный. Благодаря TSU нет необходимости сохранять данные видеопамяти под тайлами и спрайтами, так как вывод на экран в буквальном смысле собирается при выводе каждой строки, не изменяя содержимого видеопамяти.
Каждый графический элемент этих двух типов слоёв представляет собою блок минимум 8х8 пикселей, и для каждого из них необходимо указывать палитру, одну их всех доступных 16-ти.
Тайловый слой преставляет собой карту, описывающую расположение графических элементов, заданных как изображение. Таким образом, положение тайла на экране прямо зависит от его положения в карте.
Тайловая карта имеет размер 64х64 тайла (4096 тайлов вообще), для одного слоя можно использовать до 4 палитр из 4 групп всех 16 палитр. Для каждого тайла возможно задать свою (из этих 4х) палитру.
Всего мы имеем два таких слоя, организованных одинаковым образом.
Спрайты представляют собой графику, организованную по типу тайловой, но имеющую бОльшие (кратные 8) размеры — от 8х8 до 64х64 точек. Спрайты так-же имеют прозрачность, заданную нулевым цветом.
Особенностью спрайтов является то, что для каждого спрайта можно задать как свою палитру, так и положение на экране вплоть до точки.
Для обработки спрайтов системой используется второй блок внутренней памяти, представляющий следующие 512 байт памяти, который хранит "дескрипторы спрайтов" — данные из 6 байт, описывающие каждый спрайт. Максимальное количество дескрипторов в этой памяти — 85 штук.
В следующих статьях я расскажу более детально о работе с перечисленными в начале статьи устройствами.
зы: для тех, кто не хочет ждать а хочет деталей
9 комментариев
хотя… кому чего то не хватит и пойдут крики
Все 6 позиций + ещё две по первому номеру, все будут постепенно написаны.
По спрайтам уже набросок есть, но пока без готового примера.
ХРИСТОС ВОСКРЕС ЙОУ! ;)
Однако в ней надо упомянуть тех двоих, одно упоминание которых вызывает срачи, драмы, крушение форумов и уход юзеров. И как это сделать политкоррэктно, я не хз. =)
просто отписывай общий вид со стороны, а не мнение участника…
… общего срача :)