Здесь будут выкладываться
текущие сборки новой версии эмулятора. Он построен по модульному принципу. Там
когда-нибудь будет можно собирать нужную конфигурацию из набора разных модулей.
Проблема как раз в том, что не придумывается конфигуратор конфигураций, самая
фишка-то и не работает. Используется набор уже жёстко сформированных конфигураций.
Из нового - присутствует модуль блока ИРПС. А из-за того, что конфигуратора
нет, он по умолчанию включён во все конфигурации. И не отключается (кроме
конф. AZBK, там он принудительно отключён и включить его нельзя). И для правильной
работы с Бейсиком БК10/БК11 или Фокалом БК10 его надо соответствующим образом
настроить.
Прожорливость и требовательность к ресурсам возросла.
Начиная с версии b4.6.2512.9919 поддержка Windows XP прекращена, минимальной версией
становится Windows 7. Но и это, судя по всему, не сильно надолго, через пару лет минимальной версией станет Windows 10, так что готовьтесь.
Добавлен MCP-сервер от Никиты Зимина, работоспособность не проверялась, т.к. поддержка и реализация полностью возложена на Никиту.
В алгоритме загрузки сохранений найдена и исправлена ошибка, из-за которой параметры фрейма оказывается применялись не все, из-за чего сбивалась работа ВЕ-таймера и синхронизация с ним. Ещё, оказалось, что в кастомный блок сохранения конфигурации AZBK попало лишнее - временные указатели, из за чего сохранение, сделанное в 32-разрядной версии, нельзя было загрузить в 64-разрядной и наоборот. Это поправлено и теперь все старые сохранения конфигураций AZBK стали неработоспособны.
Возвращён старый алгоритм масштабирования экрана, который был до прошлой версии. И немного улучшено переключение между оконным и полноэкранным режимами.
Добавлена возможность вывода номера и типа страницы памяти в потоковый дизассемблер в виде префикса к адресу. Возможность опциональная, поэтому в меню "Отладка" добавлены опции по управлению потоковым дизассемблером. Для потокового дизассемблера взят свежий код от Patrona. Поэтому теперь есть опция отмены сворачивания циклов, но её надо в ini файле редактировать, т.к. это произвольное целое положительное число. Подробности в документации.
BKTurbo8:
Скриптовой команде $type добавлена возможность вывода на экран одного аргумента. Описание и способы применения в документации.
Скорректирован механизм обработки в скрипте значений меток присваиваний. А то там совсем непотребство было.
Исправлена ошибка парсинга очень длинных чисел. Теперь длина числа может быть ничем не ограничена, всё равно останется лишь то, что влазит в младшие 16 бит.
Слегка подкорректирован механизм обработки ошибок синтаксиса и парсинга.
Исправлена ошибка в определителе формата .bin, из-за чего многое могло читаться не так, если подсовывать файл в не .bin формате.
Версия из окна About по клику левой кнопкой мыши на ней теперь копируется в буфер обмена.
BKDE:
Исправлена ошибка при удалении файлов/каталогов из образа. Иногда получалось рекурсивное удаление уже удалённого и крах программы.
BKTurbo8:
Для псевдокоманд .word, .byte, .blkb, .blkw ослаблен синтаксис, и допускается отсутствие аргумента, при этом подразумевается значение по умолчанию, для .word/.byte - 0, для .blkb/.blkw - 1.
Коррекция работы с арифметическими выражениями, в которых в качестве аргумента присутствует точка.
Так же, теперь все консольные утилиты: BKHDDTool, ITCPC, BKTurbo8 и его вспомогательные инструменты, можно собрать в Линуксе.
И ещё, скрипт, меняющий версию, переписан на Python, так что и он теперь нужен для самостоятельной сборки отладочных версий. Хотя я не думаю, что кто-то этим занимается, так что не страшно.
Новость №1: Дальнейшее развитие и исправление ошибок в эмуляторе v3.x прекращено. Из-за того, что исходники версий 3 и 4 стали слишком сильно различаться, и перетаскивать изменения из версии 4 в версию 3 стало слишком затратно. Основной версией эмулятора становится версия 4, и все улучшения будут делаться только в ней. Но она пока побудет в статусе Бета, из-за доделок в эмуляции AZBK и слишком уж кривой реализации эмуляции ИРПС.
Новость №2: Начиная с этой версии поддержка Windows XP прекращена из-за перехода на стандарт языка C++20.
Исправления в эмуляторе
Исправлена опечатка в коде ассемблера из-за которой невозможно было указать максимальную длину перехода для команды SOB.
Исправлена ошибка в эмуляторе диспетчера прерываний, из-за которой некоторые прерывания происходили, когда уже были не нужны и не должны.
Добавлен автодетект Covox, который не всегда хорошо работает, поэтому отключаемый.
В ассемблер добавлены простые арифметические выражения и оператор "точка", обозначающий текущий адрес, заодно бонусом добавлены операторы 'A и "AB (один символ и 2 символа), все они могут быть аргументами выражения, т.е. их можно складывать и вычитать друг из друга. Однако числа - только восьмеричные. Подробнее - в документации.
В BKDE подкорректирован просмотрщик файлов и устранены потенциальные ошибки в обработке каталога RT-11.
В BKTurbo8 добавлен errorlevel, а в документации описать забыл, значения пока надо смотреть в исходниках, там неочевидно. Заодно добавлено немного мелких удобств в менеджер ошибок.
Опечатка в маппере СМК-512 - в режиме 060 были перепутаны сегменты 4 и 5. Это было с самого начала и никто не заметил, кроме reddie, однако это должно было фатально сказываться на работе с памятью контроллера.
Новый функционал - по Alt-Enter из окна дизассемблера можно установить значение регистра PC из строки под курсором. Комбинация Ctrl-Enter зарезервирована на будущее, на всякий случай, раньше действовала как просто Enter.
Добавлена новая команда отладки - пропустить команду. Горячая клавиша - Alt-F10. Действует просто - текущая команда не выполняется, а PC устанавливается на следующую команду за текущей.
Добавлена эмуляция бага предвыборки MOVB PC,Rn, где Rn != PC. Включается/выключается только из файла bk.ini, параметром "Emulate MOVB Prefetch Bug" в секции "[Main]". По умолчанию включена, если параметра ещё нет, то он появится после первого запуска эмулятора.
Приведение блиттера к актуальной версии и ускорение его работы
Добавлена команда 047
Найдена ошибка в ресемплере Tape (но оно как работало плохо, так и работает плохо)
Исправлена ошибка сохранения дампа без заголовка .bin в окне дампа памяти
Добавлено содержимого окон дампа регистров и карты распределения памяти при изменении регистров 177716 mem и регистров АльтПро. (по наводке от surf148)
Полностью переделан скриптовый движок, чтобы реализовать пожелание BlaireCas, описание в документации.
Начато добавление поддержки сети. Оно даже как-то работает, но требует тестов и проверок.
Исправлены некоторые ошибки, о которых вы никогда бы и не узнали. На которые я случайно наткнулся. В том числе исправлена неточность эмуляции клавиатуры.