
        ---------------------------------------------------------
        |                                                       |
        |       _/_/_/  _/_/_/  _/_/_/                          |
        |      _/      _/  _/  _/        _/      _/             |
        |     _/      _/_/_/  _/      _/_/_/  _/_/_/            |
        |    _/      _/      _/        _/      _/               |
        |   _/_/_/  _/      _/_/_/                   By B.Rive  |
        |                                                       |
        ---------------------------------------------------------


   ----------------------------------------------------------------------
	CPC++, A C++ Amstrad CPC emulator
	Copyright (C) 1996 Brice Rive
	Version 1.0

	CPC++ contains ROM images which are copyright Amstrad and/or
	Locomotive software, and are distributed in good faith, on the
	understanding that the copyright owners have given permission for
	these images to be included with shareware CPC emulators.
   ----------------------------------------------------------------------
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   ----------------------------------------------------------------------


_Contents:
	- Introduction
	- Installation
	- Registration
	- Using CPC++
	- Transfers
	- Current state
	- Porting
	- Credits

   ----------------------------------------------------------------------

_Introduction

CPC++ is an Amstrad CPC emulator.If you don't know what an Amstrad CPC is, go have a look at Kevin Thacker's Web site:
	(http://arachnid.cm.cf.ac.uk/User/K.E.W.Thacker/Amstrad)

CPC++ is coded in CPC++ to allow for easy porting under various platforms.
The original release runs under SunOS (UNIX), but other platforms will be added in the future (check out http://www.worldnet.fr/~brice for latest news).
You can also send me a mail to be added to my mail list and receive notification of new releases (brice@worldnet.fr)

   ----------------------------------------------------------------------

_Installation

The installation procedure might differ according to which platform you are using. See the platform-specific INSTALL file for more info.

   ----------------------------------------------------------------------

_Registration

CPC++ is shareware. When you pay the shareware fee, you get a key that lets you unlock some of the features of CPC++:

	Unlimited session time
	Snapshot file saves
	Disk image saves
	Monitor/debugger

To register, simply mail the following:
	-Registration code: displayed by CPC++ at startup
	-Registration fee: 100FF in cash (or French bank check)
	-name, e-mail or snail-mail address, phone, etc.
To this address:
	Brice Rive, 25 Rue Pradier, 75019 Paris (France)

In return I will e-mail (or mail) you the key to put into your config file.
The key is dependant on which computer you are using and under which name you are using it. If these happen to change, you will need to ask me for a new (free of course) key.

Alternatively, if you don't wish to pay the fee, but would like to be registered, you can offer to help with CPC++' developpement. Help can be writting documentation, porting, thourough testing, etc. Mail me your suggestions (brice@worldnet.fr)..

   ----------------------------------------------------------------------

_Using CPC++

Once you launched the emulator, you can use it as a normal CPC (hopefully). In addition you can use the following commands:

                Normal    Control   Alt 
 F1 - Reset   : reset     forced 
 F2 - Debugger: enter 
 F3 - 
 F4 - Sound   : down      up        toggle 
 F5 - Disk A  : insert    save      flip 
 F6 - Disk B  : insert    save      flip 
 F7 - SnapShot: load      save 
 F8 - 
 F9 - ProgDb  : run       list 
 F10- Quit    : quit      forced 

-Reset
This fully resets the CPC and its devices (but not the debugger)
Forced does a reset without asking for confirmation

-Debugger:
Enter activates the debugger

To enter commands in the debugger, you need to move the mouse over it's window.
The commands are:
	h: print help
	r: resume execution
	s: single step
	n: step to next
	t: set trap
	c: clear trap
	w: set watch point
	u: unset watch point
	m: set memory addrress
	d: set disassemble address

-Sound
Down turn the sound volume down
Up turns the sound volume up
Toggle turns the sound ON/OFF

-Disk
Disks are specified by their path to which is prepended the prefix indicated in cpc.config.
They are disk images either in DIF format (the one generated by CPCTERM) or in DSK format (the standard). I will support Extended DSK in future.
The files will also be recognized if they are gziped (you need to have gunzip  in your exec path).
Insert let's you load a new disk image into the drive emulation
Save let's you save the drive emulation into the disk image
Flip let's you turn the disk (if the disk image name ended with .A or .B, and an image for the second side exists)

-Snapshot
Snapshots are in  standard format (Marco Vieth's). This format does not sontain enough information to save and restore from some advanced programs, but is sufficient in most cases.
The file path is also prefixed by DiskPrefix (in cpc.config). 

Load let's you load a snapshot file
Save let's you save your CPC's state into a snapshot file

-ProgDb:

Run let's you execute a program entry from the program database (ProgDb).
The database is a single file with one entry on each line.
The entry format is: ProgName,DiskPath,ExecCommand,Comment
e.g.: Elite,Game/006A,RUN"ELITE",Great game!!!

List let's you see the database content (you can mask the list with * and ? wildcards)

-Quit:

quits CPC++ loosing the current work (save the disk or a snapshot before)
Forced quit, quits without asking for a confirmation.




-Config file:

The emulator reads a config file (cpc.config) at startup. It controls many aspects of CPC++. The parameters are described in the file itself


   ----------------------------------------------------------------------

_Transfers

I developped a little system that allows you to transfer full CPC disks from
your CPC to a Mac. It uses the printer port of the CPC to emulate a RS432
serial link. It is called CPCTERM and you can find it on my Web Page
(http://www.worldnet.fr/~brice).

   ----------------------------------------------------------------------

_Current state

This project being still in an early stage, I need a lot of help to bring it to completion, as I have spend too much time on it already. The aspects of the project that remain are:

	-Develop a useful documentation
	-Get it to build and run on different platforms
	-Test it on as many programs (games, demos, ...) as possible
	-Come up with a clean auto-install procedure
	-Port it under other operating systems
	-Improve compatibility
	-Improve performance
	-Complete functionalities of emulation
	-Come up with a user interface

In order to do that, I would like to receive from you all the feed-back you can send. This includes code improvements, ports, test reports, suggestions, etc.

   ----------------------------------------------------------------------

_Credits

Many thanks to the following people:

-Pierre Guerrier for his reverse engineering of the CRTC/GA and tons of help
and ideas on pretty much everything.

-Kevin Thacker for maintaining the best CPC site on the net and his support
(http://arachnid.cm.cf.ac.uk/User/K.E.W.Thacker/Amstrad)

-Gilles Blanchard for sending me more disks to test with.

-Austin Donnelly for his amazingly fast port to Linux.


   ----------------------------------------------------------------------

_The End.

   ----------------------------------------------------------------------
