2013-11-04 63 views
0

我正在使用XV6 MIT的開源操作系統。Ascii或掃描碼或某種鍵盤輸入Backspace = 0x100

試圖找出什麼地球可以BACKSPACE = 0x100? 我想添加像右箭頭和左箭頭的功能來控制控制檯,我找不到合適的數字來捕捉它們。 例如:

#define BACKSPACE 0x100 // given code 
#define RIGHTARROW 0x99 //my addon 0x99 is not the right hex just an example 
if(c == RIGHTARROW){ 
    .... 
    } 

所以我的Q是什麼表是退格= 0x100的?它不是ASCII ......在掃描碼上找不到它。 在Ubuntu上嘗試了showkeys命令,沒有運氣。

的人多一點經驗或偶然做操作系統:)

感謝很多的MIT課程!

+0

您是否嘗試捕獲您感興趣的密鑰並輸出您獲得的代碼? – paddy

+0

是的,我試過類似的東西,但我所能得到的是退格得到一個字符,它的int是256 ...不能匹配任何更多的鍵,因爲我似乎無法擊中正確的,如果我打印每一次點擊XV6只是不會運行(關於使用該功能的啓動順序,我正在改變) – dbkoren

+0

好吧設法得到這與228和229整數工作,仍然不知道什麼表原來使用,但直到我知道不適用這個整數和將c轉換爲int,如下所示:(int)c = 228 – dbkoren

回答

1

這是一個自定義字符表。 0x100是control + H,使用'H'的定義和控制序列:在console_intr()中檢出console.c。表格定義可在kbd.h中找到。正如你發現LEFT是0xE4(和正確的0xE5)。

+0

是的,這就是我一直在尋找。謝謝。 – dbkoren

相關問題