summaryrefslogtreecommitdiff
path: root/examples/bootloader/kernel.zc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/bootloader/kernel.zc')
-rw-r--r--examples/bootloader/kernel.zc28
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 {}
+}