2016-02-26 22:31:34 -08:00
|
|
|
#include <stddef.h>
|
|
|
|
#include <stdint.h>
|
2016-02-27 13:50:51 -05:00
|
|
|
#include "Console.hh"
|
2016-02-28 23:26:42 -05:00
|
|
|
#include "Descriptors.hh"
|
2016-02-26 22:31:34 -08:00
|
|
|
|
|
|
|
#if defined(__linux__)
|
|
|
|
#error "This file should be compiled with a cross-compiler, not the Linux system compiler!"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if !defined(__i386__)
|
|
|
|
#error "This file should be compiled with an ix86-elf compiler!"
|
|
|
|
#endif
|
|
|
|
|
2016-02-27 12:34:36 -05:00
|
|
|
/** Called very early, before global initialization. */
|
2016-02-26 22:31:34 -08:00
|
|
|
extern "C"
|
|
|
|
void
|
|
|
|
kearly()
|
2016-02-27 13:50:51 -05:00
|
|
|
{
|
2016-02-28 22:49:45 -05:00
|
|
|
auto console = kernel::Console::systemConsole();
|
2016-02-27 13:50:51 -05:00
|
|
|
console.clear(kernel::Console::Color::Blue);
|
2016-02-28 13:33:20 -05:00
|
|
|
console.writeString("Loading system ...\n");
|
2016-02-27 15:07:52 -05:00
|
|
|
|
2016-02-28 23:26:42 -05:00
|
|
|
kernel::initGDT();
|
|
|
|
|
2016-02-27 15:07:52 -05:00
|
|
|
volatile int foo = 0;
|
|
|
|
int i = 0;
|
|
|
|
for (;;) {
|
2016-02-28 13:33:20 -05:00
|
|
|
if (i == 0) {
|
2016-02-27 15:07:52 -05:00
|
|
|
console.writeString("--- MARK ---\n");
|
|
|
|
}
|
|
|
|
console.writeChar('a' + i);
|
|
|
|
console.writeChar('\n');
|
|
|
|
i = (i + 1) % 26;
|
|
|
|
|
2016-02-28 03:46:30 -05:00
|
|
|
for (uint32_t k = 0; k < (2u << 20) - 1; k++) {
|
2016-02-27 15:07:52 -05:00
|
|
|
foo /= 2;
|
|
|
|
}
|
|
|
|
}
|
2016-02-27 13:50:51 -05:00
|
|
|
}
|
2016-02-28 13:33:20 -05:00
|
|
|
|
|
|
|
|
|
|
|
/** The beginning of the world... */
|
|
|
|
extern "C"
|
|
|
|
void
|
|
|
|
kmain()
|
|
|
|
{ }
|