Omnimaga

Calculator Community => TI Calculators => General Calculator Help => Topic started by: ACagliano on May 04, 2010, 08:56:22 am

Title: Question about Pointers, Program Size, and Location
Post by: ACagliano on May 04, 2010, 08:56:22 am
I have a question, for anyone who know the answer. I've always wondered, lets say you have a program or appvar named A2. How is it possible, using assembly or axe or Celtic III, to figure how long the data is (how many bytes are in the program), so that if I try to write to the program, I know I am writing to the END of it, not to halfway through it or to the data following it in memory?
Title: Re: Question about Pointers, Program Size, and Location
Post by: Quigibo on May 04, 2010, 12:26:37 pm
It Axe, you can do this:

:"prgmMYPROG"->Str1
:getcalc(Str1)->C
:{C-2}r->S

Puts the size of the program in S.  Basically, the size bytes come right before the data.

EDIT: by the way, you cannot change the size of the program without some pretty advanced assembly.  You either have to append data to the end ,which might cause the program to shift around in ram and you'll need to get a new pointer right after, OR you can put the entire calculator in edit mode and add as much data as you want, but you have to keep track of a bunch of pointers.  Either way you need to make sure you update the new size manually after changing it.
Title: Re: Question about Pointers, Program Size, and Location
Post by: DJ Omnimaga on May 14, 2010, 08:02:28 pm
Moved to help and support