Агент: Ошибка 1999

От автора

Здесь — Москва конца девяностых, полулегальная типография, модемы, телефонные линии, FidoNet, семейные долги и большая политика, которая добирается до обычных людей через бумагу, провода и чужие распоряжения.

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

Спасибо.

Достоверность: 98.7%

Глава 1: Типография

Москва, сентябрь 1999

Файл побился в три пятнадцать.

Четыре часа сорок пять минут до того, как приедет Михалыч — за тиражом для «серьёзных людей». Четыре сорок четыре. Четыре сорок три. Антон считал — бессмысленно, но мозг не останавливался. Как модем на мёртвой линии.

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

За перегородкой стояли станки — два офсетных и старый ротапринт. Сейчас молчали: к полуночи всё уже отработали. Днём они гудели так, что дрожал кофе в кружке. Антон ненавидел этот гул — от него модем срывался на длинных сеансах связи. Но сейчас бы он предпочёл гул. Тишина в подвале была хуже.

Люминесцентная лампа гудела на пятидесяти герцах. На связь эта помеха не влияла, но думать под неё было тяжело.

Под ногами — линолеум, продавленный ножками станков, местами до бетона. На стеллажах — пачки бумаги, картриджи, банки с химией для офсетных пластин. В углу стоял старый 386-й системник без монитора — Антон хранил его не ради ностальгии.

На стене — календарь за прошлый год с голой бабой и логотипом «Стройматериалы». Никто не менял. Тётя Зина, вахтёрша, каждый раз крестилась, проходя мимо, но снять не решалась — повесил Михалыч.

Двенадцать мегабайт предвыборной вёрстки лежали на жёстком диске битыми внутренностями наружу. Антон недавно запустил пробный вывод: первые шестнадцать страниц вышли чистыми, а начиная с семнадцатой — мусор. Шрифты поехали, растровая графика выплюнула серые прямоугольники вместо лиц кандидатов. Какой-то областной депутат превратился в безликое пятно с подписью «За стабильность и порядок!». Может, так даже честнее.

Резервная копия была — позавчерашняя версия. Другие номера телефонов в рекламном блоке, старый слоган, но структура та же. Если найти, где именно в свежем файле начинается мусор, можно вырезать побитый кусок и вставить из резервного. Но отыскать — в двенадцати мегабайтах.

Михалыч произносил «серьёзные люди» негромко, без нажима, и от этого спокойствия что-то нехорошее сжималось у Антона под рёбрами. Такие не понимают слов «файл побился». Они понимают «не готово к восьми» и «кто за это отвечает».

Работал Антон здесь четвёртый месяц. Поначалу Михалыч держал его на сети и кабелях, к срочным заказам не подпускал — присматривался. Потом стал оставлять на ночь, когда нужно было добить тираж. Раз в две недели выдавал конверт. В девяносто девятом так жила половина Москвы.

Антон сделал последний глоток. Кружка с трещиной — если налить до края, подтекает на клавиатуру. Кофе был невкусный, он его выпил, вот и всё.

В ящике стола лежала Катина кассета — Би-2 вперемешку с Чижом. Антон зачем-то таскал её из Чертанова в подвал и обратно. Ни разу не включал.

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

Причина почти наверняка была в питании. Станки и компьютеры сидели на одной линии. Антон три раза говорил Михалычу про бесперебойник. Михалыч кивал, отвечал «разберёмся» и не покупал. Пятьсот баксов — серьёзные деньги для типографии, которая официально печатает визитки, а неофициально — предвыборную чернуху за наличку.

Антон закурил. Дешёвые сигареты, вкус горелого картона, зато не засыпаешь. Пепельница стояла на системном блоке, рядом с модемом. US Robotics Courier — единственная ценная вещь в этом подвале. Двести долларов на Митинском радиорынке, зато держит линию даже на гнилых московских проводах. Мигал зелёным диодом. Живой.

Телефонная линия в типографии была официальная. Наверху, у тёти Зины, на той же линии сидел факс. Антон давно кинул от неё параллель к модему и поднял узел Фидо. Михалыч не знал.

Ладно. По порядку. Сначала — у себя.

Антон открыл GoldED — фидошную почту. Тёмный экран, меню списком. Срочные вещи так не решали, но руки всё равно пошли туда.

