Когда-то давно, Юрий Калмыков
писал эмулятор БК-0010(01) под Windows. Но позже видимо забросил это дело
и выложил исходники всем желающим.
Здесь находятся доработанный и улучшенный эмулятор Юрия Калмыкова на
основе его исходников. Относительно оригинала добавлена эмуляция БК-0011,
БК-0011М, AY-8910, FDD контроллеры: стандартный, A16M, СМК-512, Самарский
контроллер HDD + эмуляция HDD.
Не забываем про необходимость
VC redistributable 2015/2017/2019/2022 разрядности, соответствующей
используемой разрядности программ. Не Windows. При запуске 32х разрядной
проги на 64х разрядной винде, нужен 32х разрядный VC_redist.exe.
Данный пакет для x86 не запускается в Windows XP, поэтому пользователям
Windows XP нужен вот такой
VC Redist 2015/2017/2019
и больше никакой.
Известные ошибки и проблемы:
Играть в игры для БК-0010 затруднительно из-за не синхронизированной
обработки клавиатуры и эмуляции выполнения инструкций процессора. Клавиатура
обрабатывается в реальном времени, а инструкции - пакетом, за как можно
короткое время, между ожиданиями обработки звуковой подсистемой Windows
звуковых буферов.
Режим построчной эмуляции экрана работает не полностью корректно,
в обычной работе это не заметно, а вот на некоторых демках, использующих
эффекты мультиколора и синхронизированного с ходом луча переключения
экранов даже очень заметно.
Как оказалось тайминги и их коррекция под разные частоты совершенно
неправильные. Нужно писать новый эмулятор, с принципиально иным алгоритмом
эмуляции.
Со звуком всё таки что-то неладно. Но не у всех и не всегда. Есть
люди, у которых звук эмулятора работает стабильно плохо.
Эмуляция мыши путём захвата ПКшной мыши работает ужасно. Поэтому
не вынесена в опции и включается/выключается или вручную в ini файле,
или в окне настроек.
Небольшой фикс последствий рефакторинга в эмуляторе - пустые списки в диалоге настроек.
v3.10.1912.7711
Дата: 25.10.2019 00:00:00
Файлы этого релиза удалены и заменены следующим релизом.
В эмулятор добавлена эмуляция бага с битом С после команд movb, mfps, swab если адресация приёмника 0.
В BKDE исправлена ошибка экспорта подкаталогов с файлами, которая была во всех системах, кроме ANDOS.
Проделан рефакторинг всех исходников всех проектов в процессе пощупывания VS2019. Из-за чего всё остальное пересобралось с новыми версиями без изменений в функциональности.
В BKDE улучшена навигация по списку файлов, теперь можно перемещать курсор колесом мыши и средняя кнопка работает как клавиша Enter. Так же, стрелками влево/вправо можно листать список файлов как клавишами Page Up/Page Down.
Оказывается, в конфигурациях БК10 в регистр звука иногда попадал мусор, и спикерная музыка в некоторых случаях звучала немного не так, как в оригинале. Ситуация исправлена.
В BKDE исправлена ошибка переименования файлов в RT-11
В BKTurbo8 улучшена работа с входными файлами при использовании шаблонов и масок.
v3.10.1907.7647
Дата: 23.07.2019 00:00:00
Файлы этого релиза удалены и заменены следующим релизом.
Изменения в эмуляторе:
Исправлена опечатка в коде обработки событий окошка дизассемблера. Не работала навигация по Page Up/Page Down.
Исправлен дефект алгоритма эмуляции клавиатуры из предыдущего релиза, он появился после неудачного скрещивания модулей обработки реальной клавиатуры и виртуальной. Всё отменено, и всё обратно работает как задумано.
Частично исправлена ситуация эмуляции обработки клавиатуры через команду RESET. Как на БК это не работает, но хотя бы хоть как-то работает.
В BKTurbo8 немного причёсаны исходники, добавлены комментарии.
В эмуляторе реализовано разное время выполнения команд из динамического ОЗУ и ПЗУ / ОЗУ СМК. Но только реализовано, не уточнено, пока что команды из ПЗУ или ОЗУ СМК выполняются просто быстрее, чем из динамического ОЗУ. Насколько они должны быстрее выполнятся, будет уточнено позднее. Но оно уже сейчас может пригодиться.
Решена проблема чтения имён .bin файлов с запрещёнными в Windows символами.
Обнаружен, и пока даже не знаю как устранить, серьёзный дефект алгоритма эмуляции клавиатуры: если нажали клавиши СУ/Шифт/АР2+клавиша, а потом отпустили сперва СУ/Шифт/АР2, а потом клавишу, то алгоритм полностью залипает, т.к. считает что была отпущена совсем не та клавиша, которая была нажата, и повторно нажать уже ничего не даёт. В общем, я перемудрил с эмуляцией. Пока выход такой - отпускайте клавишу-модификатор после отпускания основой клавиши.