<<< «ТМ» 1986 №2 | «Техника-молодежи» 1986 №3, с.50-53 | «ТМ» 1986 №4 >>> |
ПУТЬ К ЗЕМЛЕ |
Консультант раздела — |
Продолжение. Начало см. «ТМ» № 8–12 за 1985 г. и № 1–2 за 1986 г.
8. РАЗБУДИ В АПОГЕЕ!
Коршунов включил двигатель на двухстах километрах.
Это было намечено заранее. Орбита, получающаяся после прохождения атмосферы — так называемый тормозной эллипс, — необычайно чувствительна к самым небольшим изменениям скорости входа. Для малых судов, вроде нашего, важен и другой фактор: масса корабля из-за расхода топлива заметно уменьшается, и он потом тормозится сильнее. «Бывает выгоднее просто слить топливо, — рассказывал Коршунов, — чем тормозить движком. Так иногда делают».
Надо учитывать, что атмосфера «дышит», ее плотность меняется в зависимости от времени суток и солнечной активности. Если корабль идет в атмосферу для посадки, это неважно: все маневры сдвигаются по высоте на несколько километров, и только. Но когда он, подобно «Кон-Тики», лишь задевает воздушную оболочку и снова уходит в космос, точная атмосферная сводка на данный момент столь же необходима, как прогноз погоды для авиаторов. Вот почему такие сводки — неотъемлемая часть космического радиовещания. «Главное — не увязнуть, — комментировал Коршунов нашу задачу. — «Кон-Тики» нельзя оставаться в атмосфере больше пяти минут. В баках тонна топлива, если жар подберется к нему, то конец».
«Кон-Тики» стремительно приближался к финишу. Заключительный отрезок пути — от геосинхронной орбиты до атмосферы — занял у нас около трех часов. Солнце все время пылало впереди, постепенно отодвигаясь от сверкающего края быстро растущего диска Земли. До планеты оставались считанные тысячи километров, когда траектория — скорость достигла уже десяти километров в секунду — начала выворачиваться параллельно горизонту. А за две минуты до перигея, на высоте 200 км, Коршунов спокойно развернул «Кон-Тики» днищем вперед и включил двигатель на десяток секунд; топлива на маневр ушло килограммов сто пятьдесят. Когда вес исчез, Коршунов возвратил «Кон-Тики» в прежнее положение. Мы лежали, наглухо привязанные к креслам, смотрели вперед и ждали. Бесконечное море блистающих облаков мчалось навстречу, в разрывах синел океан. Мы словно летели на высотном авиалайнере, практически горизонтально, но все-таки опускались — все медленнее и медленнее. А когда «Кон-Тики» пересек 80-километровую отметку, начались перегрузки.
Это продолжалось, как позже выяснилось, около двух минут. Сначала слабые, но быстро растущие, они рвали нас из кресел. Мы висели на ремнях над жаропрочным иллюминатором купола, ремни резали тело, перегрузка превысила единицу, потом двойку, «Кон-Тики» прессовал своей скоростью бесплотный воздух, тот накалялся, пылал, светился багровым цветом... Не помню, о чем я думал в эти секунды. Перегрузка достигла трех и начала падать. Мы были ниже семидесяти, но уже поднимались. Атмосфера отобрала у нашего кораблика часть скорости и теперь неохотно выпускала его из огненного плена... Потом снова стало легко.
— Высота? — деловито осведомился Коршунов, напоминая мне о моих штурманских обязанностях.
Я бросил взгляд на приборы.
— Восемьдесят!
— Скорость?
— Восемь с половиной!
— Отлично! — проговорил он, расстегивая ремни. — Мы сделали это, Саша, мы это сделали! Апогей будет у нас примерно две тысячи, как раз на орбите «Коперника». Полтонны топлива — и мы цепляемся за орбиту, остается еще столько же на маневрирование! Отлично, штурман, просто отлично!
Он искренне радовался, будто до последнего момента не был убежден, что все закончится столь успешно. На что тогда он рассчитывал? Однако спрашивать я не стал.
Коршунов поднялся из кресла, посмотрел вперед. Облака, до которых только что было рукой подать, быстро уходили вниз. На горизонте лежала тень — Солнце осталось сзади, мы приближались к линии терминатора
Я посмотрел на своего командира. Лицо его выглядело смертельно усталым.
— Последний раз я проделывал такую штуку на Титане, в системе Сатурна, — сказал он. — Лет десять назад. Но там это проще, Саша. Скорости не те, да и атмосфера помягче.
Он вновь опустился в кресло, прикрыл глаза.
— Вздремну часок, что-то устал. Разбуди меня в апогее, штурман...
И он в самом деле заснул! Солнце позади нас опустилось за горизонт, «Кон-Тики» — впервые за несколько суток — окутал мрак. В небе зажглись звезды. Это была ночь, настоящая земная ночь, теплая, мягкая, человеческая! Подо мной, в нескольких сотнях километров, мирно спали люди. Неярко мерцали индикаторы. «Кон-Тики» поднимался все выше, стремясь к апогею орбиты. Коршунов не шевелился, я был совсем один, один под звездным небом. И вдруг...
Впереди засветилась изогнутая линия горизонта, из-за нее вынырнул маленький белый диск. Это восходила Луна. Луна, на камнях которой мы стояли всего неделю назад! Я смотрел на нее и чувствовал, как меня захлестывает неудержимой волной восторга.
Да, мы сделали это! Где ты, Эдик Рыжковский? На крохотной скорлупке прошли путь, на который даже свет тратит больше секунды! Мы прошли этот путь сами, без посторонней помощи, и не свернули даже после «Лагранжа», когда никто в мире не упрекнул бы нас за малодушие! «С берегов им кричали: — Вернитесь, друзья! — Но вперед они мчались, в чужие края — в решете по крутым волнам!»...
Я не замечал, как течет время. Луна поднималась все выше, она притягивала взгляд. Там остался Центр Королева, там шла по орбите станция «ЮГ», там, в точке либрации, уже работали ремонтные бригады, восстанавливая «Лагранж»... Все это было перед моими глазами, но я ничего не видел, слишком уж далеко. Но мы, мы-то были там так недавно!
Я посмотрел на приборы. Высота — около двух тысяч, вертикальная скорость уменьшилась почти до нуля, до апогея остались считанные минуты. Я перевел взгляд на командира «Кон-Тики». Его лицо, озаренное лунным светом, было безмятежно спокойным. Мне стало жалко его будить. Да и надо ли?
Его действия при последнем маневре стояли у меня перед глазами. Я положил пальцы на клавиатуру. Осторожно — чтобы не потревожить Коршунова — развернул «Кон-Тики» днищем вперед. Луна исчезла из поля зрения, снова стало темно. Я включил двигатель, тот запел. Вновь появился вес — нормальная тяжесть, форсировать режим я не собирался. На душе было радостно и легко...
Не знаю, сколько это продолжалось — наверное, не больше минуты. Чей-то вопль буквально потряс кабину, чья-то рука отшвырнула меня от пульта... Когда я очнулся, двигатель грохотал, кабину озарял яркий лунный свет, хищный профиль Лунного Коршуна нависал над пультом управления... Потом двигатель «Кон-Тики» захрипел и умолк, умолк навсегда.
Я был убит. Внутри — пустота, я уже знал: моя ошибка непоправима. Я включил двигатель в апогее; чтобы перейти на круговую орбиту, нужно было увеличить скорость судна на несколько сот метров в секунду. Я же сделал наоборот... Торможение, торможение — последние часы мы говорили только о торможении... Коршунов вновь увеличил скорость, но мы остались на эллипсе. Если перигей лежит за пределами атмосферы, тогда еще есть надежда. Если же нет...
Коршунов молча изучал показания приборов. Лицо его было непроницаемым.
— Тьма, Саша, — проговорил он тихо. — Помнишь, что я тебе рассказывал? Перигей будет там же, на тех же семидесяти. Это Тьма, штурман...
Словно споря с его словами, кабину затопили яростные потоки света — над горизонтом взошло Солнце. Впереди сверкали бесконечные поля облаков. Мы вновь падали в небо Земли — но топлива в баках не было, и не было в мире силы, способной остановить это падение!..
МЯГКОЙ ПОСАДКИ!
Скажем без обиняков — ситуация заставляет вспомнить известную поговорку: «Если все идет хорошо, значит, вы чего-то не заметили». Под смертельной угрозой оказались не только цели полета, но и жизни его участников... Однако отступать поздно и некуда. Для повторения столь блистательно начатой и так нелепо завершившейся операции (предварительное торможение, вход в атмосферу на второй космической скорости, аэродинамический маневр, переход на тормозной эллипс и маневрирование в апогее) предлагаем вашему вниманию программу «Атмосфера-1».
00.Сх 01.ИПА 02.+ 03.ПА 04.ИП7 05.-
06.Fx<0 07.13 08.ИПВ 09./-/ 10.÷
11.БП 12.56 13.С/П 14.П8 15.П2 16.÷
17.ИП6 18.× 19.ИПВ 20.Fx2 21.ИП0
22.Fx2 23.+ 24.П9 25.÷ 26.ИП7
27.ИПА 28.- 29.ИП3 30.÷ 31.9 32.+
33.Fx<0 34.36 35.Сх 36.9 37.-
38.F10x 39.ИП1 40.× 41.- 42.ИПД
43.ИП8 44.- 45.Fx≥0 46.00 47.ПД
48.ИП5 49.+ 50.÷ 51.ИП9 52.F√
53.× 54.П9 55.ИП2 56.ИП9 57.ИПВ
58.ИПА 59.÷ 60.- 61.ИП0 62.× 63.×
64.ИП0 65.+ 66.П0 67.ПП 68.92
69.ИПА 70.÷ 71.Farcsin 72.ИПС 73.+
74.ПС 75.Fo 76.ИП0 77.Fx2 78.ИП4
79.ИПА 80.÷ 81.- 82.ИПА 83.÷
84.ИП9 85.ИПВ 86.× 87.+ 88.×
89.ИПВ 90.+ 91.ПВ 92.FВх 93.+
94.× 95.2 96.÷ 97.В/О
Она предназначена для численного моделирования различных маневров космических аппаратов (взлет, выход на круговые и эллиптические орбиты, баллистический полет в атмосфере, снижение на парашютах, посадка) в непосредственных окрестностях планет, окруженных газовыми оболочками. Исходные данные частично совпадают с теми, что использовались в предыдущих программах: (текущее расстояние от центра планеты, м) ПА (вертикальная скорость, м/с) ПВ (угловое расстояние от какой-либо опорной точки, градусы) ПС (горизонтальная скорость, м/с) П0 (текущий запас топлива, кг) ПД (гравитационная постоянная планеты, м3/с2) П4 (масса корабля без топлива, кг) П5 (скорость истечения продуктов сгорания, м/с) П6 (радиус планеты, м) П7. В регистр 3 засылается характерный масштаб атмосферы — высота (м), на которой плотность уменьшается в десять раз (предполагается, что она меняется по экспоненте). Наконец в регистр 1 вводится половина произведения плотности воздуха на нулевой высоте (кг/м3) на площадь сопротивления космического аппарата (м2). Последняя равна, в свою очередь, произведению площади миделевого сечения аппарата на коэффициент сопротивления. Судя по данным отчета А. Перепелкина, состоянию атмосферы в момент финиша соответствовало 17500 П3; плотность воздуха на уровне моря составляет примерно 1,3 кг/м3, площадь же сопротивления «Кон-Тики» при обдувании со стороны купола, если верить имеющимся в распоряжении редакции эскизам, была несколько меньше 10 м2, так что в качестве достаточно хорошего приближения можно принять 5 П1.
Работа с программой «Атмосфера-1» начинается, как обычно, командой В/О С/П. При останове на индикаторе светится текущая высота полета в м, переменные хранятся в «своих» регистрах. Двигатель в данной программе ориентирован строго по вектору скорости (начальная скорость поэтому должна задаваться отличной от нуля); при его включении скорость увеличивается или уменьшается, но направления не меняет. Маневр задается командой: (расход топлива, кг) ПП (время, с) С/П (это соответствует разгону аппарата; для торможения перед С/П следует скомандовать ПП /-/). Если команда подана с превышением наличного запаса топлива, она. как всегда, блокируется. На внеатмосферном участке траектории не следует задавать время маневра больше 200 с; при полете в атмосфере, в условиях заметного аэродинамического торможения, целесообразно остановиться на значении 10 с. Посадка производится так же, как и при работе с программой «Лунолет-3». Переключатель Р-Г устанавливается в положение Г.
Программа «Атмосфера-1» позволяет и моделировать спуск космического аппарата на парашютах. Парашютная система задействуется при снижении скорости до 100–200 м/с; для этого достаточно, не меняя прочих параметров, увеличить площадь сопротивления (то есть содержимое регистра 1) в 10–1000 раз. Шаг по времени в момент раскрытия парашютов необходимо уменьшить до нескольких десятых долей секунды; рекомендуется также поэтапное увеличение площади сопротивления — это соответствует задействованию сначала тормозного парашюта, затем основных.
Структурно программа «Атмосфера-1» похожа на предыдущие. По адресам 04–07 производится вычисление текущей высоты полета и сравнение ее с нулем. Если высота положительна, то управление передается на адрес 13 (останов для ввода очередного маневра), если же отрицательна, то вступает в действие «посадочный блок» (08–12). Он организован точно так же, как в программах «Лунолет-3», «Маскон» и «ОС-1»: отрицательная высота делится на вертикальную скорость (которая при посадке, как правило, тоже отрицательна), знак перед получившимся числом меняется на противоположный, после чего оно используется в качестве времени очередного маневра с прежним ускорением. Легко видеть, что если последнее равно нулю или отрицательно (вертикальная скорость по мере приближения к поверхности постоянна либо увеличивается), то при повторении этой процедуры несколько раз ваш корабль вернется на нулевую высоту, а его скорость окажется такой же, как и в момент контакта с поверхностью (отметим, что при расчете высоты попутно происходит ее округление — до десятых долей метра, если радиус планеты измеряется тысячами километров). Если же вертикальное ускорение положительно (скорость корабля при снижении убывает), то посадочный блок «подбросит» аппарат на некую положительную высоту и, таким образом, своей задачи не выполнит (на это указывает в своем письме в редакцию москвич С. Вардин). Во избежание недоразумений лучше всего садиться с выключенным двигателем либо на малой тяге — более точный посадочный блок попросту не умещается ни в программу «Атмосфера-1», ни в «Лунолет-3» и «ОС-1».
При нормальном задании маневра расход записывается в регистр 8, время — в регистр 2, регистр 9 используется как рабочий, для временного хранения промежуточных результатов вычислений. Команды 16–54 рассчитывают сумму реактивного ускорения и аэродинамического торможения, затем к ним добавляются центробежное и кориолисово ускорение, после чего вычисляются новые значения координат и компонент скорости. Фрагмент (31–37) введен из-за несовершенства процедуры, с помощью которой ПМК вычисляет функцию 10x: при отрицательных аргументах, превышающих по модулю 99, «Электроника» выдает вместо нуля сообщение ЕГГОГ. Рассматриваемый фрагмент устраняет эту неприятность, задавая на высотах свыше 150 км (для Земли) постоянную плотность, равную одной миллиардной доле плотности на нулевой высоте.
Из-за перегруженности счетного блока для преобразования радианов в градусы вместо применявшейся раньше точной последовательности 180 × Fπ ÷ (6 команд) используется приближенная формула (71); она справедлива лишь при довольно малых (не более 10–20°) угловых перемещениях космического аппарата; по этой причине ограничения на шаг по времени не снимаются даже при полете по круговой орбите.
Концовка программы «Атмосфера-1» (92–97) одновременно используется в качестве подпрограммы (вызов 67–68); этот прием использовался и прежде. Время маневра, введенное в стек командой по адресу 55, переводится тремя последующими командами (56–58) в регистр T, «цепляется» за конец стека и неоднократно используется в вычислениях (при умножении по адресам 63, 88 и дважды 94). Таким образом, экономится несколько ячеек программной памяти, отпадает необходимость записывать время в посадочном блоке.
ОХОТА НА ИНОПЛАНЕТНЫХ ЧУДОВИЩ (3)
Самым, пожалуй, неприятным обитателем глубин нашего «числового океана» (см. предыдущие выпуски) является Тьма — при любом контакте с ней индикатор гаснет. Основные владения Тьмы располагаются между порядками 500 и 600 (таким образом, всякое число от 1 ВП 500 до 9,9999999 ВП 599 — это Тьма). Для первого знакомства с ней можно в режиме АВТ набрать на клавиатуре такую, например, последовательность команд: 1 ВП 70 Fx2 (ЕГГОГ) Fx2 (ЗГГОГ) Fx2. Индикатор гаснет — наши действия привели к числу 10560, а это, конечно же, Тьма. Легко убедиться, что ПМК не отзывается теперь ни на один приказ с пульта. Однако если его выключить на несколько секунд, а затем включить снова, он будет работать как ни в чем не бывало.
Чтобы упрятать Тьму в «клетку» (адресуемый регистр), можно воспользоваться простой программой: 00.Fx2 01.Fx2 02.Fx2 03.ПА 04.Сх 05.С/П. Команда: F АВТ В/О 1 ВП 70 С/П. После останова на индикаторе горит ноль, но в регистре А сидит Тьма! Если вы рискнете и выпустите ее оттуда (ИПА), то индикатор погаснет, придется отключить калькулятор и вводить программу снова.
Как вы помните, для количественного анализа чудовищ 4-го этажа использовался ЗГГОГ из регистра 9. Однако для расшифровки как ОС-оборотней, так и Тьмы такой анализатор непригоден. Чтобы дешифровать Тьму (да и любые другие «суперчисла»), полезен логарифмический анализатор: 00.Fx2 01.Fx2 02.Fx2 03.Flg 04.1 05.0 06.0 07.0 08.- 09./-/ 10.П9 11.КИП9 12.XY 13.ИП9 14.- 15.FВх 16.XY 17.F10x 18.С/П (стрелки в командах XY по техническим соображениям опущены). Программа логарифмирует сформированное командами (00–02) «чудовище» и вычисляет его мантиссу и порядок, так что после останова в регистре X оказывается мантисса (с небольшой ошибкой в последних десятичных знаках), в регистре Y — порядок. Обратите внимание на фрагмент (04–09) — вычисленный логарифм числа вычитается из тысячи; легко убедиться, что такая коррекция необходима при логарифмировании всех «сверхчисел», вплоть до Нуля (то есть по 9,9999999 ВП 799 включительно). Фрагмент (10–13) использует для выделения целой части числа команду косвенного вызова; как справедливо указывают в своих письмах Д. Кайков из Белгорода и другие читатели, это наиболее простой путь выполнения такой операции на «Электронике Б3-34» (в новых моделях ПМК для нее предусмотрена специальная команда).
Испробуем наш анализатор на Тьме: В/О 1 ВП 70 С/П. После возведения в восьмую степень должно, очевидно, получиться число 10560. На индикаторе зажигается приближенное значение мантиссы (1,0002303), в регистре Y оказывается совершенно правильная величина порядка (560).
Можно ли вызвать Тьму в регистр X? Казалось бы, странный вопрос... Но введите в ПМК программу: 00.Fx2 01.Fx2 02.Fx2 03.К7 (подойдет и любая другая «неправильная» команда, начинающаяся с К). Перейдите в режим АВТ и скомандуйте: В/О 1 ВП 70 С/П. На индикаторе загорается сообщение ЕГГОГ (результат «неправильной» команды), но под ним скрывается Тьма — если отдать сейчас одну из команд КНОП, К1, К2, стрелка вверх (ввод в стек) или F АВТ, индикатор погаснет. Тьма, «замаскированная» сообщением ЕГГОГ, находится в регистре X, и с нею можно обращаться как с любым «нормальным» числом — умножить на что-нибудь, разделить, прологарифмировать вручную, используя приведенную выше процедуру... А что, если попробовать вычислить число, обратное Тьме? Команда: F1/x. На индикаторе — ноль. Казалось бы, ничего удивительного — что же еще могло получиться в результате такой операции? Однако не будем спешить с выводами, заглянем в регистр С. ИПС ИПС. На индикаторе — знакомый по прошлому выпуску «хвост» (00,0000ЕЕ) оборотня, равного 10440. Итак, разделив единицу на 10560, мы получили 10440; впрочем, если вспомнить, что наш «числовой океан» характеризуется периодом в 1000 по величине порядков, в этом опять-таки нет ничего удивительного: единица в «арифметике» ПМК тождественно равна 101000 (вспомните коррекцию логарифма, о которой только что шла речь). Отсюда следует важный вывод: числа, обратные Тьме, это ОС-оборотни; следовательно, числа, обратные ОС-оборотням, — это Тьма; значит, во избежание неприятностей не стоит производить над ОС-оборотнями такой операции... Кроме того, возникает подозрение, что в наш «числовой океан» можно проникнуть и с «черного хода» — через числа с отрицательными порядками; забегая вперед, укажем, что это действительно так.
Кроме своего «законного» этажа, Тьма занимает и две «ниши» в мире ОС-оборотней: от 1 ВП 450 до 9,9999999 ВП 469 (оборотни первого порядка) и от 1 ВП 445 до 9,9999999 ВП 446 (оборотни второго порядка); легко видеть, что в этих мирах Тьма «оккупирует» еще и соседний этаж, где, по идее, должны были бы располагаться С-ЕГГОГ-оборотни (числа с порядками между 600 и 700), с которыми мы познакомимся в следующем выпуске. Отдайте, например, такую команду (в ПМК введена последняя из приведенных программ, завершающаяся К7): В/О 1 ВП 58 С/П. На индикаторе — сообщение ЕГГОГ, под ним скрывается ОС-оборотень, равный 10464. Нажимаем КНОП, на индикаторе ноль. ИПС — индикатор гаснет, Тьма...
Казалось бы, Тьму можно использовать лишь в электронных играх со «смертельным исходом»: записав ее в регистр, нетрудно добиться того, чтобы при ошибке со стороны играющего пришлось бы вводить программу заново. Однако это далеко не так, практические применения Тьмы гораздо шире. Они связаны с «тайными адресами» программной памяти «Электроники».
В прошлом выпуске рассказывалось о 160-шаговом цикле, которым характеризуется работа ПМК. В этот цикл входят все адреса, заканчивающиеся на какую-либо цифру. А куда передастся управление при команде перехода на адрес, завершающийся буквенным символом?
Отдайте в режиме АВТ, например, команду БП 0А и посмотрите, куда передалось управление. F ПРГ. Знакомая картина, индикатор гаснет, мы столкнулись с Тьмой... Отключите «Электронику» на несколько секунд, включите ее снова и повторите эксперимент: БП 0А. Только теперь перед F ПРГ нажмите ШГ влево и ШГ вправо. Казалось бы, ничто не должно измениться... F ПРГ. Справа горит 10, следовательно, управление передалось на этот адрес! Таким образом, «явному» адресу 10 соответствует «тайный» адрес 0А; самое важное — при работе по программе команды переходов по ним дают совершенно тождественные результаты.
«Тайные» двойники есть у многих адресов главной и побочных ветвей 160-шагового цикла. Адресу 11 соответствует 0В, 12 — 0С, 13 — 0Д, 14 — 0Е, 20 — 1А, 21 — 1В и так далее (рекомендуем составить для себя табличку «тайных» и «явных» адресов всех ветвей 160-шагового цикла). Это позволяет, в частности, использовать хранящиеся в регистрах буквенные сообщения в качестве адресов перехода при косвенной адресации. (Несколько слов о косвенных обращениях вообще: в регистры ПМК можно записывать не только числа, с которыми нужно работать, но и номера регистров, с содержимым которых мы собираемся что-то делать, или адреса переходов.)
Сформируйте, например, символ Е и зашлите его в регистры 9 и 0: 1 К7 (ЕГГОГ) ВП П9 П0. Отдайте теперь команду К БП 9. Управление должно перейти на адрес, хранящийся в регистре 9, а там у нас находится символ Е! Куда перейдет управление? Логично предположить, что на «тайный» адрес 0Е, которому, как мы уже знаем, соответствует «явный» адрес 14 основной ветви программы. Действительно, если сделать ШГ влево, ШГ вправо, F ПРГ, убедимся, что это так. А что произойдет при команде К БП 0? Адрес, хранящийся в регистре 0, модифицируется (уменьшится на единичку), и управление перейдет на модифицированный адрес. Легко убедиться, что «модификация» в данном случае — это преобразование символа Е в Г, а управление передается на «тайный» адрес 0Д, которому соответствует «явный» 13... (К слову сказать, буквенные символы могут использоваться и при командах косвенного вызова и косвенной записи. Если сейчас, например, отдать команду КИП0, Г преобразуется в L, а на индикаторе появится содержимое регистра В.)
«Тайные» адреса, как и «явные», можно использовать и в качестве кодов команд. Читатели А. Морев из Устинова, М. Точин из Вологды и другие обратили, например, внимание на блок выдачи видеосообщений в программе «Лунолет-3» («ТМ» № 9 за 1985 год): 60.Fx<0 61.61 62.Fx≥0 63.63 64.С/П. Как он работает? «Мой внук Артем Горин, ученик пятого класса, утверждает, что здесь используется то обстоятельство, что коды операций ИП1 и ИП3 совпадают с адресацией соответствующих условных переходов», — пишет читатель Е. Григорьев из Москвы. Что ж, Артем совершенно прав. Находящееся в регистре X число сравнивается с нулем и, если условие по адресу 60 не выполняется, управление вторично передается на адрес 61. Эта комбинация цифр воспринимается теперь как код команды ИП1, и вызывается одно из двух видеосообщений. Оно, в свою очередь, сравнивается с нулем, благополучно проходит эту проверку (оба видеосообщения воспринимаются как положительные числа), и управление передается на команду останова С/П. Если же входное число меньше нуля, то оно переправляется на вторую проверку, естественно, не выдерживает ее, управление передается на адрес 63, эта комбинация воспринимается как код команды ИП3, вызывается второе сообщение и происходит программный останов. В результате экономятся две ячейки программной памяти: оба адреса перехода служат одновременно и командами вызова. Достаточно очевидно, что наличие «тайных» адресов расширяет возможности использования рассмотренного приема.
Как видим, охота на Тьму завершилась успешно: трофеи взяты немалые. Займемся очередным заданием — повторить маневры «Кон-Тики» в окрестностях Земли. Программа «Атмосфера-1», комплект исходных данных: 2200 П5 3660 П6 6371 ВП 3 П7 Fx2 9,81 × П4 5 П1 17500 П3, регистры А, В, С, Д, 0 заполнить в соответствии с результатами выполнения предыдущего задания. Комбинируя ракетное и аэродинамическое торможение, обеспечить переход корабля на тормозной эллипс с апогеем 2000 км, после чего отработать оба варианта: 1) выполнить планировавшуюся операцию (выход на круговую орбиту высотой 2000 км) и 2) подготовиться к повторному входу в атмосферу по эллипсу с высотой в перигее 70 км (из-за вычислительных ошибок орбита, если оставить все как есть, пройдет в перигее вне атмосферы). Зафиксировать свои координаты и скорости на высоте 100 км и ждать следующего — судя по всему, последнего — выпуска. Посмотреть, как мог выглядеть финиш «Кон-Тики», если бы А. Перепелкин в свое время включил в заявку требование насчет парашютов.
Михаил ПУХОВ
<<< «ТМ» 1986 №2 | «Техника-молодежи» 1986 №3, с.50-53 | «ТМ» 1986 №4 >>> |