Еггогология

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая 195.131.135.142 (обсуждение) в 18:03, 14 сентября 2008. Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

Еггоголо́гия — изучение скрытых возможностей микрокалькуляторов.

Происхождение

Название происходит от сообщения об ошибке «ЕГГОГ» (англ. Error — ошибка), которую выдавали отечественные программируемые микрокалькуляторы второго поколения (Электроника Б3-34, МК-54, МК-56, МК-61, МК-52). Термин впервые появился в журнале «Техника — молодёжи» после цикла статей, посвященных программированию на микрокалькуляторах серии «Электроника Б3-34» и увлекательного фантастического путешествия с Луны на Землю (автор — Михаил Пухов) под общим названием «Кон-Тики: путь к Земле»[1]. В этом цикле, кроме игровых программ, описывались различные недокументированные возможности микрокалькуляторов и видеосообщения, многие из которых получались путем манипуляций с клавишами после появления сообщения об ошибке «ЕГГОГ» ().

Читатели журнала с огромным энтузиазмом откликнулись на рассказ об обнаруженных недокументированных возможностях микрокалькуляторов, стали искать новые, и по окончанию цикла «Кон-Тики…» появился небольшой раздел «Новости Еггогологии». С помощью опубликованных в нём недокументированных приёмов было написано множество новых игровых программ, большинство из которых просто не могло быть создано стандартными средствами, в силу ограниченности ресурсов калькуляторов семейства Б3-34.

Направления еггогологии

Одним из основных направлений еггогологии было расширение диапазона обрабатываемых чисел, и изучение реакции микрокалькулятора на попытки произвести операции с числами за пределами стандартного диапазона.

Другое направление еггогологии изучало реакцию микрокалькулятора на недокументированные последовательности нажатия программных клавиш и способы ввода недокументированных команд, а также исполнение микрокалькуляторами таких команд.

«Нестандартные» числа

Еггогология утверждает, что основание степени диапазона обрабатываемых микрокалькулятором чисел ограничено по модулю 1000 и делит этот диапазон на так называемые этажи или «ярусы»[2]. Каждый ярус — это сотня из диапазона от 0 до 999. То есть нулевой ярус — это числа с основанием степени от 0 до 99, первый ярус — числа с основанием степени от 100 до 199 и т. д. Всего ярусов десять, причем минус первый ярус эквивалентен девятому (то есть основание степени −80 в представлении микрокалькулятора эквивалентно основанию степени 920), минус второй — восьмому (например −180 эквивалентно 820) и т. д.

Документацией максимальное значение чисел, над которыми можно производить математические действия, ограничивалось значением ±9.9999999 × 10±99 (то есть нулевым и минус первым ярусами). В самом деле, если ввести в микрокалькулятор число 1 × 1050 (для чего достаточно последовательности нажатий клавиш 1 ВП 50) и возвести его в квадрат (нажать Fx²), то получаем сообщение на дисплее «ЕГГОГ». Такая индикация по документации является признаком сообщения об ошибке, так как число 1 × 10100 выходит за пределы «стандартного» диапазона. Оказывается, что это не сообщение об ошибке, а способ индикации чисел первого яруса, и с этим числом можно производить обычные операции: складывать, умножать, делить, вычислять значения функций, запоминать его в регистре памяти, вызывать из регистра. Таким же образом можно работать с числами второго яруса (например 1 × 10200, простейший способ получить такое число — возвести в квадрат число 1 × 10100). Чтобы выяснить реальные значения таких чисел, их нужно было разделить на 1 × 1099 или другие подобные числа для приведения к числу из нулевого яруса (по абсолютному модулю не более 9.9999999 × 1099).

Другими словами, давался способ расширения диапазона чисел, обрабатываемых стандартными действиями, до ±9.9999999 × 10299. Также было возможно с некоторыми ухищрениями (с помощью специально написанных программ) получать числа до ±9.9999999 × 10799 и анализировать их значение (то есть выяснить мантиссу и основание степени). С помощью таких «вычислений» доказывалось, что девятый ярус представляет собой числа с отрицательным значением основания степени (например, 1 × 10920 было эквивалентным представлением числа 1 × 10-80). Числа восьмого яруса (числа от ±1 × 10800 до ±9.9999999 × 10899 а также от ±1 × 10900 до ±9.9999999 × 10900) невозможно сохранить после их получения, так как они немедленно преобразовывались в обычный нуль, независимо от того, с какой стороны к ним «подбираться» (с седьмого или девятого яруса).

Классификация числовых ярусов

Числовой ярус Название чисел Диапазон чисел Краткая характеристика числа из этого диапазона
Нулевой Обычное число От ±1 до ±9.9999999 × 1099 Нет
Первый «Еггогы» От ±1 × 10100 до ±9.9999999 × 10199 Можно производить обычные вычисления, но отображаются на дисплее как
Второй «Зггогы» От ±1 × 10200 до ±9.9999999 × 10299 Можно производить обычные вычисления, но отображаются на дисплее как Файл:3rror.gif
Третий От ±1 × 10300 до ±9.9999999 × 10399 Способны произвольно перевести микрокалькулятор в режим исполнения программы или привести к его зависанию
Четвертый «ОС-оборотни» От ±1 × 10400 до ±9.9999999 × 10499 Копируют в искаженном виде структуру ярусов, применяются для анализа других чисел
Пятый «Тьма» От ±1 × 10500 до ±9.9999999 × 10599 При попытке вывода на дисплей приводят к зависанию микрокалькулятора, работоспособность восстанавливается после выключения и включения
Шестой «С-Еггогы» От ±1 × 10600 до ±9.9999999 × 10699 Искажают содержимое регистра С
Седьмой «Длинные монстры» От ±1 × 10700 до ±9.9999999 × 10799 Копируют в искаженном виде структуру ярусов, применяются для анализа других чисел
Восьмой (минус второй) «Нули» От ±1 × 10800 до ±9.9999999 × 10900 или от ±1 × 10-200 до ±9.9999999 × 10-100 (зависит от способа получения) Немедленно преобразовывается в обычный ноль
Девятый (минус первый) Обычные числа с минусовым показателем степени От ±1 × 10-99 до ±9.9999999 × 10-1 Можно производить обычные вычисления

Недокументированные команды

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

На микрокалькуляторе БЗ-34 существует недокументированная команда КИП↑, которая работает с регистром 0, но, в отличие от команды КИП0, не уменьшает его значения. Этот способ использования регистра 0 в некоторых случаях упрощал вычисления в программах. На микрокалькуляторах МК-61 и МК-52 такая команда не работает, так как в архитектуре МК-61/52 добавлен регистр Е, и код недокументированной команды БЗ-34 КИП↑ совпадает с кодом документированной команды МК-61/52 КП→ХЕ. Здесь уместно отметить, что ИП, — обозначения клавиш в БЗ-34, а П→Х и Е — обозначения тех же клавиш в МК-61 и МК-52.

См. также

Главная и побочная ветки

Примечания

  1. Первый из девяти рассказов про «Кон-Тики» появился в 1985 году в 8-м номере журнала «Техника — молодёжи».
  2. «Техника — молодёжи», январь 1986, стр. 54.

Ссылки