nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 14 May 2024 00:52



Reply to topic  [ 265 posts ]  Go to page Previous  1 ... 10, 11, 12, 13, 14, 15, 16 ... 18  Next
Радио-86РК на SRAM 128K Alpha (2014) & Beta (2024) 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22732
Location: Silicon Valley
Reply with quote
Alikberov wrote:
Shaos wrote:
P.P.P.S. Не - не будет E4 как чёрная дырка выглядеть - она будет выглядеть как Д с подчёркиванием (если верить эмулятору Emu80) т.к. там сигнал гашения VSP не выдаётся (а E5 будет выглядеть как Е с подчёркиванием да ещё из-за H=1 оно будет раскрашивать предыдущий символ в красный цвет по Толкалину либо в жёлтый по Акименко)
Именно потому я и элементом ИЛИ сигналы VSP и LA0 объединил, чтобы подавить знакогенератор и коды E4/E5 не отображались: Получается "пробел".
Причём получается "чёрный" пробел, а я хочу чтобы он "подкрашенный" был ;)
Чтобы "залипшие" фоновые подсветки заканчивались не перед этим знакоместом, а в конце этого знакоместа...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


24 Jan 2024 03:40
Profile WWW
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 327
Location: Tashkent
Reply with quote
Shaos wrote:
Alikberov wrote:
Shaos wrote:
P.P.P.S. Не - не будет E4 как чёрная дырка выглядеть - она будет выглядеть как Д с подчёркиванием (если верить эмулятору Emu80) т.к. там сигнал гашения VSP не выдаётся (а E5 будет выглядеть как Е с подчёркиванием да ещё из-за H=1 оно будет раскрашивать предыдущий символ в красный цвет по Толкалину либо в жёлтый по Акименко)
Именно потому я и элементом ИЛИ сигналы VSP и LA0 объединил, чтобы подавить знакогенератор и коды E4/E5 не отображались: Получается "пробел".
Причём получается "чёрный" пробел, а я хочу чтобы он "подкрашенный" был ;)
Чтобы "залипшие" фоновые подсветки заканчивались не перед этим знакоместом, а в конце этого знакоместа...
Кажется, в Апогее так и сделано: Там нет проблем с окраской предыдущих знакомест, так как атрибуты защёлкиваются в регистре синхронно.
Потому и "подкрашенный пробел" получить легко, если той схемой Апогея воспользоваться.
(Эмулятор Emu80 слегка лукавит, как сам автор признался: Окрашивает предыдущее знакоместо целиком, а в "железе" - всего пиксель попадает. А мерцание - тоже отключает предыдущий символ, что на своём КР-03 я не наблюдал.)


Attachments:
File comment: Точность эмуляции
Снимок экрана_2024-01-24_05-52-58.png
Снимок экрана_2024-01-24_05-52-58.png [ 23.54 KiB | Viewed 800 times ]
File comment: Таблица на КР-03
photo_2024-01-24_05-37-54.jpg
photo_2024-01-24_05-37-54.jpg [ 142.45 KiB | Viewed 801 times ]
24 Jan 2024 03:50
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22732
Location: Silicon Valley
Reply with quote
А это чего такое на скриншоте происходит? Что за символы слева и справа от таблицы?

Alikberov wrote:
Кажется, в Апогее так и сделано: Там нет проблем с окраской предыдущих знакомест, так как атрибуты защёлкиваются в регистре синхронно.
Потому и "подкрашенный пробел" получить легко, если той схемой Апогея воспользоваться.
(Эмулятор Emu80 слегка лукавит, как сам автор признался: Окрашивает предыдущее знакоместо целиком, а в "железе" - всего пиксель попадает. А мерцание - тоже отключает предыдущий символ, что на своём КР-03 я не наблюдал.)

Не - в железе (если без регистра) не один пиксел попадает, а один пиксел НЕ окрашивается (т.е. предыдущий символ окрашивается в новый атрибут не целиком, а на 5/6=83%) - вот скришот с Пальмиры (где нет регистра), что сделал Pyk и опубликовал на зхпк:

Attachment:
rkcolor.jpg
rkcolor.jpg [ 89.97 KiB | Viewed 761 times ]

Вот крупнее:

Attachment:
rkcolor-x3.jpg
rkcolor-x3.jpg [ 37.55 KiB | Viewed 761 times ]

