-
Notifications
You must be signed in to change notification settings - Fork 4
User Manual ru
BKBTL -- это эмулятор семейства советских компьютеров БК, в частности, БК-0010 и БК-0011М.
TODO
Сначала убедитесь, что включена одна из конфигураций БК-0010. Теперь нужно перейти в Монитор. Для этого, если вы находитесь в Бейсике, введите MO{Ввод}
; если вы находитесь в Фокале, введите P M{Ввод}
; если загружена конфигурация без Бейсика и Фокала -- нажмите клавишу СТОП
. В результате должно появиться приглашение Монитора -- в виде знака вопроса.
В меню эмулятора выберите File > Load BIN. Укажите .bin-файл для чтения. Диалог загрузки покажет вам, с какого адреса будет загружена программа и какой она длины. Нажмите ОК. Большинство программ загружается с адреса 1000; меньший адрес скорее всего говорит от том что программа стартует автоматически -- для запуска таких программ достаточно нажать любую клавишу. Если адрес 1000 или больше -- нужно запустить программу -- обычно, командой S{Ввод}
.
- любая буква от
A
доK
-- возврат из Монитора -
L
-- ??? -
M
либоM имяфайла
-- загрузка с магнитофона -
S адрес
-- выполнение программы с указанного адреса. КомандаS
без адреса запустит только что загруженную программу с адреса, указанного в её заголовке. В конфигурацииBK 0010.01 FDD
командойS160000
запускается начальный загрузчик КНГМД. -
T
-- выполнение программы тестов из ПЗУ блока МСТД, данное ПЗУ подключено в конфигурацииBK 0010.01 FOCAL
. При переходе к программе тестов, приглашение меняется на+
. Тесты запускаются вводом номера теста:1
-- тест ОЗУ и ПЗУ,2
-- тест клавиатуры,3
-- интерфейс,4
-- непрерывный вывод на экран,5
-- магнитофон,K
-- выход из программы тестирования.
Признаком готовности монитора к приему очередной команды оператора является символ @
в первой позиции строки экрана. Числа вводятся в восьмеричной системе счисления. Набирать незначащие нули необязательно.
-
XXXXXX/
-- открыть ячейку с восьмеричным адресом XXXXXX. По этой команде на экран выводится восьмеричное содержимое ячейки ОЗУ, ПЗУ или регистра внешнего устройства с адресом XXXXXX. Если такой регистр отсутствует или страница ОЗУ не подключена к заданному адресу, выводится сообщение об ошибке -- символ?
и команда игнорируется. -
XXXXXX\
-- открыть байт с адресом XXXXXX. Содержимое байта или слова можно изменить, введя восьмеричное число (новое содержимое) и подав одну из команд: ВВОД (клавиша<─┘
), "открыть следующую ячейку", "открыть предыдущую ячейку", "открыть косвенно", "открыть по смещению". -
RX/
- открыть регистр X, где X = 0..7 илиS
. Открывает регистр общего назначения процессора (R0 - R7) или регистр состояния процессора (RS).
Команды /
и \
без аргумента открывают "текущую", то есть последнюю открывавшуюся ячейку.
- ВВОД (
<─┘
) -- закрыть слово, байт или регистр. Если пользователем было введено новое содержимое, оно будет записано. - Клавиша
TODO
-- закрыть слово, байт или регистр (если надо, модифицировать содержимое как по команде ВВОД) и открыть следующее слово, байт или регистр (при этом печатается адрес открываемой ячейки). После ячейки с адресом 177777 открывается ячейка 000000, после R7 - R0, после RS -- команда работает, как команда ВВОД. - Клавиша
TODO
-- закрыть (с модификацией) и открыть предыдущее слово, байт, регистр. - Клавиша
TODO
-- закрыть (с модификацией) ячейку, вычислить адрес по формуле: АДРЕС = < АДРЕС ТЕКУЩЕЙ ЯЧЕЙКИ > + ее новое содержимое + 2 и открыть (как слово) ячейку с соответствующим адресом. Эта команда используется для открытия аргумента команды ЭВМ, использующей метод адресации 67. - Клавиша
TODO
-- закрыть (с модификацией) ячейку, вычислить адрес по формуле: АДРЕС = < АДРЕС ЯЧЕЙКИ > + < СОДЕРЖИМОЕ МЛАДШЕГО БАЙТА > * 2 + 2 и открыть (как слово) ячейку с соответствующим адресом. Содержимое байта рассматривается как число со знаком. Команда используется для открытия ячейки, на которую выполняется переход по команде типа BR. -
@
-- закрыть (с модификацией) ячейку, открыть ячейку по адресу, равному (новому) содержимому закрытой ячейки. -
N;MC
-- отобразить страницу номер N с адреса, задаваемого аргументом M. Страницы с восьмеричными номерами 10, 11, 12, 13 относятся к страницам ПЗУ 0, 1, 2, и 3 соответственно. Значение M, равное нулю, означает адреса 40000-100000, равное 1 -- адреса 100000-140000. -
XXXB
-- загрузить операционную систему с НГМД номер XXX и запустить ее. Если номер не задан, производится загрузка с автоматическим поиском системного диска. -
XXXXXXL
-- загрузить с адреса XXXXXX двоичный файл с магнитной ленты. Если адрес не задан, загрузка осуществляется с адреса, заданного в заголовке файла. Базовая операционная система поддерживает формат записи на магнитной ленте, совместимый с ЭВМ БК-0010. После выдачи этой команды на экран выдается вопросимя файла?
. Оператор должен ввести имя файла на магнитной ленте длиной до 16 символов. Если необходимо просмотреть каталог ленты,необходимо ввести?
вместо имени файла. Если нажать клавишу ВВОД без ввода имени, будет загружен первый встретившийся файл. -
<ОБЛАСТЬ>;U
-- вывести в файл информацию из ОЗУ.<ОБЛАСТЬ>
-- конструкция видаXXXXXX-YYYYYY
, где XXXXXX и YYYYYY -- начальный и конечный (включительно) адреса записываемой области ОЗУ, или видаXXXXXX+YYYYYY
, где XXXXXX -- начальный адрес записываемой области ОЗУ, а YYYYYY -- длина в байтах. После выдачи команды задается вопросимя?
, на который оператор должен ввести имя файла, который он хочет записать на ленту. -
XXXXXXM
-- включить/выключить двигатель магнитофона (используется при перемотке). Если XXXXXX не равно 0, двигатель включается, иначе выключается. Отсутствие аргумента соответствует нулевому. -
XXXXXXG
-- запустить программу с адреса XXXXXX. При отсутствии аргумента запуск производится со стартового адреса прграммы, который должен содержаться в ячейке USERPC (адрес 000040). -
P
-- продолжить выполнение программы с адреса, на котором оно было прервано командой HALT или клавишей СТОП. - Клавиша ШАГ -- выполнить одну команду программы и вернуться в монитор.
- Клавиша
[<--]
(забой) -- аннулировать последнюю введенную цифру. Другие символы не аннулируются. Команда не выполняется, если вводимое число = 0. - СУ/E -- переход в непосредственный режим. Используется для настройки драйвера экрана. В драйвер экрана передается символ ESC (код 33), после чего монитор все вводимые символы передает драйверу экрана. Монитор остается в непосредственном режиме до ввода комбинации СУ/@. ESC -- последовательности, воспринимаемые драйвером экрана.
БК-0010.01 с языком Бейсик в ПЗУ.
Карта памяти:
Адреса | |
---|---|
000000-077777 | 32 КБ ОЗУ |
100000-117777 | 8 КБ ПЗУ Монитора |
120000-137777 | 8 КБ ПЗУ Бейсика 1 |
140000-157777 | 8 КБ ПЗУ Бейсика 2 |
160000-177577 | 8 КБ ПЗУ Бейсика 3 |
177600-177777 | регистры |
БК-0010.01 с блоком МСТД -- Фокал и тесты в ПЗУ.
Карта памяти:
Адреса | |
---|---|
000000-077777 | 32 КБ ОЗУ |
100000-117777 | 8 КБ ПЗУ Монитора |
120000-137777 | 8 КБ ПЗУ Фокала |
140000-157777 | 8 КБ не используется |
160000-177577 | 8 КБ ПЗУ тестов |
177600-177777 | регистры |
БК-0010.01 с блоком КНГМД с дополнительными 16 КБ ОЗУ.
Карта памяти:
Адреса | |
---|---|
000000-077777 | ОЗУ 32 КБ |
100000-117777 | ПЗУ Монитора |
120000-137777 | ОЗУ КНГМД 1 |
140000-157777 | ОЗУ КНГМД 2 |
160000-167777 | 4 КБ ПЗУ драйвера НГМД |
170000-177777 | регистры |
Карта памяти:
Адреса | |
---|---|
000000-037777 | 16 КБ ОЗУ -- всегда страница ОЗУ 0 |
040000-077777 | 16 КБ окно №0 -- страница ОЗУ 0..7 |
100000-137777 | 16 КБ окно №1 -- страница ОЗУ 0..7 или ПЗУ 8..11 |
140000-157777 | 8 КБ системное ПЗУ |
160000-167777 | 4 КБ ПЗУ драйвера НГМД |
170000-177777 | регистры |
Встроенный отладчик включается/отключается по команде View > Debug.
Назначение отладочного режима -- двоякое. Во-первых, это инструмент для разработчиков эмулятора, позволяющий дойти до нужного места кода и пройти его по шагам, контроллируя что все функции работают правильно. Во-вторых, это возможность для пользователей эмулятора в деталях посмотреть работу программы.
Слева вверху -- экран БК. Слева внизу -- отладочная консоль, в которой можно вводить команды; краткий список команд выдается по команде h
. Справа вверху -- окно состояния текущего процессора: вверху в боксе его регистры, справа от них содержимое стека, ниже дизассемблированный блок возле адреса PC; правее вверху -- состояние портов, внизу -- состояние каналов обмена данными между процессорами. Справа внизу -- окно состояния памяти.
Красным цветом везде отмечены ячейки памяти, которые изменились после очередного шага или прогона. Перед шагом/запуском сохраняется состояние всей памяти и регистров процессоров, что позволяет о каждой ячейке сказать, изменилась ли она.
Список команд отладочной консоли выдается по команде h
:
Console command list:
c Clear console log
dXXXXXX Disassemble from address XXXXXX
g Go; free run
gXXXXXX Go; run processor until breakpoint at address XXXXXX
m Memory dump at current address
mXXXXXX Memory dump at address XXXXXX
mrN Memory dump at address from register N; N=0..7
r Show register values
rN Show value of register N; N=0..7,ps
rN XXXXXX Set register N to value XXXXXX; N=0..7,ps
s Step Into; executes one instruction
so Step Over; executes and stops after the current instruction
u Save memory dump to file memdumpXPU.bin
TODO