Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
Moderator: Shaos
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
ОБНОВЛЕНИЕ / 09.03.2021
Наконец написал какое-то подобие документации. Документ будет обновляться.
Раздел про консоль пока пустой, но именно там есть чего описать.
Наконец написал какое-то подобие документации. Документ будет обновляться.
Раздел про консоль пока пустой, но именно там есть чего описать.
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
Добавил в документацию пример цикла разработки, когда код компилируется локально, но запускается в эмуляторе на rk86.ru.
Пример вполне работоспособный.
Пример вполне работоспособный.
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
ОБНОВЛЕНИЕ / 10.03.2021
Добавлена поддержка светового пера.
Добавил в эмулятор поддержку пера - демонстрационная программа.
Когда эмулятор запустится, сказать "G0", потом "N" в бейсике, и потом "RUN 1000".
Добавлена поддержка светового пера.
Добавил в эмулятор поддержку пера - демонстрационная программа.
Когда эмулятор запустится, сказать "G0", потом "N" в бейсике, и потом "RUN 1000".
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
Кстати, еще раз о звуке.
Случайно нашел показательный пример, оказывается играет очень даже ничего.
Только надо сразу после запуска страницы эмулятора включить галочку звука в левом нижем углу.
Случайно нашел показательный пример, оказывается играет очень даже ничего.
Только надо сразу после запуска страницы эмулятора включить галочку звука в левом нижем углу.
- Paguo-86PK
- Maniac
- Posts: 267
- Joined: 13 Apr 2011 03:43
- Location: Tashkent
- Contact:
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
Мoжно добавить поддержку конфигурации/сценария?
Типа чтобы через «file=https://gist.githubusercontent.com/………/my_config.cfg» загружался сначала файл конфигурации, откуда можно указать ссылки ещё догружаемых файлов.
Чтобы не грузить все 64 Кб для демонстрации светового пера, а загрузить сначала Монитор, затем Бейсик, а затем отправить в эмулятор последовательность клавиш из третьего файла - симулировать набор листинга.
(Временно применяю трюк: В Бейсике по адресу 0354 заменяю F803 на свою подпрограмму и выдаю через неё текст из «db '...'», после чего возвращаю на место вектор F803. Костыльно, но облегчает разработку…)
Спасибо!
Типа чтобы через «file=https://gist.githubusercontent.com/………/my_config.cfg» загружался сначала файл конфигурации, откуда можно указать ссылки ещё догружаемых файлов.
Чтобы не грузить все 64 Кб для демонстрации светового пера, а загрузить сначала Монитор, затем Бейсик, а затем отправить в эмулятор последовательность клавиш из третьего файла - симулировать набор листинга.
(Временно применяю трюк: В Бейсике по адресу 0354 заменяю F803 на свою подпрограмму и выдаю через неё текст из «db '...'», после чего возвращаю на место вектор F803. Костыльно, но облегчает разработку…)
Спасибо!
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
ОБНОВЛЕНИЕ от 10.03.2021
Полностью переписан полноэкранный режим, через Fullscreen API браузера.
Проверялось на Chrome 88+, Firefox 85+, Safari 14+, Opera 74+.
Выглядит так:
Полностью переписан полноэкранный режим, через Fullscreen API браузера.
Проверялось на Chrome 88+, Firefox 85+, Safari 14+, Opera 74+.
Выглядит так:
- Paguo-86PK
- Maniac
- Posts: 267
- Joined: 13 Apr 2011 03:43
- Location: Tashkent
- Contact:
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
ОБНОВЛЕНИЕ от 20.03.2021
Поддержка снапшотов.
Примеры снапшотов:
Поддержка снапшотов.
Примеры снапшотов:
- Демо "РК86" (текст).
- Дамп памяти (текст). Данные снапшот демонстрирует имитацию нажатия на клавиатуру после загрузки снапшота. Подается команда печати дампа памяти и через 3 секунды вывод прерывается "нажатием" на CC+C.
- Демо светового пера (текст).
- Paguo-86PK
- Maniac
- Posts: 267
- Joined: 13 Apr 2011 03:43
- Location: Tashkent
- Contact:
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
У меня в Хроме не работало (дамп), так как проглатывалась первая буква.begoon wrote:ОБНОВЛЕНИЕ от 20.03.2021
Поддержка снапшотов.
Примеры снапшотов:
- Демо "РК86" (текст).
- Дамп памяти (текст). Данные снапшот демонстрирует имитацию нажатия на клавиатуру после загрузки снапшота. Подается команда печати дампа памяти и через 3 секунды вывод прерывается "нажатием" на CC+C.
- Демо светового пера (текст).
Заработало вот так.
Но «УС+C» не срабатывал стабильно, если последний в очереди событий…
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
Увы, техника подсовывания кодов клавиш в эмулятор очень зависит от задержек, ибо эмулятор выполняет команды пачками, тактирусь по 10мс интервалам, поэтому малые задержки могут приводить к тому, что выполняемая программа не успевает увидеть нажатие или отпускание клавиши.Paguo-86PK wrote:У меня в Хроме не работало (дамп), так как проглатывалась первая буква.
Заработало вот так.
Но «УС+C» не срабатывал стабильно, если последний в очереди событий…
По хорошему, лучше вообще не использовать подсовывания кнопок или использовать минимально. Проще привести все в полностью запущенное состояние и сделать снапшоп. И не надо ничего уже подсовывать.
У меня постоянно сообщения от этого форума отправляются гуглом в спам. Прямо очень грустно их оттуда вылавливать

