Эмулятор БК-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.2001.7927

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

BKDE

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

v2.1.2001.613

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

HDDImageMaker

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

v1.2.1911.175

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

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

BK_v3.10_src.rar

Архив с исходниками.

BK_v3.10_x86_WinXP.rar

Архив с исполняемыми файлами, работающими на Windows XP.

BK_v3.10_x86.rar

Архив с исполняемыми файлами для 32-х разрядных версий Windows.

BK_v3.10_x64.rar

Архив с исполняемыми файлами для 64-х разрядных версий Windows.

BKDE.rar

На всякий случай, утилита BKDE, которая входит в состав эмулятора, отдельно. Всё-таки какая-никакая польза от неё есть, это версия x86, с поддержкой Windows XP.

BKTurbo8.rar

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

BKDL.rar

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

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

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

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

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

 

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 - инверсия аргумента.

 

25.12.2019

Изменения в BKDE:

20.12.2019

Изменения в BKDE:

18.12.2019

Изменения в BKDE:

10.12.2019

Ссылки на скачивание архивной версии:

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

 

28.10.2019

25.10.2019

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

Ссылки на скачивание архивной версии:

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

 

03.09.2019

Ссылки на скачивание архивной версии:

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

 

05.08.2019

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

30.07.2019

23.07.2019

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

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

Ссылки на скачивание архивной версии:

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

 

10.07.2019

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

Ссылки на скачивание архивной версии:

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

 

21.06.2019

Изменения:

  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. Дополнения в документации, и исправление опечаток.

Ссылки на скачивание архивной версии:

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

 

19.02.2019

В качестве эксперимента, данный релиз собран в 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. Везде, где было, поправлены даты в строчках копирайта, поэтому всё пересобрано.

Ссылки на скачивание архивной версии:

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

 

10.12.2018

Ссылки на скачивание архивной версии:

BK_v3.9_src.rar BK_v3.9_x86.rar BK_v3.9_x64.rar BK_v3.9_x86_WinXP.rar

 

15.10.2018

Ссылки на скачивание архивной версии:

BK_v3.9_src.rar BK_v3.9_x86.rar BK_v3.9_x64.rar BK_v3.9_x86_WinXP.rar

 

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