FX-860P/870P用BASICプログラムコンバータ
ポケコン用のオンラインソフトのほとんどはASCIIテキスト形式のBASICプログラムであり、シリアルポート経由で容易にポケコンに転送できます。ところが、中にはBASICのバイナリ(中間コード)形式のものがあり、このようなものはポケコンに転送するのは困難です。FX-860Pvcを入手しパソコンとの間でプログラムの転送ができるようになったため、何かいいオンラインソフトはないかとwebで検索していて"FX-PLAN"という多機能な表計算ソフトを見つけました。(「ポケコン・パラダイス」で公開されています。) ところがダウンロードしてみるとこれがバイナリ形式だったため、なかなかFX-860Pvcに読み込むことができません。サイトには、FDにコピーするかF.COMを使えば転送できるようなことが書いてありますが、どう頑張ってもF.COMでは転送できませんでした。このほかにFX-870PのF.COM/VX-MENU, Z-1GRのF.COM/FX-DOSなど様々な組み合わせを試してみましたが、いずれもバイナリデータとしては転送できるものの、これをBASICプログラムとして認識させることがどうしてもできません。
そこで、BASICのバイナリをASCIIテキストに変換するツールを作ることにしました。参考にしたのは123様の「カシオ VX-4(ポケコン)のページ」の中の「FX-870P / VX-4 内部情報」です。実際に"FX-PLAN"のファイルをダウンロードしてバイナリダンプしてみたところ、ここに書かれていること以外に下記のことがわかりました。
1. ファイルの先頭16バイトはヘッダとなっており、プログラム本体ではない(内容は不明)
2. 00H~07Hから始まるコードには特別な意味がある。
00H : 行末
01H : マルチステートメントの区切り(:)
02H : 注釈(’)
03H : これに続く2バイトは、GOTO, GOSUBなどのジャンプ先行番号(リトルエンディアンの16bit)
04H ~ 07H : 続く1バイトと合わせて予約語の中間コード
これをもとにVisual Basic 2012 Expressで作ってみました。こちらからダウンロードできます。いちおうソースもつけておきましたが、何せこれまではVB 6.0やExcel VBAしか触ったことがなくVB.NETは初めてだったことと、かなり急いで作ったことから、あまりきれいなソースではありません。いわゆる「VB 6.0訛り」という感じになってしまっています。対応OSはWindows Vista以降で、実行には.NET Framework 4.5が必要です。
現在のところ、対応機種はFX-840P/841P/860P/870PおよびVX-1/2/3/4です。FX-890P/Z-1のプログラムは、FX-870Pでサポートされている命令だけを使用しておれば使用できると思います。使い方は簡単で、入力ファイルと出力ファイルを指定し、「開始」をクリックするだけです。「先頭16バイトを…」は通常はチェックしておいてよいと思いますが、変換に失敗する場合は外してみてください。

変換後のファイルをメモ帳で開いたところ。ASCIIテキストになっています。なお、この変換後のプログラムを当方でアップロードする予定はありません。再配布の許諾は得ていませんので…。あしからずご了承ください。

現在のところ"FX-PLAN"以外のプログラムは変換していない(バイナリ形式のプログラムを見つけられていない)ので、動作が完全かどうかはわかりません。もし使用してみて不具合があるようでしたらコメント欄ででも報告をお願いいたします。今後のバージョンアップの予定としては、FX-890P/Z-1への対応(コマンドテーブルをいじるだけかも?)、ソースをわかりやすく整理する、などを考えています。いつになるかはわかりませんが…。
そこで、BASICのバイナリをASCIIテキストに変換するツールを作ることにしました。参考にしたのは123様の「カシオ VX-4(ポケコン)のページ」の中の「FX-870P / VX-4 内部情報」です。実際に"FX-PLAN"のファイルをダウンロードしてバイナリダンプしてみたところ、ここに書かれていること以外に下記のことがわかりました。
1. ファイルの先頭16バイトはヘッダとなっており、プログラム本体ではない(内容は不明)
2. 00H~07Hから始まるコードには特別な意味がある。
00H : 行末
01H : マルチステートメントの区切り(:)
02H : 注釈(’)
03H : これに続く2バイトは、GOTO, GOSUBなどのジャンプ先行番号(リトルエンディアンの16bit)
04H ~ 07H : 続く1バイトと合わせて予約語の中間コード
これをもとにVisual Basic 2012 Expressで作ってみました。こちらからダウンロードできます。いちおうソースもつけておきましたが、何せこれまではVB 6.0やExcel VBAしか触ったことがなくVB.NETは初めてだったことと、かなり急いで作ったことから、あまりきれいなソースではありません。いわゆる「VB 6.0訛り」という感じになってしまっています。対応OSはWindows Vista以降で、実行には.NET Framework 4.5が必要です。
現在のところ、対応機種はFX-840P/841P/860P/870PおよびVX-1/2/3/4です。FX-890P/Z-1のプログラムは、FX-870Pでサポートされている命令だけを使用しておれば使用できると思います。使い方は簡単で、入力ファイルと出力ファイルを指定し、「開始」をクリックするだけです。「先頭16バイトを…」は通常はチェックしておいてよいと思いますが、変換に失敗する場合は外してみてください。

変換後のファイルをメモ帳で開いたところ。ASCIIテキストになっています。なお、この変換後のプログラムを当方でアップロードする予定はありません。再配布の許諾は得ていませんので…。あしからずご了承ください。

現在のところ"FX-PLAN"以外のプログラムは変換していない(バイナリ形式のプログラムを見つけられていない)ので、動作が完全かどうかはわかりません。もし使用してみて不具合があるようでしたらコメント欄ででも報告をお願いいたします。今後のバージョンアップの予定としては、FX-890P/Z-1への対応(コマンドテーブルをいじるだけかも?)、ソースをわかりやすく整理する、などを考えています。いつになるかはわかりませんが…。
※本サイトで紹介する内容は、すべて個人的研究の範囲内で行っていることです。ここに書かれた内容を実行したことによる、データ(クラウド上を含む)・ソフトウェア・ハードウェアの障害および金銭的損害について、私が責任を負うことはできません。重要なデータはあらかじめバックアップを行い、内容を十分に理解したうえで、ご自身の責任の下で行ってください。 |
スポンサーサイト