Когда «мини» значило «большой». Plurimat S – мини-ЭВМ третьего поколения из 1970-х.
История вопроса
Ещё в середине девяностых годов я слышал от родственников истории о
Плюриматах: мне рассказывали, что в конце семидесятых годов СССР
полулегальными путями закупил партию этих чрезвычайно мощных и
компактных для своего времени компьютеров. Тут мне обычно рассказывали
легенду (?) про какую-то шведскую фирму, купившую партию машин,
перепродавшую их в Советский Союз, бойкотированную за это всем
капиталистическим миром, но избежавшую разорения благодаря множеству
заказов от благодарного СЭВ. И ещё про то, что Плюриматы летали в космос
на американских ракетах и стояли в американских же подлодках.
Науку в семидесятых финансировали ещё неплохо, и потому несколько
Плюриматов попало в московские НИИ. Надо сказать, компьютеризация этих
институтов началась давно и шла вполне активно; уже в на рубеже 1980-х
годов там появились первые персональные компьютеры, а к началу
девяностых на многих столах стояли PC-совместимые машины. Но персоналки
приходили, устаревали и шли на помойку, а Плюриматы всё так же гордо
высились посреди комнат - заменить их быстрые многоканальные АЦП и
программно-аппаратные модули Фурье-Антифурье преобразований было нечем.
Но годы шли, персоналки становились всё мощнее и мощнее, АЦП
дешевели, и к концу девяностых годов Плюриматы наконец сдали позиции. К
тому моменту, как они меня начали интересовать (и когда у меня появились
хоть какие-то надежды получить разрешение внести такую машину в
квартиру), из полудюжины машин в знакомых мне институтах более-менее
целыми были только две, да и те стояли в комнатах в ожидании попадания
на свалку.
0: Предранний этап
Тогда, в 2004 году, мне так и не удалось уговорить родителей
разрешить перенести ЭВМ в свою комнату. Но даже если бы я и получил
разрешение, оно бы мне мало что дало: шансов запустить даже полностью
рабочую миниЭВМ при моём тогдашнем знании электроники, принципов
компьютерной архитектуры и английского языка у меня не было. Да что там
запустить - даже пара тысяч рублей на перевозку компьютера была для меня
невообразимой суммой. Так что в тот год я вытащил буквально из
мусорного ведра стопку малопонятных книжек начала семидесятых годов
(вместо гордого "Плюримат" на обложках почему-то красовались непонятные
слова "Мульти-4/Мульти-20" - но операторы ЭВМ сказали, что так надо) и
взял несколько плат ЗИП.
Много раз за следующие шесть лет я возвращался к идее привезти
Плюримат домой, но продвинуться в этом направлении у меня не получалось.
И только в конце 2010 года дело начало сдвигаться с мёртвой точки –
из-за особенностей своего расписания я стал регулярно оказываться рядом с
лабораторией, в которой стояли компьютеры, а благодаря доброте и
благожелательности их владельцев получал неограниченный доступ ко всем
остаткам ЭВМ в удобное для меня время.
Здесь заканчивается предыстория и начинается собственно рассказ о
запуске вычислительного комплекса PluriMat на базе мини-ЭВМ Multi-20. С
осени 2010 по весну 2011 года два вечера в неделю я проводил в недрах
машины, и вот что из этого получалось...
Этап 1: Осмотр
Фотография сделана в апреле. Машина извлечена из-под завалов бумаги, но выглядит почти так же, как в первый день
Начал я с того, что осмотрел машины и выяснил, что от них осталось.
Ситуация оказалась не идеальной, хотя и лучшей, чем я боялся.
Из всех машин, принадлежавших институту, до моего приезда дожила
только одна; начальник ЭВМ говорил, что при последнем включении она
работала, никакие модули не изымались, но большая часть шлейфов
выдернута из разъёмов.
В комнате на полках нашлось несколько книг – в этот раз не
полуслепых ксерокопий в серых картонных обложках, а очень современно
выглядящих брошюр на английском. Где-то в шкафах должны были лежать
магнитные ленты, перфоленты и диски с ПО, но сходу они не попались.
Наибольшие вопросы вызывала сохранность телетайпа – владелец машины
выкинул его из-за недостатка места. Меня провели на помойку лаборатории и
посоветовали покопаться там – теоретически среди гор старых
осциллографов и АТ корпусов должно было лежать два или три телетайпа и
несколько модулей от Плюриматов.
В куче я вправду нашёл детали, понадобившиеся мне позже. Но, увы! Телетайп там был всего один, и тот разобранный на запчасти.
Впрочем, мне казалось сомнительным, что машине с большой клавиатурой и
ЭЛТ дисплеем телетайп необходим, поэтому вопрос с ним был отложен до
лучших времён.
Этап 2: Коммутация
Сейчас компьютер выглядит изнутри так. До того, как я распутал кабели и подключил все разъёмы, было страшнее
Первый взгляд внутрь шкафов привёл меня в трепет – там находилось
около дюжины блоков непонятного назначения, опутанных проводами и
покрытых пылью. Два вечера ушло только на то, чтобы найти и подключить
все вилки на 220В. К счастью, среди книжек была схема соединения, так
что ещё через пару недель, обложившись рукописными схемами типа «какой
блок как называется», я восстановил все внутренние электрические
соединения.
Этап 3: Первый пуск
Между прочим, все 32 Кб оперативной памяти собраны на крошечных
ферритовых элементах – это больше четверти миллиона колец! На фотографии
– фрагмент ОЗУ и головка спички для сравнения
Теперь Plurimat можно было включить. Я уже прочитал достаточно много
инструкций, чтобы знать – нужно опустить на консоли ключи 2, 3 и 4,
потом нажать кнопки “Step”, “Clock”, “Reset”, “Run”, потом включить
диск, дождаться загорания лампочки и нажать на диске клавишу «Пуск».
После этого на телетайп должен отпечатать что-то ненужное, на нём нужно
нажать любую клавишу – и компьютер заработает. Честно скажу – я понятия
не имел, что означает каждое из этих магических действий. Я даже плохо
себе представлял, как отличить работающий компьютер от неработающего.
Как бы то ни было, я проделал все описанные действия, но дисплей не
загорелся. Я предположил, что на выход телетайпа подаётся какой-то
сигнал, но осциллограф его не увидел. Более того, даже лампочки на
консоли горели неправильно.
Недели две я бился, перечитывал скудную сохранившуюся литературу,
пытаясь понять, в чём дело, был готов бросить работу – но решил
напоследок подключить к компьютеру телетайп. Мало ли, может, сигнала на
выходе нет, но телетайп его увидит?
Этап 4: Интерефейс телетайпа
Так телетайп выглядел при жизни (фото из Википедии). Таким же я его видел в 2004 году.
Как я уже сказал, настоящий телетайп был сломан, и я попытался его
как-нибудь починить. Быстро выяснил, что при жизни он был знаменитым
американским ASR-33. Информации по этой модели в сети достаточно – но я
никогда раньше не имел дело с последовательными терминалами, так что
понять, на какие очевидные истины опираются документы из интернета, смог
далеко не сразу. Ситуация осложнялась ещё и тем, что телетайпом
называется что-то типа стандартного для Linux канала передачи данных.
Выручил меня интернет, но уже не мёртвые базы данных, а люди,
пишущие в форумы. Я задал свои, как я теперь вижу, примитивные и плохо
сформулированные вопросы на Полигоне Призраков и vintage-computer.com и получил ответ куда более полезный и подробный, чем я смел надеяться.
На Полигоне мне объяснили, какие телетайпы бывают, указали, к каким
контактам нужно подключать вход и выход и вообще подсказали, что к чему.
На vintage-computer.com предложили самую простую схему переходника с
токовой петли (так называется интерфейс телетайпа) на стандартный
COM-порт, RS-232.
Этап 5: Архитектура и машинный код
Oчень упрощённая схема архитектуры Multi-20
Главное, что я получил на форуме vintage-computer.com – это короткое
сообщение «Ваш компьютер похож на модель Multi-8, для которой в сети
есть описание». Уже на следующий день я нашёл описание компьютеров, очень похожих на мой.
Оказалось, что Plurimat – это название вычислительного комплекса,
собранного на базе ЭВМ «Multi 20” – французской OEM версии американского
Microdata 1600. А тот, в свою очередь, ближайший родственник Micro-800 –
своеобразной персоналки 1969 года выпуска. Я достаточно быстро понял,
что Micro-800 позиционировался как недорогой настольный компьютер, но
благодаря большим возможностям для установки плат расширения из него
можно было сделать почти всё, что угодно. Как я узнал позже, в Plurimat
возможности этой модели используются почти по максимуму.
К сожалению, найти готовые рекомендации по восстановлению Micro-800 я
не смог. Я читал инструкции из списка больше месяца, и с каждой
страницей всё меньше и меньше понимал, как же работает машина. Мало
того, что Micro-800, казалось, выпускался в двух модификациях с
совершенно разной архитектурой, абсолютно не совпадающим машинным кодом и
несоизмеримой скоростью работы. Мало того, что приведённые в инструкции
рекомендации по управлению с консоли выглядели шаманством – так по
книжкам ещё и получалось, что ЭВМ может использовать оперативную память
только для хранения данных, а все программы берутся исключительно из
ПЗУ!
И только потом, после вдумчивого чтения и долгих экспериментов с
консолью (знали бы вы, как я был счастлив, когда впервые смог выполнить с
неё команду записи в регистр!) я смог примерно представить себе схему
работы компьютера.
Оказывается, процессор может выполнять самые примитивные команды. Он
может производить кое-какие арифметические и логические операции,
отправлять байт на шину ОЗУ и шину внешних устройств, получать оттуда же
байт, останавливаться по прерыванию. Пользователь может купить
компьютер и писать к нему прошивку самостоятельно (у ранних моделей она
набиралась диодной матрицей, но у моего уже стоят обычные микросхемы
ПЗУ), а может купить модель с предустановленной программой – с картами
ПЗУ, в которые «зашит» абсолютный загрузчик, обработчик прерываний и
транслятор ассемблера (а иногда и Fort или ForTran). Насколько я
понимаю, технически Micro-800 мог эмулировать почти любую 8- 16- или
32-битную машину тех времён...
UPD.02.2015 Теперь я знаю, что это называется «RISK система с гарвардской архитектурой», и что на похожем принципе работают все современные процессоры — но в 2010 году я про гарвардскую архитектуру ещё не слышал, поэтому долго и тяжело осознавал, что компьютер может нарушать архитектуру фон Неймана.
Этап 6: Ремонт консоли
Консоль
Заодно я выяснил, почему результаты работы с консолью так сильно
отличались от обещанных в книгах. Оказывается, большАя часть лампочек,
индицирующих результат, сгорела, переключатели барахлят, а разъёмы
шлейфов отваливаются. Исправить проблему было легко, но только после
того, как я понял её. А понял её я после того как разобрался, как должна
себя вести консоль работающего компьютера – то есть после успешного
запуска хоть каких-то команд.
Этап 7: Софт
Следующей задачей стал поиск софта. Для начала я попытался
загрузиться с жёсткого диска, несколько раз поменял сгоравшие
предохранители, понял, что нужно поменять местами блоки питания...
Теперь компьютер пытался загрузиться, но ничего у него не получалось.
Начальник ЭВМ сказал, что такое бывало часто, и посоветовал промыть
диски изопропиловым спиртом. Нда... В общем, почти не закрытые диски
оказались покрытыми слоем пыли; смыть я её смыл, но, видимо, головки уже
поцарапали поверхность, так что загрузиться всё равно не получилось.
Дальше я с разрешения и с помощью сотрудников лаборатории перерыл
все шкафы в поисках съёмных дисков и перфолент с ПО. Точно известно, что
они существовали – но судя по всему, были выкинуты. Нашлись, правда,
магнитные ленты – но загружаться с них Plurimat не умеет.
Долгое чтение книжек и статей в интернете привело меня к мысли, что
для машин этой архитектуры существовали ОС TOS, MET, PS-600, Reality 1.x
- 3.x, Pick R77 и Prime Information 1.x. Все эти системы объединяло
одно – мне было неоткуда их взять.
В интернете нашлось несколько адресов производителей и пользователей
софта для Micro-1600. Я им, конечно, написал – большая часть просто не
ответили на письмо. C разработчиками Reality я какое-то время
переписывался, но в конце концов выяснилось, что последние экземпляры
ОС погибли несколько лет назад в большом пожаре.
Этап 8: Hello, World!
Терминал с незамысловатым названием «Terminal» оказался для моих целей лучшим.
Так что я попытался написать ПО самостоятельно. Моих сил хватило на
создание ассемблера для кода Micro-1621 и программы «Hello, WORLD”:
Более приличный софт я решил писать когда-нибудь потом, когда в норме
будет всё остальное.
Вот так выглядит текст на самодельном ассемблере:
HLT
DELAY:D000_H2 'NUMBER OF CIKLES IN DELAY
NEXT:
'READING THE NEXT BYTE
LDB2 POINT
OBB 0_H1
IWM0 POINT
'WAITING
LDA7 DELAY
SPIRAL:
INA
NAZ SPIRAL
'GOTO NEXT ONE
LDA7 STOP
SBA0 POINT
NAZ NEXT
HLT
STRT: 0_B1 0D0A_H2 "I am Multi-20 - based computer Plurimat S." 0D0A_H2
"I build in 1970's and worked until 1990's. And now, in 2011, I have
been started again." 0D0A_H2 "HELLO, WORLD!" STOP:
POINT: STRT
Кроме того, я вычитал, как пользоваться абсолютным загрузчиком,
работающим по линии телетайпа. Оставалось подключить к давно собранному
преобразователю RS-232 <-> TTY ноутбук, запустить на нём эмулятор
терминала, и... Эээ... И ничего. Точнее, компьютер генерирует эхо, даже
буферизует его, но загрузка не идёт. А вот в момент запуска что-то вроде
мигает... Пробую второй эмулятор, третий – и, наконец, нахожу «Terminal
v.1.9.b By Bray ++» – программу, поддерживающую работу на необходимой
скорости 110 БОД и, видимо, выставляющую правильные значения на флаги
порта.
После этого я два вечера подряд запускал свои программки и со
счастливым видом смотрел на раз за разом появляющуюся фразу «Hello,
world!»
Этап 9: Магнитофон
Магнитофон, вид сзади. Плата управления моторами снята
Как я уже сказал, у меня были ленты, на которых, предположительно,
находился полный дистрибутив ПО, но не было возможности их считать.
Более того, магнитофон, включенный мною для пробы, проработал минут пять
и сломался. Моих знаний в электронике хватило ровно на то, чтобы
оценить количество самостоятельных ремонтов – их явно было больше, чем
во всём остальном компьютере вместе взятом.
На большинстве деталей стоит логотип французского поставщика,
Intertechnique. Но магнитофон, судя по всему, сделан непосредственно
Microdata Corp.
Тут меня опять выручил Полигон Призраков, точнее, его пользователь DUKER,
целый вечер отлаживавший сгоревшую плату управления моторами и
пообещавший её дочинить. И, что ещё важнее, прочитать на рабочем
магнитофоне мои ленты с дистрибутивами. Правда, надо сказать, что на
этом дело заглохло, но исключительно по моей вине и, надеюсь, только
временно.
Этап 10: Транспортировка
С одной стороны, возможно, моих родителей впечатлило время, которое я
уже потратил на восстановление Плюримата. С другой – я узнал его
достаточно хорошо, чтобы понимать – я смогу разобрать компьютер на
отдельные блоки, а потом собрать его обратно.
С третьей, что немаловажно, тщательные расчёты показывали, что
компьютер без графического модуля и блока АЦП можно запихнуть не в два
шкафа, а в один. Перегреваться, правда, может - но мне же не сутками на
нём работать.
Так что я договорился с ещё одним завсегдатаем Полигона, PRIBOR-ом,
разобрал компьютер на блоки, обернул каждый полиэтиленом с пупырышками, и
перевёз на маленьком грузовичке домой. Разборка заняла часа три, но
собирал я его больше недели, отмывая корпус и фильтры, оптимизируя
внутреннее пространство и перевязывая кабели.
Cистема Plurimat в сборе
Зато теперь у меня в комнате стояла ЭВМ середины семидесятых годов. И
даже почти работала, не было только подходящего устройства связи с
пользователем.
Этап 11: Телетайп
Как я уже говорил, у Плюримата есть два устройства для связи с
пользователем – электромеханический телетайп и векторный дисплей со
знакогенератором. Второй, конечно, обладает несравненно большей
функциональностью – чего стоит только свой каналл DMA, позволяющий брать
данные для графиков напрямую, минуя процессор. К сожалению, дисплей то
ли сломан, то ли просто не может управляться простыми средствами.
Инструкций к нему у меня нет, а экспериментальным методом я не смог от
него добиться ничего, кроме жужжания высоковольтного трансформатора.
Поэтому я занялся телетайпом. Как я уже говорил, родной для
Плюримата телетайп ASR-33, электромеханический и работающий в кодировке
ASCII, был разобран. Первые полгода я пытался починить его (и даже
получил от ещё одного пользователя Полигона Призраков, Sillimanit-а
несколько запчастей), но у телетайпа отсутствовала верхняя крышка.
Работать без неё затруднительно, механизм быстро забьётся пылью, к тому
же это ещё и очень некрасиво. С другой стороны, крышка ASR-33 имела
слишком сложную форму, так что сделать её самостоятельно шансов не было.
(Лирическое отступление, которое можно пропустить: О телетайпах)
Насколько я знаю, в бСССР телетайпы мало кто коллекционирует,
поэтому мне сложно было узнать, какие модели у нас встречались. На
всякий случай приведу плоды своих изысканий – может, пригодятся кому?
Честно предупреждаю, информация не слишком проверенная, собиралась из
разных источников и по ходу дела.
Телетайп может быть приспособлен к работе в двух разных кодировках –
в ASCII (она же КОИ) и в пятибитных кодах Бодо. Первый вариант типичен
для американских моделей, второй – для советских и европейских.
Кодировки совершенно не совместимы друг с другом.
Кроме того, телетайп (он же телеграфный аппарат) может отпечатывать
текст в одну строку на узкую ленту (ленточные аппараты) или на широкий
рулон бумаги/страницу А4 (рулонные аппараты). Второй тип аппаратов
появился где-то после войны, и к восьмидесятым годам почти вытеснил
первый в СССР.
Большинство моделей американских телетайпов выпускались в трёх
вариантах – RO (receive only – фактически, принтер), KSR (Keyboard send
and receive – приемопередающий телетайп) и ASR (Automatic send and
receive – то же, что KSR, но с возможностью записывать и считывать
перфоленту). В СССР и Европе официального деления вроде не было, но
функциональные аналоги выпускались.
Кроме того, телетайпы отличались по принципу работы (механические – с
минимальным добавлением электроники, электронные – по типу матричного
принтера с клавиатурой, более серьёзные электронные типа компьютеров) и
по скорости печати.
Телетайпы кода Бодо:
СТ (разные модели) – электромеханические телетайпы с записью данных на узкую ленту
РТА-хх (до модели 80) – электромеханические рулонные, настольные
Т-63 (германия) – электромеханические рулонные, обычно кожухом
телетайпа работали деревянные детали крышки стола, в который телетайп
был встроен.
Т100 – электромеханические рулонные, настольные, единственные из
обычных в СССР электромеханических ASR моделей (перфоратор и считыватель
в одном корпусе с телетайпом).
РТА-80/7, ОУОД-200 и множество малораспространённых иностранных
моделей – электронные ASCII. При этом у меня есть сомнения, сможет ли
работать отечественный телетайп с полными (8-битными) кодами, а
иностранные модели, поставлявшиеся в СССР, почти никогда не имели
перфоратора и считывателя.
Кроме того, в СССР было какое-то чрезвычайно малое количество ASR-33
– электромеханических рулонных телетайпов, работающих в ASCII кодировке
и правильно обрабатывающих восьмибитные слова.
(Конец лирического отступления)
Таким образом, у меня было четыре варианта замены сломанного ASR-33
1). Я мог продолжать пользоваться терминальной программой на
PC-совместимом компьютере. Это, конечно, самый простой вариант, но
согласитесь - подключать к компьютеру терминал, на несколько порядков
превышающий его по вычислительной мощности – не очень приятно. Этот
вариант я отбросил сразу.
2). Купить ASR-33. В России я искал его без малого год, но так и не
нашёл. Конечно, ASR-33 можно купить в США, но он – очень тяжёлый прибор,
к тому же нечастый даже у себя на родине. Получается, что телетайп
обойдётся мне где-то от 20 тысяч за кота в мешке до 120 тысяч за
телетайп с гарантированным (продавцом) качеством настройки и упаковки.
3). Купить телетайп, работающий в коде Бодо и сделать к нему
переходник на ASCII. До самого последнего времени этот вариант казался
мне наилучшим, поэтому я купил телетайп Т-100 и до середины прошлой
недели копался в нём.
Телетайп T-100 (лицензионная чехословацкая копия SIEMENS T-100).
Машина, на мой взгляд, очень интересная, но с Плюриматом, увы, не
совместима абсолютно
Но, во-первых, преобразование из кода Бодо в ASCII и обратно требует
портативного ПК или микроконтроллера, по вычислительной мощности, опять
же, превосходящего Plurimat. Во-вторых, эти телетайпы слишком медленны
даже по сравнению с неспешным ASR-33. Поэтому от идеи подключения
телетайпа на коде Бодо я тоже отказался.
4). Купить электронный телетайп и отдельный от него перфоратор.
Конечно, электронный телетайп мне нравится намного меньше
электромеханического, но найти его в России несравненно легче.
ХХХ: Что дальше?
Я тянул с написанием статьи до последнего (и писал её в ночь перед
сдачей, увы), надеясь успеть подключить к моему Plurimat-у электронный
телетайп DECwriter II. К сожалению, он попадёт ко мне домой не раньше
конца этой недели – возможно, я успею подключить его к ЭВМ до конца
голосования.
Телетайп DECwriter II – электронная машина родом из середины
семидесятых годов. Без перфоратора и перфосчитывателя. Фотография взята с
сайта gunkies.org
Следующим необходимым этапом станет приобретение перфоратора
(возможно, модели Facit 4070) и решение проблемы магнитофона и лент.
А дальше можно будет мечтать об ASR-33 и других приятных вещах.
Благодарности:
Я наверняка не справился бы с восстановлением Плюримата в одиночку, в
этой работе приняли участие десятки людей. Постараюсь перечислить хотя
бы главных из них:
Коллектив сайта «Полигон Призраков», в первую очередь DUKER, Pribor, KALDYH, batman, Sillimanit, FISCH, borisfox, trony.
Коллектив сайта «vintage-computer.com», в первую очередь Pepinno и MikeS
Программист Jim S, работавший с Microdata в семидесятых годах и
оказавший мне существенную информационную и психологическую поддержку.
И, конечно, коллектив лабороатории, сохранивший Плюримат, а потом
почти полгода терпевший моё шныряние по самым неподходящим местам, и
родителей, которые терпят эту машину дома до сих пор.
ЕЩЁ РАЗ – СПАСИБО ВСЕМ БОЛЬШОЕ!
И отдельное спасибо тем, кто дочитал мою статью до этой строки!
Видео напоследок:
Примерно так выглядит работа «Hello, World» на ЭВМ. Впрочем, видео
постановочное – на самом деле на компьютере запускается абсолютный
загрузчик, а телетайп считывает текст с собственного перфосчитывателя
Warning: include(/home/host1875719/alple.net/htdocs/www/plurimat/counter.ht): failed to open stream: No such file or directory in /home/host1875719/alple.net/htdocs/www/plurimat/art.htm on line 623
Warning: include(): Failed opening '/home/host1875719/alple.net/htdocs/www/plurimat/counter.ht' for inclusion (include_path='.:/usr/local/php/php-5.4/lib/php') in /home/host1875719/alple.net/htdocs/www/plurimat/art.htm on line 623