# What’s new in OPL for EPOC Release 5

The EPOC operating system has changed significantly for Release 5, and many of these changes and improvements are directly available to OPL programmers. There are new language keywords and OPXs, and the behaviour of some keywords and procedures have changed slightly. The principal areas of OPL that have changed for ER5 are colour support and MIME recognition.

- MIME recognition though the `MIME` keyword.

EPOC Release 5 supports MIME recognition for foreign documents. These are files which are not native to EPOC and have no UIDs, for example plain text files or JPEG images. In ER5, these files can be recognised by the system and handed to an appropriate application. The new `MIME` keyword associates an OPL application with a MIME data type. See OPL and MIME for details.

- Changes to the way `GETEVENT32` and `SETDOC` are used.

EPOC Connect now restarts applications that were closed for backup. OPL apps should handle the Start and Close system event messages with `GETEVENT32` to take advantage of this.

The System screen under ER4 and ER5 contains a `Recent files` list on its toolbar. In order to take advantage of this, ER4 and ER5 OPL applications should use `SETDOC` to announce an opened document to the system. As in EPOC release 3, this also has the effect of displaying the document name in the system task list.

- Enhanced colour support

Colour capabilities have been improved for ER5, and OPL supports these improvements. A new keyword, `gCOLORINFO`, can be used to get the maximum number of colours available on the system, `DEFAULTWIN` and `gCREATE` have changed, and new constants have been added to `Const.oph` to cover these changes. The background colour of a window can be set with `gCOLORBACKGROUND`, and `Toolbar.opo` now supports colour.

These changes are fully documented in the Colour graphics and Toolbar interaction topics and the keyword reference section.

- Updates to menu behaviour.

Menu panes now scroll if they are larger than the screen. No code changes are needed to make use of this: see the Menu interaction topic.

- Bug fixes to Date.opx.

Fixes bugs where `DtNewDateTime()` etc. could incorrectly fail with an ‘out of range’ error. The OPX header and OPX interface remain the same.

These fixes were released with `Date.opx` 1.01 in EPOC Release 4.

- Support for the Contacts list with Contact.opx.

Management of the contacts list used by the new Contacts application is available though OPL. A new OPX, `Contact.opx`, has been added to allow control over the contacts list; this OPX exports functions for adding, creating and deleting a user’s contact information, as well as sorting and searching.

- Improved DBMS functionality.

Changes to the Database Management System for ER5 require that restricted views of tables be explicitly refreshed to make changes made to a table’s contents visible. `DbRefresh:` in the new dbUtils.opx can be used for this.

- Changes to opltran

`Opltran` can now convert between ASCII and EPOC OPL formats.

## ER5 changes to the OPL documentation

This documentation has been extensively revised and reformatted for EPOC release 5. In particular, it no longer discusses the SIBO implementation of OPL used on Psion’s Series 3 range of handheld computers. The EPOC OPL Guide and Reference documentation discusses only EPOC implementations of OPL.

The EPOC OPL Guide and Reference documentation is now distributed with the EPOC Tools and Utilities guide, and the EPOC Emulator documentation. The EPOC Tools and Utilities documentation describes tools that are shared by more than one SDK; and the EPOC Emulator manual describes how to use and configure the EPOC Emulator, which is the principal development and debugging platform for EPOC applications.

Opltran, the PC command-line OPL translator is documented in the EPOC OPL system documentation as it is a tool specific to OPL.