清除键盘缓冲区原理
对单字节码,第一字节放ASCII码,第二字节 放扫描码;对扩展码,第一字节存放ASCII 0, 第二字节通常放扩展码的扫描码。但并不是绝对的因为功能键与换挡键组合后可产生一个扩展码。
键盘缓冲区设计成一个环行队列,称为先进先出的(FIFO)算法缓冲区。实际是两个指针跟踪计数器记录着当前在缓冲器中代码串的“头”和“尾”。
键盘缓冲区设在BIOS数据区,BIOS数据区的开始地址:0040:2000。
32字节缓冲区:0040:001E开始
头指针:0040:001A
尾指针:0040:001C
中断21h功能6的子功能FFh返回键入码,如果不存在有效代码将不等待。没有键入 码时,设0标志。不断调用中断直到没有键入码返回为止。
P223例8-1 清理键盘缓冲区
KEY-FOUND:
MOV AH , 6h
MOV DL , 0FFh
INT 21h
JNZ KEY-FOUND
DIY机械键盘相关社区:机械键盘DIY
评论