Сдвинутые вместе столы образовали длинный остров, разделивший помещение надвое.
На этом острове ровным строем стояли пять свежесобранных корпусов из новой опытной партии на пятнадцать машин. Три корпуса уже получили дисководы. Две машины намеренно оставили без локальных накопителей, готовя к чистой проверке загрузки по сети.
Морозов стоял у окна, скрестив руки на груди, и молча смотрел на эту шеренгу. Три самых первых рабочих стенда, собранных еще зимой, так и остались лабораторными образцами, вечно обрастающими новыми проводами. Теперь перед ним выстроился первый одинаково учтенный ряд. Малая серия, доведенная до паспортного состояния.
Михалыч прошел вдоль столов, тяжело ступая по истертому линолеуму. Остановился у крайнего левого корпуса и хлопнул ладонью по матовой крышке.
— Вот эта — первая, — голос Михалыча легко перекрывал гул приборов за стеной. — Первая по ведомости.
Володя, стоявший по ту сторону стола, подался вперед и потянулся к кромке открытого шасси.
— Иван Михайлович, я сначала плату посмотрю. Там она до конца на стойки не села, кажется…
— Сначала бирка, потом плата, — отрезал Михалыч, — Машина без бирки через неделю станет сиротой. Открутишь плату, отвлечешься, положишь рядом с другой, и ищи потом, где чей дефект. За ними еще десять комплектов пойдут, запутаемся в два счета.
Зоя сидела на высоком табурете у торца стола. Перед ней стопкой лежали чистые бланки паспортов, отпечатанные на желтоватой бумаге, и картонные бирки с суровыми нитками. Она сняла колпачок с шариковой ручки и аккуратно, чертежным шрифтом, вывела первую цифру. Стержень чуть слышно скрипнул по картону.
— Первые пять машин из пятнадцати, — не поднимая головы, произнесла она. Паста ложилась ровно, въедаясь в рыхлый картон. — Пять базовых комплектов.
Морозов отлепился от подоконника и шагнул к столам.
— База у всех одинаковая, — подтвердил он, глядя, как Зоя привязывает бирку к прорези охлаждения на задней стенке первой машины. — Разница только в периферии.
Михалыч удовлетворенно кивнул, достал из кармана пиджака огрызок карандаша и сделал пометку в блокноте.
— Хватит лирики. Люба, бери Володю, идите проверять платы. Зоя, пиши паспорта на оставшиеся четыре.
Ряды черных микросхем оперативной памяти на плате тускло поблескивали золотистыми ножками под лампами дневного света. Володя осторожно, двумя пальцами, приподнял край текстолита.
— Красиво смотрится, когда все места заняты, — негромко произнес он и провел пальцем над черными корпусами. — Шестьдесят четыре килобайта. Влезет и система, и еще место останется.
Люба подошла к столу. Положила тяжелый стрелочный тестер и поправила очки на переносице.
— Красиво будет после прогона, Володя, — сказала она, — Опускай на место. Будем прозванивать цепи перед подачей питания.
Володя послушно опустил плату на крепежные стойки. Раздался легкий стук текстолита о шасси.
Зоя, не слезая с табурета, придвинулась с планшетом ближе и водила колпачком ручки по рядам микросхем, сверяя маркировку с накладной. Нахмурилась, остановила руку и наклонилась еще ниже к плате, щурясь.
— Иван Михайлович, тут две микросхемы по маркировке отличаются, — неуверенно произнесла Зоя, указывая колпачком. — У них месяц выпуска другой, и шрифт немного мельче.
Михалыч, проходивший мимо с коробкой крепежа, остановился. Он подошел к столу, навис над платой и долго рассматривал крошечные цифры.
— В паспорт, — скомандовал он. — И карандашом на бирку. Прямо на картонке пиши: память — смешанная партия.
Володя удивленно посмотрел на начальника, не отрывая рук от шасси.
— Иван Михайлович, это же одна серия. Если тест пройдет, разницы ведь нет? Электрически они идентичны.
Люба вздохнула. Переключила тестер в режим омметра, прижала минусовой щуп к шине заземления, а плюсовым коснулась линии питания на плате. Стрелка тестера отклонилась, показывая сопротивление — короткого замыкания нет.
— Сейчас, на прозвонке, чисто, — Люба посмотрела на Володю поверх очков. — А когда закроем крышку и плата прогреется, начнется дрейф. У микросхем из разных партий разные температурные допуски. Эти чужие корпуса при нагреве «поплывут» первыми и начнут сыпать мусором на шину.
Зоя аккуратно вывела примечание в паспорте третьей машины.
— Значит, первую мы пока считаем эталоном, а за третьей придется следить? — осторожно уточнила она, сдувая пылинку с бумаги.
Михалыч довольно крякнул. Он похлопал Зою по плечу так, что табурет под ней скрипнул.
— Вот. Начинаешь понимать производство. Брака еще нет, а слабое место мы уже задокументировали. Закончили с маркировкой — подавайте питание на плату.
На участке Олега и Наташи на массивном столе стоял телевизор. Кинескоп тускло светился серым растром. Внутренности телевизора, ощетинившиеся платами и высоковольтными проводами, нависали над плоским шасси «Сферы-82».
Олег взял толстый кабель с металлическим разъемом на конце и вставил в гнездо на задней панели машины.
— Давай картинку, — бросил он через плечо.
Птицын, сидевший за клавиатурой «Сферы», нажал клавишу сброса. Экран телевизора дернулся, по нему пробежала широкая черная полоса, и серый фон сменился четкими рядами символов.
— Края букв не плывут? — Олег прищурился, указывая концом диэлектрической отвертки на экран. — Если пойдет бахрома, сразу шевели кабель. Разъем мы тут временно припаяли, может не контачить.
Птицын присмотрелся. Буквы стояли ровно, но сам текстовый блок медленно, едва заметно пульсировал.
— Есть легкая пульсация, — заметил он, убирая руки с клавиатуры.
Наташа стояла сбоку, уткнувшись взглядом в зеленый экран осциллографа. По сетке прибора бежала характерная гребенка кадровых синхроимпульсов.
— Синхроимпульс немного плавает, — не отрываясь от прибора, ответила она, чуть повернув ручку развертки. — Сначала проверим контрольную точку на выходе машины. Если наш импульс чистый, с ровными фронтами — значит, проблема в телевизоре. Если завален — значит, мы сами гоним брак.
Зоя подошла к ним, держа наготове планшет с паспортом четвертой машины.
— В паспорте писать «дрожит»? — спросила она, занеся ручку над графой «Отметка о приемке видеовыхода».
Олег повернулся к ней и прокрутил отвертку в пальцах.
— Писать надо так, чтобы завтра понять, что именно мы видели. «Вертикальная синхронизация уходит после прогрева» — это диагноз. Его можно проверить. А «дрожит» — это лирика.
Наташа согласно кивнула, фиксируя показания на осциллографе.
— И время прогрева указывай обязательно. Пять минут, десять, двадцать. Напиши: «Растр стабилен, дрожание в пределах нормы, синхроимпульс 4.8 вольта».
Зоя быстро застрочила по бумаге. Олег перекинул кабель на следующую машину.
Громов подошел к сборочному столу, на ходу закатывая рукава рубашки. На куске поролона, проложенном для защиты от вибраций, лежали четыре угловатых блока дисководов ИЗОТ. Тусклый штампованный металл корпусов холодил пальцы, когда Женя опустил ладонь на верхний привод и с сухим, резким щелчком проверил пластиковый замок дверцы. Механика отозвалась приятной тяжестью.
Зоя склонилась над краем столешницы. Она аккуратно разглаживала бумажную бирку с инвентарным номером на ребристом кожухе первого дисковода, следя, чтобы края не задирались.
— Четыре свободных, — констатировал Громов, оглядывая стопку. — Из пяти один уже крутится на восемьдесят второй «В». Оставили под их внутреннюю разработку.
— Учет строгий, — отозвался из-за соседнего стеллажа Михалыч, тщательно вытирая руки промасленной ветошью. — Эти четыре полностью в нашем распоряжении. Никуда не распределены, на балансе числятся за опытным участком. Куда ставим?
Громов перевел взгляд на выстроившиеся в ровный ряд пять новых серых корпусов опытной партии. Верхние крышки были сняты, открывая плотно забитые платами внутренности, сплетения шлейфов и массивные радиаторы блоков питания.
— Мне нужны три локальных дисковых стенда, — сказал Женя, ритмично постукивая пальцами по поролону. — Первая машина пойдет чисто под разработку ядра МикроДОС. Вторую отдаем под «СЛОЙ». У них там топологические пакеты, тяжелые файлы, системе нужно постоянно тянуть данные с магнитного носителя, иначе мы утонем в ожидании. Третья нужна как эталон. Когда сложная программа падает, мне нужно гонять ее параллельно на эталонной сборке, шаг за шагом, чтобы ловить расхождение тактов.
Морозов остановился рядом. Главный конструктор внимательно изучал разводку питания в крайнем корпусе, проверяя качество пайки на разъемах.
— Добро. Первые три собираем с локальными приводами, — согласился он, не отрывая взгляда от жгута проводов. — А четвертая и пятая остаются пустыми.
Громов упрямо скрестил руки на груди. Он кивнул на оставшийся лежать на столе четвертый ИЗОТ.
— Привод лежит прямо здесь. Почему не поставить его в четвертую машину? Сетевой загрузчик сейчас еле дышит. Если линия начнет срываться от каждого шороха, мы утонем в случайных отказах. Давайте дадим им временные диски. Хотя бы на пару недель, пока сеть не перестанет сбоить.
— Никаких временных дисководов, Женя, — ответил Морозов. — Если я разрешу локальную загрузку, ты моментально срежешь углы. Сетевой обмен останется красивой идеей на ватмане, а программисты будут грузиться с дискет по привычке. Мне нужны именно две бездисковые машины. На одной нормальную сетевую загрузку не проверить. Нам нужно сравнить два принимающих узла, проверить разные длины линии, посмотреть, как два клиента делят один канал. Нужно поймать, где именно возникает ошибка — в программе передачи, в самом кабеле или в логике железа. Четвертая и пятая обязаны тянуть систему по проводу с твоей первой.
Михалыч сунул ветошь в глубокий карман рабочего халата и достал огрызок химического карандаша.
— Зоя, пиши в паспорт, — скомандовал мастер. — Если машина уйдет на прогон с пустой нишей под привод, в бухгалтерии решат, что мы деталь пустили налево. Фиксируем как сетевую комплектацию.
Зоя макнула перо в тушь, приготовившись заполнять графы официального документа.
— А как точно сформулировать? И что делать с четвертым дисководом? Он ведь остается на столе.
— Пиши дословно: «Машины номер четыре и пять — локальные приводы не предусмотрены, сетевая сборка. На лицевые панели установлены глухие заглушки», — продиктовал Михалыч, глядя, как ровные буквы ложатся на бумагу. — А свободный ИЗОТ оформляй отдельной строкой в ведомости. Резерв для следующего дискового комплекта или пополнение подменного фонда. Это осознанный инженерный запас, а не потерянная железка.
В дальнем конце лаборатории Птицын почти целиком склонился над открытым брюхом четвертой машины. Основная плата уже стояла на месте, тяжелый трансформатор блока питания издавал низкий гул, но пространство за лицевой панелью зияло темной пустотой. Саша держал длинный медицинский пинцет, пытаясь направить пучок розоватых проводов МГТФ к крошечным контактным площадкам системной шины, зажатым между рядами микросхем.
Кравец сидел на высоком табурете напротив, методично постукивая тупым концом карандаша по поцарапанной столешнице.
— Я временно кидаю эти линии, только чтобы поймать маркер в кольце, — оправдывался Птицын, щурясь на тонкие медные жилки в свете настольной лампы. — Программа начальной сетевой загрузки сейчас совсем крошечная. Ведущая машина с диском отдает в линию стартовый блок. Четвертая и пятая слушают порт. Обе ловят кадр, считают контрольную сумму. Если сходится — глотают в память и ждут следующий кусок. Не сходится — отправляют запрос на повтор. А если ведущая машина молчит дольше заданного ожидания, они останавливаются и выдают на экран код ошибки. Имея две слушающие машины в одном сегменте, я смогу сравнить их ответы и увидеть настоящие сбои обмена.
Кравец прекратил стучать карандашом. Он наклонился вперед, разглядывая временный монтаж.
— Эти висящие паутины из МГТФ испортят нам форму сигнала, Саша. Ты строишь паразитную антенну, а не линию связи. Емкость длинных проводов завалит фронты импульсов. Начнутся отражения, и твой приемник будет бесконечно просить повтор кадра просто потому, что физический сигнал сжевало по дороге. Нам нужен нормальный, прочный сменный сетевой узел. Вынул плату, поставил запасную, и сразу понял — программа ошиблась или железо подвело.
Володя, перебиравший крепеж в картонной коробке по соседству, негромко кашлянул. В левой руке он держал небольшую макетную плату из желтого стеклотекстолита, усеянную рядами металлизированных отверстий.
— Вадим Сергеевич, а что если закрепить ее вертикально? — Володя шагнул ближе и приложил плату к краю системной шины, прицеливаясь к свободному месту. — Прямо на короткие выводы, как съемную платку развязки. Верхний край оставим свободным под проволочные перемычки, а наружу, к боковой стенке, выведем ряд толстых штырьков для щупов осциллографа.
Птицын опустил пинцет на стол и вздохнул, потирая переносицу.
— Вертикально? Рычаг получается слишком длинный. Хрупкая пайка на разъеме треснет под собственным весом от малейшей вибрации. Кто-нибудь в коридоре хлопнет дверью, стол дрогнет, и связь отвалится в самый неподходящий момент передачи.
Володя покачал головой. Он вытащил из картонной коробки две длинные шестигранные латунные стойки и узкую металлическую монтажную планку с готовой резьбой.
— Мы не оставим ее висеть в воздухе на одних контактах. Рядом с разъемом на основании корпуса ставим монтажную планку, к ней прикручиваем две латунные стойки, а верхний край текстолитовой платы плотно притягиваем винтом. Получится цельный механический блок. Плата надежно держится на металлических стойках, сам электрический разъем не работает подпоркой и не несет нагрузки. И прямой доступ к контрольным точкам останется открытым, инженерам не придется выкручивать руки, чтобы ткнуть щупом в нужную логику.
Кравец перевел внимательный взгляд с желтого текстолита на крепежные детали. Он взял одну латунную стойку с ладони Володи, покатал холодный граненый металл между пальцами, проверяя резьбу, и удовлетворенно кивнул.
— Годится. Сменный узел на монтажной планке и стойках полностью снимает проблему с механической надежностью. Я смогу написать нормальную методику проверки для сборщиков. Если сеть падает во время прогона, человек не лезет с горячим паяльником в пучок проводов, а просто меняет плату целиком и продолжает тест.
Птицын, следивший за техническим разговором, пододвинул поближе общую тетрадь с надписью «Журнал испытаний СФ-ЛИНК».
— Значит, физику мы закрепили, — сказал Саша, глядя прямо на Кравца. — А как мне правильно описывать саму процедуру проверки в журнале, чтобы через неделю другой человек понял, куда смотреть и что искать?
Кравец указал заточенным грифелем карандаша на макетную плату в руках Володи.
— Пиши так: «Форма сигнала на контрольной точке — фронты чистые, без завалов, амплитуда не ниже четырех вольт. Маркерный сигнал в кольце читается стабильно». Мы не пишем в документах эмоциональное «оно работает», Саша. Мы пишем только то, что физически видит измерительный прибор. А уже поверх этого ты будешь фиксировать свои программные тайм-ауты и сбои контрольных сумм.
Морозов, закончив осмотр у первой машины, неспешно подошел к сетевому участку. Он окинул оценивающим взглядом латунные стойки, желтый текстолит в руках молодого сборщика и включенные серые блоки.
— Собирай модуль, Володя. Линия еще попьет нашей крови. Порядок начальной загрузки совершенно сырой, а как только мы пустим по кабелю реальную передачу данных, задержки неизбежно поплывут от нагрузки. Нам нужна надежная физическая основа, прежде чем мы начнем искать неуловимые ошибки в программе.
К обеду столы усыпали обрезки изоляции, капли припоя и мелкая стружка. Доводка опытной партии подходила к концу. Пять машин выстроились в ряд. Под светлыми лицевыми панелями угадывался серый металл корпусов. На трех темнели щели болгарских дисководов, на двух других белели глухие пластиковые заглушки — за ними скрывались сменные модули сетевого обмена.
Весь отдел постепенно стянулся к центральным столам. Зоя стояла с ручкой наготове, Наташа не отходила от осциллографа, а Люба просто скрестила руки на груди, не сводя глаз с измерительных приборов.
— Поехали, — скомандовал Михалыч. — По порядку. Первая. Память.
Володя щелкнул тумблером. Люба сверилась с дернувшейся стрелкой вольтметра и коротко кивнула — просадки нет. На экране подключенного ВКУ вспыхнула тестовая строка.
— Прошла, — констатировала Зоя и сделала первую отметку в бланке.
— Клавиатура.
Володя быстро пробежался пальцами по рядам клавиш. Символы послушно отпечатались на экране. Ни дребезга, ни залипаний.
— Есть.
Олег подал голос с другого конца стола:
— ВКУ держит.
Наташа кивнула Зое:
— Так и пиши. После пяти минут прогрева стабильно.
Громов отлепился от стеллажа и подошел вплотную к первой машине. Вставил дискету, с легким щелчком опустил флажок замка.
— Дисководы? — он посмотрел на Михалыча.
Двигатель загудел, набирая обороты, головка с характерным треском переместилась по направляющим. На экране появилось приглашение МикроДОС.
Зоя снова коснулась ручкой бумаги. Следующие несколько минут ушли на проверку остальных приводов: на второй машине головка с лязгом ударилась об ограничитель, требуя тонкой регулировки нулевой дорожки, зато третья уверенно прочитала диск.
Морозов кивнул на аппараты без дисководов.
— Четвертая и пятая сетевые. Одна собрана по короткому варианту линии, вторая — по длинному. Нам нужно сравнить, одинаково ли они запрашивают начальный блок.
Громов потер руки.
— Значит, первая сегодня моя. Ядро не ждет.
— Сегодня она общая, — отрезал Михалыч. — Завтра посмотрим, кто заслужил. Мы еще канал сопряжения не проверили.
Птицын склонился над четвертой машиной, щупом осциллографа касаясь контрольной точки на плате опторазвязки.
— На четвертой маркерный сигнал виден! — Птицын выпрямился. На экране прибора действительно бежала последовательность прямоугольных импульсов.
Кравец заглянул через плечо Птицына.
— Радоваться рано, — сухо поправил Вадим. — Железо импульс видит, а программный буфер пустой. Пока мы аппаратно кадр не соберем и контрольную сумму не сверим, это просто шум в линии. Саша, помечай в лабораторный журнал: физический уровень есть, приема кадра пока нет. Зоя, в паспорт машины это не пиши, это отладка.
Морозов стоял чуть в стороне, засунув руки в карманы халата, и смотрел на пять выстроенных в ряд корпусов.
— Вот теперь это партия, — негромко сказал Морозов.
Михалыч свернул паспорта в аккуратную трубку и постучал ими по столу.
— Партия будет, Морозов, когда я все эти паспорта закрою печатью ОТК, — проворчал он. — А пока это просто собранное железо. Выключайте питание. Завтра начнем гонять их под нагрузкой.