nika管理人nikaへのメッセージなどは上記Twitter等へどうぞ。480p(6038)Bochsの挙動(5943)RPG/掲示板(5719)RPG/掲示板/src(5673)doc/YMF-262(5411)OSASKテキストコード変換(5272)log/~2005(5122)log/2007(5110)memo/fontresize(5028)IntXXh(5023)log/2006(4915)nika(4789)FDC(4780)PIT(4775)PC/AT(4753)MenuBar(4537)bochs(4510)fmedit(4489)log/2008(4483)自作LIBファイル(4293)log/聖人(4235)RPG/グラフィックシステムライブラリ/src(4210)beatpanels(4119)PV3Matrix(4090)RPG/グラフィックシステムライブラリ(3937)InterWikiName(3737)FMV+LIFEBOOK(3066)VGA(2512)comment/LbFn(2293)RecentDeleted(1100)PV3アーカイブこのページは、OS-Wikiのページのコピーです。Attachment」の略。ATA-1より古い規格がIDEだということになっているATAの名が有名になる前は、ATAでもIDEと言っていたりしたので、その境界はややあいまい。Enhanced-IDEという存在が、ややこしさに輪をかける。これはATA-1の制定が遅れて、業界がもっと上位の規格に進み、その時に勝手に名前をつけた(E-IDEはATA-2の内容を部分的に先取りしたようなもの)。○(註)転送速度の単位はメガバイト毎秒SW-DMA:シングルワードDMAMW-DMA:マルチワードDMAU-DMA:ウルトラDMA○:仕様上で定義されており、サポートの可能性あり△:一部のデバイスはサポートしている×:この仕様では廃止されたモード空欄:仕様上にないので多分サポートされてないATAでは必ずLBAアクセスがサポートされている。IDEではサポートされていないものがある。括弧内は、AT互換機でのプライマリの場合のアドレスです(参考)全てのレジスタの全てのbitにおいて、原則としては制御の流れで意味が変わる。ここに挙がっているのは代表例、くらいに思ってほしい。0x01f0)bit0-15:主にPIO転送時のデータ受け渡しに利用Error/Featuresとアクセスがかぶっているように見えるかもしれないが、I/Oポートはメモリとは異なり、16bitアクセス=8bitアクセス+次のアドレスの8bitアクセスの256倍、ではないので、きちんと区別される。16bitアクセス=8bitアクセス+次のアドレスの8bitアクセスの256倍になるI/Oポートも存在するが、それはデバイス側が工夫しているからにすぎない。0x01f7)このレジスタをリードすると、ATAデバイスからの割込み要求はクリアされる。Statusレジスタを使う。bit7のBSYが1のとき、bit0-6の内容は意味をなさない。0x03f6)基本的にStatusレジスタと同じ。このレジスタを読んでもデバイスからのINT要求をクリアしないことだけが違う。1のとき、両方のデバイスについてソフトウェアリセット信号を送るソフトウェアリセットを実行する際には、このビットを1にして、その後25マイクロ秒以上これを維持して、そしてこのビットを0に戻すらしい。リセット後(パワーオン後も含む)の20ミリ秒は、デバイスのどのレジスタにもアクセスしてはいけない。(たいていは0で問題ないが、1にしないと動かないデバイスもある。†(NOPとSLEEPもこれに分類しているが、少し違うところがあるらしい。どこが違うのかがまだはっきとは分かっていない。)デバイスセレクションプロトコルを実行。Device/HeadレジスタのDEVにデバイス番号をセットして、400ns以上待つ。レジスタにパラメータをセット。書く順序は決まっていないが、Commandレジスタにコマンド番号を書くのは最後にしなければいけないので、まだ書かない。Commandレジスタにコマンド番号を書き、400ns以上待つ。割り込みを利用する場合は、400nsのwaitは必要なく、割り込み発生を待てばいい。Statusレジスタではだめ)。†デバイスセレクションプロトコルを実行。No-Dataのところの説明を参照。レジスタにパラメータをセット。書く順序は決まっていないが、Commandレジスタにコマンド番号を書くのは最後にしなければいけないので、まだ書かない。Commandレジスタにコマンド番号を書く。ラベル1:割り込みを利用する場合は、割り込み発生を待てばいい。割り込みが発生したらラベル2へ(以下はポーリングの場合)。