惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
News and Events Feed by Topic
Malwarebytes
Malwarebytes
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cybersecurity and Infrastructure Security Agency CISA
F
Future of Privacy Forum
C
Cisco Blogs
T
The Exploit Database - CXSecurity.com
A
Arctic Wolf
S
Securelist
K
Kaspersky official blog
S
Schneier on Security
T
ThreatConnect
T
Tenable Blog
Spread Privacy
Spread Privacy
T
True Tiger Recordings
AWS News Blog
AWS News Blog
F
Fox-IT International blog
量子位
T
Threatpost
V
Vulnerabilities – Threatpost
C
CERT Recently Published Vulnerability Notes
Cisco Talos Blog
Cisco Talos Blog
GbyAI
GbyAI
宝玉的分享
宝玉的分享
腾讯CDC
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
Cyberwarzone
Cyberwarzone
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
U
Unit 42
雷峰网
雷峰网
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
O
OpenAI News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
The Register - Security
The Register - Security
MyScale Blog
MyScale Blog
小众软件
小众软件
A
About on SuperTechFans
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
博客园 - 三生石上(FineUI控件)
美团技术团队
Google Online Security Blog
Google Online Security Blog
P
Proofpoint News Feed
MongoDB | Blog
MongoDB | Blog

Все публикации подряд на Хабре

