Elektronika MK-61

Elektronika MK-61 () は、1983年から1994年までの間にソ連で製造されたRPNプログラム電卓である。РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ МК 61 МИКРОКАЛЬКУЛЯТОР (ロシア語マニュアル 21ページ簡約版) Электроника, 1993年 - ロシア語マニュアルの写真の右側РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ МК 61 МИКРОКАЛЬКУЛЯТОР (ロシア語マニュアル 174ページ詳細版 889-30000) Электроника - ロシア語マニュアルの写真の左側
当初の販売価格は85ルーブルであった。ギャラリーにある裏面の写真を参照。写真の電卓は1993年1月製造のものであるが、「ЦЕНА 85РУБ」 (価格 85ルーブル) と記載がある。この記載は後から印刷や刻印をしたものではなく、製造時に最初から成形されている。

Elektronika MK-61は、15本のデータメモリ簡約版 P2と105ステップのプログラムメモリ簡約版 P1を備えたプログラム電卓である。4レベルのスタックとLastXレジスタを備えたRPN電卓でもある。
間接指定機能が豊富であり、しかも内部コードの半数超を間接指定命令で占めており、間接指定機能を重視していることが窺える。詳細版 P89-P95しかしながら、間接指定時のデータメモリの直交性は考慮されていない。(特徴の項を参照)

 概要 
 精度
 仮数8桁、指数2桁簡約版 P4

 スタック
 スタックレベル： 4レベル(X、Y、Z及びT)詳細版 P61-P74
 スタック操作機能： 「В↑」(ヒューレット・パッカード社(以下「HP」と略す)の電卓における「ENTER↑」に相当)、「⇔」(HP電卓の「X<>Y」に相当)、「↑○↓」(HP電卓の「R↓」に相当)詳細版 P63-P65

 データメモリ
 データメモリ数： 15本(RG0-RG9及びRGa-RGe) 並びに X1レジスタ詳細版 P74-P80(HP電卓のLastXレジスタに相当)
 データメモリ操作機能： リコールメモリ「П→X」、ストアメモリ「X→П」詳細版 P80-P82、リコールX1「Вx」

 数学機能
 三角関数、逆三角関数、対数関数、指数関数、16進計算(AND、OR、XOR「(+)」、NOT「ИНВ」)、疑似乱数「СЧ」、度分変換、度分秒変換、整数部、小数部「{x}」、絶対値、符号(SIGN)「ЗН」、など

 プログラム
 プログラムメモリ： 105ステップ
 プログラム機能： 無条件ジャンプ「БП」詳細版 P110-P111、条件ジャンプ(「X＜0」,「X＝0」,「X≧0」,「X≠0」)詳細版 P111-P112、ループ支援(RG0用「L0」,RG1用「L1」,RG2用「L2」,RG3用「L3」)詳細版 P139-P142(プログラム例の項を参照)、サブルーチンコール「ПП」詳細版 P113-P114、サブルーチンからのリターン「В/0」詳細版 P114、停止「С/П」詳細版 P107-P109、など
 プログラム編集機能： プログラム編集モード移行「ПРГ」、実行モード移行「АВТ」詳細版 P109、ステップ進む(FST)「→ШГ」、ステップ戻る(BST)「←ШГ」詳細版 P105-P106、など
 プログラム実行機能： 先頭アドレス00へ移動「В/0」詳細版 P103、実行・中断「С/П」
 プログラムアドレス指定： 絶対アドレス。先頭のアドレスが「00」であり、最後が104であるが、100から104までのアドレスは「-0」、「-4」等と表示される。16進数字の「a」,「b」,「c」,「d」,「e」,「f」の代替表示は「-」,「L」,「[」,「Г」,「E」,(無点灯)となっている詳細版 P84

 間接指定機能
 「К」。「П→X」,「X→П」,「БП」,「ПП」,「X＜0」,「X＝0」,「X≧0」,「X≠0」とともに使用する。詳細版 P114-P136(特徴の項を参照)  「К」には第2シフトの機能もある。

 ハードウェア
 スライドスイッチ： 2個。左側が電源スイッチで、右側が角度単位指定スイッチ(Р:ラジアン、ГРД:グラード、Г:度)となっている。簡約版 P3
 入力装置： 30キー(写真参照)。キーストロークが浅く、キーを押した感覚はほとんどないものを使用している。シフトキーが2個あり、第1シフトキーが「F」、第2シフトキーが「К」となっている。「К」キーは間接指定にも用いる。
 表示装置： VFD 12桁。表示桁の配置は、左から、仮数の負号用1桁、仮数用8桁、指数の負号などに使用する1桁、指数用2桁となっている。仮数負号桁と指数負号桁には数字は表示できない。従って、数字用だけであれば10桁である。
 電源： А-316(単三形)電池3本簡約版 P9 又は 専用ACアダプタД2-10М(D2-10M)(220V50Hz専用)
 メモリの揮発性： スタック、データメモリ、プログラムの記憶域は、全て揮発性である。

 特徴 
 データメモリと間接指定時の動作 
MK-61は15本の汎用データメモリレジスタを備えているが、間接指定時の動作にはレジスタ毎に下表の通り差異がある。詳細版 P114-P119

 レジスタ名  レジスタ番号 レジスタコード 押下キー 間接指定時の動作 RG0  0 0 0 デクリメント後アドレス評価または後述の「間接指定のプログラム例」を見ると「デクリメント後アドレス評価」と考えられるが、階乗の「プログラム例」を見ると「アドレス評価後デクリメント」と考えられる。難しい電卓である。アドレス評価後デクリメント「アドレス評価後デクリメント」動作をする ― という記述がある文献も存在する。 RG1  1 1 1 RG2  2 2 2 RG3  3 3 3 RG4  4 4 4 インクリメント後アドレス評価 RG5  5 5 5 RG6  6 6 6 RG7  7 7 7 アドレス評価のみ RG8  8 8 8 RG9  9 9 9 RGa  10 - . RGb  11 L /-/ RGc  12 [ ВП RGd  13 Г СХ RGe  14 E В↑

(間接指定のプログラム例)詳細版 P116
 プログラムアドレス キー入力 命令コード 説明 00 「4」 04 4を置数 01 「В↑」 0E ENTER↑ 02 「К」「БП」「3」 83 RG3の内容をデクリメント後、RG3の値のアドレスへジャンプ 03 「F」「√」 21 平方根 04 「2」 02 2を置数 05 「＋」 10 加算 06 「К」「БП」「4」 84 RG4の内容をインクリメント後、RG4の値のアドレスへジャンプ 07 「＋」 10 加算 08 「3」 03 3を置数 09 「×」 12 乗算 10 「К」「БП」「a」 8-  RGaの値のアドレスへジャンプ 11 「－」 11 減算 12 「С/П」 50 停止
プログラム実行前に
  「5」「X→П」「3」 「7」「X→П」「4」 「1」「2」「X→П」「a」
として、RG3に5を、RG4に7を、RGaに12を入れておく。

「В/0」(プログラムの先頭アドレス00に移動)、「С/П」(プログラム実行)を押してプログラムを実行すると
 18
という結果が表示される。これは、(4＋2)×3の演算結果である詳細版 P117が、上記のプログラムを見ても なかなか わかりにくい。

アドレス02の間接ジャンプでは、実行前にRG3に入れた値の「05」ではなく、デクリメントされた「04」のアドレスへジャンプしている。
同様に、アドレス06の間接ジャンプでは、実行前にRG4に入れた値の「07」ではなく、インクリメントされた「08」のアドレスへジャンプしている。
ただし、アドレス10の間接ジャンプでは、RGaの値「12」のアドレスにそのままジャンプしている。

その結果、アドレス「03」「07」「11」のコマンドは飛ばされて実行されないことになる。

 演算・関数 
1. 「max」は、スタックXとスタックYのうち値の大きい方を返す演算(アリティが2の最大値関数)である詳細版 P52が、以下の注意点がある。
 スタックXとスタックYの少なくとも一方がゼロである場合はゼロが返される。オペランドの片方がゼロで、もう片方が正数である場合には、返される値ゼロは最大値ではない。
 返された値はスタックXに上書きされるだけで、スタックの下降はしない。スタックYに演算前のオペランドの片方が残っている。

2. 「xy」は、冪乗(累乗)演算である詳細版 P51-P52が、HP電卓の「yx」とはオペランドの順番が逆となっている。対数機能と冪乗機能を1つのキーで共用している機種ではRPN電卓でなくとも冪乗機能を「xy」としている場合がある。このような機種(例えば、CASIO fx-20)では、まず X の置数後「ln/xy」を押すと、 lnX の計算が行われ結果を表示する(これで、 lnX の機能は完了)。この後 Y を置数し「=」を押すと lnX の計算結果に Y を乗じ、その結果に対し指数関数を計算し表示する。即ち、 XY=eln(XY)=e(lnX)×Y である。

 プログラム例 
2 以上 69 以下の指定した整数の階乗を計算するプログラムの例を示す。
 プログラムアドレス キー入力 命令コード 説明 スタック 00 「X→П」「0」 40 スタックXの値をRG0にストア - 01 「1」 01 1を置数 上昇 02 「П→X」「0」 60 RG0の値をリコール 上昇 03 「×」 12 乗算 下降 04 「F」「L0」 5Г  RG0の値が 2<=RG0 ならば、RG0をデクリメントし、命令の2バイト目で指定されたアドレス(ここでは02)へジャンプする。RG0の値が 1<=RG0<2 の範囲ならば次の命令のアドレス(ここでは06)へ進む。RG0の値が RG0<1 の場合は、動作は不定となる。実際は特定の値には特定の動作が対応するのであるが、そのアルゴリズムが不明であるため、不定な動作に見える。 - 05 「0」「2」 02 06 「С/П」 50 停止 -
「ПРГ」でプログラム編集モードに入り、上記プログラムを入力する。「АВТ」で実行モードに戻り、計算したい数値を、例えば、
 6
などと入力し、「В/0」で先頭アドレス00へ移動し、「С/П」でプログラムを実行すると、暫く入力「6」の出力「720」が表示されるまで6秒ほど、入力「69」の出力「1.7112245 98」が表示されるまで65秒ほどかかった。して、結果が、
 720
のように表示される。

 ギャラリー 

 脚注 

Category:電卓
Category:ソビエト社会主義共和国連邦