Руководство по эксплуатации

Полная инструкция

Всё, что нужно, чтобы уверенно работать на МК‑61: от первой запятой до косвенной адресации и таблицы проверки кодов - как в фирменном руководстве, только понятнее.

1. Включение и органы управления

Переключатель ВКЛ подаёт питание: на индикаторе загорается 0, Выключение полностью стирает память - и стек, и регистры, и программу. Так работал и оригинал: никакой энергонезависимой памяти в МК‑61 не было (она появилась только в МК‑52).

Переключатель Р - ГРД - Г задаёт единицы углов: радианы, грады, градусы. В симуляторе щёлкните по левой, средней или правой части переключателя.

Мелочи из бумажного руководства: если на настоящем приборе загорались запятые во всех разрядах разом - это сигнал «батарея села», а повторно включать машину советовали не раньше чем через 30 секунд.

2. Ввод чисел

  • Цифры набираются как обычно, разделитель дробной части - клавиша , (именно запятая).
  • /-/ меняет знак набираемого числа (или числа в X, если ввод завершён).
  • ВП начинает ввод порядка: 1 , 5 ВП 6 даст 1,5·10⁶. Нажатие /-/ во время ввода порядка меняет его знак: 1 ВП 8 /-/ - это 10⁻⁸.
  • Сx очищает X и снимает ЕГГОГ.
  • Мантисса - до 8 значащих цифр, порядок - до ±99. Девятую и последующие цифры машина просто игнорирует - ввод блокируется без ошибки.
  • Если нажать ВП, не набрав мантиссу (или при мантиссе 0), машина сама подставит единицу: ВП 5 - это уже 10⁵.
  • Ошиблись в порядке - продолжайте набирать: каждая новая цифра входит в младший разряд порядка, а старая сдвигается влево. 1 ВП 2 5 даст порядок 25.

3. Стек и обратная польская запись

У МК‑61 нет клавиши «равно». Машина держит четыре числа в стеке X, Y, Z, T (X - то, что на индикаторе) плюс регистр X1 - предыдущее значение X.

Правило одно: сначала операнды, потом операция. Сложить 2 и 3: 2 В↑ 3 +. Клавиша В↑ поднимает стек (T теряется, Z→T, Y→Z, X→Y), а следующая цифра пишется в X.

Приём «вычисления с константой». После двухместной операции стек опускается: Y←Z, Z←T, а регистр T сохраняет своё значение и как бы «размножается» вниз. Заводское руководство советует пользоваться этим так: загоните константу во весь стек (5 В↑ В↑ В↑) - и теперь каждое нажатие × будет снова умножать на 5, сколько бы раз вы его ни нажали. Для нового аргумента нажмите Сx, число и операцию - константа не расходуется.
  • меняет местами X и Y.
  • F (над запятой) - циклическое вращение стека: X→T→Z→Y→X.
  • F Вx возвращает в X предыдущее значение (X1) с подъёмом стека.

4. Регистры памяти

Пятнадцать регистров: Р0-Р9 и РА, РВ, РС, РД, РЕ. Буквенные регистры адресуются клавишами с буквами на панели: ,=А, /-/=В, ВП=С, Сx=Д, В↑=Е.

  • Записать X в регистр: x→П затем клавиша регистра. Пример: x→П 7.
  • Вызвать регистр в X (с подъёмом стека): П→x затем клавиша регистра.

5. Функции F и K

Почти у каждой клавиши три значения: основное (на клавише), жёлтое - через префикс F, синее - через префикс K. Ошибочно нажатый префикс снимается F Сx (СF).

6. Режимы углов

Тригонометрические функции читают переключатель Р - ГРД - Г: sin 30 в положении «Г» даст 0,5; sin (π/6) в положении «Р» - тоже 0,5; в градах прямой угол равен 100. Обратные функции возвращают результат в тех же единицах.

7. ЕГГОГ

Слово ЕГГОГ на индикаторе - это ошибка. Её вызывают:

  • деление на ноль, F 1/x от нуля;
  • корень, lg и ln из отрицательного числа (и нуля - для логарифмов);
  • arcsin и arccos от числа больше 1 по модулю;
  • F xy при основании 0 и неположительном показателе, а также при отрицательном основании;
  • tg от 90°, 270° и вообще любого угла с косинусом 0;
  • К-преобразования часов и градусов, если минут или секунд набрано 60 и больше (2,75 - это не «2 часа 75 минут»);
  • переполнение - результат с порядком от 100 и выше;
  • шестой уровень вложенности подпрограмм и выход косвенного адреса за пределы памяти.

А вот слишком маленький результат (порядок ниже −99) ошибкой не считается: машина молча записывает в X ноль. Снимается ошибка клавишей Сx или началом нового ввода - после ЕГГОГ можно спокойно продолжать счёт. Работающая программа при ЕГГОГ останавливается.

