LINUX.ORG.RU

Эмулятор чуда из 70х: ICL Three Rivers Perq (на FreeBSD)

 , , perq,


1

1

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

Вообще. на скриншоте работающий эмулятор Perq Operating System (POS) версии «F.1», который я совершенно случайно нашел на свалке по ссылке, оживил, обновил, собрал и запустил.

PERQ — это первая коммерческая рабочая станция с графическим интерфейсом, которые продавалась за деньги и не была каким-то прототипом из лаборатории.

Статья как обычно по ссылке.

Вот тут видео запуска и компиляции, причем в качестве компилятора тут Паскаль :)

Да, эмулятор оказался написан на C# под старый дотнет, поэтому для запуска под FreeBSD проект пришлось портировать на .NET 7 Core и убирать WinForms, что подарило новые незабываемые ощущения в эти последние дни осени.

В качестве оформления FreeBSD сделал в этот раз KDE, расписанную под хохлому в темно-серых тонах.

>>> Просмотр (1920x1080, 424 Kb)

★★★

Проверено: cetjs2 ()
Последнее исправление: cetjs2 (всего исправлений: 2)

Центральный процессор PERQ был реализован в виде микропрограммируемой дискретной логики, а не микропроцессора. В его основе были раздельные АЛУ 74181 и контроллер адреса Am2910. Процессор PERQ был необычен тем, что имел 20-битные регистры и перезаписываемое хранилище управляющей программы (WCS), что позволяло изменять микропрограмму.[3] Центральный процессор имел цикл выполнения микрокоманд в 170 нс (5,88 МГц).[4]

Восторг.

wandrien ★★
()

А там такты отрегулированы? На реальном железе оно работало наверняка очень медленно. Надо было эмулятор этот в яваскрипт перегнать и в браузере на канвасе отрисовать все. Хотя кому оно нужно? Хотя как пет-проект для резюме сойдет

rtxtxtrx
()
Ответ на: комментарий от wandrien

У сеги был проц 7 мгц и сопроцессор старый, добрый z80

rtxtxtrx
()
Ответ на: комментарий от Jameson

Нет еще, не все взлетает к сожалению. PDP очень много разных, да и это уже очень сильно за гранью моих знаний. Эту-то хтонь еле запустил.

alex0x08 ★★★
() автор топика

Вот тебе ещё идея, эмулятор Xerox Alto I/II

https://github.com/brainsqueezer/salto_simulator

Я запускал. Вот только уже не помню, можно ли там писать программы на BCPL…

Да, можно:

https://www.righto.com/2016/06/hello-world-in-bcpl-language-on-xerox.html

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от EXL

Ок гляну, но надо с голосованиями все же закончить.

alex0x08 ★★★
() автор топика

PERQ

Эмулятор

It’s alive, ALIVE! \ö/

Ты извращенец (это комплимент!)! :3

Я примерно представляю ту греблю с препятствиями, которую тебе пришлось пройти… У меня бы терпения не хватило. ☺


Шрифт в эмуляторе вызывают смешанные чувства… С одной стороны каждый отдельно взятый глиф прям хорош, но вот они стоят рядом и… это просто вырвиглазно!

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Я примерно представляю ту греблю с препятствиями, которую тебе пришлось пройти…

Не представляешь даже близко: мигрировать проект пришлось в вендах еще и специальным плагином к Visual Studio, затем переделывать биндинги к libSDL2, который для венды нативный а для FreeBSD системный. Затем выпиливать WinForms API, который есть в кастрированном виде в Mono но полностью удален в .NET Core для любых невиндовых сборок.

А я еще параллельно пытался собрать 8й дотнет из исходников, чтобы на нем это все запускать.Но с 8м дотнетом будет отдельная песня, сильно много правок.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от mord0d

Шрифт в эмуляторе вызывают смешанные чувства…

Видимо ты еще просто не понял ) Это не шрифты. В статье есть восстановленное видео 1982 года, обрати внимание что там на экране.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Специально же записал как выглядит компиляция на этой штуке ) Мейнфреймы отдыхают, как и современные тулы. Там прям ультрахардкор, дичее некуда.

alex0x08 ★★★
() автор топика

Годно, очень годно. А ты не запускал на нём прог с графическим интерфейсом? Судя по Википедии, оно умеет в ГУЙ.

densss ★★★★
()
Ответ на: комментарий от alex0x08

ля вот зачем я это гуглил )

В эзотерику потянуло?))))

densss ★★★★
()
Ответ на: комментарий от densss

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

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Не представляешь даже близко: мигрировать проект пришлось в вендах еще и специальным плагином к Visual Studio, затем переделывать биндинги к libSDL2, который для венды нативный а для FreeBSD системный. Затем выпиливать WinForms API, который есть в кастрированном виде в Mono но полностью удален в .NET Core для любых невиндовых сборок.

Наркоман! :3 Тут работы не на одни выходные… Сколько ж времени было убито?.. И ладно бы там было что запускать — полтора приложения, и наверняка половина утеряна за давностью лет.

Я понимаю, интерес чисто спортивный, никакого практического применения Perq уже быть не может, но зато опыт, полученный в процессе всей этой гребли с препятствиями, бесценен. Не бросай это дело, тебя интересно читать и наверняка кому-то будет интересно пройти по твоим стопам.

А я еще параллельно пытался собрать 8й дотнет из исходников, чтобы на нем это все запускать.Но с 8м дотнетом будет отдельная песня, сильно много правок.

Ты не планируешь портировать и опакетить дотнет под фряху? Интересуюсь в пользу Jellyfin. ☺

Шрифт в эмуляторе вызывают смешанные чувства…

Видимо ты еще просто не понял ) Это не шрифты. В статье есть восстановленное видео 1982 года, обрати внимание что там на экране.

Ну это я обобщил. Я что-то читал давно, как там отрисовка происходила, но на тот момент ничего не понял, а что понял — уже забыл. ☺

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Сколько ж времени было убито?

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

Ты не планируешь портировать и опакетить дотнет под фряху?

Это в одиночку не сделать, команда нужна. Чтобы была команда нужен коммерческий интерес а его сейчас просто нет.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

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

Возможно, но всё равно работы проделано немало. Ты ведь не просто взял и запустил, а пошёл по самым граблям: портировал на неподдерживаемую платформу старый код эмулятора, собрал его под эту платформу, не поддерживаемую дотнетом официально.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Да я и по работе точно такое же делаю регулярно. Все эти «поддерживаемое/неподдерживаемое» лишь иллюзия. «Поддерживаемые» версии ломаются точно также как и неподдерживаемые.

alex0x08 ★★★
() автор топика
Последнее исправление: alex0x08 (всего исправлений: 1)

...тут Паскаль...

К делу не относится — Паскаль не люблю: перекормили в своё время.

sparkie ★★★★
()
Ответ на: комментарий от mord0d

Возможно, но всё равно работы проделано немало.

Чтобы понять сколько проделано работы достаточно сравнить обновленные исходники с оригиналом.
Единственную сложность там мог представлять только перенос файла проекта с .Net Framework на .NET и то только если раньше такого никогда не делал.

arax ★★
()
Ответ на: комментарий от arax

Типа того да. Главное удивление было в WinForms, который оказывается частично был реализован в Mono но вырезан из Core.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Главное удивление было в WinForms

Наверное главным удивлением было то, что WinForms в проекте в реальности не используется, иначе бы пришлось серьезно повозиться.
Автор эмулятора молодец, перед тем как забить перенес его на sdl.

arax ★★
()
Ответ на: комментарий от arax

только если раньше такого никогда не делал

This.

mord0d ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

скомпилировать на них программы на COBOL, ALGOL и FORTRAN?

А зачем для этого эмулировать мейнфреймы? Бери и компилируй. :) Вот PL/1 уже не найдешь, а все остальное есть и на современном железе.

gns ★★★★★
()
Ответ на: комментарий от alex0x08

Интересная штука, спасибо. Жаль, что на ассемблере, плохо переносимо. На АРМовском, чтоль переписать...

gns ★★★★★
()
Ответ на: комментарий от alex0x08

