CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

ファイル変換

PROMスプリッタが出力したbytestreamファイルを見てみるとこの時点でMSG1MSG2の隙間にFFが3個(1ワード)しかなくバッファ空き領域の詰め物が無くなってしまっています。

f:id:O3I:20210711104326j:plain

 

よくよくマニュアルのbytestreamファイルに関する説明をみてみるとちゃんと書いてありました。

f:id:O3I:20210711093248j:plain

アドレス情報が失われるので不連続なメモリブロックがあるコードからbytestreamファイルは生成できないとあります。有効なコードだけで前詰めしちゃったということでしょう。

 

ではどうするかです。

まず考えられるのが24ビット幅プログラム空間に置くROMのイメージを上位、中位、下位と3本HEXファイルで出力し(この時点ではアドレス情報を含んでいる)これをそれぞれバイナリに変換してそれをつっくけて1本のダウンロード用バイナリにするということです。3本のバイナリファイルから1バイトづつ順に拾ってきてU,M,L,U,M,L・・・と連結していかなければならないのでcopy /b file1+file2+file3という訳にはいかず簡単な処理ですがマージツールを作る必要があります。

f:id:O3I:20210711093301j:plain

 

ですがEXEファイルのフォーマットは公開されているので、何もいったんバイト毎のHEXファイルを経ることなく、ダイレクトに1本のバイナリにする方がよほど簡単で早いわけで、このEXE2BINツールを作ることにします

f:id:O3I:20210711093333j:plain