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

Когда-то давно, Юрий Калмыков писал эмулятор БК-0010(01) под Windows. Но позже видимо забросил это дело и выложил исходники всем желающим.

Здесь находятся доработанный и улучшенный эмулятор Юрия Калмыкова на основе его исходников. Относительно оригинала добавлена эмуляция БК-0011, БК-0011М, AY-8910, FDD контроллеры: стандартный, A16M, СМК-512, Самарский контроллер HDD + эмуляция HDD.

Текущая версия:            Будущая версия (когда-нибудь).

Сборка Версия Описание

BK

Документация

v3.10.2005.8072

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

BKDE

Документация

v2.1.2005.633

Инструмент для просмотра содержимого образов дискет БК. Может извлекать файлы из многих популярных форматов и записывать файлы в образы форматов MKDOS, ANDOS, CSIDOS и RT-11. Так же может удалять файлы и директории из образов. А при добавлении в образ файла с уже существующим именем, его можно перезаписать. Умеет работать с реальными дискетами в реальном дисководе при наличии драйвера fdrawcmd.sys.

(Входит в состав эмулятора)

HDDImageMaker

Краткое описание

v1.2.2005.183

Инструмент для создания виртуальных HDD для контроллеров СМК-512 и Самара. Также может конвертировать уже существующие образы винчестеров АльтПро и Самара в виртуальный HDD эмулятора.

(Входит в состав эмулятора)

BKTurbo8.rar -

Кросcассемблер Turbo8, пока бета версия, но вполне рабочая. В архиве кроме исполняемых файлов есть документация (пока черновик) и примеры использования (парочка - возможно интересные).

(Входит в состав эмулятора)

BKDL.rar -

Утилита для вывода списка каталога всех образов дисков, найденных в заданной директории, и при необходимости так же и во вложенных поддиректориях. Исходники включены в архив исходников эмулятора.
Краткое описание: запуск без параметров начинает поиск образов в текущей директории (в той, которой находится программа)
Ключи:

  • -h - вызов справки по ключам и параметрам командной строки;
  • -r - рекурсивно обрабатывать так же и вложенные подкаталоги (по умолчанию выключено);
  • -c - создавать вместо списка таблицу (по умолчанию выключено);
  • -t<имя файла> - задать своё имя текстового файла;
  • -l<имя файла> - задать своё имя файла списка или таблицы.

НЕ входит в состав эмулятора.

Ссылки на скачивание актуальных версий:

v3.10.2005.8072

BK_v3.10_src.rar
BK_v3.10_x86.rar
BK_v3.10_x64.rar
BK_v3.10_x86_WinXP.rar

26.05.2020

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

  1. Откат коррекции таймингов. Людям не понравилось.
  2. Фикс звучания ковокса. Он теперь тоже только в верхнем полупериоде амплитуды будет, как все остальные источники звука.

Правка параметров проектов, теперь будет использоваться последняя установленная версия Windows SDK, и VS2019 как основной инструмент.

04.05.2020

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

  1. Исправлена ошибка отображения отрицательных смещений переходов в окне дизассемблера, внесённая в одной из прошлых сборок.
  2. Уточнение разницы коррекции таймингов выполнения команд в ОЗУ и ПЗУ. По крайней мере для БК-0010.
  3. Мелочи и косметические правки.

Изменения в BKDE: избавление от CString в ядре проекта.

Мелкие изменения в структуре всех проектов, поэтому они пересобрались с изменением версии, но без изменения функциональности.

Не забываем про необходимость VC redistributable 2017/2019 разрядности, соответствующей используемой разрядности программ. Не Windows. При запуске 32х разрядной проги на 64х разрядной винде, нужен 32х разрядный VC_redist.exe

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

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

 

Архивные версии:

v3.10.2004.7995

BK_v3.10_src.rar
BK_v3.10_x86.rar
BK_v3.10_x64.rar
BK_v3.10_x86_WinXP.rar

14.04.2020

Исправлен косяк в окошке "О программе", появившийся в сборке от 11.04.2020.

