Магнитная лента и весеннее обострение

Магнитная лента и весеннее обострение

Том 1.0 Глава 23.0

Желтый «ЛиАЗ» тяжело переваливался через выбоины, натужно воя двигателем и одуряюще пахнув бензином вперемешку с пыльной резиной. Сашка стоял на задней площадке, уцепившись за поручень, и бездумно смотрел в окно. За грязным стеклом проплывали залитые закатным солнцем сосны Зеленограда.

Он возвращался с подготовительных курсов МИЭТа. Ноги гудели. Профессура на Физтехе оказалась мировой — строгой, но справедливой. Ему удалось пару раз блеснуть у доски нестандартным решением, и он спинным мозгом чуял: его запомнили. Первый мостик в легальный мир большой советской электроники был перекинут.

Автобус чихнул тормозами на остановке. Сашка вывалился в густой, нагретый за день летний воздух.

Двор его родной панельной девятиэтажки жил своей привычной вечерней жизнью. Стучали костяшки домино на столе у пенсионеров, кто-то выбивал ковер на турнике, а у самого подъезда, свесив ноги с облупленной зеленой лавочки, сидели двое. Его младший брат Димка и соседский Петька — вечно взъерошенный пацан с зеленкой на обеих коленках.

Едва Сашка завернул за угол, Димка соскочил с лавки, как подброшенный пружиной.

— Сань! Ну наконец-то! — брат подлетел к нему, заглядывая в глаза с таким неистовым щенячьим ожиданием, что Сашка невольно сбавил шаг. — Я Петьке рассказал! Про игру, про экран, про то, что как в кинотеатре будет, только дома! Он не верит, прикинь! Скажи ему! Ну когда уже поиграть можно будет? Ты же обещал, что скоро!

Петька, переминаясь с ноги на ногу, шмыгнул носом и посмотрел на Сашку со смесью недоверия и священного трепета. Как на космонавта или волшебника.

Сашка окинул взглядом этих двоих. Грязные руки, ссадины, распахнутые глаза. В 2025 году он бы назвал их «фокус-группой» или «ядром целевой аудитории». Но сейчас это были просто мальчишки, которым до одури хотелось чуда. Ради этого чистого, незамутненного восторга стоило стирать пальцы о припой. Именно они завтра понесут ему свои карманные копейки, сэкономленные на школьных завтраках.

Сашка улыбнулся и взлохматил брату волосы.

— Будет, Дим. Почти всё готово. Осталась пара штрихов. Петьку тоже зови, когда запустим. Только чур, уговор на берегу: по кнопкам со всей дури кулаками не лупить. Они хоть и советские, кондовые, но не железные. Сломаете — сами чинить будете, я вам паяльник выдам.

— Не сломаем! — хором, чуть ли не по стойке смирно, выдохнули пацаны.

— Домой-то не собираешься? — спросил Сашка брата, доставая из кармана ключи. — Мать скоро с работы придет, ужинать пора. Опять ругаться будет, что грязный.

— Я только попить забегу! Мы в казаки-разбойники играем, наши там за теплотрассой прячутся, мне на пост надо! — Димка рванул к тяжелой подъездной двери, рванул её на себя с такой силой, что чуть не оторвал ручку, и скрылся в темноте парадного.

Сашка не спеша поднялся на свой этаж. В квартире было тихо. Родители еще не вернулись. С кухни доносился шум бегущей воды и громкое, торопливое сопение.

Он скинул кроссовки, чувствуя, как горят натертые ступни. Ступил на прохладный линолеум.

В этот самый момент из кухни, как пущенная торпеда, вылетел Димка. В обеих руках он сжимал по огромной эмалированной кружке, до краев наполненной водой — себе и Петьке.

— Оп-па! — только и успел крякнуть Сашка.

Димка затормозил. Подошвы сандалий скользнули по гладкому полу. Он попытался увернуться, но законы инерции сработали безотказно. Вода из правой кружки мощным плеском вылетела наружу, щедро окатив коридор и Сашкины ноги в серых носках.

— Ну ёлки-палки, стихийное бедствие! — Сашка зашипел, смешно отпрыгивая на пятках к стене. — Куда несешься, как на пожар?! Тряпку возьми, весь коридор залил!

