---------------------------------------------------------
|                                                       |
|       _/_/_/  _/_/_/  _/_/_/                          |
|      _/      _/  _/  _/        _/      _/             |
|     _/      _/_/_/  _/      _/_/_/  _/_/_/            |
|    _/      _/      _/        _/      _/               |
|   _/_/_/  _/      _/_/_/                   By B.Rive  |
|                                                       |
---------------------------------------------------------
Version 1.5.0 Solaris
CPC++, A C++ Amstrad CPC emulator
Copyright (C) 1996,1997,1998,1999 Brice Rive
---------------------------------------------------------
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
	_Where can I find programs
	_Launching CPC++
	_Unregistered / registered mode
	_Registration
	_Using CPC++
	_Disk image files
	_Snapshots
	_External ROMs
	_Using a CPC
	_Keyboard mapping
	_Credits

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

_Introduction

CPC++ is a shareware Amstrad CPC emulator.If you don't know what an
Amstrad CPC is, go have a look at Kevin Thacker's Web site:
	(http://andercheran.aiind.upv.es/~amstrad)

CPC++ is a very accurate emulation of the Amstrad CPC computers.
It should let you do anything you could do with a real CPC.
If you find any incompatibility, please send me a mail describing it
at: bricerive@kagi.com

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

_Where can I find programs

Many programs for CPC can be found on the net. Checkout Kevin's page 
(http://andercheran.aiind.upv.es/~amstrad) for more info.
The main ftp site for games is: ftp.nvg.unit.no/pub/cpc

I developped a 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 CPC++'s Web Page
(http://www.worldnet.fr/~brice/cpc/cpcpp.shmtl).

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

_Launching CPC++:

CPC++ is released as a uuencoded-gzipped-tar file. To extract its contents do:
	uudecode cpc.r1.0.tar.gz.uu
	gunzip cpc.r1.0.tar.gz
	tar xvf cpc.r1.0.tar

once you have unpacked the archive, you should be able to run cpc++ by typing:
	cpcpp

CPC++ needs the following libraries visible in your LD_LIBRARY_PATH:
(this the the output of 'ldd cpcpp' on my system)
        libc.so.1 =>     /usr/lib/libc.so.1
        libX11.so.4 =>   /usr/lib/libX11.so.4
        libXext.so.0 =>  /usr/openwin/lib/libXext.so.0
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libw.so.1 =>     /usr/lib/libw.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libintl.so.1 =>  /usr/lib/libintl.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libm.so.1 =>     /usr/lib/libm.so.1
        libC.so.5 =>     /usr/lib/libC.so.5
        libmp.so.1 =>    /usr/lib/libmp.so.1


Note that you need to have a sound device and driver installed (/dev/audio) if
you want sound :)

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

_Unregistered / registered mode:

In unregistered mode, CPC++ will pause for 10s at startup to remind you
that you should register. Once started, CPC++ will run for 15mn and then
quit.
Unregistered mode also disables the save options in the Disks and 
Snapshots menu.

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

_Registration

CPC++ is shareware. When you pay the shareware fee, you get a key that
unlocks CPC++:

	No more annoying startup timer
	Unlimited session time
	Snapshot file saves
	Disk image file saves


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.


There is three ways to get a registration key:
	-Pay me directly (100FF)
	-Pay me through Kagi (25$)

To register directly with me, simply mail the following:
	-Registration code: displayed by CPC++
	-Registration fee: 100FF in French bills or French bank check.
	-name, e-mail or snail-mail address, phone, etc.
	To this address:
		Brice Rive, 34 Rue Vignon, 75009 Paris (France)
	In return I will e-mail (or mail) you the registration key.

To register through Kagi:
	Goto <http://order.kagi.com/?B6&S> and follow the instructions
     	-When I receive your code and notification from Kagi that you
	registered, I will send you the registration key by e-mail
	(or by mail).

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

_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 - Config  : reload
 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
Reset: fully resets the CPC and its devices
Forced does a reset without asking for confirmation

-Config
Reload: re-reads the preference file saved under ~/.cshrc to take
in account any change in the parameters.
The file is (re)generated by CPC++ everytime it quits.
The parameters are described in the file itself.

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

-Disk
Insert: To load a disk image, specify its path
Save: will overwrite the image you loaded updating it with whatever changes
you made within the emulator
Flip: does not work yet

-Snapshot
Load: Loads a snapshot file specified by its path
Save: Save your CPC's state into a snapshot file specified by its path

-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.


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

_Disk image files

They are disk images either in DIF format (the one generated by CPCTERM), in
DSK format (the standard), or in EDSK (extended DSK) format.

When you load a disk image file, CPC++ create an image of it in memory. All
subsequent work on the disk is done in memory. To update the actual disk
image file, you will need to save it.

The files will also be recognized if they are gziped or zipped 
(you need to have gunzip and/or unzip in your exec path).

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

_Snapshots

CPC++ can read and write standard (.SNA format by Marco Vieth) snapshot files.
This format does not contain enough information to save and restore from
some advanced programs, but is sufficient in most cases.

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

_External ROMs

CPC++ includes the default on-board ROMs, but you can override them
and also provide external ROMs by putting ROM files in the directory
from which you run CPC++

ROM files contain 32768 bytes of data. They are recognized by
CPC++ based on their file name.

Overriding the on-board ROMs:

The on-board ROMs have the following names:
	CPC 464 kernel		ROMLO464
	CPC 464 basic		ROMHI464
	CPC 664 kernel		ROMLO664
	CPC 664 basic		ROMHI664
	CPC 6128 kernel		ROMLO6128
	CPC 6128 basic		ROMHI6128

If you want, for example, to use french (AZERTY) ROM in the 6128
emulation instead of the provided english (QWERTY) ROM:
	name the file that contains the kernel ROMLO6128, and the file that
	 contains the basic ROMHI6128
	put those files in CPC++'s folder
	restart CPC++ or reset the virtual CPC

Providing external ROMs:

External ROMs can be recognized by CPC++ using the following names:
	ROMXTxxx
	
Where xxx is the ROM address between 000 and 007
For example, you can replace the provided Amsdos ROM by putting a file
named ROMXT007 in CPC++'s folder.

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

_Using a CPC

Using the virtual CPC is the same as using a real CPC.
Here is a quick reminder of basic commands:

CAT			To see the contents of a disk
RUN"filename.ext"	To execute a program
			Executable program extension usualy are .BAS or .BIN
			A shortcut to type in the command is:
				type the filename
				type CONTROL+LEFT ARROW
				type CONTROL+ENTER (on numeric keypad)
|CPM			To launch a CP/M disk

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

_Keyboard mapping

The CPC keyboard is mapped to the Sun keyboard.
The actual mapping uses X11 virtual key codes.

The default provided keyboard map tries to achieve geographical mapping
between the Sun and the CPC keyboard layouts.

Some not so obvious mappings in the default map:
	CPC		Sun
	---		---
	COPY		Alt
	CONTROL		Control
	JoyUp		Home
	JoyDown		End
	JoyLeft		Del
	JoyRight	PageDown
	JoyFire		Meta (diamond key)

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

_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 (and the Snapshot file icon).

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

-Fred Herlem for transfering all my game disks to nvg.

-Richard Bannister for his help with the Mac version interface.

-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)

-Noel Llopis for maintaining the huge ftp site at nvg.unit.no

-Emmanuel Roussin for helping the CPC scene and his BSS.

-Everybody who registered and motivated further efforts on CPC++.

-Everybody who did send suggestions.

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

_The End.

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