鍵盤(pán)應用程序設計
鍵盤(pán)使用的編碼系統不能只做簡(jiǎn)單的解釋。這些碼可能是一個(gè)字節或兩個(gè)字節,在碼中是字符碼還是硬件控制碼之間不存在簡(jiǎn)單的對應關(guān)系。甚至組合鍵入碼并不都生成惟一的碼,必須特別小心將它們區分。無(wú)論是ASCII碼還是擴展碼都不是以一種能優(yōu)化測試和錯檢的方式加以一致地編號的。因此,鍵盤(pán)輸入例程可能比較雜亂一些。
當程序同時(shí)接受鼠標和鍵盤(pán)控制時(shí),鍵盤(pán)輸入例程必須擴展成通用“事件循環(huán)”處理程序。程序不再只是等下一次擊鍵且做出響應。而是當確定有一個(gè)鍵入碼后才調用鍵盤(pán)輸入例程。,否則它一直監視鼠標位置及按鈕狀態(tài)。
通用鍵盤(pán)輸入例程
本例是使用一些標志判斷例程在某一時(shí)刻是否接受某類(lèi)輸入。這些標志使一個(gè)程序可按手頭任務(wù)的需要調用輸入例程。
中斷號16h 的功能0在緩沖區中無(wú)碼時(shí)等待鍵入,鼠標軟件不能以這種方式準止其運行,不須不斷地查詢(xún)鼠標驅動(dòng)程序,尋找鼠標坐標和按鈕狀態(tài)變化。
例8-13 中調用鍵盤(pán)輸入函數之前先調用中斷16h的功能1(101鍵選用功能11h),查明是否有鍵入碼,若沒(méi)有,跳過(guò)功能0的調用控制轉向鼠標輸入碼。在鍵盤(pán)緩沖區中有字符時(shí),功能1和功能11h清除處理器的0標志。
例8-13的流程
Ctrl + Break例程
在鍵盤(pán)中斷探測到〈Ctrl + Break〉組合時(shí),中斷設置一個(gè)標志,指示需要啟動(dòng)〈Ctrl + Break〉例程。一般情況下,只有標準DOS輸入輸出功能能探測到Ctrl + Break(除功能6和功能7中斷21h功能1至C)。
例8-14是使用匯編語(yǔ)言說(shuō)明一個(gè)Ctrl + Break例程。它使用中斷21h的功能4Ch終止一個(gè)程序。
DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY
評論