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
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.
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.
TODO
Please see the !Help file within the !ArcEm application for usage information.
Copy the arcemrc and hexcmos files to a folder called 'arcem' on the root of your SD card. Add a 'rom' file here, too.
Extract the archive to any directory you choose, just add a file called ROM as described below.
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. In CVS versions simply edit the HOST_BIGENDIAN=no to HOST_BIGENDIAN=yes near the top of the Makefile.
make
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=winAdditionally, ArcEm will build in Microsoft Visual C 6. Project files are provided for this in the 'vc' directory. In CVS versions there are also project files in 'vc' for Microsoft Studio 2005.
TODO
ArcEm builds with GCC. You should use the following command:
make SYSTEM=riscos-singleIt 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-singleThe desktop version of ArcEm has not been developed yet, and will not build.
The Makefile assumes that you have DevKitGP2X installed in D:/gp2x/
You can build by simply:
make SYSTEM=gp2x
You will need the official Amiga OS4 SDK and GCC, then build with the following commands:
stack 500000 make SYSTEM=amigaIt will not compile with anything other than the OS4 includes. GCC 3.4.4 and 4.0.2 are known to work.
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 3a00000Copy 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.
From a shell prompt
cat ROM1 ROM2 ROM3 ROM4 > ROM
From a cmd.exe command prompt
copy /b ROM1+ROM2+ROM3+ROM4 ROM
TODO
TODO
TODO
From the commandline
join ROM1 ROM2 ROM3 ROM4 as 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 support2.zip and is called ro310, you should rename ro310 to ROM before using it with ArcEm.
Some of the platforms require specific instructions to let you move the mouse around.
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.
TODO
TODO
TODO
The Amiga version runs full-screen and captures all mouse input until you quit the program. You can quit ArcEm from the menu you can bring up with the Left Amiga key.
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.
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.
TODO Mention the GUI method of selecting disc images.
A menu to change the disc in drive 0 can be called up with the LAmiga key
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.
CVS versions of ArcEm support commandline options under Unix/X Windows and other platforms. The Amiga version will also accept them as tooltypes.
Option | Meaning | Allowed values | Default Value |
---|---|---|---|
--help | Display list of available options and exit | ||
--version | Display version number and exit | ||
--rom <value> | Specify the name of a romimage other than ROM | Path from place of execution to ROM image | ROM |
--extnromdir <value> | Specify the directory to use as the extnrom directory | Path from place of execution for extnrom dir | extnrom/ |
--hostfsdir <value> | Specify the directory to use as the base of hostfs | Path from place of execution to base of hostfs | hostfs/ |
--memory <value> | Change the amount of memory the emulated machine has | 256K 512K 1M 2M 4M 8M 12M 16M | 4M |
--processor | Change the emulated machine's processor | ARM2 ARM3 ARM250 | ARM250 |
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.
This section details some of the code that is only relevant when ArcEm is running RISC OS, it does not apply for ARM Linux
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:
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:
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 Number | X | Y | colours |
---|---|---|---|
32 | 800 | 600 | 256 |
100 | 1024 | 768 | 2 |
101 | 1024 | 768 | 4 |
102 | 1024 | 768 | 16 |
104 | 1280 | 1016 | 2 |
105 | 1280 | 1016 | 4 |
108 | 1152 | 864 | 2 |
109 | 1152 | 864 | 4 |
112 | 1400 | 520 | 16 |
120 | 1600 | 600 | 16 |
122 | 240 | 320 | 2 |
123 | 240 | 320 | 4 |
124 | 240 | 320 | 16 |
125 | 240 | 320 | 256 |
Known Issues:
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.
The display window doesn't resize on mode changes and remains at 800x600 (resolved in CVS).
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.
TODO
The RISC OS version is very slow.
The GP2x version is very slow.
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.
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