Эмуляторы 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

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

Post by begoon »

ОБНОВЛЕНИЕ / 09.03.2021
Наконец написал какое-то подобие документации. Документ будет обновляться.

Раздел про консоль пока пустой, но именно там есть чего описать.
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

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

Post by begoon »

Добавил в документацию пример цикла разработки, когда код компилируется локально, но запускается в эмуляторе на rk86.ru.

Пример вполне работоспособный.
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

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

Post by begoon »

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

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

Добавил в эмулятор поддержку пера - демонстрационная программа.

Когда эмулятор запустится, сказать "G0", потом "N" в бейсике, и потом "RUN 1000".
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

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

Post by begoon »

Кстати, еще раз о звуке.

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

Только надо сразу после запуска страницы эмулятора включить галочку звука в левом нижем углу.
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

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

Post by begoon »

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

Добавленая поддержка загрузки локальных файлов в эмулятор.
User avatar
Paguo-86PK
Maniac
Posts: 267
Joined: 13 Apr 2011 03:43
Location: Tashkent
Contact:

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

Post by Paguo-86PK »

Мoжно добавить поддержку конфигурации/сценария?
Типа чтобы через «file=https://gist.githubusercontent.com/………/my_config.cfg» загружался сначала файл конфигурации, откуда можно указать ссылки ещё догружаемых файлов.

Чтобы не грузить все 64 Кб для демонстрации светового пера, а загрузить сначала Монитор, затем Бейсик, а затем отправить в эмулятор последовательность клавиш из третьего файла - симулировать набор листинга.
(Временно применяю трюк: В Бейсике по адресу 0354 заменяю F803 на свою подпрограмму и выдаю через неё текст из «db '...'», после чего возвращаю на место вектор F803. Костыльно, но облегчает разработку…)

Спасибо!
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

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

Post by begoon »

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

Полностью переписан полноэкранный режим, через Fullscreen API браузера.

Проверялось на Chrome 88+, Firefox 85+, Safari 14+, Opera 74+.

Выглядит так:
User avatar
Paguo-86PK
Maniac
Posts: 267
Joined: 13 Apr 2011 03:43
Location: Tashkent
Contact:

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

Post by Paguo-86PK »

Скорость скроллинга приличная.
Можно уже и полный ПДП-цикл реализовывать… :roll:
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

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

Post by begoon »

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

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

Примеры снапшотов:
User avatar
Paguo-86PK
Maniac
Posts: 267
Joined: 13 Apr 2011 03:43
Location: Tashkent
Contact:

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

Post by Paguo-86PK »

begoon wrote:ОБНОВЛЕНИЕ от 20.03.2021

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

Примеры снапшотов:
У меня в Хроме не работало (дамп), так как проглатывалась первая буква.
Заработало вот так.
Но «УС+C» не срабатывал стабильно, если последний в очереди событий…
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

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

Post by begoon »

Paguo-86PK wrote:У меня в Хроме не работало (дамп), так как проглатывалась первая буква.
Заработало вот так.
Но «УС+C» не срабатывал стабильно, если последний в очереди событий…
Увы, техника подсовывания кодов клавиш в эмулятор очень зависит от задержек, ибо эмулятор выполняет команды пачками, тактирусь по 10мс интервалам, поэтому малые задержки могут приводить к тому, что выполняемая программа не успевает увидеть нажатие или отпускание клавиши.

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

У меня постоянно сообщения от этого форума отправляются гуглом в спам. Прямо очень грустно их оттуда вылавливать ;-)
User avatar
Paguo-86PK
Maniac
Posts: 267
Joined: 13 Apr 2011 03:43
Location: Tashkent
Contact:

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

Post by Paguo-86PK »

begoon wrote:Увы, техника подсовывания кодов клавиш в эмулятор очень зависит от задержек, ибо эмулятор выполняет команды пачками, тактирусь по 10мс интервалам, поэтому малые задержки могут приводить к тому, что выполняемая программа не успевает увидеть нажатие или отпускание клавиши.

По хорошему, лучше вообще не использовать подсовывания кнопок или использовать минимально. Проще привести все в полностью запущенное состояние и сделать снапшоп. И не надо ничего уже подсовывать.
Нa LCC-Win32 когда эмулятор РК писал в 2000-х, тоже на клавиатуру код писал с восьмиричными таблицами, где клавиша «Q» - код 061₈, где 0 - «УС/СС/РУС», 6 - «PA6», 1 - «PB1», чтобы на PC-раскладке не вспоминать тонкости клавиатуры РК. И из буфера обмена в очередь подсовывать код очередной клавиши, когда код драйвера, соответственно, на ППА активирует соответствующие биты.
По-моему - так проще…
User avatar
Shaos
Admin
Posts: 23866
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

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

Post by Shaos »

Запустил я тут chars.bin - он есть в составе обоих rk86.ru и rk86.net - и он выводит не совсем правильный шрифт как мне кажется:

Screenshot from 2023-01-29 21-13-45.png
Screenshot from 2023-01-29 21-13-45.png (2.76 KiB) Viewed 5063 times

Например вместо яблока тут написано СП (по-моему это где-то обсуждалось - то ли тут, то ли на "соседнем форуме") и нету одного из восьми символов пседографики с кодом #07:

Code: Select all

X X
O X
И вообще коды 1x как-то сдвинуты влево - вертикальной палочки нет вовсе - вот для сравнения "классический" шрифт из журнала:

radio86rk-magazine.jpg
radio86rk-magazine.jpg (162.34 KiB) Viewed 5063 times

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

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

Post by begoon »

Shaos wrote:Запустил я тут chars.bin - он есть в составе обоих rk86.ru и rk86.net - и он выводит не совсем правильный шрифт
Да, выглядит неверно, но судя по файлу шрифта, сам шрифт (https://raw.githubusercontent.com/begoo ... 6_font.bmp) правильный. Там все символы на месте, включая ту вертикальную палку.

Видимо, проблема в самой программе https://github.com/begoon/rk86-maximite ... /chars.asm, а именно в том, что она выводит символы через Монитор.

Уверен, что если отображать символы напрямую через экранную область, то все будет отображать верно.

Надо будет исправить программу.
begoon
Senior
Posts: 146
Joined: 23 Aug 2012 00:06
Location: 188.220.42.216

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

Post by begoon »

А, конечно. Вертикальная палка, или 0x1B (27) - это начало ESC-последовательности. Поэтому этот символ и съедается. Надо его добавить в программу как неотображаемый. Или полностью переписать программу, чтобы писала напрямую в экранную область вместе вызова Монитора. Тогда можно не проверять на неотображаемость.
Post Reply