CCCCC                          The Amstrad CPC Emulator
 CC
 CC                              Copyright 1991-1995 Bernd Schmidt
 CC                              portions Copyright 1995-1997 Ulrich Doewich
  CCCCC  PPPPP
             PP                  Amstrad and Locomotive Software permit the
             PP                  use of the included ROM images with an
             PP                  emulator, but retain the copyright.
         PPPPP
         PP                      This program is free software. You may
         PP                      distribute it freely, provided that you
         PP     EEEEE            do not charge a fee of more than DM 8,-
               EE   EE           or the equivalent in any other currency
               EEEEEE            for copying the disk and provided that
               EE                you always distribute the whole archive
                EEEEE   v5.2i    including all the files.
                
                                 Spanish translation by Gerardo Brise�o
                                 French translation by Emmanuel Roussin

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

1. What Is This Then?
=====================

This is a doc file. It belongs to a program called CPE, which can emulate an
Amstrad CPC on your IBM compatible 486-AT. This program is free software, 
you may distribute it freely, but you may not charge more than a fee of DM 
8,- (or the equivalent in another currency) for copying. If you want to 
include CPE with other programs on a CD-ROM, you may do so. In any case you 
must preserve the original contents of the archive; you may not modify any 
of the files, you may not omit or add files if you distribute the package. 
There is no warranty for any of the included programs, you use them 
absolutely at your own risk. The author refuses to accept responsibility for 
any damages whatsoever, to you or your computer system, that might arise 
from using or misusing the supplied software.

The source code for this program is freely available, it may be copied as 
well, and you may do whatever you like with it for private purposes. If you 
derive other programs from it, you should state that parts of the CPE source 
code were used. You don't need to distribute the source code together with 
the executable program.

None of the programs or data supplied may be used for military purposes. I
doubt that they can, but anyway...
If you don't agree with these terms, delete everything and forget about CPE.
But you will miss out on a lot...

Mind you, this is freeware, not shareware. I am not asking you for any
payment, so don't send me money. But do write me if you like this program!
Any comments, suggestions or bug reports are highly welcome.

Share and enjoy!

und nocheinmal auf deutsch, damit niemand sagen kann, er h�tte die Passage
nicht verstanden: Benutzung der Programme auf eigene Gefahr, der Autor
�bernimmt keine Haftung f�r irgendwelche Schaeden, die durch die Benutzung
des Programms entstehen, sei es durch sachgem�sse oder unsachgem�sse
Verwendung.


1.1. About The ROM Images
=========================

Since version 4.8i, the ROM images of all CPC models are included. These are 
copyrighted by Amstrad and Locomotive, but these companies have permitted 
the use and distribution of the ROMs together with emulators.

In previous versions, I was reluctant to include the ROMs because I don't
have a written permission, only emails, which made me feel a bit uneasy. But
I am convinced now because
- Amstrad and Locomotive have repeatedly stated on comp.sys.amstrad.8bit
  that it is legal
- I have received copies of written permissions granted to a german magazine
  (ASM) who included CPE and CPCEMU on a CD
- The ROMs are widely available anyway
- why shouldn't I believe the emails I have?


2. General Information
======================

2.1. The Amstrad CPC Family
===========================

A couple of years ago, 8 bit home computers were very popular. The best-
seller among these was the Commodore 64, but another family of computers was
also very successful in many (mainly European) countries. These were the
Amstrad CPCs (they were distributed under other names in some countries, eg.
you may own a Schneider CPC if you live in Germany).

There were three different models:

- The CPC464. Released in 1984; it had 32K ROM, 64K RAM and a built-in
  cassette recorder, sitting next to the keyboard. The ROM included the
  Amstrad operating system and Locomotive BASIC 1.0, which was very good.
  You could buy external floppy drives as add-ons; the one sold by Amstrad
  used 3-inch disks, which were incredibly expensive, since no other
  computer manufacturers used these for their own systems (except for some
  exotic machines, such as the "Einstein" for example). There were a couple
  of companies which sold floppy drives using 5.25-inch and 3.5-inch disks,
  but these never were of much importance. Included with Amstrad's disk
  drives was the at that time still very widely used disk operating system
  CP/M 2.2, so that many applications became available to the CPC; only the
  disks did not fit in the 3" drive...

