CASIOの古いプログラム関数電卓 fx-201P
本日はCASIOのとても古いプログラム関数電卓、fx-201Pを紹介します。この電卓の発売は1976年とされていますので、SHARP初の本格的プログラム電卓PC-1200より少し前ということになります。プログラムステップは127ステップ、プログラム中で使用できるメモリ(変数)は10個となっており、条件判断やサブルーチン、間接指定など、プログラム言語として必要な要素は一通りそろっています。しかし、メモリのバッテリバックアップができないという弱点を抱えていたため、苦労して入力したプログラムも電源を切ればそれっきりになってしまいます。ライバルであるPC-1200がバッテリバックアップ機能を備えていたので対抗したのか、ほぼ同じ仕様の後継機種fx-202Pではバックアップができるようになりました。

キーボードにΓ1とかE3とかの印字があります。これはなんだと思いますか…?

実は、プログラム内容を確認する際に表示される記号を示しています。FX-502Pなどでは同様の記号の一覧が別に添付されていましたが、fx-201Pではこのようにキーの下に印字してあるのでわかりやすいです。

この電卓、コーヒーか何か飲み物をこぼされたのか、キーが汚れて押しにくい(押し込んでしまうと戻りにくい)状態となっていましたので、清掃のため内部を開けてみることにしました。まず本体裏側左下になにかふたのようなものがあるので開けてみると、テスト用なのか拡張用なのかよくわからない謎の端子が出てきました。

裏蓋を完全に開けたところ。近頃の電卓などとは異なりかなり集積度が低く、手作り感が漂っていますね。

メインのチップたち。HD36136というものが1つ(CPUでしょうか?)、HD36106というものが2つ(メモリでしょうか?)使われています。

キーボードの裏側。ゴムではなく金属製のスプリングが使われています。キーそのものも今どきの電卓のような印刷ではなく、金太郎飴のような構造に成型されており、使いこんでも文字が消えることはありません。やはり昔の製品はお金がかかっていますね。