Почта обновилась часа полтора назад. В файловых эхах — патчи, утилиты, древняя демка. Нужного файла не было ни под именем HIEW, ни под чужим: HV.ZIP? Нет.

В нескольких письмах мелькнуло знакомое: «Привет, ик, как дела?» — вместо «Ник». Заглавная Н на кривых узлах пропадала. Все привыкли. Антон тоже.

Переключился на SU.HACKER. Набросал сообщение:


Народ, у кого HIEW 6.x? Скиньте на мой узел, срочно,

файл побился, сроки горят. Плачу пивом на фидопойке.

PS: винмодемщики — не звоните. Мой USR таких почему-то не

переносит :)


Отправил. Толку мало: кто-нибудь прочитает утром, может, ответит, и пакет поползёт обратно узел за узлом. К тому времени Михалыч приедет за тиражом и обнаружит вместо готовых пачек — Антона.

Значит — BBS. Прямой звонок на чей-то компьютер. Набрать номер, слушать гудки, молиться.

У монитора лежал листок с тремя номерами, нацарапанными карандашом на полях старой распечатки. Ефимыч — у него точно есть. Макс — линия вечно занята. Палыч включает приём, только когда жена уснёт.

Антон переключился на терминалку. ATZ — модем ответил коротким «ОК», послушный. Набрал номер Ефимыча — помнил наизусть.

Тишина. Потом щелчок АТС, далёкий, механический. Гудок. Длинный. Второй. Третий — обрыв: короткие. Занято.

Набрал Макса. Щелчок, гудок — и сразу короткие.

Палыч. Длинные гудки. Четвёртый, пятый, шестой — ровные, пустые. Не берёт.

Антон повесил трубку. Привычное разочарование — не острое, а тупое, как затёкшая рука. Каждый дозвон в Москве — лотерея: кто первый сел на линию, тот и сидит. Антон проигрывал её почти всегда.

На левом мониторе шли Герои. Автобой: компьютер методично раскатывал чужой гарнизон. Архангелы парили, скелеты рассыпались, счётчик урона отщёлкивал одинаковые 340, 340, 340.

Антон запускал их не ради игры — ради фонового шума. Без него в подвале начинались трубы, стуки, тишина, от которой стены казались ближе.

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

Но сейчас было не до Героев.

Набрал Ефимыча ещё раз. Опять занято. Кто-то сел на линию и мог сидеть там до утра.

Затянулся. Сигарета догорела до фильтра — Антон не заметил. Обжёг пальцы, раздавил бычок в пепельнице.

Ему вдруг вспомнился запах борща. Посреди дыма и побитого файла. Мамин — с чесноком и горбушкой чёрного. Мать уехала к тёте Гале «на пару недель» три недели назад; по телефону теперь было одно: ещё чуть-чуть, Ринат плох, завод встал.

Антон сглотнул. Не к месту. Мозг выдавал мусор — как побитый файл.

Набрал Ефимыча ещё раз.

Щёлканье. Шуршание. Рукопожатие — модемы хрипели друг другу, перебирая протоколы. Десять секунд, двенадцать. CONNECT 28800.

Есть.

Не 33600, но сойдёт. Антон дождался, пока динамик модема щёлкнет и затихнет, зашёл в файловый каталог и нашёл нужное. Полтораста килобайт — при нормальной связи за пару минут.

На месте.

Начал качать. Полоска загрузки поползла: один процент, два, три.

Шесть процентов. Семь.

Антон откинулся на стуле и подумал о деньгах. В старом 386-м, между материнской платой и стенкой корпуса лежали четыреста двадцать долларов мятыми двадцатками. До января должно хватить. H-1B — три буквы и одна цифра. Рабочая виза в Штаты. Объявления на доске в МГУ: программисты, Кремниевая Долина, доллары, другая жизнь. С английским через словарь и с опытом кое-как. Может, сойдёт. Может, нет.

Десять процентов. Одиннадцать.

Антон смотрел на бегущие цифры и думал: навыки, труд, бессонные ночи — а на выходе всё равно обрыв.

Мать в Барнауле. Катя одна.

Двенадцать процентов.

Модем щёлкнул.

Динамик давно затих. Но сейчас щёлкнул. Антон повернул голову — щелчок посреди сессии значил одно: что-то не так.

Потом модем заорал.

