カシオfx-5800Pに入力したCasioBASICのプログラムファイルは、fx-5800P同士であれば転送コピーが可能とのこと。
別売の「データ転送ケーブル」SB-62(又はSB-62A、SB-62-A)¥3,024-を使うのだが、既に生産完了・販売終了となっている。
よく見ると、Φ2.5mmの3極ミニプラグ(ステレオプラグ)になっているだけなので、プラグ単体なら安く入手できそう。
e-Gadget(やすさん)のサイトに詳しい情報が出ていた。
http://egadget.blog.fc2.com/blog-entry-125.html#cm
kikkawaさんの情報では、Φ2.5プラグをクロス配線にすると(ステレオプラグのL-Rをクロスにするのか?)2台のfx-5800Pを接続できるようだ。
このタイプの3極というとRS-232C互換のCOMポート、つまりシリアルポートや、MCU内のUSARTユニット直結なことが多いと思う。
しかしfx-5800Pは2.5Vレベルのクロック同期式とのこと。独自形式なのかもしれない。クロック(SCK)は8kHz程度でデータ(SDA)のストローブはクロックエッジH->Lなのか?
※SCK:シリアルクロック、SDA:シリアルデータ
送信と受信が切替わる際にSCKとSDAが入れ替わるらしい。それでΦ2.5mm3極プラグはクロス配線にする必要があるのだろう。
【親機データ送信時】
親機 SCK -> 子機 SDA (クロック送信)
親機 SDA -> 子機 SCK (データ送信)
【親機データ受信時】
親機 SCK <- 子機 SDA (データ受信)
親機 SDA <- 子機 SCK (クロック受信)
SCKとSDAは互いに信号出力しつつ入力していることから、I2Cバス通信のようにプルアップ抵抗をオープンコレクタ(OC,又はOD)でドライブして出力衝突しないようにしていると思われる。
送受信データの内容は、テキストデータではなく中間コード(Op-Code)かもしれず、sentaroさんの情報ではfx-CG10/20のオペコード表が使えるかもしれないとのことなのでチェックしておくことにする。
http://media.taricorp.net/prizm/simon_chm/fxCG20_OPCODES.htm
(2012年12月10日時点のオペコード表)
なお、fx-9860GIIにもΦ2.5mm3極ミニジャックが付いており、取説によると「3ピン・シリアルポート」という名称のようだ。ケーブルは同じくSB-62を使うようだが、fx-5800Pとは接続できるという記載が無い。fx-9860やfx-9750、fx-7400シリーズ同士でのデータ転送のみ想定しているということなのか?
fx-9860GIIの3ピン・シリアルポートはCOMポートのようで「非同期・半2重通信」とある。ビットレートは115.2kbps、38.4kbps、9.6kbpsなど。
fx-9860GIIのMPUクロックオシレータはPLL(クリスタル?)で駆動しているからCOMポートでも通信エラー問題はないと思うが、fx-5800Pが仮にRCオシレータ駆動だったとしたら、COMポートは無理なのでクロック同期式の通信ポートにしたのだと推測する。
(8bitマイコンのオシレータをセラロックで使っていたとき、COMポートの通信エラーに悩まされたが、クリスタルに交換したらウソみたいに安定した。以後、セラロックを使うぐらいなら内蔵RCオシレータを使い、RC発振では精度が足りない時にケチらないでクリスタルを使うようにした)
通信内容を解析するには、Φ2.5mm3極プラグ(ステレオプラグ)を購入し、fx-5800Pをもう一台購入して実際にファイル転送させ、SCKとSDAをオシロとロジアナで観察する必要がある。