実はこの電卓のプログラム言語はかなり変わっています。SHARPやCASIO, HPなどのほかの電卓とは似ても似つかない、ちょっとわかりにくい仕様となっています。たとえば、プログラム中に定数を書くのに"K"に続けて書かなければいけない(数値だけを書くと変数を指定したことになってしまう)、ジャンプもサブルーチンも同じGOTO命令を使い、サブルーチンなのかどうかはラベルを置く命令(ST# か SUB# か)によって判断している、などの点があげられます。ちょっとややこしいので次回以降の記事で少しそのあたりの解説をしてみたいと思います(英語版のマニュアルをこちらにアップしておきます)。
こちらは今どきのプログラム関数電卓です。

キーボードにΓ1とかE3とかの印字があります。これはなんだと思いますか…?

実は、プログラム内容を確認する際に表示される記号を示しています。FX-502Pなどでは同様の記号の一覧が別に添付されていましたが、fx-201Pではこのようにキーの下に印字してあるのでわかりやすいです。

この電卓、コーヒーか何か飲み物をこぼされたのか、キーが汚れて押しにくい(押し込んでしまうと戻りにくい)状態となっていましたので、清掃のため内部を開けてみることにしました。まず本体裏側左下になにかふたのようなものがあるので開けてみると、テスト用なのか拡張用なのかよくわからない謎の端子が出てきました。

裏蓋を完全に開けたところ。近頃の電卓などとは異なりかなり集積度が低く、手作り感が漂っていますね。

メインのチップたち。HD36136というものが1つ(CPUでしょうか?)、HD36106というものが2つ(メモリでしょうか?)使われています。

キーボードの裏側。ゴムではなく金属製のスプリングが使われています。キーそのものも今どきの電卓のような印刷ではなく、金太郎飴のような構造に成型されており、使いこんでも文字が消えることはありません。やはり昔の製品はお金がかかっていますね。

実はこの電卓のプログラム言語はかなり変わっています。SHARPやCASIO, HPなどのほかの電卓とは似ても似つかない、ちょっとわかりにくい仕様となっています。たとえば、プログラム中に定数を書くのに"K"に続けて書かなければいけない(数値だけを書くと変数を指定したことになってしまう)、ジャンプもサブルーチンも同じGOTO命令を使い、サブルーチンなのかどうかはラベルを置く命令(ST# か SUB# か)によって判断している、などの点があげられます。ちょっとややこしいので次回以降の記事で少しそのあたりの解説をしてみたいと思います(英語版のマニュアルをこちらにアップしておきます)。
こちらは今どきのプログラム関数電卓です。
FX-502Pの隠れキャラクタ
FX-502Pについて検索していると、下のような画像を見かけることがあります。では、右端の"P"の文字はどうやって表示しているのでしょうか? 本日はそれについて書きたいと思います。

FX-502Pは7セグメントのLCDを使用していますが、プログラムの"P", 60進数の"°", 符号の"-"などの記号も表示されることがあり、このような記号にも内部的にコードが割り当てられています。Casio FX-502P Geekによると、コードの割り当ては下記のようになっているようです。
0~9 (数字):0~9
°(60進記号):10
P (プログラム):11
C (演算スタックエラー):12
E (エラー):13
- (マイナス):14
␣ (空白):15
これらのコードをおそらく内部的には4bitの16進数で表現しているものと思われます。ちなみにFメモリの"F"は"°"と同じコード10を利用しているようですが、表示の切り替えはモード(RUNモードなら"°"、WRTモードなら"F")に依存しているようです。これらのコードは通常の演算には用いられることはないのですが、ファームウェアのバグを利用してXレジスタ(表示内容)に呼び出すことができます。いったん呼び出されたものは演算を繰り返すことにより通常の数値(たとえば"P"なら11として扱われる)に戻ってしまうこともありますが、上手に扱えばバグった状態のまま演算を行うこともできます。このバグを誘発させるためには、メモリを間接指定するIND命令を用いて、実際には存在しないM32にアクセスを行います。バッファーオーバーランエラーでセキュリティーホールを突くのとと似たようなやり方なのではないかと思われます。
では、Casio FX-502P Geekに書かれている手順をもとに、"502P"を表示させてみることにします。まずは"P"を作らなければいけません。このためにはIND命令を利用して元となるバグった数値を作り出す必要があります。以下の操作はすべてRUNモードで行ってください。
32 [Min] 0 [AC] [INV] [IND] [MR] 0
以上の操作でバグが誘発され、Xレジスタに異常なデータがセットされます。おそらくは本来のMメモリのアドレスではない無関係なアドレスのデータ(つまり、BCDではなくランダムな16進数のデータ)を読み込んでXレジスタに転送しているのではないかと思われます。
これに対して演算を行います。
[×] [=] [÷] [=]
これで以下のような表示になると思います。
0.°06876873
これをM2に記憶させてさらに演算を続け、"°"の一桁を取り出してみます。
[÷] 0.1 [=] [INV] [RND] 1
これで"°"のみの表示になったと思います。試しにこの数値に1をかけてみてください。内部コードがまともな数値に戻ってしまい、10という答えが表示されるはずです。次に、"P"を作ってみます。以下のように操作します。
[MR] 2 [+] [+] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=]
結果は以下のようになると思います。
14.P031531
ここから"P"を取り出してM1に記憶させておきます。
[INV] [FRAC] [÷] 0.1 [=] [INV] [RND] 1 [Min] 1
さて、ここからがいよいよ本番です。ここまでの話から、"502P"を表示するには5020にM1を足せばいいように思われるかもしれません。ところが実際にこれを行うと"P"は11と解釈され、答は5031となってしまいます。そこでいろいろ考えたのですが、上記の方法を見ていて定数計算を利用しているところに目をつけました。どうやら定数計算はエラーチェックが甘いのか、あまり普通の数値に戻ることがないようです。これを利用して下記のようにしてみました。
[MR] 1 [+] [+] 5009 [=] [=]
これで見事に"502P"の表示になったと思います。このほかの文字の表示方法についてもCasio FX-502P Geekにいろいろと説明がありますので、興味のある方は試されてみてはいかがでしょうか。

FX-502Pは7セグメントのLCDを使用していますが、プログラムの"P", 60進数の"°", 符号の"-"などの記号も表示されることがあり、このような記号にも内部的にコードが割り当てられています。Casio FX-502P Geekによると、コードの割り当ては下記のようになっているようです。
0~9 (数字):0~9
°(60進記号):10
P (プログラム):11
C (演算スタックエラー):12
E (エラー):13
- (マイナス):14
␣ (空白):15
これらのコードをおそらく内部的には4bitの16進数で表現しているものと思われます。ちなみにFメモリの"F"は"°"と同じコード10を利用しているようですが、表示の切り替えはモード(RUNモードなら"°"、WRTモードなら"F")に依存しているようです。これらのコードは通常の演算には用いられることはないのですが、ファームウェアのバグを利用してXレジスタ(表示内容)に呼び出すことができます。いったん呼び出されたものは演算を繰り返すことにより通常の数値(たとえば"P"なら11として扱われる)に戻ってしまうこともありますが、上手に扱えばバグった状態のまま演算を行うこともできます。このバグを誘発させるためには、メモリを間接指定するIND命令を用いて、実際には存在しないM32にアクセスを行います。バッファーオーバーランエラーでセキュリティーホールを突くのとと似たようなやり方なのではないかと思われます。
では、Casio FX-502P Geekに書かれている手順をもとに、"502P"を表示させてみることにします。まずは"P"を作らなければいけません。このためにはIND命令を利用して元となるバグった数値を作り出す必要があります。以下の操作はすべてRUNモードで行ってください。
32 [Min] 0 [AC] [INV] [IND] [MR] 0
以上の操作でバグが誘発され、Xレジスタに異常なデータがセットされます。おそらくは本来のMメモリのアドレスではない無関係なアドレスのデータ(つまり、BCDではなくランダムな16進数のデータ)を読み込んでXレジスタに転送しているのではないかと思われます。
これに対して演算を行います。
[×] [=] [÷] [=]
これで以下のような表示になると思います。
0.°06876873
これをM2に記憶させてさらに演算を続け、"°"の一桁を取り出してみます。
[÷] 0.1 [=] [INV] [RND] 1
これで"°"のみの表示になったと思います。試しにこの数値に1をかけてみてください。内部コードがまともな数値に戻ってしまい、10という答えが表示されるはずです。次に、"P"を作ってみます。以下のように操作します。
[MR] 2 [+] [+] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=]
結果は以下のようになると思います。
14.P031531
ここから"P"を取り出してM1に記憶させておきます。
[INV] [FRAC] [÷] 0.1 [=] [INV] [RND] 1 [Min] 1
さて、ここからがいよいよ本番です。ここまでの話から、"502P"を表示するには5020にM1を足せばいいように思われるかもしれません。ところが実際にこれを行うと"P"は11と解釈され、答は5031となってしまいます。そこでいろいろ考えたのですが、上記の方法を見ていて定数計算を利用しているところに目をつけました。どうやら定数計算はエラーチェックが甘いのか、あまり普通の数値に戻ることがないようです。これを利用して下記のようにしてみました。
[MR] 1 [+] [+] 5009 [=] [=]
これで見事に"502P"の表示になったと思います。このほかの文字の表示方法についてもCasio FX-502P Geekにいろいろと説明がありますので、興味のある方は試されてみてはいかがでしょうか。
CASIO FX-502Pの修理…
先日、CASIOの古い関数電卓FX-502Pが電源スイッチが不良のジャンクという触れ込みで安価にオークションで出ていたので入手してみました。FX-502Pは1978年発売のプログラム関数電卓で、ベストセラーとなったFX-601P/602Pの一世代前の機種にあたります。液晶こそ7セグメントですが、プログラミング言語の仕様はFX-601P/602Pと同等であり、サブルーチン、ジャンプ、条件判断、間接指定などの命令を備えています。プログラムステップ数は256ステップですが、下位機種として128ステップのFX-501Pも販売されていました。
今回入手したものを調べてみると、どうやら電池の液漏れが原因のようでした。最近多く利用されているCR2032などのリチウム電池はあまり液漏れしませんが、当時の主流であったアルカリボタン電池LR44は古くなると液漏れが必発です。

このFX-502Pは電池ボックスのすぐ近くに電源スイッチがあるため、スイッチの裏側についている電極が腐食しているのが原因だということがわかりました。

まずはこのスイッチを補修することができないか試みました。スイッチの構造は双極双投(6P)のようで、二股に分かれた金属板が2枚付いている構造をしています。なので、スズメッキ線をU字型に曲げて代用できないかどうか検討してみることにしました。

試しに製作してみたもの。残念ながらこれを取り付けてもうまくいきませんでした。スズメッキ線の曲げ方が微妙によくないのでしょうが、微調整を繰り返してもだめだったのでこの方法はあきらめることにしました。

仕方がないので6Pのスライドスイッチを別付けにしてみることにしました。3Pのスライドスイッチは小型のものが結構ありますが、6Pのものは近所のマルツでは少し大きめのものしか見つけられなかったので、FA-1接続用のコネクタを外してそこに収めてみることにしました。

手持ちのスイッチはFA-1用コネクタより微妙に大きかったので、やすりで筐体を削りました。

かなり削ってなんとか収まるようになりました。

次にスイッチに導線を接続します。スイッチの電極が長すぎて基板と干渉するので、短く切ってあります。

配線を間違えないように注意しながら電源スイッチのパターンに接続します。長いパターンが2つありますが、これらをスイッチのコモン(中央の端子)に接続します。

