Sunday, February 24, 2008

Maximizing along (SVN 0.68)

I have added maximize/restore ability to windows and added the window title text.

I will be starting shortly on the shell package which manages the Safire main system parts which is the slider menu and system bar.

I am designing the last API parts of the menu. Note that because I have not implemented timers, there will be no animations in the slider but it will still give the effect.

I can't wait to try the slider myself and show it to all of you.

Thursday, February 21, 2008

On my way (SVN 0.66)

Details of my shell design are really coming along and I am starting to implement the basics to support the Safire shell. I already know more or less how the UI will look and I cannot wait to show you a demo of it. Now that all the platform main problems are behind me, I can finally start do things that are more user visible. A bunch of moving windows is not enough to spark user interest but I feel the shell will spark that interest.

I don't know how long it will take me, but I am trying to put as much time as I can on the project even though I have a full time job.

Wednesday, February 20, 2008

Screens is split! (SVN 0.65)

I have solved the exit issue and now Screens runs like it used to before the module split. The performance is not that bad:

I did not believe that Screens would improve as it has in the last 3 months. I still have alot of work ahead but these are design issues, not platform specific problems. I know how the UI will look but I need to design their components. I can't wait to show you all the slider, I think that while it might annoy some users, I think alot of you will like this design.

It works! (SVN 0.64)

I don't believe it!

It turns out that PalmOS is pre-ANSI C compiler which means that it does not know how to always initialize local arrays correctly. It took me a long time to figure this out (thank you

OK, So let me tell you what all this work meant...

It means that Screens can support modules in a very easy way. Currently I am running Screens with three modules:


core.exe, ui.dll and fs.dll


core.prc, ui.prc, fs.prc

I did not believe I would get to this point so quick! Three months of hard work and suddenly everything is moving easily along.

Using the make_api utility I am able to easily create function wrappers for all my functions that I want to export for other modules to call. The nice thing about the wrappers is that they look exactly like normal functions and are called like normal functions. I do have alot of optimizations to do and I still don't know how slow this will affect the performance on my LifeDrive.

Tuesday, February 19, 2008


OK, I still cannot understand why I am getting "Invalid read from 4E560000" error but I am still trying to debug the code (even though I cannot use the debugger).

However I have made a utility to allow me to create the API wrappers easily which has been uploaded including the source code.

Sunday, February 17, 2008

Moving along

OK, Things went smoother than I thought. I have finished the API wrappers between the packages. I still have to do the final code to set up the feature memory function pointer so that I can lookup loaded modules for the associated function. It should not be that slow because I do a small string lookup for the package name and then the function is by index. Also its easy to set up for new modules which was important to me. Hopefully the performance wont be too bad.

I hope to soon restore the demo as it was before hand so that I can continue spicing up the demo.

Friday, February 15, 2008

Hard to connect the dots

Screens is not doomed yet, however I am working on a very non UI issue which is the package/module interconnection. I have no problem loading a module. The problem is linking between the API calls which I am doing in a mostly platform independent layer which makes it hard to get it working but once its working, it will be easy for me to write new modules and connect the modules together.

I also need to make some changes in the UI component that it cannot use globals. The new file structure is stored per package with a consistent folder hierarchy. Its going to look like not much is happening but the truth is once I finish this major part of Screens, I can go straight to more exciting UI stuff. This is where I wish I had developers working for me but I guess if I want it to be perfect (my way) then I need to do it myself.

Please bare with me, I am working as hard as I can to get this module stuff finished as clean and fast as possible. I want to get the alpha demo done much more than all of you put together.

Tuesday, February 12, 2008


Hi, Sorry for the lack of updates...  I have been working hard on the module side of Screens. The kernel is more or less usable and now I need to start working finally on the UI Shell module. I still need to figure out the model model in all its glory details, this really feels like the final 'big problem' in front of Screens to stop the demo from being released. The loading of modules is more or less coded. The problem is the API side of things. I'll keep you posted on my progress.

Thursday, February 07, 2008


Sorry for the lack of posts and updates this week. I have had to put some more time in my full time job which did not leave me much time when I got home to work on Screens. However I have still had to plan the next components which is the shell itself. I have a new graphical layout which I hope to test soon in code.

I have had some SVN activity and I still need to upload some more changes in the way I update the screen. Screens now supports 320x480 resolutions and landscape support as well. I need to fix some bugs on this issue and then I will upload a video.

Sunday, February 03, 2008

Fast enough! (SVN 0.57)

Here is the latest version of Screens running on my LifeDrive without crashing and with a good enough frame rate.

I decided that I would try optimizing my code first and only if all efforts fail go towards ARM. Well, It looks to me like its fast enough at the moment to continue on this path without ARM. First of all, this is the 'release' (not 'debug') compilation which improves the frame rate. Also the bitmap component allows for platform specific storage so in PalmOS I just store the bitmaps as normal PalmOS bitmaps. The only thing which is custom blitted is the fonts which is probably what is slowing it down.

If you want to run the full demo on your handheld, just send me an email to and I will send you a zip file containing all the files you need to put in \Xec folder in your internal/external storage card.

I am amazed how far I have come in such a short time span. Five years of research and suddenly I am cranking out releases on a nearly daily release. I guess innovative projects require time and patience.

So far... So Good...

Friday, February 01, 2008

Video on LifeDrive (SVN 0.54d)

Here is a video of Screens running on my PalmOS LifeDrive:

You can see that it is very slow and its because I am doing blitting without ARM code which seems to be the way I need to go if I want Screens to have more than 1 frame per second. I hoped I would not need to go in the ARM direction but I guess I have not much of a choice at the moment.

Screens still crashes on exit but what's strange is that it is after my application dies which is weird. What's even more weird is that if I don't let it go through the VFS stuff (no bitmaps/fonts/XML usage) then it exits fine, must find a way to debug that.