Браузерный эмулятор РК-совместимых компьютеров на JavaScript

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

Moderator: Shaos

User avatar
vital72
Senior
Posts: 181
Joined: 17 Jun 2014 04:29
Location: 93.80.157.217

Браузерный эмулятор РК-совместимых компьютеров на JavaScript

Post by vital72 »

ЭМУЛЯТОР 8-БИТНЫХ РЕТРОКОМПЬЮТЕРОВ

https://86rk.ru/emulator/

Эмулируются только РК-совместимые компьютеры.

Список компьютеров:
  • Радио-86РК -- классический "Радио-86РК" из журнала с объёмом ОЗУ 32 килобайта;
  • Апогей БК-01Ц;
  • Микроша/48 -- компьютер "Микроша" с установленным модулем ОЗУ, увеличивающим объем ОЗУ до 48 килобайт;
  • Микроша/ROM -- компьютер "Микроша" с установленным модулем ПЗУ, запуск программ командой G8000;
  • Криста;
  • Радио-86РК/32-Nova -- улучшенный "Радио-86РК" с максимальной совместимостью;
  • Радио-86РК/60-Nova -- улучшенный "Радио-86РК" с объёмом ОЗУ 60 килобайт;
  • Мега-86РК -- мегаулучшенный "Радио-86РК", реализована частичная эмуляция.
Возможности и особенности эмулятора:
  • Поддерживается механизм drag-and-drop для быстрой загрузки и запуска программ;
  • Поддерживается полноэкранный режим;
  • Полноценная поддержка магнитофонных операций, реализован механизм как записи данных в файл, так и чтение из файла
    через магнитофонные функции;
  • Имеется возможность подключать к компьютеру ROM-диск;
  • Поддерживаются две раскладки клавиатуры: QWERTY и JCUKEN;
  • Поддерживаются три типа микропроцессора: i8080, i8085, Z80;
  • Поддерживается изменение тактовой частоты микропроцессора на лету;
  • Поддерживается воспроизведение однобитного звука;
  • Поддерживается воспроизведение звука от генератора меандра;
  • Имеется возможность делать снимки экрана (скриншоты) эмулируемого компьютера;
  • Каталоги программ, для каждого компьютера отдельный каталог;
  • Отладчик.
Все подробности в файле помощи.
------------------------------------------------------------------------------------------------------

 Предыстория
Писать свой эмулятор у меня не было в планах, но всё поменялось 23 марта после этого сообщения -- https://t.me/c/1263100284/24372
Мысль застряла в голове и вот уже пишу скрипт эмуляции процессора 8080, клавиатуры. Всё быстро заработало и через месяц был готов рабочий прототип эмулятора компьютера "Радио-86РК".
Всё остальное время доводил скрипты до ума, думаю, у меня получился неплохой эмулятор с неплохим отладчиком. Благодаря этому отладчику я смог дописать Монитор для своего модернизированного компьютера "Мега-86РК".
На всё у меня ушло примерно 4 месяца.

------------------------------------------------------------------------------------------------------
Обновление от 19.11.2024, версия 1.1.
Добавлено:
1. Появилась возможность создавать собственные конфигурации на базе компьютера Радио-86РК с произвольным распределением памяти и произвольными прошивками МОНИТОРа и ЗНАКОГЕНЕРАТОРа.
Вызов интерфейса создания пользовательских конфигураций осуществляется через горячую клавишу Alt+C или из меню списка конфигураций в статусной строке, функция [создать].

 интерфейс
86rk.ru_emulator.png

2. В отладчике для точек останова появилась возможность задавать диапазон адресов и маску адреса. Подробности находятся в файле помощи эмулятора.
You do not have the required permissions to view the files attached to this post.
Last edited by vital72 on 05 Jan 2025 22:04, edited 5 times in total.
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by fifan »

А почему Вы не называете все эти клоны Радио-86 РК одним компьютером? Эмуляции Ориона и Специалиста не предполагается?
User avatar
vital72
Senior
Posts: 181
Joined: 17 Jun 2014 04:29
Location: 93.80.157.217

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by vital72 »

В смысле одним? Компьютеры разные.
В планах эмулировать Спеца и Ориона нет.
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой
User avatar
Shaos
Admin
Posts: 24078
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by Shaos »

Монстр :kruto:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
vital72
Senior
Posts: 181
Joined: 17 Jun 2014 04:29
Location: 93.80.157.217

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by vital72 »

Хотелось бы набрать статистику производительности эмулятора на разных компьютерах.
Например, у меня моноблок 13 года, проц Core i5 на 2,7ГГц, Windows 7, в браузере Гугл-Хром работает идеально, проц грузит на 10-15%%, в Фаерфоксе наблюдаются иногда проблемы со звуком, особенно с тем, который формируется ШИМ-ом и нагрузка на проц выше.
У Аликберова вообще непонятный недокомпьютер и у него всё плохо.
Также зависит от выбранного эмулируемого компьютера. В Радио-86РК звук формируется по одному принципу, в Апогее -- по другому. В Радио-86РК активно используется кеш для вывода изображения, когда картинка не меняется -- не происходит пересчёта точек, а в проапгрейженных РК-шках используется расширенный знакогенератор и кеш сбрасывается каждый кадр, т.е. не используется. Хотя, как оказалось, кеш не особо-то и помогает, потому как основную нагрузку создаёт не расчёт точек, а непосредственный вывод на холст, расчёт точек почти не грузит проц. Это особенно заметно, если в конфигурации включить галочку "Пропускать один кадр" -- в этом режиме точки рассчитываются каждый кадр, а вывод производится через кадр.
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой
User avatar
Shaos
Admin
Posts: 24078
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by Shaos »

А где-то есть карта памяти для вот этих вот товарищей?
Радио-86РК/32-Upgraded -- улучшенный "Радио-86РК" с максимальной совместимостью;
Радио-86РК/60-Upgraded -- улучшенный "Радио-86РК" с объёмом ОЗУ 60 килобайт;
P.S. Про 60 нашёл: viewtopic.php?p=173406#p173406

Code: Select all

* RADIO-86RK 60K:
* 0000-EFFF: RAM
* F000-F0FF: FDC
* F100-F1FF: TIMER
* F200-F2FF: RTC
* F300-F3FF: ???
* F400-F4FF: KEYBOARD
* F500-F5FF: INTERFACE
* F600-F6FF: CRT
* F700-F7FF: DMA
* F800-FFFF: ROM / FONT RAM
в F300-F3FF там получается дырка?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
vital72
Senior
Posts: 181
Joined: 17 Jun 2014 04:29
Location: 93.80.157.217

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by vital72 »

всё верно, по адресам F300-F3FF ничего не подключено.
но и FDC в эмуляторе не реализован.
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой
User avatar
Shaos
Admin
Posts: 24078
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by Shaos »

Понятно, спасибо. И дешифрация у тебя в PLD т.е. теоретически может меняться?
А в Радио-86РК/32-Upgraded есть какие-то отличия от "стандарта"?
Как минимум я вижу, что там есть цвет и нестандартный шрифт :)
Screenshot from 2024-09-07 20-35-04.png
Или вот это как раз оно и есть?
* RADIO-86RK 32K:
* 0000-7FFF: RAM
* 8000-8FFF: KEYBOARD
* 9000-9FFF: TIMER
* A000-AFFF: INTERFACE
* B000-BFFF: RTC
* C000-CFFF: CRT
* E000-EFFF: EXT / DMA
* F000-F7FF: FDC
* F800-FFFF: ROM / FONT RAM
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
vital72
Senior
Posts: 181
Joined: 17 Jun 2014 04:29
Location: 93.80.157.217

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by vital72 »

про Радио-86РК/Upgraded я когда-нибудь сделаю пост.
в Радио-86РК/32-Upgraded все микросхемы периферии по своим адресам, изменён дешифратор, чтоб получить новые /CS, на новые адреса посажен таймер и RTC, добавлен цвет и 4 переключаемых знакогенератора, для переключения используются разряды PC0 и PC1 порта клавиатуры и коды E5/E4 в экранной памяти для динамического переключения.

