Радио-86РК на SRAM 128K Alpha (2014) & Beta (2024)

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

Moderator: Shaos

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

Re: Радио-86РК на SRAM 128K Alpha

Post by Shaos »

Увидел тут внизу форума, что сегодня alexcp отмечает N-летие - принимай поздравлямбы :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
alexcp
Senior
Posts: 139
Joined: 11 Jun 2012 07:30

Re: Радио-86РК на SRAM 128K Alpha

Post by alexcp »

Спасибо!
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Радио-86РК на SRAM 128K Alpha

Post by Shaos »

Я тут прежде чем залезать в цвет решил попробовать градации серого через дизеринг повыводить - как считаете какой вариант лучше?
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
alexcp
Senior
Posts: 139
Joined: 11 Jun 2012 07:30

Re: Радио-86РК на SRAM 128K Alpha

Post by alexcp »

На мой вкус, правый лучше, с такими крупными точками он как-то аккуратнее выглядит.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Радио-86РК на SRAM 128K Alpha

Post by Shaos »

Это получается 5 градаций серого (+3 знака к тем, что уже имеются), но в 64x25.
Напомню, что стандартной РК псевдографикой можно сделать 2 градации в 128x50.
Можно попробовать сделать 3 градации и половинчатые знакоместа - чтобы было 64x50.
Для этого надо добавить 5 новых знаков:
- шахматка сверху и снизу;
- шахматка сверху, чернота снизу;
- шахматка сверху, белота снизу;
- чернота сверху, шахматка снизу;
- белота сверху, шахматка снизу.
Вот для сравнения 3 картинки в этих форматах (как бы они виделись на экране РК издалека):
gray-rk86-compare.gif
Классическую псевдографику 128x50 я тут с дизерингом сделал - вот для честного сравнения дизеринг для 3-уровневого варианта 64x50:
gray3-64x50-dither.png
P.S. Можно ещё компенсировать чёрную полосу между строчками и "дорисовать" в новых символах чёрную полоску между половинками новых знаков в 2 пиксела и по бокам слева и справа в 1 пиксел, но тогда символов надо добавить больше ( порядка 8 ), чтобы не трогать стандартную псевдографику:
Screenshot from 2024-01-14 18-45-07.png
P.P.S. Или лучше так - не шахматка, а две полоски?
Screenshot from 2024-01-14 18-57-10.png
P.P.P.S. Приаттачиваю зазипованный bin-файл и скриншот из онлайн редактора знакогенераторов (в скриншоте я пометил новые символы где до этого были пустые места плюс до кучи добавлена решётка для #7F как на Апогее):
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Радио-86РК на SRAM 128K Alpha

Post by Shaos »

Перезалил файл знакогенератора выше - там ещё решётка вставлена для #7F, чтобы как на Апогее было:
Screenshot from 2024-01-14 20-40-18.png
А вторым шрифтом я пожалуй вставлю первые 128 символов из шрифта dinobyte - это симпатишное ASCII с открытой лицензией :)
dinobyte3x.gif
https://mby.itch.io/dinobyte

P.S. Вот так Радио-86РК будет выглядеть с таким шрифтом :mrgreen:
dinobyte0.png
dinobyte1.png
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Alikberov
Doomed
Posts: 347
Joined: 14 Oct 2019 18:10
Location: Tashkent

Радио-86РК на RAM 512K

Post by Alikberov »

Shumadan wrote:память конечно много не бывает, но 128кб нафига Р86? Или просто - мы могём?
Осмелюсь вставить и свою буковку.
Довольно давно задумывался над применением бесполезных команд:
  • Код 40 команда MOV B,B
  • Код 49 команда MOV C,C
  • Код 52 команда MOV D,D
  • Код 5B команда MOV E,E
  • Код 64 команда MOV H,H
  • Код 6D команда MOV L,L
  • Код 7F команда MOV A,A
Которые процессор обрабатывает как NOP'ы на 5 тактов.
С помощью ИМС К155СП1 эти команды аппаратно легко отлавливают в цикле M1 и три бита можно сохранять в регистре как A16-A18, позволяя адресовать до 512 Кб.

В отличии от традиционныхх страничных организаций памяти с параграфами окон в 4 Кб или 16 Кб, здесь получаем полные 7 сегментов по 64 Кб. Да, не страниц, а именно сегментов, аналогично как в i8086/К1810ВМ86 с сегментами CS/DS/ES/SS, которые переключаются на нужный сегмент только на один цикл следующей команды:
  • код 7F 7E как команды MOV A,A и MOV A,M срабатывает как MOV A,M1, где M1 - память теневой страницы #1 с указателем HL (аналогично как x86 MOV AL,FS:[EBX])
  • код 7F 12 как команды MOV A,A и STAX D срабатывают как STAX D1, где D1 - память теневой страницы #1 с указателем DE (аналогично как x86 MOV FS:[EDX],AL)
  • код 64 0A как команды MOV H,H и LDAX B срабатывают как LDAX B2, где B2 - память теневой страницы #2 с указателем BC (аналогично как x86 MOV GS:[ECX],AL)
При этом, как и в процессоре ВМ1 с доступом в теневые 64 Кб через H1L1, здесь теневых страниц получается 6 (B1C1/D1E1/H1L1, B2C2/D2E2/H2L2, B3C3/D3E3/H3L3 и т.д.), а также и побочно стек (SP1, SP2, SP3 и т.д. в комбинациях с PUSH/POP/XTHL/RET).

