マウスホイール検知 - OS自作情報

マウスのホイールを有効にするには、マウスの初期化前に次のコマンドを送ります。どうやらホイールもマウスができて一時してから実装されたため、OS混乱しないように無効化されてるようです。 (第四、第五ボタンも有効にしています。) (PS/2マウスの場合)

キーボード制御回路の設定

  1. キーボード制御回路から8bit読み出して下位2bitが00になるまで待つ(以後「キーボード制御回路待ち」)
  2. キーボード制御回路に書き込みコマンド : 0x60 を書き込む。
  3. キーボード制御回路待ち
  4. キーボードデータ出力に0x47を書き込む。

ここらへんははりぼてOSと同じです。

マウス制御回路の設定

  1. マウス制御回路に0xF3を送る。
  2. マウス制御回路(キーボード制御回路)からの割り込みを待つ。
  3. キーボード制御コマンド出力から8bit読み出し、0xFAか調べる。0xFFが来たときはコマンドを再送信
  4. キーボード制御回路にマウス制御回路転送コマンドを送る
  5. キーボード制御回路待ち
  6. キーボードデータ出力に0xF3を送る
  7. マウス制御回路の作業完了確認をする
  8. キーボード制御回路にマウス制御回路転送コマンドを送る
  9. キーボード制御回路待ち
  10. キーボードデータ出力に0xC8を送る
  11. マウス制御回路の作業完了確認をする
  12. キーボード制御回路にマウス制御回路転送コマンドを送る
  13. キーボード制御回路待ち
  14. キーボードデータ出力に0xF3を送る
  15. マウス制御回路の作業完了確認をする
  16. キーボード制御回路にマウス制御回路転送コマンドを送る
  17. キーボード制御回路待ち
  18. キーボードデータ出力に0xC8を送る(第四、第五ボタンを有効にしたくないときは,0x64)
  19. マウス制御回路の作業完了確認をする
  20. キーボード制御回路にマウス制御回路転送コマンドを送る
  21. キーボード制御回路待ち
  22. キーボードデータ出力に0xF3を送る
  23. マウス制御回路の作業完了確認をする
  24. キーボード制御回路にマウス制御回路転送コマンドを送る
  25. キーボード制御回路待ち
  26. キーボードデータ出力に0x50を送る
  27. マウス制御回路の作業完了確認をする
  28. キーボード制御回路にマウス制御回路転送コマンドを送る
  29. キーボード制御回路待ち
  30. キーボードデータ出力に0x50を送る
  31. マウス制御回路の作業完了確認をする

これでおそらく有効化できてると思います。間に転送コマンドを送ってますが、直接マウス制御回路に届くデータは以下のようになってます。

  1. 0xF3
  2. 0xC8
  3. 0xF3
  4. 0xC8(0x64)
  5. 0xF3
  6. 0x50
  7. 0xF4

Info

Soft.Taprix.org
Taprix.org