為了實現入機交互還須在微機或終端上配置相應的鍵盤終端處理程序它負責接收用戶從終端上輸入的字符並將其回送至屏幕顯示用戶可以根據需要修改刪除已輸入的信息下面對鍵盤終端處理程序的各項功能逐一介紹
字符接受功能
為了實現入機交互鍵盤終端處理程序必須能夠接收用戶從終端輸入的字符並將其傳送給用戶程序字符接收功能主要通過以下兩種方式實現
()面向字符方式驅動程序只接收從終端輸入的字符並且不加修改地將它傳送給用戶程序它通常是一串未加工的ASCII碼
()而向行方式終端處理程序將所接收的字符暫存於緩沖區中並可對行內字符進行編輯當收到行結束符後才將一行正確的信息交給命令解釋程序在有的計算機中從鍵盤硬件送出的是鍵的編碼(簡稱鍵碼)而不是ASCII碼例如當輸入a時是將鍵碼“”放入I/O寄存器中此時終端處理程序必須參照某種映射規則將鍵碼轉換成ASCII碼
字符緩沖功能
為了能暫存從終端輸入的字符以降低中斷處理器的頻率在終端處理程序中還必須具有字符緩沖功能字符緩沖可采用以下兩種方式
()專用緩沖方式這是指系統為每個終端設置一個緩沖區暫存用戶輸入的一批字符緩沖區的典型長度為個字符左右這種方式較適合於中用戶微機或終端很少的多用戶機當終端數目較多時需要的緩沖數目可能很大而且每個緩沖的利用率也很低例如當有個終端時要求有KB的緩沖區圖所示為專用緩沖方式
()公用緩沖方式系統不必為每個終端設置專用緩沖區只須設置一個由多個緩沖區構成的公用緩沖池其中的每個緩沖區大小相同如為個字符再將所有的空緩沖區鏈接成一個空緩沖區鏈當終端有數據輸入時可先向空緩沖區鏈中請一個空緩沖區來接收輸入字符;當該緩沖區裝滿後再申谙一空緩沖區這樣直至全部輸入完畢並利用鏈接指針將這些裝奮輸入數據的緩沖區鏈接成一條輸入鏈每當該輸入鏈中一個緩沖區內的字符被全部傳送給用戶程序後便將該緩沖區從輸入鏈中移出再重新鏈入空緩沖區鏈中顯然利用公用緩沖池方式可有效地提高緩沖的利用率圖所示為公用緩沖池方式
回送顯示
回送顯示(回顯)是指每當用戶從鍵盤輸入一個字符後終端處理程序便將該字符送往屏幕顯示回顯可以通過硬件實現優點是速度較快但往往會引起麻煩如當用戶輸入口令時為防止口令被盜用顯然不該有回顯此外用硬件實現回顯也缺乏靈活性因而近年來多改用軟件來實現回顯這樣可以做到在用戶需要時才回顯用軟件實現回顯還可方便地進行字符變換如將鍵盤輸入的小寫英文字母變成大寫驅動程序在將輸入的字符送往屏幕回顯時應打印在正確的位置上;當光標走到一行的最後一個位置後便應返回到下一行的開始位置例如當所輸入的字符數目超過一行的個(字符)時應自動地將下一個字符打印到下一行的開始位置
屏幕編輯
用戶有時需要對從鍵盤輸入的數據(字符)進行修改如刪除(插入)一個或多個字符為此終端處理程序還應具有屏幕編輯功能包括能提供若干個編輯鍵常用的編輯鍵有如下幾個
()刪除字符鍵它允許將用戶剛輸入的字符刪除在有的系統中是利用退格鍵(Backspace)當用戶敲擊該鍵時處理程序並不將剛輸入的字符送入字符隊列而是從字符隊列中移出其前面的一個字符
()刪除一行鍵該鍵用於將剛輸入的一行刪去
()插入鍵(Insert)利用該鍵在光標處可插入一個字符或一行正文
()移動光標鍵在鍵盤上有用於對光標進行上下左右移動的鍵
()屏幕上卷(PageUp)或下移(PageDown)鍵
特殊字符處理
終端處理程序必須能對一些特殊字符進行及時處理這些字符如下
()中斷字符當程序在運行中出現異常情況時用戶可通過輸入中斷字符的辦法來中止當前程序的運行在許多系統中是利用Break鍵Delete鍵或Ctrl+C鍵作為中斷字符的對中斷字符的處理比較復雜當終端處理程序收到用戶輸入的中斷字符後將向該終端上的所有進程發送一個要求進程終止的軟中斷信號這些進程收到該軟中斷信號後便進行自我終止
()停止上卷字符用戶輸入此字符後終端處理程序應使正在上卷的屏幕暫停上卷以便用戶仔細觀察屏幕內容在有的系統中是利用Ctrl+S組合鍵停止屏幕上卷的
()恢復上卷字符有的系統利用Ctrl+Q組合鍵使停止上卷的屏幕恢復上卷終端處理程序收到該字符後便恢復屏慕的上卷功能
From:http://tw.wingwit.com/Article/Common/201311/6018.html