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.
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!
Got it. Thanks, Link.