#include "console.h"
+extern char _binary_realmode_bin_start[];
+extern int _binary_realmode_bin_size;
+
struct mb_info
{
unsigned long flags;
unsigned short *grubptr = 0x7CFE;
int i;
+ void (*realmode)() = 0x4000;
+
puts("Magic is: ");
puthex(magic);
puts("\nMultiboot header is: ");
load_elf(wee->mods[0].mod_start, wee->mods[0].mod_end - wee->mods[0].mod_start);
-
- while (1)
- ;
+ puts("Now returning to real mode.\n");
+ memcpy(0x4000, _binary_realmode_bin_start, (int)&_binary_realmode_bin_size);
+ realmode(); // goodbye!
}