当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

清除键盘缓冲区原理

时间:2009-06-12 | 栏目:接口/总线/驱动 | 点击:

清除键盘缓冲区原理


有时用户的按键响应可能导致数据丢失或破坏了数据而不能挽回。在这种情况下,消除缓冲区可以消除不恰当或意外的击键,这种击键或许在缓冲区中正等待处理,或许可能发出错误的响应。在其他情况下,清理缓冲区不是好办法,因为这样做会损害超前键入的特性。并不能再使用键盘宏指令。缓冲区可存放15个键入码,为每个键入码在存储器中提供两个字节。包括转换码、单字节的ASCII码和双字节的扩展码。
  对单字节码,第一字节放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

您可能感兴趣的文章:

相关文章