From 5ad68a0c087d21fa1d0f82bea1550169f1e4c1aa Mon Sep 17 00:00:00 2001 From: Xander Date: Fri, 14 Jul 2023 17:16:54 +0200 Subject: Preparing for multiboot information --- kernel/main.dats | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'kernel/main.dats') diff --git a/kernel/main.dats b/kernel/main.dats index d6e29f4..b35387f 100644 --- a/kernel/main.dats +++ b/kernel/main.dats @@ -1,6 +1,11 @@ #include "./prelude/kernel_prelude.hats" +#define ATS_DYNLOADFLAG 0 + staload "kernel/interrupts/idt.sats" +staload "lib/SATS/writer.sats" + +staload UN = "prelude/SATS/unsafe.sats" %{^ void breakpoint(){ @@ -8,10 +13,29 @@ staload "kernel/interrupts/idt.sats" } %} +extern castfn char_arr2string {n:nat} (arr : &(@[char][n])) : string n + extern fun breakpoint() :void = "mac#" -implement main0 () = ( +extern fun main(p : ptr) : void = "ext#" +implement main(p) = let + prval size = $UN.ptr0_get(ptr_add(p, + 8 + + 16 + + 16 + + 4 + 4 + (* 16 + *) + (* 8 + *) + (* 32 + *) + (* 16 + 24 + 24 + 24 + 24 + 24 + 48 + // memory map *) + (* 792 + // elf *) + (* 4 + 4 + 4 *) + )) +in + + clear_screen(); println!("Start"); + (* println!(size); *) // Initialize interrupt table idt_init(); @@ -20,4 +44,5 @@ implement main0 () = ( breakpoint(); println!("End"); -) + +end -- cgit v1.2.3