tunozemichanの日記 / tunozemichan's diary

SORD社のコンピューターM68やM68MXの解析についての備忘録です。This blog is a memorandum about the analysis of SORD's computers M68 and M68MX.

SORD M68のBOOT ROM解析(フロッピーディスクコントローラーのI/Oポートアドレス判明)(色々修正)

DMAの件で、手詰まりになったので、CP/M-68KのBOOT部分をディスクイメージのセクタから切り出して、逆アセンブルしました。トラック1、サイド0、セクタ1~3が当該部位で、これはZ80のコードで書かれています。

 

BOOT ROMに比べてものすごく読みやすいコードが出力されて、DMAのコードが見つかり、Z80DMAのI/Oアドレスが分かります。

 

CP/M-68K起動時のZ80DMAのI/Oアドレス:0xcc

 

BOOT ROMでは0xa1だったはずですが、これ以外考えられません。またこの時の初期化コードから、フロッピーディスクコントローラー(FDC)のデータレジスタが分かりました。

 

FDCコマンド/ステータスレジスタ:0xc8(確定)

FDCトラックレジスタ:0xc9 (モニタプログラムから直接調べた結果)

FDCセクタレジスタ:0xca(ブートローダの読込コードから矛盾しない)

FDCデータレジスタ:0xcb

 

SORD M68のFDCであるMB8877Aのレジスタアドレスは普通、コマンド/ステータスレジスタ→トラックレジスタ→セクタレジスタ→データレジスタの順に並ぶようですが、今回の結果はかなり違っています。

DMACのアドレスが何故かFDCのデータレジスタとトラックレジスタの間に入ってしまっています。いくら何でも汚すぎると思いますが、現時点ではこうなっているとしか言いようがありません。

 

幸いCP/M-68Kはまともに動くので、コマンドを直接たたいて確認したいと思います。

 

以上です。