8. Программирование

Вход и выход

  • F ВП (ПРГ) - режим программирования;
  • F /-/ (АВТ) - обратно в режим вычислений.

Что показывает индикатор в ПРГ

Справа - двузначный адрес счётчика команд (куда ляжет следующая команда). Левее - коды трёх предыдущих шагов. Каждая нажатая команда записывается в память, счётчик увеличивается. Всего 105 шагов, адреса 00-104.

Коды - двузначные, в «шестнадцатеричной по-эмковски» записи: псевдоцифры от 10 до 14 выглядят как - L C Г Е. Например, код команды x→П А - 4-.

Навигация и запуск

  • ШГ→ и ШГ← в режиме ПРГ двигают счётчик по шагам - для просмотра и правки;
  • В/О в режиме АВТ ставит счётчик на адрес 00;
  • С/П запускает программу с текущего адреса и останавливает работающую;
  • ПП в режиме АВТ исполняет один шаг программы - пошаговая отладка;
  • команда С/П внутри программы останавливает счёт и показывает X - так программы «спрашивают» данные.
Приём из настоящих листингов. Цифровая команда в программе продолжает незавершённый набор числа. Если после программного С/П пользователь ввёл число, а дальше в программе идёт цифра - она «прилипнет» к введённому числу. Поэтому после С/П в листингах обычно стоит В↑ или x→П, завершающие ввод.

9. Переходы, циклы, подпрограммы

Безусловный переход

БП и следом две цифры адреса. В программе занимает два шага: код 51 и байт адреса.

Условные переходы - внимание, инверсия

Четыре проверки над X: F x=0, F x≠0, F x≥0, F x<0, каждая с адресом.

Если условие выполнено - программа идёт дальше. Переход по адресу происходит, когда условие ЛОЖНО. Это самая частая ошибка начинающего программиста ПМК.

Циклы

Команды F L0-L3 работают со счётчиками Р0-Р3: пока счётчик не меньше 2, он уменьшается на единицу и происходит переход по адресу; иначе - следующая команда. Со счётчиком 5 переход произойдёт 4 раза, тело цикла исполнится 5 раз, а после выхода в счётчике останется ноль.

Подпрограммы

ПП с адресом вызывает подпрограмму, В/О возвращается. Вложенность - до пяти уровней, шестой вызов даёт ЕГГОГ.

10. Косвенная адресация

Синие K-команды К П→x, К x→П, К БП, К ПП и K-условия берут адрес или номер регистра из указанного регистра.

Регистр-указатель меняется сам: при обращении через Р0-Р3 его значение сначала уменьшается на 1, через Р4-Р6 - увеличивается на 1, Р7-РЕ не меняются. Это не баг, а встроенные счётчики для организации циклов по массивам.

11. Проверка введённой программы

Ровно как советовало фирменное руководство: после ввода программы вернитесь в начало и сверьте коды.

  1. Останьтесь в режиме ПРГ и вернитесь на адрес 00 (в симуляторе - F /-/, В/О, F ВП).
  2. Нажимайте ШГ→: индикатор показывает адрес и коды трёх предыдущих шагов.
  3. Сверяйте каждый код с контрольной колонкой листинга. Ошиблись - встаньте счётчиком на нужный адрес и введите команду заново.

На страницах бесплатных игр есть кнопка «Проверить коды»: она показывает дамп памяти программы - адрес, код и клавиши, - как контрольные таблицы в журнальных листингах.

12. Полная таблица кодов команд

Строка - старшая цифра кода, столбец - младшая. Жёлтым выделены F-команды, голубым - K-команды. Псевдоцифры - L C Г Е соответствуют значениям 10-14. Код команды F Вx индикатор показывает как (ноль с пустышкой).

13. О симуляторе и отличиях

  • Физическая клавиатура: цифры, , и ., Enter = В↑, + - * /, Backspace = Сx, x = ↔, f и k - префиксы.
  • Программы исполняются со скоростью около 40 шагов в секунду - быстрее железных ~5, чтобы не состариться за «Лунолётом».
  • В консоли браузера доступен объект mk61 - стек, регистры и память программы как на ладони.
  • Честные упрощения: логические К-операции работают с двоичным представлением целой части (а не с БЦД-тетрадами), недокументированные трюки еггогологии со сверхчислами не воспроизводятся.
  • Датчик К СЧ в симуляторе по-настоящему случайный. У железного МК‑61 он был псевдослучайным: из «чистой» памяти сразу после включения первое значение всегда равнялось 0,404067, а вся последовательность состояла из 89 чисел разгона и петли в 145 значений.
  • Настоящий прибор считал неторопливо: арифметика - до полусекунды, логарифмы и тригонометрия - около двух секунд, xy - до трёх с половиной. Пять операций в секунду - это про простые сложения.

К симулятору