Не завизжал — заорал. Ультразвук, от которого заныли зубы и перехватило дыхание. Антон дёрнул головой, как от удара. Такого звука он не слышал за четыре года работы с модемами. Это не было ничем из знакомого. Частота была выше, чем модем мог генерировать. Звук шёл не из динамика. Откуда-то ещё.

Две секунды. Три.

Полоска загрузки замерла на двенадцати процентах. Цифры перестали бежать. Экран правого монитора моргнул — бледно, криво, как при сбросе кадровой развёртки: изображение схлопнулось в горизонтальную полосу и вернулось. На левом — Герои замерли: арбалетчик повис в воздухе между клетками, стрела остановилась на полпути к цели, как заевший кадр в фильме. Счётчик жизни мигнул нулями и погас. Музыка оборвалась — не стихла, а оборвалась, как обрезанная ножницами, и тишина, которая пришла на её место, была неправильная. Густая. Как наэлектризованная.

Лампа под потолком вздрогнула.

Модем щёлкнул — резко, сухо, как кость — и замолчал.

Разряд.

Антон не увидел его. Пришёл через руки — через клавиатуру, по предплечьям вверх. Сначала — покалывание, почти приятное, как статика с монитора. Потом — удар. Короткий, злой, будто ткнули пальцем в оголённый контакт, только во всё тело и сразу. Плечи, шея, позвоночник, затылок. Мышцы дёрнулись все разом. Стул отъехал. Ролик зацепил пластиковый короб с проводами. Затылок — о металлический стеллаж. Жёстко.

Темнота.

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

И что-то ещё. Что-то, чему Антон не сразу нашёл название.

Мысли на секунду стали чужими. Не пропали. Словно кто-то быстро, безразлично пролистал его внутренний монолог и отпустил. Антон почувствовал это не умом, а телом: мгновенное ощущение, что ты не один внутри собственной головы.

Длилось это меньше вдоха. Потом прошло, и Антон не был уверен, что это вообще было. Может, так чувствуется удар затылком. Может, кофеиновый передоз. Может, он просто устал и мозг глючит.

Пахло палёной изоляцией. И ещё чем-то — тонким, электрическим, как после щелчка рубильника: всё вздрогнуло и встало не на своё место.

Затылок гудел. Антон потрогал — шишки не было, но кожа саднила. Кончики пальцев онемели. Ладони мокрые.

Антон открыл глаза.

Правый монитор — погас. Левый — тоже: Герои умерли, арбалетчик так и не долетел до клетки. Лампа работала. Системные блоки гудели — оба. Живые, но слепые.

Модем лежал мёртвый. Ни одного огонька. Зелёный диод, который Антон проверял каждый раз, входя в подвал, не мигал. Двести долларов. Мёртв.

Антон посмотрел на модем и ничего не почувствовал. Это было странно. Через минуту начнёт.

И перед глазами висел прямоугольник.

Синий. На чёрном. Как окно файлового менеджера, только не на мониторе. Не на стене, не в воздухе — перед. Привязанный к взгляду. Внутри.

Текст:


И□ИЦИАЛИЗАЦИЯ ЗАВЕРШЕ□А

СУБЪЕКТ СИ□ХРО□ИЗИРОВА□

ЗАГРУЗКА: 100%

ОЖИДА□ИЕ ПОДТВЕРЖДЕ□ИЯ


Антон моргнул. Прямоугольник моргнул с ним — сжался на долю секунды и вернулся. Буквы чёткие, синие, моноширинные. Терминальный шрифт. Как текст в GoldED.

И дырки на местах буквы Н.

Фидошная дрянь: заглавную Н на кривых узлах съедало. Полчаса назад он видел такое в почте. Только не в воздухе. Не перед глазами.

Антон закрыл глаза. Текст остался. Синие буквы на чёрном фоне внутренней стороны век. Нет — не на веках. Глубже. Там, где обычно темнота и разноцветные точки — какие видишь, если зажмуриться и надавить. Антон не давил. Текст был сам по себе.

Открыл. Текст наложился на реальность — полупрозрачный, как отражение экрана в оконном стекле ночью. Стеллаж, мёртвый монитор, пепельница на системнике — всё видно через синие буквы. Если Антон пытался сфокусироваться на тексте — тот чуть размывался. Если смотрел мимо — становился чётче. Словно рассчитан на то, чтобы не мешать. Слишком заботливая галлюцинация.

Кофеин.

Пять чашек, озон, лампа на пятидесяти герцах. Мерцание, усталость, стимуляторы.

Или разряд с линии: старая проводка, плохая земля, стул вышибло. Или сотрясение. Или он сходит с ума.

Эта мысль пришла коротко и зло. Виза. Если он сходит с ума, точно не дадут.

Четвёртая версия: всё это реально. Антон не стал о ней думать.

В его голове что-то живёт и читает вместе с ним. А у него файл, Михалыч и два с половиной часа до восьми.

Антон потёр глаза. Текст не сдвинулся.

Он открыл рот сказать «ладно». Ничего не вышло. Горло сжалось — перехватило. Он откашлялся.

— Ладно, — сказал он. Голос прозвучал чужим в пустом подвале.

Он встал. Прямоугольник качнулся вместе с ним, как прицельная сетка. Антон помотал головой. Текст размылся на мгновение и вернулся.

Ладно. Допустим. Галлюцинация не мешает работать. Руки есть. Часы на стене. Начало шестого. Два с половиной часа. Скачать не успел. Модем мёртв. Но файл на диске. Досовская утилита для побайтовой правки — есть. Значит, можно попробовать.

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

Нажал кнопку питания правого монитора. Ничего. Ещё раз. Индикатор мёртвый. Пощупал корпус — горячий, но не критично. Кабель — сидит. Перевоткнул. Ничего. Антон подул на разъём — рефлекс, бесполезный, но руки делали сами, как дуют на картридж от Денди: знаешь, что не поможет, и всё равно дуешь. Ничего.

Модем — мёртв. Скачивание оборвалось на двенадцати процентах, на диске остался огрызок. Как та вёрстка.

Ладно. Ладно.

Антон перешёл ко второму системнику — тому, где шли Герои. Нажал кнопку перезагрузки. Писки: длинный, короткий — видео ОК, память ОК. Монитор ожил — синий экран, белые буквы, знакомый шрифт. Нормальный экран. Настоящий. Не в голове.

Перетащил кабель от мёртвого монитора к рабочему системнику — тому, на котором лежал файл с вёрсткой. Разъём тугой, винты закисли, Антон крутил пальцами, обламывая ноготь. Подключил. Включил. Обычная магия: машина работает, несмотря ни на что.

На экране появилась командная строка.

Антон открыл каталог печати.

Файл на месте. Двенадцать мегабайт. Побитый — но целый по размеру.

Синий прямоугольник никуда не делся. Висел в правом верхнем углу зрения — полупрозрачный, но читаемый. Антон попытался не замечать. Не вышло.

Антон открыл побитый файл в служебной утилите для работы с байтами. Шестнадцатеричный дамп потёк по экрану: слева — адреса, посередине — байты, справа — точки и буквы. Файл начинался как положено, заголовок был цел.

Повреждение глубже. Где-то в двенадцати миллионах байтов прятался битый кусок, и Антон должен был его найти. Вручную. Отладчиком.

Он прикинул: один экран дампа — полкилобайта. Двенадцать миллионов делить на пятьсот двенадцать — тысяч двадцать пять экранов. При одной секунде на экран — часов шесть с лишним. Антон пересчитал, потому что и это число не хотело укладываться в голову. Шесть с лишним часов.

У него оставалось два с половиной часа.

Синий прямоугольник мигнул. Текст сменился.


А□ОМАЛИЯ ПЕРИФЕРИЙ□ОГО УСТРОЙСТВА

ВИЗУАЛЬ□ЫЙ ВЫХОД ПЕРЕ□АПРАВЛЕ□

ИСПОЛЬЗУЕТСЯ В□УТРЕ□□ИЙ ДИСПЛЕЙ


Антон прочитал. Потом ещё раз. «Внутренний дисплей». Приехали.

Мигнул снова. Новый текст.


ПРОКРУТИТЬ ФАЙЛ К СЕРЕДИ□Е

СМЕЩЕ□ИЕ: ПРИМЕР□О 50% ОТ РАЗМЕРА


Антон не понял. Вернее — понял, но не поверил. Галлюцинация давала команды.

Он перескочил примерно на середину файла. На шестом мегабайте шёл нормальный код, читаемые строки, операторы верстки. Прямоугольник мигнул:


ДАЛЬШЕ


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

