Наташа развернула ватман на наклонной доске кульмана. Края плотной бумаги пружинили, сопротивляясь. Она методично прошлась по углам, вдавливая канцелярские кнопки в деревянный щит, пока лист не натянулся с глухим барабанным звуком. Взяла цанговый карандаш с грифелем 2Т. Острие вывело в правом нижнем углу ровный чертежный шрифт: «Блок сопряжения видеосигнала. БСВ-80/82».
Под столом стояла картонная коробка. Внутри плотно лежали три комплекта плат из мастерской. От снятых модулей пахло холодной пылью, старым текстолитом и высохшим лаком. В лаборатории пока оказались только узлы для предварительной разведки; кинескопы и тяжелые телевизионные рамы предстояло искать отдельно.
Стенд входного контроля они уже продумали. Диагностическая приставка для проверки телевизионных блоков лежала отдельным листом на соседнем столе. Наташа спроектировала ее жестко и однозначно: собственная линия стабилизированного питания для цифровой части, оптронная развязка, защита измерительных входов диодными ограничителями. Общие земли с высоковольтными цепями телевизора были разведены, прямые контакты логики с импульсами строчной развертки исключены. Эта схема давала прибору запас при пробое в телевизоре, а лаборанту — понятную локализацию неисправности по семи световым признакам.
Теперь предстояло решить главную задачу — безопасно подключить советский телевизор к шине вычислительной машины в качестве цветного монитора.
Олег Тимофеев пододвинул табурет к кульману. На полях черновика он сразу начал прикидывать разъемы, корпуса микросхем, свободное место на плате и то, сколько таких узлов реально сможет повторить завод.
— Нам нужен рабочий макет, Наташа, — сказал он, глядя на пустой лист. — Цветной вывод для двух машин. Для текущей «Сферы-80» в виде платы расширения и как базовый узел для будущей восемьдесят второй.
Наташа провела первую горизонтальную линию — шину данных.
— У нас лимит корпусов, — продолжил Олег, отстукивая ритм пальцами по доске. — Работаем на сто пятьдесят пятой и пятьсот пятьдесят пятой сериях. Микросхема — это потребление тока, место и проблемы с трассировкой. Если мы раздуем видеоконтроллер до пятидесяти корпусов, завод просто не возьмет плату в производство. Разводка медных дорожек превратится в кашу.
— Значит, упаковываем принятую базу, — Наташа нарисовала два прямоугольника один под другим. — Килобайт базовой статической памяти под коды символов и параллельно килобайт под нашу атрибутную память. Восемь цветов, никаких градаций яркости, как и решили.
Олег потер переносицу, прикидывая обвязку.
— Синхронная адресация сожрет нам корпуса. Чтобы видеоконтроллер читал их одновременно, не заставляя процессор ждать в цикле, нам придется развязывать шины адреса. Мультиплексоры КП2 займут минимум четыре корпуса.
— Плюс шинные формирователи АП6, чтобы отсечь видеопамять от основной магистрали, — кивнула Наташа, быстро вычерчивая на ватмане цепочку коммутаторов. — Я ужимаю логику дешифрации до двух корпусов, но мы всё равно балансируем на пределе габаритов стандартной платы расширения. Дополнительный бит интенсивности мы сюда физически не впихнем.
Олег согласно хмыкнул. Восемь цветов — красный, зеленый, синий, их попарные комбинации, черный и белый — для отображения текста, графиков и базовых схем этого хватало с запасом. Главное было уместить всю обвязку на один текстолит.
Слева от кульмана появился Андрей Горелов. Он подошел тихо, без суеты, и некоторое время молча смотрел, как на ватман ложатся шины, регистры и выходные цепи.
— Чертите красиво, — произнес Горелов, открывая свою папку. — Только покажите мне, где здесь врезка от аппаратного сторожевого таймера. Той самой красной рамки, которая должна загораться при зависании процессора. Если вы пустили ее через общую шину данных, такой вариант не примут.
Он упер палец в пустое место рядом с выходными цепями видеотракта.
Наташа перестала чертить. Она не любила, когда в ее стройную логику вторгались с грубыми обходными путями, но требование первого отдела было законом. Она сдвинула линейку, открывая правый край ватмана.
— В центральный сдвиговый регистр мы не лезем, иначе у нас поплывет фаза и изображение на экране превратится в кашу, — жестко ответила она. — Вот отдельный регистр бордюра. Сигнал от вашей схемы контроля заходит прямо на его управляющий вход. Общую магистраль мы вообще не трогаем.
Олег повернулся к Горелову, подтверждая слова Наташи:
— Процессор может висеть намертво. Шина может закоротить. А рамка все равно аппаратно зальется красным, потому что синхроимпульсы живут независимо.
Горелов провел пальцем по нарисованной линии, сверяя ее со своими записями.
— Изоляция обеспечена, это хорошо, — сказал он ровнее. — Но мне нужен физический доступ к этому пути. Продублируйте этот флаг на контрольную колодку. Оператор видит рамку, а техник сзади снимает подтверждающий уровень прибором, не вскрывая опломбированный корпус.
Наташа тяжело вздохнула, взяла ластик и стерла аккуратно выведенную линию аппаратного сброса, уводя ее сложным крюком в сторону системных портов.
— Выведем, — сказала она, сдувая катышки резинки. — Заложим лишнюю дорожку на резервный контакт. Главное, что видеоблок отработает аварию сам, не дожидаясь процессора.
— Переключение займет доли микросекунды, — прикинул в уме Олег. — Для глаза оператора это практически мгновенно.
— Годится, — Горелов заложил руки за спину. — Главное, чтобы состояние можно было снять осциллографом прямо с разъема при закрытом корпусе. И запишите в примечании: признак отказа живет за пределами видеотракта. Тогда я не буду потом требовать отдельную плату для восемьдесят второй «В».
От стола поднялся Птицын. В руках он держал распечатанную таблицу точек, которую они начали на прошлом разборе. Саша выглядел сосредоточенным: к готовому чертежу он подходил осторожнее, чем к полке с деталями.
— Олег, Наташа, — Птицын подошел к кульману. — Я свел в единую таблицу ваши аппаратные данные и черновики Евгения Николаевича по маскам для проверочной программы. Посмотрите, пожалуйста. Хочу убедиться, что я ничего не перепутал при переписывании.
Он положил распечатанную таблицу на край доски. В ней были аккуратно заполнены колонки: адрес порта, битовая маска, номер контрольной точки и код состояния.
Олег пробежал глазами по строкам, проверяя аппаратную часть.
— Порт E0 отведен под управление, E1 — под базу палитры. Перенес верно, без ошибок.
— Тут я как раз застрял, — признался Птицын, указывая на колонку с масками. — Если мы вешаем дешифратор цвета прямо на общие линии, хватит ли тока логическому нулю? У нас там уже висит матрица клавиатуры.
Олег провел пальцем по схеме на ватмане.
— Нагрузка в норме. Наташа заложила шинные формирователи АП6 на входе в видеоконтроллер. Они изолируют внутреннюю шину модуля от системной магистрали. Запаса по току хватит.
Наташа, в свою очередь, проверила логику сигналов.
— Коды состояний совпадают с битовыми масками, — подтвердила она. — Молодец, Саша. Оставляй таблицу, она понадобится при трассировке.
Птицын задержался у доски, неловко переминаясь с ноги на ногу.
— Олег, я тут графу с контактами разъема пока пустой оставил, — признался он. — Я не понимаю, как ее заполнять. У старой «Сферы-80» мы эту плату будем втыкать в боковой порт расширения, там один шаг контактов. А для новой восемьдесят второй вы вроде хотели развести видео прямо на материнской плате. Мне для тестов делать две разные таблицы?
Олег впервые за утро оторвался от схемы и посмотрел на техника с открытым одобрением.
— Молодец, Саша. Зришь в корень. Таблица остается одна, потому что для программы это одна и та же машина. Порты те же, биты цвета те же. Евгений в своем коде разницы не увидит. А вот для сборщиков делай разделение на две колонки физики.
Он постучал карандашом по краю ватмана.
— В первой колонке пиши распайку под старый системный разъем — это для тех, кто будет паять плату-приставку по журнальным схемам к своей «восьмидесятке». А во второй колонке давай штатные внутренние линии. Логика общая, железо разное.
— И сразу подпиши, какие цепи требуют экранированного провода, — добавила Наташа. — Строчную и кадровую синхронизацию нельзя тащить как попало рядом с линиями данных. Иначе потом будем искать помеху не в схеме, а в косой укладке жгута.
Птицын торопливо внес новые графы: общая логика, переходники для «Сферы-80», штатные линии для «Сферы-82», примечание для сборщика.
Саша с облегчением выдохнул и отошел к своему рабочему месту.
Наташа вернулась к чертежу. Теперь начиналась самая тонкая часть — выходной каскад. Телевизионное шасси УПИМЦТ не понимало цифровых уровней. Ему требовались аналоговые сигналы.
Она нарисовала три линии: R, G, B. На каждой появились буферы и цепочки резисторов.
— Эмиттерные повторители и делители, — прокомментировала она. — Микросхема выдает уровень ТТЛ — около четырех вольт. На видеоусилители УПИМЦТ нужно подавать не больше полутора вольт, так что уровни придется подбирать, как и говорил Петр Иванович. Иначе выжжем входные транзисторы.
Затем она вывела отдельный блок для формирования синхросмеси.
— Кадровые и строчные импульсы мы собираем на элементе ЛЛ1. Получаем композитную синхронизацию.
— А программная совместимость? — уточнил Олег. — Если мы загружаем старую черно-белую программу, которая не знает про адреса атрибутной памяти?
— Схема инициализируется нулями. Нулевой атрибут — это белый текст на черном фоне. Черно-белый режим сохраняется аппаратно.
На ватмане вырисовывался законченный тракт: восемь цветов, совместимость со старым кодом, аппаратная индикация ошибок. Наташа отодвинула в сторону лишние варианты и оставила на схеме только ту логику, которая уместится на стандартном куске текстолита и не потребует дефицитных деталей. Рядом с резистивными делителями она вычертила выходной разъем и проставила три короткие надписи.
ЦВЕТ. СИНХРОСМЕСЬ. ЗЕМЛЯ.
Дверь лаборатории приоткрылась. Иван Михайлович остановился на пороге, придерживая под мышкой пухлую папку с накладными. Он обвел взглядом троицу у кульмана: Наташа методично дочерчивала выходные цепи, Олег вполголоса диктовал адреса портов, а Горелов сверял пути прохождения сигнала со своими допусками.
— Вижу, сопряжение открытого и закрытого контуров идет полным ходом, — негромко сказал Иван Михайлович. — Андрей Витальевич, как согласуете схему, свои эксплуатационные требования проведите отдельным актом через общий журнал КБ. Олег, Наталья, это и к вам: раз уж вы ради будущей восемьдесят второй «В» закладываете резерв в общий узел, на чертеже четко маркируйте, что относится к гражданской базе, а что уходит в приложение. Мне потом эту спецификацию защищать перед директором, а не ребусы по вашим стрелкам разгадывать.
— Поняли, Иван Михайлович, — ответил Олег.
Михалыч кивнул и прикрыл дверь. Олег поставил рядом с требованием Горелова пометку: «общий узел; приложение 82В».
К полудню черновой макет БСВ-80/82 полностью занял лист формата А1. Ватман лежал на доске кульмана. Плотная сеть карандашных линий объединяла буферные регистры, счетчики и элементы жесткой логики.
Люба Ветрова подошла к столу неслышно. В одной руке она держала раскрытый рабочий журнал, в другой — стандартный тестер Ц4315. Аккуратно положив прибор на свободный край стола, она склонилась над чертежом.
Несколько минут в лаборатории стояла абсолютная тишина. Люба водила колпачком ручки по линиям связи, надолго задерживаясь на узлах сопряжения цифровой части и видеовыхода.
— Токи считали, теоретики? — сухо поинтересовалась она, выпрямляясь и глядя на Наташу.
Олег скрестил руки на груди.
— Нагрузочная способность выходов проверена. Циклы ожидания процессора просчитаны. Логика сходится.
— Логика у вас на бумаге сходится, — Люба склонилась над ватманом. — Теперь давайте наложим сюда топологию питания и советы Петра Ивановича. Смотрите внимательно.
Она провела воображаемую границу, отделяя цифровую часть от земляного контура телевизионных видеоусилителей.
— Сто пятьдесят пятая серия при переключении дает крутые фронты. Чтобы на экране не плясал снег, мы жестко разводим контуры на плате, как и обсуждали. Иначе просадки потенциала пойдут прямо на вход в телевизор.
Наташа кивнула.
— Все так, — спокойно подтвердила она. — Цифровой полигон ведем отдельно, аналоговый отдельно. Сводим их в одну общую точку только у силового разъема, как мы и договаривались с Петром Ивановичем.
— Верно, — Люба перенесла карандаш к рядам регистров. — А где места под конденсаторы на корпусах логики? Ставим керамику КМ. Без исключений, как и договаривались. Иначе помехи по питанию сведут процессор с ума при первой же заливке.
Олег вздохнул.
— Места заложены, просто не перенесены на ватман. Плата из-за них неизбежно расползается в габаритах. Это тридцать деталей, а нам еще предстоит разместить узел питания, раз телевизионное мы не трогаем.
— Именно, никакого питания от УПИМЦТ, — категорично ответила Люба, обводя свободный участок текстолита. — У телевизора там тиристоры в строчной развертке лупят так, что на соседних столах осциллографы с ума сходят. Если мы возьмем их грязные пять вольт, ваш процессор повиснет при первом же кадре. Питание берем от машины. Ставим свой линейный стабилизатор, пятую «КРЕНку», и глушим помехи дросселем.
Горелов одобрительно кивнул: надежность питания в закрытом контуре проверяли в первую очередь.
— И не забудьте про тепло, — непререкаемым тоном добавила Люба. — Логика жрет прилично. «КРЕНка» будет рассеивать три-четыре ватта. Ей нужен нормальный алюминиевый радиатор, иначе плата прогорит до дыр через час работы. Резервируй место.
Олег скрипнул зубами и с явной тоской посмотрел на плотную, изящную компоновку микросхем, которую они выстраивали все утро.
— Люба, кусок алюминия такого размера съест мне четверть платы! — возмутился он. — Куда я дешифратор дену? Навесным монтажом сверху припаяю?
— Сдвинешь буферы, — отрезала Люба. — Зато схема будет железно держать частоту. И еще одно. Площадки контрольных точек у вас раскиданы по всему листу. Сведите их в один ряд на свободный край: питание, синхросмесь, три канала цвета. Вы же сами не подлезете щупом в центр работающей платы, когда она вставлена!
Олег потер лоб, сдаваясь. В вопросах компоновки и выживания железа с Ветровой спорить было бесполезно.
— Ладно. Сгруппируем, — буркнул он и вдруг щелкнул пальцами, поймав новую мысль. — Слушайте, если мы выводим контрольные точки в один ряд, нам нужен эталонный сигнал, чтобы их щупать.
Он резко обернулся к соседнему столу.
— Саша!
Птицын, сидевший над таблицей кодов состояния, тут же поднял голову.
— Громов тебе показывал, как прошивать маленькие ПЗУ? — спросил Олег. — С тебя простая проверочная программа для макета. Буквально на пару десятков байт. Включили тумблер — машина сразу, без загрузки системы, плюет на экран калибровочную сетку, все восемь цветов и рамку по краям. Мы осциллографом ткнем в наши контрольные точки и сразу поймем, где завалили фронты.
Птицын молча кивнул, быстро делая пометку в блокноте. Для него это была понятная, осязаемая задача. Он тут же уточнил у Олега базовый адрес порта для инициализации и подписал рядом: «зашить в тестовое ПЗУ».
Люба удовлетворенно хмыкнула и достала из тубуса чистый лист плотной кальки. Она расстелила его рядом с ватманом поверх миллиметровой сетки и тщательно закрепила по углам канцелярскими кнопками.
— Пересчитываем разводку, — подытожила Люба, беря карандаш.
Спустя час на полупрозрачной бумаге проступила новая топология. Появились широкие заштрихованные полигоны раздельной земли, квадратные контактные площадки для плановых измерений и пунктирный контур радиатора охлаждения. Рядом лег заполненный от руки список деталей. Олег снял кальку с кульмана, подержал ее на свету и положил рядом с коробкой плат из мастерской.