Глава 36 Срыв демонстрации

К концу августа от слов «включите магнитофон» у Алексея едва заметно дёргалось веко.

Не потому, что слова были плохие. Наоборот, очень правильные, человеческие. Просто между ними и реальностью по‑прежнему лежали те самые двадцать четыре байта, которые он каждый раз забивал вручную.

— Ещё раз пройдём, — сказал он, глядя на стенд.

Стенд выглядел, как всегда, чуть лучше, чем ему полагалось: сверху телевизор «Рекорд» с аккуратной табличкой «Учебно‑демонстрационный комплекс», сбоку — тяжёлая «Весна‑202», снизу — корпус «Сферы» с зелёной лампочкой «Питание». Сзади в жгуты уходили провода, разъёмы, один из них — свежеприпаянный, с чуть потёкшей канифолью.

Саша топтался рядом, вертел в руках отвёртку.

— Товарищ Морозов, — сказал он, — я вчера всё прозвонил. И контакты, и корпус. Там не должно…

— Именно поэтому мы пройдём ещё раз, — перебил Алексей. — Сегодня придут не школьники. Сегодня придёт Петров. И замдиректора. И, может быть, кто‑то ещё, без представления.

Он подошёл к столу, открыл тетрадь. На развороте — тот же знакомый список:

0400: 3E

0401: 01

0402: D3

Левой рукой придерживал лист, правой уже автоматически считал: раз, два, три, четыре. Привычное.

В двадцать шестом году он бы нажал одну кнопку и пошёл пить чай. Здесь — ритуал с элементами высшей математики и шаманства.

— Ладно, — сказал он. — Репетиция. Саша, включай стенд.

Щёлкнул пакетник, экран «Рекорда» вспыхнул серым, потом растр встал ровно. Через секунду в левом углу появился мигающий треугольничек ``.

Как живой.

— Запоминаем, — сказал Алексей. — Для протокола: монитор в ПЗУ работает, ОЗУ живо, ВКУ держит растр, клавиатура отзывается. Всё, что дальше, — только мы сами.

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

— А я думал, вы тут без нас справитесь, — протянул он. — А вы, смотрю, собрались устроить вечер ручного труда.

— Нам нужен свидетель, что мы делали всё по инструкции, — ответил Алексей. — Потом будешь на НТС говорить: «Я сам видел, они не торопились».

— Тогда я сейчас начну считать, сколько раз ты перепутаешь байты, — оживился Евгений. — Как контроль качества.

Алексей снова взглянул в тетрадь.

— Команда «ЗП 0400,3E», — вслух сказал он. — Пиши.

Саша набрал:

ZP 0400,3E

Курсор сдвинулся, принял команду. Экран спокойно отреагировал.

— «ЗП 0401,01».

— Есть.

— «ЗП 0402,D3»…

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

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

Закончили.

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

— Проверяем глазами, — сказал он. — Сверху вниз, без героизма.

Они ещё раз прошли по столбцу. Евгений молчал, но два раза ткнул пальцем — «а тут у тебя не „0F“ вместо „0E“?» — оба раза ошибся сам.

— Похоже, всё, — сказал Алексей. — Запоминаем: загрузчик в ОЗУ. Сейчас «ПРХ 0400» не подаём. Сохраним на потом, чтобы было что показать.

Саша кивнул.

— А магнитофон? — спросил он.

— Магнитофон — после того, как начальство увидит, что вообще есть к чему его подключать, — ответил Алексей. — Сначала — арифметика. Потом — память. Магнитофонным треском будем радовать в конце.

Евгений фыркнул.

— И правильно, — сказал он. — Сначала — хлеб, потом зрелища.

Замдиректора пришёл без опоздания, что само по себе уже предвещало неприятности.

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

— Ну что, товарищи, — бодро сказал замдиректора, входя. — Посмотрим ваш учебный комплекс. Как там… «Сфера»?

— Учебно‑демонстрационный вычислительный комплекс БВП‑1, — поспешно подсказал Седых. — «Сфера‑80» — это условное название внутри коллектива.

— Какая разница, — отмахнулся замдиректора. — Главное — чтобы работало.

Его взгляд упал на телевизор.

— О, — сказал он. — Уже с экраном. Это хорошо. Молодцы.

Петров прищурился, задержался на магнитофоне.

