# Starting the Emulator and applications

## Contents

- Overview
- Basics
- Language-specific development

## Overview

This topic describes how to start and stop the Emulator, and run applications. Language-specific development notes extra issues of which developers in various programming languages should be aware.

## Basics

##### EIKON shell and applications

EIKON is the standard GUI framework for EPOC. It has a shell that allows users to start and stop applications, manage files, configure the machine, and so on. It is the only way by which EIKON applications can be started.

The EIKON shell is started by running `epoc.exe`. The possible locations of this file are described in Files and locations . A number of options can be passed to `epoc.exe` on the command line to modify the Emulator behaviour. These are discussed in Command line options.

##### Text console applications

Text console applications perform their input and output through a simple console window, rather than through a graphics shell. They are built as a simple `.exe files`. The necessary code to create an Emulator console window is built into such applications. You can therefore start them by simply running the `exe` from Windows.

##### Closing the Emulator

You can quit the Emulator by closing the Emulator window in the normal Windows ways or, in debug builds of the Emulator, by pressing ctrl+alt+shift+E.

When the Emulator simulates a power-off, it minimises the EPOC Emulator window. Restoring the application simulates an EPOC power-on.

## Language-specific development

Developers for different programming languages should note that there may be extra options for how applications are launched. This section contains a brief discussion of such language-specific issues.

##### OPL

Translated OPL programs (`opo` files) are run from the EIKON shell. With a few extra steps, OPL programs may also run from the Extras bar. For more details, see the OPL SDK.

Translated OPL programs are machine-independent, so they can be copied between target and Emulator without retranslation. You cannot, however, copy and run programs that use OPXs, as these are written in C++.

##### Java

There are a number of ways that Java applications on the Emulator can be launched, including from the Windows command-line and from the EIKON shell. For more details, see the Java SDK.

Java programs are also machine-independent, and so can be copied between target and Emulator.

##### C++

C++ developers face the most complex position, as operating system concepts such as processes and threads are directly exposed to the programmer. The Emulator is a single-process environment, unlike the target environments, which are multi-process. For many EIKON applications, this difference is transparent, as each process is emulated by a Windows thread. There are, however, differences regarding some executables, such as console applications and servers. For more details of these, see the C++ SDK.