ケースに収めたところ。これで電源の操作が問題なくできるようになりましたが、ここでまた一つ落とし穴がありました。電池ボックスの電極です。この個体は液漏れのため電極が基板から取れかけていたのではんだ付けをやり直しました。この際に固定する角度などに注意しないと接触不良を起こしたり、電池の(+)と(-)をショートしてしまったりしてうまくいきません。(-)極側の電極の基板に接続されている側(画像では向かって左側)はケースの底にできるだけ密着して浮かさないようにしてください。浮いてしまうとこれが(+)極と接触してショートの原因となります。(ショートは発熱や電池の破裂などの事故の原因となりうるため、十分注意して作業する必要があります。) ちなみにこの電極ですが、そのままではほとんどハンダが乗りません。以前大須で購入した電池用フラックスを塗るとうまくいきました。

組み立て終わったところ。FA-1は使えなくなりましたし、少し不格好ですが、動けばよしとしましょう。

何とか動くようにはなりましたが、少しキーの反応が鈍かったり液晶表示にムラがあったりします。コンデンサ(タンタルコンデンサが2個ついています)の不良かもしれません。機会があれば交換も試みたいと思います。

今回入手したものを調べてみると、どうやら電池の液漏れが原因のようでした。最近多く利用されているCR2032などのリチウム電池はあまり液漏れしませんが、当時の主流であったアルカリボタン電池LR44は古くなると液漏れが必発です。

このFX-502Pは電池ボックスのすぐ近くに電源スイッチがあるため、スイッチの裏側についている電極が腐食しているのが原因だということがわかりました。

まずはこのスイッチを補修することができないか試みました。スイッチの構造は双極双投(6P)のようで、二股に分かれた金属板が2枚付いている構造をしています。なので、スズメッキ線をU字型に曲げて代用できないかどうか検討してみることにしました。

試しに製作してみたもの。残念ながらこれを取り付けてもうまくいきませんでした。スズメッキ線の曲げ方が微妙によくないのでしょうが、微調整を繰り返してもだめだったのでこの方法はあきらめることにしました。

仕方がないので6Pのスライドスイッチを別付けにしてみることにしました。3Pのスライドスイッチは小型のものが結構ありますが、6Pのものは近所のマルツでは少し大きめのものしか見つけられなかったので、FA-1接続用のコネクタを外してそこに収めてみることにしました。

手持ちのスイッチはFA-1用コネクタより微妙に大きかったので、やすりで筐体を削りました。

かなり削ってなんとか収まるようになりました。

次にスイッチに導線を接続します。スイッチの電極が長すぎて基板と干渉するので、短く切ってあります。

配線を間違えないように注意しながら電源スイッチのパターンに接続します。長いパターンが2つありますが、これらをスイッチのコモン(中央の端子)に接続します。

ケースに収めたところ。これで電源の操作が問題なくできるようになりましたが、ここでまた一つ落とし穴がありました。電池ボックスの電極です。この個体は液漏れのため電極が基板から取れかけていたのではんだ付けをやり直しました。この際に固定する角度などに注意しないと接触不良を起こしたり、電池の(+)と(-)をショートしてしまったりしてうまくいきません。(-)極側の電極の基板に接続されている側(画像では向かって左側)はケースの底にできるだけ密着して浮かさないようにしてください。浮いてしまうとこれが(+)極と接触してショートの原因となります。(ショートは発熱や電池の破裂などの事故の原因となりうるため、十分注意して作業する必要があります。) ちなみにこの電極ですが、そのままではほとんどハンダが乗りません。以前大須で購入した電池用フラックスを塗るとうまくいきました。

組み立て終わったところ。FA-1は使えなくなりましたし、少し不格好ですが、動けばよしとしましょう。

何とか動くようにはなりましたが、少しキーの反応が鈍かったり液晶表示にムラがあったりします。コンデンサ(タンタルコンデンサが2個ついています)の不良かもしれません。機会があれば交換も試みたいと思います。

※本サイトで紹介する内容は、すべて個人的研究の範囲内で行っていることです。ここに書かれた内容を実行したことによる、データ(クラウド上を含む)・ソフトウェア・ハードウェアの障害および金銭的損害について、私が責任を負うことはできません。重要なデータはあらかじめバックアップを行い、内容を十分に理解したうえで、ご自身の責任の下で行ってください。 |
CASIO fx-5000F
最近仕事が忙しいこともあってブログのネタも切れ気味なキョロです…。そんなわけで電卓の紹介ばかりしていますが、本日もCASIOの科学公式内蔵電卓fx-5000Fを紹介します。以前にも似たようた公式内蔵電卓であるfx-50Fを紹介ましたが、こちらがfx-3600Pvをベースにしている可能性があるのに対して、このfx-5000Fはどうやらfx-3900Pをベースにしているようです。機能的にはfx-50Fの23公式に対してこちらは128公式を内蔵しており、ユーザープログラムエリアもfx-50Fの2プログラム29ステップより大幅に多く12プログラム(P0~P9, PA, PB)675ステップとなっています。ディスプレイはfx-4500Pのような2行表示で、上段がドットマトリクス14桁、下段が7セグメント10桁となっています。(英文マニュアルをこちらにアップしてあります。)

fx-3900P(左)と並べてみました。デザインやキー配列は似ていますね。

内部も調べてみましたが、CPUもfx-3900Pと同じHD62001でした。右下のHD61914というチップはPB-100などに使用されているのと同じ8Kbit(2048×4bit)の同期SRAMです。

公式を利用するには公式番号を入力して[FMLA]キーを押します。するとこのように変数の値の入力を促されます。このあたりの操作はfx-50Fと似ていますね。

数値を入力して[EXE]キーを押すと結果が表示されます。

ユーザプログラムは12組675ステップと大容量ですが、制御構造は一切利用できません。プログラム命令自体はfx-3900Pと共通の部分もあり、たとえば[:]はステートメント区切り、[◢](環境依存文字ですが、右下に直角のある直角三角形です)は一時停止となっています。また、変数への代入自体は[→]でfx-3900Pと同じですが、通常の計算で使用できるのは定数メモリK0~K9の10個となります。変数A~Z, a~zはユーザープログラム中またはマルチステートメントで区切られた1行の数式の中では有効ですが、計算が終了すると内容は破棄されるので注意が必要です。上記の命令以外は共通点は少なく、たとえば変数への数値入力待ちは[?][→][x]ではなく、単に初出の変数名があると入力が促されるようになっています(EL-5020と同様ですね)。また、[」]があるとそれまで値が割り当てられていた変数(定数メモリであるK0~K9は除く)がすべてクリアされるようになっています。
面白いのは128の内蔵公式をユーザープログラムエリアにコピーできる機能でしょう。ポケコンFX-860Pvcにも似た機能(隠し命令を使う必要がありますが…)がありましたが、fx-5000Fも内蔵プログラムをユーザーエリアにロードして編集することができるようになっています。以下に操作手順を示します。まずは公式番号を入力し[FMLA]キーを押して公式を呼び出します。

[MODE][2]と操作して"WRT"モードに切り替えます。

[←][→]キーでプログラム番号を選択して[EXE]を押して確定します。"S=0"は当該プログラムエリアの使用済ステップ数が0であることを示しています。

もう一度[FMLA]キーを押します。これで選択したプログラムエリアに公式がコピーされました。

ざっと大まかにはこのような機能です。プログラム関数電卓として見た場合にはさほど多機能とはいえませんが、科学公式計算を多用される方、それを応用してさまざまな計算をされる方には便利な電卓かと思います。興味をもたれた方はマニュアルを参照されてみてはいかがでしょうか。

