ザビタン開発日記
2009 | 01
2008 | 01 | 02 | 06 | 12
2007 | 10 | 11 | 12
10月 31 (水曜日) 2007
16:17
FDアクセス:FDCレジスタ
 
大マヌケをこいてしまったが、な〜に!いつものことさ!  orz

●コマンド発行前待ち
io_in8(0x03f4) & 0x11 の値が0になるのを待ちます
0x11すなわち00010001bによる摘出。bit0とbit4摘出ね。
・ドライブ#0が非動作中(bit0)
・FDCがidle-Phaseである(bit4)

ふむ!納得! 理屈どおりだよね?
(・・・でも、bit6やbit7は関係ないのかな???)

●コマンド[08]発行前待ち
io_in8(0x03f4) & 0x10 の値が0になるのを待ちます
0x10すなわち00010000bによる摘出。bit4のみかぁ・・・
・FDCがidle-Phaseである(bit4)

ん?っていうことは、仮にドライブ#0が動作中であってもいい。
もしくはどっちでもいいということかな???

●個々のコマンド送信前待ち
io_in8(0x03f4) & 0xc0 が 0x80 になるのを待つ
0xc0すなわち11000000bによる摘出。bit7とbit6ね。
さらにこれらが0x80なんだから10000000b。bit7が1で、かつ、bit6が0だと。
・データレジスタの準備ができている。いつでも来い!(bit7)
・書き込み待ちの状態(bit6)

・・・なっるほどぉ・・・。bit7やbit6はさっきは無視されたんじゃ
なくて、個別に別々に検査されるわけね。

●個々のリザルトの受信待ち
io_in8(0x03f4) & 0xc0 が 0xc0 になるのを待つ
0xc0すなわち11000000bによる摘出。bit7とbit6ね。
さらにこれらが0xc0なんだから11000000b。bit7、bit6共に1でいてほしいと。
・データレジスタの準備ができている。いつでも来い!(bit7)
・読まれ待ちの状態(bit6)

おおおおお!! なるほど! なんか理屈通りだ! よく解る!

・・・あれ? でも、ちょっと疑問があるなぁ。
リザルト受信を開始する前のチェックというか・・・「コマンド発行前待ち」みたいなチェックってないのかなぁ???

たとえばだけど、
●リザルト発行前待ち
io_in8(0x03f4) & 0x11 の値が0x10になるのを待ちます
0x11すなわち00010001bによる摘出。bit0とbit4摘出ね。
・ドライブ#0が非動作中(bit0) ・・・これはいらないかな?
・FDCがidle-Phase以外(Result-Phase)である(bit4) 

とか・・・・
 
30日を過ぎたBlogにはコメントできません。

Referer  (3)
(1) 2 3 4 5 6 7 8 9 10 » 

PopnupBlog V3 Denali created by Bluemoon inc.