#include "bloader.h" int main(); /*Global Variables BAD BAD:) */ unsigned int oldEBP; struct boot_dir *viewableDirectory; int totalMem; char * passedParams; /*end global vars */ void _start(int memSize, char *parms, struct boot_dir *loadedfiles) { asm("mov %%ebp, %0":"=m"(oldEBP)); viewableDirectory = loadedfiles; /*make file mem locations global*/ totalMem = memSize; /*make mem of system global*/ passedParams = parms; /*make paramaters passed to system global*/ main(); asm("hlt"); /* this halts the machine, solving the problem of triple-faults on some machines, but also making it impossible to return to DOS */ } int main() { char *vidmem = (char *) 0xb8000; /* "Homer " */ vidmem[0] = 'H'; vidmem[1] = 0x7; vidmem[2] = 'o'; vidmem[3] = 0x7; vidmem[4] = 'm'; vidmem[5] = 0x7; vidmem[6] = 'e'; vidmem[7] = 0x7; vidmem[8] = 'r'; vidmem[9] = 0x7; vidmem[10] = ' '; vidmem[11] = 0x7; /* "OS " */ vidmem[12] = 'O'; vidmem[13] = 0x7; vidmem[14] = 'S'; vidmem[15] = 0x7; vidmem[16] = '!'; vidmem[17] = 0x7; vidmem[18] = '!'; vidmem[19] = 0x7; vidmem[20] = '!'; vidmem[21] = 0x7; vidmem[22] = ' '; vidmem[23] = 0x7; /* "v1" */ vidmem[24] = 'v'; vidmem[25] = 0x7; vidmem[26] = '1'; vidmem[27] = 0x7; return 0; }