Техника - молодёжи 1986-07, страница 55

Техника - молодёжи 1986-07, страница 55

ния попробуйте перейти в режим ПРГ. Удивительная вещь! Счетчик шагов скачет совершенно произвольно, коды не соответствуют командам, иногда возникает вообще чепуха. Точку не так-то просто убрать. После Сх машина работает ненормально: не производит никаких действий, ни с того ни с сего начинает работать программа или машина вообще «уходит в себя», как йог. Вывести из этого состояния может лишь отключение».

«Посмотрите сами — не обрадуетесь,— резюмирует восьмиклассник из Москвы С. Банников.— Это неисправимо». «Не проходит ни одна команда... Караул! — вторит ему десятиклассник А. Степанов из Куйбышева.— ПМК не слушается, а может, он и слушается, но я ввел своей командой (точка) новый код».

Довольно детальный анализ представил П. Кузнецов из Ленинграда: «Точки. Это название я дал по их типичному представителю (Сх К7 ВП КНОП). «Точки» вообще (та же операция над несколькими нулями), попросту говоря, пустое место на месте (каламбур) первой значащей цифры мантиссы. Разновидности точек можно получить командрй 1 /х от чудовищ-хвостов ОС-оборотней (только от них) — «ненормальный» случай, так как должна вроде бы получиться Тьма: 1000—430=570, уровень Тьмы. Точки очень коварны — пока они находятся в стеке, многие команды не выполняются или коверкаются. Программирование лучше в это время не включать — программа будет испорчена, а на индикаторе будет твориться черт-те что: режим ПРГ выйдет из строя. Если же особенно долго измываться над точкой, то в режиме ПРГ это будет уже не временно, а постоянно и ПМК придется выключить. Точки также имеют привычку «сбегать» — могут перемещаться из одного регистра в другой, сдвигая заодно за собой по кругу содержимое остальных регистров и вызывая по ходу передвижения некоторые побочные явления. Это свойство точек было бы очень ценно, если бы они не портили программу. А так как такое передвижение в регистрах все равно возможно, то почему бы разработчикам ПМК не сделать его осуществимым специальными командами в следующих моделях?»

И действительно, почему бы?

4*

Но вернемся к своей Б3-34 (МК-54). У каждого отрицательного явления есть свои плюсы. Есть они и у «пустышки». Кстати, П. Кузнецов прав: имеет смысл говорить о целом классе таких объектов: если процесс формирования начать не с нуля, а с нескольких (например, Сх 000-=-ВП КНОП), получим «пустышки», завершающиеся несколькими нулями (в данном случае двумя). Наиболее «опасны» самые «старшие» из них (получившиеся из семи либо восьми нулей); с ними то, о чем пойдет речь, не проходит. Зато все остальные сойдут вполне.

Для начала сформулируем алгоритм полной «ликвидации» таких объектов: при появлении на индикаторе «пустышки» нужно семь раз подряд нажать стрелку вверх. Стек полностью очищается. А теперь займемся делом.

Как известно, в регистры Б3-34 можно записать лишь 14 чисел. Так вот, «пустышка» позволяет запомнить еще три (правда, не всяких — подходящие числа ограничены как по порядку, так и по длине мантиссы).

Запишем для начала в регистр 9, скажем, число 111111 (шесть единиц). Затем по стандартному алгоритму получим любую из «младших» пустышек. Теперь нужно нажать стрелку вверх, ИП9 и еще пять раз стрелку вверх. «Пустышка» ликвидирована, а число 111111 куда-то записано (но куда, никому не известно).

Повторим ту же процедуру еще дважды, записав в первом случае в регистр 9, скажем, число 222222 (шесть двоек), а во втором — 333333 (шесть троек). «Пустышка», фигурирующая в каждой операции, может быть любой, но обязательно из «младших». По завершении операции все три числа (111111, 222222 и 333333) оказываются куда-то записаны!

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

клуб электронных игр

_LD

сел: 222222 и 111 111. А если вместо алгоритма «ликвидации» дважды нажать XY, глазам предстанет другая пара: 333333 и 222222.

Администрация КЭИ обычно использует этот способ для запоминания шестизначных телефонных номеров (семизначных удается записать только два).

Еще об одном полезном свойстве «пустышки» рассказывает наш постоянный корреспондент Дмитрий Кайков из Белгорода:

«Используя точку, можно получать и шифры. Сделаем вот что: lOFl/x ПА Сх-^ВП ПД ИПА ПО 1 ПО ПО ПВ. Теперь нажмем «сброс» (Сх) и, нажимая на стрелку вверх, будем сбрасывать все появляющиеся числа. Теперь вызовем из регистра В код 01 30. Можно избавиться от порядка: ВП /—/ 30 ПВ. Этот код (01) можно использовать в программе. Оператор /—/ меняет ноль в самом левом разряде на L. Поманипулировав операторами КИП, ВП, /—/ и т. д., можно получать разные другие коды (например, применив к исходному сообщению 01 последовательность /—/ ПО КИП0 ИП0, получим L->—-0. Только стоит внимательно и осторожно обращаться с кодами, у которых второй разряд (я считаю слева, включая и самый первый) пуст. Такой код, например, можно получить из 01, записанного в регистре В (или любом другом) командой КИПВ. Этого шифра и ему подобных, как и «точки», следует опасаться, так как может произойти путаница в программной памяти и даже в стеке».

Если у кого-нибудь есть информация о еще каких-то полезных применениях «пустышки» и родственных ей символов, просим дать знать.

Михаил ПУХОВ