Микрокалькулятор МК-61 при включении оказывается в автоматическом режиме, и первая ошибка новичка — попытка вводить программу, не переведя машину в режим программирования клавишей Ф ПРГ. Без этого шага все нажатия выполняются мгновенно, а не записываются в память программ. Именно с этого переключения начинается любая работа с программированием МК-61 — советского программируемого калькулятора, выпускавшегося с середины 1980-х годов и до сих пор популярного среди коллекционеров и энтузиастов ретро-вычислений.

Машина относится к семейству программируемых микрокалькуляторов с обратной бесскобочной записью (польской нотацией) и обладает 105 шагами программной памяти и 15 регистрами (числа могут незначительно отличаться в разных источниках, поэтому сверяйтесь с паспортом конкретного экземпляра). Этого хватало для решения инженерных задач, игр и даже простых симуляций, о чём свидетельствуют публикации в журналах «Наука и жизнь» и «Техника — молодёжи» тех лет.

Архитектура и система команд МК-61

В основе работы лежит стек из четырёх регистров: X, Y, Z, T (плюс регистр X1 для восстановления предыдущего операнда). Число вводится в регистр X, клавиша В↑ поднимает стек, а операции берут операнды из X и Y, помещая результат обратно в X. Понимание стека — половина успеха в программировании этой машины.

Кроме стека, доступны адресуемые регистры памяти 0–9 и A–E (буквенные вводятся через префиксную клавишу). Запись в регистр выполняется командой П→х (П х), чтение — х→П (хП). Именно регистры используются для организации циклов и хранения промежуточных результатов.

  • 🔢 Стековые регистры X, Y, Z, T — рабочая область для арифметики в обратной польской записи.
  • 💾 Регистры 0–9 и A–E — долговременное хранение данных и счётчиков циклов.
  • 🔁 Командный счётчик — отслеживает текущий шаг программы от 00 до конца памяти.
  • ⚙️ Префиксные клавиши Ф, К, П — расширяют набор команд каждой кнопки до трёх функций.

Перевод в режим программирования и ввод команд

Для записи программы нажмите Ф ПРГ — индикатор покажет адрес текущего шага и код команды в нём. Каждое нажатие клавиши теперь не вычисляется, а записывается в память как двухзначный код. После окончания ввода вернитесь в автоматический режим клавишей Ф АВТ.

⚠️ Внимание: память программ МК-61 энергозависима — при выключении питания вся программа стирается безвозвратно. Перед выключением перепишите программу на бумагу в виде таблицы кодов, иначе восстановить её будет невозможно.

Перед записью новой программы полезно установить счётчик на нулевой адрес командой В/О (возврат на нулевой шаг). Тогда программа начнётся с адреса 00, что упрощает отладку и документирование.

☑️ Порядок записи программы на МК-61

Выполнено: 0 / 6

Пример простой программы: вычисление площади круга

Классическая учебная задача — вычисление S = πR². Программа занимает всего несколько шагов: радиус вводится в регистр X, далее он возводится в квадрат и умножается на число π. В польской нотации это выглядит как последовательность , F π, ×.

00  x²      ; квадрат радиуса

01 F π ; загрузить π в стек

02 × ; умножить

03 С/П ; останов, результат на индикаторе

Запуск: в автоматическом режиме введите радиус, нажмите В/О для установки на начало, затем С/П (старт/останов). Через мгновение на индикаторе появится результат. Команда С/П внутри программы останавливает выполнение и показывает промежуточное или финальное значение.

💡

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

Ветвления и циклы: условные и безусловные переходы

Настоящая мощь МК-61 раскрывается в командах передачи управления. Безусловный переход БП с двухзначным адресом отправляет выполнение на указанный шаг. Условные переходы проверяют содержимое регистра X: х≥0, х<0, х=0, х≠0 — если условие истинно, выполняется следующий шаг, иначе происходит пропуск двух шагов (эту особенность обязательно учитывайте при расчёте адресов).

Для организации циклов служат команды L0–L3 (в некоторых источниках обозначаются как команды цикла по регистрам 0–3). Они уменьшают содержимое соответствующего регистра на единицу и, пока оно не достигло нуля, передают управление на заданный адрес. Так реализуются итерационные вычисления — например, суммирование рядов или табулирование функций.

⚠️ Внимание: при использовании условных переходов самая частая ошибка — неправильный расчёт адреса перехода из-за пропуска двух шагов при ложном условии. Перед запуском «прогоните» программу мысленно на тестовых значениях, отслеживая счётчик адресов на бумаге.

📊 Что вы чаще всего делаете с МК-61?
Учусь программировать с нуля
Пишу математические программы
Восстанавливаю и ремонтирую машину
Коллекционирую советскую электронику

Типичные ошибки при программировании и их диагностика

Если программа выдаёт неверный результат или «зависает», начните с проверки режима: убедитесь, что вы находитесь в автоматическом режиме при запуске и в программном — при редактировании. Вторая частая причина сбоев — неочищенный стек: остатки предыдущих вычислений в регистрах Y, Z, T искажают результаты. Перед запуском введите Сх (сброс X) и при необходимости обнулите используемые регистры памяти.

Ещё один источник проблем — неверно введённые коды команд. В режиме программирования можно пролистать всю память клавишами перемещения по шагам и сверить каждый код с записью на бумаге. Ошибочный шаг исправляется просто: установите счётчик на нужный адрес и введите правильную команду.

СимптомВероятная причинаЧто проверить
Неверный результатМусор в стеке или регистрахОбнулить регистры перед запуском
Программа не стартуетАктивен режим ПРГПерейти в режим АВТ
ЗацикливаниеНеверный адрес в команде БПСверить адреса с записью на бумаге
Пропуск части командОсобенность условных переходовУчесть пропуск двух шагов при ложном условии
Программа исчезлаВыключение питанияПамять энергозависима — нужна запись на бумаге
💡

МК-61 программируется в машинных кодах: успех зависит от понимания стека, аккуратного расчёта адресов переходов и обязательного дублирования программы на бумагу.

Практические приёмы и оптимизация программ

При лимите в 105 шагов каждая команда на счету. Опытные программисты экономили память, вынося повторяющиеся фрагменты в подпрограммы с вызовом через ПП и возвратом по В/О в конце подпрограммы. Также помогает переиспользование регистров: один и тот же регистр может хранить разные данные на разных этапах алгоритма.

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

Как работает обратная польская запись

Вместо записи «2 + 3» на МК-61 вводят 2, затем В↑, затем 3, затем +. Операнды помещаются в стек, а операция выполняется над двумя верхними элементами. Скобки не нужны — порядок вычислений задаётся самой последовательностью ввода. Это сокращает количество нажатий и упрощает аппаратную реализацию калькулятора.

Сохранность машины и работа с винтажным экземпляром

Если ваш МК-61 дожил до наших дней, обращайтесь с ним бережно. Используйте исправный блок питания с правильным напряжением и полярностью — параметры указаны в паспорте устройства и на корпусе. Неисправный или «не родной» адаптер — частая причина выхода из строя винтажных калькуляторов.

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

💡

Для отработки навыков программирования без риска для винтажного железа можно использовать эмуляторы МК-61 — они воссоздают систему команд и позволяют отладить программу перед вводом в реальную машину.

Часто задаваемые вопросы

Сколько шагов программы помещается в память МК-61?

Объём программной памяти составляет около 105 шагов, а регистров памяти — 15 (0–9 и A–E). Точные значения приведены в паспорте устройства; для длинных алгоритмов программу разбивают на части с ручным вводом промежуточных данных.

Сохраняется ли программа после выключения?

Нет. Память МК-61 энергозависима, поэтому при отключении питания программа стирается. Обязательно документируйте программы на бумаге в виде таблицы адресов и кодов команд.

Чем МК-61 отличается от МК-52 и МК-54?

Это машины одного семейства с похожей системой команд, но разными возможностями: например, МК-52 имел энергонезависимую память для сохранения программ, а МК-54 отличался конфигурацией регистров. Конкретные различия уточняйте по документации каждой модели.

Как исправить ошибку при вводе программы?

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

Можно ли использовать МК-61 как обычный калькулятор?

Да, в автоматическом режиме (после нажатия Ф АВТ) машина работает как обычный инженерный калькулятор с тригонометрическими, логарифмическими и статистическими функциями, используя обратную польскую запись вместо привычных скобок.