NEC PC 程序员参考/PC-98xx 系列程序员参考/中断 0x18 - 键盘
外观
当按键被按下时,键盘 BIOS 会发出中断 0x9。可以通过调用 INT 0x18 来处理键盘数据。
BIOS 保持一个数据数组(“键盘状态表”),每个按键对应一个位。当按键按下时,位为 1;当松开时,位为 0。当按键被按下时,输入状态数组中按键的索引与 SHIFT 状态的代码相结合,生成按键扫描码(这是程序识别按键的方式)。
PC-98 键盘 BIOS 兼容 IBM。
AH | 命令 | 目的 | 使用 |
---|---|---|---|
0x1 | 检测第一个按键 | 查询键盘是否有按键按下。返回缓冲区末尾的按键。 | 返回
|
0x2 | 检查修饰键 | 返回修饰键(SHIFT,CTRL,GRPH,CAPSLOCK,KANA)的状态 | 在 AL 中返回修饰键状态字节
|
0x3 | 初始化键盘 | 安装内置键盘驱动程序接口。为 BIOS 使用键盘分配内存;重置 uPD8251A。 | |
0x4 | 获取按键组状态 | 查询键盘状态表以获取一组按键的即时状态。返回请求的按键组的字节,然后可以与逻辑 AND 掩码以查找单个按键的状态。 |
返回
|
0x5 | 检测最后一个按键 | 查询键盘是否有按键按下。返回缓冲区开头的按键。 | 返回
|
0x6 | 初始化键盘缓冲区/清除待处理按键 | 设置键盘缓冲区。调用此函数将清除缓冲区。 | |
0x7 | 处理第一个按键 | 获取第一个未处理的按键,并将其从缓冲区中删除。 |
返回
|
0x8 | 处理最后一个按键 | 获取最后一个按键,并将其从缓冲区中删除。 |
返回
|
0x9 | 模拟按键按下 | 通过用指定数据填充键盘缓冲区来创建模拟按键按下。 |
返回
|