Posted By
 Fuzzweed on 2025-04-22 05:00:25
| Free RAM $0100 - $1000
Can I check quickly, with RAM paged in / no kernal routines the very lowest area of RAM $0100 - $1000 is free to use. Even the area $0100 - $01FF "system storage" and the stack can be used to hold code if I don't use anything that uses the stack.
For a more precise example: could I have a chr based screen starting at $0400 and still put executable code below that. |
|
Posted By
 Harry Potter on 2025-04-22 06:18:20
| Re: Free RAM $0100 - $1000
Try https://www.zimmers.net/anonftp/pub/cbm/maps/index.html for a C16 memory map. I use an optimization technique similar to what you're proposing. AFAIK, if you're not using the kernal or BASIC at all, all the memory from $0200 to $FCFF except the screen buffers should be available to your program. Also, all of zeropage starting at $02 should be available. |
|
Posted By
 Fuzzweed on 2025-04-22 06:33:27
| Re: Free RAM $0100 - $1000
Thanks. Looks like the frame buffer is a good proportion of $100+ I guess thats working memory for the TED so continuously in use. |
|
Posted By
 Csabo on 2025-04-22 08:00:55
| Re: Free RAM $0100 - $1000
If you're not using the KERNAL, you may freely use all the RAM from $0002 - $1000 for any purpose: code, data, graphics, etc. ($00 and $01 are I/O registers, $0100-$01FF is the stack, but otherwise usable.)
When you said "starting from $0400", just to clarify, changing the character screen location via $FF14 allows any $0800 page boundary. So if you set $FF14 to $00, the screen will be from $0000-$07FF (colors from $0000-$03FF, chars from $0400-$07ff). |
|
Posted By
 Fuzzweed on 2025-04-22 10:53:33
| Re: Free RAM $0100 - $1000
Ahh yes thanks. Probably misread the pg this morning. What does it mean in the zimmers map by the frame buffer being at $100? Is that not used outside of kernel routines |
|
Posted By
 Csabo on 2025-04-22 11:35:45
| Re: Free RAM $0100 - $1000
Not sure which file you meant specifically. Also be sure to use the SVS' Ultimate Map, it's the de-facto standard!
According to that, $0100-$010F (FBUFFR) is "Buffer for floating point to string operations". You can use it if you don't need the KERNAL (e.g. if you're writing a demo, or a game in assembly that doesn't need to load/save files via KERNAL). |
|
Posted By
 Fuzzweed on 2025-04-22 13:33:08
| Re: Free RAM $0100 - $1000
Oops. Fbuffer / fbuffer :shrug:
Cheers for clarification |
|
Posted By
 cobbpg on 2025-04-22 17:01:29
| Re: Free RAM $0100 - $1000
Stunt Car Racer uses pretty much all the memory, for instance. However, everything below $800 is just temporary variables, which allows it to switch back to the KERNAL for disk operations when needed (this is fairly easy even with a completely trashed zero page). |
|