т.е. это и есть "левый пиксель обычно не затрагивается"

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


24 Jan 2024 08:39
Profile WWW
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 327
Location: Tashkent
Reply with quote
Shaos wrote:
А это чего такое на скриншоте происходит? Что за символы слева и справа от таблицы?
Слева и справа - коды E4 и E5 соответственно (проверял, не "плывёт" ли экран).

А так как в моём КР-03 в панельке знакогенератора (да и в схеме из руководства по эксплуатации) обнаружил РФ5 вместо РФ1. Аккуратно перезал ножку A10 и перемычкой подал её на ВГ75, чтобы проверить, что там по 0400-07FF...
Shaos wrote:
Не - в железе (если без регистра) не один пиксел попадает, а один пиксел НЕ окрашивается (т.е. предыдущий символ окрашивается в новый атрибут не целиком, а на 5/6=83%) - вот скришот с Пальмиры (где нет регистра), что сделал Pyk и опубликовал на зхпк
Любопытно! Мне об этом не говорили. :roll:


Attachments:
File comment: вторая половина РФ5
photo_2024-01-24_11-21-11.jpg
photo_2024-01-24_11-21-11.jpg [ 157.85 KiB | Viewed 753 times ]
File comment: перемычка
photo_2024-01-24_11-20-41.jpg
photo_2024-01-24_11-20-41.jpg [ 213.23 KiB | Viewed 753 times ]
24 Jan 2024 09:29
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22732
Location: Silicon Valley
Reply with quote
Alikberov wrote:
Shaos wrote:
А это чего такое на скриншоте происходит? Что за символы слева и справа от таблицы?
Слева и справа - коды E4 и E5 соответственно (проверял, не "плывёт" ли экран).
Понятно - значит эмуль правильно показывает :)

Alikberov wrote:
А так как в моём КР-03 в панельке знакогенератора (да и в схеме из руководства по эксплуатации) обнаружил РФ5 вместо РФ1. Аккуратно перезал ножку A10 и перемычкой подал её на ВГ75, чтобы проверить, что там по 0400-07FF...
О - так ты можешь туда чего-то записать :)

А куда у него A10 подключен? На землю?

У меня КР-03 кстати тоже есть, но он фиговенько работает: http://www.nedopc.org/forum/viewtopic.php?f=93&t=17793

Alikberov wrote:
Shaos wrote:
Не - в железе (если без регистра) не один пиксел попадает, а один пиксел НЕ окрашивается (т.е. предыдущий символ окрашивается в новый атрибут не целиком, а на 5/6=83%) - вот скришот с Пальмиры (где нет регистра), что сделал Pyk и опубликовал на зхпк
Любопытно! Мне об этом не говорили. :roll:
Ну вроде это как раз то, что он тебе сказал на том скриншоте :)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


24 Jan 2024 09:35
Profile WWW
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 327
Location: Tashkent
Reply with quote
Shaos wrote:
О - так ты можешь туда чего-то записать :)
Не могу: Программатора нет.
К тому же - там "зебра" из 00/FF (видно по снимку экрана)...
Видимо, кто прошивал, никак не обнулил ОЗУ и мусор прошился в ПЗУ (все 2 Кб, а не 1 Кб): Придётся всю ПЗУ стирать!
Shaos wrote:
А куда у него A10 подключен? На землю?
По-моему, на VSP сидел - нужно в схему заглянуть...
(Вывод 19 спаян был с выводом 20: Перерезал и пересадил на 36 ВГ75.)
Shaos wrote:
Ну вроде это как раз то, что он тебе сказал на том скриншоте :)
До Пальмиры руки не доходят даже в эмуляторе: Всё свободное время отдаю под разработку ПО на РК.

Но, на сколько я помню (ещё на КР-03 не проверил), атрибуты мерцания на соседнее знакоместо не распространяются, как в Emu80 (скриншоты ниже).


