スタック電卓 calcr ver0.04

なんだか不具合があったのでorz、不具合修正と機能追加しました。
id:Hoshiba様にも詳細な解説をいただき、もうなんだか個人的に舞い上がっています。

修正内容

  • ピリオド「.」の処理が変だったので修正。
  • [OK]キーで最小化じゃなくプログラム終了 ←これ本当にやりたかった!できてラッキー。
  • ということで左ソフトキーからQuitを追い出し、単項演算子メニュー追加。とりあえず√計算だけ。

注意事項(追記)

  • コメントで御連絡があったとおりWithATOKで半角数字をOFFにしていますと、入力できません。技術力不足です。調査しますが、対応できるか自信がありません。申し訳ないです。
  • ついでながら、IMEOFF処理は行っておりますが、半角アルファベットモードのままです。技術力不足です。(私は前面キーを数字キーに固定していたため事象がわかりませんでした・・・)。文字キーで半角数字モードにしてやってください。よろしくお願いします。

以下

前回の再掲示です。
わかりにくい電卓だから、何度だって再掲示してやるんだこのやろー。

きっかけ

WinodowsMobile用の電卓ソフトはすでにいっぱいあり、私はぽけ電卓を愛用しています。
一方、個人的にはhp 12C platinumを愛用していると言うこともあって、どうしてもスタック電卓の操作が体に馴染んでいます。
しかしながら、HP電卓エミュレータは海外にたくさんあるものの、

  • かんたんに使え、
  • アドエスの前面キーボードが利用できる

スタック電卓ってないんですよね。

ないなら作ろう!
できる範囲でorz

ということで、作って見たしだい。
eVC++のHelloWorldスケルトンをいじりました。

というわけで画面は簡素。

超簡素。
http://www.d2.dion.ne.jp/~ujiie/wzero3/calcr/0.04/image.jpg

インストール

calcr.zip
をダウンロード、展開して、アドエスにcalcr.exeを放り込んでください。
Advanced/W-ZERO3[es]でしか動作確認していませんが、多分W-ZERO3[es]でもいけるんじゃないかなぁと思います。
calcrの"r"は、RPN電卓のRをもじってます。
「カルクアール」と呼んでください。

キー

  • カーソルキー上:+
  • カーソルキー↓:−
  • カーソルキー←:×
  • カーソルキー→:÷
  • アクションキー:エンター
  • *キー:小数点.
  • #キー:X⇔Y (レジスターXとYを交換)
  • クリアキー:レジスターXをクリア([CLx]キーですね)
  • ソフトキー左:単項演算子メニュー
  • ソフトキー右:R↓(レジスターのロールダウンです。[R↓]キーですね)
  • [OK]キー:アプリケーション終了(最小化じゃないです。)

使い方

例を使いながら。

12+24=

を計算します。

12
アクションキー(エンター)
34
+(カーソル上)

こんな感じ。

  1. スタックに数字を載せて行きます。
  2. 入力された数字はまずXレジスタにエンターキーで登録され、確定し、YレジスタにPUSHされます。
  3. 次に数字を入力すると、Xレジスタに登録されます。
  4. 次に演算キーを押すと、XレジスタとYレジスタで演算され、演算結果がXレジスタに格納されます。

こんな感じ。

使い方

じゃZレジスタとかTレジスタとか、使わないでいいじゃんと思うかもしれませんが、次の例を。

(12+34)/(56+78)*(89+12)=

この場合は

12
アクションキー
34
+ (12と34をたして)
56
アクションキー
78
+ (56と78をたして)
÷ (12と34をたした結果を56と78をたした結果で割って)・・・A
89
アクションキー
12
+ (89と12をたして)
× (Aの値と89と12をたした結果をかける)

Zレジスタまで使い、結果がXレジスタに残りました。
場合によってはTレジスタまでいくこともあります。

使い方

クリアキーを押すとXレジスタのみ消えます。
全部のレジスタを消したかったら

  1. クリアキーでXレジスタをクリアし
  2. アクションキー連打

アクションキーを押すと、すでに確定されたXレジスタの値がPUSHされていきます。
よって全部のレジスタが0になります。

使い方

逆に計算した結果POPされると、Tレジスタの値がZレジスタにコピーされます。
よって

  1. Xレジスタに定数を入力
  2. アクションキー連打 Tレジスタまでいっぱいにすると。
  3. この定数を煮るもよし、焼くも良し。Tレジスタからどんどんコピーされてきます。

というわけで

私にはHP電卓はおもろい存在なのです。
物好きな方は使って見てね。

ソース

HelloWorldスケルトンと星羽さんのPokeCalcのソースを見比べながら作りました。
星羽さんがソースを公開されなかったら作れなかったでしょう。
解説もいただいて本当にありがとうです、星羽さん。
w-zero3日和
星羽モバイル日和
というわけで、ソース後悔
変なフラグが多くなっていくよー。整理したい。

超絶にわかりやすいマニュアル

YHPのころの日本後マニュアルがあったので確保しておきました。
HP12C日本語マニュアル
非常にわかりやすいです。
スタックの挙動についてマニュアル188ページ(PDFでは190ページ)以降にすばらしい解説がありますので、ぜひお読みください。
スタックの挙動はこれに準拠しています。