go41c - プログラム関数電卓アプリ
今日はAndroid向けのプログラム関数電卓アプリ、go41cを紹介します。これは、HPが1980年代に販売していたプログラム関数電卓、HP-41Cのエミュレータです。SH-03CおよびZiiOで動作するのを確認しました。
HP-41Cといえば、当時発行されていたマイコンBASIC Magazine(略して「ベーマガ」)にプログラム電卓特集が載った時があり(まだ「ラジオの製作」の別冊付録だったころかもしれません)、その中でカシオのFX-502P, FX-602Pなどと一緒に紹介されていたのを覚えていますが、それら国産の電卓よりはるかに高価であり、しかもRPN(逆ポーランド記法)という慣れない操作方法となっていることもあり、「こんなの誰が買うんだろう?」と思った覚えがあります。結局その後私はなけなしの小遣いをはたいて安かったFX-601Pを買いました。HP-41Cといえばそんな思い出しかないのですが、エミュレータとなって無料で試せるとなると、俄然興味がわいてくるわけです(笑)。
HP-41Cは7セグメントならぬ16セグメントのLCDを備えており、数字のほかに記号やアルファベット(A-Z, a-e)の表示ができるようになっています。これを活かし、ボタンには割り当てきれない関数や機能をアルファベットで入力できるようになっています。これに利用できるのが XEQ コマンドで、例えば10 [XEQ] "FACT"と操作すると10の階乗が計算できます。このあたりはPCやポケコンに通じるものがありますね。(※ "は[ALPHA]キーの操作を表します) 関数・機能の一覧は[SHIFT] [CATALOG] 3 と入力すると一覧できるようです。

計算は、RPNなので、例えば 1+2×(3+4)= という計算は、次のように操作します。
1 [ENTER] 2 [ENTER] 3 [ENTER] 4 + × +
または、計算の順序を考えて次のようにしてもよいです。
3 [ENTER] 4 + 2 × 1 +
これは日本語の「3と4を足して、2をかけて、1を足す」という表現に近い操作方法といえます。
RPNの考え方は、スタックに数値を積んでいき、スタックの1番目(=現在表示されている数値, Xレジスタ)と2番目(Yレジスタ)に入っている数値を演算するというのが基本です。()を使うことはありません。HP-41Cではスタックは4段まで(X, Y, Z, T)使用できるようです。
すでに計算済みの結果がXに入っているとき(=表示されているとき)に新たに数値を入力すると、X→Y→Z→Tとスタックが一つずつ押し込まれ、新たに入力した数値がXに入ります。[ENTER]キーはX(=現在表示されている数値)の内容コピーしてYに積むのに使用します。その場合もそれ以下のスタックは一つずつ押し込まれます(Y→Z→T)。
演算がひとつ終われば演算に使用されたスタック(X, Y)は破棄されて結果が表示され(Xに格納され)て下のスタックから一つずつ上に上がって(T→Z→Y)きます。関数など被演算数が1つの場合は、X(=現在表示されている数値)に対して計算を行いXに格納(表示)され、Y以下のスタックは動きません。このあたりのスタックの動きは、RealCalcという関数電卓アプリを使用するとよくわかります。このアプリは計算モードをRPNに切り替えることができるのですが、RPNモードではスタックの内容が3段目まで(X, Y, Z)表示できるようになっていますので、慣れるまでこちらで練習するとよいでしょう。(下にRealCalcのスクリーンショットを載せておきます。画像にマウスカーソルを合わせると表示される文字が、キー操作に相当します。)


通常の電卓の[AC(C)]や[C(CE)]に相当するのは[SHIFT] [CLx]となっており、現在表示されている数値(Xレジスタ)をクリアします(置数途中以外では[←]キーでも同じ)。数値メモリは、代入が[STO], 参照が[RCL]で、いずれも2ケタのメモリ番号を続けて入力します。[+/-]に相当するのは [CHS], 浮動小数点形式の指数部を指定(カシオの電卓の[EXP]キーに相当)するのは[EEX]です。関数の操作方法は少し前の関数電卓(完全数式通りでない関数電卓)と同様、数値の後に関数キーを操作します。例えば、60 [SIN]のように操作します。この程度が理解できておれば、普通の関数電卓としては使用できそうですね。プログラムについてはもう少し色々勉強してから基本的なところを解説したいと思います。これが使いこなせれば、「本格的なインタプリタ言語を使うほどではないけど、簡単な繰り返し計算がしたい」というときなどに役立つのではないかと思います。
HP-41Cのエミュレータとしては、iOS用にCalc41Cというものも出ています。有料(85円)ではありますが、iPod touchやiPhoneをお使いの方でHP-41Cに興味をお持ちの方は、こちらを利用されてもいいと思います。また、Windowsで動作するエミュレータ、HP41EもThe Museum of HP Calculatorsからダウンロードできます。
明日からは3日間程度のシリーズで、プログラム機能以外の基本的なところについて、項目別に解説していく予定です。参考にしたHP-41のマニュアルは、こちらで参照できますので、興味のある方はどうぞ。
↓現在販売されているHPの電卓です。HP-15C欲しいかも。
HP-41Cといえば、当時発行されていたマイコンBASIC Magazine(略して「ベーマガ」)にプログラム電卓特集が載った時があり(まだ「ラジオの製作」の別冊付録だったころかもしれません)、その中でカシオのFX-502P, FX-602Pなどと一緒に紹介されていたのを覚えていますが、それら国産の電卓よりはるかに高価であり、しかもRPN(逆ポーランド記法)という慣れない操作方法となっていることもあり、「こんなの誰が買うんだろう?」と思った覚えがあります。結局その後私はなけなしの小遣いをはたいて安かったFX-601Pを買いました。HP-41Cといえばそんな思い出しかないのですが、エミュレータとなって無料で試せるとなると、俄然興味がわいてくるわけです(笑)。
HP-41Cは7セグメントならぬ16セグメントのLCDを備えており、数字のほかに記号やアルファベット(A-Z, a-e)の表示ができるようになっています。これを活かし、ボタンには割り当てきれない関数や機能をアルファベットで入力できるようになっています。これに利用できるのが XEQ コマンドで、例えば10 [XEQ] "FACT"と操作すると10の階乗が計算できます。このあたりはPCやポケコンに通じるものがありますね。(※ "は[ALPHA]キーの操作を表します) 関数・機能の一覧は[SHIFT] [CATALOG] 3 と入力すると一覧できるようです。



計算は、RPNなので、例えば 1+2×(3+4)= という計算は、次のように操作します。
1 [ENTER] 2 [ENTER] 3 [ENTER] 4 + × +
または、計算の順序を考えて次のようにしてもよいです。
3 [ENTER] 4 + 2 × 1 +
これは日本語の「3と4を足して、2をかけて、1を足す」という表現に近い操作方法といえます。
RPNの考え方は、スタックに数値を積んでいき、スタックの1番目(=現在表示されている数値, Xレジスタ)と2番目(Yレジスタ)に入っている数値を演算するというのが基本です。()を使うことはありません。HP-41Cではスタックは4段まで(X, Y, Z, T)使用できるようです。
すでに計算済みの結果がXに入っているとき(=表示されているとき)に新たに数値を入力すると、X→Y→Z→Tとスタックが一つずつ押し込まれ、新たに入力した数値がXに入ります。[ENTER]キーはX(=現在表示されている数値)の内容コピーしてYに積むのに使用します。その場合もそれ以下のスタックは一つずつ押し込まれます(Y→Z→T)。
演算がひとつ終われば演算に使用されたスタック(X, Y)は破棄されて結果が表示され(Xに格納され)て下のスタックから一つずつ上に上がって(T→Z→Y)きます。関数など被演算数が1つの場合は、X(=現在表示されている数値)に対して計算を行いXに格納(表示)され、Y以下のスタックは動きません。このあたりのスタックの動きは、RealCalcという関数電卓アプリを使用するとよくわかります。このアプリは計算モードをRPNに切り替えることができるのですが、RPNモードではスタックの内容が3段目まで(X, Y, Z)表示できるようになっていますので、慣れるまでこちらで練習するとよいでしょう。(下にRealCalcのスクリーンショットを載せておきます。画像にマウスカーソルを合わせると表示される文字が、キー操作に相当します。)
![1 [ENTER]](http://blog-imgs-38.fc2.com/k/y/o/kyoro205/RC_1s.jpg)
![2 [ENTER]](http://blog-imgs-38.fc2.com/k/y/o/kyoro205/RC_2s.jpg)
![3 [ENTER]](http://blog-imgs-38.fc2.com/k/y/o/kyoro205/RC_3s.jpg)




通常の電卓の[AC(C)]や[C(CE)]に相当するのは[SHIFT] [CLx]となっており、現在表示されている数値(Xレジスタ)をクリアします(置数途中以外では[←]キーでも同じ)。数値メモリは、代入が[STO], 参照が[RCL]で、いずれも2ケタのメモリ番号を続けて入力します。[+/-]に相当するのは [CHS], 浮動小数点形式の指数部を指定(カシオの電卓の[EXP]キーに相当)するのは[EEX]です。関数の操作方法は少し前の関数電卓(完全数式通りでない関数電卓)と同様、数値の後に関数キーを操作します。例えば、60 [SIN]のように操作します。この程度が理解できておれば、普通の関数電卓としては使用できそうですね。プログラムについてはもう少し色々勉強してから基本的なところを解説したいと思います。これが使いこなせれば、「本格的なインタプリタ言語を使うほどではないけど、簡単な繰り返し計算がしたい」というときなどに役立つのではないかと思います。
HP-41Cのエミュレータとしては、iOS用にCalc41Cというものも出ています。有料(85円)ではありますが、iPod touchやiPhoneをお使いの方でHP-41Cに興味をお持ちの方は、こちらを利用されてもいいと思います。また、Windowsで動作するエミュレータ、HP41EもThe Museum of HP Calculatorsからダウンロードできます。
明日からは3日間程度のシリーズで、プログラム機能以外の基本的なところについて、項目別に解説していく予定です。参考にしたHP-41のマニュアルは、こちらで参照できますので、興味のある方はどうぞ。
↓現在販売されているHPの電卓です。HP-15C欲しいかも。
- 関連記事
-
- go41c 基本編の続き (2) - メモリ編 (2012/03/30)
- go41c 基本編の続き (1) - 基本操作編 (2012/03/29)
- go41c - プログラム関数電卓アプリ (2012/03/28)
スポンサーサイト