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

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

Moderator: Shaos

User avatar
alexcp
Senior
Posts: 192
Joined: 11 Jun 2012 07:30

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

Post by alexcp »

Благодарю! Это было невероятно быстро :)

Уточняющий вопрос: базы периферии должны быть кратны 2000 (окно 8 КБ) - именно так работает журнальный вариант РК. Можно ли смягчить это требование для не-классических вариантов?

Большие окна по 8Кб были сделаны в "классике", чтобы весь дешифратор адресов уместился в одной К555ИД7. С тремя периферийными устройствами (2 шт. ВВ55 и одна ВГ75) суммарный объем ПЗУ и ОЗУ ограничен 64-(3*8)=40Кб. Сегодня в железе можно сделать другой дешифратор, сократить размер окна, выделенного под каждое периферийное устройство и добавить ПЗУ, ОЗУ и (или) периферии. Например, в РК86/SRAM восемь окон по 4Кб (два заняты ПЗУ, три не используются - и на совместимость с "классикой" это, похоже, не повлияло, за 14 лет я жалоб не слышал), в Микроше - восемь окон по 2Кб (в одном таймер ВИ53, которого не было в "классике", еще три выведены наружу). Я бы сделал 32кБ ОЗУ, 16Кб ПЗУ и, скажем, восемь окон по 2Кб. Монитор придется подправить, но это не проблема.
begoon
Maniac
Posts: 288
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Сделал так

В классическом РК86 дешифратор на одной К555ИД7 смотрит только на A13..A15, поэтому каждая микросхема периферии занимает окно 8 КБ, а под ОЗУ и ПЗУ остаётся 40 КБ. В современных вариантах дешифратор полнее: 4 КБ в РК86/SRAM, 2 КБ в Микроше. Поле Окно периферии (peripheral_window) в профиле задаёт этот размер (от 8 КБ до 256 байт). Из него вычисляется маска старших бит адреса, базы ВВ55/ВГ75/ВТ57 должны быть кратны размеру окна, а внутри окна регистры зеркалируются, как в железе. Классический профиль остаётся с окном 8 КБ, старые профили и снапшоты без поля читаются как классические.
You do not have the required permissions to view the files attached to this post.
User avatar
alexcp
Senior
Posts: 192
Joined: 11 Jun 2012 07:30

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

Post by alexcp »

Замечательно, спасибо! В варианте RK86/SRAM с 4Кб окном, как и ожидалось, работает без изменений. Другие варианты опробую в ближайшее время и отпишу.
User avatar
alexcp
Senior
Posts: 192
Joined: 11 Jun 2012 07:30

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

Post by alexcp »

Обнаружил две небольшие проблемы. Первая - кнопка Run на https://demin.ws/asm8/ запускает не-исправленный эмулятор, где запись в регистры контроллера ПДП меняет содежимое ПЗУ. На https://rk86.ru/asm/ все исправлено, как обсуждалось выше.

Вторая - в Firefox нажатие кнопки '/' (и некоторых других - зависит от раскладки клавиатуры) включает в браузере Quick Find - в нижней части окна появляется строка для ввода. Эмулятор при этом теряет фокус и попадет в бесконечный цикл ввода этого символа автоповтором (см. видео), выйти из которого удается только по reset. Workaround - отключение Quick Find (about:config -> accessibility.typeaheadfind.manual -> toggle, поиск по странице через Ctrl-F при этом продолжает работать) или переход на Chrome или Edge.
rk86.mp4
You do not have the required permissions to view the files attached to this post.
begoon
Maniac
Posts: 288
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Хотел было пошутить типа кто еще в 2026 использует это недоразумение под название firefox :ebiggrin:

В общем, обе проблемы вроде исправил. По ходу выяснилось, что рендеринг в сафари был сломан, но видимо столько много пользователей с сафари, что никто не жаловался :-)

Поводу demin.ws/asm8. Лучше использовать rk86.ru/asm, если именно для РК, ибо проект ассемблера и его playground на demin.ws/asm8 по сути не зависит от проекта РК, и его возможность запускать на РК скорее side effect, нежели фича.

Я стараюсь их синхронизировать, но иногда забываю, а деплоятся они в разные места.
User avatar
alexcp
Senior
Posts: 192
Joined: 11 Jun 2012 07:30

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

Post by alexcp »

Супер, спасибо!

Firefox я использую под Windows и Debian+XFCE больше по привычке - лет 7-8 назад он был ничего - и из неприязни к продуктам Google и Microsoft. Правда, в последнее время чаще приходится использовать Chrome, у которого получше с совместимостью.