Забытый мультиколор (часть 1)

Timex TC2048
Полное руководство по аппаратному мультиколору для тех, кто не знает, что это такое и зачем он нужен.

Оглавление


Растрата потенциала

Спектрум корявым вышел:
Мало семей без урода
На таймексах мультиколор доступен
С тысяча девятьсот восемьдесят третьего года!


В ноябре 1983 года, явился на американский рынок микрокомпьютер TS2068, содержащий в себе две ключевые новинки: аппаратный мультиколор (Hi-Color) и режим высокого разрешения 512x192 (Hi-Res). Выпустила это чудо техники компания Timex Sinclair. Для Европы, правда, назвали его TC2068 (от Timex Computer), но суть его от этого не изменилась.
TS/TC 2068 после включения
Умные люди понимали,  что выходить на американского потребителя с одним ZX Spectrum 48 — всё равно что на хоккей в шлёпанцах. Но перестарались. Оба микрокомпьютера практически полностью потеряли совместимость с ZX Spectrum 48, и это стало одной из причин провала продаж.

Новый микрокомпьютер был полностью лишён всякой периферии, а покупать предлагаемые картриджи никто не хотел. Многострадальные покупатели принялись массово переделывать свои TS/TC 2068 в ZX Spectrum 48. Запуск продаж пришёлся аккурат на так называемый «крах рынка видеоигр» в США.

Пытаясь хоть как-то спасти положение, компания выпустила для TC 2068 картридж совместимости с ZX Spectrum 48. В историческом контексте важно заметить, что именно в TS/TC 2068 помимо режимов Hi-Color и Hi-Res впервые появились AY-8910/12 и два экрана, впоследствии сыгравшие значительную роль в популярности ZX Spectrum 128.

В феврале 1984 года британо-американское предприятие Timex Sinclair закрылось. Но дочернее производство Timex Portugal уже разработало и начало выпускать новый Timex TC2048 для рынков Португалии и Польши, где он сыскал большой успех. Португальцы сделали микрокомпьютер, практически соответствующий ZX Spectrum 48, но с добавлением видеорежимов Hi-Color и Hi-Res и поддержки второго стандартного экрана (#6000–#7AFF). Даже строчка копирайта «Timex Computer Corp» при включении пропала.

История умалчивает, почему при выпуске ZX Spectrum 128 в 1985 году испанская Investrónica добавила музыкальный сопроцессор, RAM-диск, два экрана и RS-232C, а «копеечные» видеорежимы Timex забыла. В 1987 году спохватилась Timex Computer и создала прототип TC3256 с ОЗУ 256 Кб. Но денег на производство уже не осталось. Экономия «на спичках» доканала не только Амигу.
TS 2068 в Gigascreen Hi-Res
Для Timex Computer писали и игры, и прикладное ПО, и графические редакторы: Tech-Draw (1985, Hi-Res), Extended Paint (1987, Hi-Color) и Draw 512 (1988, Hi-Res). А ещё BASIC64 с поддержкой Hi-Res и более мощный Timex Extended Basic — с поддержкой AY-8910/12, RAM-диска и двух экранов для TC 3256.

Режим Hi-Res в Timex служил в основном для CP/M и офисного ПО работавшего в режиме 64 символа в строке. Текстовый редактор MScript, процессоры TimeWord и Textwriter 2068 Plus 64, таблицы Vu-Calc и OmniCalc II, база данных Pro/File 2068 — всё это работало в 512x192.

Аппаратный мультиколор можно увидеть не только в ПО для Timex TC2048 и TS/TC 2068. Он доступен и для предшественников ZX Spectrum — ZX80 и ZX81 — с интерфейсами Chroma 80 или Chroma 81. Интерфейс добавляет банки символов UDG и позволяет загружать COL-файл, который расцвечивает UDG мультиколором. То, что из этого получается — смотрите в десятках игр: Fun Park, Astro Bikers, splATTR и др.

Не обошёл аппаратный мультиколор и SAM Coupé (1989) — британский компьютер, совместимый с ZX Spectrum 48. Там он стал одним из 4 видеорежимов (Mode 2). С той разницей, что в SAM Coupé байты в памяти лежат последовательно — в отличие от нелинейности Timex и Спектрума. Тем не менее это ещё один источник мультиколорной графики.
Super-Hang On в Hi-Color
В русскоязычной прессе аппаратный мультиколор упоминался, но изначально виделся как простая тема для заработка: «Звоните по этим телефонам, и мы вам сделаем!». Никаких внятных объяснений, зачем он нужен, как им пользоваться, а также примеров ПО для него не было. Статьи содержали только «Вау!» и рассказы про адаптированные Art Studio 1.5 и игру Heroes. Которых, разумеется, никто никогда не увидел.

Например: «Новинка — схема железного мультиколора» в X-Ray #02, «Труженикам — Аппаратный мультиколор» в KrNews #01 и др. Специальный выпуск X-Ray #03 с «давно обещанной» статьёй «Доработка — схема Мультиколора 8x1» не получил распространения. Если бы хотя бы в своей газете авторы сделали опциональное включение мультиколора с радугой на весь экран, это было бы уже что-то. Но все эти газеты и журналы были вообще чёрно-белыми.

Схемы дошли до масс, когда они были уже не нужны. Статья «Режим мультиколор для Spectrum» в журнале «Радиолюбитель» №5 (2002), где автор жалуется на отсутствие информации. И статья «Схема железного мультиколора» в ZX-Ferrum #01 (2004).

Режиму Hi-Res повезло больше: его осилили отрисовать и можно найти разные доработки, например «Доп. графический режим — 512x192» в Online #79 (1997), «Доп. графический режим» в Deja Vu #06 (1998), «Схема расширения видеорежима Скорпиона до 512x192» в City #36 (1999) и т.д.
CP/M 2.2 на Байт-01
Во времена SpbZxNet под режим 512x192 было написано и адаптировано полтора десятка программ, таких как терминалка Melon, мейлер Lara Croft, редактор AC Edit и др. Всё это было нужно для комфортного чтения и набора текста при переписках в сети. В белорусском клоне «Байт-01» режим 512x192 присутствовал штатно — для поддержки CP/M.

На 2026 год поддержка режимов Timex есть во многих зарубежных клонах Спектрума, географически близких к Португалии и США. Например, это штатный режим в Timex-Harlequin-2048. Если же пробежаться по моделям в ZesarUX, то их поддержку можно увидеть в каждом втором клоне (на практике, в железе, может быть по-разному).
Timmy на ZX Evolution
Из отечественных клонов аппаратный мультиколор штатно поддерживают ZX Evolution Base Conf и Pentagon 1024 SL 2.2x, а также он может быть заведён в «Балтик». Но поддержки режима 512x192 наши современные клоны, увы, не имеют. Возможно, если читатели начнут просить этот режим в NedoPC, есть шанс, что поддержка Hi-Res появится в новом разрабатываемом сейчас Evo. Но это не точно. Пока же при адаптации софта, имеющего не только графику Hi-Color, но и Hi-Res, приходится изворачиваться (см. Timmy для ZX Evo).

Помимо Hi-Color, традиционно называемого в России ZX Hardware Multicolor (он же hwcol), этим компьютером и семейством АТМ поддерживается видеорежим АТМ Hardware Multicolor, отличающийся разрешением 640×200 (вместо 256×192) и делением экрана между двумя страницами памяти (RAM 1 и RAM 5 или RAM 3 и RAM 7). Такое деление напоминает режим Hi-Res в Timex, где графика 512×192 также делится между двумя страницами, только позволяет получать 80 символов в строке вместо 64, типичных для Hi-Res.

Рассмотрение АТМ hwcol выходит за рамки этой статьи. Для завершения исторического контекста заметим: семейство АТМ имеет свой родной аппаратный мультиколор, приходящийся мультиколору в Timex старшим братом. Имеет, и никто у него этого не отнимет.

Порт #FF в Timex
БитыНазначение
0-2Выбор видеорежима

000 — включение экрана 0 (#4000)
001 — включение экрана 1 (#6000)
010 — включение режима Hi-Colour
110 — включение режима Hi-Res
3-5Выбор монохрома в режиме Hi-Res

000 – чёрным по белому
001 – синим по жёлтому
010 – красным по голубому
011 – фиолетовым по зелёному
100 – зелёным по фиолетовому
101 – голубым по красному
110 – жёлтым по синему
111 – белым по чёрному
61 — выключить таймер прерываний
(по умолчанию 0)
7Выбор банка MMU по горизонтали
(см. таблицу в документации,
только для TS / TC 2068)

0 — DOCK, 1 – EX-ROM

Режим Hi-Color
ОперацияTimexZX EvolutionElement ZXMB 03+
ВключениеOUT #FF, 2OUT #EFF7, 32OUT #783B, 16
OUT #793B, 3
OUT #FF, 2
OUT #703B, 12
OUT #713B, 1
OUT #FF, 2
ОтключениеOUT #FF, 0OUT #EFF7, 0OUT #783B, 16
OUT #793B, 3
OUT #FF, 0
OUT #703B, 12
OUT #713B, 1
OUT #FF, 0

Работа с видеорежимами в Spectrum Next — это история отдельного идиотизма (даже Кучера отдыхает), поэтому он не попал в таблицу выше. Просто приведу код для программного включения режима Hi-Color в этом FPGA-эмуляторе:


;; выключение режима ZX Spectrum :
 ld  bc,#243B ; порт выбора порта Next
 ld  a,#15
 out (c),a
 ld  bc,#253B ; порт выбора регистра порта Next
 in  a,(c)
 and #7f
 out (c),a

;; включение режима Timex
 ld  bc,#243B ; порт выбора порта Next
 ld  a,#08
 out (c),a
 ld  bc,#253B ; порт выбора регистра порта Next
 in  a,(c)
 or  #04
 out (c),a

;; включение режима Hi-Color
 ld  c,#ff
 ld  a,#02
 out (c),a


Экранная память
Пары цветов на одно знакоместо,
Всем очевидно — мало.
Лучше когда на один знакоряд,
этих цветов — пара!

Далее под атрибутами будет пониматься область атрибутов Спектрума (768 байт), а под расширенными атрибутами — область атрибутов мультиколора (6144 байта).

При включённых режиме Hi-Color и экране в RAM 5
HEXDECРазмер, байтНазначение
#4000-#57FF16484-225276144Монохромное изображение
#5800-#5AFF22528-23295768Атрибуты
#5B00-#5FFF23296-245751280Буфер принтера (23296-23551), системные переменные (23552-23733),
переменные TR-DOS (23755-24267 или 23867-24379, меняется динамически)
и буфер TR-DOS
#6000-#77FF24576-307196144Расширенные атрибуты

Отсюда видно, что адресация режима Hi-Color очень удобна и для адаптации подойдёт множество программ, типично запускаемых с адреса 32768 (#8000). В загрузчике CLEAR лучше выставлять на адрес 30800. На приложение для ZX Spectrum 48 в этом случае у нас остаётся 33 КБ, что весьма неплохо.

Поскольку буфер TR-DOS (256 байт) легко залезает в расширенные атрибуты, лучше загружать графику куда-нибудь повыше и перебрасывать в нужные адреса, но это вообще типично для адаптации к TR-DOS. В область между атрибутами и расширенными атрибутами лучше не залезать даже байтом. В лучшем случае это приведёт к неработоспособности TR-DOS, а в худшем — к сложно диагностируемым ошибкам или зависанию компьютера.

При включённых режиме Hi-Color и экране в RAM 7
HEXDECРазмер, байтНазначение
#C000-#D7FF49152-552956144Монохромное изображение
#D800-#DAFF55296-56063768Атрибуты
#DB00-#DFFF56064-573431280Свободное пространство
#E000-#F7FF57344-634876144Расширенные атрибуты

Возможно использование двух экранов. Здесь отечественные клоны отличаются от Timex, так как там второй экран начинается с адреса #6000, а не #C000 и считается отдельным видеорежимом.

На ZX Evolution и отечественных доработанных Спектрумах с памятью от 128 Кб можно использовать два экрана (через порт #7FFD, как обычно) и аппаратный мультиколор одновременно. Можно даже сделать мультиколорный Gigascreen, и он будет выглядеть точно так же, как обычный, только в мультиколоре. ВНИМАНИЕ: можно писать/рисовать мультиколором по мультиколору!

Справедливости ради надо упомянуть, что на современных клонах Timex TC 2148 (STAVI) и TC 2144 (Ярек Адамски) доступно 128 Кб и можно использовать 4 экрана (плюс 2 теневых).

О правильной работе с атрибутами и расширенными атрибутами мы поговорим в следующих главах.

Продолжение следует

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.