スタック電卓 calcr ver0.14
お応えできるご要望に対応してみました。
また、右ソフトメニューをカスタマイズできるようにしてみました。
メニュー構成がガチャガチャ変わってしまってすみません。
今度こそFIXにしたいけど、要望があれば修正するんだろうなぁ。
変更内容
- 右ソフトメニューを[CustomKEY]メニューにしました。
- 起動オプションに "-k" をつけて利用します。
- たとえば "-kR" オプションにすれば、CustomKEYは[R↓]として働きます。
- たとえば "-kG" オプションにすれば、CustomKEYは[1/X]として働きます。
- たとえば "-kM" オプションにすれば、CustomKEYは[CHS]として働きます。
- なお、-kオプションを指定しなかったときのデフォルトの挙動は[R↓]にしています。
- "-k"オプションに続く文字列は "-p" オプションと同じです。
- つまり "-p" とは別にもうひとつプログラムコマンドをワンキーで実行できるようにしたものです。
- 起動オプションに "-k" をつけて利用します。
- Xレジスタの値をクリップボードにコピーできるように変更。
- フルキーボード側から小数点、R↓、X⇔Y、1/X、CHS、LSTx、√を入力できるようにしました。四則演算はカーソルキーでよろしくです。
- フルキーボードの操作にあわせてプログラムコマンドを変更。
- 入力桁数を整数部+小数部合わせて15桁に設定。
- 10進表示時の無駄な小数点以下の0を非表示に変更。整数部の桁数+小数部の桁数を合わせた最大桁数を15桁に設定。
- 10進表示時は"DEC",16進表示時は"HEX"と表示するように変更。
以下
再掲示。
軽いけどディープな電卓。
かなり自分好みと言うか自己満足電卓。
きっかけ
WinodowsMobile用の電卓ソフトはすでにいっぱいあります。
一方、個人的にはhp 12C platinumを愛用していると言うこともあって、どうしてもスタック電卓の操作が体に馴染んでいます。
しかしながら、HP電卓のエミュレータは海外にたくさんあるものの、
- かんたんに使え、
- アドエスの前面キーボードが利用できる
スタック電卓ってないんですよね。
ないなら作ろう!
できる範囲でorz
ということで、作って見たしだい。
eVC++のHelloWorldスケルトンをいじりました。
というわけで画面は簡素。
超簡素。
10進数モード。実数が扱えます。
16進数モード。整数のみ。*キー(-ckオプションつきのときは#キー)で前面テンキーから直接A-Fが入力できるモードと数字入力モードがトグルします。
プログラムはショートカットへ-pオプションで指定してください。例はBMIを計算するプログラムです。RUNで実行。
Advanced/W-ZERO3[es]でしか動作確認していませんが、多分W-ZERO3[es]でもいけるんじゃないかなぁと思います。
calcrの"r"は、RPN電卓のRをもじってます。
「カルクアール」と呼んでください。
インストール
- calcr.CABからCABファイルをダウンロード。
- アドエスで実行してインストール。
- 普通はこれでおしまい。
- もし、"."を"#"キーで入力したい方はcalcr.exeのショートカットオプションに"-ck"を追加してください。
- もし、最初から16進モードにしたい方は、calcr.exeのショートカットオプションに"-iZ"を追加してください。
- もし、[CustomKEY]でたとえば[CHS]をしたい方は、calcr.exeのショートカットオプションに"-kM"を追加してください。
- もし、最初からある程度計算した状態で起動したいときは、calcr.exeのショートカットオプションに"-i・・・"を追加してください。・・・は計算するためのプログラムコマンドです。
- なお、"-i・・・"、 "-p・・・"、"-k・・・"は共存できるはずです。たぶん。"・・・"の部分は後述する共通のプログラムコマンドです。
キー
- 数字キー:数字 16進数モード時に[1⇔A]キーで1〜6キーから直接A〜Fが入力できます。
- A〜Fキー:数字(0xA〜0xZ)横画面にした時に便利。
- カーソルキー上:+
- カーソルキー↓:−
- カーソルキー←:×
- カーソルキー→:÷
- アクションキー:エンター
- *キー:小数点.16進数モードでは前面テンキーのトグル[1⇔A](-ckオプションを付けた場合はX⇔Y (レジスターXとYを交換))
- #キー:X⇔Y (レジスターXとYを交換)(-ckオプションを付けた場合は小数点.16進数モードでは前面テンキーのトグル[1⇔A])
- クリアキー:レジスターXをクリア([CLx]キーですね)
- ソフトキー左:fメニュー 10-16(基数の10進数と16進数トグル)、RUN(プログラム実行)、COPY X(Xレジスタのクリップボードへのコピー)、
Y^X、√、1/X、R↓(スタックロールダウン)、LSTx(計算直前のXレジスタ呼び出し)、CHS
- ソフトキー右:CustomKEYメニュー "-k"オプションで指定されたプログラムコマンドを即時実行します。
例:"-kR"で[CustomKEY]は[R↓]キーとして利用できます。
ショートカットオプション
- -ck *キーと#キーを入れ替えます。
- -p・・・ RUNメニューで実行するプログラムコマンド
- -i・・・ プログラム起動時に自動実行するプログラムコマンド
- -k・・・ CustomKEYメニューで実行するプログラムコマンド
使い方
例を使いながら。
12+24=
を計算します。
12
アクションキー(エンター)
34
+(カーソル上)
こんな感じ。
- スタックに数字を載せて行きます。
- 入力された数字はまずXレジスタにエンターキーで登録され、確定し、YレジスタにPUSHされます。
- 次に数字を入力すると、Xレジスタに登録されます。
- 次に演算キーを押すと、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をたした結果をかける)
使い方
使い方
10進と16進は基数を切り替えることになります。
16進時は基数が16になります。
だからHEXで"X=10"と表示されているとき、10進に表示を切り替えると"X=16"になりますよ。
基数が10進のときは小数点以下表示されますが、基数が16進のときは整数限定です。
基数が16進のとき、前面の小数点キーは[1⇔A]キーとなります。このキーは、1〜6キーがA〜Fを直接入力できるモードとトグルするキーになります。
プログラムコマンド
-p、-i、-kオプションのプログラムコマンドです。共通です。
大文字小文字区別します。
0 | 0キー入力 |
1 | 1キー入力 |
2 | 2キー入力 |
3 | 3キー入力 |
4 | 4キー入力 |
5 | 5キー入力 |
6 | 6キー入力 |
7 | 7キー入力 |
8 | 8キー入力 |
9 | 9キー入力 |
. | .キー入力 |
a | Aキー入力 |
b | Bキー入力 |
c | Cキー入力 |
d | Dキー入力 |
e | Eキー入力 |
f | Fキー入力 |
E | Enterキー入力 |
+ | +実行 |
- | −実行 |
* | ×実行 |
/ | ÷実行 |
C | Xクリア |
G | 逆数1/X |
L | LSTx実行 |
M | CHS実行 |
R | R↓実行 |
T | √実行 |
P | PAUSE レジスタと現在のプログラムの状態表示 デバッグに使ってね |
W | Xレジスタをクリップボードにコピー |
X | X⇔Y実行 |
Y | Y ^ X |
Z | 10進数と16進数の基数切り替え |
B | プログラム途中で終了 Break |
上以外の文字 | プログラム終了 Breakに同じ |
プログラムコマンドの例
というわけで
私にはHP電卓はおもろい存在なのです。
物好きな方は使って見てね。
超絶にわかりやすいマニュアル
YHPのころの日本後マニュアルがあったので確保しておきました。
HP12C日本語マニュアル
非常にわかりやすいです。
スタックの挙動についてマニュアル188ページ(PDFでは190ページ)以降にすばらしい解説がありますので、ぜひお読みください。
スタックの挙動はこれに準拠しています。
ソース
というわけで、ソース後悔。
注意事項
- WithATOKで半角数字をOFFにしている場合は数字入力できません。今後対応できるか自信がありません。申し訳ないです。