3-Lib banner
>>The A-list
   >>OPL introduction
   >>OPL/16 advanced
   >>OPL/32 advanced
   >>Programming articles
>>About Me

The fabulous Utilikey


Writing OPL/32 programs - hints and links

Please note that I will not answer programming queries by e-mail, mainly because of time pressure this end. The purpose of this page is to give you a few pointers as to where to get information and to mention a few important tips that I think you'd find useful. See also my general Psion programming page for articles and OPL tutorials.

Hints and tips

*Nov 2002. EMCC have made their Programming Psion Computers book a free download. Go grab it now!

*June 1999. Psion and Symbian's OPL, C++ and Java Software Development kits are all now free. See http://www.epocworld.com/ for downloads etc. See also our new Makesis tutorial.

*May 1999. Neuon release the first of many extra OPXes. See their web site for downloads and details.

*February 1999 Mark O'Neill has created a simple popup scrollable list box, for inclusion into your OPL/32 programs. See his web site.

*30th July 1998 Jochen Siegenthaler has put up a help page for authors trying to integrate the built in ROM system language resources into their programs.

*15th July 1998 A new OPX announced by EMCC. CLIPBIT.OPX allows copying a bitmap, retrieving a bitmap, clearing the clipboard, multi-bitmap MBM assembly and bitmap information gathering. The CLIPTEXT.OPX has been updated as well. See EMCC's web site for details.

*10th July 1998 With the move from being Psion Software to being Symbian, the status of the rather wonderful EPOC/32 'Emulator' has changed. It's now freely downloadable for all and sundry, containing the full Series 5 application set plus Web and Email. The emulator runs in several different screen sizes as a standard Windows 95 application. Once downloaded and installed, make sure you read the "Readme" document.

*30th May 1998 Pelican Software have put up a wonderful guide to the OPL/32 DBMS.... check it out!

*23rd May 1998 I've posted an OPL/32 developers program check-list to aid application release and to ensure greater similarity between different programs.

*23rd May 1998 Phil Whiles has put up plenty of examples of using OPL/32's SQL database commands. See his web site.

*30th April 1998 John McAleely has started cataloging all the available OPL extensions (OPXes). See his web site for the full list.

*31st March 1998 RMR Software have released not one, but four new OPXes for OPL/32 programmers. They're all free as far as I know, covering extra OPL database commands, spellchecker access, message suite acess and control of parameters normally set within the Control Panel. More details from RMR Software.

*23rd February 1998 RMR Software are coordinating OPXes for the OPL/32 programmer. Starting the project off is Otfried Chong's SUBST and ALARM modules. More details from RMR Software.

*12th February 1998 Mark Fitzpatrick has released an OPL clipboard module. More details from his web site.

*10th February 1998 Thomas Tensi has announced a new scroll-bar module. See his web site for details.

*7th February 1998 EMCC have announced a new Clipboard OPX, enabling full use of the clipboard in OPL/32 programs. More details on their web site.

*3rd February 1998. Jason Kneen has produced a more advanced Toolbar.opo, replacing Psion's version in the ROM. See his web site.

*16th December 1997. Tim Richardson has produced a very handy Psion 'Help' file format version of the OPL/32 manual, complete with OPX syntax. Grab it from his web site.

*21st November 1997. Alan Richey has very kindly put together an example shell containing all the event and document handling code you'll need to do a fully-Psion-S5-compliant OPL/32 application. For example, he shows how to handle pen events, the toolbar, scrollbars, menu cards (including cascades) and copes with documents being chosen either from the GUI or via the button bar. Download it from his site and then make a note to buy him a beer or two. I've also composed a tutorial, based on the example code.

*6th November 1997. Andy Clarkson has released GPrinter.opx, a freeware vector graphics printing add-on for OPL/32 programs. Grab it from his web site.

*30th October 1997. One tip for all those of you who've been using OS calls in OPL/16 to do all sorts of low-level stuff. Don't worry. 99% of stuff you'll ever need is now effectively in OPL/32 itself. All you do is include the System.oxh file provided at the top of your source code and things like RunApp&: and SetBacklightOn: become simple in-line OPL calls. Very nice. There's also the new SYSRAM1.OPX now available from Psion, which adds even more system functions. The OPX and documentation on how to use it is here, witth Psion's kind permission, as sysram1.zip.

*From the free section of EPOC World, you'll need latest versions of the BMCONV and WVECONV utilities, for converting bitmaps and sound files over to the Series 5's native formats. It's worth noting that the new .MBM format for graphics is compressed and fairly wonderful. It's usual to take 100k of OPL/16 graphics and stack them and compress them together into one single 50k .MBM file. 8-)

*Note that although the Series 5 specification mentions 16-grey scales, and that you can indeed use all 16 if you really want to, for flashy graphics etc, it's a bad idea to use this mode for the main part of your program as there is significant extra battery drain when in this mode. See the OPL32 documentation for more detail on this. 16-colour bitmaps also use up far more memory and disk space, so make do with 4-colour mode if you can. Steer clear of 2-color windows as well, but for a different reason, there being some window server bugs in this mode.

*With the new pen-support, many authors (myself included) are having to learn to make their programs more 'event-driven'. A few simple GETs just don't cut it any more! All OPL/32 programs really need to respond to all the various pen events, plus of course things like system commands to switch documents, shut down etc. A tip: once you've got your event loop working, check the program's current consumption on the system screen. If the event loop is written properly, the current should be at the usual 40-60mA or thereabouts. If you've written it badly (i.e. racing round loops or polling TESTEVENT etc) the current drawn can be as much as 120mA. I'm not an expert on event-driven programming, so don't ask me for help on this.

*More on Help databases, courtesy of Psion UK:

"Here's how to make a help database with the same look & feel as the Series 5's built in help database. The help database needs 3 fields, called 'Title', 'Help text' and 'Keywords'.

"All 3 fields are 'Memo' type fields, i.e. unlimited amount of text. In the Label preferences dialog, the 'Title' and 'Help text' fields are not hidden, the 'Keywords' field is hidden. The font setting for the 'Title' field is Arial 9 points bold, and is set from the Label preferences dialog. The font used in the 'Help text' field is Times New Roman 9 points, but selected bits of text can be highlighted in bold, italic and so on. It's even possible to import text into this field from Word, which allows you to change the paragraph formatting, set tab positions, use automatic bullets and so on. In this field, "anything goes" to a large extent.

"The font used in the 'Keywords' field is irrelevant, as it's hidden anyway.

"In the Find by labels dialog, the 'Title' and 'Keywords' fields are ticked by default, the 'Help text' field is not ticked. In the View preferences dialog, the Show card browser box is ticked, the card width is 55% and the Show labels box is not ticked. No sorting is used. The help database should be organised such that the first one or two topics will help the experiences computer user to get going straight away, (each of the Series 5's built-in apps has a 'Quick start' topic, that's specifically for this purpose) the rest of the topics should be sorted alphabetically. Give the help database a filename with filename extension .hlp and this will ensure that the help database is opened using the help database viewer."

Note that the Quick Find option in Data seems to search the first and third fields only in a help database, and Find in All Text searches all fields. And this behaviour is regardless of how you've got 'Find by Label' set up.

*If you're having difficulty composing Series 5 icons for your programs, check out Phil Spencer's help page on this topic.

*I'll try to post other tips as I think of them. In the meantime, you can join EPOC World for free, watch the Psion site and watch the Usenet newsgroup comp.sys.psion.programmer.