nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 27 Apr 2024 06:24



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

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Alikberov wrote:
А почему бы не заказать в конце-концов раскладку оригинальной РК-клавиатуры, но в плёнке?
Как и КР-03 с клавиатурой МС-7007, выглядило бы практически как фабричная модель... :roll:

Кстати есть картинка скан какой-нибудь старой РК-шной плёночной клавы?

_________________
:dj: https://mastodon.social/@Shaos


19 Jan 2024 08:06
Profile WWW
Online
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 320
Location: Tashkent
Reply with quote
Shaos wrote:
Кстати есть картинка скан какой-нибудь старой РК-шной плёночной клавы?
У отца где-то от ПЭВМ "Специалист" лежит "мембранка". :roll:
Но, скан плёночной готовой клавы "какой-нибудь" - это не то, так как получится некий "скэн-код", которому ещё и таблица нужна.

В этом плане, мне клавиатура именно РК и нравится, где "скэн-код" прямо ложится на ASCII.
Конечно, это порождает "лабиринт дорожек". Но, один раз вытравил - и живи спокойно (не надо в программах всякие таблицы хранить).
ИМХО, лучше один раз "паяльником выстрадать" и забыть о таблицах программно, кодируя тысячу программ. Чем из-за "паяльной лени" потом чертыхаться всякий раз, когда нужно напрямую читать клавиши.
(Инженеры IBM сэкономили на этом и скэн-код первой клавиатуры стал стандартом. Сейчас тысячи моделей клавиатур навороченных имеют свою матрицу и, соответственно, собственный скэн-код, который, в свою очередь, перекодируется в стандартный реликтовый скэн-код. Пф-ффф. :x )

P.S.: Пора уж любимому РАДИО-86РК подарить плёночную клавиатуру с родным для РК скэн-кодом (т.е. просто перенести топологию оригинальной клавиатуры РК на плёнку).
Нужно когда-нибудь кому-нибудь это выстрадать! :ewink:


19 Jan 2024 09:04
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Alikberov wrote:
Shaos wrote:
Кстати есть картинка скан какой-нибудь старой РК-шной плёночной клавы?
У отца где-то от ПЭВМ "Специалист" лежит "мембранка". :roll:
Но, скан плёночной готовой клавы "какой-нибудь" - это не то, так как получится некий "скэн-код", которому ещё и таблица нужна.

Да я просто хочу распечатать бумажку, заламинировать её и наложить на мою клавку из кнопочек :lol:

P.S. Ещё вот это меня интересовало на прошлой странице ;)
Shaos wrote:
Кстати каким образом вот тут Монитор раскрашивался?

Image

_________________
:dj: https://mastodon.social/@Shaos


19 Jan 2024 11:19
Profile WWW
Online
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 320
Location: Tashkent
Reply with quote
Shaos wrote:
P.S. Ещё вот это меня интересовало на прошлой странице ;)
Кстати каким образом вот тут Монитор раскрашивался?
Всё очень просто (относительно): Так как эмулятор rk86.ru написан на HTML/JS, то есть - опенсорс, с помощью технологии chrome-extension к сайту подгружается локальный JS-файл, который инжектируется на основную страницу.
(Лично я такой трюк назвал инжекторным эмулятором: Форк эмулятора не делаешь, но для себя локально его изменяешь под свои требования.)

Таким образом, я:
  • Добавил 512 Кб памяти с перехватом префиксов MOV R,R
  • Модифицировал ассемблер, добавив префиксные инструкции (LDAX D1/D2-D7 и т.д.)
  • Добавил ограниченную поддержку кодов F1/F3 для ВГ75
  • Добавил поддержку тайлов
Собственно, цветные символы на том видео - тайлы.

