summaryrefslogtreecommitdiff
path: root/src/kernel.c
blob: 2531c036877b1964813ed96fa7dcbeb891f06dba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdint.h>

void entry( void )
{
	volatile uint8_t *VIDEO_MEMORY = (uint8_t *)0xb8000;

	*VIDEO_MEMORY = 'H';
	*(VIDEO_MEMORY+2) = 'E';
	*(VIDEO_MEMORY+4) = 'L';
	*(VIDEO_MEMORY+6) = 'L';
	*(VIDEO_MEMORY+8) = 'O';
	*(VIDEO_MEMORY+10) = '_';

	volatile uint8_t bar[] = "\\|/-";
	int pos = 10;
	int i = 0;
	for( i = 0; i < 20000; i++ ) {
		if( i % 1000 == 0 ) {
			*(VIDEO_MEMORY+pos) = '.';
			*(VIDEO_MEMORY+pos+1) = 0x07;
			pos += 2;
		}
		*(VIDEO_MEMORY+pos) = bar[i%4];
		*(VIDEO_MEMORY+pos+1) = 0x07;
		for( int j = 0; j < 10000; j++ ) {
		}
	}
}