54 lines
No EOL
1.5 KiB
C
54 lines
No EOL
1.5 KiB
C
#include "./platform/drivers/ports.h"
|
|
#include "print.h"
|
|
#include "./platform/types.h"
|
|
#include "./platform/interrupts/int.h"
|
|
|
|
void dummy_test_entrypoint() {}
|
|
|
|
void kernel_welcome() {
|
|
print_str("Welcome to ");
|
|
print_set_color(PRINT_COLOR_CYAN, PRINT_COLOR_BLACK);
|
|
print_str("Shade");
|
|
print_set_color(PRINT_COLOR_WHITE, PRINT_COLOR_BLACK);
|
|
print_str("!\n");
|
|
|
|
print_str("shadeOS kernel version ");
|
|
|
|
print_set_color(PRINT_COLOR_YELLOW, PRINT_COLOR_BLACK);
|
|
print_str("0.2.2");
|
|
|
|
print_set_color(PRINT_COLOR_WHITE, PRINT_COLOR_BLACK);
|
|
print_newline();
|
|
|
|
print_str("Running on ");
|
|
|
|
print_set_color(PRINT_COLOR_YELLOW, PRINT_COLOR_BLACK);
|
|
print_str("shade-development");
|
|
|
|
print_set_color(PRINT_COLOR_WHITE, PRINT_COLOR_BLACK);
|
|
|
|
print_newline();
|
|
}
|
|
|
|
// kMain
|
|
void main() {
|
|
// Initialize screen buffer
|
|
struct Char* buffer = (struct Char*) 0xb8000;
|
|
|
|
clear_all(); // Clear screen
|
|
set_cursor_pos(0, 0); // Set cursor position
|
|
print_set_color(PRINT_COLOR_WHITE, PRINT_COLOR_BLACK); // Set print color
|
|
|
|
// welcome messages
|
|
kernel_msg_ok("Initialized display successfully\n");
|
|
kernel_welcome();
|
|
|
|
print_str("Copyright (c) e3team 2022. All rights reserved.\n");
|
|
print_str("This program is provided \"as-is\" and no express or implied warranty is provided.\n");
|
|
print_str("The full license can be found at /sys/LICENCE on this system or ./LICENCE in the source tree.\n");
|
|
|
|
idt_init();
|
|
kernel_msg_ok("Interrupts initialized");
|
|
|
|
__asm__ __volatile__("int $2");
|
|
} |