Thursday, 26 March 2009

SilverOPO ...Porting my OPO interpreter to Silverlight

A few years back I started making an interpreter for OPO bytecode (the executable format for Psion OPL applications) though kinda faded from it after I completely fudged up the dynamic data stack frame (the internal data layout for storing variables, procedure information and dynamic memory allocations)
I got back to it the other day and finally fixed most of the bugs, though still not all of the opcodes have been implemented. The interpreter uses a modified version of my Pixel Graphics library with a basic bitmap based FontEngine (Fonts are pre-generated and stored server side for retrieval on demand)
I'll be writing a blog post for the StudentZine in the coming month, hopefully by then most of the bugs will be fixed and most of the porting changes will be completed.

Monday, 9 March 2009

Silverdraw in Action

So what does Silverdraw Look like? Well I've tried to model it on Paint built into Windows 7.

Currently it features a few tools and brushes, and a selection of colours. Also built in is the ability to communicate with other browser windows using its Isolated Storage.

So what do you think? Paint programs in the browser may be the future...

DeepSearch Blog Article

If you are interested in reading about DeepSearch and how its made, visit the StudentZine article surrounding it:


Now I finally thought of another cool use for my Pixel level graphics library for Silverlight. For this months article of StudentZine I will be writing a online paint program in Silverlight utilising my library, as you wouldn't be able to make an editable graphics layer normally with the vector graphics found in Silverlight... try doing a spraypaint effect in vector graphics ...eep!

For those that have asked, heres the class diagram for what the library currently looks like:

Friday, 6 March 2009

Pixel level graphics in Silverlight

Now I like Silverlight, however it uses Vector based graphics which is annoying as you can't perform Pixel based operations such as Get and SetPixel. Joe Stegman went around this problem by creating an editable image class that uses a PNG encoder to create the image which gets passed to a Silverlight image control to render.

This was an awesome Idea so I thought I would take it further so I have started porting over most of the functionality of the GDI bitmap class from .Net onto this platform so you can have truely editable and functioning Pixel based graphics in Silverlight.

For the time being heres a little demo of it doing the classic 3d cube:

As usual when I'm finished with the code I'll post it to code.msdn

Wednesday, 4 March 2009

Designing my .Net Micro Framework Widget Toolkit

Please Note:
The continuation of this topic and source code can be found on my new Blog at


The widgets library was recently used during the 2011 Microsoft Imagine Cup competition in the UK entry Child Sleep Safe, more information about the use of the Widgets is here

Back to the original article:

Now that I've been playing around with the .Net Micro Framework for some time I've been annoyed at what little GUI elements you get with it, and seeing as I'm wanting to make my own little GUI desktop and runtime engine for OPL/OPO on it I needed to design my own set of Widgets.

So I took some code from my original OPO runtime for Windows Mobile and altered it (seeing as the Micro Framework is more constrained on performance and is missing a lot of graphics functions) I finally got them to work, so here is a brief look at a dialog box and menu using my widget library - running on top of my .Net Micro Framework desktop I codenamed Sneaky Lemon. (You'll see that on the splash screen while its busy loading stuff)