Список всех 256 команд ПМК с дополнительным комментарием, в случае наличия недокументированных возможностей.
| Код | Вид | Название | Комментарий | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 00…09 | 0…9 | Ввод числа | Ввод цифр идёт даже через границу
					С/П. Т. е. если в начале программы
					идёт цифра(ы), а перед её запуском тоже ввод, то он продолжится.
					То же касается и разделителя ., он может
					как заканчивать ввод в режиме вычислений, так и начинать в
					программе – будет воспринят как разделитель целой и дробной
					части. Второе нажатие . для разделения разрядов игнорируется. Например, последовательность 1 . 2 . 3 выведет 1.23, даже в программном режиме. Если предыдущая команда была не ввод цифры или разделителя, а так же не команда В↑, то предварительно осуществляется сдвиг стека под новое число. | ||||||||||||||||||||||
| 0A | . | Разделитель целой и дробной части | Кроме того, что указано выше восстановление X2→X в программном режиме. См. Таинственный регистр X2. | ||||||||||||||||||||||
| 0B | /-/ | Смена знака | Предыдущее значение НЕ копируется в X1. Cм. также Таинственный регистр X2. Если смена знака идёт после ввода цифры, и далее снова идёт ввод цифры, то стек не сдвигается, а новое вводимое значение заменяет в регистре X то, что было после смены знака. | ||||||||||||||||||||||
| 0C | ВП | Ввод порядка | Для многих чисел ввод порядка означает умножение на 10 в соответствующей степени. После ввода порядка можно ещё раз нажать ВП и ввести число – в этом случае порядки складываются. Знак порядка можно ввести как сразу после ВП, так и после ввода цифр. Если мантисса регистра X нулевая, то первая цифра заменяется на 1, причём, если была нажата смена знака /-/ до команды ВП, то будет уже −1, даже в программном режиме. Причём у минуснуля до этого знак не отображается. На самом деле в программном режиме это будет восстановление −0 с увеличением первой цифры на 1, как указано в разделе Восстановление X2 с сохранением первой цифры числа в X. Например, выполнение программы 
 Пример для нестандартной нулевой мантиссы. Возьмём число 200000000. , где двойка на месте знака (!), которое получается после косвенного обращения через R4…R6, если до того там содержалось 99999999. Тут после нажатия ВП число превратится в 210000000. . | ||||||||||||||||||||||
| 0D | Cx | Сброс X в ноль | Важное свойство – стек не двигается.
					Предыдущее значение НЕ копируется в X1.
					Обычно следующий ввод в RX сдвигает стек, но после Cx это иногда нет.
					Если после команды идёт ввод цифр, то стек не сдвигается, если перед выполнением
					Cx были: 
 | ||||||||||||||||||||||
| 0E | В↑ | Сдвиг стека | Если последующая команда – ввод числа, то будет ввод в X, если извлечение из памяти или Fπ – то стек ещё раз сдвинется. | ||||||||||||||||||||||
| 0F | FВx | Полный сдвиг, включая X1 | Единственная документированная и вводимая команда с цифрой F в коде. | ||||||||||||||||||||||
| 10 | + | Сложение | Результат проверяется только при X→X2, т. е. можно использовать для получения сверхчисел. | ||||||||||||||||||||||
| 11 | − | Вычитание | Результат проверяется только при X→X2, т. е. можно использовать для получения сверхчисел. | ||||||||||||||||||||||
| 12 | × | Умножение | Результат проверяется при X→X2, т. е. можно использовать для получения сверхчисел. | ||||||||||||||||||||||
| 13 | ÷ | Деление | Ошибка деления на ноль возникает безусловно, остальное при X→X2. | ||||||||||||||||||||||
| 14 | ←→ | Обмен X и Y | |||||||||||||||||||||||
| 15 | F10x | Возведение в степень числа 10 | Аргументы на переполнение порядка, сверхчисло, проверяется безусловно, а не при X→X2. | ||||||||||||||||||||||
| 16 | Fex | Возведение в степень числа e – экспонента | Аргументы на переполнение порядка, сверхчисло, проверяется безусловно, а не при X→X2. | ||||||||||||||||||||||
| 17 | Flg | Десятичный логарифм | Аргументы на больше нуля проверяется безусловно, а не при X→X2. | ||||||||||||||||||||||
| 18 | Fln | Натуральный логарифм | Аргументы на больше нуля проверяется безусловно, а не при X→X2. | ||||||||||||||||||||||
| 19 | Fsin-1 | Арксинус | Аргументы на |X|⩽1 проверяется безусловно, а не при X→X2. Для ГРД/Г и X = 0 выводит X = 00. | ||||||||||||||||||||||
| 1A | Fcos-1 | Арккосинус | Аргументы на |X|⩽1 проверяется безусловно, а не при X→X2. arccos(1) для ГРД/Г даёт ненормализованное 00. | ||||||||||||||||||||||
| 1B | Ftg-1 | Арктангенс | Для чисел x ⩾ 1.|+8 результат выдаёт близкий к максимуму– для радиан это почти π/2, для градов 99.999999. Может быть вычислен и для 1.|+100 в радианах из-за того, что порядок снижается, но не градусах. | ||||||||||||||||||||||
| 1C | Fsin | Синус | Аргументы на |X|<1.|+10 проверяется безусловно, а не при X→X2. | ||||||||||||||||||||||
| 1D | Fcos | Косинус | Аргументы на |X|<1.|+10 проверяется безусловно, а не при X→X2. | ||||||||||||||||||||||
| 1E | Ftg | Тангенс | Аргументы на |X|<1.|+10 проверяется безусловно, а не при X→X2. При X = π/2 + n × π тоже будет ошибка. | ||||||||||||||||||||||
| 1F | Пустой оператор | Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| 20 | Fπ | Число π – пи | Кроме того, что сдвигает стек, также копирует предыдущее X в X1, как арифметическая операция. Ещё одной особенностью является то, что это единственная не X2-влияющая команда, которая расширяет стек: сдвигает данные в глубь. | ||||||||||||||||||||||
| 21 | F√ | Квадратный корень | Аргументы проверяется безусловно на X⩾0, а не при X→X2. | ||||||||||||||||||||||
| 22 | Fx2 | Возведение в квадрат | Результат проверяется при X→X2, т. е. можно использовать для получения сверхчисел. | ||||||||||||||||||||||
| 23 | F1/x | Обратная величина | Ошибка деления на ноль возникает безусловно, остальное при X→X2. | ||||||||||||||||||||||
| 24 | Fxy | Возведение в степень | Ошибка, если X ⩽ 0. Не принимает отрицательный X, даже когда это
					математически допустимо. Ошибка переполнения возникает безусловно, а не при X→X2. Стек не сокращается, в отличие от обычных арифметических операций. Т. е. число в Y остаётся на месте, позволяя ещё раз возвести в ту же степень. Это не документировано. | ||||||||||||||||||||||
