fx-5800P:同時にキーを押してみる
fx-5800Pでキーコードを調べるプログラムを走らせている時、2つのキーを同時に押すと、本来2桁であるべきキーコードが1桁になることを以前の記事で紹介した → それがこちら fx-5800P:2つのキーの2重押し
状況が少しまとまったので、予告通りそれを紹介する。
ここでは、以下のプログラムを走らせている。
Get Keycode
by Krtyski (やす)
=========================

結論から言えば、最大6つのキーを同時押しすると、1~7の範囲で、1桁のキーコードが出てくる。
先ずは、下の図を見て頂きたい。、

カシオプログラム関数電卓 FX-5800P-N
この図は、各キーの配置とキーコードの10の位の関係を示している。
割り当てられているキーコードを、上図で色分けして囲った範囲に対応させて示すと、
・2段にわたった7個のキー [0]、[・]、[x10x],[4]、[5]、[6]、[X] が20番台
・2段にわたった7個のキー [1]、[2]、[3]、[7]、[8]、[9]、[DEL] が30番台
・関数/機能キー [RCL]、[S-D]、[(]、[)]、[,]、[M+]、そして[EXE] が40番台
・関数/機能キー [i]、[分数]、[°' '']、[sin]、[cos]、[tan]、[(-)]が50番台
・関数/機能キー [FILE]、[ルート]、[x2]、[log]、[ln]、[x■]、[-] が60番台
・関数/機能キー [SHIFT]、[ALPHA]、[EXIT]、[FMLA]、[CALC]、[SOLVE]、[+] が70番台
・関数/機能キー [MODE/SETUP]、[FUNCTION]、[←]、[↑]、[↓]、[→]、[÷] が80番台
となっている。
さて、ここからが本題だ。
要するに、キーコードの1の位が同じキーを、いくつでも(といっても最大7個だが)同時に押すと、1の位の値が、1桁のキーコードとして得られるのだ。
2個同時押しでも、7個同時押しでも、共通する1の位の値がキーコードとして得られる。
キーの並びとキーコードを、今度は縦の列で分類してみると、キーコードの1の位の数字が、概ね
・左から1列目: 1
・左から2列目: 2
・左から3列目: 3
・左から4列目: 4
・左から5列目: 5
・左から6列目: 6
・左から7列目: 7
となっているが、右下の5つのキー [EXE]、[(-)]、[-]、[+]、[÷] のキーコードの1の位は、いずれも7になっている。
ちなみに、これらの5つのキーは、どれを同時に押しても、5つを同時に押しても、1桁のキーコード7が得られる。
この不規則性のため、以前の記事を書いた時は、混乱してしまった。
キーの同時押しでキーコードが一桁になる特性は、ゲームの隠しコマンドなどで使えるかも知れない。
こうしてみると、この電卓のハードウェア内部では、縦と横の座標でキーを特定しており、キーコードは横方向の位置が10の位、縦方向(概ね)の位置が1の位になっていることが分かる。
これ以上は、推測するしか無いのだが、基板の配線の引き回しが、何か過去から引きずっていて、このような不規則性が残っているのかも知れない。或いは、量産時の他機種との互換性を考えた結果といった、もっと積極的な理由があるのかも知れないが...
fx-5800Pは、プログラムが出来る関数電卓だから、チョット面白いことが分かったが、普通の関数電卓でも恐らく事情は同じではないだろうか?
手元にある、fx-995ES(実は、買ってしまったのだ)で同時押しをやってみた。
基本的には、fx-5800Pで得られた規則性通りの同時押しをすると、何も表示されず、ダンマリとなることが多い。
但し、関数/機能キーは確実にダンマリになるが、数字キーは誤動作しない。一瞬でも速く押されたキーが反応するようだ。
また、妙な表示が出るケースもあった。
カーソルキーの左(←)は、fx-5800Pと同様に、左から3列目と見なされるようで、この左キーと、任意の3列目のキーを押すと、いずれも妙な表示、それも全く同じ表示になった。ところが、再現性がなかなか得られないので、写真に撮れていない。
探偵ごっこは、このくらいにしておくことにする。
応援クリックをお願いします。励みになるので...