All pastes #270227 Raw Edit

Mine

public text v1 · immutable
·published 2006-12-07 05:04 UTC
rendered paste body
#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;
}