ウォンツテック

そでやまのーと

OS作成

リファクタリングしようとソースをいじってたらFDCでrecalibrateの後に割り込みがこなくなった。。。最初のDORのFDCリセットに対する割り込みは来るんだけどその後にrecalibrateしようとするとこない。当然割り込みhandlerで0x20 I/OポートのOCW2レジスタに対して指定EOIのIRQ6(FDC)に対して再割り込みが行われるよう設定してるんだけどそれが有効になってないのかなんなのかがわからない。qemuでもbochsでも同じ現象。u-mデバッグの手掛かりが無い。。

やはりMONAは偉大だった。

上記のデバッグのとっかかりが全く無かったのでグーグル先生に質問してみたところ
http://wiki.monaos.org/pukiwiki.php?Mona%2FQEMU%2F%A5%C7%A5%D0%A5%C3%A5%B0
にて

その結果Monaからのアクセス時にFDCのリセットがうまくいっていないっぽかったので
FDCDriver.cpp:initializeのFDCのリセットをコメントアウトしたところ
Monaの起動が先に進むようになりました。

の記述を参考にして見たところ正常になりました!
MONA OSは完成したドキュメントではなく実装過程の泥臭いドキュメントが大量に残っている点が日本人OS作成愛好家にとっては最大の功績だと思う今日この頃。

Sodex rev.6


さて、これでシリアルドライバ作成に取り掛かれる。