線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3711
推到 Plurk!
推到 Facebook!

PS/2 Keyboard 送出數值規則

答題得分者是:暗黑破壞神
ghoustchieh
一般會員


發表:16
回覆:12
積分:5
註冊:2007-11-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-05-28 09:25:58 IP:60.250.xxx.xxx 訂閱
目前使用PS/2 Keyboard 送出按鍵資料至晶片,如"A"會送出1c,f0,1c三個Bytes,每個按鍵各自有不同的值,現在晶片已可以正常接收Keyboard送出的資料,但必須在晶片那,寫一段程式碼,收到什麼值為"A",為B,連續按下"A",放開"A"鍵了,請問我程式碼該如何寫呢?我想要找出每個鍵的關係性,有公式可算出1C為"A",32為"B"等等之類的方法嗎?我不想把每個值都建成一個表,請大家提供意見及看法,謝謝...
------
Shih Chieh
avr
初階會員


發表:7
回覆:21
積分:45
註冊:2007-04-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-28 15:42:05 IP:59.104.xxx.xxx 訂閱
AT KEYBOARD 的鍵盤碼毫無邏輯可言,應該無法用公式算出!
用建表查表,來判斷按鍵的方法可以考慮
ghoustchieh
一般會員


發表:16
回覆:12
積分:5
註冊:2007-11-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-05-28 16:42:58 IP:60.250.xxx.xxx 訂閱

===================引 用 avr 文 章===================
AT KEYBOARD 的鍵盤碼毫無邏輯可言,應該無法用公式算出!
用建表查表,來判斷按鍵的方法可以考慮


請問avr
我有查到電腦OS的動作,先讀到scancode,轉為keycode,再由keycode去查表,請問你說的是這種方式嗎?謝謝..
------
Shih Chieh
avr
初階會員


發表:7
回覆:21
積分:45
註冊:2007-04-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-05-28 20:43:37 IP:59.104.xxx.xxx 訂閱
這裡有 AT KEYBOARD SCAN CODE
http://www.computer-engineering.org/ps2keyboard/scancodes3.html

你說的keycode是指ASCII碼?

scancode,轉為ASCII碼,程式的寫法我想也是利用建一個AT KEYBOARD SCAN CODE表
一個ASCII碼表,下去轉換和執行往下的動作,.程式會比較有彈性!
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-05-28 21:18:37 IP:122.118.xxx.xxx 未訂閱
不對吧.在 BIOS 呼叫時.就有 scancode ascii code 兩種同時傳回了.
不是到OS層才處理這個的.
===================引 用 ghoustchieh 文 章===================

===================引 用 avr 文 章===================
AT KEYBOARD 的鍵盤碼毫無邏輯可言,應該無法用公式算出!
用建表查表,來判斷按鍵的方法可以考慮


請問avr
我有查到電腦OS的動作,先讀到scancode,轉為keycode,再由keycode去查表,請問你說的是這種方式嗎?謝謝..
ghoustchieh
一般會員


發表:16
回覆:12
積分:5
註冊:2007-11-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-05-29 09:33:14 IP:60.250.xxx.xxx 訂閱
我指的keycode不是ASCII,我查有個kbd_translate()在做scncode轉keycode,再由kbd_processkeycode()做keycode和keymap的處理,感覺像是這樣的轉換.

===================引 用 avr 文 章===================
這裡有 AT KEYBOARD SCAN CODE
http://www.computer-engineering.org/ps2keyboard/scancodes3.html

你說的keycode是指ASCII碼?

scancode,轉為ASCII碼,程式的寫法我想也是利用建一個AT KEYBOARD SCAN CODE表
一個ASCII碼表,下去轉換和執行往下的動作,.程式會比較有彈性!
------
Shih Chieh
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-05-29 10:04:06 IP:60.249.xxx.xxx 未訂閱
http://www.emu8086.com/assembly_language_tutorial_assembler_reference/8086_bios_and_dos_interrupts.html#int16h_00h

不用你處理 scan code 的問題吧。
===================引 用 ghoustchieh 文 章===================
我指的keycode不是ASCII,我查有個kbd_translate()在做scncode轉keycode,再由kbd_processkeycode()做keycode和keymap的處理,感覺像是這樣的轉換.

===================引 用 avr 文 章===================
這裡有 AT KEYBOARD SCAN CODE
http://www.computer-engineering.org/ps2keyboard/scancodes3.html

你說的keycode是指ASCII碼?

scancode,轉為ASCII碼,程式的寫法我想也是利用建一個AT KEYBOARD SCAN CODE表
一個ASCII碼表,下去轉換和執行往下的動作,.程式會比較有彈性!
ghoustchieh
一般會員


發表:16
回覆:12
積分:5
註冊:2007-11-30

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-05-30 09:22:19 IP:60.250.xxx.xxx 訂閱
您好,您是指在鍵盤中斷會處理嗎?目前想先了解OS是如何處理鍵盤ScanCode,小弟需要將晶片收到的鍵盤ScanCode轉為ASCII,但不曉得該用什麼方法較好,建表式的,Code較大,希望能找到更簡便的方法,如規則公式方式之類的,謝謝您..

===================引 用 暗黑破壞神 文 章===================
http://www.emu8086.com/assembly_language_tutorial_assembler_reference/8086_bios_and_dos_interrupts.html#int16h_00h

不用你處理 scan code 的問題吧。
===================引 用 ghoustchieh 文 章===================
我指的keycode不是ASCII,我查有個kbd_translate()在做scncode轉keycode,再由kbd_processkeycode()做keycode和keymap的處理,感覺像是這樣的轉換.

===================引 用 avr 文 章===================
這裡有 AT KEYBOARD SCAN CODE
http://www.computer-engineering.org/ps2keyboard/scancodes3.html

你說的keycode是指ASCII碼?

scancode,轉為ASCII碼,程式的寫法我想也是利用建一個AT KEYBOARD SCAN CODE表
一個ASCII碼表,下去轉換和執行往下的動作,.程式會比較有彈性!
------
Shih Chieh
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-05-30 10:05:50 IP:60.249.xxx.xxx 未訂閱
你去了解什麼叫 scan code 你就會知道。它跟 ascii 是無規則對應的。
你只能用查表法來處理。
因為 scan code 是以鍵盤的位置來做的。
建表吧。
===================引 用 ghoustchieh 文 章===================
您好,您是指在鍵盤中斷會處理嗎?目前想先了解OS是如何處理鍵盤ScanCode,小弟需要將晶片收到的鍵盤ScanCode轉為ASCII,但不曉得該用什麼方法較好,建表式的,Code較大,希望能找到更簡便的方法,如規則公式方式之類的,謝謝您..

===================引 用 暗黑破壞神 文 章===================
http://www.emu8086.com/assembly_language_tutorial_assembler_reference/8086_bios_and_dos_interrupts.html#int16h_00h

不用你處理 scan code 的問題吧。
===================引 用 ghoustchieh 文 章===================
我指的keycode不是ASCII,我查有個kbd_translate()在做scncode轉keycode,再由kbd_processkeycode()做keycode和keymap的處理,感覺像是這樣的轉換.

===================引 用 avr 文 章===================
這裡有 AT KEYBOARD SCAN CODE
http://www.computer-engineering.org/ps2keyboard/scancodes3.html

你說的keycode是指ASCII碼?

scancode,轉為ASCII碼,程式的寫法我想也是利用建一個AT KEYBOARD SCAN CODE表
一個ASCII碼表,下去轉換和執行往下的動作,.程式會比較有彈性!
ghoustchieh
一般會員


發表:16
回覆:12
積分:5
註冊:2007-11-30

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-05-30 10:33:01 IP:60.250.xxx.xxx 訂閱
您好!我查到ScanCode正是以鍵盤位置定義出的Code,請問您,鍵盤中斷讀到的ScanCode也是以查表方式轉為ASCII嗎?如果沒法精簡一點,那也只能建表了,感謝您...

