Эмулятор БК-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.13.2403.10671 Дата: 25.03.2024 12:39:19

BK_v3.13_src.7z (6.6M)
BK_v3.13_x64.7z (7.9M)
BK_v3.13_x86.7z (7.4M)
BK_v3.13_x86_WinXP.7z (7.3M)

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

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

 

Предыдущие сборки:

v3.13.2403.10667 Дата: 12.03.2024 10:50:54

BK_v3.13_src.7z (6.6M)
BK_v3.13_x64.7z (7.9M)
BK_v3.13_x86.7z (7.4M)
BK_v3.13_x86_WinXP.7z (7.3M)

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

  1. Исправлены функции внутреннего доступа к памяти, которыми пользуются окна дампа памяти и дизассемблера.
  2. Ещё раз откорректирована эмуляция Менестреля.

P.S. В BKTurbo8 теперь после аргументов команд .asciz, .ascii, .rad50 можно писать другие команды, раньше это считалось ошибкой.

P.P.S. Поскольку мне не понравилось, как сжимает винрар 7, то было решено перейти на 7z, оно оказалось существенно лучше, так что откатываться к винрару 6, смысла нету.

 

v3.13.2402.10648 Дата: 25.02.2024 10:02:32

BK_v3.13_src.7z (6.6M)
BK_v3.13_x64.7z (7.9M)
BK_v3.13_x86.7z (7.4M)
BK_v3.13_x86_WinXP.7z (7.3M)

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

  1. Улучшения контроля над командой шаг с обходом, корректно останавливаемся, если адрес возврата поменялся.

    Например:
    JSR R1,TEXT
    .ASCIZ "Сообщение"
    .EVEN
    NOP
    Останов произойдёт на команде NOP за псевдокомандой .EVEN
  2. Уточнение документации
  3. Уточнение эмуляции Менестреля
  4. Исправление ошибки эмуляции команды XOR

 

v3.13.2401.10604 Дата: 19.01.2024 08:43:27

BK_v3.13_src.7z (6.6M)
BK_v3.13_x64.7z (7.9M)
BK_v3.13_x86.7z (7.4M)
BK_v3.13_x86_WinXP.7z (7.3M)

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

  1. В настройках добавлена кнопка для создания образа пустой дискеты
  2. Исправлена опечатка в BKKbdButn.cpp из-за которой глючили некоторые символы пунктуации
  3. Кнопка СТОП переназначена на F12, если не работает, надо сбросить в настройках: клик правой кнопкой на меню или тулбаре, выбрать пункт "Настройка...", во вкладке "Клавиатура" кнопка "Сбросить все"
  4. Добавлена эмуляция JCUKEN раскладки, выбирается в опциях.
  5. Рефакторинг.

Изменения в остальных программах:

  • Рефакторинг.

 

v3.13.2310.10556 Дата: 27.10.2023 12:17:02

BK_v3.13_src.7z (6.6M)
BK_v3.13_x64.7z (7.9M)
BK_v3.13_x86.7z (7.4M)
BK_v3.13_x86_WinXP.7z (7.3M)

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

  1. Перевод исходников на C++17 и кодировку utf-8.
  2. Фикс установки базовой частоты. Теперь она та, которая задаётся в опциях.
  3. Улучшена эмуляция клавиатуры, Капслок однозначно указывает на заглавные символы.
  4. В режиме коррекции смещения амплитуда звука повышается в 2 раза.
  5. Исправление неточности в сохранении конфига в сохранениях. Теперь там сохраняется вся необходимая информация.
  6. Мелкие улучшения/изменения в интерфейсе пользователя

Изменения в остальных программах:

  • Рефакторинг, ничего нового


 

v3.13.2309.10391 Дата: 11.09.2023 10:25:55

BK_v3.13_src.7z (6.7M)
BK_v3.13_x64.7z (8.0M)
BK_v3.13_x86.7z (7.4M)
BK_v3.13_x86_WinXP.7z (7.4M)

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

  1. Уточнение диспетчера прерываний. IRQ1 по клавише СТОП теперь работает корректно. И блокировка клавиши СТОП командами SUB (PC),(SP) RTI теперь работает.
  2. Исправление бага в работе ВЕ-таймера после добавления эмуляции К1801ВМ1Г в прошлом релизе.
  3. Экспериментальные изменения со сбросом бита готовности в 177660, он теперь сбрасывается через некоторое время после чтения регистра 177662. Возможно это совсем неправильная фича и её надо будет убрать потом.
  4. Найдена и исправлена ошибка, когда размер экрана при запуске внезапно сбрасывался на значения по умолчанию 1024х768.
  5. Исправлена неправильно работавшая функция DC Offset для спикера.
  6. Исправлена ошибка - не сохранялось переназначение битов джойстика.

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

  1. Добавлена опция ограничения размера образа, если геометрия не совпадает с фактическим размером. И заодно и возможность коррекции геометрии до фактического размера - на выбор, желающим того или этого.
  2. Добавлены визуальные улучшения от Scalolaza - цвет прогрессбара при нормальной работе - зелёный и красный при ошибках.

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

  1. Исправлена ошибка, когда включались ранее включённые инклуды, которые могли быть включены в других инклудах.

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

  1. Добавлен парсер образов, улучшена работа с размерами разделов, исправлена неправильная работа с разделами меньше 800К (размера дискеты).

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

  1. Добавлена поддержка образов экзотических ОС. Только по чтению, т.к. никакого физического смысла в них нету. И всего существует только по паре сохранившихся образов дискет с этими ОС, на которых всё равно не было ничего интересного.

 

