Эмулятор БК-0010-01, БК-0011
и БК-0011М
ПРОГРАММНОЕ
ОБЕСПЕЧЕНИЕ
ДВК   УК-НЦ   БК0010/11М
archive.pdp-11.org.ru

Когда-то давно, Юрий Калмыков писал эмулятор БК-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 и больше никакой.

Известные ошибки и проблемы:

  1. Играть в игры для БК-0010 затруднительно из-за не синхронизированной обработки клавиатуры и эмуляции выполнения инструкций процессора. Клавиатура обрабатывается в реальном времени, а инструкции - пакетом, за как можно короткое время, между ожиданиями обработки звуковой подсистемой Windows звуковых буферов.
  2. Режим построчной эмуляции экрана работает не полностью корректно, в обычной работе это не заметно, а вот на некоторых демках, использующих эффекты мультиколора и синхронизированного с ходом луча переключения экранов даже очень заметно.
  3. Как оказалось тайминги и их коррекция под разные частоты совершенно неправильные. Нужно писать новый эмулятор, с принципиально иным алгоритмом эмуляции.
  4. Со звуком всё таки что-то неладно. Но не у всех и не всегда. Есть люди, у которых звук эмулятора работает стабильно плохо.
  5. Эмуляция мыши путём захвата ПКшной мыши работает ужасно. Поэтому не вынесена в опции и включается/выключается или вручную в ini файле, или в окне настроек.
  6. Эмуляция менестреля работает криво и плохо.

 

Документация онлайн. Отдельным файлом, на всякий случай, для интересующихся - Описание формата MSF.

 

v3.10.1910.7716 Дата: 28.10.2019 10:05:00

BK_v3.10_src.7z (5.7M)
BK_v3.10_x64.7z (6.9M)
BK_v3.10_x86.7z (6.0M)
BK_v3.10_x86_WinXP.7z (6.0M)

  • Небольшой фикс последствий рефакторинга в эмуляторе - пустые списки в диалоге настроек.

 

v3.10.1912.7711 Дата: 25.10.2019 00:00:00

Файлы этого релиза удалены
и заменены следующим релизом.

  1. В эмулятор добавлена эмуляция бага с битом С после команд movb, mfps, swab если адресация приёмника 0.
  2. В BKDE исправлена ошибка экспорта подкаталогов с файлами, которая была во всех системах, кроме ANDOS.
  3. Проделан рефакторинг всех исходников всех проектов в процессе пощупывания VS2019. Из-за чего всё остальное пересобралось с новыми версиями без изменений в функциональности.

 

v3.10.1908.7654 Дата: 03.09.2019 15:37:00

BK_v3.10_src.7z (5.6M)
BK_v3.10_x64.7z (6.9M)
BK_v3.10_x86.7z (6.1M)
BK_v3.10_x86_WinXP.7z (6.0M)

  • В BKDE улучшена навигация по списку файлов, теперь можно перемещать курсор колесом мыши и средняя кнопка работает как клавиша Enter. Так же, стрелками влево/вправо можно листать список файлов как клавишами Page Up/Page Down.
  • Оказывается, в конфигурациях БК10 в регистр звука иногда попадал мусор, и спикерная музыка в некоторых случаях звучала немного не так, как в оригинале. Ситуация исправлена.

 

v3.10.1907.7646 Дата: 05.08.2019 10:42:00

BK_v3.10_src.7z (5.6M)
BK_v3.10_x64.7z (6.9M)
BK_v3.10_x86.7z (6.1M)
BK_v3.10_x86_WinXP.7z (6.1M)

В BKTurbo8 исправлена опечатка в обработчике аргумента (префикс ^R) в кодировке RADIX-50, приводившая к зацикливанию программы.


Поэтому просто были пересобраны архивы предыдущего билда без изменения версии.

 

v3.10.1907.7646 Дата: 30.07.2019 00:00:00

BK_v3.10_src.7z (5.6M)
BK_v3.10_x64.7z (6.9M)
BK_v3.10_x86.7z (6.1M)
BK_v3.10_x86_WinXP.7z (6.1M)

  • В BKDE исправлена ошибка переименования файлов в RT-11
  • В BKTurbo8 улучшена работа с входными файлами при использовании шаблонов и масок.

 

v3.10.1907.7647 Дата: 23.07.2019 00:00:00

Файлы этого релиза удалены
и заменены следующим релизом.