Attachments:
photo_2024-01-24_12-14-14.jpg
photo_2024-01-24_12-14-14.jpg [ 6.72 KiB | Viewed 744 times ]
photo_2024-01-24_12-14-24.jpg
photo_2024-01-24_12-14-24.jpg [ 7.06 KiB | Viewed 744 times ]
photo_2024-01-24_12-14-34.jpg
photo_2024-01-24_12-14-34.jpg [ 7.46 KiB | Viewed 744 times ]
24 Jan 2024 09:58
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22732
Location: Silicon Valley
Reply with quote
Alikberov wrote:
Shaos wrote:
О - так ты можешь туда чего-то записать :)
Не могу: Программатора нет.
К тому же - там "зебра" из 00/FF (видно по снимку экрана)...
Видимо, кто прошивал, никак не обнулил ОЗУ и мусор прошился в ПЗУ (все 2 Кб, а не 1 Кб): Придётся всю ПЗУ стирать!
Shaos wrote:
А куда у него A10 подключен? На землю?
По-моему, на VSP сидел - нужно в схему заглянуть...
(Вывод 19 спаян был с выводом 20: Перерезал и пересадил на 36 ВГ75.)

Понятно - 20 это /OE:

Attachment:
Screenshot from 2024-01-24 09-14-28.png
Screenshot from 2024-01-24 09-14-28.png [ 291.88 KiB | Viewed 744 times ]


Можно попробовать достать совпадающий по ногам EEPROM, который можно при +5 запрограммировать ну или в любом случае программатор нужен - взять китайский Tl866ii например

Alikberov wrote:
Shaos wrote:
Ну вроде это как раз то, что он тебе сказал на том скриншоте :)
До Пальмиры руки не доходят даже в эмуляторе: Всё свободное время отдаю под разработку ПО на РК.

По цветам она работает как Толкалин без регистра - так что можно использовать как "эталон" :)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


24 Jan 2024 10:26
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22732
Location: Silicon Valley
Reply with quote
Alikberov wrote:
Но, на сколько я помню (ещё на КР-03 не проверил), атрибуты мерцания на соседнее знакоместо не распространяются, как в Emu80 (скриншоты ниже).
А там RVV заведён? Без него мерцания не будет
А если заведён (через XOR), то будет не только мерцание, но и инверсия :)
Надо достать Апогеи и поглядеть - у меня есть оба - и чёрно-белый (с инверсией и мерцанием без регистра), и цветной (с регистром) - эмуль так показывает разницу между ними:

Attachment:
apogey1.png
apogey1.png [ 4.25 KiB | Viewed 743 times ]


Attachment:
apogey2.png
apogey2.png [ 4.13 KiB | Viewed 743 times ]

(и тут видно, что на цветном есть режим чёрным-по-чёрному)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


24 Jan 2024 10:29
Profile WWW
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 327
Location: Tashkent
Reply with quote
Shaos wrote:
Можно попробовать достать совпадающий по ногам EEPROM, который можно при +5 запрограммировать ну или в любом случае программатор нужен - взять китайский Tl866ii например
Пока обошёлся покупкой К537РУ8 - они по выводам практически полностью попадают. Нужно лишь с цепью "автономного питания" разобраться...


24 Jan 2024 10:31
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22732
Location: Silicon Valley
Reply with quote
У китайского программатора могут быть проблемы с советскими микрухами - лучше взять буржуйские

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


24 Jan 2024 10:34
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22732
Location: Silicon Valley
Reply with quote
Подумал тут, а что если добавить акцентов нашим локальным цветам? ;)

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

Attachment:
Screenshot from 2024-01-24 20-09-48.png
Screenshot from 2024-01-24 20-09-48.png [ 52.5 KiB | Viewed 928 times ]
(палитра 1 получилась победнее, чем палитра 0, но тем не менее - хотя наверное можно попробовать не добавлять акценты в палитре 1, а вычитать)

P.S. Это всё с оглядкой на подключение к TFT по новой схеме от alexcp, разве что биты интенсивности I будут разные для разных цветов т.е. потенциально это 3^3=27 разных цветов (т.к. интенсивного чёрного у нас нету) из которых мы берём 3 плюс белый для переднего плана и только полутона для заднего).

P.P.S. А не поменять ли задние цвета между палитрами? Тогда появится возможность делать текстовый редактор аля нортон жёлтым по синему :mrgreen:
Хотя это не для текста - это для тайлов, которые для игр...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


24 Jan 2024 21:20
Profile WWW
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 327
Location: Tashkent
Reply with quote
Shaos wrote:
P.P.S. А не поменять ли задние цвета между палитрами? Тогда появится возможность делать текстовый редактор аля нортон жёлтым по синему :mrgreen:
Хотя это не для текста - это для тайлов, которые для игр...
Как раз для это и нужны три набора фонта:
  1. Включаемый по HRTC "родной" для полной совместивости с РК-программами
  2. Включаемый по E4 ASCII для CP/M приложений и редакторов
  3. Включаемый по E5 КОИ-8R для CP/M приложений и редакторов с псевдографикой
Причём, ИМХО, желательно фонты по E4/E5 ещё переключать через ВВ55, чтобы в том же "Принце Персии" заменять КОИ-8 на тайлы для построения уровня и отображения героя. :wink:
(Чем меньше "тумблеров" для управления "хозяйством" (цветность, фонты и т.п.), тем лучше (сейчас не XIX век): можно на РК аналог BIOS сделать с выбором настроек.)


25 Jan 2024 01:48
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22732
Location: Silicon Valley
Reply with quote
Ну тумблеры это для настройки окружения для старых программ, которые не знают на чём они запущены :)
Причём никто не мешает уже запустив программу начать щёлкать тумблерами, чтобы подобрать правильные цвета ;)
Потом можно тумблеры превратить в кнопки, управляющие установкой-сбросом триггеров, которые можно также программно устанавливать-сбрасывать - новые программы могут все эти ручные настройки сбросить во что нужно при старте - либо сделать возможным программно сброситься в основной режим работы нового компа (скажем сделать основным режим Апогея с регистром и серым 8Dh, что немного не по апогеевски, но очень уж не хочется терять восьмую комбинацию).

По поводу трёх шрифтов - три шрифта всё таки много. Хотелось бы, чтобы с начала кадра оно не всегда с одного и того же набора стартовала, а с того, который программно выбран и далее переключать между двумя шрифтами через E4/E5, чтобы если подряд идут несколько E4, то шрифт бы оставался основным, но факт наличия E4 использовался бы для других целей - в моём случае для сброса цвета фона. По-моему так всё очень красиво ложится в логичное и непротиворечивое русло с архитектурной точки зрения. А для дальнейшей совместимости с РК-программами (и монитором) всегда можно просто перезагрузить машину - соблюдать совместимость в каждом кадре совсем ненужно :)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


25 Jan 2024 02:43
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22732
Location: Silicon Valley
Reply with quote
Shaos wrote:
Подумал тут, а что если добавить акцентов нашим локальным цветам? ;)

Например завести 3-битный регистр, куда игровая программа может записать битики акцентирующие нулевые цветовые составляющие полутонами, если они есть в соответствующих позициях цветов переднего плана (не фоновых) - аппаратно это должно быть суперпросто реализовать. Теперь мы можем получить 8 разных наборов цветов под каждую палитру (акцент 000 означает неизменнённые цвета):
...
(палитра 1 получилась победнее, чем палитра 0, но тем не менее - хотя наверное можно попробовать не добавлять акценты в палитре 1, а вычитать)

Сделал вычитание акцентов в случае палитры 1 - теперь повеселее :)

Attachment:
accents.png
accents.png [ 60.38 KiB | Viewed 901 times ]
Кроме того в палитре 1 пометил звёздочкой те цвета, которые также присутствуют в палитре 0.

Ещё одной интересной особенностью палитры 1 является то, что при акценте 111 цвета переднего плана совпадают с цветами фона.

Всего тут у нас получилось 23 разных цвета (номер в каждой строке это количество раз сколько данный цвет встретился во всех палитрах со всеми акцентами):
Code:
     16 000000
      8 0000AA
      2 0000FF
      8 00AA00
     10 00AAAA
      4 00AAFF
      2 00FF00
      4 00FFAA
      2 00FFFF
      8 AA0000
     10 AA00AA
      4 AA00FF
     10 AAAA00
      2 AAAAFF
      4 AAFF00
      2 AAFFAA
      2 FF0000
      4 FF00AA
      2 FF00FF
      4 FFAA00
      2 FFAAAA
      2 FFFF00
     16 FFFFFF
По идее тут могло бы быть 3^3=27 цветов, однако 4 цвета выпали: AAAAAA, AAFFFF, FFAAFF и FFFFAA.

Сишная программа для генерации вышеприведённых таблиц в виде HTML - под спойлером:

 rk-color3-accents.c
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

long cols[9]={0x0000FF,0x00FF00,0xFF0000,0xFFFFFF,0x0000AA,0x00AA00,0xAA0000,0x000000};