— Ой, Сань, извини! Я потом вытру, честное пионерское! Петька ждет, у нас засада! — Димка виновато вжал голову в плечи и, не дожидаясь заслуженного подзатыльника, бочком протиснулся к двери. Замок щелкнул, и в подъезде загрохотали удаляющиеся шаги.

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

Он прошел в свою комнату и с наслаждением, не расправляя покрывала, рухнул на кровать. Пружины матраса жалобно скрипнули, принимая вес.

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

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

Так. Анализ ситуации.

Железо в гараже собрано на девяносто процентов. Плата питания выдает стабильные напряжения, видеоконтроллер на 155-й серии генерирует чистый растр, процессор КР580 живой и тактируется. Софтовая среда у мажора Волкова на «Правце» тоже настроена — компилятор работает, макросы прописаны. Макс даже умудрился нарисовать вполне сносные пиксельные кактусы и самого динозавра для их первой, тестовой игры.

Теперь оставалось самое «интересное». Интеграция.

Как перенести бинарный файл скомпилированной игры с огромного жесткого диска «Правца-16» в пустые, мертвые мозги гаражного прототипа?

В голове предательски, из-за мышечной привычки, въевшейся за сорок лет жизни в будущем, всплыл образ обычной USB-флешки. Маленькая, блестящая, с колпачком. Вставил в порт, скопировал файл, сунул в карман, принес в гараж, воткнул — и играй. Секундное дело.

Сашка досадливо поморщился и протер лицо ладонями. Нет никакой флешки. В 1987 году перенос данных — это боль, и аппаратная инженерия. Дисковод 5.25 дюйма к самодельной консоли не прикрутишь — он стоит как чугунный мост, его не достать, да и контроллер для него паять — это еще одна плата размером с хорошую книгу. Перфоленты? Смешно.

«Значит, кассета», — безрадостно констатировал он.

Самый народный, массовый и дешевый носитель. Обычная магнитофонная кассета МК-60.

План действий вырисовывался четкий, но муторный. Нужно написать маленькую утилитку на «Правце», которая будет брать бинарный файл игры и через LPT-порт принтера — или даже просто через встроенный динамик-пищалку — переводить нули и единицы в звук. Записать этот мерзкий цифровой визг на обычный кассетник. А потом в гараже подключить этот магнитофон к приставке.

Но тут в стройной логике возникла кирпичная стена, в которую Сашка мысленно врезался на полном ходу.

Чтобы приставка в гараже смогла понять этот звук с кассеты, отличить ноль от единицы и сложить их в память, она не должна быть «пустой» при включении. Ей нужна душа. Базовый инстинкт. Ей нужен BIOS.

Крошечная, жестко зашитая в микросхему постоянной памяти программа-загрузчик. Программа, которая при подаче питания скажет тупому кремниевому процессору: «Так. Игнорируй всё. Слушай порт магнитофона. Лови перепады звуковой частоты. Переводи их в байты и аккуратно складывай в оперативную память, начиная с адреса ноль. А когда звук кончится — передай управление туда».

Без этого крошечного BIOSа процессор ВМ80А при включении просто повиснет, пытаясь выполнить хаос из случайного мусора на шине данных.

А чтобы зашить BIOS в микросхему, нужен программатор. Специальное устройство, которое сложной последовательностью импульсов в 24 вольта «выжигает» биты в кристалле.

Готового программатора у него, естественно, не было.

«Значит, придется паять программатор с нуля, — мысленно резюмировал Сашка, чувствуя, как начинает ныть затылок. — Для этого нужны повышающий трансформатор, панельки с нулевым усилием и еще пара вечеров с паяльником. Нужно идти в гараж, делать полную ревизию остатков. И мне нужны руки Лехи».

Он рывком сел на кровати, сбросив оцепенение, и пошел в коридор.

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

Трубку сняли быстро, словно сидели рядом с аппаратом.

— Да, — раздался хмурый, глухой голос друга. Никакой обычной бодрости.

Сашка сразу всё понял. Леха всё еще дулся. Друг считал чуть ли не кровным предательством тот факт, что Сашка пошел на мировую с мажором Волковым, да еще и зависает у него дома, работая за его болгарским компьютером. Для Лехи школьная вражда была делом принципиальным, черно-белым. Мажор — враг. А с врагами не братаются.

— Привет, партизан, — бодро начал Сашка, решив не замечать ледяного тона. — Чего голос такой убитый? Опять с батей ругался?

