Смертельный рай - Линкольн Чайлд
Шрифт:
Интервал:
Закладка:
Начали возвращаться остальные. Сначала Шелдрейк, который покачал головой, давая понять, что не нашел никакого выхода. За ним Дорфман и Лоусон, сообщившие, что, как и предполагалось, генератор и кабели питания защищены от какого-либо вмешательства. Последним вернулся Гилмор. Он кашлял, лицо почернело от копоти. Гилмор сказал, что, хотя установку пожаротушения в апартаментах и можно теоретически подключить так, чтобы вода стекала вниз, но это займет час или два. Кроме того, вероятно, воды не хватит, чтобы потушить многочисленные возгорания, очаги которых они видели вокруг.
— Час, — процедил сквозь зубы Шелдрейк. — Нам повезет, если мы переживем следующие десять минут. Здесь самое меньшее пятьдесят градусов. Генератор может взорваться в любую секунду.
Ответа ни у кого не нашлось. Стало так жарко, а дым настолько сгустился, что Лэш почти не мог дышать. При каждом вдохе ему казалось, что легкие его полны острых игл. Голова кружилась, становилось труднее сосредоточиться.
— Минуту, — сказала Тара, подходя и останавливаясь перед пультом IBM-2420.— Эти кнопки — каждая из них обозначена символом ассемблера.
Не слыша ответа, она обернулась к Сильверу.
— Я права?
Создатель «Эдема» закашлялся и кивнул.
— Для чего они используются?
— В основном для диагностики. Если программа не работает, можно выполнять ее пошагово, операцию за операцией.
— Или вручную ввести новые команды.
— Да. Эти кнопки — анахронизм, оставшийся от более ранней модели.
— Но они дают доступ к памяти? К регистрам?
— Да.
— Значит, мы могли бы выполнить короткий набор команд.
Сильвер покачал головой.
— Я уже говорил. Защита Лизы не воспримет никакой новой программы.
— Я не об этом.
Мочли обернулся и посмотрел на Тару.
— Мы не стали бы ничего вводить с какого-либо периферийного устройства, просто нажали бы несколько клавиш с кодами команд. Вот эти. Пять… нет, четыре, должно хватить. Мы нажимали бы их раз за разом.
— Какие коды команд? — спросил создатель «Эдема».
— Получить содержимое памяти по данному адресу. Выполнить с этим содержимым логическую операцию AND. Заменить его новым значением. Увеличить показания счетчика.
Наступила тишина.
— О чем она? — спросил Шелдрейк.
— Я говорю о самом примитивном методе доступа к памяти компьютера. Байт за байтом. Об изменениях, выполняемых вручную, с пульта. — Тара повернулась к Сильверу. — Это восьмибитная машина?
Создатель «Эдема» кивнул.
— Каждый байт в памяти этого компьютера состоит из восьми бит. Так? Каждый из них может принимать только одно из двух значений: ноль или единица. Восемь таких двоичных чисел составляют команду, слово на языке компьютера. Я говорю о том, чтобы обнулить все эти команды. Очистить его память. Стереть ее.
Шелдрейк нахмурился.
— Как вы хотите это сделать, черт возьми?
— Нет, она права, — сказал Дорфман. — Можно выполнить операцию AND для нулевого байта и содержимого каждого адреса памяти. Весьма изящный способ.
Шелдрейк повернулся к Мочли.
— Вы понимаете, о чем они говорят?
— AND — это логическая операция, — продолжал техник. — Она сравнивает каждый бит с указанным значением и либо не трогает его, либо изменяет это значение.
— Все просто, — добавила Тара. — Если выполнить операцию AND над нулем и нулем, находящимся в памяти, его значение останется нулевым. А операция AND над нулем и находящейся в памяти единицей изменит ее значение на ноль. Таким образом, простая команда — AND 0 — может изменить содержимое каждой ячейки памяти на нулевое.
— Оставив одни лишь NOP, — кивнул директор вспомогательной службы.
— «Нет операции». — В голосе Дорфмана слышалось возбуждение. — Именно. В памяти компьютера останутся лишь пустые регистры.
— Не получится, — сказал Сильвер.
— Почему? — спросила Тара.
— Я уже объяснял. В разных блоках Лизы имеется десяток виртуальных копий этой машины. После каждой тысячи вычислительных циклов они сравниваются друг с другом. Новые команды распознаются и игнорируются.
— Вовсе нет. — Тара закашлялась. — Мы не вводим никакой новой информации. Мы просто обнулим память компьютера. Вручную.
— Не может быть и речи, — бросил Сильвер.
Его резкий тон удивил Лэша. В течение долгого времени — с тех пор, как замолчала Лиза, а может быть, даже раньше — Сильвер выглядел подавленным, побежденным. Теперь же в его голосе прозвучали решительные нотки, каких Лэш не слышал со времени их первой конфронтации.
— Почему? — спросила Тара. Сильвер обернулся. — Вы хотите сказать, что учли подобную возможность, программируя защитные процедуры?
Создатель «Эдема» молча скрестил руки на груди.
— Вы уверены, что обнуление первоначальной памяти Лизы не остановит ее саморазрушительных действий? Или, по крайней мере, не вызовет краха системы?
Этот вопрос тоже повис в воздухе. Лэш впервые увидел грязно-оранжевое пламя на фоне черного дыма, бьющее из стойки с оборудованием у противоположной стены.
— Доктор Сильвер, — сказал директор. — Может, стоит попробовать?
Создатель «Эдема» медленно повернулся к нему. Казалось, вопрос застиг его врасплох.
— К черту, — бросила Тара. — Если вы мне не поможете, я сделаю это сама.
— Вы умеете программировать эту машину? — спросил Лэш.
— Не знаю. Язык ассемблера компьютеров IBM мало менялся. Могу лишь сказать, что я не собираюсь стоять без дела и ждать смерти.
Она подошла к пульту старого компьютера.
— Нет, — сказал Сильвер.
Взгляды всех присутствующих обратились к нему.
«Он не позволит ей сделать это, — подумал Лэш. — Не позволит ей остановить Лизу». Он, как зачарованный, смотрел на Сильвера, который, казалось, вел напряженную внутреннюю борьбу с самим собой.
Не обращая на него внимания, Тара протянула руку к ряду кнопок.
— Нет! — крикнул создатель «Эдема».
Лэш инстинктивно шагнул вперед.
— Сначала нужно учесть бит четности, — сказал Сильвер.
— То есть? — удивилась Тара.
Сильвер глубоко вздохнул и закашлялся.
— У этого 2420 уникальный способ адресации. Команды имеют длину в девять бит вместо обычных восьми. Если не замаскировать бит четности, то не получишь пустую команду.
Сердце Лэша подпрыгнуло в груди. «И все-таки Сильвер с нами. Он поможет нам».
Создатель «Эдема» подошел к телетайпу, включил его и провел конец бумажной ленты через пластиковые направляющие, затем обошел стол и встал перед центральным процессором 2420. Движения его были все более решительными.
— Что вы делаете? — спросила Тара.
Сильвер присел перед машиной.
— Хочу проверить, продолжает ли этот компьютер реагировать на команды, вводимые вручную.
— В смысле?
Создатель «Эдема» выставил голову из-за корпуса.
— У нас будет только один шанс. Если у нас ничего не выйдет, Лиза приспособится к новой ситуации. Поэтому я собираюсь сбросить текущее содержимое памяти этой машины на перфоленту.
Тара нахмурилась.
— Мне кажется, вы говорили, что никакого дополнительного доступа нет.
— Нет. Но есть несколько старых диагностических средств, которые не сумел бы использовать ни один хакер.
Голова Сильвера снова скрылась за корпусом. Вскоре телетайп ожил. Выцветшая бумажная лента начала перемещаться по направляющим. На пол посыпался дождь крошечных бумажных кружочков.
Примерно через минуту процесс завершился. Сильвер протащил перфоленту чуть дальше и оторвал. Он провел ее между пальцами, внимательно рассматривая, затем кивнул.
— Похоже, сброс памяти удался.
— Тогда за дело.
За спиной Тары появились новые языки огня, подсвечивая ее темные волосы.
Сильвер смотал ленту и сунул ее в карман.
— Я буду называть коды, а вы будете вводить их.
Тара уже занесла руки над пультом.
— Нажмите клавишу LDA, чтобы загрузить адрес первой ячейки памяти в регистр.
Лэш увидел, как под пальцем Тары загорелась лампочка.
— Теперь введите с тех переключателей 001111000. В десятичной системе это будет 120, первая доступная ячейка памяти.
Тара пробежала пальцем по ряду кнопок.
— Теперь нажмите клавишу ВВОД.
На пульте загорелась зеленая лампочка.
— Есть, — сообщила Тара.
— А сейчас нажмите ADD.
— Нажала.
— С переключателей введите 100000000.
— Погодите. Эта единица вначале может все испортить.
— Бит четности, помните? Нужно выставить его.
— Хорошо. — Тара снова пробежала пальцами по кнопкам. — Готово.
— ВВОД, чтобы выполнить команду «AND 0» для этой ячейки памяти.
Очередное нажатие клавиши, очередное подтверждение.
— Теперь STM, чтобы сохранить новое значение в памяти.
Тара надавила на клавишу в конце ряда и кивнула.