- The CPC664 was the next step in the development. It no longer had a
  cassette recorder to the right of the keyboard, but a 3" floppy disk drive
  instead. The operating system and BASIC ROMs were a little improved; BASIC
  now had a few extra commands and the version number had increased to 1.1.
  The 16K floppy ROM was of course also included, so that this computer had
  a total of 48K ROM. It was released in mid-1985.

- Only a couple of months later, Amstrad presented the CPC6128. It was
  basically a CPC664 with double the amount of RAM: an incredible 128K!
  There were only minor changes in the ROMs. Unfortunately, the increased
  amount of memory was in no way supported by BASIC. To use it, you had to
  load special banking software from disk. Amstrad also supplied a new
  version of CP/M: CP/M Plus or 3.0, which could use the extra memory, so
  that the problems some programs had with the limited memory of the older
  models were history. After the release of the CPC6128, production of the
  CPC664 was abandoned.

The differences between the systems are small compared to the features they
all have in common:

- the processor: a Zilog Z80A, an 8-bit CPU running at 4MHz, derived from
  INTeLs 8080.

- the video chip: a Motorola CRTC 6845. Together with the Gate Array, it is
  responsible for the generation of the video signal. The CPCs knew three
  video modes:
    mode 0: resolution 160x200 pixel, 16 out of 27 colours + border
    mode 1: resolution 320x200 pixel,  4 out of 27 colours + border
    mode 2: resolution 640x200 pixel,  2 out of 27 colours + border
  Apart from these, the CRTC could be programmed to display many other
  resolutions.

- the sound chip: A General Instruments AY-3-8912, with three independent
  sound channels, and one noise generator. The Yamaha equivalent of this
  chip was later used in the Atari ST computers. Some mean people say it has
  FOUR noise generators...

- the memory management: Although the Z80 CPU only has a 16 bit address bus,
  thus being merely able to address 65536 bytes of memory, you can (in
  theory) use hundreds of kilobytes of RAM and even thousands of kilobytes
  of ROM. This is made possible by the Gate Array, which implements RAM- and
  ROM-banking in the CPC. The 64K that are seen by the CPU are divided into
  4 blocks of 16K each, and by programming the banking registers you can
  make the Z80 access different blocks of memory at the same address. So,
  the highest memory bank (addresses C000-FFFF) usually contains the video
  RAM, but you can also access the BASIC and floppy ROMs at the same
  addresses.

- All models were only sold together with a monitor. You could either choose
  a colour monitor (CTM 644) or, if you did not have that much money, a
  green monitor (GT65). These were not just monitors, they also included the
  power supply. The CPC464 received its 5V supply from the monitor; the two
  later models also needed a 12V supply for the floppy disk. It was a very
  effective way of preventing the users to buy other monitors than those
  manufactured by Amstrad.

- There was similar trouble with the printer port. Instead of fitting the
  usual 8 bit Centronics port, Amstrad invented something a LOT more
  useful: The 7 bit Centronics port! It was just another way to prevent
  users from buying external devices from other companies than Amstrad,
  since Amstrad alone built 7-bit printers. But Amstrad had less success
  here than in the case of the monitor; many users owned "alien" printers.

- the joystick port: Amstrad also produced joysticks, and of course they
  did not want CPC users to buy other (better) joysticks than their own, so
  they fitted the CPCs with only one joystick port instead of two. To use
  two joysticks, you had to plug an Amstrad joystick into the computer and
  plug the second joystick into the first - it was the only joystick ever
  with a built-in joystick port!

