Еггогология

Электроника МК-52 с сообщением «ERROR» (из-за специфического отображения буквы r зачастую читалось как «ЕГГОГ»)

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

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

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

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

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

Изначально предметом интереса была возможность формирования на дисплее буквенно-цифровых комбинаций, содержащих не только цифры 0-9, но и шестнадцатеричные символы, отображаемые калькулятором как , L, С, Г, Е и пробел. Их можно было получить путём манипуляций над несохраняемым сообщением ЕГГОГ, которое микрокалькулятор выдаёт при попытке выполнить некорректную операцию (деление на ноль и т. д.). Такие «числа» можно хранить в регистрах памяти и использовать в качестве сообщений в игровых программах. В журнале «Техника — молодёжи» описывалась методика получения самых различных «видеосообщений», от буквы «Г» для программы «Лунолёт-1»[1] до целого мультфильма о полёте космического корабля по мотивам рассказа «Путь к земле»[3].

В дальнейшем, одним из направлений еггогологии стало расширение диапазона обрабатываемых чисел (числа с порядками от 100 до 199 также отображаются на экране как ЕГГОГ, см. «Нестандартные» числа) и изучение реакции микрокалькулятора на попытки произвести операции с числами за пределами стандартного диапазона.

Другое направление еггогологии изучало недокументированные возможности режима программирования; энтузиасты находили способы ввода недокументированных команд, например, содержащих символ «пусто» (F), изучали возможности нестандартного использования адресного пространства программ (см. Главная и побочные ветви), ПСЧ-режим.

После того как в 2011 году инженером Ф. Лазаревым была проанализирована аппаратная архитектура советских микрокалькуляторов и считано содержимое ПЗУ, многие необычные возможности ПМК получили логическое обяснение. Стало ясно, что «Тьма» является зацикливанием прошивки ПМК, а сообщение «ЕГГОГ» генерируется головным процессором К745ИК1302 по таймауту, когда ни один из ведомых процессоров не смог обработать введённую команду[4].

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

Еггогология утверждает, что порядок (показатель степени) диапазона обрабатываемых микрокалькулятором чисел ограничен по модулю 1000 и делит этот диапазон на так называемые этажи или «ярусы»[5]. Каждый ярус — это сотня из диапазона от 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 Можно производить обычные вычисления, но отображаются на дисплее как
Второй «3ГГОГи» От ±1 × 10200 до ±9.9999999 × 10299 Можно производить обычные вычисления, но отображаются на дисплее как . Выполняют безусловный переход на адрес, совпадающий с двумя первыми цифрами порядка (от 20 до 29)
Третий «Неукротимые чудовища» От ±1 × 10300 до ±9.9999999 × 10399 Способны произвольно перевести микрокалькулятор в режим исполнения программы или привести к его зависанию
Четвёртый «ОС-оборотни» От ±1 × 10400 до ±9.9999999 × 10499 Копируют в искажённом виде структуру ярусов, применяются для анализа других чисел. Искажают содержимое регистра С
Пятый «Тьма» От ±1 × 10500 до ±9.9999999 × 10599 При попытке вывода на дисплей приводят к зависанию микрокалькулятора. Индикатор гаснет, работоспособность восстанавливается после выключения и включения (в МС 1104 имелась специальная кнопка для подавления этого эффекта)
Шестой «С-ЕГГОГ-оборотни» От ±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 Можно производить обычные вычисления

Подробное описание

«3ГГОГи»

Под этим сообщением прячутся числа от ±1 × 10200 до ±9.9999999 × 10299. Над ними можно производить обычные арифметические операции. При появлении 3ГГОГа на экране десятичная точка сохраняет своё положение от предыдущего числа, а счётчик адресов программы устанавливается на адрес, равный двум первым цифрам порядка 3ГГОГа.

Любой 3ГГОГ может быть «расшифрован» командами: FАВТ, точка (справа на дисплее появляется его порядок), FАВТ (слева появляется мантисса бывшего 3ГГОГа, а справа возникает порядок --L или --3).

При вызове 3ГГОГа из регистра памяти 0-9 и последующем нажатии ВП или десятичной точки калькулятор ведёт себя несколько похожим образом, как если бы на дисплее появилось «сверхчисло» с порядком, начинающимся на номер регистра. Например, если 3ГГОГ вызван из регистра 1 — возникает сообщение ЕГГОГ; из регистра 2 — снова 3ГГОГ; из регистра 3 — в режиме программирования появляется «испорченная» команда « 3»; из регистра 4 — Тьма; из регистра 7 — «Длинный монстр».

«ОС-оборотни»

От ±1 × 10400 до ±9.9999999 × 10499.

При вытаскивании «ОС-оборотня» из регистра он заносит свой «хвост» в регистр С. «Хвост» также является сверхчислом, чьи две первые цифры порядка являются последними двумя цифрами порядка «ОС-оборотня». Если «хвост» также является «ОС-оборотнем» (это происходит для чисел с порядками с 440 по 449), то он также заносит свой «хвост» в регистр С. Существуют оборотни 3-го порядка — числа с порядком 444.

Пример:

В/О FПРГ Fx2 Fx2 × Fx2 Х→ПС Сх С/П FАВТ В/О 1 ВП 22 В↑ 1 ВП 50 С/П
П→ХС на экране 0
П→ХС на экране 0
П→ХС на экране 0
П→ХС на экране последний «Хвост» с тремя буквами Е.

«С-ЕГГОГ-оборотни»

От ±1 × 10600 до ±9.9999999 × 10699.

Если «С-ЕГГОГ-оборотня» вытащить из регистра, то он прикроется содержимым регистра C, а сам переместится в регистр Y. При выполнении над ним арифметической операции — Г.ГГОГ.