Так оно сильно другое на хосте будет.

Даладно!

Скомпилил тут старую игрушку ADVENTURE (aka «colossal cave») из старого VAX/VMS-ного архива, на фортране писанную. Так современный интеловский фортран съел ее as-is и не подавился. Не поверишь, работает так же, как и 40 лет назад :)

Вот коболовские программы да, могут быть заточены по перфокарточный ввод, IBMовские файлы с фиксированными записями, индексные файлы и все такое прочее. У них же файл — это не всегда просто поток байт. В том же VMS индексный файл — это Berkeley DB «из каропки». Типа файл состоит из записей, у записи есть ключ. Ну и вперед, поиск по ключу встроенный.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 2)
Ответ на: комментарий от gns

Фортран это другое, он обновляется постоянно и активно используется ради матана. Апдейты летят регулярно по нему.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Они все закрытые. Сам IBM то-ли собирался выпустить компилятор своего самого-ТРУЪ PL/1 для линукса, то-ли выпустил уже, я что-то такое слышал. Геморра с написанием компилятора примерно больше чем с С, но меньше чем С++, а смысл — саппорт старого коммерческого легаси. Ну нужно ж на чем-то зарабатывать.

gns ★★★★★
()
Ответ на: комментарий от alex0x08

Апдейты летят регулярно по нему.

Ну вот я сталкивался как раз с современным фортраном где-то уже в 10х годах, надо было как раз интерфейс человеческий плюсовый к некоему матану прикрутить. Так язык поменялся не то чтоб радикально, но сильно. Человек, привыкший к 77му фортрану, современный в лицо не узнает.

gns ★★★★★
()
Ответ на: комментарий от alex0x08

Как раз коммерческий интерес может появиться в свете тотального импортозамещения винды. Мои коллеги сейчас активно переносят свои виндовые серверные творения под .NetCore, а я пишу нечто, что было под виндой, только для линуха. Подробности лично, ибо сами понимаете, описывать подробности никто не уполномачивал. :) Пока.

gns ★★★★★
()
Ответ на: комментарий от alex0x08

Возможно. После появления Intel OneApi в свободном доступе, ГНУшный перестал быть актуальным. Я даже не знаю, гнушный фортран параллелить умеет? Да и MKL нам была нужна.

gns ★★★★★
()
Ответ на: комментарий от gns

Я даже не знаю, гнушный фортран параллелить умеет?

Думаю да, хотя это все далеко от моей деятельности. Фортран все же про науку и ученых.

alex0x08 ★★★
() автор топика
Ответ на: комментарий от alex0x08

Это через OpenMP. Ему инфраструктура нужна и сеть. Это хорошо, но мало. Интелловский подобными псевдокомментариями умеет запускать потоки.

gns ★★★★★
()
Ответ на: комментарий от alex0x08

Фортран все же про науку и ученых.

Да хрен его знает. Когда мне понадобилось посчитать дневную норму корма на вес собаки, так проще всего было проинтерполировать табличку с сайта производителя корма фортраном и парой готовых подпрограмм из NAG Library. Да, она люто коммерческая, но исходники лежат на торрентах. :)

gns ★★★★★
()
Ответ на: комментарий от alex0x08

Там стопицот способов это записать. Какие-то компиляторы используют do concurrent, кто-то псевдокомментарии как gnu fortran. Штеуд, кстати, тоже openmp умеет с таким же синтаксисом. Мы псевдокомментарии писали, типа «этот блок распараллеливать», количество потоков можно было командной строкой задать, по умолчанию по потоку на ядро.

Сейчас вообще, скармливаешь фортрану обычный код и компилишь с соответствующей опцией. Ну и получаешь диагностику, что и как компилятор автомагически распараллелил.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от alex0x08

Еще оказывается у НВидии тоже есть свой

Если есть куча матана, который можно на картах считать? У них же есть мощные счетные карточки за оченьмногаденег.

Родственник мой в МГУ, кстати, какую-то биоинформатику на этх карточках гонял. Типа геномы считал. Говорит, хорошо получается. Типа суперкомпьютер у тебя на столе.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.