| 25 | F↻ | Прокрутка стека в обратном порядке | |||||||||||||||||||||||
| 26 | К°→′ | Перевод угловых или временных величин из обычной формы в часть целой | Если дробное значение ⩾0.6, то будет ошибка. Целая часть не меняется, даже если шестнадцатеричное число. | ||||||||||||||||||||||
| 27 | К− | Ошибка | ЕГГ0Г . | ||||||||||||||||||||||
| 28 | К× | Ошибка | ЕГГ0Г . | ||||||||||||||||||||||
| 29 | К÷ | Ошибка | ЕГГ0Г . | ||||||||||||||||||||||
| 2A | К°→′" | Перевод угловых или временных величин из обычной формы в часть целой, включая секунды | Если дробное значение ⩾0.6, то будет ошибка. Целая часть не меняется, даже если шестнадцатеричное число. | ||||||||||||||||||||||
| 2B…2E | Ошибка | ЕГГ0Г . | |||||||||||||||||||||||
| 2F | Пустой оператор | Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| 30 | К°←′" | Перевод угловых или временных величин из части целого в обычную форму, включая секунды | Если дробная часть ⩽ 2.|−07, то обратное преобразование уже не срабатывает. Если = 1.|−07 то уже и прямое преобразование не меняет значение. Если целая часть шестнадцатеричное число и нет дробной части или оно = 1.|−07 – оно нормализуется, как в операциях с шестнадцатеричными цифрами. Иначе остаётся без изменений. | ||||||||||||||||||||||
| 31 | К∣x∣ | Модуль | Удаляет знак. Делает знакоцифру = 1, что выглядит как пустое место и соответствует положительным числам. | ||||||||||||||||||||||
| 32 | КЗН | Знак числа | У отрицательного нуля знак положительный, т.е. для нуля знакоцифра игнорируется. | ||||||||||||||||||||||
| 33 | К°←′ | Перевод угловых или временных величин из части целого в обычную форму | Если дробная часть ⩽ 2.|−07, то обратное преобразование уже не срабатывает. Если = 1.|−07 то уже и прямое преобразование не меняет значение. Если целая часть шестнадцатеричное число и нет дробной части или оно = 1.|−07 – оно нормализуется, как в операциях с шестнадцатеричными цифрами. Иначе остаётся без изменений. | ||||||||||||||||||||||
| 34 | К[x] | Целая часть | Простое отбрасывание дробной части, а не математическое нахождение
					целой части, т. е. [−1.2] = −1, а не −2. Если число целое и шестнадцатеричное – оно преобразуется, как в операциях с шестнадцатеричными цифрами. Если есть дробная часть, то целая шестнадцатеричная часть остаётся без изменений. | ||||||||||||||||||||||
| 35 | К{x} | Дробная часть | Простое отбрасывание целой части, а не математическое нахождение
					дробной части, т. е. {−1.2} = −0.2, а не 0.8. Для целых чисел по модулю < 10.|+7, точнее числа, которым нужно меньше восьми знакомест, получается отрицательный ноль. В сравнениях идёт как отрицательное число и как ноль. Т. е. {−1234567} = −0, но {−12345678} = 0. Шестнадцатеричные цифры в дробной части сохраняются. | ||||||||||||||||||||||
| 36 | Кmax | Максимум | Стек не сокращается, в отличие от обычных арифметических операций.
					Ноль исключение – самое большое число. Обмена X и Y не происходит, т. е. либо X и Y после операции совпадают, когда в Y был максимум, либо остаются как есть, кроме копирования X в X1. | ||||||||||||||||||||||
| 37 | К∧ | Логическое умножение битов (AND). См. Конъюнкция, Побитовое «И» | В логических операциях первая цифра заменяется на 8, а над
					остальными цифрами мантиссы проводится побитовая операция, как с
					шестнадцатеричными числами. Порядок и знак исходных чисел
					значения не имеют, они могут быть даже пустышкой.
					Результат всегда в форме 8.HHHHHHH Стек для двухоперандных операций не сокращается, что позволяет выполнить операцию ещё раз. Вообще для всех синихдвухоперандых операций стек остаётся на месте, что не документировано. Перед выполнением операнды нормализуются! | ||||||||||||||||||||||
| 38 | К∨ | Логическое сложение битов (OR). См. Дизъюнкция, Побитовое ИЛИ | |||||||||||||||||||||||
| 39 | К⊕ | Логическое XOR. См. Исключающее «или», Побитовое исключающее ИЛИ | |||||||||||||||||||||||
| 3A | КИНВ | Логическая инверсия (NOT). См. Отрицание, Побитовое отрицание | |||||||||||||||||||||||
| 3B | КСЧ | Случайное число | Единица не бывает. Ноль бывает в редких случаях: когда в регистре Y
					шестнадцатеричное число, то последовательность может выдавать и ноль.
					Генератор
					не очень хороший, часто циклится от применения команд с К. Сбросить на начало, как при включении, можно с помощью операции Кmax, когда регистр Y нулевой. | ||||||||||||||||||||||
| 3C | Ошибка | ЕГГ0Г . | |||||||||||||||||||||||
| 3D | То же, что и команда К°→′" (код 2A) | ||||||||||||||||||||||||
| 3E | Копирование Y в X, а X→X1 | Те же действия, что и пара команд F↻ В↑, только не X2-влияющая. | |||||||||||||||||||||||
| 3F | Пустой оператор | Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| 40…4E | x→ПR | Сохранение X в регистр R0…Re | |||||||||||||||||||||||
| 4F | Сохранение X в регистр R0 | Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| 50 | С/П | Стоп/пуск | Если во время выполнения программы нажать на С/П,
					то счётчик команд будет указывать на следующую команду, даже если логика
					выполнения это не преполагает. Например, при выполнении программы: 
 уйдетиз вечного цикла. Здесь подразумевается, что R7 = 0. | ||||||||||||||||||||||
| 51 | БП | Безусловный переход | |||||||||||||||||||||||
| 52 | В/О | Возврат обратно | Стек обратных адресов подпрограмм из 5 ячеек, вначале нулевых. При возврате из подпрограммы берётся значение верхней ячейки стека + 1, для определения точки возврата, и стек сдвигается, поэтому сразу после включения ПМК команда В/О эквивалентна БП01. Но если стек адресов возврата заполнился до конца, то последний адрес стека начинает копироваться и В/О будет на этот адрес + 1. Для зануления стека, в этом случае, можно воспользоваться знаниями Еггогологии и вызвать нулевого 3Г0ГГа: Cx В↑ ÷ ВП Fx2 Cx ←→ Cx. Или запустить ненадолго бесконечную программу из одного оператора, например KПП9, при условии, что R9 = 0. | ||||||||||||||||||||||
| 53 | ПП | Вызов подпрограммы | Переход на адрес подпрограммы, указанный следующей командой. Этот адрес запоминается в стеке обратных адресов. См. В/О. | ||||||||||||||||||||||
| 54 | КНОП | Пустой оператор | |||||||||||||||||||||||
| 55 | К1 | Пустой оператор | |||||||||||||||||||||||
| 56 | К2 | Пустой оператор | |||||||||||||||||||||||
| 57 | Fx≠0 | Если не ноль | Пропуск адреса перехода, и выполнение следующей после него команды, если X не равен нулю. | ||||||||||||||||||||||
| 58 | FL2 | Цикл по регистру R2 | |||||||||||||||||||||||
| 59 | Fx≥0 | Если больше или равен нулю | Пропуск адреса перехода, и выполнение следующей после него команды, если X больше или равен нулю. | ||||||||||||||||||||||
| 5A | FL3 | Цикл по регистру R3 | |||||||||||||||||||||||
| 5B | FL1 | Цикл по регистру R1 | |||||||||||||||||||||||
| 5C | Fx<0 | Если меньше нуля | Пропуск адреса перехода, и выполнение следующей после него команды, если X меньше нуля. | ||||||||||||||||||||||
| 5D | FL0 | Цикл по регистру R0 | |||||||||||||||||||||||
| 5E | Fx=0 | Если равен нулю | Пропуск адреса перехода, и выполнение следующей после него команды, если X равен нулю. | ||||||||||||||||||||||
| 5F | Зависание | Визуально воспринимается как зависание. ПМК не реагирует на ввод
					команд и ничего не отображает. Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| 60…6E | П→xR | Извлечение из регистра R0…Re в X | |||||||||||||||||||||||
| 6F | Извлечение из регистра R0 в X | Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| 70…7E | Кx≠0R | Косвенный условный переход при неравенстве нулю, адрес перехода в регистре R0…Re | Пропуск адреса перехода, и выполнение следующей после него команды, если X не равен нулю. Регистр R модифицируется только при переходе на указанный в нём адрес. | ||||||||||||||||||||||
| 7F | Косвенный условный переход при неравенстве нулю, адрес перехода в регистре R0 | Пропуск адреса перехода, и выполнение следующей после него команды,
					если X не равен нулю.  Регистр R0 модифицируется только
					при переходе на указанный в нём адрес. Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| 80…8E | КБПR | Косвенный безусловный переход на адрес перехода в регистре R0…Re | |||||||||||||||||||||||
