Главная и побочная ветки
Материал из Википедии — свободной энциклопедии
В советских программируемых калькуляторах Электроника Б3-34, МК-54, МК-56, МК-61, МК-52, МС 1104[источник?] память программы «делится» на 3 ветки: «главная», «короткая побочная» и «длинная побочная».
Главная ветвь — это то, что в характеристиках калькулятора указывается как «Количество шагов программы». В семействе Б3-34 главная ветвь занимает адреса с «00» по «98», в МК-61 и МК-52 — с «00» по «104» (на экране отображается как «-4»). Если калькулятор в конце главной ветви не встретил команд В/О, С/П или БП, то счётчик шагов продолжает увеличиваться и калькулятор переходит в диапазон короткой побочной ветви.
Короткая побочная ветвь занимает 7 шагов программы — с адреса «99» по «-5» (МК-61 и МК-52: с адреса «-5» по «L1»). Эти адреса соответствуют реальным адресам «00» — «06». Если в этих адресах калькулятор не встретил команд В/О, С/П или БП, то счётчик шагов продолжает увеличиваться и калькулятор переходит в диапазон длинной побочной ветви.
Длинная побочная ветвь занимает 48 шагов программы — с адреса «-6» по «F3» (МК-61 и МК-52: с адреса «L2» по «F9»). Эти адреса соответствуют реальным адресам «00» — «47». Если в этих адресах калькулятор не встретил команд В/О, С/П или БП, то счётчик шагов продолжает увеличиваться и калькулятор переходит в главную ветвь.
Графически этот процесс выглядит так (на примере МК-52):
Данная недокументированная особенность не позволяла писать программы длиннее документированного объема, зато позволяла дважды избежать команд безусловного перехода на нулевой адрес (иногда по нулевому адресу ставилась команда В/О).
160-шаговый цикл перестал поддерживаться в МК-152. Чтобы программы для советских ПМК пошли на современной ЭКВМ, их придётся переделывать. Программ, использовавших эту особенность, не так много, а память программ МК-152 значительно расширена по сравнению с ПМК, выпущенными при советской власти.