Выбрать главу

- Попытайся ответить еще раз, Дарла. Возьми данные из входных переменных.

- 215,6 стандартной единицы. - Тон ее стал более холодным. - Как бы то ни было, масса является фиксированным, а не переменным параметром.

Глаза у меня полезли на лоб. Пилот выглядел так, как будто увидел привидение. Я сглотнул:

- Какова скорость обмена углекислого газа?

- Это вы меня спрашиваете, командир? 38,9 литра. Все это есть в таблицах.

Я перевел взгляд с главного инженера на пилота, потом на клавиатуру. Пилот кивнул.

Я подошел к пульту и как мог спокойно сказал:

- Ввод команд только через клавиатуру, Дарла. Ответ выдавать на экран.

Мы не знали, что делать.

Убедившись, что Дарла нас не слышит и реагирует только на клавиатуру, мы стали совещаться, но на всякий случай отошли в самый дальний угол.

- Мы ведь сменили параметры, верно? Все это видели. - Я нуждался в поддержке.

- И они были восприняты, командир, - ответил пилот. - Я сделал новую распечатку. Взгляните. Мы перевели базовую массу из фиксированного параметра в переменную и одновременно сменили начальное значение.

В чем же дело? Меня била дрожь.

- У нее серьезные неполадки, - сказал Макэндрюс. - После активации она не видит сделанных нами изменений. Это серьезнее, чем просто порча входных данных.

- Сможем ли мы ее починить? Пилот покачал головой:

- Я даже не уверен, что удастся обнаружить причину.

- Хорошо, а как она запоминает параметры? - спросил главный инженер.

- В особом файле, - ответил Хейнц.

- В каком? Я вмешался:

- У вас есть идея?

Главный инженер пожал плечами:

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

- Попытаемся, - ответил я.

Мы снова осторожно раздели Дарлу. Это оказалось не очень трудно. И через час проникли на нужный уровень.

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

Пилот рыскал по области памяти, указанной в руководстве. Наконец он остановился на двух файлах: параметры/ввод и переменные/ввод. Расшифровав последующий код, он определил файловые сектора и напечатал на клавиатуре полученные адреса.

Файл был длинным, около тысячи четырехсот входных величин. Он высвечивал каждую из них на экране и быстро переходил к следующей. Входные данные сопровождались английскими названиями: "Длина корабля - 412,416 метра". Я никак не мог сосредоточиться, пока мы скользили по бесконечному массиву. Вдруг на экране появилась надпись: "Конец фаськи, Джори"!

- Черт возьми, что это значит? - испуганно воскликнул я.

Пилот закусил губу:

- Господи Боже мой, понятия не имею. Он нажал на клавишу. На экране появилось: "Неплохо для землянки, а?"

- Давайте назад.

Пилот послушно вернулся назад.

"Диаметр шахты 4,836 метра. Смотри, какие си".

Главный инженер выругался. Я внимательно выслушал его, стараясь запомнить новые комбинации слов, которые в будущем могли оказаться полезными. Потом сказал:

- Выведите все три вместе.

Пилот Хейнц вывел на экран все три записи. "Диаметр шахты 4,836 метра. Смотри, какие сиконец фаськи, Джори! Неплохо для землянки, а?"

- О Христос, - пробормотал пилот. - Вы только посмотрите! Они написали поверх метки конца файла!

- Объясните, - резко произнес я. - И хватит возмущаться!

Пилот Хейнц покраснел:

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

- Ну и?..

- Все файлы кончаются меткой "конец файла". Кто-то сделал эти надписи поверх метки конца файла. Фиксированные параметры Дарлы хранятся как раз перед переменными. Из-за отсутствия метки она не могла отличить одни от других. И чокнулась! Ничего удивительного!

- Но кто это сделал? - спросил я. - И зачем? Главный инженер сердито сказал:

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

- Программисты Военно-Космического Флота? - не поверил я своим ушам.

- Да, они, - выплюнул он. - Проклятые хакеры!

- Шеф! - возмутился я. С тех пор как Лига молодых хакеров проникла в банки данных Главной штаб-квартиры Объединенных Наций и стерла половину мировых налогов, слово "хакер" стало чуть ли не ругательным.

- Хакеры они и есть хакеры! - в сердцах ответил он. - Пусть Господь Бог проклянет их!

Это было богохульством, если, конечно, не понимать сказанное буквально. Что я и сделал, и произнес "аминь", дав понять, что воспринял его слова как молитву. Потом приказал:

- Проверьте соседние секторы. Скопируйте испорченные записи в корабельный журнал.

- Есть, сэр, - Главный инженер с мрачным видом застучал по клавишам пульта. - Чертовы программеры веселились, как малолетние кадеты. В банках данных хватает пустого места, но они записали свою чепуху в рабочие файлы.

И теперь мой корабль в опасности.

- Когда вернемся домой, я подам на них в суд, - заявил я жестко. - Или вызову их на дуэль, если они будут оправданы. Клянусь Господом Богом. Идиотское заявление, но я был слишком зол, чтобы думать.

Дуэли вновь узаконили в 2024 году, чтобы взять под контроль растушую эпидемию убийств. Я поступил опрометчиво, потому что не имел представления о боевом мастерстве программистов и мог отдать Богу душу. Выбор оружия принадлежал бы им.

Главный инженер одобрительно посмотрел на меня:

- Я присоединяюсь к вам, сэр, и клянусь здесь...

- Замолчите! - взревел я. - Не смейте произносить клятвы.

- Есть, сэр, - только и мог он сказать.

- Простите, шеф. Но ответственность лежит на мне. И как бы то ни было, реакция у меня быстрая.

- Да, сэр. - Он сверкнул на меня глазами, но я не увидел в них злости - только досаду. Он был уже далеко не молод, стал полнеть и прекрасно понимал, что может погибнуть на дуэли. В общем, вряд ли стоило рассчитывать на дуэль. Тем более что программиста по имени Джори немедленно потащат на детектор лжи для допроса под наркотиками, как только мы представим журнал в Адмиралтейство.

Тут в голову мне пришла мысль, от которой я невольно нахмурился.

- Выходит, жизнь людей на корабле зависит от простого маркера конца файла? Но разве в Дарле нет резервирования? Мер зашиты?

- Разумеется, есть, - ответил пилот. - Дарла постоянно ведет проверку на внутреннее соответствие.

Я оставил его замечание без ответа, а главный инженер сказал;

- Видимо, в какой-то момент она прекратила проверку. Но почему? Пилот огрызнулся:

- Откуда мне знать? Я что, системный программист?

- Хватит! - Под моим свирепым взглядом они притихли. - Пилот, можем мы устранить "клопа"?

- Пожалуй, да, если перепишем метку конца файла.

- Не уверен, - сказал главный инженер.

- Почему? - спросили мы в один голос с пилотом.

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