> It has to do with the locking of the code 1 resource into memory.
> The memory manager can move unlocked resources around to compact
> the storage heap.i So the launch code looks up the code 1
> resource, pushes its start address on the stack and jumps to it
> with RTS.

Sorry, I still don't understand. Most of what you describe above is done by the 
OS (the Memory Manager). OK, so it finds the most appropriate place where to 
move the code 1 resource, locks it, and transfers control to it.

But it's not it (the Memory Manager) that does the weird push/ret stuff - it's 
the first few instructions of the loaded code 1 resource. Are you saying that, 
after loading them in memory, the memory manager *modifies* the operands of 
these instructions, in order to reflect the place of the code 1 resource in 
memory?

(This is very important to me - so far I've assumed that the contents of the 
code 1 resource of the normal applications is constant. If that contents - 
i.e., its first few instructions - constantly changes as the applications are 
launched, that would have serious impact on the application I'm writing.)

> The D0 register is typically used for integer type return codes
> by most 68k compilers.

Yes, I knew that. But that's the purpose of setting its least significant bit 
to 1 as first thing when the code is launched?

> Look at the SystemMgr.c code in the Limited PalmOS 4 sources.
> You'll find the answer to your questions there.

Uhm that's some 230 Kb of C source - any hints at which function(s) I should 
look? Much of the code of SysAppLaunch seems to be censored anyway... and what 
is left basically sets a pointer (codeP) to the memory block containing the 
code 1 resource and calls PrvCallWithNewStack which essentially does a JSR to 
it.

I can't see anything modifying the beginning of the loaded code 1 resource and 
I can't see why the code in that code 1 resource transfers control via 
push/add/rts instead of via a normal jmp.

Regards,
Vesselin
-- 
For information on using the Palm Developer Forums, or to unsubscribe, please 
see http://www.palmos.com/dev/support/forums/

Reply via email to