На основе свойств «С-ЕГГОГ-оборотня» придуман т. н. «АСО-анализ»:

  1. В регистр 0 помещаем «С-ЕГГОГ-оборотень» (можно и в другой регистр)
  2. В регистр А (только!) помещаем ЕГГОГ.
  3. П→XA П→X0 PX — содержимое регистра C — мантисса и 3-значная степень
  4. /−/ — содержимое P0

Меры предосторожности при работе с «С-ЕГГОГ-оборотнями»:

  1. «Тьма» наступает:
    • если после «АСО-анализа» нажать ВП, FАВТ
    • если сразу после формирования ЕГГОГА вытащить «С-ЕГГОГ-оборотня»
    • если вытащить «С-ЕГГОГ-оборотня» при «ПСЧ-режиме»
    • если «С-ЕГГОГ-оборотень» вытаскивает из регистра C сам себя

«Длинные монстры»

Другое название — «К-числа».

От ±1 × 10700 до ±9.9999999 × 10799.

На индикаторе при появлении «Длинного монстра» появляется следующее число:

1,2345678⋅10735 = [50.12345678 3] Где первая цифра 5 на индикаторе — это третья цифра порядка, а последняя цифра 3 на индикаторе — вторая цифра порядка. А сам «Длинный монстр» записывается на 73 адрес программы, что соответствует первым двум цифрам порядка числа.

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

Команды «со стре́лками» в Б3-34

На микрокалькуляторе Б3-34 (и совместимых с ним МК-54, МК-56) во всех регистровых командах вместо клавиши номера (буквы) регистра можно использовать клавишу , то есть доступны недокументированные команды ИП↑, П↑, КИП↑, КП↑, Kx≠0↑, Kx≥0↑, Кх<0↑, Kx=0↑, КБП↑, КПП↑. При вводе этих команд в режиме программирования формируются коды, заканчивающиеся на E. При выполнении таких команд фактически происходит обращение к регистру 0; команды прямого обращения к регистру полностью аналогичны ИП0 и П0, но остальные команды, которые обеспечивают косвенный доступ к регистру 0, имеют важное отличие от соответствующих команд КИП0, КП0 и других: они не уменьшают значения регистра 0 при обращении. Это даёт возможность косвенного обращения к регистру 0 двумя способами: с уменьшением и без уменьшения значения в регистре.

Использование «команд со стрелками» упрощает обход регистров в цикле, позволяя использовать значение в регистре 0 одновременно и как счётчик цикла, и как индекс регистра. Например, простейшая программа суммирования значений в регистрах 1-N (предполагается, что данные записаны в регистры, а N вводится в регистр X перед запуском программы) выглядит так:

  • П0 0 КИП↑ + FL0 02 С/П (данные в регистрах от 1 до N) — 7 команд.

Вариант без «команд со стрелками»:

  • П0 0 ИП0 ПE F⟳ КИПE + FL0 02 С/П — 10 команд;
  • П0 2 + П1 0 КИП1 + FL0 05 С/П (данные в регистрах от 2 до N+1) — 10 команд и два дополнительных регистра (несколько быстрее).

Команды косвенных переходов «со стрелками» позволяют хранить адрес перехода в регистре 0 и выполнять переходы на него без модификации содержимого. Так как команда косвенного перехода занимает один шаг программы, а обычная команда перехода — два, запись адреса в регистр позволяет выиграть по одному шагу программы для каждого перехода на этот адрес.

У калькуляторов МК-61 и МК-52 клавиша «» соответствует новому регистру памяти E, а коды операций с регистром E соответствуют кодам «команд со стрелками» Б3-34, так что на этих калькуляторах «команды со стрелками» недоступны[6] (см. табл.). Обозначениям клавиш П, ИП и в Б3-34 соответствуют Х→П, П→Х и Е в МК-61 и МК-52.

Коды команд Команды Б3-34 Команды МК-61, МК-52
7E Kx≠0↑ Kx≠0E
8E КБП↑ КБПЕ
9E Kx≥0↑ Kx≥0E
-E КПП↑ КППЕ
LE КП↑ КX→ПЕ
CE Кх<0↑ Kx<0E
ГE КИП↑ КП→ХЕ
EE Kx=0↑ Kx=0E

Недоступность «команд со стрелками» в моделях МК-61/МК-52 создаёт сложности при адаптации программ от Б3-34, использующих эти команды. Для команд косвенных переходов проблема решается просто: нужный адрес записывается в регистр E, который в программах для Б3-34 не используется, и команды «со стрелками» меняются на команды с указанием регистра E. Но для команд КИП↑/КП↑ ситуация намного сложнее: удаление каждой из них увеличивает размер программы минимум на 3 шага, из-за чего программной памяти может не хватить. В новых моделях МК-152/МК-161 доступны новые двухшаговые регистровые команды косвенного обращения РКИП00/РКП00, работающие так же, как КИП↑/КП↑ в Б3-34; каждая такая команда увеличивает программу только на один шаг, а гораздо бо́льшая программная память новых калькуляторов делает это увеличение практически несущественным.

Некорректные операции с клавишей К

На микрокалькуляторе Б3-34 большинство недокументированных операций с клавишей К вызывает сообщение ЕГГОГ. Это команды К3—К9, К+, К−, К×, К÷, , К↑, К/−/, КВП, КСх и К десятичная запятая. Команды К1 и К2 эквивалентны операции КНОП.

На МК-61 и МК-52 к сообщению ЕГГОГ приводят только команды К−, К×, К÷. Команды К1 и К2 также эквивалентны операции КНОП. Коды остальных команд документированы и используются для преобразования временны́х и угловых мер, определения модуля и знака числа, целой и дробной частей числа, бо́льшего из двух чисел, логических операций и генерации случайного числа.

