我需要制作一个动画,当用户按下按键时会加速,并在按键释放时恢复正常速度。我不能“等待”用户像大多数DOS和BIOS中断那样输入密钥,因为它会停止动画。
我尝试使用选项01H INT 16H,它可以在不暂停程序的情况下工作,但它也不会清除键盘缓冲区;因此,即使密钥被释放,动画也会保持加速,因为密钥保留在缓冲区中。
我想如果我可以手动访问键盘缓冲区的内存位置,我可以自己检索并删除它。但遗憾的是我不知道该怎么做。任何帮助将不胜感激。
答案 0 :(得分:1)
使用端口060h,获取按键&在那里发布状态
答案 1 :(得分:-1)
这有多个问题。您无法扫描端口0x60,主要是因为鼠标使用相同的端口进行共享。首先,您需要扫描端口0x64,确定它是键盘还是鼠标。这甚至不能设置PS / 2接口并初始化每个不同的键盘驱动程序(可能不是必需的,但它会使过程更顺畅)
如果你不看OSDev's Instructions
,请选择bios