ЭМУЛЯТОР БК0010/БК0011M
(C) С.Е.Камнев, 1996, Москва
v1.21b
=============================================================================
ОПИСАНИЕ
Эмулятор БК0010 и БК0011M предназначен для программной имитации популяр-
ных и широко распространенных некогда компьютеров отечественного производ-
ства серии "БК".
От своих многочисленных аналогов новый эмулятор отличается значительно
более высоким качеством эмуляции (насколько известно автору в эмуляторе рабо-
тают не менее 99% бк-шных программ), высоким быстродействием (на машинах ти-
па 386SX33 достигается реальное быстродействие БК0010), корректной работой с
экраном, как в монохромном, так и в цветном режимах, при этом многие опера-
ции работы с экраном, реализованные на БК аппаратно (например, вертикальный
скроллинг) на PC также реализуются аппаратно, что еще более увеличивает эф-
фективность работы БК-шных программ. Имеются встроенный отладчик-трассиров-
щик, который позволяет также оперативно изменять некоторые параметры эмулято-
ра: быстродействие, клавиатурную задержку, динамику мыши, экранные палитры и
т.д. Поддерживаются некоторые периферийные устройства: принтер, мышь (в
дальнейшем планируется поддержка музыкального сопроцессора, джойстика и пос-
ледовательного порта). Поддерживается нормальная работа с бк-шными дисками
(желательно наличие в системе PU_1700 или аналогичного драйвера). Реализова-
на работа с имиждами БК-шных дисков на винчестере и многое, многое другое.
При этом эмулятор не выдвигает никаких особых требований к аппаратуре -
минимальные требования:
Процессор 80286
Видеосистема EGA с 256 Кб видеопамяти
(используется модификация стандартного режима 640х350 16 цветов).
Память 350 Кб.
Для нормальной работы эмулятора необходимо сделать подкаталог, в котором
он находится, текущим и запустить файл "bk.exe", при этом в подкаталоге дол-
жны находиться также файлы мониторов БК0010/11М "bk0010.bkm" и "bk0011m.bkm",
драйвер дисковода БК "326.bkr" (эмулятором не используется, но необходим для
нормальной работы некоторых бк-шных программ), файл начальной инициализации
"bk.ini" (см. ниже описание опций), а также имиджи бк-шных дисков, с которы-
ми предполагается работать "*.bkd". В комплект эмулятора входит утилита
"bkdisk.com", которая создает имижди дисков заданного объема и даже инициали-
зирует их под ANDOS (находясь в эмуляторе можно, естественно, переинициализи-
ровать любой имидж под другую бк-шную операционную систему).
После запуска эмулятора происходит инициализация монитора БК, а затем по-
пытка загрузки какой-нибудь бк-шной операционной системы с имиджа "C", если
не получилось - то с приводов (или имиджей) "A" и "B". Все найденые в рабо-
чем подкаталоге имиджи становятся доступны, как дисковые устройства.
При вызове эмулятора ему можно задать в качестве параметра имя некоторо-
го файла MS DOS. В этом случае после инициализации монитора произойдет заг-
рузка этого файла и запуск его, как бк-шного. Время создания файла интерпре-
тируется по правилам ANDOS: как адрес загрузки и запуска (если адрес загрузки
< 1000, то адрес запуска = 1000). Например для запуска прилагаемой программы
ANFOCAL8 следуе набрать команду "bk /0 anfocal8". Можно настроить вашу люби-
мую оболочку, что-бы, скажем, при отсутствии у файла расширения он запускался
с эмулятором (что-то вроде "bk /0 !").
При любых обращениях к стандартному драйверу магнитофона (для монитора
БК0010 - адрес 116076) происходит обращение (по чтению, либо по записи) к
файлам MS DOS. Например, для ANDOS команда "@:d:\bkutil\rs" приведет к заг-
рузке бк-шного отладчика RS, который находится на разделе "D" в подкаталоге
"BKUTIL". Время создания файла интерпретируется по правилам ANDOS: как адрес
загрузки и запуска.
РАСПОЛОЖЕНИЕ УПРАВЛЯЮЩИХ КЛАВИШ:
┌───────────────────────────┬──────────────────────────┐
│ Клавиша на клавиатуре IBM │ Аналогичная клавиша БК │
├───────────────────────────┼──────────────────────────┤
│ F1 │ ПОВТ │
│ F2 │ КТ │
│ F3 │ ╪═> │
│ F4 │ K══ │
│ F5 │ ╞═> │
│ F6 │ ИНД СУ │
│ F7 │ БЛОК РЕД │
│ F8 │ ШАГ │
│ F9 │ СБР │
│ Esc │ СТОП │
│ Ctrl │ СУ │
│ Alt │ АР2 │
└───────────────────────────┴──────────────────────────┘
При однократном нажатии:
Левый Ctrl - РУС
Правый Ctrl - ЛАТ
ДОПОЛНИТЕЛЬНЫЕ КОМАНДЫ ЭМУЛЯТОРА:
F10 - выход из эмулятора в ДОС
F11 - перезапуск БК с адреса 140000 (для БК0010 - 100000)
Ctrl+F11 - перезапуск БК с адреса 100000 (только для БК0011М)
F12 - включение встроенного отладчика
Scroll Lock - переключение монохромного/цветного изображения
Shift+F2 - включение/выключение звука
Shift+F3 - включение/выключение замедления
Shift+F6 - включение/выключение поддержки автоповтора клавиатуры PC
Shift+F7 - включение/выключение замедления клавиатуры
Shift+F8 - переключение латинской раскладки клавиатуры
"QWERTY" (принято на PC) / "JCUKEN" (принято на БК)
Ctrl+Fn - (Fn - клавиша от F1 до F9) сохранение текущего состояния БК
в файле nBK0010.SAV
Alt+Ctrl+Fn - восстановление состояния БК из файла nBK0010.SAV
ОПЦИИ ЭМУЛЯТОРА:
/0 - режим эмуляции БК0010 (по умолчанию - БК0011М)
/S - включить звук
/Pn - установить замедление на "n" единиц
/A - поддержка автоповтора клавиатуры PC
/Kn - автоматическое включение на 0.2 сек замедления при нажатии
клавиши для обеспечения нормального автоповтора БК
/R - раскладка клавиатуры "JCUKEN" (по умолчанию "QWERTY")
/Mn - скорость мыши (0 - максимальная), рекомендуется от 0 до 3
/C - включить цветное изображение (по умолчанию - монохромное)
/W - режим стандартного "медленного" таймера (в некоторых случаях
необходимо под windows-ом, под win95 уже не актуально)
/V1 - видеорежим 1: стандартное число точек по вертикали не
изменяется, изображение находится в середине экрана.
Используется в случае, если ваша видео-карта не поддерживает
использованный в эмуляторе режим.
/V0 - видеорежим 0: стандартное число точек по вертикали не
изменяется, изображение находится в верхней части экрана. Если
не помогает V1.
Все опции эмулятора могут быть записаны в виде обычной текстовой строки
в файл начальной инициализации BK.INI. Если задается имя заргужаемого файла,
то оно должно быть написано после всех опций.
Эмулятор имеет встроенный отладчик, выход в который происходит по нажа-
тию клавиши F12. В правой части экрана появляется таблица состояния "процес-
сора" БК, в т.ч.: содержимое регистров 0-5, регистра стека 'S', счетчика ко-
манд 'P' (текущий адрес), содержимое ячейки памяти по текущему адресу '*',
содержимое следующей ячейки '#' или рассчитанного для текущего адреса относи-
тельного адреса '@'; а также состояние флагов процессора. В строке под табли-
цей можно вводить восьмеричные числа, завершая их ввод некоторыми командами:
КОМАНДЫ ОТЛАДЧИКА:
^#& - перемещение вперед на одно слово
- перемещение назад на одно слово
n[Enter] - ввод кода "n" по текущему адресу и инкремент адреса на 2
n[G] - запуск программы с адреса "n" или, (при n=0) с текущего адреса
n[Home] - переход на адрес "n" или, (при n=0) на базовый адрес
n[End] - запуск программы с базового адреса в режиме поиска адреса,
как только будет достигнут адрес "n", произойдет переход в
отладчик
n[Esc] - запуск программы с базового адреса (можно использовать, как
выход из отладчика), если "n" не равно "0", то будет
осуществляться поиск соответствующего кода, как только он будет
обнаружен в процессе выполнения программы, произойдет переход в
отладчик
[Tab] - переключение индикации: непосредственный операнд/относительный
адрес
n[P] - установка задержки в "n" единиц
n[K] - установка задержки клавиатуры в "n" единиц
n[M] - установка скорости мыши
nAlt+[R] - установка красного цвета в коде "кзсКЗС"
nAlt+[G] - установка зеленого цвета
nAlt+[B] - установка синего цвета
nAlt+[W] - установка белого цвета (для монохромного режима)
nAlt+[N] - установка черного цвета (фона)