Глава 4 Окно возможностей

— … в кружках своими руками соберут, — закончил Михалыч. — Тут каждую железку через снабжение выбивать надо.

Алексей едва заметно дёрнулся от слова «кружки». Мозг послушно подкинул картинку из девяностых: радиокружок, столы, заставленные самодельными «Радио‑86РК», запах канифоли и подгоревшего лака. Мальчишки в свитерах, гордо называющие эти коробки «своими ЭВМ».

Он отогнал воспоминание.

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

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

Алексей посмотрел на плату, на стоящий рядом макет, на аккуратную схему у Любы.

— Давайте так, — сказал он. — Я сделаю эскиз. Не разводку сразу, а структуру. Как это могло бы выглядеть, если разбить на блоки. Магистраль, отдельная плата арифметики, отдельная — памяти, отдельная — интерфейс к индикаторам и клавиатуре. Без фанатизма, на тех же К155. Покажу вам. Если скажете «ерунда» — выбросим кальку и забудем. Никаких лишних работ.

Михалыч прищурился.

— Калька — она, конечно, не дефицит, — проворчал он. — Хотя и её сейчас через склад выбивай… Ладно. Рисуй. Только без этих, — он ткнул пальцем в воздух, — без ваших модных иностранных слов. У нас не «компьютер», а прибор. Э‑В‑Эм.

— Понял, — кивнул Алексей. — Будет ЭВМ. Табличная.

— Вот и отлично. — Михалыч захлопнул крышку макета. — Ветрова, смотри за ним. Если начнёт совсем уж в космос улетать — тяни обратно к земле.

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

* * *

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

В КБ‑3 всё ещё горел свет.

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

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

— Так, — сказал Алексей, отбрасывая взглядом очередной лист. — Давайте попробуем ещё раз, но без красивостей. Самое простое, что может летать.

Он положил на кульман свежий лист кальки, прижал по углам металлическими шайбами. Карандаш привычно лёг в руку.

— Без красивостей — это по‑нашему, — отозвалась Люба. — Главное, чтобы работало.

— Главное, чтобы потом можно было добавить, — поправил он.

Люба вздохнула, но промолчала.

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

— Напомните ещё раз, — сказала она, переворачивая лист со схемой Фролова. — Что вы хотите от этого… — она поискала слово. — От этого чудовища.

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



— Магистраль, — кивнула Люба. — Мы же уже говорили.

— Говорили, — согласился он. — Но одно дело — говорить, другое — нарисовать так, чтобы Михалыч не возненавидел нас окончательно.

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

— Вот это, — сказал он, — наша шина. Магистраль. Пусть будет… — он на секунду задумался. — Шестнадцать адресных линий и восемь линий данных.

— Зачем шестнадцать? — тут же спросила Люба. — Вариант Фролова адресует всего одну плату, там и восьми хватает с головой.

— С восьмью вы адресуетё только две‑три микросхемы памяти и пару регистров, — ответил он. — А если вдруг через три года кто‑то скажет: «давайте удвоим объём памяти»? Что мы ему скажем?

— Что пусть уходит в другое КБ, — мрачно пошутила Люба. — У нас и так дефицит микросхем.

— Вот чтобы не уходил, — усмехнулся Алексей, — мы сейчас оставим запас. Шестнадцать линий адреса — это пространство для… — он чуть не сказал «шестидесяти четырёх килобайт», вовремя остановился. — Для достаточно большого количества ячеек. Для наших скромных задач хватит с большим запасом.

Люба чуть помедлила, затем кивнула:

— Хорошо. Шестнадцать. Рисуйте.

Он схематично обозначил над линией прямоугольник:

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

Рядом набросал ещё два прямоугольника, подписал «Память данных» и «Память программ».

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

— Память программ… — Люба задумчиво вывела на полях «ПЗУ?» и «ОЗУ?».

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

Люба скептически хмыкнула:

— «Разрешат» — хорошее слово. Кто нам разрешит? Первый отдел?

Алексей пожал плечами:

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

— Они же схему всё равно увидят, — возразила Люба. — Подписывать будет кто‑то из них. Если там будут какие‑то непонятные узлы, спросят.

— Поэтому узлы будут понятные, — сказал Алексей. — Только называться правильно. — Он улыбнулся. — Я ещё в своём… прошлом месте работы видел, как один и тот же блок можно назвать либо «модуль удалённого доступа», либо «устройство для резервного копирования конфигурации». От названия очень зависит, сколько вопросов зададут.

Люба не сразу ответила. Потом аккуратно положила карандаш, взяла со стола папку с ТЗ, раскрыла на середине.

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

— Прекрасный пункт, — сказал Алексей. — Широкий, как Волга. В него очень многое помещается.

Он наклонился к ней, чуть не соприкоснувшись плечом, провёл пальцем по строчке.

— «Табличные расчёты» — это ведь не только бухгалтерия. Это вообще всё, что можно представить в виде таблицы. Допустим, у нас есть таблица, где каждый столбец — это набор какой‑то формулы. В одной ячейке — исходные данные, в другой — результат вычислений. И где‑то есть место, где написано, что к чему прибавлять.

— Это у вас уже не бухгалтерия, — заметила Люба. — Это… это… алгоритмы.

— Алгоритмы, — согласился он. — Но если мы их будем называть «формулы», никто не обидится. В документации напишем: «режим табличных формул с адресацией ячеек». А внутри у нас получится… — он чуть улыбнулся. — Нечто, очень похожее на язык программирования.

Люба сняла очки, протёрла платочком, снова надела.

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

— Не произвольные, — возразил Алексей. — В пределах ТЗ. Сложение, вычитание, умножение, деление, запись в ячейку, чтение из ячейки. Всё как положено. Просто мы выдадим пользователю чуть больше свободы комбинировать это. Там, где сейчас у Фролова жёстко прописано «сначала сложить, потом умножить», мы дадим возможность сказать: «если в этой ячейке ноль, то прыгни в начало». А на бумаге это всё равно будет «табличная формула» — условная.

Люба уставилась на схему, потом на него:

— «Прыгни в начало» — это уже ветвление.

— Слово‑то какое страшное, — вздохнул Алексей. — Ветвление. Напишем «перескок по условию». Или «выбор режима расчёта». Главное — чтобы органы формально были довольны.

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

— А вам не страшно? — спросила Люба наконец. — Вы пришли месяц назад, сразу вам дали этот БВП‑1… вы тут уже какие‑то шины, магистрали, ветвления. Если наверху спросят, кто это предложил — Михалыч на кого покажет? На вас.



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

Вслух сказал другое:

— Мне страшно, когда получается совсем бесполезная вещь. Бухгалтерский калькулятор, которых через пять лет навыпускают вагон. А нам останутся только дырявые стулья и списанные ТЗ. — Он постучал костяшками по кульману. — Если мы можем сделать прибор, который проживёт дольше, чем очередной план пятилетки, грех этим не воспользоваться.

Люба криво усмехнулась:

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

«Хотелось бы», — мелькнуло у него.

Он вернулся к схеме.

— Смотрите, — сказал он. — Вот тут, сбоку от магистрали, я рисую ещё один прямоугольник. — Он обозначил его как «Порты ввода/вывода». — Это, с точки зрения ТЗ, всего лишь «блок сопряжения с внешними устройствами для испытаний и наладки». Мы честно напишем так в пояснительной записке. Но если к нему припаять, скажем, разъём под телевизор…

— ВКУ, — машинально поправила Люба.

— Под ВКУ, — согласился Алексей. — То мы сможем в каком‑то «расширенном режиме табличных формул» выводить не только цифры на индикаторы, но и, скажем, строчки текста на экран. Это будет очень удобно для учёбы. Для домов пионеров, для школ. Это же чистое благо, верно?

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

— Романтик, — сказала она. — У нас ВКУ сами по себе дефицит. Вы сначала микросхемы на память выбейте.

— Про память я как раз сейчас думаю, — отозвался он.

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

— Что это? — тут же спросила Люба.

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

Люба посмотрела на него так, будто он предложил в прибор встроить маленький радиоприёмник «Океан» и слушать на нём «Голос Америки».

— Вы понимаете, что если где‑нибудь в снабжении узнают про «площадки под дополнительные микросхемы», нас заставят их сразу забить? — сказала она. — Иначе скажут, что мы скрываем комплектующие.

— Поэтому в спецификации они не будут отдельной строкой, — спокойно ответил Алексей. — Будут входить в ту же плату. «Плата памяти, единица — две штуки». Сколько микросхем реально поставим — другой вопрос. Главное, чтобы дорожки и отверстия были.

Он чуть‑чуть замолчал, и в это мгновение память, как назло, подкинула ещё один кусок юности.

Коммунальная кухня. На столе — разобранный БК‑0010, вывернутый наружу, как ракушка. Рядом — пучок разноцветных проводов, впаянных прямо в ножки процессора. Паяльник, воткнутый в вилку через раскоряченный тройник. На стене — трещина, под ней — табуретка с обугленным сиденьем: прошлый раз неудачно уронил туда припой.

Тогда, в девяносто каком‑то, он пытался расширить память БК до фантастических по тем временам ста двадцати восьми килобайт. Заводом такое не предусматривалось. Пришлось отрывать дорожки, подпаивать отдельную «надстройку», натягивать перемычки. Каждый раз, когда кто‑то задевал ногой корпус, вся эта конструкция начинала жить своей жизнью.

Он очень хорошо помнил, как стоял ночью на кухне, смотрел на очередной зависший зелёный экран и думал: «Кто вас учил так проектировать, ребята?»

Теперь судьба любезно высунула ему язык: «Теперь тебя учат, Алексей Николаевич. На здоровье».

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

— Что? — не расслышала Люба.

— Ничего, — отмахнулся он. — Профессиональная деформация. Продолжим.

Он обвёл пунктиром места под дополнительные банки памяти, рядом мелко подписал: «резерв».

Люба какое‑то время молча смотрела, потом медленно кивнула:

— Если это всё аккуратно нарисовать и правильно подписать… Может, пройдёт. — Она прищурилась. — Только с ТЗ всё равно придётся согласовывать. И с Натальей Сергеевной.

— Наталья Сергеевна — наш человек, — уверенно сказал Алексей. — Она любит, когда всё «по ГОСТу» и «на перспективу». Мы ей скажем: «Вот, предусмотрели резерв под модернизацию для будущих серий, чтобы не обновлять документацию каждые два года». Она расплывётся от счастья.

Люба усмехнулась:

— Вы меня пугаете. Такое ощущение, что вы уже не первый раз защищаете ТЗ перед министерством.

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

— Бывает, — сказал он вслух. — В прошлой жизни приходилось.

— В прошлой? — переспросила она.

— В прошлой работе, — поправился он. — Не обращайте внимания, оговорился.

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

— Ладно, — сказала Люба. — Допустим, с памятью я ещё готова спорить. А что насчёт ваших… как вы там говорили… «языков программирования»?

— Я говорю про удобный режим набора формул, — невозмутимо ответил Алексей. — Смотрите.

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

— Вот это — таблица. Каждая клеточка — ячейка. У каждой — свой адрес. Допустим, А‑один, А‑два, В‑один… — Он поймал её взгляд. — Ладно, не будем писать буквы. Просто номера: 01, 02, 03…

— Это я понимаю, — кивнула Люба. — У нас в плановых отделах любят такие таблички.

— Отлично. Значит, каждая ячейка может содержать либо число, либо «формулу». Формула — это последовательность операций, которые наш прибор и так умеет: сложить две ячейки, записать результат в третью, умножить, поделить… Всё по ТЗ. Мы просто позволяем в формуле ссылаться на другие ячейки. Получается цепочка. Если дать пользователю возможность менять эту цепочку, он сможет решать разные задачи.

Люба нахмурилась:

— Но тогда… — она поискала слова. — Тогда он может сделать что‑нибудь совсем другое, не предусмотренное инструкцией. Вы же именно этого хотите?

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

— Пока, — мрачно добавила Люба.

Он рассмеялся:

— Если за это начнут сажать, нам уже никакой прибор не поможет.

Она тоже улыбнулась, хоть и сдержанно.

— Хорошо, — сказала Люба. — Допустим, я с вами где‑то на шестьдесят процентов согласна. — Она подняла на него глаза. — Но как вы это всё собираетесь назвать? В документации. Если вы принесёте на утверждение схему с блоком «магистраль», блоком «память программ» и блоком «порты ввода‑вывода», Седых нам всё это вернёт, не читая.

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

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

Он поднял глаза:

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

Люба медленно кивала, по мере того как он говорил.

— То есть… — подытожила она. — Снаружи у нас — «табличный вычислитель». В документации — «блок хранения табличных формул» и «контрольные точки для измерительной аппаратуры». А внутри — маленькая ЭВМ.

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

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

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

— Инженер без чувства юмора долго не живёт, — серьёзно ответил он. — Его либо техника добьёт, либо начальство.

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

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

— Это что? — тут же спросила Люба.

— Центр управления, — сказал Алексей. — Здесь будут всё согласовывать: кто когда говорит на шину, чтобы не орали все одновременно. — Он прикинул в уме возможную логику арбитража, но решил не грузить её подробностями. — Назовём… Центральный управляющий блок. ЦУБ.

— У нас что, ещё один аббревиатурный монстр? — хмыкнула Люба. — ЦУБ… как зуб.

— Зато запоминается, — пожал плечами он. — И никаких англицизмов.

В углу кальки он машинально вывел: «Учебно‑демонстрационный вычислительный комплекс». Посмотрел, прикусил губу и добавил мелко: «тип 80».

— Восемьдесят? — насторожилась Люба. — Откуда восемьдесят? У нас же семьдесят шестой на дворе.

— Просто номер варианта, — беззаботно ответил Алексей. — БВП‑1, вариант проектный… — он сделал вид, что считает. — Пусть будет восьмидесятый. Сороковые уже заняты чем‑то, наверное.

Люба прищурилась, но ничего не сказала. Взяла карандаш, аккуратно зачеркнула «тип» и рядом прописала: «внутреннее обозначение, вариант 80».

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

«Я бы не возражал», — подумал он.

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

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

На листе была вовсе не красивая, чистая схема для отчёта. Кривоватые линии, подписи наспех, кое‑где отпечатки испачканных в чернилах пальцев. Но в этих прямоугольниках и стрелках уже угадывалось нечто другое, нежели чем «честный калькулятор на К155».

Магистраль, память, блок программ, порты, ЦУБ. Маленькая ЭВМ, маскирующаяся под «табличный вычислитель».

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

— Ну что, — сказала Люба, тоже глядя на лист. — Покажем завтра Михалычу?

— Покажем, — кивнул Алексей. — И Наталье Сергеевне надо будет занести. Пусть подумает, как это оформить, чтобы ни один ГОСТ не пострадал.

— А если не пропустят? — спросила она уже в дверях, надевая лёгкое пальто.

Он пожал плечами:

— Тогда рисуем ещё раз. Пока бумага не кончится.

Она усмехнулась:

— Бумага у нас — вечная проблема. Но ради такого… — Люба посмотрела на кальку ещё раз. — Ради такого можно и в буфете экономить на пирожках.

Когда за ней закрылась дверь, Алексей ещё немного посидел один. Радио «Маяк» уже замолчало, где‑то вдали потрескивал трансформатор подстанции. Институт засыпал.

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

«Ладно, — подумал он. — Домашний компьютер для СССР — это, конечно, громко. Пусть пока будет табличная ЭВМ для бухгалтерий и школ. Главное, чтобы внутри ей не было стыдно через десять лет смотреть людям в глаза».

И впервые за многие дни он поймал себя на том, что ему не просто «надо выполнить ТЗ к сроку», а по‑настоящему интересно дожить до того момента, когда этот коробок окажется на чьём‑то столе.

Загрузка...