18+
реклама
18+
Бургер менюБургер меню

Станислав Миков – Проект «Сфера-80»: в поисках юности (страница 75)

18

Я выдвинул ящик стола. Там, среди россыпи резисторов МЛТ, кембриков и пустых пачек от «Явы», лежал обычный бытовой магнитофон «Электроника-302». И рядом с ним — стопка аудиокассет.

Перфоленты, этот проклятый рудимент вычислительной эры, я ненавидел всеми фибрами души. Они рвались, они путались, они превращали программирование в наказание. Моей личной, маленькой вендеттой против отсталости этого времени было создание кассетного интерфейса. Чтобы программы можно было грузить с обычной аудиокассеты МК-60 производства шосткинского комбината «Свема».

Я выбрал одну кассету. Она была без полиграфии, просто черная пластмассовая коробочка с белой бумажной наклейкой. На наклейке моим почерком, шариковой ручкой было выведено одно слово:`TEST_T.BIN`.

Я вставил кассету в магнитофон, с усилием нажал тугую клавишу «Воспроизведение» и одновременно набрал на клавиатуре «Сферы» директиву загрузки: `L`.

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

Сначала это был ровный, высокий, сверлящий мозг писк — пилот-тон, который синхронизировал нашу примитивную схему фазовой автоподстройки частоты. Схема «ловила» ритм. А затем писк сменился рваным, агрессивным скрежетом. Белый шум, состоящий из нулей и единиц, закодированных частотной модуляцией. 1200 герц для нуля, 2400 герц для единицы. Это звучало как крик умирающего кибернетического насекомого.

Для нормального человека 1978 года это был просто раздражающий шум. Но для меня, программиста из будущего, застрявшего в прошлом, это была музыка. Я мог на слух определить, где заканчивается заголовок файла и начинается массив данных. Я слышал контрольную сумму в конце блока.

Загрузка четырех килобайт кода занимала почти полторы минуты.

Полторы минуты. Я откинулся на спинку скрипучего стула, закинул руки за голову и смотрел в потолок, где вокруг тусклой люминесцентной лампы вилась одинокая осенняя муха. В 2026 году я бы закрыл сайт, если бы он грузился дольше трех секунд. Я злился, когда мой SSD-накопитель с интерфейсом NVMe копировал гигабайты медленнее заявленных скоростей. Я жил в мире мгновенного удовлетворения информационного голода.

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

Писк оборвался. Я остановил магнитофон. На экране «Сферы» мигнула надпись:

`ЗАГРУЗКА ЗАВЕРШЕНА. ОК.`

Я набрал команду запуска и нажал Липатовский пробел из стали 65Г.

Экран очистился. На долю секунды кинескоп потускнел — процессор перестраивал адресацию видеопамяти. А затем в центре экрана, нарисованный с помощью псевдографики — тех самых специальных символов с рамками и квадратиками, которые я заставил Громова вшить в знакогенератор вопреки всем стандартам ЕС ЭВМ, — появился «стакан». Прямоугольная шахта шириной в десять клеток и высотой в двадцать.

Сверху, медленно, подчиняясь прерываниям таймера, начала падать фигура, состоящая из четырех квадратиков, сложенных буквой «Г».

Я написал Тетрис.

Я сделал это в тайне от всех, по ночам, когда лаборатория пустела. Алексей Пажитнов придумает эту игру в Вычислительном центре Академии наук СССР только в 1984 году, на «Электронике-60». До этого события оставалось еще целых шесть лет. Но я не мог ждать. Мне нужно было что-то свое. Что-то из моего времени, из моего детства, перенесенное сюда, на это примитивное железо, собранное из деталей, выменянных на спирт и шоколадки в Бюро снабжения.

Я нажал клавишу со стрелкой. Фигура послушно сдвинулась вправо. Нажал пробел — фигура перевернулась вокруг своей оси.

Логика игры была написана на чистом ассемблере. Это был тот еще вызов. У нас не было сопроцессоров, не было аппаратных спрайтов или аппаратного ускорения графики. Каждое смещение фигуры означало, что процессор должен был стереть четыре символа в старых координатах видеопамяти и нарисовать четыре символа в новых. Нужно было проверять коллизии — не вышла ли фигура за границы «стакана», не наткнулась ли она на уже упавшие блоки. Если наткнулась — остановить её, перенести в массив статического поля, запустить цикл проверки заполненных линий. Если линия заполнена — сдвинуть весь массив блоков сверху вниз на одну строку.

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

Я играл. Падала длинная «палка», закрывая сразу четыре ряда. Экран мигал, линии исчезали, счетчик очков, выведенный справа от «стакана», прибавлял цифры. Падал квадрат. Падала «зюка».

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

Клац-клац. Клац.

Я смотрел на падающие пиксельные блоки, и меня накрывало. Не гордость инженера, нет. Меня накрывала чудовищная, всепоглощающая тоска по дому.

Я прагматик. Я давно принял правила игры этого мира. Я научился не выделяться, говорить правильные слова на партсобраниях, чтобы не дразнить гусей. Я научился решать проблемы шаг за шагом: нет процессора — соберем на рассыпухе, нет клавиатуры — заставим Липатова выжать из завода максимум, нет мониторов — припаяем разъемы к бытовым телевизорам. Я научился бороться с бюрократией, выкручивая формулировки ТЗ так, чтобы они удовлетворяли всех начальников.

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

Там я не был ни кем особенным. Просто хорошим сеньор-разработчиком. Винтиком в огромной корпоративной машине.

А здесь…

Я отвлекся, фигура упала криво, перегородив доступ к нижним пустым ячейкам. Я попытался исправить ситуацию, но темп игры вырос. Фигуры сыпались всё быстрее. Это была классическая ошибка в балансировке сложности — я слишком сильно уменьшил задержку в цикле таймера на высоких уровнях. Экран быстро заполнялся. Последняя прямая фигура не успела перевернуться и уперлась в потолок «стакана».

Игра замерла. В центре экрана появилась надпись:

`КОНЕЦ ИГРЫ`.

Я убрал руки с клавиатуры и потер уставшие глаза.

А здесь я создавал историю.

Без пафоса, без лозунгов про спасение СССР от технологического отставания. Я не питал иллюзий, что моя «Сфера-80» магическим образом изменит экономику огромной, тяжеловесной страны, зависящей от нефтяной иглы и плановых абсурдов. Но я знал одно: этот компьютер реально работает.

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

Я сдвинул историю на один крошечный, но очень важный миллиметр.

И это стоило того, чтобы сидеть здесь, слушать вой строчного трансформатора и дышать пылью.

Взгляд снова упал на доску с цифрой «5000».

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

Но пять тысяч — это промышленность. Это конвейер. Это тетки в синих халатах на заводе «Мираж», которым плевать на эстетику кода Громова и на гениальную разводку Любочки. Им нужно, чтобы плата вставлялась в пазы, а провода обжимались стандартным инструментом. Если мы не напишем идеальные Технические Условия, если мы не создадим дуракоустойчивую систему, завод просто пережует нашу «Сферу» и выплюнет мертворожденный кусок текстолита.

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

Я улыбнулся. Что ж, вызов принят.

Я протянул руку и щелкнул тумблером питания ВКУ. Экран мгновенно погас, оставив в центре яркую белую точку, которая медленно, неохотно угасала в течение нескольких секунд, пока высокое напряжение стекало с анода кинескопа. Писк трансформатора стих.