Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги хакеры / журнал хакер / специальные выпуски / Специальный выпуск 4_compressed

.pdf
Скачиваний:
16
Добавлен:
20.04.2024
Размер:
7.13 Mб
Скачать

 

 

БАЙКА

 

 

 

>СПЕЦВЫПУСК #4

003B

59

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ству, над здоровяком - барменом, висел телевизор.

выстрел, туша

вздрогнула от попадания, и от не¸ отор-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Бармен, сидя спиной ко мне, смотрел новости. Дик-

вало кусок - очередной, видимо - мяса. Кровь обрыз-

 

 

 

 

 

 

 

 

 

 

 

торша CNN вещала на всю Америку по-английски:

гала нас с Сайдом с головы до ног. Послышался оче-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

редной душераздирающий крик.

 

 

 

 

 

 

 

 

 

 

 

- Волна террора прокатилась по планете. Вот уже пять

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дней в России, в подмосковном городе Лотошино, тер-

- Эй, Ядовитый, ты только посмотри, кто к нам прие-

 

 

 

 

 

 

 

 

рористами захвачен ликеро-водочный завод. До сих

хал! - Сайдекс размазал кровищу по лицу рукавом, и

 

 

 

 

 

 

 

 

 

 

 

пор террористы никак не могут сформулировать свои

зашел. Я проследовал за ним.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

требования...

У противоположной стены стояла усатая-бородатая

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Неожиданно голос дикторши разорвал грохот выстре-

личность в бандане, белом, забрызганном кровью ха-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

лов и жуткие, леденящие душу крики. Стреляли калиб-

лате, накинутом на косую кожаную куртку, с помповым

 

 

 

 

 

 

 

 

 

 

ра из двенадцатого, где-то совсем рядом -

может

дробовиком, и в

темных очках. Личность, неожиданно

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

быть, даже в соседней комнате. Запахло пороховой

испустив очередной истошный крик, резко перезаря-

 

 

 

 

 

 

 

 

 

 

 

гарью. Мой аппетит моментально пропал, а инстинкт

дила ружь¸, и с бедра, не целясь, снова грохнула по

 

 

 

 

 

 

 

 

 

 

 

самосохранения заработал. Я прыгнул под стойку, и

коровьей туше. Запах пороховой гари стал резче.

 

 

 

 

 

 

 

 

 

 

 

закрыл голову руками. Стрельба сотрясала стойку,

 

 

 

 

 

 

 

 

 

стаканы дрожали.

 

Я не успел ничего сказать. Личность сняла темные оч-

 

 

 

 

 

 

 

 

 

 

 

- Э, парень, вылазь! - голос бармена вернул меня к

êè, è...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

жизни. - Ты чего туда залез?

 

- Ядовитый! И здесь ты!

 

 

 

 

 

 

 

 

 

 

 

- Òàê

стреляют же, - мой голос оказался неожиданно

- Е-мое, Холод, дарова! - Ядовитый обрадовано шмыг-

 

 

 

 

 

 

 

 

 

 

 

писклявым. - заденут... Вечно у вас в Америке стрель-

нул, бросил ружье, и поздоровался. - А я, видишь, по-

 

 

 

 

 

 

 

 

 

 

 

ба и мафия, сплошной рекет. Убить могут.

ка на каникулах, Сайдексу помогаю...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- Так ты русский? - Выстрелы и крики тем временем не

- А чего из ружья-то? - я недоверчиво смотрел на Ядо-

 

 

 

 

 

 

 

 

 

 

 

прекращались. Бармен заулыбался, и, подав мне руку,

витого, словно он был частью моего очередного дурно-

 

 

 

 

 

 

 

 

 

 

 

вытащил из-под стойки. Здоровенная ручища показа-

ãî ñíà.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

лась мне знакомой...

- Так, это, чтоб специальность не растерять, опыт, сам

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- Сайдекс? А ты сюда как попал? Ты не на учебе в Пра-

понимаешь... А то как же я потом сяду в Унрыл-то иг-

 

 

 

 

 

 

 

 

 

 

 

ге? - только тут я понял, что вс¸ это время бармен го-

рать? Что ребята скажут? - Ядовитый выглядел рас-

 

 

 

 

 

 

 

 

 

 

 

ворил со мной по-русски. - Ты тут чего делаешь?

строенным.

 

 

 

 

 

 

 

 

 

 

 

 

- О, Холод прилетел, - Сайд заулыбался. - Учеба - уче-

- Аа, понятно. - Я, наконец, успокоился, взял себя в

 

 

 

 

 

 

 

 

 

 

 

бой, а работать тоже нужно. Вон, видишь, какой у ме-

руки и тоже, как Сайдекс, локтем размазал кровищу по

 

 

 

 

 

 

 

 

 

 

 

ня бизнес. Самый - самый лучший магазин в черте

лицу. - А меня, вот, ФСБ прислало. Рамхака ловить бу-

 

 

 

 

 

 

 

 

 

 

 

аэропорта!

дем. Как там дела с ядерными ракетами, а? Я новостей

 

 

 

 

 

 

 

 

 

 

 

- Поняяяаатно, - я поднял, наконец, голову, но от каж-

íå çíàþ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дого очередного выстрела и крика вс¸ равно продол-

Сайд и Ядовитый помрачнели.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

жал вздрагивать. - А что это грохает?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- Никто не знает, что у него там толком. Говорят, си-

 

 

 

 

 

 

 

 

 

 

 

- Не что, а кто. Да не бойся, это наш, хе-хе, мясник ра-

дит в компьютерном центре, в подземном бункере на

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ботает. Он со Въетнама малость того, возбудимый

кнопке запуска ядерной ракеты по бывшему СССР. -

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

стал. Агрессивный. Но специалист по мясу - классный.

Сайд расстроено покачал головой. - Ничего не тре-

 

 

 

 

 

 

 

 

 

 

 

Видел? - Сайд кивнул на висящие вдоль стены делика-

бует, никаких заявлений не делает. И вообще молчит.

 

 

 

 

 

 

 

тесы. - Вс¸ свое, с заводов не возим, чужого не дер-

Но и внутрь бункера никого не пускает. Это тут неда-

 

 

 

 

 

жим, андерстенд? Хочешь нашего монстра посмот-

леко, под Вашингтоном, на старой ракетной базе “но-

 

 

 

 

 

 

 

 

 

 

реть? Да ты его и так знаешь!...- Сайдекс указал мне

ìåð 2923908”.

 

 

 

 

 

на дверь, ведущую в подсобку - выстрелы и крики раз-

 

 

 

 

 

 

 

 

 

 

 

 

 

давались именно оттуда. Мы подошли, и он приоткрыл

- Понятно. - У меня начал созревать смутный план дей-

 

 

 

 

 

å¸...

 

 

ствий. - Какой тут автобус до базы ходит?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

За дверью оказался маленький мясной цех, по колено

- Смеешься? Там все дороги перекрыты. - Ядовитый

 

 

 

 

 

залитый кровищей. На крюке в центре помещения ви-

тоже выглядел взгрустнувшим. - Как-то не хочется

 

 

 

 

 

села истерзанная коровья туша. Грохнул ещ¸ один

умирать всем миром из-за сумасшедшего програм-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

60

003C

БАЙКА

 

 

 

>СПЕЦВЫПУСК #4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- ЕСТЬ НА ЧЕМ, - УЛЫБНУЛСЯ В ОТВЕТ ЯДОВИТЫЙ. - У МЕНЯ ТУТ БАЙК СТОИТ ВО ДВОРЕ - ТАКОЙ, чТО ХАРЛЕИ ОТДЫХАЮТ. И ВААЩЕ, ПОКА МЫ С ТОБОЙ ТУТ ВМЕСТЕ ПЕРЕМЕЩАЕМСЯ - НАС НИКТО НЕ ТРОНЕТ, - ТУТ ОН УГРОЖАЮЩЕ ПОТРЯС РУЖЪЕМ, И ПОЛЕЗ КУ- ДА-ТО ПОД СТОЛ. - ПОТОМУ, ЧТО МЫ - БАНДА. СЕЙЧАС, ПОГОДИ, БЕНЗОПИЛУ ДОСТАНУ ТОЛЬКО, И ПОЕДЕМ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

миста

-

земляка, который ещ¸ и террорист, к тому же.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Åñëè

только по бездорожью...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- Âîò

и езжайте вдвоем! Быстрее разберетесь. А мне

 

 

 

 

 

 

 

 

 

 

 

работать надо! - Сайдекс уверенно всучил помповик

 

 

 

 

 

 

 

 

 

 

 

обратно в руки Ядовитому. - Езжайте! Времени мало -

Там, где не ходят

автобусы

 

 

 

 

 

 

 

 

 

 

работы непочатый край! Вдвоем и поедете. А меня

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

клиенты ждут.

 

Распрощавшись с Сайдексом,

 

 

 

 

 

мы вышли во

 

 

 

 

 

 

 

 

 

 

 

 

 

äâîð.

 

 

 

 

 

 

 

 

 

 

- Э, э, погоди, как-то ты вс¸ быстро порешил. А на чем

Смеркалось. Он повел меня за

 

 

здание магазина,

ê

ìà-

 

 

 

 

 

 

 

 

 

 

 

 

 

мы поедем? - я вернулся к реальности.

ленькой подсобной хатке. Поковырялся в замке

 

 

 

 

старым

 

 

 

 

 

 

 

 

 

ржавым ключом, покрутил что-то, и дверца в подсобку

 

- Есть на чем, - улыбнулся в ответ Ядовитый. - У меня

со скрипом открылась. Отдав мне в руки бензопилу,

 

тут байк стоит во дворе - такой, что Харлеи отдыхают.

Ядовитый ввалился внутрь. Через минуту послышалось

 

 

И вааще, пока мы с тобой тут вместе перемещаемся -

фырканье, из-за двери повалил дым, и Ядовитый выка-

 

нас никто не тронет, - тут он угрожающе потряс

тил во дворик потрясающего вида огромный байк с ги-

 

 

 

 

ружъем, и полез куда-то под стол. - Потому, что мы -

гантской рулевой вилкой, фантастическим креслом с

 

 

банда. Сейчас, погоди, бензопилу достану только, и

спинкой, и задним колесом, по меньшей мере, от Жи-

 

поедем.

 

 

гулей. Байк ревел и дымил. Ядовитый жестом попро-

 

 

 

 

 

БАЙКА

 

 

 

 

 

 

 

 

 

 

>СПЕЦВЫПУСК #4

003D

61

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сил меня передать ему бензопилу, и приладил е¸ в

Ядовитый на секунду повернул голову за плечо, ко

 

 

 

 

 

 

 

 

 

 

 

 

 

 

специальный карман справа, рядом с предусмотри-

мне. - Сейчас первый кордон будет, но нас за него

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тельно убранным помповым ружьем. Приоткрыл кожа-

просто так не пропустят. Проклятые капиталисты!

 

 

 

 

 

 

ную сумку на боку - там оказались коробки с патрона-

Держись, будем пробиваться с боем! Ружье возьми!

 

 

 

 

ми, двенадцатый калибр.

 

