summaryrefslogtreecommitdiff
path: root/stage3/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'stage3/main.c')
-rw-r--r--stage3/main.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/stage3/main.c b/stage3/main.c
index 7c84d05..ab0b3a5 100644
--- a/stage3/main.c
+++ b/stage3/main.c
@@ -2,30 +2,31 @@
#include "def.h"
#include "gfx.h"
#include "halt.h"
+#include "heap.h"
+#include "font.h"
void clear_screen(); // framebuffer.asm
void kmain()
{
clear_screen();
+ heap_init();
- for (MemRegion *mmap = (void *) 0x500; mmap->start != nil; mmap++)
- page_region(mmap);
+#define MMAP for (MemRegion *mreg = (void *) 0x500; mreg->start != nil; mreg++)
+
+ MMAP page_region(mreg);
page_region(&(MemRegion) {
- .start = (void *) (u64) gfxinfo->framebuffer,
- .size = gfxinfo->pitch * gfxinfo->height,
- .type = MEM_RESERVED,
- .zero = 0,
+ .start = (void *) (u64) gfx_info->framebuffer,
+ .size = gfx_info->pitch * gfx_info->height,
+ .used = MEM_RESERVED,
});
- /*
- for (u16 x = 0; x < gfxinfo->width; x++)
- for (u16 y = 0; y < gfxinfo->height; y++)
- set_pixel(x, y, 0x0087CEEB);
- */
+ MMAP heap_add_region(mreg);
+
+ gfx_set_area(0, 0, gfx_info->width, gfx_info->height, 0xFF87CEEB);
- set_region(0, 0, gfxinfo->width, gfxinfo->height, 0x0087CEEB);
+ print("abcdefghijklmnopqrstuvwxyz");
halt();
}