ArcEm – The Acorn Archimedes Emulator

ArcEm 1.00 Manual



Follow the instructions appropriate for your system:

Unix/X Windows

Download the src archive and follow the compilation instructions below. Once compiled copy the arcemrc file to your home directory as .arcemrc. When run there is some output on the console.

Microsoft Windows

Extract the archive and supply a ROM image, the program is called ArcEm.exe. Create a shortcut to this file if you want to add it to your start menu or desktop.


Please see the !Help file within the !ArcEm application for usage information.

Note: Once installed all versions require a ROM image file.

Compiling ArcEm

Follow the instructions appropriate for your system:

Unix/X Windows

The X windows version compiles up using the 'Makefile' contained in the root of the source package. If you have a big endian processor, such as Sparc or PowerPC edit the Makefile to add the -DHOST_BIGENDIAN flag to the CFLAGS field.

$ make
Microsoft Windows

ArcEm will build under Cygwin. It builds a version which is independent of Cygwin (unlike the previous version of ArcEm for Windows), so you will also need to ensure you have mingw-runtime library installed (from Cygwin setup). Use the following command:

$ make SYSTEM=win

Additionally, ArcEm will build in Microsoft Visual C 6. Project files are provided for this in the 'vc' directory.


ArcEm builds with GCC. You should use the following command:

*make SYSTEM=riscos-single

It is possible to build with Leo White's RiscXLib if you really want to make an X Windows version under RISC OS, but that is beyond the scope of this guide. Finally, it is also possible to cross compile it using GCCSDK. e.g.:

$ CC=/home/riscos/cross/bin/gcc make SYSTEM=riscos-single

The desktop version of ArcEm has not been developed yet, and will not build.

Using ArcEm

ROM images

As ArcEm is only a hardware emulator to make it do anything useful you need an operating system ROM. ArcEm has been tested with and is known to work with ARM Linux, RISC OS 3.10, RISC OS 3.11 and RISC OS 3.19. ARM Linux ROMs are freely available, check the website. RISC OS 3.1x ROMs can be extracted from a real Acorn machine using the following commands on RISC OS.

*save :0.$.ROM1 3800000 3880000
*save :0.$.ROM2 3880000 3900000
*save :0.$.ROM3 3900000 3980000
*save :0.$.ROM4 3980000 3a00000

Copy these files to your host operating system, RISC OS 3.1x supports DOS formatted floppy discs so you can use them to transfer the files. ArcEm needs the ROM file to be in one part (rather than the four you just created) so join them back together using the appropriate command for your system:


From a shell prompt:

$ cat ROM1 ROM2 ROM3 ROM4 > ROM

From a cmd.exe command prompt:

copy /b ROM1+ROM2+ROM3+ROM4 ROM

From the command line:

*print ROM1 { > ROM }
*print ROM2 { >> ROM }
*print ROM3 { >> ROM }
*print ROM4 { >> ROM }

Alternate sources of ROM images

You can download a copy of the RISC OS 3.10 ROM image as a support file from the !A310emu website, it's in the file and is called ro310, you should rename ro310 to ROM before using it with ArcEm. Another good source is the 4corn Archive.

Mouse Input

Some of the platforms require specific instructions to let you move the mouse around.

Unix/X Windows

Whilst the Main display window has the focus, press the + key on the numeric keypad to 'capture' the mouse. To 'free' the mouse again for use with the rest of your X desktop press numeric keypad + again.


Although there is some mouse movement when you move the cursor over the display window, you can use the Unix/XWindows style numeric keypad + toggle to 'capture' and 'free' the mouse for better performance. Currently mouse handling on the Windows build is very poor.


The RISC OS version runs full-screen and captures all mouse input until you quit the program. Pressing the Escape key will quit ArcEm.

Using floppies

All the platforms support using .adf format floppy disc images. A disc image is a binary dump of the contents of a floppy disc. ArcEm has no support for directly using the host computers real floppy disc drive.

The basic support for floppy discs is to allow you to have the following floppy disc images in the current working directory of the ArcEm executable:

These are then available under RISC OS as the four disc drives ADFS:0 to ADFS:3. On Linux they are accessible as TODO.

Some platforms provide extra support for using floppy discs:


Whilst the control pane window has the focus, pressing 0, 1, 2 or 3 will eject/insert floppy disc images, those images still have to be named as above, but with moving of images around you should be able to change discs at run time.

Using HD images

ArcEm supports up to four Harddiscs, hard disc images are binary files that represent a hard drive's contents. ArcEm support the ST506 disc interface from Archimedes computers allowing it to support drives up to 64MB in size. Hard drive images should be placed in the current working directory of ArcEm and be named:

You also need to specify the hard drive "shape" in the arcemrc config file. The "shape" lists the number of Heads, Cylinders, Sectors and the Record Size, these four numbers multiplied together are equal to the size in bytes of the hard drive image.

When emulating RISC OS, you will also need to use the !Configure application to set the number of hard drives within the OS.

arcemrc file

The arcemrc files stores information about the number and 'shape' of harddisc's attached to the emulated machine. Here is an example arcemrc:

MFM disc
1 1024 8 32 256
MFM disc
2 612 4 32 256

The five numbers represent the following:

  1. Hard drive number: 0 to 3 inclusive.
  2. Number of Cylinders: 1 to 1024 inclusive.
  3. Number of Heads: 1 to 256 inclusive.
  4. Number of Sectors per track: 1 to 256 inclusive.
  5. Sector Length: 256, 512, 1024, 2048, or 4096.

For the premade hard drive images available on the website the shape information should be available. For your own harddiscs that you have imaged you should check the Harddrive itself, as the number of cylinders, sectors and heads is normally printed on it.

Known Issues and bugs

All platforms

Unix/X Windows

Microsoft Windows