- Как с боем, Ядовитый? Ты обалдел? Какое ружье? -

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- Садись давай, поехали! - он проорал это с громкос-

я, тем временем, судорожно выглядывал из-за плеча

 

 

 

 

 

 

тью реактивного самолета, но через рев мотора я его

Ядовитого на дорогу - там и впрямь показался поли-

 

 

 

 

 

 

 

 

 

едва слышал. - Ехать до ракетной базы - часа три - че-

цейский кордон: сине-красные мигалки разрывали

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тыре, там ещ¸ кордоны миновать надо - учти. Так что

ночную темноту на части, слышалась непривычная,

 

 

 

 

 

 

 

 

пропущенная через матюгальники буржуинская речь,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

виднелись контуры заграждений и машин. - Мы же ко-

 

 

 

 

 

 

го-нибудь убить

можем!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- Не боись, Холод,

в патронах транквилизатор! Никого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ты не убъешь - так, попугаешь только. - Ядовитый, не

 

 

 

 

 

 

 

 

 

 

 

 

сбавляя хода, залез одной рукой за пазуху, и извлек

 

 

 

 

 

 

 

 

 

 

 

 

две хоккейные маски - такие же, как в кино про Дже-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ка-Потрошителя. - На, надевай! И ружье достань! Пат-

 

 

 

 

 

 

роны в сумке, помнишь?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ружье-то я взял, но ответить на вопрос Ядовитого не

 

 

 

 

 

 

 

 

 

 

 

 

успел - к тому моменту кордон был уже совсем близ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вая собственный мотоцикл, выжал газ, и мы понеслись

 

 

 

 

 

 

 

 

 

 

 

 

в сторону заграждений, подобно древнему рыцарю

 

 

 

 

 

 

 

 

 

 

 

 

Дону Кихоту, с ружьем вместо копья наперевес. Нео-

 

 

 

 

 

 

 

 

 

 

 

 

жиданно нам в глаза ударили прожектора, и из ружья

 

 

 

 

 

 

 

 

 

 

 

 

я стрелял уже вслепую - возможно, в кого-то и попал,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

потому, что крики со стороны кордона стали на поря-

 

 

 

 

 

 

 

 

 

 

 

 

док громче. И тут под колесо байка что

-то попало, и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мы с Ядовитым полетели через голову в

придорожную

 

 

 

 

 

 

 

 

 

 

 

канаву...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

История Рамхака

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

поторопимся, двигай телом!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В канаве было мокро и грязно - я это прочувствовал

 

 

 

 

 

Я кое-как взобрался на железного коня Ядовитого, и

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

 

 

 

 

 

 

 

 

 

 

 

мы понеслись вдаль от аэропорта, куда-то в постепен-

копна травы, растущая, видимо, из бортика канавы.

 

 

 

 

 

но темнеющие сумраки привашингтонских прерий. Ве-

Рядом, сжимая в руках сумку с транквиль - патронами,

 

 

 

 

 

тер свистел в ушах. Что-то хрипело в моторе, спина

валялся Ядовитый. Его косуха вымазалась в грязи, и

 

 

 

 

 

 

 

 

Ядовитого наглухо закрывала мне обзор. Я оконча-

уже не казалась такой блестящей, а темные очки поте-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тельно расслабился, впился замерзающими от ветра

рялись. Слышались крики полицейских, а наверху бе-

 

руками в спинку мотоциклетного кресла, и, по-моему,

гали блики фонарей.

 

 

 

 

 

 

 

 

 

заснул. Сколько я спал - не знаю.

- ТССС! Они нас ищут! Холод, они не должны нас най-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пробуждение мо¸ наступило от окончательного рас-

ти! Где мотоцикл?

 

 

 

 

 

 

 

 

 

тряхивания. Ядовитый свернул с шоссе на какой-то

 

 

 

 

 

 

 

 

 

 

жуткий грунтовый проселок, и вот уже с пол-часа тряс

Подо мной лежало нечто жесткое и на ощупь вполне

нас по ней. Было глухо, темно и холодно. Единствен-

железное. Внутренняя ассоциативная система подска-

 

 

ная фара нашего чуда техники с трудом освещала про-

зала, что это, возможно, и есть искомый Ядовитым

 

 

 

 

селочную дорогу.

объект.

 

 

 

 

 

 

 

 

 

- Холод, ты проснулся там? Вс¸, почти приехали. -

- Вот он, подо мной валяется! Ты что, не чувствуешь?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

62

 

 

003E

БАЙКА

 

 

 

 

 

 

 

 

 

>СПЕЦВЫПУСК #4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ядовитый повернулся, и начал копаться в темноте и

Тем временем крики над канавой стихли, а фонарики

 

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

пропали - видимо, нас искали уже где-то поодаль.

áîðò.

- Ползти надо, - заявил Ядовитый. - По направлению

 

- Вот ведь блин, - голос Ядовитого дрожал. - Бензопи-

вдоль дороги, то есть - в нашем случае - по дну канавы.

ла погнулась в кармане - байк на не¸ упал. Не приго-

Пока нас снова здесь искать не стали. Поехали? - он

дится больше, не поработать мне с ней, родимой, над

встал на карачки, повернулся ко мне задом, и почавкал

 

 

вырезками и ребрышками говяжьими. И кардан сломал-

на четырех костях по дну нашего арыка.

ся. На две части. - он показал мне кусок толстенной же-

 

 

 

 

 

 

 

лезяки, и машинально сунул его в здоровенный карман

Я заткнулся, повесил ружье на ремень за спину, чтоб не

 

 

косухи. - Каюк мотоциклу. Знаешь, Холод, я на следую-