In fact, this listing of features is not really complete. It just describes
what the CPC can "officially" do. For example, it is perfectly possible to
use resolutions up to 768x280 in all 27 colours, and capable programmers
have indeed done things like that. More about that in the following
sections...


2.2. The Emulator
=================

This is version 5.2i of the emulator; the i stands for INTeL.

Between the version 4.6i and 5.1i, the CPE package consisted of two 
executables (namely CPE.EXE and CPE2.EXE). Both were geared towards their 
own specific PC hardware platforms: CPE for low-end, and CPE2 for high-end 
machines. To do a serious emulation though, quite a bit of computing power 
is required. The difficulty lies in the graphics emulation, and if the 
graphics are supposed to be emulated exactly, a lot of effort is needed. If 
the CPC must be emulated on a relatively slow machine, not everything will 
be perfect. Most programs will still run, and you will not see a difference 
for CPC programs that just use what's "in the specs". These specifications 
are described in the previous section. But especially graphics demos use a 
lot of undocumented features that the PC simply can't handle. For this 
reason support for the former CPE.EXE was dropped in version 5.2. CPE2.EXE
has become the only executable in the package - now appropriately renamed to 
CPE.EXE.

If you have only a 386, or a slow 486, you will want to use the old CPE.EXE.
Please refer to the CPE v5.1i package, or try out some of the other CPC
emulators available on the net (more on that later).

By the way: there is also an Amiga version of CPE, but it is fairly old and
nowhere near as good as the PC version. I stopped working on it in mid-1993,
when I bought my first PC. AmigaCPE is not going to be improved, but it is
available with source on a couple of ftp sites (see below).


2.3. Hardware Requirements
==========================

You need: An IBM compatible AT with a 486 (or higher) processor, a VGA card
(preferably a fast SVGA card with VESA support), at least one disk drive
(better yet, a hard disk), a keyboard, a monitor, ...
If you have a Soundblaster or compatible sound card, you can also emulate
the CPC sound. The PC speaker is NOT supported - do yourself a favor and get
a sound card instead! Version 4.8i added Gravis Ultrasound support, and this
versions adds Ensoniq Soundscape compatible boards to the list.


2.4. Emulating Documented Features
==================================

CPE can emulate all three CPC models on your PC. In fact, it always emulates
6128 hardware, but this will never cause you any trouble, since there have
been really no changes in the hardware; only extensions. Which model you
get is determined by the contents of the ROM files. More about that later.

All documented hardware features are emulated. Of course, some things cannot
be duplicated exactly on a totally different system. The PC's keyboard layout
differs from that of the CPC keyboard, so you may have some trouble finding
some keys when you first start using CPE.

CPE.EXE will always perform at the exact speed of a CPC, unless you tell it
not to. If your system is fast enough, there will be no difference to a real
CPC.


2.5. Emulating Undocumented Features
====================================

A CPC can not only do the things the manual tells you about. Especially the 
video chip (CRTC) can do a lot more than one might think. CPE can emulate 
overscan, raster effects and 32K screens (with EMS in 800x600 mode). It can 
also emulate some split screen effects that are used in demos, but this is 
still a little buggy..


3. Using The Emulator
=====================

3.1. Configuration
==================

First of all, uncompress the archive into a directory of your choice, using
the "-d" option to create the necessary sub-directory structure:

ROM\       for the ROM files
SNAP\      for snapshot files
TAPE\      for tape support
DISK\      for disk support
TEMP\      for ZIP archive support

All the system ROMs you need are included. Additionally, you can place two 
more files, "ROM5.ROM" and "ROM6.ROM" in your ROM\ directory; these will 
then be loaded by CPE and used as expansion ROMs. You'll only need this 
feature if you have a special ROM connected to your CPC. You can also 
remove or rename the "CPCADOS.ROM" file if you want to emulate a CPC 464 
without the floppy disk controller. Some programs will not run if the 
floppy ROM _is_ present, but they are extremely rare. Usually, you want to 
leave the ROM directory untouched.

