ArcEm - The Acorn System Emulator

Version 1.02, 6th April 2006

This is a combined manual for the release version 1.00 and the later versions from CVS, when a feature is only available from the CVS it is marked CVS.
http://arcem.sf.net

 


Contents


Installation

Once installed all versions require a ROM image file, see below

Compiling ArcEm


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 4 you just created) so join them back together using this command.

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 support2.zip and is called ro310, you should rename ro310 to ROM before using it with ArcEm.

Mouse Input

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

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.
FloppyImage0
FloppyImage1
FloppyImage2
FloppyImage3
These are then available under RISC OS as the 4 disc drives ADFS:0 to ADFS:3, on Linux they are accessible as TODO.

Some platforms provide extra support for using floppy discs.

  • Unix/XWindows

    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.

  • Mac OS X

    TODO Mention the GUI method of selecting disc images.

  • Amiga

    A menu to change the disc in drive 0 can be called up with the LAmiga key

  • Using HD images

    ArcEm supports up to 4 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
    HardImage0
    HardImage1
    HardImage2
    HardImage3
    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 4 numbers multiplied together are equal to the size in bytes of the hard drive image.

    In RISC OS, you will also need to use the !Configure application to set the number of hard drives inside that OS.

    Commandline options CVS

    CVS versions of ArcEm support commandline options under Unix/X Windows and other platforms. The Amiga version will also accept them as tooltypes.

    OptionMeaningAllowed valuesDefault Value
    --helpDisplay list of available options and exit
    --versionDisplay version number and exit
    --rom <value>Specify the name of a romimage other than ROMPath from place of execution to ROM imageROM
    --extnromdir <value>Specify the directory to use as the extnrom directoryPath from place of execution for extnrom dirextnrom/
    --hostfsdir <value>Specify the directory to use as the base of hostfsPath from place of execution to base of hostfshostfs/
    --memory <value>Change the amount of memory the emulated machine has256K 512K 1M 2M 4M 8M 12M 16M4M
    --processorChange the emulated machine's processorARM2 ARM3 ARM250ARM250

    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.

    RISC OS specific Usage

    This section details some of the code that is only relevant when ArcEm is running RISC OS, it does not apply for ARM Linux

    HostFS CVS

    Make sure the files hostfs,ffa, hostfsfiler,ffa and arcemsupport,ffa are copied or 'sym-linked' from their support_modules sub directories into the 'extnrom' directory.

    Create a directory called 'hostfs' in your executable directory, if it does not exist already. This directory is the root of the 'virtual harddisc'. (You can override this directory and put it in a different place with a commandline option).

    When you boot up RISC OS 3.1x there should be a HostFS icon in the bottom left of the screen, clicking this will open up the host filing system and behaves in the same manner as a real Archimedes harddisc.

    Simply copy files on your host into the hostfs directory and they will be available to RISC OS.

    RISC OS filetypes are written to the host in the style of NFS mounts on Unix with a ,XXX on the end, eg a textfile would appear to be textfile,ffd.

    Files copied into the hostfs directory are unlikely to have their RISC OS filetypes, use the RISC OS 'set type ' function in the filer.

    Known Issues:

    Mouse Scrollwheel support CVS

    Make sure the file scrollwheel,ffa is copied or 'symlinked' from the 'support_modules/scrollwheel' directory into the 'extnrom' directory.

    Spinning the scrollwheel up and down in RISC OS over windows that are vertically scrollable works in the way you'd expect.

    Known Issues:

    Additional Screen modes CVS

    Make sure the file ArcemModes,ffa is copied or 'symlinked' from the 'support_modules/modes' directory into the 'extnrom' directory.

    Once the module is loaded these modes can be chosen in the normal RISC OS way, by typing:

    *wimpmode <number>
    

    Here's a list of provided modes

    Mode NumberXYcolours
    32800600256
    10010247682
    10110247684
    102102476816
    104128010162
    105128010164
    10811528642
    10911528644
    112140052016
    120160060016
    1222403202
    1232403204
    12424032016
    125240320256

    Known Issues:


    Known Issues and bugs

    All platforms

    There is no support for emulating 256K/512K/1MB RAM machines.

    2MB RAM support incorrectly has a 32KB page size set, real machines have a 16KB page size, RISC OS copes with this and boots as normal.

    All interlaced modes are displayed at their logical resolution, this means displays in some modes appear to be half the height they would appear on real monitors.

    Unix/X Windows

    The display window doesn't resize on mode changes and remains at 800x600 (resolved in CVS).

    Microsoft Windows

    The version 1.00 binary is very unstable and crashes regularly.

    The only menu items that do anything are Quit and About.

    The mouse handling is very poor.

    The Windows version has no diagnostics if anything goes wrong and will quite without warning (unless you rebuild with a console).

    ARM Linux does not currently work in the Windows version of the emulator. There is an unknown issue with harddrive access.

    Mac OS X

    TODO

    RISC OS

    The RISC OS version is very slow.

    GP2x

    The GP2x version is very slow.

    Amiga

    There is no error output when run from Workbench (it appears to do nothing when ROM is not found). You can get the error output by starting it from the Shell.

    ArcEm always opens an 8-bit screen even if the emulation requests a lower depth.

    There is intentionally no keyboard remapping, keys are mapped based on position.

    It will only run full screen, not windowed.


    ChangeLog:

    1.01 - 26th February 2006

    1.00 - 6th May 2002

    0.60 - 30th September 2001

    0.50 - 4th September 1999

    0.40 - 27th July 1998

    For details of older changes, see docs directory.