Наталья Сергеевна сдвинула бумагу, прищурилась на свежую строку.
— «…убедитесь, что сеть соответствует параметрам…» — прочитала и поморщилась. — Скучно. Но иначе никак.
— Зато правда, — сказал Алексей. — Ладно, дальше. «…что заземление подключено…»
Он диктовал ещё минут тридцать, пока буквы в глазах не превратились в серый шум. Пункты тянулись один за другим: лампа‑ограничитель, контроль разъёмов, самотест памяти, режим «ЗЛ». Всё, что вчера было живыми руками и руганью в лаборатории, превращалось в аккуратные, сухие строки.
Когда поставили последнюю точку в черновике «Инструкции по эксплуатации», за окнами уже стемнело, дежурная уборщица заглянула с фразой «вам тут долго ещё?» и выразительным взглядом на часы.
— На сегодня хватит, — сказал Михалыч, собирая кальки. — Остальное завтра добьём.
Алексей только кивнул. Голова гудела, как трансформатор.
В общежитии тоже гудело.
Сначала — дальний раскат, где‑то за Клязьмой. Потом — одинокая вспышка, белой полосой прошившая стекло. Через минуту ударило по‑настоящему: гром, как будто кто‑то кинул на крышу старый огромный кирпич.
Свет дёрнулся раз, второй. На третьем рывке радиоточка возле двери захрипела и заткнулась. По коридору прокатился дружный мат, глухой удар ведра — кто‑то задел его в темноте.
Алексей застыл с чайником в руке, глядя на потолок. Лампочка над столом чуть поморгала и тоже погасла. В комнате повисло густое, удивительно физическое молчание. Только за окном шуршал дождь по подоконнику, наползал на стекло косыми полосами.
Через пару секунд щёлкнуло где‑то в подвале, свет снова вспыхнул. На этот раз тусклее.
Рядом в коридоре кто‑то радостно выдохнул:
— О, ожили.
Алексей поставил чайник обратно на плиту, так и не включив. Посидел, прислушиваясь, как гудят батареи.
Такая же гроза была два года назад, в июле, когда он только въехал в эту комнату. Тогда, он помнил, лежал на койке, смотрел в потолок и упрямо думал: «Если уж я тут застрял, надо сделать так, чтобы мои машины не дохли от каждого мигания света». В голове тогда крутилось слово «автосохранение». Потом пришла зима, гетинакс, трансформатор, первый самотест… До полноценной реализации «автосохранения» руки так и не дошли.
Свет над столом снова дрогнул, но выдержал. Радиоточка, правда, не вернулась — где‑то на лестнице кто‑то крутил ручку, пытаясь вернуть «Маяк».
Алексей тихо выругался. Не громко, для себя.
Школы. Дома пионеров. Проводка «послевоенного выпуска», скрутки в коробках, розетки, болтающиеся на одном винте. Десять, потом пятьдесят комплексов. Все — завязаны на ту же сеть, что и чайники, утюги и холодильники.
Он попытался представить лицо шестиклассника, который двадцать минут набирает свою первую программу, а потом — бах! — лампа моргнула, экран погас, и вместо результата — пустой экран. Второй раз этот мальчишка к машине подойдёт? Под вопросом.
Вернувшись в комнату, Алексей сидел на кровати и долго слушал, как где‑то дальше по этажу ругаются соседи.
Обещание, данное два года назад, осторожно вылезло из угла памяти и стало перед глазами плотным текстом: «сделать так, чтобы при пропадании питания машина держалась до последнего».
Пришла пора выполнить обещание.
Утро в КБ началось с запаха мокрых плащей и хлорки. Все приходили, отряхиваясь у дверей, вешали на батареи потяжелевшие от дождя куртки.
Люба протёрла запотевшие стёкла очков и посмотрела на Алексея более внимательным взглядом, чем обычно.
— Вы как будто не спали, — заметила она.
— Я спал, — сказал Алексей. — Минут сорок. Остальное время слушал, как у нас проводка гудела. Ты в своей коммуналке этого не слышишь, разве?
— У нас вчера от перепада опять лампочка сгорела, — спокойно ответила Люба. — Я уже привыкла менять.
— А дети в школе как же?
Она чуть задумалась.
— Дети лампочки не меняют, — сказала и уже другим тоном добавила: — Вы про «Сферу»?
— Про неё. — Алексей бросил на стол тетрадь. На первой странице крупно значилось: «Питание. Право на мигание». — Если у нас в общежитии от ближайшей грозы всё пляшет, то в школе будет не лучше. А у нас там ОЗУ, ПЗУ, кассета. Всё висит на тех же проводах.
— Так у нас же трансформатор с запасом, — попыталась возразить она. — И стабилизатор. Вы же сами…
— Трансформатор с запасом не умеет работать, когда его выдёргивают из розетки, — отрезал Алексей. — И стабилизатор тоже.
В этот момент в дверь просунулся Евгений, держась за косяк, как за поручень.
— Слышу слово «питание» — и сразу захожу, — объявил он. — Что у нас, опять хотят экономить на трансформаторе?
— Наоборот, — сказал Алексей. — Хотят, чтобы при каждом мигании света машина не превращалась обратно в набор микросхем.
— А, — удовлетворённо кивнул Евгений. — Хочешь аккумуляторы прицепить? Давай, я видел где‑то на складе старую батарею от телефонистов. Воду долить — и вперёд, с песнями!
— Аккумуляторы, — повторил Алексей. — В школу. Не уверен.
Он чуть приподнял брови.
— Хочешь, чтобы к нашей машине приставили табличку «Не трогать, опасно для жизни»? Они и так боятся этих шкафов.
Евгений пожал плечами.
— Ну это уже вопросы искусства, — сказал он. — Я своё слово «аккумулятор» сказал, снимаю с себя ответственность. Идите к Виктору Петровичу, спросите, сколько вам таких радостей дадут.
— Пойдём, — сказал Алексей. — Всё равно надо.
Виктор Петрович внимательно выслушал, как умудрённый опытом терапевт слушает очередного пациента, который прочитал медицинский справочник.
— Аккумуляторы, — повторил он с особой интонацией. — В школьный прибор. Морозов, вы в своём уме?
— Пока да, — спокойно ответил Алексей. — Мне бы хотелось, чтобы и дети в нём оставались.
— Не надо мне про детей, — отмахнулся снабженец. — Аккумуляторы — это военные, связь, телефонные станции. И то — они с ними мучаются. Надо смотреть плотность электролита, доливать, заряжать, не дай бог — потекло. Учительница физики вместо урока будет пробки на батарее протирать, да?
— Я и не настаиваю, — поднял руки Алексей. — Просто проверил: можно ли. Судя по вашей реакции — нельзя.
— Нельзя, — подтвердил Виктор Петрович. — У меня в спецификации на ваш комплекс нет слова «аккумулятор». И не будет. Я уже один раз подписывался за ваши К573, второго раза мне не надо. Вставьте в свои схемы мозги, а не банки с кислотой.
— Мозги вставим, — вздохнул Алексей. — Для этого и пришёл.
— Ну вот, — Виктор Петрович успокоился. — Вот про мозги поговорим. Только не надо ко мне с просьбой «дайте ещё один трансформатор, мы его на чёрный день под подушку положим». Всё, что вы просите, должно быть в КД. Иначе — гуляйте.
Алексей кивнул. На душе стало даже чуть легче. Аккумуляторы, честно говоря, он и сам видел в этом контексте как плохую шутку. Но проверить границы полезно.
— Ладно, — сказал он. — Тогда мы к вам ещё вернёмся. Но уже с бумажкой на К50‑е.
— С чем? — приподнял брови Виктор Петрович.
— С конденсаторами, — пояснил Алексей. — Большими. Пока не знаю, сколько, но много.
Снабженец проворчал что‑то про «любителей банок», но уже без прежнего огня. С банками он был знаком. С кислотой — тоже, но по другой линии.
Днём Алексей снова сидел у кульмана. По одну сторону — схема существующего блока питания: трансформатор, мост, стабилизатор, пучок стандартных К50‑16 на плате. По другую — чистый лист.
Он смотрел то туда, то сюда и мысленно прокручивал знакомую картинку. Вначале — сеть, синусоида, потом выпрямитель, ровный пульсирующий гребень, дальше — стабилизатор. Пока синусоида жива, всё хорошо. Когда она исчезает, на плате остаётся только то, что успели накопить конденсаторы. Для лампочек этого достаточно: они моргнут и погаснут. Для микросхем — хуже. Они не любят, когда напряжение медленно сползает вниз. Особенно память.
В его прошлой жизни то ли в блоке питания, то ли в даташите это называлось «сигнал исправности питания». Здесь такого слова не было. Было простое: «сбой сети».
Ну и хорошо.
«Надо научить машину замечать, что сеть падает, раньше, чем упадёт всё остальное», — подумал он. — «И в этот момент запретить ей трогать память. Потом пусть темнеет сколько угодно».
Он взял карандаш.
Первым на листе появился диод — от сети, после трансформатора, ещё до стабилизатора. Там напряжение гуляло, но гуляло быстро: как только синусоида шла вниз, оно падало. Если через резистор зацепиться за этот узел, посадить его на базу транзистора — можно заметить, что «сеть села» чуть раньше, чем на плате начнёт проседать уже выровненное питание.
Следом — транзистор, КТ315. Второй, инвертирующий. Рядом — подпись: «Сигнал запрета записи в ОЗУ». От этого узла стрелка уходила к условному прямоугольнику «ЦУБ»: к тому месту, где внутри микрокода уже был флажок «запись разрешена / запрещена».
Люба подошла и некоторое время молча смотрела на рисунок.
— Опять вы с транзисторами, — сказала она. — Мы только привыкли к мысли, что у нас всё на логике, и вот.
— Логика есть, — возразил Алексей. — Только ей надо сказать, когда ей молчать. Для этого придётся поставить пару «жучков».
— И это всё? — она показала на два треугольника транзисторов. — И как вы хотите, чтобы это спасло память?
— Не это, — сказал Алексей. — Это — только команда «не трогать». А держать питание будут банки.
Он перевернул лист, нарисовал несколько крупных конденсаторов, похожих на маленькие бомбы. Подписал: «К50‑6, 1000 мкФ, четыре штуки».
— Вы их куда пихать собрались? — Люба уже явно думала и о плате, и о корпусе.
— Валера найдёт, — уверенно сказал Алексей. — Не впервой.
Она вздохнула, но не спорила. Если в проекте уже вырисовывались конкретные номиналы, значит, спорить бесполезно: Морозов начал свой крестовый поход.
Валера выглядел, как всегда, так, будто его только что оторвали от чего‑то интересного.
— Банки, — переспросил он в макетном цехе, держа в руках список. — Четыре штуки в каждый блок? Ты уверен, что у нас не учебная машина, а усилитель «Мелодия‑120»?
— Уверен, — сказал Алексей. — Если не нравятся банки, давай обратно к гетинаксу и лампочкам вместо индикаторов.
— Ладно, не зудите, — примирительно поднял руки Валера. — Я свою часть понял. Надо в корпусе найти четыре места «под банку» и сделать так, чтобы при первом падении со стола они не отвалились. И чтобы вентиляция была.
Он взял карандаш, подошёл к чертежу корпуса.
— Смотри, — забормотал. — Вот тут у нас трансформатор, вот тут плата. Между ними — воздух. Воздух я у тебя отберу и поставлю туда две, остальные две — в уголок под платой. Придётся крышку поднять на три миллиметра, иначе не пролезут. Дырок сверху напущу… да, «сыр» будет ещё дырявее.
— К дыркам мы уже привыкли, — сказал Алексей. — Лишь бы не вывалились.
— Вывалится — сами будете ловить, — отрезал Валера, но в голосе звучало больше предвкушения работы, чем раздражения. — Ладно, сделаем.
Схему детектора Алексей с Любой собирали сами. На отдельной небольшой платке, через панельку — чтобы, если совсем всё пойдёт не так, можно было выдернуть её и жить, как раньше.
Первый запуск делали на холостом ходу. Вольтметр показывал: при нормальном напряжении транзистор открыт, вывод «Запись разрешена» в логической единице. Стоило плавно, через автотрансформатор, опустить входное напряжение ниже определённого порога — сигнал уходил в ноль, запрещая любые операции записи в оперативное запоминающее устройство.
— Главное, — повторял Алексей, — чтобы он срабатывал раньше, чем стабилизатор начнёт сдавать. Если будет позже — толку ноль.
Тут пригодился опыт Евгения с его бесконечными тестами на ЕС.
— Сделаем псевдопрограмму, — предложил он. — Которая как безумная будет записывать в память всякие штуки, а мы будем дёргать сеть. Если после этого в массивах будет хоть один неправильный байт — будем ругаться на вашу железку.
Так и сделали.
На стенде «Сферы» стояла привычная связка: ЦУБ, память, новая ПЗУ на К573, видеоконтроллер, клавиатура. Плата детектора торчала сбоку, пока ещё вне корпуса, провода тянулись к блоку питания, конденсаторы‑«банки» лежали рядом, временно соединённые проводами, как пациент — с аппаратом искусственного кровообращения.
В ОЗУ под управлением микропрограммы гонялась по кругу простая последовательность: записать в каждый адрес образца `AA`, проверка, потом `55`, снова проверка. Ничего хитрого, но для проверки того, что память не «сходит с ума» при падении питания, этого хватало.
Валеру позвали для главной роли.
— Твоя задача, — объяснил Алексей, — стоять у розетки и по команде резко выдёргивать вилку и тут же вставлять. Только аккуратно.
— Всю жизнь мечтал, — серьёзно сказал Валера. — Обычно наоборот говорят: «не дёргай, а то отключишь полцеха».
Они расположились: Валера — у розетки, Люба — у осциллографа, Евгений — у консоли «Сферы», Саша — у лампы‑ограничителя, пальцы уже на выключателе, вдруг что пойдёт не так.
— Готовы? — спросил Алексей.
Кивнули.
— Тогда начинаем.
Первый рывок оказался… скучным.
Валера ловко, без особой злобы, выдёрнул и тут же воткнул вилку. На экране «Сферы» на долю секунды пропали символы и тут же вернулись. Программа как ни в чём не бывало продолжала свою беготню, цифры `AA` и `55` ровными блоками мелькали на индикаторах.
Люба посмотрела на осциллограф.
— Порог сработал, — спокойно сказала она. — Как только сеть провалилась, транзистор щёлкнул. На память сигнал «запрета» пришёл за пару миллисекунд до того, как стабилизатор начал проседать.
— Ну, может, случайность, — не слишком веря в собственную удачу, сказал Алексей. — Валера, ещё.
Второй раз мастер дёрнул сильнее, как будто торопился на трамвай. Экран «Рекорда» дёрнулся, из динамика вышел короткий писк, но через мгновение картинка стабилизировалась.
— Проверяем, — сказал Алексей.
Они остановили программу, пролистали массив. Ни одной ошибки.
Евгений почесал затылок.
— Непорядок, — сказал он. — Я столько лет писал программы, которые ломались от каждого чиха, а тут железо ведёт себя прилично. Мир меняется.
— Не мир, — возразил Алексей. — Просто мы наконец начали думать, что будет, если кто‑то выдернет вилку.
— А если не выдернет, а просто сеть просядет? — не унимался Евгений. — Где‑то чайник включили, где‑то станок…
— Для этого у нас стабилизатор и магнитофонный блок, — напомнил Алексей. — Там это уже отработано. Нас интересуют именно обрывы. Резкие. То, что в общежитии называется «ой».
Валера, похоже, втянулся в игру.
— А давайте, — предложил он, — я подержу вилку наполовину. Вот так, чтобы контакт был то есть, то нет. Как плохая розетка в школе.
— Давай, — сказал Алексей. — Только смотри, не поджарься. И КБ нам не спали.
Третий тест оказался самым жестоким. Вилка висела в розетке буквально на кончиках контактов, искрила. Приглашение «Сферы» на экране пару раз прыгнуло, картинка чуть сузилась, но не исчезла. Программа остановилась, а не полетела куда‑то в неведомые дали.
После отключения они снова пролезли память — и снова не нашли сбитых байтов.
— Ну что, — тихо сказала Люба, — похоже, наша банка с ушами работает.
— Банка, — поправил Валера, — у вас на столе. А это — уже узел контроля питания. Красиво звучит, кстати.
— Звучит страшно, — заметил Евгений. — «Узел контроля питания». Как будто сейчас кто‑то будет контролировать, сколько ты съел на обед.
— У тебя и так это контролируют, — сказал Алексей. — Бухгалтерия и желудок.
Он ещё раз посмотрел на схему и испытал то странное спокойствие, которое обычно приходит после решения давно отложенной задачи. Не эйфорию — её он с возрастом разучился ждать. Просто чувство: теперь на одну неприятность меньше.
К вечеру Валера уже успел засунуть банки в корпус. Крышка закрывалась с лёгким усилием, новый блок питания выглядел тяжёлым и солидным.
— Всё, — сказал он. — Теперь если кто‑то бросит ваш ящик с парты на пол, сначала сломает пол. Потом — ящик. Банки переживут всех.
— Порадовал, — сказал Алексей. — С детства мечтал, чтобы у меня была техника, которая тяжелее учеников.
— Вы, Морозов, странный, — заключил Валера. — Но полезный.
Гроза повторилась через пару дней. Летняя, настоящая, с ливнем, который за пять минут превращает двор в грязное зеркало.
В общежитии всё было по классике: сначала грохот, потом вспышка, потом свет. Сначала был, потом не был, потом опять был. Где‑то завыл телевизор, кто‑то выругался, кто‑то радостно крикнул: «О, работает!»
Алексей сидел за столом, листал тетрадь с пометкой «Инструкция. Черновик» и неожиданно почувствовал, что внутренняя реакция на мигание изменилась. В голове в это время стояла картинка: кабинет в школе, «Сфера» на столе у учителя, Миша или любой другой, который быстро щёлкает по клавишам, набирает свою первую программу.
И эта программа — остаётся жить и после того, как где‑то в подвале старый автомат сказал «дзынь» и ушёл в отпуск. По крайней мере, несколько секунд.
Обещание, которое он сформулировал себе два года назад, вдруг перестало быть абстрактной фразой «надо бы». Оно теперь жило в кусочке текстолита с двумя транзисторами и четырьмя толстыми банками К50‑6, спрятанными в железном ящике.
Он развернул тетрадь и между строчек инструкции аккуратно вписал карандашом:
«При кратковременных провалах напряжения комплекс сохраняет данные в ОЗУ».
Потом посмотрел на фразу и чуть усмехнулся.
Слишком уверенно. Нужно скромнее.
Он зачеркнул «сохраняет данные» и написал рядом: «не допускает искажений данных при кратковременных провалах питания».
Бюрократия была бы довольна. Физика — тоже.
— Ну, — тихо сказал он себе. — Хоть в чём‑то мы этой проводке не проиграли.
Свет в комнате снова дёрнулся и, подумав, остался. Где‑то внизу комендант наверняка ругался с электриками. Где‑то на другом конце города школьник, может быть, делал уроки при свечке.
А где‑то — через год — такой же будет делать их на экране «Сферы». И лампочка в коридоре может сколько угодно мигать — его таблица умножения от этого жить не перестанет.
Это была не победа над системой. И даже не большое достижение науки.
Это просто была маленькая, упрямая инженерная правка мира: вот здесь, в этом месте, кусок железа перестаёт бояться мигания света. И этого, на сегодня, вполне хватало.