Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript

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

Moderator: Shaos

Post Reply
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript

Post by begoon »

Обрадованный успехом использования 8080/8085 Exerciser'а для тестирования https://github.com/begoon/i8080-core, я вернулся к эмулятору РК на JavaScript. В итоге я полностью переписал ядро I8080, выделив его в отдельный проект -- https://github.com/begoon/i8080-js. Данная реализация проходит все тесты, что и i8080-core, включая 8080/8085 Exerciser.

После этого я также переписал и эмулятор РК с использованием нового ядра. Новая версия теперь работает на https://demin.ws/rk и хостится на https://github.com/begoon/rk86-js.

Пост по теме: https://demin.ws/blog/russian/2012/10/04/rk86-js/.

ОБНОВЛЕНИЕ от 14.10.2012

Добавил онлайновый каталог игр и остальных программ со скринами и микро-описаниями. Можно одним кликом сразу запускать в эмуляторе.

https://rk86.ru/catalog/index.html

ОБНОВЛЕНИЕ от 22.10.2012

Добавил несложную консоль с возможностью пошагового выполнения.

rk86-js-console.png
rk86-js-console.png (43.1 KiB) Viewed 16660 times

ОБНОВЛЕНИЕ от 23.10.2012

Эмулятор переехал на отдельный домен - rk86.ru

ОБНОВЛЕНИЕ от 30.10.2012

Выложил версию 1.5. В ней две мега-фичи: visualizer, который показывает исполняемые в данный момент команды процессора (для полного выключения вижуалайзера надо полность перезагрузить страницу эмулятора), и режим fullscreen (выход из него - двойной клик). Особенно аутентично смотрится в Chrome Presentation View.

ОБНОВЛЕНИЕ от 27.01.2021

В эмулятор добавлен звук. См. подробности.

ОБНОВЛЕНИЕ от 09.03.2021
ОБНОВЛЕНИЕ от 10.03.2021

Добавлена поддержка светового пера.

Добавленая поддержка загрузки локальных файлов в эмулятор.

ОБНОВЛЕНИЕ от 10.03.2021

Новая версия полноэкранного режима, через Fullscreen API браузера.

ОБНОВЛЕНИЕ от 20.03.2021

Поддержка снапшотов.

Примеры снапшотов:

Под спойлером обновления версии от Шаоса на сайте http://rk86.net

 rk86-js-shaos
ОБНОВЛЕНИЕ / 26.07.2016

Версия от Шаоса с виртуальной клавиатурой теперь всегда будет доступна вот тут: http://rk86.net

ОБНОВЛЕНИЕ / 06.06.2018

Обновлённые исходники от Шаоса: https://gitlab.com/shaos/rk86-js

ОБНОВЛЕНИЕ / 27.02.2024

Вернул обратно книжку в info и поправил виртуальную клавиатуру: https://gitlab.com/shaos/rk86-js

ОБНОВЛЕНИЕ / 29.02.2024

Теперь у нас 2 типа виртуальной клавиатуры - JCUKEN и QWERTY: https://gitlab.com/shaos/rk86-js





Реализована кнопка F5 и удерживание кнопки РУС/ЛАТ (для временной остановки листинга например) - в том числе на iPad

Добавлены чекбоксы для СС и УС (Shift и Ctrl) для имитация долгого нажатия в комбинации с другими кнопками

Переставлены некоторые кнопки меню, чтобы освободить место внизу для будущих расширений

Исправлена панель Ассемблера для Хрома (взято соответствующее изменение из оригинала 2017 года)
.

Last edited by begoon on 20 Mar 2021 00:26, edited 21 times in total.
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Post by Shaos »

begoon wrote:Обрадованный успехом использования 8080/8085 Exerciser'а для тестирования https://github.com/begoon/i8080-core, я вернулся к эмулятору РК на JavaScript. В итоге я полностью переписал ядро I8080, выделив его в отдельный проект -- https://github.com/begoon/i8080-js. Данная реализация проходит все тесты, что и i8080-core, включая 8080/8085 Exerciser.

После этого я также переписал и эмулятор РК с использованием нового ядра. Новая версия теперь работает на https://demin.ws/rk и хостится на https://github.com/begoon/rk86-js.
Быстрее работает?
Я тут за главного - если что шлите мыло на me собака shaos точка net
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

Post by begoon »

Shaos wrote:Быстрее работает?
Быстрее чего? Если старой версии, то не сравнивал, так как особо смысла нет. Даже если старая и была быстрее, то написана она ужасно и не проходит тесты. Можно просто над этой версией теперь колдовать, если надо (хотя у меня на MacAir работает с большим запасом по скорости). Например, использовать Typed Arrays, но мне это видится пока не особо нужным.
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Post by Shaos »

Угу - я про старую версию и говорю
Я тут за главного - если что шлите мыло на me собака shaos точка net
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

Post by begoon »

Обновил головной пост ссылкой на онлайновый каталог программ для РК.
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

Post by begoon »

Обновил головной пост про версию 1.5 в fullscreen и CPU visualizer.
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Post by Shaos »

А что за какие-то странные серые подчёркивания у каждого знакоместа видны? Это так задумано или глюк 16-го файерфокса?

Потом я смотрю ты команды через switch пускаешь, а вызывать функции из массива не быстрее будет?
Я тут за главного - если что шлите мыло на me собака shaos точка net
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

Post by begoon »

Shaos wrote:А что за какие-то странные серые подчёркивания у каждого знакоместа видны? Это так задумано или глюк 16-го файерфокса?
Этот глюк FF. Так как я сам FF не пользую вообще, то нет пороха разбираться. ;-) Там что-то связано с аппаратным 2D-ускорением. Если у Хрома покрутить его экспериментальные флаги (chrome://flags), связанные с 2D, то иногда появляется тот же эффект. Буду признателен совету, как это вылечить. Если честно, под FF вообще многое ключит, особенно ресайзинги окон, фреймов и т.д.
Shaos wrote:Потом я смотрю ты команды через switch пускаешь, а вызывать функции из массива не быстрее будет?
Для JavaScript'а -- не знаю, может и будет быстрее. В реализации на JS я просто старался сделать красиво и понятно, практически без упора на производительность, ибо, опять-таки, нет возможность предсказать эффективность разных подходов.
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Post by Shaos »

OK, понятно

Я просто похожую задачу собираюсь решать (виртуальная машина на JS, крутящая некие байткоды) - через switch опять делать некрасиво, хочу через массив функций - вот и интересуюсь ;)

P.S. Поиграл в XONIX в твоём онлайн эмуле - занятно получилось :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript

Post by Shaos »

Форкнул себе репозиторий с исходниками этого суперэмулятора РК - буду делать поддержку 128К и сети :)

https://gitlab.com/shaos/rk86-js

Планирую превратить это в среду разработки ShaOS с возможностью сохранения подпрограмм на сервере ;)

P.S. Сайт с моей версией: http://rk86.net
Репа живёт на гитлабе с июня 2018 года
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16659
Joined: 21 Oct 2009 15:08
Location: Россия

Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript

Post by Lavr »

Shaos wrote:Форкнул себе репозиторий с исходниками этого суперэмулятора РК...
А что такое "Форкнул "? Уже не первый раз читаю у тебя это слово...
По смыслу мне напоминает завуалированное "с_3.1415926_здил"... я не ошибся?
iLavr
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript

Post by Shaos »

Lavr wrote:
Shaos wrote:Форкнул себе репозиторий с исходниками этого суперэмулятора РК...
А что такое "Форкнул "? Уже не первый раз читаю у тебя это слово...
в гитхабе есть официальная кнопочка "fork" на каждом репозитории :)

дословно (в данном контексте) можно перевести как "ответвить" (т.е. сделать себе копию чужого репозитория в какой то момент времени и продолжить его разработку независимо от основного репозитория, который может продолжать развиваться своим путём - т.е. чуть более радикальный шаг чем просто "отбранчевать"), а вообще:
fork - вилка (деталь); развилка; разветвление; ответвление; соединение вилкой; подкладная вилка (при бурении); вилы (для устройств); II разветвляться; работать вилами
http://translate.academic.ru/fork/en/ru/
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript

Post by Shaos »

В идеале хотелось бы отказаться от Canvas, чтобы расширить список поддерживаемых браузеров - все равно РК-шка сугубо текстовый комп - зачем там попиксельная графика?

Потом надо бы виртуальную клавиатуру добавить т.к. например на iOS девайсах (айфоны-айпады) в эмулятор ничего ввести не удается потому что клава запрещена - браузер не видит никаких текстовых полей ввода и т.д.

Ну и потом вместо локального сохранения (которое надо специальным образом разрешать) я хочу прикрутить "cloud" - все загрузки-сохранения будут происходлить на "облаке" с возможностью делиться наработками с другими...

P.S. И еще до кучи можно поддержать Микрошу и цветной Апогей :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16659
Joined: 21 Oct 2009 15:08
Location: Россия

Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript

Post by Lavr »

И приделай ещё "Покемон Go"... :mrgreen: Раз уж об iOS девайсах речь зашла... :lol:
iLavr
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript

Post by Shaos »

Lavr wrote:И приделай ещё "Покемон Go"... :mrgreen: Раз уж об iOS девайсах речь зашла... :lol:
Ну я думаю без покемонов тут вполне можно обойтись :)

Виртуальную клаву кстати уже прикрутил - см. тут: http://rk86.net
Я тут за главного - если что шлите мыло на me собака shaos точка net
Post Reply