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

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

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24993
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

begoon wrote: 06 Jan 2025 07:57 Да я б только за :-). Но увы, современные браузеры везде флагают ссылки без https, хочу я этого или нет.
Это флаганье можно отменить :)
User avatar
Shaos
Admin
Posts: 24993
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

Shaos wrote: 05 Jan 2025 12:43 Моя версия онлайн эмулятора РК86 http://rk86.net тоже переехала в Лондон :mrgreen:

Надо подумать как заинтегрировать это с форумом, раз уж они и так на одном сервере живут...
Пока идея такая нарисовалась:

Программирование через форум

т.е. пользователи пишут программу как сообщение в форуме внутри блока code и потом запускают некий урл, имеющий параметром номер сообщения из которого оно берёт текст программы и открывает rk86.net сразу в режиме ассемблера с загруженной программой - я поглядел в JS-код эмуля и вроде можно в лёгкую это организовать!

P.S. В панели Assembler наряду с кнопкой "Upload to emulator" можно добавить кнопку "Run in emulator" чтобы можно было не только загрузить скомпилированное в память эмулятора, но и сразу переключиться в панель Emulator (может даже с автоматическим вводом G0?) для запуска, а то если кто в этот эмуль никогда не ходил и его открыть в ассемблере, то непонятно что дальше делать...

P.P.S. HTTPS для форума давайте обсуждать в отдельной теме: viewtopic.php?t=22657
begoon
Senior
Posts: 162
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Я тут навайбил новый "лук" для эмулятора.

https://rk86.ru/beta/

Движок и функционал особо без изменений, но визуально немного иначе:

- меню CMD/CTRL-k
- все (эмулятор, визуализатор, консоль и дизассемблер, клавиатура) в одном окне
- виртуальная клавиатура кликабельна
- консоль, виртуальную клавиатуру, дизассемблер, визуализатор можно двигать
- новый селектор для загрузки файла
- ассемблер остался оригинальный от Viacheslav Slavinsky (настолько он хорош!)
- снапшоты, "световое" перо - все на месте

Из внутреннего:

- всю web-часть перепер на Svelte, ибо руками уже возни много
- главный файл i8080 перевел на typescript, ибо все равно идет сборка на web
- но все собирается в статику html (css, js)

В общем, beta, кому это еще интересно.

PS: Чтобы два раза не вставать, еще написал однофайловый ассемблер i8080 для сборки Монитора - https://github.com/begoon/asm8
begoon
Senior
Posts: 162
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Зацените еще мульку -- эмулятор в виде веб-компоменты.

Code: Select all

<script type="module" src="radio86-emulator.js"></script>
<radio86-emulator monitor="mon32.bin" file="CHESS.GAM" files-path="/files/"></radio86-emulator>
Вот оно в действии.
emu.png
You do not have the required permissions to view the files attached to this post.
begoon
Senior
Posts: 162
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Damir
Senior
Posts: 101
Joined: 21 Feb 2017 06:54
Location: Казань

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

Post by Damir »

Попробовал обновленный ! Вроде все хорошо, но только непривычно крупно.

Ассемблер тоже попробовал. Обнаружилось одно неудобство большого экрана - во время отладки в Отладчике панель Диzассемблера закрывает часть рабочего экрана, при попытке сдвинуть её за край экрана она уползает под экран и её не видно. И чтобы посмотреть например содержимое ячеек памяти её надо дергать туда-сюда. а это неудобно. Может можно сделать что бы она не уползала под экран а оставалась поверх даже вне поля браузера.

И ещё у меня есть вопрос который давно хотел попросить - а можно ли сделать так что бы изменения в ячейках памяти на панели Дизассемблера сразу на лету отображались на экране, сейчас все время надо тыкать на стрелку, что бы обновить данные ?
Radio_RK86-02.jpg
Вот так все выглядит, видно что панели прячутся друг под друга
You do not have the required permissions to view the files attached to this post.
Damir
Senior
Posts: 101
Joined: 21 Feb 2017 06:54
Location: Казань

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

Post by Damir »

При включенной панели Дизассм-ра работает только виртуальная экранная клавиатура, а реальная не работает ?
begoon
Senior
Posts: 162
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Объединил дизассемблер и консоль в единый режим "отладчик".

При его активизации дизассемблер устанавливатся на PC. Далее можно кликать на "PC" для обновления. В режиме отладчика, чтобы вводить в эмуляторе, на него надо кликнуть, чтобы передать фокус.

Виртуальная клавиатура независима и должна посылать нажатия в эмулятор.
debug.png
You do not have the required permissions to view the files attached to this post.
begoon
Senior
Posts: 162
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Запилил рендеринг для эмулятора прямо в терминал.

begoon
Senior
Posts: 162
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Выложил терминальную версию на npmjs, так что можно запускать

Code: Select all

bunx rk86
или

Code: Select all

pnpx rk86
или

Code: Select all

npx rk86
или

Code: Select all

deno run -A npm:rk86
begoon
Senior
Posts: 162
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Теперь терминальный эмулятор может компилировать .asm на лету.

Имеет вот такой файл "claude.asm":

Code: Select all

puts    equ 0F818h

        org 0

        lxi h, message
        call puts
        jmp 0f86ch

message:
        db 1Fh, "I AM CLAUDE. I CAN PROGRAM I8080 FOR RK86!", 0Dh, 0Ah, 0
Запускаем эмулятор:

Code: Select all

npx rk86 claude.asm --exit-address 0xF86C 
Оно отрабатывает, и опционально, выходит из эмулятора.
asm.png
You do not have the required permissions to view the files attached to this post.
Mondx
Doomed
Posts: 641
Joined: 10 Aug 2022 07:27
Location: Crimea

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

Post by Mondx »

Ну баловство ведь? Я к тому что не заменишь же консольных трансляторов и их макро, include и пр.?
Всегда!
Alekcandr
Devil
Posts: 737
Joined: 01 Oct 2007 10:30
Location: Ukraine

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

Post by Alekcandr »

Mondx wrote: 13 Apr 2026 03:32 Ну баловство ведь? Я к тому что не заменишь же консольных трансляторов и их макро, include и пр.?
По мне дело тут не баловстве. Ассемблеры уровня М80 сейчас никому не нужны, никто в них не решает сложных задач. Например, в sjasmplus решили не связываться "по-взрослому" с макросами, внедрили язык Lua.
Сейчас ассемблер как правило нужен для трансляции кода предоставленного компилятором си и д.р.
Last edited by Alekcandr on 13 Apr 2026 23:18, edited 1 time in total.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
Alekcandr
Devil
Posts: 737
Joined: 01 Oct 2007 10:30
Location: Ukraine

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

Post by Alekcandr »

.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
begoon
Senior
Posts: 162
Joined: 22 Aug 2012 17:06
Location: 188.220.42.216

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

Post by begoon »

Терминальный эмулятор использует мой ассемблер asm8 (asm8080 на npmjs).

Ассемблер не имеет макросов, ибо я его написал в основном для сборки Монитора, но в плане выражений, функций HIGH/LOW и пр. -- там все довольно кучеряво.