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

Руководство пользователя.
Эмулятор БК 0010(01) и БК 0011(М) для Windows XP / 7 / 8 / 10.
Версия 3.11.

Изображение БКшки

Аннотация

Данный эмулятор работает под управлением 32/64 битной операционной системы Windows XP SP3 и выше (поддержка Windows XP будет прекращена после того, как микрософт полностью выпилит средства компиляции под Windows XP из Visual Studio, и минимальной ОС станет Windows 7), и эмулирует компьютеры «БК 0010(01)» и «БК 0011(М)» в различных конфигурациях. В состав эмулятора входят две утилиты «BK Disk Explorer» - утилита для работы с образами дисков БК и «HDD Image Maker» - утилита для создания образов винчестеров, применимых к контроллеру СМК-512. Образ винчестера имеет свой формат и жёстко заданный размер, определяемый параметрами: количество дорожек, головок, секторов на дорожке, в соответствии со спецификацией ATA.

Эмулятор распространяется в архиве, помимо исполняемого файла там находятся динамические библиотечные файлы рендеров экрана и анализатора огибающей звука, конфигурационный ini файл и следующие служебные папки:

Bin\

– директория по умолчанию для хранения программ для БК в формате bin. Обзор проводника начинается с этой папки. Пользуясь средствами навигации проводника, можно перемещаться и читать файлы из любого места вашего компьютера.

Docs\

– документация к эмулятору. А так же разные полезные документы из комплекта документации к компьютерам БК10/11.

Img\

– директория по умолчанию для хранения образов дискет для БК и образов HDD для БК. Обзор проводника начинается с этой папки. Пользуясь средствами навигации проводника, можно перемещаться и читать файлы из любого места вашего компьютера.

Memory\

– записанные состояния памяти определённых конфигураций БК.

Rom\

– прошивки ПЗУ. Это обязательная директория, с некоторым обязательным набором прошивок ПЗУ. Туда можно добавлять свои ПЗУ, но нельзя удалять или переименовывать базовые. Чтобы использовать своё ПЗУ вместо базового необходимо отредактировать файл bk.ini. (Поместить в директорию свой файл и задать в ини файле имя файла своего ПЗУ.)

Screenshots\

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

Scripts\

– скрипты эмулятора. (Мало кому нужный рудимент. К тому же скриптовый движок крайне примитивен и не развивается.)

Tapes\

– директория по умолчанию для хранения wav и tap файлов кассет для загрузки с магнитофона. Обзор проводника начинается с этой папки. Пользуясь средствами навигации проводника, можно перемещаться и читать файлы из любого места вашего компьютера.

Tools\

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

UserSaves\

– любые файлы, сохраняемые пользователем, если включена соответствующая опция. Если возникнет необходимость не смешивать новые файлы с файлами, уже находящимися в директориях Bin и Tapes. Или, допустим, имена совпадающие будут.

Системные требования

Минимальные требования: Двухъядерный процессор, видеокарта с аппаратным ускорением OpenGL или Direct3D.

Рекомендуемые требования: Чем больше, тем лучше.

Обязательно наличие установленной библиотеки DirectX 9.0 runtime или более поздней версии, для эмуляции экрана БК с рендером Direct3D, с остальными рендерами - не обязательно.

Эмулятор на данный момент не точно совместим с реальной БК. Точность эмуляции составляет по оценкам автора примерно 80%. Но несмотря на это в нём правильно работает огромное количество программ разработанных на БК. Данная оценка является более объективной по сравнению с некоторыми другими эмуляторами, авторы которых заявляют, что они совместимы на 90% или даже 99%, хотя при первой же проверке выясняется, что по разным причинам под ними не работает большее количество программ.

Убедительная просьба: если вы обнаружили какое-либо несоответствие или вы программировали на БК, и знаете некоторые нюансы или просто обнаружили откровенные ляпы в эмуляции, сообщить об этом автору. Адрес электронной почты указан на сайте, откуда скачан этот эмулятор, либо с которого вы читаете эту документацию, а так же в окне "О программе". И это не Юрий Калмыков, хотя его почта так и оставлена в этом окне, как напоминание о родоначальнике этого эмулятора.

Автор считает своей целью оттачивание эмуляции БК вплоть до 99%, насколько это конечно возможно. Поэтому следующий автор продолжил дело и добавил эмуляцию БК11М, БК11 (без М), стандартного КНГМД и КНГМД А16М, а затем и СМК-512 и эмуляцию HDD. И Самарский контроллер НГМД+HDD.

Все пожелания, замечания обязательно будут замечены и учтены. Но не обязательно применены в ближайшее время.

Характеристики

Данная программа является программным эмулятором отечественных бытовых компьютеров БК 0010(01) и БК 0011(М). Поддерживаются конфигурации:

  • БК 0010-01 + стандартный БЕЙСИК «Вильнюс 1986»
  • БК 0010-01 + блок МСТД (Фокал и подпрограммы тестов)
  • БК 0010-01 + блок дополнительной памяти 32Кб
  • БК 0010-01 + стандартный КНГМД + расширитель памяти 16Кб
  • БК 0010-01 + блок КНГМД А16М
  • БК 0010-01 + блок КНГМД СМК-512 + HDD
  • БК 0010-01 + блок КНГМД + расширитель памяти 16Кб + SamaraHDD + HDD
  • БК 0011 + блок МСТД
  • БК 0011 + стандартный КНГМД
  • БК 0011 + блок КНГМД А16М
  • БК 0011 + блок КНГМД СМК-512 + HDD
  • БК 0011 + стандартный КНГМД + SamaraHDD + HDD
  • БК 0011М + блок МСТД
  • БК 0011М + стандартный КНГМД
  • БК 0011М + блок КНГМД А16М
  • БК 0011М + блок КНГМД СМК-512 + HDD
  • БК 0011М + блок КНГМД + SamaraHDD + HDD

Примечания.

  1. Для запуска конфигурации «БК 0011 + блок КНГМД А16М» необходимо при старте удерживать нажатой клавишу «4», для перехода в БОС БК11 и загрузки с дискеты вручную.
  2. Для запуска конфигурации «БК 0011 + блок КНГМД СМК-512» необходимо удерживать нажатыми клавиши «Шифт»+«4», для перехода в БОС БК11 и загрузки с дискеты или HDD вручную.
  3. ПЗУ контроллеров АльтПро А16М и СМК-512 используют вызовы подпрограмм из ПЗУ БОС БК 0011М, поэтому на БК 0011 не работают так, как задумано. Поэтому при использовании этих контроллеров на БК 0011 многие действия необходимо делать вручную.

Данный эмулятор корректно эмулирует все команды процессора БК, включая недокументированные команды: NOP с кодом 0260, команды останова, групповой установки и сброса битов состояния процессора, команды MARK, START, STEP, а так же биты 11 и 10 слова состояния процессора. При эмуляции команд учитывается реальное время их выполнения, и оно примерно соответствует времени выполнения на реальной БК. В секунду выполняется примерно 250 тыс. команд (точное значение зависит от самих команд и методов адресации). Также корректно эмулируются системные регистры, с учётом особенностей БК 0010 и БК 0011(М):

177660

– регистр состояния клавиатуры полностью

177662

– регистр кода клавиатуры полностью

177664

– регистр рулонного сдвига полностью

177706,
177710,
177712

– регистры таймера полностью

177714

– сам регистр эмулируется, но вывод регистра на внешние порты в/в ПК в настоящий момент не реализован.

177716

– полностью

177130

– регистр управления НГМД полностью

177132

– регистр данных НГМД полностью

Эмулятор корректно эмулирует найденный в 2019 году баг с флагом C для команд MOVB, SWAB, MFPS.

Эмулируется звук динамика БК через систему Windows WaveOut, реализован захват звука для оцифровки аудиоплёнок через систему Windows WaveIn.

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

Поддерживается два режима дисплея БК – чёрно-белый и цветной, причём чёрно-белый режим существует в двух вариантах нормальном, и адаптированном. Адаптированный вариант даёт более реальное изображение (более схожее с чёрно-белым режимом БК) в полноэкранном режиме. Эмулируется рулонный сдвиг и режим расширенной памяти.

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

Корректно обрабатывается обращение по нечётным адресам, а также обрабатывается попытка записи в ПЗУ и обращения по несуществующим адресам.

Эмулятор поддерживает распечатку экрана БК на принтере в двух режимах обычном и инверсном (для экономии тонера), а также распечатку ассемблерного кода из ОЗУ в заданном диапазоне адресов.

Поддерживается возможность сохранения текущего состояния заданной конфигурации БК, а также сохранения файлов БК на жёстком диске ПК в широко распространённом бинарном формате «.bin», или в оригинальных звуковых форматах «.wav» (фактически является копией звуковых данных и по этой причине файл в данном формате занимает много места, примерно 44100 двойных слов, умноженных на количество секунд) и «.tap» (специально изобретённый для данного эмулятора формат, файлы в данном формате примерно в 60 раз меньше чем аналогичные в «.wav»). Этот формат не приспособлен для хранения файлов с защитами от копирования и нестандартными модуляциями.

Реализована возможность чтения данных с кассет БК. Вывод из звуковых файлов дублируется на бит 5 (код 040) регистра 177716. Имеется встроенный менеджер кассет БК с возможностью конвертации одного формата в другой, а также захватом с линейного входа звуковой платы.

Эмулируется работа с НГМД. Поддерживается формат образа дискет БК с расширениями «.img», «.bkd» и «.dsk» (что по сути есть одно и то же, просто разные люди по разному именовали образы дискет). В настоящий момент поддерживается до четырёх приводов одновременно на стандартном КНГМД и двух - на контроллерах АльтПро.

Для контроллера СМК-512 эмулируется HDD в соответствии со стандартом ATA. Реализован IDE канал, поддерживающий два HDD - Master и Slave. Но т.к. в прошивке СМК-512 не реализована работа с двумя винчестерами, корректность работы с ними не проверена.

Встроенный отладчик позволяет отлаживать запущенные программы, просматривать и изменять на ходу текущие значения в памяти и регистрах, а также устанавливать точки останова.

Сокращённый вид

Рис.1. Общий вид эмулятора, сокращённый вид.

Полный вид

Рис.2. Общий вид эмулятора, полный вид.

Главное окно – это окно представляет экран БК. В любой момент клик мышки на этом окне приводит к перемещению фокуса ввода клавиатуры с ПК на БК. Вывод в данное окно производится в зависимости от выбранного рендера с помощью OpenGL, Direct2D, VFW или Direct3D и в большинстве случаев производится аппаратно, но не всегда. Алгоритм интерполяции при уменьшении окна, зависит от конкретной видеокарты. По этой причине качественное изображение не всегда гарантируется.

Главное меню – основное меню программы, состоящее из следующих пунктов:

Файл

– операции загрузки и сохранения данных эмулятора, печать, скриншот.

Конфигурация

– управление режимами процессора и конфигурациями БК.

Опции

– различные опции эмулятора.

Отладка

– команды встроенного отладчика.

Вид

– управление окнами эмулятора и внешним видом.

Инструменты

– вызов некоторых, определённых, вспомогательных утилит.

Справка

– информация об эмуляторе.

Панели инструментов – некоторые часто используемые команды выведены на данную панель. Большинство представленных там команд дублируют соответствующие пункты меню. Для быстрого доступа к основным функциям управления из меню, соответствующие горячие клавиши выведены на дополнительную цифровую клавиатуру. Клавиша Alt перехвачена для эмуляции клавиши АР2. Поэтому все стандартные горячие клавиши больше не работают.

Все команды разбиты на три группы, по трём панелям инструментов, и есть ещё четвёртая, самостоятельная панель инструментов вне группы:

Стандартная

Вид панели:

Стандартная панель инструментов