| 8F | Косвенный безусловный переход на адрес перехода в регистре R0 | Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| 90…9E | Кx≥0R | Косвенный условный переход, если больше или равен нулю, адрес перехода в регистре R0…Re | Пропуск адреса перехода, и выполнение следующей после него команды, если X больше или равен нулю. Регистр R модифицируется только при переходе на указанный в нём адрес. | ||||||||||||||||||||||
| 9F | Косвенный условный переход, если больше или равен нулю, адрес перехода в регистре R0 | Пропуск адреса перехода, и выполнение следующей после него команды,
					если X больше или равен нулю. Регистр R0 модифицируется только
					при переходе на указанный в нём адрес. Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| A0…AE | КППR | Косвенный вызов подпрограммы по адресу в регистре R0…Re | |||||||||||||||||||||||
| AF | Косвенный вызов подпрограммы по адресу в регистре R0 | Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| B0…BE | Кx→ПR | Косвенное сохранение X в регистр, по номеру в регистре R0…Re | |||||||||||||||||||||||
| BF | Косвенное сохранение X в регистр, по номеру в регистре R0 | Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| C0…CE | Кx<0R | Косвенный условный переход, если меньше нуля, адрес перехода в регистре R0…Re | Пропуск адреса перехода, и выполнение следующей после него команды, если X меньше нуля. Регистр R модифицируется только при переходе на указанный в нём адрес. | ||||||||||||||||||||||
| CF | Косвенный условный переход, если меньше нуля, адрес перехода в регистре R0 | Пропуск адреса перехода, и выполнение следующей после него команды,
					если X меньше нуля. Регистр R0 модифицируется только
					при переходе на указанный в нём адрес. Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| D0…DE | КП→xR | Косвенное извлечение X из регистра, по номеру в регистре R0…Re | |||||||||||||||||||||||
| DF | Косвенное извлечение X из регистра, по номеру в регистре R0 | Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| E0…EE | Кx=0R | Косвенный условный переход, если равен нулю, адрес перехода в регистре R0…Re | Пропуск адреса перехода, и выполнение следующей после него команды, если X равен нулю. Регистр R модифицируется только при переходе на указанный в нём адрес. | ||||||||||||||||||||||
| EF | Косвенный условный переход, если равен нулю, адрес перехода в регистре R0. Регистр R0 модифицируется только при переходе на указанный в нём адрес. | Пропуск адреса перехода, и выполнение следующей после него команды,
					если X равен нулю. Регистр R0 модифицируется только
					при переходе на указанный в нём адрес. Обычным образом такую команду не ввести. | |||||||||||||||||||||||
