Эмулятор БК-0010-01, БК-0011 и БК-0011М

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

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

Аннотация

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

После успешной инсталляции, создаются следующие служебные папки:

Bin\

– программы БК в формате BIN

Docs\

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

Img\

– образы дисков БК

Memory\

– записанные состояния памяти

Rom\

– прошивки ПЗУ

Scripts\

– скрипты эмулятора

Tapes\

wav и tap файлы кассет для загрузки с магнитофона.

Tools\

– служебные утилиты

UserSaves\

– файлы, сохранённые пользователем

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

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

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

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

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

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

Автор считает своей целью оттачивание эмуляции БК вплоть до 99%, если это конечно возможно, и что приступать к эмуляции БК11М без достижения хотя бы 90% бессмысленно.

Однако следующий автор на практике убедился, что без эмуляции БК11М дальнейшее улучшение точности эмуляции было просто невозможно, поэтому была реализована эмуляция БК11М и КНГМД А16М, а затем и СМК-512 и эмуляция HDD.

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

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

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

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

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

177660

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

177662

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

177664

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

177706,
177710,
177712

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

177714

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

177716

– полностью

177130

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

177132

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

Эмулируется звук динамика БК через систему 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. Общий вид эмулятора, полный вид.

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

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

Файл

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

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

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

Опции

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

Отладка

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

Вид

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

Инструменты

– вызов вспомогательных утилит.

Справка

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

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

Все команды разбиты на три группы.

Стандартная

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

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

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

Рис.3. Диалог открытия образа.

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

Звук

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

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

Отладка

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

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

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

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

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

Загрузка и запуск на БК-0010(01)

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

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

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

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

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

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

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

Загрузка и запуск на БК-0011(M)

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

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

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

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

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

Меню «Файл»

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

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

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

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

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

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

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

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

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

000000000377

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

0.5

000400037777

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

15.5

040000077777

ОЗУ экрана

16.0

100000177777

Монитор

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

100000177777

Монитор

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

100000177777

Монитор

8.0

120000137777

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

8.0

140000157777

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

8.0

160000177377

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

7.5

177400177777

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

0.5

Старт БК 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

100000177777

Монитор

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

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

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

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

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

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

Ускорить – увеличить частоту процессора на 1 кГц. По умолчанию, среднее количество команд обрабатываемых процессором, составляет  250 000 в секунду, что соответствует реальной скорости БК.

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

Замедлить – уменьшить частоту процессора на 1 кГц. По умолчанию, среднее количество команд обрабатываемых процессором, составляет 250 000 в секунду, что соответствует реальной скорости БК.

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

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

Меню «Опции»

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

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

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

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

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

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

AY8910 - включить фильтрацию звука музыкального сопроцессора AY-8910.

Эмулировать клавиатуру БК – опция задаёт, будет ли эмулироваться реальное поведение клавиатуры БК. Если данная опция включена, то клавиатура PC начинает работать также, как и реальная клавиатура БК, т.е. при нажатии любой клавиши в мониторе автоповтора не происходит, а обработка кода новой клавиши не производится, пока не отпущена старая. При выключенной опции автоповтор работает стандартным образом, а клавиатура ведёт себе так же, как в 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).

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

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

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

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

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

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

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

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

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

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

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

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

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

Карта памяти

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

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

  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»

Меню «Вид»

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

Стандартная, Звук, Отладка – показать/скрыть соответствующие панели инструментов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис.10a. Панель управления лентой БК.

Кнопки на панели становятся активными, если снять галку с опции Эмулировать сохранение на ленту. Т.е. в этом случае, сохранение на ленту делается вручную, посредством кнопок Начать запись, и остановить запись.

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

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

Рис.10б. Панель управления лентой БК.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Приложение 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

   

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

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

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

F12

Скриншот

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

Num. 5

Рестарт БК

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

Ctrl+Num. 5

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

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

Alt+Num. 5

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

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

Num. +

Ускорить

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

Num. -

Замедлить

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

Num. *

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

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

Num. 7

Включить Speaker

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

Num. 8

Включить Covox

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

Alt+Num. 8

Стерео Covox

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

Num. 9

Включить AY8910

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

Ctrl+Num. 7

Фильтр Speaker

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

Ctrl+Num. 8

Фильтр Covox

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

Ctrl+Num. 9

Фильтр AY-8910

Включить/Выключить фильтрацию звука AY-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

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

Д

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

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

Д

FDD A16M

DISK_A16M_v2.41.rom

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

Д

FDD SMK512

DISK_SMK512_v2.05.rom

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

Д

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

Д

[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 - DIBDraw, 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.

Д

[Parameters]

CPU start address

0

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

Д

CPU frequency

0

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

Д

Registers dump interval

0

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

И

Sound volume

30%

Громкость звука.

И

[Options]

Use Saves directory as default

No

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

Д

Speaker enabled

Yes

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

Д

Covox enabled

No

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

Д

AY8910 enabled

Yes

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

Д

Speaker filter enabled

Yes

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

Д

Covox filter enabled

Yes

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

Д

AY8910 filter enabled

Yes

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

Д

Stereo covox

No

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

Д

Emulate BK keyboard

Yes

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

Д

Joystick enabled

Yes

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

Д

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

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

Д

Start dump address

0

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

Д

Start disasm address

01000

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

Д

Virtual Keyboard Type

0

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

Д

Screen fade emulation

No

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

Д

[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»).
Данный ключ может быть использован совместно с другими ключами.

«путь» - может быть как относительным, так и абсолютным.

Например:

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 /t mytape.wav – запустить файл mytape.wav из каталога по умолчанию:

«каталог эмулятора»\tapes\

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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