[EMAIL PROTECTED] wrote:
I'm running on an emulator. So, it is a problem with what the emulator
supports rather than something I didn't link into my application?
Yes, most likely. System calls on Palm OS are done by calling traps.
No link editing is necessary to do that. The compiler just puts the
instructions to put the right stuff into the right registers (or on
the stack?) and then an instruction to generate a software trap. The
OS either has a trap handler for that trap (in which case the function
call is made) or it doesn't (in which case it crashes or you see an
error message).
Actually, if I remember right, opcodes in the range 0xA000 through
0xAFFF were left open by Motorola for the system to use, and the
way Palm OS traps work is that the compiler just inserts an opcode
for one of the "bogus" instructions in that range, and that causes
the processor to send itself the interrupt for an unimplemented
instruction. Then the OS puts in a handler for that and implements
whatever functionality is desired.
In fact, looking through the header files (CoreTraps.h and VFSMgr.h),
I can see that sysTrapFileSystemDispatch is defined as 0xA348, and
that all the VFS calls (like VFSOpen()) are dispatched through that
trap. So, it would appear that your executable is making the calls,
but the system doesn't have anything in place to handle the trap.
I would:
(a) fix your software so it checks if VFS is available before it
makes such calls, and
(b) go get the appropriate version of HostFS.prc (the one for the
emulator, since you said that's what you're using), and install
that, then do a soft reset so it can hook itself into the system.
Hope that helps.
- Logan
--
For information on using the PalmSource Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/support/forums/