измазать сей благородный девайс окончательно, и по-

 

 

 

 

 

 

 

 

щее лето к Сайду в магазин работать больше не пойду

полз вслед за ним.

 

 

 

 

 

 

- неохота. Поеду лучше на Кубу - там сигары, женщины

 

 

 

 

 

 

 

и работа по специальности...

Минут через пятнадцать ползти мы окончательно уста-

 

ли. Было принято решение вылезти на дорогу,

 

è,

прики-

 

 

 

- Ага. Кубинским Гуэрилльос в лесах помогать. - шепо-

дываясь местными жителями, напрямую идти

 

ê

бункеру

 

 

 

 

 

том огрызнулся я. - Ты уж лучше скажи, коммандос наш

ракетной базы. Благо, когда мы вылезли, не

обнаружи-

 

 

 

 

 

 

 

 

разлюбезный, что теперь делать будем. - У тебя права-

ëè íè äóøè.

 

 

 

 

 

 

то, кстати, на вождение мотоцикла есть?

Дорога ко входу в бункер ракетной базы заняла минут

 

 

 

 

 

- И на оружие тоже нет, - ответил в тон Ядовитый, и ди-

десять - она выглядела как крохотный курганчик посре-

ковато захихикал.

ди поля, у входа стоял открытый армейский джип и

 

 

БАЙКА

 

 

 

>СПЕЦВЫПУСК #4

003F

63

 

 

 

 

 

 

 

 

 

 

 

 

 

 

двое часовых. Я не спрашивал Ядовитого, откуда

îí

вый офисный стул валялся здесь же по частям, а в

 

 

 

 

 

 

 

 

 

 

 

знал, как идти к бункеру - это не имело значения.

Ìå-

дальнем и самом темном углу сидел... Рома

 

 

 

 

 

 

 

ня больше интересовало другое.

 

Хади, Рамхак - с огромной трехлитровой банкой само-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- Ядовитый, и что мы теперь будем делать?

 

гона в обнимку.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- Как что? Теперь надо убрать часовых. - к Ядовитому

- А ну вставай! С самой России за тобой приехали, га-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вернулась обычная уверенность в себе. - Дай-ка мне

дина! Вот ведь гад, и где он тут только “Балтику” взял.

 

 

 

 

 

 

 

 

 

 

 

 

 

ружье...

- Ядовитый поднял Рамхака за шкирма, и прислонил к

 

 

 

 

 

 

 

 

 

стене. Тот, впрочем, не упал, и даже самогон не выро-

 

 

 

 

 

 

 

 

Два выстрела - два попадания. Часовые успешно лег-

нил, а даже открыл глаза, и...

 

 

 

 

 

 

 

 

 

 

 

 

 

ли у стен бункера, и мы подошли к ним. Здоровенные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

американские Джи-Аи храпели здоровым детским

- Ùàñ êàê äàì...

Больно... Капиталистическая свинья,

 

 

 

 

 

 

 

 

 

 

 

сном. Я порылся в карманах одного из них, и нашел

вот. - Рамхак дыхнул на Ядовитого своим “заспиртуй

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- НЕ ЧТО, А КТО. ДА НЕ БОЙСЯ, ЭТО НАШ, ХЕ-ХЕ, МЯСНИК РАБОТАЕТ. ОН СО ВЪЕТНАМА МАЛОСТЬ ТОГО, ВОЗБУДИМЫЙ СТАЛ. АГРЕССИВНЫЙ. НО СПЕЦИАЛИСТ ПО МЯСУ - КЛАССНЫЙ. ВИДЕЛ?

 

 

 

 

 

 

 

 

 

 

 

 

ключи

от джипа.

 

бабочку”. Такого

обращения тот, естественно не стер-

 

 

 

 

 

 

 

- Î! -

Ядовитый повеселел ещ¸ больше, когда увидел

ïåë.

 

 

 

 

 

 

 

 

 

 

 

табличку,

наспех приклеенную на дверь бункера. - Ты

- Ах ты паскудина,

Родину позоришь, террористище

 

 

 

только

посмотри на это!

международный!

- Ядовитый неожиданно выхватил из-

 

 

 

 

 

 

 

за пазухи кусок

кардана, припрятанный ещ¸ в канаве,

 

 

 

 

 

 

 

 

 

Табличка

гласила:

 

и огрел им по голове неподготовленного Рамхака. Тот

 

 

 

 

 

 

 

икнул, и упал, потеряв - таки банку с самогоном. Са-

 

 

 

 

 

 

 

 

 

Danger!

Do Not Enter! Russian Nuclear Terrorist

могон разлился по всему бункеру, и стек в аккуратные

 

 

 

Inside!

Nuclear Hazardous!

лужицы у стен.

 

 

 

 

 

 

 

 

 

 

 

 

- Теперь

вижу - мы по адресу. Ну что, пойдем? - Ядо-

- Хватай его под мышки, и пошли отсюда. - Ядовитый

 

 

 

 

 

 

 

 

 

 

витый

уверенно потянул на себя дверь в бункер, и

выбросил кардан, и поднял мычащее тело с пола, а я

 

 

 

первым

вошел в плохо освещенный проход. Мне оста-

подхватил.

 

 

 

 

 

валось

только последовать за ним.

Мы вынесли Рамхака на свежий воздух, и кинули в ку-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В конце

коридора оказалась небольшая зала, застав-

зов джипа, ключи от которого нам так предусмотри-

 

 

 

ленная

компьютерами - это и была главная и един-

тельно подарил патруль. Уже рассвело. Я сел за руль,

 

 

 

ственная

комната компьютерного ракетного центра.

завел машину, и повел в сторону города. Ядовитый

 

 

 

 

Òàì,

впрочем был совершеннейший разгром. По полу

нашел под сиденьем бутылку “Будвайзера”, и уже

 

 

 

катались

бутылки из-под “Балтики”. Многие компью-

вальяжничал: открывал е¸ об ствол своего бывалого

 

 

 

 

 

 

теры также валялись на полу с разбитыми монитора-

помповика. Наконец открыл, отхлебнул, и протянул

 

 

 

ми, единственный, похоже, в помещении, пластико-

ìíå:

 

 

 

 

 

 

 

 

 

 

 

64

0040

БАЙКА

 

 

>СПЕЦВЫПУСК #4

 

 

 

 

 

 

 

 

 

 

- На. Бодрит, как Мадрид. И улыбнись, наконец - мне,

Õàïó Åíãä

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ветерану Вьетнама, надоело видеть твою кислую харю.

- И что, он летел сюда прямо в коробке? - Покровский

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Я вспомнил цепочку событий, произошедших со мной

явно был заинтересован. - Обалдеть! Я был в госпита-

 

 

за последние три дня, поперхнулся пивом, и неубеди-

ле ФСБ - его выпишут, как только пройдет сотрясение

 

 

тельно состроил улыбочку.

 

мозга. Сильно вы ему по башке

дали. Он сам, между

 

 

 

 

 

 

 

 

 

 

 

прочим, говорит, что ничего не помнит - мол, приехал в

 

 

 

- То-то же, - Ядовитый забрал у меня пиво. - Вс¸, ха-

 

Урюпинск, пошел, с друганами посидел, потом они в

 

рош, ты за рулем!

 

 

 

 

 

клуб поехали - праздновать дальше, потом что-то он

 

 

 

 

 

 

 

 

 

 

там ещ¸, с какими-то беспутными женщинами... И ни-

 

 

 

Дорога в магазинчик Сайдекса прошла без приключе-

 

какого Вашингтона или ракетного бункера он не помнит

 

 

 

 

 

 

 

ний, е¸ я особо описывать не буду. Припомню, впро-

-

детектором лжи проверяли, не врет! Мне клялся, что

 

 

чем, что Рамхак в кузове успешно пришел в себя, и да-

 

если б приехал в Вашингтон хоть на денек - первым де-

 

 

же пытался петь что-то нестройным голосом. Так же не

 

лом купил бы себе фирменный дистрибутив Win’98, на

 

 

буду заострять сво¸ внимание на том, как мы распро-

 

пятидюймовых дискетках - на память. Во парня торкну-

 

 

щались с Ядовитым и Сайдексом, и, как упаковав Рам-

ло с этого самогона...

 

 

 

 

 

 

 

 

 

 

 

хака в огромную коробку из-под холодильника, сдали в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

багаж, чтоб не покупать сразу два билета в Москву...

- И не говори, Серег, - я блаженно отхлебнул кофе,

 

 

 

 

 

 

 

 

 

поправил на груди медаль “за заслуги перед Отечес-

 

 

 

 

 

 

 

 

 

 

твом”, и нажал на кнопку телевизионного пульта. Те-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

леэкран вспыхнул, перед нашими глазами появилась

 

 

 

 

 

 

 

 

 

 

заставка “Вестей”, и ведущая заговорила:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- Волна террора прокатилась по планете. Вот уже де-

 

 

 

 

 

 

 

 

 

 

сять дней в подмосковном городе Лотошино, террорис-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тами захвачен ликеро-водочный завод. До сих пор тер-

 

 

 

 

 

 

 

 

 

 

 

рористы никак не могут сформулировать свои требова-

 

 

 

 

 

 

 

 

 

 

íèÿ...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- Волна террора прокатилась по планете. Вот уже де-

 

 

 

 

 

 

 

 

 

 

сять дней в подмосковном городе Лотошино

 

 

 

 

 

 

 

 

 

террористами захвачен ликеро-водочный завод. До сих

 

 

 

 

 

 

 

 

 

 

 

пор террористы никак не могут сформулировать свои

 

 

 

 

 

 

 

 

 

 

требования...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- ВОЛНА

ТЕРРОРА

ПРОКАТИЛАСЬ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПО ПЛАНЕТЕ.

ÂÎÒ

УЖЕ ДЕСЯТЬ

 

 

 

 

 

 

 

 

 

 

 

 

 

ÄÍÅÉ Â

ПОДМОСКОВНОМ

ГОРОДЕ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЛОТОШИНО, ТЕРРОРИСТАМИ

ÇÀÕ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВАЧЕН ЛИКЕРО-ВОДОЧНЫЙ ЗАВОД.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ДО СИХ ПОР ТЕРРОРИСТЫ НИКАК НЕ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

МОГУТ СФОРМУЛИРОВАТЬ

 

ÑÂÎÈ

 

 

 

 

 

 

 

 

 

 

 

ТРЕБОВАНИЯ

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WWW.FANTOM.RU

в продаже с октября

В первом номере

журнала:

Роберт Асприн

предотвращает космическую войну.

Иэн Уотсон

вставляет реклам-

ные ролики прямо в твои сны.

Дэн Витлок

рассылает копии людей по факсу,

Элизабет Муун

предостерегает любителей фэнтези - Целоваться с лягушками - небезопасно!

Алексей Шведов

снимает новые экстремальные виды спорта на фо-

не хакерских войн.

À òàê æå

КОМИКСЫ

новости HI Tech, обзоры фантастики и многое другое.

Í Î Â Û É

Ó Ð Í À Ë

Ô À Í Ò À Ñ Ò È Ê È

È

Ô Ý Í Ò Å Ç È

