К книге
Проект «Сфера-82»: Цвет и слойГлава 23 Малая серия
49%
Глава 23 Малая серия
23

На следующий день Морозов задержал Громова и Птицына в кофейной комнате перед общим сбором. В плане здания она числилась складом списанных приборов и всё ещё напоминала кладовку: у стены стояли стеллажи из гнутого уголка, под окном — выцветший канцелярский стол, возле раковины теснились эмалированный чайник, ручная мельница и пузатая кофеварка с почерневшим тэном. На гвозде у двери висело полотенце с выцветшей синей каймой. Между жестяной банкой с зерном, блюдцем рафинада и пачкой сухого печенья стояла пол-литровая бутылка молока с фольгированной крышкой; кто-то принёс её утром и сразу поставил ближе к холодному стеклу.

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

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

— Бухгалтерия как раз хочет ещё пару машин, — ответил Морозов. — Седых просил. И АЦПУ к ним подключить.

Птицын поперхнулся кофе.

— Алексей Николаевич, у нас три машины. Одна у Седых, одна под цвет, одна у Евгения Александровича под Зеленоград.

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

Громов отпил кофе, поморщился от горячего и всё равно сделал второй глоток.

— На сколько комплектов у нас реально хватает деталей?

— Процессоры и часть плат есть с запасом, — сказал Морозов. — Полная машина упирается в набор микросхем К580, память, дисководы и нормальные корпуса. Сергеева попрошу добрать дефицитные детали через Зеленоград. А пока поднимаем сборку по декабрьскому стандарту: комплектовочная карта, монтаж, жгуты и порядок проверки идут один к одному с первыми тремя «Сферами-82».

Морозов постучал пальцем по блюдцу.

— Остаётся вопрос в людях. Кто нам эти «Сферы» соберёт?

— Нужны те, кто умеет держать паяльник и сможет сидеть над этим каждый день, — сказал Громов. — По часу между чужими поручениями серия не выйдет.

Птицын поставил чашку на блюдце.

— Володя Артемьев. Он в монтажной быстро соображает, у него пайка ровная. И Зоя Мельникова из бывшего КБ-2. Она детали держит в голове лучше ведомости: где кварцы, где разъёмы, какие панельки уже с нормальными ножками.

— Зоя с Любиными жгутами справится? — спросил Морозов.

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

Громов прищурился.

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

— Прочитает, — упрямо сказал Птицын. — Мы с ним в радиокружке две зимы за одним столом паяли. Володя схему чувствует.

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

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

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

* * *

Через полчаса Морозов привёл Володю Артемьева и Зою Мельникову в лабораторную половину КБ. Володя, худой парень в вытертом свитере, держал под мышкой тетрадь в клетку. Зоя несла коробку с панельками; на крышке уже лежали три бумажные полоски с её аккуратными пометками.

— Работа будет важная и непростая, — сказал Морозов. — Собираем малую серию «Сфер-82» по декабрьским схемам. Первые экземпляры идут разработчикам и на испытания. Потом бухгалтерия и печать. Нам нужны одинаковые машины, чтобы одна программа вела себя одинаково на каждом столе.

Он показал на дальний стол с разложенными платами.

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

Птицын сразу подвёл его к коробке с микросхемами.

— Садись сюда. Помнишь, как у нас в кружке приёмник оживал только после хорошего удара по корпусу?

— Тут тоже так?

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

Он развернул перед Володей лист: процессор К580, рядом микросхемы обмена, счётчики, шинные буферы, память, разъём дисковода, клавиатура.

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

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

Люба тем временем подвинула Зое монтажный лист и три жгута разной длины.

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

Зоя чуть улыбнулась.

— Люблю, когда железки лежат по порядку.

— Тогда мы поладим, — сказала Люба. — Здесь от порядка больше толку, чем от героизма.

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

* * *

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

Вторая «Сфера-82» стояла ближе к стене, на отдельном столе. Громов ещё вечером проверил её дисковод ИЗОТ, положил рядом пачку бумаги и тетрадь. Крышка машины была снята, обнажая плоские кабели; Громов время от времени поглядывал внутрь, словно проверяя ночное молчание железа.

Третья «Сфера-82» стояла в бухгалтерии у Седых, и это обстоятельство за утро уже дважды вспоминали недобрым словом.

Птицын появился у двери с кипой листов и конвертом для дискеты.

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

Громов оставил взгляд в тетради.

— Для обычного монитора — это как?

— Чёрно-белая вариация. Рамка по краю, центральные оси, сетка знакомест, шахматка, полосы через инверсию. Геометрию экрана видно сразу: где край съеден, где строка плывёт, где знакоместо кривит.

Морозов, входивший с папкой под мышкой, задержался у стола.

— Покажи.

Птицын сел за «Сферу-82» очень прямо, будто от осанки зависела надёжность программы. Дисковод коротко щёлкнул. На экране появилась тонкая рамка, затем крест по центру, потом плотная сетка. Громов придвинулся ближе и сразу ткнул пальцем в правый нижний угол.

— Тут край уходил бы первым. Хорошо. Теперь шахматку.

Птицын нажал клавишу. Экран мигнул и заполнился чередованием светлых и тёмных клеток.

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

Морозов посмотрел на Громова.

— Для стенда годится?

— Годится, — сказал Громов. — Саша, подпиши режимы и оставь рядом лист с порядком проверки. Потом по этому же скелету сделаешь цветную версию: поле, полосы, шахматка, признаки по знакоместам. Начал правильно.

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

Морозов придвинул стул, сел и открыл свою папку. Поверх зеленоградских рабочих выписок и распечаток на столе лежал большой картонный конверт с дискетой. На обложке конверта рукой Каца было выведено: «Рабочая копия. Формат НЦ. Хранить особо».

Громов посмотрел на надпись и усмехнулся.

— Грозно написано, — сказал он. — Давай сначала узнаем, читается ли она.

Громов раскрыл свою тетрадь. На первом развороте уже стояла грубая схема памяти «Сферы-82»: нижняя область для МикроДОС, дальше рабочая память программы, отдельно экранная область, сверху — короткие служебные буферы. Против свободного места стояла жирная пометка: «мало».

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

— Значит, читаем слой кусками.

— Кусками, — кивнул Громов. — Последовательный файл с диска читаем порциями, как договаривались. Подозрительные места складываем в отдельный список. Но это всё базовые функции. Чтение, буфер, разбор записи, контроль, вывод ответа. Это я понимаю.

Он перевернул страницу. На следующем листе было другое: прямоугольники, стрелки, номера слоёв, зазоры. Карандашные линии сбивались в плотную кашу.

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

Он постучал карандашом по листу.

— Я могу сделать быстро. Но если мы начнём всё это пришивать к машинным командам, через неделю сами потеряем понимание, где у нас правило технолога, а где мой обход тесной памяти. Ошибка Ланской станет похожа на ошибку Громова. Это плохой путь. Есть ещё микробейсик, но он — интерпретатор, а значит, медленный.

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

— Вот поэтому делим работу, — сказал он. — Ты пишешь машинную часть: дисковод, буфер, контрольное число, разбор строки, выдача результата. На ассемблере. Там каждый байт на счету и каждый лишний переход будет слышен.

Громов прищурился.

— А середину?

— Середину пишу я.

Несколько секунд Громов смотрел на него с каменным лицом.

— Ты.

— Я.

— На чём?

Морозов достал из папки вторую дискету, с пустой стороной конверта, в обычном бумажном конверте.

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

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

— Я всё ещё пытаюсь понять, когда ты успел стать программистом.

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

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

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

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

Громов медленно сел.

— Покажи.

Морозов ответил делом. Он сбросил «Сферу-82», дождался короткой строки начального пуска и запустил МикроДОС в исходном, англоязычном режиме. На черно-белом экране возникла сухая строка приглашения. Громов придвинул стул ближе и оперся локтем о край стола.

Сначала они проверили вторую дискету. Дисковод несколько раз коротко щёлкнул, головка шагнула по дорожкам, и на экране появился каталог файлов. Громов наклонился вперёд.

— Живой.

— Тише.

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

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

«X1, Y1, ×2, Y2, слой, правило».

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

— Ланская тебя за это прибьёт.

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

Морозов начал вводить текст программы. Он печатал медленнее, чем Громов набирал код на ассемблере, но странно ровно: сначала имена полей, потом одна короткая подпрограмма чтения прямоугольника из буфера, потом функция проверки пересечения по двум осям. В обозначениях держался один порядок; каждая новая строка вставала на место, будто в голове у него уже лежала готовая литейная форма, а теперь он только заливал её металлом.

Громов молчал. Потом придвинулся ещё ближе.

— Стой. Ты два раза используешь одну и ту же проверку.

— Именно.

— Для X и для Y?

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

— А если прямоугольник длинный, через пол-участка?

— Тогда он попадает в несколько полос.

Морозов нарисовал рядом с таблицей вертикальные линии.

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

Громов забрал у него карандаш и сам дорисовал две полосы.

— Список будет расти.

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

— Если файл отсортирован.

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

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

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

— Да.

— И на Си это будет читабельно.

— Должно быть.

— А потом я самые медленные места перепишу на ассемблере.

— Когда увидим, что именно медленно.

Громов помолчал, потом тихо рассмеялся.

— Вот это, Алексей Николаевич, уже похоже на преступление против моей профессиональной гордости.

— Почему?

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

Морозов пожал плечами.

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

— Ты опять про свои чайники?

Морозов покосился на него.

Громов улыбнулся шире.

— Извини. Я всё ещё привыкаю, что человек, который рисовал микросхемы для чайников, теперь учит меня экономить машинное время для Зеленограда. Голова сопротивляется.

— Чайник тоже плохо переносит, когда у него на кристалле зазор пропал.

Громов коротко фыркнул, уже с другой интонацией.

— Ладно. Пиши дальше.

Они работали почти два часа.

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

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

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

— Это инструкция как для школьников? — спросил Птицын.

— Это из опыта всех, кто когда-нибудь сидел перед молчащей машиной, — сказал Громов, глядя в экран. — Иди, Саша. У тебя хорошая задача. Не порть её лишней умностью.

Птицын ушёл довольный.

К полудню первая программа Морозова заработала, но пока только с пробным участком топологии. Она читала короткий искусственный набор из семи прямоугольников, занесённых вручную в простой текстовый файл. Два прямоугольника были безопасны. Один нарушал зазор. Один лежал на другом слое и должен был пройти мимо проверки. Ещё один был вписан с ошибкой в координате, чтобы проверить, поймает ли программа неправильный порядок углов.

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

— Первым программам я доверяю с карандашом в руке, — сказал он. — Особенно чужим.

— Моим?

— Любым. Своим меньше всего.

Морозов запустил трансляцию. «Сфера-82» задумалась. Дисковод щёлкал короткими сериями, потом надолго замолкал. На экране сменялись сухие строки сообщений транслятора. Один раз машина выдала ошибку, и Громов тут же ткнул пальцем в строку.

Морозов исправил строку. Второй прогон дошёл до конца. Объём получившейся программы Громова огорчил; он сразу выписал на полях, какие куски потом надо будет заменить машинным кодом. Но программа запустилась.

На экране появились четыре строки:

«READ 7»

«CHECK 5»

«BAD GAP 3»

«BAD ORDER 6»

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

— Номера совпали, — сказал Морозов.

— На игрушечном наборе.

— На проверочном наборе.

— Рамки опыта. Снова в ход пошли твои словесные фокусы.

— Хорошо. На семи строках.

Громов взял бумажный лист с ручным расчётом и положил рядом с экраном. Потом аккуратно обвёл карандашом две строки: третью и шестую.

— Семь строк — это семь строк, до Зеленограда ещё далеко, — сказал он. — Но я понял. Середина должна быть такой. Чистой. Чтобы Ланская могла посмотреть правило и сказать: здесь вы поняли технологию, а здесь придумали за неё.

Морозов кивнул.

— А твоя часть должна сделать так, чтобы эта середина получала данные без ручной набивки.

— Получит, — Громов уже перевел взгляд с экрана в свою тетрадь. — Я сделаю программу чтения последовательного файла. Без попытки глотать весь слой. Буфер на несколько записей, проверка контрольного числа, перевод координат в твой внутренний вид. На выходе — такой же простой набор, только из рабочей дискеты вместо семи строк.

— И ведомость замечаний.

— Да. Структуру ведомости надо взять у Липатова.

Морозов провёл ладонью по лицу и снова наклонился к листу.

— Значит, после обеда зовём Липатова.

— После обеда ты покажешь мне, как эта штука работает с таблицей допусков.

— Ты же только что сказал, что поверил.

— Я сказал, что понял середину. Это разные вещи.

После обеда лаборатория стала тише.

Олег с Наташей унесли одно шасси вместе с ЛАТРом в соседнюю комнату, чтобы оставить остальным тишину. Люба ушла к кладовщице сверять список недостающих деталей. Птицын сидел на подоконнике с тетрадью и переписывал проверочные картинки уже в виде последовательности действий для будущей служебной программы: очистить экран, вывести поле, подождать нажатия, сменить признак, снова подождать. Громов ему велел писать так, чтобы через неделю он сам понял, что имел в виду.

У «Сферы-82» остались Морозов и Громов.

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

Громов, глядя на таблицу, недовольно постукивал пальцем по краю стола.

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

Морозов придвинул к себе лист и написал сверху: «таблица правил».

— Данными, а не исключениями.

— Объясни.

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

Громов смотрел на лист с явным недоверием.

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

— Таблица задаёт условия. Мы задаём ей условия опыта. Это обычная инженерная аккуратность: что проверяем, по какому правилу, с каким допуском.

— На Си это удобно.

— На ассемблере тоже можно, но чуть больнее.

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

— Слово «больнее» принимается как техническое.

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

— А если правило отсутствует?

— Пропускаем проверку и пишем в ведомость: слой без описания.

— Это будет выглядеть как отказ программы.

— Это рамки опыта. Мы прямо записываем: для этого слоя правило ещё отсутствует.

Громов поднял палец.

— Рамки опыта. Сам же запретил мне эти красивые слова.

Морозов зачеркнул свою запись и написал: «правило в таблице отсутствует».

— Согласен.

— А если запись повреждена?

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

— А если контрольное число сошлось, но координаты бессмысленные?

— Тогда моя часть выдаёт замечание о порядке координат. Как шестая строка утром.

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

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

Громов откинулся на спинку стула и положил карандаш на стол.

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

Морозов отодвинул клавиатуру.

— Потому что до сих пор у нас было много людей, которые лучше меня писали на здешних машинах. Ты, например.

— Ответь прямо.

— Отвечаю прямо. На твоём ассемблере я пишу плохо. С ним я как в чужом теле. Я бы потратил больше времени и всё равно сделал хуже. А Си — другое дело. Он ближе к тому, как я привык раскладывать задачу: данные отдельно, правило отдельно, машинная хитрость отдельно.

Громов молчал.

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

— А ассемблер?

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

Громов усмехнулся, но взгляд у него стал серьёзным.

— Фортран умрёт?

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

— Дальше чайников?

— Намного дальше чайников.

Громов взял карандаш, покрутил его в пальцах.

— Значит, я его недооценивал.

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

— Ножом, значит.

— Именно инструментом, — сказал Морозов.

Громов снова посмотрел на экран. Там стояли сухие строки второго прогона:

«READ 10»

«RULES 2»

«CHECK 8»

«NO RULE 1»

«BAD GAP 1»

— Ладно, — сказал он наконец. — Делаем так. Ты пишешь проверку правил и таблицу допусков. Я пишу чтение зеленоградского файла, буферы и выдачу ведомости. Когда у тебя появится медленное место, я заберу его в машинный код. Когда у меня появится непонятное правило, ты объяснишь его на человеческом языке, а потом мы понесём Ланской и дадим ей разнести нас по делу.

— По делу можно.

Громов придвинул к себе чистый лист и в верхней строке вывел:

«СЛОЙ-81. Рабочее деление программы.»

Ниже он написал три пункта.

Первый: «Чтение НЦ и контроль записи — Громов».

Второй: «Проверка геометрического правила — Морозов».

Третий: «Ведомость замечаний — совместно с Липатовым».

Он немного подумал и добавил четвёртую строку: «Служебные программы КБ — Птицын, под отдельным присмотром».

— Чтобы Саша из обиды не полез туда, где ему рано, — пояснил он.

— Хорошо.

Громов ещё раз посмотрел на экран и вдруг сказал уже совсем иначе:

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

Морозов ответил не сразу.

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

— Ремесло и спасает, — сказал Морозов. — Без него всё остальное — просто слова.

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

— Тогда завтра начну с программы чтения файла. А ты свою таблицу правил оставь здесь. Я хочу вечером ещё раз посмотреть, где твой Си раздувается.

— Хорошо.

— И сам транслятор оставь мне.

— Уже заинтересовался?

— Я его буду ругать профессиональнее. Для этого надо знать предмет.

Морозов улыбнулся, но промолчал.

На экране «Сферы-82» светились пять строк отчёта. Теперь у «СЛОЙ-81» появились две части: машинная, за которую отвечал Громов, и проверочная, написанная Морозовым.

Громов погасил экран, оставив машину включённой, и накрыл клавиатуру чистым листом бумаги. На листе он крупно написал: «ВКЛЮЧЕНО. ОСТАВИТЬ ДО УТРА».

Птицын, проходя мимо, остановился и прочитал надпись.

— Уже работает?

— Уже ошибается правильно, — сказал Громов. — Для первого дня этого достаточно.

Предыдущая главаГлава 23 из 47Следующая глава