DOS用のプログラムを書いていますが、キーボード入力を取得したいと思います。問題は、BIOSまたはDOSを使用してその入力を取得したくないということです。DOSまたはBIOSを使用せずにキーボード入力を取得する適切な方法は何ですか?つまり、I/Oポートを使用してプログラミングの最低レベルでキーボード入力を取得する方法は何ですか。ありがとう!
質問する
2110 次
1 に答える
1
inb
キーボードからスキャンコードを読み取るには、ポート 0x60 で命令を実行する必要があります。
static inline uint8_t inportb(uint16_t port)
{
uint8_t ret;
asm volatile ("inb %1, %0" : "=a" (ret) : "dN" (port));
return ret;
}
scancode = inportb(0x60);
新しい入力がいつ発生したかを知りたい場合は、キーボードに応じて PS/2 割り込みをリッスンするか、USB ポーリングを使用するように割り込みハンドラーをセットアップする必要があります。
于 2012-10-22T19:29:45.590 に答える