Онлайн книга «Агент: Ошибка 1999»
|
Модем — мёртв. Скачивание оборвалось на двенадцати процентах, на диске остался огрызок. Как та вёрстка. Ладно. Ладно. Антон перешёл ко второму системнику — тому, где шли Герои. Нажал кнопку перезагрузки. Писки: длинный, короткий — видео ОК, память ОК. Монитор ожил — синий экран, белые буквы, знакомый шрифт. Нормальный экран. Настоящий. Не в голове. Перетащил кабель от мёртвого монитора к рабочему системнику — тому, на котором лежал файл с вёрсткой. Разъём тугой, винты закисли, Антон крутил пальцами, обламывая ноготь. Подключил. Включил. Обычная магия: машина работает, несмотря ни на что. На экране появилась командная строка. Антон открыл каталог печати. Файл на месте. Двенадцать мегабайт. Побитый — но целый по размеру. Синий прямоугольник никуда не делся. Висел в правом верхнем углу зрения — полупрозрачный, но читаемый. Антон попытался не замечать. Не вышло. Антон открыл побитый файл в служебной утилите для работы с байтами. Шестнадцатеричный дамп потёк по экрану: слева — адреса, посередине — байты, справа — точки и буквы. Файл начинался как положено, заголовок был цел. Повреждение глубже. Где-то в двенадцати миллионах байтов прятался битый кусок, и Антон должен был его найти. Вручную. Отладчиком. Он прикинул: один экран дампа — полкилобайта. Двенадцать миллионов делить на пятьсот двенадцать — тысяч двадцать пять экранов. При одной секунде на экран — часов шесть с лишним. Антон пересчитал, потому что и это число не хотело укладываться в голову. Шесть с лишним часов. У него оставалось два с половиной часа. Синий прямоугольник мигнул. Текст сменился. А□ОМАЛИЯ ПЕРИФЕРИЙ□ОГО УСТРОЙСТВА ВИЗУАЛЬ□ЫЙ ВЫХОД ПЕРЕ□АПРАВЛЕ□ ИСПОЛЬЗУЕТСЯ В□УТРЕ□□ИЙ ДИСПЛЕЙ Антон прочитал. Потом ещё раз. «Внутренний дисплей». Приехали. Мигнул снова. Новый текст. ПРОКРУТИТЬ ФАЙЛ К СЕРЕДИ□Е СМЕЩЕ□ИЕ: ПРИМЕР□О 50% ОТ РАЗМЕРА Антон не понял. Вернее — понял, но не поверил. Галлюцинация давала команды. Он перескочил примерно на середину файла. На шестом мегабайте шёл нормальный код, читаемые строки, операторы верстки. Прямоугольник мигнул: ДАЛЬШЕ Антон зажал клавишу перелистывания и пошёл по файлу дальше. Седьмой мегабайт. Восьмой. Девятый. Палец уже начал неметь. Десятый. Строки мелькали, Антон не успевал читать — просто шёл, ждал, что мусор сам бросится в глаза. Прямоугольник мигнул. Резко, как затвор. СТОП ОТКАТИТЬ: СМЕЩЕ□ИЕ 0x009A1200 Антон остановился. Откатил на указанное смещение.
И увидел: Он пролистал мимо. Не заметил. А оно — заметило. ПОВРЕЖДЕ□ИЕ ОБ□АРУЖЕ□О РАЗМЕР: □ЕСКОЛЬКО СЕКТОРОВ ПРИЧИ□А: СБОЙ ЗАПИСИ □А ДИСК РЕКОМЕ□ДАЦИЯ: ЗАМЕ□ИТЬ ИЗ РЕЗЕРВ□ОЙ КОПИИ Антон перестал дышать. Оно читало быстрее, чем он. Антон пролистал нули, не остановившись. Оно — остановилось. Засекло. Дало команду. Такое Антон видел на чужих винтах: до нулей всё читается нормально, дальше несёт чушь. Шестнадцать страниц до нулей — чистые. После — мусор. Антон открыл резервный файл. Нужно было найти то же самое место — но смещение будет другим: в свежей версии текст правили, файл чуть длиннее, всё сдвинулось. Антон запомнил строчки кода прямо перед нулями — последние читаемые команды, что-то про шрифт, обрывок числа. Поискал те же строчки в резервной копии. Нашёл. Чуть раньше, на несколько сотен байт. Нормальные данные — читаемый, живой код там, где в свежем файле зияли нули. |