Описание команд будет представлено ниже. Здесь стоит сказать, что на данной панели представлено четыре кнопки, посредством которых выбирается и монтируется или отмонтируется образ дискеты в соответствующий дисковод. Все остальные кнопки дублируют соответствующие пункты меню.

При нажатии на иконку дискеты появляется диалог выбора образа, который будет примонтирован в заданный привод.

Диалог открытия образа

Рис.3. Диалог выбора образа.

Обзор образов начинается с директории по умолчанию, заданной ключом «IMG directory» в файле «bk.ini», но возможен выбор образа в любом месте компьютера, даже находящегося на сетевых дисках.

При нажатии на стрелочку вниз в правой части иконки появляется выпадающее меню, с возможными действиями над образом в приводе. Если в дисководе было пусто, то отобразится меню следующего вида:

Пустое меню

Всего два пункта: "Выгрузить" и имя примонтированного образа, для пустого дисковода - пусто. Скрывать пункт "Выгрузить" для пустого привода было сочтено нецелесообразным, т.к. выпадающее меню получалось уж совсем непонятным.

Если в дисководе был примонтирован какой-либо образ, то появится такое меню:

Мено для образа

Внизу меню отображается имя файла примонтированного образа, и два возможных действия: "Выгрузить" - отмонтировать образ, т.е. вынуть дискету из дисковода. И "Открыть в BKDE" - передать файл образа в утилиту BKDE для редактирования. Если при запуске эмулятора, он не найдёт утилиту BKDE в директории "Tools", то пункт "Открыть в BKDE" в меню не появится. На время работы BKDE эмулятор приостанавливается полностью, это выглядит как полное зависание программы. Если при этом BKDE аварийно завершить, или прибить в диспетчере задач, эмулятор так в таком состоянии и останется. Его можно будет только так же прибить в диспетчере задач. Так что пользоваться с осторожностью. И естественно, после внесения изменений в образ, эмулятор ничего не будет об этом знать, так что обновление данных для БКшных ОС - задача пользователя.

Звук

Вид панели:

Звуковая панель инструментов

Описание команд будет представлено ниже. На данной панели присутствует слайдер, для быстрого доступа к регулировке громкости звука эмулятора. Все остальные кнопки дублируют соответствующие пункты меню.

Отладка

В процессе работы

 

Во время отладки

Отладочная панель инструментов
 
Отладочная панель инструментов

Описание команд будет представлено в подробном описании отладчика. (которого нигде нет, а писать самостоятельно пока нет желания. Вкратце - обычные стандартные команды отладчика)

Захват видео

Вид панели:

Панель инструментов захвата видео

Это единственная панель, команд которой вообще нет ни в каком меню, подробнее о функциях читайте в разделе Захват видео.

Панель состояния

На данной панели отображаются текущие внутренние параметры эмулятора:

  • Scr: X x Y – отображается текущий размер экрана. 1024 х 768 - максимум, размер экрана свободно масштабируется в сторону уменьшения, для увеличения существует полноэкранный режим. При повсеместном распространении 4K мониторов эта ситуация будет изменена.
  • FPS: N – текущее количество кадров в секунду. Это плавающий параметр, из-за того, что частота кадров БК - 48,8Гц, его значение постоянно колеблется между числами 48 и 50. Если долго отличается от заданного, то существует два объяснения. Первое: если оно больше – то это значит, что что-то не так с Windows или материнской платой. Главным образом из-за того, что полностью отсутствует или неисправна звуковая подсистема. Второе: если оно меньше – это значит, что ваш компьютер не справляется. Обычно это происходит от того, что какое-то другое приложение активно использует ресурсы процессора, но может быть и действительно - ваш компьютер слишком слаб.
  • CPU: Z Hz – текущая частота работы процессора. Её можно произвольно увеличивать / уменьшать в заданных пределах, либо из меню с шагом 1000 Гц, либо из панели дампа регистров произвольно.
  • Uptime hh:mm:ss. – внутренние часы, показывают, сколько времени запущена программа. Зачем это нужно, не знаю, но убирать не хочется.

Руководство по запуску программ

Загрузка и запуск .bin файлов на БК 0010(01)

После запуска эмулятора в любой конфигурации БК 0010(01), первое, что необходимо сделать для запуска программы в кодах, это перейти в монитор БК. Монитор визуально отличается своим приглашением ввода пользователя которое выглядит как вопросительный знак «?». Из БЕЙСИКа выход в монитор осуществляется командой «МО » (MONIT). Из Фокала можно выйти по команде «P M ». Монитор БК поддерживает следующие команды:

От «А» до «K» - переход обратно в Бейсик или Фокал, в зависимости от конфигурации. На самом деле происходит вызов подпрограммы по адресу 120000. В общем случае, по данному адресу может находится что угодно.

«M » - загрузка файла с магнитофона. В эмуляторе загрузка осуществляется с диска ПК. По умолчанию из директории «Bin». Имя данной директории можно поменять, изменив ключ «Program directory» в файле «bk.ini». На приглашение «Имя ?» можно просто нажать «», после чего появится стандартный диалог открытия файла. Также вместо простого нажатия «», можно набрать имя запускаемой программы. Файлы программ обычно имеют расширение «.bin».

«S [адрес] » – запуск загруженной программы с указанного адреса. Запускает только что загруженную программу с адреса, указанного после команды «S». Например команда «S 1000 » запускает программу с адреса 1000 (типичный адрес запуска программ на БК). Также можно после «S» сразу нажать «» ничего не указывая. При этом программа начнёт выполнение с адреса, указанного в заголовке загруженного файла. Это наиболее рекомендуемый способ запуска, т.к. далеко не все программы имеют адрес запуска 1000. Только для конфигураций БК 0010 + КНГМД (БК 0010(01) с FDD): команда «S 160000» запускает начальный загрузчик системной дискеты. Поиск системной дискеты осуществляется сначала в приводе «A:», а потом в приводе «B:».

«Т » – запуск программы тестов, зашитой в ПЗУ. Данная команда запускает тесты различных узлов БК. Тесты зашиты в ПЗУ блока МСТД. В эмуляторе данная конфигурация называется «БК 0010-01 + блок Фокал-МСТД». На самом деле команда вызывает подпрограмму, зашитую в ПЗУ по адресу 160100, и в других конфигурациях её действие может отличаться.

Более подробно об этом читайте в документе 00001-01.32.03.

Клик на любом «.bin» или «.msf» файле приводит к запуску эмулятора (если он не загружен), загрузке содержимого этого файла и запуску на исполнение. Клик на файле скрипта, также приводит к запуску данного скрипта. Скрипты могут быть использованы для автоматизации набора часто используемых команд или для быстрого набора текста. Скрипты обычно имеют расширение «.bkscript».

Но гораздо проще воспользоваться эмулятором дисковода, загружаться с образа дискеты и использовать возможности файлового менеджера какой-нибудь ОС, которая находится на дискете.

Загрузка и запуск .bin файлов на БК 0011(M)

Для БК11(М) не реализована эмуляция чтения с магнитофона как для БК10. Поэтому для работы с магнитофоном на БК11(М) нужно выполнить или убедиться, что выполнены следующие действия:

  • Необходимо отключить в опциях пункт «Эмулировать загрузку ленты». Если нужна ещё и запись на магнитофон - отключить «Эмулировать сохранение на ленту»
  • После этого в панели инструментов и меню «Файл» станет доступен пункт «Загрузить ленту...»
  • В мониторе или Бейсике запускаем загрузку файла и жмём на «Загрузить ленту...»
  • Выбираем нужный файл (.tap, .wav или .bin, для последнего - нужно перейти в соответствующую директорию) и слушаем как он загружается.

Прервать воспроизведение можно кнопкой «Стоп» на панели управления чтением/записью лент.

Как делать загрузку файлов в мониторе или Бейсике, смотрите в соответствующей документации:

  • для БК 0011 в документах 00008-01.32.01 (Подсказка: выход из Бейсика в монитор делается командой SYS[TEM], а не MO[NITOR] как в остальных БК) и 00008-01.34.04 (там есть в том числе и описание, как зайти и выйти в Бейсик для БК 0011 без М).
  • для БК 0011М в документах 00015-01.32.01 и руководства оператора для бейсиков от БК11 и БК10.

Подробное описание функций эмулятора

Меню «Файл»

Меню Файл

Загрузить состояние...

– загрузить ранее сохранённое состояние конфигурации БК с диска. Файлы состояния БК имеют расширение «.msf», и по умолчанию хранятся в директории «Memory». Путь к данной директории можно изменить в файле настроек «bk.ini», поменяв строку с именем ключа «Memory directory». Эмулятор считывает конфигурацию, слепок памяти БК и состояние всех регистров. После загрузки выполнение программы тут же продолжается с записанного места, причём именно в нужной конфигурации (т.е. если состояние было сохранено как БК 0010-01, а текущая конфигурация БК 0010-01 + блок Фокал-МСТД, то будет выбрана конфигурация с Бейсиком). В диалоге выбора файла состояния имеется окно «Preview», в котором показывается уменьшенная копия экрана БК на момент сохранения.

Загрузка состояния

Рис.4. Диалог выбора и загрузки состояний.

Сохранить состояние...

– сохранить текущее состояние конфигурации БК на диск. Файлы состояния БК имеют расширение «.msf», и по умолчанию хранятся в директории «Memory». Путь к данной директории можно изменить в файле настроек «bk.ini», поменяв строку с именем ключа «Memory directory». Эмулятор сохраняет конфигурацию, записывает слепок памяти БК и состояние всех регистров. После записи выполнение программы продолжается дальше.

ОБРАТИТЕ ОСОБОЕ ВНИМАНИЕ! Для того, чтобы сохранения были переносимы между компьютерами и просто различными экземплярами эмулятора, все монтируемые образы дискет и HDD должны находится в директории по умолчанию для образов. Директорией по умолчанию считается директория, заданная в параметре IMG directory в секции [Directories] файла настроек «bk.ini».

Загрузить ленту...

– загрузить содержимое кассеты и запустить на воспроизведение. Файлы кассет БК могут храниться в двух форматах: «.wav» - Microsoft PCM Wave 8/16бит Моно/Стерео с любой частотой дискретизации, поддерживаемой форматом или «.tap» - собственном формате Tape. При выделении файла показывается имя записи, адрес загрузки и длина записанного файла. По умолчанию файлы кассет лежат в каталоге «Tapes». Путь к данной директории можно изменить в файле настроек «bk.ini», поменяв строку с именем ключа «Tapes directory». После нажатия кнопки «Открыть» файл загружается и воспроизводится через звуковую карту. Загрузка таких файлов выполняется точно также, как на реальной БК. Прервать воспроизведение не нужного или ошибочного файла можно кнопкой «Стоп» на панели управления чтением/записью лент. Файлы в формате «.bin» так же можно загрузить как файл с кассеты.

Скриншот

– сделать снимок экрана эмулятора БК. По умолчанию скриншоты помещаются в директорию «Screenshots», имя директории можно поменять в файле настроек «bk.ini», поменяв строку с именем ключа «Screenshots directory». Формат скриншота - png, разрешение и форма управляется опцией «Origin screenshot size». Имя файла скриншота имеет следующий вид "screenshot_xxx.png", где xxx - инкрементный счётчик. Его значение сохраняется в файле настроек «bk.ini», в ключе «Screenshot number». Когда его значение достигнет невероятно больших величин, ему можно вручную задать желаемое значение.

Опция, управляющая размером и формой создаваемого скриншота, «Origin screenshot size», находится в файле настроек «bk.ini» в секции «[Main]», её значение по умолчанию «No», т.е. она выключена. Когда опция включена, то скриншоты создаются оригинального размера, т.е. такого, какого формируется текстура кадра экрана перед выводом на экран. Если опция выключена, то скриншоты создаются размером как у viewport'а (на данный момент 1024 х 768) путём масштабирования оригинальной текстуры, со сглаживанием в процессе увеличения размеров.

