Все цвета радуги

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

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

Все цвета радуги

Post by Shaos »

Решил я тут обозреть все доступные схемы подключения цвета в Радио-86РК

Схема номер один (самая распространённая) - Толкалин (Радиолюбитель №4/92):
rk-color-tolkalin.jpg
Страшная кракозябра из ЛА3-х справа это XOR на NAND-ах - я проверил :)
Screenshot from 2024-01-21 16-36-37.png
Цвета задаются атрибутами из ВГ75 (устанавливаются спец.символами):
  • Атрибут HGLT разрешает видео красного цвета
  • Атрибут GPA0 разрешает видео зелёного цвета
  • Атрибут GPA1 разрешает видео синего цвета
Ну и RVV подключен по классической схеме - он отвечает за возможную инверсию и мерцание (которые также являются атрибутами).

Так как цвета гейтуются по AND, то в случае нормальной нецветной работы, когда все атрибуты нулевые, на экране будет чернота - в схеме предусмотрен некий тумблер, которые включает чёрно-белое видео - возможно это делает какие-то наводки и нецветное изображение видится сереньким. Эмуляторы РК когда эмулируют Толкалина при нулевых атрибутах задают серый цвет символов. Также существует доработка на галке, которая нулевые атрибуты превращает в полноценный белый цвет (по сути Толкалин+серый и Толкалин+белый можно рассматривать как ещё 2 схемы цветности в РК).

Следует иметь ввиду, что прошивка Радио-86РК настраивает ВГ75 так, что атрибутные символы не отображаются, ломая логику ПДП, поэтому чтобы использовать цвет как есть надо компенсировать вставку спец-символа атрибутов спец-символом настройки ПДП - люди так делают, но это муторно. Без переделки монитора также нельзя установить цвет через команды монитора или через бейсик - экран сразу же начинает плыть. Но цветные программы могут перенастраивать ВГ75 под себя, устанавливая режим, когда атрибутные символы отрисовываются как пробелы, не ломая логику ПДП (создавая при этом дырки в экране).

Ещё из особенностей этой схемы - при включении цвета он задевает ПРЕДЫДУЩИЙ символ - в эмуляторах предыдущий символ окрашивается в новый цвет целиком, однако на реале говорят он закрашен лишь частично.
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Всё цвета радуги

Post by Shaos »

Схема номер два - Акименко (Радиолюбитель №10/92) aka "Самоцвет-М":
rk-color-akimenko.jpg
Я тут красным приписал названия входов и пририсовал на гейтах наименования кто они, чтобы было понятно без справочника. Как можно видеть RVV тут тоже через XOR идёт, однако цвета как бы исключаются через NOR, вместо того, чтобы разрешаться через AND (причём смешиваясь с ИНВЕРСНЫМ видео, т.е. где активны нолики):
  • Атрибут GPA0 исключает красный цвет
  • Атрибут GPA1 исключает зелёный цвет
  • Атрибут HGLT исключает синий цвет
В результате команды задания цветов отличаются от Толкалина (ну и ярко-белый цвет присутствует в отличие от). Кроме того статья имеет инструкции по доработке монитора РК - по адресу #FADC надо было написать #D3 вместо #93 - в результате цвет стало возможным использовать из Бейсика (см. саму статью) и даже из монитора :)
color1.png
Это в эмуляторе Emu80 - тут кстати видно, что атрибуты цвета распространяются на предыдущее знакоместо - в данном случае я писал прямо в экран с помощью команды монитора M:

81H(жёлтый) 1 2 3 4 5 6 7 8 9 82H(белый мигающий) 1 2 3 85H(зелёный) 1 2 3 89H(красный)

Ещё в схеме есть собирание цветов с разными резисторами для получения на чёрно-белом телевизоре изображения с 8 градациями яркости.
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Всё цвета радуги

Post by Shaos »

Схема номер три - Фролкин (Радиолюбитель №4/93):
rk-color-frolkin-small.jpg
Эта схема была напечатана как комментарий читателя к схеме Толкалина, но по сути - это другая схема с другими цветами!
Несмотря на то, что те же самые атрибуты, что и у Толкалина, управляют теми же цветами, они не выбираются, а исключаются - в данном случае через XOR:
  • Атрибут HGLT исключает видео красного цвета
  • Атрибут GPA0 исключает видео зелёного цвета
  • Атрибут GPA1 исключает видео синего цвета
И как пишет автор, цвет фона в этой схеме всегда будет дополнительным к цвету символов!

Также как и в случае вышеприведённых схем атрибут цвета будет распространяться на предыдущий символ.

О существовании цветных программ, использующих такую схему, информации нет...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Всё цвета радуги

Post by Shaos »

Схема номер четыре - Апогей БК-01Ц (1993?):
shema-apogei-color.png
Этот компьютер использует NOR-ы и инверсное видео, как и схема Акименко, однако красный и синий цвета тут переставлены местами. Кроме того в схему добавлен регистр, который задерживает атрибуты до следующего знакоместа, исключая ситуации, когда атрибуты распространяются назад. Также монитор Апогея уже правильно настраивает ВГ75 так, чтобы атрибутные символы показывались как пробелы, не сбивая синхронизацию даже при ручной расстановке атрибутов.

