1. Включение и органы управления
Переключатель ВКЛ подаёт питание: на индикаторе загорается 0,
Выключение полностью стирает память - и стек, и регистры, и программу. Так работал и оригинал:
никакой энергонезависимой памяти в МК‑61 не было (она появилась только в МК‑52).
Переключатель Р - ГРД - Г задаёт единицы углов: радианы, грады, градусы.
В симуляторе щёлкните по левой, средней или правой части переключателя.
Мелочи из бумажного руководства: если на настоящем приборе загорались запятые
во всех разрядах разом - это сигнал «батарея села», а повторно включать машину советовали
не раньше чем через 30 секунд.
- Цифры набираются как обычно, разделитель дробной части - клавиша , (именно запятая).
- /-/ меняет знак набираемого числа (или числа в 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. Проверка введённой программы
Ровно как советовало фирменное руководство: после ввода программы вернитесь в начало и сверьте коды.
- Останьтесь в режиме ПРГ и вернитесь на адрес 00 (в симуляторе - F /-/, В/О, F ВП).
- Нажимайте ШГ→: индикатор показывает адрес и коды трёх предыдущих шагов.
- Сверяйте каждый код с контрольной колонкой листинга. Ошиблись - встаньте счётчиком на нужный адрес и введите команду заново.
На страницах бесплатных игр есть кнопка «Проверить коды»: она показывает дамп памяти программы -
адрес, код и клавиши, - как контрольные таблицы в журнальных листингах.
12. Полная таблица кодов команд
Строка - старшая цифра кода, столбец - младшая. Жёлтым выделены F-команды, голубым - K-команды.
Псевдоцифры - L C Г Е соответствуют значениям 10-14.
Код команды F Вx индикатор показывает как 0 (ноль с пустышкой).
13. О симуляторе и отличиях
- Физическая клавиатура: цифры, , и ., Enter = В↑, + - * /, Backspace = Сx, x = ↔, f и k - префиксы.
- Программы исполняются со скоростью около 40 шагов в секунду - быстрее железных ~5, чтобы не состариться за «Лунолётом».
- В консоли браузера доступен объект mk61 - стек, регистры и память программы как на ладони.
- Честные упрощения: логические К-операции работают с двоичным представлением целой части (а не с БЦД-тетрадами),
недокументированные трюки еггогологии со сверхчислами не воспроизводятся.
- Датчик К СЧ в симуляторе по-настоящему случайный. У железного МК‑61 он был
псевдослучайным: из «чистой» памяти сразу после включения первое значение всегда равнялось 0,404067,
а вся последовательность состояла из 89 чисел разгона и петли в 145 значений.
- Настоящий прибор считал неторопливо: арифметика - до полусекунды, логарифмы и тригонометрия -
около двух секунд, xy - до трёх с половиной. Пять операций в секунду - это про простые сложения.
К симулятору ▸