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