Изменения в эмуляторе:

  • Исправлена опечатка в коде обработки событий окошка дизассемблера. Не работала навигация по Page Up/Page Down.
  • Исправлен дефект алгоритма эмуляции клавиатуры из предыдущего релиза, он появился после неудачного скрещивания модулей обработки реальной клавиатуры и виртуальной. Всё отменено, и всё обратно работает как задумано.
  • Частично исправлена ситуация эмуляции обработки клавиатуры через команду RESET. Как на БК это не работает, но хотя бы хоть как-то работает.

В BKTurbo8 немного причёсаны исходники, добавлены комментарии.

 

v3.10.1907.7634 Дата: 10.07.2019 12:50:00

BK_v3.10_src.7z (5.6M)
BK_v3.10_x64.7z (6.9M)
BK_v3.10_x86.7z (6.1M)
BK_v3.10_x86_WinXP.7z (6.0M)

Изменения в эмуляторе:

  • В эмуляторе реализовано разное время выполнения команд из динамического ОЗУ и ПЗУ / ОЗУ СМК. Но только реализовано, не уточнено, пока что команды из ПЗУ или ОЗУ СМК выполняются просто быстрее, чем из динамического ОЗУ. Насколько они должны быстрее выполнятся, будет уточнено позднее. Но оно уже сейчас может пригодиться.
  • Решена проблема чтения имён .bin файлов с запрещёнными в Windows символами.
  • Обнаружен, и пока даже не знаю как устранить, серьёзный дефект алгоритма эмуляции клавиатуры: если нажали клавиши СУ/Шифт/АР2+клавиша, а потом отпустили сперва СУ/Шифт/АР2, а потом клавишу, то алгоритм полностью залипает, т.к. считает что была отпущена совсем не та клавиша, которая была нажата, и повторно нажать уже ничего не даёт. В общем, я перемудрил с эмуляцией. Пока выход такой - отпускайте клавишу-модификатор после отпускания основой клавиши.

 

v3.10.1906.7604 Дата: 21.06.2019 08:41:00

BK_v3.10_src.7z (5.6M)
BK_v3.10_x64.7z (6.9M)
BK_v3.10_x86.7z (6.1M)
BK_v3.10_x86_WinXP.7z (6.0M)

Изменения:

  1. Эмулятор:
    • Новый алгоритм трансляции инструкций.
    • Добавлены EIS/FIS инструкции на будущее, но они отключены, т.к. в ВМ1 их нет. (Кому интересно - смотрите исходники)
    • Исправлена ошибка дизассемблирования некоторых FIS инструкций.
    • Найдено и сэмулировано аппаратное отличие ПЛИС реплики СМК от оригинала, по которому можно программно определить реплика у нас или оригинал.
    • Управление эмулятором конденсатора добавлено к фильтру спикера, т.е. теперь отключается, чтобы своими ушами могли услышать разницу в работе.
    • Переделка обработки клавиатуры в связи с безфреймовым алгоритмом, такие сложности больше не нужны.
    • Исправлена ошибка в выводе размера файла в менеджере лент.
    • Добавлена возможность выбора формата bin сохраняемого файла - длинный или короткий, по умолчанию используется короткий. Переключение - правка параметров в ini файле.
    • Добавлена поддержка ещё одного формата bin: 4 байта заголовок (адрес длина) и в конце файла - 2 байта контрольная сумма.
    • Откорректировано изображение плёночной клавиатуры.
    • Если при сохранении такой bin,wav,tap файл уже существует, то создаётся файл с номером в скобках в конце имени.
    • Внутренняя обработка звука полностью в double, чтоб не перекодировать туда-сюда в разных местах.
    • Убрано автовыравнивание звука.
    • Фикс драгндропа и запуска с командной строки, в этом случае принудительно запускается БК10, как задумывалось с самого начала. Этот метод поломался при введении кастомных настроек для каждой конфигурации.
    • Изменён формат и структура скрипта. См документацию.
    • Фикс модального окошка сообщений. Оно иногда пряталось под основным окном, теперь всегда на переднем плане.
    • Проверка имён сохраняемых файлов на запрещённые в Windows символы. И корректировка естественно. При этом обратно такой bin файл уже не прочитается. Например: если в файле есть символ ':' - "ABC:DEF" то оно заменится на символ '_'. Но эмуляция чтения кассеты БК будет искать на диске файл именно с именем "ABC:DEF" и не найдёт естественно. Решения разрешения такого конфликта пока не найдено.
    • Уточнена эмуляция битов 2 и 3 регистра 177716.
    • Сделана возможность свернуть полноэкранное окно в некоторых режимах. А в Direct3D - не получилось.
    • Более корректный вывод информации в диалогах выбора выбора образа дискеты, менеджере лент, и диалоге выбора bin,wav,tap файлов в менеджере лент.
    • Усовершенствован парсер wav в bin. Но лучше не стало.
    • Автовыравнивание добавлено к принимаемому wav при эмуляции кассеты. Улучшения микроскопические, почти незаметно.
    • Любая клавиша клавиатуры WIN теперь работает как переключатели раскладки РУС/ЛАТ. Это немного облегчит жизнь людям, не имеющим классической 102 кнопочной клавиатуры. Т.к. хоть одна клавиша WIN на клавиатуре всё же есть.
  2. BKDE:
    • Исправлена ошибка при работе с дисками Андос.
    • Уточнение обрезки имён файлов при импорте файлов с длинными именами в образы.
    • Добавлена возможность выбора формата bin сохраняемого файла - длинный или короткий, по умолчанию используется короткий.
    • Добавлена поддержка ещё одного формата bin: 4 байта заголовок (адрес длина) и в конце файла - 2 байта контрольная сумма.
    • Фикс дрангдропа, теперь нельзя дропнуть файлы в ещё не открытый образ.
  3. BKTurbo8:
    • Метка может начинаться с символа $, теперь это буква.
    • Фикс парсера чисел в формате float.
    • Исправлена ошибка с комментариями после .ascii.
    • Добавлена псевдокоманда .include, позволяющая включать в текст программы другие тексты программ. Вложенность ограничена доступным ОЗУ системы, но с защитой - нельзя повторно включить уже однажды включенный файл в цикле вложенности.
    • Исправлена ошибка в обработке команды "." (текущий PC).
  4. Дополнения в документации, и исправление опечаток.

 

