"McCollister, Mike" <[EMAIL PROTECTED]> wrote:

> I have a problem with the sysAppLaunchCmdAlarmTriggered message. I want to
> access some global variables if the application is active. I use the
> sysAppLaunchFlagSubCall mask to find out if my application is launched
> already. However, when I try to access a global variable, POSE 3.0a3 running
> PalmOS 3.3 debug tells me that my has just read directly from low memory.

Let me guess, you are using PalmOS gcc / prc-tools-0.5.0, right? There is an
oversight in its crt0 module that looks for globals by checking for
sysAppLaunchFlagNewGlobals but forgets about sysAppLaunchFlagSubCall, so when
you are launched with the latter, prc-tools-0.5.0's crt0 thinks that you have
no globals and sets A4 to 0 to indicate this. Of course, when you access a
global variable from an A4-based compiler with A4 set to 0, you bang on the low
memory.

John Marshall's version of PalmOS gcc obtusely dodges the issue by not using A4
at all and using A5 instead, which of course means good-bye to all the
wonderful gcc-only features which are possible only with A4 and the reason why
gcc developers invented A4 in the first place. (That's one of the reasons why
GLibs are completely broken in that version.) I'm working on another post-0.5.0
version of PalmOS gcc that keeps A4-based data access and concentrates on
making it work better, including fixing problems like the one you are having,
rather than using A5 and washing the baby out with the bathwater. My code is
almost ready to see the light of day now, I'm shooting for this weekend as the
beta release (not a promise or a guarantee, though).

--
Michael Sokolov                         2695 VILLA CREEK DR STE 240
Software Engineer                       DALLAS TX 75234-7329 USA
JP Systems, Inc.                        Phone: +1-972-484-5432 x247
                                            or +1-888-665-2460 x247
E-mail: [EMAIL PROTECTED]    Fax:   +1-972-484-4154

Reply via email to