— Учебный комплекс с магнитофоном, — тихо произнёс он. — Смело.

Алексей улыбнулся дежурной улыбкой.

— Магнитофон — как средство обучения, — спокойно сказал он. — Заменяет перфоленту. Гораздо доступнее для школ.

— Посмотрим, насколько, — сказал Петров.

Седых кашлянул.

— Алексей Николаевич, — сказал он деловым тоном. — Покажите товарищам, как у нас оператор работает. От ввода до решения.

«Пошёл спектакль», — отметил Алексей.

Он сел к клавиатуре.

Экран уже показывал привычный ``.

— Для начала — простая операция, — сказал он вслух. — Чтобы показать, что прибор выполняет арифметику.

Набрал:

2+2

Нажал «ВВОД».

Через миг под строкой появилось:

=4

Замдиректора удовлетворённо кивнул.

— Понятно. Просто. Любой школьник поймёт, — сказал он. — Это хорошо.

— А теперь, — сказал Алексей, — покажем, как оператор может подготовить машину к чтению программ с магнитной ленты.

Он обернулся к замдиректору:

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

Замдиректора это устроило.

Петров приподнял бровь.

— То есть, — уточнил он, — чтобы прочитать ленту, оператор должен помнить все эти… коды? Наизусть?

— Нет, — мягко сказал Алексей. — У оператора есть таблица. Вот она.

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

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

Петров усмехнулся.

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

Алексей начал вторую за день процедуру.

— «ЗП 0400,3E», — спокойно произнёс он.

Саша встал так, чтобы замдиректор видел экран, но не видел, как у него дрожат пальцы.

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

На десятом байте Петров неожиданно наклонился:

— А если оператор ошибётся? — спросил он. — У вас есть защита? Или он так и будет думать, что у него программа не считает, а на самом деле там цифра не та?

— Оператор проходит обучение, — ответил Алексей. — В учебных заведениях. У него будут контрольные листы. Как у наших монтажников. Ошибки будут находить на этапе ввода. Но это всё временное. Мы, как уже сказал, планируем вынести загрузчик в ПЗУ.

Евгений тихо кашлянул, пряча улыбку.

«Планируем…» — подумал Алексей. — «Теперь уже точно планируем».

Двадцать четыре байта закончились без сюрпризов. Седых чуть расслабился плечами.

— Теперь, — сказал Алексей, — включаем процедуру загрузки. Команда «ПРХ 0400». Загрузчик переходит к чтению с магнитной ленты, записывает массив в память. После чего мы демонстрируем запуск программы с ленты.

Он нажал «ВВОД».

Курсор исчез.

Тишина повисла на секунду, как перед грозой.

— Прошу включить магнитофон, — сказал Алексей.

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

Все уставились на экран.

На экране не происходило ничего.

Алексей считал про себя такты. Загрузчик не должен был ничего печатать, это было в проекте: он молча собирал биты. Но кое‑что должен был показать косвенно.

Слева, на маленьком осциллографе, должна была плясать кривая сигнала. Она не плясала. Её не было вовсе. На экране осциллографа тянулась почти ровная линия с редкими дрожащими шипами.

«Вот и приехали», — сухо отметил Алексей.

Он наклонился вперёд, не дёргаясь.

— Игорь, громкость на магнитофоне не трогали? — спросил он.

— Как в прошлый раз, — ответил Игорь. — Я ничего…

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

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

Он шагнул к задней стенке стенда. Разъём магнитофона торчал в гнезде, как надо. Жгут уходил внутрь. В месте пайки из‑под кембрика торчал тонкий блестящий ободок — как будто припой лёг поверх, а не вокруг.

Алексей аккуратно дотронулся пальцем до кабеля.

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

— Контакт, — сказал он тихо.

— Что? — не понял замдиректора.

— Плохой контакт, товарищ замдиректора, — всё тем же ровным голосом ответил Алексей. — Сигнал с магнитофона идёт, но в разъёме одна жила висит на честном слове. При малейшем шевелении пропадает. Загрузчик ждёт данные и не получает. Поэтому картинка не меняется.

Петров улыбнулся так, словно очень этого ждал.

— Вот видите, — сказал он, на этот раз уже громче. — Игрушка. Чуть‑чуть шевельнул провод — и всё. Ни тебе устойчивости, ни надёжности.

Он развернулся к замдиректору:

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

Седых побледнел.

— Игорь, выключите, — негромко сказал он.

Магнитофон остановился. Треск оборвался. В лаборатории стало слышно, как в коридоре хлопнула дверь.

— Алексей Николаевич, — голос Седыха стал сухим, бумажным. — Вы можете сейчас… без магнитофона… показать что‑нибудь ещё?

— Самотест ОЗУ, — ответил Алексей. — Арифметику. Табличные формулы. Всё, что не зависит от внешнего интерфейса.

— Покажите, — приказал замдиректора.

Самотест ОЗУ прошёл как по нотам: лампа «Контроль» мигала красиво, экран выводил привычные шаблоны. Арифметика тоже не подвела.

Но ощущение было уже другим. Как шутка, рассказанная после того, как в зале кто‑то громко кашлянул.

— В остальном прибор работает, — бросил Седых, уже как‑то оправдываясь. — Интерфейс с магнитофоном — новый узел, мы его дорабатываем.

Петров не возражал. Он смотрел на провисающий кабель с такой лаской, будто это был его личный аргумент.

— Я свои замечания уже оформлял, — мягко сказал он. — Добавлю про магнитофон. Всё в рамках заботы о качестве, товарищ замдиректора.

Замдиректора вздохнул.

— Ладно, — произнёс он. — В остальном — работа видна. Но с такими «подвешенными» кабелями в люди выпускать нельзя. Доведите до ума. И, Виктор Петрович, впредь такие демонстрации лучше готовить с запасом времени.

— Будет сделано, — резко ответил Седых.

Он дождался, пока начальство выйдет. Петров задержался в дверях, бросил через плечо:

— Хорошая штука для газеты бы вышла, жаль, не работает.

И исчез.

Тишина в лаборатории стала сперва вязкой, потом тяжёлой.

Саша стоял будто прижатый к стене. Отвёртка исчезла из его руки. Лицо побелело.

— Это я, — выдохнул он. — Я вчера спешил. Пайка не взялась, я подумал… Если кембриком поджать, оно и так держится…

Седых развернулся к нему резко.

— Вы думали, — голос звучал удивительно спокойно, — что кембрик заменит припой и совесть?

— Товарищ Виктор Петрович… — начал Саша.

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

Он повернулся к Алексею.

— Алексей Николаевич, — сказал он уже совсем другим тоном, сухим и жёстким. — С этого момента категорически запрещаю показывать магнитофон кому бы то ни было. Ни замдиректору, ни Кирсанову, ни тем более кому‑то из Первого отдела. Пока он не будет работать, как часы. Понятно?

— Понятно, — сказал Алексей.

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

Он замолчал, сделал паузу.

— Всё остальное, — добавил он уже чуть мягче, — вы делаете хорошо. Но этот ваш магнитофон… Он либо будет надёжнее наших перфолент, либо его не будет вообще. Иначе нас же и спросят.

— Проблема понятна, — сказал Алексей. — Разъём переделаем. Загрузчик — тоже.

Седых вскинул бровь.

— Загрузчик здесь при чём? — не понял он.

— При том, что пока у нас ручной ввод, каждый провал можно списать на человеческий фактор, — спокойно объяснил Алексей. — Оператор устал, перепутал байт, не сверился с таблицей. Это удобная отговорка. А нам нужен интерфейс, в котором оператор не может ничего перепутать. Включил магнитофон, нажал одну клавишу — остальное делает машина. Тогда, если что‑то пойдёт не так, виноват либо кабель, либо алгоритм. А не человек.

Седых долго смотрел на него.

— То есть вы хотите ещё и ПЗУ перепрошивать, — медленно произнёс он. — После того как мы только что отчитались, что оно у нас работает.

— Да, — сказал Алексей. — Но не сегодня. Сначала — железо. Нормальный разъём. Разгрузка кабеля, чтобы он не висел на пайке. Возможно — другой тип вилки. Потом — загрузчик в ПЗУ. Или хотя бы микропрограмма, которая сама набьёт эти двадцать четыре байта. Чтобы оператор не играл в счетовода.

Евгений вмешался:

— Я, кстати, за, — сказал он. — Ещё пара таких демонстраций, и Саша начнёт говорить шестнадцатеричными числами во сне. Нам такое не надо.