v3.10.1902.7206 Дата: 19.02.2019 12:55:00

BK_v3.10_src.7z (5.7M)
BK_v3.10_x64.7z (7.0M)
BK_v3.10_x86.7z (6.1M)
BK_v3.10_x86_WinXP.7z (6.0M)

В качестве эксперимента, данный релиз собран в Visual Studio 2017, поэтому для работы может понадобитьсяVC redistributable 2017. Хотя для Windows XP и без него всё работает, видимо VC_redist 2015 достаточно.

  1. Изменения в эмуляторе:
    • Изменён алгоритм эмуляции на безфреймовый, поэтому решено увеличить номер версии эмулятора.
    • Немного доработан скриптообработчик, и в него добавлен код, выполняющий нажатие на кнопку "СТОП". Пример прилагается.
    • Исправлен очень старый баг - не отображались иконки в отладчике под Windows XP, причиной оказались файлы иконок не той системы, слишком современные для такой древней ОС
  2. В HDDImageMaker добавлена полноценная реализация нового формата образа HDD - hdix, но с внедрением его в эмулятор возникли сложности, поэтому он пока бесполезен. Попутно найдены и исправлены грамматические ошибки в пользовательском интерфейсе.
  3. Из исходников удалена версия BKDE v1, оставлена только v2, потому что она лучше, и наконец-то более-менее отлажена.
  4. В BKTurbo8 уточнены методы работы с числами с плавающей точкой и исправлены ошибки в командах кодирования в формат RADIX-50.
  5. Везде, где было, поправлены даты в строчках копирайта, поэтому всё пересобрано.

 

v3.9.1812.7029 Дата: 10.12.2018 11:51:00

BK_v3.9_src.7z (5.7M)
BK_v3.9_x64.7z (7.1M)
BK_v3.9_x86.7z (6.3M)
BK_v3.9_x86_WinXP.7z (6.1M)

  • В BKDE2 уточнена работа с образами МК ДОС.
  • Изменения в эмуляторе:
    1. Уточнено действие поля для ручного ввода текущей частоты ЦП, и заодно пересмотрены граничные значения частот ЦП.
    2. Исправлена ошибка в эмуляции HDD для операций с 256 секторами за раз.
    3. Уточнена эмуляция работы с магнитофоном для БК-0010, теперь в точности как в ПЗУ записано.
    4. Добавлено немного асинхронности, нагрузка на процессор РС возросла, зато весь пользовательский интерфейс рисуется вне цикла фрейма, что теоретически должно привести к устранению дедлоков.

 

<<В будущее [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] В прошлое>>     Всего: 100     На странице: