Ok, firstly let's get the legal bits out the way...

----
Copyright 1993/4 by James Bonfield (jkb@mrc-lmb.cam.ac.uk)
You may freely distribute this program provided:
a) This copyright notice is also copied without modifications.
b) All modifications made by ''the copier'' are clearly listed as such in the
   ChangeLog file.
----

Description
-----------

This is version 1.0 of the BBC Emulator. It consists of the following sub-
directories.

data		Directory of data files loaded up by the BBC. Contained here
		are the BASIC language, OS 1.2 (plus defaults for the IO mem),
		the first 0xE00 bytes of memory, the 6502 macro assembler (by
		Ian Phillips?), HackROM (James Bonfield & Stephen Youell).

simple		Code for the simplest screen IO interface.

curses		Code for an (incomplete) implementation of a curses based
	 	screen IO.


Compiling
---------

Firstly, edit the Makefile. There are a few tunables:

SCREEN	Which style of IO to use for the screen display. Current choices are:
	simple		no nonense very basic output (ie not PRINT TAB())
        curses		the curses package interface - allows for cursor
			control and not much else currently.

LIBS	Used in conjunction with the SCREEN definition to specify libraries
needed (eg "-lcurses -ltermcap")

ASSUME	If defined, will cheat slightly in the emulation to gain speed. Such
	assumptions are pretty safe and simplify things enormously. The only
	real assumption now is that opcodes and operands are always in
	'simple' memory. Eg that we are never going to have the program
	counter at, say, &FE30.

SUPERFAST
	A few more assumptions - that we can always use the fastest methods
	available. This implies no memory mapped IO, and memory is always
	writable. Suprisingly this doesn't actually gain that much speed. I'd
	advise normally sticking to ASSUME only.

DEBUG	Allows use of -d command line switch to debug 6502 code. Even enabling
	this switch appears to slow things down by around 10%, so by default
	it is not there. This also allows for opcode/operand &D4 &00 / &D4 &01
	to switch on/off debugging mode from within execution of 6502.


Notes
-----

The same technique employed in Ian Stephenson's emulator of using opcode &D4
as a trap to execute miscellaneous UNIX calls (I've named this in the debug
output as opcode "UNX").

The Emulator was developed upon a PC (486sx25) running Linux. Maximum speed
acheived was around 37% slower than the beeb itself. 

128K sideways RAM is supported. The status of the 16 banks is:

00	Read only
01	Read only
02	Read only
03	Read only
04	Read/Write
05	Read/Write
06	Read/Write
07	Read/Write
08	Macro Assembler
09	HackROM
10	Read only
11	BASIC
12	Read/Write
13	Read/Write
14	Read/Write
15	Read/Write


To Do
-----

- Add a decent *UNIX filing system.

- X11 interface

- Sound support (driver for SPARC audio device?)

- 6522 chip

- 6845 chip

- Curses interface should understand MODEs

- UNX #&66 should also save status of support chips as well as memory.
  Sideways RAM perhaps also can be saved.

- Load analogue of UNX #&66 needed.

- Remove all references in code to the module system. It's only acting to
  confuse people currently as it's no longer used.