| F0…FF | Пустой оператор | Обычным образом такую команду не ввести. | |||||||||||||||||||||||
Все команды, которые приводят к ошибке при проверке границ, неверном аргументе или просто помеченные, как приводящие к ошибке, успевают скопировать X → X1 перед исполнением и выдачей ошибки. Но если возникает переполнение, например слишком большое число, то копирование X → X1 будет в операции, вызвавшей переполнения, а не когда ошибка проявится из-за перевода X → X2. Понятно, это только в программном режиме. Пример, в программе
| # | | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 
|---|---|---|---|---|---|---|---|---|---|---|
| 00 | | Cx | Fπ | ÷ | С/П | ||||||
ошибка возникнет на шаге 02 из-за деления на ноль, и π попадёт в X1. А если так:
| # | | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 
|---|---|---|---|---|---|---|---|---|---|---|
| 00 | | КНОП | 8 | Fx2 | F10x | Fx2 | КНОП | /-/ | ВП | ||
то переполнение будет на шаге 04, именно там 10.|+64 попадёт в X1, а команда /-/ только проявит ошибку на экране.
Среднее время выполнения некоторых команд на реальном ПМК для ориентировки. Фактически может отличаться до 10% в зависимости от партии контроллеров, которые использовались при монтаже калькулятора.
| Время в секундах | Команды | 
|---|---|
| 0.20 | +, −, ×, ÷, Fx2, Fπ, F1/x, F10x при целом X, K[x], K{x}, K|x|, Kmax, K∨, K∧, KИНВ, K⊕, команды со стеком. | 
| 0.22 | F√. | 
| 0.26 | Ввод чисел в RX явно, или через извлечение из регистра, а также операции FBx и В↑. | 
| 0.31 | Fxy если X и Y целые > 0. | 
| 0.40 | KСч, FL0 … FL3. | 
| 1.20 | F10x, Fex, FLg, FLn. | 
| 1.50 | Тригонометрические функции. | 
| 2.00 | Fxy. | 
Нужно ещё учитывать, что при выполнении время чтения команд с дальних адресов немного, на 1…4% медленнее, чем с начальных.
Некоторые команды с цифрой F в коде можно получить тоже недокументированным образом.
Команды F0…FE получаются по адресам 30…44 после выполнения в режиме вычислений пары команд В/О КППR, R = 0…e, которые переведут ПМК в режим ввода программы и вставят код с цифрой F. При этом в регистрах R0…R3 должно быть число заканчивающееся на 1 или 2. Точнее такое, чтобы после косвенной адресации заканчивалось на 1 или 2. Если там будет другое, например, ноль, как после включения ПМК, то для R1…R3 вставится F0…F2 по адресу 30…32, а для R0 это будет самый быстрый способ получить 3Г0ГГа, причём перехода в режим ввода программы не произойдёт, но, увы, этот 3Г0ГГ очистку стека возврата не делает.
Так же по адресам 50…59 можно вставить команды, начинающиеся с цифры F. При этом можно даже управлять, на какую цифру заканчивается и по какому адресу именно вставиться в пределах указанного диапазона. Для этого сначала сделаем ЕГГ0Г, как число, а не ошибку. Например, как 5 0 F10x Fx2. Можно его и сохранить, чтобы повторить шаги. После появления ЕГГ0Га, так или извлечения из регистра, набираем ВП {D1} {D2} . 0, где {D1} и {D2} цифры. Так вот, в этот момент ПМК перейдёт в режим ввода программы и по адресу 5{D1}, и будет вставлена команда F{D2}. Т. е. при вводе ВП 3 7 . 0, по адресу 53 будет вставлена команда F7.
			Последовательность 5 команд FF через одну можно получить
			по любому адресу, если стек возврата забить
 числом, начинающимся
			с пустышки, и перед переходом в режим ПРГ нажимается
			БП Адрес
. Тогда
			начиная с адреса Адрес
−11 через одну будут проставлены команды FF.
			
			Для начала получим адрес с начальной пустышкой, например число F8, и
			сохраним в регистр, например в R7. Не забыть при этом в конце убрать
			такое число с начальной пустышкой из RX!
			
			8 
			8 
			8 
			В↑ 
			7 
			7 
			K∨ 
			K{x} 
			ВП 
			2 
			x→П7 
			Cx
			
			Теперь по этому темному
 адресу вставим команду вызова подпрограммы
			по R7:
			
			KБП7 
			FПРГ 
			KПП7 
			FАВТ 
			KБП7
			
			Потом 5 раз, чтобы забить стек возврата, нажмём ПП
			
			После этого уже выбираем, где нам нужны команды FF. Пусть мы хотим их с
			адреса 80. Тогда делаем переход на 80 + 11 = 91
			БП91 и
			FПРГ 
			FАВТ
			
			Теперь по адресам 80, 82, 84, 86, 88 добавилась команда FF. Если нужно
			побольше, например ещё и по адресам 81, 83, 85, 87, 89, то просто снова
			заполним стек возврата
			KБП7,
			5 раз ПП, и после
			БП92 и
			FПРГ 
			FАВТ
			получим то, что хотели.
			
			Не забудьте в конце почистить стек возврата как указано в примечание для
			команды В/О!