私はキーボード入力を待機するINT16hに精通していますが、ゲームを開発しているので、画面上のものをアニメーション化するゲームループが必要です。キーボードがヒットするたびに、8086が実行されます。割り込みハンドラに送信し、それに応じてデータを更新するためにどのキーが押されたかを教えてください。
どうすればそうできますか?
INT 16を呼び出すときに、0ではなく1のAHで入力をポーリングすることもできます。
INT 16h / AH = 01h - check for keystroke in the keyboard buffer.
return:
ZF = 1 if keystroke is not available.
ZF = 0 if keystroke available.
AH = BIOS scan code.
AL = ASCII character.
(if a keystroke is present, it is not removed from the keyboard buffer).
MS-DOSでは、独自のカスタムキーボード割り込みハンドラーを記述できます。カスタムキーボード割り込みハンドラーコードでは、次のように記述できます。
キーが押されたことをメインループ/描画ループに通知するフラグを、キーのスキャンコードとともに設定します。または...
キーのスキャンコードに従って、カスタム割り込みハンドラーのメインループ/描画ループのコードを変更します。
カスタム[キーボード]割り込みハンドラの記述の詳細については、例を参照してください。