fx-3900P(左)と並べてみました。デザインやキー配列は似ていますね。

内部も調べてみましたが、CPUもfx-3900Pと同じHD62001でした。右下のHD61914というチップはPB-100などに使用されているのと同じ8Kbit(2048×4bit)の同期SRAMです。

公式を利用するには公式番号を入力して[FMLA]キーを押します。するとこのように変数の値の入力を促されます。このあたりの操作はfx-50Fと似ていますね。

数値を入力して[EXE]キーを押すと結果が表示されます。

ユーザプログラムは12組675ステップと大容量ですが、制御構造は一切利用できません。プログラム命令自体はfx-3900Pと共通の部分もあり、たとえば[:]はステートメント区切り、[◢](環境依存文字ですが、右下に直角のある直角三角形です)は一時停止となっています。また、変数への代入自体は[→]でfx-3900Pと同じですが、通常の計算で使用できるのは定数メモリK0~K9の10個となります。変数A~Z, a~zはユーザープログラム中またはマルチステートメントで区切られた1行の数式の中では有効ですが、計算が終了すると内容は破棄されるので注意が必要です。上記の命令以外は共通点は少なく、たとえば変数への数値入力待ちは[?][→][x]ではなく、単に初出の変数名があると入力が促されるようになっています(EL-5020と同様ですね)。また、[」]があるとそれまで値が割り当てられていた変数(定数メモリであるK0~K9は除く)がすべてクリアされるようになっています。
面白いのは128の内蔵公式をユーザープログラムエリアにコピーできる機能でしょう。ポケコンFX-860Pvcにも似た機能(隠し命令を使う必要がありますが…)がありましたが、fx-5000Fも内蔵プログラムをユーザーエリアにロードして編集することができるようになっています。以下に操作手順を示します。まずは公式番号を入力し[FMLA]キーを押して公式を呼び出します。

[MODE][2]と操作して"WRT"モードに切り替えます。

[←][→]キーでプログラム番号を選択して[EXE]を押して確定します。"S=0"は当該プログラムエリアの使用済ステップ数が0であることを示しています。

もう一度[FMLA]キーを押します。これで選択したプログラムエリアに公式がコピーされました。

ざっと大まかにはこのような機能です。プログラム関数電卓として見た場合にはさほど多機能とはいえませんが、科学公式計算を多用される方、それを応用してさまざまな計算をされる方には便利な電卓かと思います。興味をもたれた方はマニュアルを参照されてみてはいかがでしょうか。
ようやく手に入れました… SHARP PC-1200
以前から欲しいと思っていた、SHARPの初代「ポケットコンピュータ」、PC-1200をようやく手ごろな価格で手に入れることができました。PC-1200は名前こそ「ポケコン」でしたが、後のBASICが利用できる(PC-1210/1211以降)ポケコンとは似ても似つかず、実際は高性能なプログラム関数電卓でした。プログラムは128ステップまで入力可能で電源を切っても保持されます。また、数値メモリは0~9, s, tの12個が使用でき、条件判断やジャンプ、サブルーチンなど本格的にプログラムを組むことのできる機能が備わっています。

電池は単3を2本使用しますが、電池ボックスの左側にメモリバックアップ用のLR44を2個セットするホルダーが装着されています。(LR44をセットしなくても、メイン電池を抜かなければメモリ内容は保持されます。)

以前紹介した同時期のプログラム関数電卓、EL-5002と並べてみました(左がPC-1200, 右がEL-5002)。EL-5002の記事中で「同じ筐体かも…?」と書きましたが、こうして比べてみると確かにデザインはほとんど同じですね。違いはPC-1200のほうはディスプレイ周りの黒い部分にアルミで縁取りがしてあることと、EL-5002のほうは黒い部分とディスプレイの間に銀色の部分があること程度でしょうか…。

裏面もほとんど同じで区別がつきません(左がPC-1200, 右がEL-5002)。

PC-1200もマニュアルを見つけることができていませんが、web上に存在するサンプルプログラムなどから、命令の利用方法などは下記のようになっていると推測されます。(代表的な命令については実際に試してみましたが、概ね下記の内容でよさそうです。)
x→M n : メモリnへの代入 (n = 0~9, s, t)
M+ n : 表示中の数値をメモリnへ加算 (n = 0~9, s, t)
※ x→M は[=]キーを押したことにはなりませんが、M+ はなります
RM n : メモリnの参照 (n = 0~9, s, t)
CAM : メモリの全クリア
LBL n : GTO, GTSなどのジャンプ先ラベル (n = 0~9, s, t)
GTO n : LBL n への無条件ジャンプ (n = 0~9, s, t)
GTS n : LBL n へのサブルーチンコール (n = 0~9, s, t)
※ ネスティングはできません
HLT : 一時停止 ([S/E] キーで再開)
S/E : プログラムまたはサブルーチンの最後
x≠0 n , x<0 n , x=t n , x<t n :
条件が真なら LBL n へジャンプ (n = 0~9, s, t)
※ x は表示中の数値、t はメモリtの内容を示します
プログラム入力は"PRO"モードで、実行は"RUN"モードで行い、消去は"CAP"モードで [CA] キーを押せばよいようです。入力したプログラムを実行するには [GTO] n [S/E] で LBL n からが実行され、単に [S/E] だけを押すと先頭から実行されるようです。つまり、最大13組(12のラベルと、先頭から始まるプログラム)までのプログラムを保存できるということになりますね。
全体としてはFX-601Pの言語をさらに簡素化したような感じで、確かにEL-5002と比べると、本格的なプログラムを組むのに必要最低限の命令は揃っていそうですね。そういうところを強調するためにSHARPは「ポケットコンピュータ」と名付けたのかもしれません。また時間があるときにベンチマークなども行ってみたいと思います。

電池は単3を2本使用しますが、電池ボックスの左側にメモリバックアップ用のLR44を2個セットするホルダーが装着されています。(LR44をセットしなくても、メイン電池を抜かなければメモリ内容は保持されます。)

以前紹介した同時期のプログラム関数電卓、EL-5002と並べてみました(左がPC-1200, 右がEL-5002)。EL-5002の記事中で「同じ筐体かも…?」と書きましたが、こうして比べてみると確かにデザインはほとんど同じですね。違いはPC-1200のほうはディスプレイ周りの黒い部分にアルミで縁取りがしてあることと、EL-5002のほうは黒い部分とディスプレイの間に銀色の部分があること程度でしょうか…。

裏面もほとんど同じで区別がつきません(左がPC-1200, 右がEL-5002)。

PC-1200もマニュアルを見つけることができていませんが、web上に存在するサンプルプログラムなどから、命令の利用方法などは下記のようになっていると推測されます。(代表的な命令については実際に試してみましたが、概ね下記の内容でよさそうです。)
x→M n : メモリnへの代入 (n = 0~9, s, t)
M+ n : 表示中の数値をメモリnへ加算 (n = 0~9, s, t)
※ x→M は[=]キーを押したことにはなりませんが、M+ はなります
RM n : メモリnの参照 (n = 0~9, s, t)
CAM : メモリの全クリア
LBL n : GTO, GTSなどのジャンプ先ラベル (n = 0~9, s, t)
GTO n : LBL n への無条件ジャンプ (n = 0~9, s, t)
GTS n : LBL n へのサブルーチンコール (n = 0~9, s, t)
※ ネスティングはできません
HLT : 一時停止 ([S/E] キーで再開)
S/E : プログラムまたはサブルーチンの最後
x≠0 n , x<0 n , x=t n , x<t n :
条件が真なら LBL n へジャンプ (n = 0~9, s, t)
※ x は表示中の数値、t はメモリtの内容を示します
プログラム入力は"PRO"モードで、実行は"RUN"モードで行い、消去は"CAP"モードで [CA] キーを押せばよいようです。入力したプログラムを実行するには [GTO] n [S/E] で LBL n からが実行され、単に [S/E] だけを押すと先頭から実行されるようです。つまり、最大13組(12のラベルと、先頭から始まるプログラム)までのプログラムを保存できるということになりますね。
全体としてはFX-601Pの言語をさらに簡素化したような感じで、確かにEL-5002と比べると、本格的なプログラムを組むのに必要最低限の命令は揃っていそうですね。そういうところを強調するためにSHARPは「ポケットコンピュータ」と名付けたのかもしれません。また時間があるときにベンチマークなども行ってみたいと思います。