December Adventure Day 19
Organiser Icons
I woke up on day 19 of my December Adventure feeling that I’ve not used my Psions nearly enough in the past week: while I’ve been doing many Psion adjacent things with OpoLua and PsiEmu, I’ve not taken the time to sit down and tinker with the devices that inspire my adventuring and serve as enjoyably disconnected tools. With that in mind, I decided to tackle the first item in the Organiser II lucky dip and, ‘improve the Ideas UX’.
Ever since reading about the Organiser II’s OPL support for user-defined characters, I’ve been keen to try it out and replicate the classic menu screen that the built-in programs provide.
Organiser II LZ home and app menus are a scrollable grid of options with a title bar containing an icon and clock
Organiser II icons are 5px by 8px, and loaded as a sequence of 8 bytes using the UDG command. For example, the following character is written to user-defined character 1 with UDG 1,30,14,4,14,30,14,11,25.
There’s one additional constraint when creating icons for the title bar: the bottom two-rows of pixels are taken up with the underline, meaning that the icons themselves can only be 5px by 6px.
Armed with this information, I spent an enjoyable analog hour-or-so experimenting with icons:
Given the restrictions, I’m pretty pleased with what I came up with. I’m particularly fond of the following ones:
The lightbulb—an early design—remains my favorite for the ideas app, so I set about writing the top-level menu picker. Thankfully, as with OPL on later Psions, there’s a lot of conveniences for producing standard UI and it’s easy to replicate the menu screen with a combination of UDG, CLOCK, and MENUN:
menu::
CLS
UDG 0,14,17,21,14,10,4,0,31
UDG 2,0,0,0,0,0,0,0,31
PRINT CHR$(0);REPT$(CHR$(2),14)
CLOCK(1)
m%=MENUN(2,"New,View,Random")
IF m%=0
GOTO quit::
ELSEIF m%=1
GOTO new::
ELSEIF m%=2
GOTO show::
ELSE m%=3
GOTO rand::
ENDIF
In the process of updating the program, I kept hitting up against an out of memory error on my Organiser II. It turns out the internal drive is drive ‘A’ and not drive ‘C’ as one might expect of DOS and Windows era computers—I’ve been happily writing to (and filling up) my write-once 64k datapak for the past couple of weeks. Time to get a datapak formatter. 🤦
While the ordering of menu items could be better, I’m pretty pleased with the outcome. 💡
Enjoying Colin’s Advent of Beeb while designing Organiser II icons—heaven!