What's in the 'Initialization' section?
RossH
Posts: 5,694
The first $10 bytes of Propeller code are labelled 'Initialization' when you look at them in the Propeller IDE. I know a couple of longs are used for the CLK and FREQ values, but what are the others used for? All I can find in the manual are that these are the "initial interpreter pointers"
I have written a high resolution VGA driver which uses whatever free RAM is available to implement a virtual screen bitmap. But currently I have to manually tell the program where the free RAM starts. I am sure that one of the values in the Initialization section has this value - there are a couple of values in there that look to be likely candidates, but I'm not sure which one to use.
Does anyone have a definition for what these other Initialization values are?
Thanks,
Ross.
I have written a high resolution VGA driver which uses whatever free RAM is available to implement a virtual screen bitmap. But currently I have to manually tell the program where the free RAM starts. I am sure that one of the values in the Initialization section has this value - there are a couple of values in there that look to be likely candidates, but I'm not sure which one to use.
Does anyone have a definition for what these other Initialization values are?
Thanks,
Ross.

Comments
http://forums.parallax.com/forums/default.aspx?f=25&m=221434
But it still be good to get some "official" confirmation from Parallax.
Ross.
.----------. |__________| Long : Frequency (Hz) |__| Byte : XTAL mode |__|__ Byte : Checksum .----------|_____| Word : Base of program .---|----------|_____| Word : Base of variables .-|---|----------|_____| Word : Base of stack | | .-|----------|_____| Word : Initial program counter .-|-|-|-|----------| | Word : Initial stack pointer | | | | | `-----' | | | | | | | | | | .----------. | | | | `-> .------|__________| +0 Pointer to next object | | | | | .--|__________| +1 Pointer to first method | | | | | | |__________| | | | | | .-|--| | +N Pointer to last method | | | | | | | |----------| | | | | | | | | DAT | Data Area | | | | | | | |----------| | | | `---> | | `->| PUB | | | | | | : : Methods | | | | `--->| PRI | | | | | `----------' | | | | .----------. | | `-----> `----->| vars | Main Program Variables | | | | | | `----------' | | .----------. | `--------------->| stack | Stack Space `----------------->| | `----------'There's no easy way to tell where the last byte of used Ram is as that depends upon the stack space used at run-time. It is possible to know the start of stack ( through word[noparse][[/noparse]$000A] ) which would give an indication of how much free Ram there were when the program starts.
You could run your program using minimal Ram then check where the stack 'high-water mark' was to get a ballpark idea of stack space being used once you'd exercised the code.