diff options
Diffstat (limited to 'examples/bootloader/kernel.zc')
| -rw-r--r-- | examples/bootloader/kernel.zc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/examples/bootloader/kernel.zc b/examples/bootloader/kernel.zc new file mode 100644 index 0000000..d39e91c --- /dev/null +++ b/examples/bootloader/kernel.zc @@ -0,0 +1,28 @@ + +def VGA_BUFFER = 0xb8000; +def VGA_WIDTH = 80; +def VGA_HEIGHT = 25; + +@packed +struct VGAEntry { + val: u8; + color: u8; +} + +fn kmain() { + let vga = (VGAEntry*)VGA_BUFFER; + + let msg = "Hello from Zen C!"; + let color = 0x0f; // White on Black + + let i = 0; + while msg[i] != 0 { + vga[i] = VGAEntry { + val: msg[i], + color: color + }; + i += 1; + } + + loop {} +} |
