Добро пожаловать в машинный зал. Это руководство проведёт вас по каждой странице эмулятора — от первого запуска до самых глубоких настроек, — чтобы вы проводили время за машиной, а не за чтением документации.
Всё описанное ниже относится и к версии в браузере, и к настольному приложению на Tauri.
При самом первом запуске эмулятор встречает вас короткой подсказкой, которая сразу объясняет, что делать: какую страницу открыть, какие гостевые ОС смонтированы и какими командами они загружаются. Кнопка Quick boot рядом с Got it открывает мастер напрямую, так что новичок одним нажатием видит работающую гостевую ОС:

Подсказка первого запуска.
Спешите? Используйте кнопку magic wand в правом верхнем углу окна. Она остаётся на всех страницах, кроме Info. Одно нажатие делает всё:
media/manifest.json) плюс всё, что вы добавили перетаскиванием. Перфоленты остаются в списке всегда.boot rk0 → unix → login root).
Список быстрого запуска показывает каждую гостевую ОС и перфоленту.
Мастер учитывает приглашения: он следит за выводом консоли и вводит логин только тогда, когда гость действительно напечатал login:, поэтому медленные загрузки с большим объёмом вывода (например 2.11 BSD) всё равно надёжно доходят до приглашения. Каждый гость также объявляет нужный ему профиль машины — например RT-11/RSX/RSTS включают построчный принтер LP11, а Unix V5/BSD требуют консоль-телетайп, — так что мастер при необходимости перенастраивает машину и автоматически продолжает загрузку. Каждый запуск из мастера начинается с чистой страницы (свежая бумага и очищенные экраны).
Пока вводится последовательность, всплывающее уведомление «Autoloading in progress…» блокирует ввод эмулятора: терминалы, пульт и сама страница не реагируют ни на клавиатуру, ни на мышь — так ни один ваш символ не вклинится в то, что печатает мастер. Единственный выход до окончания — кнопка Take control!: она немедленно прерывает автозагрузку и возвращает машину вам.

Пока мастер вводит, ввод заблокирован; Take control! останавливает автозагрузку и возвращает управление.
Образы дисков и лент занимают несколько мегабайт, поэтому на медленном канале машина может надолго замолчать. Тонкая полоса Loading N% внизу окна показывает, сколько образа уже загружено — и при автозагрузке, и при ручной загрузке, и при монтировании.
@ наберите boot rp1 и нажмите ENTER.root (без пароля).ls, ps -aux, df — или скомпилируйте программу на C командой cc.Команда загрузки в руководстве записана прописными (BOOT RK1), потому что так она работает на любой консоли: у телетайпа Model 33 ASR вообще нет строчных литер, поэтому строчная команда с него до машины не дойдёт. На видеотерминале (VT52 или VT100) строчные работают так же хорошо — гость их приводит сам.
Каждый тумблер, светодиод и поворотный переключатель настоящего PDP-11/70 воспроизведены точно. Страница Panel — это то место, где вы вводите загрузчик тумблерами так же, как инженеры DEC в 1970-х.

Пультовая панель PDP-11/70, питание включено.
Простой «бегущий огонёк» — введите это, чтобы увидеть, как пляшут светодиоды адреса и данных:
Switch sequence: HALT, 001000, LOAD ADDRESS 012700, DEPOSIT 000001, DEPOSIT 006100, DEPOSIT 000005, DEPOSIT 000775, DEPOSIT 001000, LOAD ADDRESS, ENABLE, START
Перезапуск загрузчика:
HALT, 120000, LOAD ADDRESS, ENABLE, START
Кнопка Bootstrap now! отказывается запускать машину, пока питание выключено:

Bootstrap now! требует, чтобы машина была сначала включена.
В том же диалоге есть ярлык к опции CONFIG Auto-boot: поставьте галочку, чтобы при каждом последующем включении питания автоматически выполнялась загрузка по умолчанию, не заходя на страницу Config. Выбор сохраняется и синхронизирован с галочкой на странице CONFIG.
Консоль оператора — это то, что PDP-11 использует как свой TT0:, собственная пишущая машинка машины. В зависимости от страницы CONFIG это либо телепайп Model 33 ASR, либо один из двух видеотерминалов: DECscope VT52 (см. ниже) или DEC VT100.
Консоль отрисована как аутентичный Model 33 ASR светло-кремового/бежевого цвета: рулон бумаги позади поднимающегося листа, стеклянное окно каретки и штампованный логотип Teletype Corporation на нижней лицевой панели.

