diff --git a/sys/include/memory.h b/sys/include/memory.h index 6bbfa35..8bb51b2 100644 --- a/sys/include/memory.h +++ b/sys/include/memory.h @@ -22,6 +22,14 @@ #define START 0xb80f0 #define SIZE 16384 +/* + * How memory is mapped + */ +#define STACK_START 0x000b8fa0 +#define STACK_END 0x000fffff +#define PR_START 0x00100000 +#define PHYSMEMTOP 0x0e000000 + struct allocated { void *ref; s32 size; diff --git a/sys/memory.c b/sys/memory.c index 0653927..3ad485e 100644 --- a/sys/memory.c +++ b/sys/memory.c @@ -3,6 +3,13 @@ u32 curr = START; +void +memory_init(void) +{ + u32 esp, ebp; + ebp = 0x8B7F0; +} + void *malloc(s32 size) { u32 addr = curr; curr += size; diff --git a/sys/sysinit.c b/sys/sysinit.c index c6891d6..a07753f 100644 --- a/sys/sysinit.c +++ b/sys/sysinit.c @@ -53,6 +53,8 @@ sysinit(void) printf("%s%x", "Omh", 0x2a); vga_write("Starting omOS...", 16, 0x0F); + memory_init(); + s8 *start = (s8 *) 0xb8fa0; start[0] = 'h'; }