58
•
Since the Control Panel icons and the NETDIAL dialog server (NDDLGSVR) are GUI
dependent components which are needed to provide direct access to the comms database,
different implementations of these are required for each DFRD.
8.5 EPOC R5 New Features
8.5.1. Introduction
EPOC Release 5 contains many new features. In this chapter, we provide more technical detail on
those features as they affect the core components of EPOC. This chapter contains sufficient
detailed information for established EPOC users to plan how to use EPOC R5 with some
confidence. Some of this information assumes detailed familiarity with EPOC SDKs. Much of the
paper also to EPOC terms and components: for an introduction to these, see
EPOC Core chapter
.
8.5.2. Pervasive changes
EPOC Release 5 incorporates many changes which affect almost all EPOC components, and
almost all software development.
Performance improvements built into the base result in better context switching between
favoured processes, faster message passing, and many other improvements in kernel and executive
performance.
Every component has been affected by work preparatory to a full Unicode release. EPOC has since
its beginning contained support for a Unicode build with no source code changes, provided that
application developers made the appropriate distinction between binary data (always 8-bit bytes)
and character data (8-bit characters in the narrow build, 16-bit characters in the Unicode (wide)
build). Further support for Unicode requires that this assumption be checked in all source code,
by building and testing the entire EPOC system in Unicode. Toolchain improvements have been
implemented, together with improved text formatting, and frameworks for front-end processors
(FEPs) to allow entry of Far Eastern characters using handwriting recognition, or keyboard
techniques that have evolved in the relevant locales. This represents a major advance in EPOC’s
Unicode-readiness. However, EPOC R5 machines and SDKs support narrow characters only.
Colour support has been built into the GDI, bit blitter, bitmap tools, window server and EIKON.
EIKON now supports two colour schemes — one suitable for greyscale displays, one for displays
with at least 16 colours. Application colour schemes, and colour icons, have also been added.
The emulator is much more flexible than before. Any international PC keyboard variant is now
supported, the emulator can run from any directory including on a CD-ROM, and changes to
allow easier launching of Java applications have been made.
The debug and release builds of EPOC are now interoperable. This means that, say, a debug
version of an application may be run on a release-mode EPOC machine. For the first time, this
enables debug builds to be built and debugged on real users’ machines. This interoperability was
achieved while preserving binary compatibility in the narrow ARM REL build, narrow WINS
DEB and narrow WINC DEB builds — but in no other builds.
Many changes have been made to the kernel to improve its portability to other ARM and non-
ARM CPU architectures, and to other hardware variants. As a result, kernel-side binary
compatibility has been broken and all device drivers must be re-written: old device drivers will be
recognized and prevented from loading.
These changes have resulted in toolchain changes which have implications for most EPOC C++
projects, if only at the
.mmp
file level. However, very few changes have been made in source
compatibility, which means that almost all source code can be rebuilt for EPOC R5 without
change. In terms of binary compatibility, all but a very few changes to user-side APIs have been
backward compatible, so that programs built for EPOC R3 will generally run without rebuild
under EPOC R5.
Some changes in the user library provide an opportunity to write type-safe code, or code with
higher performance and smaller space requirements. These include descriptor literals, and range-
checked C arrays. Code written with an EPOC R5 SDK, using these features, will run successfully
under pre-EPOC R5 machines, provided that no other EPOC R5-specific features have been used.