DE000000 XXXXYYYY

Started by Shiggity, November 18, 2009, 01:27:02 PM

Previous topic - Next topic

Shiggity

I see a lot of codes using this - is this because the pointer is volatile?  What is considered a 'safe' practice?  Check if the pointer is in this range after every pointer reassignment?

Post Merge: November 18, 2009, 02:10:38 PM

Never mind.  I see in the codetypes doc that it is because "the ram is heavily used/filled and a place used to store an address can be used to store data later on" which I am taking to mean that yes, the pointer is volatile.

Link

I'll give you an example.. your question is accepted ^^

imagine there is a pointer at 80612344 you need for a code.. then you'd go:

48000000 80612344

However, pointers are not always set.. more often.. especially when they get changed (that's what pointers are there for).. for a short time they get reset to 00000000 or something else.. the code handler now is stupid:

at the instance of time it would switch the pointer address (pa) to 00000000 (if 80612344) and an instruction like 14000008 which writes to [po+8] will end up writing to 00000008 - invalid address: CRASH!

DE000000 80008100 will make sure the the pa value is in between 80000000 and 81800000!

Shiggity