Кризис среднего возраста бывает разным: кто-то покупает спорткар, а я — собрал эмулятор PDP-11/70 с телетайпом, блэкджеком и без единой строки на Rust.
Зачем? Просто чтобы вспомнить, как пахнет машинный зал, и заодно проверить, не разучился ли я программировать. В итоге получился работающий иммерсивный эмулятор в браузере (и не только), который загружает операционки того времени.
В этой статье — рассказ о целях разработки, выборе движка, архитектуре и ограничениях, обёртке в Tauri для автономного запуска, автоматизации скриншотов и граблях, на которые я наступил.
Если вам тоже за 30, 40 (или 50), и вы скучаете по временам, когда «байт» был не просто словом, — заходите, будет ностальгически-познавательно.
Живой эмулятор в браузере — amesk.github.io/yaPDP (запускается в 2 клика за несколько секунд)
Исходный код и десктопная версия — https://github.com/amesk/yaPDP
Предупреждение: под катом много технических деталей, картинок, фрагментов кода и моих рассуждений вслух. Я не стал их вырезать, потому что кому-то это может быть полезно. Если хотите просто «поиграть» — ссылки выше.
Если хотите разобраться, как это устроено изнутри, — добро пожаловать под кат. Листайте диагонально, выхватывайте интересные куски, я постарался разбить на смысловые блоки.