Skip to content

Memory Map

Lolwis111 edited this page Feb 20, 2019 · 3 revisions

Memory map

address size usage description
0x00000 1024 Byte unusable interupt vector table
0x01000 4096 Byte unusable system.sys gets loaded here. It provides all the system calls and should therefor not be overriden.
0x02000 8 KiByte unusable directory cache. A copy of the current working directory gets loaded here for quick access. Gets overriden everytime a the directory is changed.
0x04000 8 KiByte unusable The file allocation table of the current drive gets loaded here. Is required to allow for file and directories to be read.
0x06000 1 Byte read only This byte represents the current color attribute. Can be used to print to the terminal in system color.
0x06001 1 Byte reserved Was used for settings. Might be used for kernel functions in the future.
0x06002 2 Byte read only This word contains the return code of the last execution.
0x06004 2 Byte read only This word saves the current length of the path.
0x06006 1 KiByte read only The current path is saved here.
0x06406 7164 Byte unusable This is the kernel stack.
0x08000 4 KiByte read only strings.sys gets loaded here to allow for language specific error messages etc. Can be accessed by language.asm.
0x09000 476 KiByte free for use A user programm gets loaded at address 0x09000. The programm has then guaranteed access to the space from 0x9000 up to 0x80000 without destroying the kernel.
0x80000 4 KiByte unusable The kernel keeps a copy of command.bin for quick access here.
0xB8000 4 KByte special usage Represents the videobuffer for text mode. Everything written to this area is displayed on the screen. The format is: [ even byte | odd byte ] [ ascii char | color attr. ]
0xB8FA0 ??? undefined Could be available for use. But BIOSes might put CMOS data or mappings here. If A20 Gate is enabled, this could range up to 0xFFFFF. Probe and use at your own risk.

Clone this wiki locally