===================引 用 暗黑破壞神 文 章===================
你去了解什麼叫 scan code 你就會知道。它跟 ascii 是無規則對應的。
你只能用查表法來處理。
因為 scan code 是以鍵盤的位置來做的。
建表吧。
===================引 用 ghoustchieh 文 章===================
您好,您是指在鍵盤中斷會處理嗎?目前想先了解OS是如何處理鍵盤ScanCode,小弟需要將晶片收到的鍵盤ScanCode轉為ASCII,但不曉得該用什麼方法較好,建表式的,Code較大,希望能找到更簡便的方法,如規則公式方式之類的,謝謝您..

===================引 用 暗黑破壞神 文 章===================
http://www.emu8086.com/assembly_language_tutorial_assembler_reference/8086_bios_and_dos_interrupts.html#int16h_00h

不用你處理 scan code 的問題吧。
===================引 用 ghoustchieh 文 章===================
我指的keycode不是ASCII,我查有個kbd_translate()在做scncode轉keycode,再由kbd_processkeycode()做keycode和keymap的處理,感覺像是這樣的轉換.

===================引 用 avr 文 章===================
這裡有 AT KEYBOARD SCAN CODE
http://www.computer-engineering.org/ps2keyboard/scancodes3.html

你說的keycode是指ASCII碼?

scancode,轉為ASCII碼,程式的寫法我想也是利用建一個AT KEYBOARD SCAN CODE表
一個ASCII碼表,下去轉換和執行往下的動作,.程式會比較有彈性!
------
Shih Chieh
ghoustchieh
一般會員


發表:16
回覆:12
積分:5
註冊:2007-11-30

發送簡訊給我
#11 引用回覆 回覆 發表時間:2008-06-04 09:29:48 IP:60.250.xxx.xxx 訂閱
您好!目前已在建表工作中,但查詢到的scancode,目前有3中Set,但第一種Set,ScanCode和另兩種,完全都不一樣(如"A"Set1為1E,Set2為1C),請問是否為早期鍵盤與現在鍵盤的差異性呢?如果電腦要讀又該如何曉得,我現在按的A是新鍵盤?還是舊鍵盤...感謝..

===================引 用 暗黑破壞神 文 章===================
你去了解什麼叫 scan code 你就會知道。它跟 ascii 是無規則對應的。
你只能用查表法來處理。
因為 scan code 是以鍵盤的位置來做的。
建表吧。
===================引 用 ghoustchieh 文 章===================
您好,您是指在鍵盤中斷會處理嗎?目前想先了解OS是如何處理鍵盤ScanCode,小弟需要將晶片收到的鍵盤ScanCode轉為ASCII,但不曉得該用什麼方法較好,建表式的,Code較大,希望能找到更簡便的方法,如規則公式方式之類的,謝謝您..

===================引 用 暗黑破壞神 文 章===================
http://www.emu8086.com/assembly_language_tutorial_assembler_reference/8086_bios_and_dos_interrupts.html#int16h_00h

不用你處理 scan code 的問題吧。
===================引 用 ghoustchieh 文 章===================
我指的keycode不是ASCII,我查有個kbd_translate()在做scncode轉keycode,再由kbd_processkeycode()做keycode和keymap的處理,感覺像是這樣的轉換.

===================引 用 avr 文 章===================
這裡有 AT KEYBOARD SCAN CODE
http://www.computer-engineering.org/ps2keyboard/scancodes3.html

你說的keycode是指ASCII碼?

scancode,轉為ASCII碼,程式的寫法我想也是利用建一個AT KEYBOARD SCAN CODE表
一個ASCII碼表,下去轉換和執行往下的動作,.程式會比較有彈性!
------
Shih Chieh
系統時間:2024-05-12 13:36:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!