Thanks for the pointer to the code Tim, I've downloaded it and will take a look. Hopefully it'll help towards a Symbian port. Even if it uses too much memory on the 9210 there's the possibility of it running on future phones with more memory (Like the SonyEriccson P800).
One of the things that was/is a problem with the EPOC port is the apparent need for the globals to be gathered into a struct of some some sort and initialised.
On Symbian (and probably Epoc) if the application is to play nicely with the OS it is really a DLL that is loaded by the OS. DLL's are not allowed to have static writable variables to allow them to be placed in ROM. So the big task in porting is usually to get rid of global variables. As you mention there is a hack to get around it. You have the application built as a .exe (which can have global variables) and a DLL 'front end' which spawns the .exe inside it's own address space. The technique is described in the write up about porting Mame to Epoc:
http://www.symbian.com/developer/techlib/papers/MAME/MAMEDream.html
Chris.
squeak-dev@lists.squeakfoundation.org