В рамках эмуляции был доработан ассемблер и разработан "MOV-DOS" (аналогично "RAM-DOS", но с "MOV"-префиксами), где семь "дисков":
  • диск A: для работы с теневым сегментом префиксом MOV A,A
  • диск B: для работы с теневым сегментом префиксом MOV B,B
  • диск C: для работы с теневым сегментом префиксом MOV C,C
  • диск D: для работы с теневым сегментом префиксом MOV D,D
  • диск E: для работы с теневым сегментом префиксом MOV E,E
  • диск H: для работы с теневым сегментом префиксом MOV H,H
  • диск L: для работы с теневым сегментом префиксом MOV L,L
(Формат диска - ОРИОН-128/RAM-DOS)
Вот видео с этими опытами:

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

Re: Радио-86РК на SRAM 128K Alpha

Post by Shaos »

Alikberov wrote:
Shumadan wrote:память конечно много не бывает, но 128кб нафига Р86? Или просто - мы могём?
Осмелюсь вставить и свою буковку.
Про эту "буковку" у нас тут отдельная тема есть ;)

viewtopic.php?f=93&t=22162

Как-то тяжеловато по-моему выглядит :roll:

P.S. Кстати каким образом вот тут Монитор раскрашивался?
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Радио-86РК на SRAM 128K Alpha

Post by Shaos »

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: 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)

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

И это всё можно будет обозвать (если заработает) Radio-86RK-SRAM128K Beta :idea:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Радио-86РК на SRAM 128K Alpha

Post by Shaos »

Ещё мысль сделать вариант Beta с клавкой на той же плате (т.е. атмегу можно будет выкинуть) и клавка должна быть разведена не под JCUKEN, а под QWERTY :mrgreen:

Типа вот этой: viewtopic.php?p=153963#p153963
minikbd.jpg
(я смотрю тут ещё ;+ переставлена направо, а ТАБ - налево, РУС/ЛАТ тоже слева, ЗБ поднят вверх, Shift есть с двух сторон - это ведь CC? или слева это УС? не вижу АР2 - или это ESC что слева?)

И чтобы победить ограничения на размер в моей версии Eagle, клавку к плате можно прилепячить сбоку на уровне Герберов - я это уже умею делать :rotate:

P.S. Кстати на РК-клаве, что я сделал в 1994 году:
ShaosKbd94.jpg
была ещё разведена клавиша F5 и там было 4 разноцветных светодиода :)

Image

P.P.S. Обратите внимание на годы моего "активного" РК-шкостроения - 1994, 2014, 2024 :)
Это типа "каждые 10 лет под новый год заканчивающийся четвёркой мы с друзьями идём строить новую РК-шку" :lol:
Хотя 2004 пропущен - я в тот год вместо РК-86 построил nedoPC-85-Alpha ;)

[/b]
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Радио-86РК на SRAM 128K Alpha

Post by Shaos »

Начал городить свою QWERTY клавку для РК-86 на Circuits.CC
RK-kbd-qwerty-1.jpg
Как можно видеть я правый блок кнопок (с F5) сохранил как есть ибо это как бы визитная карточка РК-86 ;)

Для того чтобы было проще я делал вот по этой табличке от alexcp, подсветив ряды кнопок на основном поле разными цветами:
RK-kbd-table.jpg
1-й ряд - жёлтый
2-й ряд - красный
3-й ряд - зелёный
4-й ряд - синий

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

Re: Радио-86РК на SRAM 128K Alpha

Post by Shaos »

Продолжаю разводить:
RK-kbd-qwerty-2.jpg
Развёл все биты PA и половину битов PB (а в правом блоке кнопок развёл всё)

P.S. Я смотрю код кнопки АР2 по книжке 0x1B (27), т.е. это есть самый настоящий ESC :)
Тогда я повторю эту кнопку слева-вверху как ESC (и она также останется в правом блоке кнопок как АР2)
А рус/лат надо где-то справа разместить - там где она обычно и была...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Радио-86РК на SRAM 128K Alpha

Post by Shaos »

Поставил ESC слева-вверху (будет копией АР2) и увёл РУС/ЛАТ вниз-направо перед ВК:
RK-kbd-qwerty-3.jpg
Плюс ещё пробелы отцентрировал в связи с добавлением кнопки в нижний ряд.

Размер клавы получается 8.90 x 3.15 дюймов (22.6см х 8.0см) - это вот под такие кнопки (фотка самодельной ZX-клавы, которую я с 2007 года собираю и никак дособирать не могу):

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

Re: Радио-86РК на SRAM 128K Alpha

Post by Shaos »

Доразводил порт A и порт B:
RK-kbd-qwerty-4.jpg
Осталось развести несколько кнопок, что идут на порт C и резюков с диодами наставить...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Alikberov
Doomed
Posts: 347
Joined: 14 Oct 2019 18:10
Location: Tashkent

Re: Радио-86РК на SRAM 128K Alpha

Post by Alikberov »

А почему бы не заказать в конце-концов раскладку оригинальной РК-клавиатуры, но в плёнке?
Как и КР-03 с клавиатурой МС-7007, выглядило бы практически как фабричная модель... :roll: