小编For*_*096的帖子

如何实现终端滚动

我按照 Bare Bones 教程创建了一个内核。我添加了一些对终端滚动的支持,但它并没有真正起作用。当我在 VirtualBox 中运行最终的 ISO 映像时,出现了严重错误。日志文件充满了乱码。目前,我的终端滚动功能是:

void terminal_scroll()
{
    uint8_t attribyte = (0 << 4) | (15 & 0x0F);
    uint16_t blank = 0x20 | (attribyte << 8);

    unsigned int i;
    for (i = 0*80; i < 24*80; i++)
        terminal_buffer[i] = terminal_buffer[i + 80]

    for (i = 24*80; i < 25*80; i++)
        terminal_buffer[i] = blank;
}
Run Code Online (Sandbox Code Playgroud)

c terminal scroll bare-metal osdev

1
推荐指数
1
解决办法
3389
查看次数

标签 统计

bare-metal ×1

c ×1

osdev ×1

scroll ×1

terminal ×1