OSCA Architecture Emulator
==========================

Notes:

1. In same folder as emulator executable, there must be a file called "config.txt"

This file is a text file containing one or more of the following types of entry:

BOOTROM filename		
Load contents of filename as the boot ROM image (at location 0x0000)

EEPROM address filename		
Load contents of filename into the virtual EEPROM beginning at hex address specified

SDCARD address filename
Load contents of filename as a "virtual" disk image. Address is unused for now.

WRITEENABLE
Allow writes to SD card to be persisted to the real disk image

NOWRITEPROMPT
Don't ask whether to commit SD writes to disk at exit/reset - assume a "yes" response

A sample config.txt follows:

BOOTROM roms/rom.bin
EEPROM F000 roms/bootcode.epr
SDCARD 0 roms/flos.img
WRITEENABLE


Directory names can be included (as shown in the example), 
and the path separator may be / or \ depending on preference. 
Both work identically. Absolute paths or relative paths are OK.

2. Boot ROM - this must be 512 bytes exactly

3. EEPROM contents - anything can be loaded here. 

The sample above shows a typical setup where the original rom and 
bootcode are used. Using the original ROM means that the bootcode
image loaded from 0xF000 must be correctly checksummed as it would 
on a real board. This further means that any operating system file loaded
into the EEPROM from 0x800 onwards must have the correct signature.

CAPABILITIES
============

1. PIC is simulated enough to load databurst images from the 
(virtual) EEPROM. Data can be loaded to the EEPROM for this
purpose.

2. Z80 core with integrated debugger (of sorts!) with user-triggerable
reset and nmi

3. Ability to view certain device I/O calls as they are made in
a separate Diagnostic Monitor

4. Most I/O ports and MMIO implemented correctly, although many
entries return dummy values due to missing hardware emulation. All
memory banking is implemented, including new "entire 64k" mode
introduced in v0656 OSCA.

5. Keyboard implemented in a very basic manner. Clock and Data lines
are not yet returned back to the emulator

6. VGA mode display emulated - includes Blitter, Chunky Bitmap Mode, 
Planar Bitmap Mode, Raster IRQ and active palette. Notably absent: Secondary palette,
tilemap mode, sprites, hardware scrolling

7. Maths Assist unit fully implemented

8. Basic SD/MMC Support provided - only single block read/write is supported, as well as
card identification requests and reset command.

INCAPABILITIES
==============

1. No Audio Support
2. No Tilemap Mode
3. No IDE emulation
4. No RS232 Emulation
5. No Joystick Emulation
6. Video modulo not implemented yet except for the blitter

KNOWN ISSUES
============

1. Speed indicated inside the emulator is incorrect at the moment, and the
autothrottle routine does not perform correctly. This is because the CPU
execution is not performed in a separate thread as it would be in a "final
version", but polled using a timer to aid debugging.

2. Probably much much more ;)
