Author: musuruan
Update of /cvs/free/rpms/arcem/F-9
In directory se02.es.rpmfusion.net:/tmp/cvs-serv31925/F-9
Modified Files:
.cvsignore sources
Added Files:
README_arcem.dribble arcem-cvs_20070611-improvemakefile.patch
arcem-cvs_20070611-manual.patch
arcem-cvs_20070611-soundfix.patch
arcem-cvs_20070611-uichanges.patch arcem.sh arcem.spec
Log Message:
First import
--- NEW FILE README_arcem.dribble ---
ArcEm Dribble Readme
--------------------
The version of ArcEm from Dribble is launched using a wrapper script which is
installed as "/usr/bin/arcem". If arcem is called with the parameter
'auto',
or launched via the desktop menu entry then it will automatically setup an
appropriate ArcEm environment for you. It will continue to use this environment
everytime it's launched in this way. This environment is maintained in your
homespace, in the .arcem directory. If ArcEm is launched without the auto
parameter then it behaves verbatim and will not use that environment by
default.
The 'auto' parameter will:
--------------------------
* Ensure all of ArcEm's files are kept in and read from ~/.arcem
* Setup all the supported extension modules, eg ScrollWheel support and
extended screenmodes.
* Provide a virtual hard disc inside ArcEm (under RISC OS only) pointing
to your homespace.
* Launch arcem with the 'ARM Linux' rom, unless a 'RISC OS 3.XX' rom is
present in ~/.arcem and called ROM.
NOTE: RISC OS roms cannot be included with ArcEm for legal reasons. It is up to
the end user to obtain these by a legal means. The 'ARM Linux' rom is largely
included so you may see ArcEm running, but is probably of little practical use
to most people.
Please consult the ArcEm manual.html for further information on using floppy
disc images and hard disc images etc. Remember to place these in ~/.arcem
if you are using the auto environment.
arcem-cvs_20070611-improvemakefile.patch:
--- NEW FILE arcem-cvs_20070611-improvemakefile.patch ---
--- arcem/Makefile.orig 2006-09-24 14:14:03.000000000 +0100
+++ arcem/Makefile 2007-06-13 20:03:22.000000000 +0100
@@ -50,25 +50,17 @@
# Should stay as LITTLEEND when used in ArcEm
ENDIAN=LITTLEEND
-WARN = -Wall -Wno-return-type -Wno-unknown-pragmas -Wshadow \
- -Wpointer-arith -Wcast-align -Wstrict-prototypes \
- -Wmissing-prototypes -Wmissing-declarations -Wnested-externs \
- -Wcast-qual -Wwrite-strings
-
-ifeq ($(PROFILE),yes)
-CFLAGS = -O -g -pg -ftest-coverage -fprofile-arcs
-else
-CFLAGS = -O3 -funroll-loops -fexpensive-optimizations -ffast-math \
- -fomit-frame-pointer -frerun-cse-after-loop
-endif
+WARN =
+
+RPMFLAGS =
-CFLAGS += \
+CFLAGS = $(RPMFLAGS) \
-D$(ENDIAN) $(CFL) -DNOOS -DNOFPE $(WARN) \
-I$(SYSTEM) -Iarch -I.
-prefix=/usr/local
+prefix=/usr
-INSTALL_DIR = $(prefix)/bin
+INSTALL_DIR =
INSTALL=cp
@@ -138,8 +130,8 @@
endif
ifeq (${SYSTEM},X)
-CFLAGS += -DSYSTEM_X -I/usr/X11R6/include
-LIBS += -L/usr/X11R6/lib -lXext -lX11
+CFLAGS += -DSYSTEM_X -I/usr/include/X11
+LIBS += -lXext -lX11
endif
ifeq (${SYSTEM},win)
@@ -188,7 +180,8 @@
all: $(TARGET)
install: all
- $(INSTALL) armul $(INSTALL_DIR)
+ mkdir -p $(INSTALL_DIR)/$(prefix)/bin
+ $(INSTALL) arcem $(INSTALL_DIR)/$(prefix)/bin/arcem.bin
$(TARGET): $(OBJS) $(MODEL).o
$(LD) $(LDFLAGS) $(OBJS) $(LIBS) $(MODEL).o -o $@
arcem-cvs_20070611-manual.patch:
--- NEW FILE arcem-cvs_20070611-manual.patch ---
--- arcem/manual.html.orig 2003-04-20 23:24:36.000000000 +0100
+++ arcem/manual.html 2007-06-11 21:13:02.000000000 +0100
@@ -1,259 +1,480 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/strict.dtd">
-<html><head>
-
-<title>
- ArcEm Manual
-</title>
-
+<html>
+<head>
+<title>ArcEm Manual</title>
</head>
<body>
+<h1>ArcEm - The Acorn System Emulator</h1>
+<h3>Version 1.02, 6th April 2006</h3>
+<p>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 <font
color="#00CC00">CVS</font>.<br>
+ <a
href="http://arcem.sf.net/">http://arcem.sf.net</a>
+</p>
+<p> </p>
+<hr>
+<h2>Contents</h2>
+<ul>
+ <li><a href="#install">Installing ArcEm</a></li>
+ <li><a href="#compiling">Compiling ArcEm</a></li>
+ <li><a href="using">Using ArcEm</a>
+ <ul>
+ <li><a href="#romimages">ROM Images</a></li>
+ <li><a href="#mouseinput">Mouse Input</a></li>
+ <li><a href="#floppies">Using floppies</a></li>
+ <li><a href="#HDimages">Using HD images</a></li>
+ <li><a href="#commandline">Commandline options <font
color="#00CC00">CVS</font></a></li>
+ <li><a href="#arcemrc">arcemrc file</a></li>
+ <li><a href="#riscosusage">RISC OS specific Usage</a>
+ <ul>
+ <li><a href="#riscosusagehostfs">HostFS <font
color="#00CC00">CVS</font></a></li>
+ <li><a href="#riscosusagescrollwheel">Mouse Scrollwheel
support <font color="#00CC00">CVS</font></a></li>
+ <li><a href="#riscosusageextramodes">Extra Screen Modes
<font color="#00CC00">CVS</font></a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><a href="#issues">Known Issues and bugs</a>
+ <ul>
+ <li><a href="#knownall">All platforms</a></li>
+ <li><a href="#knownX">Unix/X Windows</a></li>
+ <li><a href="#knownWIN32">Microsoft
Windows</a></li>
+ <li><a href="#knownOSX">Mac OS X</a></li>
+ <li><a href="#knownRO">RISC OS</a></li>
+ <li><a href="#knownGP2X">GP2x</a></li>
+ <li><a href="#knownAMIGA">Amiga</a></li>
+ </ul></li>
+ <li><a href="#changelog">ChangeLog</a>
+</ul>
+<hr>
+<p></p>
+<a name="install"></a>
+<h3>Installation</h3>
+Once installed all versions require a ROM image file, see below
+<ul>
+ <li><b>Unix/X Windows</b>
+ <p>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.</p>
+ </li>
+ </li>
+ <li><b>Microsoft Windows</b>
+ <p>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.</p>
+ </li>
+ <li><b>Mac OS X</b>
+ <p><font color="#FF0000">TODO</font></p>
+ </li>
+ <li><b>RISC OS</b>
+ <p>Please see the !Help file within the !ArcEm application for usage
information.</p>
+ </li>
+ <li><b>GP2x</b>
+ <p>Copy the arcemrc and hexcmos files to a folder called 'arcem' on the
root of your SD card. Add a 'rom' file here, too.</p>
+ </li>
+ <li><b>Amiga</b>
+ <p>Extract the archive to any directory you choose, just add a file called ROM
as described below.</p>
+ </li>
+</ul>
+<hr>
+<a name="compiling">
+<h3>Compiling ArcEm</h3>
+</a>
+<ul>
+ <li><b>Unix/X Windows</b>
+ <p>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 <font color="#00CC00">CVS</font>
versions simply edit
+ the HOST_BIGENDIAN=no to HOST_BIGENDIAN=yes near the top of the Makefile.
+ <pre>
+ make
+ </pre>
+ </p>
+ </li>
+ <li><b>Microsoft Windows</b>
+ <p>ArcEm will build under <a
href="http://sources.redhat.com/cygwin/">Cygwin</a>.
+ 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:
+ <pre>
+ make SYSTEM=win
+ </pre>
+ Additionally, ArcEm will build in Microsoft Visual C 6. Project files are
+ provided for this in the 'vc' directory. In <font
color="#00CC00">CVS</font> versions
+ there are also project files in 'vc' for Microsoft Studio 2005.
+ </p>
+ </li>
+ <li><b>Mac OS X</b>
+ <p><font color="#FF0000">TODO</font></p>
+ </li>
+ <li><b>RISC OS</b>
+ <p> ArcEm builds with GCC. You should use the following command:
+ <pre>
+ make SYSTEM=riscos-single
+ </pre>
+ 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 <a
href="http://hard-mofo.dsvr.net/gcc/">GCCSDK</a>.
+ e.g.:
+ <pre>
+ CC=/home/riscos/cross/bin/gcc make SYSTEM=riscos-single
+ </pre>
+ The desktop version of ArcEm has not been developed yet, and will not build.
+ </p>
+ </li>
+ <li><b>GP2x</b>
+ <p>The Makefile assumes that you have DevKitGP2X installed in
D:/gp2x/<br>
+ You can build by simply:
+ <pre>
+ make SYSTEM=gp2x
+ </pre>
+ </p>
+ </li>
+ <li><b>Amiga</b>
+ <p>You will need the official Amiga OS4 SDK and GCC, then build with the
following commands:
+<pre>
+stack 500000
+make SYSTEM=amiga
+</pre>
+ It will not compile with anything other than the OS4 includes. GCC 3.4.4 and 4.0.2 are
known to work.
+ </p>
+ </li>
+</ul>
<hr>
-<h1>ArcEm - Archimedes Emulator</h1>
+<a name="using">
+<h3>Using ArcEm</h3>
+</a> <a name="romimages">
+<h4>ROM images</h4>
+</a>
+<p>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.
+<pre>
+ *save :0.$.ROM1 3800000 3880000
+ *save :0.$.ROM2 3880000 3900000
+ *save :0.$.ROM3 3900000 3980000
+ *save :0.$.ROM4 3980000 3a00000
+</pre>
+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.
+</p>
+<ul>
+ <li><b>Unix/XWindows</b>
+ <p>From a shell prompt</p>
+ <pre>cat ROM1 ROM2 ROM3 ROM4 > ROM</pre>
+ </li>
+ <li><b>Windows</b>
+ <p>From a cmd.exe command prompt</p>
+ <pre>copy /b ROM1+ROM2+ROM3+ROM4 ROM</pre>
+ </li>
+ <li><b>Mac OS X</b>
+ <p><font color="#FF0000">TODO</font></p>
+ </li>
+ <li><b>RISC OS</b>
+ <p><font color="#FF0000">TODO</font></p>
+ </li>
+ <li><b>GP2X</b>
+ <p><font color="#FF0000">TODO</font></p>
+ </li>
+ <li><b>Amiga</b>
+ <p>From the commandline</p>
+ <pre>join ROM1 ROM2 ROM3 ROM4 as ROM</pre>
+ </li>
+</ul>
+<p>Alternate sources of ROM images, you can download a copy of the RISC OS 3.10
+ ROM image as a support file from the <a
href="http://home.tiscali.nl/~jandboer/">!A310emu
+ website</a>, it's in the file <a
href="http://home.tiscali.nl/~jandboer/support2.zip">support2.zip</a>
and
+ is called ro310, you should rename ro310 to ROM before using it with ArcEm.</p>
+<a name="mouseinput">
+<h4>Mouse Input</h4>
+</a>
+<p>Some of the platforms require specific instructions to let you move the mouse
+ around.</p>
+<ul>
+ <li><b>Unix/X Windows</b>
+ <p>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.</p>
+ </li>
+ <li><b>Windows</b>
+ <p>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.</p>
+ </li>
+ <li><b>Mac OS X</b>
+ <p><font color="#FF0000">TODO</font></p>
+ </li>
+ <li><b>RISC OS</b>
+ <p><font color="#FF0000">TODO</font></p>
+ </li>
+ <li><b>GP2X</b>
+ <p><font color="#FF0000">TODO</font></p>
+ </li>
+ <li><b>Amiga</b>
+ <p>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.</p>
+ </li>
+</ul>
+<a name="floppies">
+<h4>Using floppies</h4>
+</a>
+<p>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.</p>
+<p>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.<br>
+ FloppyImage0<br>
+ FloppyImage1<br>
+ FloppyImage2<br>
+ FloppyImage3<br>
+ These are then available under RISC OS as the 4 disc drives ADFS:0 to ADFS:3,
+ on Linux they are accessible as <font
color="#FF0000">TODO</font>. </p>
+<p>Some platforms provide extra support for using floppy discs.</p>
+<li><b>Unix/XWindows</b>
+ <p>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.</p>
+</li>
+<li><b>Mac OS X</b>
+ <p><font color="#FF0000">TODO</font> Mention the GUI method
of selecting disc images.</p>
+</li>
+<li><b>Amiga</b>
+ <p>A menu to change the disc in drive 0 can be called up with the LAmiga
key</p>
+</li>
+<a name="HDimages">
+<h4>Using HD images</h4>
+</a><p>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<br>
+HardImage0<br>
+HardImage1<br>
+HardImage2<br>
+HardImage3<br>
+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.</p>
+<p>In RISC OS, you will also need to use the !Configure application to set the
number of hard drives inside that OS.</p>
+
+<a name="commandline">
+<h4>Commandline options <font
color="#00CC00">CVS</font></h4>
+</a>
+
+<p><font color="#00CC00">CVS</font> versions of ArcEm support
commandline options under Unix/X Windows and other platforms. The Amiga version will also
accept them as tooltypes.</p>
+<table border="1">
+<tr><th>Option</th><th>Meaning</th><th>Allowed
values</th><th>Default Value</th></tr>
+<tr><td>--help</td><td>Display list of available options and
exit</td></tr>
+<tr><td>--version</td><td>Display version number and
exit</td></tr>
+<tr><td>--rom <value></td><td>Specify the
name of a romimage other than ROM</td><td>Path from place of execution to ROM
image</td><td>ROM</td></tr>
+<tr><td>--extnromdir <value></td><td>Specify
the directory to use as the extnrom directory</td><td>Path from place of
execution for extnrom dir</td><td>extnrom/</td></tr>
+<tr><td>--hostfsdir <value></td><td>Specify
the directory to use as the base of hostfs</td><td>Path from place of
execution to base of hostfs</td><td>hostfs/</td></tr>
+<tr><td>--memory <value></td><td>Change
the amount of memory the emulated machine has</td><td>256K 512K 1M 2M 4M 8M
12M 16M</td><td>4M</td></tr>
+<tr><td>--processor</td><td>Change the emulated machine's
processor</td><td>ARM2 ARM3
ARM250</td><td>ARM250</td></tr>
+<!--
<tr><td></td><td></td><td></td><td></td></tr>
-->
-<h3>Version 1.00, 6th May 2002</h3>
-<a href="mailto:peter@chocky.org">Contact</a>
+</table>
+
+<a name="arcemrc">
+<h4>arcemrc file</h4>
+</a>
+<p>The arcemrc files stores information about the number and 'shape' of
harddisc's attached to the emulated machine. Here is an example arcemrc:</p>
+<pre>
+MFM disc
+1 1024 8 32 256
+MFM disc
+2 612 4 32 256
+</pre>
+<p>The five numbers represent the following:<br>
+1) Hard drive number: 0 to 3 inclusive.<br>
+2) Number of Cylinders: 1 to 1024 inclusive.<br>
+3) Number of Heads: 1 to 256 inclusive.<br>
+4) Number of Sectors per track: 1 to 256 inclusive.<br>
+5) Sector Length: 256, 512, 1024, 2048, or 4096.<br>
+</p>
+<p>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.</p>
-<hr>
+<a name="riscosusage">
+<h4>RISC OS specific Usage</h4>
+</a>
+<p>This section details some of the code that is only relevant when ArcEm is
running RISC OS, it does not apply for ARM Linux</p>
+
+<a name="riscosusagehostfs">
+<h5>HostFS <font color="#00CC00">CVS</font></h5>
+</a>
+<p>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.</p>
+<p>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).
+<p>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.</p>
+<p>Simply copy files on your host into the hostfs directory and they will be
available to RISC OS.</p>
+<p>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.</p>
+<p>Files copied into the hostfs directory are unlikely to have their RISC OS
filetypes, use the RISC OS 'set type ' function in the filer.</p>
-<h2>Contents</h2>
+<p>Known Issues:</p>
+<ul>
+ <li>Does not work at all on Windows/RISC OS/GP2X builds of ArcEm.</li>
+ <li>Files on the host side are not allowed to have dollars in the filename, eg
'textfile$' would not work, but 'textfile' would be fine.
+ <li>Errors that occur when performing actions on the host filing system are often
not well reported under RISC OS.</p>
+</ul>
+
+<a name="riscosusagescrollwheel">
+<h5>Mouse Scrollwheel support <font
color="#00CC00">CVS</font></h5>
+</a>
+<p>Make sure the file scrollwheel,ffa is copied or 'symlinked' from the
'support_modules/scrollwheel' directory into the 'extnrom'
directory.</p>
+<p>Spinning the scrollwheel up and down in RISC OS over windows that are vertically
scrollable works in the way you'd expect.</p>
+<p>Known Issues:</p>
<ul>
- <li><a href="#changelog">ChangeLog</a>
+ <li>Only works in the Unix/X Windows, MS Windows and Amiga builds of
ArcEm.</li>
+</ul>
- <li><a href="#install">Installation and Usage</a>
+<a name="riscosusageextramodes">
+<h5>Additional Screen modes <font
color="#00CC00">CVS</font></h5>
+</a>
+<p>Make sure the file ArcemModes,ffa is copied or 'symlinked' from the
'support_modules/modes' directory into the 'extnrom' directory.</p>
+
+<p>Once the module is loaded these modes can be chosen in the normal RISC OS way,
by typing:</p>
+<pre>
+*wimpmode <number>
+</pre>
- <li><a href="#issues">Known Issues</a>
+<p>Here's a list of provided modes</p>
+<table border="1">
+<tr><th>Mode
Number</th><th>X</th><th>Y</th><th>colours</th></tr>
+<tr><td>32</td><td>800</td><td>600</td><td>256</td></tr>
+<tr><td>100</td><td>1024</td><td>768</td><td>2</td></tr>
+<tr><td>101</td><td>1024</td><td>768</td><td>4</td></tr>
+<tr><td>102</td><td>1024</td><td>768</td><td>16</td></tr>
+<tr><td>104</td><td>1280</td><td>1016</td><td>2</td></tr>
+<tr><td>105</td><td>1280</td><td>1016</td><td>4</td></tr>
+<tr><td>108</td><td>1152</td><td>864</td><td>2</td></tr>
+<tr><td>109</td><td>1152</td><td>864</td><td>4</td></tr>
+<tr><td>112</td><td>1400</td><td>520</td><td>16</td></tr>
+<tr><td>120</td><td>1600</td><td>600</td><td>16</td></tr>
+<tr><td>122</td><td>240</td><td>320</td><td>2</td></tr>
+<tr><td>123</td><td>240</td><td>320</td><td>4</td></tr>
+<tr><td>124</td><td>240</td><td>320</td><td>16</td></tr>
+<tr><td>125</td><td>240</td><td>320</td><td>256</td></tr>
+</table>
- <li><a href="#faq">Quick FAQ</a>
+<p>Known Issues:</p>
+<ul>
+ <li>Modes larger than 800x600 will only work under Unix/X Windows and Amiga builds
of ArcEm, however modes 32, 122, 123, 124 and 125 will work on all platforms.</li>
+ <li>Mode 122 is slightly buggy and looks very odd.</li>
</ul>
+<hr>
+<a name="issues">
+<h3>Known Issues and bugs</h3>
+</a>
+
+<a name="knownall">
+<h4>All platforms</h4>
+</a>
+<p>There is no support for emulating 256K/512K/1MB RAM machines.</p>
+<p>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.</p>
+<p>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.</p>
+
+<a name="knownX">
+<h4>Unix/X Windows</h4>
+</a>
+<p>The display window doesn't resize on mode changes and remains at 800x600
(resolved in <font color="#00CC00">CVS</font>).</p>
+
+<a name="knownWIN32">
+<h4>Microsoft Windows</h4>
+</a>
+<p>The version 1.00 binary is very unstable and crashes regularly.</p>
+<p>The only menu items that do anything are Quit and About.</p>
+<p>The mouse handling is very poor.</p>
+<p>The Windows version has no diagnostics if anything goes wrong and will quite
without warning (unless you rebuild with a console).</p>
+<p>ARM Linux does not currently work in the Windows version of
+ the emulator. There is an unknown issue with harddrive access.</p>
+
+<a name="knownOSX">
+<h4>Mac OS X</h4>
+</a>
+<p><font color="#FF0000">TODO</font></p>
-<hr>
+<a name="knownRO">
+<h4>RISC OS</h4>
+</a>
+<p>The RISC OS version is very slow.</p>
-<p></p>
+<a name="knownGP2X">
+<h4>GP2x</h4>
+</a>
+<p>The GP2x version is very slow.</p>
+
+<a name="knownAMIGA">
+<h4>Amiga</h4>
+</a>
+<p>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.</p>
+<p>ArcEm always opens an 8-bit screen even if the emulation requests a lower
+depth.</p>
+<p>There is intentionally no keyboard remapping, keys are mapped based on
+position.</p>
+<p>It will only run full screen, not windowed.</p>
+</p>
+<hr>
<a name="changelog"></a>
<h3>ChangeLog:</h3>
-
<p></p>
-
-<dl>
- <dd>
- <p><b>1.00 - 6th May 2002</b></p>
-
- <ul>
- <li>New manual and new SourceForge page. Other documentation deprecated.
- <li>Added project files for MS VC++, and fix warnings provoked by it.
- <li>Further split of windowing/non-windowing functionality to
- aid division of architecture-independent files.
- <li>Windows version made independent from Cygwin.
- <li>Windows support imported from eQRD version. Features brought
- inline with other versions, including icon change, and
- same format for choices file.
- <li>Entirety of build warnings fixed under GCC, including those
- that appeared from turning on harsh warning flags.
- <li>General tidying.
- <li>Makefile rearranged so that default Unix builds are more sensible.
- </ul>
- </dd>
-</dl>
-
-
-<dl>
- <dd>
- <p><b>0.60 - 30th September 2001</b></p>
-
- <ul>
- <li> Support for running RISC OS, by Alex Macfarlane Smith and Peter Naulls
- <li> Split of the windowing aspects of the code, to allow independent
- development.
- <li> Some small speed ups.
- <li> Source code tidying and warning fixes.
- </ul>
- </dd>
-</dl>
-
-
<dl>
- <dd>
- <p><b>0.50 - 4th September 1999</b></p>
- </dd>
+ <dd>
+ <p><b>1.01 - 26th February 2006</b></p>
+ <ul>
+ <li>Added notes for GP2X port
+ </ul>
+ </dd>
</dl>
-
-
<dl>
- <dd>
- <p><b>0.40 - 27th July 1998</b></p>
- </dd>
+ <dd>
+ <p><b>1.00 - 6th May 2002</b></p>
+ <ul>
+ <li>New manual and new SourceForge page. Other documentation deprecated.
+ <li>Added project files for MS VC++, and fix warnings provoked by it.
+ <li>Further split of windowing/non-windowing functionality to aid division
+ of architecture-independent files.
+ <li>Windows version made independent from Cygwin.
+ <li>Windows support imported from eQRD version. Features brought inline
+ with other versions, including icon change, and same format for choices
+ file.
+ <li>Entirety of build warnings fixed under GCC, including those that
appeared
+ from turning on harsh warning flags.
+ <li>General tidying.
+ <li>Makefile rearranged so that default Unix builds are more sensible.
+ </ul>
+ </dd>
</dl>
-
-
<dl>
- <dd>For details of older changes, see docs directory.</dd>
+ <dd>
+ <p><b>0.60 - 30th September 2001</b></p>
+ <ul>
+ <li> Support for running RISC OS, by Alex Macfarlane Smith and Peter Naulls
+ <li> Split of the windowing aspects of the code, to allow independent
development.
+ <li> Some small speed ups.
+ <li> Source code tidying and warning fixes.
+ </ul>
+ </dd>
</dl>
-
-<hr>
-
-<p></p>
-
-<a name="install"></a>
-<h3>Installation and Usage:</h3>
-
-<p>The emulator is initially configured for one MFM hard disc. If you
-wish to change that, you will need to edit the arcemrc file.</p>
-
-<p>To make a useful program, you will have to add to this the file "ROM"
-containing an Operating System ROM to your OS set up below. You may also have a
-drive image file named "HardImage1". This can either usefully be a
RISC OS
-filecore image or Linux ext2 image. Note that RISC OS will quite
-happily boot without a harddrive.</p>
-
-
-<h4>Windows</h4>
-
<dl>
- <dd>
- <p><b>Warning: ARM Linux does not currently work in the Windows version
- of the emulator. There is an unknown issue with harddrive
access.</b></p>
-
- <p>Unpack the archive to a location of your choice. You should have
- the following files:</p>
-
- <ul>
- <li>index.html, maual.html - Documentation.
- <li>ArcEm.exe - The emulator itself.
- <li>hexcmos - CMOS settings for the emulator.
- <li>arcemrc - Configuration file.
- </ul>
-
- <p>The emulator is started by running the executable. Unfortunately,
- if anything goes wrong, the emulator will simply quit with little or no
- warning. This will be improved in future versions.
- </p>
-
- <p>
- Pressing the + key on the keypad will toggle display of the Windows
- mouse.
- </p>
-
- </dd>
+ <dd>
+ <p><b>0.50 - 4th September 1999</b></p>
+ </dd>
</dl>
-
-
-<h4>RISC OS</h4>
-
<dl>
- <dd>
- <p>Please see the !Help file within the !ArcEm application for usage
- information.
- </p>
- </dd>
+ <dd>
+ <p><b>0.40 - 27th July 1998</b></p>
+ </dd>
</dl>
-
-
-<h4>Unix</h4>
-
<dl>
- <dd>
- <p>Copy the arcemrc file to your home directory as .arcemrc. Usage is
- otherwise similar to the Windows notes, but with some output on
- a console.</p>
-
- <p>
- As for the Windows version, pressing the + key on the keypad will
- capture the mouse.
- </p>
- <p>
- If your keyboard doesn't generate the KP_Add keysym, use xmodmap(1)
- to alter its configuration.
- </p>
- <pre>
- #! /bin/sh
-
- xmodmap - <<\E
- ! Make the Happy Hacker's two diamond keys into Mode_switch keys so I
- ! can access KP_Add by pressing Shift-Diamond-equal.
-
- keycode 115 = Mode_switch
- keycode 116 = Mode_switch
- clear mod3
- add mod3 = Mode_switch
- keycode equal = equal plus KP_Equal KP_Add
- E
- </pre>
- </dd>
+ <dd>For details of older changes, see docs directory.</dd>
</dl>
-
-<hr>
-
-<p></p>
-
-<a name="issues"></a>
-<h3>Known Issues:</h3>
-
-<ul>
- <li>The only menu item that does anything in Windows is Quit.
- <li>The mouse handling in Windows is rather poor.
- <li>The Windows version has no diagnostics if anything goes wrong
- (unless you rebuild with a console).
- <li>The RISC OS version is very slow.
- <li>The X-Windows version has no size handling - you have to resize
- the window manually.
-</ul>
-
-<hr>
-
-<p></p>
-
-<a name="faq"></a>
-<h3>Quick FAQ:</h3>
-
-<p><i><b>Q. Can ArcEm run RISC OS 3.5 or
later?</b></i></p>
-
-<p><b>A.</b> No. ArcEm only emulates Archimedes-style hardware.
RiscPC-style
-hardware is required for RISC OS 3.5 or later. I have no plans
-to add this, due to the time and research involved, but if someone else
-wanted to, I would be happy to help.</p>
-
-<p><i><b>Q. Where can I get RISC OS 3.1
ROMs?</b></i></p>
-
-<p><b>A.</b> From your A5000, A3020, etc. ROM images obtained from
-any other source may be of questionable legality. This topic has been
-discussed at length in various forums, and will not be repeated here.</p>
-
-<p>To save ROMs from your machine, use four 720K DOS formatted floppies (or
-1.44MB if your machine supports it) and use the following commands for
-each floppy:</p>
-
-<pre>
- *save :0.$.ROM1 3800000 3880000
- *save :0.$.ROM2 3880000 3900000
- *save :0.$.ROM3 3900000 3980000
- *save :0.$.ROM4 3980000 3a00000
-</pre>
-
-<p>Finally, ArcEm requires that the ROM image be a single file (unlike
-the other emulators), so concatenate the files using your favourite method
-to produce the final file.
-</p>
-
-
-<p><i><b>Q. It doesn't do anything when it starts/feature X
doesn't seem to work?</b></i></p>
-
-<p><b>A.</b> Recompile it with debugging turned on, and find out why.
-I don't have a better answer than that for the time being if you
-can't make it work.</p>
-
-<hr>
-
-<a href="mailto:peter@chocky.org">Peter Naulls</a>
-
</body>
</html>
-
arcem-cvs_20070611-soundfix.patch:
--- NEW FILE arcem-cvs_20070611-soundfix.patch ---
--- arcem/X/sound.c.orig 2005-01-29 17:18:20.000000000 +0000
+++ arcem/X/sound.c 2007-08-08 17:53:12.000000000 +0100
@@ -111,7 +111,7 @@
int
sound_init(void)
{
- if ((soundDevice = open("/dev/dsp", O_CREAT | O_WRONLY )) < 0) {
+ if ((soundDevice = open("/dev/dsp", O_WRONLY )) < 0) {
fprintf(stderr, "Could not open audio device /dev/dsp\n");
return -1;
}
arcem-cvs_20070611-uichanges.patch:
--- NEW FILE arcem-cvs_20070611-uichanges.patch ---
--- arcem/X/ControlPane.c.orig 2006-03-23 13:46:03.000000000 +0000
+++ arcem/X/ControlPane.c 2007-06-11 21:22:01.000000000 +0100
@@ -16,12 +16,12 @@
#include <string.h>
-#define CTRLPANEWIDTH 640
-#define CTRLPANEHEIGHT 100
+#define CTRLPANEWIDTH 600
+#define CTRLPANEHEIGHT 110
#define LEDHEIGHT 15
#define LEDWIDTH 15
-#define LEDTOPS 90
+#define LEDTOPS 100
#define DC DISPLAYCONTROL
@@ -139,18 +139,22 @@
y += 2;
y = TextCenteredH(state, "http://arcem.sf.net/", y, 0, CTRLPANEWIDTH);
- y+=2;
+ y += 2;
XDrawLine(HD.disp, HD.ControlPane, HD.ControlPaneGC,
0, y, CTRLPANEWIDTH-1, y);
y += 2;
- y = TextCenteredH(state, "Type `q' to quit.", y, 0, CTRLPANEWIDTH);
+ y = TextCenteredH(state, "Type q to quit.", y, 0, CTRLPANEWIDTH);
- y += 2;
- y = TextCenteredH(state, "Type `0', `1', `2', or `3' to "
+ y += 4;
+ y = TextCenteredH(state, "Type 0, 1, 2, or 3 to "
"insert/eject floppy image.", y, 0, CTRLPANEWIDTH);
- y+=2;
+ y += 4;
+ y = TextCenteredH(state, "Type + on keypad to capture/"
+ "uncapture the mouse.", y, 0, CTRLPANEWIDTH);
+
+ y += 2;
draw_keyboard_leds(KBD.Leds);
draw_floppy_leds(~ioc.LatchA & 0xf);
} /* ControlPane_Redraw */
--- NEW FILE arcem.sh ---
#!/bin/sh
#
# Wrapper script for arcem which sets up a useful default environment for the
# user and ensures files are saved in a sensible location (.arcem), if the auto
# parameter is used. Otherwise it simply executes arcem verbatim passing it any
# parameters received.
arcembin='/usr/bin/arcem.bin';
moddir='/usr/share/arcem/modules';
kdialog='/usr/bin/kdialog';
zenity='/usr/bin/zenity';
xmessage='/usr/bin/xmessage';
msg="This appears to be the first time you've launched ArcEm, so a default\
environment has been configured for you. For ArcEm to fully function you\
require either a 'RISC OS 3.XX' rom, or a freely available 'ARM Linux'
rom.
The rom file should be called 'ROM' and installed into the following directory:
$HOME/.arcem
NOTE: By default ArcEm will be launched with the bundled 'ARM Linux' rom unless\
a rom is installed in the above location.
Please consult the documentation for further information"
# Check binary exists and is executable
if [ ! -x $arcembin ] ; then
echo "error: $arcembin missing or not executable" 1>&2
exit 1
fi
# If we are not in auto mode, run arcem verbatim, passing any parameters
if [ "$1" != "auto" ] ; then
exec $arcembin "$@"
fi
# Check home exists and is a directory
if [ ! -d $HOME ] ; then
echo "error: $HOME is missing or not a directory" 1>&2
exit 2
fi
# Check if ~/.arcem exists and is a directory. If not, make it and setup up
# the subsequent default environment. If .arcem already exists then no changes
# will be made. Notify the user of the default environment and the need for a
# ROM
if [ ! -d "$HOME/.arcem" ] ; then
mkdir -p "$HOME/.arcem/extnrom"
# Setup extention modules
pushd "$HOME/.arcem/extnrom" > /dev/null
ln -s "$moddir/"* .
popd > /dev/null
if [ -x $kdialog ] ; then
$kdialog --title "First Run" --msgbox "$msg"
elif [ -x $zenity ] ; then
$zenity --title "First Run" --info --text "$msg"
else
echo -e $msg | fold -s --width=50 | $xmessage -center -file -
fi
# Output to console also
echo -e $msg
fi
# Change to ~/.arcem to ensure files are loaded/saved there
cd "$HOME/.arcem"
# Launch arcem with the linux ROM if no user ROM
if [ -f "$HOME/.arcem/ROM" ] ; then
exec $arcembin --hostfsdir $HOME --memory 16M
else
exec $arcembin --hostfsdir $HOME --memory 16M --rom /usr/share/arcem/linuxrom/ROM
fi
--- NEW FILE arcem.spec ---
# The source is retrieved from cvs:
# cvs -z3 -d:pserver:anonymous@arcem.cvs.sourceforge.net:/cvsroot/arcem co -P arcem
# The arcem directory should be compressed as the following:
# arcem-cvs_YYYYMMDD.tar.bz2
%define cvsdate 20070611
Name: arcem
Version: 1.10
Release: 3.cvs_%{cvsdate}%{?dist}
Summary: Highly portable Acorn Archimedes emulator
Group: Applications/Emulators
License: GPLv2+
URL:
http://arcem.sourceforge.net
Source0: %{name}-cvs_%{cvsdate}.tar.bz2
Source1:
http://arcem.sourceforge.net/linuxrom.zip
Source2: arcem.sh
Source3: README_arcem.dribble
Patch0: arcem-cvs_20070611-improvemakefile.patch
Patch1: arcem-cvs_20070611-uichanges.patch
Patch2: arcem-cvs_20070611-manual.patch
Patch3: arcem-cvs_20070611-soundfix.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: desktop-file-utils
BuildRequires: ImageMagick
BuildRequires: libX11-devel
BuildRequires: libXext-devel
Requires: hicolor-icon-theme
Requires: xorg-x11-apps
%description
ArcEm is a Acorn Archimedes A400 hardware emulator that is highly portable. As
it's a hardware emulator it's capable of running multiple operating systems
including RISC OS 3.XX and ARM Linux. ArcEm requires either a RISC OS 3.XX or
ARM Linux ROM to fully function. Only the Linux ROM can be legally included.
%prep
%setup -qn %{name}
# Makefile is heavily patched because it's largely broken in many ways
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
unzip -qq %{SOURCE1}
%build
# Sound support seems stable but experimental, but largely doesn't work on PPC
%ifarch %{ix86} x86_64
make %{?_smp_mflags} RPMFLAGS="%{optflags}" SOUND_SUPPORT=yes
%else
make %{?_smp_mflags} RPMFLAGS="%{optflags}" HOST_BIGENDIAN=yes
%endif
#Build icon image
convert win/arc.ico %{name}.png
# Build desktop icon
cat >%{name}.desktop <<EOF
[Desktop Entry]
Encoding=UTF-8
Name=Arcem
GenericName=Acorn Archimedes Emulator
Comment=%{summary}
Exec=%{name} auto
Icon=%{name}
Terminal=false
Type=Application
StartupNotify=false
Categories=Game;Emulator;
EOF
%install
rm -rf %{buildroot}
make install INSTALL_DIR=%{buildroot}
mkdir -p %{buildroot}%{_datadir}/%{name}/{modules,linuxrom}
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/32x32/apps
install -pm0644 support_modules/*/*,ffa %{buildroot}%{_datadir}/%{name}/modules
install -pm0644 ROM.linux %{buildroot}%{_datadir}/%{name}/linuxrom/ROM
install -pm0755 %{SOURCE2} %{buildroot}%{_bindir}/%{name}
install -pm0644 %{name}-0.png
%{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
install -pm0644 %{SOURCE3} .
desktop-file-install --vendor dribble \
--dir %{buildroot}%{_datadir}/applications \
%{name}.desktop
%clean
rm -rf %{buildroot}
%post
touch --no-create %{_datadir}/icons/hicolor
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
%postun
touch --no-create %{_datadir}/icons/hicolor
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
%files
%defattr(-,root,root,-)
%{_bindir}/%{name}
%{_bindir}/%{name}.bin
%{_datadir}/%{name}
%{_datadir}/applications/dribble-%{name}.desktop
%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
%doc docs/5thColumn.txt docs/COPYING index.html manual.html README_arcem.dribble
%changelog
* Wed Dec 12 2007 Ian Chapman <packages[AT]amiga-hardware.com> 1.10-3.cvs_20070611
- Minor spec changes for devel
* Wed Aug 08 2007 Ian Chapman <packages[AT]amiga-hardware.com> 1.10-2.cvs_20070611
- Added patch to fix sound.c compilation on newer GCCs
* Tue Aug 07 2007 Ian Chapman <packages[AT]amiga-hardware.com> 1.10-1.cvs_20070611
- Minor cleanups to the SPEC
- Updated license field due to new guidelines
* Mon Jun 11 2007 Ian Chapman <packages(a)amiga-hardware.com> 1.10-0.cvs_20070611
- Initial Release
Index: .cvsignore
===================================================================
RCS file: /cvs/free/rpms/arcem/F-9/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore 31 May 2008 14:02:00 -0000 1.1
+++ .cvsignore 19 Jul 2008 18:36:01 -0000 1.2
@@ -0,0 +1,2 @@
+arcem-cvs_20070611.tar.bz2
+linuxrom.zip
Index: sources
===================================================================
RCS file: /cvs/free/rpms/arcem/F-9/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources 31 May 2008 14:02:00 -0000 1.1
+++ sources 19 Jul 2008 18:36:01 -0000 1.2
@@ -0,0 +1,2 @@
+6f0ad6c1f9fd80887e26192736e085b6 arcem-cvs_20070611.tar.bz2
+a8b171aee91fda454a625b3dcfda7bdc linuxrom.zip