v3.13.2305.10355 Дата: 12.05.2023 14:35:21

BK_v3.13_src.7z (6.7M)
BK_v3.13_x64.7z (8.0M)
BK_v3.13_x86.7z (7.2M)
BK_v3.13_x86_WinXP.7z (7.4M)

Добавлены новые опции эмуляции. Они редактируются только вручную из ини файла bk.ini, чтобы кому не надо не злоупотребляли. Находятся в секции [Main].

  • Emulate C Bug - опция эмуляции бага флага признаков C. Описание где-то было, когда найду, опишу в документации. По умолчанию включена.
  • Emulate 177702 behavior - опция эмуляции верного поведения регистра 177702. Это когда в него что-нибудь запишешь, и он пропадает с шины. По умолчанию включена. Рекомендуется выключить, для того, чтобы программно определять эмулятор/реальное железо. Если выключена, то при записи в регистр, он с шины не пропадает, но из него читается всегда число 177777.
  • Emulate CPU 1801VM1G - опция включает особенности процессора К1801ВМ1Г: аппаратную команду MUL и прерывание от ВЕ-таймера. По умолчанию выключена.
  • Emulate EIS Instructions Set - опция включает аппаратное выполнение инструкций MUL, DIV, ASH, ASHC. По умолчанию выключена.
  • Emulate FIS Instructions Set - опция включает аппаратное выполнение инструкций FADD, FSUB, FMUL, FDIV. По умолчанию выключена.

Последние три опции - исключительно для экспериментов. Потому что, включение их может поломать кучу софта, который использует опкоды этих инструкций в своих целях. Например, Andos 3.1. не работает на процессоре К1801ВМ1Г т.к. использует опкоды инструкции MUL для своих системных вызовов.

 

v3.13.2304.10353 Дата: 10.05.2023 10:44:21

BK_v3.13_src.7z (6.7M)
BK_v3.13_x64.7z (8.0M)
BK_v3.13_x86.7z (7.4M)
BK_v3.13_x86_WinXP.7z (7.4M)

Изменения:

  1. Правка бага, который нашёл KUVO - глюки отладки при нечётном PC.
  2. Добавлена опция для задания разного вида формата имени файла скриншота.
  3. По просьбе Gryphona распространяем опцию "Останов CPU после запуска эмулятора" на загрузку состояния.
    Теперь, если включить эту опцию и сохранить с ней состояние, то оно при загрузке выведет эмулятор в отладочный останов, и его надо будет запускать руками.
  4. Сэмулировано поведение регистра 177702, теперь, если в него что-нибудь записать, он исчезает, пока не будет выполнена команда EMT или перезагрузка.
  5. Возня с пользовательским интерфейсом:
    • Добавлено немного иконок;
    • Добавлена на тулбар кнопка, чтобы делать прерывание по вектору 100 или 270;
    • Разделено слишком большое меню "Конфигурация" на два: "Конфигурация" и "Управление";
    • В окне "О программе" обычный текст заменён htmlкой для красоты.
  6. Обновлена документация по формату MSF до актуальной версии.

 

v3.13.2302.10260 Дата: 14.02.2023 16:29:29

BK_v3.13_src.7z (6.7M)
BK_v3.13_x64.7z (8.0M)
BK_v3.13_x86.7z (7.4M)
BK_v3.13_x86_WinXP.7z (7.4M)

Вспомнил, что было таки новое в эмуляторе версии v3.13.2301.10250. Manwe наткнулся на неприятный баг, когда при отладке на очередном шаге попадаешь на начало области перехвата (типа ввода-вывода дисковода или эмуляции чтения/записи кассеты) вдруг внезапно теряется контроль и неожиданно для себя появляешься уже на точке выхода из перехвата. А их может быть несколько - штатная и по какой-либо ошибке. И что происходит - непонятно. Я подправил логику работы, чтобы перехват был не внезапный, а при сделанном шаге отладки. Но это выявило ещё одну старую логическую ошибку, на которую наткнулся уже Shestipalov: если отключить перехват ввода-вывода дисковода, эмулятор тупо зависал в бесконечном цикле ожидания.

И вот, релиз с исправлением этой ошибки.

 

v3.13.2301.10250 Дата: 27.01.2023 13:06:30

BK_v3.13_src.7z (6.7M)
BK_v3.13_x64.7z (8.0M)
BK_v3.13_x86.7z (7.4M)
BK_v3.13_x86_WinXP.7z (7.4M)

Хотел было выложить обновлённый BKTurbo8, в котором обнаружилось столько ошибок, что он, можно считать, был неработоспособен, но оказалось, что из-за масштабного рефакторинга исходников, только одни исходники BKTurbo8 обновить в архивах невозможно. Поэтому пришлось делать незапланированный релиз.

Нового ничего. Только рефакторинг. И исправление множества ошибок BKTurbo8.


 

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