Видеорежимы ZX Spectrum

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Палитра стандартного режима ZX Spectrum

Домашний компьютер ZX Spectrum имеет более ограниченные графические возможности, по сравнению с другими микрокомпьютерами того же времени (такими как Commodore 64), в основном, по причине отсутствия у него отдельного графического чипа. Тем не менее, за несколько лет выпуска коммерческих игр и затем активности демосцены, было разработано несколько способов улучшить графические возможности ZX Spectrum.

Палитра[править | править исходный текст]

Графические режимы ZX Spectrum и совместимых с ним компьютеров опираются на концепцию 4-битной RGBI-палитры. Её можно рассматривать как 3-битную палитру плюс бит градации яркости.

Яркость 0 Яркость 1 Номер Двоичный код Русское название Английское название
0 000 Чёрный Black
1 001 Синий Blue
2 010 Красный Red
3 011 Пурпурный Magenta
4 100 Зелёный Green
5 101 Голубой Cyan
6 110 Жёлтый Yellow
7 111 Белый White

Стандартный режим[править | править исходный текст]

Тестовое изображение в стандартном видеорежиме

Единственным штатным видеорежимом оригинального ZX Spectrum является графический режим разрешением 256×192 точки, ограниченные возможности задания цвета и бордюр. Доступна только одна видеостраница, расположенная в основной памяти компьютера по фиксированному адресу. Информация о цвете задаётся атрибутами, по одному байту атрибутов на знакоместо 8×8 пикселей. Из-за такого способа задания цвета, часто проявлял себя такой эффект как конфликт атрибутов.

Отображаемый экран занимает не весь телевизионный растр, оставляя свободное пространство по краям — бордюр. В области бордюра невозможен вывод графики, только изменение его цвета (можно получать несложные рисунки изменением цвета бордюра много раз за кадр). В отличие от основной области экрана, на бордюре не может использоваться повышенная яркость.

В ZX Spectrum 128K стандартный видеорежим был дополнен возможностью использования второй экранной области — так называемого теневого экрана. Основная область находится в 5 банке ОЗУ, дополнительная — в 7 банке.

Мультиколор[править | править исходный текст]

Мультиколор (англ. multicolor) — программный трюк, позволяющий обойти ограничение стандартного видеорежима ZX Spectrum на количество одновременно отображаемых в одном знакоместе цветов. Условно говоря, мультиколор позволяет уменьшить высоту знакоместа, вплоть до одной точки (свой атрибут для блоков пикселей 8×1, 8×2, 8×4 и т. п.).

Логика работы видеоконтроллера такова, что при проходе луча развёртки по каждой строке растра в основной области экрана происходит чтение атрибутов знакомест. То есть, при построении растра атрибут каждого знакоместа экрана читается видеоконтроллером восемь раз — по числу строк пикселей в знакоместе. Если атрибуты будут изменены между проходами луча, это приведёт к использованию для текущей отображаемой строки новых значений. Таким образом, вовремя изменяя содержимое атрибутной области экрана, можно задавать цвета для полосок 8×1 точек вместо обычных блоков 8×8.

Мультиколор 8×4 также может быть реализован с помощью теневого экрана ZX Spectrum 128K — все атрибуты обычного и теневого экрана могут быть установлены в начале кадра, далее в процессе прохода луча по растру каждые 4 строки нужно переключать видимый экран.

Аппаратный мультиколор[править | править исходный текст]

Аппаратный мультиколор (англ. hardware multicolor либо Hicolour) — условное название дополнительного видеорежима для ZX Spectrum. Его возможности аналогичны программному мультиколору 8×1, но реализованы аппаратно, что позволяет использовать ресурсы процессора для других задач. Видеорежим штатно присутствует в компьютерах Timex Computer 2048 и Timex Sinclair 2068, а также реализован в виде доработок для Pentagon и других отечественных компьютеров.

GigaScreen[править | править исходный текст]

GigaScreen

GigaScreen — режим, при котором два специально подготовленных изображения часто сменяют друг друга на экране. За счёт инертности восприятия изображения глазом, два изображения сливаются, и тем самым, за счёт наложения цветов, палитра увеличивается до 102 цветов.

Для ZX Spectrum 48K использование полноэкранного Gigasreen возможно за счёт обновления атрибутной части экранной области памяти. На ZX Spectrum 128K для тех же целей задействуют теневой экран. Аппаратно режим не реализован.

MultiGigaScreen[править | править исходный текст]

MultiGigaScreen — режим, объединяющий в себе возможности GigaScreen и мультиколор. Таким образом для атрибутов 8×1, 8×2, 8×4 и т. п. появляется возможность задать до 4-х цветов из палитры в 102 цвета.

Триколор[править | править исходный текст]

Триколор

Триколор — программно реализуемый видеорежим, при котором каждой точке можно назначить один из 8 цветов, яркость задаётся по знакоместам. Идея аналогична Gigascreen, но используется ресурсоёмкий переброс кадров из памяти, совместимый с 48kb моделью спекки. Три перебрасываемых по очереди кадра — для красного, зелёного и синего цвета RGB Частота мерцания составляет 16,6 Гц, что уже очень заметно визуально.

Flash-color[править | править исходный текст]

Флэш-колор — режим, основанный на подачу частоты 7 Мгц вместо 1,5 Гц на сигнал мерцания flash. При этом при выводе каждого пикселя на экран подается цвет ink, затем цвет paper. Действует в знакоместах, для которых установлен бит мерцания в байте атрибутов. Путем аппаратной доработки фон делается черным, а для цвета чернил используются оставшиеся 7 бит, предоставляющие 128 цветов.

512×192[править | править исходный текст]

Тестовое изображение в режиме 512×192

Монохромный режим высокого разрешения, реализованный в компьютерах Timex Sinclair 2068, Байт, Pentagon, и некоторых других клонах. В основном используется для текстовых режимов 64×24 и 80×24, в частности, для работы в операционной системе CP/M.

В компьютере SAM Coupé реализован режим Mode 3, 512×192 точек, 4 цвета на точку из палитры в 128 цветов. В этом режиме используются символы шириной 6 пикселей для получения 85 символов в строке.

384×304[править | править исходный текст]

Аппаратная доработка для Pentagon, реализующая дополнительный видеорежим с разрешением 384×304 точки[1]. При этом масштаб изображения не изменяется, дополнительная информация выводится в той области, где в штатном видеорежиме отображается бордюр. Ограничения на использование цвета аналогичны стандартному видеорежиму.

ULAplus[править | править исходный текст]

ULAplus, ULA64 — проект замены оригинального чипа ULA ZX Spectrum 48K. Новый чип, повыводно совместимый с оригиналом, позволяет использовать на экране до 64 цветов из палитры в 256 цветов. Идея состоит в том, чтобы биты яркости и мерцания выбирали одну из четырёх палитр, содержащих по 8 цветов INK и PAPER, задаваемых программно[2][3]. Чип так и не был выпущен, но поддержка соответствующего режима присутствует в нескольких эмуляторах.

Примечания[править | править исходный текст]

  1. Contact v2.06 — схема доработки 384×304 и программирование, статья из газеты AlCo News #32 (2004)
  2. ZX Spectrum 64 Colour Mode — Scratchpad Wiki Labs
  3. ULAplus

Ссылки[править | править исходный текст]