То есть, как известно, у РК знакогенератор - 6x8 и старшие два бита не используются.
Вот я и добавил в эти два бита способность изменять цвет пикселей строки символа.
Так как ВТ57 не реагирует (проверил на своём КР-03 практически) на адреса E009-E00F, все 8 Кб (точнее, 2 Кб - E00C-FFFF) я попробовал отдать под знакогенератор в режиме "только запись".
И "цветные символы-тайлы" загружал уже на программном уровне в игре "КСОНИКС".
(Физически, схематически, это относительно легко сделать, посадив свою схему параллельно ПДП: ВТ57 даже "отрезать" от ИД7 не понадобится, так как он игнорирует адреса E00C-ExxF.)

P.S.: В декабре получил почтой четыре штуки К537РУ8, для опытов со знакогенератором (в перспективе).


19 Jan 2024 11:45
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Ну значит это очень похоже на то, что я хочу сделать в железе (меня эта идея посетила в августе 2021) :)

А какие коды каким цветам соответствуют? Мои соответствия можно почитать выше на этой странице

Кстати этот онлайн эмулятор ведь опенсорц - можно взять сырцы и запустить на своём сайте с изменениями - я так в своё время сделал - см. http://rk86.net

_________________
:dj: https://mastodon.social/@Shaos


19 Jan 2024 12:50
Profile WWW
Online
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 320
Location: Tashkent
Reply with quote
Shaos wrote:
Ну значит это очень похоже на то, что я хочу сделать в железе :)

А какие коды каким цветам соответствуют? Мои соответствия можно почитать выше на этой странице
Вроде, учитывая печальный опыт с палитрой CGA (инженеры сдуру сделали R-G-Y и M-C-W, вместо простого R-G-B, подгоняя всё под владельцев ч/б мониторов), я сделал всё очень просто:
  • (11)010101 -
  • (10)010101 -
  • (01)010101 -
  • (00)010101 -
  • (00)111111 - ⬛⬛⬛⬛⬛⬛
  • (01)111111 - ⬛⬛⬛⬛⬛⬛
  • (10)111111 - ⬛⬛⬛⬛⬛⬛

Shaos wrote:
Кстати этот онлайн эмулятор ведь опенсорц - можно взять сырцы и запустить на своём сайте с изменениями - я так в своё время сделал - см. http://rk86.net
Хм. Ассемблер там не функционирует. :neutral:


19 Jan 2024 13:13
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Где там? .ru или .net? Я давно не апдейтил свой сайт - надо поглядеть

По цветам не понял - все квадратики справа чёрные

Если шрифт адресуется начиная с E00C, то значит ли это, что символы с кодом 0 и 1 раскрасить нельзя?
Или шрифт выше сидит? 2 кило можно разместить в диапазоне E800…EFFF (начиная с E800 будет основной шрифт, а начиная с EC00 - альтернативный).

_________________
:dj: https://mastodon.social/@Shaos


19 Jan 2024 13:29
Profile WWW
Online
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 320
Location: Tashkent
Reply with quote
Shaos wrote:
Где там? .ru или .net? Я давно не апдейтил свой сайт - надо поглядеть

http://rk86.net/
Shaos wrote:
По цветам не понял - все квадратики справа чёрные

Attachment:
Снимок экрана_2024-01-19_16-05-31.png
Снимок экрана_2024-01-19_16-05-31.png [ 3.24 KiB | Viewed 464 times ]

Shaos wrote:
Если шрифт адресуется начиная с E00C, то значит ли это, что символы с кодом 0 и 1 раскрасить нельзя?
Или шрифт выше сидит? 2 кило можно разместить в диапазоне E800…EFFF (начиная с E800 будет основной шрифт, а начиная с EC00 - альтернативный).
Если ПДП занимает все 8 Кб памяти, но в каждых 16 байтах "реагирует" только на первые 9, имеем из 8 Кб все 3,5 Кб "свободными".
Так как РК-шный знакогенератор - 1 Кб, получаем целых 3 страницы знакогенератора.

