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

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

Moderator: Shaos

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

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

Post by pyzhman »

Благодарю за подсказку. Я пользуюсь Ctrl + колесо мыши.
-------------------------------
Ещё вопрос - как организовать инклуды?
Специалист "Линёвский" схема от Fifan'а, восьмицвет, AY-3-8910, прерывания, адаптер PS/2 клавиатуры и контроллер SD карты от Vinxru.
begoon
Maniac
Posts: 307
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: 56
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.
Специалист "Линёвский" схема от Fifan'а, восьмицвет, AY-3-8910, прерывания, адаптер PS/2 клавиатуры и контроллер SD карты от Vinxru.
begoon
Maniac
Posts: 307
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: 56
Joined: 28 Oct 2025 23:21

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

Post by pyzhman »

При сохранении файла (download) на диск уходит только тот, который указан в File:. Остальные остаются не сохраненными. Очень неудобно. Если есть возможность, то сделайте, пожалуйста, так, чтобы сохранялись все файлы.
Специалист "Линёвский" схема от Fifan'а, восьмицвет, AY-3-8910, прерывания, адаптер PS/2 клавиатуры и контроллер SD карты от Vinxru.
begoon
Maniac
Posts: 307
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: 56
Joined: 28 Oct 2025 23:21

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

Post by pyzhman »

Благодарю! Работает замечательно!
Специалист "Линёвский" схема от Fifan'а, восьмицвет, AY-3-8910, прерывания, адаптер PS/2 клавиатуры и контроллер SD карты от Vinxru.
begoon
Maniac
Posts: 307
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Обновил описание в головном посте, ибо многие фичи либо были неизвестны вообще, либо недокументированы.
User avatar
pyzhman
Fanat
Posts: 56
Joined: 28 Oct 2025 23:21

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

Post by pyzhman »

Здравствуйте!
У меня более 10-ти файлов в проекте. А по кнопке download as .asm сохраняется только 10. Если есть возможность, то увеличьте, пожалуйста, количество сохраняемых файлов. Возможно, что-то вроде проекта организовать? Чтобы всё разом загружать/выгружать.
upd. Сейчас проверил - сохранились все 14.
Специалист "Линёвский" схема от Fifan'а, восьмицвет, AY-3-8910, прерывания, адаптер PS/2 клавиатуры и контроллер SD карты от Vinxru.
begoon
Maniac
Posts: 307
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

то есть 10 - не предел? :ebiggrin:

на тему проекта - надо подумать, ибо уже надо не просто проект поддержать, а проектЫ
User avatar
pyzhman
Fanat
Posts: 56
Joined: 28 Oct 2025 23:21

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

Post by pyzhman »

Сейчас проверил - опять сохраняет только 10.
Специалист "Линёвский" схема от Fifan'а, восьмицвет, AY-3-8910, прерывания, адаптер PS/2 клавиатуры и контроллер SD карты от Vinxru.
begoon
Maniac
Posts: 307
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

При сохранении скачиваются основной файл и все вкладки, связанные с ним через include, включая вложенные подключения. Ограничения на количество файлов в коде нет. Вкладки, не связанные с основным файлом, не сохраняются.
User avatar
pyzhman
Fanat
Posts: 56
Joined: 28 Oct 2025 23:21

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

Post by pyzhman »

И снова доброго!
Поддерживается ли двоичная система счисления? Например, mvi a, 011b.
Специалист "Линёвский" схема от Fifan'а, восьмицвет, AY-3-8910, прерывания, адаптер PS/2 клавиатуры и контроллер SD карты от Vinxru.
begoon
Maniac
Posts: 307
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Добавил двоичные числа с суффиксом b или B.

Code: Select all

    mvi a,011b          ; A = 3
    ani 11110000b       ; маска F0h
    db 10101010B        ; байт AAh
Двоичные числа можно использовать и в выражениях. Обновление в онлайн-ассемблере.
Last edited by begoon on 31 Oct 2026 10:50, edited 1 time in total.
User avatar
pyzhman
Fanat
Posts: 56
Joined: 28 Oct 2025 23:21

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

Post by pyzhman »

Спасибо, работает отлично.
Специалист "Линёвский" схема от Fifan'а, восьмицвет, AY-3-8910, прерывания, адаптер PS/2 клавиатуры и контроллер SD карты от Vinxru.