53265

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

Адрес 53265 является регистром VIC-II, содержащий множество управляющих битов:

  • Бит 7 (значение 128) старший бит девятибитового растрового регистра (смотри адрес 53266).
  • Бит 6 управляет расширенным цветным режимом; если установлена "1", каждый отдельный символ текстового экрана может иметь один из 4 цветов фона. Если по умолчанию стоит "0", один общий цвет фона для всех символов на экране.
  • Бит 5 переключает между текстовым экраном ("0") или графикой высокого разрешения ("1").
  • Бит 4 управляет видимостью экрана: По умолчанию этот бит установлен в "1", область экрана видима, но если установить его в "0", то весь экран заполняется цветом бордюра (согласно 53280).
  • Бит 3 выбирает 25 (когда установлен в "1") или 24 (когда установлен в "0") видимые линии текстового экрана. Главным образом используемый вместе с вертикальным сдвигом; смотрите следующий пункт.
  • Биты 0–2 используется для вертикального попиксельного сдвига графики высокого разрешения или текста: Вместе эти три бита формируют двоичное число, указывающее насколько пикселей надо "переместить" весь текстовый экран вниз.

Примеры

Эта команда включает расширенный цветной режим:

poke 53265,peek (53265) or 64

Чтобы видеть эффект этого, попытайтесь напечатать несколько букв с и без клавиши SHIFT, некоторые из них будут инвертированы. Чтобы выключить этот эффект, используйте

poke 53265,peek (53265) and 191

Эта команда активирует графику высокого разрешения:

poke 53265,peek (53265) or 32

Чтобы "вернуться" к нормальному текстовому экрану, вы должны набрать:

poke 53265,peek (53265) and 223

Для выключения экрана из BASIC, используйте

poke 53265,peek (53265) and 239

"Противоядие" от этого

poke 53265,peek (53265) or 16

Следующий пример использует бит 3, чтобы выбрать текстовый экран с 24 линиями, затем "учитывает" три младших бита, чтобы гладко "сдвинуть" текстовые строки вверх по экрану:

1 print chr$(147);
2 for n=0 to 24
3 print "These lines scroll...";
4 if n<24 then print
5 next n
6 for n=7 to 0 step -1
7 poke 53265,(peek(53265) and 240) or n
8 next n
9 goto 6

Обратите внимание на то, что chr$(147) использует управляющий символ для SHIFT + CLR/HOME.

Эта BASIC программа не может сделать прокрутку экрана абсолютно гладко, ни предотвратить черные полосы и другие артефакты, которые появятся на сдвигающемся экране. Чтобы достигнуть этого, нужно использовать растровые прерывания.

Когда этот пример работает, вершина и нижняя часть "рамки" или бордюра, вокруг экрана иногда "мерцают" и на мгновение показывают цвет фона экрана: Это намекает о том, что 53265 также вовлечен в "обман" с открытием границ вокруг экрана.

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