Плиткообразная карта (Tilemap)

Плиткообразная карта (Tilemap)

Режим экрана, аналогичный аппаратному тексту, связанному с режимами ULA, который позволяет использовать плитки 8x8 либо 40x32, либо 80x32, 16-цветные или 2-цветные.

Обратите внимание, что в NextBASIC также есть более старая программная плиткообразная карта, которая работает совсем не так, как аппаратная плиткообразная карта (иногда называемая слоем 3), описанная здесь. В NextBASIC пока нет команд для прямого доступа к аппаратной плиткообразной карте, хотя описанные здесь методы можно использовать с помощью REG и ручного управления памятью. А программная плиткообразная карта недоступна напрямую для программ на языке ассемблера, хотя вызовы IDE_TOKENISER и IDE_BASIC NextZXOS API могут выполнять произвольные команды BASIC.

Аппаратная плиткообразная карта включается с помощью Регистра управления плиткообразной картой ($6B / 107)

bit 7: 0=отключить плиткообразную карту, 1=включить плиткообразную карту bit 6: 0=40x32, 1=80x32 bit 5: 0=атрибуты в плиткообразной карте, 1=нет атрибутов в плиткообразной карте bit 4: 0=основная палитра, 1=вторичная палитра bit 3: Выбор текстового режима (программный сброс = 0) bit 2: зарезервировано bit 1: 0=режим 256 плиток, 1=режим 512 плиток bit 0: 1=плиткообразная карта поверх ULA

Плиткообразная карта состоит из двух областей данных: описания плиток и фактической плиткообразной карты; обе они расположены на странице 5 размером 16 КБ и в первой половине банка 7.

Описание плитки

Область описания плиток представляет собой смежный список описаний плиток, начинающийся с места, указанного битами 5-0 значения в Регистре базового адреса определений плиток ($6F / 111).

Каждое описание плитки представляет собой 32-байтовый блок 4-битных значений, описывающих индексы каждого пикселя плитки в порядке следования строк.

В текстовом режиме плитки являются монохромными и занимают 8 байт, что делает их по сути такими же, как текстовые символы ULA и UDGs.

Плиткообразная карта (Tilemap)

Плиткообразная карта начинается с места, хранящегося в битах 5-0 Регистра базового адреса плиткообразной карты ($6E / 110), а банк переключается с помощью бита 7. Если бит 7 установлен, плиткообразная карта находится в первой половине банка 7, в противном случае - в банке 5.

Эта карта состоит либо из пар номеров плиток и атрибутов плиток, либо из списка номеров плиток. Если атрибуты отсутствуют (бит 5 Nextreg $6B=1), то атрибуты для всех плиток берутся глобально из Регистра атрибутов плиткообразной карты по умолчанию ($6C / 108).

В текстовом режиме байт атрибута карты и глобальный атрибут теряют зеркальное отображение по x, зеркальное отображение по y и поворот, поэтому биты 7-1 становятся гораздо большим смещением палитры, которое может принимать значения от 0 до 127. Смещение палитры затем указывает на одну из 128 различных пар “бумага/чернила” в палитре. Индекс цвета бумаги - (смещение палитры * 2), а индекс цвета чернил - ((смещение палитры * 2) + 1).

Атрибут плитки

В режиме 16 цветов по умолчанию:

bits 7-4: смещение палитры bit 3: зеркальное отображение по X bit 2: зеркальное отображение по Y bit 1: Поворот bit 0: В режиме 256 плиток ULA поверх плиткообразной карты, в режиме 512 плиток бит 8 номера плитки

В текстовом режиме:

 bits 7-1: смещение палитры
bit 0: В режиме 256 плиток ULA поверх плиткообразной карты, в режиме 512 плиток бит 8 номера плитки

Дополнительные регистры

Регистр окна отсечения плиткообразной карты ($1B / 27)

bits 7-0: Координаты окна отсечения 1-я запись = позиция X1 2-я запись = позиция X2 3-я запись = позиция Y1 4-я запись = позиция Y2 Значения после сброса: 0,159,0,255 Операции чтения не сдвигают позицию отсечения

Регистр старшего байта смещения X плиткообразной карты ($2F / 47)

bits 7-2: Зарезервировано (0) bits 1-0: Старший байт смещения X Значимый диапазон: 0-319 в режиме 40 символов, 0-639 в режиме 80 символов

Регистр младшего байта смещения X плиткообразной карты ($30 / 48)

bits 7-0: Младший байт смещения X Значимый диапазон: 0-319 в режиме 40 символов, 0-639 в режиме 80 символов

Регистр смещения Y плиткообразной карты ($31 / 49)

bits 7-0: Смещение Y (0-255)

Регистр управления расширенной ULA ($43 / 67)

bit 7: ‘1’ для отключения автоматического приращения записи палитры. bits 6-4: Выбор палитры для чтения или записи: 000 = Первая палитра ULA 100 = Вторая палитра ULA 001 = Первая палитра слоя 2 101 = Вторая палитра слоя 2 010 = Первая палитра спрайтов 110 = Вторая палитра спрайтов 011 = Первая палитра плиткообразной карты 111 = Вторая палитра плиткообразной карты bit 3: Выбор палитры спрайтов (0 = первая палитра, 1 = вторая палитра) bit 2: Выбор палитры слоя 2 (0 = первая палитра, 1 = вторая палитра) bit 1: Выбор палитры ULA (0 = первая палитра, 1 = вторая палитра) bit 0: Включить режим расширенной ULA, если 1 (0 после сброса)

Регистр управления ULA ($68 / 104)

bit 7: 1 для отключения вывода ULA bit 6: 0=выбрать цвет ULA для смешивания в режимах SLU 6 и 7 1=выбрать смесь ULA/плиткообразной карты для смешивания в режимах SLU 6 и 7 bits 5-1: Зарезервировано (0) bit 0: 1=включить трафаретный режим, когда включены и ULA, и плиткообразная карта (если какой-либо из них прозрачен, результат прозрачен, в противном случае результатом является логическое И обоих цветов)

Дополнительная информация

Статья о режиме плиткообразной карты

Last updated on