以前、PC-6001 カセットテープのデータ構造について解説しました。今回はそれをお手軽に実現するためのツールを作成しましたので公開いたします。
2022/03/09 17:30 少し問題があったのでツールを更新しました。
2022/03/09 17:30 少し問題があったのでツールを更新しました。
- p6 カセットテープバイナリロードツール
PC-6001 のカセットテープ読み込みの構造を見て、少し疑問に思った人はいないでしょうか。私は凄く気になったのですが、テープに保存してる内容に CRC(チェックサム)が付与されていないのです。これだと文字化けして読み込んだとしても気がつかず、最後までロードして、起動して、暴走して初めておかしいと気がつきます。
また、CLOAD<ret> RUN<ret>で動かす .p6ファイルを作る工程が少しややこしくて、何度か作成しているうちに、えーい、こういう定数的な作業はツールに任せてしまえと、開発を決意しました。どれだけ需要があるか分かりませんが、256ブロック毎にCRCチェックを入れる専用ローダーを組み込んだ、PC-6001マシン語ロードツール p6loader を公開いたします。下記からダウンロードしてください。
本ツールは C# .NET 6.0 で作成されています。動作対象は Win7 以降です。x64 専用なので 32bit OS では動作しません。発行時に込み込みビルドとしてありますが、万が一、ランタイムが不足しているとエラーが出た場合は、下記からランタイムインストールをお願いいたします。
- ツールの特徴
細かな使い方は同梱の README.TXT を読んで頂くとして、簡単な特徴を記載します。
- 手軽にCLOAD<ret> RUN<ret>によるマシン語読み込み処理を実現
- 起動モードが N60, N60Ext, N60m, または N66 BASIC なら Page に依存しない
- $0000 - $F9BF までの範囲でバイナリデータのロードが可能
- 256バイトのブロック単位で CRCチェックを付与
- 実行時にフルRAMモードで受け渡し
- エラー発生時はマシン語モニタに戻る
- コマンドライン処理もGUIでの編集も可能
マシン語プログラムたるバイナリファイルを指定して、p6loaderを通すだけで、指定のアドレスにロードして実行する p6 ファイルを出力します。現在、SR BASIC は中間コード体系が異なるため動きませんが、ちゃんと対応すれば動くと思います。ニーズがあれば対応しますのでコメント欄からご要望ください。
- GUI
GUI での編集イメージは下記の通りです。

データ間ギャップは、デフォルトで 4 になっています。これは特に変更する必要がありません。実機でモーターの回転が安定するまで時間がかかり等で、テープから追加バイナリをまともに読み出せない場合に限り、数値を弄るようにしてください。エミュだと 0 でも全く問題ありません。
あと、細かい事はツールをダウンロードして、そのアーカイブ内の ReadMe.txt をご覧ください。
- 実機に読み込ませる
以上、PC-6001系のゲーム公開に少しでもお役に立てれば幸いです。
※長持ちはしないですがピカチュウ好きには気にならない…と思う。
コメント