8086在绘图时听键盘

时间:2012-12-20 10:42:46

标签: assembly x86 dos x86-16

我熟悉等待键盘输入的INT 16h,但我正在开发一款游戏,我希望有一个游戏循环,可以在屏幕上激活动画,每当有键盘命中时, 8086应该转到我的中断处理程序并告诉我已按下哪个键来相应地更新我的数据。

我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

当调用INT 16时,您也可以在AH中使用1而不是0来轮询输入。

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

答案 1 :(得分:2)

在MS-DOS中,您可以编写自己的自定义键盘中断处理程序,并在您的自定义键盘中断处理程序代码中,例如:

  1. 设置一个标志,通知主循环/绘制循环已按下某个键,以及该键的扫描码,或者......

  2. 根据密钥的扫描码修改自定义中断处理程序中主循环/绘制循环的代码。

  3. 有关编写自定义[键盘]中断处理程序的更多信息,请参阅例如: