Программирование на Электроника МК61

Введение

В прошлой статье (Калькулятор Электроника МК61) я кратко рассказал об особенностях микрокалькулятора Электроника МК61, о его устройстве и принципах работы, с которыми мне удалось самому разобраться за пару вечеров.

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

Для начала необходимо осознать, что МК61 не обладает ПЗУ (постоянное запоминающие устройство), т.е. введённая в калькулятор программа будет потеряна/очищена сразу после отключения калькулятора и в следующий раз придётся вводить её вновь.

В прошлом в различных конструкторских бюро утро начиналось не с чашечки кофе (как в современных НИИ и IT-компаниях), а с того, что инженеры вводили программы в свои калькуляторы, а уже после можно и кофе.

Программа для МК61 и ему подобных калькуляторов в основном представляет из себя запись последовательности действий, которые пользователь осуществлял бы и без программы, но записав их в программу этот набор действий будет сохранён и избавит пользователя от многократного повторения.

Когда это может быть актуально? Тогда, когда необходимо много раз производить расчёт, но с разными вводными. Либо когда необходимо повторять расчёт многократно и вводными данными служат результаты предыдущего расчёта (построение графиков) и т.п. Если это одиночная операция, то проще не заморачиваться с программированием.

С чего начинается программирование на МК61 и подобных.

В первую очередь необходимо перевести микрокалькулятор в режим программирования, для этого нажимаем F ПРГ, после чего справа на дисплее будут отображено 00, это значит, что калькулятор успешно переведён в режим ввода программы.

00 означает порядковый номер команды в программе, в МК61 их максимально может быть 105. После ввода каждой последующей команды этот счётчик будет инкрементироваться. Если допустили ошибку ввода или есть необходимость скорректировать какой-то шаг программы, то есть две клавиши(ШГ-> и ШГ<-), которые позволяют перемещаться по введённой программе и вносить, чтоб затем ввести изменения.

Ну и давайте напишем нашу первую программу, а точнее функцию, которая будет воспроизводит пример из прошлой статьи, помните (2 + 5) * 3, но сделаем так, чтоб значения можно было менять и повторять расчёт. В итоге получается примерно вот так (x + y) * z = ?. Теперь подставляя значения в x,y,z можно получать результат не производя лишних действий. А помните про регистры из прошлой статьи, так вот мы их и будем использовать в качестве переменных X — REG2; Y — REG3; Z — REG4 и конечно же не забываем про обратную польскую запись 🙂

Погнали

Для начала переведём калькулятор в режим программирования [F] [ПРГ] и начнём вводить нашу первую программу для МК61. Теперь на экране отображаются в правой части дисплея 00, это текущий номер команды.

Вводим:

[П->X] [4] — читаем из памяти значение регистра REG4 в регистр X.

[П->X] [3] — читаем из памяти значение регистра REG3 в регистр X, а предыдущее значение переносится в регистр Y.

[П->X] [2] — читаем из памяти значение регистра REG2 в регистр X, а предыдущее значение переносится в регистр Y.

ввели запись значений из регистров с стек

[+] — операция сложения регистров X и Y, а результат записан в X, знвчение регистра стека Z спускается в Y.

[*] — операция умножения на текущими значениями X и Y, результат записывается в X и как следствие отображается на эране.

[С\П] — остановка исполнения программы.

Выходим из режима программирования [F] [АВТ].

Вот и введена наша первая программа в МК61, осталось только заполнить вводные параметы в регистры X — REG2; Y — REG3; Z — REG4 и запустить нашу программу.

Для ввод значений в каждый регистров необходимо нажать:

[3][X->П][4] — вводим 3-ку в REG4

[5][X->П][3] — вводим 5-ку в REG3

[2][X->П][2] — вводим 2-ку в REG2

Вот и всё подготовили, программа введена, значения регистров(по аналогии аргументы функции) введены. Теперь осталось выполнить запуск [СХ][В/О][С/П] и в результате должны на дисплее увидеть 21, если получилось, то значит всё сделали правильно.

Ну а дальше можно вводить новые значения в регистры REG2, REG3, REG4 и повторять запуск программы.

Как прикладной простой пример может выступать программа, которая конвертирует температуру из Фаренгейта в Цельсии.

Пример (50°F => C):

Расчёт будет вот такой (50°F — 32) : 1,8 = 10°C, ну и давайте превратим это в программу, чтобы только вводить значения F и получать C.

Для начала выключим и включим калькулятор после прошлых расчётов, затем переведём калькулятор в режим программирования [F] [ПРГ]. Далее вводим программу

[П->X] [2] — берём значение 50 в стек из REG2

[П->X] [3] — берём значение 32 (константное) в стек из REG3

[-] — вычитаем 50 — 32

[П->X] [4] — берём значение 1,8 (константное) в стек из REG4

[/] — деление 18 / 1.8

[С\П] — остановка исполнения программы.

В итоге должен получится следующий код программы: 62 63 11 64 13 50

Далее переводим калькулятор в режим расчётов [F][АВТ] и заполняем регистры REG2, REG3, REG4.

[СХ] — на всякий случай отчистим всё

[50][X->П][2] — заносим в REG2 значение (50)
[32][X->П][3] — заносим в REG3 значение (32)
[1,8][X->П][4] — заносим в REG4 значение (1,8)

Ну попробуем запустить, то что у нас получилось: [СХ][В/О][C/П], должно получится 10.

Состояние стека и регистров

Теперь переписывая значения в REG2 на любые нужные F-ы, и выполняя [СХ][В/О][C/П], будут автоматически высчитываться C.

Ссылка на симулятор Электроника МК61

4 комментария

  1. Как знакомо, какая ностальгия! Сейчас Вытащу свой МК-61 из тумбочки — он у меня живой до сих пор!

    1. к сожалению нету, была идейка расписать про Луналёт, интересно было её повторить, до этого только в школе её вводил и экспериментировал с посадками.
      Была идея тут расписать немного. Но всё как обычно, но что-то переключился, другим загорелся, ну со свободным временем как всегда не густо.

      Если эта тема интересна почитайте про Луналёт в интернете

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *