*********************************************************
** flexemu, a FLEX emulator with full graphics display **
*********************************************************

This is an emulator for the FLEX operating system based on an MC6809
microprocessor emulator.

For compiling an installing look at INSTALL.

*******************************
* Motivation for this project *
*******************************

Very long time ago I've got an Eurocom II computer mainly distributed in
Germany with an MC6809 Processor rated at 1.33 MHz. Also FLEX operating
system was supported. It was at the time of Apple II and CP/M computers.

A very nice feature of this computer was it's graphics resolution. It supported
512 x 256 pixel of up to 6 bit planes. The complete graphics controller
consisted of standard 74xxx TTL cirquits. Drawing caracters on the display
was just a special case of drawing graphics. So each character was drawn
pixel by pixel by the processor.

At this time I've learned a lot about assembler and Basic programming but also
on understanding the hardware.

Last year I switched it on again after a very long time ago. I found some
nice programs, written by myself or by other guys and thought that it would
be a pity to let all this good old stuff die.

So I've done some researches on the Internet for 6809 emulation and wrote a
little prototype for simulating the graphics display. I've found a ready-to-use
processor emulation by Ray Bellis but after the implementation of the prototype
I never thought that it would be possible to emulate the whole computer
including it's graphics display at an acceptable performance on a linux box
with an 486/DX2 66 (I updated the video display after any change in video RAM
which produced a lot of overhead on X11 protocol).

Some times later during testing a Commodore C64 emulator I was inspired on the
implementation of their graphics display. The processor emulation and the 
update of the graphics display was strictly synchronized. For example every
n processor cyles a line of the graphics display was updated. So I made
another effort improving my prototype with much more success.

The rest of the project was about 400 hours of busy work implementing all
the hardware components, implementing the graphics display with X11 (first
using XLib and in a second version using XToolkit with Athena widgets),
improving the performance and fixing some minor bugs of the MC6809 which I've
got from Ray Bellis, and transfering of programs from the original system to
a linux box.

As the result I hope You will have lots of fun with a full functional FLEX
emulator with lots of nice features like:

	- 512 x 256 pixel, 1 bit plane graphics display
	- XLib or XToolkit interface
	- CPU monitor with start/stop/step/next/reset, two breakpoints
	- supporting all MC6809 instructions except halt and sync
	- full interrupt support
	- stop processor and popup dialog at unimplemented processor
	  instructions
	- continuous display of CPU clock rate
	- mouse pointer support
	- MC146818 real time clock emulation
	- WD1793 floppy disc controller support with up to 4 disk drives
	- support of disk images but also native file system
	- compatible to Ben Williams FLEX emulator disk image format
	- dynamic remount of native file system possible
	- fileconversion from/to FLEX ASCII file format
	- manual pages with full description of FLEX API
	- a MMU for extension of the 64K address range
	- 192K RAM extension

Please notice that this project was developed under the terms of the GNU
GENERAL PUBLIC LICENCE. for more information read file COPYING.


******************
* Much thanks to *
******************

R. P. Bellis (Ray.Bellis@psy.ox.ac.uk) on which the mc6809 emulator is based on
	I used it's latest version usim-0.91 (sorry for sacrificing the
	original code but I had to do it for performance reasons). If You
	want to use a well structured and conscientious implemented mc6809
	emulator better look at usim.  It can be downloaded from:
	ftp://ftp.mrc-bbc.ox.ac.uk/pub/users/rpb/mc6809/usim-0.91.tar.gz

Didier Derny (didier@aida.remcomp.fr) on which the mc6809 disassembler is based
	on

Alan Dekok (http://www.sandelman.ocunix.on.ca/People/ Alan_DeKok/interests/6809.html)
	for giving lots of informations about mc6809

Ben Williams (bwilliams@blackbelt.com) for it's researches on copyrights of FLEX
	(He has written a FLEX emulator too. Look at:
	http://www.blackbelt.com/blackbelt/flexem.html)

Eltec Elektronik (http://www.eltec.de) who has developed the hardware on which
	the emulator is based on. 

Martin Philp, the author of invaders

Hans-Dirk Gerken, the author of astroide

the unknown author of prokyon

