April 01, 2003

The History of OPL (Part One)

OPL first made its appearance on the Psion Organiser II in 1984. Before OPL, all programs for Psion's machines had to be written in assembler using a PC development kit, requiring the developer to have a good, in-depth knowledge of programming.

By this time, the BASIC programming language was available for most home computers, making computer programming accessible to anyone who owned a computer. OPL was based on BASIC, but specialized for the Psion Organiser II. Users were able to write simple programs even if they didn't have the in-depth knowledge which assembler programming required.

OPL was originally designed as a database language to access or create databases shared with the Psion Organiser II's built-in Data application, but it has evolved with each new hardware device, always aiming to maintain good backward compatibility with previous versions. This helped developers to port existing OPL applications to a new device with the minimum of effort, while at the same time giving OPL applications the ability to have the same look and feel as the built-in applications. A key requirement for OPL was to make it possible to develop applications fully on the device itself.
The power of OPL has arisen from its extensibility. OPL has supported language extensions from the beginning, via 6301 assembler procedures on the Psion Organiser II, and now via C++ OPX procedures on phones running Symbian OS.
On the Psion Organiser II, the OPL runtime was written in 6301 assembler. The main functionality included loops; conditionals; one-dimensional menus; database keywords; error handling; arithmetic operators; mathematical functions; language extensions written in assembler; and procedure files in a flat filing system. At this time, most of the applications were written for the corporate environment.

In the late 1980s, Psion launched the MC series of (laptop sized) devices. OPL was ported over to the 8086 CPU and had the broadly the same functionality as the Organiser — without menus, but with dynamically loadable modules, keywords to call OS services and input/output keywords (synchronous and asynchronous).

The Psion HC was again built around the 8086 chip, but it was more graphically based. In addition to the keywords added for the MC series, there were graphics keywords, the ability to call procedures by indirection, the concept of OPL applications that looked like built-in applications, event handling (for handling messages from the operating system such as switch files, close, etc.), and command-line support.

The Psion Series 3 (with the SIBO operating system) was released in 1991, and along with it came the first OPL Software Development Kit (SDK) giving many utilities and macros for nearly full access to the SIBO operating system services. Series 3 OPL added menus, dialogs, and the expression evaluator (used by the Calculator application).

When the Psion Series 3a came out a few years later, OPL was again upgraded and remained almost unchanged for the rest of the SIBO range (Psion Series 3a, 3c, 3mx, Siena and the Workabout range). It added allocator keywords, a cache with least-recently-used procedures flushed when necessary (for up to seven times speed improvement), and digital sound support.

In 1997, OPL was ported to C++ for Symbian OS, adding pen event handling, cascaded menus, popup menus, language extensions (using OPXs), constants and header files. Other enhancements included toolbar support and extremely powerful access to the new Symbian OS DBMS database implementation. The first Symbian OS OPL SDK was released shortly afterwards, allowing developers to develop OPL applications on a PC with the addition of a number of tools.

Symbian OS v5 in 1999 added improved color support and file recognition thanks to MIME support, amongst many other minor improvements.

Where OPL goes now and how it fits in with Symbian OS 6, 6.1 and 7.0 is what the rest of this site (and hopefully hundreds more) is all about.

The majority of information in this article was provided by Symbian.

Posted by Ewan at April 1, 2003 11:00 AM
Comments
Post a comment