http://1500py470.livejournal.com/ ([identity profile] 1500py470.livejournal.com) wrote in [personal profile] vak 2014-01-14 09:09 am (UTC)

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

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

http://ru.wikipedia.org/wiki/Главная_и_побочные_ветви

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

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

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

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

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

160-шаговый цикл перестал поддерживаться в МК-152. Чтобы программы для советских ПМК пошли на современной ЭКВМ, их придётся переделывать. Программ, использовавших эту особенность, не так много, а память программ МК-152 значительно расширена[3] по сравнению с ПМК, выпущенными в Советском Союзе.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org