Печать...

– распечатка экрана БК или ассемблерного кода из ОЗУ на принтере. Появляется модифицированный диалог настройки принтера, с возможностью выбора принтера и изменения его стандартных настроек. Также предоставляется возможность выбора двух функций:

  • «Print screen» – распечатка экрана БК в двух режимах. Если в поле «Inverse» не стоит галочка, то распечатка экрана будет производиться в обычном режиме, т.е. чёрный экран и на бумаге будет распечатан чёрным, а буквы белым или серым цветами, что приводит к неэкономному расходу тонера. Если же в поле «Inverse» стоит галочка, то экран БК будет распечатан в инвертированном режиме, экран белым (т.е. никаким), а буквы чёрным цветами. Соответственно тонера израсходуется намного меньше. Рекомендуется ставить эту опцию при распечатке большого количества листов для экономии тонера, и не ставить если необходимо получить более похожую на реальный экран БК картинку.
  • «Print code» – распечатка ассемблерного текста из ОЗУ БК. В поле «From address» нужно ввести начальный адрес программы в ОЗУ БК, а в поле «to» конечный адрес. При этом в окне «Pages» показывается точное (не примерное) рассчитанное количество листов бумаги, необходимое для распечатки всего листинга программы, что очень полезно для оценки расхода бумаги для распечатки большого кода.

Для обеих возможностей распечатки «Print screen» и «Print code», если необходимо, можно указать название программы или любую другую полезную информацию, которая будет распечатана в левом верхнем углу каждого листа. Также на каждом листе будет распечатан его номер и общее количество страниц программы.

Настройка печати...

– настройка параметров принтера.

Выход

– выход из эмулятора. По данной команде осуществляется выход из эмулятора так же, как если кликнуть мышкой по кнопке с крестиком в правом верхнем углу окна. Alt-F4 не работает, т.к. это обычное сочетание клавиш АР2 + для БК.

Меню «Конфигурация»

Меню Конфигурация

Рестарт БК

– перезагрузка БК. При выборе данного пункта меню перезапускается текущая конфигурация эмулятора, при этом осуществляется так называемый «мягкий» перезапуск, т.е. не происходит полной потери данных в памяти БК и её регистрах. Выполнение программ начинается с адреса, заданного в старших битах регистра 177716. На реальной БК10 это значение равно 100000, БК11(М) - 140000. При необходимости его можно поменять в файле конфигурации «bk.ini», изменив значение ключа «CPU start address». По умолчанию, значение в файле конфигурации равно 0, т.е. берётся стандартный адрес из соответствующей конфигурации. После перезагрузки восстанавливается конфигурация, а также все точки останова.

Реализована модификация СУ+Ресет. Это когда на БК 0011(М) необходимо перезагрузиться по адресу 100000. Для этого необходимо удерживать нажатой клавишу СУ (Ctrl) при выполнении команды Рестарт БК только из панели инструментов. Данная модификация не работает с контроллерами А16М и СМК-512, т.к. эти контроллеры помещают в регистр 177716 свои стартовые значения.

СУ+Рестарт БК

– перезагрузка БК 0011(М) с адреса 100000. Специальный пункт меню для поддержки эмуляции модификации СУ+Ресет, для того, чтобы можно было перезагрузиться так же из меню «Конфигурация», и с помощью комбинации горячих клавиш, а не только кликая мышкой по иконке на панели инструментов.

Длинный рестарт БК

– специальный режим перезапуска только для контроллера А16М. Работает только в конфигурациях с контроллером А16М, в остальных конфигурациях полностью аналогичен пункту Рестарт БК. На контроллере А16М обычный ресет работает как описано выше, но если нужно, чтобы перезапуск начинался со старта ПЗУ АльтПро, где обрабатываются специальные комбинации клавиш и происходит установка режима работы контроллера А16М, то необходим длинный ресет. На реальном устройстве - пятисекундное удержание кнопки Ресет перед тем, как её отпустить.

Старт БК 0010-01

– запуск обычной конфигурации БК 0010-01 с БЕЙСИКом «Вильнюс 1986». Данная версия БЕЙСИКа была хорошо документирована и на 80% совпадает по синтаксису с GW Basic на ПК. Карта памяти:

Адреса Описание Объём Кб.

000000000377

прерывания и системные данные

0.5

000400037777

ОЗУ пользовательской программы

15.5

040000077777

ОЗУ экрана

16.0

100000117777

Монитор

8.0

120000137777

1-е ПЗУ БЕЙСИКа

8.0

140000157777

2-е ПЗУ БЕЙСИКа

8.0

160000177577

3-е ПЗУ БЕЙСИКа

7.5

177600177777

область системных регистров

0.5

Старт БК 0010-01 + Фокал-МСТД

– запуск конфигурации БК 0010-01 с блоком МСТД – ПЗУ с интерпретатором Фокала и тестами. Карта памяти:

Адреса Описание Объём Кб.

000000000377

прерывания и системные данные

0.5

000400037777

ОЗУ пользовательской программы

15.5

040000077777

ОЗУ экрана

16.0

100000117777

Монитор

8.0

120000137777

ПЗУ Фокала

8.0

140000157777

Не используется

8.0

160000177577

ПЗУ тестов

7.5

177600177777

область системных регистров

0.5

Старт БК 0010-01 + доп. 32Кб ОЗУ

– запуск конфигурации БК 0010-01 с дополнительным блоком ОЗУ 32 Кб. Данный блок ОЗУ расширял стандартные 16 Кб ОЗУ, дополнительными 32 Кб., причём общий объём ОЗУ становился равным 48 Кб. Блок проецировался на адреса памяти 120000140000. Карта памяти:

Адреса Описание Объём Кб.

000000000377

прерывания и системные данные

0.5

000400037777

ОЗУ пользовательской программы

15.5

040000077777

ОЗУ экрана

16.0

100000117777

Монитор

8.0

120000137777

Одна из 8 кб страниц блока ДОЗУ 32К

8.0

140000157777

Не используется

8.0

160000177377

Не используется

7.5

177400177777

область системных регистров

0.5

Для подключения заданной страницы памяти нужно записать номер страницы по адресам 100000-117777. Всего 4 страницы: 0,1,2,3. Но на самом деле можно записывать вообще любое число, значимы только два младших бита этого числа, остальные игнорируются.

Старт БК 0010-01 + стандартный КНГМД

– запуск БК 0010-01 со стандартным контроллером НГМД и блоком ДОЗУ 16 Кб. В этой конфигурации эмулируется БК с подключённым к ней стандартным контроллером НГМД. Максимальное число приводов для данного контроллера - 4. Их имена «A:» и «B:», «C:» и «D:». Соответствующие имена образов дисков можно указать в файле «bk.ini». Имена ключей: «Drive A:», «Drive B:», «Drive C:» и «Drive D:».

Старт БК 0010-01 + контроллер A16M

– запуск БК 0010-01 с контроллером НГМД А16М и блоком ДОЗУ 16 Кб. В этой конфигурации эмулируется БК с подключённым к ней контроллером А16М. Максимальное число приводов для данного контроллера - 2. Их имена «A:» и «B:». Соответствующие имена образов дисков можно указать в файле «bk.ini». Имена ключей: «Drive A:», «Drive B:». Ключи «Drive C:» и «Drive D:» игнорируются. Обычно образ диска имеет расширение «.img» или «.bkd», но может иметь и другое расширение. Естественно, что для загрузки операционной системы диск должен быть загрузочным. Все изменения, правила запуска файлов и работы с ними читайте в руководстве к конкретной операционной системе. Начальная карта памяти:

Адреса Описание Объём Кб.

000000000377

прерывания и системные данные

0.5

000400037777

ОЗУ пользовательской программы

15.5

040000077777

ОЗУ экрана

16.0

100000117777

Монитор

8.0

120000137777

1-я страница расширенного ОЗУ НГМД

8.0

140000157777

2-я страница расширенного ОЗУ НГМД

8.0

160000176777

ПЗУ контроллера НГМД

7.5

177000177777

область системных регистров

0.5

В соответствии с режимами А16М карта памяти может изменяться.

Старт БК 0010(01) + контроллер СМК-512

– запуск БК 0010-01 с контроллером НГМД СМК-512 и блоком ДОЗУ 512 Кб с поддержкой винчестера. Количество дисководов здесь 2, «A:» и «B:», значения ключей «Drive C:» и «Drive D:» игнорируются, т.к. приоритет отдан винчестеру.

Старт БК 0010(01) + контроллер Samara

– запуск БК 0010-01 со стандартным контроллером НГМД и блоком ДОЗУ 16 Кб и самарским контроллером винчестера. Количество дисководов здесь 2, «A:» и «B:», значения ключей «Drive C:» и «Drive D:» игнорируются, т.к. приоритет отдан винчестеру. Конфигурация работоспособна, но при наличии более удобных контроллеров АльтПро представляет чисто академический интерес.

Старт БК 0011 + МСТД

– Запуск БК 0011 в стандартной конфигурации + блок тестов МСТД, для запуска тестов надо набрать 160000G. Для запуска бейсика надо набрать 11;1C100000G.

Старт БК 0011 + стандартный КНГМД

– Запуск БК 0011 с контроллером НГМД с прошивкой 253. Но из-за отсутствия софта, эта конфигурация малополезна. Вообще, БК 0011 добавлен для того, чтобы иметь представление, что это такое.

Старт БК 0011 + контроллер A16M

– Запуск БК 0011 с контроллером НГМД А16М и блоком ДОЗУ 16 Кб. Для запуска этой конфигурации необходимо при старте удерживать нажатой клавишу «4», для перехода в БОС БК11 и загрузки с дискеты вручную. Работоспособность не гарантируется, потому что контроллеры АльтПро не рассчитаны на работу с компьютерами БК 0011.

Старт БК 0011 + контроллер СМК-512

– Запуск БК 0011М с контроллером НГМД СМК-512 и блоком ДОЗУ 512 Кб с поддержкой винчестера. Для запуска этой конфигурации необходимо удерживать нажатыми клавиши «Шифт»+«4», для перехода в БОС БК11 и загрузки с дискеты вручную. Работоспособность не гарантируется, потому что контроллеры АльтПро не рассчитаны на работу с компьютерами БК 0011.

Старт БК 0011 + контроллер Samara

– Запуск БК 0011 со стандартным контроллером НГМД с прошивкой 253 и самарским контроллером винчестера. Конфигурация работоспособна, но из-за отсутствия софта, эта конфигурация малополезна и представляет чисто академический интерес.

Старт БК 0011M + МСТД

– Запуск БК 0011М в стандартной конфигурации + блок тестов МСТД, для запуска тестов надо выйти из бейсика в монитор и набрать 160000G.

Старт БК 0011M + стандартный КНГМД

– Запуск БК 0011М с контроллером НГМД с прошивкой 326.

Старт БК 0011M + контроллер A16M

– Запуск БК 0011М с контроллером НГМД А16М и блоком ДОЗУ 16 Кб.

Старт БК 0011M + контроллер СМК-512

– Запуск БК 0011М с контроллером НГМД СМК-512 и блоком ДОЗУ 512 Кб с поддержкой винчестера.

Старт БК 0011M + контроллер Samara

– Запуск БК 0011М со стандартным контроллером НГМД с прошивкой 326 и самарским контроллером винчестера. Здесь более интересно, поскольку софт для контроллера работает только из-под CSIDOS.

Ускорить

– увеличить частоту процессора на величину, зависящую от комбинации нажатых клавиш-модификаторов Shift, Ctrl, Alt. По умолчанию, среднее количество команд обрабатываемых процессором, составляет 250 000 в секунду, что соответствует реальной скорости БК.