Например, вот код для "прошивки" 2 Кб:
Code:
if(address >= 0xE000 && address <= 0xFFFF) {
        if((address & 0x000F) >= 0x000C) {
                fonts[((address >> 2) & 0x07FC) | (address & 0x0003)] = data;
        }


19 Jan 2024 14:26
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Alikberov wrote:
Shaos wrote:
По цветам не понял - все квадратики справа чёрные

Image
Shaos wrote:
Если шрифт адресуется начиная с E00C, то значит ли это, что символы с кодом 0 и 1 раскрасить нельзя?
Или шрифт выше сидит? 2 кило можно разместить в диапазоне E800…EFFF (начиная с E800 будет основной шрифт, а начиная с EC00 - альтернативный).
Если ПДП занимает все 8 Кб памяти, но в каждых 16 байтах "реагирует" только на первые 9, имеем из 8 Кб все 3,5 Кб "свободными".
Так как РК-шный знакогенератор - 1 Кб, получаем целых 3 страницы знакогенератора.

Например, вот код для "прошивки" 2 Кб:
Code:
if(address >= 0xE000 && address <= 0xFFFF) {
        if((address & 0x000F) >= 0x000C) {
                fonts[((address >> 2) & 0x07FC) | (address & 0x0003)] = data;
        }

т.е. дырками по 7 байт пишем? Или судя по коду - по 4? Как-то совсем неудобно...
Проще ещё один декодер адреса поставить, чем программно извращаться :)
Типа разделив область записи в ПДП #E000...#E7FF и записи в шрифт #E800...#EFFF.

Вот как на айфоне эти квадратики выглядят (в firefox тоже самое):

Attachment:
IMG_5983.jpeg
IMG_5983.jpeg [ 173.96 KiB | Viewed 682 times ]


Возвращаясь к картинке:

Image

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

P.S. Посмотрел http://rk86.net - вроде работает ассемблер - в чём конкретно проблема?

_________________
:dj: https://mastodon.social/@Shaos


19 Jan 2024 14:53
Profile WWW
Online
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 320
Location: Tashkent
Reply with quote
Shaos wrote:
т.е. дырками по 7 байт пишем? Или судя по коду - по 4? Как-то совсем неудобно...
Проще ещё один декодер адреса поставить, чем программно извращаться :)
Типа разделив область записи в ПДП #E000...#E7FF и записи в шрифт #E800...#EFFF.
Да, не так удобно, как хотелось бы. Но, не нужно ничего резать и каскадировать дешифрацию.

Кстати, так как ВГ75 запись данных игнорирует без предварительной настройки, то все чётный байты в пространстве C000-DFFE можно спокойно записывать - это уже 4 Кб.

И (проверил на КР-03) так как ВВ55 при чтении 8003 возвращает FE/FF, получаем ещё 4 Кб по адресам 8003-BFFF на чтение.
Т.е. не добавляя лишних дешифраторов, прямо в параллель ВВ55/ВТ57/ВГ75 можно посадить дополнительную периферию.
Конечно, будут всякие нюансы.
Но, в концепции "дорожки - не режем, дешифратор - не добавляем" получаем, в своём роде, любопытный концепт.

Кстати, я виртуально (в эмуляторе rk86.ru) на клавиатуру посадил индикатор ИПВ (документация) на порт клавиатуры 8000 (ссылка на симуляцию: параметр fade/параметр speed/параметр stream) и проверил, можно ли в паузах между опросами клавиатуры выводить символы, так как порты 8000 и 8001 простаивают в остальное время.
(Т.е. если в 8000 код FF, то никакие нажатия клавиш не изменят в 8001 код. Что можно использовать также. Т.е. добавить на плату клавиатуры К155ЛА2 и при коде FF на PBA активировать некий дополнительный буфер: АЦП, джойстики NES или клавиатуру PS/2)

Т.е. идей мягкой доработки РК просто уйма. :mrgreen:
Shaos wrote:
Возвращаясь к картинке:

Image

