ザビタン開発日記
2009 | 01
2008 | 01 | 02 | 06 | 12
2007 | 10 | 11 | 12
10月 30 (火曜日) 2007
09:41
FDアクセス:実機はアカン?
 
整理する。

オイラが書いたコード


qemu: リザルトは0x00
実機A(ダイナブックGT475):0x80
実機B(自作機・Celelon700):0xc0
VMWareイメージFD:0x00
VMWare実FD:0x00


コマンド間違い


意図的にコマンドを間違える。S(セクタ)をありえない数値(99)にしてみる

qemu: 0x40
実機A(ダイナブックGT475):0x80
実機B(自作機・Celelon700):0xc0
VMWareイメージFD:回復不能なエラーで落ちた
VMWare実FD:回復不能なエラーで落ちた


コマンド中抜き


意図的にコマンドのひとつを抜く。じゃ、02の送信を抜く

qemu: 0x00
実機A(ダイナブックGT475):0x80
実機B(自作機・Celelon700):0xc0
VMWareイメージFD:0xc0
VMWare実FD:0xc0


コマンド中抜き2


意図的にコマンドを抜く。02、さらに12も抜いてみるく

qemu: 0x00
実機A(ダイナブックGT475):0x80
実機B(自作機・Celelon700):0xc0
VMWareイメージFD:0x00
VMWare実FD:0x00


DMAを開けない


DMAを開ける関数を無効化

qemu: 0xc0
実機A(ダイナブックGT475):0x80
実機B(自作機・Celelon700):0xc0
VMWareイメージFD:回復不能なエラーで落ちた
VMWare実FD:回復不能なエラーで落ちた


DMAを開け、コマンドを送信しない


DMAを開ける関数を無効化

qemu: 0x00
実機A(ダイナブックGT475):0x00
実機B(自作機・Celelon700):0x00
VMWareイメージFD:回復不能なエラーで落ちた
VMWare実FD:回復不能なエラーで落ちた


DMAも開けず、コマンドも送信しない


DMAを開ける関数を無効化し、リードコマンドも送信しない

qemu: 0x00
実機A(ダイナブックGT475):0x00
実機B(自作機・Celelon700):0x00
VMWareイメージFD:回復不能なエラーで落ちた
VMWare実FD:回復不能なエラーで落ちた

分析してみる・・・(ノД`)・・・

  • エミュはかなりアテにならない
  • リザルトは機種により違いが出てしまうようだ
  • DMAの開け閉めそのものはリザルトには影響しない
  • コマンドを送信しなければ0x00なので、リザルトがこれ以外になる(エラー系)のはやはりコマンドになにか問題があると予測される

新たな疑問。
この実験では実機の場合、なにも送信しなければ0x00である。
・・・っということは、0x08なり0x0cなりになるのはどの時点か?


実機A:[0x03f4待ち] [E6] [H<<2] [C] [H] [S] [02] [12] [01] [FF]
00 c0 80 ・・・・・・・・・・・・

実機A:[0x03f4待ち] [E6] [H<<2] [C] [H] [S] [02] [12] [01] [FF]
00 c0 ・・・・・・・

リビジョン52
 
30日を過ぎたBlogにはコメントできません。

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

PopnupBlog V3 Denali created by Bluemoon inc.