Чертежи позабытых процессоров, исходные коды легендарных игр, неизвестные произведения искусства — чего только не находят в архивах любители старины. Их задача — восстановить, надежно сохранить и каталогизировать.

Может показаться, что мы живем в век, когда информация практически неспособна потеряться: что однажды было оцифровано или создано на компьютере, будет, имей оно хоть какую-то ценность, тиражироваться и вечно кочевать с одного цифрового носителя на другой. Это, к сожалению, не совсем так: стандарты и форматы меняются с поразительной скоростью, а носители информации (в особенности магнитные диски) имеют крайне ограниченный срок службы. «Цифровая археология», то есть извлечение данных со старых носителей и перекодирование в современные форматы, становится все более актуальной дисциплиной. В этой области существуют специалисты, и раз за разом появляются истории о том, как они героически извлекли из цифровых руин нечто, имеющее неоспоримую ценность.

 

Исходные коды Prince of Persia

Игра Prince of Persia была разработана в 1989 году, но вспоминают о ней до сих пор. Приключения принца, который выбирается из подземелья дворца, чтобы спасти свою возлюбленную, захватили умы и заставили игроков потратить бесчисленные часы, чтобы заучить каждый закоулок на каждом уровне. Изначально «Принц» был сделан на компьютере Apple II, но вскоре его портировали на все тогдашние платформы. На данный момент вышло девять продолжений и голливудский фильм (а также книга Виктора Пелевина, в которой мотивы из «Принца» переплетаются с советской реальностью).

Во время разработки игры Prince of Persia: The Sands of Time для PlayStation 2 у ее создателей возникла интересная идея: а не добавить ли в качестве «пасхального яйца» возможность запускать и оригинальную игру образца 1990 года? Джордан Мехнер, ее создатель, выступал консультантом при проекте и навещал монреальскую студию Ubisoft, где делали Sands of Time, так что связаться с ним не составило труда. Мехнер с готовностью согласился прислать исходники и принялся рыться в коробках со старыми дискетами, которые никогда не выбрасывал. Но вот неудача: нужная дискета исчезла.

The Sands of Time был завершен в 2003 году и разошелся тиражом более двух миллионов экземпляров, а об исходных кодах оригинального «Принца» так ничего и не было слышно. Об этой потере никто бы не узнал, не получи эта история развитие в 2012 году. Как Мехнер позже рассказал репортеру журнала Wired, ему позвонил отец и сообщил, что нашел у себя коробку с какими-то старыми дискетами, явно принадлежавшими сыну. Когда Мехнер-младший получил коробку и стал перебирать дискеты, он увидел, что на одной из них было написано «Prince of Persia, исходный код, 1989». Какая неожиданная удача!

Коробка с заветными дискетами

Джордан Мехнер снова за клавиатурой Apple II

Но что делать с пачкой старых пыльных дискет, если под рукой нет ни совместимого компьютера, ни пятидюймового дисковода, ни вообще какого-либо дисковода? Если на дискетах записано что-нибудь столь же важное, как исходники легендарной игры, то есть смысл обратиться к профессионалам. Домой к Мехнеру прибыли двое: коллекционер старых компьютеров с целым грузовиком, на котором он привез несколько исправных Apple II, и сотрудник организации The Internet Archive с чудесным устройством под названием KryoFlux.


 

 

Что такое KryoFlux

Этот дисковод с виду напоминает любой другой старый пятидюймовый привод, но модифицирован таким образом, чтобы медленно, но верно считывать самые престарелые дискеты. В результате его работы создается образ диска, максимально напоминающий исходник. KryoFlux поставляется в комплекте с адаптером USB и может быть подключен к современному компьютеру. По сути, это устройство служит мостиком между временами старых компьютеров и современными технологиями. Создали его в фирме Software Preservation Society, «Обществе сохранения софта». SPS начинала как клуб любителей Amiga, но потом разрослась и, как мы видим, даже обзавелась чем-то вроде хардверного подразделения. Правда, крошечного — KryoFlux производят исключительно на заказ, а цена на него составляет около тысячи евро.


Мехнеру повезло: все его дискеты считались почти идеально, драгоценные исходные коды Prince of Persia были получены в полном объеме и тут же запущены на одном из старинных компьютеров. Позднее исходники опубликовали на GitHub, где их может скачать любой желающий. Увы, для подробного изучения нужно знание ассемблера Apple II, но тут уж никуда не денешься.

Заветная коробка таила и другие приятные сюрпризы: нашлись исходные коды клона игры Asteroids, который Мехнер написал в юношестве (подобно тому, как сейчас ради тренировки пишут клоны Flappy Bird), а также неизвестная миру игра Quadris. С ней, кстати, связана занятная история. В начале восьмидесятых годов Мехнер уже работал в игровом издательстве Broderbund, куда в один прекрасный день поступила необычная новая игра под названием Tetris. Руководство компании решило, что Tetris слишком сложен для простого геймера, и не взялось его издавать, а вот рядовые сотрудники играли в творение Алексея Пажитнова днями напролет. Их попросили удалить Tetris со своих компьютеров — этого требовала рабочая этика (права-то так и не были куплены). Дистрибутивы уничтожили, но играть хотелось. Так и появился Quadris — чуть ли не первый, но похороненный на долгие годы клон «Тетриса».

Кстати, если чтение про Prince of Persia вызвало ностальгию и жгучее желание поиграть снова, то сейчас это можно сделать в любой момент и даже без установки DOSBox. С недавних пор достаточно зайти на archive.org, найти игру и запустить прямо в браузере. Это возможно благодаря движку JSMESS, на который портировали DOSBox и эмуляторы множества других старых систем. Так что играм восьмидесятых и девяностых годов пока что не грозит пропасть в глубине времен.

 

Утерянные картины Уорхола

О том, кто такой Энди Уорхол, хотя бы краем уха слышали все, а репродукции самых известных его картин вроде «Супа Campbell» попадаются на глаза тут и там с завидной регулярностью. Уорхол широко известен как изобретатель стиля поп-арт, а вот как пионер цифровых технологий в применении к искусству — в значительно меньшей степени. И тем не менее факт: Уорхол с радостью покупал те компьютеры, которые были доступны в восьмидесятые годы, и использовал их скромные графические возможности в своем творчестве.

Наша история начинается куда позже. В 2004 году кто-то оцифровал старую видеокассету с записью презентации нового компьютера Amiga, на которую был приглашен Уорхол. Вот он при помощи цифровой камеры делает фотографию сидящей перед ним Дебби Харри (вокалистка группы Blondie), чтобы потом продемонстрировать снимок на экране и буквально за несколько минут превратить его в картину. Попутно он сообщает, что пробует все новые компьютеры, а этого ждал в особенности. Дело происходило в 1985 году, за два года до смерти художника.

Энди Уорхол обрабатывает портрет Дебби Харри на Amiga 1000

Презентация интересна сама по себе — сейчас такой концентрации звезд на сцене не позволяет себе даже Apple. Но деятели культуры видят на этой записи не то же, что любители техники: Кори Аркэнджел — художник и специалист по работам Уорхола — в 2011 году набрел на это видео и немедленно задался вопросом: а где же сейчас те картины, которые Уорхол рисовал на Amiga? Аркэнджел отправил запрос в музей Уорхола и быстро получил ответ: дискеты есть и хранятся среди других вещей Уорхола. Удивительно, что никто не пытался скопировать с них информацию раньше.

Дальнейшая история спасения старых файлов в общих чертах совпадает с рассказом о том, как доставали исходники Prince of Persia. В музей прибыл Аркэнджел, команда добровольцев из Компьютерного клуба университета Карнеги — Меллона и несколько других специалистов. Они привезли с собой рабочие компьютеры Amiga 500 и 1000, уже известный нам дисковод KryoFlux в трехдюймовой модификации и другие средства для восстановления старых носителей.

Иногда доходит до того, что магнитные диски приходится доставать из пластиковых конвертов и полоскать под краном со средством для мытья посуды, чтобы очистить от пыли и плесени. В случае с архивами Уорхола никаких радикальных средств не понадобилось. Дискет, правда, имелось огромное количество, и хоть большинство и было помечено как дистрибутивы программ, полагаться на эту информацию нельзя: вдруг что-то записано поверх? Копировать пришлось все и даже проверять, не осталось ли следов стертой информации.

Картины Уорхола, спасенные со старых дискет

Специалисты нашли и безупречно скопировали 28 файлов, потенциально содержащих картины. Заголовки гласили campbells.pic, botticelli.pic, marilyn1.pic и так далее. Однако открыть удалось лишь некоторые — часть картинок программа Graficraft, которой пользовался Уорхол, читать отказалась. Попытки использовать более старые версии редактора тоже ничего не дали, и формат пришлось анализировать вручную. Впрочем, знатоки Amiga быстро обнаружили, что внутри обыкновенные дампы видеопамяти, вероятно созданные самой ранней версией Graficraft. Никаких упоминаний о ней не сохранилось, но изображения удалось легко расшифровать и сконвертировать в PNG.

Оборудование Уорхола тоже оказалось примечательным: два компьютера Amiga 1000 в идеальном состоянии, графический планшет одной из первых коммерческих моделей, цифровая камера DigiView, которая делала черно-белые снимки (для цветных требовалось трижды снимать одно и то же через разноцветные фильтры) и Polaroid Digital Palette — устройство, которое позволяло записывать изображения на слайды.

Планшет Easyl, которым пользовался Уорхол

На дискетах также нашлись драйверы для той самой камеры Live, которая применялась на презентации Amiga, их версия была обозначена как 0.0. Самой камеры не было, но очевидно, что у Уорхола она появилась на пару лет раньше, чем у простых смертных. На компьютерах тоже нашли кое-что интересное — стикеры «не для продажи». Явное доказательство того, что художник получал тестовую продукцию одним из первых.

 

Чертежи процессора MOS 6502

В середине восьмидесятых годов процессор MOS 6502 был большим хитом — за счет низкой цены и одновременно высокой по тем временам производительности. На момент появления он стоил 25 долларов, в 4–5 раз дешевле, чем конкуренты вроде Intel 8080 и Motorola 6800. MOS 6502 лег в основу Apple I и II, Commodore PET, Atari 2600, NES, советского «Агата», болгарского «Правеца» и еще массы разновидностей домашних компьютеров. Помнишь строки кода, которые бегут перед глазами T-800 в первом «Терминаторе»? Это ассемблер MOS 6502! Через пятнадцать лет этот факт обыграют в «Футураме»: чип в голове у Бендера носит все ту же знаменитую маркировку.

T-800 из «Терминатора» работает на MOS 6502 и исполняет программу Key Perfect для Apple II

Сейчас нет недостатка эмуляторов машин на этом знаменитом процессоре, но они лишь повторяют набор его инструкций, а это не совсем то же, что настоящее железо. Чертежи MOS 6502 рисовались карандашом на ватмане — САПР в те времена еще не существовало. Если репринты тех схем и сохранились, то они очень редки.

Трое американских «цифровых археологов» Грег Джеймс, Барри Сильверман и Брайан Сильверман решили восстановить точную цифровую копию MOS 6502, чтобы она служила аналогом исходников на HDL и могла использоваться для симуляции. Как это сделать? Есть только один способ, и он выглядит очень непростым.

Упаковка прожжена кислотой, и процессор предстает перед нами в первозданной форме

Упаковку чипа проплавляют фосфорной кислотой, разогретой до 90 градусов, после чего скрывавшуюся под слоем пластика микросхему фотографируют под микроскопом. Именно таким образом группа энтузиастов получила около 200 снимков, которые затем склеили, чтобы получить цифровую копию микросхемы с разрешением 342 Мп.

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

Проект портировали на JavaScript, и теперь достаточно зайти на visual6502.org, чтобы поиграть с виртуальным процессором. В окне браузера видно не только содержимое памяти и регистров, но и сам чип во время его работы.

Виртуальный процессор красиво помигивает во время симуляции

Вскрытие, фотографирование и создание симулятора процессора кажутся ужасно непростыми, но на деле процесс занял всего около полугода: с ноября 2009-го по май 2010-го. С тех пор разработчики успели добавить симулятор Motorola 6800 и собираются продолжать использовать свою технологию для расширения коллекции. Просят присылать любые старинные микропроцессоры: одного экземпляра оказывается недостаточно, когда речь идет об обработке кислотой.

Нужно сказать, что обратная разработка процессоров — выдумка совсем не новая. В СССР она широко применялась для клонирования западных технологий (см. «Хакер» за август 2013-го), да и сейчас встречается. Так, ребята с форума emu-russia.net недавно распотрошили процессор приставки PSX и изучают его (на psxdev.ru можно прочесть подробности). PSX — это модификация PlayStation 2, и, возможно, она еще недостаточно устарела, чтобы считать ее вскрытие археологией, — в голову, скорее, приходит мысль о пиратстве. Но если это и пиратство, то в его лучшем проявлении. К тому же пройдет какое-то время, и никто не станет смотреть косо на подобное занятие.

 

Советский троичный компьютер «Сетунь»

Западная история компьютеров давно разложена по полочкам, и нарыть что-то новое можно только при большом везении. Как насчет отечественной археологии? С советских времен нам осталось богатое наследие редких компьютеров, необычных историй и давно позабытых достижений.

Сообщества любителей старых компьютеров существуют и в России. Одно из них называется «Тринари» и посвящено изучению истории троичной ЭВМ «Сетунь». Слово «троичной» здесь нуждается в пояснении: дело в том, что этот уникальный компьютер был спроектирован для работы с данными в троичном представлении, то есть вместо битов (0 или 1), он оперировал тритами — их принято обозначать –1, 0 и 1. Соответственно, вместо байтов у троичного компьютера трайты, они состоят из шести тритов и принимают значение от –364 до 364. Легкость работы с отрицательными величинами, как можно заметить, дана такому компьютеру от рождения.

«Сетунь» в 1959 году, тогда еще новенькая

Руководил разработкой «Сетуни» Николай Петрович Брусенцов, заведующий кафедрой вычислительной математики механико-математического факультета МГУ. Первый тестовый компьютер был завершен в 1959 году, и впоследствии Казанский завод математических машин выпустил еще 46 экземпляров, которые разошлись по НИИ и учебным заведениям. К 1970 году команда Брусенцова разработала следующую модель — «Сетунь-70». Но до серийного производства эта машина так и не добралась — помешала советская бюрократия. Считается, что главной проблемой стала вовсе не экзотичность троичных вычислений, а, как ни парадоксально, низкая стоимость компьютера.

«Сетунь-70», в отличие от первой «Сетуни», не только использовала троичное представление данных, но и поддерживала некоторые троичные логические операции. К примеру, троичная логика значительно упрощает сравнение чисел: если аналогичные двоичные операторы могут вернуть лишь значения «больше» или «меньше», то троичное сравнение учитывает возможность равенства чисел.

Александр Обухов из группы «Тринари» по старым схемам разработал эмулятор «Сетуни», причем работающий прямо в браузере. Достаточно открыть страницу trinary.ru/projects/setunws, и оказываешься один на один с панелью управления старинного советского суперкомпьютера. Чтобы разобраться, что к чему, понадобится прочесть книгу «Малая цифровая вычислительная машина Сетунь» — а это, конечно, осилит не каждый. Но для тех, кого захватила идея троичной логики, такая возможность бесценна.

Перфоленты «Сетуни-70» по-прежнему хранятся в МГУ

Другой участник «Тринари», Александр Самсонов предпринял попытку пойти дальше и создать эмулятор «Сетуни-70», чтобы иметь возможность запускать старые программы, которые ему удалось восстановить с перфолент. В интервью журналу «Компьютерра» Самсонов рассказал о том, как столкнулся с непредвиденными и необычными сложностями. В частности, ПЗУ «Сетуни-70» существует только в виде распечатки в машинных кодах, причем страницы не пронумерованы и перемешаны, а всего их около сорока. Восстановление последовательности в этом случае задача очень нетривиальная.

Николай Брусенцов умер 4 декабря 2014 года, всего за два месяца до выхода этого номера. Из новостей об этом не узнаешь — его имя, как и имена многих других первопроходцев начала компьютерной эпохи, известно лишь знатокам истории вычислительной техники. Но именно благодаря энтузиастам эта история сохранилась, а необычные и малоизвестные идеи не уходят из жизни вместе с их авторами.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    3 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии