Просмотры

ЕГГОГ

Материал из Lurkmore

(перенаправлено с «Error»)
Перейти к: навигация, поиск
Wrar64.pngA long time ago, in a galaxy far, far away...
События и явления, описанные в этой статье, были давно, и помнит о них разве что пара-другая олдфагов. Но Анонимус не забывает!
Fatal eггог

ЕГГОГ (англ. error) — на советских программируемых микрокалькуляторах (ПМК) типа «Электроника Б3-34» и «МК-54/-56/-61/-52» — ошибка. Встречается и по сей день на домофонах Cyfral CCD-2094.

Содержание

[править] Еггогология

b
Лулз с зависанием
b
Исповедь быдлокодера.

Еггогология является побочным продуктом более тяжёлой формы задротства, а именно программирования калькуляторов серии Б3-34. Ограниченная база управляющих инструкций, помноженная на крайне ограниченные ресурсы памяти при необходимости решать реальные задачи практически из всех областей — точных наук, инженерии, экономики, статистики, прогнозирования и т. д. — делали этот процесс весьма нетривиальным. С точки зрения современного быдлокодера, код на языке ПМК выглядит не менее мозговыносящим, чем Brainfuck и Malbolge. Пример — вычисление функции Аккермана:

П1 <-> П0 ПП 06 С/П ИП0 x=0 13 ИП1 1 + В/О ИП1 x=0 24 ИП0 1 П1 - П0 ПП 06 В/О ИП0 П2 ИП1 1 - П1 ПП 06 П1 ИП2 1 - П0 ПП 06 В/О

Но, в отличие от упомянутой эзотерики, это было вполне штатное вычислительное средство, активно использовавшееся даже школьниками. Этот факт при упоминании особенно сильно подогревает анусы впечатлительных кодеров-прогеров.

Новый интерес к теме возник в 2012 году, когда был считан код ПЗУ процессоров этих калькуляторов и написан эмулятор. Любители еггогологии воодушевились, рассчитывая в ближайшее время вскрыть все тайны еггогологии. Однако машинный язык этих процессоров даже по сравнению с кодом для ПМК оказался таким леденящим душу пиздецом, что до сих пор никто толком не может предположить даже, каким образом выводится то самое сообщение ЕГГОГ, не говоря уже о том, чтобы понять глубинные корни еггогологии (хотя на тему потрохов ПМК в своё время была написана целая книга).

Итак, еггогология — изучение и использование недокументированных возможностей ПМК. Началось всё с возведения ЕГГОГа в квадрат (и получения ЗГГОГа), отсюда название. Кто сказал «деление на ноль»? Благодатными были сообщения об ошибках, вызванные возведением космических чисел типа 1×1050 в квадрат. Zero division давало совершенно неюзабельный ЕГГОГ*.

*Примечание ЕГГОГолога: 

Вобще-то у математического процессора есть 3 состояния ошибки:

  1. Переполнение(результат операции превышает 9Е+99). НеКлассический ЕГГОГ. Имеет знак и НЕ прерывает вычисления, хотя драйвер дисплея такое значение вывести уже не может. Теоретически если такой ЕГГОГ на что-то поделить - знак можно получить.
  2. Зависание (Результат деления на 0, tg(90º) и т.п.). Классический ЕГГОГ. Знака не имеет и матпроцессор просто уходит в специализированное прерывание.
  3. Двойное зависание (Юзер охомел!) ЗГГОГ. Принудительное повешение. Которое вылезает если со значением 9Е+99 что-то попытаться сделать в сторону его увеличения. Принудительный стоп-кран для вычислений. Именно поэтому ЗГГОГ можно получить из возведения в степень, но нельзя из деления на 0. После ЗГГОГа никакие операции уже не выполняются.

А главная шутка в том, что остаток значения после операции в регистрах матпроцессора всё ж таки остаётся хоть после ЕГГОГа, хоть после ЗГГОГа.

Впоследствии эта фича перекочевала и в компучерный матпроцессор, от чего в первом случае(только на превышение уже 9E+128) матпроцессор просто поднимал флажок переполнения(регистр с) основному камушку, а в двух остальных вызывал соответствующие прерывания, вполне годные для повешения на них пользовательских функций. Именно возможность повешения User API на событие "деление на 0" и породило соответствующие мемуёчки про атсральную суть этого деления и её годное использование. Поскольку стандартное сообщение пользователю о сем радостном факте двойного зависания было выпилено ещё где-то в переходе с XT на AT, вместе с текстовой консолью, где оно ещё было, а повесить на соответствующее IRQ что-нибудь повменяемей разработчики как-то не почесались.

Сообщения об ошибках обладали огромным количеством недокументированных свойств. Свойства эти яростно отрицались предприятием-изготовителем, а произношение «еггог» презрительно высмеивалось. Но недокументированные возможности широко использовались советскими хакерами 1980-х ради:

  • лулзов («зависание» калькулятора: дисплей не светится, машина на нажатия кнопок не реагирует, но переключатель находится в состоянии «ВКЛ»);
  • расширения вычислительных возможностей калькуляторов (например, работы с числами больше 10100 и меньше 10−100);
  • хранение чисел в скрытых (недокументированных) областях памяти;
  • сокращение кода на несколько байт за счёт недокументированных команд. Если вспомнить, что под запись кода программы отводилось порядка 100 байт, 2-3 лишних байта — это уже не хрен собачий!
  • визуализации (вывод на дисплей НЕХ вместо цифр);
  • игр.

Возможно, еггогология является первым задокументированным случаем задрачивания чего-либо как минимум в нерушимом Союзе.

[править] Вестник ЕГГОГологии

Дывысь, школота! В этом калькуляторе нет фотика. С него даже звонить нельзя! Зато он функциональнее айфони

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

[править] Moar задрачивания

Как известно, чем сложнее электронное устройство, тем слабее в нём реализована защита от дурака. Именно благодаря слабой защите ПМК и возникла возможность изучать их недокументированные возможности. Но некоторые фокусы можно было проделывать и на обычных калькуляторах типа МК-42. К примеру, одновременное нажатие двух цифровых клавиш (скажем, 8 и 5) при вводе числа давало сумму соответствующих чисел в шестнадцатиричной форме. В нашем примере это число hex(13), то есть D, занимавшее одно знакоместо и отображавшееся на дисплее как минус. Но если этот минус, к примеру, умножить на 2, just as planned получаем 26.

[править] Копипаста

Основная статья: ЕГГОГ/Копипаста

Программирование МК-61 имеет глубокий философский подтекст. Ограниченность ресурсов и доступного инструментария, добровольно принимаемая программистом, отражает собой многовековой опыт аскетических духовных практик. Сложнейшая многоуровневая иерархия программ управления калькулятором – от кода, вводимого человеком, до микрокоманд и микроприказов, отражает собой необычайную сложность божественного мироздания, все глубины и уровни материи – от крупномасштабных структур вселенной до элементарных частиц, от сознания до неживой материи, от социума до первозданного хаоса и небытия. Сам микрокод, прошитый в ПЗУ калькулятора, предстаёт объектом благоговейного созерцания, ибо никто не может в полной мере постичь принципы его работы, структуру или как-либо повлиять на его работу, склоняя нас к агностицизму и мыслям об иллюзорности свободы воли. Тройственность структуры микрокода – команды, синхропрограммы и микрокоманды, и три процессора калькулятора отсылают нас к вытекающей из христианского представления о Боге как о Троице троичности бытия, к естественной (троичной) аристотелевой логике и к концепции триединой русской нации. Программа, подаваемая человеком калькулятору, с одной стороны представляет собой низкоуровневый автокод, составленный из элементарных команд, с другой же – высокоуровневые инструкции, исполняемые прошивкой ПЗУ, демонстрирует нам диалектический закон единства и борьбы противоположностей. Исполнение же программы, когда, пройдя 105 шагов программной памяти, калькулятор возвращается в начало и продолжает исполнение кода, есть образ колеса сансары, а получение решения задачи становится подобием нирваны, достигнутой в результате правильно написанной и выполненной программы.

[править] См. также

[править] Ссылки

  • Эмулятор еггогологии на примере МК-61 и его сородичей.


Персональные инструменты
Счётчики
В других энциклопедиях