簡體   English   中英

如何實現終端滾動

[英]How to implement terminal scrolling

我遵循了《裸骨頭》教程,並創建了一個內核。 我添加了一些對終端計分的支持,但實際上並沒有奏效。 當我在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;
}

這就是我這樣做的方式:

void terminal_scroll(){
    for(int i = 0; i < vga_height; i++){
        for (int m = 0; m < vga_width; m++){
            terminal_buffer[i * vga_width + m] = terminal_buffer[(i + 1) * vga_width + m];
        }
    }
}

希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM