keyboard.c

来自「国内的一个小型操作系统」· C语言 代码 · 共 43 行

C
43
字号
void wait_output_full()
{
    char b;
    do
    {
        b = inportb(0x64);
    }while(!(b&0x01));	
}

void wait_output_empty()
{
    char b;
    do
    {
        b = inportb(0x64);
    }while(b&0x01);	
}

int getnum() // get char from keyboard
{
    int key = 0;
    wait_output_full();
    while(1)
    {
        key = (int)inportb(0x60);           //得扫描码
        if((key>=2)&&(key<=11))
        {
            key = (key-1)%10;
            break;
        }
    }
    return key;
}

void putnum(int num)
{
    unsigned  char asc = num+48;
    short offset = get_cursor();
    char *vidmem = (char *)0xb8000;
    *(vidmem+offset) = (char)asc;
    move_cursor(1);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?