Данная схема стала относительно популярной среди РК-шников после появления на российском рынке кучи нераспакованных Апогеев в начале десятых годов - есть цветные старые и новые программы под цветной Апогей и многие новоделы РК добавляют именно такую схему цвета в качестве расширения наряду с трёхканальным генератором ВИ53 по схеме Апогея:
new_color_sound_for_rksram_small.png
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Всё цвета радуги

Post by Shaos »

И ещё вот такую схему я тут пытался анализировать:

Image

Если предположить, что VIDEO это выход сдвигового регистра, то этот вариант совпадает с Акименко (плюс тут цвет фона можно задавать через выходы LA1, LA0 и LTEN).

А теперь всё в одной таблице:

Code: Select all

Attr.| Apogey   | Akimenko | Tolkalin | Frolkin  |
--------------------------------------------------
0x80 | white    | white    | gray*    | white    |
0x81 | cyan     | yellow   | red      | cyan     |
0x84 | yellow   | cyan     | green    | magenta  |
0x85 | green    | green    | yellow   | blue     |
0x88 | magenta  | magenta  | blue     | yellow   |
0x89 | blue     | red      | magenta  | green    |
0x8C | red      | blue     | cyan     | red      |
0x8D | black    | black    | white    | black    |
--------------------------------------------------
Backg| black    | black    | black    | inverted |
--------------------------------------------------
Blinking  +0x02
Inversion +0x10
Underline +0x20
* 0x80 for Tolkalin could be Black, Gray or White
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
alexcp
Senior
Posts: 140
Joined: 11 Jun 2012 07:30

Re: Все цвета радуги

Post by alexcp »

Отличный обзор, спасибо!

Теперь можно выбрать какой-то вариант и упаковать его в ПАЛку. Как обладатель одного из тех самых Апогеев, я склоняюсь к схеме номер четыре.

Кстати, отпадает вопрос формирования коричневого цвета, за отсутствием такового в палитре.

P.S. Где (в каком военном училище) учили рисовать схемы с входом справа и выходом слева? Я такое вижу не впервые.
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Все цвета радуги

Post by Shaos »

Возможно человек был взращён на западных журналах по электронике - там как попало рисовалось - и с слева-направо, и справа-налево, и даже сверху-вниз :lol:
Кстати знание что XOR можно составить из четырёх NAND-ов тоже скорее всего оттуда - я так думаю в советской школе электроники мало кто о такой схеме знал :dj:

И если уж делать на галке, то можно все вариации поддержать ;)
Вот пример на галке Толкалин+белый, что коллега Tronix сделал для своей РК-шки:
https://zx-pk.ru/threads/35104-r86rk-dorabotka-do-tsvetnosti.html?p=1179418&viewfull=1#post1179418
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shumadan
Fanat
Posts: 67
Joined: 10 Mar 2018 12:50

Re: Все цвета радуги

Post by Shumadan »

тут Микроша появился. У нее как с цветом?
User avatar
Alikberov
Doomed
Posts: 355
Joined: 14 Oct 2019 18:10
Location: Tashkent

Re: Все цвета радуги

Post by Alikberov »

Shaos wrote:Кстати знание что XOR можно составить из четырёх NAND-ов тоже скорее всего оттуда - я так думаю в советской школе электроники мало кто о такой схеме знал :dj:
Справочные вырезки :roll:
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Все цвета радуги

Post by Shaos »

О - дык тож Шыло :)
Надо поглядеть в свой экземпляр
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Все цвета радуги

Post by Shaos »

Shumadan wrote:тут Микроша появился. У нее как с цветом?
Никак от слова совсем :)

Но никто не мешает «приколхозить» чего-нибудь из вышеописанного ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Все цвета радуги

Post by Shaos »

Shaos wrote:О - дык тож Шыло :)
Надо поглядеть в свой экземпляр
И точно - на странице 56 :roll:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Все цвета радуги

Post by Shaos »

А теперь о способе раскрашивания РК-86, который пришёл мне в голову 30 августа 2021 года (как потом оказалось, оно также пришло в голову пользователю нашего форума с ником Alikberov а также чуть ранее пользователю с ником Paguo-86PK - оба из Ташкента):
Shaos wrote: По ходу можно попробовать добавить цвет с помощью 2х свободных битиков знакогенератора (в стандартном знакогенераторе РК там записаны единички) - получится один из 4 цветов на каждую горизонтальную плашку:
00 - красным по чёрному;
01 - зелёным по чёрному;
10 - синим по чёрному;
11 - белым по чёрному (значение по умолчанию).
Таким образом мы как бы получим цветные тайлы, которых будет 2 набора, переключаемых программно, т.е. всего 256 (т.к. знакогенератор 2кб).
...
Туда же можно добавить поддержку нескольких предопределённых палитр (как минимум двух - RGB как описано выше и аля CGA с Magenta и Cyan).
Далее уже в этом году я переставил цвета и добавил больше закономерностей, чтобы обойтись мелкой логикой для реализации двух палитр:
Shaos wrote: Также наверное надо утолкаться в мелкую логику, поэтому цвета надо расположить позакономернее - например чтобы второй набор был просто инвертированием первого (за исключением белого цвета, который есть и там, и там):

Code: Select all

   PALETTE-0   PALETTE-1
00 (001) Blue  (110) Yellow
01 (010) Green (101) Magenta
10 (100) Red   (011) Cyan
11 (111) White (111) White
И палитры надо не отдельным битом переключать, а совместить это с переключением шрифта - PALETTE-0 будет в основном шрифте работать, а PALETTE-1 - в альтернативном 8)
Цена вопроса в случае RK86 SRAM32K и RK86 SRAM128K - ТРИ корпуса мелкой логики (палитра переключается битом смены шрифта):



Зачем это надо? Ну например затем, что это никак не замыкается на ВГ75 и не требует модификации РК-монитора на иную инициализацию ВГ75 и никаких плясок с ПДП тут ненужно (но требует модификации знакогенератора). Потом тут цвет не на знакоместо, а на плашку - т.е. в пределах символа могут быть все 4 цвета (плюс чёрный фон) и смена цвета не будет требовать знака-пустышки (или плясок с бубном вокруг ПДП когда атрибуты невидимы):
ColoredPlashki.gif
Даже через слегка подкорректированное ПЗУ знакогенератора уже можно раскрашивать обычные РК-программы - например Alikberov раскрасил РК-шный монитор в эмуле :)



Можно пойти дальше и раскрасить цифры скажем в синий цвет, английские буквы - в зелёный, а русские - в красный (оставив символы белыми):
ColoredMonitor.gif
А уже в дальнейшем, заменив ПЗУ знакогенератора на ОЗУ можно получить возможность программно заводить 256 разных тайлов (2 шрифта) и писать с их помощью разноцветные игры :)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Все цвета радуги

Post by Shaos »

Alikberov в своём варианте подразумевал ещё более сложное решение - плашки задаваемые через (00)111111, (01)111111 и (10)111111 вместо чёрной пустоты должны показывать фоновые "полутона":
Alikberov wrote:
Shaos wrote:Возвращаясь к картинке:

Image

Почему где-то цвета ярче, а где-то темнее? А так по цветам как у меня на прошлой странице выбрано для палитры по умолчанию: 11 - белый, 10 - красный, 01 - зеленый и 00 - синий. По идее биты в знакоместах у РК инверсные - т.е. единички это чёрный фон, а нолики - белые (или цветные) точки. Получается единички в последних строчках должны быть чёрные? Или это особый случай для возможности рисования цветного фона? По идее мысль интересная!
Да, если пиксели не горят, но цвет задан - цвет отображается фоном в полутонах.
Мне эта мысль показалось интересной и я прикинул как это может выглядеть у меня:
Shaos wrote:Если добавить полутона, то мои цвета в двух палитрах будут выглядеть вот так:
  • (11)010101 - @@@@@@ - @@@@@@
  • (10)101010 - @@@@@@ - @@@@@@
  • (01)010101 - @@@@@@ - @@@@@@
  • (00)101010 - @@@@@@ - @@@@@@
  • (11)111111 - @@@@@@ - @@@@@@
  • (10)111111 - @@@@@@ - @@@@@@
  • (01)111111 - @@@@@@ - @@@@@@
  • (00)111111 - @@@@@@ - @@@@@@
К сожалению аппаратно это занимает как минимум 7 копусов мелкой логики.

Потом я подумал, что было бы логично, чтобы этот "полутоновой" фон "залипал" до конца строки либо пока его не отменят спец-символом, тогда если это займёт скажем не более 10 корпусов, то игра будет стоить свеч...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Все цвета радуги

Post by Shaos »

Прежде чем думать над железной реализацией "залипания" можно сначала поразмышлять как такой способ раскраски мог бы сочетаться с более "стандартными" способами, которые через ВГ75. Если отбросить вариант Фролкина, то оставшиеся 3 варианта показывают цвет на чёрном фоне (либо в случае инверсии - чёрный текст на цветном или белом фоне), т.е. они как бы раскрашивают белый, не трогая чёрный фон. Можно предположить, что в данном случае "залипший" полутоновой фон должен просматриваться вместо чёрного фона. А что делать с цветом? Раскраску через знакогенератор можно назвать "локальной" раскраской (т.к. при раскраске символа она действует только в пределах одной плашки знакоместа), а раскраску через ВГ75 можно назвать "глобальной" раскраской. Примем, что при наличии "локальной" раскраски она будет перебивать "глобальную". А что же с инверсией и мерцанием? Например если "локальная" раскраска действует непосредственно на выход знакогенератора игнорируя RVV, то получается при наличии инверсии у нас будет раскрашиваться уже чёрный символ, а цвет фона станет бывший "глобальный" цвет символа - т.е. одновременно будут видны и "локальный", и "глобальный" цвета в пределах каждой плашки знакоместа? Надо прикинуть схемку...
Я тут за главного - если что шлите мыло на me собака shaos точка net