0

DOS用のプログラムを書いていますが、キーボード入力を取得したいと思います。問題は、BIOSまたはDOSを使用してその入力を取得したくないということです。DOSまたはBIOSを使用せずにキーボード入力を取得する適切な方法は何ですか?つまり、I/Oポートを使用してプログラミングの最低レベルでキーボード入力を取得する方法は何ですか。ありがとう!

4

1 に答える 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 に答える