mirror of
https://github.com/Tom-on64/kern.git
synced 2026-11-03 18:22:22 +00:00
- Pretty much rewrote stage1.asm - Changed some addresses in stage2.asm and in memory/adresses.h - Changed stage3.c to read root INode and it's dirEntries to find kernel.bin and term16n.fnt - Made a fake ls command in kernel.c, just so it prints something - Fixed makedisk.c to make the disk image properly - Changed Makefile to compile makedisk.c and then run makedisk - Added makedisk executable to .gitignore
62 lines
1.6 KiB
C
62 lines
1.6 KiB
C
#ifndef ADDRESSES_H
|
|
#define ADDRESSES_H
|
|
|
|
/*
|
|
* Memory layout of addresses 0x0000 - 0x12000
|
|
* 0x0000-0x0fff - Probably shouldn't mess with this? idk it feels wrong
|
|
* 0x1000-0x17ff - Free
|
|
* 0x1800-0x1fff - Global Variables
|
|
* 0x2000-0x2fff - Larger structs
|
|
* 0x3000-0x3fff - Free
|
|
* 0x4000-0x4fff - Font area
|
|
* 0x6000-0x6fff - VBE info area
|
|
* 0x7000-0x7bff - SMAP Area
|
|
* 0x7c00-0x8bff - Bootblock
|
|
* 0x8c00-0x9bff - Superblock (i think)
|
|
* 0x9c00-0xafff - Free
|
|
* 0xb000-0xbfff - Bootloader first INode
|
|
*/
|
|
|
|
// Global Variables 0x1800-0x1fff
|
|
#define SLEEP_TIMER 0x1800
|
|
#define CURRENT_PAGE_DIR_ADDR 0x1804
|
|
#define PHYS_MEM_MAX_BLOCKS 0x1808
|
|
#define PHYS_MEM_USED_BLOCKS 0x180C
|
|
|
|
// Some structs 0x2000-0x2fff
|
|
#define TERMINAL_INFO_LOC 0x2000
|
|
#define KEYBOARD_STATE_LOC 0x2100
|
|
#define DATETIME_LOC 0x2200
|
|
|
|
// Filesystem Area 0x3000 - 0x3fff
|
|
#define FILETABLE_LOC 0x3000
|
|
|
|
// Font area 0x4000 - 0x4fff
|
|
#define FONT_LOC 0x4000
|
|
#define FONT_WIDTH (FONT_LOC)
|
|
#define FONT_HEIGHT (FONT_LOC + 1)
|
|
|
|
// VBE Info Area 0x6000 - 0x6fff
|
|
#define MODE_INFO_BLOCK_LOC 0x6000 // 512 Bytes
|
|
|
|
// Smap Area 0x7000 - 0x7bff
|
|
#define SMAP_ENTRY_COUNT 0x7000
|
|
#define SMAP_ENTRIES 0x7004
|
|
|
|
// Bootblock 0x7c00-0x9bff
|
|
#define BOOTBLOCK_LOC 0x7c00
|
|
|
|
// Superblock 0x9c00-0xabff
|
|
#define SUPERBLOCK_LOC 0x8c00
|
|
|
|
// First INode from bootloader
|
|
#define BOOT_FIRST_INODE_LOC 0xb000
|
|
#define SCRATCH_BLOCK_LOC 0xc000
|
|
|
|
// Other addresses
|
|
#define KERNEL_LOC 0x100000
|
|
#define KERNEL_MALLOC_AREA 0x300000
|
|
#define MEMMAP_AREA 0x30000
|
|
|
|
#endif
|