summaryrefslogtreecommitdiff
path: root/Source/Kernel/Core/kmain.wtf.cpp
blob: 59fa45a3493f8dfca4fff760a7fabad449dc18a4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <Core/common.wtf.h>
#include <Core/multiboot.wtf.h>

#include <Devices/Display/VGATextOutput.class.h>
#include <DisplayManager/Disp.ns.h>

#include <Ressources/logo.cd>

extern u32int end;	//Placement address

extern "C" void kmain(multiboot_info_t* mbd, u32int magic);

void kmain(multiboot_info_t* mbd, u32int magic) {
	DEBUG("Entering kmain.");

	VGATextOutput vgaout;

	Disp::setDisplay(&vgaout);

	for (int i = 0; i < melonLogoLines; i++) {
		int startCol = (Disp::textCols() / 2) - (melonLogoCols / 2);
		for (int j = 0; j < melonLogoCols; j++) {
			Disp::putChar(i + 2, j + startCol, melonLogo[i][j], 0x07);
		}
	}

	if (magic != MULTIBOOT_BOOTLOADER_MAGIC) {
		PANIC("Error with multiboot header.");
	}

	while(1);
}