自作カーネルでHDDへの書き込みもできました.

2010/02/18時点では,単に指定した位置を読み書きしてるだけで,実用性のあるコードにはなってないです><
ソースはgithubに.

処理内容は読み込みとほぼ一緒で,論理セクタの設定方法は,あたりまえだけど,読み込み時とまったく一緒です.
読み込み時はコマンドレジスタに0x20を書いて,読み込みを実施しますが,書き込み時は0x30を書きます.
後は,16bitずつデータを読むところを16bitずつデータを書き込んであげればOKです.

仮想HDD上のテキストファイルのデータを

0001bc00  41 42 43 44 45 0a 00 00  00 00 00 00 00 00 00 00  |ABCDE...........|
0001bc10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

こんな感じに書き換えることに成功しました.

0001bc00  61 62 63 64 65 a0 00 00  00 00 00 00 00 00 00 00  |abcde...........|
0001bc10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|