66

0042

КОНСТРУКТОР

>СПЕЦВЫПУСК #4

СОЗДАЙ ЯЗЫК С

КОНСТРУКТОР ДЛ

The Hound of Winter (thow@ireland.com)

 

Частенько бывает, что в Сети

будет реагировать на их появление в тексте

программы нового языка.

находишь материалы, ценность

 

которых поначалу неочевидна.

Как это делается?

Иногда в поисках чего-нибудь

Типы переменных интерпретатором опреде-

этакого бродишь по софтверно-

ляются автоматически, как в Perl или Python,

даунлоадному сайту и ничего-

при использовании этих переменных первый

шеньки на нем вроде бы хоро-

раз. Например, достаточно написать:

 

шего нет. Другое дело, когда

example = 1

кто-нибудь рассказывает про

stringer = “PLC IS COOL!”

крутую фишку, скачанную в те-

И переменная example будет целым числом, а stri-

чение бессонной ночи с како-

nger - строкой. Сразу предупреждаю, что интер-

го-нибудь зимбабвийского сер-

претатор не поддерживает язык со структурами,

вера или стащенную прямо под

массивами и указателями.;-( Кроме того, исход-

ный файл на новом языке должен содержать

носом у тамошнего растяпы-ад-

всего две секции: описания глобальных пере-

ìèíà. Â ýòîò ðàç âñå áûëî íå

менных и собственно процедуры на этом языке.

Запуск программы на новом языке происходит в

столь романтично - редактор

несколько этапов:

нашего журнала рассказал мне

1. В программу на Си++ подключаются библио-

о классной проге, которая яко-

теки из скачанного архива PLC.

2. Вызывается процедура инициализации

бы была найдена им на

PLC_Startup().

www.softseek.com и которая

3. Вызывается Init() для описанного и исполь-

позволяет создавать языки са-

зуемого языка.

4. Для каждой внешней команды вызывается

мому. Честно признаюсь, доселе

PLC_AddCommand().

не видел ни одной программы,

5. Загружается исходник программы для испол-

нения.

которая позволяла бы созда-

6. Он транслируется с помощью PLC_Compile() и

вать языки и потом на них

PLC_CompileStatements().

что-нибудь писать. Любопыт-

7. Проверяются ошибки.

8. Вызывается PLC_Execute(), и происходит ис-

 

 

 

 

Что я скачал?

 

 

полнение программы.

 

3. Практически не требует усилий.

9. Проверяются ошибки.

 

 

 

4. Распространяется свободно, но с ограниче-

10. Вызывается PLC_Shutdown().

В каталоге образовалось несколько файлов - па-

ниями - исходники не поставляются, а постав-

 

ра с документацией, пара исполняемых EXE-

ляются уже откомпилированные библиотеки.

Процедура PLC_CompileStatements() трансли-

шников и библиотеки для Microsoft Visual C++.

Исходники можно получить у компании за день-

рует содержание только одной из процедур в

Полное название продукта выглядит так: “The

ãè. ;-(

программе. Если же язык не позволяет делить

Adept Software Programming Language Creator

Чтобы создать свой собственный бейсик или

программу на процедуры (бейсик, к примеру) то

(PLC)”. Позволяет сия штучка не много, но дос-

Си-подобный язык, придется немного потру-

всю программу можно исполнить, вызвав

таточно, чтобы играть с ней пару недель. А

диться. В общем случае понадобится написать

PLC_CompileStatements() для всего файла с

именно:

 

 

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

программой.

1. Имеется встроенный интерпретатор простых

то, да и архив снабжен работающим примером.

В общем, прочитав все эти характеристики и ин-

конструкций языка Си.

 

Необходимо расписать структуры данных для

струкции, я решил создать что-то наподобие

2. Можно создавать свои языки в примитивной

различных типов нового языка, операторов,

бейсика - на пробу. И раз уж “инструкция при-

форме и получать приличные интерпретаторы.

ключевых слов и определить процедуру, которая

лагается”, то и смотреть надо в нее. В комплек-

 

 

КОНСТРУКТОР

 

 

 

>СПЕЦВЫПУСК #4

0043

67

 

АМ, ИЛИ Я ПРОГРАММИСТА

 

 

 

 

те присутствуют файлы PLC_C.CPP и PLC_C.H -

{“/”, 1, FALSE,

PLC_OP_BOTH,},

>Link);

 

 

 

 

 

это определение языка для Си. Скопировав их в

{“+”, 2, FALSE,

PLC_OP_BOTH,},

Statement=PLC_TOKENNEXT(&Expression3-

 

 

 

 

PLC_BASIC.CPP и PLC_BASIC.H, я приступил к

{“-”, 2, FALSE,

PLC_OP_BOTH,},

>Link);

 

 

правке

 

этих файлов под бейсик. Файл

{“<”, 3, FALSE,

PLC_OP_BOTH,},

PLC_ExecExpression(PLC_TOK_Anchor(Expres-

 

 

 

 

PLC_BASIC.H можно оставить неизмененным -

{“<=”, 3, FALSE, PLC_OP_BOTH,},

sion1));

 

 

 

 

 

он подойдет и для бейсика. А вот PLC_BA-

{“>”, 3, FALSE,

PLC_OP_BOTH,},

while(1)

 

 

 

 

 

 

 

 

 

 

SIC.CPP придется немного переписать. Первым

{“>=”, 3, FALSE, PLC_OP_BOTH,},

{

 

 

делом

необходимо

изменить конструкции

{“=”, 4, FALSE,

PLC_OP_BOTH,},

if(Expression2!=NULL)

 

 

 

 

 

PLC_KEYWORD и PLC_OPERATOR, потом немно-

{“<>”, 4, FALSE, PLC_OP_BOTH,},

{

 

 

 

 

 

го изменить процедуры ExecKeyword() и App-

{“=”, 4, TRUE,

PLC_OP_BOTH,},

PLC_ExecExpression(PLC_TOK_Anchor(Expres-

 

 

 

 

lyOperator(). Структура PLC_KEYWORD содержит

{“,”, 4, FALSE,

PLC_OP_BOTH,},

sion2));

 

 

 

 

 

список служебных слов языка, таких как IF,

};

 

if(!PLC_DT_GetBool(&PLC_Result)) break;

 

 

 

 

THEN, ELSE, FOR, GOSUB, GOTO. Из файла

 

 

}

 

 

 

 

 

PLC_BASIC.CPP в этой структуре можно удалить

Теперь осталось самое интересное - необходи-

PLC_ExecStatement(Statement,NULL);

 

 

 

 

все элементы, кроме вот этих:

мо исправить процедуры ApplyOperator() и

if(PLC_FlowStatus==PLC_FLOW_BREAK)

 

 

 

 

PLC_KEYWORD KeywordList[]=

ExecKeyword(), которые, собственно, и опреде-

{PLC_FlowStatus=PLC_FLOW_NORMAL; break;}

 

 

 

 

ляют то, как будет выполняться программа.

else if(PLC_FlowStatus==PLC_FLOW_RETURN ||

 

 

 

 

 

 

 

 

 

 

 

 

 

Процедура ExecKeyword() отвечает за исполне-

PLC_FlowStatus==PLC_FLOW_GOTO)break;

 

{

 

 

 

 

ние зарезервированных слов (IF, GOTO и т.д.), а

else if(PLC_FlowStatus==PLC_FLOW_CONTIN-

 

 

 

 

{

 

 

“IF”,””,””,

 

ApplyOperator() должна проводить вычисления и

UE) PLC_FlowStatus=PLC_FLOW_NORMAL;

 

 

 

 

 

 

 

 

 

 

 

P

L C _

K E Y _ O P E N , P L C _ K E Y _ E X P R E S -

определять результат всяческих операций.

PLC_ExecExpression(PLC_TOK_Anchor(Expres-

 

 

 

 

SION,PLC

_KEY_CLOSE,

 

 

sion3));

 

 

 

 

 

PLC_KEY_STATEMENT,

void ExecKeyword(PLC_TOKEN *Token,bool

}

 

 

 

 

 

 

 

 

 

 

PLC_KEY_DONE,

 

*IfResultPtr)

 

break;

 

 

 

 

 

},

 

 

 

{

 

// GOTO

 

 

 

 

 

{

 

 

“ELSE”,””,””,

PLC_TOKEN *Statement,*Expression1,*Exp-

case TT_KEY_GOTO:

 

 

 

 

PLC_KEY_STATEMENT,

ression2,*Expression3,*TokenTemp;

PLC_SYMBOL

*Symbol=(PLC_SYMBOL*)-

 

 

 

 

PLC_KEY_DONE,

 

switch(Token->SubType)

PLC_TOK_Pointer(Token);

 

 

 

 

 

 

 

 

 

},

 

 

 

{

 

S y m b o l = P L C _ S y m b o l S e a r c h ( S y m b o l -

 

 

 

 

{

 

 

“FOR”,””,””,

// IF

 

>Name,0,false);

// atp-search local scope only!

 

 

 

 

PLC_KEY_OPEN,PLC_KEY_EXPRESSION,

case TT_KEY_IF:

 

if(Symbol==NULL || Symbol->LabelTar-

 

 

 

 

PLC_KEY_DIVIDER,

 

Expression1=PLC _ TOKENNEXT(PLC _ T -

get==NULL) PLC_Err(PLC_ERR_UNKNOWN_LA-

 

 

 

 

PLC_KEY_EXPRESSION,PLC_KEY_DIVIDER,

OK_Anchor(Token));

BEL_s,((PLC_SYMBOL*)PLC_TOK_Pointer(Token))-

 

 

 

 

PLC_KEY_EXPRESSION,PLC_KEY_CLOSE,

Statement=PLC_TOKENNEXT(&Exp-ression1-

>Name);

 

 

 

 

 

PLC_KEY_STATEMENT,

>Link);

 

PLC_GotoToken=Symbol->LabelTarget;

 

 

 

 

PLC_KEY_DONE,

 

P L C _ E x e c E x p r e s s i o n ( P L C _ T O K _ A n c -

PLC_FlowStatus=PLC_FLOW_GOTO;

 

 

 

 

},

 

 

 

hor(Expression1));

 

break;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

 

“GOTO”,””,””,

*IfResultPtr=PLC_DT_GetBool(&PLC_Result);

}

 

 

 

 

 

PLC_KEY_SYMBOL,

 

if(*IfResultPtr)

PLC_ExecStatement(PLC_T-

}

 

 

 

 

 

PLC_KEY_DONE,

 

OKENNEXT(&Expression1->Link),NULL);

 

 

 

 

 

 

}

 

 

 

 

