Эмулятор ЭВМ из 80-х в браузере

PCjs Machines — эмулятор вычислительных систем 1970–1990 годов. Он работает в обычном браузере. Рассказываем, чем примечателен проект и какие машины есть в его библиотеке.

ijupw6lln7stt5cs5seozqendme.jpeg
/ фото Todd Dailey CC BY-SA / PDP-11 в Музее компьютерной истории

Что такое PCjs Machines


PCjs Machines появился в 2012 году — его основал программист из Сиэтла Джефф Парсонс (Jeff Parsons). Он хотел помочь людям понять, как работали первые компьютеры, и дать им возможность «поиграть» с различными конфигурациями этих машин.

Изначально проект задумывался как своеобразный бэкап. У Джеффа дома стоит Ohio Scientific Challenger 1P, и он создал его эмулятор на случай, если физическое устройство выйдет из строя. Позже «коллекцию» дополнили другие компьютеры.

Эмуляторы PCjs Machines написаны на JavaScript. Для их запуска не требуется устанавливать дополнительные плагины. При желании эмуляцию можно запустить на собственном веб-сервере или в офлайн-режиме: инструкции доступны в README-файле на GitHub. Там же можно найти и исходный код проекта — он распространяется под лицензией GPLv3.

Какие машины «поддерживаются»


Большая часть эмуляторов воссоздаёт ПК 1980-х годов. В список поддерживаемых систем входят PC8080, PCx86. Также на сайте PCjs Machines можно найти эмуляторы мейнфреймов PDP-10 и PDP-11 и программируемых калькуляторов от Texas Instruments.

На сайте проекта есть симуляторы не только компьютеров, но и отдельных игр и программ. Многие из них были популярными в своё время и имеют высокую культурную ценность.

Например, на сайте есть игры компании Infocom, в частности, первый коммерческий текстовый квест Zork. Продукт был хитом в 80-е — всего было продано более 300 тысяч копий.


Другие известные игры в списке — Wolfenstein 3D, Wizardry I и образовательная Oregon Trail.

В списке софта есть довольно редкие экземпляры, например Norton Utilities для DOS. Это набор утилит, включающий программу для восстановления файлов Unerase. По словам Джеффа Парсонса, несмотря на популярность Norton Utilities, найти первые версии ПО оказалось сложно. Сейчас на PCjs Machines доступен NU3.0 (и выше) родом из 1984 года, но автор проекта планирует найти и более ранние версии, чтобы сохранить их для будущих поколений.

Особенности проекта


Автор стремится максимально точно воссоздать опыт работы с компьютерами, поэтому в «сборках» отражены все, даже не самые приятные особенности интерфейса. Например, из-за того, что компьютеры Challenger 1P подключались к телетайпам, в устройствах не было возможности стереть напечатанные символы. Этой функции нет и в симуляторе PCjs Machines.

Использование эмулятора на мобильных устройствах создает ряд неудобств — некоторые функции виртуальных машин вызываются через сочетания клавиш. Например, сочетание Ctrl и Scroll Lock. Для таких случаев Джефф Парсонс добавил экранные клавиши и альтернативные сочетания: Ctrl — Scroll Lock заменен на Ctrl — Delete.

Аналогичные проекты


Среди аналогов проекта PCjs Machines можно выделить MAME (Multiple Arcade Machine Emulator). Изначально он был посвящен созданию эмуляторов игровых автоматов, но в 2015 году MAME объединили с MESS — его целью было моделирование работы персональных компьютеров.

jhhjewy0gtm0rsx4nzo0_pdmuaa.jpeg
/ фото Milestoned CC BY

Сейчас общая библиотека MAME и MESS включает более двух тысяч разных виртуальных машин. Среди них — винтажные компьютеры Altair, Commodore, Apple, Sinclair и IBM. Для работы с эмуляторами достаточно установить программу от MAME и выбрать нужную машину. Как и PCjs Machines, проект работает на некоммерческой основе, а исходный код открыт для всех.

Вторая инициатива — VICE (Versatile Commodore Emulator). Проект существует ещё с 1993 года и занимается сохранением софта для компьютеров Commodore: VICE включает эмуляторы моделей C64, VIC20, C64DTV, C128, PET, PLUS4 и SCPU64. Список доступных программ для этих компьютеров можно посмотреть на сайте проекта. Как и в случае MAME, для работы с VICE требуется установка дополнительного ПО.

Все вышеперечисленные проекты по разработке эмуляторов активно развиваются и обновляются силами энтузиастов. И так как все эти инициативы являются открытыми, внести свой вклад в сохранение истории программного обеспечения могут все желающие.


Пара материалов из Первого блога о корпоративном IaaS:
И свежие посты из нашего Telegram-канала:

© Habrahabr.ru