疑似カセットテープ環境(挫折)
ポケコンPC-G850Vにはプログラムをテープに保存するためのBSAVEというコマンドがあります。
- BSAVEを実行すると、現在のBASICプログラムをテープに保存します。
- BSAVE M START,ENDを実行すると、STARTアドレスからENDアドレスまでのバイナリデータをテープに保存します。
通信相手はテープレコーダとポケコンが選べるようです。
このプロトコルを解析して、外部にマイコンを置き、BSAVE/BLOADで気軽にプログラムの保存ができる環境を 作れるのではと思いました。
BSAVEのプロトコル解析はこちら。一応、ロジアナ経由でPWM波形をPCに取り込んでデータを取り出すことまではできました。大変効率の悪いBLOADまではこれで実現できます。
デコードとなんちゃってBLOADはこちら。
ここまで検討して何ですが、これよりも高速化のほうを検討したほうが便利そうですので、いったんここで解析は終了します。
解析に使ったロジアナについて
BSAVE波形の解析には安物のロジアナを使いました。オープンソースのsigrokという波形ビューワが 使えます。GUIのPulseViewでもよいですが、Sigrok-CLIのほうが繰り返して実験するには便利でしょう。
たとえばBSAVEの解析のために11pinをモニタする場合、Pin3をGNDに、Pin7をD0に接続して、下記コマンドを実行します。
sigrok-cli --driver fx2lafw --config samplerate=20k -O bits:width=64 --channels=D0 --time 50s -o data.txt
その直後、実機でBSAVEを実行すると、data.txtにキャプチャ結果が得られます。
出力されたdata.txtを解析すればコードを取り出せます。