break;

 

Точно так же в процедуре ApplyOperator() остав-

 

 

 

 

};

 

 

 

 

// ELSE

 

ляются только пункты, отвечающие за арифме-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

case TT_KEY_ELSE:

тику и операции сравнения. А процедуру

 

 

 

 

В структуре PLC_OPERATOR определены опера-

Statement=PLC_TOKENNEXT(PLC_TOK_An-

PLC_C_Init() нужно оставить неизмененной. Те-

 

 

 

 

ции, которые можно проводить над различными

chor(Token));

 

перь осталось только перекомпилировать при-

 

 

 

 

элементами - переменными, числами и строка-

if(!*IfResultPtr)

PLC_ExecStatement(State-

мер и попробовать какую-нибудь простенькую

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ми. Для своего бейсика я оставил только прос-

ment,NULL);

 

прогу:

 

 

 

 

 

тые арифметические операции и операции

break;

 

 

 

 

 

 

 

сравнения “больше/меньше”:

// FOR

 

10 PRINT “Я ЭТО СДЕЛАЛ!”

 

 

 

 

 

 

 

 

 

case TT_KEY_FOR:

20 GOTO 20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PLC_OPERATOR OperatorList[]=

Expression1=PLC _ TOKENNEXT(PLC _ T -

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

 

 

 

OK_Anchor(Token));

Все довольно просто, если учиться на примерах.

 

 

 

 

{“+”, 0, TRUE,

PLC_OP_NEXTIFNOPREV,},

Expression2=PLC_TOKENNEXT(&Expression1-

Теперь твоя очередь. Уверен: посидишь недель-

 

 

 

 

{“-”, 0, TRUE,

PLC_OP_NEXTIFNOPREV,},

>Link);

 

ку - и сам напишешь свой собственный дельфи

 

 

 

 

{“*”, 1, FALSE, PLC_OP_BOTH,},

Expression3=PLC_TOKENNEXT(&Expression2-

:). Желаю удачи!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

68

0044

КОНСТРУКТОР

 

 

>СПЕЦВЫПУСК #4

 

ТВОЙ СОБСТ WEB-БРАУЗ

Horrific (smirnandr@mail.ru)

 

Предварительные установки

 

понент “WebBrowser” (он находится на закладке

 

 

“Internet” или “ActiveX”) - у тебя появится белый

Ты снова должен запустить Delphi. Именно он

 

квадрат с именем WebBrowser1. После этого

позволяет очень быстро и без особых проблем

 

брось на форму “CoolBar”, который находится

написать свой собственный браузер. Когда за-

 

на закладке “Win32” палитры компонентов. Это

пустишь, то найди закладку “Internet”. Здесь

 

панелька, которая должна выровняться по вер-

должен быть компонент “WebBrowser” (он дол-

 

хнему краю на твоей форме. Теперь выдели

жен быть последний). Если у тебя версия Delphi

 

WebBrowser1 и перейди в ObjectInspector. Щел-

меньше, чем пятая, то этого компонента может

Рисунок 2

кни по свойству “Align” и в выпадающем списке

и не быть. Он может отсутствовать и если ты от-

 

выбери “alClient”. “WebBrowser” должен растя-

казался устанавливать инет-компоненты (по

 

нуться на все свободное место формы. В ре-

умолчанию они ставятся).

 

зультате ты увидишь нечто похожее на рисунок

 

 

4.

Выбери “Import ActiveX Control” из меню

 

 

“Component”. Перед тобой должно открыться

 

 

окно, как на рисунке 1.

 

 

 

 

 

Рисунок 3

 

 

 

 

 

 

 

Рисунок 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Теперь брось на CoolBar1 (мы его недавно

óñòà-

 

 

 

 

 

После того, как Delphi прошуршит

мозгами, поя-

 

новили на форму) панель “ToolBar” из

закладки

 

 

 

 

 

вится окно, которое сообщит об успешной уста-

 

“Win32” и “ComboBox” из закладки “Standart” па-

 

 

 

 

новке нового компонента. Нажми “OK” и закрой

 

литры компонентов. Все это ты должен бросить

 

 

 

 

все, что открыл Delphi. Для этого выбери “Close

 

именно внутрь CoolBar1, иначе ты получишь

 

 

 

 

All” из меню “File”. Теперь и у тебя есть компо-

 

полный отстой. После этого нужно выделить

 

 

 

 

нент “WebBrowser”, только он расположен на

 

CoolBar1 и перейти в ObjectInspector. Здесь ты

 

 

 

 

странице “ActiveX” палитры компонентов.

 

должен изменить строку “AutoSize” на “true” (по

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

умолчанию она “false”). Сравни результат с ри-

 

 

 

 

Как ты мог заметить, мы будем использовать

сунком 5.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

“Microsoft Internet Controls”, т.е. движок установ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ленного на твоем компе IE. А это значит, что

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

твой браузер подхватит все болезни и глюки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

своего движка. Единственное, что может успо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

коить - так это то, что интерфейс не будет таким

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

занудным. Он будет таким, как ты захочешь, по-

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 1

 

тому что сделан твоими руками.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Первые шаги

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В списке выбора

этого окна (сверху) найди

 

 

 

 

 

 

 

 

 

 

Рисунок 5

 

 

 

 

 

 

 

 

 

 

 

строку “Microsoft Internet Controls (Version 1.1)”.

 

Сейчас ты уже готов приступить к программиро-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Версия может отличаться, но нам с тобой - ак-

 

ванию. Создай новый проект (“File” -> “New

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

валанг. Теперь нажми кнопку “Install”. Перед то-

 

Application”) и сразу измени заголовок и иконку.

 

Если что-то не получилось, то читай статью за-

 

бой откроется окно, как на рисунке 2, и запрос,

 

Как это делается, я рассказал в статье про мега-

 

ново. Если и это не поможет, то попробуй нака-

 

как на рисунке 3. На запрос ты должен ответить

 

медиа-плеер в этом же номере.

 

тить пивка, это помогает думать :). Если все в

 

“Yes”.

 

Двигаемся дальше. Установи на форму наш ком-

 

порядке, то выделяй ComboBox1 (выпадающий