RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Июль 2020
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031  

Календарь Календарь

Последние темы
» Радио-86РК: внешние видео-адаптеры
автор Microsha Сегодня в 14:06

» Новости криптовалют: статьи, заметки, разное...
автор Viktor2312 Пн Июл 06 2020, 10:51

» Новинки. Книги. Часть 1.
автор Viktor2312 Сб Июл 04 2020, 11:56

» Арго ПК ФВ 6511. Информация, документы, фото.
автор Viktor2312 Ср Июл 01 2020, 21:23

» Обзор крипто проектов.
автор Viktor2312 Вс Июн 28 2020, 00:03

» МИКРО - 80. Статьи, заметки, очерки, разное...
автор barsik Сб Июн 27 2020, 22:56

» Серия видео про Биткоин.
автор Viktor2312 Сб Июн 27 2020, 16:09

» Электроника КР-04. Информация, документы, фото.
автор barsik Пт Июн 26 2020, 13:25

» Флейм только по теме "Радио-86РК".
автор barsik Чт Июн 25 2020, 20:06

» Netbox.Global (NBX) - браузер с инновационной технологией.
автор Viktor2312 Вт Июн 23 2020, 14:45

» Электроника КР-03: Обсуждение
автор barsik Чт Июн 18 2020, 21:24

» Радио-86РК: Разное
автор barsik Чт Июн 18 2020, 02:06

» Биткоин, с технической точки зрения. Разное...
автор Viktor2312 Вт Июн 16 2020, 22:47

» Радио-86РК: Расширение ОЗУ
автор barsik Чт Июн 11 2020, 10:21

» Разное
автор Viktor2312 Вт Июн 09 2020, 01:40

» Улучшение видео возможностей РК86
автор barsik Вс Май 31 2020, 12:39

» Турбирование Специалиста
автор barsik Пт Май 22 2020, 13:33

» Программы от РК86 на Специалисте
автор barsik Ср Май 20 2020, 21:08

» Варианты улучшения платы ЭКСПРЕСС минимальной ценой
автор barsik Ср Май 20 2020, 21:02

» Z80 в Специалисте
автор barsik Ср Май 20 2020, 21:00

» Семейство PIC32MZ EF 32-разрядных МК (252 МГц).
автор Viktor2312 Вт Апр 28 2020, 15:53

» Микросхема ЦАП AK4499, ЦАПы на её основе. Общая тема.
автор Viktor2312 Вс Апр 12 2020, 14:27

» Можно ли улучшить цвет Специалиста ?
автор barsik Чт Апр 09 2020, 19:03

» USB --> I2S
автор Viktor2312 Пн Апр 06 2020, 00:25

» Часики на лампах
автор freddy Вс Мар 15 2020, 14:27

Самые активные пользователи за месяц
Viktor2312
Можно ли улучшить цвет Специалиста ? Vote_lcapМожно ли улучшить цвет Специалиста ? Voting_barМожно ли улучшить цвет Специалиста ? Vote_rcap 
barsik
Можно ли улучшить цвет Специалиста ? Vote_lcapМожно ли улучшить цвет Специалиста ? Voting_barМожно ли улучшить цвет Специалиста ? Vote_rcap 
Microsha
Можно ли улучшить цвет Специалиста ? Vote_lcapМожно ли улучшить цвет Специалиста ? Voting_barМожно ли улучшить цвет Специалиста ? Vote_rcap 

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


Можно ли улучшить цвет Специалиста ?

Перейти вниз

Можно ли улучшить цвет Специалиста ? Empty Можно ли улучшить цвет Специалиста ?

Сообщение  barsik в Чт Апр 09 2020, 19:03

1
В этой теме хочу рассмотреть варианты простого (и по возможности совместимого) улучшения цвета. Хотя, т.к изобилия новых цветных программ ни для базового цвета, ни для улучшенного, - не предвидится, меня интересует цвет под конкретные задачи (цвет в пиктограммах для GUI-интерфейса и цвет удобный для эмуляции ZX-игр).

У меня есть 5 плат Специалист-Экспресс (одна из них ещё даже ни разу не работала, лежит ненастроенная с 1989 года). На нескольких платах Специалиста могу экспериментировать, чтобы попробовать на них разные варианты цвета. Хотя пробовать, чтобы понять, что для конкретной цели лучше, выгоднее в эмуляторе, чем в железе. Не только потому что это удобнее и быстрее, но ценнее то, что при этом не требуется дышать ядовитыми парами канифоли и обжигать пальцы паяльником.

Можно ли улучшить цвет Специалиста ? RGB.1586403541

Считается, что у Специалиста есть на выбор: 5 или 8 цветов. В первые 3.5 года после публикации у Специалиста было 5 цветов, но потом предельно глупейшим способом (за счёт уничтожения возможности аппаратных прерываний и введения улёта цветных программ на базовом монохромном Специалисте) добавили ещё один бит в регистр цвета и "их стало восемь". 5-ти цветный адаптер иногда ошибочно называют 4-х цветным. Мне лично симпатичнее 5-ти цветный режим, т.к на одном моём Специалисте был сделан именно он и мне хватит совместимости с такой схемой.

8-ми цветная схема из журнала МК 07.1990 неудачна также избыточностью по чёрному цвету. Цвет с кодом 000 можно было бы сделать 9-м цветом. Так как каждый из 3-х битов непосредственно управляет цветовой составляющей (R, G или B), то коду 000 в такой схеме соответствует чёрный цвет. Получается, что код 000 тратится впустую, т.к чёрный уже и так есть, ведь чёрным отображаются точки соответствующие нулевым битам экранного байта. [варианты видеовыхода могут отличаться инверсией, т.е 000 это м.быть белый, а 111 наоборот чёрный, хотя для человека логично 0 считать отсутствием сигнала].

К сожалению, когда дело доходит до разработки игры, то вдруг выясняется, что минималистический волковский цвет не так уж и хорош, а точнее является почти таким же ущербным, как цвет в РК86. Отличие лишь в том, что цветовое разрешение не на 8 линий знакоместа, а на один экранный байт из 8-ми пикселей. Но суть та же - можно задать цвет пикселей соответствующих единичным битам экранного байта, а пиксели соответствующие нулевым битам экранного байта - всегда чёрные. Т.е задаётся цвет только INK, а цвет PAPER не меняется. А для качественных графических картинок нужна возможность закрашивать каждый пиксель в любой цвет из имеющегося набора цветов.

С другой стороны волковский цвет имеет достоинством то, что адаптер цвета выполняется в виде внешнего прибамбаса, без разрезов печатных проводников на основной плате Специалиста и большим преимуществом самой идеи цвета с автозаписью из регистра цвета является скорость вывода цветных объектов, которая вдвое быстрее, чем в "Орионе" или "Векторе" (т.к на цвет не расходуется ресурс процессора). И конечно, неидеальный цвет лучше, чем совсем без цвета, хотя и обрекает на игры в которых по чёрному фону бегают одноцветные фигурки, а в системных программах можно лишь выделять цветом фона текст из чёрных букв или рисовать цветную раму в нортоне. Ещё одним достоинством волковского цвета является то, что программу можно исходно писать в монохроме, а добавка цвета не требует существенного изменения алгоритма программы (достаточно добавить две маш.команды загрузки кода цвета в регистр цвета перед выводом на экран).

В начале 90-тых было всего несколько игр с 5-ю цветами, а системных цветных программ я не встречал вообще (цвет использован лишь в системных программах для Специалист-MX, но это совсем другой и несовместимый вариант Специалиста). Но похоже и спустя 30 лет мало старых монохромных игр было оцвечено или написано с нуля новых 8-ми цветных. Похоже лишь vinxru написал в XXI веке несколько цветных игр для Специалиста, а недавно ivagor оцветил JET SET WILLY и адаптировал в цвете ZX-игру EXOLON. Тем не менее при доработках совместимость хотя бы по 5-ти цветному режиму всё же желательна.

Какие варианты улучшения имеющего цветового адаптера очевидны и что ещё можно придумать?

Тупой лобовой вариант удвоения числа битов в регистре цвета позволяет задавать цвет не только INK, но и PAPER, т.е в пределах 8-ми точек будут доступны два произвольных цвета. Дополнительный двухбитовый регистр цвета PAPER можно включить в шину процессора. Это немного увеличит нагрузку шины. А вот запись в регистр цвета сквозь ППА не грузит шину.

Для расширения регистра цвета без загрузки шины сразу напрашивается вариант до которого изобретатели В.Медведков и В.Иванов, делая "разработку" цвета из ж.МК 07.1990, не додумались (зато они додумались занять выход INTE, убив этим прерывания и РК-звуки, и, заняв бит НП, обеспечили улёт цветных программ на моно версиях Специалиста, что вообще идиотизм).

Два доп.цветовых бита не нагружая шину можно получить добавив 155 ТМ2 в качестве регистра-защёлки на те же выходы PC6, PC7 порта клавиатуры. Тогда выдав на PC6, PC7 цвет PAPER и защёлкнув эти биты в двухбитовом регистре-защёлке, без добавки доп.входов на шину и занятия разрядов ППА, образуется четырёхбитовый регистр цвета вместо двухбитового (2 бита из ТМ2 и 2 бита, как и ранее, из разрядов PC6, PC7 ППА). В качестве строба защелки годится любой чип-селект на запись (например тот же C000 или любой дополнительный). Если не особо ценны прерывания или сигнал НП, то в качестве строба можно использовать даже PC5 или выход INTE процессора.

Если эти 4 цветовые бита использовать для задания цветов на весь экранный байт - 2 бита на цвет символа (INK) и 2 бита на цвет фона (PAPER), то получаем 4 цвета, хотя и с ограничением, что в пределах 8 соседних точек цветов только два. Т.е такой же групповой цвет, как в 16-ти цветном режиме ОРИОНА (но с меньшим числом цветов). Число цветов можно увеличить до 5, если для INK какому-нибудь цветовому коду будет соответствовать другой цвет, чем для PAPER.

Для этого при таком четырёхбитовом цвете достаточно одного корпуса логики, чтобы цвет 00 для INK был белым, а не чёрным, как для PAPER. Это позволит выводить и чёрные и белые буквы на цветном фоне. Таким образом к схеме двухбитового цвета из ж.МК 07.1988 добавляется 2 корпуса 565 РУ6, триггер ТМ2 и мультиплексор КП2, который в зависимости от того равен текущий бит выводимого экранного байта 1 или 0, выдаёт на RGB код INK или PAPER. При этом плата цвета останется тем же внешним прибамбасом, на шину не прибавляется нагрузка и сохраняются те же 5 цветов. Но теперь задаётся цвет не только на INK, но и на PAPER.

Увеличить вдвое число цветов при 4-х битах можно, если сообразить, что на цвет фона (PAPER) можно выделить другие цвета, чем на цвет символов (INK). Тогда общее число цветов станет 8. Это потребует применения РПЗУ 155РЕ3 (хотя в простейшем случае можно обойтись без этого, сделав цвета INK теми же, лишь более яркими).

Вот такие 8 цветов на INK & PAPER - это, похоже, самый оптимальный вариант использующий исходную идеологию цвета через биты PC6, PC7. В таком варианте цвет задаётся и для битов 1 и для битов 0 в экранном байте, хотя это и не улучшает цветовое разрешение. Оно остаётся низким, т.к при групповом цвете возможны лишь два цвета на 8 соседних точек. Такая доработка с добавлением двух доп.битов для PAPER самоочевидна и именно так стоило в 1990 году улучшить схему цветного адаптера Специалиста, т.к такой цвет лучше цвета из МК 08.1990.

Но и у такого варианта есть недостатки. Большим неудобством при изготовлении является применение кодопреобразователя логического цвета в физический на 155РЕ3. Если цвета доступные для фона (PAPER) и цвета доступные для цвета символов (INK) полностью разные, то возможно 8 цветов, но число их сочетаний ограничено. Причём, если надо брать графику из игр ZX-Spectrum, то совместимость по цветам не сделать, т.к в ZX набор цветов для INK и PAPER одинаков. Если же цвета INK-PAPER одинаковы, то число цветов на экране падает до всего 4.

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

Написание новых игр или даже адаптация игр от ZX в связи с малым числом программистов для Специалиста это сейчас совсем не веский довод. А вот раскраска знакоместами дающая 16 цветов для символов и для фона удобная для аппаратно-программного эмулятора игр ZX-16K - гораздо полезнее. Для этого распределение битов в регистре цвета (чтобы избежать перекодирования цветов) должно совпадать с назначением битов в поле атрибутов ZX (в том числе и бит мерцание). Отличие структуры экрана не важно, хотя это и тормозит визуализацию.

Чтобы ввести знакоместный цвет, параллельно экранному ОЗУ включаем статическое ОЗУ 2 (или 8 ) кб, причём адреса подключаются так, что на адрес A0 ОЗУ в 2 кб подаётся адрес А3 от схемы видеогенератора и процессора. Тогда (учитывая линейную и вертикальную организацию экранных байтов) при считывании последовательных 8-ми байтов экранного ОЗУ из доп.ОЗУ в 2 кб будет считываться один и тот же байт. Запись этого байта раскрашивает сразу квадратик 8*8 и на экране формируются 48*32 цветовых знакомест, что удобно для цветного текста, а экран из цветовых знакомест ZX-Spectrum с форматом 32*24 точно таких же цветных знакомест умещается в такой экран Специалиста.

В принципе эта идея является идеей второй параллельной банки для нужд цвета для бедных, т.е с сокращённым размером экранного ОЗУ для цвета. Для 80-тых годов это имело смысл. Сейчас нет, т.к доступны 6264, 62256 (и даже w24257), а размер ОЗУ для цвета в волковской идее цвета вообще не важен, т.к запись в него производит не процессор, а это делается автоматически.

А с применением экранного ОЗУ цвета того же размера на 62256 получается то же самое, что и с полной банкой 565РУ6 для цвета напаянной вторым этажом на ОЗУ на основной плате, хотя и внешний вид такой доработанной платы будет лучше (т.к со стороны деталей не будет видно проводов идущих на 2, 14 и 3 ноги РУ6-тых напаянных вторым этажом).

Прикинем требуемый объём деталей. Т.к адрес на ОЗУ выдаётся по половинкам и защелкивается по RAS/CAS, то для восстановления полного адреса придётся применить регистр, например 555 ИР23, защёлкивая в нём первую половину адреса по фронту /RAS. Вторая половина экранного адреса готова после фронта /CAS. Сигнал выборки ОЗУ цвета /CS - это объединённые на ЛЛ1 /RAS и /CAS. Длительность такого сигнала равна пол периода частоты 2 МГЦ, т.е 250 НСЕК. Большинство 6264 рассчитаны на работу с циклом доступа в 200 НСЕК, а более современные w24257 имеют быстродействие на порядок выше.

В качестве выходной защёлки понадобятся ещё два 8-ми разрядных регистра (две 555 ИР23 удобнее вместо 589 ИР12 и 155 ИР1) и выходной мультиплексор 1533 КП11. Или можно применить мультиплексор с триггерами внутри. Если же нужен ещё и ZX-FLASH, то понадобится ещё один вентиль из 1533 ЛП5 и 561 ИЕ10. По деталям это почти столько же, что и в схеме волковского цвета (в котором 6 микросхем). Чтобы с'экономить на пайке 16 проводов можно использовать идею конструктива Language Card из Apple-II, используя разъём DIP-16 с косой втыкаемый в панельку 565 РУ5.

Кстати, при рассмотрении схем альтернативных цветовых адаптеров разумно также рассмотреть вопрос мерцаний в играх Специалиста. Некоторые люди считают, что перерисовка спрайтов на медленной машине вызывает мерцания. С этим столкнулись разработчики "Принца Персии" для БК-011. Впрочем, быстродействие процессора в БК-0011 ниже. Кардинально проблему решает только наличие второго экрана. В случае платы ЭКСПРЕСС, которая на 565 РУ5, второй экран вводится просто, - кусок провода подаёт на вход адресного мультиплексора КП2 сигнал управляющий номером отображаемого экрана.

_________________
***
barsik
barsik
Мастер++

Сообщения : 651
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения