kernel.c

back


#define HANG() asm("hlt")

void
output(short port, unsigned char byte)
{
	asm volatile("outb %1,%0"::"dN"(port), "a"(byte));
}

void
ser_print(char *msg)
{
	int i;
	
	for (i = 0; ; i++) {
		if (!msg[i]) {
			break;
		}
		output(0x03f8, msg[i]);
	}
}

void
main(void)
{
	ser_print("hello from C kernel\n\0");

	do { HANG(); } while (1);
}