Примечание: скорость воспроизведения файлов с ленты БК остаётся строго постоянной. По этой причине сильное изменение скорости процессора может привести к генерации .wav файла, который потом никак и ничем невозможно будет прочитать.

Замедлить

– уменьшить частоту процессора на величину, зависящую от комбинации нажатых клавиш-модификаторов Shift, Ctrl, Alt. По умолчанию, среднее количество команд обрабатываемых процессором, составляет 250 000 в секунду, что соответствует реальной скорости БК.

Примечание: скорость воспроизведения файлов с ленты БК остаётся строго постоянной. По этой причине сильное изменение скорости процессора может привести к ошибкам чтения.

Стандартная скорость

– установить частоту, заданную конфигурацией БК, для БК 0010(01) это 3 МГц, для БК 0011(М) - 4 МГц. Частоту по умолчанию можно переопределить в файле «bk.ini» в ключе «CPU frequency». Этот ключ переопределяет частоту процессора заданной конфигурации, если определён в кастомной секции, либо глобально, частоту всех конфигураций, если задан в основной секции. Значение по умолчанию - 0, что означает, что значение частоты берётся из конфигурации. Своё значение следует задавать в герцах.

Для пунктов меню Ускорить и Замедлить, горячих клавиш для них, а так же дублирующих их кнопок на панели дампа регистров действуют следующие модификаторы:

  • Без модификаторов: +/- 1000 Гц (1 кГц)
  • Shift: +/- 1 Гц
  • Ctrl: +/- 10 Гц
  • Ctrl+Shift: +/- 100 Гц
  • Alt: +/- 1 МГц
  • Alt+Shift: +/- 10000 Гц (10 кГц)
  • Ctrl+Alt: +/- 100000 Гц (100 кГц)
  • Ctrl+Alt+Shift: *2 или /2 текущую частоту

Меню «Опции»

Меню Опции

Меню Опции

Настройки эмулятора

– Открывается диалог, в котором можно изменить через пользовательский интерфейс, а не только вручную практически все параметры опций и настроек эмулятора.

В первой вкладке, "Приводы и параметры" можно задать образы дискет и HDD для заданной конфигурации. И изменить несколько параметров.

Адрес начального запуска - это адрес, который подменяет стартовый адрес из регистра 177716, т.е. значимый там только старший байт, младший байт игнорируется. Число 0 означает, что будет использовано стандартное значение по умолчанию для заданной конфигурации. Адрес записывается в восьмеричной системе счисления.

Начальная частота процессора - это частота, которая подменяет стандартную рабочую частоту. Число 0 означает, что будет использовано стандартное значение по умолчанию для заданной конфигурации.

Адрес дизассемблера и адрес дампа памяти - значения из соответствующих окон. Задаются в восьмеричном виде. Эти два параметра не требуют перезапуска конфигурации, все остальные - требуют.

Настройки эмулятора

Рис.5. Диалог настроек эмулятора.

Во второй вкладке можно изменить тип рендера, частоту дискретизации звука, модель музыкального сопроцессора и его рабочую частоту. А так же некоторые другие параметры.

Рабочую частоту можно выбрать как из заданного списка, так и вручную, вписав своё значение. Все значения меньше 1 МГц и больше 2 МГц заменяются на частоту по умолчанию 1714286 Гц.

Чекбокс "Большие иконки панели инструментов" влияет на пользовательский интерфейс программы и требует перезапуска всего эмулятора.

Настройки эмулятора

Рис.6. Диалог настроек эмулятора.

В третьей вкладке можно изменить текущие опции, которые доступны в меню "Опции" и "Вид" и некоторые параметры. Все они не требуют перезагрузки конфигурации.

Настройки эмулятора

Рис.7. Диалог настроек эмулятора.

Кнопка "ОК, Всё устраивает" - это отмена всех сделанных изменений и закрытие диалога. Кнопка "Сохранить изменения" вызывает либо просто изменение значений опций, либо перезапуск конфигурации, всё зависит от типа изменённого параметра.

Редактор Палитр

- опция вызывает диалог редактирования палитр. Для тех, кому не нравится стандартный набор цветов и хочется чего-то такого этакого.

Диалог редактирования палитр

Рис.8. Диалог редактирования палитр.

Можно раздельно задать разные палитры для стандартного чёрно-белого режима и для адаптивного. Но пресеты палитр из выпадающего списка задают пресет для обеих чёрно-белых палитр одновременно.

Для каждой конфигурации сохраняется свой набор изменённых палитр.

Редактор Джойстика

- опция вызывает диалог редактирования управляющих клавиш джойстика.

Диалог редактора джойстика

Рис.9. Диалог редактирования настроек джойстика.

Клик мышкой в поле названия клавиши - задать свою клавишу, в выпадающем списке можно задать свой набор битов в порту 177714 для каждого действия джойстика. Никаких проверок ни на что не делается. Если задать клавишу, которая назначена горячей клавишей в меню, то вызов меню имеет приоритет и клавиша джойстика работать не будет.

Включить Speaker

– данная опция включает эмуляцию динамика реальной БК через звуковую карту. Обновление звуковых буферов осуществляется 50 раз в секунду. При этом звук довольно хорошо синхронизирован с изображением на экране, т.е., например, между каким-то событием в игре и звуком задержка порядка 20 мс, что естественно не улавливается на слух. При этом, на медленных компьютерах (зависит не только от компьютера, но и от звуковой карты) могут быть слышны трески и хрипы.

Включить Covox

- опция включает Covox. При этом если был включён AY-3-8910 или Менестрель, они выключаются.

Stereo Covox

- переключает виды ковоксов моно или стерео. В моно ковоксе используется только младший байт, при этом зачастую в старшем байте оказывается мусор. В стерео ковоксе используются оба байта, младший - левый канал, старший - правый канал.

Включить Менестрель

- опция включает музыкальную приставку Менестрель. При этом если был включён Covox или AY-3-8910, они выключаются.

Включить AY8910

- опция включает музыкальный сопроцессор AY-3-8910. При этом если был включён Covox или Менестрель, они выключаются.

Дамп регистров AY8910

- опция включает дамп регистров AY в файл в формате PSG. Регистры дампятся в файл, пока включена эта опция. Поэтому, если случайно включить её и забыть, можно получить очень большой ненужный файл. Файл дампа сохраняется в директорию, заданную параметром «User Saves directory», по умолчанию это UserSaves.

Параметры AY8910

- опция вызывает диалог настроек параметров AY-3-8910: панорамирование каналов в стереодиапазоне и регулировку локальной громкости каналов, чтобы отрегулировать уровень звучания каналов относительно друг друга.

Диалог настроек AY-3-8910

Рис.10. Диалог настроек AY-3-8910.

Для удобства ориентирования, под ползунками громкости отображается относительный уровень в процентах. А справа от ползунков панорамирования отображается процентное соотношение уровня громкости в левом и правом каналах. Для каждой конфигурации сохраняются свои параметры.

Фильтры
Speaker

- включить фильтрацию звука пищалки. При включённом фильтре чтение/запись программ из/в «.wav» файлов чаще всего становится невозможным. т.к. вносятся серьёзные искажения, с которыми алгоритмы эмулятора не справляются.

Covox

- включить фильтрацию звука ковокса. Вот тут фильтрация особенно полезна.

Менестрель

- включить фильтрацию звука Менестреля. На данный момент, фильтрация практически не заметна, т.к. сама эмуляция менестреля плохо работает.

AY8910

- включить фильтрацию звука музыкального сопроцессора AY-3-8910. На любителя, кому-то нравится отфильтрованный звук, кому-то - нет.

Коррекция смещения

Группа опций, включающая коррекцию смещения постоянного тока для заданных звуковых устройств. Для некоторых - полезная штука, для других - нет.

Speaker

- включить коррекцию DC пищалки. Очень нежелательная вещь, если планируется запись программ в виде «.wav» файлов. Обратное чтение таких программ эмулятором становится затруднено из-за несовершенства алгоритма парсинга «.wav» файлов.

Covox

- включить коррекцию DC ковокса. Вот тут становится даже лучше, чем без коррекции.

Менестрель

- включить коррекцию DC Менестреля. Здесь оно работает как-то неправильно.

AY8910

- включить коррекцию DC музыкального сопроцессора AY-3-8910. На любителя, включение приводит лишь к дополнительным искажениям.

Эмулировать клавиатуру БК

– опция задаёт, будет ли эмулироваться реальное поведение клавиатуры БК. Если данная опция включена, то клавиатура ПК начинает работать также, как и реальная клавиатура БК, т.е. при нажатии любой клавиши в мониторе автоповтора не происходит, а обработка кода новой клавиши не производится, пока не будет отпущена старая. При выключенной опции автоповтор работает стандартным образом, а клавиатура ведёт себе так же, как в Windows.

Включить джойстик

– опция включает эмуляцию джойстика. Включение данной опции рекомендуется в играх, поддерживающих джойстик. При этом в играх становится возможной обработка нажатия нескольких клавиш одновременно, что делает управление более комфортным. При настройках по умолчанию, клавиши, эмулирующие джойстик, эмулируются на дополнительной клавиатуре (при выключенном NumLock):

  • NumPad 6 – вправо
  • NumPad 4 – влево
  • NumPad 2 – вниз
  • NumPad 8 – вверх
  • NumPad 7 – кнопка 1
  • NumPad 9 – кнопка 2
  • NumPad 5 – кнопка 3
  • NumPad 1 – кнопка 4
  • NumPad 3 – кнопка 5

Либо задаются свои произвольные в диалоге настройки джойстика. Если при этом клавишей джойстика назначена клавиша, заданная горячей клавишей для меню, то для джойстика она работать не будет.

Примечание: Включение джойстика отключает Блок нагрузок, если он был подключен. При выключении джойстика Блок нагрузок обратно сам не подключается, его необходимо включать вручную.

Эмулировать ввод-вывод дисковода

– опция включает эмуляцию функции чтения-записи блока на дискету. Включение существенно ускоряет скорость обмена с дисководом. При выключении опции скорость чтения-записи становится такой же медленной, как на настоящем дисководе и происходит с помощью эмуляции портов контроллера дисковода 177130, 177132.

При эмуляции производится проверка ПЗУ КНГМД, и если оно нестандартное, то эмуляции не происходит, несмотря на то, что опция включена.

Исп. папку Saves по умолчанию (Basic или Focal)

– использовать директорию UserSaves как директорию для чтения файлов по умолчанию. По умолчанию, если данная опция не установлена, чтение файлов происходит из текущей директории, если программа запущена из командой строки (указана в строке параметров, или просто запущена двойным щелчком) или из директории Bin, если эмулятор запущен без параметров. Сохранение файлов, по умолчанию, производится в каталог UserSaves. Данный путь содержится в файле «bk.ini», ключ «User Saves directory». В том случае, если вы постоянно сохраняете и загружаете файлы, установка данной опции изменит папку по умолчанию на UserSaves.

Эмулировать загрузку ленты

– данный пункт включает или выключает загрузку данных с кассет БК. Если данная опция включена, то при обращении к EMT 36 (операции ввода/вывода) выводится диалог, и предлагается загрузка данных из «.bin» файла, а бит 5 (код 40) регистра 177716 не эмулируется. Если опция отключена, то чтение происходит как на реальной БК. Опцию можно поменять изменив ключ «Emulate load tape operations» в файле «bk.ini». Работает только на БК0010(01) и на БК11(М) в режиме эмуляции БК10.

Эмулировать сохранение на ленту

– данный пункт включает или выключает запись данных в формате кассет БК. Если данная опция включена, то при обращении к EMT 36 (операции ввода/вывода) выводится диалог, и предлагается запись данных в формате «.bin» файла, а бит 6 (код 100) регистра 177716 не эмулируется. Если опция отключена, то запись происходит как на реальной БК. Опцию можно поменять изменив ключ «Emulate save tape operations» в файле «bk.ini». Работает только на БК0010(01) и на БК11(М) в режиме эмуляции БК10.