Некорректной операцией на МК-61 и МК-52 является также перевод минут (секунд) в градусы и , если величина минут или секунд более или равна 60.

Сообщение ЕГГОГ, полученное с помощью некорректных операций с клавишей К, не является «сверхчислом» первого «яруса» и не может быть сохранено в регистре памяти, но может быть использовано для вывода на индикатор символов 16-ричных цифр, например:

1 К− (высвечивается ЕГГОГ) ВП ВП ↑ (высвечивается буква Е).

Полученную букву Е можно сохранять в регистрах памяти и извлекать оттуда, а с помощью регистров 0—3 также и преобразовывать в символы других 16-ричных цифр:

П0 КИП0 ИП0 КНОП (Г) КИП0 ИП0 КНОП (С) КИП0 ИП0 КНОП (L) КИП0 ИП0 КНОП (-) КИП0 ИП0 КНОП (9) и т. д.

Подобные приёмы использовались для формирования видеосообщений, например, в игровых программах.

Получение видеосообщения, начинающегося с цифры F (изображается как пустое место) может нарушить нормальную работу микрокалькулятора (искажение программы и данных, самопроизвольный переход в режим счёта и т. п.). Избежать этого можно, сразу же «изгнав» его командой ↑, подаваемой не менее четырёх раз[6] (по другим данным — семь раз[7]), не пытаясь проводить какие-либо другие операции.

Искусственный ввод кодов команд

В одном шаге программной памяти микрокалькулятора могут содержаться две шестнадцатеричные цифры, то есть теоретически может существовать 256 различных кодов команд. Из них в руководстве пользователя МК-61/52 документированы 214. Существует искусственный приём, позволяющий ввести 12 из 42 недокументированных кодов. Для этого вводится одна из команд переходов, например БП (код 51) и за ней две 16-ричные цифры, воспринимаемые калькулятором как адрес перехода. После этого команда перехода затирается командой-«пустышкой» КНОП, а последующий шаг при выполнении программы будет воспринят калькулятором уже не как адрес перехода, а как команда[8]. Некоторые из этих кодов можно ввести также путём недокументированных операций с клавишей К, описанных в предыдущем подразделе.

Коды команд Действия команд Ввод через клавишу К
27 Вызывает сообщение ЕГГОГ K−
28 Вызывает сообщение ЕГГОГ К×
29 Вызывает сообщение ЕГГОГ
2L Вызывает сообщение ЕГГОГ Нет
Вызывает сообщение ЕГГОГ Нет
Вызывает сообщение ЕГГОГ Нет
2E Вызывает сообщение ЕГГОГ Нет
Вызывает сообщение ЕГГОГ Нет
Копирует содержимое регистра Х в Х1. Содержимое регистров X, Y, Z и Т сохраняется. Нет
Перемещает содержимое регистра Х в Х1, копирует содержимое регистра Y в Х.

Содержимое регистров Y, Z и Т сохраняется.

Нет
55 Ничего не делает (равнозначна команде КНОП) К1
56 Ничего не делает (равнозначна команде КНОП) К2

Коды 55 и 56 использовались во входных языках малосерийных аналогов МК-52[9].

Данный приём неприменим для ввода остальных 30 недокументированных кодов команд, содержащих 16-ричную цифру F (изображаемую на индикаторе как пустое знакоместо), поскольку на клавиатуре микрокалькулятора нет клавиши для ввода цифры F (не путать с префиксной клавишей F). Некоторые способы ввода таких кодов будут рассмотрены в следующем подразделе.

Ввод кодов команд, содержащих цифру F

В микрокалькуляторе МК-52 существует возможность формирования любого из 256 кодов команд по любому из адресов программной памяти. Для этого используется следующая особенность записи программ в ППЗУ. При нормальном процессе записи программы необходимо сначала стереть соответствующий участок памяти ППЗУ. Если же этого не сделать, то происходит побитовое логическое сложение кодов команд из ОЗУ с кодами, имевшимися в ППЗУ ранее[10]. Так, если в ППЗУ по некоторому адресу записана команда БП (код 51), а по соответствующему адресу в ОЗУ находится команда В↑ (код 0Е), то результатом логического сложения будет команда с кодом 5F (которая приводит к зависанию микрокалькулятора). Действия команд с кодами, содержащими цифру F, приведены в следующей таблице:

Коды команд Действия команд
0F Документированная команда FBx
1F, 2F, 3F Ничего не делают (равнозначны команде КНОП)
4F Равнозначна команде X→П0 (код 40)
5F Приводит к зависанию микрокалькулятора. Индикатор гаснет, работоспособность восстанавливается после отключения и включения питания.
6F Равнозначна команде П→Х0 (код 60)
7F Равнозначна команде Кх≠00 (код 70)
8F Равнозначна команде КБП0 (код 80)
9F Равнозначна команде Кх≥00 (код 90)
-F Равнозначна команде КПП0 (код -0)
LF Равнозначна команде КХ→П0 (код L0)
CF Равнозначна команде Кх<00 (код С0)
ГF Равнозначна команде КП→Х0 (код Г0)
EF Равнозначна команде Кх=00 (код Е0)
F0, F1, ... FF Ничего не делают (равнозначны команде КНОП)

К сожалению, недокументированные команды 7F, 8F, … EF, осуществляющие косвенный доступ к регистру 0, уменьшают его содержимое, так же как и их документированные аналоги с кодами 70, 80, … Е0 и не могут служить заменой командам «со стрелками» в Б3-34.

В Б3-34 и МК-61, не имеющих ППЗУ, также существует возможность ввода некоторых команд с кодами, содержащими цифру F, но лишь по нескольким фиксированным адресам. Один способ состоит в использовании команд В/0 КППN в режиме ручных вычислений (F АВТ), N — любой из регистров (0—9, А—Е). При этом микрокалькулятор переходит в режим программирования и вставляет код FN по адресу 30+N (для буквенных регистров А—Е соответственно 40—44). Заметим, что при использовании регистров 0—6 результат зависит от их содержимого[11] Другой способ (проверенный его автором только на МК-61[8]) использует воздействие некорректной операции «ВП десятичная запятая» на «сверхчисла» первого «яруса» (ЕГГОГи). Для этого сначала создаётся «сверхчисло» двукратным применением команды ВП с суммой порядков более 99 (например, ВП 10 ВП 90), а затем, после появления сигнала ЕГГОГ, нажатием клавиш «ВП десятичная запятая 0». Это также переводит микрокалькулятор в режим программирования, и в данном примере по адресу 51 будет записана команда F1. Второй знак и адреса, и команды определяется первым знаком порядка в первой команде ВП (например, ВП 20 ВП 80 ВП .0 даёт команду F2 по адресу 52 и т. д.)

Недокументированное применение десятичной запятой в программе

Команда «десятичная запятая» (код 0-), использованная в программе (за исключением случаев документированного применения — для ввода числа по программе знак за знаком), заменяет значение в регистре Х на то, которое было в нём после последней из команд 0, 1, … 9, В↑, П→Х0, П→Х1, … П→Х9, П→ХА, … П→ХЕ[12].

Недокументированные способы диагностики ошибок

При возникновении сигнала ЕГГОГ при счёте по программе существует два недокументированных способа определить, в результате какой операции произошёл останов[6]:

  1. Нажатие клавиши ↑ в Б3-34 (В↑ в МК-61/52). Если на индикаторе по-прежнему ЕГГОГ, то произошло переполнение, а если число — некорректная операция, «виновником» которой является это число.
  2. Нажатие клавиши ВП. Возможные показания индикатора и соответствующие им ошибки:
    • «ЕГГОГ 00» — переполнение («сверхчисло» первого «яруса»)
    • «Г.ГГОГ 00» — деление на нуль, вычисление логарифма от нуля, степенной функции 00, некорректная операция с клавишей К.
    • «ЕГ.ГОГ 00» — вычисление tg 90°.
    • «Е.ГГОГ 00» — вычисление арксинуса или арккосинуса от числа, большего 1.
    • «ЕГГОГ 00» (с десятичной запятой на том же месте, что в аргументе) — положительный аргумент показательной функции больше допустимого
    • «−ЕГГОГ 00» (с десятичной запятой на том же месте, что в аргументе) — отрицательный аргумент показательной функции по модулю больше допустимого, или извлечение квадратного корня из отрицательного числа.

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

Команда В/0 вне подпрограммы

Команда В/0, предназначенная для завершения подпрограмм, при использовании в основной программе, как правило, осуществляет переход на адрес 01. Этим иногда пользуются для сокращения программы, заменяя две команды БП 01 одной В/0. Особенно часто эта особенность используется при нестандартном использовании адресного пространства программы (см. Главная и побочные ветви). Однако иногда использование этой особенности приводит к неправильному результату.

Причина этой особенности в том, что адреса, с которых вызываются подпрограммы, записываются в пятирегистровый стек возврата, а по команде В/0 извлекаются из него и происходит возврат на адрес, на единицу больший. Если в стек возврата ничего не было записано, в нём хранятся нули и по команде В/0 происходит переход на адрес 01. То же самое произойдёт, если в стек возврата заносилось не более четырёх адресов при вызовах подпрограмм и все они были извлечены при возвратах — следующий извлекаемый адрес будет нулём.

Однако если в стек возврата занесено пять адресов, при извлечении первого из них в последнем регистре формируется «адрес-диверсант», обе цифры которого совпадают с последней цифрой адреса, находившегося там ранее. По мере извлечения остальных адресов из стека возврата, «адрес-диверсант» заполняет все его регистры, и затем, в случае использования команды В/0 вне подпрограммы, переход будет осуществлён неправильно[6].

Очистить стек возврата можно с помощью ЗГГОГа с нулевой мантиссой: Сх В↑ ÷ ВП Fх2 Сх ↔ Сх

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

Если в каком-либо из регистров 7—Е находится число, по модулю меньшее единицы, то при косвенном обращении к нему формируется адрес перехода, определяемый мантиссой и последней цифрой порядка[6] (см. табл., МN — N-я цифра мантиссы)

Последняя цифра порядка Адрес перехода при отрицательных порядках Адрес перехода при положительных порядках
1 М7М8 М1М2
2 М7М8 М2М3
3 М7М8 М2М3
4 М6М7 М4М5
5 М5М6 М5М6
6 М4М5 М6М7
7 М2М3 М7М8
8 М2М3 М7М8
9 М1М2 М7М8
0 1 1

ПСЧ-режим

«Псевдосчётный режим» — методика формирования на экране микрокалькулятора произвольных буквенно-цифровых комбинаций, т. н. «слов». Основан на переводе ПМК в особый режим работы, в котором происходит считывание на индикатор записанных в программной памяти кодов (вернее, их первых символов). Описан в заметке «Новости еггогологии» «Техники — молодёжи» № 6 за 1987 год[13]. В этой статье первооткрывателями ПСЧ-режима названы С. Банников, И. Емельянов, Б. Мурадов. Также приведены альтернативные названия режима — «ненормальный», «режим сбора».

Перед вводом ПМК в ПСЧ-режим в память записывается короткая программа, коды команд которой начинаются со всех возможных символов (для удобства обычно используются сдвоенные символы вида 00, 11, … , EE).

Для входа в ПСЧ-режим в статье предлагается следующая последовательность команд: 6 F10x K- ВП . 0 В/О В/О БП В/О. Данная процедура по сути представляет собой способ получения команды «пусто-пусто». Также редакторы упоминают, что существует более сложный способ входа в ПСЧ-режим из области «длинных монстров».

В ПСЧ-режиме меняются значения клавиш. В/О и С/П служат теперь для переключения из автономного режима в программный и наоборот. Команды FПРГ и FАВТ, а также любое «сверхчисло» возвращают ПМК в нормальный режим работы. Клавиши ШГ дают возможность перемещаться вдоль записанной в память программы. Клавиши БП и ПП переносят точку просмотра и считывания на 10 адресов вглубь программы, а также позволяют оперировать с числом на индикаторе непосредственно кодами команд.

Клавиша ВП считывает в первый регистр индикатора символ из текущего адреса программной памяти. Формирование «слов» начинается с заготовки вида 11111111, из соответствующей ячейки программной памяти считывается нужный символ, а затем с помощью команд ВП /-/ 1 ПА КИПА ИПА от заготовки отбрасывается последний регистр, а на место первого записывается ноль, который с помощью команды ВП может быть заменён следующим символом.[источник не указан 2674 дня]

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

Для входа в ПСЧ-режим, технически, может быть использована любая буквенно-цифровая заготовка, содержащая от 6 до 8 знаков и начинающаяся символом Г, Е или «пусто», другие начальные символы при нажатии клавиш «ВП-точка» выдадут ошибку. После команд ВП-точка-цифра калькулятор уже находится в ПСЧ-режиме с активированной клавишей К — это можно проверить, нажав 0 (для деактивации клавиши К), затем В/О и С/П -— они уже будут работать по-новому. Но использование ПСЧ-режима затруднено тем, что при входе в него исходная буквенно-цифровая заготовка записывается в стек возврата начиная с 3-го разряда, и при каждом нажатии В/О или БП происходит «возврат» по адресу, взятому из этого стека (команда В/О дополнительно прибавляет к нему 1). Если по команде В/О произошёл возврат на адрес «тёмной зоны», то калькулятор выходит из ПСЧ-режима. Поэтому в момент извлечения из стека адреса Е0 вместо В/О нужно нажать БП. Пример:

(Е000000.) ВП точка 0 (00 0.0 51) 0 (Е000000.) В/О (00 00 0.0 61) В/О (.Е.1.) В/О (.Е.2.) С/П (.Е.3.) — произошёл выход из ПСЧ-режима в режим программирования.

(Е000000.) ВП точка 0 (00 0.0 51) 0 (Е000000.) В/О (00 00 0.0 61) БП (00 00 0.0 Е0) В/О (00 . 01) В/О (00 . 01) С/П (Е000000.) — калькулятор остался в ПСЧ-режиме, стек возврата очищен.

(Е89-LCГ.) ВП точка 0 (00 0.0 51) 0 (Е89-LCГ.) БП (00 00 0.0 60) БП (00 00 0.0 Е8) БП (экран гаснет) — переход по адресу «9-» привёл к зависанию ПМК.

Недокументированные особенности команды ВП

Команда ВП превращает 0 в 1 (при этом в стеке меняется только значение регистра Х, остальные регистры стека сохраняют свои значения). Это используется в программе вычисления факториала для её сокращения, заменяя несколько команд (условный переход, его адрес, ввод единицы) одной командой ВП[14].

Кроме того команда ВП является единственной командой (как на МК-54, так и на МК-61), которая правильно ведёт себя в ручном и пошаговом (!) режимах, но при этом может вести себя неправильно в автоматическом режиме. Данный нюанс вводит в ступор новичков (так как в пошаговом режиме команда работает правильно, а потому найти ошибку в программе не удаётся), и исправить ошибку удаётся лишь за счёт замены команд «число», ВП на команды «число», F10Х, «х» ,но для этого требует лишний шаг.

Команда ВП . (десятичная запятая), выполненная над любым числом, кроме комбинаций, начинающихся на Е или Г, немедленно выводит ЕГГОГ, и если в памяти есть место на две команды, значительно быстрее других методов искусственного вывода ЕГГОГ — некорректных операций и К−, которые вызывают паузу около 3 секунд. Обычный «долгий» ЕГГОГ пропускает одну команду, а мгновенный (ВП .) — нет.

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

В советских программируемых калькуляторах Электроника Б3-34, МК-54, МК-56, МК-61, МК-52 (и аналогичных) физической оперативной памяти столько, сколько заявлено в руководстве к ПМК, но из-за особенностей аппаратной реализации существует виртуальный 160-шаговый цикл[15], состоящий из 3 ветвей: «главной», «короткой побочной» и «длинной побочной»[16].

Главная ветвь — это то, что в характеристиках калькулятора указывается как «Количество шагов программы». В семействе Б3-34 главная ветвь занимает 98 шагов — адреса с «00» по «97», в МК-61 и МК-52 105 шагов — с «00» по «104» (на экране отображается как «−4»). Если калькулятор в конце главной ветви не встретил команд В/О, С/П или БП, то счётчик шагов продолжает увеличиваться, и калькулятор переходит в диапазон короткой побочной ветви.

Короткая побочная ветвь занимает 14 шагов программы — с адреса «98» по «L1» (МК-61 и МК-52: 7 шагов с адреса «−5» по «L1»). Эти адреса соответствуют реальным адресам «00» — «13» (МК-61 и МК-52: «00» — «06»). Если в этих адресах калькулятор не встретил команд В/О, С/П или БП, то счётчик шагов продолжает увеличиваться, и калькулятор переходит в диапазон длинной побочной ветви.

