Когда-то давно, Юрий Калмыков
писал эмулятор БК-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 файле,
или в окне настроек.
Добавлена возможность задавать размеры экрана эмулятора из списка заданных размеров. Список находится в меню "Вид".
Уточнён метод задания частот музыкального сопроцессора в окне изменения настроек. Добавлен список некоторых распространённых частот, чтобы не вводить их вручную. Если чего-то в списке нет, то оно вводится вручную.
Случайно обнаружена и устранена ещё одна ошибка в умном сохранении параметров в ini файл. Теперь ненужные записи из него всегда удаляются.
Всё ещё продолжается борьба с последствиями введения разных доступных пользователю частот дискретизации звука, а теперь уже заодно и разных рендеров в ранее сохранённых состояниях эмулятора. Остались всё те же мелкие неудобства, все критические ошибки, потенциально приводящие к краху, устранены (я надеюсь).
дамп регистров CPU, системных регистров и портов и регистров режимов работы контроллера АльтПро (чтобы сразу видеть, в каком режиме работает СМК);
дамп регистров FDD и HDD, который прячется за дампом памяти, поскольку нужен очень редко (да почти вообще не нужен).
Убраны не нужные информационные сведения, которые можно посмотреть в окне изменения настроек эмулятора.
На появившееся свободное место в дампе регистров добавлен дополнительный вид содержимого регистров CPU. Можно переключаться между десятичным и шестнадцатеричным представлением.
В связи с разными представлениями чисел отменены ненужные в общем-то ограничения на ввод в поля редактирования значений регистров. Теперь можно вводить всё что угодно, и оно потом пытается интерпретироваться в числа соответствующих систем счислений. С разной степенью удачности.
Взяты некоторые иконки SCALOlaza для улучшения внешнего вида.
Рабочую частоту и модель муз.сопроцессора теперь тоже можно задавать в настройках эмулятора. Я на слух разницы не заметил, т.к. различие в алгоритмах генерации шума не эмулируется. Используется тот, что в Ямахе.
Исправлена недоделка в умном сохранении параметров в ini файл, введённая в билде 1709.5847.
Продолжается борьба с последствиями введения разных доступных пользователю частот дискретизации звука. Почти всё исправлено. Не работает восприятие собственного звука, записанного на частоте 44100Гц и читаемого на частоте 48000 Гц, и наоборот, т.е. если кто-то использует wav файлы, то работать с ними лучше только на частоте 44100 Гц.
Заодно, теперь можно загружать как .wav ещё и .bin файлы. Не знаю, зачем, но возможность такая была изначально, просто не задействована была. Разве что из ностальгических чувств, слушать звуки с кассеты с играми.
Теперь после изменения настроек эмулятора тип рендера экрана и осциллографа и частота дискретизации звука изменяются по настоящему, а не фиктивно и не нужно перезапускать эмулятор полностью, чтобы применились новые настройки.
v3.9.1802.6026
Дата: 20.02.2018 00:00:00
Файлы этого релиза удалены и заменены следующим релизом.
Обновления.
Добавлена новая версия утилиты BKDE. Недоотлажена до конца, поэтому и старая никуда не делась.
Я закончил писать эту программу ещё в конце 2015 года, первую половину 2016 года урывками пытался отлаживать и отлавливать баги, но свободного времени становилось всё меньше и меньше, так эта версия и пролежала в незаконченном состоянии до 2018 года. Поскольку совсем непонятно, когда я снова смогу взяться за эту прогу, решил выложить как есть, пользуйтесь на свой страх и риск.
Точно без ошибок работает с АНДОС и МКДОС, возможно и с КСИДОС тоже без ошибок. С остальными, с RT-11 скорее всего работает, с АОДОС и НОРД могут быть проблемы, а может и не быть, так я и не смог по-нормальному там отладить. Работа с НС-ДОС совсем не гарантирована, может работает, может и нет.
При работе с АНДОС и МКДОС есть косяк - можно создавать одинаковые файлы в разных директориях и программа их различает. А настоящие АНДОС и МКДОС - нет. Они не позволяют создавать файлы с одинаковыми именами в разных каталогах, поэтому старайтесь тоже не создавать их во избежание проблем. Исправлять этот косяк поздно, очень много надо будет переписывать.
Программа умеет работать с реальными дискетами в реальном дисководе при наличии драйвера fdrawcmd.sys
Улучшения эмулятора:
Уточнена эмуляция экрана. Стало гораздо лучше.
Добавлено окно настройки эмулятора, в котором можно изменить те настройки, которые требуют перезапуска эмулятора. Такие как тип рендера, частоту дискретизации, образы HDD, подключённые в данной конфигурации. Идея и начальная реализация - SCALOlaz. Найти окно можно в меню "Опции" или на главной панели инструментов.
Добавлено так сказать устройство "Блок нагрузок", для эмуляции тестирования порта УП. Находится в меню "Отладка". Конфликтует с эмуляцией джойстика, поэтому одновременно может быть подключён или джойстик, или блок нагрузок.
В кроссассемблере Turbo8 чуточку улучшена совместимость псевдокоманд .ascii, .asciz, .rad50 с текстами для MACRO-11. Символами ограничителями текста теперь могут быть любые символы пунктуации, скобки и прочие не буквы и не цифры, кроме символов '<', '>', ';'. Коды из диапазонов 040..077 (без цифр), 0133..0137, 0173..0177.
После окончательного перехода на Windows10 оказалось что основной цикл эмулятора с таймерами работает коряво, и был заменён на старый цикл со счётчиками, который жрёт больше процессорного времени, но зато работает корректно.
Серьёзная реорганизация проектов и немного рефакторинга.
Частичный отказ от совместимости с Windows XP, в связи с чем сделан нормальный D3D рендер на Dx11. Для WinXP теперь будет отдельная специальная сборка.
Утилиты подверглись небольшому рефакторингу. Изменений нет.
Виртуальная клавиатура теперь масштабируется. У кого большие мониторы - видят большую клавиатуру, у кого маленькие - мелкую. Изображение клавиатуры предоставлено Voland'ом.
У виртуальной клавиатуры теперь можно отжать нажатые управляющие клавиши Шифт, СУ, АР2. И поправлена реакция этих клавиш на нажатие клавиши СТОП.
По просьбе уважаемых пользователей, в карту памяти добавлена возможность сохранения/загрузки содержимого страниц. Подробности и особенности работы смотрите в документации.