11.04.2020

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

  1. Добавлена возможность ставить на паузу воспроизводимый .wav файл. А так же остановить его и начать заново. Эта возможность доступна, пока файл не будет воспроизведён до конца. Была идея сделать управление воспроизведением .wav через бит управления мотором магнитофона, но оказалось, что очень немногие нестандартные загрузчики используют эту возможность. Кнопки управления - в панели "Управление чтением/записью лент"
  2. Добавлена опция, управляющая размером и формой создаваемых скриншотов. Опция изменяется вручную, только через редактирование bk.ini. Находится в секции "[Main]", называется "Origin screenshot size", её значение по умолчанию - "No", т.е. выключена. Если её включить, то скриншоты сохраняются в своём оригинальном размере: 512х256 без масштабирования до размеров viewport'а.
  3. Уточнена эмуляция клавиатуры БК. Теперь буквы при нажатии клавиши "Шифт" лат.стр. приводятся к лат.загл., а лат.загл не меняются, рус.загл. приводятся к рус.стр., а рус.стр. не меняются. Если выключить опцию "Эмулировать клавиатуру БК", то поведение модификатора "Шифт" становится обычным, как на ПК, т.е. меняет регистр со строчного на заглавный и наоборот.

 

v3.10.2003.7958

BK_v3.10_src.rar
BK_v3.10_x86.rar
BK_v3.10_x64.rar
BK_v3.10_x86_WinXP.rar

05.03.2020

Изменения:

  • Эмулятор:
    1. Добавлена опция "Сглаживание" которая включает и выключает сглаживание экрана средствами драйверов видеокарты. Работает в OpenGL, Direct2D, Direct3D и не работает в VFW, т.к. там в принципе нет такой возможности. Найти её можно в меню "Вид" и на панели инструментов.
    2. Починено поведение кнопки СТОП на виртуальной клавиатуре.
  • Починена конвертация образов в утилите HDDImageMaker, так же эта логическая ошибка могла затронуть и утилиту BKHDDTool, так что и она, возможно, стала работать как раньше.

 

v3.10.2001.7927

BK_v3.10_src.rar
BK_v3.10_x86.rar
BK_v3.10_x64.rar
BK_v3.10_x86_WinXP.rar

31.01.2020

  • Исправление ошибки в захвате видео, вызывающей крах эмулятора.
  • Исправление обнаруженных разных мелких ошибок.

16.01.2020

Изменения:

  1. Эмулятор:
    • Добавлена возможность захвата видео с экрана. Документация к эмулятору пока не обновлена, поэтому подробности тут:

      Добавлена новая панель инструментов с двумя кнопочками - начать захват и остановить захват. Панель по умолчанию скрыта, показать её можно из меню "Вид"->"Панели инструментов и закрепляемые окна".

      Файл ffmpeg.exe в комплект не входит, его нужно скачивать самостоятельно и поместить в директорию к исполняемому файлу эмулятора. При отсутствии этого файла на месте, кнопки панели инструментов захвата будут неактивны. Наличие файла проверяется один раз при запуске эмулятора, так что если поместить ffmpeg.exe на место при запущенном эмуляторе, неактивные кнопки сами собой не активируются, надо перезапустить эмулятор.

      Захваченное видео сохраняется в директории Screenshots. Так же туда отдельным файлом сохраняется и звук. Они рассинхронизированы, и мне не удалось их синхронизировать.

      Параметры запуска ffmpeg.exe находятся в файле bk.ini в секции [Main] в ключе FFMPEG Cmd Line. Можете сами их менять как хотите, нельзя только менять или удалять параметр "-s %dx%d" - это подставляемое разрешение буфера захватываемого кадра.

      Если самостоятельно закрыть окно консоли ffmpeg.exe или задать неправильные параметры, из-за которых ffmpeg.exe сам завершится, то это приведёт к полному зависанию эмулятора, прибить его можно будет только из диспетчера задач. И это не лечится.

      И если у вас не SSD, приготовьтесь к подтормаживаниям во время захвата. Пока захваченные данные сбрасываются на диск, эмулятор замирает, т.к. захват звука не сделан в отдельном потоке, пока что я вообще сомневаюсь в нужности всего этого нововведения.

  2. BKDE:
    • Исправлена ошибка в добавлении файлов в образы RT-11, оказывается, файл без атрибутов не считался файлом. Теперь всё как надо.
  3. BKTurbo8:
    • Реализована команда из MACRO-11 ^C - инверсия аргумента.

 

Архив изменений