Compare commits

...
4 Commits
Author SHA1 Message Date
ShatteredMINT de9ac7fe72 create globals.asm with placeholder globals 2026-09-02 11:37:26 +02:00
ShatteredMINT 1fc4515f6b include LUTs in memory map 2026-09-02 11:15:43 +02:00
ShatteredMINT f4ae43bbc1 update memory overview 2026-09-02 11:13:48 +02:00
ShatteredMINT f27715b5b3 start memory documentation 2026-09-01 13:45:23 +02:00
2 changed files with 31 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
# Memory Map
To not have to allocate a ton of things at run time the Standard Library uses a static memory map for some purposes
## Overview
| Start | Use |
| ---- | ---- |
| `0x0` | Reset Vector |
| `0x16` | Zero Page |
| `0x100` | User Code |
| `?` | Library Code |
| `0x1_0000` | LUTs |
| `?` | heap |
| `0xXXF0_0000` | Stack |
| `0xXXFF_0000` | quick access |
## Zero Page
Some values are needed not often enough to get their own special register, but often enough that it makes sense to keep them at a quickly accessible location.
This is what the zero page is for. its position in memory allows us to load them into a register with a single instruction.
+10
View File
@@ -0,0 +1,10 @@
jmp 0x100
@0x10
screen:
frambuffer_ptr: U32 0x0
size: U32 0x0
position_xy: U32 0x0
mode: U32 0x0
@0x100