0

我正在开发一个操作系统内核。我面临一个问题,直到内核的特定大小 - 8KB 它运行完美,但当它刚刚超过 8KB 时,它开始表现异常。清屏功能不起作用,滚动功能不起作用等。

我正在使用具有 1.44MB 软盘配置的 bochs 模拟器。

我的代码正常工作是 -

#include "functions.h"
#include "stdint.h"
#include "stddef.h"
#include "../drivers/colors.h"

void delay();
char getScancode();

void main()
{
    /*Declarations*/
    char* str = "Welcome to MyOS v0.2.4 By Anish Sharma 2017";
    char* status = "Welcome Anish Sharma";
    uint8_t i = 0;


    for(i=0;i<80;i++)
        putChar(' ',i,24,STATUS_COLOR);
    write_string_line(STATUS_COLOR,status,24);

    clrscr();
    print("The KERNEL has been loaded successfully at 0x1000 (memory address)");
    print(str);
    print(">>>");
    update_cursor(3,2);
    for(i=0;i<80;i++)
    {
        putChar(0xdb,i,3,i);
    }
    for(i=0;i<80;i++)
    {
        putChar(0xdb,i,4,i);
    }
    for(i=0;i<80;i++)
    {
        putChar(0xdb,i,5,i);
    }
    for(i=0;i<80;i++)
    {
        putChar(0xdb,i,6,i);
    }
    for(i=0;i<80;i++)
    {
        putChar(0xdb,i,3,i);
    }
}

输出是 -

在此处输入图像描述

添加另一个 -

for(i=0;i<80;i++)
{
    putChar(0xdb,i,3,i);
}

输出是 -

在此处输入图像描述

谁能告诉我是什么导致了这个问题?

4

0 回答 0