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

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

Moderator: Shaos

User avatar
pyzhman
Fanat
Posts: 51
Joined: 28 Oct 2025 23:21

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

Post by pyzhman »

Благодарю за подсказку. Я пользуюсь Ctrl + колесо мыши.
-------------------------------
Ещё вопрос - как организовать инклуды?
begoon
Maniac
Posts: 302
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Добавил веб-версии ассемблера поддержку include.

Раньше подключение файлов работало только в командной строке asm8 (asm8080), теперь можно подключать исходники из других открытых вкладок по имени:

Code: Select all

include "defs.asm"
Ассемблер возьмёт текущее содержимое вкладки defs.asm. Имя должно совпадать точно, включая регистр.

Поддерживаются вложенные включения и проверка циклических зависимостей. Ошибки показывают имя файла и номер строки.

Для сборки и запуска нужно выбрать вкладку с основной программой. В подключаемых файлах не следует ставить "end", ибо эта директива завершает сборку всей программы.
User avatar
pyzhman
Fanat
Posts: 51
Joined: 28 Oct 2025 23:21

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

Post by pyzhman »

Спасибо!
Включает и транслирует. Но вот такая засада:
Безымянный.png
Безымянный1.png
ошибка по отсутствию org и отсутствие машкодов.
You do not have the required permissions to view the files attached to this post.
begoon
Maniac
Posts: 302
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Причина была в том, что при переключении на вкладку test.asm ассемблер начинал транслировать этот файл отдельно. А директива org и определения символов находились в основном файле welle.asm, поэтому появлялись ошибки.

Я добавил селектор Main, который позволяет выбрать основной файл независимо от открытой вкладки:

1. В Main выбираем welle.asm.
2. Переключаемся на test.asm и редактируем его.
3. При каждом изменении заново транслируется welle.asm, включая текущее содержимое test.asm.

Слева от текста test.asm отображаются адреса и машинные коды в контексте всей программы. Запуск, загрузка в эмулятор и скачивание бинарного файла используют результат сборки основной программы. Скачивание .asm по-прежнему сохраняет файл текущей вкладки.

Выбор основного файла сохраняется после перезагрузки страницы. Пункт "active tab" возвращает прежнее поведение - трансляцию текущей вкладки.
User avatar
pyzhman
Fanat
Posts: 51
Joined: 28 Oct 2025 23:21

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

Post by pyzhman »

При сохранении файла (download) на диск уходит только тот, который указан в File:. Остальные остаются не сохраненными. Очень неудобно. Если есть возможность, то сделайте, пожалуйста, так, чтобы сохранялись все файлы.
begoon
Maniac
Posts: 302
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Исправил.

Теперь при нажатии download в формате asm сохраняется не только файл из поля File:, а весь набор исходников.

Логика такая: берётся главный файл (тот, что выбран в селекторе Main, или активная вкладка, если выбран «active tab»), из него по цепочке include / .include собираются все вкладки, до которых можно дойти, и для каждой из них запускается отдельное скачивание. Каждый файл сохраняется один раз, даже если он подключается несколько раз или образует цикл. Имена вкладок сопоставляются точно так же, как при ассемблировании. Если какой-то include не найден или имя неоднозначно, он просто пропускается, об ошибке в любом случае сообщит ассемблер.

Браузер при первом таком скачивании может спросить разрешение на загрузку нескольких файлов с сайта, его нужно подтвердить.

Бинарные форматы (bin, rk, rkr, rks, pki, gam) работают как раньше.
User avatar
pyzhman
Fanat
Posts: 51
Joined: 28 Oct 2025 23:21

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

Post by pyzhman »

Благодарю! Работает замечательно!
begoon
Maniac
Posts: 302
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Обновил описание в головном посте, ибо многие фичи либо были неизвестны вообще, либо недокументированы.