int main()
{
 char str[8],sta[8][8];
 int i,j,k,ii,jj;
 long l,ll[25];
 FILE *f;
 f = fopen("accents.htm","wt");
 if(f==NULL) return -1;
 ll[24] = 0xFFFFFF;
 fprintf(f,"<HTML><BODY BGCOLOR=#FFFFFF>\n");
 fprintf(f,"<h1>Colors of RK-tiles with accents</h1>\n");
 for(k=0;k<2;k++)
 {
   fprintf(f,"<h2>Palette %i</h2>\n",k);
   ii = 0;
   fprintf(f,"<table border=1 cellpadding=5>\n");
   for(j=0;j<9;j++)
   {
      strcpy(str,"000");
      fprintf(f,"<tr>\n");
      for(i=0;i<10;i++)
      {
         if(i==0)
         {
           if(j==0) fprintf(f," <td>&nbsp;");
           else if(j==1) fprintf(f," <td rowspan=4>Foreground");
           else if(j==5) fprintf(f," <td rowspan=4>Background");
         }
         else if(i==1)
         {
           if(j==0) fprintf(f," <td>Accent-->");
           else
           {
              fprintf(f," <td align=right>Attr %02d",ii++);
              if(ii==2) ii=10;
              if(ii==12) ii=0;
           }
         }
         else // i>=2
         {
           if(j==0)
           {
              fprintf(f," <td>%s",str);
              strcpy(sta[i-2],str);
              if(++str[2]=='2')
              {
                 str[2] = '0';
                 if(++str[1]=='2')
                 {
                    str[1] = '0';
                    str[0]++;
                 }
              }
           }
           else
           {
              jj = 25;
              l = cols[j-1];
              if(k)
              {
                if(l==0xFF0000) l=0x00FFFF;
                else if(l==0x00FF00) l=0xFF00FF;
                else if(l==0x0000FF) l=0xFFFF00;
                else if(l==0xAA0000) l=0x00AAAA;
                else if(l==0x00AA00) l=0xAA00AA;
                else if(l==0x0000AA) l=0xAAAA00;
                if(j<4) // subtract accents for palette 1
                {
                  if(sta[i-2][0]=='1'&&(l&0xFF0000)){l&=0x00FFFF;l|=0xAA0000;}
                  if(sta[i-2][1]=='1'&&(l&0x00FF00)){l&=0xFF00FF;l|=0x00AA00;}
                  if(sta[i-2][2]=='1'&&(l&0x0000FF)){l&=0xFFFF00;l|=0x0000AA;}
                }
                // compare colors with palette 0
                for(jj=0;jj<25;jj++) if(ll[jj]==l) break;
              }
              else if(j<4) // add accents for palette 0
              {
                if(sta[i-2][0]=='1'&&!(l&0xFF0000)) l|=0xAA0000;
                if(sta[i-2][1]=='1'&&!(l&0x00FF00)) l|=0x00AA00;
                if(sta[i-2][2]=='1'&&!(l&0x0000FF)) l|=0x0000AA;
                ll[((j-1)<<3)+i-2] = l; // store colors from paletter 0
              }
              if(jj<25) fprintf(f," <td bgcolor=#%6.6X align=right>*",l);
              else fprintf(f," <td bgcolor=#%6.6X>&nbsp;",l);
           }
         }
         fprintf(f,"</td>\n");
      }
      fprintf(f,"</tr>\n");
   }
   fprintf(f,"</table>\n");
 }
 fprintf(f,"<p>* Color is present in palette 0 as well.</b>\n");
 fprintf(f,"</BODY></HTML>\n");
 return 0;
}


P.S. Если что, я также попробовал XOR вместо добавления акцента в палитре 0 и вычитания акцента в палитре 1 - не понравилось т.к. получилось слишком много повторений в пределах одной и той же комбинации палитры и акцента и в итоге всё уходило в серый цвет...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


25 Jan 2024 03:01
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22732
Location: Silicon Valley
Reply with quote
Можно перенести переключение фонтов/палитр с С1 клавиатурной ВВ55 в регистр, где совместить этот бит с тремя битами акцентов - и это всё совместить с битами выбора страницы памяти (до 4 битов могут выбирать 512 КБ) по адресу #F000, а клавиатурные C0 (мафон), С1 и С2 отдать под 3-битный звук :)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


25 Jan 2024 03:49
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 265 posts ]  Go to page Previous  1 ... 10, 11, 12, 13, 14, 15, 16 ... 18  Next

Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.