Эмулятор БК-0010-01 на ESP8266
Сделан на основе эмулятора Радио-86РК на ESP8266 https://github.com/klad-me/RK8266
- ESP8266 (с флэшкой), например ESP-01: эмулирует процессор и переферию БК, генерирует видеосигнал стандарта PAL, обрабатывает PS/2 клавиатуру.
- 74HC00 (4 элемента 2И-НЕ): используется для генерации видео и синхроимульсов (там простая логика, описана в схеме).
Во всех исходниках кодировка КОИ8-Р.
Проект в стадии разработки.
Прошивка состоит из 4 частей:
- soft/boot-2apps - загрузчик, который переключает между эмулятором и WiFi-прилоежнием.
- soft/EmuAPP - сам эмулятор, работает без SDK полностью из IRAM.
- soft/WiFiAPP - WiFi-приложение для обмена файлами с компьютером.
- soft/WiFiAPP/httpfs - файловая система для HTTP-сервера.
Готовые сборки лежат в каталоге builds. Каждый файл имеет имя, соответствующее адресу для прошивки в флэш.
При прошивке не забывайте правильно указывать размер флэша.
Пока что все сборки под плату ESP-01-LUT.
Эмулятор собственный.
Кое чего подсмотрено из эмулятора Юрия Калмыкова http://gid.pdp-11.ru
Пока не реализовано:
- Прерывание по вектору 14 после выполнения каждой команды при установленном в PSW бите T (трассировка).
- Эмуляция графики только в Ч/Б режиме.
- PS/2 клавиатура с автоматической перекодировкой русских букв и спец.символов
- Реализован перехват обращения к функции чтения / записи на магнитную ленту. Загрузка / запись соответственно происходит из / во flash.
- Звук от пищалки и моно Covox на порту 177714 выводится на GPIO14 в виде сигма-дельта модуляции (типа ШИМ). Так что на выходе нужно сделать фильтр (RC).
- Реализована эмуляция таймера (регистры 177706, 177710, 177712).
Соответствие клавишам БК-0010-01:
- любой Alt - АР2
- любой Shift - Нижний регистр
- любой Ctrl - СУ
- Caps Lock - Переключение ЗАГЛ / СТР
- левый Win - РУС
- правый Win - ЛАТ
- Pause - СТОП
- F1 - ПОВТ
- F2 - КТ
- F3 - =|=>|
- F4 - |<==
- F5 - |==>
- F6 - ИНД СУ
- F7 - БЛОК РЕД
- F8 - ШАГ
- F9 - СБР
- Up - Вверх (разряд 0 порта)
- Right - Вправо (разряд 2 порта)
- Down - Вниз (разряд 3 порта)
- Left - Влево (разряд 4 порта)
- Пробел - Кнопка 1 (разряд 1 порта)
- A - Кнопка 2 (разряд 5 порта)
- S - Кнопка 3 (разряд 6 порта)
- D - Кнопка 4 (разряд 7 порта)
- F - Кнопка 5 (разряд 8 порта)
- Scroll Lock - Переключение режима Турбо
- Print Screen - выход в режим WiFi. Это временное решение. В дальнейшем планируется переходить в режим WiFi из меню по Esc
- Esc - выход в меню эмулятора. В данный момент эта функция не реализована.
- Num Lock - переключение клавиш в режим джойстика