Длинная побочная ветвь занимает 48 шагов программы — с адреса «L2» по «F9». Эти адреса соответствуют реальным адресам «00» — «47»). Если в этих адресах калькулятор не встретил команд В/О, С/П или БП, то счётчик шагов продолжает увеличиваться, и калькулятор переходит в главную ветвь. В длинной побочной ветви с адреса «C1» начинается «тёмная зона»: коды команд, записанные в соответствующие адреса главной ветви, при переходе в режим ПРГ на индикатор не выводятся, однако в режиме счёта исправно выполняются.

Графически этот процесс выглядит так (на примере МК-52):

Ветви программной памяти калькулятора МК-52

Данная недокументированная особенность не позволяла писать программы длиннее документированного объёма, зато позволяла дважды избежать команд безусловного перехода на нулевой адрес (иногда по нулевому адресу ставилась команда В/О).

Ошибки в микрокалькуляторах

Кроме недокументированных возможностей, некоторые микрокалькуляторы содержали ошибки.

Ошибки в Б3-21 некоторых выпусков

В первых выпусках микрокалькулятора Б3-21 возникала ошибка при сложении числа, содержащего семь девяток в мантиссе и цифру более 4 в восьмом (неиндицируемом) разряде мантиссы, с бо́льшим по порядку числом; например, при сложении 9,9999999 и 10 получалось 120.

Также в некоторых Б3-21 при вычислении сложных операций (например, синуса) могло исказиться содержимое одного из регистров кольцевого стека.

Некоторые Б3-21 неправильно выполняли оператор вызова подпрограммы ПП, если он находился по одному из адресов 55, 65, 70, 80, 91 или 92. Вместо перехода к подпрограмме в них выполнялся оператор, код которого равен адресу подпрограммы[17].

Ошибки в Б3-34 некоторых выпусков

В некоторых микрокалькуляторах Б3-34 операция возведения в степень Fxy выполнялась с ошибкой, если предыдущая операция была двухместной (кроме возведения в степень) и в её результате получилось число, имеющее в восьмом разряде мантиссы цифру 5 или 7. Этой ошибки можно избежать, если перед выполнением операции Fxy нажать дополнительно клавиши F1/x F1/x[18] (что заменяет результат двухместной операции таким же результатом одноместной, на котором эта ошибка не возникает). Другие «взаимоисключающие» операции (например, Fx2 F√ или Feх Fln) для этой цели менее пригодны, так как могут привести к переполнению.

В ранних выпусках микрокалькуляторов нельзя было заканчивать подпрограмму командами одноместных операций Fsin, Flg, F√ и др., а также производить смену знака результата вычислений клавишей /−/[19].

Ошибки в МК-61 и МК-52

Операция Kmax считает ноль самым большим числом. Эта ошибка использовалась в некоторых программах[20].

При некоторых операциях, например, определении дробной части отрицательного числа, возникает «отрицательный нуль» (изображается на индикаторе как «−0»), который при условных переходах ведёт себя как отрицательное число[20].

Ошибки и нерациональные решения в блоках расширения памяти БРП-3 и БРП-4

В блоке БРП-3, программе 16 использована неправильная формула вместо , соответственно неправильно составлена и программа. Там же для определения аргумента комплексного числа используется формула без учёта как знаков и , так и того, что действительная часть может быть нулём. В результате при происходит ошибка в определении аргумента на 180°, а при  — останов деления на нуль[21].

В блоке БРП-4 в «лунолётной» игровой программе «Космическая посадка» физическая модель ошибочна, что может приводить к бессмысленным результатам. Например, при свободном падении космического аппарата на Луну с большой высоты глубина кратера может составлять менее 8 мм, хотя скорость в момент соприкосновения с лунной поверхностью превышает 3000 м/с. В том же блоке микрокалькулятор «нарушает правила» в игровых программах «Жизнь» и «Магараджа». Целый ряд программ составлен нерационально и поддаётся значительным сокращениям. Например, программа для отыскания минимальной поверхности или минимальной длины сварных швов цилиндрической банки заданного объёма может быть сокращена на 15 шагов при использовании более простых формул[22].

См. также

Примечания

  1. 1 2 Мягкой посадки! // Техника — молодёжи : журнал. — 1985. — Июнь. — С. 56.
  2. Михаил Пухов. «Кон-Тики»: путь к Земле // «Техника — молодёжи», 1985, № 8—12; 1986, № 1—4.
  3. Мягкой посадки! // «Техника — молодёжи» : журнал. — 1985. — Декабрь. — С. 48—49.
  4. МК-61: история, эмуляция, устройство. Хабр. Дата обращения: 26 октября 2022. Архивировано 26 октября 2022 года.
  5. «Техника — молодёжи», 1986, № 1, с. 54.
  6. 1 2 3 4 5 Школа начинающего программиста. Занятие двадцать шестое. — «Наука и жизнь», 1989, № 11, с. 124—130
  7. «Техника — молодёжи». 1986, № 7.
  8. 1 2 Alfred Klomp. Some experiments with hacking the ЭЛЕКТРОНИКА МК-61. — http://www.alfredklomp.com/technology/mk-61/ Архивная копия от 28 октября 2008 на Wayback Machine
  9. Программируемые микрокалькуляторы: устройство и пользование / Под ред. Я. К. Трохименко. — М.: Радио и связь, 1990. — c. 123—124.
  10. Школа начинающего программиста. Занятие двадцать второе. — «Наука и жизнь», 1989, № 1, с. 124—129.
  11. «Техника — молодёжи», 1986, № 5, с. 52.
  12. «Наука и жизнь», 1989, № 4, с. 112.
  13. Новости еггогологии. «Техника — молодёжи», 1987, № 6, с.54.
  14. Л. М. Финк. Папа, мама, я и микрокалькулятор. — М.: Радио и связь, 1988. — с. 71.
  15. В инструкциях к ПМК о 160-шаговом цикле ничего не сказано.
  16. «Техника — молодёжи», 1986, № 2, стр. 56.
  17. Сергей Фролов. История советских калькуляторов. Часть II. — iNFUSED BYTES OnLine, http://www.enlight.ru/ib/also/calcs/calcs2.htm Архивная копия от 17 июля 2012 на Wayback Machine
  18. «Наука и жизнь», 1984, № 2, с. 66.
  19. В. П. Дьяконов. Справочник по расчётам на микрокалькуляторах. 3-е изд., доп. и перераб. — М.: Наука, Гл. ред. физ.-мат. лит., 1989. — с. 41.
  20. 1 2 «Наука и жизнь», 1988, № 11, с. 84—85.
  21. Вам привет от БРП. — «Наука и жизнь», 1990, № 10, с. 115.
  22. И второй том… комом. — «Наука и жизнь», 1991, № 6, с. 130—131.

