sd:appendix_3_memory_map
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| sd:appendix_3_memory_map [2026/02/25 02:46] – created appledog | sd:appendix_3_memory_map [2026/02/25 04:32] (current) – appledog | ||
|---|---|---|---|
| Line 4: | Line 4: | ||
| == Memory Map | == Memory Map | ||
| - | ### BANK 0 - User RAM & System Variables ($00, | + | === BANK 0 - User RAM & System Variables ($00, |
| - | ^ Address Range | + | ^ Address Range ^ Size ^ Name / Area ^ Description / Notes ^ |
| - | | $000000–$00EEFF | + | | $000000–$00FFFF |
| - | | $00F000–$00FFFF | + | | $000100–$00FF00 | ~64 KB | BASIC Program Area | Main BASIC program storage (see int0x05h.sda) | |
| - | | $000100–$00FF00 | + | |
| **Total free in Bank 0:** ≈65,280 bytes | **Total free in Bank 0:** ≈65,280 bytes | ||
| - | ### BANK 1 - KERNAL ROM & HARDWARE ($010000–$01FFFF) | + | === BANK 1 - KERNAL ROM & HARDWARE ($010000–$01FFFF) |
| - | ^ Address Range | + | ^ Address Range ^ Size ^ Name / Symbol ^ Description / Notes ^ |
| - | | $010000–$0100FF | + | | $010000–$0100FF | 256 bytes | Kernal Bootstrap | Reserved for boot code | |
| - | | $010100–$013FFF | + | | $010100–$013FFF | ~16 KB | Kernal Code | Main KERNAL routines + limited expansion space | |
| - | | $014000–$01DBFF | + | | $014000–$01DBFF | 40,960 bytes | RESERVED | Reserved for future KERNAL expansion | |
| - | | $01DB00–$01DBFF | + | | $01DB00–$01DBFF | 256 bytes | PATB_TBUF | ROM BASIC tokenizer scratch space (currently underused?) | |
| - | | $01DC00–$01DFFF | + | | $01DC00–$01DFFF | 1,024 bytes | Stack Space | Hardware stack (grows down from $01DFFF; overflow if SP < $01DC00) | |
| - | | $01E000–$01E7FF | + | | $01E000–$01E7FF | 2,048 bytes | VM1_CHAR_ROM | PETSCII font data (copied from character ROM at initialization) | |
| - | | $01E800–$01E8FF | + | | $01E800–$01E8FF | 256 bytes | Kernal Workspace | Reserved for KERNAL internal use | |
| - | | $01E900–$01EBFF | + | | $01E900–$01EBFF | 768 bytes | INT_VECTOR_TABLE | Interrupt vector table (256 vectors × 3 bytes = 24-bit addresses, little-endian) | |
| - | | $01EC00–$01ECFF | + | | $01EC00–$01ECFF | 256 bytes | SCRATCH_BUFFER | General-purpose scratch space (used by INPUT, expression eval, parsing, etc.) | |
| - | | $01ED00–$01EDFF | + | | $01ED00–$01EDFF | 256 bytes | INPUT_BUFFER | Input line buffer (also used as part of PATB system variables) | |
| - | | $01EE00–$01EEFF | + | | $01EE00–$01EEFF | 256 bytes | PATB_VARIABLES + stacks etc. | PATB_BASIC variables, expression stack, GOSUB/FOR stacks, program pointers… | |
| - | | $01EF00–$01EF0B | + | | $01EF00–$01EF0B | 12 bytes | Video System Registers | VIDEO_MODE, VIDEO_COLUMNS, |
| - | | $01EF0C–$01EF0F | + | | $01EF0C–$01EF0F | 4 bytes | Cursor System | CURSOR_BLINK, |
| - | | $01EF10–$01EF31 | + | | $01EF10–$01EF31 | 34 bytes | Keyboard System | KBD_STATUS_FLAGS, |
| - | | $01EF32–$01EF3A | + | | $01EF32–$01EF3A | 9 bytes | Input/ |
| - | | $01EF3B–$01EF42 | + | | $01EF3B–$01EF42 | 8 bytes | FREE | Reserved for future use | |
| - | | $01EF43–$01EF49 | + | | $01EF43–$01EF49 | 7 bytes | Extended Video System | VIDEO_COLOR_MODE, |
| - | | $01EF4A–$01EF7F | + | | $01EF4A–$01EF7F | 54 bytes | FREE | Reserved for hardware expansion | |
| - | | $01EF80–$01EFBF | + | | $01EF80–$01EFBF | 64 bytes | Sound System (4 voices) | see: [[Appendix 5 Sound System|SD-450 Sound System]] |
| - | | $01EFC0–$01EFFF | + | | $01EFC0–$01EFFF | 64 bytes | FREE | Reserved for sound system expansion | |
| - | | $01F000–$01F3E7 | + | | $01F000–$01F3E7 | 1,000 bytes | VM1_TEXT_BASE | Video Mode 1 – 40×25 text character map | |
| - | | $01F3E8–$01F7FF | + | | $01F3E8–$01F7FF | 1,048 bytes | FREE (text area) | — | |
| - | | $01F800–$01FBE7 | + | | $01F800–$01FBE7 | 1,000 bytes | VM1_COLOR_BASE | Video Mode 1 – 40×25 color attribute map | |
| - | | $01FBE8–$01FFFF | + | | $01FBE8–$01FFFF | 1,048 bytes | FREE (color area) | — | |
| - | ### BANK 2 – USER RAM ($020000–$02FFFF) | + | === BANK 2 – USER RAM ($020000–$02FFFF) |
| - | ^ Address Range | + | ^ Address Range ^ Size ^ Name / Area ^ Description ^ |
| - | | $020000–$02FFFF | + | | $020000–$02FFFF | 65,536 B | User RAM | Completely free | |
| - | ### BANK 3 – USER RAM ($030000–$03FFFF) | + | === BANK 3 – USER RAM ($030000–$03FFFF) |
| - | ^ Address Range | + | ^ Address Range ^ Size ^ Name / Area ^ Description ^ |
| - | | $030000–$03FFFF | + | | $030000–$03FFFF ^ 65,536 B | User RAM | Completely free | |
| - | ### Quick Free Space Summary | + | === Quick Free Space Summary |
| - | ^ Bank | + | ^ Bank ^ Free Bytes ^ Notes ^ |
| - | | 0 | 65, | + | | 0 | 65,280 | Mostly user RAM + small BASIC area | |
| - | | 1 | ~40, | + | | 1 | ~40,960 | Reserved for future KERNAL expansion | |
| - | | 2 | 65, | + | | 2 | 65,536 | Completely free | |
| - | | 3 | 65, | + | | 3 | 65,536 | Completely free | |
| - | | **Total** | **237,312** | Available for user programs & data | + | | **Total** | **237,312** | Available for user programs & data | |
| - | + | ||
| - | You can copy-paste the tables directly into a DokuWiki page. Let me know if you'd like any section split further, merged, or additional columns (e.g. read/write access, usage examples). | + | |
sd/appendix_3_memory_map.1771987581.txt.gz · Last modified: by appledog
