電卓カフェ

電卓カフェ

Webサイト「電卓喫茶」の元になったブログです。

HP 9100B エミュレータで古典的技術 3 Level RPN を体験

電卓喫茶に書くには微妙な内容なので、ここに書きます。

The Museum of HP Calculators のフォーラムに HP 9100B エミュレータの情報が投稿されていました。2017年4月1日に投稿されたばかりです。
http://www.hpmuseum.org/forum/thread-8084.html

HP 9100Bは世界初の関数電卓でありRPN電卓でもある HP 9100A(1968年発売)の後継機種です。HP 9100A/Bは 3 Level RPN という技術を使っています(現在の技術は 4 Level RPN という進化したものです)。

以前、「RPL言語の歴史的意義」(現在は電卓喫茶へ移転)という記事で 3 Level RPN のことを少しだけ書いたのですが、これで実際に体験できます。

HP 9100Bのエミュレータはここからダウンロードできます。Windows版のみです。

HP Classic Calculator Emulator +
http://www.teenix.org/

ダウンロードしたら.zipファイルを解凍して、その中の HP9100B.exe をクリックするだけで使えます。
起動したら数値キーの上にある電源スイッチを右に倒して電源を入れましょう。

f:id:nekosuki2017:20170407215104p:plain

ここからは実際に 4 Level RPN 電卓を使ったことのない人には理解し難いかもしれません。

3 Level RPNはスタックレジスタがX,Y,Zの3つしかなく、Xが数値入力レジスタ、Yが計算結果格納レジスタ、Zが一時レジスタという考えです。

HP 9100BはX,Y,Zレジスタを全て同時に表示します。

3 Level RPN には 4 Level RPN の [ENTER] キーがありません。
その代わり [↑] キーが 4 Level RPN の [ENTER] と似た動作をします(Y→Z, X→Y, Xは変化しない)。
[↓] キーはその逆動作です(Y→X, Z→Y, Zは変化しない)。

4 Level RPNと違って、演算子ボタン(+,-,×,÷)を押したらX,Yの値を元にして計算し、その結果をYレジスタに格納します。このとき、Yレジスタ以外は変化しないので、4 Level RPN のようなスタックがズレるような動作はしません。

このような仕様のため、YとZの計算をしたいときは [↓] キーでY→X, Z→Yと移動させる必要があります。

RPL言語の歴史的意義」に書いた数式が実際に計算できるかどうか試しみましょう。以下の式です。

 (123.78+75.98) × (9560.45-7995.1) ÷ (323.11-310.25)

キー操作は以下のようになります。

 123.78 [↑] 75.98 [+] 9560.45 [↑] 7995.1 [-] [↓] [×] 323.11 [↑] 310.25 [-] [↓] [÷]

結果は下の画像のように 24315.27となります。
有効桁数12桁の場合、24315.2656299なので合っています(四捨五入に注意)。

f:id:nekosuki2017:20170407215322p:plain

左から2番目のスイッチをFLOATINGにするとさらに精度が上がります。
その代わり小数点の位置が固定(1番目と2番めの数字の間)になるので、数値を入れる度に[Enter Exp]ボタンで指数を入れる必要があるので、今回は使いませんでした。

下の写真がFLOATINGモードの一例です。

f:id:nekosuki2017:20170407215618p:plain

[↑] ボタンを [ENTER] に置き換えて、[↓] ボタンの操作をしなければ、今の 4 Level RPN と同じ操作になります。
今の 4 Level RPN が完成する前にこのような試行錯誤があったのですね。

以上です。