清除鍵盤緩沖區(qū)原理
對單字節(jié)碼,第一字節(jié)放ASCII碼,第二字節(jié) 放掃描碼;對擴(kuò)展碼,第一字節(jié)存放ASCII 0, 第二字節(jié)通常放擴(kuò)展碼的掃描碼。但并不是絕對的因?yàn)楣δ苕I與換擋鍵組合后可產(chǎn)生一個擴(kuò)展碼。
鍵盤緩沖區(qū)設(shè)計(jì)成一個環(huán)行隊(duì)列,稱為先進(jìn)先出的(FIFO)算法緩沖區(qū)。實(shí)際是兩個指針跟蹤計(jì)數(shù)器記錄著當(dāng)前在緩沖器中代碼串的“頭”和“尾”。
鍵盤緩沖區(qū)設(shè)在BIOS數(shù)據(jù)區(qū),BIOS數(shù)據(jù)區(qū)的開始地址:0040:2000。
32字節(jié)緩沖區(qū):0040:001E開始
頭指針:0040:001A
尾指針:0040:001C
中斷21h功能6的子功能FFh返回鍵入碼,如果不存在有效代碼將不等待。沒有鍵入 碼時,設(shè)0標(biāo)志。不斷調(diào)用中斷直到?jīng)]有鍵入碼返回為止。
P223例8-1 清理鍵盤緩沖區(qū)
KEY-FOUND:
MOV AH , 6h
MOV DL , 0FFh
INT 21h
JNZ KEY-FOUND
DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
評論