2012-12-20 18 views
1

我熟悉INT 16h,它等待鍵盤輸入,但我正在開發一款遊戲,並且我希望有一個遊戲循環,在屏幕上呈現動畫,並且每當有是一個鍵盤命中,8086應該去我的中斷處理程序,並告訴我哪個鍵已被按下來相應地更新我的數據。8086在繪圖時聽鍵盤

我該怎麼做?

+0

相關? http://stackoverflow.com/questions/10480576/custom-keyboard-interrupt-handler –

回答

4

您還可以在AH而不是0,輪詢輸入與1調用INT 16

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). 

(Source.)

2

在MS-DOS,你可以編寫自己的自定義鍵盤中斷處理程序時,和在自定義鍵盤中斷處理程序代碼就可以了,例如:

  1. 設置一個標誌,與日通知主循環/畫環,一個鍵被按下,一起e密鑰的掃描碼,或...

  2. 根據密鑰的掃描碼修改自定義中斷處理程序中的主循環/循環的代碼。

有關編寫自定義[鍵盤]更多信息中斷處理程序,例如參見: