summaryrefslogtreecommitdiff
path: root/efi-kernel/kernel.c
blob: 83c9479c89460d334341d0980e6820208a9f3d6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* Plan9 C, amd64 — kernel-болванка: пишет строку в VGA-текстбуфер 0xB8000.
 * Грузится EFI-загрузчиком (bootx64.efi), исполняется в long mode. */
typedef unsigned short ushort;
typedef unsigned char  uchar;

void
kmain(void)
{
	ushort *vga;
	char *s;
	int i;

	vga = (ushort*)0xB8000;               /* VGA text framebuffer (long mode, identity-mapped) */
	for(i = 0; i < 80*25; i++)
		vga[i] = (0x1F<<8) | ' ';         /* очистить: белым по синему */
	s = "PLAN9 amd64 KERNEL loaded by EFI -> writes 0xB8000";
	for(i = 0; s[i]; i++)
		vga[i] = (0x1F<<8) | (uchar)s[i];
	for(;;)                               /* halt */
		;
}