— Двоичный кодовый сигнал, — тут же отозвался Кликс. — 1010011010, повторить три раза.
— Что? Ты уверен?
Кликс постучал себя пальцем по виску.
— Марсианин, может, и мёртв, но память его живёт.
Двумя прыжками я подскочил к нашей радиостанции и нажал кнопку включения питания на чёрной с серебром консоли.
— Как по-твоему, мы сможем послать сигнал на спутники?
Кликс, прищурившись, осмотрел консоль.
— Спутники, очевидно, до сих пор в хорошей рабочей форме, — сказал он. — И хеты пользуются радио так же, как и мы.
— А что с теми спутниками, которые под горизонтом?
— Сигнал отключения будет ретранслирован спутниками, которые его получат, — сказал Кликс. — Нам достаточно связаться с одним. Это имеет смысл, иначе ими бы было невозможно управлять из одной наземной станции.
— Нам не понадобится пароль для получения доступа к спутникам? — спросил я, изучая консоль и пытаясь вспомнить, что делает каждая клавиша.
— Ты же сам говорил, Брэнди. Хеты — ульевый разум. Концепция «пароля» лишена для них смысла.
Я потянулся к большой откалиброванной шкале.
— На какой частоте должен передаваться сигнал отключения?
Кликс закрыл глаза и немного склонил голову набок, внимательно прислушиваясь.
— Так-так… три в тринадцатой степени циклов в…
— Циклов в секунду?
— Нет. Чёрт! Циклов в марсианскую единицу времени.
— И какова длительность этой единицы?
— Это… в общем, не слишком долго.
— Великолепно. — «Стернбергер» содрогнулся от очередного удара. Похоже, трицератопсы дырявили рогами корпус только на одной стороне корабля. И делали это чертовски эффективно.
— Может, ты бы мог запрограммировать перебор частот? — спросил Кликс.
Я посмотрел на консоль.
— Не напрямую. Но я могу подключить к радиостанции палмтоп. Только надо найти подходящий кабель.
Кликс взял в руки электронную камеру.
— Вот этот подойдёт? — спросил он, отцепляя от неё USB-кабель, которым я подключал её к палмтопу.
— Ну, это нужный тип кабеля, но неправильной полярности. Для радиостанции нужен кабель типа «мама», а у этого «папа» на обоих концах.
— По-моему я где-то видел адаптер, когда подключал спектроскопы, — сказал Кликс. Он отошёл к мини-лаборатории и начал её обшаривать. — Вот он. — Кликс отдал мне найденное приспособление, и мы подключили палмтоп к радиостанции. — Теперь ты сможешь послать сигнал?
— Да, но только на одной частоте за раз, и на то, чтобы послать даже коротенький сигнал на всех возможных частотах, может уйти весь день. — Я обескураженно покачал головой. А ведь это казалось такой хорошей идеей. — Кроме того, мы ведь даже не знаем, какой длительности должны быть бинарные сигналы.
— Одна единица измерения времени. — Кликс помолчал, обдумывая то, что только что сказал. — Из чего следует, что как только мы подберём правильную частоту, то сразу же получим и правильную длительность импульсов. — Он снова замолчал, прислушиваясь к внутреннему голосу. — И не беспокойся о модуляции несущей частоты. Просто прерывай передачу там, где нули.
— Хорошо. — Ах, если бы только нос перестал болеть. — Я напишу программку, которая перепробует разные значения длительности их единицы времени. — Кабель был короткий, и до моей кушетки его не хватало, так что мне пришлось программировать стоя, положив палмтоп на отделанный пластиком край радиоконсоли. — С какого значения, по-твоему, лучше начать?
Кликс прикрыл глаза.
— Попробуй… попробуй четыре или пять секунд. Я не знаю, но чувствую, что это близко.
Радиостанция понимала только команды CURB, стандартного командного языка телекоммуникационных процессоров. Я не писал на нём ничего уже чёрт знает сколько лет. Я надеялся, что того, что я помню, мне хватит; у нас определённо нет времени рыться в хелпах. Мои пальцы заплясали над палмтопом. Я запустил калькулятор, посчитал, сколько будет три в тринадцатой степени — как сказал Кликс, количество циклов в марсианскую единицу измерения времени. Потом напечатал: Set Frequency = 1594323. Frequency = Frequency + …
Очередной трицератопс врезался в корпус, и в этот раз он треснул. Я услышал шум вытекающей из водяного бака воды у нас под ногами. Держу пари, они такого не ожидали.
Я решил начать с немного меньшего значения, чем догадка Кликса. Set Time‑unit = 3.000 s. Goto Send…
Корабль снова содрогнулся под ударом трицератопса.
— Брэнди, ты не мог бы поторопиться?
— Хочешь попробовать сам?
— Прости, — он отступил.
Рога уже проткнули корпус во многих местах и существенного его ослабили. Через бронестекло я видел, как трицератопс вразвалку удаляется от корабля.
Я напечатал последнюю строчку программы и запустил компиляцию. Одно, два, три сообщения об ошибке вспыхнули на экране, указав номер ошибочной строки. «Ожидается логическое выражение». «Несовпадение типа». «Зарезервированное слово». Чёрт!
— В чём дело? — спросил Кликс.
— Ошибки компиляции. Где-то напортачил.
— Ты хотел…
— Заткнись и дай мне их исправить. Пожалуйста. — Я переключился в режим редактирования и перешёл к первой ошибке. Ага, первая проблемка совсем простая — опечатка, «adn» вместо «and»; вот что значит отключать автокоррекцию. Я исправил ошибку.
Хр-р-р-рясь!
Меня качнуло. Пахицефалозавр ударил головой в многократно пробитый рогами участок корпуса. Теперь стало ясно, что делал хет в том головаче, которого мы препарировали — оценивал перспективы использования его в качестве тарана. Повезло им, применение тарану нашлось почти сразу.
— Он почти пробил, — крикнул Кликс.
Я щелкнул клавишей, и курсор перескочил к следующей ошибке. «Несовпадение типа». Что бы это значило в данном контексте? А, вижу. Я пытался выполнить математическую операцию над текстовой переменной. Вот дебил.
Полифонический сигнал от паразауролофа-тромбониста разорвал воздух, предположительно давая команду головачу нанести второй удар.
Курсор прыгнул с третьей ошибке. «Зарезервированное слово»? Это означало, что выбранное мной название переменной — FREQUENCY[1347] — было запрещено, поскольку использовалось в языке с какими-то другими целями. Назовём её SAVE_ZAD, это уж точно ни с чем не совпадёт. Запуская компиляцию снова, я так сильно ударил по клавише, что корпус палмтопа едва не треснул.
Я не дышал, пока не увидел вспыхнувшее на экране сообщение: «Компиляция завершена успешно. Ошибок не обнаружено».
— Есть! — воскликнул я.
— Здорово! — закричал Кликс. — Запускай!
Я выбрал имя программы в списке и занёс палец над клавишей Enter.
— Нажми кнопку! — зарычал Кликс.
— Я…
— В чём дело?
— Ты знаешь, что сейчас произойдёт? — сказал я. — Потому что я не уверен, что могу…
— Если не нажмёшь ты, я сделаю это за тебя.
Я посмотрел ему прямо в глаза.
— Нет, — сказал я. — Отказ принимать решение — это само по себе решение. — Я вдавил кнопку, и радиостанция начала передачу.
Хр-р-р-рясь! Череп пахицефалозавра с синими и жёлтыми отметинами на макушке вбил ослабленную секцию корпуса внутрь. Круглый кусок металла метра полтора в диаметре свалился на пол с оглушающим грохотом. Прежде чем мы успели среагировать, костеголовый исчез, и в дыру просунулась голова трицератопса. Кликс вскинул ружьё. У этого динозавра был лишь один надглазный рог; второй, должно быть, обломался во время атак на корабль. Одним слитным движением Кликс упал на пол и снизу вверх выстрелил в мягкие ткани нижней части трицератопсова горла. Удачный выстрел: похоже, пуля перебила-таки спинной мозг.
Через рваную дыру в корпусе мы могли видеть двух других трицератопсов, пытающихся отодвинуть труп в сторону. Кликс стрелял и стрелял, но они не повторяли ошибок своего собрата — головы пригибали к земле, защищаясь костяными воротниками. В короткое время путь был расчищен, и в поле зрения появился отряд троодонов. Они дождались, пока Кликс начнёт перезаряжать ружьё, и бросились в атаку — чешуйчатый вал зубов и когтей, неостановимо катящийся на нас.
Кликс попытался подняться на ноги, но вместо этого шлёпнулся обратно на пол. Мой желудок, казалось, провалился куда-то в район ботинок. Ближайший из троодонов упал на брюхо, двое других повисли на зазубренных краях дыры в корпусе «Стернбергера», остальные неуклюже отступили на грязевую равнину. Чувствуя себя так, словно весил миллион кило, я побежал, как в замедленном кино, к дыре и выглянул наружу, перегнувшись через тела троодонов. Наверху в небе величественный кецалькоатль, закладывающий широкий вираж, смялся, как бумажная фигурка и камнем рухнул на землю. Рядом двенадцатиметровая шея зауропода с громовым грохотом грянулась оземь. Тираннозавры некоторое время держались, а потом один за другим попадали на колени — кости ног подломились под увеличившимся весом. Земля вибрировала и сотрясалась под моими ногами по мере того, как сила тяжести возвращалась к полновесному g. Внезапно грязевая равнина пошла волнами, словно Такомский мост; в воздух поднялись тучи пыли.
Я отошёл от дыры и улёгся на живот рядом с Кликсом. Землетрясение продолжалось, гром бил по ушам, от подъёмов и опусканий земли крутило в животе. Ветер хлестал изо всех отверстий в корпусе «Стернбергера». Постоянно сверкали молнии, но раскаты грома были почти не слышны, заглушаемые другими шумами, в том числе какофонией голосов животных.
Земля вздрагивала, поднималась и опускалась…
Полагаю, что по всей Земле возникали разломы, из которых выплёскивалась раскалённая магма, богатая иридием, мышьяком и сурьмой. Расплавленный камень зажигал бесчисленные лесные пожары и кипятил воду в океанах. Кое-где земля выбрасывала облака ядовитых газов, и огромные цунами накатывали на берега, заливая солёной водой пресноводные мелководья и уничтожая прибрежные экосистемы. Земля под новообретённым весом слегка сжалась, и это давление сформировало ударный кварц и микроалмазы — два любимых доказательства астероидной теории в среде её сторонников.