UDGBUF: A Poor Man's Framebuffer on Psion Organiser II, Part 1

Today I had some more fun with my rediscovered Psion Organiser II. It’s about time to get my hands on a model LZ or LZ64 to enjoy twice the amount of screen real estate. ;)

This time I toyed with UDG (user defined characters) again. As the Psion reference manual states you can use these to make small animations as updating these changes them on screen immediately. That gave me the idea to implement some minimalistic framebuffer using all eight UDGs. I print four static UDGs in screen row 1, the other four in screen row 2, this way you get a whopping 40x16 pixel space for graphics!

It would be nice to read/write to the display controller directly and provide some convenience functions to do basic drawing, but I don’t feel like learning to write HD6303 maqchine code just yet, so for now I plan to pass a pointer to some shadow memory (which I plan to allocate by creating a large global array or string) around where you do your graphics stuff, this will be then copied to the UDGs.

As a first test, I wrote a small program that walks through the memory of the Psion and displays it in the UDGs, with this result:

Tomorrow, I’ll try to write some functions to provide a few basic graphics operations to set and get a pixel value. And maybe even some Bressenham line/circle drawing after that.