Саша попытался улыбнуться, не получилось.

Седых вздохнул.

— Делайте, — сказал он. — Только заранее предупредите, когда будете трогать ПЗУ. Я хочу, чтобы в этот момент у меня не было никаких комиссий. И помните: про магнитофон с этого дня забывайте. Пока я сам не скажу.

Он ушёл, хлопнув дверью чуть сильнее, чем требовалось.

Когда шаги стихли, воздух чуть полегчал.

Алексей подошёл к задней стенке стенда, аккуратно выдернул вилку разъёма. Подцепил ногтем кембрик, оттянул.

Тонкий провод под ним держался на крошечной серой чешуйке припоя. Стоило чуть качнуть — и он отвалился, присохшая канифоль хрупко зашуршала.

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

— Это не только твоя, — ответил Алексей. — Это наша общая. Мы лист контроля ввели для плат ядра, а про жгуты и разъёмы забыли. Значит, получаем урок.

Он положил вилку на стол.

— Слышал, как Петров говорил «игрушка»? — спросил он. — Вот давай сделаем так, чтобы даже при его желании он не смог это сказать по делу. Разъём будет на винтах. Кабель — в стяжке. Пайка — с нормальным обжатием. И отдельный пункт в листе контроля: «потрясти, дёрнуть, посмотреть на осциллограф». Пока линия не выдержит — не считается.

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

— Сделаю, — выдохнул он. — Можно я сегодня же останусь и перепаяю?

— Можно, — сказал Алексей. — Только сначала нарисуй схему. И напиши своим почерком: «старый разъём — в утиль, новый — по образцу». Чтобы завтра самому не забыть.

Он обернулся к Евгению:

— А ты, Жень, открой свою тетрадь с микрокодом. Нам нужен способ, чтобы загрузчик жил не только в Сашиной голове.

— Я знал, что этим кончится, — вздохнул Евгений. — Ну что ж. Можно в новой редакции будет сделать так: при специальной команде монитор сам запишет эти двадцать четыре байта в нужные адреса. Оператор набирает «ЗЛ» — «загрузить ленту» — и идёт пить чай. Всё остальное делает машина.

— Именно, — сказал Алексей. — А потом мы переедем в ПЗУ, когда добудем ещё один корпус. Но пока хотя бы так.

Он почувствовал, как внутри стукнула знакомая мысль: в другой жизни это было бы изменением в каком‑нибудь файле конфигурации. Здесь — неделя перепайки, ночи над микрокодом и снова набор байтов.

Но зато, если они это сделают, в следующий раз при словах «включите магнитофон» дёргаться будет не веко, а только стрелка осциллографа.

Позже, когда Седых ушёл окончательно, Люба зашла в лабораторию с двумя кружками чая.

— Ну как? — спросила она. — Очень ругали?

— По делу, — ответил Алексей. — Магнитофон под домашний арест. Пока не станет лучше перфоленты.

— Это возможно? — усмехнулась она.

— Если подходить не как к игрушке, — сказал он. — Мы привыкли, что всё, что вокруг магнитофона, — самоделка. Проводки на соплях, разъём с радиорынка. А теперь это часть прибора. Значит, к нему требования те же, что к блоку питания и плате ядра.

Он взял в руки обломившийся провод, повертел между пальцами.

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

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

Он посмотрел на тетрадь с аккуратным столбиком шестнадцатеричных чисел.

«Загрузчик. Редакция 0. Ручной».

— Пора делать редакцию первую, — сказал он вслух. — Без ручного шаманства. И разъём — тоже первой редакции.

— Скажешь, что рисовать? — спросила Люба.

— Скажу, — кивнул он. — Начнём с того, что перестанем доверять кембрику. Потом постепенно дойдём до того, чтобы перестать доверять памяти оператора. И, может быть, когда‑нибудь — перестанем доверять даже собственной.

Он улыбнулся краем губ.

— Вот тогда, может быть, и условному Мише из шестого «Б» достанется прибор, у которого при словах «включите магнитофон» ничего нигде не отваливается.

Люба тоже улыбнулась.

— Для этого, — сказала она, — надо, чтобы у нас к тому времени ничего не отвалилось.

— Значит, будем паять, — ответил он. — И писать.

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

Загрузка...