bartop

palmoswerks ARCHIVE
Palm OS programming tips from a (former) CodeWarrior insider

header

Navigation

Search
Home
About
Stories
Stuff I Like
Articles
PilRC
CodeWarrior
palmos.techwood.org
DevTools List
Palm OS Dev FAQ

MacHack, Acer Dev Site, Another Expanded Mode Bug

Hey, everybody! I'm busy working on some really neat stuff I can't tell you about yet. However, I can tell you that I'm one of the speakers at MacHack next week. I'm doing a talk on Metrowerks' development tools for Palm OS. The odd thing is that I'm not really a Macintosh hacker at all; I do almost all my work on Win32. I'll probably only have my trust portable Dell laptop too at the show, but I've been told there will be Apple stickers that can be placed over the offending logo if needed. Will I be talking about V9? Maybe a little, but the bulk of my talk will be able using the current V8 tools to C++-based development for Palm OS 5 and earlier.

Acer Opens up Developer Site

Acer has opened a new developer site for PDA developers. You have to register to get access, but it looks like it will include emulator and ROM downloads, plus SDKs to take advantage of the special features of the Acer Palm OS devices. I hope Acer does a better job of POSE integration than Sony did, and I also hope they understand and honor the GPL as it applies to POSE.

Another Expanded Mode Bug Found

A user report today exposed another bug in expanded mode, the CW for Palm OS V8 feature that gives you more data space when using C++ features like virtual functions and exception. I hope this is one of the last ones.

This bug happens when you have more than 16K of expanded mode data above or below the A4 register. The relocation that gets emitted that gives a direct address was being used without a proper fixup to point into the expanded mode data section.

There's a one line fix, for the 8.2 runtime library. In PalmOS_Startup.cpp, go to the __Relocate_StorageHeap__ function. Look for a line that reads

offset=((data.lword << 2) >> 1);

After this line, add the line

offset = (segment - chunkBase) + offset;

This will fix the pointer and allow the data relocation to work correctly.

I've already tested this fix out with our expanded mode test cases, and this will be incorporated into the 8.3 patch, although I don't know when 8.3 will be released.

brought to you by weblogger.com


Send feedback to combee@techwood.org
Copyright © 2004 Benjamin L. Combee
Palm OS is a registered trademark of PalmSource, Inc.
Metrowerks and CodeWarrior are registered trademarks of Metrowerks Inc.

The views expressed on this website/weblog are those of mine alone and do not necessarily reflect the views of PalmSource or Metrowerks.

This is a Manila Site

qwertYAK / frobnovich