Цветной Специалист - пятицвет и восьмицвет (девятицвет)

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

User avatar
Shaos
Admin
Posts: 24007
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Цветной Специалист - пятицвет и восьмицвет (девятицвет)

Post by Shaos »

Нашёл в своих архивах описание самой ранней раскраски Специалиста - так называемый пятицвет:

Code: Select all

     На  Специалистах  (правда,  не  на моем "Лике", там этого не
было) можно выводить данные в цвете. При этом атрибуты, идея, как
на  Спектруме,  только круче - атрибуты у каждого байта в памяти!
(8 пикселей, если помнишь). В пределах одного байта как было, так
и  осталось  2  цвета,  причем  фон  (биты  "0") - всегда черный,
единицы  - один из четырёх возможных: белый/R/G/B, этот-то цвет и
задается  атрибутом.  Всего  5 цветов. Есть режим 9 цветов (8+1),
Пыхонин  собирался его реализовать, но больше я про этот режим не
знаю.  Поэтому  говорю  про  5  цветов (он реализован у Пыхонина,
потому-то игры на "Специалист" там цветные).
     Итак,  поскольку  запись  на  экран идет кусками по 8 бит, а
атрибуты  тоже  бывают  у каждого кусочка по 8 бит, то достаточно
установить  цвет  фона-цвет пера и писать в экранное ОЗУ. Каждого
записанный  в  память  любой  командой  процессора байт на экране
будет  выводиться  с  черным  цветом фона и заданным цветом пера.
Чтобы  писать  другим  цветом  пера, надо послать другое значение
цвета в порт.
     Иным  способом  обратиться  к  атрибутам невозможно - только
установив  нужный  цвет пера и записывая в экранное ОЗУ, атрибуты
автоматически  будут  устанавливаться для обрабатываемых командой
записи   байт   экрана.  Сменить,  как  на  Спектруме,  цвет  уже
выведенных пикселей невозможно - их надо будет вывести заново.
     А  теперь  как  установить  цвета:  просто записать в порт 2
ВВ-шки (по адресу 1111 1XXX XXXX XX10 b, например, FF02, FFFE или
F802)  число,  2  старших  бита  определят  цвет  пера. Поскольку
остальные  биты  не  нужны и всегда пишется целый байт, я приведу
значения и для целого байта:
     Чтобы получить БЕЛЫЙ цвет пера (на черном фоне), надо
     по адресу FF02 записать 00 h
     КРАСНЫЙ (R)  -          40 h
     ЗЕЛЕНЫЙ (G)  -          80 h
     СИНИЙ   (B)  -          C0 h
============
Чуть более навороченный восьмицвет ( см. viewtopic.php?p=103706#p103706 ):
vinxru wrote:
Barbosa75 wrote:НА RGB выходе сигнал у меня появляется только в тесте рюмика, в мониторе ничего нет на RGB.

на сколько я понимаю без софтовой поддержки и не должно.
В мониторе у тебя должны быть белые буквы на черном фоне. То есть каждый канал RGB будет дублировать Y.

Монитор при старте заносит в регистр цвета 000, что соответствует белому цвету.

В мониторе поменять цвет можно командой

MFFFE
90

Будут зеленые буквы

Коды цветов вот:
10 - зел
40 - фиол
50 - красн
80 - гол
90 - зел
С0 - син
D0 - черн
(10 наверное всё-таки "жёлт", а не "зел")

Ещё можно сделать девятицвет когда при D0 будет не чёрный по чёрному, а серый по чёрному...
Я тут за главного - если что шлите мыло на me собака shaos точка net