c - Ascii 或扫描码或某种键盘输入,其中 Backspace = 0x100

标签 c unix keyboard operating-system xv6

我正在使用 XV6 MIT 的开源操作系统。

试图弄清楚 BACKSPACE = 0x100 到底是怎么回事? 我想添加右箭头和左箭头等功能来控制控制台,但我找不到正确的数字来捕获它们。 例如:

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

所以我的问题是 BACKSPACE = 0x100 在哪个表上?它不是 ASCII...无法在扫描码上找到它。 在 Ubuntu 上尝试了 showkeys 命令,但没有成功。

任何有更多经验或碰巧上过麻省理工学院操作系统类(class)的人:)

非常感谢!

最佳答案

这是一个自定义字符表。 0x100 是 control + H,使用 'H' 的定义和控制序列:查看 console.c在 console_intr() 中。表定义可以在 kbd.h 中找到.如您所见,LEFT 是 0xE4(而 right 是 0xE5)。

关于c - Ascii 或扫描码或某种键盘输入,其中 Backspace = 0x100,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19777468/

相关文章:

c++ - SDL_GetKeyboardState 不返回按键的当前状态

c - Haskell FFI - 如何处理接受或返回结构而不是指向结构的指针的 C 函数?

unix - 使用 ssh 进行远程 dd 备份

c - 运行命令后 GDB 立即退出回到终端(即使设置了断点)

regex - 如何在 sed Replace 命令中传递可变行号

ios - 替换自定义键盘 iOS

c - 如何有条件地确定在编译时调用了哪些函数?

c - 如何将 Arduino 读数写入计算机上的文件?

c - 即使输入正确,if 语句也始终为真?

android - 输入法安卓键盘