Менеджер лент БК...

– вызвать менеджер кассет БК. Данный диалог позволяет переносить информацию с магнитных лент и компакт-кассет реальной БК на ПК и конвертировать из одного формата в другой. Для начала переноса файлов, требуется только подключить выход магнитофона к вашей звуковой плате и нажать кнопку «Пуск» (возможно понадобится переключить ваш магнитофон в режим MONO и поставить галочку под ползунком микрофона на панели микширования звука в Windows). Если со звуковой карты есть сигнал, то на мониторе «Монитор» вы увидите чёрные полоски. Чтобы были устройства ввода, в звуковой подсистеме Windows должен быть включён Микшер.

В окне «Информация» вы можете видеть информацию о текущем файле, его имя, адрес и длину, а также другую сопутствующую информацию. Имена «захваченных» файлов появляются в списке в порядке их следования на ленте. После захвата файла подсчитывается его контрольная сумма и выдаётся информация в колонке CRC. С помощью кнопки «Обзор» вы может выбрать директорию, в которую будут сохраняться «захваченные» файлы.

После выделения файлов в списке, активизируется пункт «Сохранить как…», где вы можете выбрать формат сохранения. Закрытие диалога приводит к потере информации обо всех не сохранённых файлах. См. рис. 11.

Менеджер лент

Рис.11. Менеджер кассет БК.

Конвертация в формат «.bin» файла с неправильной контрольной суммой в настоящий момент не поддерживается и приводит к ошибке копирования.

Меню «Отладка»

Меню Отладка

Данный пункт меню подробно описан в отдельном руководстве по Отладчику (Прим. следующего автора: которого нигде нету). В Отладчике предоставляются следующие возможности:

  • Остановка выполнения программы на текущей команде
  • Продолжение выполнения программы с текущего места
  • Трассировка программы по шагам
  • Трассировка программы до заданного места
  • Установка точек останова с условиями (например, когда по заданному адресу изменилось значение, или когда значение в регистре больше чем заданное) (Прим. следующего автора: условные точки останова недоработаны, есть только безусловные).

Данные возможности предназначены для специфических задач и не представляют интереса для обычных пользователей. Поэтому описание меню «Отладка» не представлено в данном руководстве.

Добавлю краткое описание опций, которые ввёл я:

Карта памяти...

– вызывает окно, в котором по две штуки на вкладку отображается графическое представление страниц памяти БК. Под страницей понимается 16 килобайтный кусок памяти. Таким образом для БК 0010(01) отображается две страницы: 0..16 кб и экранная область 16..32 кб. Кроме памяти БК отображается и содержимое дополнительной памяти контроллеров АльтПро.

Карта памяти

Рис.12. Карта памяти.

Особенности загрузки / сохранения.

  1. Возможные форматы файлов: .bmp, .png, .gif, .tiff, .jpg
  2. Сохраняется вся страница целиком пиксель в пиксель. В режиме отображения цветного изображения, сохраняется файл 256 х 256 пикселей, в четырёх цветах: чёрном, синем, зелёном и красном. В режиме отображения чёрно-белого изображения, сохраняется файл 512 х 256 пикселей, в двух цветах: чёрном и белом.
  3. Загружается также вся страница целиком. Если файл больше размера страницы - он обрезается по размеру страницы, если меньше - размещается как есть с верхнего левого угла.
  4. Алгоритмы обработки загружаемых изображений зависят от текущего режима отображения страницы. Для цветного режима ожидается изображение 256 х 256 пикселей, состоящее из точек четырёх цветов: чёрного, синего, зелёного, и красного, для чёрно-белого - 512 х 256 пикселей, состоящее из точек двух цветов: чёрного и любого не чёрного.
  5. Загрузка в цветном режиме чёрно-белого изображения даст чёрный экран, поскольку алгоритм не найдёт в изображении ни красных, ни синих, ни зелёных точек, все остальные точки алгоритмом игнорируются и рассматриваются как чёрные. Загрузка в цветном режиме полноцветного изображения даст результат, скорее всего далёкий от ожидания.
  6. Загрузка в чёрно-белом режиме любого изображения в любом случае что-то даст, но не всегда в приемлемом виде.
Интервал обновления дампа регистров

– при работе эмулятора в реальном времени в окошке «Дамп регистров» можно смотреть текущие значения большинства регистров. Но это довольно сильно нагружает систему и приводит к ухудшению звука. Поэтому данной опцией можно задать желаемый интервал в миллисекундах, или совсем отключить вывод. Этой опции соответствует ключ «Registers dump interval» в файле «bk.ini»

Диалог при ошибке доступа к памяти

– если включить данную опцию, то при любой исключительной ситуации, которая на БК вызывает прерывание по вектору 4 (даже при нажатии клавиши «СТОП»), будет выводиться окошко сообщения, в котором будет задаваться вопрос, что делать дальше: игнорировать, остановиться для отладки или прекратить работу. Не включайте эту опцию без крайней на то необходимости. Этой опции соответствует ключ «Show dialog on access violation» в файле «bk.ini»

Останов CPU после запуска эмулятора

– если включить данную опцию, то после создания конфигурации БК сработает точка останова на стартовом адресе. Это полезно для отладки всяких необычных конфигураций, самодельных прошивок и т.п. В обычной жизни - надобности в этой опции не возникает. Этой опции соответствует ключ «Pause CPU after emulator start» в файле «bk.ini»

Блок нагрузок

– специально для прохождения отладочных тестов БК 0010(11) сделана эмуляция блока нагрузок, заключающаяся в простой передаче данных из выходного порта УП, во входной. При этом два раздельных порта: порт ввода и порт вывода объединяются в один порт ввода-вывода, в котором хранится 16-разрядное слово, доступное для чтения и записи, как в обычной ячейке памяти.

Примечание: Включение Блока нагрузок отключает джойстик, если он был включён, и не включает его обратно, при выключении блока нагрузок, джойстик при необходимости потом нужно включать вручную.

Меню «Вид»

Меню Вид

Меню Вид

Меню Вид

Панели инструментов и закрепляемые окна

– возможность показать/скрыть разные окна и панели:

Стандартная, Звук, Отладка, Захват видео

– показать/скрыть соответствующие панели инструментов.

Окно отладки

– показывать или не показывать окно Отладчика. В данном окне можно увидеть то, какая команда выполняется в данный момент и её операнды, или код программы по заданному адресу. Подробнее см. руководство по Отладчику.

Окно отладчика

Рис.13. Окно Отладчика.

Поле ввода в левом верхнем углу служит для задания начального адреса дизассемблера.

Дамп регистров CPU

– показывать или не показывать окно состояния регистров процессора, системных регистров и коды режимов работы контроллеров А16М/СМК. В первом окошке отображаются значения регистров общего назначения R0, R1, R2, R3, R4, R5, SP (указатель стека), PC (указатель текущей команды) и PS (биты слова состояния процессора). Во втором - системные регистры БК 177660177716. В третьем - регистры КНГМД и в четвёртом - коды режимов работы контроллера А16М или СМК.

Окно дампа регистров CPU и системных регистров

Рис.14. Окно дампа регистров CPU.

Двойной клик на значении регистра позволяет изменить его значение.

Дамп регистров FDD

– показывать или не показывать окно состояния регистров КНГМД и регистров HDD. Регистр 1F0 - словный, все остальные - байтовые, просто отображаются как словные для простоты вывода.

Окно дампа регистров FDD и HDD

Рис.15. Окно дампа регистров FDD.

Дамп памяти

- показывать или не показывать окно дампа памяти. В данном окне можно увидеть значение заданной ячейки памяти и соответствующие им коды КОИ-8, а также изменить данные значения. Возможно просмотр в режиме Слова или Байта. Подробнее см. руководство по Отладчику (Прим. следующего автора: которого нигде нет).

Окно дампа памяти

Рис.16. Окно дампа памяти.

Поле ввода в левом верхнем углу служит для задания начального адреса дампа. Кнопка справа от него - переключает режимы отображения WORD или BYTE. Двойной клик на значении позволяет изменить значение ячейки. Колесо прокрутки мыши - скроллинг содержимого памяти. Вид закольцован, т.е. за адресом 0177770 идёт снова 000000.

Управление чтением / записью лент

– показать окно с панелью управления кассетными записями БК. С помощью данной панели можно остановить проигрывание или запись ленты (.wav, .tap или .bin файла), а также включить запись. При этом существуют две дополнительные опции позволяющие автоматически определить начало и конец записи на ленту («Автоопределение начала файла» и «Автоопределение конца файла» соответственно. Если установлена опция «Автоопределение начала файла», то после нажатия на кнопку записи, запись не начинается до тех пор, пока эмулятор не определит начало стартовой синхропоследовательности, если установлена опция «Автоопределение конца файла», то запись автоматически прекратится при определении финишной синхропоследовательности. В случае, если данные опции выключены, то запись начинается сразу после нажатия на кнопку «Запись», а прекратится только при нажатии на кнопку «Стоп».

Управление записью на ленту

Рис.17a. Панель управления лентой БК при включенных опциях
«Эмулировать сохранение на ленту» и «Эмулировать загрузку ленты».

Кнопки на панели становятся активными, если отключить опцию «Эмулировать сохранение на ленту». Т.е. в этом случае, сохранение на файлов делается не автоматически в формат .bin, а вручную, посредством кнопок «Запись», и «Стоп» в аудиоформаты .wav или .tap.

Если выключить опцию «Эмулировать загрузку ленты», то станет активной только кнопка «Стоп», чтобы можно было прервать воспроизведение загружаемого .wav, .tap или .bin файла, если он окажется не тем, который нужен.

После того, как .wav, .tap или .bin файл будет загружен и запущен на воспроизведение. станет активной кнопка «Старт/Пауза». Нажатие кнопки «Стоп» прервёт воспроизведение, но при этом, с помощью кнопки «Старт/Пауза» его можно будет начать заново. После того, как файл будет воспроизведён полностью, кнопка «Старт/Пауза» снова становится неактивной, и снова потребуется загрузка .wav, .tap или .bin файла.

Управление записью на ленту

Рис.17б. Панель управления лентой БК при выключенных опциях «Эмулировать сохранение на ленту» и «Эмулировать загрузку ленты».

Управление записью на ленту

Рис.17в. Панель управления лентой БК при выключенных опциях «Эмулировать сохранение на ленту» и «Эмулировать загрузку ленты» и запущенном на воспроизведение файле.

Рекомендуется включать опции «Автоопределение начала файла» и «Автоопределение конца файла» только при использовании стандартной подпрограммы записи EMT 36. В случае нестандартной подпрограммы записи, правильная работа автодетектора не только не гарантируется, она точно не будет работать.

При включённой фильтрации спикера автоопределение может не срабатывать, и может теряться синхронизация. Поэтому, чтобы всё это работало, фильтрацию нужно выключать.

У этой функции есть одна полезная побочная возможность. Если выключить все автоопределения, можно сохранять в .wav формате все воспроизводимые звуки, например записывать музыку, играемую на AY-3-8910 или Covox. После нажатия кнопки «Стоп», файл надо записать в формате .wav, а не .tap, как предлагается по умолчанию, .tap, не пригоден для хранения музыки.

Осциллограф

– показать панель осциллографа. Наглядно отображает, что звучит в динамиках. Верхняя осциллограмма - левый канал, нижняя - правый.

Виртуальная клавиатура

– показать панель виртуальной клавиатуры, причём клавиатура реализована двух видов: плёночная и кнопочная.

Кнопочная виртуальная клавиатура

Рис.18. Виртуальная клавиатура.

Клавиатура масштабируемая, желаемый размер можно задать изменением размера окошка клавиатуры.

Строка состояния

– показывать строку состояния в нижней части окна. На ней обычно отображается различная служебная информация, например, текущее количество кадров в секунду, или режим работы клавиатуры.

Вид приложения

– выбор визуального стиля приложения.

Виртуальная клавиатура

– выбор вида виртуальной клавиатуры, плёночная или кнопочная.

Установить размер экрана

– выбрать один из заданных размеров экрана, чтобы не подгонять его вручную. Размеры со значениями в скобках - пропорциональные, без искажений, кроме (х0.5), он нормально работает только в Direct3D. Пункт "Свой" - установить размеры, которые были перед выбором одного из заданных размеров. Изменяются только размер экрана и размер главного окна программы. Размеры всех вспомогательных окошек не изменяются.

Во весь экран

– перевести эмулятор в полноэкранный режим работы. При этом используется текущее разрешение рабочего стола Windows.

Цветной режим

– переключает цветной и чёрно-белый режим экрана. Для чёрно-белого возможно два варианта:

  • чёрно-белый – нормальный
  • чёрно-белый – адаптивный
Адаптивный Ч/Б режим

– меняет чёрно-белый режим с адаптивного на точный и обратно. Адаптивный режим не полностью соответствует реальному чёрно-белому режиму БК, но визуально выглядит более похоже. Какой именно режим будет применяться, определяет ключ «Adapt black & white mode» в файле «bk.ini».

Эмуляция затухания люминофора

– опция эмулирует поведение слоя люминофора ЭЛТ. Подозреваю, что на самом деле люминофор гаснет не линейно, поэтому поведение неточное. Когда включена, за движущимися объектами на экране остаётся слабый быстро гаснущий шлейф. На LCD мониторах с медленной матрицей эффект заметнее, чем на быстрых.

Меню «Инструменты»

Меню Инструменты

В данном меню отображаются имена утилит поставляемых вместе с эмулятором, которые были обнаружены эмулятором при запуске. По умолчанию утилиты находятся в папке Tools заданной ключом «Tools directory» в файле «bk.ini». Подробнее утилиты будут описаны в приложении 4.

Примечание. Если утилита BK Disk Explorer (BKDE) не будет обнаружена, то в выпадающем меню дисководов не появится пункт "Открыть в BKDE".

Полезные возможности.

Сохранение музыки, звучащей на AY-3-8910 или Covox в формате WAV

Перед тем, как начать сохранять музыку, необходимо выполнить следующие действия:

  1. Выключить опцию «Эмулировать сохранение на ленту», при этом станут активными кнопки в панели управления кассетными записями в окне «Управление чтением / записью лент».
  2. Если окна «Управление чтением / записью лент» нет на экране, то его необходимо вывести на экран. Для этого нужно зайти в меню «Вид»->«Панели инструментов и закрепляемые окна» и задействовать данное окно.

В окне «Управление чтением / записью лент» следует снять галочки с обеих опций: «Автоопределение начала ленты» и «Автоопределение конца ленты».

После этого можно приступать к сохранению. Для этого нужно нажать кнопку  перед началом мелодии, которую вы хотите сохранить. Затем, дождавшись конца мелодии, следует нажать кнопку  . Это приведёт к появлению диалога выбора сохраняемого файла. Обратите особое внимание, что файл надо сохранять в формате .wav, а не .tap, который задан по умолчанию. Не забывайте каждый раз переключать формат сохраняемого файла.

Создание лога (дампа) данных, посылаемых в регистры AY-3-8910 в формате PSG

Чтобы сохранить мелодию, звучащую на AY-3-8910, в виде дампа значений, посылаемых в регистры AY-3-8910, необходимо нажать кнопку PSG в панели инструментов Звук. Или выбрать опцию «Дамп регистров AY8910» в меню «Опции».

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

Файл дампа создаётся в директории, заданной параметром «User Saves directory», по умолчанию это UserSaves и имеет вид "AYlog_{timestamp}.psg", чтобы гарантировать уникальность имени файла. Переименование его в нужный пользователю вид является задачей пользователя.

Выключение данной опции или отжатие кнопки на панели инструментов приводит к прекращению ведения лога и закрытию и фиксации файла.

Если забыть выключить вовремя эту опцию, можно получить весьма большой и ненужный файл .PSG.

Захват видео.

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

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

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

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

ВНИМАНИЕ! Если самостоятельно закрыть окно консоли ffmpeg.exe или задать неправильные параметры, из-за которых ffmpeg.exe сам завершится, то это приведёт к полному зависанию эмулятора, прибить его можно будет только из диспетчера задач. И это не лечится и никак не исправляется. Это особенность Windows, точнее, кривая реализация асинхронного перехвата перенаправления потоков консольного ввода/вывода.

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

Скрипты.

Для работы с эмулятором возможно использовать примитивные скрипты.

Скрипт, это обычный текстовый файл в кодировке Windows-1251, другие кодировки не поддерживаются и не обрабатываются правильно (в смысле, русские буквы). Всё содержимое скрипта передаётся как нажатие соответствующих клавиш на клавиатуре. Но полноценное нажатие и отжатие клавиши при этом не эмулируется.

Имеются управляющие коды, для выполнения действий, не являющихся нажатием на клавишу. Управляющим символом выбран символ "|", как один из наиболее редко используемых на БК.

|| - передать символ | как обычный символ;

|# - задать задержку выполнения в 2 секунды. Обычно, чтобы медленная БКшка могла что-то сделать и символы пока не передавались. Нужное количество времени задаётся нужным количеством последовательностей этих символов.

|^ - нажать кнопку СТОП

|@ - вставить аргумент, в данный момент это имя .bin файла, который передаётся программе из командной строки, ДрагнДропа или при запуске .bin файла из оболочки Windows.

Возможно, когда-нибудь скриптовые возможности будут расширены, когда в этом возникнет необходимость.

Приложение 1. Соответствия раскладки клавиатур PC и БК и горячие клавиши

Табл.1. Соответствие раскладки клавиатуры.
Клавиша БК Клавиша PC Клавиша БК Клавиша PC
ПОВТ

F1

Backspace

KT

Esc

ВС

Insert

F2

ГРАФ

Delete

F3

УСТ
ТАБ

Home

F4

ЗАП

End

ИНД
СУ

F5

СБР
ТАБ

Page Up

БЛОК
РЕД

F6

СТИР

Page Down

ШАГ

F7

СТР

CapsLock выкл.

СБР

F8

ЗАГЛ

CapsLock вкл.

СТОП

Pause или num. /

РУС

Левый/Правый Win

СУ

Любой Ctrl

ЛАТ

Левый/Правый Win

АР2

Любой Alt

   

Цифро-буквенные клавиши полностью соответствуют знакам, нарисованным на клавишах, кроме клавиши ~/` в русской раскладке. Т.к. Буквы Ё/ё на БК нет, то выводится результат прямой перекодировки ПК-скан кода в БК скан код (буквы Ю/Ч)

Поскольку клавиши Ctrl и Alt заняты под эмуляцию СУ и АР2, то привычные сочетания клавиш Ctrl-<клавиша>, Alt-<клавиша>, если клавиша относится к цифро-буквенным, работают не как горячие клавиши приложения Windows, а как соответствующие клавиши клавиатуры БК.

Интерактивную карту раскладки клавиатуры можно посмотреть тут.

Табл.2. Сочетания горячих клавиш.
Сочетание клавиш Пункт меню Функция

F12

Скриншот

Сделать снимок экрана БК, файлы сохраняются в директории, заданной ключом «Screenshots directory» файла настроек.

Num. 5

Рестарт БК

Перезапустить текущую конфигурацию БК - это обычная кнопка ресет

Ctrl+Num. 5

СУ+Рестарт БК

Перезапустить текущую конфигурацию БК - это вариант модификации СУ+ресет. Не работает с контроллерами АльтПро. Как с эмулируемыми так и с реальными.

Alt+Num. 5

Длинный рестарт БК

Перезапустить конфигурацию БК с контроллером А16М. Обработка длинного и короткого нажатия кнопки ресет реализовано только в контроллере А16М. Во всех остальных конфигурациях действует аналогично обычному рестарту БК.

Num. +

Ускорить

Увеличить частоту процессора на 1000 Гц

Num. -

Замедлить

Уменьшить частоту процессора на 1000 Гц

Shift+Num. +

Ускорить

Увеличить частоту процессора на 1 Гц

Shift+Num. -

Замедлить

Уменьшить частоту процессора на 1 Гц

Ctrl+Num. +

Ускорить

Увеличить частоту процессора на 10 Гц

Ctrl+Num. -

Замедлить

Уменьшить частоту процессора на 10 Гц

Ctrl+Shift+Num. +

Ускорить

Увеличить частоту процессора на 100 Гц

Ctrl+Shift+Num. -

Замедлить

Уменьшить частоту процессора на 100 Гц

Alt+Num. +

Ускорить

Увеличить частоту процессора на 1 МГц

Alt+Num. -

Замедлить

Уменьшить частоту процессора на 1 МГц

Alt+Shift+Num. +

Ускорить

Увеличить частоту процессора на 10000 Гц (10 кГц)

Alt+Shift+Num. -

Замедлить

Уменьшить частоту процессора на 10000 Гц (10 кГц)

Ctrl+Alt+Num. +

Ускорить

Увеличить частоту процессора на 100000 Гц (100 кГц)

Ctrl+Alt+Num. -

Замедлить

Уменьшить частоту процессора на 100000 Гц (100 кГц)

Ctrl+Alt+Shift+Num. +

Ускорить

Увеличить частоту процессора в два раза

Ctrl+Alt+Shift+Num. -

Замедлить

Уменьшить частоту процессора в два раза

Num. *

Стандартная скорость

Восстановить частоту процессора по умолчанию

Num. 7

Включить Speaker

Включить/Выключить звук пищалки

Num. 8

Включить Covox

Включить/Выключить Covox, при включении автоматически отключается AY-3-8910.

Alt+Num. 8

Стерео Covox

Переключить Моно Covox / Стерео Covox

Num. 9

Включить AY8910

Включить/выключить AY-3-8910, при включении автоматически отключается Covox.

Ctrl+Num. 7

Фильтр Speaker

Включить/Выключить фильтрацию звука пищалки

Ctrl+Num. 8

Фильтр Covox

Включить/Выключить фильтрацию звука Covox

Ctrl+Num. 9

Фильтр AY8910

Включить/Выключить фильтрацию звука AY-3-8910

Num. 1

 

Эмулировать загрузку ленты

Num. 2

 

Эмулировать сохранение на ленту

Num. 3

Менеджер лент БК

Запустить менеджер виртуальных кассет БК, там можно прослушать как звучат старые кассетные записи программ, а так же можно конвертировать между собой .wav, .tap, .bin файлы.
Естественно в .bin можно преобразовать одиночный .wav, .tap, а не всю оцифрованную кассету.

Num. 6

Карта памяти

Вызвать окно карты памяти

Alt+F9

Стоп/Продолжить

Прервать/ Продолжить выполнение программы

F9

Точка останова

Поставить точку останова без условия

Ctrl+F9

Точка останова с условием

Поставить точку останова с условием (не работает, т.к. отсутствует функционал)

F11

Шаг с заходом

Выполнить одну команду с заходом в подпрограмму

F10

Шаг с обходом

Выполнить одну команду без захода в подпрограмму

Shift+F11

Шаг с выходом

Выйти из текущей подпрограммы

Ctrl+F10

Выполнить до строки

Выполнить программы до указанной команды

Scroll Lock

Режим цвета

Переключение Цветной/Чёрно-белый режим экрана

Shift+Scroll Lock

Адаптивный Ч/Б режим

Переключить Ч/Б режим с адаптивного на точный

Ctrl+Alt+Scroll Lock

Во весь экран

Переключение полноэкранного/оконного режим экрана

 

Приложение 2. Описание ключей в файле «bk.ini»

Все ключи делятся на две категории, информативные (И) и директивные (Д). Информативные ключи содержат информацию о параметрах, которые изменять можно, но нежелательно, поскольку они в общем-то предназначены для хранения внутренних параметров эмулятора. Директивные ключи содержат информацию о параметрах, которые можно менять по своему усмотрению и надобностям, тем более, что некоторые параметры, можно задать только вручную, редактированием ini файла.

Например, BK11M Monitor BOS - директивный ключ, содержит имя файла дампа ПЗУ БОС 11М, при необходимости его можно заменить на имя файла своего модифицированного ПЗУ БОС 11М, чтобы посмотреть, что из этого выйдет, или с другими целями.

Табл.3. Описание ключей файла конфигурации.
Название ключа Значение по умолчание Описание Тип

[Rom modules]

Потенциально кастомизируемая секция

BK10 Monitor

bk10_017_mon.rom

Имя модуля ПЗУ монитора БК 0010

Д

BK10 Focal

bk10_018_focal.rom

Имя модуля ПЗУ Фокала

Д

BK10 MSTD

bk10_019_mstd.rom

Имя модуля ПЗУ блока МСТД 10

Д

BK10 Basic1

bk10_106_basic1.rom

Имя модуля 1-го ПЗУ Бейсика

Д

BK10 Basic2

bk10_107_basic2.rom

Имя модуля 2-го ПЗУ Бейсика

Д

BK10 Basic3

bk10_108_basic3.rom

Имя модуля 3-го ПЗУ Бейсика

Д

BK11 Monitor BOS

bk11_201_bos.rom

Имя модуля ПЗУ БОС 11

Д

BK11 Monitor EXT

bk11_202_ext.rom

Имя модуля ПЗУ расширения БОС 11

Д

BK11 MSTD

bk11_203_mstd.rom

Имя модуля ПЗУ блока МСТД 11

Д

BK11 Basic1

bk11_198_basic1.rom

Имя модуля 1-го ПЗУ Бейсика БК11

Д

BK11 Basic2

bk11_199_basic2.rom

Имя модуля 2-го ПЗУ Бейсика БК11

Д

BK11 Basic3

bk11_200_basic3.rom

Имя модуля 3-го ПЗУ Бейсика БК11

Д

BK11M Monitor BOS

bk11m_324_bos.rom

Имя модуля ПЗУ БОС 11М

Д

BK11M Monitor EXT

bk11m_325_ext.rom

Имя модуля ПЗУ расширения БОС 11М

Д

BK11M MSTD

b11m_mstd.rom

Имя модуля ПЗУ блока МСТД 11М

Д

BK11M Basic1

basic11m_0.rom

Имя модуля 1-го ПЗУ Бейсика БК11М

Д

BK11M Basic2

basic11m_1.rom

Имя модуля 2-го ПЗУ Бейсика БК11М

Д

BK11M Basic3

basic11m_1.rom

Имя модуля 3-го ПЗУ Бейсика БК11М

Д

FDD KNGMD

DISK_326.rom

Имя модуля ПЗУ блока КНГМД БК11М

Д

FDD KNGMD253

DISK_253.rom

Имя модуля ПЗУ блока КНГМД БК11

Д

FDD A16M

DISK_A16M_v2.41.rom

Имя модуля ПЗУ контроллера А16М

Д

FDD SMK512

DISK_SMK512_v2.05.rom

Имя модуля ПЗУ контроллера СМК-512

Д

FDD Samara DISK_SAMARA_HDD+FIS.rom Имя модуля ПЗУ самарского блока КНГМД+HDD ПЗУ на основе 326-й прошивки.

Д

BK11 Optional Page12.1

<empty>

Имя опционального модуля ПЗУ, подгружаемого в 012(10.) страницу БК11(М) по адресам 0100000-0117777

Д

BK11 Optional Page12.2

<empty>

Имя опционального модуля ПЗУ, подгружаемого в 012(10.) страницу БК11(М) по адресам 0120000-0137777

Д

BK11 Optional Page13.1

<empty>

Имя опционального модуля ПЗУ, подгружаемого в 013(11.) страницу БК11(М) по адресам 0100000-0117777

Д

BK11 Optional Page13.2

<empty>

Имя опционального модуля ПЗУ, подгружаемого в 013(11.) страницу БК11(М) по адресам 0120000-0137777

Д

BK10 Optional MSTD

<empty>

Имя опционального модуля ПЗУ, которое можно подгрузить в блок МСТД БК10 по адресам 0140000-0157777

Д

[Directories]

Program directory

Bin

Путь к программам в формате Bin

Д

Tools directory

Tools

Путь к утилитам

Д

Memory directory

Memory

Путь к файлам состояния

Д

User Saves directory

UserSaves

Путь к записываемым файлам

Д

Tapes directory

Tapes

Путь к кассетам БК

Д

Scripts directory

Scripts

Путь к клавиатурным скриптам

Д

Rom directory

ROM

Путь к модулям ПЗУ

Д

IMG directory

Img

Путь к образам дискет

Д

Screenshots directory

Screenshots

Директория для хранения скриншотов

Д

[Main]

BK model

BK-0010-01

Конфигурация БК, которая стартует при запуске эмулятора. Возможные значения:

  • BK-0010-01

  • BK-0010-01_MSTD

  • BK-0010-01_EXT32RAM

  • BK-0010-01_FDD

  • BK-0010-01_A16M

  • BK-0010-01_SMK512

  • BK-0010-01_SAMARA

  • BK-0011

  • BK-0011_FDD

  • BK-0011_SAMARA

  • BK-0011M

  • BK-0011M_FDD

  • BK-0011M_A16M

  • BK-0011M_SMK512

  • BK-0011M_SAMARA

Если здесь будет записано что-либо другое, то по умолчанию будет запущена конфигурация BK-0010-01. (не меняйте вручную, вообще не трогайте)

И

Screenshot number

1

Инкрементный счётчик для файлов скриншотов. Увеличивается с каждым сделанным скриншотом. Если число станет слишком большим, можно вручную установить своё значение, которое больше нравится.

Д

Screen render type

1

Тип движка прорисовки для экрана. Поддерживаемые режимы: 0 - OpenGL, 1 - Direct2D, 2 - VFW, 3 - Direct3D. В Windows XP Direct2D не поддерживается, его поддержка начинается с Windows Vista, поэтому при запуске эмулятора в Windows XP номер 1 автоматически заменяется на 2, любой другой режим остаётся прежним. Режим Direct3D в настоящее время работает не совсем удовлетворительно в полноэкранном режиме.

Д

Oscilloscope render type

1

Тип движка прорисовки для осциллографа. Поддерживаемые режимы: 0 - OpenGL, 1 - Direct2D. В Windows XP Direct2D не поддерживается, его поддержка начинается с Windows Vista, поэтому для XP остаётся единственный вариант: 0 - OpenGL, при запуске эмулятора в Windows XP номер автоматически устанавливается в 0.

Д

Sound Sample Rate

44100

Частота дискретизации звука. Чем выше частота, тем лучше работают фильтры пищалки, ковокса и AY. Но и тем больше требования к производительности. На данный момент поддерживается четыре значения: 44100, 48000, 96000, 192000 Гц. Все другие значения заменяются на значение по умолчанию 44100.

Д

SoundChip Frequency

1714286

Рабочая частота музыкального сопроцессора. Можно задать значение от 1000000 до 2000000 Гц. Значения вне этого диапазона заменяются частотой по умолчанию 171428612МГц / 7

Д

SoundChip Model

1

Модель музыкального сопроцессора. 0 - AY-3-8910, 1 - YM2149F. Различие моделей в том, что амплитуда огибающей формируется 4-х битным ЦАПом у AY-3-8910 и 5-ти битным у YM2149F. Разница в алгоритмах формирования шума не эмулируется, и используется алгоритм, как у YM2149F.

Все другие значения заменяются значением по умолчанию - 1.

Д

Use long Bin format

No

Генерировать .bin файлы в длинном формате, т.е. 20 байтов заголовок: адрес загрузки, длина, оригинальное имя файла и в конце файла - слово контрольной суммы.

Иначе - генерируется простой .bin файл, с заголовком 4 байта: адрес загрузки и длина.

Д

Origin screenshot size

No

Создавать скриншоты оригинального размера, т.е. такого, какого формируется текстура кадра экрана перед выводом на экран. Если опция выключена, то скриншоты создаются размером как у viewport'а (на данный момент 1024х768) путём масштабирования оригинальной текстуры, со сглаживанием средствами рендера в процессе увеличения размеров.

Д

FFMPEG Cmd Line

...

Командная строка для запуска консольной утилиты ffmpeg.exe, по умолчанию имеет следующий вид: " ffmpeg.exe -y -f rawvideo -vcodec rawvideo -s %dx%d -pix_fmt bgra -framerate 48.804 -i - -c:v libx264 -crf 18 -preset slow -vf scale=1024:768". Т.е. имя самого файла ffmpeg.exe и его параметры командной строки.

-s %dx%d - это шаблон для подставляемого разрешения кадров в буфере, если его убрать, то видео не получится.

Д

Big buttons for Instrumental Panel

No

Опция, влияющая на размер иконок на панелях инструментов. Введена по просьбе людей, имеющих мониторы очень большого разрешения, для которых обычные иконки слишком мелки.

Д

Exclusive Open Image Files

Yes

Опция, определяющая режим открытия монтируемых файлов образов дискет. Если включена, то файлы образов, открытые эмулятором доступны всем остальным программам только по чтению. Если выключена, то остальные программы так же могут иметь доступ к файлам образов и по записи.

Данная опция опасна и чревата порчей образов при неаккуратном обращении.

Д

[Parameters]

Кастомизируемая секция

CPU start address

0

Адрес начального запуска, если 0, то берётся стандартный предзаданный для заданного типа БК, иначе - БК стартует с заданного здесь адреса. Значим только старший байт, как в регистре 177716.

Д

CPU frequency

0

Начальная частота процессора БК, если 0, то берётся стандартная предзаданная для заданного типа БК.

Д

Registers dump interval

0

Частота обновления содержимого регистров в окне Дампа регистров, по умолчанию 0 - выключено. Допустимые значения: 0, 1, 2, 3, 4, 5, 10, 15, 20, 25, 50. Означает, через сколько фреймов длительностью 20 мс необходимо обновлять значения регистров и дампа памяти.

Д

Sound volume

30%

Громкость звука. Задаётся в процентах от 0 до 100.

И

Start dump address

0

Начальный адрес в окне дампера

Д

Start disasm address

01000

Начальный адрес в окне дизассемблера

Д

AY Channel A Pan Left

95

Значение панорамирования для каналов сопр. AY-3-8910.

Здесь задаётся значение только для левого канала, значение для правого канала вычисляется по формуле R = 100 - L, поэтому нет смысла хранить оба значения.

Д

AY Channel B Pan Left

50

Д

AY Channel C Pan Left

5

Д

AY Channel A Volume

1,000000

Значения локальной громкости для каналов сопр. AY-3-8910.

Возможны значения с плавающей точкой от 0.0 (мин.) до 1.0 (макс.). В спец. окошке слайдером эти значения меняются в этом диапазоне с шагом 0.01

Д

AY Channel B Volume

1,000000

Д

AY Channel C Volume

1,000000

Д

[Options]

Кастомизируемая секция

Use Saves directory as default

No

Поменять директорию для записи

Д

Speaker enabled

Yes

Включить звук пищалки

Д

Covox enabled

No

Включить звук приставки Covox

Д

AY8910 enabled

Yes

Включить звук муз. сопроцессора AY-3-8910

Д

Menestrel enabled

No

Включить звук муз. приставки Менестрель

Д

Speaker filter enabled

Yes

Фильтровать звук пищалки

Д

Covox filter enabled

Yes

Фильтровать звук приставки Covox

Д

AY8910 filter enabled

Yes

Фильтровать звук сопроцессора AY-3-8910

Д

Menestrel filter enabled

Yes

Фильтровать звук муз. приставки Менестрель

Д

Stereo covox

No

Включить стерео Covox

Д

Speaker DC Offset correct No Включить коррекцию смещения постоянного тока для пищалки Д
Covox DC Offset correct Yes Включить коррекцию смещения постоянного тока для приставки Covox Д
AY8910 DC Offset correct No Включить коррекцию смещения постоянного тока для муз. сопроцессора AY-3-8910 Д
Menestrel DC Offset correct No Включить коррекцию смещения постоянного тока для приставки Менестрель Д

Emulate BK keyboard

Yes

Эмулировать клавиатуру БК. Т.е. отключить аппаратный автоповтор

Д

Joystick enabled

No

Эмулировать джойстик

Д

Run in color mode

Yes

Запуск в цветном режиме

Д

Adapt black & white mode

Yes

Включить адаптированный ч/б режим

Д

Run in fullscreen mode

No

Запуск в полноэкранном режиме

Д

Emulate load tape operations

Yes

Эмулировать чтение с кассеты

Д

Emulate save tape operations

Yes

Эмулировать запись на кассету

Д

Tape auto start detection

Yes

Автоматически определять начало записи кассеты

Д

Tape auto end detection

Yes

Автоматически определять конец записи кассеты

Д

Pause CPU after emulator start

No

Остановить процессор сразу после запуска эмулятора (полезно для отладки)

Д

Show performance string

Yes

Показать строку состояния

Д

Show dialog on access violation

No

При попытке записи в ПЗУ или чтения из несуществующего адреса, показывать диалог с вопросом, что делать в возникшей ситуации (Не рекомендуется включать без крайней надобности)

Д

Emulate FDD IO

Yes

Эмулировать процедуру чтения/записи блока на дискету

Д

Virtual Keyboard Type

0

Внешний вид виртуальной клавиатуры: 0 - кнопочная, 1 - плёночная

Д

Screen fade emulation

No

Эмуляция затухания люминофора

Д

IC Load Block

No

Включить блок нагрузок в порт УП

Д

Smoothing Screen

No

Включить сглаживание экрана. Сглаживание делается на уровне драйверов используемого рендера. В VFW не работает.

Д

Emulate Mouse

No

Включить эмуляцию мыши Марсианка методом захвата курсора мыши. Работает отвратительно.
Поэтому лучше не включать.

Д

[Palettes]

Кастомизируемая секция

BW Palette

#000000,#ffffff

RGB значения для чёрной точки и белой.

Д

Adapt BW Palette

#000000,#6b6b6b,#a9a9a9,#ffffff

RGB значения для двухбитий: 00,01,10,11 - black,blue,green,red

Д

Color Palette 00

#000000,#0000ff,#00ff00,#ff0000

RGB значения для двухбитий: 00,01,10,11 - black,blue,green,red палитры 0. БК11

Д

Color Palette 01

#000000,#ffff00,#ff00ff,#ff0000

RGB значения для палитры 1. БК11

Д

Color Palette 02

#000000,#00ffff,#0000ff,#ff00ff

RGB значения для палитры 2. БК11

Д

Color Palette 03

#000000,#00ff00,#00ffff,#ffff00

RGB значения для палитры 3. БК11

Д

Color Palette 04Д

#000000,#ff00ff,#00ffff,#ffffff

RGB значения для палитры 4. БК11

Д

Color Palette 05

#000000,#ffffff,#ffffff,#ffffff

RGB значения для палитры 5. БК11

Д

Color Palette 06

#000000,#aa0000,#700000,#ff0000

RGB значения для палитры 6. БК11

Д

Color Palette 07

#000000,#aaff00,#55ff00,#ffff00

RGB значения для палитры 7. БК11

Д

Color Palette 08

#000000,#aa00ff,#7000ff,#ff00ff

RGB значения для палитры 8. БК11

Д

Color Palette 09

#000000,#55ff00,#7000ff,#700000

RGB значения для палитры 9. БК11

Д

Color Palette 10

#000000,#aaff00,#aa00ff,#aa0000

RGB значения для палитры 10. БК11

Д

Color Palette 11

#000000,#00ffff,#ffff00,#ff0000

RGB значения для палитры 11. БК11

Д

Color Palette 12

#000000,#ff0000,#00ff00,#00ffff

RGB значения для палитры 12. БК11

Д

Color Palette 13

#000000,#00ffff,#ffff00,#ffffff

RGB значения для палитры 13. БК11

Д

Color Palette 14

#000000,#ffff00,#00ff00,#ffffff

RGB значения для палитры 14. БК11

Д

Color Palette 15

#000000,#00ffff,#00ff00,#ffffff

RGB значения для палитры 15. БК11

Д

[Joystick Parameters]

Кастомизируемая секция

Joystick Up

VK_UP : 000001

Клавиши переназначения эмулятора джойстика. Имеют вид: <Имя_виртуальной_клавиши> : <номер_бита_в_порту_177714

Д

Joystick Right

VK_RIGHT : 000002

Д

Joystick Down

VK_DOWN : 000004

Д

Joystick Left

VK_LEFT : 000010

Д

Joystick Fire

VK_HOME : 000040

Д

Joystick AltFire

VK_PRIOR : 000100

Д

Joystick A Button

VK_END : 000020

Д

Joystick B Button

VK_NEXT : 000200

Д

[Drives]

Кастомизируемая секция

Drive A:

<empty>

Имя образа, монтируемого в диск А:

Д

Drive B:

<empty>

Имя образа, монтируемого в диск B:

Д

Drive C:

<empty>

Имя образа, монтируемого в диск C:

Д

Drive D:

<empty>

Имя образа, монтируемого в диск D:

Д

HDD0

<empty>

Имя образа HDD, подключаемого как Master

Д

HDD1

<empty>

Имя образа HDD, подключаемого как Slave

Д

Секция [Directories] используется только для чтения, и никак не изменяется эмулятором.

Секция [Main] является самой важной и общей для всех конфигураций.

Все остальные секции поддерживают кастомизацию. Кастомной является секция, в которой хранятся индивидуальные настройки для определённой конфигурации. Она имеет вид [SectionName.ConfigName], например [Options.BK-0010-01]. Значение ConfigName должно совпадать со значением ключа BK model из секции [Main]

Алгоритм работы следующий: При чтении настроек, нужное значение сперва ищется в кастомной секции, и если там его нет, берётся из основной секции.

При сохранении настроек, в кастомную секцию сохраняется значение только в том случае, если оно не совпадает со значением из основной секции. За исключением кастомной секции [Drives.ConfigName], эти значения всегда сохраняются в кастомную секцию, чтобы проще было жить - в каждой конфигурации свои настройки дисководов и винчестеров.

Для каждой конфигурации можно создать свой собственный набор модулей ПЗУ. Для этого нужно вручную создать заданную кастомную секцию [Rom modules] и прописать там свои имена файлов дампов ПЗУ.

Примечание.

В секции [Directories] все пути задаются относительно пути к исполняемому файлу эмулятора.

В секции [Drives] можно указывать полный путь к имени файла образа, находящегося в любом месте. Если образ находится в директории по умолчанию, задаваемой для образов дисков, в секции [Directories] в ключе «IMG Directory», то полный путь указывать не нужно. Подключение можно осуществлять как вручную, так и с помощью специальных кнопок на стандартной панели инструментов.

Образ винчестера можно подключить как вручную, редактированием файла bk.ini, так и через специальный диалог "Настройки эмулятора", находящийся в меню "Опции". Т.к. винчестер штука сложная и не поддерживает горячее отключение-подключение.

Все изменения, вручную вносимые в файл bk.ini во время работы эмулятора не учитываются и заменяются теми, значениями, которые были использованы эмулятором на момент выхода, так что будьте внимательны.

Приложение 3. Описание параметров командной строки

Bk.exe [/Флаг][/Флаг]....

Флаги:

/?, /H

- помощь (не реализовано)

/B «путь»

- загрузка указанного файла в формате «.bin» (Binary file).

/M «путь»

- запуск указанного файла состояния в формате «.msf» (Memory state file).

/S «путь»

- запуск указанного скрипта «.bkscript» (Файл клавиатурного скрипта).
Данный ключ может быть использован совместно с другими ключами.

/T «путь»

- включить указанную кассету на воспроизведение (расширение «.tap» или «.wav»).
Данный ключ может быть использован совместно с другими ключами.

«путь» - может быть как относительным, так и абсолютным. Если путь не задан, то файл ищется в директории по умолчанию, заданной в параметрах ini файла (Файл каждого типа, в своей соответствующей директории).

Например:

bk.exe /m c:\my_saves\my_prog.msf – загрузить сохранённое состояние эмулятора из файла: c:\my_saves\my_prog.msf

bk.exe /s my_scripts\basic.bkscript – запустить файл скрипта, который находится в директории: «каталог эмулятора»\ my_scripts\

bk.exe /b game.bin /s autorun\monitor_load.bkscript – загрузить и запустить файл из директории: «каталог эмулятора»\bin\

bk.exe /b D:\games\game.bin – загрузить и запустить файл из директории «D:\games\». При этом данная директория становится текущей, и все последующие файлы будут искаться там.

bk.exe /t mytape.wav – запустить файл mytape.wav из каталога по умолчанию: «каталог эмулятора»\tapes\

Данные ключи используются не только при запуске эмулятора, но и при регистрации файловых расширений. Одновременно в памяти Windows может находится только одна копия эмулятора. При запуске второй копии с данными ключами, она передаёт параметры запущенному эмулятору и выгружается из памяти. Если эмулятор не загружен в память, то он автоматически загружается при клике на любом файле с зарегистрированным расширением (при этом текущим каталогом для файлов данного типа становится каталог, в котором находится данный файл). Вышеприведённое свойство можно использовать для автоматизации загрузки файлов указанного типа:

Табл.4. Файловые расширения.
Иконка Тип файла Действие

Файл БК в формате bin.
Расширение: «.bin»

Клик на иконке с таким файлом приводит к перезапуску текущей копии эмулятора и запуску скрипта из директории:
autorun\monitor_load.bkscript.

Сохранённое состояние БК.
Расширение: «.msf»

Клик на иконке с таким файлом приводит к мгновенной загрузке выбранного состояния в текущую копию эмулятора.

Образ кассеты БК.
Расширение: «.tap»

Клик на иконке с таким файлом приводит к запуску данной кассеты на воспроизведение в текущей копии эмулятора.

Вспомогательный клавиатурный скрипт.
Расширение: «.bkscript»

Клик на иконке с таким файлом приводит к выполнению выбранного скрипта в текущей копии эмулятора.

Загружать файлы в эмулятор также можно, просто перетаскивая их мышкой на виртуальный экран, с помощью технологии Drag&Drop.

Приложение 4. Описание вспомогательных утилит

В директории Tools находятся дополнительные утилиты, которые могут быть полезны. Чтобы утилиты были видны из меню эмулятора, они снабжены особым модулем проверки свой-чужой, с помощью которого обмениваются параметрами с эмулятором при его инициализации. Так что совершенно любую программу туда поместить можно, но видна она из меню не будет.

На данный момент есть две утилиты:

BKDE - утилита для работы с образами дискет, позволяет извлекать файлы из образов и записывать файлы на некоторые образы.

HDDImgMaker - утилита для создания образа винчестера формата эмулятора, либо чистого, либо из существующего образа - посекторной копии винчестера.