Next you need to run CPESETUP. This utility allows you to configure CPE to 
your specific environment. It needs to be run at least once to create the 
required PREFS.CPE file. All numerical entries are in hexadecimal notation, 
unless otherwise specified.

Note: If you have used CPE in the past, you absolutely _must_ delete the 
old PREFS.CPE prior to running CPESETUP!

Use of the utility is pretty straightforward. A detailed description of each 
function follows:

General Settings
----------------

CPC Model (464, 664, or 6128):
  selects the ROM image that CPE will load on startup. There should be no
  programs that require a 664, but there are programs that won't run on a
  464/664, and there may be programs that don't run on a 664/6128. Your best
  choice is probably to use a 6128 unless you find something that does not
  work.

Keyboard Language:
  You can select either an unmodified (English) CPC keyboard layout, or
  modified layouts for German or French keyboards. This works by patching
  the ROM, so not all programs may notice the change.

Sound Card:
  Choose either no sound card, a Soundblaster (compatible), a Gravis
  Ultrasound, or an Ensoniq Soundscape, as it would apply to your system.
  Successful detection depends on proper setup of the environment variables
  (BLASTER, ULTRASND, and SNDSCAPE respectively). Depending on the selected
  sound card and its features, more or less of the following options will
  then be accessible - indicated by a (*).

Sound Card Base Port(*):
  Auto detected. Applies to all sound cards.

Sound Card Wave Port(*):
  Auto detected. Only applies to Ensoniq Soundscape.

Sound Card MIDI IRQ(*):
  Auto detected. Only applies to Ensoniq Soundscape. Decimal value.

Sound Card IRQ(*):
  Auto detected. Applies to all sound cards. Decimal value.

Sound Card DMA(*):
  Auto detected. Applies to all sound cards. Only channels 0 to 3 (8bit) are
  supported by the sound emulation.

DMA Buffer Length(*):
  This _decimal_ value indicates the buffer length used by the sound
  emulation. A smaller value increases the accuracy of the emulation, but
  requires more CPU resources. The minimum values is 4; the maximum is 240.
  You will have to experiment with this to find the optimum setting for your
  system. If you can hear noise or popping during sound output, it is a
  good idea to increase this value.
  Note: switching to stereo mode and/or the 44kHz rate usually requires an
  increase of this value as well.

Audio Sample Rate(*):
  Toggles between 22kHz and 44kHz.

Stereo Sound(*):
  Toggles between mono and stereo output.
  Note: only enable this option if you are sure that your Soundblaster
  (compatible) card supports stereo. Ultrasound and Soundscape are both
  stereo capable, so there is no issue here.

Use EMS Memory:
  Ignore this if everything is working perfectly. If CPE does NOT work, try
  running it without EMS. The cause might be a bug in your EMS manager, or
  in CPE. I have not yet heard of any such problems.

Printer Port:
  For printer emulation, set this to the port to which your printer is
  connected. Usually, this is LPT1.

Quiet Tape Mode:
  If you have used a real CPC before, you probably know the messages "Press
  Play on tape then any key", or "Loading block xxx". This sort of thing is
  pointless on the emulator. It can be a nuisance, especially if you put
  files in the tape directory that expect to be on a floppy disk. They will
  clutter up the screen with lots of these nonsense messages. Quiet Tape
  Mode turns all of them off, except for the directory display, where you
  would want them.

Emulate Green Monitor:
  As explained in an earlier section, CPCs were either sold with a green or
  a colour monitor. You can choose the one you used to have, or the one you
  like better.
  Colour is the default - looks better too..

Enable Sound Output(*):
  You can toggle sound output on or off with this setting. If it is off,
  the sound emulation is completely bypassed, which might give you a speed
  improvement.

Utilize Joystick 1 &
Utilize Joystick 2:
  You can use two joysticks with CPE, or you can resort to using a couple of
  special keys to emulate the first joystick with the keyboard. You will
  probably want to turn this on if you own a PC joystick. It may slow down
  the emulation, but not by a lot (I don't think you'll notice). The
  joysticks do not need to be calibrated by hand, but should be in their
  center positions before the emulator is started. Both, normal analog PC
  joysticks and "digital" joypads are supported.

Video Mode Options
------------------

Screen Refresh Rate:
  This option will enable you to use CPE at full speed, even if your
  hardware is not as fast as needed for a perfect emulation. Usually, CPE
  redraws the screen 50 times a second, just like a real CPC does. If you
  use it with a resolution of 320x200 (more about the different resolutions
  below), this totals in a transfer rate of about 3 MB/s between main and
  VGA memory, and that's only the video emulation. In the best available
  resolution, 800x600 with borders enabled, the total will be 11 MB/s.
  You'll need a pretty good graphics card for this. If you set this value to
  1, every screen will be drawn. This yields 50 frames per second, and all
  animations will be perfectly smooth. If you set this to 2, only one out of
  two screens will be drawn; If you set it to 5, only 10 frames per second
  will be drawn and animations will not look good at all. If you have to use
  a value of 5 or higher to get a reasonable speed, you should consider
  using CPE v5.1 or another emulator instead. If you set the refresh rate to
  0, CPE will figure out the best value that it can use while still running
  at 100% the speed of a real CPC.

Use 800x600 VESA Mode:
  By default, CPE uses a screen resolution of 320x200 pixels in 256 colours.
  If you have a Super-VGA card with a VESA BIOS extension, you can change
  this to 800x600 (resulting in 800x300 by using a special line doubling
  feature). The advantage of the high resolution is that all possible
  overscan screens the CPC can display will fit in 800x300, whereas they may
  be truncated in 320x200. Some features of the CRTC are only emulated in
  800x600 mode.

Use Small Screen In VESA Mode:
  If you use a higher resolution, the amount of data the CPU has to process
  rises. If your system is too slow to handle that, you can still have the
  advantage of the higher resolution by enabling this option. The emulator
  will still open a 800x600 screen, but will only paint into a 320x200 sized
  area in the top left corner. The video output will be rather small, but
  you will be able to use overscan and 32k screens.

Use Graphical Menus In VESA Mode:
  When using the 320x200 resolution, CPE will switch back to a standard text
  mode to display its menus. There is no problem with this, unless you have
  enabled the 800x600 resolution. Switching back and forth between video
  modes is not very nice to your monitor, so CPE can paint menus in the
  graphical mode without switching to text mode first.

Use Borders In VESA Mode:
  Usually, CPE does not emulate the borders that are present on the CPC
  screen. However, in the 800x300 resolution there is enough room for them.
  Setting this option will result in a much nicer picture; there will be no
  junk pixels displayed in areas of the screen that are currently not
  updated (run CPE without borders and you'll probably see what I mean), and
  pictures will always be centered nicely. Setting this option may decrease
  the speed of the emulation: there is now more data to process.

Change Colour Table
-------------------

Import Colours From CPCEMU Style Colour Table:
  This options allows you to specify a CPCEMU.DAT style colour table, to be
  used by CPE. If editing such a table by hand seems too daunting, try the
  CCC utility, available from my web page, to make the job a snap (see
  below for more details).

Original CPE Colour Table:
  This will restore the colour table to the one which was used by all
  previous versions of CPE. When you run CPESETUP for the first time, a in
  my opinion more accurate colour table will be "installed". If you cannot
  agree to that colour scheme, feel free to use the previous or this
  option to change it.

File System Setup
-----------------

Set Initial Path For CPC Drive A &
Set Initial Path For CPC Drive B:
  Here you may specify the starting location for the emulated floppy
  drives. Path references are absolute and must therefore include the drive
  letter.

Set Initial Path For Snapshots:
  Here you may specify the location where snapshots are to be stored or
  retrieved from. The path reference is absolute and must therefore include
  the drive letter.

Set Temporary Archive Extraction Path:
  If you intend to use DSKs or SNApshots stored in ZIP archives, you need
  to specify a valid directory here. This should be a directory dedicated
  to this task, since files will be uncompressed _and_ deleted here during
  the operation of CPE. Again, an absolute path reference is required.

Set Archiver Executable Path:
  To make ZIP support possible, a copy of PKUNZIP should be somewhere on
  your path. If it was not automatically detected when you first ran
  CPESETUP (ie. the entry is blank), please specify its location
  _including_ the filename, like this: "C:\UTILS\PKUNZIP.EXE".


3.2. Starting The Emulator
==========================

Once CPE is set up, simply type "CPE" to start the emulator. It should come 
up showing the ROM power-on message (system type, copyright, etc.) in yellow 
text on a blue background. If you enabled the green monitor in the setup, 
make that green text on a green background..


3.3. Special Keys
=================

During emulation, most of the keys you press will be reported to the
emulated CPC. However, the PC function keys have a special meaning in CPE:

  F1  will present you with the restore snapshot file selector
  F3  will present you with the store snapshot file selector
  F5  will hard-reset the emulated CPC
  F6  will present you with the file selector for the emulated floppy
      drives
  F7  shows you the options screen
  F10 quits the emualtion and exits to the OS - You really don't want to
      press THIS key..

The following extra keys can be used:

  F8,F9:   scroll screen vertically and
  F11,F12: scroll screen horizontally. If you are using CPE with a screen
           resolution of 320x200 pixels, overscan screens that the CPC
           tries to display might not fit. You can use these four keys to
           move the visible area around. Although, a better solution is to
           enable the 800x600 graphics mode in the setup utility.

  8,4,5,   If Num-Lock is off, these number pad keys emulate the first CPC
  6,2      joystick.
  

3.4 The File Selector
=====================

Usage of the file selector is pretty self-explanatory since all keyboard
commands are listed on the screen. I therefore shall only go into more
detail about the not-so-obvious features..

CPC disk files are listed top to bottom in a column on the left side of the 
screen, followed by any sub-directories and all detected PC drives 
(including any CD-ROM & network drives).

You may perform a search by simply typing the name of the file you're 
looking for. As you type, files which match the criteria are highlighted. 
If you hit a wrong key by accident, use the BACKSPACE key to step 
backwards. Any of the navigation keys will clear the entire search string.

In the store snapshot file selector, the file you highlight will be 
overwritten with the current state (after hitting ENTER of course). If you
rather want a new file to be created, use the INSERT key instead.

If you save to a disk during the emulation, this disk image must _not_ 
originate in a ZIP archive, otherwise the changes will not be permanent!

It is a good idea to disable write-behind caching to prevent annoying delays 
after selecting a disk image in a ZIP file. If you are using SMARTDRV, use 
the /X option to disable this feature.

Since the selectors retain their file list positions, repeated re/storing
of snapshots is a snap. <g>


3.5. The Options Screen
=======================

Most of the settings shown can be defined permanently using CPESETUP. I am 
not going to describe those again. Here is a list of the remaining 
functions:

Limit Speed To 100%:
  Usually, CPE will run at 100% the speed of a real CPC, or less if your
  system is too slow. This is done by synchronizing the CPC interrupts with
  the PC interrupts, and can be disabled by turning off this option.
  Usually, you don't want to do this (games become unplayable if the
  CPC is too fast).
  Do not turn this off to increase the speed of the emulation, if it is too
  slow. Instead, use the refresh rate setting in the setup program, or turn
  off the sound support, which can be rather time consuming, too.

Permit Vertical Overscan:
  Only relevant in 320x200 mode. As I stated earlier, overscan screens may
  be truncated in this mode. If a screen is just too high, not too wide, you
  may turn on this option to increase the resolution to 320x400 pixels. I
  don't really recommend this - the screen will be fairly distorted. Try
  using 800x600 mode instead.

Note: whenever you leave the options menu, the joysticks will be 
recalibrated. Therefore, you should always have them in their center 
positions during this time.


3.6. Using The Emulator
=======================

There's not much to explain about using the emulation itself - it behaves 
just like a CPC. However, here are some pointers on how to use external 
data.

If you want to use native CPC files, you can put them in the tape directory. 
On a CPC, you access the tape by first typing '|TAPE' (the "|" symbol is on 
SHIFT-"�" on german keyboards, and on SHIFT-"\" on american keyboards), and 
then use the BASIC commands to load files (saving to the tape directory is 
not supported). You can get a directory listing by typing 'CAT' and load 
files with 'LOAD"file"'. If you want to execute a program, use 
'RUN"program"'.

Disk support works along the same lines, except you do not enter the '|TAPE' 
command. If you did and want to use disks again, you must use '|DISC' to 
switch back to disk mode. If you use 'CAT' right after starting the 
emulator, you will get the message 'Disc missing in drive A'. This is 
because you have to "insert" a disk file first. Disks are emulated by using 
special files which hold a 1:1 image of the data on a CPC floppy disk. You 
can get a list of your disk files by pressing the F6 key. After you have 
inserted a disk, the BASIC commands 'CAT', 'LOAD', and 'RUN' should work 
just fine.

There are a couple of different disk formats in use: CPEs "native" disk 
files, which have the ".CPD" suffix (CPC Disk File), and CPCEMU disk files
which use the ".DSK" extension. You can also create compressed .CPD disk
files that take up less space, but cannot be written to. Since v5.1, the 
"extended" DSK format is supported as well, which is best suited to holding 
copy protected disk images.

Use the CONVDISK.EXE tool that comes with CPE to convert between CPD and
normal DSK images.


3.7. Example Configurations
===========================

Here are some configurations that I consider to be ideal for each system (I
used each one myself).

486DX2-66, VLB, good SVGA card
  Use CPE with a resolution of 320x200 pixels (ie. turn off 800x600 mode in
  the setup). Use a frame rate of 25Hz (enter "2" in the refresh rate
  setting). This is a conservative setup. Usually, using 320x200 will enable
  you to use a refresh rate of 50Hz, making animations look smoother. You
  might be able to achieve full speed even in full 800x600 mode with borders
  enabled and a refresh rate of 25Hz. My 486 can handle this.

Pentium-90, PCI, good SVGA card.
  Turn on 800x600 mode, no small screen, and enable borders. Refresh rate
  should be 25Hz; if you turn borders off or if you have a very good system,
  you might be able to run at a 50Hz refresh rate.

It may be surprising that the 486 and the Pentium achieve the same results.
I guess the reason for this is that it's not the CPU speed that is most
important, but in fact the transfer rate from memory to the VGA card. If you
enable full 800x600 mode, turn on the borders, and try to get a 50Hz refresh
rate, this transfer rate lies somewhere around 11MB/s. This is limited by
the bus and by the VGA card itself. It seems like VLB or PCI doesn't make
that much of a difference here.

For systems in between, you might have to experiment a little. Especially
owners of medium-fast 486s might have some difficulties in finding a good
set of options.


4. Technical Information
========================

..is not included in this manual. A rather large text about the internals of
CPE is on Kevin Thacker's WEB page (you can find the URL in the enclosed
file CSA8.FAQ; see below). The source code to CPE is available free for
download.

Let me only say something about..


4.1. File Formats
=================

If you are already using Marco Vieth's CPCEMU, you will want to use your
software with CPE as well. With tape files, there is no problem - just copy
these to the TAPE\ directory. The same applies to snapshots; they go into
the SNAP\ directory (CPE does not yet support 128K snapshots).

