— Я понимаю, как работает программа, Женя, — сказала она спокойно, и от ее неожиданно мягкого тона у Громова что-то екнуло. Отбросив шутливый официоз, она заговорила с ним предельно откровенно, — Я спрашиваю про железо. Зачем вы заставляете процессор заниматься работой грузчика?
— Потому что у нас нет канала прямого доступа к памяти, — развёл руками Громов, — Мы нищие, Люба. У нас «Сфера-80», а не IBM 360. У нас центральное процессорное устройство — и швец, и жнец, и на дуде игрец.
Люба подошла к столу, где лежал ворох схем видеоконтроллера — того самого, который недавно мучили Олег и Наташа. Она провела пальцем по листу, прослеживая линию. Палец у неё был тонкий, с аккуратным, но коротким ногтем, и на подушечке виднелся крошечный шрам от ожога паяльником — профессиональное клеймо.
— Видеоконтроллер читает память циклически, — начала она рассуждать вслух, — У него есть счетчик адреса. Сначала он показывает ячейку ноль, потом один, и так до двух тысяч.
— Верно, — кивнул Громов, чувствуя, что начинает раздражаться, — И что?
— А если мы скажем ему начинать не с нуля? — Люба подняла на него глаза. За толстыми линзами её взгляд был ясным и пугающе конкретным, — Если мы скажем ему: «Начинай показывать картинку с сорокового байта»? Тогда вторая строка станет первой. Визуально.
Громов замер. Сигарета в его руке дотлела до фильтра и обожгла пальцы, но он даже не дернулся, просто машинально раздавил бычок в переполненной пепельнице.
В его голове, привыкшей мыслить алгоритмами, произошел сбой. Он думал в рамках линейного пространства памяти. Массив есть массив. Чтобы изменить массив, надо перезаписать ячейки.
Но Люба мыслила сигналами.
— Аппаратная прокрутка… — прошептал он, — Ты предлагаешь изменить начальный адрес выборки видеопамяти.
— Ну да, — Люба пожала плечами, словно предлагала просто добавить сахара в чай, — У нас же счетчики К155ИЕ5. У них есть входы предварительной установки. Но они сейчас на земле сидят.
Громов вскочил со стула. Усталость как рукой сняло. Он подлетел к схеме, едва не сбив Любу с ног.
— Покажи!
Люба не отшатнулась. Они склонились над ватманом, почти касаясь друг друга головами.
— Вот, — её карандаш указал на каскад микросхем, — Счетчики адреса. Они сбрасываются в ноль кадровым синхроимпульсом. Каждый раз, когда луч возвращается вверх, счетчик обнуляется.
— Так… — мозг Громова заработал на форсаже, — Если мы вместо жесткого сброса подадим туда значение из регистра…
— Регистра у нас нет, — осадила его Люба, — Свободных микросхем на плате нет. Места тоже нет. Олег там всё своими проводами заплел.