Почему где-то цвета ярче, а где-то темнее? А так по цветам как у меня на прошлой странице выбрано для палитры по умолчанию: 11 - белый, 10 - красный, 01 - зеленый и 00 - синий. По идее биты в знакоместах у РК инверсные - т.е. единички это чёрный фон, а нолики - белые (или цветные) точки. Получается единички в последних строчках должны быть чёрные? Или это особый случай для возможности рисования цветного фона? По идее мысль интересная!
Да, если пиксели не горят, но цвет задан - цвет отображается фоном в полутонах.
Хотя, был ещё вариант, когда старшие два бита в 01 и 10 устанавливают два цвета, а при 00 - биты 0-5 вместо ч/б пикселей работают как три пикселя: (00)(C1)(C2)(C3). Т.е. в строке символа имеется не 6 ч/б пикселей, а 3 цветных (чёрный/красный/зелёный/синий).
Shaos wrote:
P.S. Посмотрел http://rk86.net - вроде работает ассемблер - в чём конкретно проблема?
Attachment:
Снимок экрана_2024-01-20_00-47-42.png
Снимок экрана_2024-01-20_00-47-42.png [ 16.33 KiB | Viewed 647 times ]


19 Jan 2024 23:30
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
А что за браузер? У меня в firefox всё работает:


Attachments:
Screenshot from 2024-01-19 22-34-06.png
Screenshot from 2024-01-19 22-34-06.png [ 59.25 KiB | Viewed 644 times ]

_________________
:dj: https://mastodon.social/@Shaos
19 Jan 2024 23:40
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Alikberov wrote:
Т.е. идей мягкой доработки РК просто уйма. :mrgreen:
Shaos wrote:
Возвращаясь к картинке:

Почему где-то цвета ярче, а где-то темнее? А так по цветам как у меня на прошлой странице выбрано для палитры по умолчанию: 11 - белый, 10 - красный, 01 - зеленый и 00 - синий. По идее биты в знакоместах у РК инверсные - т.е. единички это чёрный фон, а нолики - белые (или цветные) точки. Получается единички в последних строчках должны быть чёрные? Или это особый случай для возможности рисования цветного фона? По идее мысль интересная!
Да, если пиксели не горят, но цвет задан - цвет отображается фоном в полутонах.
Хотя, был ещё вариант, когда старшие два бита в 01 и 10 устанавливают два цвета, а при 00 - биты 0-5 вместо ч/б пикселей работают как три пикселя: (00)(C1)(C2)(C3). Т.е. в строке символа имеется не 6 ч/б пикселей, а 3 цветных (чёрный/красный/зелёный/синий).
С тремя цветными пикселами аппаратно малой кровью не сделать
А вот раскрашивание всей 8-пиксельной плашки в 2 цвета - это относительно легко

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

_________________
:dj: https://mastodon.social/@Shaos


19 Jan 2024 23:45
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Shaos wrote:
Shaos wrote:
Вот чегой-то родилась у меня идея - взять исправленную версию 2016 года от alexcp и заменить ПЗУ знакогенератора на ОЗУ с возможностью программной замены шрифтов :o
По ходу можно попробовать добавить цвет с помощью 2х свободных битиков знакогенератора (в стандартном знакогенераторе РК там записаны единички) - получится один из 4 цветов на каждую горизонтальную плашку:
00 - красным по чёрному;
01 - зелёным по чёрному;
10 - синим по чёрному;
11 - белым по чёрному (значение по умолчанию).
Таким образом мы как бы получим цветные тайлы, которых будет 2 набора, переключаемых программно, т.е. всего 256 (т.к. знакогенератор 2кб). При этом придётся расширить монитор, чтобы при рестарте он заполнял бы это ОЗУ стандартным шрифтом, который теперь будет храниться в ПЗУ монитора (которое напомню у нас 8кб где пока используется только 2кб).

Если всё также уталкиваться в размеры 15x10 см (ну или в предел моей стандартной лицензии игла 16x10), то возможно следует всю новую мелкую логику (включая регистр управления страницами памяти) затолкать в одну палку/галку. Туда же можно добавить поддержку нескольких предопределённых палитр (как минимум двух - RGB как описано выше и аля CGA с Magenta и Cyan).

