________________________________________________________________________________

CPC-Emulator V0.50 / 25-11-95
programmed in 1994-1995 by Andreas Stroiczek
(AMSDOS-ROM & system-ROMs are copyright by AMSTRAD)

* special greetinx to Patrick Hinrichs and Eduard Pfarr *
________________________________________________________________________________



This program emulates an AMSTRAD CPC (Colour Personal Computer). It's a
Z80/4MHz-based 8-bit-computer with high resolution colour-graphix and
disk-drive.

If you don't know this machine try this:
- start the emulator & click on the CPC-icon onto the iconbar
- 'insert' a disk-image in drive A
- type CAT to get the directory
- to start some programs just type RUN"program.xyz"

Features
~~~~~~~~
+ fast Z80-emulation
+ real CRTC-emulation (!) (for splittings and fullscreen)
+ 128k RAM
+ 8 UPPER-ROMs (ROM 7 must be AMSDOS-ROM, ROM 0 is the BASIC-ROM)
  (note: "fastAMSDOS" is a modified version of AMSDOS, Byte &C5D4 and &C602 are
         set to &01)
+ disk-emulation provides different formats
 
- there are still many bugs
- drive B is missing
- sound is missing

The next release will contain a better CRTC & FDC-emulation.


Mouse & Keys
~~~~~~~~~~~~
In fullscreen-mode your have a menu at the top of the screen. You can use
the menu-button of your mouse to switch the menu on/off. You can get the
list of DiskImages by pressing the menu-button while your pointer is on
"DriveA{side0}{--}". You may also change the options (side-selection and
write-protection) with select- and adjust-button.

If you don't wanna use your mouse, you may use following keys:
        <F1>: insert a disk-image in drive A
 <SHIFT><F1>: turn disk in drive A
  <CTRL><F1>: protect/deprotect disk in drive A
        <F2>: insert a disk-image in drive B    (doesn't work yet)
 <SHIFT><F2>: turn disk in drive B              (doesn't work yet)
  <CTRL><F2>: protect/deprotect disk in drive B (doesn't work yet)
 <SHIFT><F3>: Joystick-emulation on/off
 <SHIFT><F4>: make screen-shots (you'll find them in !CPCEmu.screenShot)
 <SHIFT><F8>: reset
 <CTRL><F10>: quit

With Joystick-emulation ON, the emulator uses following keys for the stick:
Cursor-Keys: up/down/left/right
 right Ctrl: fire 2  (this is the main joystick-button)
  right Alt: fire 1

For more information about the CPC & CPC-Emulator-keyboard see the Draw-file
"KeyInfo" in !CPCEmu.Keys.


 
How to get DiskImages from your old CPC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Just connect the CPC with your Acorn-Computer via parallel-port as following:

CPC            Acorn
 2   D0          2   D0
 3   D1          3   D1
 4   D2          4   D2
 5   D3          5   D3
 6   D4          6   D4
 7   D5          7   D5
 8   D6          8   D6
 9   GND     18-25   GND
 
You'll find the CPC-tranfer-program in !CPCEmu.!CPCTrans.CPC. You have to
transfer this CPC-program to your CPC.
After everything is connected you should start !CPCTrans first(!) and after that
start the CPC-pendant ARCTRANS.BAS on your CPC.
The default-parameters of ARCTRANS.BAS are 42 Tracks, DATA-format (&C1-&C9),
512 byte sector-size (2) and soure-drive B (1). You have to change this if
necessary (i.e. take &41/&49 for first sector/last sector if you want to
transfer a disk formatted with SYSTEM-format).

If the transfer is completed successfully you'll find the generated DiskImage
in !CPCEmu.!CPCTrans named "newDisk". To use this image-file just copy it into
!CPCEmu.DISKs .
Note: The transfer works well on my Risc PC. Maybe it won't work correctly on
      slower machines. You may set the variable "transferRate" in ARCTRANS.BAS
      to a higher value than 92 if your machine responses with checksum-errors.



DiskImage specification
~~~~~~~~~~~~~~~~~~~~~~~
First, there is a 128 byte header. You may change the number of tracks, but the
size of the DiskImage has to be  128 + 2 * 6144 * <number of tracks>.

43 50 43 2D 45 6D 75 6C 61 74 6F 72 30 2E 35 30     CPC-Emulator0.50
44 69 73 6B 49 6D 61 67 65 56 34 00 00 00 00 00     DiskImageV4.....
34 30 54 72 61 63 6B 73 00 00 00 00 00 00 00 00     40Tracks........
44 6F 75 62 6C 65 53 69 64 65 64 00 00 00 00 00     DoubleSided.....
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00     ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00     ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00     ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00     ................

This is followed by the tracks. Each track is 2 * 6144 bytes long, 6144 bytes
for side 0 and 6144 bytes for side 1 of the CPC-disk.

One side of a track looks like following datas:

Track start (one side, 6144 bytes):

49 4E 44 58 49 44 46 44 00 00 C1 02 00 00 00 00     INDXIDFD........
00 00 00 00 00 00 00 00 |  |  |  |  44 41 54 41     |...|...|...DATA
00 45 58 .. .. ..       |  |  |  |                  |   |   |   |
                        |  |  |  size 2 (512 bytes) |   |   |   |
                        |  |  sector &C1            |   |   |   data-word
                        |  head 0                   |   |   ID-field data
                        track 0                     |   ID-field-word
                                                    index-word

The track starts with the "INDX"-mark followed by "IDFD" followed by the ID-data
for the first sector on track (4 byte ID-field + 16 reserved bytes) followed by
the "DATA"-mark followed by the sector-datas (i.e. 512 bytes). After that the
next sector on track starts exactly like the first one. The only difference is
that it starts up with four 00-bytes instead of the "INDX"-mark. The rest of
this track is set to 00.


________________________________________________________________________________

Send your improvements & suggestions to:

 Andreas Stroiczek
 Zum Kindergarten 5
 32427 Minden
 Germany

Please contact me, if you have some ARM-source-codes about sound or disk-drive.
Is there anybody who want to write a CPCFS for CPC-disks & diskImages?
________________________________________________________________________________