Консоль оператора Model 33 ASR на приглашении @.
^H): повторная печать того же глифа даёт жирный, подчёркивания дают подчёркивание, а удар другого глифа оставляет настоящую тёмную кляксу оверстрайка, какую делает терминал с твёрдой копией..ptap (как сохранённый перфоратором или страницей Storage), сжатый .ptap.zst или обычный .txt, символы которого становятся 7-битными кодами ленты. Вся лента висит из прорези читателя до низа окна, её рваный свободный конец оборван, как у перфорированной ленты — дойдя до низа, она прокручивается колесом мыши (как и перфорированная лента, она не рисует полосу прокрутки). По мере чтения лента заметно движется вверх через прорезь и укорачивается, качаясь на каждом байте; когда прочитан последний байт, лента ушла в машину и можно загрузить новую.Нажатие на подпись позиции сразу переключает на неё; нажатие на сам круглый диск переключателя поворачивает его на один щелчок по часовой стрелке (START → STOP → FREE → AUTO), как поворот настоящего переключателя.
Когда консольный терминал установлен в VT52, консоль оператора становится DECscope с его аутентичным белым/серым (P4) люминофором на чёрной трубке — полное поведение см. ниже в разделе «Пользовательские терминалы», оно общее.

DECscope VT52 в роли консоли оператора, показывающий приглашение @.
Установите консольный терминал в VT100, и консоль станет DEC VT100 — ANSI-терминалом, пришедшим на смену DECscope. Он нарисован в собственном корпусе, со своими пропорциями (арт принадлежит терминалу, а не перелицованному DECscope), и наследует всё, кроме самой трубки: разметку страницы, кнопку зума и зум двойным нажатием, расположение STATE/REBOOT и обработку клавиатуры.

DEC VT100 в роли консоли оператора, показывающий приглашение @.
VT100 — это надмножество VT52, ровно как и само железо: последовательности DECscope продолжают работать, а терминал добавляет грамматику ANSI (последовательности CSI, приватные режимы DEC, области прокрутки, наборы символов G0/G1), на которой говорит с момента включения — VT100 это машина только с CRT и у неё нет режима твёрдой копии, в который нужно сначала войти. То, чего на железе никогда не было, отвергается, а не подделывается: прямая адресация ESC Y, включение/выключение графики ESC F/ESC G, режимы клавиатуры VT52 и ответ-идентификация VT52. На вопрос, кто он (CSI c), VT100 отвечает VT100 with AVO, а CSI ? 2 h (DECANM) переводит его в режим совместимости с VT52, как делала настоящая машина.
Две опции CONFIG принадлежат только этому терминалу: люминофор трубки — P4 белый, с которым VT100 выпускался, или P1 зелёный — и щелчок клавиш (клавиатура DECscope была механической и щёлкать ей нечем). Переключатель VT52 reverse video принадлежит самому DECscope и никогда не затрагивает VT100: там инверсный текст появляется по атрибуту SGR 7, который посылает программа.
До двух пользовательских видеотерминалов (показываются только если настроены на странице CONFIG) позволяют гостевым ОС, предпочитающим видеотерминалы, работать рядом. Каждый — это DECscope VT52 или DEC VT100, выбирается независимо (None | VT52 | VT100), и каждый нарисован в корпусе выбранного терминала: либо наклонный моноблок DECscope (корпус из формованного пластика цвета слоновой кости с вентиляционной решёткой, утопленный экран в глубокой рамке и гладкая боковая панель с выступающим гребнем), либо собственный корпус VT100. Ввод идёт с физической клавиатуры, как на оригинальных машинах.

Пользовательский терминал VT52 (TTY 1) с интерактивной сессией.