Прямоугольник мигнул. Резко, как затвор.


СТОП

ОТКАТИТЬ: СМЕЩЕ□ИЕ 0x009A1200


Антон остановился. Откатил на указанное смещение. И увидел:

00 00 00 00 00 00 00 00
— ровные, мёртвые строки нулей вместо кода.

Он пролистал мимо. Не заметил. А оно — заметило.


ПОВРЕЖДЕ□ИЕ ОБ□АРУЖЕ□О

РАЗМЕР: □ЕСКОЛЬКО СЕКТОРОВ

ПРИЧИ□А: СБОЙ ЗАПИСИ □А ДИСК

РЕКОМЕ□ДАЦИЯ: ЗАМЕ□ИТЬ ИЗ РЕЗЕРВ□ОЙ КОПИИ


Антон перестал дышать.

Оно читало быстрее, чем он. Антон пролистал нули, не остановившись. Оно — остановилось. Засекло. Дало команду.

Такое Антон видел на чужих винтах: до нулей всё читается нормально, дальше несёт чушь. Шестнадцать страниц до нулей — чистые. После — мусор.

Антон открыл резервный файл. Нужно было найти то же самое место — но смещение будет другим: в свежей версии текст правили, файл чуть длиннее, всё сдвинулось. Антон запомнил строчки кода прямо перед нулями — последние читаемые команды, что-то про шрифт, обрывок числа. Поискал те же строчки в резервной копии. Нашёл. Чуть раньше, на несколько сотен байт. Нормальные данные — читаемый, живой код там, где в свежем файле зияли нули.

Вчерашний номер, та же вёрстка. Только телефоны в рекламе и слоган на первой полосе — старые.

Антон посмотрел на утилиту на мониторе. Курсор моргал — настоящий, зелёный. Потом — на синий прямоугольник в голове. Другой курсор. Невозможный. Два интерфейса — один на экране, другой внутри.

Он мог бы не делать ничего. Встать, уйти, захлопнуть дверь. Но два часа до срока, и Михалыч, и серьёзные люди, и двенадцать мегабайт, которые без подсказки он ковырял бы трое суток.

Антон сидел перед монитором. Лампа гудела. Принтер на стеллаже за спиной мигал оранжевым. Во рту пересохло.

Данные на входе — правильные. На выходе — то, что надо. Формула работала. Только подсказка пришла из синего прямоугольника в голове.

Антон вырезал побитый участок и вставил на его место блок из резервной копии. Несколько команд. Пальцы стучали по клавишам быстрее, чем обычно. Руки дрожали — мелко, на грани заметного. Адреналин, которому некуда деться.

Запустил экранный просмотрщик — старый, корявый, зато показывал файл для печати насквозь, без долгой подготовки. Полоска загрузки поползла: десять процентов. Шрифты грузились — один за другим, все на месте. Нормальные шрифты, не кракозябры. Двадцать процентов. Растры раскладывались. Серые прямоугольники начали проявляться — контуры, полутона, детали. Лица. Тридцать процентов.

Антон не дышал. Считал проценты, как ступеньки. Каждый процент — кусок файла, который прошёл через интерпретатор и не сломался. Сорок. Пятьдесят. Шестьдесят — порог: здесь должна была начаться семнадцатая страница, та, что час назад уходила в мусор.

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

Девяносто. Сто.

Антон открыл превью. Страница первая — чистая. Вторая. Десятая. Шестнадцатая — и семнадцатая: лицо кандидата на месте, шрифты ровные, логотип партии в углу. Дальше — восемнадцатая, двадцатая, тридцать вторая. Все на месте. Номера телефонов в рекламном блоке на двадцать третьей странице были старые, из прошлой версии, — но это Антон поправит за пять минут в текстовом редакторе.

Тираж восстановлен.

Внутри что-то отпустило — коротко, тепло, как когда после трёх часов у экрана кофеин наконец добирается до головы и пальцы опять попадают по клавишам.

Рубашка на спине была мокрая — не от жары, от пота, который успел остыть. Руки дрожали. Кофе в кружке с трещиной подёргивался по кругу.

И — на полсекунды, не дольше — благодарность.

К кому?

К синему прямоугольнику. К дырявому тексту без буквы Н. К чему-то, что жило у него в голове и знало, где в двенадцати мегабайтах прячутся мёртвые байты.

