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