Мультиколор

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

Multicolor, Мультиколор - то особый режим вывода изображения на телевизор/монитор, к которому подключен ZX Spectrum, и/или аппаратная доработка, делающая это автоматически.

Возможность создания Milticolor на обыкновенном ZX-Spectrum заключается в следующем.

Вывод картинки на экран телевизора/монитора происходит с частотой в 50 Герц генератором видеоизображения после прихода сигнала маскируемого прерывания. Луч развёртки экрана монитора/телевизора начинает трассировать видеоизображение. Он доходит до экранной области и каждое знакоместо экранной области проходит 8 раз - сверху вниз по пиксельной линии. При каждом проходе содержимое атрибутной области читается заново. После первого прохода луча по знакоместу, содержимое атрибутной части может быть изменено. Это приведёт к тому, что при повторном проходе луча будут использованы другие, нежели в предыдущий раз, цвета. Таким образом, быстро изменяя содержимое атрибутной области, можно получить знакоместо, в котором атрибутами будут задаваться цвета отдельной полоски точек 1x8. Этот эффект и получил название Multicolor.

Так как, в отличие от стандартного экрана, в Multicolor'е атрибуты задаются более плотно (на область 1x8 пикселей, вместо 8x8 для обычного режима), то картинки и программы, использующие Multicolor смотрятся более красочно и ярко. Поэтому он используется в различных программах, например в Demo, играх и т.д. Сочетание эффектов Gigascreen и Multicolor позволяет создать на экране монитора/телевизора чрезвычайно красочное изображение - в таком случае каждая из областей 1x8 окрашиваются одним из 102 цветов фона (PAPER) и тона (INK).

На разных моделях ZX Spectrum требуется разная настройка задержек для синхронизации мультиколора с развёрткой. Большинство программ, работающих с мультиколором, поддерживают развёртку компьютера Пентагон.

Нетурбированные модели ZX Spectrum не могут заполнить все 32 байта атрибутов знакомест графической строки произвольными данными за время, пока строка прорисовывается. Код типа

LD HL,<пара байт>
LD (<адрес на экране>),HL

может обновить до 8 пар байт (16 байт) за строку, или до 20 байт, если первые 2 строки каждого знакоместа заполнены заранее в двух экранных областях. Более сложный код, работающий со стеком, позволяет отобразить мультиколор шириной до 24 байт на компьютере Пентагон, что считается теоретическим пределом.

Некоторые данные

  • Луч развёртки проходит одну строку растра при стандартной тактовой частоте (3.5 МГц) за 224 такта процессора (в некоторых моделях может быть меньшее значение).
  • Для стандартной частоты ЦП (3,5 МГц) за 1 такт процессора прорисовывается 2 точки экрана/бордюра
  • Экран начинается лишь спустя 80 строчек, которые заполняются цветом бордюра
  • Максимально возможная область произвольных данных для Multicolor по ширине для безвайтовых ZX-Spectrum типа Пентагон 24 знакоместа, для вайтовых - 22 знакоместа.
  • Даже для стандартной частоты ЦП возможно получить полноэкранный мультиколор (на 32 знакоместа) с некоторыми ограничениями. Так, например, конвертор Con18 позволяет ограничивать число пар байт, изменённых в течение одной строки, значением 8. Получившуюся картинку (формат .mc) можно посмотреть программой MCX Viewer. Аналогичная возможность есть при конверсии в Double-Screen мультиколор (формат .mcx).

Конверторы

  • Con18 (PC/Windows)
  • BMP2SCR (PC/Windows)

Редакторы

Игры

Ссылки