雑記帳
ここはhideyosiの雑記帳です。テケトーに書き散らしてるだけなので間違っていたりとは普通にしてます。信用度は相当低いことをあらかじめご了承を。またご覧のようにWikiを使ってますが、hideyosi意外は書き込めません。
1: 2007-01-25 (木) 12:56:37 ソース バックアップ No.1 を復元して編集 2: 2007-01-26 (金) 01:17:53 ソース バックアップ No.2 を復元して編集
Line 1: Line 1:
FDDを動かすためのタスクを妄想してみる。 FDDを動かすためのタスクを妄想してみる。
-**まずは初期化! [#x5aa0872]+*まずは初期化! [#x5aa0872]
FDD用のDMAバッファやらBIOSからの情報やらを設定しないといけないよね? FDD用のDMAバッファやらBIOSからの情報やらを設定しないといけないよね?
 +
 +**FDD情報の取得 [#z00f0138]
 +・・・スマソ。今回はパス。
 +~どうせまだFDD起動だし
 +
 +
 +**DMAバッファ [#l85d5d70]
 +初期化せんと使えん。なので、
 +
 +初期化コードだけど、32bit化して各部のメモリコピーが済み、セグメントレジスタの設定が安定したらってことでどうだろうか?
 +
 +とりあえず、bootpack.cのマウス許可の後当たりに置いてみた。
 +
 +
 + io_out8(PIC0_IMR, 0xb8); /* PITとPIC1とキーボードを許可とFDCの許可(10111000) */
 + io_out8(PIC1_IMR, 0xef); /* マウスを許可(11101111) */
 + fifo32_init(&keycmd, 32, keycmd_buf, 0);
 +
 + //DMAの初期化
 + io_out8(0x00d6, 0xc0); /* マスタのch0をカスケードモードに */
 + io_out8(0x00c0, 0x00); /* スレーブのDMAを許可 */
 + io_out8(0x000a, 0x06); /* マスタのch2のDMAをマスク */
 +
 + memtotal = memtest(0x00400000, 0xbfffffff);
 +
 +うむ・・・たぶん大丈夫だと思う。
 +
 +**FDアクセス用のタスク [#f99d1fca]
 +これ専用のタスクを設置してみよう。
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +これ、どうしようかなぁ。
 +***場所と大きさ [#x4acc009]
 +たぶん、FDDの場合、シーク(シリンダの移動)に時間がかなりかかるらしい。逆に言えば、もしシリンダ移動なしで読み込めるような配置だったら一気に読んじゃったほうが高速だよね?(シークが必要ならさせる。で、その間にメモリ転送とかできるし)
 +
 +なので、オイラはとりあえず、1シリンダx2(裏表)で、18x2x512B=18KB を確保しておくことにしようと思います。
 +
 +場所はとりあえず、メモリマップから 0x00008400〜0x0000E3FFまでを確保することにしよう。
 +
 +
 +
 +
 +
 +
 +