есть три версии реализации этого компьютера:
1. всё на мелкой логике, Радио-86РК/32-Upgraded вообще делается на стандартной журнальной плате. версия Радио-86РК/60-Upgraded отличается только наличием ещё одной микросхемы логики К555ЛИ6 (74LS21).
2. Радио-86РК/XXI -- оба варианта Радио-86РК/32 и Радио-86РК/60 на одной плате. здесь для дешифратора уже применяется PLD. кстати на этой же плате собран FDC также на PLD. плата размером 260 на 160 мм, т.е размер журнальной платы с типичным для РК расположением микросхем -- так сделано специально, чтоб соответствовать прародителю.
3. Радио-86РК/x4 -- кроме двух вариантов проапгрейженной РК реализован Апогей и Микроша, вместе с клавиатурой. 3Д-модель этого проекта я уже выкладывал. дешифратор также на PLD.

могу выложить схемы всех проектов, если интересно. схемы я рисую в Оркаде, могу поделиться файлами проекта, хоть Оркад уже фсё, я привык рисовать в нём.
Last edited by vital72 on 07 Sep 2024 22:44, edited 1 time in total.
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой
User avatar
Shaos
Admin
Posts: 24078
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by Shaos »

Ну если не жалко, то выкладывай конечно :)

И герберы тоже выкладывай ;)

По гибриду можно в старую тему: viewtopic.php?f=93&t=10581

А по остальным надо подумать - твой Радио-86РК/XXI имеет какое-либо отношение к топику Paguo-86PK - XXI BEK или "все совпадения случайны"? ;)

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

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by Shaos »

О!

Я научился звук включать на видеороликах через настройки :lol:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
vital72
Senior
Posts: 181
Joined: 17 Jun 2014 04:29
Location: 93.80.157.217

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by vital72 »

тут надо отметить, что скорость моей эмуляции отличается от скорости эмулятора Виктора, поэтому звучать будет странно, а трололо можно нормально слушать только если увеличить частоту проца до 2МГц.
было бы интересно это запустить на реальном железе.
----
все совпадения случайны.
приаттачил схемки своих модификаций РК-шки, а также файлы проекта в Оркаде, для тех у кого есть -- там схемок немного по-больше.
файлы герберов плат, а также прошивок PLD не дам :P, но могу дать герберы маленьких платок для апгрейда журнального РК: одна для таймера и RTC, ставится вместо доп. порта, вторая -- загружаемый знакогенератор (FONT RAM), ставится вместо ПЗУ знакогенератора (есть два варианта).
You do not have the required permissions to view the files attached to this post.
Last edited by vital72 on 07 Sep 2024 23:46, edited 1 time in total.
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой
User avatar
Shaos
Admin
Posts: 24078
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by Shaos »

Ну хоть что-то дал - и на том спасибо :idea:

P.S. Кстати а где герберы маленьких платок то? :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24078
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by Shaos »

vital72 wrote:тут надо отметить, что скорость моей эмуляции отличается от скорости эмулятора Виктора, поэтому звучать будет странно, а трололо можно нормально слушать только если увеличить частоту проца до 2МГц.
Я тут экспериментировал с 2-битным и 3-битным звуком на РК (в старом эмуляторе Виктора много лет назад) - если бы у тебя наряду с опцией вывода звука на мафон (C0) появились бы ещё и экспериментальные вариации как-то 2-битный ковокс (C0/2+C1), 3-битный ковокс (C0/4+C1/2+C2) и до кучи 4-битный ковокс (C0/8+C1/4+C2/2+C3), то я обещаю выложить ромдиски с весёлой и качественной музычкой :lol:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
vital72
Senior
Posts: 181
Joined: 17 Jun 2014 04:29
Location: 93.80.157.217

Re: Браузерный эмулятор РК-совместимых компьютеров на JavaSc

Post by vital72 »

ок.
добавил ковоксов немножко.
герберы выложу в другой теме, когда соберусь с мыслями, да платку одну спаяю, чтоб было, что показывать.
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой