Я — гений?

Я — гений?

Том 1.0 Глава 4.0

Кабинет информатики в их школе считался почти священным местом. Окна здесь всегда были плотно задернуты тяжелыми шторами — чтобы солнце не бликовало на экранах. В полумраке класса висел густой, ни с чем не сравнимый запах нагретого пластика, озона и старой пыли.

Класс КУВТ-2. Комплект учебной вычислительной техники.

Для большинства школьников 1987 года это был портал в другой мир. На столах, выстроенные в строгие ряды, темнели корпуса «Ямах» — Yamaha MSX. Настоящие японские машины. Ученические места оборудовали советскими монохромными мониторами, светящимися призрачным зеленым светом.

— Занимаем места согласно списку! — командный голос Татьяны Павловны перекрыл шум рассаживающегося класса. — Петров, Сидоров — за пятый стол.

Сашка прошел к своему месту, чувствуя, как внутри разжимается пружина напряжения, мучившая его все утро. Здесь, в темноте, под фоновый гул электроники, ему стало спокойнее. Этот мир был логичным. Он состоял из нулей и единиц, из четких инструкций. Здесь не было тревожных предчувствий и странных воспоминаний.

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

Сашка смотрит на другом с сомнением.
— Да брешит Васька, нет тут игр!

— Тишина! — Татьяна Павловна постучала указкой по доске. — Тема урока: графические операторы языка Бейсик. Команда CIRCLE. Ваша задача на сегодня: написать программу, которая выводит на экран эмблему Олимпиады — пять пересекающихся колец. Обратите внимание на координаты центров и радиус. Кто справится — может быть свободен. Время пошло.

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

MSX BASIC version 2.0
Copyright 1985 by Microsoft
Ok

Сашка смотрел на мигающий зеленый курсор. Прямоугольник появлялся и исчезал с ритмичной частотой. В этом ритме было что-то гипнотическое.

Он положил руки на клавиатуру. Пластик был шершавым, приятным на ощупь. Пальцы сами нашли нужные позиции — левая рука легла в район клавиш WASD, правая накрыла стрелки и Enter. Это было так же естественно, как дышать.

«Кольца. Пять штук. Геометрия», — подумал он.

Нужно было набрать 10 CIRCLE (100, 100), 30. Потом повторить пять раз, меняя координаты центров, чтобы кольца встали в ряд и переплелись.

Сашка потянулся к клавише «1», чтобы начать нумерацию строк. Но палец замер.

В голове мелькнула мысль — быстрая, мимолетная, как искра: «Зачем писать пять раз одно и то же? Это неэффективно. Нужен массив координат. И цикл».

Эта мысль не показалась ему чужой. Она была просто... правильной. Логичной. Оптимальной.

Он набрал: 10 FOR I = 0 TO 4.

Потом еще одна мысль: «Просто нарисовать круги — это скучно. Статика мертва. Они должны появляться. Жить».

Пальцы застучали по клавишам. Сначала медленно, потом всё быстрее. Сашка перестал смотреть на клавиатуру. Он смотрел только на зеленые строчки кода, ползущие вверх.

Леха рядом что-то бубнил, выискивая нужные буквы одним пальцем:
— С... И... Р... Где эта «С»? А, вот...

Сашка его не слышал. Он провалился. Мир вокруг сузился до размеров 12-дюймового монохромного монитора. Гул класса исчез. Осталась только задача и инструмент.

«Бейсик слишком медленный для плавной анимации. Нужно писать в видеопамять напрямую. VPOKE. Работа с регистрами VDP...»

Он не задавал себе вопроса, откуда он знает шестнадцатеричные адреса портов видеоконтроллера Yamaha. Он просто знал их. Как знал, что нужно дышать. Это было знание, живущее в кончиках пальцев, в мышечной памяти, которой у школьника быть не могло.

DATA &H3E, &H99, &H32... — строчки машинного кода вбивались в операторы DATA с пулеметной скоростью.

Сашка вошел в ритм. Клавиши щелкали непрерывно. Он не думал о синтаксисе, он мыслил структурой. Синус, косинус для траектории разлета. Матрица поворота для 3D-проекции. Очистка буфера, чтобы не мерцало.

Он не замечал, как прошло десять минут. Для него времени не существовало. Был только поток чистой логики, выливающийся в зеленый свет.

— Фух, я первое нарисовал! — гордо шепнул Леха, толкая его локтем. — Только оно овальное какое-то. А ты че?

Сашка не ответил. Он дописал последнюю строку: GOTO 100.

Палец ударил по F5 (Run).

Зеленый экран моргнул и очистился.

Из центра, из черной пустоты, вылетели пять светящихся точек. Они двигались не рывками, как обычно в школьных программах на Бейсике, а с идеальной, «масляной» плавностью. Точки оставляли за собой шлейф, разворачиваясь в объемные, вращающиеся торы — трехмерные кольца, нарисованные в каркасной сетке (wireframe).

Зеленые линии на черном фоне переплетались, создавая иллюзию объема. Кольца вращались вокруг своих осей и медленно, торжественно сходились в центре, сцепляясь в единую Олимпийскую эмблему.

Картинка дышала. 60 кадров в секунду. Чистая математика, превращенная в движение.

Сашка смотрел на экран с легкой полуулыбкой. Внутри было чувство глубокого профессионального удовлетворения, как когда сложный алгоритм наконец-то заработал без багов.

— Ну вот, — тихо сказал он. — Рендер готов.

— Саня... — голос Лехи прозвучал как гром среди ясного неба. В нем было столько изумления, что Сашка вздрогнул. — Твою мать... Ты как это сделал?!

Леха смотрел на монитор друга, открыв рот. Зеленоватый отсвет от вращающихся 3D-колец отражался в его глазах. На соседнем экране крутилась графика, которую он не видел даже в фантастических фильмах — там обычно показывали мультики, а здесь была математика.

Этот возглас разорвал кокон транса.

Сашка моргнул. Реальность вернулась рывком — запах пыли, гудение ламп, удивленное лицо друга.

Он перевел взгляд на экран. Вращающиеся кольца.
Потом на код. Пятьдесят строк плотного, непонятного текста, где команды Бейсика были лишь оберткой для машинного кода.

Холодный ужас окатил его с головы до ног.

«Что это? — пронеслась паническая мысль. — Это написал я? Но я не знаю, что такое VPOKE! Я не знаю этих адресов! Я даже не уверен, что это Бейсик!»

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

— Петров! Сидоров! Что за шум? — Голос Татьяны Павловны раздался совсем близко. Стук её каблуков приближался.

Сашку охватила паника. Если она это увидит... Начнутся вопросы. «Где ты этому научился?». А что он ответит? Что его ударило током?

— Смотрите, Татьяна Павловна! — восторженно начал Леха, тыча пальцем в экран Сашки. — У него там кольца крутятся!

Учительница была уже в двух шагах.

Сашка среагировал инстинктивно. Как загнанный зверь.

Его палец ударил по клавишам CTRL + STOP. Программа прервалась.
Следом он вбил NEW.
И нажал ENTER.

Экран мигнул и очистился. Вся работа, весь «гениальный» код исчез в небытии. Осталась только девственно чистый экран и надпись:

Ok

Татьяна Павловна подошла к их столу и поправила очки.
— Ну? И где кольца? Что у вас там крутилось?

Леха замер с поднятой рукой. Он переводил взгляд с пустого экрана на Сашку, ничего не понимая.
— Там... там было... Саня, ты зачем стер?!

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

Учительница вздохнула, покачав головой.
— Вечно у вас, Петров, техника виновата. Аккуратнее надо. Время идет, до конца урока двадцать минут. Пиши заново. И без фокусов.

Она развернулась и пошла к другим ученикам.

Леха повернулся к Сашке. В его глазах был шок пополам с обидой.
— Ты больной? — прошептал он. — Там же графика была... как в кино! Ты где этот код взял? В журнале «Наука и жизнь» вычитал?

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

Он демонстративно медленно, одним пальцем, начал тыкать в клавиши, вводя самый примитивный код, который только мог вспомнить:
10 CIRCLE (128, 100), 20...

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

А Сашка смотрел на появляющиеся буквы и чувствовал, как внутри растет липкий страх.
Это были не галлюцинации. И не просто память.
Внутри него как будто сидел кто-то, кто умел управлять машинами лучше, чем он умел говорить.

«Я должен следить за собой, — подумал Сашка, с силой давя на клавишу "Enter". — Каждую секунду. Иначе я спалюсь. И тогда точно заберут. Не в дурдом, так на опыты».