summaryrefslogtreecommitdiff
path: root/examples/bootloader/kernel.zc
diff options
context:
space:
mode:
authorZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-27 01:22:42 +0000
committerZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-27 01:22:42 +0000
commit938773d9cc062fd028f6560b1127a2ecd23f61c3 (patch)
tree403aacd629975440ba23a645975c34a141d634ee /examples/bootloader/kernel.zc
parent2f47bdf7f49f05bd421e4182635f489c8cae01b3 (diff)
Fixed constant hex/oct bug + Fixed some of the examples (work in progress) + added bootloader example (I will add some docs)
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 {}
+}