Elektronika MK-61 (ロシア語: Электроника МК-61) は、1983年から1994年までの間にソ連で製造されたRPNプログラム電卓である。[1][2]
当初の販売価格は85ルーブルであった。[3]
Elektronika MK-61は、15本のデータメモリ[4]と105ステップのプログラムメモリ[5]を備えたプログラム電卓である。4レベルのスタックとLastXレジスタを備えたRPN電卓でもある。
間接指定機能が豊富であり、しかも内部コードの半数超を間接指定命令で占めており、間接指定機能を重視していることが窺える。[6]しかしながら、間接指定時のデータメモリの直交性は考慮されていない。(特徴の項を参照)
- スタック
- スタックレベル: 4レベル(X、Y、Z及びT)[8]
- スタック操作機能: 「В↑」(ヒューレット・パッカード社(以下「HP」と略す)の電卓における「ENTER↑」に相当)、「⇔」(HP電卓の「X<>Y」に相当)、「↑○↓」(HP電卓の「R↓」に相当)[9]
- データメモリ
- データメモリ数: 15本(RG0-RG9及びRGa-RGe)[4] 並びに X1レジスタ[10](HP電卓のLastXレジスタに相当)
- データメモリ操作機能: リコールメモリ「П→X」、ストアメモリ「X→П」[11]、リコールX1「Вx」[10]
- プログラム
- プログラムメモリ: 105ステップ[5]
- プログラム機能: 無条件ジャンプ「БП」[12]、条件ジャンプ(「X<0」,「X=0」,「X≧0」,「X≠0」)[13]、ループ支援(RG0用「L0」,RG1用「L1」,RG2用「L2」,RG3用「L3」)[14](プログラム例の項を参照)、サブルーチンコール「ПП」[15]、サブルーチンからのリターン「В/0」[16]、停止「С/П」[17]、など
- プログラム編集機能: プログラム編集モード移行「ПРГ」、実行モード移行「АВТ」[18]、ステップ進む(FST)「→ШГ」、ステップ戻る(BST)「←ШГ」[19]、など
- プログラム実行機能: 先頭アドレス00へ移動「В/0」[20]、実行・中断「С/П」[17]
- プログラムアドレス指定: 絶対アドレス。先頭のアドレスが「00」であり、最後が104であるが、100から104までのアドレスは「-0」、「-4」等と表示される。[21][22]
- 間接指定機能
- 「К」。「П→X」,「X→П」,「БП」,「ПП」,「X<0」,「X=0」,「X≧0」,「X≠0」とともに使用する。[23](特徴の項を参照) 「К」には第2シフトの機能もある。
- ハードウェア
- スライドスイッチ: 2個。左側が電源スイッチで、右側が角度単位指定スイッチ(Р:ラジアン、ГРД:グラード、Г:度)となっている。[24]
- 入力装置: 30キー(写真参照)。キーストロークが浅く、キーを押した感覚はほとんどないものを使用している。シフトキーが2個あり、第1シフトキーが「F」、第2シフトキーが「К」となっている。[4]「К」キーは間接指定にも用いる。
- 表示装置: VFD 12桁。表示桁の配置は、左から、仮数の負号用1桁、仮数用8桁、指数の負号などに使用する1桁、指数用2桁となっている。仮数負号桁と指数負号桁には数字は表示できない。従って、数字用だけであれば10桁である。
- 電源: А-316(単三形)電池3本[25] 又は 専用ACアダプタД2-10М(D2-10M)(220V50Hz専用)[5]
- メモリの揮発性: スタック、データメモリ、プログラムの記憶域は、全て揮発性である。
データメモリと間接指定時の動作
MK-61は15本の汎用データメモリレジスタを備えているが、間接指定時の動作にはレジスタ毎に下表の通り差異がある。[26]
さらに見る レジスタ 名, レジスタ 番号 ...
レジスタ 名 |
レジスタ 番号 |
レジスタ コード[22] |
押下 キー |
間接指定時の動作 |
RG0 |
0 |
0 |
0 |
デクリメント後アドレス評価 または[27] アドレス評価後デクリメント[28] |
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 |
В↑ |
閉じる
(間接指定のプログラム例)[29]
さらに見る プログラム アドレス, キー入力 ...
プログラム アドレス |
キー入力 |
命令 コード[22] |
説明 |
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- [21] |
RGaの値のアドレスへジャンプ |
11 |
「-」 |
11 |
減算 |
12 |
「С/П」 |
50 |
停止 |
閉じる
プログラム実行前に
「5」「X→П」「3」 |
「7」「X→П」「4」 |
「1」「2」「X→П」「a」 |
として、RG3に5を、RG4に7を、RGaに12を入れておく。
「В/0」(プログラムの先頭アドレス00に移動)、「С/П」(プログラム実行)を押してプログラムを実行すると
という結果が表示される。これは、(4+2)×3の演算結果である[30]が、上記のプログラムを見ても なかなか わかりにくい。
アドレス02の間接ジャンプでは、実行前にRG3に入れた値の「05」ではなく、デクリメントされた「04」のアドレスへジャンプしている。
同様に、アドレス06の間接ジャンプでは、実行前にRG4に入れた値の「07」ではなく、インクリメントされた「08」のアドレスへジャンプしている。
ただし、アドレス10の間接ジャンプでは、RGaの値「12」のアドレスにそのままジャンプしている。
その結果、アドレス「03」「07」「11」のコマンドは飛ばされて実行されないことになる。
演算・関数
1. 「max」は、スタックXとスタックYのうち値の大きい方を返す演算(アリティが2の最大値関数)である[31]が、以下の注意点がある。
- スタックXとスタックYの少なくとも一方がゼロである場合はゼロが返される。オペランドの片方がゼロで、もう片方が正数である場合には、返される値ゼロは最大値ではない。
- 返された値はスタックXに上書きされるだけで、スタックの下降はしない。スタックYに演算前のオペランドの片方が残っている。
2. 「xy」は、冪乗(累乗)演算である[32]が、HP電卓の「yx」とはオペランドの順番が逆となっている。[33]
2 以上 69 以下の指定した整数の階乗を計算するプログラムの例を示す。
さらに見る プログラム アドレス, キー入力 ...
プログラム アドレス |
キー入力 |
命令 コード[22] |
説明 |
スタック |
00 |
「X→П」「0」 |
40 |
スタックXの値をRG0にストア |
- |
01 |
「1」 |
01 |
1を置数 |
上昇 |
02 |
「П→X」「0」 |
60 |
RG0の値をリコール |
上昇 |
03 |
「×」 |
12 |
乗算 |
下降 |
04 |
「F」「L0」 |
5Г [21] |
RG0の値が 2<=RG0 ならば、RG0をデクリメントし、命令の2バイト目で指定されたアドレス(ここでは02)へジャンプする。 RG0の値が 1<=RG0<2 の範囲ならば次の命令のアドレス(ここでは06)へ進む。[34] |
- |
05 |
「0」「2」 |
02 |
06 |
「С/П」 |
50 |
停止 |
- |
閉じる
「ПРГ」でプログラム編集モードに入り、上記プログラムを入力する。「АВТ」で実行モードに戻り、計算したい数値を、例えば、
などと入力し、「В/0」で先頭アドレス00へ移動し、「С/П」でプログラムを実行すると、暫く[35]して、結果が、
のように表示される。
プログラムモードのMK-61が2台並んでいる
[36][37]
裏面
メイン基板(表)
メイン基板(裏)と電源基板(表)
電源基板(裏)
回路図
РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ МК 61 МИКРОКАЛЬКУЛЯТОР (ロシア語マニュアル 21ページ簡約版) Электроника, 1993年 - ロシア語マニュアルの写真の右側
РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ МК 61 МИКРОКАЛЬКУЛЯТОР (ロシア語マニュアル 174ページ詳細版 889-30000) Электроника - ロシア語マニュアルの写真の左側
ギャラリーにある裏面の写真を参照。写真の電卓は1993年1月製造のものであるが、「ЦЕНА 85РУБ」 (価格 85ルーブル) と記載がある。この記載は後から印刷や刻印をしたものではなく、製造時に最初から成形されている。 16進数字の「a」,「b」,「c」,「d」,「e」,「f」の代替表示は「-」,「L」,「[」,「Г」,「E」,(無点灯)となっている
後述の「間接指定のプログラム例」を見ると「デクリメント後アドレス評価」と考えられるが、階乗の「プログラム例」を見ると「アドレス評価後デクリメント」と考えられる。難しい電卓である。
対数機能と冪乗機能を1つのキーで共用している機種ではRPN電卓でなくとも冪乗機能を「xy」としている場合がある。このような機種(例えば、CASIO fx-20)では、まず X の置数後「ln/xy」を押すと、 lnX の計算が行われ結果を表示する(これで、 lnX の機能は完了)。この後 Y を置数し「=」を押すと lnX の計算結果に Y を乗じ、その結果に対し指数関数を計算し表示する。即ち、 XY=eln(XY)=e(lnX)×Y である。 RG0の値が RG0<1 の場合は、動作は不定となる。実際は特定の値には特定の動作が対応するのであるが、そのアルゴリズムが不明であるため、不定な動作に見える。 入力「6」の出力「720」が表示されるまで6秒ほど、入力「69」の出力「1.7112245 98」が表示されるまで65秒ほどかかった。
左のMK-61は1993年1月製造機で、右のMK-61は1993年12月製造機である。キートップの文字などに若干の違いが見られる。
左のMK-61はアドレス04の入力プロンプト状態となっていて、アドレス03、02、01の命令コードが「01」、「02」、「03」と表示されている。右のMK-61も同様にアドレス08の入力プロンプト状態となっていて、アドレス07、06、05の命令コードが「05」、「06」、「07」と表示されている。
詳細版(左)と簡約版(右)とで同じ表紙を使用している。