Ссылки

Read other articles:

العلاقات السريلانكية الفنزويلية سريلانكا فنزويلا   سريلانكا   فنزويلا تعديل مصدري - تعديل   العلاقات السريلانكية الفنزويلية هي العلاقات الثنائية التي تجمع بين سريلانكا وفنزويلا.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدول�...

 

2011 novel by Ruth Rendell The Vault First edition (UK)AuthorRuth RendellCountryUnited KingdomLanguageEnglishSeriesInspector Wexford # 23GenreCrime/Mystery novelPublisherHutchinsonPublication date2011Media typePrint (Hardback & Paperback)Pages368 ppISBN9780091937102Preceded byThe Monster in the Box Followed byNo Man's Nightingale  The Vault is a novel by British crime-writer Ruth Rendell, published in 2011. The novel is the 23rd in the Inspector Wexford series. It...

 

Institut de Prancis; kursi Académie des Beaux-Arts Académie des Beaux-Arts (pengucapan bahasa Prancis: [akademi de boz‿aʁ], Academy of Fine Arts) adalah tempat perhimpunan terpelajar Prancis. Ini adalah salah satu dari lima akademi Institut de France. Presiden Akademi saat ini (2021) adalah Alain-Charles Perrot, seorang arsitek Prancis. Latar Belakang Akademi ini didirikan pada tahun 1816 di Paris sebagai penggabungan dari Académie de peinture et de patung (Akademi Seni Lukis dan P...

Disambiguazione – Se stai cercando altri significati, vedi Campofranco (disambigua). Questa voce o sezione sugli argomenti centri abitati della Sicilia e provincia di Caltanissetta non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Campofrancocomune Campofranco – VedutaCampofranco e il fiume Platani visti da Sutera LocalizzazioneStato Italia Region...

 

Ahasyweros IXerxes IUkiran batu raja diraja Akhemeniyah, kemungkinan besar Xerxes, terletak di Museum Nasional IranRaja Diraja IranFiraun MesirBerkuasaOktober 486 – Agustus 465 SMPenobatanOktober 485 SMPendahuluDarius IPenerusArtahsasta IInformasi pribadiKelahiransekitar 518 SMKematian465 SM (usia 53 tahun)PemakamanNaqsy-e RostamAyahDarius IIbuAtosaPasanganAmestrisAgamaAgama Indo-Iran(mungkin Zoroastrianisme) Xerxes I dari Persia Ahasyweros I atau Xerxes I (bahasa Persia Kuno: 𐎧𐏁�...

 

Vocation and practice of managing cultural heritage This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (August 2019) (Learn how and when to remove this message) Cultural heritage management (CHM) is the vocation and practice of managing cultural heritage.[1] It is a branch of cultural resources management (CRM), although it also draws on the practices of ...

سوق كروم الإلكترونيالشعارمعلومات عامةمواقع الويب chrome.google.com… (لغات متعددة)chromewebstore.google.com (لغات متعددة) نوع الموقع منصة توزيع رقمي التأسيس 6 ديسمبر 2010 أهم الشخصياتالمالك جوجل تعديل - تعديل مصدري - تعديل ويكي بيانات سوق كروم الإلكتروني (بالإنجليزية: Chrome Web Store)‏ هو متجر على الإ�...

 

Town in Primorje-Gorski Kotar, CroatiaCrikvenicaTownGrad Crikvenica Town of CrikvenicaCrikvenicaCrikvenicaLocation of Crikvenica within CroatiaCoordinates: 45°10′N 14°41′E / 45.167°N 14.683°E / 45.167; 14.683Country CroatiaCounty Primorje-Gorski KotarGovernment • MayorDamir Rukavina (HDZ) • Town Council 17 members[1]   HDZ-HSP AS-HSS-HSLS (8) _   SDP-HNS-PGS (6) _   Independents (2) _   ŽZ (1) Area[2...

 

Dionigi Bussola, Monumento a San Carlo Borromeo a Milano. Dionigi o Dionisio Bussola (Lombardia, 1615 – Milano, 15 settembre 1687) è stato un artista, pittore e scultore italiano. Indice 1 Biografia 1.1 La sua opera per i Sacri Monti 2 Bibliografia 3 Voci correlate 4 Altri progetti 5 Collegamenti esterni Biografia Operò principalmente in Lombardia dove probabilmente nacque nel 1615. La sua formazione artistica avvenne a Roma dove soggiornò per un lungo periodo: là studiò presso l'Accad...

Grand Prix Hassan II 2009 Sport Tennis Data 6 aprile - 12 aprile Edizione 25ª Superficie Terra rossa Campioni Singolare Juan Carlos Ferrero Doppio Łukasz Kubot / Oliver Marach 2008 2010 Il Grand Prix Hassan II 2009 è stato un torneo di tennis giocato sulla terra rossa nella categoria ATP World Tour 250 series nell'ambito dell'ATP World Tour 2009. È stata la 25ª edizione del Grand Prix Hassan II. Si è giocato nel Complexe Al Amal di Casablanca in Marocco, dal 6 al 12 aprile 2009. Indice...

 

拉尔·巴哈杜尔·夏斯特里第二任印度总理任期1964年6月9日—1966年1月11日总统薩瓦帕利·拉達克里希南前任古爾扎里拉爾·南達继任古爾扎里拉爾·南達印度外交部長任期1964年6月9日—1964年7月18日总理自己前任古爾扎里拉爾·南達继任斯瓦倫·辛格(英语:Swaran Singh)印度內政部長任期1961年4月4日—1963年8月29日总理賈瓦哈拉爾·尼赫魯前任戈文德·巴拉布·潘特(英语:Govind Balla...

 

American politician and businessman Jacinto F. DinizJacinto F. DinizMember of the Massachusetts House of Representatives from the 8th Bristol DistrictIn office1943–1949Preceded byJohn M. CawleySucceeded byEdmund Dinis Personal detailsBornOctober 3, 1888São Miguel Island, AzoresDiedOctober 6, 1949 (aged 61)New Bedford, Massachusetts, US Jacinto F. Jesse Diniz (also Dinis) (October 3, 1888 – October 6, 1949) was a Portuguese-born American politician and businessman. Born in São Miguel...

Upper house of Federal Parliament of Nepal Rastriya Sabha राष्ट्रिय सभाContiguous:2nd Class 1, Class 2, 1st Class 3TypeTypeUpper house of the Federal Parliament of Nepal LeadershipChairpersonNarayan Prasad Dahal, CPN (MC) since 12 March 2024 Vice ChairpersonBimala Ghimire, CPN (UML) since 10 April 2024 Leader of the HouseNarayan Kaji Shrestha, CPN (MC) since 26 December 2022 Leader of the OppositionKrishna Prasad Sitaula, NC since 4 March 2024 Structure...

 

Cevdet Kerim İncedayı2nd Minister of TransportIn office20 November 1940 – 12 November 1941Presidentİsmet İnönüPrime MinisterRefik SaydamPreceded byAli ÇetinkayaSucceeded byMehmet Fahri Engin13th Minister of Public WorksIn office7 August 1946 – 10 September 1947Presidentİsmet İnönüPrime MinisterRecep PekerPreceded bySırrı DaySucceeded byKasım GülekMember of the Grand National AssemblyIn office8 February 1935 – 19 May 1951ConstituencySinop (1935, ...

 

General-purpose programming language Not to be confused with Ruby on Rails. This article's lead section may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (June 2022) (Learn how and when to remove this message) RubyParadigmMulti-paradigm: functional, imperative, object-oriented, reflectiveDesigned byYukihiro MatsumotoDeveloperYukihiro Matsumoto, et al.First appeared1995;...

City in California, United States City in California, United StatesMontebello, CaliforniaCity SealLocation of Montebello in Los Angeles County, CaliforniaMontebelloLocation of Montebello in Los Angeles Metro AreaShow map of the Los Angeles metropolitan areaMontebelloLocation of Montebello in CaliforniaShow map of CaliforniaMontebelloLocation of Montebello in the United StatesShow map of the United StatesCoordinates: 34°0′56″N 118°6′39″W / 34.01556°N 118.11083°W...

 

United States historic placeRiverfront Park Carousel or Looff CarouselU.S. National Register of Historic Places Show map of Spokane riverfront areaShow map of Greater Spokane areaShow map of Washington (state)LocationRiverfront ParkSpokane, WashingtonNearest citySpokaneCoordinates47°39′38.42″N 117°25′12.99″W / 47.6606722°N 117.4202750°W / 47.6606722; -117.4202750Built1909ArchitectCharles I. D. LooffNRHP reference No.77001362Added to NRHPSeptember...

 

For the Jamaican cricketer, see Ken McLeod (cricketer). For people with a similar name, see Ken MacLeod (disambiguation). Ken McLeodPersonalBorn1948ReligionTibetan BuddhismSchoolKarma KagyuOccupationtranslator, author and teacherSenior postingTeacherKalu Rinpoche Ken McLeod (born 1948) is a senior Western translator, author, and teacher of Tibetan Buddhism. He received traditional training mainly in the Shangpa Kagyu lineage through a long association with his principal teacher, Kalu Rinpoche...

Giải Nobel Văn học Tổ chức trao giải Viện Hàn lâm Thụy Điển(Svenska Akademien) Trao giải lần đầu Năm 1901 Sully Prudhomme Giải thưởng năm 2023 Jon Fosse Website Giải Nobel Văn học Giải Nobel Văn học (tiếng Thụy Điển: Nobelpriset i litteratur) là giải thưởng thường niên do Viện Hàn lâm Thụy Điển trao tặng cho các tác giả có đóng góp tiêu biểu trong lĩnh vực văn học. Đây là một trong năm giải Nobel...

 

Enlightening the World Студийный альбом Undercode Дата выпуска 19 сентября 2002 года Дата записи апрель — октябрь 2001 Место записи Студия Monitor Audio, (Загреб, Хорватия) Жанр Хеви-метал Продюсеры Davor Keranovic Ivan Speljak - Jitz Страна  Хорватия Лейбл Metal Warriors Хронология Undercode Enlightening the World(2002) Post-Apocalyptic(2...