- PVSM.RU - https://www.pvsm.ru -

Эмулятор Радио-86РК на JavaScript / Перезагрузка

Эмулятор Радио 86РК на JavaScript / Перезагрузка

В 2009 я написал первую версию эмулятора Радио-86РК на JavaScript [1]. Тогда мне очень хотелось проверить саму идею подобного эмулятора, поэтому непосредственно реализация вышла несколько сумбурной, хотя и работала в итоге. Тогда я тестировал эмуляцию процессора Intel 8080 в основном визуально, на играх. Поэтому какой-либо рефакторинг кода был мучителен, так как было элементарно что-то сломать.

Недавно я запустил эмулятор РК на микрокомпьютере Maximite [2]. В процессе работы эмуляция ядра Intel 8080 выделилась в отдельный проект i8080-core [3], в котором также появилась система тестирования. Тесты, особенно, 8080 CPU Execercier [4], позволяют весьма тщательно проверить качество эмуляции, особенно на предмет недокументированного поведения.

И тут пришла идея вернуться к эмулятору на JavaScript и перетестировать его. В итоге я фактически переписал эмулятор с нуля, разделив его на ядро процессора i8080-js [5], и, собственно, эмулятор РК [6].

Ядро i8080-js теперь проходит все те же тесты, что и i8080-core. Тестирование можно делать либо прямо в браузере, либо в командной строке, если есть под рукой интерпретаторы JavaScript'а V8 или SpiderMonkey. Эмулятор Intel 8080 сделан независимым от конкретной аппаратуры и может быть легко использован для эмуляции других машин, основанных на Intel 8080 (или КР580ВМ80А).

Эмулятор РК теперь разделен на модули: UI, Screen, I8080, Memory, IO. Также улучшена работа с клавиатурой, и загрузка программ происходит динамически при их выборе.

Запустить новый эмулятор можно на demin.ws/rk [7] (в закладки).

Старая версия (до 0.6 включительно) все еще доступна [8], но ее развитие остановлено, а исходники проекта теперь на GitHub'е.

В новой версии (теперь это 1.0) я также добавил десяток новых игр и утилит. Кстати, зацените мою демку (файл rk86demo.bin) и ремейк Сокобана (файл sokoban.bin).

Я тестировал на последних версиях Google Chrome и Safari (Mac и Windows). В Firefox, увы, есть какой-то странный визуальный глюк в виде горизонтальных полосок.

Под занавес несколько скриншотов.

Эмулятор Радио 86РК на JavaScript / Перезагрузка

Эмулятор Радио 86РК на JavaScript / Перезагрузка

Эмулятор Радио 86РК на JavaScript / Перезагрузка

Эмулятор Радио 86РК на JavaScript / Перезагрузка

Автор: begoon


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/16633

Ссылки в тексте:

[1] написал первую версию эмулятора Радио-86РК на JavaScript: http://habrahabr.ru/post/71144/

[2] эмулятор РК на микрокомпьютере Maximite: http://habrahabr.ru/post/150080/

[3] i8080-core: http://github.com/begoon/i8080-core

[4] 8080 CPU Execercier: http://www.idb.me.uk/sunhillow/8080.html

[5] i8080-js: http://github.com/begoon/i8080-js

[6] эмулятор РК: http://github.com/begoon/rk86-js

[7] demin.ws/rk: http://demin.ws/rk

[8] доступна: http://radio86.googlecode.com