diff --git a/KThread.cpp b/KThread.cpp index ec1be91..7316ef1 100644 --- a/KThread.cpp +++ b/KThread.cpp @@ -3,16 +3,193 @@ #include #include +void kerneltest1() +{ + uint32_t Color = 0x000000; + int BoxSize = 64; + while (1) + { + Color++; + for (int i = 0; i < BoxSize; i++) + for (int j = 0; j < BoxSize; j++) + Display->SetPixel(i + 64, j, Color, 0); + Display->SetBuffer(0); + if (Color > 0xFFFFFF) + break; + } +} +void kerneltest2() +{ + uint32_t Color = 0x000000; + int BoxSize = 64; + while (1) + { + Color++; + for (int i = 0; i < BoxSize; i++) + for (int j = 0; j < BoxSize; j++) + Display->SetPixel(i + 128, j, Color, 0); + Display->SetBuffer(0); + if (Color > 0xFFFFFF) + break; + } +} +void kerneltest3() +{ + uint32_t Color = 0x000000; + int BoxSize = 64; + while (1) + { + Color++; + for (int i = 0; i < BoxSize; i++) + for (int j = 0; j < BoxSize; j++) + Display->SetPixel(i + 192, j, Color, 0); + Display->SetBuffer(0); + if (Color > 0xFFFFFF) + break; + } +} +void kerneltest4() +{ + uint32_t Color = 0x000000; + int BoxSize = 64; + while (1) + { + Color++; + for (int i = 0; i < BoxSize; i++) + for (int j = 0; j < BoxSize; j++) + Display->SetPixel(i + 256, j, Color, 0); + Display->SetBuffer(0); + if (Color > 0xFFFFFF) + break; + } +} +void kerneltest5() +{ + uint32_t Color = 0x000000; + int BoxSize = 64; + while (1) + { + Color++; + for (int i = 0; i < BoxSize; i++) + for (int j = 0; j < BoxSize; j++) + Display->SetPixel(i + 320, j, Color, 0); + Display->SetBuffer(0); + if (Color > 0xFFFFFF) + break; + } +} +void kerneltest6() +{ + uint32_t Color = 0x000000; + int BoxSize = 64; + while (1) + { + Color++; + for (int i = 0; i < BoxSize; i++) + for (int j = 0; j < BoxSize; j++) + Display->SetPixel(i + 384, j, Color, 0); + Display->SetBuffer(0); + if (Color > 0xFFFFFF) + break; + } +} +void kerneltest7() +{ + uint32_t Color = 0x000000; + int BoxSize = 64; + while (1) + { + Color++; + for (int i = 0; i < BoxSize; i++) + for (int j = 0; j < BoxSize; j++) + Display->SetPixel(i + 448, j, Color, 0); + Display->SetBuffer(0); + if (Color > 0xFFFFFF) + break; + } +} +void kerneltest8() +{ + uint32_t Color = 0x000000; + int BoxSize = 64; + while (1) + { + Color++; + for (int i = 0; i < BoxSize; i++) + for (int j = 0; j < BoxSize; j++) + Display->SetPixel(i + 512, j, Color, 0); + Display->SetBuffer(0); + if (Color > 0xFFFFFF) + break; + } +} +void kerneltest9() +{ + uint32_t Color = 0x000000; + int BoxSize = 64; + while (1) + { + Color++; + for (int i = 0; i < BoxSize; i++) + for (int j = 0; j < BoxSize; j++) + Display->SetPixel(i + 576, j, Color, 0); + Display->SetBuffer(0); + if (Color > 0xFFFFFF) + break; + } +} +void kerneltest10() +{ + uint32_t Color = 0x000000; + int BoxSize = 64; + while (1) + { + Color++; + for (int i = 0; i < BoxSize; i++) + for (int j = 0; j < BoxSize; j++) + Display->SetPixel(i + 640, j, Color, 0); + Display->SetBuffer(0); + if (Color > 0xFFFFFF) + break; + } +} + void KernelMainThread() { KPrint("Kernel main thread started!"); + + KPrint("Kernel Compiled at: %s %s with C++ Standard: %d\n", __DATE__, __TIME__, CPP_LANGUAGE_STANDARD); + KPrint("C++ Language Version (__cplusplus) :%ld\n", __cplusplus); + // asm("int $0x1"); KPrint("\e22AA11Starting color test."); - uint32_t Color = 0x000000; - int itrupd = 0; - int BoxSize = 64; + CPU::Interrupts(CPU::Disable); + TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (Tasking::IP)kerneltest1); + KPrint("\e22AA11Thread 1 created."); + TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (Tasking::IP)kerneltest2); + KPrint("\e22AA11Thread 2 created."); + TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (Tasking::IP)kerneltest3); + KPrint("\e22AA11Thread 3 created."); + TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (Tasking::IP)kerneltest4); + KPrint("\e22AA11Thread 4 created."); + TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (Tasking::IP)kerneltest5); + KPrint("\e22AA11Thread 5 created."); + TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (Tasking::IP)kerneltest6); + KPrint("\e22AA11Thread 6 created."); + TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (Tasking::IP)kerneltest7); + KPrint("\e22AA11Thread 7 created."); + TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (Tasking::IP)kerneltest8); + KPrint("\e22AA11Thread 8 created."); + TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (Tasking::IP)kerneltest9); + KPrint("\e22AA11Thread 9 created."); + TaskManager->CreateThread(TaskManager->GetCurrentProcess(), (Tasking::IP)kerneltest10); + KPrint("\e22AA11Thread 10 created."); + CPU::Interrupts(CPU::Enable); + + uint32_t Color = 0x000000; + int BoxSize = 64; uint32_t x, y; Display->GetBufferCursor(0, &x, &y); @@ -20,7 +197,6 @@ void KernelMainThread() while (1) { Color++; - itrupd++; Display->SetBufferCursor(0, 0, 0); @@ -35,12 +211,7 @@ void KernelMainThread() 255 - r, 255 - g, 255 - b, Color); - if (itrupd == BoxSize) - itrupd = 0; - - if (itrupd == 0) - Display->SetBuffer(0); - + Display->SetBuffer(0); if (Color > 0xFFFFFF) break; }