Полсекунды. Потом — холод. Не от бетона, не от сырости. Изнутри. Благодарить штуку, которая залезла тебе в голову через модемную линию, — всё равно что обрадоваться, что битый файл вдруг открылся. А потом понять, что чинят уже не файл, а тебя. Страницы на месте, тираж спасён, серьёзные люди не оторвут голову.

Кроме одного.

Файл в порядке. Можно ставить в работу.

Модем лежал мёртвый. Часы на стене показывали 5:37. Лампа гудела. За перегородкой молчали станки. Всё вокруг было тем же, чем было два часа назад, но что-то сдвинулось. Словно в конфигурационном файле переставили один символ: всё работает, но не так.

Синий прямоугольник не уходил.

Текст сменился.


ФАЙЛ ВОССТА□ОВЛЕ□

ПЕРЕХОД К ОС□ОВ□ОМУ ЗАДА□ИЮ

СУБЪЕКТ, ПОДТВЕРДИТЕ ПОЛУЧЕ□ИЕ

ОЖИДА□ИЕ


Основному.

Починка файла была не заданием. Разминкой.

Внизу прямоугольника мигал курсор — тонкая синяя полоска, как в командной строке. Вверх-вниз. Вверх-вниз. Терпеливо. У курсора было всё время мира.

Антон встал. Ноги ватные — от сидения, от разряда, от пяти чашек кофе и двух сигарет на голодный желудок. Отошёл от стола. Прямоугольник двинулся с ним. Повернулся к стене — повернулся.

Он сделал шаг к двери. Потом ещё один. Семнадцать ступенек наверх — он посчитал их в первый рабочий день и с тех пор считал каждый раз, на автомате. Площадка, железная дверь, за дверью — тётя Зина спит на своём стуле, потом крыльцо, улица, холодный сентябрь. Можно выйти. Поймать частника до Чертаново. Лечь в кровать. Закрыть глаза.

Но прямоугольник будет с ним в кровати. Он это уже знал.

Катя. Дома. Наверное, спит. Или не спит — сидит на телефоне с подружками, шепчет и смеётся, и Антон каждый раз хочет сказать что-нибудь взрослое, правильное, братское. «Ложись спать, мелкая. Школа завтра». Но не говорит. Потому что сам не спит. Сам не ест. Сам сидит в подвале и чинит чужие файлы.

Антон остановился у двери. Положил руку на ручку. Металл холодный.

Прямоугольник висел перед глазами. Курсор мигал. Терпеливый.

Он закрыл глаза.

Синие буквы. Дырки вместо Н. Курсор.

Открыл.

Посмотрел на руки. Длинные пальцы, сбитые костяшки, чернила от картриджа под ногтями. Свои. Те самые, которые только что починили файл по подсказке штуки, которая жила у него внутри и звала его «субъект».

Оно было в голове. Не на мониторе, не в проводах, не в дохлом модеме, — между мыслями. В том месте, где раньше были темнота и обрывки музыки из Героев, теперь сидел синий прямоугольник с текстом без буквы Н.

У него было главное задание. Антон не знал, какое. Не хотел знать. Но знание о том, что оно есть, работало как гул лампы под потолком — терпеть можно, выключить нельзя.

Прямоугольник ждал ответа. Антон не отвечал.

Антон убрал руку с дверной ручки. Вернулся к столу. Сел на пол, спиной к системному блоку. Бетон холодный. Линолеум продавленный.

Он сидел и смотрел на стеллаж напротив — пачки бумаги, банки с химией, рулон плёнки. Обычные вещи. Мёртвые, молчаливые, предсказуемые. Ничего в них не мигало. Ничего не ждало ответа.

Под ним — коммуникации, фундамент, промёрзшая московская земля. Над ним — семнадцать ступенек, железная дверь, тётя Зина на стуле, крыльцо, сентябрьская Москва. Там взрывали дома, выбирали депутатов, не спали по ночам. Там мать была в Барнауле, Катя не спала, доллары лежали в мёртвом 386-м, а жизнь была трудной, непонятной, нескладной — но его. Его жизнь. Его голова.

Была.

Синий прямоугольник висел перед глазами. Текст с дырками вместо Н. Курсор мигал — ровно, терпеливо, как метроном. Вверх-вниз. Вверх-вниз.

Он ждал.

Загрузка...