— Нормальный голос, — буркнул Леха. — Чего звонишь? Тебе твой новый кореш с импортным компом не помогает? Зачем тебе я сдался?

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

На том конце провода послышалось недовольное сопение, но трубку Леха не бросил. Слушал.

— Макс графику дорисовал, — продолжал Сашка, зная, куда бить. — Я ему объяснил, как по пикселям строить. Динозаврик получился вообще как живой, стильный. Анимация бега плавная выходит. Компилятор настроен. Всё готово, Лех. На днях сажусь сам код игры писать. Движок уже в голове сложен, осталось только набить.

Возникла долгая пауза. Сашка почти физически чувствовал, как ледяная обида Лехи тает под мощным напором чистого технического любопытства. Азарт создателя, желание увидеть, как куча железа превращается в игру, брали верх над подростковой гордостью.

— Прям... как живой? — голос друга заметно потеплел, враждебность сменилась интересом. — И что, уже бегать будет?

— Будет летать, если мы железо в гараже допилим, — Сашка перешел к делу. — Нам теперь нужен программатор. Чтобы перекинуть игру с кассеты в память консоли, нужен BIOS, программа-загрузчик. Будем паять схему прожига для микросхемы. Надо прочесать весь наш хлам в гараже, найти высоковольтные транзисторы, стабилитроны, тумблеров штук двадцать. Без тебя я там неделю буду ковыряться. Жду тебя через полчаса у ворот «Луча».

Снова возникла пауза. Но на этот раз какая-то неловкая. Леха кашлянул в трубку, потом прочистил горло.

— Сань... я сегодня не могу. Никак вообще.

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

— Да нет... — Леха замялся. Его голос упал почти до заговорщицкого шепота, словно он боялся, что его услышат родители в соседней комнате. — Я... это... на свиданку иду. В кино.

Сашка потерял дар речи.

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

Из него неожиданно, вырвалась фраза на автомате:

— Ого. Я думал, ты к вступительным готовишься, ночами не спишь, а ты еще и на свиданки бегать успеваешь... Да уж, мне бы твои заботы. Эх, молодость...

В трубке раздалось возмущенное, обиженное пыхтение.

— Слышь, дед! — искренне возмутился Леха. — Какая молодость? Ты чего несешь вообще?! Нам обоим по семнадцать! Мы одногодки, если ты забыл! Чего ты раскряхтелся, как пенсионер на завалинке?

Сашка мысленно с размаху ударил себя ладонью по лбу. Опять. Опять этот «внутренний уставший дядька» вылез наружу и ляпнул невпопад.

— Да шучу я, шучу! — быстро сдал он назад, стараясь вернуть в голос интонации «своего парня». — Расслабься, Лех. Задумался просто. Кто она хоть? Я её знаю? Из нашей школы?

Леха мгновенно сменил гнев на милость. В его голосе зазвучала плохо скрываемая гордость.
— С параллельного класса. Рыженькая такая, Оля. Синицына. На выпускном мы с ней медляк танцевали, помнишь? Я билеты еле выцепил у спекулянтов, по рублю за билет отдал!

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

— Молодец, Лех. Красавчик, что сказать. Удачи тебе там. В кино ей точно понравится. Ладно, отдыхай. Гуляй. Завтра тогда с программатором разберемся, не горит. Не сломается наш кремний за один день.

Они попрощались.

Сашка положил тяжелую трубку на рычаги. В квартире по-прежнему было тихо. На кухне капала вода из неплотно закрытого крана.

Он постоял пару минут в полутемном коридоре, прислонившись к обоям, и переваривал свое удивление. Оказывается, пока он мысленно строит корпорацию, рисует схемы, воюет с мажорами и готовится спасать свою семью от инфляции и бандитизма, жизнь вокруг идет своим нормальным чередом. Люди влюбляются. Ходят в кино. Покупают мороженое. Радуются простым вещам.

Где-то глубоко внутри кольнула легкая, светлая зависть.

У него самого на месте личной жизни пока зияла огромная, сквозная дыра после истории со Светкой. 

Сашка потряс головой, физически отгоняя эти мысли.

«Сейчас не до этого, — сказал он себе, возвращаясь в привычный, холодный режим инженера. — Романтика — потом. Эмоции — потом. Сначала — база. Сейчас нужен программатор. Без него всё это железо в гараже останется просто кучей текстолита и проводов в сыром гараже».

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