清除鍵盤緩沖區原理
對單字節碼,第一字節放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
評論