PERQ: оживляем чудо из 70х
Из тысяча девятьсот семидесятых, если кто не понял. После успешного опыта с более современными системами, решил копнуть еще дальше в историю компьютеров и оживить нечто по-настоящему древнее.
История
Начнем с небольшого экскурса в историю:
PERQ (также известный как Three Rivers PERQ или ICL PERQ) — компьютерная рабочая станция, выпускавшаяся в начале 1980-х годов.
Рабочая станция была задумана пятью выпускниками и работниками Университета Карнеги-Мэлона, организовавшими в 1974 году компанию Three Rivers Computer Corporation (3RCC). Один из основателей, Брайан Розен, также работал в Xerox PARC над рабочей станцией Dolphin. Проект PERQ был вдохновлен оригинальной рабочей станцией Xerox Alto, и был первой коммерчески выпускаемой персональной рабочей станцией. Прототип был показан на конференции SIGGRAPH в 1979 году. Название «PERQ» происходит от слова «perquisite» (рус. приработок, дополнительный доход).[1]
В Россию/СССР такие штуки естественно не поставлялись, поэтому вживую ни вы ни ваши родители ее видеть просто не могли.
Ниже видео с демонстрацией этой рабочей станции и самого интерфейса:
Ну собственно вот вам картинка для привлечения внимания:
Большая белая хня справа это и есть работающий эмулятор PERQ, это чуда из далекого прошлого.
Я уже описывал как-то что программы бессмертны, вот это еще одно яркое тому подтверждение.
Вот так PERQ выглядел в жизни:
Эмулятор
Совершенно случайно наткнулся на статью об этой удивительной системе, где обнаружилось совсем уж невероятное:
Just when I was thinking there was no hope of me ever seeing the Perq software in action, Josh Dersch has created a Perq emulator! Give this guy a medal!
Да, кто-то взял и написал эмулятор для столь уникальной системы из 70х!
Правда с битой ссылкой и уже немного заброшенный, чудес нет. Дальнейший поиск вывел на github автора, откуда я и вытащил этот самый эмулятор.
Эмулятор написан на C# под старый .NET и отлично собирается под Windows. На линуксе его можно собрать используя Mono.
Я посчитал все это недостаточно спортивным, поэтому портировал проект на .NET Core 7, который уже собирал на FreeBSD.
Инструкции по сборке и запуску ниже будут для FreeBSD но точно также все будет работать и под любым линуксом и тем более Windows.
Сборка
git clone https://github.com/alex0x08/PERQemu.git
git clone https://github.com/jdersch/PERQemu.git
Оригинал собирается под .NET 4.7 на Windows либо Mono (Mac/Linux), моя версия — .NET Core 7.0 и везде.
cd /opt/src/PERQemu /opt/app/dotnet/dotnet restore
.NET у меня развернут в папке /opt/app/dotnet, второй dotnet внутри — бинарник, которым запускается и приложение и сборка.
Если все прошло успешно, в самом конце появится сообщение «All projects are up-to-date for restore»:
/opt/app/dotnet/dotnet build
Если сборка прошла удачно, в конце должно быть сообщение «0 Error (s)»:
В папке «bin/Debug/net7.0/PERQemu» будет собранный эмулятор.
Запуск
Запуск осуществляется немного через жопу, поскольку я не потрудился поставить отдельно рантайм .NET, а запускал из самого .NET SDK:
alex@albuquerque:/opt/src/PERQemu/PERQemu % /opt/app/dotnet/dotnet run bin/Debug/net7.0/PERQemu
Запускать надо из каталога с проектом эмулятора, указав относительный путь до собранного выше бинарника эмулятора.
Результат запуска вас немного удивит:
Но эмулятор также глючит и в оригинальной версии, ничего не поделать.
load harddisk Disks/f1.phd
Для загрузки образа диска, затем непосредственно запустить эмулятор:
go
Вот так выглядит запуск эмулятора PERQ:
Разумеется я не мог не поделиться как выглядит самый стильный процесс компиляции (на Паскале!) из всех виденных:
Вот весь процесс, записанный на видео и сохраненный для потомков: