インターネットデパート - 取扱い商品数1000万点以上の通販サイト。送料無料商品も多数あります。

0から作るOS開発 Vol.7 カーネル編 フロッピーディスクドライバー

価格: ¥0
カテゴリ: Kindle版
ブランド: yabusame2001
Amazon.co.jpで確認
C言語で0から作るOSを開発について説明していきます。このシリーズではカーネルの開発について説明しています。
今回は基本的なディスクであるフロッピーディスクからファイルのデータを読み込むドライバーについて説明していきます。

[目次]
前回までの内容
フロッピーディスクの歴史
  8インチフロッピーディスク
    読み書き可能なフロッピーディスク
  5.25インチフロッピーディスク
  3.5インチフロッピーディスク
フロッピーディスクの構造
  フロッピードライブ
  3.5インチフロッピーディスクの構造
  フロッピーディスクの物理フォーマット
  シリンダー(トラック)/ヘッド/セクター(CHS:Cylinder/Head/Sector)
    シリンダー(トラック)
    ヘッド
    セクター
  LBA(Linear Block Addressing)
フロッピーディスクコントローラー
  8272Aフロッピーディスクコントローラー
フロッピーディスクドライブの接続
フロッピーディスクコントローラーのポートアドレス
  フロッピーディスクコントローラーのポートアドレス定義
フロッピーディスクコントローラーのレジスター
  ステータスレジスターA(SRA:Status Register A)(PS/2モードのみ)
  ステータスレジスターB(SRA:Status Register B)(PS/2モードのみ)
  データレートセレクトレジスター(DSR:Data Rate Select Register)
  デジタルアウトプットレジスター(DOR:Digital Output Register)
  デジタルアウトプットレジスターDORの実装
  メインステータスレジスター(MSR:Main Status Register)
  メインステータスレジスターMSRの実装
  テープドライブレジスターTDR
  データレジスター
    データレジスターの実装
  デジタルインプットレジスターDIR
  制御設定レジスター(CCR:Configuration Control Register)
フロッピーディスクの制御コマンド概要
  フロッピーディスクコントローラの制御コマンド一覧
  フロッピーディスクコントローラーの制御コマンドを定義する
フロッピーディスクコントローラーの制御コマンドの拡張ビット
  拡張ビットを定義する
  ギャップ3サイズ(GPL:Gap3 Length)
    ギャップ3サイズを定義する
  セクターサイズ
    セクターサイズを定義する
フロッピーディスクコントローラーの制御コマンドの書き込み
制御コマンドのステータス読み込み
  ステータスレジスターST0
  ステータスレジスターST1
  ステータスレジスターST2
  ステータスレジスターST3
フロッピーディスクコントローラーの制御コマンド詳細
READ TRACK(0x02)
  READ TRACKコマンド
  READ TRACKコマンドステータス
SPECIFY(0x03)
  SPECIFYコマンド
    ステップレートSRT(Step Rate)
    ヘッドアンロードタイムHUT(Head Unload Time)
    ヘッドロードタイムHUT(Head Load Time)
    NDMビット(Non-DMAビット)
  SPECIFYコマンドステータス
  SPECIFYコマンドの実装
SENSE DRIVE STATUS(0x04)
  SENSE DRIVE STATUSコマンド
  SENSE DRIVE STATUSコマンドステータス
WRITE DATA(0x05)
  WRITE DATAコマンド
  WRITE DATAコマンドステータス
READ DATA(0x06)
  READ DATAコマンド
  READ DATAコマンドステータス
  READ DATAコマンドの実装
RECALIBRATE(0x07)
  RECALIBRATEコマンド
  RECALIBRATEコマンドステータス
  RECALIBRATEコマンドの実装
SENSE INTERRUPT STATUS(0x08)
  SENSE INTERRUPT STATUSコマンド
  SENSE INTERRUPT STATUSコマンドステータス
  SENSE INTERRUPT STATUSコマンドの実装
WRITE DELETED DATA(0x09)
  WRITE DELETED DATAコマンド
  WRITE DELETED DATAコマンドステータス
READ ID(0x0A)
  READ IDコマンド
  READ IDコマンドステータス
READ DELETED DATA(0x0C)
  SKビットとREAD DELETED DATAコマンドのステータスとの関係
  READ DELETED DATAコマンド
  READ DELETED DATAコマンドステータス
FORMAT TRACK(0x0D)
  参考 フォーマット時の標準値
  FORMAT TRACKコマンド
  FORMAT TRACKコマンドステータス
DUMPREG(0x0E)
  DUMPREGコマンド
  DUMPREGコマンドステータス
SEEK(0x0F)
  SEEKコマンド
  SEEKコマンドステータス
  SEEKコマンドの実装
VERSION(0x10)
  VERSIONコマンド
  VERSIONコマンドステータス
SCAN EQUAL(0x11)
  SCAN EQUALコマンド
    STP
  SCAN EQUALコマンドステータス
PERPENDICULAR MODE(0x12)
  PERPENDICULAR MODEコマンド
    OWビット
  PERPENDICULAR MODEコマンドステータス
CONFIGURE(0x13)
  CONFIGUREコマンド
  CONFIGUREコマンドのパラメーターの各ビットについて
  CONFIGUREコマンドステータス
LOCK(0x14)
  LOCKコマンド
  LOCKコマンドステータス
VERIFY(0x16)
  VERIFYコマンド
    ECビット
  VERIFYコマンドステータス
SCAN LOW OR EQUAL(0x19)
  SCAN LOW OR EQUALコマンド
  SCAN LOW OR EQUALコマンドステータス
SCAN HIGH OR EQUAL(0x1D)
  SCAN HIGH OR EQUALコマンド
  SCAN HIGH OR EQUALコマンドステータス
RELATIVE SEEK(0x8F)
  RELATIVE SEEKコマンド
    DIRビット
  RELATIVE SEEKコマンドステータス
フロッピードライブの制御まとめ
  フロッピードライブの初期化
    コントローラーのリセット
    コントローラーの有効化
    コントローラーの初期化
    初期化フロー
    初期化実装
  ディスクの読み込み/書き込み
    読み込み/書き込みフロー
    LBAとCHS
    LBAを使用したセクター読み込み
  ディスクのフォーマット
  フロッピードライブの割り込みハンドラー
    PICの設定
    フロッピードライブのIDTを設定する