Пользовательский терминал VT100 (TTY 2) — та же страница, то же поведение, собственный корпус.
monospace используется как запасной, пока веб-шрифт не загрузился).^L) стирают дисплей и возвращают курсор в начало, поэтому вывод clear и многостраничного nroff/man начинает каждую страницу с верхней строки.Ctrl+C / Ctrl+V / вставка правой кнопкой) для быстрого ввода исходного кода — ценой отказа от отрисовки выделения SGR.LP11 — это анимированный построчный принтер на широкой бумаге на 132 колонки (выбирается 72/80/100/132). У него нет клавиатуры — он только печатает. Кнопка Print отправляет накопленные задания на настоящий системный принтер через системный диалог, а Save.txt экспортирует вывод (разрывы страниц сохраняются как маркеры \f).

Построчный принтер LP11 печатает листинг задания.
?LP0: I/O error), а не отбрасывает задание молча.lpr / lpd) шлёт FF между заданиями, чтобы каждое начиналось с нового листа: остаток листа заполняется (66 строк при 6 LPI) и закрывается пунктирным маркером сгиба/перфорации.Дополнительный процессор векторной графики DEC VT11 с собственной страницей на CRT с зелёным люминофором (логическое разрешение 1024×768, автоматически масштабируется под окно). Включается на странице CONFIG.
Lunar Lander использует его — мастер быстрого запуска сам включает дисплей и переключается на страницу Display.

Lunar Lander, нарисованный на векторном CRT VT11.
Страница Storage управляет всеми видами носителей. В ней две вкладки — Images и Paper Tapes — потому что это два совершенно разных рабочих процесса. Образ — это целое устройство, смонтированное в машину и запоминаемое между сессиями; перфолента — поток байтов, который читатель проходит от первого кадра до конца.

Страница Storage, вкладка Images: зона перетаскивания, смонтированные образы, экспорт диска и сохраняемые изменения диска.
Вкладка Images:
.dsk, .tap, .ptap и их сжатые формы .zst. Пока активна страница Storage, файл можно бросить в любое место окна: появляется цель перетаскивания на всё окно. Файл .zst — это кадр zstd, и браузер распаковывает его на лету, поэтому скачанный образ не нужно распаковывать заранее.RP1.DSK.ZST становится rp1.dsk, поэтому гость загружает его командой boot rp1. Переименуйте файл в нужное устройство — или оставьте имя как есть и привяжите образ к приводу позже (см. ниже). Таблица ниже сопоставляет каждое устройство с его приводом, контроллером и командой загрузки.Какой файл какому устройству соответствует:
| Образ | Привод | Контроллер | Загрузить командой |
|---|---|---|---|
| rk0 … rk5 | картридж RK05 | RK11 | boot rkN |
| rl0 … rl3 | картридж RL01 / RL02 | RL11 | boot rlN |
| rp0 … rp4 | пакет RP04 / RP06 | RP11 | boot rpN |
| ra0 … ra2 | RA80 / RA81 (MSCP) | UDA50 | boot raN |
| tm0 … tm2 | магнитная лента 9 дорожек | TM11 | boot tmN (RSTS восстанавливается через ROLLIN) |
| *.ptap | читатель/перфоратор перфоленты | PTR11 | boot pr |

Страница Storage, вкладка Paper Tapes: выбор файла для читателя, зона перетаскивания .ptap и экспорт перфорированной ленты.
Вкладка Paper Tapes:
#ptr) со лентами, входящими в эту сборку — BASIC-11 V007A, ODT-11X-V004A, ED-11-V004B, Lunar Lander и загрузчик, — плюс любые .ptap, которые вы бросили. Загрузите одну и запустите командой BOOT PR..ptap и .ptap.zst — брошенные ленты добавляются в селектор файлов читателя..ptap; Clear очищает буфер для следующей ленты.Примечание: читатель перфоленты управляется байтами консоли — каждый байт, эхо-выведенный в консоль, пробивает соответствующую строку отверстий на перфоленте ASR.
Круглая кнопка STATE (левый верхний угол, справа от REBOOT) открывает диалог состояния машины — это полное сохранение и восстановление эмулируемого PDP-11, а не только процессора: регистры, память, каждое устройство ввода-вывода (консоль, терминалы, принтер, диски, лента и перфоратор/читатель перфоленты), бумага в телетайпе и LP11, содержимое экранов видеотерминалов (и VT52, и VT100) и даже картинка на векторном дисплее VT11. По сути это файл сохранения всей машины.

Диалог состояния машины с одним только что сохранённым состоянием.
Кнопка STATE повторяет логику REBOOT и доступна на страницах Panel, Console (телетайп, VT52 или VT100) и TTY. Состояния хранятся в IndexedDB браузера и переживают перезагрузки и сессии.
Страница Config управляет эмулируемыми периферийными устройствами, и её настройки сохраняются между сессиями. Форма разделена на четыре вкладки, действия Apply и Restore defaults находятся на панели под вкладками:
None | VT52 | VT100 и у каждого своя страница в боковой панели; число терминалов выводится из двух селектов, а TT2 можно заполнить только после TT1.
Уход со страницы Config с неприменёнными изменениями запрашивает подтверждение, так что ничего не теряется молча:

Эмулятор предупреждает перед уходом со страницы Config с неприменёнными изменениями.
Структурные изменения (тип консоли, терминалы, принтер, дисплей VT11) применяются кнопкой Apply, которая перезапускает машину, чтобы эмулируемое оборудование совпало с конфигурацией. Ширина печати, скорость телетайпа, флаги Upper Case Only и Force PDP Output Uppercase, щелчок клавиш, обратное видео, эффекты CRT, текстовый режим VT52, гул машины и фотография-фон применяются сразу. Restore defaults заполняет форму заводскими значениями (применяются кнопкой Apply); четыре «живые» опции BEHAVIOUR — Reboot confirmation, Help Me! sticker, Machine power и Auto-boot — сбрасываются к заводским сразу, не дожидаясь Apply (машина при этом выключается, так как заводское состояние — off).
Гул синтезируется через Web Audio на отдельном звуковом канале, поэтому он никогда не перебивает звуки телетайпа/принтера или щелчок клавиш VT100.
Эмулятор поставляется с готовыми к загрузке образами дисков и лент. Просто наберите boot на приглашении @ — или выберите нужный с помощью волшебной палочки.
В сборке с урезанным набором образов (например, настольный вариант Minimal) строки, чей образ не поставляется, затемнены и помечены image not in this build — таблица показывает ровно то, что здесь можно загрузить.
| Disk | Operating System | Boot Command | What Happens | Credentials |
|---|---|---|---|---|
| RK0 | Unix V5 | boot rk0 | unix → войти как root | root |
| RK1 | RT-11 v4.0 | BOOT RK1 | загружается сразу в монитор RT-11 | |
| RK2 | RSTS V06C-03 | BOOT RK2 | мастер вводит START на приглашение Option: | |
| RK3 | XXDP (diagnostics) | BOOT RK3 | полевая диагностическая система DEC | |
| RK4 | RT-11 3B Distribution | BOOT RK4 | дистрибутив базовой версии RT-11 | |
| TM0 | RSTS 4B-17 (tape) | BOOT TM0 | следуйте процедуре восстановления ROLLIN | |
| RL0 | BSD 2.9 | boot rl0 | rl(0,0)rlunix → CTRL/D → логин root | root |
| RL1 | RSX-11M v3.2 | BOOT RL1 | автостарт; введите дату по запросу | |
| RL2 | RSTS/E v7.0 | BOOT RL2 | мастер вводит START на приглашение Option: | |
| RL3 | XXDP (extended) | BOOT RL3 | расширенная библиотека тестов XXDP | |
| RP0 | ULTRIX-11 V3.1 | boot rp0 | загружается в однопользовательский режим (multi-user — известный баг эмулятора) | |
| RP1 | BSD 2.11 | boot rp1 | автозагрузка в многопользовательский режим, логин root (без пароля) | root (no password) |
| RP2 | RSTS/E v9.6 | BOOT RP2 | загружается до запроса даты; далее 11,70 / PDP | 11,70 (PDP) |
| RP3 | RSX-11M v4.6 | BOOT RP3 | автостарт; введите дату и время по запросу | |
| RP4 | RSTS/E v10.1 | BOOT RP4 | загружается до запроса даты; далее 11,70 / PDP | 11,70 (PDP) |
Боковая панель переключает между страницами:
| Элемент | Где | Что делает |
|---|---|---|
Волшебная палочка |
Правый верхний угол (все страницы, кроме Info) | Список быстрого запуска — выбирает гостевую ОС, перенастраивает, перезагружает и вводит загрузку/логин. См. Быстрый старт. |
Перезагрузка |
Левый верхний угол, справа от боковой панели | Круглая кнопка со значком рестарта. Перезапускает машину; при включённом Auto-boot загружает и встроенный загрузчик по умолчанию. По умолчанию сначала запрашивается подтверждение, с опцией «Don't show this warning anymore». Без Auto-boot после перезагрузки машина останавливается. |
Без звука (Mute) |
Левый нижний угол, справа от боковой панели | Круглая кнопка, выключающая все звуки разом — гул, телетайп/LP11, подача и отрыв бумаги, щелчки клавиш и звонок. Состояние сохраняется вместе с остальной конфигурацией. |
Полноэкранный режим |
Правый нижний угол окна | Плавающая кнопка, скрывающая интерфейс браузера и системы (адресную строку, рамку окна ОС, панель задач), не трогая интерфейс эмулятора. Нажмите ещё раз или Esc, чтобы вернуться. |
Масштаб терминала |
Правый нижний угол, слева от кнопки полного экрана | Плавающая кнопка, скрывающая корпус терминала и увеличивающая экран до максимального размера 4:3, какой позволяет окно. Состояние запоминается для каждого терминала. |

Кнопка REBOOT по умолчанию запрашивает подтверждение: в диалоге есть ярлык Auto-boot (Start the default bootstrap automatically after reboot) и опция «Don't show this warning anymore».
У каждой кнопки вывода в боковой панели есть маленький мигающий зелёный светодиод в правом верхнем углу: он пульсирует, пока PDP-11 пишет вывод в эту консоль/терминал (а на кнопке Printer мигает всё время задания печати), и гаснет примерно через полсекунды после прекращения вывода.
Если образ гостевой ОС не удаётся получить целиком — большой образ BSD, оборванный хостингом на середине загрузки, или образ, которого нет в сборке Minimal, — эмулятор не зависает молча. Диалог в том же общем стиле, что и подсказка первого запуска, объясняет, что образ неполный, и предлагает кнопку Open Storage, которая сразу переходит к зоне перетаскивания, чтобы вы вручную бросили туда скачанный файл.
Формулировка подстраивается под окружение: страница, открытая как локальный file://, объясняет, что браузер блокирует загрузку каталога с медиа (и предлагает локальный веб-сервер), а сборка Tauri Minimal объясняет, что образ не входит в поставку, и указывает на зону перетаскивания.

Неполный образ вызывает этот диалог с ярлыком Open Storage.
Снапшот хранит память и регистры машины, а не сам образ диска: при восстановлении он накладывается на тот диск, который эмулятор поставляет сейчас. Если образ с тех пор обновили, они перестают совпадать — файловая система гостя в памяти перестаёт описывать лежащий под ней диск, и это проявляется как повреждённая файловая система, а не как что-то очевидное.
Эмулятор это обнаруживает и отказывается восстанавливать снапшот вместо того, чтобы испортить диск. Он называет образ и обе сборки и предлагает удалить снапшот:

Снапшот снят на другой сборке диска: он не восстанавливается, и его можно удалить прямо отсюда.
Сделайте новый снапшот на текущей сборке или удалите устаревший — перенести снапшот на диск, с которого он не снимался, нельзя.
Предпочитаете нативное приложение? Тот же эмулятор упакован как офлайн-приложение для Windows x64 и Linux на Tauri. Доступны два варианта установщика:
| Вариант | Что содержит | Примечания |
|---|---|---|
| Minimal | rk0 (Unix V5), rk1 (RT-11), bootcode и демонстрационные перфоленты (BASIC-11, ODT-11, ED-11, Lunar Lander) | Примерно 19 МБ в Windows. Загружаемый файл — это само приложение, вместе с графикой и звуком, а встроенные образы добавляют около 1 МБ. Все остальные образы перетаскиваются в окно во время работы. |
| Full | все образы — диски RK/RL/RP/RA, ленты TM, все перфоленты | Примерно 103 МБ в Windows, зато все пятнадцать загрузочных образов загружаются офлайн без единого лишнего шага. |
Для Linux размер инсталляции для всех конфигураций может быть существенно больше (зависит от формата).