- Paguo-86PK
- Maniac
- Posts: 267
- Joined: 13 Apr 2011 03:43
- Location: Tashkent
- Contact:
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
Нa LCC-Win32 когда эмулятор РК писал в 2000-х, тоже на клавиатуру код писал с восьмиричными таблицами, где клавиша «Q» - код 061₈, где 0 - «УС/СС/РУС», 6 - «PA6», 1 - «PB1», чтобы на PC-раскладке не вспоминать тонкости клавиатуры РК. И из буфера обмена в очередь подсовывать код очередной клавиши, когда код драйвера, соответственно, на ППА активирует соответствующие биты.begoon wrote:Увы, техника подсовывания кодов клавиш в эмулятор очень зависит от задержек, ибо эмулятор выполняет команды пачками, тактирусь по 10мс интервалам, поэтому малые задержки могут приводить к тому, что выполняемая программа не успевает увидеть нажатие или отпускание клавиши.
По хорошему, лучше вообще не использовать подсовывания кнопок или использовать минимально. Проще привести все в полностью запущенное состояние и сделать снапшоп. И не надо ничего уже подсовывать.
По-моему - так проще…
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
Запустил я тут chars.bin - он есть в составе обоих rk86.ru и rk86.net - и он выводит не совсем правильный шрифт как мне кажется:
Например вместо яблока тут написано СП (по-моему это где-то обсуждалось - то ли тут, то ли на "соседнем форуме") и нету одного из восьми символов пседографики с кодом #07:
И вообще коды 1x как-то сдвинуты влево - вертикальной палочки нет вовсе - вот для сравнения "классический" шрифт из журнала:
Например вместо яблока тут написано СП (по-моему это где-то обсуждалось - то ли тут, то ли на "соседнем форуме") и нету одного из восьми символов пседографики с кодом #07:
Code: Select all
X X
O X
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
Да, выглядит неверно, но судя по файлу шрифта, сам шрифт (https://raw.githubusercontent.com/begoo ... 6_font.bmp) правильный. Там все символы на месте, включая ту вертикальную палку.Shaos wrote:Запустил я тут chars.bin - он есть в составе обоих rk86.ru и rk86.net - и он выводит не совсем правильный шрифт
Видимо, проблема в самой программе https://github.com/begoon/rk86-maximite ... /chars.asm, а именно в том, что она выводит символы через Монитор.
Уверен, что если отображать символы напрямую через экранную область, то все будет отображать верно.
Надо будет исправить программу.
Re: Эмуляторы I8080/КР580ВМ80A и Радио-86РК на JavaScript
А, конечно. Вертикальная палка, или 0x1B (27) - это начало ESC-последовательности. Поэтому этот символ и съедается. Надо его добавить в программу как неотображаемый. Или полностью переписать программу, чтобы писала напрямую в экранную область вместе вызова Монитора. Тогда можно не проверять на неотображаемость.