tablacus / LSX-Dodgers

CP/M80 MSX-DOS Compatible OS(Z80) for SHARP X1/turbo/Z, MZ-700/1500, PC-8801mkIISR and MSX
https://tablacus.github.io/LSX-Dodgers/
MIT License
43 stars 6 forks source link

LD.BINの先頭6Byteは何でしょうか。 #1

Closed Zephyr1969 closed 3 years ago

Zephyr1969 commented 3 years ago

過去のプログラムの件で恐縮ですが、OHM-Z80での構築環境が再構築できず、 MS-DOSのZASM.EXEでのクロスコンパイル用にソースコードを連結させたところまでは 実現したのですが、バイナリーレベルでの比較で、先頭6Byteがよくわかりません。 これについてご教授いただきたく、よろしくお願いします。

tablacus commented 3 years ago

LD.BINの先頭の7バイトは「MSX-BASIC BSAVE/BLOADファイル」と同じです。

バイト数 意味
1 FE固定(バイナリ形式と判別用)
2 開始番地
2 終了番地
2 実行番地

https://msxjpn.jimdofree.com/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%BD%A2%E5%BC%8F/

OHM-Z80の元々のOS、S-OS "SWORD"ではバイナリファイルにはディレクトリエントリに開始番地と実行番地が含まれています。 MS-DOSフォーマットの場合は基本的にディレクトリエントリに格納する場所が無いのでMSXのバイナリ形式としてファイルの先頭に格納している訳です。