Как интеллект становится уязвимостью под давлением Не надо так: три типичные ошибки, которые приводят ко взлому Заметки про код-стайл в C++ Культура ест стратегию на завтрак: почему не работает долгосрочное планирование Советское ИИ: Забытые гении Как оплатить iCloud в России в 2026 году без смены региона Apple ID Глубокая интеграция месседжинга с бизнес процессами в фреймворке NodaLogic Контекстные менеджеры в Python за пределами with open(): пишем свои и упрощаем код Пароль против уборщицы Выяснились детали мега-IPO SpaceX, а также первый прибыльный квартал Anthropic Люди с психическими расстройствами – новая нефть? Когда нейросети перестанут галлюцинировать? И почему на «что за дичь» они несут ещё большую дичь? Мессенджер HalChat теперь в Google Play: 3 года разработки, ИИ в браузере и квест с модерацией Реверс-инжиниринг Xiaomi Smart Band 10 Когда памяти мало Среда повседневности как объект проектирования: что общего у горца, серотониновой ямы и митохондрий AGENTS.md создавали, чтобы помогать агентам. Я использую его, чтобы их вычислять Почему устанавливают join_collapse_limit = 20 Почему устанавливают join_collapse_limit = 20 Эрик Рис, автор Lean Startup: Почему хорошие компании становятся плохими после IPO Context-driven Reusable Form Pattern: Масштабируемая архитектура для Create / Edit / Create-from-Source Пузырьковая сетка, кошачья стая и не только — неожиданные источники вдохновения для QoS-алгоритмов ___, или «Заголовок намеренно оставлен пустым» ИИ-боты сканируют даже логи TLS-сертификатов. Любая информация используется для обучения LLM Нейросеть оживить фото ИИ: Как оживить фото нейросетью в 2026 году? Разбираемся в ML без воды: от базы до Attention. Часть 5: Метрики качества В поисках «кофейного Грааля». Как человечество пытается сварить идеальный кофе и какие рецепты предлагают…математики Программатик: Часть 2 — OpenRTB Интернет до бесконечных лент: каким был 2010 год Перезапуск TrueIndex: что изменилось в рейтинге языков программирования Проектный холст: как менеджеру подбирать «краски» управления под разные команды «Метафизика в формулах: математическое ядро «Веры Паломника — Исход» Java и постквантовый TLS Marcli: Markdown Терминал Кнопочный смартфон с 5G за 2800 рублей — разбираем и изучаем китайскую диковинку Где неприятности — там и жизнь Разворачивайте платформы: stackfile Мой путь в Microsoft Мобильная разработка за неделю #631 (18 — 24 мая) Что не так с Mixtape, и почему не все довольны новой игрой? Стоматология каменного века. Как неандертальцы лечили зубы 59 тысяч лет назад Почему классическое управление проектами часто не работает в IT-продуктах Строительство Саркофага. Часть 2. Бетонные реки и стальные берега РАЗРАБОТКА ПАРАМЕТРИЗИРУЕМОГО МОДУЛЯ CORDIC-АЛГОРИТМА НА SYSTEM VERILOG Вариационное исчисление как метафора свободы выбора: от градиентного спуска к онтологии пути Ekahau Sidekick и RSSI‑offset: физические ограничения метода и пять независимых причин неточности клиентской модели Колесо потока против раскола Обзор интересных особенностей переворачивающихся при умножении чисел В С неопределённое поведение повсюду MCP-агрегатор: объединяем инструменты для LLM в один сервер Дата-центры в космосе: как Google и SpaceX готовят новую инфраструктуру для ИИ Google готовит замену Chromebook: какими будут ноутбуки Googlebook Пользователь пишет issue, агент меняет сайт. Да, я это сделал Корпоративные конфликты в ИТ-секторе: механика судебной защиты активов и субсидиарных рисков Цена одной опечатки: Как три неверные буквы сорвали киберограбление на миллиард долларов Как я победил спам в своих email аккаунтах Whitepaper Сбера «AI-Disrupt PDLC»: разбор для тех, кто пишет код RustDesk Pro в России не купить. После долгих лет администрирования мы собрали своё честное решение Не пики, а бассейны: почему эволюция — это блуждание по графу жизни Как Gemini 3.5 Flash сломали ради красивых графиков (и почему она обходит 3.1 Pro только на бумаге) Вредоносная атака на Laravel-Lang meta-attention is all you need Как перестать путаться в IP-адресах серверов Сколько стоят ошибки в арбитраже: декомпозиция ценообразования на судебные услуги в Москве Разбираемся в ML без воды: от базы до Attention. Часть 4: kNN Vortex: фреймворк для тех, кого задолбала итальянская кухня в репозитории Использование тепла ЦОД в мире и РФ Часть 4. Скорость света — технические детали Не цитируй мне нейросеть Что сейчас с Project Loom? Примеры и код Рождённые в Сумерках Meta 1 мая показала как они хранят ключи от ваших бэкапов WhatsApp. Разбираю архитектуру и сравниваю Линт проектов: собираем ESLint, Prettier и Stylelint в один пакет Reasoning-модели сломали мой промпт-инжиниринг. Год переучиваюсь РБМК: enfant terrible Как я собеседую менеджеров AI-продуктов для крупного Enterprise Парадокс рынка труда: конкуренция выросла, но не везде, нанимать легче, но не везде Модификаторы в Blender: осваиваем Boolean «Бесплатно» — это красный флаг: почему мы доверяем не тем (опрос) Стратегия выживания в эпоху ИИ Новая теория обещает переписать фундамент всей математики MTP у Qwen3.6 в llama.cpp обещает ×2 по скорости. Я прогнал ту же модель через своего агента — и получил обратное [Перевод] Соль и перец в безопасности паролей Что такое «статьи-зомби» CodeGraph: граф кода для Claude Code вместо grep по файлам. Разбираю архитектуру и проверяю бенчмарки Мессенджер Ласточка. Часть 3 Google представила Gemini Omni — универсальную ИИ-модель. Роботы работают, счастлив человек Что у SpaceX с патентным портфелем перед IPO? Делегирование, которому можно научиться у промпт‑инженеров Feature Based Clean Architecture. Часть 5: Масштабирование FBCA и теоретико-графовый анализ зависимостей Настройка типизации формы React Hook Form (≥ v7.44.0) + Zod с разными входными и выходными типами Feature Based Clean Architecture. Часть 4: FBCA: формализация границ ответственности в NestJS-модуле Корпорация «Святые Технологии». Работа мечты (рассказ) CyLab Security Academy: как Carnegie Mellon превратила CTF в полноценную обучающую платформу Feature Based Clean Architecture. Часть 3: Архитектурный риск циклов в NestJS: ROI решений на горизонте пяти лет Домашний сервер без белого IP: безопасная публикация сервисов через VPS, обратный SSH-туннель и Caddy Почему не взлетели дирижабли? Часть 22: Митягина, Эйхенвальд и Ховрина, первый в истории женский экипаж дирижабля Китайцы ответили на H200 — обзор Zhenwu M890 от Alibaba Feature Based Clean Architecture. Часть 2: Декомпозиция на сервисы: анализ ограниченности подхода Лучшие игры для Steam Deck в 2026 году по мнению пользователей
Забытый мультиколор (часть 1)
aGGre55or · 2026-05-25 · via Все публикации подряд на Хабре

Уровень сложностиПростой

Время на прочтение7 мин

Охват и читатели227

Туториал

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

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

В ноябре 1983 года, явился на американский рынок микрокомпьютер TS2068, содержащий в себе две ключевые новинки: аппаратный мультиколор (Hi-Color) и режим высокого разрешения 512x192 (Hi-Res). Выпустила это чудо техники компания Timex Sinclair. Для Европы, правда, назвали его TC2068 (от Timex Computer), но суть его от этого не изменилась.

TS/TC 2068 после включения

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

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 ParkAstro BikerssplATTR и др.

Super Hang-On в мультиколоре

Super Hang-On в мультиколоре

Не обошёл аппаратный мультиколор и SAM Coupé (1989) — британский компьютер, совместимый с ZX Spectrum 48. Там он стал одним из 4 видеорежимов (Mode 2). С той разницей, что в SAM Coupé байты в памяти лежат последовательно — в отличие от нелинейности Timex и Спектрума. Тем не менее это ещё один источник мультиколорной графики.

В русскоязычной прессе аппаратный мультиколор упоминался, но изначально виделся как простая тема для заработка: «Звоните по этим телефонам, и мы вам сделаем!». Никаких внятных объяснений, зачем он нужен, как им пользоваться, а также примеров ПО для него не было. Статьи содержали только «Вау!» и рассказы про адаптированные 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

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

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 – белым по чёрному

6

1 — выключить таймер прерываний(по умолчанию 0)

7

Выбор банка MMU по горизонтали
(см. таблицу в документации,только для TS / TC 2068)

0 — DOCK, 1 – EX-ROM

Режим Hi-Color (OUT)

Операция

Timex

ZX Evolution

ZX-UNO

Element ZX

MB 03+

Включение

#FF, 2

#EFF7, 32

#FC3B, 15
#FD3B, 32
#FF, 2

#783B, 16
#793B, 3
#FF, 2

#703B, 12
#713B, 1
#FF, 2

Отключение

#FF, 0

#EFF7, 0

#FF, 0
#FC3B, 15
#FD3B, 0

#FF, 0
#783B, 16
#793B, 0

#FF, 0
#703B, 12
#713B, 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

HEX

DEC

Размер, байт

Назначение

#4000-#57FF

16484-22527

6144

Монохромное изображение

#5800-#5AFF

22528-23295

768

Атрибуты

#5B00-#5FFF

23296-24575

1280

Буфер принтера (23296-23551),
системные переменные (23552-23733), переменные TR-DOS (23755-24267 или
23867-24379, меняется динамически) и
буфер TR-DOS

#6000-#77FF

24576-30719

6144

Расширенные атрибуты

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

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

При включённых режиме Hi-Color и экране в RAM 7

HEX

DEC

Размер, байт

Назначение

#C000-#D7FF

49152-55295

6144

Монохромное изображение

#D800-#DAFF

55296-56063

768

Атрибуты

#DB00-#DFFF

56064-57343

1280

Свободное пространство

#E000-#F7FF

57344-63487

6144

Расширенные атрибуты

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

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

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

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

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