Обрадованный успехом использования 8080/8085 Exerciser'а для тестирования i8080-core, я вернулся к эмулятору РК на JavaScript. В итоге я полностью переписал ядро Intel 8080, выделив его в отдельный проект — i8080-js. Данная реализация проходит все тесты, что и i8080-core, включая 8080/8085 Exerciser.
После этого я переписал и эмулятор РК с использованием нового ядра. Пост по теме: demin.ws/blog/russian/2012/10/04/rk86-js.
ОБНОВЛЕНИЕ от 08.10.2026
Эмулятор полностью переписан заново на TypeScript (SvelteKit). Ядро Intel 8080 теперь живёт внутри проекта и по-прежнему проходит 8080/8085 Exerciser. Старая версия на vanilla JS сохранена в ветке classic.
Эмулятор: rk86.ru
Исходники: github.com/begoon/rk86-js
Экспериментальная сборка: rk86.ru/beta
Инструменты разработчика
- интерактивный ассемблер с поддержкой проектов из нескольких файлов — кнопка «run» собирает .rk и сразу запускает в эмуляторе
- интерактивный компилятор C (c8080)
- интерактивный компилятор PL/M-80
- классический Pretty i8080 Assembler (svofski) как дополнительный инструмент
- интерактивный справочник по Монитору
- GUI-отладчик (Cmd/Ctrl+K, D): дизассемблер с аннотациями, регистры, флаги и стек, точки останова (exec/read/write/opcode, счётчики, временные), шаг / шаг через подпрограмму / выход из подпрограммы / выполнение до курсора, тепловая карта всех 64 КБ памяти
- визуализатор системы команд i8080
- интерактивные анализаторы wav-записей и бинарных файлов РК, преобразователь форматов
- точный тайминг 1,78 МГц, турбо-режим
- два режима рендеринга экрана: ВГ75 (покадровый, с эффектами срыва синхронизации) и МОНИТОР
- чистый звук — прямое моделирование 1-битного спикера
- цвет (Толкалин, Акименко, Апогей), атрибуты ВГ75: мигание, инверсия, подчёркивание
- световое перо с отображением координат
- эмуляция записи на магнитную ленту
- профили оборудования: адреса ОЗУ, ПЗУ и периферии, размер окна периферии, профиль сохраняется в снапшоте
- карта занятой памяти
- загрузка локальных файлов и drag-and-drop (.rk, .rkr, .gam, .pki, .bin, .json)
- текстовый hex-формат: файл начинается со строки #!rk86, далее hex-байты, теги !name, !start, !entry. Программу можно вставить прямо из поста на форуме.
- автозагрузка через URL: ?file= / ?run= (загрузить и запустить), ?load= (только загрузить) — имя из каталога, прямая ссылка или data-URL, ?monitor=mon32-color.bin выбирает цветной монитор
- снапшоты полного состояния в JSON с имитацией нажатий клавиш после загрузки
- заморозка состояния — до 20 снимков с миниатюрами экрана и мгновенным восстановлением
- сохранение дампа памяти с выбором диапазона
- экранная клавиатура с подсказкой раскладки
- прямой ввод — символы с клавиатуры хоста переводятся в коды РК
- конвертер кириллического текста в кодировку РК (KOI-7)
- горячие клавиши: Cmd/Ctrl+K, затем буква
Онлайновый каталог из 225 игр и программ со скриншотами и микро-описаниями. Любую можно запустить в эмуляторе одним кликом, скачать в нужном формате (в том числе RKS).
rk86.ru/catalog
Встраивание и терминал
- веб-компонент <radio86-emulator> (npm-пакет radio86-emulator) — эмулятор на любой странице одной строкой HTML: 4 эмулятора, 12 эмуляторов
- терминальный эмулятор (npm-пакет rk86): bunx rk86 CHESS.GAM, headless-режим со скриптовым вводом, дампы экрана и памяти для автотестов, флаг --online открывает локальный файл сразу на rk86.ru
- справочник программиста РК86 — карта памяти, переменные и таблица переходов Монитора, ВГ75, клавиатура, формат ленты
- руководство по эмулятору (кнопка «?» в тулбаре)
- формат снапшотов
Демо «РК86» (текст).
Дамп памяти (текст). Данный снапшот демонстрирует имитацию нажатий на клавиатуру после загрузки: подаётся команда печати дампа памяти, и через 3 секунды вывод прерывается «нажатием» СС+C.
Демо светового пера (текст).
