==================================== The Amstrad CPC emulator (v0.3beta). ==================================== After seen G.A. Lunter's ZX-Spectrum emulator and the CompuJunks' MSX- emulator (both from Groningen), I thought that I should be able to create something like that myself. I've chosen for the Amstrad CPC, cause I knew like the ZX and the MSX, it has a Z80 microprocessor. Cause I've never worked with a CPC, it was difficult for me to find enough technical documentation about this machine. With some help from a friend who happens to have a CPC, and the co-operation of the HCC Amstrad users group (special thanks to Mr. G v/d Heide), I got what I needed to start. In February '95, I found all documentation I could think of at a WWW-side on Internet. Beside the wish to create an emulator, I wanted to learn more about operating systems and the 'Protected Mode' architecture of the i386 microprocessor. The emulator is build upon a special self-made operating system, where virtual memory management techniques are used to emulate the 'weird' memory management of the CPC. This makes that the emulator itself doesn't have to worry about and/or use valuable time for this. System-demands: - i386sx-16MHz or better. As I said above, the emulator needs at least a i386(sx) CPU. The emulator works fine with a 16Mhz clock. On faster PC's, the emulator will slow down to get the CPC's performance. You can switch the slowdown on and off using the [F11] key on your keyboard. - 160Kb conventional memory. = 48Kb for the emulator + 32Kb ROM + 64Kb RAM + 16Kb Videobuffer. OF course, this will be more when extra ROM's are used. I expect this number to be 256Kb when the 128Kb RAM of the CPC6128 will be emulated - AT 101-key keyboard with a GR, NL, SP, UK or US layout. If you have a different keyboard, I can (easily) make more keyboard definition files. - VGA (compatible) display (or better). I prefer a 800x600 resolution. Optional: - Disc-drives. The emulation of disc-drives it still under development. At this moment, it can read the 'Vortex' format (720Kb), and (not 100% sure) AMSDOS' 'DATA-format'. This package includes some utilities to format and write Vortex discs, and to extract files from .DSK files. - Printer port. If you want to use a printer. LPT0 is the printer port found on IBM MDA and Hercules HGC video adapters. LPT1 is the normal port for AT-386 PCs. - Extra ROM's. Like on the original CPC, extra ROM's can be used. Just mention them in the CPC.CFG file Not implemented (yet): - 128Kb RAM (CPC-6128). As I only have info about this for a short time, at this moment only 64Kb RAM can be used. This doesn't mean CPC6128 ROM's can't be used. - Tape-drive. Since the IBM-XT, the PC doesn't have a connector for a tape-drive. You'll have to use discettes. - Joystick. There will be support for one joystick. But I have other priorities at this moment... - Sound. AS for joysticks, be patient. I will translate the CPC sounds to Adlib and/or UltraSound. All soundboard and emulators which are compatible with these will work. - Other hardware. It is very possible to emulate other hardware like a harddisc, a mouse or a serial port. I just have to have specifications about those. (In)compatibilities and other things: - The Z80. The Z80 has (a lot) undocumented instructions and flags. Some programma take advantage of these, and so won't work (properly) yet, or won't wrok at all. I'm trying to implement as many as possible, but this takes time... - Video. Some programs are fiddling with the video hardware. One is creating its own videomode, the other switches modes at certain moments, so that some parts of the screen are displayed at one mode, and other parts at another. Most of these fiddles are send directly to the PC's video hardware, so that most programs will work properly. I've almost finished the 'switching modes' code. It just have to calculate the correct times. - Disc-drives. At this moment, the 'Floppy Disc Controller' (uPD765) is being 'simulated'. The emulator traps all I/O to the FDC, interprets it, and uses PC-BIOS calls for reading and searching. For 'normal' disc uses, this works. However, there are (many) more FDC functions than BIOS calls. This is why AMSDOS only works half... A next version will use the PC's FDC directly! - Working programs: Astro Attack Bomb Jack Bruce Lee Codename MAT Combat Lynx Commando Crazy Legs Cyrus II (chess) Fighter Pilot Hunchback Oh mummy Roland in the Caves Roland on the Ropes Starion Sultan's Maze The Jewels of Babylon - Not 100% working: program reason 464 ROM PSG not emulated yet 6128 ROM no 128Kb RAM yet AMSDOS no 100% FDC emulation yet Chopper see AMSDOS Dark Star no switching video modes support yet Jetset Willie Z80 not 100% yet Jump Jet see Dark Star The Way Of The see Dark Star Exploding Fist VDOS see AMSDOS - Not working (reason unknown until now): Alien Highway Harrier Attack Xybots I do not have other programs, or haven't tested them yet - Other things: - I have some troubles with Cirrus Logic CL542x SVGA chips. Somehow I'm unable to set the border's colour. - GET did have some problems with SMARTDRV. I've fixed this problem for SMARTDRV and PC-Cache. But there could still exist problems with other cache programs. Please be careful... I don't have a CPC computer myself, and thus cannot check if the emulator acts like a real CPC all the time. I really like feedback. So if you find faults: Herman Dullink Otto Eerelmanstraat 8-A 9718 JZ Groningen the Netherlands telephone: +31-(0)50-132829 e-mail: csg669@wing.rug.nl fido: Herman Dullink @ 2:282/517.0