CPE can read and write normal CPD, normal DSK, and extended DSK images.
Compressed CPDs are read-only. Format (Write ID) is not emulated.

Version 5.2 adds support for disk images of floppies with larger capacities 
(ie. 80 tracks, 2 sides). To use them you usually also require an expansion 
ROM, such as VDOS or ROMDOS.


4.2. Missing Bits
=================

By now, almost 100% of the CPC is emulated. Recent additions are overscan
screens, the 'split screen' technique, and those nifty 32K screens that some
demos use to display huge pictures.

Some demos do very weird things to the CRTC. While many split-screen effects
are emulated quite well in this version, there are others which are
problematic.

A big problem is the accuracy of the interrupt emulation. The Gate Array
sometimes behaves in a weird manner, and I have not yet completely figured
out the pattern..

Sound emulation is "nearly" perfect, except that sampled speech/ sound 
effects are not reproduced correctly. This might change in a future 
version..

Emulation of the FDC is about 99% done. The missing bits are the emulation 
of the Overrun condition, and emulation of GAP#3. The latter will probably 
never happen since the required information is actually not present in the 
current DSK format.


5. Final Words..
================

5.1. Thanks And Acknowledgements
================================

Bernd's:

(in no particular order) to...

- Amstrad for developing the CPC in the first place
- Marco Vieth for providing me with software, bug reports and his own CPC
  emulator called CPCEMU, which is very good. It is also available as
  freeware, so try to get a copy.
- Kevin Thacker, for making an excellent WEB homepage for Amstrad computers.
- Emmanuel Roussin for translating this docfile.
- Herman Dullink: for sending me his CPC emulator.
- Zilog, Inc. for LOTS of undocumented opcodes.
- Charlie Gibbs, who wrote a CP/M emulator for the Amiga. This emulator
  first made me think about writing a CPC emulator, and I derived some basic
  ideas from it.
- Andreas Lober, who sent me copies of the permissions given to him by
  Amstrad and Locomotive to distribute the ROMs.
- Ulrich Doewich who wrote the sound emulation for GUS cards, replaced the
  old Soundblaster code with something decent and wrote the new FDC code.
- Bradford Thomas, who fixed a nasty bug.
- everyone whom I've forgotten.

Ulrich's:

(in no particular order) to..

- Bernd Schmidt for writing an excellent CPC emulator, and letting me
  improve it! <g>
- Marco Vieth for CPCEMU, which got me interested in the CPC (again), after
  I had already left the CPC world
- Kevin Thacker for his many helpful e-mails on all kinds of emulation
  issues
- Sergio Bayarri for lots of testing, and finding the odd bug.. or two!
- The CPE v5.2 beta team: Bernd Schmidt, David Wykes, Emmanuel Roussin,
  Fredric Herlem, Noel Llopis-Artime, and Sergio Bayarri
- everyone else I forgot to mention..


5.2. The Authors
================

Bernd Schmidt wrote all of the original program. His address is

snail-mail:
Bernd Schmidt
Schlossweiherstrasse 14
52072 Aachen
Germany

e-mail:
crux@pool.informatik.rwth-aachen.de


Lots of enhancements and additions were provided by Ulrich Doewich. His
address is

snail-mail:
Ulrich Doewich
112 Tea Rose Street
Markham, Ontario  L6C 1X3
Canada

e-mail:
cyrel@cybercube.com

Ulrich maintains CPE after version 5.1. You may mail bug reports to both of
us.

The official CPE web page is located at:
http://www.interlog.com/~cyrel/cpc


5.3. More Information About The CPC And Other Emulators
=======================================================

Please see the enclosed "CSA8.FAQ" file, which contains the Frequently Asked
Questions (and answers) of the Usenet group comp.sys.amstrad.8bit, written
by Emmanuel Roussin. It contains much useful information, as well as
pointers to interesting places on the Internet, where you can find more CPC
related material.