epple2 (Emulated Apple ][)
--------------------------


epple2 is an emulator of the Apple ][ and Apple ][ plus
computers from Apple, Inc. It strives to faithfully simulate
much of the internal workings of the original Apple ][,
including the individual cycles of the 6502 CPU, and the
NTSC video signal generation, including the "strange orange
line", other color anomalies, and the "floating data bus."
Understanding the Apple ][, by Jim Sather, is the primary
source for information about the internals of the Apple ][.

The CPU and video timings are synchronized, and the emulator
is designed to run at the same speed as the original
machine (if your computer is fast enough). It also emulates
several different types of television screens and monitors
for the display.

It includes emulation of a Disk ][ controller card, a ROM
firmware card, and a RAM "Language" card, as well as a
simple clock card.

epple2 is written in C++, and is designed to be buildable
on Windows (with MSYS/MinGW or Visual C++ 2008, Express
Edition) or Linux (gcc).

The SDL library (http://www.libsdl.org) is the only dependency
of epple2 (see below).

The epple2 is released under GPLv3.



RUNNING
-------
SDL:
To run epple2, you need to have the SDL libraries installed.
See http://www.libsdl.org for information on SDL.
You'll need to download and install the "Runtime Libraries"
for your platform (Win32 or Linux).

ROM:
With epple2 and SDL, you can run the emulator, but it won't
do too much without the appropriate Apple ROM code. You can
use ROM images from your own original Apple ][ or ][ plus, or
you can find some on the Internet (check the Asimov Apple
repository).
Alternatively, you can build the ROMs yourself from assembly
language source files I've created; these are available in
the apple2src project. (See that project for details).

Disks:
You will also probably want floppy disk images. Again, you can
download some from the Internet, especially from Asimov. The
epple2 only reads NIBBLE IMAGES. If you only have 16 sector
images, you will need to convert them to nibble images; you
can use CiderPress (http://ciderpress.sourceforge.net).




BUILDING
--------
See INSTALL for generic instructions on building and installing
a normal distribution.

If you want to build epple2 from the source distribution,
you'll need to have the SDL development libraries installed.
See http://www.libsdl.org for information on SDL.
You'll need to download and install the "Development Libraries"
for your platform (Win32 or Linux).

Developers fetching directly from the repository instead of
downloading the distribution will need to execute the bootstrap
script before running ./configure or make.



PLATFORM-SPECIFIC BUILDING
--------------------------

Windows/MSYS
--------------
Install MSYS into C:\MSYS\1.0
Install MinGW into C:\mingw

Install SDL. At http://www.libsdl.org/ find the download page.
Download the "Development Libraries" for Win32, mingw, for example:
SDL-devel-1.2.13-mingw32.tar.gz (Mingw32)
And save it to your MSYS home directory.
Untar the SDL archive to your home directory:
$ cd
$ tar xzvf SDL-devel-1.2.13-mingw32.tar.gz
Then follow the instructions to install SDL, for example:
$ cd SDL-1.2.13
$ make native



Run MSYS, and at the bash prompt, go to your home directory and
untar the epple2 source distribution tar file and cd to the
epple2 directory. For example:
$ cd
$ tar xzvf epple2-1.0.tar.gz

NOTE: If you checked out epple2 from subversion, rather
than downloading the distribution, you need to first run
the bootstrap script. But first you'll need to install
autoconf, automake, etc.
$ cd
$ cd epple2
$ ./bootstrap



Then build as follows. I recommend doing a VPATH build, in
which you build into a different directory that the source
directory. To accomplish this, create a new directory for
building, somewhere, such as:
$ cd
$ mkdir buildepple2
$ cd buildepple2
Then run configure from there. For the MSYS build to work,
you need some extra parameters to the build, and you could
also add some compiler options to optimize the build. For
example (from the buildepple2 directory you just created):
$ ~/epple2/configure --prefix= \
CXXFLAGS="-I/usr/include -O4 -msse3" \
CFLAGS="-I/usr/include" \
LDFLAGS="-L/usr/lib -mconsole -mthreads -mno-cygwin"
$ make
$ make install

Then follow the instruction above under "RUNNING" for ROM and disks.
