Multicolor

Материал из C64 WIKI по русски.
Перейти к: навигация, поиск

Наименование графического режима C64, который добавляет 2 дополнительных цвета (для символа или знакоместа), в целом 4 цвета из 16 возможных на одно знакоместо. Существует многоцветный режим для текста, для спрайтов и для графики высокого расширения.

Так как при отображении многоцветных пикселей 2 бита объединяются в битовую пару, горизонтальное разрешение уменьшается в два раза и для графики и для спрайтов по сравнению с обычным графическим режимом.

Включение и выключение этого режима происходит с помощью изменения значений в соответствующих регистрах VIC, например, с помощью команды BASIC POKE.

Многоцветный текстовый режим

В многоцветном текстовом режиме нужно обращать на то, что доступны только первые 8 цветов (0-7). Более высокие цветовые значения (8-f) соответствуют при этом первым 8 цветам для соответствующего символа, это правильно только этого режима. Если выбран один из младших цветовых кодов, то символ выводится этим цветом. Таким образом есть возможность выводить обычные и многоцветные символы на экран без технических ухищрений.

  • Многоцветный текстовый режим управляется битом 4 регистра VIC $D016.
  • Включение: POKE 53270,PEEK(53270) OR 16
  • Выключение: POKE 53270,PEEK(53270) AND 239
Биты цвета Соответствующий цвет Адрес памяти
00 Цвет экрана 53281
01 Multicolor 1 53282
10 Multicolor 2 53283
11 Color RAM (Символьный цвет) 55296-56295

Многоцветные спрайты

  • Многоцветный режим для спрайтов управляется по адресу VIC $D01C.
  • Включение для всех спрайтов: POKE 53276,255
  • Выключение для всех спрайтов: POKE 53276,0

Вы можете переключаться целенаправленно, например, с помощью POKE 53276,X (где X = 1, 2, 4, 8, 16, 32, 64, 128 для спрайтов от 0 до 7). Сложением упомянутых значений можно переключать несколько спрайтов в многоцветный режим. Если хотите например переключить три спрайта 0-2 в многоцветный режим, то это делается так POKE 53276,7 (7 = 1+2+4).

Биты цвета Соответствующий цвет Адрес памяти
00 Цвет экрана 53281
01 Multicolor 1 53285
10 Цвет для
соответствующего спрайта
53287-53294
11 Multicolor 2 53286

Многоцветный графический режим

  • Многоцветный графический режим управляется битом 4 регистра VIC $D016.
  • Включение: POKE 53265,PEEK(53265) OR 32 : POKE 53270,PEEK(53270) OR 16
  • Выключение: POKE 53265,PEEK(53265) AND 223 : POKE 53270,PEEK(53270) AND 239
Биты цвета Соответствующий цвет Адрес памяти
00 Цвет экрана 53281
01 Старшие 4 бита... 1024-2023
10 Младшие 4 бита
экранной памяти
1024-2023
11 Color RAM (Символьный цвет) 55296-56295

Позиция экранной памяти зависит от установок (VIC). После включения компьютера она начинается с адреса 1024. Его длина составляет 1000 байт. Color RAM имеет ту же самую длину, однако находится всегда в одной и той же позиции (55296).

Четырехцветный режим

Учитывая что Bitmap, аналогичен монохромной графике высокого разрешения можно производить многоцветную графику с 4 цветами (определенными содержимым 00, 01, 10, 11 битовых пар), которые одинаковы для всего экрана. Так как информация о цвете не занесена в экран, программа, должна сама менять.

Оригинал статьи на С64-WIKI.DE