P.S. Подключение ОЗУ шрифтов к шине данных можно сделать по адресам C000...C800, когда в регистре управления установлена несуществующая страница 7 (например) - в этом случае ВГ75 уходит в тень (собственно также как и сейчас если установлена ненулевая страница - 1,2 или 3), а _CS_C000 выходящий на внешний разъём не активируется. Ну и ещё один бит в регистре управления может быть отведён под переключение палитр (0-RGBW, 1-YCMW).

Кстати придумал обоснование почему именно по _CS_C000 надо шрифт менять - не только потому, что это адресный диапазон ВГ75, который в режиме записи в память шрифтов будет отсюда отключен, но и потому, что эти стробы торчат наружу через шину расширения (вместе с шиной данных и нужными адресными сигналами) и прототип цветового расширения можно прицепить "навесиком" над дособиранной Alpha-версией :)

Также наверное надо утолкаться в мелкую логику, поэтому цвета надо расположить позакономернее - например чтобы второй набор был просто инвертированием первого (за исключением белого цвета, который есть и там, и там):
Code:
   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)

В этом случае появится возможность менять палитры и шрифты одновременно на лету в нужной точке кадра отсчитав нужное количество тактов от сигнала кадрового синхроимпульса, получая на экране многоцветные двухшрифтовые эффекты :o

И это всё можно будет обозвать (если заработает) Radio-86RK-SRAM128K Beta :idea:

Может действительно логичнее писать в шрифт по адресам #E800...#EFFF?
И не будет привязки к 128-килобайтному варианту (правда навесиком в 128КБ это уже будет не приделать).
При появлении строба /WR по этим адресам можно отрезать ОЗУ шрифтов от ВГ75 (при этом экран почернеет) и подцепить к шине данных на время цикла записи байта...

Если добавить полутона, то мои цвета в двух палитрах будут выглядеть вот так:

  • (11)010101 - @@@@@@ - @@@@@@
  • (10)101010 - @@@@@@ - @@@@@@
  • (01)010101 - @@@@@@ - @@@@@@
  • (00)101010 - @@@@@@ - @@@@@@
  • (11)111111 - @@@@@@ - @@@@@@
  • (10)111111 - @@@@@@ - @@@@@@
  • (01)111111 - @@@@@@ - @@@@@@
  • (00)111111 - @@@@@@ - @@@@@@

_________________
:dj: https://mastodon.social/@Shaos


19 Jan 2024 23:56
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Shaos wrote:
Увидел тут внизу форума, что сегодня alexcp отмечает N-летие - принимай поздравлямбы :)

О - опять вижу alexcp в именинниках снизу форума - хэппибёздэй! :lol:

_________________
:dj: https://mastodon.social/@Shaos


20 Jan 2024 00:08
Profile WWW
Online
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 320
Location: Tashkent
Reply with quote
Shaos wrote:
С тремя цветными пикселами аппаратно малой кровью не сделать
А вот раскрашивание всей 8-пиксельной плашки в 2 цвета - это относительно легко


Shaos wrote:
По поводу "мягкой" доработки - в наше время рабочих классических РК (куда можно по живому втыкаться проводочками) уже не найти - так что проще свою схему нагородить, вставить/убрать всё что нужно и заказать производство новых плат...
Ну, смотря как на это смотреть. В принципе.
Т.е. так как:
  • ВВ55 игнорирует чтение режима и возвращает FF/FE по 8003 - можно это использовать
  • ВТ57 игнорирует запись по E009-E00F - это можно использовать
  • ВГ75 игнорирует запись в C000 без предварительного кода в C001 - это можно использовать
Т.е. я сторонник использования ИМС на все 100%.
(Это как: Отрицательный результат - тоже результат.)
Раз конкретная ИМС ведёт себя конкретным образом, то это - фишка (все 100%, а не 99%).
(Раз ВВ55 при чтении 8003 возвращает рандомно FE или FF, можно использовать как источник рандома.)


20 Jan 2024 00:23
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 265 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11, 12, 13 ... 18  Next

Who is online

Users browsing this forum: Alikberov, vital72 and 70 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.