sd:appendix_3_memory_map
Differences
This shows you the differences between two versions of the page.
| sd:appendix_3_memory_map [2026/04/14 06:09] – created appledog | sd:appendix_3_memory_map [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | = Appendix 3. Memory Map | ||
| + | This is Appendix 3 of the [[SD-8516 Programmer' | ||
| + | |||
| + | == Memory Map | ||
| + | === BANK 0 – User RAM & System Variables ($00, | ||
| + | |||
| + | ^ Address Range ^ Size ^ Name / Area ^ Description / Notes ^ | ||
| + | | $000000–$00FFFF | 61,184 B | User RAM | General purpose free RAM | | ||
| + | | $000100–$00FF00 | ~64 KB | BASIC Program Area | Main BASIC program storage (see int0x05h.sda) | | ||
| + | |||
| + | **Total free in Bank 0:** ≈65,280 bytes | ||
| + | |||
| + | === BANK 1 – KERNAL ROM & HARDWARE ($010000–$01FFFF) | ||
| + | |||
| + | ^ Address Range ^ Size ^ Name / Symbol ^ Description / Notes ^ | ||
| + | | $010000–$0100FF | 256 bytes | Kernal Variables | Reserved for Kernal Variables\\ //(ex. HEXMON uses MON_ADDR=$0100D0, | ||
| + | | $010100–$013FFF | ~16 KB | Kernal Code | Main KERNAL routines + limited expansion space | | ||
| + | | $014000–$01DBFF | 40,960 bytes | RESERVED | Reserved for future KERNAL expansion | | ||
| + | | $01DB00–$01DBFF | 256 bytes | PATB_TBUF | ROM BASIC tokenizer scratch space (currently underused?) | | ||
| + | | $01DC00–$01DFFF | 1,024 bytes | Stack Space | Hardware stack (grows down from $01DFFF; overflow if SP < $01DC00) | | ||
| + | | $01E000–$01E7FF | 2,048 bytes | VM1_CHAR_ROM | PETSCII font data (copied from character ROM at initialization) | | ||
| + | | $01E800–$01E8FF | 256 bytes | Kernal Workspace | Reserved for KERNAL internal use | | ||
| + | | $01E900–$01EBFF | 768 bytes | INT_VECTOR_TABLE | Interrupt vector table (256 vectors × 3 bytes = 24-bit addresses, little-endian) | | ||
| + | | $01EC00–$01ECFF | 256 bytes | SCRATCH_BUFFER | General-purpose scratch space (used by INPUT, expression eval, parsing, etc.) | | ||
| + | | $01ED00–$01EDFF | 256 bytes | INPUT_BUFFER | Input line buffer (also used as part of PATB system variables) | | ||
| + | | $01EE00–$01EEFF | 256 bytes | PATB_VARIABLES + stacks etc. | PATB_BASIC variables, expression stack, GOSUB/FOR stacks, program pointers | | ||
| + | | $01EF00–$01EF0B | 12 bytes | Video System Registers | VIDEO_MODE, VIDEO_COLUMNS, | ||
| + | | $01EF0C–$01EF0F | 4 bytes | Cursor System | CURSOR_BLINK, | ||
| + | | $01EF10–$01EF31 | 34 bytes | Keyboard System | KBD_STATUS_FLAGS, | ||
| + | | $01EF32–$01EF3A | 9 bytes | Input/ | ||
| + | | $01EF3B–$01EF42 | 8 bytes | FREE | Reserved for future use | | ||
| + | | $01EF43–$01EF49 | 7 bytes | Extended Video System | VIDEO_COLOR_MODE, | ||
| + | | $01EF4A–$01EF7F | 54 bytes | FREE | Reserved for hardware expansion | | ||
| + | | $01EF80–$01EFBF | 64 bytes | Sound System (4 voices) | see: [[Appendix 5 Sound System|SD-450 Sound System]] | | ||
| + | | $01EFC0–$01EFFF | 64 bytes | FREE | Reserved for sound system expansion | | ||
| + | | $01F000–$01F3E7 | 1,000 bytes | VM1_TEXT_BASE | Video Mode 1 -- 40×25 text character map | | ||
| + | | $01F3E8–$01F7FF | 1,048 bytes | FREE (text area) | | | ||
| + | | $01F800–$01FBE7 | 1,000 bytes | VM1_COLOR_BASE | Video Mode 1 -- 40×25 color attribute map | | ||
| + | | $01FBE8–$01FFFF | 1,048 bytes | FREE (color area) | | | ||
| + | |||
| + | === BANK 2 -- USER/VIDEO RAM ($020000-$02FFFF) | ||
| + | |||
| + | ^ Address Range ^ Size ^ Name / Area ^ Description ^ | ||
| + | | $020000–$02FFFF | 65,536 B | User RAM | Mode 1: Free | | ||
| + | | $020000–$02FFFF | 65,536 B | User RAM | Mode 2: Free | | ||
| + | | $020000–$02FFFF | 65,536 B | User RAM | Mode 3+: Reserved | | ||
| + | |||
| + | === BANK 3 -- USER RAM ($030000-$03FFFF) | ||
| + | |||
| + | ^ Address Range ^ Size ^ Name / Area ^ Description ^ | ||
| + | | $030000–$03FFFF ^ 65,536 B | User RAM | free | | ||
| + | |||
| + | === Quick Free Space Summary | ||
| + | |||
| + | ^ Bank ^ Free Bytes ^ Notes ^ | ||
| + | | 0 | 65,280 | Mostly user RAM + small BASIC area | | ||
| + | | 1 | ~40,960 | Reserved for future KERNAL expansion | | ||
| + | | 2 | 65,536 | Mode 1 and 2: Free / Graphics Mode 3 and up: Reserved | | ||
| + | | 3 | 65,536 | Completely free | | ||
| + | | **Total** | **237,312** | Available for user programs & data | | ||
