Работа с симулятором SIMH
Работа с симулятором SIMH
Проект SIMH представляет собой семейство симуляторов исторических компьютеров 60х-80х годов. Основной сайт: simh.trailing-edge.com. Сборка и запуск SIMH для БЭСМ-6 описаны на отдельной странице.
Все симуляторы семейства SIMH имеют похожий командный интерфейс. Имеется общее описание в формате PDF. Здесь мы кратко опишем основные приёмы работы с симулятором.
Вызов симулятора
Бинарный файл симулятора имеет имя besm6
для ЭВМ БЭСМ-6 и svs
для ЭВМ СВС.
При вызове без параметров симулятор вызывается в диологовом режиме. Командой help можно получить список команд и информацию о командах. Выйти можно командой q. Например:
$ besm6
БЭСМ-6 simulator V4.0-0 Beta git commit id: 0169032c
sim> help
Help is available for the following commands:
! ASSERT ASSIGN ATTACH BOOT
BREAK CALL CAT CD CONTINUE
DEASSIGN DEPOSIT DETACH DIR DO
DUMP ECHO EVALUATE EXAMINE EXIT
EXPECT GO GOTO HELP IDEPOSIT
IEXAMINE IF IGNORE LOAD LS
NEXT NOBREAK NOEXPECT ON PROCEED
PWD RESET RESTORE RETURN RUN
SAVE SCREENSHOT SEND SET SHIFT
SHOW STEP TYPE
sim> q
Goodbye
При вызове симулятор ищет и выполняет скрипт инициализации $HOME/simh.ini
, а при его отсутствии
./simh.ini
. Общий вид вызова следующий:
besm6 [-флаги] [файл параметры...]
Если задано имя файла, он выполняется (с параметрами) после скрипта инициализации. Затем симулятор переходит в интерактивный режим.
Флаги:
- -v — печатать команды скрипта перед выполнением
- -e — прервать выполнение скрипта при ошибке команды
- -q — сообщать менее подробную информацию о выполнении команд, а также не печатать имя и версию симулятора при старте
- -o — вызываемый скрипт будет наследовать состояние
on
из вызывающего скрипта
Примеры скриптов
Пример 1: запуск теста арифметического устройства. Файл test_alu.b6
содержит код теста.
set mmu cache
load test_alu.b6
go 32000
Пример 2: запуск операционной системы Диспак. Из файла boot_dispak.b6
считывается код
первичного загрузчика. В файлах sbor2048.bin
и sbor2053.bin
должны находиться
образы системных дисков. Для дополнительного временного диска будет создан файл 2052.bin
.
Для барабанов будут созданы файлы drum1x.bin
и drum2x.bin
.
Вывод АЦПУ будет направлен в файл output.txt
.
Протокол консольного терминала пишется в файл tty1.txt
.
set cpu idle
attach -e disk0 sbor2048.bin
attach -e disk7 sbor2053.bin
attach -n disk6 2052.bin
attach -n drum0 drum1x.bin
attach -n drum1 drum2x.bin
attach -n prn0 output.txt
attach tty1 console
set tty1 qwerty,authbs
set -n tty1 log=tty1.txt
load boot_dispak.b6
run 2000
Содержимое памяти
Командами ex (examine) и d (deposit) можно просматривать и изменять содержимое памяти. Первый параметр задаёт диапазон адресов:
- адрес
- адрес-адрес
- адрес/количество
Флагами можно задавать формат отображения:
- -x — в шестнадцатеричном виде
- -b — с разбивкой на байты
- -f — в виде числа с плавающей точкой
- -i — в виде машинных команд
- -m — в мнемонике БЕМШ
- -ml — в мнемонике MADLEN
По умолчанию используется восьмеричный формат. Например:
sim> ex 32000
32000: 0643 0000 0413 2011
sim> ex 32010-32017
32010: 0000 0000 0000 0000
32011: 0000 0100 0000 0001
32012: 0010 0000 0100 7766
32013: 0037 0000 0220 0000
32014: 0010 0000 0660 2016
32015: 0730 2014 0220 0000
32016: 0410 4412 0010 0000
32017: 0660 2020 0730 2016
sim> ex -x 32020/4
32020: 00800010890a
32021: 10a90a1b0413
32022: 1d8410090000
32023: 10890a00a000
sim> ex -b 32020/4
32020: 000 200 000 020 211 012
32021: 020 251 012 033 004 023
32022: 035 204 020 011 000 000
32023: 020 211 012 000 240 000
sim> ex -f 32020/4
32020: 2.7e-20
32021: 9.2e-18
32022: -4.3e-16
32023: 7.4e-18
sim> ex -i 32020/4
32020: 00 010 0000 01 010 4412
32021: 01 012 4412 01 26 02023
32022: 01 33 02020 00 22 00000
32023: 01 010 4412 00 012 0000
sim> ex -m 32020/4
32020: сч,
сч 4412(1)
32021: нтж 4412(1),
по 2023(1)
32022: стоп 2020(1),
мода
32023: сч 4412(1),
нтж
sim> ex -ml 32020/4
32020: xta,
xta 4412(1)
32021: aex 4412(1),
uza 2023(1)
32022: stop 2020(1),
utc
32023: xta 4412(1),
aex
Второй параметр команды d - данные для занесения в память. Автоматически распознаются следующие форматы:
- восьмеричный формат, до 16 цифр
- формат машинных команд
- команды в мнемонике БЕМШ
- команды в мнемонике MADLEN
Данные помещаются в память с командной свёрткой. Например:
sim> d 1 1234567
sim> d 2 01 012 4412, 01 26 02023
sim> d 3 нтж 4412(1), по 2023(1)
sim> d 4 aex 4412(1), uza 2023(1)
sim> ex 1-4
1: 0000 0000 0123 4567
2: 0412 4412 0660 2023
3: 0412 4412 0660 2023
4: 0412 4412 0660 2023
Загрузка из файла
Содержимое памяти можно загрузить из файла в формате, аналогичном используемому в ОС Диспак. Пример файла с данными:
в 1
к сл 7, зп 11
к вчп 11, зп 10
к умн 10, дел 10
к вч 10, слпа 145
к пе 6, стоп
в 6
к сч 11, пб 1
в 7
ч 1.0
с 0
п 1
Загрузить такой файл можно командой load:
sim> load file.dat
Выгрузить всё содержимое памяти в файл в таком формате можно командой dump:
sim> dump output.dat
Команды симулятора
- quit
- set
- !
- echo
- attach
- do
- load
- dump
- reset
- examine
- deposit
- go
- step
- run
- break
TODO