    =======================
    ec64 - emulated C64 ;-)
    =======================


Maintainer:   Karsten Scheibler (aka nic and _nitro)
Homepage:     <http://mars.wiwi.uni-halle.de/ec64/>
eMail:        <ec64@mars.wiwi.uni-halle.de>


This program is under GPL

Hello out there,

In July 1999 i started the first work on this project and i think now some
days before Christmas it's time to present the first results to the Linux
Community.

All code from the Emulator contained in this package is written in
x86-Assembly to be compiled with nasm-0.98. You need a working fb-device
with the ability of changing the color palette (/dev/fb0, watch in
src/emualtor/system/fb.nasm to change this). You need a pentium >= 300 MHz
to reach realtime. I know this is awfully slow for an program written in
100% ASM, but remeber: THIS IS WORK IN PROGRESS!

YOU HAVE TO SET YOUR CONSOLE TO AN 8 BPP MODE TO RUN THIS PROGRAM!

To compile/assemble just type make. Then cd to bin/ and execute ec64
optionally followed by an D64 Image. If you only type ec64 you have a
floppydrive with an unformatted Disk in it. Some seconds after starting
the blue C64 Screen should appear, if you have given a valid D64-File on
commandline a LOAD"$",8 should work. Have fun!

You should see the full VIC-II PAL Screen with 312 Lines and
504 Pixel/Line.

On the Top of the screen you should see 2 "LEDs" and a 2 digit number. The
"LEDs" represent the Status of the Floppy LED and the Floppy Motor. The
number gives the actual head position hexadecimal in half tracks (00 =
Track 1, 22 = Track 18).

IF THE EMULATOR CAN'T OPEN THE FILE GIVEN ON COMMANDLINE IT WILL JUST EXIT
WITHOUT ANY ERROR-MESSAGE!

I included a demo from Reflex, use "./ec64 access_denied.d64" if you are
in the bin/ to load the diskimage.

There is no exit button at the moment, you have to use CTRL-C to exit
(after this, type reset on the prompt to get the cursor back), or to
produce an exception, at the moment only the CPU can produce such an
exception (jump to an address with illegal opcode).

There are many things, which aren't implemented yet (look the TODO list
below), but at the Moment you have a working VC1541 Drive and a C64 with
working CIA Timers and basic VIC functionality (no Sprites yet),
all emulation is done CYCLE EXACT (not all at the moment, but 4x4 FLI
should work ;-).

The emulator-binary is 54KB small, remember that all ROMs are included:
C64:
- 8KB CBM Kernal
- 8KB CBM Basic
- 4KB Character ROM
VC1541:
- 16KB CBM Kernal
this means that the emulation Code+Data itself is < 20KB ;-)


I'm interested in your opinion, write to: <ec64@mars.wiwi.uni-halle.de>

Look in doc/ for some really short documentation to the source code.



TODO:
cpu65xx:
* include illegal opcodes

cia6526:
* timer output on PB6/PB7
* TOD
* serial register
* register handshake

vic6569:
* include sprites
* Hyperscreen
* X Scrolling

sid6581:
* start writing

via6522:
* timer output on PB7
* serial register
* PB/PA latching
* register handshake

disc:
* more accurate motor characteristics


<karsten.scheibler@bigfoot.de>, 1999-DEC-19
